xview-3.2p1.4/ 40755 1750 1750 0 6354605773 10344 5ustar mbmbxview-3.2p1.4/clients/ 40755 1750 1750 0 6354605713 11777 5ustar mbmbxview-3.2p1.4/clients/clock/ 40755 1750 1750 0 6354605713 13072 5ustar mbmbxview-3.2p1.4/clients/clock/Imakefile100644 1750 1750 1360 5413747413 14777 0ustar mbmb#include /**/########################################################################## /**/# @(#)Imakefile 1.11 28 Jun 1993 SMI /**/# Imakefile for clock #define HasInfoFiles YES #if HasOpenWindows DEFINES = -DSTANDALONE $(XVCLIENTDEFINES) SYS_LIBRARIES = $(LIBDESKSET) -lm $(SYSV_CLIENT_LIB) #else DEFINES = -DSTANDALONE -DNO_LIB_DESKSET $(XVCLIENTDEFINES) SYS_LIBRARIES = -lm $(SYSV_CLIENT_LIB) #endif INCLUDES = -I. -I$(HEADER_DEST) -I$(TOP) $(XVCLIENTINCLUDES) DEPLIBS = XViewClientDepLibs LOCAL_LIBRARIES = XViewClientLibs HEADERS = ds_popup.h INFOFILES = clock.info MANPAGES = clock.man SRCS = clock.c OBJS = clock.o ALLFILES = ${HEADERS} ${INFOFILES} ${MANPAGES} ${SRCS} ComplexProgramTarget(clock) #include xview-3.2p1.4/clients/clock/clock.c100644 1750 1750 145166 5413747413 14502 0ustar mbmb/* SVII clock.c nannette 09-13-88 last edit: 01/19/89 Copyright (c) 1888, Sun Microsystems, Inc. All Rights Reserved. Sun considers its source code as an unpublished, proprietary trade secret, and it is available only under strict license provisions. This copyright notice is placed here only to protect Sun in the event the source is deemed a published work. Dissassembly, decompilation, or other means of reducing the object code to human readable form is prohibited by the license agreement under which this code is provided to the user or company in posesion of this copy. RESTRICTED RIGHTS LEGEND: Use, duplication, or disclosure by the Government is subject to restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause at DFARS 52.227-7013 and in similar clauses in the FAR and NASA FAR Supplement. */ #include #include #include #include #include #include #include #include #include #include #include #include "ds_popup.h" #define FROMRIM 15 /* tip of hour hand to rim */ #define LEFTEXT 6 #define TOPEXT 8 #define ITIMER_NULL ((struct itimerval *) 0) #define MIN_ANALOG_WIDTH 90 #define MIN_ANALOG_HEIGHT 90 #define MIN_DIG_WIDTH 150 #define MIN_DIG_HEIGHT 70 #define DEF_ANALOG_WIDTH 150 #define DEF_ANALOG_HEIGHT 150 #define DEF_DIG_WIDTH 145 #define DEF_DIG_HEIGHT 70 #define MIN_WINDOW_WIDTH 100 #define MIN_WINDOW_HEIGHT 35 #define MIN_FONT_WIDTH 18 #define MIN_FONT_HEIGHT 24 #define SMALL_FONT_HEIGHT 8 #define SMALL_FONT_WIDTH 6 #define NULLPR (struct pixrect *) NULL #define DIGITAL_ON 0 extern double rint(); static int initializing; static int centerX, centerY; static char *months[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; static char *nums[] = {"00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "60" }; static int majorHour[] = {0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1}; static int minorHour[] = {0,1,2,3,4,5,6,7,8,9,0,1,2,1,2,3,4,5,6,7,8,9,0,1}; struct pr_pos partA[4] = { {1,0}, {3,2}, {15,2}, {17,0} }; struct pr_pos partB[4] = { {0,0}, {2,2}, {2,10}, {0,12} }; struct pr_pos partC[4] = { {18,0}, {16,2}, {16,10}, {18,12} }; struct pr_pos partD[4] = { {0,12}, {2,14}, {2,22}, {0,24} }; struct pr_pos partE[4] = { {18,12}, {16,14}, {16,22}, {18,24} }; struct pr_pos partF[4] = { {1,24}, {3,22}, {15,22}, {17,24} }; struct pr_pos partG[4] = { {12,0}, {10,2}, {10,10}, {12,12} }; struct pr_pos partH[4] = { {12,12}, {10,14}, {10,22}, {12,24} }; struct pr_pos partI[4] = { {0,0}, {2,2}, {15,2}, {17,0} }; struct pr_pos partJ[4] = { {1,24}, {3,22}, {16,22}, {18,24} }; struct pr_pos partK[4] = { {0,24}, {2,22}, {15,22}, {17,24} }; struct pr_pos partL[4] = { {1,0}, {3,2}, {16,2}, {18,0} }; struct pr_pos partM[4] = { {10,6}, {12,8}, {10,10}, {8,8} }; struct pr_pos partN[4] = { {10,14}, {12,16}, {10,18}, {8,16} }; struct pr_pos partO[6] = { {1,12}, {2,11}, {16,11}, {17,12}, {16,13}, {2,13}}; struct pr_pos dummyA[4] = { {0,0}, {0,0}, {0,0}, {0,0} }; struct pr_pos dummyB[4] = { {0,0}, {0,0}, {0,0}, {0,0} }; struct pr_pos dummyC[4] = { {0,0}, {0,0}, {0,0}, {0,0} }; struct pr_pos dummyD[4] = { {0,0}, {0,0}, {0,0}, {0,0} }; struct pr_pos dummyE[4] = { {0,0}, {0,0}, {0,0}, {0,0} }; struct pr_pos dummyF[4] = { {0,0}, {0,0}, {0,0}, {0,0} }; struct pr_pos dummyG[4] = { {0,0}, {0,0}, {0,0}, {0,0} }; struct pr_pos dummyH[4] = { {0,0}, {0,0}, {0,0}, {0,0} }; struct pr_pos dummyI[4] = { {0,0}, {0,0}, {0,0}, {0,0} }; struct pr_pos dummyJ[4] = { {0,0}, {0,0}, {0,0}, {0,0} }; struct pr_pos dummyK[4] = { {0,0}, {0,0}, {0,0}, {0,0} }; struct pr_pos dummyL[4] = { {0,0}, {0,0}, {0,0}, {0,0} }; struct pr_pos dummyM[4] = { {0,0}, {0,0}, {0,0}, {0,0} }; struct pr_pos dummyN[4] = { {0,0}, {0,0}, {0,0}, {0,0} }; struct pr_pos dummyO[6] = { {0,0}, {0,0}, {0,0}, {0,0}, {0,0}, {0,0}}; struct pr_pos *defaultFont[] = {partA, partB, partC, partD, partE, partF, partG, partH, partI, partJ, partK, partL, partM, partN, partO}; struct pr_pos *workingFont[] = {dummyA, dummyB, dummyC, dummyD, dummyE, dummyF, dummyG, dummyH, dummyI, dummyJ, dummyK, dummyL, dummyM, dummyN, dummyO}; static int cs[360], sn[360]; static char date_buf[25]; static short my_fifty_data[] = { 0xAAAA,0x5555,0xAAAA,0x5555,0xAAAA,0x5555,0xAAAA,0x5555, 0xAAAA,0x5555,0xAAAA,0x5555,0xAAAA,0x5555,0xAAAA,0x5555 }; mpr_static(my_fifty_patch, 16, 16, 1, my_fifty_data); Server_image gray_patch; static struct itimerval timer; static void draw_circle(); static void paint_hands(); static void paint_ticks(); static void erase_second_hand(); static void enable_timer(); static Notify_value clock_resize_proc(); static Notify_value clock_repaint_proc(); static void analog_resize_proc(); static void analog_repaint(); static void icon_repaint(); static void dig_repaint(); static void dig_resize_proc(); static void backup_values(); static void show_props(); static Notify_value timer_expired (); static Notify_value analog_timer_expired(); static Notify_value icon_timer_expired(); static Notify_value dig_timer_expired(); typedef enum {digital, analog} Face; /* Clock Options. BAK values are used when property sheet is reset */ typedef struct clckOptions { Frame frame; Panel panel; Panel_item apply_button; Panel_item reset_button; Panel_item defaults_button; Panel_item faceStr; /* "Clock Face" */ Panel_item faceChoice; /* digital, analog */ Face face; /* faceChoice value */ Face faceBAK; /* faceChoice temp value */ Panel_item displayStr; /* "Display Options" */ Panel_item secondsToggle; /* seconds toggle item */ int seconds; /* seconds toggle value */ int secondsBAK; /* seconds toggle temp value */ Panel_item dateToggle; /* date toggle item */ int date; /* date toggle value */ int dateBAK; /* date toggle temp value */ } ClockOptions, *Options; /* Coordinates & measures used to display/resize both clock faces */ typedef struct displayInfo { Server_image images[12]; /* number images for digital clock */ int fontHeight; /* number images' height */ int fontWidth; /* number images' width */ int y_coord; /* number images' y-coordinate */ Xv_Font font; /* roman-sans8 */ int slots[6]; /* cached x_coor for digital layout*/ struct { int lastSecX; /* cached last second_hand x_coor */ int lastSecY; /* cached last second_hand y_coor */ int lastSecX1; /* cached last second_hand x1_coor */ int lastSecY1; /* cached last second_hand y1_coor */ } secondhand; struct { /* cached last hands coor */ int angle1; int angle2; int width; int radius; /* circle radius */ } hands; } DisplayInfo, *ClockDisplay; /* Main Object */ typedef struct clckObject { Frame frame; Canvas canvas; Pixwin * pw; Icon icon; Pixwin * iconpw; Options options; ClockDisplay display; Menu menu; } ClockObject, *Clock; Server_image handspr; Server_image spotpr; Server_image dotspr; Server_image tempr; Server_image iconpr; Server_image iconhandspr; Server_image icondotspr; Server_image iconspotpr; Server_image icontempr; int key; /* squirrled away for KEY_DATA */ int lastw; int lasth; void print_event (handle, event) Xv_window handle; Event *event; { static int i = 0; if (event_action (event) == LOC_MOVE) printf ("LOC_MOVE"); else if (event_action (event) == LOC_WINENTER) printf ("LOC_WINENTER"); else if (event_action (event) == LOC_WINEXIT) printf ("LOC_WINEXIT"); else if (event_action (event) == ACTION_SELECT) printf ("ACTION_SELECT"); else if (event_action (event) == ACTION_ADJUST) printf ("ACTION_ADJUST"); else if (event_action (event) == ACTION_MENU) printf ("ACTION_MENU"); else if (event_action (event) == LOC_MOVEWHILEBUTDOWN) printf ("LOC_MOVEWHILEBUTDOWN"); else if (event_action (event) == LOC_DRAG) printf ("LOC_DRAG"); else if (event_action (event) == WIN_REPAINT) printf ("WIN_REPAINT"); else if (event_action (event) == WIN_RESIZE) printf ("WIN_RESIZE"); else if (event_action (event) == WIN_MAP_NOTIFY) printf ("WIN_MAP_NOTIFY"); else if (event_action (event) == WIN_UNMAP_NOTIFY) printf ("WIN_UNMAP_NOTIFY"); else if (event_action (event) == KBD_USE) printf ("KBD_USE\t"); else if (event_action (event) == KBD_DONE) printf ("KBD_DONE"); else if (event_action (event) == WIN_CLIENT_MESSAGE) printf ("WIN_CLIENT_MESSAGE"); else if (event_action (event) == WIN_UNUSED_11) printf ("WIN_UNUSED_11"); else if (event_action (event) == ACTION_DRAG_LOAD) printf ("ACTION_DRAG_LOAD"); else printf ("unknown"); printf ("\t"); if (event_is_up (event)) printf ("UP"); if (event_is_down (event)) printf ("DOWN"); printf ("\tx = %d y = %d w = %d h = %d\n", event_x(event), event_y(event), (int) xv_get(handle, XV_WIDTH, 0), (int) xv_get(handle, XV_HEIGHT, 0)); } static void readrc(o) Options o; { struct passwd *pw; char buf[100]; FILE *fp; if (o==NULL) return; o-> face = analog; o-> seconds = 0; o-> date = 0; pw = getpwuid (getuid ()); if (pw == NULL) { fprintf(stderr,"clock: can't find home directory\n"); exit(1); } strcpy(buf, pw->pw_dir); strcat(buf, "/"); strcat(buf, ".clockrc"); fp = fopen(buf, "r"); if (fp == NULL) return; fscanf(fp, "%d %d %d", &o->face, &o->seconds, &o->date); backup_values (o); fclose(fp); } static void writerc(o) Options o; { struct passwd *pw; char buf[100]; FILE *fp; if (o==NULL) return; pw = getpwuid (getuid()); if (pw==NULL) { fprintf (stderr, "clock: can't find home directory\n"); exit (1); } strcpy (buf, pw->pw_dir); strcat (buf, "/"); strcat (buf, ".clockrc"); fp = fopen (buf, "w"); if (fp==NULL) return; fprintf (fp, "%d %d %d\n", o->face, o->seconds, o->date); fclose (fp); } static void cleanup(c) Clock c; { if (c==NULL) return; free(c->options); free(c->display); free(c); } grow_font (factor, startingFont) int factor; struct pr_pos *startingFont[]; { int i, j; for (i = 0; i < 14; i++) for (j = 0; j < 4; j++) { workingFont[i][j].x = (startingFont[i][j].x * factor); workingFont[i][j].y = (startingFont[i][j].y * factor); } for (i = 14; i < 15; i++) for (j=0; j < 6; j++) { workingFont[i][j].x = (startingFont[i][j].x * factor); workingFont[i][j].y = (startingFont[i][j].y * factor); } } static Notify_value canvas_interpose(pw, event, arg, type) Pixwin *pw; Event *event; Notify_arg arg; Notify_event_type type; { Clock c; Options o; Notify_value rc; int id; /*print_event(pw, event); */ rc = notify_next_event_func (pw, event, arg, type); id = event_action(event); c = (Clock) xv_get(pw, XV_KEY_DATA, key, 0); switch(id) { case WIN_REPAINT: (void)clock_repaint_proc(c->canvas, pw, NULL); break; case WIN_RESIZE: /* pw doesn't get WIN_RESIZE; more horse shit */ (void)clock_resize_proc(pw, (int)xv_get(pw, XV_WIDTH, 0), (int)xv_get(pw, XV_HEIGHT, 0)); break; case ACTION_MENU: if (event_is_down(event)) { menu_show((Menu) xv_get(pw, WIN_MENU, 0), pw, event, 0); /* menu_show(c->menu, c->canvas, event, 0); */ /* xv_set(c->menu, XV_SHOW, TRUE, 0); */ } break; } return(rc); } /* Interpose only to watch for open & close of tool to repaint icon */ static Notify_value frame_interpose (frame, event, arg, type) Frame frame; Event *event; Notify_arg arg; Notify_event_type type; { int w, h, smaller; Notify_value rc; Clock c; rc = notify_next_event_func (frame, event, arg, type); if (event_action(event) == ACTION_CLOSE) { c = (Clock) xv_get (frame, XV_KEY_DATA, key, 0); w = (int) xv_get (c->canvas, XV_WIDTH, 0); h = (int) xv_get (c->canvas, XV_HEIGHT, 0); centerX=0; centerY=0; pw_write(c->pw, 0, 0, w, h, PIX_CLR, 0, 0, 0); init_images(c, 64, 64); icon_repaint(c->icon, c->iconpw, NULL); } if (event_action(event) == ACTION_OPEN) { c = (Clock) xv_get (frame, XV_KEY_DATA, key, 0); w = (int) xv_get (c->canvas, XV_WIDTH, 0); h = (int) xv_get (c->canvas, XV_HEIGHT, 0); centerX=0; centerY=0; smaller = min(w, h); init_images(c, smaller, smaller); clock_repaint_proc(c->canvas, c->pw, NULL); } return(rc); } static Notify_value icon_interpose (icon, event, arg, type) Icon icon; Event *event; Notify_arg arg; Notify_event_type type; { Notify_value rc; Clock c; rc = notify_next_event_func(icon, event, arg, type); c = (Clock) xv_get(icon, XV_KEY_DATA, key, 0); if (event_action(event) == WIN_REPAINT) { icon_repaint(icon, c->iconpw, NULL); } return(rc); } static Notify_value clock_repaint_proc (canvas, pw, area) Canvas canvas; Pixwin * pw; Rectlist *area; { int w, h; Clock c; c = (Clock) xv_get (canvas, XV_KEY_DATA, key, 0); w = (int) xv_get (canvas, XV_WIDTH, 0); h = (int) xv_get (canvas, XV_HEIGHT, 0); pw_write (pw, 0, 0, w, h, PIX_CLR, 0, 0, 0); switch (c->options->face) { case analog: analog_repaint (canvas, pw, area); break; case digital: dig_repaint (canvas, pw, area); break; } return(NOTIFY_DONE); } static Server_image make_image (w, h, kd) int w, h; caddr_t kd; { Server_image i; i = (Server_image) xv_create (NULL, SERVER_IMAGE, XV_WIDTH, w, XV_HEIGHT, h, SERVER_IMAGE_DEPTH, 1, 0); xv_set (i, XV_KEY_DATA, key, kd, 0); pw_write (i, 0, 0, w, h, PIX_CLR, 0, 0, 0); return (i); } init_images (c, w, h) Clock c; int w, h; { int now; struct tm *tm; /* resize the remote images */ now = time(0); tm = localtime (&now); if (tempr != NULL) xv_destroy (tempr); tempr = make_image (w, h, c); if (handspr != NULL) xv_destroy (handspr); handspr = make_image (w, h, c); paint_hands (c, handspr, tm-> tm_min*6, tm-> tm_hour*30 + tm-> tm_min/2, min(w, h)); if (dotspr != NULL) xv_destroy (dotspr); dotspr = make_image (w, h, c); if (spotpr != NULL) xv_destroy (spotpr); spotpr = make_image (w/12, h/12, c); draw_circle (spotpr, armwidth(w)/8); paint_ticks (dotspr, w/2, spotpr); } static int min (a, b) int a, b; { return (a display; smaller = min(cwidth,cheight); pw_write(c->pw, 0, 0, cwidth, cheight, PIX_CLR, 0, 0, 0); switch (c->options->face) { case digital: if (cwidth < MIN_DIG_WIDTH) { cwidth = MIN_DIG_WIDTH; /* return (NOTIFY_DONE); */ } break; default: break; } /* ANALOG STUFF */ d->secondhand.lastSecX = -1; init_images (c, smaller, smaller); /* make clock fit */ /* DIGITAL STUFF */ if (smaller < MIN_DIG_WIDTH) smaller = 0; fontWidth = (3.0/4.0 * (double) cwidth / 6.0); fontHeight = (4.0/3.0 * (double) fontWidth); while (fontHeight > (3.0/4.0 * cheight)) { fontWidth = fontWidth - 1; fontHeight = 4.0/3.0 * (double) fontWidth; } d-> fontHeight = fontHeight; d-> fontWidth = fontWidth; ratio = fontHeight/MIN_FONT_HEIGHT; scaleFactor = (ratio >= 1) ? ratio : 1; grow_font (scaleFactor, defaultFont); update_slots (c); build_numbers (c); } float pi = 3.14159265; static int rotx(x, y, r, th) /* th is in degrees */ int x, y; int r, th; { float th1; th1 = (th*2.0*pi)/360.0; return((int)((x - r)*cos(th1) - (y - r)*sin(th1) + r)); } static int roty(x, y, r, th) /* th is in degrees */ int x, y; int r, th; { float th1; th1 = (th*2.0*pi)/360.0; return((int)((x - r)*sin(th1) + (y - r)*cos(th1) + r)); } static void init_numbers () { int i; for (i=0; i<360; i++) { cs[i] = (int) rint (100.0*cos(i*pi/180)); sn[i] = (int) rint (100.0*sin(i*pi/180)); } } static void draw_line(pr, offset, x1,y1,x2,y2,color) { pw_vector(pr,x1+offset,y1+offset, x2+offset,y2+offset,PIX_SRC,color); pw_vector(pr,y1+offset,x1+offset, y2+offset,x2+offset,PIX_SRC,color); pw_vector(pr,-x1+offset,y1+offset, -x2+offset,y2+offset,PIX_SRC,color); pw_vector(pr,x1+offset,-y1+offset, x2+offset,-y2+offset,PIX_SRC,color); pw_vector(pr,y1+offset,-x1+offset, y2+offset,-x2+offset,PIX_SRC,color); pw_vector(pr,-y1+offset,x1+offset, -y2+offset,x2+offset,PIX_SRC,color); pw_vector(pr,-y1+offset,-x1+offset, -y2+offset,-x2+offset,PIX_SRC,color); pw_vector(pr,-x1+offset,-y1+offset, -x2+offset,-y2+offset,PIX_SRC,color); } static int armwidth (r) { int w; float fudge = 1.0 + (20.0/r); if (fudge > 1.6) fudge = 1.6; w = (int) rint ((double)fudge * r/ 8.0); if (w%2 == 0) w++; return (w); } static void paint_ticks (pw, radius, spotpr) Pixwin *pw; Server_image spotpr; int radius; { int i; int arm_width = armwidth (radius); for (i=0; i<12; i++) pw_write (pw, cs[i*30] * 20 * radius/2400+radius-arm_width/4, sn[i*30] * 20 * radius/2400+radius-arm_width/4, arm_width+1, arm_width+1, PIX_SRC | PIX_DST, spotpr, 0, 0); } static void draw_circle (pr, r) Server_image pr; int r; { int x, y, y_pos[100], d; x=0; y=r; d = 3-2*r; y_pos[0]=y; while (x < y) { if (d < 0) d+=4 * x + 6; else { d+=4 * (x-y) + 10; y--; } x++; y_pos[x] = y; } y_pos[x+1] = -1; x=0; while (y_pos[x] > 0) { draw_line (pr, r, x, 0, x, y_pos[x], 1); x++; } } static void erase_hand (c, x1, y1, x2, y2, x3, y3, angle, diameter) Clock c; { int nptarr[1]; struct pr_pos vlist[3]; int xx1, yy1, xx2, yy2, xx3, yy3; Pixwin *pw; nptarr[0] = 3; pw = c->pw; /* rotate */ xx1 = rotx(x1, y1, diameter/2, angle); yy1 = roty(x1, y1, diameter/2, angle); xx2 = rotx(x2, y2, diameter/2, angle); yy2 = roty(x2, y2, diameter/2, angle); xx3 = rotx(x3, y3, diameter/2, angle); yy3 = roty(x3, y3, diameter/2, angle); vlist[0].x = xx1; vlist[0].y = yy1; vlist[1].x = xx2; vlist[1].y = yy2; vlist[2].x = xx3; vlist[2].y = yy3; pw_polygon_2(pw, 0, 0, 1, nptarr, vlist, PIX_CLR, 0, 0, 0); pw_vector(pw, vlist[0].x, vlist[0].y, vlist[1].x, vlist[1].y, PIX_CLR, 1); pw_vector(pw, vlist[0].x, vlist[0].y, vlist[2].x, vlist[2].y, PIX_CLR, 1); pw_vector(pw, vlist[1].x, vlist[1].y, vlist[2].x, vlist[2].y, PIX_CLR, 1); } erase_hands (c) Clock c; { int w, angle1, angle2; int x1, y1, yy1, x2, y2, x3, y3; int fromrim, topext, leftext; ClockDisplay d; Pixwin *pw; d = c->display; pw = c->pw; w = d->hands.width; angle1 = d->hands.angle1; if (angle1==-1) return; angle2 = d->hands.angle2; fromrim = (FROMRIM*w)/128; leftext = (LEFTEXT*w)/128; topext = (TOPEXT*w)/128; /* tip of hand */ x1 = w/2; y1 = fromrim; yy1 = w/2 - (2*(w/2 - fromrim))/3; /* lower left hand of hand */ x2 = w/2 - leftext; y2 = w/2 + topext; /* lower right hand of hand */ x3 = w/2 + leftext; y3 = w/2 + topext; /* hour hand */ erase_hand (c, x1, yy1, x2, y2, x3, y3, angle2, w); /* minute hand */ erase_hand (c, x1, y1, x2, y2, x3, y3, angle1, w); } static void paint_hand (pr, x1, y1, x2, y2, x3, y3, angle, diameter) Server_image pr; { int nptarr[1]; struct pr_pos vlist[3]; int xx1, yy1, xx2, yy2, xx3, yy3; nptarr[0] = 3; /* rotate */ xx1 = rotx(x1, y1, diameter/2, angle); yy1 = roty(x1, y1, diameter/2, angle); xx2 = rotx(x2, y2, diameter/2, angle); yy2 = roty(x2, y2, diameter/2, angle); xx3 = rotx(x3, y3, diameter/2, angle); yy3 = roty(x3, y3, diameter/2, angle); vlist[0].x = xx1; vlist[0].y = yy1; vlist[1].x = xx2; vlist[1].y = yy2; vlist[2].x = xx3; vlist[2].y = yy3; pw_polygon_2(pr, 0, 0, 1, nptarr, vlist, PIX_SRC, gray_patch, 0, 0); pw_vector(pr, vlist[0].x, vlist[0].y, vlist[1].x, vlist[1].y, PIX_SET, 1); pw_vector(pr, vlist[0].x, vlist[0].y, vlist[2].x, vlist[2].y, PIX_SET, 1); pw_vector(pr, vlist[1].x, vlist[1].y, vlist[2].x, vlist[2].y, PIX_SET, 1); } static void paint_hands (c, pr, angle1, angle2, w) Clock c; Server_image pr; int angle1; /* long hand */ int angle2; /* short hand */ int w; /* canvas width */ { int x1, y1, yy1, x2, y2, x3, y3; int fromrim, topext, leftext; ClockDisplay d; d = c->display; /* cache hands positions for erasing later. perf mod. */ d->hands.angle1 = angle1; d->hands.angle2 = angle2; d->hands.width = w; fromrim = (FROMRIM*w)/128; leftext = (LEFTEXT*w)/128; topext = (TOPEXT*w)/128; /* tip of hand */ x1 = w/2; y1 = fromrim; yy1 = w/2 - (2*(w/2 - fromrim))/3; /* lower left hand of hand */ x2 = w/2 - leftext; y2 = w/2 + topext; /* lower right hand of hand */ x3 = w/2 + leftext; y3 = w/2 + topext; /* hour hand */ paint_hand (pr, x1, yy1, x2, y2, x3, y3, angle2, w); /* minute hand */ paint_hand (pr, x1, y1, x2, y2, x3, y3, angle1, w); } static void erase_date (c) Clock c; { xv_set(c->frame, FRAME_LABEL, "", 0); date_buf[0] = NULL; } static void paint_date (c) Clock c; { int now; struct tm *tm; char buf[25]; Frame f; f = c-> frame; now = time(0); tm = localtime (&now); sprintf (buf, "%s %d", months[tm->tm_mon], tm->tm_mday); if (strcmp(buf, date_buf)) { xv_set (f, FRAME_LABEL, buf, 0); strcpy(date_buf, buf); } } static void erase_second_hand (c) Clock c; { int x1, y1, x2, y2; ClockDisplay d = c->display; Pixwin *pw; d = c->display; if (xv_get(c->frame, FRAME_CLOSED, 0)) { pw = (Pixwin *)c->icon; } else { pw = c->pw; } /* burn the last displayed second hand off */ x1 = d->secondhand.lastSecX; y1 = d->secondhand.lastSecY; x2 = d->secondhand.lastSecX1; y2 = d->secondhand.lastSecY1; if (x1 != -1) pw_vector (pw, x1, y1, x2, y2, PIX_SRC ^ PIX_DST, 1); } static void paint_second_hand (c) Clock c; { int x, y, diameter, radius, now, fromrim, angle, height, width; struct tm *tm; ClockDisplay d; Pixwin *pw; if (!seconds_on (c->options)) return; now = time(0); tm = localtime (&now); angle = tm-> tm_sec * 6; d = c-> display; if (xv_get(c->frame, FRAME_CLOSED, 0)) { pw = (Pixwin *)c->icon; /* pretty bogus */ width = 64; height = 64; diameter = 64; } else { pw = c->pw; width = (int)xv_get (pw, XV_WIDTH, 0); height = (int)xv_get (pw, XV_HEIGHT, 0); diameter= (int)xv_get(handspr, XV_WIDTH, 0); /*fprintf(stderr, "w=%d, h=%d, di=%d\n", width, height, diameter);*/ } radius = diameter/2; fromrim = (FROMRIM*diameter)/128; x = rotx (radius, fromrim, radius, angle); y = roty (radius, fromrim, radius, angle); /*fprintf(stderr, "ra=%d, rim=%d, x=%d, y=%d\n\n", radius, fromrim, x, y);*/ /* cache the new second, then paint */ d->secondhand.lastSecX = width/2; d->secondhand.lastSecY = height/2; d->secondhand.lastSecX1 = centerX+x; d->secondhand.lastSecY1 = centerY+y; /*fprintf(stderr, "centerX=%d, centerY=%d\n", centerX, centerY);*/ pw_vector (pw, width/2, height/2, centerX+x, centerY+y, PIX_SRC ^ PIX_DST, 1); } static Notify_value timer_expired (me, which) Notify_value me; int which; { int closed; Clock c; Options o; c = (Clock) xv_get (me, XV_KEY_DATA, key, 0); o = c-> options; closed = (int)xv_get(me, FRAME_CLOSED, 0); if (closed) return (icon_timer_expired (me, which)); switch (o-> face) { case digital: return (dig_timer_expired (me, which,FALSE)); break; case analog: return (analog_timer_expired (me, which)); break; } } static void center (cwidth, cheight, x, y, w, h) int cwidth, cheight; int *x, *y; int w, h; { *x = (cwidth-w)/2; *y = (cheight-h)/2; /*fprintf(stderr, "centerX=%d, centerY=%d\n", cwidth, cheight);*/ } static void analog_repaint (canvas, pw, area) Canvas canvas; Pixwin * pw; Rectlist *area; { int w, h, x, y, prw, prh, now; struct tm *tm; Clock c; c = (Clock) xv_get (canvas, XV_KEY_DATA, key, 0); now = time(0); tm = localtime (&now); w = (int) xv_get (canvas, XV_WIDTH, 0); h = (int) xv_get (canvas, XV_HEIGHT, 0); prw = (int) xv_get (handspr, XV_WIDTH, 0); prh = (int) xv_get (handspr, XV_HEIGHT, 0); pw_write (handspr, 0, 0, prw, prh, PIX_CLR, 0, 0, 0); paint_hands (c, handspr, tm-> tm_min*6, tm-> tm_hour*30 + tm-> tm_min/2, prw); pw_write (handspr, 0, 0, prw, prh, PIX_SRC | PIX_DST, dotspr, 0, 0); center (w, h, ¢erX, ¢erY, prw, prh); pw_write (pw, centerX, centerY, prw, prh, PIX_SRC, handspr, 0, 0); if (seconds_on (c->options)) paint_second_hand(c); /* c->display->secondhand.lastSecX = -1; */ } static void icon_repaint (i, pw, area) Icon i; Pixwin *pw; Rectlist *area; { int now; Font_string_dims size; struct tm *tm; Clock c; c = (Clock) xv_get(i, XV_KEY_DATA, key, 0); now = time(0); tm = localtime (&now); pw_write (iconhandspr, 3, 3, 58, 58, PIX_CLR, 0, 0, 0); paint_hands (c, iconhandspr, tm-> tm_min*6, tm-> tm_hour*30 + tm-> tm_min/2, 64); pw_write (iconhandspr, 0, 0, 64, 64, PIX_SRC | PIX_DST, icondotspr, 0, 0); /* draw icon border pw_vector (iconhandspr, 0, 0, 63, 0, PIX_SET, 3); pw_vector (iconhandspr, 0, 0, 0, 63, PIX_SET, 3); pw_vector (iconhandspr, 63, 0, 63, 63, PIX_SET, 3); pw_vector (iconhandspr, 0, 63, 63, 63, PIX_SET, 3); */ pw_write (c->icon, 0, 0, 64, 64, PIX_SRC, iconhandspr, 0, 0); if (seconds_on (c->options)) paint_second_hand(c); } static Notify_value icon_timer_expired (me, which) { static int mins, hours; int now, w, h; struct tm *tm; Font_string_dims size; Clock c; Xv_Font f; c = (Clock) xv_get (me, XV_KEY_DATA, key, 0); now = time(0); tm = (struct tm *) localtime (&now); if (tm-> tm_min != mins || tm-> tm_hour != hours) { mins = tm-> tm_min; hours = tm-> tm_hour; icon_repaint (c->icon, c->iconpw, NULL); } else { if (seconds_on (c->options)) { erase_second_hand(c); paint_second_hand(c); } } if (date_on (c->options)) paint_date (c); return (NOTIFY_DONE); } static Notify_value analog_timer_expired (me, which) Notify_value me; int which; { static int mins, hours; int now, x, y, w, h, prw, prh; struct tm *tm; Clock c; c = (Clock) xv_get (me, XV_KEY_DATA, key, 0); w = (int) xv_get (c->canvas, XV_WIDTH, 0); h = (int) xv_get (c->canvas, XV_HEIGHT, 0); prw = (int) xv_get (tempr, XV_WIDTH, 0); prh = (int) xv_get (tempr, XV_HEIGHT, 0); now = time(0); tm = (struct tm *) localtime (&now); if (tm-> tm_min != mins || tm-> tm_hour != hours) { mins = tm-> tm_min; hours = tm-> tm_hour; analog_repaint (c->canvas, c->pw, NULL); } else { /* center (w, h, ¢erX, ¢erY, prw, prh); pw_write(c->pw, x, y, prw, prh, PIX_SRC, tempr, 0, 0); */ if (seconds_on (c->options)) { erase_second_hand(c); paint_second_hand(c); } } if (date_on (c-> options)) paint_date (c); return (NOTIFY_DONE); } static void paint_dig_seconds (c, tm) Clock c; struct tm *tm; { int fontHeight, descent, y_coord; Xv_Font font; /* struct pr_size fontSize; */ Font_string_dims fontSize; Pixwin * pw; ClockDisplay d; Canvas canvas; canvas = c-> canvas; d = c-> display; pw = c-> pw; font = d-> font; fontHeight = d-> fontHeight; /* fontSize = xv_pf_textwidth (1, d-> font, "f"); */ xv_get(d-> font, FONT_STRING_DIMS, "f", &fontSize); y_coord = ((int) xv_get (canvas, XV_HEIGHT, 0)-fontHeight)/2; pw_text (pw, d-> slots[5], fontSize.height + y_coord, PIX_SRC, font, nums[tm-> tm_sec] ); pw_text (pw, d-> slots[5], (2*fontSize.height) + y_coord + 3, /* 3 = fudge factor */ PIX_SRC, font, (tm-> tm_hour < 12) ? "am" : "pm"); } static void dig_repaint (canvas, pw, area) Canvas canvas; Pixwin * pw; Rectlist *area; { int i, now, y_coord, fontHeight, fontWidth; struct tm *tm; Clock c; ClockDisplay d; c = (Clock) xv_get (canvas, XV_KEY_DATA, key, 0); d = c-> display; fontHeight = d-> fontHeight; fontWidth = d-> fontWidth; now = time(0); tm = localtime (&now); y_coord = ((int) xv_get (canvas, XV_HEIGHT, 0)-fontHeight)/2; d->y_coord = y_coord; if (tm-> tm_hour == 0) tm-> tm_hour = 12; if (majorHour[tm-> tm_hour] == 1) pw_write (pw, d-> slots[0], y_coord, fontWidth, fontHeight, PIX_SRC, d-> images[1], 0, 0); else pw_write (pw, d-> slots[0], y_coord, fontWidth, fontHeight, PIX_SRC, d-> images[11], 0, 0); pw_write (pw, d-> slots[1], y_coord, fontWidth, fontHeight, PIX_SRC, d-> images[minorHour[tm-> tm_hour]], 0, 0); pw_write (pw, d-> slots[2], y_coord, fontWidth, fontHeight, PIX_SRC, d-> images[10], 0, 0); pw_write (pw, d-> slots[3], y_coord, fontWidth, fontHeight, PIX_SRC, d-> images[tm-> tm_min/10], 0, 0); pw_write (pw, d-> slots[4], y_coord, fontWidth, fontHeight, PIX_SRC, d-> images[tm-> tm_min % 10], 0, 0); if (seconds_on (c-> options)) paint_dig_seconds (c, tm); } static Notify_value dig_timer_expired (me, which, invalidate) Notify_value me; int which, invalidate; { static int mins, hours; int now; struct tm *tm; Clock c; c = (Clock) xv_get(me, XV_KEY_DATA, key, 0); now = time(0); tm = (struct tm *) localtime(&now); if (tm->tm_min != mins || tm-> tm_hour != hours || invalidate) { mins = tm-> tm_min; hours = tm-> tm_hour; dig_repaint (c->canvas, c->pw, NULL); } else { if (seconds_on (c->options)) paint_dig_seconds (c, tm); } if (date_on (c-> options)) paint_date (c); return (NOTIFY_DONE); } static Notify_value clock_reset (item, event) Panel_item item; Event *event; { Clock c = (Clock) xv_get (item, XV_KEY_DATA, key, 0); Options o = c-> options; xv_set (o-> faceChoice, PANEL_VALUE, o-> faceBAK, 0); xv_set (o-> secondsToggle, PANEL_VALUE, o->secondsBAK, 0); xv_set (o-> dateToggle, PANEL_VALUE, o->dateBAK, 0); } static int date_changed (o) Options o; { if (o==NULL) return(0); return (o->date != o->dateBAK); } static int face_changed (o) Options o; { if (o==NULL) return (0); return (o->face != o->faceBAK); } static int seconds_changed (o) Options o; { if (o==NULL) return (0); return (o-> seconds != o-> secondsBAK); } static Notify_value clock_apply (item, event) Panel_item item; Event *event; { int w, h, now; struct tm *tm; Clock c = (Clock) xv_get (item, XV_KEY_DATA, key, 0); ClockDisplay d = c-> display; Options o = c-> options; o-> face = (Face) xv_get (o-> faceChoice, PANEL_VALUE, 0); o-> seconds = (int) xv_get (o-> secondsToggle, PANEL_VALUE, 0); o-> date = (int) xv_get (o-> dateToggle, PANEL_VALUE, 0); writerc(c->options); if (date_changed(o)) { if (date_on(o)) { paint_date(c); } else { erase_date(c); } } if (seconds_changed (o) || face_changed(o)) { now = time(0); tm = localtime(&now); if (face_changed(o)) { w = (int) xv_get (c->canvas, XV_WIDTH, 0); h = (int) xv_get (c->canvas, XV_HEIGHT, 0); pw_write(c->pw, 0, 0, w, h, PIX_CLR, 0, 0, 0); } if (seconds_changed(o)) { switch (o-> face) { case digital: if (seconds_on(o)) { enable_timer(c->frame, 0, 1, 0, 1); } else { pw_write(c->pw, d->slots[5], d->y_coord, d->fontWidth, 5000, PIX_CLR, 0, 0, 0); enable_timer (c->frame, 0, 60-tm->tm_sec, 0, 60); dig_repaint(c->canvas, c->pw, NULL); } break; case analog: if (seconds_on(o)) { enable_timer(c->frame, 0, 1, 0, 1); } else { enable_timer (c->frame, 0, 60-tm->tm_sec, 0, 60); if (xv_get(c->frame, FRAME_CLOSED, 0)) { icon_repaint(c->icon, c->iconpw, NULL); } else { analog_repaint(c->canvas, c->pw, NULL); } d->secondhand.lastSecX = -1; } break; } backup_values(o); xv_set(o->frame, XV_SHOW, FALSE, 0); return; } backup_values(o); clock_repaint_proc (c->canvas, c->pw, NULL); xv_set(o->frame, XV_SHOW, FALSE, 0); return; } clock_repaint_proc (c->canvas, c->pw, NULL); backup_values(o); } static Notify_value clock_defaults(item, event) Panel_item item; Event *event; { Clock c = (Clock) xv_get (item, XV_KEY_DATA, key, 0); ClockDisplay d = c-> display; Options o = c-> options; xv_set(o-> faceChoice, PANEL_VALUE, 1, 0); o->face=digital; xv_set(o-> secondsToggle, PANEL_VALUE, 0, 0); o->seconds=0; xv_set(o-> dateToggle, PANEL_VALUE, 0, 0); o->date=0; writerc(c->options); clock_repaint_proc(c->canvas, c->pw, NULL); xv_set(o->frame, XV_SHOW, FALSE, 0); } layout_options (o) Options o; { Font_string_dims size; int wd = 128; char *str = ""; Pixfont *pf = (Pixfont *) xv_get (o->panel, XV_FONT, 0); str = (char *) xv_get (o-> faceStr, PANEL_LABEL_STRING, 0); xv_get(pf, FONT_STRING_DIMS, str, &size); xv_set (o-> faceStr, XV_X, wd - size.width, XV_Y, xv_row (o-> panel, 1), 0); xv_set (o-> faceChoice, XV_X, xv_get (o-> faceStr, XV_X, 0) + size.width + 15, XV_Y, xv_row (o-> panel, 1), 0); str = (char *) xv_get (o-> displayStr, PANEL_LABEL_STRING, 0); xv_get(pf, FONT_STRING_DIMS, str, &size); xv_set (o-> displayStr, XV_X, wd - size.width, XV_Y, xv_row (o->panel, 2), 0); xv_set (o-> secondsToggle, XV_X, xv_get (o-> displayStr, XV_X, 0) + size.width + 22, XV_Y, xv_row(o-> panel, 2), 0); xv_set (o-> dateToggle, XV_X, xv_get (o-> secondsToggle, XV_X, 0) + 80, XV_Y, xv_row (o-> panel, 2), 0); xv_set (o-> apply_button, XV_X, xv_get(o->displayStr, XV_X, 0)+30, XV_Y, xv_row (o-> panel, 3), 0); xv_set (o-> reset_button, XV_X, xv_get(o->apply_button, XV_X, 0)+60, XV_Y, xv_row (o-> panel, 3), 0); xv_set (o-> defaults_button, XV_X, xv_get(o->reset_button, XV_X, 0)+60, XV_Y, xv_row (o-> panel, 3), 0); } static int digital_on (o) Options o; { int v; if (o==NULL) return (0); return (o-> face == digital); } static int seconds_on (o) Options o; { if (o==NULL) return (0); return (o-> seconds); } static int date_on (o) Options o; { int v; if (o==NULL) return (0); return (o-> date); } static void init_options (c) Clock c; { int wd=40; Options o; if (c == NULL) return; o = c-> options; o-> frame = (Frame) xv_create (c-> frame, FRAME_PROPS, XV_LABEL, "Clock Properties", XV_X, 0, XV_Y, 0, XV_SHOW, FALSE, FRAME_SHOW_FOOTER, TRUE, XV_HELP_DATA, "clock:PropertyFrame", 0); xv_set (o-> frame, XV_KEY_DATA, key, c, 0); o-> panel = (Panel) xv_get (o-> frame, FRAME_PROPS_PANEL, 0); xv_set (o-> panel, XV_X, 0, XV_Y, 0, XV_WIDTH, 350, XV_HEIGHT, xv_row(o-> panel, 4), XV_HELP_DATA, "clock:PropertyPanel", 0); xv_set (o-> panel, XV_KEY_DATA, key, c, 0); o-> apply_button = (Panel_item) xv_create (o->panel, PANEL_BUTTON, PANEL_LABEL_BOLD, TRUE, PANEL_LABEL_STRING, "Apply", PANEL_NOTIFY_PROC, clock_apply, XV_KEY_DATA, key, c, XV_HELP_DATA, "clock:ApplyButton", 0); o-> reset_button = (Panel_item) xv_create (o->panel, PANEL_BUTTON, PANEL_LABEL_BOLD, TRUE, PANEL_LABEL_STRING, "Reset", PANEL_NOTIFY_PROC, clock_reset, XV_KEY_DATA, key, c, XV_HELP_DATA, "clock:ResetButton", 0); o-> defaults_button = (Panel_item) xv_create (o->panel, PANEL_BUTTON, PANEL_LABEL_BOLD, TRUE, PANEL_LABEL_STRING, "Defaults", PANEL_NOTIFY_PROC, clock_defaults, XV_KEY_DATA, key, c, XV_HELP_DATA, "clock:DefaultButton", 0); o-> faceStr = (Panel_item) xv_create (o-> panel, PANEL_MESSAGE, PANEL_LABEL_BOLD, TRUE, PANEL_LABEL_STRING, "Clock Face:", XV_HELP_DATA, "clock:FaceStyle", 0); o-> faceChoice = (Panel_item) xv_create (o-> panel, PANEL_CHOICE, PANEL_CHOICE_STRINGS, "digital", "analog", 0, PANEL_VALUE, o->face, XV_HELP_DATA, "clock:FaceStyle", 0); o-> displayStr = (Panel_item) xv_create (o-> panel, PANEL_MESSAGE, PANEL_LABEL_BOLD, TRUE, PANEL_LABEL_STRING, "Display Options:", XV_HELP_DATA, "clock:DisplayStyle", 0); o-> secondsToggle = (Panel_item) xv_create (o-> panel, PANEL_TOGGLE, PANEL_CHOICE_STRINGS, "Seconds", 0, PANEL_VALUE, o->seconds, XV_HELP_DATA, "clock:DisplayStyle", 0); o-> dateToggle = (Panel_item) xv_create (o-> panel, PANEL_TOGGLE, PANEL_CHOICE_STRINGS, "Date", 0, PANEL_VALUE, o->date, XV_HELP_DATA, "clock:DisplayStyle", 0); layout_options (o); window_fit (o-> panel); window_fit (o-> frame); #ifndef NO_LIB_DESKSET ds_position_popup(c->frame, o->frame, DS_POPUP_LOR); #endif NO_LIB_DESKSET } static void backup_values (o) Options o; { if (o==NULL) return; o-> faceBAK = o-> face; o-> secondsBAK = o-> seconds; o-> dateBAK = o-> date; } static void show_props (m, mi) Menu m; Menu_item mi; { Clock c = (Clock) xv_get (m, XV_KEY_DATA, key, 0); Options o; init_options (c); o = c-> options; backup_values (o); xv_set (o->faceChoice, PANEL_VALUE, o->face, 0); xv_set (o->secondsToggle, PANEL_VALUE, o->seconds, 0); xv_set (o->dateToggle, PANEL_VALUE, o->date, 0); xv_set (o->frame, FRAME_PROPS_PUSHPIN_IN, TRUE, 0); xv_set (o->frame, XV_SHOW, TRUE, 0); clock_repaint_proc(c->canvas, c->pw, NULL); } static void enable_timer (clnt, v1, v2, v3, v4) { timer.it_value.tv_usec = v1; timer.it_value.tv_sec = v2; timer.it_interval.tv_usec = v3; timer.it_interval.tv_sec = v4; (void) notify_set_itimer_func (clnt, timer_expired, ITIMER_REAL, &timer, ITIMER_NULL); } static void disable_timer (clnt) { timer.it_value.tv_usec = 0; timer.it_value.tv_sec = 0; timer.it_interval.tv_usec = 0; timer.it_interval.tv_sec = 0; (void) notify_set_itimer_func (clnt, timer_expired, ITIMER_REAL, &timer, ITIMER_NULL); } static void init_icon (c) Clock c; { int w = 64; int h = 64; int dotsize = w/12; icontempr = make_image (w, h, c); iconpr = make_image (w, h, c); icondotspr = make_image (w, h, c); iconhandspr = make_image (w, h, c); iconspotpr = make_image (dotsize, dotsize, c); c->icon = (Icon) xv_create (NULL, ICON, ICON_IMAGE, iconpr, /* WIN_REPAINT, icon_repaint, */ XV_KEY_DATA, key, c, 0); c->iconpw = (Pixwin *) xv_get(c->icon, CANVAS_NTH_PAINT_WINDOW, 0); /* (void) xv_set(c->iconpw, XV_KEY_DATA, key, c, 0); */ notify_interpose_event_func(c->icon, icon_interpose, 0); /* draw icon border pw_write (iconpr, 0, 0, w-1, h-1, PIX_CLR, 0, 0, 0); pw_vector (iconpr, 0, 0, w-1, 0, PIX_SET, 3); pw_vector (iconpr, 0, 0, 0, h-1, PIX_SET, 3); pw_vector (iconpr, w-1, 0, w-1, h-1, PIX_SET, 3); pw_vector (iconpr, 0, h-1, w-1, h-1, PIX_SET, 3); */ /* init round tick marks */ draw_circle (iconspotpr, armwidth(w)/8); paint_ticks (icondotspr, w/2, iconspotpr); /* icon_repaint (c->icon, c->iconpw, NULL); */ } static void init_display (c) Clock c; { ClockDisplay d = (ClockDisplay)c->display; d->secondhand.lastSecX = -1; d->secondhand.lastSecY = -1; d->secondhand.lastSecX1 = -1; d->secondhand.lastSecY1 = -1; d->hands.angle1 = -1; d->hands.angle2 = -1; d->hands.width = -1; d-> fontHeight = MIN_FONT_HEIGHT; d-> fontWidth = MIN_FONT_WIDTH; d-> font = (Xv_Font) xv_create (NULL, FONT, FONT_FAMILY, FONT_FAMILY_LUCIDA, FONT_SIZE, 10, 0); if (d->font==NULL) { d->font = (Xv_Font) xv_create (NULL, FONT, FONT_NAME, "fixed", FONT_SIZE, 10, 0); if (d->font==NULL) { cleanup(c); fprintf(stderr, "%s\n", "Cannot open font"); exit(0); } } } static void init_gray_patch() { gray_patch = make_image(16, 16, key); pw_write (gray_patch, 0, 0, 16, 16, PIX_SRC, &my_fifty_patch, 0, 0); } init_clck (argc, argv) int argc; char **argv; { int now; struct tm *tm; Menu_item tmp_item; char **argscanner = argv; int clock_usersetsize; Clock clck = (Clock) malloc (sizeof (ClockObject)); clck-> display = (ClockDisplay) malloc (sizeof (DisplayInfo)); clck-> options = (Options) malloc (sizeof (ClockOptions)); key = xv_unique_key(); clock_usersetsize = FALSE; while (*argscanner) { if (!strcmp(*argscanner, "-Ws") || !strcmp(*argscanner, "-size") || !strcmp(*argscanner, "-geometry")) { clock_usersetsize = TRUE; } argscanner++; } xv_init (XV_INIT_ARGC_PTR_ARGV, &argc, argv, 0); readrc (clck->options); init_gray_patch(); init_numbers (); init_display (clck); init_icon (clck); clck-> frame = (Frame) xv_create (XV_NULL, FRAME, FRAME_ARGC_PTR_ARGV, &argc, argv, FRAME_SHOW_HEADER, TRUE, FRAME_SHOW_FOOTER, FALSE, FRAME_ARGS, argc, argv, FRAME_SHOW_LABEL, TRUE, FRAME_LABEL, "", FRAME_PROPERTIES_PROC, show_props, FRAME_ICON, clck->icon, XV_HELP_DATA, "clock:ClockFrame", 0); notify_interpose_event_func(clck->frame, frame_interpose, 0); xv_set (clck-> frame, XV_KEY_DATA, key, clck, 0); clck-> menu = xv_create(XV_NULL, MENU, MENU_TITLE_ITEM, "Clock", XV_KEY_DATA, key, clck, 0); tmp_item = xv_create(XV_NULL, MENUITEM, MENU_STRING, "Properties", MENU_ACTION_PROC, show_props, MENU_CLIENT_DATA, 0, XV_HELP_DATA, "clock:Properties", 0); xv_set(clck-> menu, MENU_APPEND_ITEM, tmp_item, 0); clck-> canvas = (Canvas) xv_create (clck-> frame, CANVAS, CANVAS_AUTO_EXPAND, TRUE, CANVAS_AUTO_SHRINK, TRUE, CANVAS_AUTO_CLEAR, TRUE, CANVAS_RETAINED, FALSE, CANVAS_RESIZE_PROC, clock_resize_proc, XV_KEY_DATA, key, clck, XV_SHOW, TRUE, XV_HELP_DATA, "clock:DisplayCanvas", 0); clck-> pw = (Pixwin *) xv_get (clck-> canvas, CANVAS_NTH_PAINT_WINDOW, 0); (void)xv_set(clck->pw, WIN_CONSUME_KBD_EVENTS, KEY_LEFT(3), WIN_MOUSE_BUTTONS, 0, XV_KEY_DATA, key, clck, WIN_MENU, clck->menu, WIN_BIT_GRAVITY, ForgetGravity, /* horse shit */ 0); notify_interpose_event_func(clck->pw, canvas_interpose, 0); init_images (clck, (int) xv_get (clck->canvas, XV_WIDTH, 0), (int) xv_get (clck->canvas, XV_HEIGHT, 0)); now = time (0); tm = localtime (&now); if (!clock_usersetsize) { xv_set (clck->canvas, XV_HEIGHT, digital_on (clck-> options) ? DEF_DIG_HEIGHT : DEF_ANALOG_HEIGHT, 0); xv_set (clck->canvas, XV_WIDTH, digital_on (clck-> options) ? DEF_DIG_WIDTH : DEF_ANALOG_WIDTH, 0); } else { if (xv_get(clck->canvas, XV_HEIGHT) < (digital_on (clck-> options) ? MIN_DIG_HEIGHT : MIN_ANALOG_HEIGHT)) xv_set (clck->canvas, XV_HEIGHT, /* digital_on (clck-> options) ? MIN_DIG_HEIGHT : MIN_ANALOG_HEIGHT, */ MIN_WINDOW_HEIGHT, 0); if (xv_get(clck->canvas, XV_WIDTH) < (digital_on (clck-> options) ? MIN_DIG_WIDTH : MIN_ANALOG_WIDTH)) xv_set (clck->canvas, XV_WIDTH, /* digital_on (clck-> options) ? MIN_DIG_WIDTH : MIN_ANALOG_WIDTH, */ MIN_WINDOW_WIDTH, 0); } clock_resize_proc (clck->canvas, xv_get(clck->canvas, XV_WIDTH), xv_get(clck->canvas, XV_HEIGHT)); if (seconds_on (clck-> options)) enable_timer (clck-> frame, 0, 2, 0, 1); else { timer_expired(clck->frame, NULL); enable_timer (clck-> frame, 0, 60-tm->tm_sec, 0, 60); } if (date_on(clck->options)) { paint_date(clck); } window_fit (clck-> frame); xv_main_loop (clck-> frame); } update_slots (c) Clock c; { int i, spacing, startAt, fontWidth, windowWidth; if (c==NULL) return; fontWidth = c-> display-> fontWidth; windowWidth = (int) xv_get (c->canvas, XV_WIDTH, 0); spacing = (1.0/8.0) * fontWidth; startAt = (windowWidth - (6 * (fontWidth + spacing)))/2; for (i = 0; i < 6; i++) c-> display-> slots[i] = (startAt + (i*(spacing + fontWidth))); } build_numbers (c) Clock c; { int i, width, height, nbnds = 1, npts[1], npts2[1]; ClockDisplay d; if (c==NULL) return; npts[0] = 4; npts2[0] = 6; d = c-> display; width = d-> fontWidth; height = d-> fontHeight; for (i = 0; i < 12; i++) { if (d-> images[i] != NULL) (void) xv_destroy (d-> images[i]); d-> images[i] = (Server_image) xv_create (NULL, SERVER_IMAGE, XV_WIDTH, width, XV_HEIGHT, height, SERVER_IMAGE_DEPTH, 1, XV_KEY_DATA, key, c, 0); pw_write (d-> images[i], 0, 0, width, height, PIX_CLR, 0, 0, 0); } for (i = 0; i < 11; i++) switch (i) { case 0: pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[0], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[1], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[2], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[3], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[4], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[5], PIX_SET, NULLPR, 0, 0); break; case 1: pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[6], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[7], PIX_SET, NULLPR, 0, 0); break; case 2: pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[8], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[2], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[9], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[3], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts2, workingFont[14], PIX_SET, NULLPR, 0, 0); break; case 3: pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[8], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[2], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[4], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[10], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts2, workingFont[14], PIX_SET, NULLPR, 0, 0); break; case 4: pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[1], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[2], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[4], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts2, workingFont[14], PIX_SET, NULLPR, 0, 0); break; case 5: pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[11], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[1], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[4], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[5], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts2, workingFont[14], PIX_SET, NULLPR, 0, 0); break; case 6: pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[11], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[1], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[3], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[4], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[5], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts2, workingFont[14], PIX_SET, NULLPR, 0, 0); break; case 7: pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[8], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[2], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[4], PIX_SET, NULLPR, 0, 0); break; case 8: pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[0], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[1], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[2], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[3], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[4], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[5], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts2, workingFont[14], PIX_SET, NULLPR, 0, 0); break; case 9: pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[0], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[1], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[2], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[4], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[5], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts2, workingFont[14], PIX_SET, NULLPR, 0, 0); break; case 10: pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[12], PIX_SET, NULLPR, 0, 0); pw_polygon_2 (d-> images[i], 0, 0, nbnds, npts, workingFont[13], PIX_SET, NULLPR, 0, 0); break; } } main (argc, argv) int argc; char **argv; { initializing = 1; init_clck(argc, argv); exit(0); } xview-3.2p1.4/clients/clock/clock.info100644 1750 1750 2517 5413747414 15144 0ustar mbmb ####################################### # clock.info May 23 ####################################### # Open Windows Version 2 FCS ####################################### :Properties # Pops up a window in which you can set the type of clock face and other display options. :PropertyFrame # Change the clock properties in this window. #:PropertyPanels #This is the panel for the property sheet. :ApplyButton Apply Sets the clock to the new property values. :ResetButton Reset Returns the property values to the current values for the clock. It does not restore values after you have clicked on Apply. :DefaultButton Defaults Returns the properties to their original default values. :FaceStyle Clock Face Sets analog or digital display. When you close the clock to an icon, the icon is always analog. :DisplayStyle Display Options Select either one or both options: - Date shows the date on the clock. - Seconds shows seconds on the clock. Click SELECT on the Apply button for the options to take effect. :DisplayCanvas Clock Window This window is where the clock is drawn. Resize the window if you can't see all of the clock. Press MENU and choose Properties... to customize the clock. You can set the type of clock face and other display options. :ClockFrame Clock Frame This frame contains the clock face. xview-3.2p1.4/clients/clock/clock.man100644 1750 1750 2732 5413747414 14763 0ustar mbmb.\" @(#)clock.1 1.23 90/02/26 SMI; .\" Updated 6/7/90 .TH CLOCK 1 "11 June 1990 .SH NAME clock - display the time in an icon or window .SH SYNOPSIS .B clock .SH AVAILABILITY This command is available with the OpenWindows environment. For information about installing OpenWindows, refer to the .I OpenWindows Installation and Start-Up Guide. .SH DESCRIPTION .LP .B clock is an OpenWindows XView utility that displays the current time in a window or icon. When the window is open, .B clock can display the time in either analog or digital format. The clock window is scalable in either format. .SH USAGE When the .B clock window is open, it has a floating menu from which you can bring up a property window. From this property sheet, you can modify the display of the tool by selecting either the .B Analog or .B Digital choice box. .RS .B Seconds: .RS On the analog version, this selection starts a second hand on the face of the clock. On the digital version, it adds two digits to the digital readout. .RE .B Date: .RS Turns on a date display for both analog and digital versions of .B clock. .RE .RE .SH BUGS If you reset the system time, .B clock will not reflect the new time until you change its window state from open to icon, or vice versa. To reset the system time, see .B date (1V). The date display does not go well with the round clock face. Occasionally, when .B clock is uncovered, the face will be visually corrupted. Use the .B Refresh button from the frame menu to repair. xview-3.2p1.4/clients/clock/ds_popup.h100644 1750 1750 764 5413747414 15160 0ustar mbmb/* @(#)ds_popup.h 1.1 IEI SMI */ /* * Copyright (c) 1989 by Sun Microsystems, Inc. */ /* * Location ops */ #define DS_POPUP_RIGHT 0 /* Place popup to right of baseframe */ #define DS_POPUP_LEFT 1 /* Place popup to left of baseframe */ #define DS_POPUP_ABOVE 2 /* Place popup above baseframe */ #define DS_POPUP_BELOW 3 /* Place popup below baseframe */ #define DS_POPUP_LOR 4 /* Place popup to right or left of baseframe */ #define DS_POPUP_AOB 5 /* Place popup above or below baseframe */ xview-3.2p1.4/clients/olwm/ 40755 1750 1750 0 6354605713 12755 5ustar mbmbxview-3.2p1.4/clients/olwm/.olwmmenu100644 1750 1750 2615 5413747414 14722 0ustar mbmb# # @(#) .olwmmenu 26.2 93/06/28 # olwmmenu - OpenLook Window Manager default root menu file. "Workspace Menu" TITLE "Programs" MENU "Tools" MENU "Command Tool..." $XVIEWHOME/bin/xview/cmdtool "Mail Tool..." $XVIEWHOME/bin/xview/mailtool "Shell Tool..." $XVIEWHOME/bin/xview/shelltool "Tape Tool..." tapetool "Print Tool..." printtool "SunView Dbxtool..." /usr/bin/dbxtool "Tools" END "Text Editor..." /bin/xview/textedit "File Manager..." $XVIEWHOME/bin/xview/filemgr "Clock..." $XVIEWHOME/bin/xview/clock "Calculator..." xcalc "Snapshot..." $XVIEWHOME/bin/xview/snapshot "Perf Meter..." $XVIEWHOME/bin/xview/perfmeter "Icon Editor..." $XVIEWHOME/bin/xview/iconedit "PostScript Shell..." $XVIEWHOME/bin/psterm "Demos..." hyperview xnewsdemo.hv "Programs" END PIN "Utilities" MENU "Utilities" TITLE "Refresh" REFRESH "Reset Input" kbd_mode -u "Save Workspace" SAVE_WORKSPACE "Lock Screen" xlock "Console..." $XVIEWHOME/bin/xview/cmdtool -Wh 8 -C "FlipDrag" FLIPDRAG "Window Controls" WINDOW_CONTROLS "Clipboard..." CLIPBOARD "PrintScreen" PRINT_SCREEN "Utilities" END "Xterms" MENU "24 lines..." xterm -geometry 80x24 "34 lines..." xterm -geometry 80x34 "56 lines..." xterm -geometry 80x56 "console..." xterm -T console -geometry 80x24 -C "Xterms" END PIN "Properties..." PROPERTIES "Exit..." EXIT xview-3.2p1.4/clients/olwm/Imakefile100644 1750 1750 4577 6331115755 14675 0ustar mbmb#include /**/######################################################################### /**/# @(#)Imakefile 1.8 28 Apr 1993 SMI /**/# Imakefile for olwm release 3.0. DEFINES = -DSHAPE $(XVCLIENTDEFINES) INCLUDES = -I$(HEADER_DEST) -I$(TOP) $(XVCLIENTINCLUDES) SYS_LIBRARIES = $(SYSV_CLIENT_LIB) DEPLIBS = LOCAL_LIBRARIES = $(OLGXLIB) $(XLIB) $(XVCLIENTMISCLIB) CFILES.misc.3 = CFILES.misc.4 = fontset.c OFILES.misc.3 = ${CFILES.misc.3:%.c=%.o} OFILES.misc.4 = ${CFILES.misc.4:%.c=%.o} HFILES.misc.3 = HFILES.misc.4 = #if XvNeedGettext GETTEXT.H = gettext.h GETTEXT.C = gettext.c #else GETTEXT.H = GETTEXT.C = #endif GETTEXT.O = ${GETTEXT.C:%.c=%.o} HEADERS = cmdstream.h debug.h defaults.h dsdm.h environ.h \ error.h events.h globals.h group.h helpcmd.h i18n.h iconimage.h \ iconmask.h kbdfuncs.h list.h mem.h menu.h notice.h olcursor.h \ ollocale.h olwm.h properties.h resources.h \ screen.h selection.h slots.h st.h win.h ${GETTEXT.H} INFOFILES = olwm.info MANPAGES = olwm.man BITMAPS = iconbitmap.h SCRIPTS = MISC = openwin-menu openwin-menu-programs SRCS = atom.c client.c cmdstream.c \ debug.c defaults.c dsdm.c environ.c error.c evbind.c events.c \ fontset.c group.c helpsend.c i18n.c info.c kbdfuncs.c \ list.c mem.c menu.c moveresize.c notice.c olwm.c properties.c\ resources.c screen.c selection.c services.c slave.c slots.c \ st.c states.c usermenu.c usleep.c win.c winbusy.c \ winbutton.c wincolor.c winframe.c wingframe.c \ winicon.c winipane.c winmenu.c winnofoc.c \ winpane.c winpinmenu.c winpush.c winresize.c \ winroot.c ${CFILES.misc.XvI18nLevel} ${GETTEXT.C} OBJS = \ atom.o client.o cmdstream.o \ debug.o defaults.o dsdm.o environ.o error.o evbind.o events.o \ fontset.o group.o helpsend.o i18n.o info.o kbdfuncs.o \ list.o mem.o menu.o moveresize.o notice.o olwm.o properties.o\ resources.o screen.o selection.o services.o slave.o slots.o \ st.o states.o usermenu.o usleep.o win.o winbusy.o \ winbutton.o wincolor.o winframe.o wingframe.o \ winicon.o winipane.o winmenu.o winnofoc.o \ winpane.o winpinmenu.o winpush.o winresize.o \ winroot.o ${OFILES.misc.XvI18nLevel} ${GETTEXT.O} ALLFILES = \ ${HEADERS} ${BITMAPS} ${SRCS} \ ${MISC} ${INFOFILES} ${MANPAGES} ${SCRIPTS} ComplexProgramTarget(olwm) InstallNonExecList($(MISC),$(LIBRARY_DEST)) #include xview-3.2p1.4/clients/olwm/LEGAL_NOTICE100644 1750 1750 5370 5413747415 14670 0ustar mbmb NOTICE TO USER: The source code, including the glyphs or icons forming a par of the OPEN LOOK TM Graphic User Interface, on this tape and in these files is copyrighted under U.S. and international laws. Sun Microsystems, Inc. of Mountain View, California owns the copyright and has design patents pending on many of the icons. AT&T is the owner of the OPEN LOOK trademark associated with the materials on this tape. Users and possessors of this source code are hereby granted a nonexclusive, royalty-free copyright and design patent license to use this code in individual and commercial software. A royalty-free, nonexclusive trademark license to refer to the code and output as "OPEN LOOK" compatible is available from AT&T if, and only if, the appearance of the icons or glyphs is not changed in any manner except as absolutely necessary to accommodate the standard resolution of the screen or other output device, the code and output is not changed except as authorized herein, and the code and output is validated by AT&T. Bigelow & Holmes is the owner of the Lucida (R) trademark for the fonts and bit-mapped images associated with the materials on this tape. Users are granted a royalty-free, nonexclusive license to use the trademark only to identify the fonts and bit-mapped images if, and only if, the fonts and bit-mapped images are not modified in any way by the user. Any use of this source code must include, in the user documentation and internal comments to the code, notices to the end user as follows: (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents pending in the U.S. and foreign countries. OPEN LOOK is a trademark of AT&T. Used by written permission of the owners. (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered trademark of Bigelow & Holmes. Permission to use the Lucida trademark is hereby granted only in association with the images and fonts described in this file. SUN MICROSYSTEMS, INC., AT&T, AND BIGELOW & HOLMES MAKE NO REPRESENTATIONS ABOUT THE SUITABILITY OF THIS SOURCE CODE FOR ANY PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND. SUN MICROSYSTEMS, INC., AT&T AND BIGELOW & HOLMES, SEVERALLY AND INDIVIDUALLY, DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOURCE CODE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SUN MICROSYSTEMS, INC., AT&T OR BIGELOW & HOLMES BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOURCE CODE. xview-3.2p1.4/clients/olwm/Makefile.simple100644 1750 1750 4327 5413747415 16011 0ustar mbmb# @(#)Makefile.simple 1.18 93/06/28 # Simple Makefile for building under non-4.1 Suns. CC = acc SOURCES = atom.c client.c cmdstream.c debug.c defaults.c \ dsdm.c environ.c error.c evbind.c events.c group.c \ helpsend.c i18n.c info.c kbdfuncs.c list.c mem.c \ menu.c moveresize.c olwm.c notice.c properties.c \ resources.c screen.c services.c selection.c \ slave.c slots.c st.c states.c usermenu.c usleep.c \ win.c winbusy.c winbutton.c wincolor.c winframe.c \ wingframe.c winicon.c winipane.c winmenu.c \ winnofoc.c winpane.c winpinmenu.c winpush.c \ winresize.c winroot.c OBJECTS = ${SOURCES:.c=.o} HEADERS = cmdstream.h debug.h defaults.h dsdm.h environ.h \ error.h events.h globals.h group.h helpcmd.h \ i18n.h kbdfuncs.h list.h mem.h menu.h notice.h \ olcursor.h ollocale.h olwm.h resources.h \ properties.h screen.h selection.h slots.h st.h \ win.h \ ${BITMAPS} BITMAPS = iconimage.h iconmask.h MISC = .olwmmenu Readme # Symbols for DEFINES: # # -DALLPLANES support Sun's ALLPLANES extension # -DDEBUG enable debugging code # -DGPROF_HOOKS add profiling calls # -DOW_I18N_L3 level 3 (European language) internationalization # -DOW_I18N_L4 level 4 (Asian language) internationalization # -DSHAPE support the X SHAPE (nonrect window) extension DEFINES = -DALLPLANES -DSHAPE # olwm.o RubberWin.o := DEFINES += -DALLPLANES # slave.o := DEFINES += -Dpid_t=int -DRLIMIT_NOFILE=-1 LIBRARIES = -lolgx -lXext -lX11 OPT = -O2 CFLAGS += ${OPT} -I${OPENWINHOME}/include ${DEFINES} LDFLAGS += -L${OPENWINHOME}/lib olwm: ${HEADERS} ${OBJECTS} $(CC) -o olwm ${OBJECTS} ${LDFLAGS} ${LIBRARIES} # Malloc-debugging version. Compile a debugging version, but also add # the debugging version of malloc and turn on MALLOCDEBUG. mdebug: debug mdebug := OTHEROBJECTS = /usr/lib/debug/malloc.o mdebug := DEFINES += -DMALLOCDEBUG=2 debug: olwm debug := OPT=-g debug := DEFINES += -DDEBUG gprof: olwm gprof := OPT += -pg gprof := DEFINES += -DGPROF_HOOKS gprof := LDFLAGS += -pg -Bstatic tags: ${SOURCES} ${HEADERS} ctags -tw ${SOURCES} ${HEADERS} clean: rm -f ${OBJECTS} olwm olwm-debug core *~ .KEEP_STATE: xview-3.2p1.4/clients/olwm/README100644 1750 1750 12520 5413747416 13754 0ustar mbmbTopics Covered in This README File: ---------------------------------- What Is OLWM Changes for This Release Reporting Bugs Building OLWM Sample Build and Installation Sample Build and Installation with xmkmf What Is OLWM: ------------ Olwm (OpenLook window manager) is an ICCCM compliant window manager supplied for use with the XView toolkit. It requires the graphics library, olgx, in the contrib/lib/olgx section to build. Olwm is also dependent upon the OpenLook fonts found in the contrib/toolkits/XView/fonts directory. By default, these fonts are already included in the FCS X Version 11 Release 4 distribution. You will only need these fonts if you are using an older version of the server. A man page for olwm, olwm.man, can be found in this directory. Changes For This Release: ------------------------ This version of olwm has an improved README and Imakefile. A couple of bug fixes have been made since the version included with X11 Release 4 FCS. The affected files are AdTitleBar.c, CheckMap.c, README and Imakefile. This assumes that you have replaced some of the original source files with the new files in the CHANGED directory on the X11 release 4 FCS tape. This version incoorporates those changes in addition to the files mentioned above. Reporting Bugs: -------------- For reporting bugs, please see the bug_report file in this directory. Bugs can be reported to comp.windows.x or the xpert mailing alias, but we would prefer to have them go to xviewbugs@sun.com in the format provided by the bug_report file. Please direct questions about usage or topics of general interest to the xpert mailing alias or the comp.windows.x news group. If you do not have an email connection, bug reports may be faxed to (415) 969-9131 or telexed to 3729639 SUN UR. Please put Atten: XView Bugs M/S 14-40 on the cover sheet of the fax or telex. Bug reports may also be mailed to: Sun Microsystems Atten: XView Bugs M/S 14-40 2550 Garcia Ave. Mountain View, CA 94043 USA Building OLWM: ------------- Step 1: Change variables in the Imakefile to reflect where olgx is installed and where olwm should be installed. The default uses /home/xview. OLGXINCDIR is the place where the olgx header files have been installed. OLGXLIBDIR is the place where the olgx library has been installed. BINDIR is the location to install the olwm binary. MANDIR is the location to install the olwm man page. These all depend upon the XVDESTDIR variable. Step 2: Change the MKDIRHIER and DEPEND variables in the Imakefile (or delete it from there and add it to the site.def file) to reflect where you have the scripts installed or mounted. Change DESTDIR, XBINDIR, and LIBDIR to reflect where X11 is installed on your system. Step 3: Be sure sure you have the following: imake binary installed or mounted someplace on your system. imake binary location is in your PATH. X11 header files installed or mounted someplace on your system. X11 config files installed or mounted someplace on your system. Two scripts, mkdirhier and makedepend, installed or mounted someplace on your system. You have write permission for the installation directories above. Step 4: Run imake with appropriate includes: imake -DUseInstalled -I \ -DTOPDIR= -DCURDIR=. Step 5: Run make World to create the olwm binary, install it and install the olwm man page. Sample Build and Installation: ----------------------------- In this scenario, I have the X11 Release 4 installed in /home/X. I have changed directory to the location of the olgx source. 1: In the Imakefile, leave XVDESTDIR to install in /home/xview % touch /home/xview/foo to verify I have write permission and the directory exists. % rm /home/xview/foo 2: In either the Imakefile or the site.def file, set DESTDIR to the location of your installed X11 files. In my case, I set DESTDIR to /home/X in the Imakefile. If you set it in site.def, remove it from the Imakefile. 3: The scripts makedepend and mkdirhier should be installed in $(XBINDIR). Verify that the imake binary is in $(XBINDIR). The config files should be installed in $(DESTDIR)/usr/lib/X11/config. The X11 include files should be installed in $(DESTDIR)/usr/include/X11. If you do not already do this, % set path=($path /home/X/usr/bin/X11) to add the imake binary to your PATH (using csh). 4: % imake -DUseInstalled -I/home/X/usr/lib/X11/config \ -DTOPDIR=/home/X/usr/include -DCURDIR=. to create the Makefile. 5: % make World to build and install the binary and man page. Sample Build and Installation with xmkmf: ---------------------------------------- In this scenario, I have X11 Release 4 installed in the default locations in /usr. I have already installed the needed files from $(TOP)/util and have installed $(TOP)/config. The xmkmf script is included with the X11 Release 4 distribution. It will move the current Makefile to Makefile.bak and call imake with pre-defined arguments. 1: same as above. 2: DESTDIR should be blank in this case. 3: same as above. Plus xmkmf should be in your PATH. 4: % xmkmf or % imake -DUseInstalled -I/usr/lib/X11/config 5: % make World xview-3.2p1.4/clients/olwm/atom.c100644 1750 1750 13371 5413747416 14205 0ustar mbmb#ident "@(#)atom.c 26.24 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #include #include Atom AtomAtomPair; Atom AtomChangeState; Atom AtomClass; Atom AtomClientWindow; Atom AtomColorMapWindows; Atom AtomDecorAdd; Atom AtomDecorClose; Atom AtomDecorDel; Atom AtomDecorFooter; Atom AtomDecorHeader; Atom AtomDecorPin; Atom AtomDecorResize; Atom AtomDelete; Atom AtomDeleteWindow; Atom AtomDfltBtn; Atom AtomLeftFooter; Atom AtomLength; Atom AtomListLength; Atom AtomMenuFull; Atom AtomMenuLimited; Atom AtomMultiple; Atom AtomName; Atom AtomNone; Atom AtomOlwmNoFocusWin; Atom AtomPinIn; Atom AtomPinOut; Atom AtomProtocols; Atom AtomPushpinState; Atom AtomRightFooter; Atom AtomSaveYourself; Atom AtomSunViewEnv; Atom AtomTakeFocus; Atom AtomTargets; Atom AtomTimestamp; Atom AtomUser; Atom AtomWMClass; Atom AtomWMName; Atom AtomWMIconName; Atom AtomWMHints; Atom AtomWMNormalHints; Atom AtomWMSizeHints; Atom AtomWMTransientFor; Atom AtomWMState; Atom AtomWTBase; Atom AtomWTCmd; Atom AtomWTHelp; Atom AtomWTNotice; Atom AtomWTOther; Atom AtomWinAttr; Atom AtomWindowBusy; Atom AtomSunLedMap; Atom AtomSunWMProtocols; Atom AtomSunWindowState; Atom AtomSunDragDropDSDM; Atom AtomSunDragDropInterest; Atom AtomSunDragDropSiteRects; Atom AtomSunOLWinAttr5; Atom AtomDecorIconName; Atom AtomSunReReadMenuFile; #ifdef OW_I18N_L4 Atom AtomCompoundText; Atom AtomDecorIMStatus; Atom AtomLeftIMStatus; Atom AtomRightIMStatus; #endif /*************************************************************************** * Global functions ***************************************************************************/ /* * InitAtoms -- initialize the atoms needed to communicate with Open * Look clients */ InitAtoms(dpy) Display *dpy; { /* ICCCM specific flags */ AtomColorMapWindows = XInternAtom(dpy, "WM_COLORMAP_WINDOWS", False); AtomWMState = XInternAtom(dpy, "WM_STATE", False); AtomChangeState = XInternAtom(dpy, "WM_CHANGE_STATE" , False); AtomProtocols = XInternAtom(dpy, "WM_PROTOCOLS" , False); AtomTakeFocus = XInternAtom(dpy, "WM_TAKE_FOCUS" , False); AtomSaveYourself = XInternAtom(dpy, "WM_SAVE_YOURSELF" , False); AtomDeleteWindow = XInternAtom(dpy, "WM_DELETE_WINDOW" , False); /* Predefined atoms - referenced from ClientDistributeProperties */ AtomWMName = XA_WM_NAME; AtomWMIconName = XA_WM_ICON_NAME; AtomWMClass = XA_WM_CLASS; AtomWMHints = XA_WM_HINTS; AtomWMNormalHints = XA_WM_NORMAL_HINTS; AtomWMSizeHints = XA_WM_SIZE_HINTS; AtomWMTransientFor = XA_WM_TRANSIENT_FOR; /* OpenLook specific flags */ AtomWinAttr = XInternAtom(dpy, "_OL_WIN_ATTR" , False); AtomPushpinState = XInternAtom(dpy, "_OL_PIN_STATE" , False); AtomWindowBusy = XInternAtom(dpy, "_OL_WIN_BUSY" , False); AtomLeftFooter = XInternAtom(dpy, "_OL_WINMSG_ERROR" , False); AtomRightFooter = XInternAtom(dpy, "_OL_WINMSG_STATE" , False); AtomPinOut = XInternAtom(dpy, "_OL_PIN_OUT" , False); AtomDecorResize = XInternAtom(dpy, "_OL_DECOR_RESIZE" , False); AtomWTBase = XInternAtom(dpy, "_OL_WT_BASE" , False); AtomDecorFooter = XInternAtom(dpy, "_OL_DECOR_FOOTER" , False); AtomDecorAdd = XInternAtom(dpy, "_OL_DECOR_ADD" , False); AtomDecorDel = XInternAtom(dpy, "_OL_DECOR_DEL" , False); AtomDecorPin = XInternAtom(dpy, "_OL_DECOR_PIN" , False); AtomWTCmd = XInternAtom(dpy, "_OL_WT_CMD" , False); AtomPinIn = XInternAtom(dpy, "_OL_PIN_IN" , False); AtomNone = XInternAtom(dpy, "_OL_NONE" , False); AtomWTNotice = XInternAtom(dpy, "_OL_WT_NOTICE" , False); AtomMenuFull = XInternAtom(dpy, "_OL_MENU_FULL" , False); AtomDecorHeader = XInternAtom(dpy, "_OL_DECOR_HEADER" , False); AtomWTHelp = XInternAtom(dpy, "_OL_WT_HELP" , False); AtomMenuLimited = XInternAtom(dpy, "_OL_MENU_LIMITED" , False); AtomDecorClose = XInternAtom(dpy, "_OL_DECOR_CLOSE" , False); AtomWTOther = XInternAtom(dpy, "_OL_WT_OTHER" , False); AtomOlwmNoFocusWin = XInternAtom(dpy,"_SUN_OLWM_NOFOCUS_WINDOW",False); AtomDfltBtn = XInternAtom(dpy, "_OL_DFLT_BTN", False); AtomDecorIconName = XInternAtom(dpy, "_OL_DECOR_ICON_NAME", False); #ifdef OW_I18N_L4 AtomDecorIMStatus = XInternAtom(dpy, "_OL_DECOR_IMSTATUS", False); AtomLeftIMStatus = XInternAtom(dpy, "_OL_WINMSG_IMSTATUS", False); AtomRightIMStatus = XInternAtom(dpy, "_OL_WINMSG_IMPREEDIT", False); #endif /* ICCCM selection atoms */ AtomAtomPair = XInternAtom(dpy,"ATOM_PAIR",False); AtomClientWindow = XInternAtom(dpy, "CLIENT_WINDOW",False); AtomClass = XInternAtom(dpy,"CLASS",False); AtomDelete = XInternAtom(dpy,"DELETE",False); AtomMultiple = XInternAtom(dpy,"MULTIPLE",False); AtomLength = XInternAtom(dpy,"LENGTH",False); AtomListLength = XInternAtom(dpy,"LIST_LENGTH",False); AtomName = XInternAtom(dpy,"NAME",False); AtomTargets = XInternAtom(dpy,"TARGETS",False); AtomTimestamp = XInternAtom(dpy,"TIMESTAMP",False); AtomUser = XInternAtom(dpy,"USER",False); #ifdef OW_I18N_L4 AtomCompoundText = XInternAtom(dpy, "COMPOUND_TEXT" , False); #endif /* SunView environment */ AtomSunViewEnv = XInternAtom(dpy,"_SUN_SUNVIEW_ENV",False); /* Sun window manager atoms */ AtomSunLedMap = XInternAtom(dpy,"_SUN_LED_MAP",False); AtomSunWMProtocols = XInternAtom(dpy,"_SUN_WM_PROTOCOLS",False); AtomSunWindowState = XInternAtom(dpy,"_SUN_WINDOW_STATE",False); AtomSunOLWinAttr5 = XInternAtom(dpy,"_SUN_OL_WIN_ATTR_5",False); AtomSunReReadMenuFile = XInternAtom(dpy,"_SUN_WM_REREAD_MENU_FILE",False); /* Sun drag-and-drop atoms */ AtomSunDragDropInterest = XInternAtom(dpy, "_SUN_DRAGDROP_INTEREST", False); AtomSunDragDropDSDM = XInternAtom(dpy, "_SUN_DRAGDROP_DSDM", False); AtomSunDragDropSiteRects = XInternAtom(dpy, "_SUN_DRAGDROP_SITE_RECTS", False); } xview-3.2p1.4/clients/olwm/charset.h100644 1750 1750 3705 5413747416 14663 0ustar mbmb#ident "@(#)charset.h 1.4 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ /* Misc definition about character set, EUC wide characters, and such. */ /* @(#)charset.h 50.3 91/01/29 */ #include #if defined (SVR4) && ! defined (LONG_WCHAR_T) # define LONG_WCHAR_T #endif /* Wide characters... */ #ifndef WCHAR_CS0 /* Following macros are defined in via in ALE * except JLE 1.0.3 and eariler. */ #define WCHAR_CSMASK 0x8080 #define WCHAR_CS0 0x0000 #define WCHAR_CS1 0x8080 #define WCHAR_CS2 0x0080 #define WCHAR_CS3 0x8000 #endif #undef WCHAR_BYTE_OF #ifdef LONG_WCHAR_T #define WCHAR_BYTE_OF(wc,i) (((wc&~0x60000000)>>(7*i))&0x7f) #else #define WCHAR_BYTE_OF(wc,i) (((wc&~0x8080)>>(8*i))&0x7f) #endif /* NOTE: WCHAR_BYTE_OF in eariler versoins of xLE is wrong.*/ /* Following values are used to record the current character set * assigned for GL and GR. * The value is two byte of which the first byte tells the type * of character set and the second byte is the "final" character * of the designation sequnce for the character set. * This scheme works fine until someone invent a character set * for which one or more intermediate character is needed to * designate. */ #define _94S 0x100 /* Single byte 94 glyph set */ #define _96S 0x200 /* Single byte 96 glyph set */ #define _94M 0x400 /* Multi byte 94*94 glyph set */ #define ASCII _94S+0x42 #define JISX0201R _94S+0x49 #define JISX0201L _94S+0x4a /* Handled as though ASCII here.*/ #define ISO8859_1R _96S+0x41 #define ISO8859_2R _96S+0x42 #define ISO8859_3R _96S+0x43 #define GB2312 _94M+0x41 /* PRC Hanzi. */ #define JISX0208 _94M+0x42 /* Japanese Level 1+2. */ #define KSC5601 _94M+0x43 /* Korean. */ #define CNS1 _94M+0x30 /* tchinese */ #define CNS2 _94M+0x31 /* tchinese */ #define CNS3 _94M+0x32 /* tchinese */ #define Esc 27 xview-3.2p1.4/clients/olwm/client.c100644 1750 1750 115522 5413747416 14544 0ustar mbmb#ident "@(#)client.c 26.56 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ /* client.c - functions relating to clients as a whole */ #include #include #include #include #include #include #include #include "i18n.h" /* needed by olgx.h */ #include #include "ollocale.h" #include "events.h" #include "mem.h" #include "olwm.h" #include "win.h" #include "group.h" #include "globals.h" #include "dsdm.h" #include "resources.h" /*************************************************************************** * global data ***************************************************************************/ /* * List of currently active clients. All frames and icons and the no-focus * window are reachable by traversing this list. */ List *ActiveClientList; /* * Pointer to the "current" client. This is usually the client whose window * has the input focus, but not always. The exceptions include icons and * pinned menus, where the icon or menu window may be the "current" client but * where the focus really is with the no-focus window. */ Client *CurrentClient = NULL; /* * DoingWindowState indicates whether olwm is doing window state. * This is set in InitClientState() and used in MakeRoot(). */ Bool DoingWindowState = False; extern Atom AtomColorMapWindows; extern Atom AtomDecorDel; extern Atom AtomDecorAdd; extern Atom AtomDeleteWindow; extern Atom AtomProtocols; extern Atom AtomLeftFooter; extern Atom AtomRightFooter; extern Atom AtomTakeFocus; extern Atom AtomWindowBusy; extern Atom AtomWinAttr; extern Atom AtomWMState; extern Atom AtomWMName; extern Atom AtomWMIconName; extern Atom AtomWMHints; extern Atom AtomWMNormalHints; extern Atom AtomSunLedMap; extern Atom AtomSunWindowState; extern Atom AtomSunDragDropInterest; #ifdef OW_I18N_L4 extern Atom AtomLeftIMStatus; extern Atom AtomRightIMStatus; #endif extern void RecursiveRefresh(); extern void PushPinChangeState(); extern void FrameUpdateHeader(); extern void FrameUpdateFooter(); extern void IconUpdateName(); extern void ColorUpdateColorMapWindows(); extern void StateUpdateWinAttr(); extern void StateUpdateDecorAdd(); extern void StateUpdateDecorDel(); extern void StateUpdateWMNormalHints(); extern void StateUpdateWMHints(); extern void StateUpdateWMProtocols(); #ifdef OW_I18N_L4 extern void FrameUpdateIMStatus(); #endif /*************************************************************************** * private data ***************************************************************************/ typedef struct _ledstate { int led; int led_mode; } LedState; static LedState composeLedState; static Client *lastCurrentClient = NULL; #define LED_MAP_LENGTH (33L) /* * Focus Change Inhibition. * * If focus changing is inhibited, information about focus changing is stored * in the FocusInhibitRecord instead of being used to set the focus. If * several focus changes occur while focus changing is inhibited, only * information for the latest change is stored. When focus changing becomes * uninhibited, the information is used to set the focus for real. This * prevents unnecessary focus changing. REMIND: focus inhibition doesn't * occur when the focus is set to the NoFocus window. This isn't too bad, as * no highlighting occurs when this happens. */ static struct FocusInhibitRecord { Bool inhibited; Client *cli; Bool sendTF; Time evtime; } fir; static XrmQuark clientCQ; /* quark for "Client" (a class) */ static XrmQuark clientIQ; /* quark for "client" (an instance) */ static XrmQuark menuAccelIQ; /* quark for "menuAccelerators" */ static XrmQuark menuAccelCQ; /* quark for "MenuAccelerators" */ /*************************************************************************** * private functions ***************************************************************************/ static void clientSetBusy(); /* * setComposeLed - sets the compose led to the new mode iff different than * the current mode. */ static void setComposeLed(dpy,mode) Display *dpy; int mode; { XKeyboardControl kbdValue; if (mode == composeLedState.led_mode) return; composeLedState.led_mode = mode; kbdValue.led = composeLedState.led; kbdValue.led_mode = composeLedState.led_mode; XChangeKeyboardControl(dpy,KBLed|KBLedMode,&kbdValue); } /* * initClientState - init kbd led state for client use */ static void initClientState(dpy) Display *dpy; { int *ledMap; int i,numLeds,led; unsigned int nitems,nremain; XKeyboardControl kbdvalue; DoingWindowState = False; /* * Get the _SUN_LED_MAP property from the default root window */ ledMap = GetWindowProperty(dpy,DefaultRootWindow(dpy),AtomSunLedMap, 0L,LED_MAP_LENGTH,XA_INTEGER,32,&nitems,&nremain); if (ledMap == NULL || nitems != LED_MAP_LENGTH || nremain != 0) { return; } numLeds = ledMap[0]; /* first entry is the number of leds */ /* * Find out which led number is marked Compose */ for (i = 1; i <= numLeds; i++) { if (ledMap[i] == XK_Multi_key) { composeLedState.led = i; composeLedState.led_mode = -1; /* for first time */ DoingWindowState = True; } } /* * Turn off the compose led */ if (DoingWindowState) setComposeLed(dpy,LedModeOff); XFree((char *)ledMap); } /*************************************************************************** * global functions ***************************************************************************/ /* * Initialize the client package. Called once at startup. * * Initialize the client state (LED handling) data. Initialize quarks for * per-client attributes. */ void InitClients(dpy) Display *dpy; { initClientState(dpy); clientCQ = XrmStringToQuark("Client"); clientIQ = XrmStringToQuark("client"); menuAccelCQ = XrmStringToQuark("MenuAccelerators"); menuAccelIQ = XrmStringToQuark("menuAccelerators"); } /* * ClientDefaultWindowState - applies the default window state */ ClientDefaultWindowState(dpy) Display *dpy; { setComposeLed(dpy,LedModeOff); } /* * ClientSetWindowState - applies the client's window state */ ClientSetWindowState(cli) Client *cli; { if (!DoingWindowState) return; /* * If the client has specified the window state then interpret it. */ if (cli->windowState) { if (cli->windowState->flags & WSSemanticState) { if (cli->windowState->state & WSSemanticCompose) setComposeLed(cli->dpy,LedModeOn); else setComposeLed(cli->dpy,LedModeOff); } /* * Else just apply the default state */ } else { ClientDefaultWindowState(cli->dpy); } } /* * ClientGetWindowState - gets the _SUN_WINDOW_STATE property and if the * client has the focus then apply that new state. */ ClientGetWindowState(cli) Client *cli; { Window pane; OLWindowState winState; if (!DoingWindowState) return; if (cli->framewin == NULL) return; pane = PANEWINOFCLIENT(cli); if (!PropGetOLWindowState(cli->dpy,pane,&winState)) return; if (cli->windowState == NULL) cli->windowState = MemNew(OLWindowState); *cli->windowState = winState; if (cli->isFocus) ClientSetWindowState(cli); } /* * ClientUpdateWindowState - handle PropertyNotify on _SUN_WINDOW_STATE */ void ClientUpdateWindowState(cli,event) Client *cli; XPropertyEvent *event; { if (!DoingWindowState) return; if (event->state == PropertyNewValue) { ClientGetWindowState(cli); } else { if (cli->windowState) MemFree((char *)cli->windowState); cli->windowState = (OLWindowState *)NULL; ClientDefaultWindowState(cli->dpy); } } /* ClientSendProtocol - send a protocol message to a client */ void * ClientSendProtocol(cli,proto,evtime) Client *cli; Atom proto; Time evtime; { XEvent clientEvent; clientEvent.xclient.type = ClientMessage; clientEvent.xclient.message_type = AtomProtocols; clientEvent.xclient.format = 32; clientEvent.xclient.display = cli->dpy; clientEvent.xclient.window = ClientPane(cli); clientEvent.xclient.data.l[0] = proto; clientEvent.xclient.data.l[1] = evtime; XSendEvent(cli->dpy, clientEvent.xclient.window, False, NoEventMask, &clientEvent); return NULL; } /* ClientKill - a client must be killed. If it can handle the DELETE_WINDOW * protocol, use it; otherwise, if we are forcing the client to go * away, kill it. */ void * ClientKill(cli,pforce) Client *cli; Bool pforce; { if (cli->framewin == NULL) return NULL; if (cli->protocols & DELETE_WINDOW) { ClientSendProtocol(cli,AtomDeleteWindow,LastEventTime); } else { if (pforce && ! cli->flags & CLOlwmOwned) XKillClient(cli->dpy,ClientPane(cli)); else if (GRV.Beep == BeepAlways) XBell(cli->dpy, 100); } return NULL; } /* ClientShutdown - a client must be shut down. Force the client * the go away without any further user interaction. */ void * ClientShutdown(cli,junk) Client *cli; void *junk; { /* Only kill non-olwm owned clients */ if (! cli->flags & CLOlwmOwned) XKillClient(cli->dpy,ClientPane(cli)); return NULL; } /* UnparentClient - while exiting OLWM: unmap all icons that are on the * screen. Reparent all windows back to the root, suitably offset * according to their window-gravities. Also remap all non-withdrawn * windows, and remove all Withdrawn windows from the save-set (so * they don't get remapped. REMIND: We have to do this because * Withdrawn windows are still left reparented inside the frame; this * shouldn't be the case. */ /*ARGSUSED*/ void * UnparentClient(cli,junk) Client *cli; void *junk; { WinPaneFrame *frameInfo = cli->framewin; WinPane *paneInfo; Display *dpy = cli->dpy; Window pane; void ClientSetWMState(); /* local forward */ /* if no framewin then it's probably a root window */ if (frameInfo == NULL) return NULL; paneInfo = (WinPane*)(frameInfo->fcore.panewin); pane = paneInfo->core.self; /* Unmap the icon */ if (cli->wmState == IconicState) IconHide(cli, cli->iconwin); FrameUnparentPane(cli, frameInfo, paneInfo); if (cli->wmState == DontCareState) { XChangeSaveSet(dpy, pane, SetModeDelete); } else { XMapWindow(dpy,pane); } /* If this client is Invisible, it's WM_STATE property says * it's Iconic which is probably wrong, so reset it to Normal */ if (cli->wmState == InvisibleState) ClientSetWMState(cli,NormalState); return NULL; } /* * addClient -- add this client structure to the list of active clients */ static void addClient(cli) Client *cli; { List *l = ActiveClientList; Client *tc; /* First look to see if window is already listed. */ for(tc = ListEnum(&l); tc != NULL; tc = ListEnum(&l)) { if (tc == cli) return; } /* Wasn't present, add to list. */ ActiveClientList = ListCons(cli, ActiveClientList); } /* * removeClient -- remove this client structure from the list of active * clients. */ static void removeClient(cli) Client *cli; { List **l; for (l = &ActiveClientList ; *l != NULL; l = &((*l)->next)) { if ((*l)->value == cli) { ListDestroyCell(l); return; } } } /* * ClientCreate -- allocate and initialize a client structure. */ Client * ClientCreate(dpy,screen) Display *dpy; int screen; { Client *cli = MemNew(Client); cli->wmState = DontCareState; cli->dpy = dpy; cli->screen = screen; cli->scrInfo = GetScrInfoOfScreen(screen); /* all other fields set to zero by allocation function */ addClient(cli); return cli; } /* * Using the class and instance quarks already in the client structure, look * up some resources and fill in instance variables. * * Client instance variables are looked up in the resource database using * resource specifications of the form: * * Olwm.Client.. * .client.. * * REMIND: this should be table-driven (like in Xt) eventually, but right now * we set up instance variables in open code. */ void ClientSetInstanceVars(cli) Client *cli; { XrmQuark classes[5]; XrmQuark instances[5]; XrmQuark rep; XrmValue value; /* * Fill in class and instance templates; element 3 is filled in * below. */ classes[0] = TopClassQ; classes[1] = clientCQ; classes[2] = cli->wmClassQ; classes[4] = NULLQUARK; instances[0] = TopInstanceQ; instances[1] = clientIQ; instances[2] = cli->wmInstanceQ; instances[4] = NULLQUARK; /* menu accelerators */ classes[3] = menuAccelCQ; instances[3] = menuAccelIQ; cli->menuAccelerators = True; if (XrmQGetResource(OlwmDB, instances, classes, &rep, &value)) { cli->menuAccelerators = BoolString((char *) value.addr, True); } } /* * DestroyClient -- destroy all resources associated with this client, and * remove external references to this client. If this is the current client, * and we are in click-to-type, set the focus to the topmost client *after* * having destroyed this client. * * REMIND: there is an architectural problem here, because this routine needs * to know about every place that every stores a persistent pointer to a * client structure. When a client is destroyed, this routine needs to clean * up these client pointers so they don't dangle. Some kind if ID for each * client (such as an XID) should be used, so that references can go stale * without causing fatal problems. */ void DestroyClient(cli) Client *cli; { Bool setfocus = False; Display *dpy = cli->dpy; ScreenInfo *scrInfo = cli->scrInfo; List *l; Client *tcli; extern void PreenColormapInhibit(); UnTrackSubwindows(cli, True); if (IsSelected(cli)) RemoveSelection(cli); if (cli == CurrentClient) { ClientSetCurrent(NoFocusWinInfo->core.client); /* purge the old client from lastCurrentClient */ /* REMIND need a better interface */ lastCurrentClient = NULL; setfocus = !GRV.FocusFollowsMouse; } /* Clean up references in the focus inhibit record */ if (fir.inhibited && cli == fir.cli) fir.cli = NULL; /* Clean up references in the colormap inhibit record */ PreenColormapInhibit(cli); /* Remove this client from the global list of clients. */ removeClient(cli); /* * Run through the remaining clients and remove any references to this * client from their warp-back records. */ l = ActiveClientList; while (tcli = ListEnum(&l)) { if (tcli->framewin != NULL && tcli->warpInfo.warpBackClient == cli) { tcli->framewin->pointerIsWarped = False; } } /* destroy the window resources associated with the client */ WinCallDestroy(cli); GroupRemove(cli->groupid, cli); /* free up the client structure resources */ if (cli->wmDecors) MemFree(cli->wmDecors); if (cli->normHints) MemFree(cli->normHints); if (cli->wmHints) MemFree(cli->wmHints); if (cli->wmInstance) MemFree(cli->wmInstance); if (cli->wmClass) MemFree(cli->wmClass); if (cli->windowState) MemFree(cli->windowState); /* REMIND what's to be done with followers here? */ #ifdef DEBUG /* fill with identifiable trash */ memset((char *) cli, 0xbd, sizeof(Client)); #endif /* DEBUG */ MemFree(cli); if (setfocus) ClientFocusTopmost(dpy, scrInfo, CurrentTime); } /* * ClientConfigure - a configure request event has been received on the * pane. Configure the windows accordingly. */ void ClientConfigure(cli,win,pxcre) Client *cli; WinGeneric *win; XConfigureRequestEvent *pxcre; { XWindowChanges winChange; if ((cli == NULL) || (win == NULL)) { /* We don't know about this window, or it's withdrawn * convert the request into an XConfigureWindow * call. We do not look at the hints to see if * the resize is in the proper increments, but since * the app is asking for the reconfigure this seems * right. */ winChange.x = pxcre->x; winChange.y = pxcre->y; winChange.width = pxcre->width; winChange.height = pxcre->height; winChange.border_width = pxcre->border_width; winChange.stack_mode = pxcre->detail; winChange.sibling = pxcre->above; XConfigureWindow(pxcre->display, pxcre->window, /* lint will warn: this is a long, not int */ pxcre->value_mask, &winChange ); } else /* cli->wmState == NormalState or IconicState */ { WinCallConfig(cli->dpy,win,pxcre); } } /* * ClientSetWMState -- sets the WMState field of the clietn and * writes the contents of the WM_STATE property, * given the information in the WinInfo struct. * Since InvisibleState is private to olwm, * coerce to IconicState. */ void ClientSetWMState(cli,wmState) Client *cli; WMState wmState; { WinIconFrame *iconWinInfo = cli->iconwin; Window pane = PANEWINOFCLIENT(cli); Window icon; cli->wmState = wmState; if (iconWinInfo) { if ( iconWinInfo->fcore.panewin ) icon = iconWinInfo->fcore.panewin->core.self; else icon = iconWinInfo->core.self; } else { icon = None; } if (wmState == InvisibleState) wmState = IconicState; PropSetWMState(cli->dpy,pane,wmState,icon); } /* ===== Drag-and-Drop Interest Property ================================== */ /* * Get the next word from the `data' array, indexed by `cur'. If this causes * us to go beyond `nitems', return silently. */ #define NEXTWORD(dest) do { \ if (++cur >= nitems) { \ XFree((char *)data); \ return; \ } \ (dest) = data[cur]; \ } while (0) #define INCR(by) do { \ cur += (by); \ if (cur >= nitems) \ return; \ } while (0) static struct { unsigned long version, nsites, wid, sid, flags, areatype, nelts, rx, ry, rw, rh; } forwardingInterest = { 0, /* version */ 1, /* nsites */ 0, /* window id -- to be filled in */ 0, /* site id -- to be filled in */ 0, /* flags -- to be filled in */ DND_INTEREST_RECT, /* areatype */ 1, /* number of rects */ 0, 0, 0, 0 /* rectangle -- to be filled in */ }; #define FI_LENGTH \ (sizeof(forwardingInterest)/sizeof(unsigned long)) /* * ClientProcessDragDropInterest - read the clients drag'n'drop interest * property, and put an interest containing the default site onto the frame * window and the icon window. If we encounter an error reading the property, * do nothing and return silently. */ void ClientProcessDragDropInterest(cli, state) Client *cli; int state; /* PropertyNewValue or PropertyDelete */ { unsigned long *data; int nitems, remain, nsites, i, areatype, nelts; int cur = 0; Window wid; unsigned long sid, flags; if (state == PropertyDelete) { XDeleteProperty(cli->dpy, cli->framewin->core.self, AtomSunDragDropInterest); if (cli->iconwin != NULL) XDeleteProperty(cli->dpy, cli->iconwin->core.self, AtomSunDragDropInterest); return; } data = GetWindowProperty(cli->dpy, PANEWINOFCLIENT(cli), AtomSunDragDropInterest, 0L, 1000000L, AtomSunDragDropInterest, 32, &nitems, &remain); if (data == NULL) return; if (data[cur] != DND_VERSION) { XFree((char *)data); return; } NEXTWORD(nsites); for (i=0; iframewin->core.width; forwardingInterest.rh = cli->framewin->core.height; XChangeProperty(cli->dpy, cli->framewin->core.self, AtomSunDragDropInterest, AtomSunDragDropInterest, 32, PropModeReplace, (unsigned char *) &forwardingInterest, FI_LENGTH); /* write the property on the icon */ if (cli->iconwin != NULL) { forwardingInterest.rx = 0; forwardingInterest.ry = 0; forwardingInterest.rw = cli->iconwin->core.width; forwardingInterest.rh = cli->iconwin->core.height; XChangeProperty(cli->dpy, cli->iconwin->core.self, AtomSunDragDropInterest, AtomSunDragDropInterest, 32, PropModeReplace, (unsigned char *) &forwardingInterest, FI_LENGTH); } break; } } XFree((char *)data); } /* * ClientUpdateDragDropInterest - handle PropertyNotify on DragDropInterest */ void ClientUpdateDragDropInterest(cli,event) Client *cli; XPropertyEvent *event; { ClientProcessDragDropInterest(cli,event->state); } /* ClientPane - return the pane window of a client */ Window ClientPane(cli) Client *cli; { WinPaneFrame *wf; WinPane *wp; if ((wf = cli->framewin) == NULL) return NULL; if ((wp = (WinPane *)(wf->fcore.panewin)) == NULL) return NULL; return wp->core.self; } /* * ClientOpenCloseToggle * * Perform the appropriate open/close action. If the client has no icon, * attempt to dismiss it instead. */ void ClientOpenCloseToggle(cli,timestamp) Client *cli; Time timestamp; { if (ClientHasIcon(cli)) { switch (cli->wmState) { case NormalState: StateIconic(cli,timestamp); break; case IconicState: StateNormal(cli,timestamp); break; default: break; } } else { ClientKill(cli,False); } } /* * ClientFullRestoreSizeToggle * Call both frame and icon full/restore toggle functions. */ void ClientFullRestoreSizeToggle(cli,timestamp) Client *cli; Time timestamp; { if (cli->wmDecors->flags & WMDecorationResizeable) { (WinFunc(cli->framewin,fcore.fullrestoreToggle))(cli,timestamp); (WinFunc(cli->iconwin,fcore.fullrestoreToggle))(cli,timestamp); } } /* * ClientMove * Moves the client to a new x,y position. */ void ClientMove(cli,trigger) Client *cli; XEvent *trigger; { UserMoveWindows(cli, trigger); } /* * ClientResize * Resizes the client to a new w,h size. */ void ClientResize(cli,trigger,which,callback,cbarg) Client *cli; XEvent *trigger; WhichResize which; void (*callback)(); void *cbarg; { if (cli->wmDecors->flags & WMDecorationResizeable) UserResizeWin(cli, trigger, which, callback, cbarg); } /* * ClientRaiseTransients * * Raise any transient windows associated with this client. Return the * client for the bottommost transient window. This is useful so that the * parent window can be restacked just below the bottommost transient. If * there are no transient windows, returns NULL. * * REMIND raises all transient windows in the order they are encountered in * the active client list, and returns the first one found. Ideally, this * should preserve the stacking order of the transients. */ Client * ClientRaiseTransients(cli) Client *cli; { List *l = ActiveClientList; Client *tc; Client *first = NULL; if (!GRV.KeepTransientsAbove) return NULL; while (tc = ListEnum(&l)) { if (tc->transientFor == PANEWINOFCLIENT(cli)) { XRaiseWindow(tc->dpy, tc->framewin->core.self); if (first == NULL) first = tc; } } return first; } /* * ClientLowerTransients * * Restack any transient windows associated with this client to be just above * this client's frame. * * REMIND this lowers all transient windows in the order they are encountered * in the active client list. Ideally, this should preserve the stacking * order of the transients. */ void ClientLowerTransients(cli) Client *cli; { List *l = ActiveClientList; Client *tc; XWindowChanges xwc; if (!GRV.KeepTransientsAbove) return; xwc.stack_mode = Above; xwc.sibling = cli->framewin->core.self; while (tc = ListEnum(&l)) { if (tc->transientFor == PANEWINOFCLIENT(cli)) { XConfigureWindow(tc->dpy, tc->framewin->core.self, CWSibling | CWStackMode, &xwc); } } } /* * ClientFront * * Moves the appropriate client window to the front of the window hierarchy. * If this window has any transient windows, move them in front first. */ void ClientFront(cli) Client *cli; { Client *firsttransient; XWindowChanges xwc; switch (cli->wmState) { case NormalState: firsttransient = ClientRaiseTransients(cli); if (firsttransient != NULL) { xwc.sibling = firsttransient->framewin->core.self; xwc.stack_mode = Below; XConfigureWindow(cli->dpy, cli->framewin->core.self, CWSibling | CWStackMode, &xwc); } else { XRaiseWindow(cli->dpy,cli->framewin->core.self); } break; case IconicState: XRaiseWindow(cli->dpy,cli->iconwin->core.self); break; default: break; } } /* * ClientBack * * Moves the appropriate client window to the back of the window hierarchy. * If this is a transient window, move its parent window to the back first, * and then move this window just in front of it. * * REMIND this isn't optimal behavior for transient windows, but it does * ensure that transient windows always remain in front of their parents. */ void ClientBack(cli) Client *cli; { WinGeneric *owner; Window ownerwin; XWindowChanges xwc; switch (cli->wmState) { case NormalState: if (cli->transientFor != 0 && GRV.KeepTransientsAbove) { owner = WIGetInfo(cli->transientFor); if (owner == NULL || owner->core.kind != WIN_PANE) { XLowerWindow(cli->dpy,cli->framewin->core.self); } else { ownerwin = owner->core.client->framewin->core.self; XLowerWindow(cli->dpy, ownerwin); xwc.sibling = ownerwin; xwc.stack_mode = Above; XConfigureWindow(cli->dpy, cli->framewin->core.self, CWSibling | CWStackMode, &xwc); } } else { XLowerWindow(cli->dpy,cli->framewin->core.self); } break; case IconicState: XLowerWindow(cli->dpy,cli->iconwin->core.self); break; default: break; } } /* * ClientToggleStacking * * Moves the appropriate client window to the front of the window hierarchy if * it is obscured, otherwise move it to the back of the hierarchy if it * obscures any other window. REMIND: doesn't deal with transient windows at * all. */ void ClientToggleStacking(cli) Client *cli; { XWindowChanges xwc; Window win; switch (cli->wmState) { case NormalState: win = cli->framewin->core.self; break; case IconicState: win = cli->iconwin->core.self; break; } xwc.stack_mode = Opposite; XConfigureWindow(cli->dpy, win, CWStackMode, &xwc); } /* * ClientRefresh * Refresh the window. We do this by creating a window on top * of the window to refresh and then immediately destroy it. * Refresh either icon or frame windows. */ void ClientRefresh(cli) Client *cli; { Window w,cliwin; int cliwidth,cliheight; XSetWindowAttributes xswa; /* Chose which window to refresh */ switch (cli->wmState) { case NormalState: cliwin = cli->framewin->core.self; cliwidth = cli->framewin->core.width; cliheight = cli->framewin->core.height; break; case IconicState: cliwin = cli->iconwin->core.self; cliwidth = cli->iconwin->core.width; cliheight = cli->iconwin->core.height; break; default: return; /*NOTREACHED*/ break; } /* if we should refresh all windows */ if (GRV.RefreshRecursively) { RecursiveRefresh(cli->dpy,cliwin); /* or just the top/main window */ } else { w = XCreateWindow(cli->dpy, cliwin, 0, 0, cliwidth, cliheight, 0, CopyFromParent, InputOutput, CopyFromParent, 0, &xswa); XMapRaised(cli->dpy,w); XDestroyWindow(cli->dpy,w); } } /* * ClientFlashOwner * Find group leader frame, bring it to the top and then * flash its title bar. * * REMIND: make sure transient windows get treated properly * before or after (which? not sure) the leader is raised. */ void ClientFlashOwner(cli) Client *cli; { Client *cliLead = GroupLeader(cli->groupid); if (cliLead && cliLead->framewin) { XRaiseWindow(cliLead->dpy,cliLead->framewin->core.self); WinCallDraw((WinGeneric *)cliLead->framewin); FrameFlashTitleBar(cliLead->framewin); } } /* * Toggle the pushpin of this client's window. Returns False if this client's * window has no pin, otherwise, returns True. */ Bool ClientTogglePin(cli) Client *cli; { WinPushPin *pin; if (cli->framewin == NULL || !ClientIsPinnable(cli)) return False; pin = (WinPushPin *)cli->framewin->winDeco; PushPinTogglePinState(cli->dpy,pin,True); } /* ClientInBox -- given a bounding box, apply a function to all clients * which fall inside the rectangle */ void * ClientInBox(cli, close) Client *cli; ClientInBoxClosure *close; { int x, y, w, h; if (cli->screen != close->screen) return NULL; if (cli->framewin == NULL) return NULL; switch (cli->wmState) { case IconicState: x = cli->iconwin->core.x; y = cli->iconwin->core.y; w = cli->iconwin->core.width; h = cli->iconwin->core.height; break; case NormalState: x = cli->framewin->core.x; y = cli->framewin->core.y; w = cli->framewin->core.width; h = cli->framewin->core.height; break; case InvisibleState: return NULL; } if ((x >= close->bx) && (y >= close->by) && ((x + w) <= (close->bx + close->bw)) && ((y + h) <= (close->by + close->bh))) (close->func)(cli, close->timestamp); return NULL; } /* * ClientSetBusy -- the busy state has (possibly) been changed for a client. * if the client is going from normal to busy: * mark the client as busy * put up a busy window * if the client is going from busy to normal: * mark the client as unbusy * take down a busy window (if it exists) */ void ClientUpdateBusy(cli,event) Client *cli; XPropertyEvent *event; { int *newBusyPtr; int newBusy; unsigned long nItems, remain; if (event->state == PropertyNewValue) { newBusyPtr = GetWindowProperty(cli->dpy, PANEWINOFCLIENT(cli), AtomWindowBusy, 0L, LONG_LENGTH(*newBusyPtr), XA_INTEGER, 32, &nItems, &remain); if (newBusyPtr == NULL) { /* property not found or has the wrong type */ newBusy = 0; } else { if (nItems != LONG_LENGTH(newBusy) || remain != 0) { /* got a property, but it is invalid */ newBusy = 0; } else { /* valid property */ newBusy = *newBusyPtr; } XFree((char *)newBusyPtr); } } else { /* property was deleted */ newBusy = 0; } /* * Losing busy */ if (cli->isBusy && (newBusy == 0)) { cli->isBusy = False; if (cli->isFocus) ClientSetFocus(cli,True,event->time); FrameSetBusy(cli->framewin, False); } /* * Else Gaining busy */ else if (!cli->isBusy && (newBusy == 1)) { cli->isBusy = True; FrameSetBusy(cli->framewin, True); if (cli->isFocus) ClientSetFocus(cli,True,event->time); } } /* * VisitPinnedMenuClients - visit all pinned menu clients on all screens */ void VisitPinnedMenuClients(pproc, extra) void (*pproc)(); void *extra; { List *l = ActiveClientList; Client *cli; for (cli = ListEnum(&l); cli != NULL; cli = ListEnum(&l)) { if (cli->framewin && cli->framewin->fcore.panewin && cli->framewin->fcore.panewin->core.kind == WIN_PINMENU) { (*pproc)(cli, extra); } } } /* * REMIND this function should be removed when menu/menuinfos * are reorged. */ void DestroyPinnedMenuClients() { VisitPinnedMenuClients(DestroyClient, NULL); } /* ===== focus stuff ====================================================== */ /* * ClientInhibitFocus -- inhibit or uninhibit focus changing. If inhibit is * True, starts focus inhibition. If False, removes inhibition and sets the * focus to the cached client, if any. The client might be null if it had * been destroyed while focus was inhibited. */ void ClientInhibitFocus(inhibit) Bool inhibit; { if (inhibit) { fir.inhibited = True; fir.cli = NULL; } else { fir.inhibited = False; if (fir.cli != NULL) ClientSetFocus(fir.cli, fir.sendTF, fir.evtime); fir.cli = NULL; } } /* * ClientSetFocus -- possibly set the focus to this client. If focus changing * is inhibited, store information in the inhibit record. Otherwise, set the * focus normally. If the client is GloballyActive, we only send TakeFocus * messages if sendTF is true. If the client has a different focus mode * sendTF is ignored. If the client is a NoInput client, set the focus to the * frame itself. REMIND: this works, if a little bizarre. The frame doesn't * select for keystrokes, so they fall to the root. The root event handler * ends up beeping, which is OK. */ void ClientSetFocus(cli,sendTF,evtime) Client *cli; Bool sendTF; Time evtime; { if (fir.inhibited) { fir.cli = cli; fir.sendTF = sendTF; fir.evtime = evtime; return; } switch (cli->wmState) { case IconicState: if (cli->iconwin != NULL) XSetInputFocus(cli->dpy, cli->iconwin->core.self, RevertToParent, evtime); break; case NormalState: switch (cli->focusMode) { case NoInput: XSetInputFocus(cli->dpy, cli->framewin->core.self, RevertToParent, evtime); break; case Passive: case LocallyActive: XSetInputFocus(cli->dpy, PANEWINOFCLIENT(cli), RevertToParent, evtime); break; case GloballyActive: if (sendTF) { ClientSendProtocol(cli, AtomTakeFocus, evtime); } break; } break; case InvisibleState: return; } } /* * Current Client. * * The current client is used by the mouseless functions. These functions * maintain the current and previously-current client. If cli is already the * current client, don't do anything. This is necessary because this may be * called when a client is activated explicitly (from ClientActivate) or * implicitly (when a globally active client takes the focus). Therefore, if * ClientActivate activates a globally active client, this function will be * called twice. * * Eventually, this may change to be a "ring-buffer" history of clients. * * REMIND: the notion of the current client may be a vestige from the time * when some objects (like icons and pinned menus) didn't take the focus. * Activating one of these items would set the focus to the NoFocus window, * but set the current client to that particular client. Thus, having the * focus was not the same as being the current client. This distinction may * no longer be true, in which case it is sufficient to keep track of the * client that has the focus, without the separate notion of a current client. * One possible problem may occur with buggy Globally Active clients that * don't take the focus when requested. If we rely on the focus to keep track * of the current client, we may get "stuck" if the next client fails to take * the focus when requested. */ void ClientSetCurrent(cli) Client *cli; { if (cli != CurrentClient) { lastCurrentClient = CurrentClient; CurrentClient = cli; } } Client * ClientGetLastCurrent() { return lastCurrentClient; } /* * Client Activation. * * Activate the named client. The difference between this and ClientSetFocus * is that this function selects and raises the client's window in addition to * setting the focus. Further, this function works on iconic clients as well * as open ones. This function sets the current client explicitly. We would * rely on the resulting focus change to set the current client, except that * a globally active client may decline the focus when it is asked to take it. * * REMIND this shouldn't have to deal with selections at all. However, * icons and headerless windows currently have no way to indicate that they * have the focus. Therefore, select them. */ void ClientActivate(dpy, cli, time) Display *dpy; Client *cli; Time time; { /* * If the current client is selected, assume it was selected because it * was made the active client, and deselect it. (See REMIND above.) */ if (CurrentClient != NULL && CurrentClient->isSelected) ClearSelections(dpy); /* * If we are being asked to activate a NULL client, or a client without a * frame (i.e. a root client), activate the NoFocus client. */ if (cli == NULL) { NoFocusTakeFocus(dpy, time, NULL); } else if (cli->framewin == NULL) { NoFocusTakeFocus(dpy, time, cli->scrInfo); } else { ClientSetFocus(cli, True, time); /* * If the client is iconic or has no header, select it to show that it * is the active client. (See REMIND above.) */ if (cli->wmState == IconicState || !(cli->wmDecors->flags & WMDecorationHeader)) { ClearSelections(dpy); AddSelection(cli, time); } if (GRV.RaiseOnActivate) ClientFront(cli); ClientSetCurrent(cli); } } /* * Set the focus to the topmost window on the given screen. */ void ClientFocusTopmost(dpy, scrinfo, time) Display *dpy; ScreenInfo *scrinfo; Time time; { Window wjunk; Window *children; unsigned int nchildren; int i; Client *topframeclient = NULL; WinGeneric *win; if (0 == XQueryTree(dpy, scrinfo->rootid, &wjunk, &wjunk, &children, &nchildren)) { return; } /* * QueryTree returns children in bottom-to-top order, so search backward. */ for (i = nchildren-1; i >= 0; --i) { win = WIGetInfo(children[i]); if (win != NULL && win->core.kind == WIN_FRAME && win->core.client->wmState == NormalState) { topframeclient = win->core.client; break; } } if (topframeclient != NULL) ClientSetFocus(topframeclient, True, time); else NoFocusTakeFocus(dpy, time, scrinfo); XFree((char *) children); } /* ===== Client Property Changes ================================== */ typedef struct { Atom *propAtom; void (*updateFunc)(); } ClientPropUpdate; static ClientPropUpdate propUpdateTable[] = { &AtomWMName, FrameUpdateHeader, &AtomLeftFooter, FrameUpdateFooter, &AtomRightFooter, FrameUpdateFooter, &AtomWMIconName, IconUpdateName, &AtomColorMapWindows, ColorUpdateColorMapWindows, &AtomProtocols, StateUpdateWMProtocols, &AtomWMNormalHints, StateUpdateWMNormalHints, &AtomWMHints, StateUpdateWMHints, &AtomWindowBusy, ClientUpdateBusy, &AtomSunWindowState, ClientUpdateWindowState, &AtomSunDragDropInterest, ClientUpdateDragDropInterest, &AtomWinAttr, StateUpdateWinAttr, &AtomDecorAdd, StateUpdateDecorAdd, &AtomDecorDel, StateUpdateDecorDel, #ifdef OW_I18N_L4 &AtomLeftIMStatus, FrameUpdateIMStatus, &AtomLeftIMStatus, FrameUpdateIMStatus, #endif }; #define NPROPUPDATETABLE (sizeof(propUpdateTable)/sizeof(ClientPropUpdate)) /* ClientDistributeProperty -- a property of the client has changed. * Forward the change notification to the appropriate handler. */ void ClientDistributeProperty(cli, event) Client *cli; XPropertyEvent *event; { int i; for (i=0; iatom == *propUpdateTable[i].propAtom) { (propUpdateTable[i].updateFunc)(cli,event); break; } } } xview-3.2p1.4/clients/olwm/cmdstream.c100644 1750 1750 13753 5413747417 15231 0ustar mbmb#ident "@(#)cmdstream.c 26.9 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ /* ---------------------------------------------------------------------- * cmdstream.c * ---------------------------------------------------------------------*/ #include #ifdef SYSV #include #else #include #endif #include "cmdstream.h" #include "mem.h" extern char *strtok(); /* ---------------------------------------------------------------------- * Local Data Structures * ---------------------------------------------------------------------*/ typedef struct _CList { Command *this; struct _CList *next; } CList; typedef struct _CmdInfo { FILE *input; FILE *output; CList *cmdListHead; } CmdInfo; /* ---------------------------------------------------------------------- * Data Definitions * ---------------------------------------------------------------------*/ static CmdInfo cmdInfo = { (FILE *)0, (FILE *)0, (CList *)0 }; /* ---------------------------------------------------------------------- * Local Forward Declarations * ---------------------------------------------------------------------*/ Command *MatchCommand(); CmdAttr *MatchAttr(); int EncodeAttrValue(); int DecodeAttrValue(); /* ---------------------------------------------------------------------- * SetCmdStream * ---------------------------------------------------------------------*/ void SetCmdStream(instream,outstream) FILE *instream; FILE *outstream; { if (instream == NULL) fclose(cmdInfo.input); cmdInfo.input = instream; if (outstream == NULL) fclose(cmdInfo.output); cmdInfo.output = outstream; } /* ---------------------------------------------------------------------- * SendCmd * ---------------------------------------------------------------------*/ int SendCmd(cmd) Command *cmd; { CmdAttr *attr; int i; if (cmdInfo.output == (FILE *)NULL) return FALSE; fprintf(cmdInfo.output,"%s\n",cmd->keyword); for (i=0; iattrLen; i++) { attr = &(cmd->attrList[i]); fprintf(cmdInfo.output,"\t%s=",attr->name); EncodeAttrValue(attr,cmdInfo.output); fputs("\n",cmdInfo.output); } fputs(";\n",cmdInfo.output); fflush(cmdInfo.output); return TRUE; } /* ---------------------------------------------------------------------- * RegisterCmd * ---------------------------------------------------------------------*/ void RegisterCmd(cmd) Command *cmd; { CList *item; item = MemNew(CList); item->this = cmd; item->next = cmdInfo.cmdListHead; cmdInfo.cmdListHead = item; } /* ---------------------------------------------------------------------- * GetCmd * ---------------------------------------------------------------------*/ int GetCmd() { #define CMDBUFLEN 1024 char cmdBuf[CMDBUFLEN]; while (fgets(cmdBuf,CMDBUFLEN,cmdInfo.input) != (char *)NULL) { if (ParseCmd(cmdBuf) == FALSE) return FALSE; } return TRUE; } /* ---------------------------------------------------------------------- * ParseCmd * ---------------------------------------------------------------------*/ int ParseCmd(line) char *line; { char *token; char *sep = " \t\n"; static Command *cmd = (Command *)NULL; static CmdAttr *attr = (CmdAttr *)NULL; for (token=strtok(line,sep); token; token=strtok(0,sep)) { if (cmd == (Command *)NULL) { if ((cmd = MatchCommand(token)) == (Command *)NULL) return FALSE; } else if (token[0] == ';') { if (cmd->callback) (*cmd->callback)(cmd); cmd = (Command *)NULL; attr = (CmdAttr *)NULL; } else { if ((attr = MatchAttr(cmd,token)) == (CmdAttr *)NULL) { cmd = (Command *)NULL; return FALSE; } } } return FALSE; } /* ---------------------------------------------------------------------- * MatchKeyword * ---------------------------------------------------------------------*/ static Command * MatchCommand(keyword) char *keyword; { CList *item; for (item=cmdInfo.cmdListHead; item; item=item->next) { if (!strcmp(keyword,item->this->keyword)) { return item->this; } } return (Command *)NULL; } /* ---------------------------------------------------------------------- * MatchAttr * ---------------------------------------------------------------------*/ static CmdAttr * MatchAttr(cmd,name) Command *cmd; char *name; { int i,equalindex; char *equalpos; char *strchr(); equalpos = strchr(name,'='); if (!equalpos) return (CmdAttr *)NULL; equalindex = equalpos - name; for (i=0; iattrLen; i++) { if (!strncmp(name,cmd->attrList[i].name,equalindex)) { if (!DecodeAttrValue(&cmd->attrList[i],++equalpos)) return (CmdAttr *)NULL; return &(cmd->attrList[i]); } } return (CmdAttr *)NULL; } /* ---------------------------------------------------------------------- * EncodeAttrValue * ---------------------------------------------------------------------*/ static int EncodeAttrValue(attr,stream) CmdAttr *attr; FILE *stream; { switch (attr->type) { case INT: fprintf(stream,"%d",attr->value.ival); break; case FLOAT: fprintf(stream,"%f",attr->value.fval); break; case STRING: fprintf(stream,"%s",attr->value.sval); break; } return TRUE; } /* ---------------------------------------------------------------------- * DecodeAttrValue * ---------------------------------------------------------------------*/ static int DecodeAttrValue(attr,valuestr) CmdAttr *attr; char *valuestr; { char *ptr; int status = TRUE; switch (attr->type) { case INT: attr->value.ival = (int)strtol(valuestr,&ptr,10); if (ptr == valuestr) status = FALSE; break; case FLOAT: attr->value.fval = (float)strtod(valuestr,&ptr); if (ptr == valuestr) status = FALSE; break; case STRING: attr->value.sval = MemNewString(valuestr); if (attr->value.sval == (char *)NULL) status = FALSE; break; default: status = FALSE; break; } return status; } xview-3.2p1.4/clients/olwm/cmdstream.h100644 1750 1750 2432 5413747417 15206 0ustar mbmb#ident "@(#)cmdstream.h 26.9 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_CMDSTREAM_H #define _OLWM_CMDSTREAM_H #ifndef TRUE #define TRUE 1 #endif #ifndef FALSE #define FALSE 0 #endif /* ---------------------------------------------------------------------- * Command Data Structures * ---------------------------------------------------------------------*/ typedef enum _AttrType { INT, FLOAT, STRING } AttrType; typedef union _AttrValue { int ival; float fval; char *sval; } AttrValue; typedef struct _CmdAttr { char *name; AttrType type; AttrValue value; } CmdAttr; typedef struct _Command { char *keyword; void (*callback)(); int attrLen; CmdAttr *attrList; } Command; /* ---------------------------------------------------------------------- * Function Definitions * ---------------------------------------------------------------------*/ extern void SetCmdStream(/* FILE *instream, FILE * outstream */); extern int SendCmd(/* Command* cmd */); extern void RegisterCmd(/* Command *cmd */); extern int GetCmd(); extern int ParseCmd(/* char *line */); #endif /* _OLWM_CMDSTREAM_H */ xview-3.2p1.4/clients/olwm/ctstowcs.c100644 1750 1750 10617 5413747417 15117 0ustar mbmb#ident "@(#)ctstowcs.c 1.4 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #include #include #include #include "charset.h" /* * ctstowcs() converts a Compound Text string into the corresponding wide * character string. */ int ctstowcs(wcs, cts, nwcs) wchar_t wcs[]; /* Buffer to which the result would be written. */ char *cts; /* The source string in the Compound Text format.*/ int nwcs; /* Length of wcs[], the max # of wchar_t's. */ { int gl_charset=ASCII; int gr_charset=ISO8859_1R; int this_charset; int *p_gx; unsigned char c, c1, c2, c3, c4; wchar_t *pwc=wcs; wchar_t wc; unsigned char plane; while(c=((unsigned char)*cts++)) switch(c){ case Esc: switch( c1=((unsigned char)*cts++)){ case 0: return -1; break; case 0x28: /* A 94-glyph set to GL. */ p_gx=&gl_charset; goto desig94S; case 0x29: /* A 94-glyph set to GR. */ p_gx=&gr_charset; /* fall into... */ desig94S: c2=((unsigned char)*cts++); if(c2==0){/* Premature end of CT string */ return -1; } *p_gx=_94S+c2; break; /* * FIX_ME: case 0x2c: has been added to support * JOWN2.0.x based client, but this does not * mean to be good things to do! */ case 0x2c: case 0x2d: /* A 96-glyph set to GR. */ c2=((unsigned char)*cts++); if(c2==0){/* Premature end of CT string */ return -1; } gr_charset=_96S+c2; break; case 0x24: /* A multibyte set... */ /* next byte==0x28 ---> GL next byte==0x29 ---> GR */ c2=((unsigned char)*cts++); switch(c2){ case 0:/* Premature end of CT string */ return -1; case 0x28: p_gx=&gl_charset; goto desig94M; case 0x29: p_gx=&gr_charset; /* fall into... */ desig94M: c3=((unsigned char)*cts++); if(c3==0){/* Premature end of CT string */ return -1; } if (!strcmp("tchinese",setlocale(LC_CTYPE,NULL))) { if (c3 == 0x31) plane = 0x22; if (c3 >= 0x32 && c3 <= 0x3f) { /* reset CNS3 */ plane = c3 - 0xf; c3 = 0x32; } } *p_gx=_94M+c3; break; default:/* Unknown Escape */ return -1; break; } } break; default: this_charset=(c&0x80)?gr_charset:gl_charset; c&=0x7f; /* WE ARE ASSUMING LC_CTYPE==japanese here!!*/ switch(this_charset){ case ASCII: case JISX0201L: /* Two charsets are different but JLE treates them as a same char set. */ wc=WCHAR_CS0|c; break; case JISX0208: if(c4=((unsigned char)*cts++)){ #ifdef LONG_WCHAR_T wc=WCHAR_CS1|(c<<7)|(c4&0x7f); #else wc=WCHAR_CS1|(c<<8)|(c4&0x7f); #endif }else{ return -1; } break; case JISX0201R: wc=WCHAR_CS2|c; break; case KSC5601: case GB2312: if(c4=((unsigned char)*cts++)){ #ifdef LONG_WCHAR_T wc=WCHAR_CS1|(c<<7)|(c4&0x7f); #else wc=WCHAR_CS1|(c<<8)|(c4&0x7f); #endif }else{ return -1; } break; case CNS1: if(c4=((unsigned char)*cts++)){ wc=WCHAR_CS1|(c<<7)|(c4&0x7f); }else{ return -1; } break; case CNS2: if(c4=((unsigned char)*cts++)){ wc=WCHAR_CS2|(plane<<14)|(c<<7)|(c4&0x7f); }else{ return -1; } break; case CNS3: if(c4=((unsigned char)*cts++)){ wc=WCHAR_CS3|(plane<<14)|(c<<7)|(c4&0x7f); }else{ return -1; } break; default: wc=WCHAR_CS0|'?'; }/*switch(this_charset)*/ *pwc++=wc; if(pwc>=wcs+nwcs) return nwcs; } *pwc=0; /* Terminator */ return (pwc-wcs); /* Return # of wide chararacters. */ } xview-3.2p1.4/clients/olwm/debug.c100644 1750 1750 3057 5413747417 14314 0ustar mbmb#ident "@(#)debug.c 26.11 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #include #include #include #include "i18n.h" #include "olwm.h" #include "win.h" #include "debug.h" static char *eventNames[] = { "", "", "KeyPress", "KeyRelease", "ButtonPress", "ButtonRelease", "MotionNotify", "EnterNotify", "LeaveNotify", "FocusIn", "FocusOut", "KeymapNotify", "Expose", "GraphicsExpose", "NoExpose", "VisibilityNotify", "CreateNotify", "DestroyNotify", "UnmapNotify", "MapNotify", "MapRequest", "ReparentNotify", "ConfigureNotify", "ConfigureRequest", "GravityNotify", "ResizeRequest", "CirculateNotify", "CirculateRequest", "PropertyNotify", "SelectionClear", "SelectionRequest", "SelectionNotify", "ColormapNotify", "ClientMessage", "MappingNotify" }; void DebugEvent(ep, str) XEvent *ep; char *str; { (void)fprintf(stderr, "%s:%s - ", str, eventNames[ep->type]); (void)fflush(stderr); } static char *typeNames[] = { "Frame", "Icon", "Resize", "Pushpin", "Button", "Pane", "IconPane", "Colormap", "Menu", "PinMenu", "NoFocus", "Root", "Busy" }; void DebugWindow(win) WinGeneric *win; { if (win == NULL) { (void)fprintf(stderr, "other window - "); } else { (void)fprintf(stderr, "win %x (self %lu) %s - ", win, win->core.self, typeNames[win->core.kind]); } (void)fflush(stderr); } xview-3.2p1.4/clients/olwm/debug.h100644 1750 1750 552 5413747417 14276 0ustar mbmb#ident "@(#)debug.h 1.4 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_DEBUG_H #define _OLWM_DEBUG_H extern void DebugEvent(); extern void DebugWindow(); #endif /* _OLWM_DEBUG_H */ xview-3.2p1.4/clients/olwm/defaults.c100644 1750 1750 10510 6331432471 15034 0ustar mbmb#ident "@(#)defaults.c 26.22 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifdef SYSV #include #endif #include #include #include #include #include #include #include #include #include #include #include #include #ifdef OW_I18N_L4 #include #endif #include "i18n.h" #include "ollocale.h" #include "olwm.h" #include "defaults.h" #include "globals.h" #include "resources.h" /* * GetUserDefaults * * Get RESOURCE_MANAGER string from server; if none, then load from * $HOME/.Xdefaults. If XENVIRONMENT names a file, load and merge it. * Otherwise, load $HOME/.Xdefaults-hostname and merge it. See * Xlib/XGetDflt.c. We could use that code if it weren't Xlib-private. */ XrmDatabase GetUserDefaults(dpy) Display *dpy; { XrmDatabase serverDB = NULL; XrmDatabase fileDB = NULL; char filename[1024]; unsigned long nitems, remain; char *rsrcstr; char *homedir = getenv("HOME"); char *envfile = getenv("XENVIRONMENT"); char hostname[100]; #ifndef __linux int namelen; #endif rsrcstr = GetWindowProperty(dpy, RootWindow(dpy, 0), XA_RESOURCE_MANAGER, 0L, 100000000L, /* REMIND: use ENTIRE_CONTENTS */ XA_STRING, 0L, &nitems, &remain); if (rsrcstr == NULL) { if (homedir != NULL) { (void) strcpy(filename, homedir); (void) strcat(filename, "/.Xdefaults"); serverDB = XrmGetFileDatabase(filename); } } else { serverDB = XrmGetStringDatabase(rsrcstr); XFree(rsrcstr); } /* Now try XENVIRONMENT or $HOME/.Xdefaults-hostname. */ if (envfile == NULL) { if (homedir != NULL) { (void) strcpy(filename, homedir); (void) strcat(filename, "/.Xdefaults-"); #ifndef __linux if (0 == gethostname(hostname, sizeof(hostname), &namelen)) { #else if (0 == gethostname(hostname, sizeof(hostname))) { #endif (void) strcat(filename, hostname); fileDB = XrmGetFileDatabase(filename); } } } else { fileDB = XrmGetFileDatabase(envfile); } if (fileDB != NULL) XrmMergeDatabases(fileDB, &serverDB); return serverDB; } /* * GetAppDefaults * * Gets the app-defaults file and return a database of its contents. If we * are running internationalized, looks in the following places * * $OPENWINHOME/lib/locale//app-defaults * /usr/lib/X11/app-defaults/ * $OPENWINHOME/lib/app-defaults * /usr/lib/X11/app-defaults * * If we are not running internationalized, the entries with are * ignored. Returns NULL if no app-defaults file is found. * * REMIND: this should use XFILESEARCHPATH. */ XrmDatabase GetAppDefaults() { XrmDatabase appDB = NULL; char filename[1024]; char *openwinhome = getenv("OPENWINHOME"); #ifdef OW_I18N_L3 char *locale; #endif #ifdef OPENWINHOME_DEFAULT /* martin-2.buck@student.uni-ulm.de */ if (!openwinhome) { openwinhome = OPENWINHOME_DEFAULT; } #endif #ifdef OW_I18N_L3 locale = GRV.lc_basic.locale; if (locale != NULL) { #ifndef OPENWINHOME_DEFAULT if (openwinhome != NULL) { #endif (void) sprintf(filename, "%s/lib/locale/%s/app-defaults/Olwm", openwinhome, locale); appDB = XrmGetFileDatabase(filename); if (appDB != NULL) return appDB; #ifndef OPENWINHOME_DEFAULT } #endif (void) sprintf(filename, "/usr/lib/X11/app-defaults/%s/Olwm", locale); appDB = XrmGetFileDatabase(filename); if (appDB != NULL) return appDB; } #endif #ifndef OPENWINHOME_DEFAULT if (openwinhome != NULL) { #endif (void) strcpy(filename, openwinhome); (void) strcat(filename, "/lib/app-defaults/Olwm"); appDB = XrmGetFileDatabase(filename); if (appDB != NULL) return appDB; #ifndef OPENWINHOME_DEFAULT } #endif appDB = XrmGetFileDatabase("/usr/lib/X11/app-defaults/Olwm"); return appDB; } /* ===== global functions ================================================= */ /* * GetDefaults * * XXX - this has been turned into just a call to InitGlobals(). Does it * still need to exist? */ void GetDefaults(dpy, commandlineDB) Display *dpy; XrmDatabase commandlineDB; { InitGlobals(dpy, commandlineDB); } xview-3.2p1.4/clients/olwm/defaults.h100644 1750 1750 644 5413747420 15013 0ustar mbmb#ident "@(#)defaults.h 26.16 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_DEFAULTS_H #define _OLWM_DEFAULTS_H extern void GetDefaults(); extern XrmDatabase GetUserDefaults(); extern XrmDatabase GetAppDefaults(); #endif /* _OLWM_DEFAULTS_H */ xview-3.2p1.4/clients/olwm/dsdm.c100644 1750 1750 43675 5413747420 14201 0ustar mbmb#ident "@(#)dsdm.c 1.5 93/06/28" /* * (c) Copyright 1992 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ /* * DSDM - Drop Site Database Manager for drag'n'drop. * * Master algorithm: * * Start with visible region as whole screen. * For each top-level window, do * (0) flatten its interest rectangles * (1) intersect interest rects with the top-level window * (2) intersect them with the visible region * (3) append them to the master list * (4) subtract this top-level frame from the visible region */ #include #include #include #include #include #include "i18n.h" #include "ollocale.h" #include "mem.h" #include "olwm.h" #include "properties.h" #include "win.h" #include "error.h" #include "dsdm.h" /* * Round-trip metering. Meter the XGetGeometry, XGetWindowAttributes, * XGetWindowProperty, XQueryTree, and XTranslateCoordinates calls. Calls to * them in the code must be coded as _XWhatever((arg, arg, ...)). To enable, * just add #define RTMETER. */ #ifdef RTMETER int _rt_count; #define INC_RT_COUNT ++_rt_count , #else #define INC_RT_COUNT #endif /* RTMETER */ #define _XGetGeometry(args) (\ INC_RT_COUNT \ XGetGeometry args) #define _XGetWindowAttributes(args) (\ INC_RT_COUNT \ XGetWindowAttributes args) #define _XGetWindowProperty(args) (\ INC_RT_COUNT \ XGetWindowProperty args) #define _XQueryTree(args) (\ INC_RT_COUNT \ XQueryTree args) #define _XTranslateCoordinates(args) (\ INC_RT_COUNT \ XTranslateCoordinates args) /* ===== externs ========================================================== */ extern Atom AtomAtomPair; extern Atom AtomMultiple; extern Atom AtomSunDragDropDSDM; extern Atom AtomSunDragDropInterest; extern Atom AtomSunDragDropSiteRects; extern Atom AtomTargets; extern Atom AtomTimestamp; extern Atom AtomWMState; extern Window NoFocusWin; /* ===== private data ===================================================== */ typedef struct _site { int screen; unsigned long site_id; Window window_id; unsigned long flags; Region region; struct _site *next; } site_t; static site_t *MasterSiteList = NULL; static site_t **NextSite = &MasterSiteList; static int SitesFound = 0; static Time selectionTime; static Bool selectionOwned = False; /* ===== regions ========================================================== */ /* * This region stuff is stolen from region.h. It is dependent upon the * current Xlib implementation of regions. */ typedef struct _box { short x1, x2, y1, y2; } BOX; typedef struct { long size; long numRects; BOX *rects; BOX extents; } REGION; #define REGION_NUMRECTS(r) (((REGION *)(r))->numRects) /* ===== private functions ================================================ */ /* * Get the interest property from this window. If a valid interest property * was found, a pointer to the data is returned. This data must be freed with * XFree(). If no valid property is found, NULL is returned. */ static void * GetInterestProperty(dpy, win, nitems) Display *dpy; Window win; unsigned long *nitems; { Status s; Atom acttype; unsigned long remain; int actfmt; void *data; s = _XGetWindowProperty((dpy, win, AtomSunDragDropInterest, 0L, ENTIRE_CONTENTS, False, AtomSunDragDropInterest, &acttype, &actfmt, nitems, &remain, (unsigned char **) &data)); if (s != Success) return NULL; if (acttype == None) /* property does not exist */ return NULL; if (acttype != AtomSunDragDropInterest) { #ifdef DEBUG ErrorWarning("dnd interest property has wrong type"); #endif /* DEBUG */ return NULL; } if (actfmt != 32) { #ifdef DEBUG ErrorWarning("dnd interest property has wrong format"); #endif /* DEBUG */ XFree(data); return NULL; } if (remain > 0) { #ifdef DEBUG /* * We didn't read it all, just punt. REMIND: we should loop around * GetWindowProperty until we have all the data. */ fputs("dsdm: interest property too long\n", stderr); #endif /* DEBUG */ XFree(data); return NULL; } return data; } /* * Create and return a region that contains a given rectangle. */ static Region MakeRegionFromRect(x, y, w, h) int x, y; unsigned int w, h; { XRectangle r; Region reg; r.x = x; r.y = y; r.width = w; r.height = h; reg = XCreateRegion(); XUnionRectWithRegion(&r, reg, reg); return reg; } /* * Create and return a region that contains the geometry of the window. * The region returned must be destroyed with XDestroyRegion(). The offset * parameter indicates whether the window's geometry should be offset by its * (x,y) location w.r.t. its parent. If it is false, the region's upper left * corner is at (0,0). */ static Region GetWindowRegion(dpy, winInfo, offset) Display *dpy; WinGeneric *winInfo; Bool offset; { return MakeRegionFromRect( offset ? winInfo->core.x : 0, offset ? winInfo->core.y : 0, winInfo->core.width, winInfo->core.height ); } /* * Subtract the area of a window from the current visible region. */ static void SubtractWindowFromVisibleRegion(dpy, winInfo, visrgn) Display *dpy; Window winInfo; Region visrgn; { Region winrgn = GetWindowRegion(dpy, winInfo, True); XSubtractRegion(visrgn, winrgn, visrgn); XDestroyRegion(winrgn); } /* * NEXTWORD - a macro to step through the property data. This macro depends * on local variables of ProcessInterestProperty(). */ #define NEXTWORD(dest) do { \ if (++cur >= datalen) { \ if (region != NULL) \ XDestroyRegion(region); \ if (toprgn != NULL) \ XDestroyRegion(toprgn); \ return; \ } \ (dest) = array[cur]; \ } while (0) /* * Process a window's drop site interest property. If the property is in an * invalid format, fail silently. */ static void ProcessInterestProperty(dpy, winInfo, screen, data, datalen, visrgn, xoff, yoff) Display *dpy; WinGeneric *winInfo; int screen; void *data; unsigned long datalen; Region visrgn; int xoff, yoff; { unsigned long *array = data; int cur = 0; int i, j, nsites; Window wid; Window wjunk; Window areawin; unsigned long sid; int areatype; int nrects; unsigned long flags; Region region = NULL; Region toprgn = NULL; XRectangle rect; site_t *site; int x, y; unsigned int width, height, border, ujunk; int junk; if (array[cur] != DND_VERSION) { #ifdef DEBUG char msg[100]; sprintf(msg, "unknown drop interest property version (%d) on 0x%x\n", array[cur], winInfo->core.self); ErrorWarning(msg); #endif /* DEBUG */ return; } toprgn = GetWindowRegion(dpy, winInfo, False); NEXTWORD(nsites); for (i=0; icore.self); ErrorWarning(msg); #endif /* DEBUG */ continue; } (void) _XTranslateCoordinates((dpy, areawin, winInfo->core.self, 0, 0, &x, &y, &wjunk)); rect.x = x - border; rect.y = y - border; rect.width = width + border; rect.height = height + border; XUnionRectWithRegion(&rect, region, region); } break; default: #ifdef DEBUG { char msg[100]; sprintf(msg, "unknown site area type on window 0x%x\n", winInfo->core.self); ErrorWarning(msg); } #endif /* DEBUG */ XDestroyRegion(toprgn); return; } XIntersectRegion(region, toprgn, region); XOffsetRegion(region, xoff, yoff); XIntersectRegion(region, visrgn, region); site = (site_t *) malloc(sizeof(site_t)); if (site == NULL) break; /* out of memory - stop processing this property */ site->screen = screen; site->site_id = sid; site->window_id = wid; site->flags = flags; site->region = region; site->next = NULL; (*NextSite) = site; NextSite = &site->next; ++SitesFound; region = NULL; } XDestroyRegion(toprgn); } /* * FindDropSites * * For the root window of each screen, get the list of children. For each * child, get its drop forwarding information and find the top-level window * underneath that child, and get the top-level window's drop site * information. Add the top-level window's site information and the site * forwarding information to the site database. */ static void FindDropSites(dpy) Display *dpy; { Window junk, root, *children; int s, i, nchildren; Region visrgn, framergn, toprgn; void *sitedata; void *fwdsitedata; int xoff, yoff; WinRoot *rootInfo; WinGeneric *winInfo; WinPane *paneInfo; int state; unsigned long datalen; unsigned long fwdlen; #ifdef RTMETER _rt_count = 0; #endif for (s=0; score.kind != WIN_ROOT) continue; visrgn = GetWindowRegion(dpy, rootInfo, False); if (_XQueryTree((dpy, root, &junk, &junk, &children, (unsigned int *) &nchildren)) == 0) { #ifdef DEBUG char msg[100]; (void) sprintf(msg, "XQueryTree failed on root window 0x%x", root); ErrorWarning(msg); #endif /* DEBUG */ continue; } /* * Run through the children of root in top-to-bottom order. For * frames, get the pane's drop interest and any forwarding interest. * For icons, get the icon's forwarding interest. Add any site data * found to the master site list. */ for (i = nchildren-1; i >= 0; --i) { winInfo = WIGetInfo(children[i]); if (winInfo == NULL) continue; state = winInfo->core.client->wmState; /* * Ignore everything except frames in NormalState and icons in * IconicState. */ if (!((winInfo->core.kind == WIN_FRAME && state == NormalState) || (winInfo->core.kind == WIN_ICON && state == IconicState))) { continue; } fwdsitedata = GetInterestProperty(dpy, children[i], &fwdlen); if (winInfo->core.kind == WIN_FRAME) { paneInfo = (WinPane *) PANEOFCLIENT(winInfo->core.client); sitedata = GetInterestProperty(dpy, paneInfo->core.self, &datalen); WinRootPos(paneInfo, &xoff, &yoff); if (sitedata != NULL) { ProcessInterestProperty(dpy, paneInfo, s, sitedata, datalen, visrgn, xoff, yoff); XFree(sitedata); if (fwdsitedata != NULL) { framergn = GetWindowRegion(dpy, winInfo, True); XIntersectRegion(framergn, visrgn, framergn); toprgn = GetWindowRegion(dpy, paneInfo, False); XOffsetRegion(toprgn, xoff, yoff); XSubtractRegion(framergn, toprgn, framergn); ProcessInterestProperty(dpy, winInfo, s, fwdsitedata, fwdlen, framergn, winInfo->core.x, winInfo->core.y); XDestroyRegion(framergn); XDestroyRegion(toprgn); XFree(fwdsitedata); } } } else { if (fwdsitedata != NULL) { ProcessInterestProperty(dpy, winInfo, s, fwdsitedata, fwdlen, visrgn, winInfo->core.x, winInfo->core.y); XFree(fwdsitedata); } } SubtractWindowFromVisibleRegion(dpy, winInfo, visrgn); } XDestroyRegion(visrgn); XFree((char *) children); } #ifdef RTMETER printf("roundtrips = %d\n", _rt_count); #endif } /* * FreeDropSites * * Free the memory associated with the list of drop sites. */ static void FreeDropSites() { site_t *next, *temp; next = MasterSiteList; while (next != NULL) { XDestroyRegion(next->region); temp = next->next; free(next); next = temp; } MasterSiteList = NULL; SitesFound = 0; NextSite = &MasterSiteList; } /* * WriteSiteRectList * * Write a property containing site rectangle information. The format * consists of zero or more blocks of 8 words, as follows: * 8k+0 screen number * 8k+1 site id * 8k+2 window id * 8k+3 x * 8k+4 y * 8k+5 width * 8k+6 height * 8k+7 flags */ static void WriteSiteRectList(dpy, win, prop) Display *dpy; Window win; Atom prop; { unsigned long *cur; unsigned long *array; site_t *site; int numrects = 0; REGION *region; BOX *box, *last; site = MasterSiteList; while (site != NULL) { numrects += REGION_NUMRECTS(site->region); site = site->next; } array = (unsigned long *) malloc(8 * MAX(numrects,1) * sizeof(int)); /* MAX is to prevent malloc(0) */ cur = array; site = MasterSiteList; while (site != NULL) { region = (REGION *) site->region; box = region->rects; last = box + region->numRects; for ( ; box < last ; ++box) { *cur++ = site->screen; *cur++ = site->site_id; *cur++ = site->window_id; *cur++ = box->x1; *cur++ = box->y1; *cur++ = box->x2 - box->x1; *cur++ = box->y2 - box->y1; *cur++ = site->flags; } site = site->next; } XChangeProperty(dpy, win, prop, XA_INTEGER, 32, PropModeReplace, (unsigned char *)array, cur - array); free(array); } /* * convertTarget * * Do the actual work to convert a single DSDM target. */ static Bool convertTarget(dpy, requestor, target, property) Display *dpy; Window requestor; Atom target; Atom property; { unsigned long data[10]; /* long enough for most return values */ unsigned char *propdata = (unsigned char *) data; int format, nelements; Atom type; if (target == AtomTargets) { data[0] = AtomTargets; data[1] = AtomTimestamp; data[2] = AtomMultiple; data[3] = AtomSunDragDropSiteRects; nelements = 4; type = XA_ATOM; format = 32; } else if (target == AtomTimestamp) { data[0] = selectionTime; nelements = 1; type = XA_INTEGER; format = 32; } else if (target == AtomSunDragDropSiteRects) { FindDropSites(dpy); WriteSiteRectList(dpy, requestor, property); FreeDropSites(); return True; } else { return False; } /* write the property, free it if necessary, and return success */ XChangeProperty(dpy, requestor, property, type, format, PropModeReplace, (unsigned char *)propdata, nelements); if (propdata != (unsigned char *) data) MemFree(propdata); return True; } /* * handleDSDMrequest * * Respond to a SelectionRequest or SelectionClear event on the DSDM * selection. */ static void handleDSDMrequest(event) XEvent *event; { XSelectionEvent reply; XSelectionRequestEvent *request; Atom *pairs; int i; Bool writeback = False; unsigned long nitems, remain; switch (event->type) { case SelectionClear: selectionOwned = False; return; case SelectionRequest: /* processing proceeds below */ break; } request = (XSelectionRequestEvent *) event; /* * Set up a reply event for refusal. If a conversion is successful, the * property field will be filled in appropriately. */ reply.type = SelectionNotify; reply.requestor = request->requestor; reply.selection = AtomSunDragDropDSDM; reply.property = None; reply.target = request->target; reply.time = request->time; if (selectionOwned) { if (request->target == AtomMultiple) { if (request->property != None) { pairs = GetWindowProperty(request->display, request->requestor, request->property, 0L, 100000L, AtomAtomPair, 32, &nitems, &remain); if (pairs != NULL) { /* * Process each pair of atoms (target, property). Watch * out for an odd last atom, and for property atoms of * None. If the conversion fails, replace it with None in * the original property. */ for (i = 0; i+1 < nitems; i += 2) { if (pairs[i+1] == None) continue; if (!convertTarget(request->display, request->requestor, pairs[i], pairs[i+1])) { pairs[i+1] = None; writeback = True; } } if (writeback) XChangeProperty(request->display, request->requestor, request->property, AtomAtomPair, 32, PropModeReplace, (unsigned char *) pairs, nitems); XFree((char *) pairs); reply.property = request->property; } } } else { /* backwards compatibility per ICCCM section 2.2 */ if (request->property == None) request->property = request->target; if (convertTarget(request->display, request->requestor, request->target, request->property)) { reply.property = request->property; } } } (void) XSendEvent(event->xany.display, reply.requestor, False, NoEventMask, (XEvent *) &reply); } /* ===== public functions ================================================= */ /* * DragDropStartDSDM * * Start performing the DSDM function by acquiring the DSDM selection. * Grabbing the server guarantees that we'll get the selection. */ void DragDropStartDSDM(dpy) Display *dpy; { XGrabServer(dpy); selectionTime = TimeFresh(); XSetSelectionOwner(dpy, AtomSunDragDropDSDM, NoFocusWin, selectionTime); XUngrabServer(dpy); selectionOwned = True; } /* * DragDropStopDSDM * * Stop performing the DSDM function by relinquishing ownership of the DSDM * selection. Note that this will generate a SelectionClear event. */ void DragDropStopDSDM(dpy) Display *dpy; { XSetSelectionOwner(dpy, AtomSunDragDropDSDM, None, selectionTime); } /* * DragDropInit * * Register the selection handler for the DSDM selection. Should be called * exactly once at startup. */ void DragDropInit() { SelectionRegister(AtomSunDragDropDSDM, handleDSDMrequest); } xview-3.2p1.4/clients/olwm/dsdm.h100644 1750 1750 1066 5413747420 14152 0ustar mbmb#ident "@(#)dsdm.h 1.3 93/06/28" /* * (c) Copyright 1992 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_DSDM_H #define _OLWM_DSDM_H /* constants */ #define DND_VERSION 0 #define DND_INTEREST_RECT 0 #define DND_INTEREST_WINDOW 1 #define DND_SITE_DEFAULT (1<<2) #define DND_SITE_FORWARD (1<<3) /* public functions */ extern void DragDropStartDSDM(); extern void DragDropStopDSDM(); extern void DragDropInit(); #endif /* _OLWM_DSDM_H */ xview-3.2p1.4/clients/olwm/environ.c100644 1750 1750 10777 5413747420 14727 0ustar mbmb#ident "@(#)environ.c 1.9 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #ifdef SYSV #include #else #include extern char *strrchr(); extern char *strchr(); #endif #include #include #include #include "mem.h" extern char **environ; /* ----------------------------------------------------------------------- * Local Data Structures * -----------------------------------------------------------------------*/ /* * Env - environment object */ typedef struct _env { char **environ; /* array of environment strings */ int length; /* length of environ array */ int used; /* number of entries actually used */ } Env; /* ----------------------------------------------------------------------- * Local Functions * -----------------------------------------------------------------------*/ /* * createEnv - Creates a new environment array that is the length of * of the current environment plus the number of additions. */ static void createEnv(env,nadditions) Env *env; int nadditions; { int i = 0; /* find the number of items in the current environ */ while (environ[i] != (char *)NULL) { i++; } /* create space for the environ strings */ env->used = i; env->length = env->used + nadditions + 1; env->environ = MemAlloc(env->length*sizeof(char *)); /* copy the current environ into the new one */ for (i=0; iused; i++) { env->environ[i] = MemNewString(environ[i]); } env->environ[i] = (char *)NULL; } /* * putEnv - Puts the name,value pair into the specified environment * replacing any existing values. * Assumes there is space for the new setting. */ static void putEnv(env,name,value) Env *env; char *name; char *value; { int nameLen = strlen(name); char *envVar; int count; /* create new env string with space for '=' and null */ envVar = (char *)MemAlloc(nameLen + strlen(value) +2); (void)sprintf(envVar,"%s=%s",name,value); /* search through, checking for variable in question */ for (count=0 ; countused; count++) { if (!strncmp(env->environ[count],name,nameLen)) break; } if (count == env->used) /* finished loop without match */ env->used++; /* added 1 more var to the env */ else MemFree(env->environ[count]); /* don't need */ env->environ[count] = envVar; /* make sure the last entry in the vector is NULL */ env->environ[env->used] = (char *)NULL; } /* * putDisplayEnv - sets the DISPLAY env to the appropriate screen */ static void putDisplayEnv(env,dpy,screen) Env *env; Display *dpy; int screen; { char *display = DisplayString(dpy); char *colon,*dot; char value[128]; int len; if ((colon = strrchr(display,':')) == (char *)NULL) { return; } if ((dot = strchr(colon,'.')) != (char *)NULL) { len = dot - display; } else { len = colon - display; } (void)sprintf(value,"%.*s.%d",len,display,screen); putEnv(env,"DISPLAY",value); } #ifndef NOSVENV /* * putSunViewEnv - sets the various SV environment variables */ static void putSunViewEnv(env,dpy,screen) Env *env; Display *dpy; int screen; { static char *svEnv[] = { "WINDOW_PARENT", "WMGR_ENV_PLACEHOLDER", "WINDOW_TTYPARMS" }; int i, svEnvLen = sizeof(svEnv)/sizeof(char *); char *result,*curpos; unsigned long nitems,remainder; extern void *GetWindowProperty(); extern Atom AtomSunViewEnv; result = (char *)GetWindowProperty(dpy,RootWindow(dpy,screen), AtomSunViewEnv,0L,100000L, XA_STRING,8,&nitems,&remainder); if (result == NULL) return; curpos = result; for (i=0; i #include #include #include #include "i18n.h" #include "ollocale.h" #include "error.h" #include "olwm.h" #include "globals.h" /* some syntactic sugar to shut up lint */ #define FPRINTF (void) fprintf /* The following defines create bitmasks from the X Error Codes */ #define BReq (1<error_code, buf, BUFSIZ); FPRINTF(stderr, GetString("%s%s\n"), tag, buf); sprintf(number, "%d", err->request_code); XGetErrorDatabaseText(dpy, "XRequest", number, "", buf, BUFSIZ); FPRINTF(stderr, GetString(" request major code: %d (%s)\n"), err->request_code, buf); FPRINTF(stderr, GetString(" request minor code: %d\n"), err->minor_code); FPRINTF(stderr, GetString(" resource ID in failed request: 0x%x\n"), err->resourceid); FPRINTF(stderr, GetString(" serial number of failed request: %d\n"), err->serial); #if 0 /* How can we find this out in X11R6? martin-2.buck@student.uni-ulm.de */ FPRINTF(stderr, GetString(" current request serial number: %d\n"), dpy->request); #endif } /* * handleExtensionError -- handle an error that came from an extension * request. Policy is determined in code instead of being table-driven. * BadWindow errors for SHAPE extension requests are ignored. All other * errors are treated as warnings. */ static void handleExtensionError(dpy, event) Display *dpy; XErrorEvent *event; { #ifdef SHAPE extern int ShapeRequestBase; if (event->request_code == ShapeRequestBase && event->error_code == BadWindow) return; #endif /* SHAPE */ if (GRV.PrintWarnings) { printError(dpy, event, GetString("olwm: warning, X extension error -- ")); } } /* * ErrorSensitive * * Cause an exit on all X errors. If an error occurs, the string is printed * along with the error message. */ void ErrorSensitive(s) char *s; { hyperSensitive = s; } /* * ErrorInsensitive -- perform normal X error processing */ /*ARGSUSED*/ /* dpy arg will be used when multiple Displays supported */ void ErrorInsensitive(dpy) Display *dpy; { hyperSensitive = NULL; } /* * ErrorHandler * * Called whenever an X protocol error is detected. Prints the contents of * the X error event. If hypersensitive, always exits. Calls * handleExtensionError() and returns if the error was generated by a * extension request. For errors generated by core requests, may exit if * errorTable entry dictates that we do so. */ int ErrorHandler(dpy, event) Display *dpy; XErrorEvent *event; { int errBitmask; ErrorEntry *entry; if (hyperSensitive != NULL) { printError(dpy, event, GetString("olwm: fatal X protocol error -- ")); FPRINTF(stderr, "%s\n", hyperSensitive); exit(1); /*NOTREACHED*/ } if (event->request_code > X_NoOperation) { handleExtensionError(dpy, event); return 0; } errBitmask = 1 << event->error_code; entry = &errorTable[event->request_code]; if (errBitmask & entry->fatal) { printError(dpy, event, GetString("olwm: fatal X protocol error -- ")); exit(1); /*NOTREACHED*/ } else if (errBitmask & entry->warning) { if (GRV.PrintWarnings) { printError(dpy, event, GetString("olwm: warning, X protocol error -- ")); } } return 0; } /* * ErrorGeneral * * Called whenever a fatal error occurs that is not caused by an X protocol * error. Always exits immediately. */ void ErrorGeneral(txt) char *txt; { FPRINTF(stderr, GetString("olwm: fatal error -- %s\n"), txt); #ifdef DEBUG abort(); /*NOTREACHED*/ #else exit(1); /*NOTREACHED*/ #endif } /* * ErrorWarning * * Called whenever OLWM needs to issue a warning message. */ void ErrorWarning(txt) char *txt; { if (GRV.PrintWarnings) FPRINTF(stderr, GetString("olwm: warning -- %s\n"), txt); } xview-3.2p1.4/clients/olwm/error.h100644 1750 1750 1323 5413747421 14351 0ustar mbmb#ident "@(#)error.h 1.4 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_ERROR_H #define _OLWM_ERROR_H #include #ifdef __STDC__ extern void ErrorSensitive(char *s); extern void ErrorInsensitive(Display *dpy); extern int ErrorHandler(Display *dpy, XErrorEvent *event); extern void ErrorGeneral(char *txt); extern void ErrorWarning(char *txt); #else extern void ErrorSensitive(); extern void ErrorInsensitive(); extern int ErrorHandler(); extern void ErrorGeneral(); extern void ErrorWarning(); #endif #endif /* _OLWM_ERROR_H */ xview-3.2p1.4/clients/olwm/mem.c100644 1750 1750 7026 6331115755 13776 0ustar mbmb#ident "@(#)mem.c 26.9 91/08/25 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ /* * Safe memory allocation/free routines - front-ends the C library functions * */ #include #include #include #include #include "i18n.h" #include "mem.h" #include "error.h" #ifdef MEMDEBUG #include "st.h" #define MemAlloc d_MemAlloc #define MemFree d_MemFree #define MemRealloc d_MemRealloc #define MemCalloc d_MemCalloc int MemAcct; int AcctTag; static st_table *memHashTable; typedef struct { unsigned int s; int a; int l; char *f; char *k; } Mem; static int memCompare(g1, g2) char *g1, *g2; { return (g1 - g2); } static int memHash(g1, modulus) int g1; int modulus; { return g1 % modulus; } static void insertAcctInfo(p, s, f, l, k) void *p; unsigned int s; char *f; int l; char *k; { if (MemAcct) { Mem *m; MemAcct = 0; /*prevent nasty recursion*/ if (memHashTable == NULL) memHashTable = st_init_table(memCompare, memHash); m = (Mem *) malloc(sizeof(Mem)); m->s = s; m->f = f; m->l = l; m->a = AcctTag; m->k = k; st_insert(memHashTable, p, m); MemAcct = 1; } } static enum st_retval dodump(key, rec) void *key; Mem *rec; { char extra[255]; if (rec->k == NULL) strcpy(extra, "\n"); else { if (strcmp(rec->k, "(string)") == 0) sprintf(extra, ":\"%s\"\n", key); else sprintf(extra, ":%s\n", rec->k); } fprintf(stderr, "extant: %d) 0x%.8x, (f:%s, l:%d) (%d bytes)%s", rec->a, key, rec->f, rec->l, rec->s, extra); return ST_DELETE; } void DumpExtant() { if (memHashTable) st_foreach(memHashTable, dodump, NULL); else fprintf(stderr, "no accounting info availiable!\n"); } #endif void * MemAlloc(sz #ifdef MEMDEBUG , f, l, k #endif ) unsigned int sz; #ifdef MEMDEBUG char *f; int l; char *k; #endif { void *p; #ifdef __linux if (!sz) /* Linux malloc(0) returns NULL, unlike BSD */ sz = 1; #endif if ((p = malloc(sz)) == NULL) ErrorGeneral(GetString("Memory allocation failure.")); memset((char *) p, 0, (int) sz); #ifdef MEMDEBUG insertAcctInfo(p, sz, f, l, k); #endif return p; } void * MemCalloc(num, sz #ifdef MEMDEBUG , f, l #endif ) unsigned int num; unsigned int sz; #ifdef MEMDEBUG char *f; int l; #endif { void *p; if ((p = calloc(num, sz)) == NULL) ErrorGeneral(GetString("Memory array allocation failure.")); memset((char *) p, 0, (int) sz * (int) num); #ifdef MEMDEBUG insertAcctInfo(p, sz * num, f, l, NULL); #endif return p; } void * MemRealloc(p, sz) void *p; unsigned int sz; { void *t; if ((t = realloc(p, sz)) == NULL) ErrorGeneral(GetString("Memory array allocation failure.")); #ifdef MEMDEBUG if (MemAcct && memHashTable) { Mem *oldM; MemAcct = 0; (void) st_delete(memHashTable, &p, (char *) &oldM); oldM->s = sz; st_insert(memHashTable, t, oldM); MemAcct = 1; } #endif return t; } void MemFree(p) void *p; { if (p != NULL) { #ifdef MEMDEBUG if (MemAcct && memHashTable) { Mem *oldM; MemAcct = 0; (void) st_delete(memHashTable, &p, (char *) &oldM); free(oldM); MemAcct = 1; } #endif free(p); } } xview-3.2p1.4/clients/olwm/group.c100644 1750 1750 14557 5413747423 14406 0ustar mbmb#ident "@(#)group.c 26.9 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #include #include #include #include "i18n.h" #include "mem.h" #include "st.h" #include "olwm.h" #include "win.h" #include "list.h" #include "group.h" /*************************************************************************** * Local data ***************************************************************************/ static st_table *groupHashTable; /*************************************************************************** * Local functions ***************************************************************************/ /* groupFindList -- find a client in a list of clients; return a given * value if found or 0 otherwise. If passed a pointer to a List **, set that. */ static unsigned int groupFindList(plist, cli, retlist, retval) List **plist; Client *cli; List ***retlist; unsigned int retval; { if ((cli == NULL) || (*plist == NULL)) { if (retlist != NULL) *retlist = NULL; return 0; } if ((*plist)->value == cli) { if (retlist != NULL) *retlist = plist; return retval; } return groupFindList(&((*plist)->next), cli, retlist, retval); } /* groupFindCli -- find a client in a group. Return a mask indicating * which category of client the client was found in, if any; if a list * pointer is passed in, return a pointer to a List * in that parameters * (presumably for list deletion). */ static unsigned int groupFindCli(group, cli, ppList) Group *group; Client *cli; List ***ppList; { unsigned int retmask; if (cli == group->leader) { retmask = GROUP_LEADER; } else { if ((retmask = groupFindList(&(group->dependents), cli, ppList, GROUP_DEPENDENT)) == 0) retmask = groupFindList(&(group->independents), cli, ppList, GROUP_INDEPENDENT); } return retmask; } /* groupCompare -- utility function to compare two group id's */ static int groupCompare(g1,g2) register char *g1, *g2; { return ((GroupID)g1) - ((GroupID)g2); } /* groupHash -- hash function for group id lookup table */ static int groupHash(g1, modulus) register char *g1; register int modulus; { return ((GroupID)g1)%modulus; } /* groupInsert -- put a group structure into the lookup table */ static void groupInsert(group) Group *group; { st_insert(groupHashTable, (int)group->groupid, (char *)group); } /* groupDelete -- remove a group structure from the lookup table */ static Bool groupDelete(grpid) GroupID grpid; { Group *oldGrp; GroupID tmpGrp = grpid; GroupID *tmpGrpPtr = &tmpGrp; return st_delete(groupHashTable, (char *)tmpGrpPtr, (char *)&oldGrp); } /*************************************************************************** * Global functions ***************************************************************************/ /* * GroupInit -- initialises the hash table used to map group id's to * group structures. */ void GroupInit() { groupHashTable = st_init_table(groupCompare, groupHash); } /* GroupApply -- applies a function to each part of the group identified * in the mask; as with any apply function, when the function returns * a non-NULL value application stops and that value is returned. */ void * GroupApply(grpid, func, closure, mask) GroupID grpid; GroupFunc func; void *closure; unsigned int mask; { Group *group; void *res = NULL; group = GroupLookup(grpid); if (group == NULL) return NULL; if ((mask & GROUP_LEADER) && (group->leader != NULL)) { res = (func)(group->leader, closure); } if ((mask & GROUP_DEPENDENT) && (group->dependents != NULL) && (res == NULL)) { res = ListApply(group->dependents,func,closure); } if ((mask & GROUP_INDEPENDENT) && (group->independents != NULL) && (res == NULL)) { res = ListApply(group->independents,func,closure); } return res; } /* GroupLookup -- given a GroupID, returns the associated group structure, * or NULL if there is none. */ Group * GroupLookup(group) GroupID group; { Group *tmp = NULL; st_lookup(groupHashTable, group, &tmp); return tmp; } /* GroupAdd -- adds a client to the named group, creating the group if need be. * The kind of client is specified in the mask field. Returns True * if the client was successfully added. */ Bool GroupAdd(grpid, cli, mask) GroupID grpid; Client *cli; unsigned int mask; { Group *group; unsigned int currmask; group = GroupLookup(grpid); if (group == NULL) { group = MemNew(Group); group->groupid = grpid; groupInsert(group); currmask = 0; } else { currmask = groupFindCli(group, cli, NULL); } if (mask & GROUP_LEADER) { if ((currmask == 0) || (group->leader == cli)) { group->leader = cli; return True; } else return False; } else if (mask & GROUP_DEPENDENT) { if (currmask != 0) return False; group->dependents = ListCons(cli,group->dependents); } else if (mask & GROUP_INDEPENDENT) { if (currmask != 0) return False; group->independents = ListCons(cli,group->independents); } return True; } /* GroupRemove -- removes a client from the group. If the group becomes empty * it is deleted. Returns True if the client was successfully deleted. */ Bool GroupRemove(grpid,cli) GroupID grpid; Client *cli; { Group *group; unsigned int mask; List **plist; group = GroupLookup(grpid); if (group == NULL) return False; mask = groupFindCli(group, cli, &plist); if (mask == GROUP_LEADER) { group->leader = NULL; } else if ((mask == GROUP_DEPENDENT) || (mask == GROUP_INDEPENDENT)) { ListDestroyCell(plist); } else { return False; } if ((group->leader == NULL) && (group->dependents == NULL) && (group->independents == NULL)) { groupDelete(group->groupid); MemFree(group); } return True; } /* GroupIsLeader -- returns whether a particular client is leader of a group * If the group hasn't been registered yet, assume that this client is * its leader. */ Bool GroupIsLeader(grpid, cli) GroupID grpid; Client *cli; { Group *group; group = GroupLookup(grpid); if (group == NULL) return True; return (group->leader == cli); } /* GroupLeader -- returns the leader of a group */ Client * GroupLeader(grpid) GroupID grpid; { Group *group; group = GroupLookup(grpid); if (group == NULL) return NULL; else return group->leader; } xview-3.2p1.4/clients/olwm/group.h100644 1750 1750 3401 5413747423 14355 0ustar mbmb#ident "@(#)group.h 26.8 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_GROUP_H #define _OLWM_GROUP_H typedef Window GroupID; typedef void *(*GroupFunc)(/* Client *, void * */); typedef struct _group { GroupID groupid; Client *leader; List *dependents; /* List of Client * */ List *independents; /* List of Client * */ } Group; #define GROUP_LEADER 0x01 #define GROUP_DEPENDENT 0x02 #define GROUP_INDEPENDENT 0x04 extern void GroupInit(); /* initialises the Group package; should be called only once * at startup. */ extern void *GroupApply(); /* GroupID, GroupFunc, void *, mask */ /* applies a function to each part of the group identified in the * mask; as with any apply function, when the function returns * a non-NULL value application stops and that value is returned. */ extern Group *GroupLookup(); /* GroupID */ /* given a GroupID, returns the associated group structure, or NULL * if there is none. */ extern Bool GroupAdd(); /* GroupID, Client *, mask */ /* adds a client to the named group, creating the group if need be. * The kind of client is specified in the mask field. Returns True * if the client was successfully added. */ extern Bool GroupRemove(); /* GroupID, Client * */ /* removes a client from the group. If the group becomes empty * it is deleted. Returns True if the client was successfully deleted. */ extern Bool GroupIsLeader(); /* GroupID, Client * */ /* returns whether a particular client is the leader of * a group */ extern Client *GroupLeader(); /* GroupID */ /* returns the leader of a group */ #endif /* _OLWM_GROUP_H */ xview-3.2p1.4/clients/olwm/evbind.c100644 1750 1750 103764 5413747421 14536 0ustar mbmb#ident "@(#)evbind.c 1.35 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #include #include #include #include #include #include #include #include "i18n.h" #include "ollocale.h" #include "olwm.h" #include "win.h" #include "globals.h" #include "events.h" #include "list.h" #include "mem.h" #include "kbdfuncs.h" #include "resources.h" #include "error.h" /* ===== externs ========================================================== */ extern List *ScreenInfoList; /* ===== private data ===================================================== */ static XrmQuark kbdCmdInstanceQ; static XrmQuark kbdCmdClassQ; static XrmQuark modInstanceQ; static XrmQuark modClassQ; static XrmQuark menuAccelInstanceQ; static XrmQuark menuAccelClassQ; /* ===== Modifier Binding ================================================= */ unsigned int ModMaskMap[MOD_MASK_COUNT]; typedef struct { char *rsrc_name; char *dflt_binding; int mapindex; } ModDescriptor; ModDescriptor ModDescriptorTable[] = { /* rsrc_name default mapindex */ { "Constrain", "Control", MOD_CONSTRAIN }, { "WMGrab", "Alt", MOD_WMGRAB }, { "Reduce", "Meta", MOD_REDUCE }, { "Invert", "Shift", MOD_INVERT }, { "SetDefault", "Control", MOD_SETDEFAULT }, { "Ignore", "Lock,Num_Lock,mod5,Mode_switch", MOD_IGNORE } }; #define NMODBINDINGS (sizeof(ModDescriptorTable)/sizeof(ModDescriptor)) /* * establishModBindings * * Read through the modifier descriptor table and fill in the modifier mask * map with modifier masks found in the server's modifier mask map. */ static void establishModBindings(dpy, newDB) Display *dpy; XrmDatabase newDB; { XrmQuark classlist[4], instlist[4]; char *s; XrmRepresentation rep; XrmValue value; ModDescriptor *d; unsigned int polyStringToModifier(); static XrmBinding bindings[] = { XrmBindTightly, XrmBindTightly, XrmBindTightly }; classlist[0] = OpenWinQ; classlist[1] = modClassQ; classlist[3] = NULLQUARK; instlist[0] = TopInstanceQ; instlist[1] = modInstanceQ; instlist[3] = NULLQUARK; for (d = ModDescriptorTable; d < ModDescriptorTable + NMODBINDINGS; ++d) { classlist[2] = instlist[2] = XrmStringToQuark(d->rsrc_name); if (XrmQGetResource(newDB, instlist, classlist, &rep, &value)) s = (char *) value.addr; else s = d->dflt_binding; ModMaskMap[d->mapindex] = polyStringToModifier(dpy, s); } } /* ===== Mouse Binding ==================================================== */ /* * Table of mouse bindings. * * REMIND * * At a future time, this table will be changeable via resources. For now, * it's specified as a compile-time constant. */ typedef struct { int state; int button; SemanticAction action; } MouseBinding; #define BAD_STATE 0xffffffff MouseBinding *MouseBindingTable; MouseBinding ThreeButtons[] = { /* state, button, action */ { 0, Button1, ACTION_SELECT }, { 0, Button2, ACTION_ADJUST }, { 0, Button3, ACTION_MENU }, { ButtonToMask(1), Button2, ACTION_MENU }, { ButtonToMask(2), Button1, ACTION_MENU }, { ShiftMask, Button1, ACTION_ADJUST }, { ControlMask, Button3, ACTION_MENU }, { ControlMask|ButtonToMask(1), Button2, ACTION_MENU }, { ControlMask|ButtonToMask(2), Button1, ACTION_MENU }, { BAD_STATE, 0, ACTION_NONE }, }; MouseBinding OneButtonOnly[] = { /* state, button, action */ { 0, Button1, ACTION_SELECT }, { ShiftMask, Button1, ACTION_ADJUST }, { ControlMask, Button1, ACTION_MENU }, { ControlMask|ButtonToMask(1), Button2, ACTION_MENU }, { ControlMask|ButtonToMask(2), Button1, ACTION_MENU }, { BAD_STATE, 0, ACTION_NONE }, }; MouseBinding TwoButtonsOlSpec[] = { /* according to the OL spec */ /* state, button, action */ { 0, Button1, ACTION_SELECT }, { 0, Button2, ACTION_MENU }, { ShiftMask, Button1, ACTION_ADJUST }, { ControlMask, Button2, ACTION_MENU }, { ControlMask|ButtonToMask(1), Button2, ACTION_MENU }, { ControlMask|ButtonToMask(2), Button1, ACTION_MENU }, { BAD_STATE, 0, ACTION_NONE }, }; MouseBinding TwoButtonsWithChording[] = { /* The Xerox-inspired way */ /* state, button, action */ { 0, Button1, ACTION_SELECT }, { 0, Button2, ACTION_ADJUST }, { ButtonToMask(1), Button2, ACTION_MENU }, { ButtonToMask(2), Button1, ACTION_MENU }, { ShiftMask, Button1, ACTION_ADJUST }, { ControlMask, Button2, ACTION_MENU }, { ControlMask|ButtonToMask(1), Button2, ACTION_MENU }, { ControlMask|ButtonToMask(2), Button1, ACTION_MENU }, { BAD_STATE, 0, ACTION_NONE }, }; /* * searchMouseBindings * * Search the mouse binding table and return information about what was found. * Return values of MATCH_NONE, MATCH_INCOMPLETE, and MATCH_AMBIG mean that no * action is available for the given event. MATCH_PREFIX and MATCH_EXACT * indicate that an action is available; this action is returned in the area * pointed to by the action parameter. */ static MouseMatchState searchMouseBindings(pe, action) XButtonEvent *pe; SemanticAction *action; { int i; int nexact = 0; /* number of exact matches */ int nprefix = 0; /* number of prefix matches */ int lastexact = 0; /* index of last exact match */ unsigned int modmask = (pe->state | ButtonToMask(pe->button)); static int first = 1; /* is this the first time here? */ if (first) { extern int numbuttons; switch (numbuttons) { /* based on # buttons on pointer */ default: case 3: MouseBindingTable = ThreeButtons; break; case 2: if (GRV.MouseChordMenu) /* is chording enabled? */ MouseBindingTable = TwoButtonsWithChording; else MouseBindingTable = TwoButtonsOlSpec; break; case 1: MouseBindingTable = OneButtonOnly; break; } first = 0; } for (i=0; MouseBindingTable[i].state != BAD_STATE; ++i) { if (pe->state == MouseBindingTable[i].state && pe->button == MouseBindingTable[i].button) { lastexact = i; ++nexact; } else if (modmask == MouseBindingTable[i].state) { ++nprefix; } } if (nexact == 0 && nprefix == 0) return MATCH_NONE; if (nexact == 0 && nprefix > 0) return MATCH_INCOMPLETE; if (nexact > 1) return MATCH_AMBIG; /* at this point, we know there is exactly one exact match */ *action = MouseBindingTable[lastexact].action; if (nprefix == 0) return MATCH_EXACT; else return MATCH_PREFIX; } /* * checkChording * * Scan the input queue for button events that will disambiguate a single * action from a chorded action. If there aren't any events in the queue, * wait for them until a certain timeout period has elapsed. Return value * indicates whether a ButtonPress was seen further ahead in the event stream, * which indicates that this event is part of a chorded sequence. The timeout * parameter is updated with the amount of time remaining. */ static Bool checkChording(dpy, timeout, pr) Display *dpy; struct timeval timeout; XButtonEvent *pr; { XEvent e; int n; while (1) { /* * Check for data on the connection. Scan it for disambiguating * events. Note that MotionNotify events within the move threshold * are discarded. */ n = XEventsQueued(dpy, QueuedAfterReading); if (n > 0 && XCheckMaskEvent(dpy, ButtonPressMask|ButtonReleaseMask|ButtonMotionMask, &e)) { switch (e.type) { case ButtonPress: XPutBackEvent(dpy, &e); return True; case ButtonRelease: XPutBackEvent(dpy, &e); return False; case MotionNotify: if (ABS(pr->x_root - e.xmotion.x_root) > GRV.MoveThreshold || ABS(pr->y_root - e.xmotion.y_root) > GRV.MoveThreshold) { XPutBackEvent(dpy, &e); return False; } break; } } if (!AwaitEvents(dpy, &timeout)) return False; } } /* * ResolveMouseBinding * * Given a mouse button press event, determines whether this event completes * an event sequence that binds to an action. If the button press is a prefix * of a chording sequence, and this press falls within the chording time of * the initial button press, checkChording is called to disambiguate the event * stream. Returns a proper action if the action is complete, otherwise * returns ACTION_NONE. All callers should ensure that no action is taken * when this routine returns ACTION_NONE. */ SemanticAction ResolveMouseBinding(dpy, pevent, ignoremask) Display *dpy; XEvent *pevent; unsigned long ignoremask; { MouseMatchState m; struct timeval timeout; SemanticAction a; static Time firstpresstime; XEvent e; /* copy *pevent to e, masking off ignored bits from the state */ e = *pevent; e.xbutton.state &= ~(ignoremask | ModMaskMap[MOD_IGNORE] | ModMaskMap[MOD_WMGRAB]); /* Chording is in msec. Convert to sec/usec for timeval. */ timeout.tv_usec = GRV.MouseChordTimeout * 1000; if (timeout.tv_usec >= 1000000) { timeout.tv_sec = timeout.tv_usec / 1000000; timeout.tv_usec %= 1000000; } else { timeout.tv_sec = 0; } if (FirstButtonDown(&e)) { firstpresstime = e.xbutton.time; } else { if (e.xbutton.time - firstpresstime > GRV.MouseChordTimeout) return ACTION_NONE; } m = searchMouseBindings(&e, &a); if ((m == MATCH_PREFIX && !checkChording(dpy, timeout, &e)) || m == MATCH_EXACT) { return a; } else { return ACTION_NONE; } } /* ===== Keyboard Binding ================================================= */ /* * Table of default keyboard descriptors. This table contains information * necessary to initialize keyboard bindings and customize them based on * resources. */ #define NULLFUNC ((void (*)())0) extern void HandleHelpKey(); static void keySuspend(); static void keyResume(); static void keyQuoteNext(); static unsigned long mouselessMaskTable[] = { KD_SUNVIEW, KD_BASIC, KD_FULL }; KeyDescriptor KeyDescriptorTable[] = { /* rsrc_name dflt_binding function action flags */ { "Stop", "L1,Escape", NULLFUNC, ACTION_STOP, KD_ALWAYS }, { "DefaultAction", "Return,Return+Meta,KP_Enter", NULLFUNC, ACTION_EXEC_DEFAULT, KD_ALWAYS }, { "Select", "space", NULLFUNC, ACTION_SELECT, KD_ALWAYS }, { "Adjust", "Insert+Alt", NULLFUNC, ACTION_ADJUST, KD_ALWAYS }, { "Menu", "space+Alt", NULLFUNC, ACTION_MENU, KD_ALWAYS }, { "InputFocusHelp", "question,question+Ctrl", NULLFUNC, ACTION_FOCUS_HELP, KD_ALWAYS }, { "Up", "Up", NULLFUNC, ACTION_UP, KD_ALWAYS }, { "Down", "Down", NULLFUNC, ACTION_DOWN, KD_ALWAYS }, { "Left", "Left", NULLFUNC, ACTION_LEFT, KD_ALWAYS }, { "Right", "Right", NULLFUNC, ACTION_RIGHT, KD_ALWAYS }, { "JumpUp", "Up+Ctrl", NULLFUNC, ACTION_JUMP_UP, KD_ALWAYS }, { "JumpDown", "Down+Ctrl", NULLFUNC, ACTION_JUMP_DOWN, KD_ALWAYS }, { "JumpLeft", "Left+Ctrl", NULLFUNC, ACTION_JUMP_LEFT, KD_ALWAYS }, { "JumpRight", "Right+Ctrl", NULLFUNC, ACTION_JUMP_RIGHT, KD_ALWAYS }, { "RowStart", "Home,R7", NULLFUNC, ACTION_ROW_START, KD_ALWAYS }, { "RowEnd", "End,R13", NULLFUNC, ACTION_ROW_END, KD_ALWAYS }, { "DataStart", "Home+Ctrl", NULLFUNC, ACTION_DATA_START, KD_ALWAYS }, { "DataEnd", "End+Ctrl", NULLFUNC, ACTION_DATA_END, KD_ALWAYS }, { "FirstControl", "bracketleft+Ctrl", NULLFUNC, ACTION_FIRST_CONTROL, KD_ALWAYS }, { "LastControl", "bracketright+Ctrl", NULLFUNC, ACTION_LAST_CONTROL, KD_ALWAYS }, { "NextElement", "Tab,Tab+Ctrl", NULLFUNC, ACTION_NEXT_ELEMENT, KD_ALWAYS }, { "PreviousElement", "Tab+Shift,Tab+Shift+Ctrl", NULLFUNC, ACTION_PREVIOUS_ELEMENT, KD_ALWAYS }, { "Open", "L7+Alt", NULLFUNC, ACTION_OPEN, KD_ALWAYS }, { "Help", "Help", HandleHelpKey, ACTION_HELP, KD_BASIC_FULL }, { "LockColormap", "L2+Ctrl", KeyLockColormap, ACTION_NONE, KD_BASIC_FULL }, { "UnlockColormap", "L4+Ctrl", KeyUnlockColormap, ACTION_NONE, KD_BASIC_FULL }, { "Front", "L5+Alt", KeyFrontFocus, ACTION_FRONT, KD_BASIC_FULL }, { "FocusToPointer", "j+Shift+Alt", KeyFocusToPointer, ACTION_NONE, KD_FULL }, { "NextApp", "n+Alt", KeyNextApp, ACTION_NONE, KD_FULL }, { "PreviousApp", "N+Alt", KeyPrevApp, ACTION_NONE, KD_FULL }, { "ToggleInput", "t+Alt", KeyToggleInput, ACTION_NONE, KD_FULL }, { "NextWindow", "w+Alt", KeyNextWindow, ACTION_NONE, KD_FULL }, { "PreviousWindow", "W+Alt", KeyPrevWindow, ACTION_NONE, KD_FULL }, { "TogglePin", "Insert+Meta", KeyTogglePin, ACTION_TOGGLE_PIN, KD_FULL }, { "SuspendMouseless", "z+Alt", keySuspend, ACTION_NONE, KD_FULL }, { "ResumeMouseless", "Z+Alt", keyResume, ACTION_NONE, KD_IMMUNE | KD_FULL }, { "QuoteNextKey", "q+Alt", keyQuoteNext, ACTION_NONE, KD_BASIC_FULL }, { "Refresh", "", KeyRefresh, ACTION_REFRESH, KD_MENU_ACCEL }, { "Back", "", KeyBackFocus, ACTION_BACK, KD_MENU_ACCEL }, { "OpenClose", "w+Meta", KeyOpenCloseFocus, ACTION_OPEN_CLOSE, KD_MENU_ACCEL }, { "FullRestore", "", KeyFullRestore, ACTION_FULL_RESTORE, KD_MENU_ACCEL }, { "Quit", "q+Meta", KeyQuit, ACTION_QUIT, KD_MENU_ACCEL }, { "Owner", "", KeyOwner, ACTION_OWNER, KD_MENU_ACCEL }, { "WorkspaceMenu", "M+Alt", KeyWorkspaceMenu, ACTION_NONE, KD_FULL }, { "WindowMenu", "m+Alt", KeyWindowMenu, ACTION_NONE, KD_FULL }, { "Move", "", KeyMove, ACTION_MOVE, KD_MENU_ACCEL }, { "Resize", "", KeyResize, ACTION_RESIZE, KD_MENU_ACCEL }, { "Properties", "", KeyProperties, ACTION_PROPS, KD_MENU_ACCEL }, { "OpenClosePointer", "L7", KeyOpenClosePointer, ACTION_NONE, KD_ALWAYS }, { "RaiseLower", "L5", KeyRaiseLowerPointer, ACTION_NONE, KD_ALWAYS }, { "MakeInvisiblePointer", "", KeyMakeInvisiblePointer, ACTION_NONE, KD_FULL }, { "MakeInvisibleFocus", "", KeyMakeInvisibleFocus, ACTION_NONE, KD_FULL }, { "MakeVisibleAll", "", KeyMakeVisibleAll, ACTION_NONE, KD_FULL }, }; #define NUMKEYDESCRIPTORS (sizeof(KeyDescriptorTable)/sizeof(KeyDescriptor)) typedef struct { KeySym sym; unsigned int mod; } modsym; #define KEYBINDING_TABLE_SIZE 60 #define KEYBINDING_TABLE_INCR 20 static KeyBinding *KeyBindingTable = NULL; static KeyBinding *activeKey = NULL; static int bindingTableCount = 0; static int bindingTableSize = 0; static Bool quotenext = False; Bool mouselessSuspended = False; /* * Suspension and resumption of Mouseless functions. */ static void keySuspend(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type != KeyPress) return; mouselessSuspended = True; } static void keyResume(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type != KeyPress) return; if (mouselessSuspended) mouselessSuspended = False; else KeyBeep(dpy, ke); } static void keyQuoteNext(dpy, ke) Display *dpy; XKeyEvent *ke; { /* * Turn on quotenext on the release. If we set it on the press, * the subsequent release would turn it off! */ if (ke->type != KeyRelease) return; quotenext = True; } /* * Add a binding to the key binding table. */ static void addBinding(kc, mod, desc) KeyCode kc; unsigned int mod; KeyDescriptor *desc; { KeyBinding *b; if (bindingTableCount == bindingTableSize) { bindingTableSize += KEYBINDING_TABLE_INCR; KeyBindingTable = MemRealloc(KeyBindingTable, bindingTableSize*sizeof(KeyBinding)); } b = &KeyBindingTable[bindingTableCount]; b->keycode = kc; b->modstate = mod; b->desc = desc; ++bindingTableCount; } /* * Keysym aliasing. Provides aliases for modifier keysyms. Allows an alias * to represent a mask or to be a synonym for up to two keysyms. The keysyms * are only looked at if the mask value is zero. */ typedef struct { char *alias; unsigned int mask; KeySym sym1, sym2; } KeysymAlias; static KeysymAlias KeysymAliasTable[] = { /* alias mask sym1 sym2 */ { "Any", AnyModifier, 0, 0 }, { "Shift", ShiftMask, 0, 0 }, { "Lock", LockMask, 0, 0 }, { "Control", ControlMask, 0, 0 }, { "Ctrl", ControlMask, 0, 0 }, { "Ctl", ControlMask, 0, 0 }, { "Meta", 0, XK_Meta_L, XK_Meta_R }, { "Alt", 0, XK_Alt_L, XK_Alt_R }, { "Super", 0, XK_Super_L, XK_Super_R }, { "Hyper", 0, XK_Hyper_L, XK_Hyper_R } }; #define NUMALIASES (sizeof(KeysymAliasTable)/sizeof(KeysymAlias)) /* * Takes a word and presumes that it names a keysym. Looks up this keysym in * the modifier mapping table and returns the corresponding modifier mask. If * the string doesn't name a valid keysym, returns 0. If the keysym is not a * modifier, returns 0. If the word is "Any", returns AnyModifier. Several * aliases are supported for well-known modifiers, e.g. "Meta" for "Meta_L" or * "Meta_R". REMIND: If a keysym is on several keys, and only some of the * keys are modifiers, this function may fail to find the modifier mask. */ unsigned int stringToModifier(dpy, word) Display *dpy; char *word; { KeySym ks; KeyCode kc; KeysymAlias *ksa; int modnum; ks = XStringToKeysym(word); if (ks != NoSymbol) { kc = XKeysymToKeycode(dpy, ks); if (kc == 0) return 0; else return FindModifierMask(kc); } /* * It's not a valid keysym name, so try a bunch of aliases. First, * Allow "mod1" ... "mod5" as synonyms for Mod1Mask ... Mod5Mask. */ if (1 == sscanf(word, "mod%d", &modnum) && modnum >= 1 && modnum <= 5) { return (1 << (Mod1MapIndex + modnum - 1)); } /* look through the alias table for masks or keysyms */ kc = 0; for (ksa = KeysymAliasTable; ksa < KeysymAliasTable + NUMALIASES; ++ksa) { if (0 == strcmp(word, ksa->alias)) { if (ksa->mask != 0) return ksa->mask; kc = XKeysymToKeycode(dpy, ksa->sym1); if (kc == 0) kc = XKeysymToKeycode(dpy, ksa->sym2); if (kc == 0) return 0; else return FindModifierMask(kc); } } return 0; } /* * Parses a comma-separated string into words, gets the modifier mask for * each, ORs them together and returns the result. */ unsigned int polyStringToModifier(dpy, str) Display *dpy; char *str; { char buf[200]; unsigned int result = 0; char *word; /* make a copy first, because strtok riddles the string with nulls. */ strcpy(buf, str); word = strtok(buf, ","); while (word != NULL) { result |= stringToModifier(dpy, word); word = strtok(NULL, ","); } return result; } #define MAX_MAPPINGS 6 /* * Parses a key specification of the form * keymod[,keymod[,...]] * where keymod is * keysym[+modifier[+...]] */ static int parseKeySpec(dpy, specifier, syms) char *specifier; modsym *syms; { char spec[200]; char *mapping[MAX_MAPPINGS]; char *keysym_string, *mod_string; KeySym keysym; int k; int modmask, newmod; int nbound = 0; char buffer[200]; /* make a copy first, because strtok riddles the string with nulls. */ strcpy(spec, specifier); /* break apart comma-separated mappings */ mapping[0] = strtok(spec, ","); for (k = 1; k < MAX_MAPPINGS; ++k) { mapping[k] = strtok(NULL, ","); if (mapping[k] == NULL) break; } /* for each mapping, break into keysym and modifier components */ for (k = 0; k < MAX_MAPPINGS && mapping[k]; ++k) { keysym_string = strtok(mapping[k], "+"); if (!keysym_string) { (void) sprintf(buffer, GetString("bad key mapping `%s'\n"), mapping[k]); ErrorWarning(buffer); continue; } keysym = XStringToKeysym(keysym_string); if (keysym == NoSymbol) { (void) sprintf(buffer, GetString("can't find keysym for `%s'\n"), keysym_string); ErrorWarning(buffer); continue; } /* * If the keysym is upper case alphabetic, add a shift mask. If it's * lower case, convert it to upper case. */ modmask = 0; if (XK_A <= keysym && keysym <= XK_Z) modmask = ShiftMask; if (XK_a <= keysym && keysym <= XK_z) keysym -= (XK_a - XK_A); while (1) { mod_string = strtok(NULL, "+"); if (!mod_string) break; newmod = stringToModifier(dpy, mod_string); if (newmod == 0) { /* * We couldn't find a modifier; ignore this binding. We can't * use continue, because we want to continue an outer loop. */ goto nobinding; } modmask |= newmod; } syms[nbound].sym = keysym; syms[nbound].mod = modmask; ++nbound; nobinding: ; } /* for each mapping */ return nbound; } /* * Run through the table of key descriptors and establish key bindings for * each descriptor. First, the resource database is probed for a customized * key binding specification. If one isn't found, the default key binding * specification is used. Then, this specification is parsed into an array of * keysym/modifier pairs. For each pair, the keyboard mapping table is * searched for the keysym and an entry is made into the binding table for * each instance of the keysym in the mapping table. Thus, if a keysym * appears on more than one keystation, a key binding entry is created for * each. * * The Mouseless and Menu Accelerator modes are checked before the binding is * added. For menu accelerator functions, if general menu accelerators are on * \and/ window menu accelerators are on, the binding is added. For other * functions, the appropriate Mouseless mode is checked. To effect a binding * that is always on, use KD_ALWAYS in the flags field of the key descriptor. * * Note: this is a change from earlier behavior, where a binding resource * would always be honored even if the Mouseless mode indicated that it would * be turned off. Now, a binding is ignored if the Mouseless or Menu * Accelerator mode indicates that it should be. */ static void establishKeyBindings(dpy, rdb) Display *dpy; XrmDatabase rdb; { KeyDescriptor *d; KeyBinding *kb; modsym syms[MAX_MAPPINGS]; int nsyms; int i, j; int keytblsize = (MaxKeyCode-MinKeyCode+1) * KeySymsPerKeyCode; XrmQuark classlist[4], namelist[4]; XrmQuark rep; XrmValue value; char *keyspec; classlist[0] = OpenWinQ; classlist[3] = NULLQUARK; namelist[0] = TopInstanceQ; namelist[3] = NULLQUARK; for (d=KeyDescriptorTable; d < KeyDescriptorTable+NUMKEYDESCRIPTORS; ++d) { if (d->flags & KD_MENU_ACCEL) { if (! GRV.WindowMenuAccelerators || ! GRV.MenuAccelerators) continue; classlist[1] = menuAccelClassQ; namelist[1] = menuAccelInstanceQ; } else { if (! (d->flags & mouselessMaskTable[GRV.Mouseless])) continue; classlist[1] = kbdCmdClassQ; namelist[1] = kbdCmdInstanceQ; } classlist[2] = namelist[2] = XrmStringToQuark(d->rsrc_name); if (XrmQGetResource(rdb, namelist, classlist, &rep, &value)) { keyspec = (char *) value.addr; } else { keyspec = d->dflt_binding; } nsyms = parseKeySpec(dpy, keyspec, syms); for (i=0; idesc->function != NULLFUNC) { if (grab) { XGrabKey(dpy, k->keycode, k->modstate, root, False, GrabModeAsync, GrabModeSync); XGrabKey(dpy, k->keycode, k->modstate | LockMask, root, False, GrabModeAsync, GrabModeSync); } else { XUngrabKey(dpy, k->keycode, k->modstate, root); XUngrabKey(dpy, k->keycode, k->modstate|LockMask, root); } if (NumLockMask != 0) { if (grab) { XGrabKey(dpy, k->keycode, k->modstate | NumLockMask, root, False, GrabModeAsync, GrabModeSync); XGrabKey(dpy, k->keycode, k->modstate | NumLockMask | LockMask, root, False, GrabModeAsync, GrabModeSync); } else { XUngrabKey(dpy, k->keycode, k->modstate | NumLockMask, root); XUngrabKey(dpy, k->keycode, k->modstate | NumLockMask | LockMask, root); } } } } } /* * Issue or release passive button grabs on this root window. Like * grabRootKeys, has to deal with Lock and NumLock by issuing up to four * separate grabs. Note: these are synchronous grabs. This relies on the * root event handler to issue an AllowEvents or GrabPointer request. */ static void grabRootButtons(dpy, root, grab) Display *dpy; Window root; Bool grab; /* True = grab, False = release */ { unsigned int NumLockMask = FindModifierMask(XKeysymToKeycode(dpy, XK_Num_Lock)); unsigned int eventmask = ButtonPressMask | ButtonMotionMask | ButtonReleaseMask; if (ModMaskMap[MOD_WMGRAB] != 0) { if (grab) { XGrabButton(dpy, AnyButton, ModMaskMap[MOD_WMGRAB], root, False, eventmask, GrabModeSync, GrabModeSync, None, None); XGrabButton(dpy, AnyButton, ModMaskMap[MOD_WMGRAB] | LockMask, root, False, eventmask, GrabModeSync, GrabModeSync, None, None); } else { XUngrabButton(dpy, AnyButton, ModMaskMap[MOD_WMGRAB], root); XUngrabButton(dpy, AnyButton, ModMaskMap[MOD_WMGRAB] | LockMask, root); } if (NumLockMask != 0) { if (grab) { XGrabButton(dpy, AnyButton, ModMaskMap[MOD_WMGRAB] | NumLockMask, root, False, eventmask, GrabModeSync, GrabModeSync, None, None); XGrabButton(dpy, AnyButton, ModMaskMap[MOD_WMGRAB] | LockMask | NumLockMask, root, False, eventmask, GrabModeSync, GrabModeSync, None, None); } else { XUngrabButton(dpy, AnyButton, ModMaskMap[MOD_WMGRAB] | NumLockMask, root); XUngrabButton(dpy, AnyButton, ModMaskMap[MOD_WMGRAB] | LockMask | NumLockMask, root); } } } } /* ===== public functions ================================================= */ /* * Given a semantic action, looks it up in the keyboard binding table. * Returns a pointer to the first key binding record that matches the semantic * action. The binding record is owned by the event binding system and must * not be altered by the caller, nor should references to it be maintained by * the caller, as it may be reclaimed if key bindings change. Returns NULL if * no binding can be found. As a special case, if the semantic action is * ACTION_NONE, NULL is returned. */ KeyBinding * LookupKeyBinding(action) SemanticAction action; { KeyBinding *k; if (action == ACTION_NONE) return NULL; for (k = KeyBindingTable; k < KeyBindingTable+bindingTableCount; ++k) { if (k->desc->action == action) return k; } return NULL; } /* * Given a keyboard event, looks it up in the keyboard binding table. If a * binding is found, returns the semantic action associated with that key. If * no binding is found, returns ACTION_NONE. */ SemanticAction FindKeyboardAction(dpy, event) Display *dpy; XEvent *event; { KeyBinding *k; SemanticAction a = ACTION_NONE; unsigned long ignore = ModMaskMap[MOD_IGNORE] | AnyButtonMask; for (k=KeyBindingTable; k < KeyBindingTable+bindingTableCount; ++k) { if (k->keycode == event->xkey.keycode && k->modstate == (event->xkey.state & ~ignore)) { a = k->desc->action; break; } } return a; } /* * Given a keyboard event, looks it up in the keyboard binding table. * If a binding is found, executes the function bound to that key. Returns * True if a function was found and called, otherwise False. */ Bool ExecuteKeyboardFunction(dpy, event) Display *dpy; XEvent *event; { KeyBinding *k; void (*f)() = NULLFUNC; unsigned long ignore = ModMaskMap[MOD_IGNORE] | AnyButtonMask; XrmQuark classes[5]; XrmQuark instances[5]; XrmQuark rep; XrmValue value; extern Bool BoolString(); for (k=KeyBindingTable; k < KeyBindingTable+bindingTableCount; ++k) { if (k->keycode == event->xkey.keycode && k->modstate == (event->xkey.state & ~ignore) && k->desc->function != NULLFUNC) { f = k->desc->function; break; } } /* If the user pressed the STOP key, clear active key. */ if (f == NULLFUNC) { if (FindKeyboardAction(dpy, event) == ACTION_STOP) activeKey = NULL; XAllowEvents(dpy, AsyncKeyboard, event->xkey.time); return False; } /* invariant: k points to a valid key binding */ #ifdef notdef /* * On the first keypress, stash the active key binding; ignore subsequent * keypresses. Ignore all key releases except the one corresponding to * the active binding. */ if (event->type == KeyPress) { if (activeKey == NULL) activeKey = k; else return False; } else { /* KeyRelease */ if (k == activeKey) activeKey = NULL; else return False; /* ignore it */ } #endif if (mouselessSuspended && !(k->desc->flags & KD_IMMUNE)) { XAllowEvents(dpy, ReplayKeyboard, event->xkey.time); return True; } if (quotenext) { XAllowEvents(dpy, ReplayKeyboard, event->xkey.time); quotenext = False; return True; } /* * Simply replay the event if this client has disallowed menu * accelerators. */ if (k->desc->flags & KD_MENU_ACCEL && CurrentClient != NULL && ! CurrentClient->menuAccelerators) { XAllowEvents(dpy, ReplayKeyboard, event->xkey.time); return True; } if (event->type == KeyPress) XAllowEvents(dpy, AsyncKeyboard, event->xkey.time); (*f)(dpy, event); return True; } /* ===== Initialization =================================================== */ /* * Deal with key grabs on all root windows. If grab = True, grab the keys; if * grab = False, release the keys. Note: the screens and the keyboard binding * information must be initialized prior to calling this function. */ void GrabKeys(dpy, grab) Display *dpy; Bool grab; { List *l = ScreenInfoList; ScreenInfo *scr; for (scr = ListEnum(&l); scr != NULL; scr = ListEnum(&l)) grabRootKeys(dpy, scr->rootid, grab); } /* * Remove all key grabs, zero out the binding table, and rebuild it from the * resource database. Then, re-establish key grabs. */ void RefreshKeyGrabs(dpy, rdb) Display *dpy; XrmDatabase rdb; { GrabKeys(dpy, False); bindingTableCount = 0; establishKeyBindings(dpy, rdb); GrabKeys(dpy, True); } /* * Deal with button grabs on all root windows. If grab = True, grab the * buttons; if grab = False, release them. */ void GrabButtons(dpy, grab) Display *dpy; Bool grab; { List *l = ScreenInfoList; ScreenInfo *scr; for (scr = ListEnum(&l); scr != NULL; scr = ListEnum(&l)) grabRootButtons(dpy, scr->rootid, grab); } /* * Remove all button grabs, regenerate the modifier mask table, and * re-establish the button grabs. */ void RefreshButtonGrabs(dpy) Display *dpy; { GrabButtons(dpy, False); establishModBindings(dpy, OlwmDB); GrabButtons(dpy, True); } /* * Update all bindings from a new resource database. Called whenever the * resource database changes. */ Bool UpdateBindings(dpy, newDB, regrabKeys) Display *dpy; XrmDatabase newDB; Bool regrabKeys; { KeyDescriptor *d; XrmQuark classlist[4], instlist[4]; XrmQuark rep; XrmValue newvalue, oldvalue; static XrmBinding bindings[] = { XrmBindTightly, XrmBindTightly, XrmBindTightly }; Bool newexists, oldexists; GrabButtons(dpy, False); establishModBindings(dpy, newDB); GrabButtons(dpy, True); /* * Run through the KeyDescriptorTable and probe resources to see if any of * the binding resources has changed. */ classlist[0] = OpenWinQ; classlist[3] = NULLQUARK; instlist[0] = TopInstanceQ; instlist[3] = NULLQUARK; for (d=KeyDescriptorTable; d < KeyDescriptorTable+NUMKEYDESCRIPTORS; ++d) { if (d->flags & KD_MENU_ACCEL) { classlist[1] = menuAccelClassQ; instlist[1] = menuAccelInstanceQ; } else { classlist[1] = kbdCmdClassQ; instlist[1] = kbdCmdInstanceQ; } classlist[2] = instlist[2] = XrmStringToQuark(d->rsrc_name); newexists = XrmQGetResource(newDB, instlist, classlist, &rep, &newvalue); oldexists = XrmQGetResource(OlwmDB, instlist, classlist, &rep, &oldvalue); /* skip resources that never existed */ if (!newexists && !oldexists) continue; /* skip resources that haven't changed */ if (newexists && oldexists && 0 == strcmp((char *) newvalue.addr, (char *) oldvalue.addr)) { continue; } regrabKeys = True; } if (regrabKeys) RefreshKeyGrabs(dpy, newDB); return regrabKeys; } /* * Initialize the event handling system, but don't do any key grabbing. This * function is called exactly *once* at startup. */ void InitBindings(dpy) Display *dpy; { kbdCmdInstanceQ = XrmStringToQuark("keyboardCommand"); kbdCmdClassQ = XrmStringToQuark("KeyboardCommand"); modInstanceQ = XrmStringToQuark("modifier"); modClassQ = XrmStringToQuark("Modifier"); menuAccelInstanceQ = XrmStringToQuark("menuAccelerator"); menuAccelClassQ = XrmStringToQuark("MenuAccelerator"); KeyBindingTable = MemCalloc(KEYBINDING_TABLE_SIZE,sizeof(KeyBinding)); bindingTableSize = KEYBINDING_TABLE_SIZE; establishKeyBindings(dpy, OlwmDB); establishModBindings(dpy, OlwmDB); } xview-3.2p1.4/clients/olwm/events.c100644 1750 1750 43043 6331115755 14543 0ustar mbmb#ident "@(#)events.c 26.50 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #include #include #include #include #include #include #include #include #include "i18n.h" #include "ollocale.h" #include "olwm.h" #include "win.h" #include "debug.h" #include "globals.h" #include "events.h" #include "list.h" #include "mem.h" #include "error.h" /* ===== externs ========================================================== */ extern void ReapChildren(); /* ===== globals ========================================================== */ Time LastEventTime = (Time) 0; KeySym *KbdMap = NULL; /* pointer to current key table; 2d array */ int MinKeyCode = 0; int MaxKeyCode = 0; int KeySymsPerKeyCode = 0; /* ===== private data ===================================================== */ static InterposerFunc interposer = NULL; static void *closure; static List *deferredEventListHead = NULL_LIST; static List *deferredEventListTail = NULL_LIST; static Bool delegationEnabled = False; static struct timeval timeoutNext = {0, 0}; static TimeoutFunc timeoutFunc = NULL; static void *timeoutClosure = NULL; static XModifierKeymap *ModMap = NULL; static explicitPointerGrab = False; /* ===== private functions ================================================ */ /* * lookupWindow * * Given an event, look up the WinInfo corresponding to the window field of * the event. For events that have no window field, return NULL. */ WinGeneric * lookupWindow( event ) XEvent *event; { switch ( event->xany.type ) { case KeymapNotify: case MappingNotify: /* these events have no window field */ return NULL; default: return WIGetInfo( event->xany.window ); } } /* * saveTimestamp * * Given an event, update LastEventTime with its timestamp. For events that * have no timestamp, do nothing. */ void saveTimestamp( event ) XEvent *event; { switch ( event->xany.type ) { case KeyPress: case KeyRelease: LastEventTime = event->xkey.time; break; case ButtonPress: case ButtonRelease: LastEventTime = event->xbutton.time; break; case MotionNotify: LastEventTime = event->xmotion.time; break; case EnterNotify: case LeaveNotify: LastEventTime = event->xcrossing.time; break; case PropertyNotify: LastEventTime = event->xproperty.time; break; case SelectionClear: LastEventTime = event->xselectionclear.time; break; case SelectionRequest: /* * The timestamp in SelectionRequest events comes from other clients; * it's not generated by the server. It's thus not clear whether we * should believe any timestamp in one of these events. */ /* LastEventTime = event->xselectionrequest.time; */ break; case SelectionNotify: /* * Ignore SelectionNotify events generated by other clients. * Save only the timestamps from server-generated events. */ if (!event->xany.send_event) LastEventTime = event->xselection.time; break; default: break; } } /* * Dispatches an event normally (i.e. not through an interposer). Looks up * the window structure from the event's window ID and calls the appropriate * event function for that window's class. All extension events are handled * through a single extension event handler in the class. If explicitGrab is * set, then someone has explicitly grabbed the pointer and redispatched the * event to a handler that is expecting an implicit grab, and so which won't * ungrab the pointer. We must therefore do an explicit ungrab of the * pointer. */ static void dispatchEvent(dpy, event, winInfo) Display *dpy; XEvent *event; WinGeneric *winInfo; { EvFunc evFunc; if (GRV.PrintAll) DebugEvent(event, "Dispatch - debug"); saveTimestamp( event ); if (winInfo == NULL) { /* REMIND should we do anything with these events? */ if (GRV.PrintOrphans) DebugEvent(event, "Orphaned (null window)"); /* * If a client unmaps and then remaps its window, the * MapRequest comes in on the frame window, but we just * destroyed that window (in response to the unmap) so it * appears as an orphan window. Hence we'll just create a new * frame/etc via StateNew(). * * A similar situation applies to ConfigureRequest events. If * a client unmaps and immediately configures its window, the * event will come in on the now-destroyed frame and will be * orphaned. We call ClientConfigure() to handle orphaned * ConfigureRequest events. */ if (event->xany.type == MapRequest) { StateNew(dpy,None,event->xmaprequest.window,False,NULL); } else if (event->xany.type == ConfigureRequest) { ClientConfigure(NULL, NULL, event); } return; } if (GRV.PrintAll) DebugWindow(winInfo); #ifdef DEBUG if (winInfo->class == NULL) { ErrorGeneral("Window instance with NULL class pointer"); } if (winInfo->core.kind != winInfo->class->core.kind) ErrorWarning("Warning: window with kind different than class kind"); #endif if (event->xany.type >= LASTEvent) evFunc = WinClass(winInfo)->core.extEventHdlr; else evFunc = WinClass(winInfo)->core.xevents[event->xany.type]; if (evFunc != NULL) { (*evFunc)(dpy, event, winInfo); } else if (GRV.PrintOrphans) DebugEvent(event, "Orphaned"); if (explicitPointerGrab && event->type == ButtonRelease && AllButtonsUp(event)) { XUngrabPointer(dpy, event->xbutton.time); } } static int dispatchInterposer(dpy, event) Display *dpy; XEvent *event; { int disposition; WinGeneric *winInfo; XEvent *temp; if (GRV.PrintAll) DebugEvent(event, "Dispatch - interposer"); saveTimestamp( event ); winInfo = lookupWindow(event); disposition = (*interposer)(dpy, event, winInfo, closure); switch (disposition) { case DISPOSE_DISPATCH: dispatchEvent(dpy, event, winInfo); break; case DISPOSE_DEFER: temp = MemNew(XEvent); *temp = *event; if (deferredEventListHead == NULL_LIST) { deferredEventListHead = ListCons(temp, NULL_LIST); deferredEventListTail = deferredEventListHead; } else { deferredEventListTail->next = ListCons(temp, NULL_LIST); deferredEventListTail = deferredEventListTail->next; } break; case DISPOSE_USED: /* do nothing */ break; } } static void doTimeout() { TimeoutFunc f; void *closure; f = timeoutFunc; closure = timeoutClosure; TimeoutCancel(); (*f)(closure); } static void nextEventOrTimeout(dpy, event) Display *dpy; XEvent *event; { int fd = ConnectionNumber(dpy); struct timeval polltime; fd_set rdset, wrset, xset; int ready = -1; while (XPending(dpy) == 0 && ready <= 0 && timeoutFunc != NULL) { gettimeofday(&polltime,NULL); if ((timeoutFunc != NULL) && ((polltime.tv_sec > timeoutNext.tv_sec) || ((polltime.tv_sec == timeoutNext.tv_sec) && (polltime.tv_usec >= timeoutNext.tv_usec)))) { doTimeout(); continue; } polltime.tv_sec = timeoutNext.tv_sec - polltime.tv_sec; polltime.tv_usec = 0; FD_ZERO(&rdset); FD_SET(fd,&rdset); FD_ZERO(&wrset); FD_ZERO(&xset); FD_SET(fd,&xset); ready = select(fd+1,&rdset,&wrset,&xset,&polltime); gettimeofday(&polltime,NULL); if ((timeoutFunc != NULL) && ((polltime.tv_sec > timeoutNext.tv_sec) || ((polltime.tv_sec == timeoutNext.tv_sec) && (polltime.tv_usec >= timeoutNext.tv_usec)))) { doTimeout(); } } XNextEvent(dpy, event); } /* * Update our own modifier map. This is unfortunate, as we know Xlib already * keeps this information around. */ static void updateModifierMap(dpy) Display *dpy; { if (ModMap != NULL) XFreeModifiermap(ModMap); ModMap = XGetModifierMapping(dpy); } /* * Update our own keyboard table. This is unfortunate, as we know Xlib * already keeps this information around. */ static void updateKeyboardMap(dpy, e) Display *dpy; XEvent *e; { if (KbdMap != NULL ) XFree((char *)KbdMap); XDisplayKeycodes(dpy, &MinKeyCode, &MaxKeyCode); KbdMap = XGetKeyboardMapping(dpy, MinKeyCode, MaxKeyCode-MinKeyCode+1, &KeySymsPerKeyCode); } /* * Handle MappingNotify events. Refresh cached information about the keyboard * and the pointer. */ void handleMappingNotify(dpy, e) Display *dpy; XEvent *e; { XMappingEvent *mapEvent = (XMappingEvent *)e; extern XrmDatabase OlwmDB; switch (mapEvent->request) { case MappingModifier: XRefreshKeyboardMapping(mapEvent); updateModifierMap(dpy); RefreshKeyGrabs(dpy, OlwmDB); RefreshButtonGrabs(dpy); break; case MappingKeyboard: XRefreshKeyboardMapping(mapEvent); updateKeyboardMap(dpy); RefreshKeyGrabs(dpy, OlwmDB); break; case MappingPointer: /* no need to handle pointer mapping changes */ break; } } /*ARGSUSED*/ static void * redispatchEvent(e,c) XEvent *e; void *c; { dispatchEvent(e->xany.display, e, lookupWindow(e)); MemFree(e); return (void *)NULL; } /* * Compute t2 - t1 and return the time value in diff. The tv_usec field is * always in the range 0..999999. This means that negative time values always * have tv_sec less than zero. For instance, negative one-half seconds is * represented with tv_sec == -1 and tv_usec == 500000. */ static void tvdiff(t1, t2, diff) struct timeval *t1, *t2, *diff; { diff->tv_sec = t2->tv_sec - t1->tv_sec; diff->tv_usec = t2->tv_usec - t1->tv_usec; if (diff->tv_usec < 0) { diff->tv_sec -= 1; diff->tv_usec += 1000000; } } /* ===== public functions ================================================= */ /* * EventLoop * * The main event loop. Reads events from the wire and dispatches them. */ void EventLoop( dpy ) Display *dpy; { XEvent event; for (;;) { if (timeoutFunc == NULL) { XNextEvent( dpy, &event ); } else { nextEventOrTimeout(dpy, &event); } ReapChildren(); /* * Discard user events that have the Synthetic bit set. * * All device events (mouse and keyboard events) have types * that fall in between KeyPress and MotionNotify. */ if (event.xany.send_event && event.type <= MotionNotify && event.type >= KeyPress) continue; /* * Handle MappingNotify events. These events don't have * window field, so they can't be dispatched normally. */ if (event.xany.type == MappingNotify) { handleMappingNotify(dpy, &event); continue; } /* * If there is an event interposer, and it returns True, that * means it has successfully processed the event. We continue * around the loop instead of processing the event normally. */ if ( interposer != NULL) dispatchInterposer(dpy, &event); else dispatchEvent(dpy, &event, lookupWindow(&event)); } /*NOTREACHED*/ } /* * Propagate an event to this window's parent. REMIND: doesn't update the * event fields or the event coordinates. */ int PropagateEventToParent(dpy,event,win) Display *dpy; XEvent *event; WinGeneric *win; { dispatchEvent(dpy,event,win->core.parent); } /* * Propagate a ButtonPress event to a child window. Win is assumed to be a * child of the event window. The event window and subwindow fields are * updated, and the coordinates are translated to the child's coordinate * system. Sets the explicitPointerGrab flag. */ void PropagatePressEventToChild(dpy, event, win) Display *dpy; XButtonPressedEvent *event; WinGeneric *win; { event->window = win->core.self; event->subwindow = None; event->x -= win->core.x; event->y -= win->core.y; dispatchEvent(dpy, event, win); explicitPointerGrab = True; } /* * FindModifierMask * * Given a keycode, look in the modifier mapping table to see if this keycode * is a modifier. If it is, return the modifier mask bit for this key; * otherwise, return zero. */ unsigned int FindModifierMask(kc) KeyCode kc; { int i, j; KeyCode *mapentry; if (ModMap == NULL || kc == 0) return 0; mapentry = ModMap->modifiermap; for (i=0; i<8; ++i) { for (j=0; j<(ModMap->max_keypermod); ++j) { if (kc == *mapentry) return 1 << ( (mapentry - ModMap->modifiermap) / ModMap->max_keypermod ); ++mapentry; } } return 0; } /* * ModifierToKeysym * * Given a modifier number (not a mask) returns a keysym for it that occurs in * the modifier map. If there is no such modifier key, returns NoSymbol. */ KeySym ModifierToKeysym(mod) unsigned int mod; { KeyCode kc; extern Display *DefDpy; kc = ModMap->modifiermap[mod * ModMap->max_keypermod]; if (kc == 0) return NoSymbol; return(XKeycodeToKeysym(DefDpy, kc, 0)); } /* * Wait on dpy for some events to come in or for a timeout to occur. If * events come in, return True and change timeout to indicate the amount of * time remaining. If no events come in before the timeout expires, return * False. A negative timestamp is considered to have timed out immediately. */ Bool AwaitEvents(dpy, timeout) Display *dpy; struct timeval *timeout; { struct timeval starttime, curtime, diff1, diff2; fd_set rfds; int s; if (timeout->tv_sec < 0) return False; #ifndef __linux (void) gettimeofday(&starttime, NULL); #endif while (1) { FD_ZERO(&rfds); FD_SET(ConnectionNumber(dpy), &rfds); s = select(ConnectionNumber(dpy)+1, &rfds, NULL, NULL, timeout); if (s == 0) { /* we timed out without getting anything */ return False; } /* * If an error occurred, report it and return False. */ if (s == -1 && errno != EINTR) { perror("select"); #ifdef DEBUG fputs("olwm: generating core dump for analysis...\n", stderr); if (fork() == 0) { abort(); exit(1); } #endif return False; } /* * Either we got interrupted or the descriptor became ready, or both. * Compute the remaining time on the timeout. This can be negative, * because there is a slight window for delays between the select() * call above and this gettimeofday() call. This means that we can * return an indication of valid data to the caller, yet also return * a value for the time remaining that is less than or equal to zero. */ #ifndef __linux /* Linux: select does the remaining time calculation for us. */ (void) gettimeofday(&curtime, NULL); tvdiff(&starttime, &curtime, &diff1); tvdiff(&diff1, timeout, &diff2); *timeout = diff2; #endif starttime = curtime; /* * If we got some data, return True. Otherwise, we were interrupted. * If we timed out, return False. If not, there is time remaining; * continue around the loop. */ if (s > 0) return True; if (timeout->tv_sec < 0) return False; } } /*************************************************************************** * Interposer functions ***************************************************************************/ /* * InstallInterposer * * Install an event interposition function. Nested interposition is illegal. * If interposer delegation has been enabled, a new interposer will replace * the current one without nesting. */ void InstallInterposer(func, cl) InterposerFunc func; void *cl; { if (interposer != NULL && !delegationEnabled) { fputs(GetString("olwm: warning, nested event interposer!\n"), stderr); #ifdef DEBUG abort(); #endif /* DEBUG */ } interposer = func; closure = cl; delegationEnabled = False; } /* * UninstallInterposer * * Uninstalls an event interposition function. Does nothing if there is * currently no interposer. Replays any queued events. Inhibits focus * changes and colormap installation while replaying them. This prevents * redundant focus changes and colormap installation. */ void UninstallInterposer() { interposer = (InterposerFunc) NULL; delegationEnabled = False; if (deferredEventListHead != NULL) { ClientInhibitFocus(True); ColormapInhibit(True); ListApply(deferredEventListHead, redispatchEvent, 0); ListDestroy(deferredEventListHead); deferredEventListHead = deferredEventListTail = NULL_LIST; ClientInhibitFocus(False); ColormapInhibit(False); } } /* * Return the current interposer function. */ InterposerFunc InterposerInstalled() { return interposer; } /* * Enable delegation of one interposer to another. This is used when one * interposer wants to transfer the interposition to another interposer * without replaying queued events. */ void EnableInterposerDelegation() { delegationEnabled = True; } /*************************************************************************** * Timeout functions ***************************************************************************/ /* TimeoutRequest(t,f,c) -- request that a timeout be generated t microseconds * in the future; when the timeout occurs, the function f is called * with the closure c. */ void TimeoutRequest(t,f,c) int t; TimeoutFunc f; void *c; { #ifdef DEBUG if (timeoutFunc != NULL) { ErrorWarning("Timeout being set while another timeout current"); } #endif gettimeofday(&timeoutNext,NULL); timeoutNext.tv_sec += t / 1000000; timeoutNext.tv_usec += t % 1000000; if (timeoutNext.tv_usec >= 1000000) { timeoutNext.tv_usec -= 1000000; timeoutNext.tv_sec += 1; } timeoutFunc = f; timeoutClosure = c; } /* TimeoutCancel() -- cancel an outstanding timeout. */ void TimeoutCancel() { timeoutNext.tv_sec = 0; timeoutNext.tv_usec = 0; timeoutFunc = NULL; timeoutClosure = NULL; } /* * Initialize the event handling system. This function is called exactly * once at startup. */ void InitEvents(dpy) Display *dpy; { updateKeyboardMap(dpy); updateModifierMap(dpy); } xview-3.2p1.4/clients/olwm/events.h100644 1750 1750 10224 5413747422 14545 0ustar mbmb#ident "@(#)events.h 26.19 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_EVENTS_H #define _OLWM_EVENTS_H /* * Define InterposerFunc to be a pointer to an interposer function. */ typedef int (*InterposerFunc)(); /* global functions */ extern void EventLoop(); extern int PropagateEventToParent(); extern void PropagatePressEventToChild(); extern Time LastEventTime; extern Bool AwaitEvents(); extern void GrabKeys(); extern void RefreshKeyGrabs(); extern void GrabButtons(); extern void RefreshButtonGrabs(); extern Bool UpdateBindings(); extern void InitEvents(); extern void InitBindings(); /* interposition */ extern void InstallInterposer(); extern void UninstallInterposer(); extern InterposerFunc InterposerInstalled(); extern void EnableInterposerDelegation(); enum { DISPOSE_DISPATCH, DISPOSE_USED, DISPOSE_DEFER }; /* keyboard mapping */ extern KeySym *KbdMap; extern int MinKeyCode; extern int MaxKeyCode; extern int KeySymsPerKeyCode; /* modifiers and modifier masks */ enum { MOD_CONSTRAIN, MOD_WMGRAB, MOD_REDUCE, MOD_INVERT, MOD_SETDEFAULT, MOD_IGNORE, MOD_MASK_COUNT /* must be last */ }; extern unsigned int ModMaskMap[MOD_MASK_COUNT]; extern unsigned int FindModifierMask(); /* mouse binding match states */ typedef enum { MATCH_NONE, /* no binding matches at all */ MATCH_INCOMPLETE, /* partial match */ MATCH_AMBIG, /* more than one exact match */ MATCH_PREFIX, /* exact match, but also a prefix for another */ MATCH_EXACT /* exact match, not a prefix */ } MouseMatchState; /* semantic actions */ typedef enum { ACTION_NONE, ACTION_SELECT, ACTION_ADJUST, ACTION_MENU, ACTION_HELP, ACTION_STOP, ACTION_FRONT, ACTION_OPEN, ACTION_EXEC_DEFAULT, ACTION_FOCUS_HELP, ACTION_SET_DEFAULT, ACTION_UP, ACTION_DOWN, ACTION_LEFT, ACTION_RIGHT, ACTION_JUMP_UP, ACTION_JUMP_DOWN, ACTION_JUMP_LEFT, ACTION_JUMP_RIGHT, ACTION_ROW_START, ACTION_ROW_END, ACTION_DATA_START, ACTION_DATA_END, ACTION_FIRST_CONTROL, ACTION_LAST_CONTROL, ACTION_TOGGLE_PIN, ACTION_CANCEL, /* REMIND does this differ from STOP? */ ACTION_NEXT_ELEMENT, ACTION_PREVIOUS_ELEMENT, /* actions for menu accelerators */ ACTION_REFRESH, ACTION_BACK, ACTION_OPEN_CLOSE, ACTION_FULL_RESTORE, ACTION_QUIT, ACTION_OWNER, ACTION_MOVE, ACTION_RESIZE, ACTION_PROPS } SemanticAction; /* key bindings */ typedef struct { char *rsrc_name; char *dflt_binding; void (*function)(); SemanticAction action; unsigned long flags; } KeyDescriptor; /* values for KeyDescriptor flags */ #define KD_IMMUNE (1<<0) /* immune to suspension */ #define KD_SUNVIEW (1<<1) /* active if mouseless == SunView */ #define KD_BASIC (1<<2) /* active if mouseless == basic */ #define KD_FULL (1<<3) /* active if mouseless == full */ #define KD_MENU_ACCEL (1<<4) /* is a menu accelerator */ #define KD_BASIC_FULL (KD_BASIC | KD_FULL) #define KD_ALWAYS (KD_SUNVIEW | KD_BASIC_FULL) typedef struct _keyBinding { unsigned int modstate; KeyCode keycode; KeyDescriptor *desc; } KeyBinding; extern KeyBinding *LookupKeyBinding(/* SemanticAction */); extern KeySym ModifierToKeysym(); /* convert a button number to a button mask */ #define ButtonToMask(b) (1<<(b+7)) #define AnyButtonMask \ (Button1Mask|Button2Mask|Button3Mask|Button4Mask|Button5Mask) /* given a ButtonRelease event, determines whether all buttons are now up. */ #define AllButtonsUp(e) \ (!((e)->xbutton.state & ~ButtonToMask((e)->xbutton.button) & AnyButtonMask)) /* given a ButtonPress event, determine whether it's the first button down. */ #define FirstButtonDown(e) \ (((e)->xbutton.state & AnyButtonMask) == 0) /* timeouts */ typedef void (*TimeoutFunc)(); extern void TimeoutRequest(); /* int time, TimeoutFunc f, void *closure */ extern void TimeoutCancel(); /* no params */ /* * declared in evbind.c */ extern Bool mouselessSuspended; #endif /* _OLWM_EVENTS_H */ xview-3.2p1.4/clients/olwm/fontset.c100644 1750 1750 21055 6331436555 14724 0ustar mbmb#ident "@(#)fontset.c 1.10 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifdef SYSV #include #include #endif #ifdef OW_I18N_L4 #include #include #include #include #include #include #include #include #include "olwm.h" #include "mem.h" #include "i18n.h" #include "error.h" #define FS_DEF "definition" #define FS_DEF_LEN (sizeof(FS_DEF)-1) #define FS_ALIAS "alias" #define FS_ALIAS_LEN (sizeof(FS_ALIAS)-1) #define FONT_SETS "OpenWindows.fs" #define XLFD_FIELD 13 /* Number of field */ XrmDatabase FontSetDB = NULL; extern char *getenv(); typedef struct _fs_cache { char *locale; char *name; XFontSet fs; int count; struct _fs_cache *next; } fs_cache; static fs_cache *fsc_root; static char *last_font_locale = NULL; static fs_cache *fsc_lookup_by_name(); static fs_cache *fsc_lookup_by_fs(); static void fsc_enter(); static void fsc_remove(); static char *get_font_set_list(); static void parseFontSetDefaults(); static void remove_white_space(); static char *skip_space(); static char *skip_space_back(); XFontSet loadQueryFontSet(dpy, font, locale) Display *dpy; char *font; char *locale; { char *current_lc_ctype; char **miss_list = NULL; char *font_name_list; XFontSet fs; fs_cache *fsc; int missing_charset_count; char *def_string; if ((fsc = fsc_lookup_by_name(locale, font)) != NULL) { fsc->count++; return fsc->fs; } if (last_font_locale == NULL || strcmp(last_font_locale, locale) != 0) { /* * Setup the new font set database for this locale. */ #ifdef DEBUG fprintf(stderr, "New font locale -> %s\n", locale); #endif if (last_font_locale != NULL) free(last_font_locale); last_font_locale = MemNewString(locale); parseFontSetDefaults (last_font_locale); } /* * Make sure we are talking same locale here. There only one * way we can tell the current locale to the XCreateFontSet is * via setlocale! */ if (strcmp(locale, setlocale(LC_CTYPE, NULL)) != NULL) { current_lc_ctype = MemNewString(setlocale(LC_CTYPE, NULL)); setlocale(LC_CTYPE, locale); } else current_lc_ctype = NULL; /* * First of all, try FontSetDB. */ if ((font_name_list = get_font_set_list(FontSetDB, font)) != NULL) { remove_white_space(font_name_list); fs = XCreateFontSet(dpy, font_name_list, &miss_list, &missing_charset_count, &def_string); } else { /* * Try "font" as a whole font set. */ miss_list = NULL; fs = XCreateFontSet(dpy, font, &miss_list, &missing_charset_count, &def_string); } if (current_lc_ctype != NULL) { setlocale(LC_CTYPE, current_lc_ctype); free(current_lc_ctype); } if (miss_list && (missing_charset_count > 0)) { XFreeStringList(miss_list); } if (missing_charset_count > 0 && fs) { XFreeFontSet(dpy, fs); fs = NULL; } if (fs != NULL) { fsc_enter(locale, font, fs); } return fs; } freeFontSet(dpy, fs) Display *dpy; XFontSet fs; { register fs_cache *fsc; char *cur_locale; char saved_locale[MAXNAMELEN + 1]; if ((fsc = fsc_lookup_by_fs(fs)) == NULL) { fprintf(stderr, "Freeing none cached font set\n"); return; } if (--(fsc->count) <= 0) { cur_locale = setlocale(LC_CTYPE, NULL); if (strcmp(fsc->locale, cur_locale) != 0) { (void) strcpy(saved_locale, cur_locale); (void) setlocale(LC_CTYPE, fsc->locale); } else saved_locale[0] = 0; fsc_remove(dpy, fsc); if (saved_locale[0] != 0) (void) setlocale(LC_CTYPE, saved_locale); } } /* * parseFontSetDefaults - get locale specific font set name settings * from Font set name default file. The FontSetDB is standalone DB, * which will not merge with others. */ static void parseFontSetDefaults(locale) char *locale; { char filename[1024]; char *openWinPath; Bool notFound = False; /* look for application default file */ #ifdef OPENWINHOME_DEFAULT /* martin-2.buck@student.uni-ulm.de */ if (!(openWinPath = getenv("OPENWINHOME"))) { openWinPath = OPENWINHOME_DEFAULT; } #else if ((openWinPath = getenv("OPENWINHOME")) != NULL) { #endif (void) sprintf(filename, "%s/lib/locale/%s/OW_FONT_SETS/%s", openWinPath, locale, FONT_SETS); #ifdef DEBUG fprintf(stderr, "Try to open the FontSetDB [%s]\n", filename); #endif if (access(filename, R_OK) != 0) notFound = True; #ifndef OPENWINHOME_DEFAULT } else notFound = True; #endif if (notFound) { (void) sprintf(filename, "/usr/lib/X11/app-defaults/%s/%s", locale, FONT_SETS); } if (FontSetDB != NULL) XrmDestroyDatabase(FontSetDB); if ((FontSetDB = XrmGetFileDatabase(filename)) == NULL && strcmp(locale, "C") != 0) { sprintf(filename, GetString("Could not find the font set DB for the '%s' locale.\n"), locale); ErrorWarning(filename); } } static char * parse_font_list(db, list, count) XrmDatabase db; register char *list; int count; { XrmValue xrm_result; char *key, *type; /* Enforce a limit of 15 recursions */ if (count > 15) return NULL; #ifdef DEBUG fprintf(stderr, "list -> [%s]\n", list); #endif if (strncmp(list, FS_DEF, FS_DEF_LEN) == 0) { if ((key = strchr(list, ',')) != NULL) { key = skip_space(key + 1); return key; } } else if (strncmp(list, FS_ALIAS, FS_ALIAS_LEN) == 0) { xrm_result.size = 0; xrm_result.addr = NULL; if ((key = strchr(list, ',')) != NULL) { key = skip_space(key + 1); if (XrmGetResource(db, key, key, &type, &xrm_result)) return parse_font_list(db, xrm_result.addr, count++); } } #ifdef DEBUG fprintf(stderr, "There are no such key\n"); #endif return NULL; } /* * Given a database handle and a font set specfier, return a comma * separated list of fonts if a font set definition is found. * If not, return NULL. */ static char * get_font_set_list(db, key) XrmDatabase db; char *key; { XrmValue xrm_result; char *type; if ((db == NULL) || (key == NULL)) return (NULL); xrm_result.size = 0; xrm_result.addr = NULL; #ifdef DEBUG fprintf(stderr, "Looking for key [%s] in FontSetDB...\n", key); #endif if (XrmGetResource(db, key, key, &type, &xrm_result) == True) return(parse_font_list(db, xrm_result.addr, 0)); #ifdef DEBUG fprintf(stderr, "There are no such key\n"); #endif return NULL; } static void remove_white_space(ss) char *ss; { char *t; char *s; char c; int field; t = s = ss; while (c = *s) { /* * Skip whip spaces between font names */ while (isspace(c) || c == ',') { if (c == NULL) goto term; else if (c == ',') *t++ = c; c = *++s; } /* * Copy font name. */ for (field = 0; field < XLFD_FIELD && c != ','; ) { if (c == NULL) goto term; else if (c == '-') field++; *t++ = c; c = *++s; } while (! isspace(c) && c != NULL && c != ',') { *t++ = c; c = *++s; } } term: *t = '\0'; } static char * skip_space(p) register char *p; { while (isspace(*p)) p++; return p; } static char * skip_space_back(p) register char *p; { while (isspace(*p)) p--; return p; } static fs_cache * fsc_lookup_by_name(locale, name) char *locale; char *name; { register fs_cache *fsc; for (fsc = fsc_root; fsc != NULL; fsc = fsc->next) if (strcmp(fsc->locale, locale) == 0 && strcmp(fsc->name, name) == 0) break; return fsc; } static fs_cache * fsc_lookup_by_fs(fs) XFontSet fs; { register fs_cache *fsc; for (fsc = fsc_root; fsc != NULL; fsc = fsc->next) if (fsc->fs == fs) break; return fsc; } static void fsc_enter(locale, name, fs) char *locale; char *name; XFontSet fs; { register fs_cache *new; new = MemNew(fs_cache); new->locale = MemNewString(locale); new->name = MemNewString(name); new->count = 1; new->fs = fs; new->next = fsc_root; fsc_root = new; } static void fsc_remove(dpy, afsc) Display *dpy; register fs_cache *afsc; { register fs_cache *fsc1, *fsc2; MemFree(afsc->locale); MemFree(afsc->name); XFreeFontSet(dpy, afsc->fs); /* * Typically, we should free the "RM_FONTVAR->fsb", but our * current font set library(libmltext) just returning the part * of "RM_FONTVAR->fs", hence we can not. * XFree(RM_FONTVAR->fsb); */ fsc2 = NULL; for (fsc1 = fsc_root; fsc1 != NULL; fsc1 = fsc1->next) { if (fsc1 == afsc) { if (fsc2 == NULL) fsc_root = afsc->next; else fsc2->next = afsc->next; MemFree(afsc); return; } fsc2 = fsc1; } fprintf(stderr, "Removing none existed font cache\n"); } #endif xview-3.2p1.4/clients/olwm/gettext.c100644 1750 1750 22250 6331115755 14720 0ustar mbmb#ident "@(#)gettext.c 1.10 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include "gettext.h" #if defined(__linux) && !defined(LC_MESSAGES) #define LC_MESSAGES LC_RESPONSE #endif #ifdef SYSV #define bzero(a,b) memset(a,0,b) #endif char *malloc(), *strdup(); char * dgettext(); char *_gettext(); char *in_path(); char *fgets(), *getenv(); caddr_t mmap(), calloc(); static struct domain_binding *firstbind=0, *lastbind=0; static void initbindinglist() { if (! firstbind) { firstbind = (struct domain_binding *) malloc(sizeof(struct domain_binding)); firstbind->domain_name = strdup(""); firstbind->binding = strdup(DEFAULT_BINDING); firstbind->nextdomain = (struct domain_binding *) 0; lastbind = firstbind; } } static char * lookupdefbind(domain_name) char *domain_name; { static char *binding = NULL; /* psuedo static ptr for return value */ static int bindinglen = 0; char *bindptr = firstbind->binding; char *current_locale; char chartmp; char *bindtmptr, pathtmp[MAXPATHLEN], bindtmp[MAXPATHLEN]; int newlen; struct stat statbuf; bindtmptr = bindtmp; current_locale = setlocale(LC_MESSAGES, NULL); while (chartmp = *bindptr++) { switch (chartmp) { case BINDINGLISTDELIM: *bindtmptr = '\0'; strcpy(pathtmp, bindtmp); strcat(pathtmp, "/"); strcat(pathtmp, current_locale); strcat(pathtmp, "/LC_MESSAGES/"); strcat(pathtmp, domain_name); strcat(pathtmp, ".mo"); if (stat(pathtmp, &statbuf)) { bindtmptr = bindtmp; break; } if ((newlen = strlen(bindtmp)) > bindinglen) { bindinglen = newlen; if (binding) { free (binding); } binding = malloc(newlen+1); strcpy(binding, bindtmp); } return(binding); default: *bindtmptr++ = chartmp; break; } } /* * NOT FOUND, return NULL */ return (NULL); } char * bindtextdomain(domain_name, binding) char *domain_name; unsigned char *binding; { struct domain_binding *bind; char *lastpath; unsigned char pathtmp[MAXPATHLEN+1]; int newlen; pathtmp[0] = '\0'; /* Initialize list */ if (! firstbind) { initbindinglist(); } if (!domain_name) { return (NULL); } if (*domain_name == '\0') { if (!binding) { /* query, add COOKIE to binding * return new binding cookie */ pathtmp[0] = (unsigned char) COOKIE; pathtmp[1] = '\0'; strcat(pathtmp, firstbind->binding); return (strdup(pathtmp)); } else if (binding[0] == COOKIE) { /* result of a previous query, * restore old binding */ firstbind->binding = strdup(binding+1); free(binding); return (NULL); } else { /* add binding to default binding list */ strcat(pathtmp, firstbind->binding); free(firstbind->binding); strcat(pathtmp, binding); strcat(pathtmp, "\n"); firstbind->binding = strdup(pathtmp); return (NULL); } } /* linear search for binding, rebind if found, add if not */ bind = firstbind; while (bind) { if (!strcmp(domain_name, bind->domain_name)) { if (!binding) { return(bind->domain_name); } if (bind->domain_name) { free(bind->domain_name); } if (bind->binding) { free(bind->binding); } bind->domain_name = strdup(domain_name); bind->binding = strdup(binding); return (bind->binding); } bind = bind->nextdomain; } /* Not found in list, add it to the end */ if (!binding) { return (NULL); } lastbind = bind = lastbind->nextdomain = (struct domain_binding *) malloc(sizeof(struct domain_binding)); bind->domain_name = strdup(domain_name); bind->binding = strdup(binding); bind->nextdomain = 0; return (bind->binding); } static char * findtextdomain(domain_name) char *domain_name; { struct domain_binding *bind; char *tmptr; bind = firstbind; if (!bind) { initbindinglist(); return (lookupdefbind(domain_name)); } while (bind) { if (!strcmp(domain_name, bind->domain_name)) { return (bind->binding); } bind = bind->nextdomain; } /* not found, look for binding in default binding list */ return (lookupdefbind(domain_name)); } char * textdomain(domain_name) char *domain_name; { static int entered = 0; static char current_domain[MAX_DOMAIN_LENGTH + 1]; if (! entered) { strcpy(current_domain, DEFAULT_DOMAIN); entered = 1; } if (domain_name == NULL) { return(current_domain); } if (strlen(domain_name) > MAX_DOMAIN_LENGTH) { return(NULL); } if (*domain_name == '\0') { strcpy(current_domain, DEFAULT_DOMAIN); } else { strcpy(current_domain, domain_name); } return(current_domain); } char * gettext(msg_id) char *msg_id; { return (dgettext(NULL, msg_id)); } char * dgettext(domain_name, msg_id) char *domain_name; char *msg_id; { char msgfile[MAXPATHLEN+1]; char *current_locale; char *current_domain; char *current_binding; char *msgptr, *openwinhome = NULL; struct stat statbuf; int fd = -1; caddr_t addr; int msg_inc; static int top_list = 0; /* top of message_so list */ static int first_free = 0; /* first free entry in list */ static int last_entry_seen = 0; /* try this one first */ static struct message_so messages_so[MAX_MSG]; static struct message_so cur_mess_so; /* holds current message domain */ current_locale = setlocale(LC_MESSAGES, NULL); if (domain_name == NULL) { current_domain = textdomain(NULL); } else if (strlen(domain_name) > MAX_DOMAIN_LENGTH) { return(msg_id); } else if (*domain_name == '\0') { current_domain = DEFAULT_DOMAIN; } else { current_domain = domain_name; } /* check to see if textdomain has changed */ bzero(msgfile, sizeof(msgfile)); if (current_binding = findtextdomain(current_domain)) { strcpy(msgfile, current_binding); strcat(msgfile, "/"); strcat(msgfile, current_locale); strcat(msgfile, "/LC_MESSAGES/"); strcat(msgfile, current_domain); strcat(msgfile, ".mo"); } else { return(msg_id); } msg_inc = top_list; while (msg_inc < first_free) { if (!strcmp(msgfile, messages_so[msg_inc].message_so_path)) { if (messages_so[msg_inc].fd != -1 && messages_so[msg_inc].mess_file_info != (struct struct_mo_info *) -1) { cur_mess_so = messages_so[msg_inc]; last_entry_seen = msg_inc; return (_gettext(cur_mess_so, msg_id)); } else { return(msg_id); } } msg_inc++; } /* been though entire queue and not found open new entry if there is space. */ if (msg_inc == MAX_MSG) { return (msg_id); /* not found and no more space */ } if (first_free == MAX_MSG) { return (msg_id); /* no more space */ } /* * There is an available entry in the queue, so make a * message_so for it and put it on the queue, * return msg_id if message file isn't opened -or- * mmap'd correctly */ /* if ((fd = open(msgfile, O_RDONLY)) == -1) { return (msg_id); } else if (fstat(fd, &statbuf) == -1) { close(fd); return (msg_id); } else if ((addr = mmap(0, statbuf.st_size, PROT_READ, MAP_SHARED, fd, 0)) == (caddr_t) -1 ) { close(fd); return (msg_id); } close(fd); */ fd = open(msgfile, O_RDONLY); messages_so[first_free].fd = fd; messages_so[first_free].message_so_path = strdup(msgfile); if (fd == -1) { first_free++; close(fd); return (msg_id); } fstat(fd, &statbuf); addr = mmap(0, statbuf.st_size, PROT_READ, MAP_SHARED, fd, 0); close(fd); messages_so[first_free].mess_file_info = (struct struct_mo_info *) addr; if (addr == (caddr_t) -1) { first_free++; return (msg_id); } messages_so[first_free].message_list = (struct message_struct *) &messages_so[first_free].mess_file_info[1]; messages_so[first_free].msg_ids = (char *) &messages_so[first_free].message_list[messages_so[first_free].mess_file_info->message_count]; messages_so[first_free].msgs = (char *) messages_so[first_free].msg_ids + messages_so[first_free].mess_file_info->string_count_msgid; cur_mess_so = messages_so[first_free]; first_free++; /* return pointer to message */ return (_gettext(cur_mess_so,msg_id)); } char *_gettext( messages, key_string ) struct message_so messages; char *key_string ; { register int check; register int val; check = messages.mess_file_info->message_mid; for (;;) { if ((val=strcmp(key_string, messages.msg_ids+messages.message_list[check].msgid_offset)) < 0) { if (messages.message_list[check].less == -99) { return (key_string); } else { check = messages.message_list[check].less; } } else if (val > 0) { if (messages.message_list[check].more == -99) { return (key_string); } else { check = messages.message_list[check].more; } } else { return (messages.msgs+messages.message_list[check].msg_offset); } /* if ((val= ... */ } /* for (;;) */ } xview-3.2p1.4/clients/olwm/gettext.h100644 1750 1750 2721 5413747422 14710 0ustar mbmb#ident "@(#)gettext.h 1.7 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_GETTEXT_H #define _OLWM_GETTEXT_H #define DEFAULT_DOMAIN "default" #define DEFAULT_BINDING "/usr/lib/locale\n" #define COOKIE 0xFF #define BINDINGLISTDELIM '\n' #define MAX_VALUE_LEN 2047 #define MAX_DOMAIN_LENGTH 255 #define LC_NAMELEN 255 #include #include #include #include #include #include struct domain_binding { char *domain_name; char *binding; struct domain_binding *nextdomain; }; #include #include #include #include #define MAX_MSG 64 struct struct_mo_info { int message_mid; int message_count; int string_count_msgid; int string_count_msg; int message_struct_size; } ; struct message_struct { int less; int more; int msgid_offset; int msg_offset; }; struct message_so { char *message_so_path; /* name of message shared object */ int fd; /* file descriptor */ struct struct_mo_info *mess_file_info; /* information of message file */ struct message_struct *message_list;/* message list */ char *msg_ids; /* actual message ids */ char *msgs; /* actual messages */ }; #endif /* _OLWM_GETTEXT_H */ xview-3.2p1.4/clients/olwm/globals.h100644 1750 1750 6766 5413747423 14665 0ustar mbmb#ident "@(#)globals.h 26.45 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_GLOBALS_H #define _OLWM_GLOBALS_H #include "list.h" typedef struct { unsigned int modmask; KeyCode keycode; } KeySpec; typedef enum { BeepAlways, BeepNever, BeepNotices } BeepStatus; typedef enum { KbdSunView, KbdBasic, KbdFull } MouselessMode; typedef struct _globalResourceVariables { char *WindowColor; char *ForegroundColor; char *BackgroundColor; char *BorderColor; WorkspaceStyle WorkspaceStyle; char *WorkspaceColor; char *WorkspaceBitmapFile; char *WorkspaceBitmapFg; char *WorkspaceBitmapBg; Bool ReverseVideo; Bool PaintWorkspace; Bool PointerWorkspace; Bool F3dUsed; Bool F3dFrames; Bool F3dResize; #ifdef OW_I18N_L4 XFontSetInfo TitleFontSetInfo; XFontSetInfo TextFontSetInfo; XFontSetInfo ButtonFontSetInfo; XFontSetInfo IconFontSetInfo; #else XFontStruct *TitleFontInfo; XFontStruct *TextFontInfo; XFontStruct *ButtonFontInfo; XFontStruct *IconFontInfo; #endif XFontStruct *GlyphFontInfo; Cursor BasicPointer; Cursor MovePointer; Cursor BusyPointer; Cursor IconPointer; Cursor ResizePointer; Cursor MenuPointer; Cursor QuestionPointer; Cursor TargetPointer; Cursor PanPointer; Bool FocusFollowsMouse; Text *DefaultWinName; int SaveWorkspaceTimeout; char *SaveWorkspaceCmd; int FlashTime; Bool FShowMenuButtons; /* XXX */ Bool FShowPinnedMenuButtons; /* XXX */ IconPreference IconPlacement; Bool FSnapToGrid; Bool FocusLenience; Bool DragWindow; Bool AutoRaise; int AutoRaiseDelay; Bool PopupJumpCursor; Bool ColorLocked; Bool PPositionCompat; Bool RefreshRecursively; BeepStatus Beep; int EdgeThreshold; int DragRightDistance; int MoveThreshold; int ClickMoveThreshold; int DoubleClickTime; int RubberBandThickness; KeySpec FrontKey; KeySpec HelpKey; KeySpec OpenKey; KeySpec ConfirmKey; KeySpec CancelKey; KeySpec ColorLockKey; KeySpec ColorUnlockKey; List *Minimals; Bool MouseChordMenu; int MouseChordTimeout; Bool SingleScreen; Bool AutoReReadMenuFile; Bool KeepTransientsAbove; Bool TransientsSaveUnder; Bool TransientsTitled; Bool SelectWindows; Bool ShowMoveGeometry; Bool ShowResizeGeometry; Bool InvertFocusHighlighting; Bool RunSlaveProcess; Bool SelectToggleStacking; int FlashCount; char *DefaultIconImage; char *DefaultIconMask; Bool ServerGrabs; int IconFlashCount; Bool SelectDisplaysMenu; int SelectionFuzz; Bool AutoInputFocus; Bool AutoColorFocus; Bool ColorTracksInputFocus; int IconFlashOnTime; int IconFlashOffTime; MouselessMode Mouseless; Bool RaiseOnActivate; Bool RestackWhenWithdraw; Bool BoldFontEmulation; Bool RaiseOnMove; Bool RaiseOnResize; Bool StartDSDM; int WindowCacheSize; Bool MenuAccelerators; Bool WindowMenuAccelerators; #ifdef OW_I18N_L3 OLLCItem LC[OLLC_LC_MAX]; char *CharacterSet; #endif Bool PrintOrphans; Bool PrintAll; Bool Synchronize; Bool PrintWarnings; } GlobalResourceVariables; extern GlobalResourceVariables GRV; #ifdef OW_I18N_L3 /* shortcuts for getting at locale category items */ #define lc_basic LC[OLLC_LC_BASIC_LOCALE] #define lc_dlang LC[OLLC_LC_DISPLAY_LANG] #define lc_ilang LC[OLLC_LC_INPUT_LANG] #define lc_numeric LC[OLLC_LC_NUMERIC] #define lc_datefmt LC[OLLC_LC_DATE_FORMAT] #endif #endif /* _OLWM_GLOBALS_H */ xview-3.2p1.4/clients/olwm/helpcmd.h100644 1750 1750 1467 5413747423 14647 0ustar mbmb#ident "@(#)helpcmd.h 26.9 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_HELPCMD_H #define _OLWM_HELPCMD_H /* ---------------------------------------------------------------------- * helpcmd.h * ---------------------------------------------------------------------*/ #include "cmdstream.h" #define HW_SCREEN_NO 0 #define HW_MOUSE_X 1 #define HW_MOUSE_Y 2 #define HW_HELPKEY 3 #define HW_ATTR_COUNT 4 static CmdAttr helpCmdAttr[] = { { "SCREEN_NO", INT }, { "MOUSE_X", INT }, { "MOUSE_Y", INT }, { "HELPKEY", STRING } }; static Command helpCommand = { "SHOWHELP", 0, HW_ATTR_COUNT, helpCmdAttr }; #endif /* _OLWM_HELPCMD_H */ xview-3.2p1.4/clients/olwm/helpsend.c100644 1750 1750 1625 5413747423 15024 0ustar mbmb#ident "@(#)helpsend.c 26.8 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ /* ---------------------------------------------------------------------- * helpsend.c * ---------------------------------------------------------------------*/ #include "helpcmd.h" /* ---------------------------------------------------------------------- * ShowHelpWindow * ---------------------------------------------------------------------*/ int ShowHelpWindow(nscreen,mousex,mousey,helpkey) int nscreen; int mousex,mousey; char *helpkey; { helpCmdAttr[HW_SCREEN_NO].value.ival = nscreen; helpCmdAttr[HW_MOUSE_X].value.ival = mousex; helpCmdAttr[HW_MOUSE_Y].value.ival = mousey; helpCmdAttr[HW_HELPKEY].value.sval = helpkey; return (SendCmd(&helpCommand)); } xview-3.2p1.4/clients/olwm/i18n.c100644 1750 1750 7411 5413747423 14000 0ustar mbmb#ident "@(#)i18n.c 1.12 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #include #include #include "i18n.h" #include "mem.h" #include "ollocale.h" #include "olwm.h" #include "globals.h" /* * DrawText - Displays Text. * #ifdef'd for both normal and wide text */ void DrawText(dpy,drawable,font,gc,x,y,text,len) Display *dpy; Drawable drawable; DisplayFont font; GC gc; int x,y; Text *text; int len; { #ifdef OW_I18N_L4 XFontSet fontSet; switch (font) { case TitleFont: fontSet = GRV.TitleFontSetInfo.fs; break; case TextFont: fontSet = GRV.TextFontSetInfo.fs; break; case ButtonFont: fontSet = GRV.ButtonFontSetInfo.fs; break; case IconFont: fontSet = GRV.IconFontSetInfo.fs; break; default: return; } XwcDrawString(dpy,drawable,fontSet,gc,x,y,text,len); #else XDrawString(dpy,drawable,gc,x,y,text,len); #endif } /* * FontInfo - returns width,height,ascent,descent for the set of * fonts used in olwm. * #ifdef'd for both XFontInfo and XFontSet */ int FontInfo(font,op,text,len) DisplayFont font; FontInfoOp op; Text *text; int len; { #ifdef OW_I18N_L4 XFontSetInfo *fontInfo; #else XFontStruct *fontInfo; #endif int ret; switch (font) { case TitleFont: #ifdef OW_I18N_L4 fontInfo = &(GRV.TitleFontSetInfo); #else fontInfo = GRV.TitleFontInfo; #endif break; case TextFont: #ifdef OW_I18N_L4 fontInfo = &(GRV.TextFontSetInfo); #else fontInfo = GRV.TextFontInfo; #endif break; case ButtonFont: #ifdef OW_I18N_L4 fontInfo = &(GRV.ButtonFontSetInfo); #else fontInfo = GRV.ButtonFontInfo; #endif break; case IconFont: #ifdef OW_I18N_L4 fontInfo = &(GRV.IconFontSetInfo); #else fontInfo = GRV.IconFontInfo; #endif break; default: return 0; } switch (op) { case FontWidthOp: #ifdef OW_I18N_L4 ret = XwcTextEscapement(fontInfo->fs,text,len); #else ret = XTextWidth(fontInfo,text,len); #endif break; case FontHeightOp: #ifdef OW_I18N_L4 ret = fontInfo->fsx->max_logical_extent.height; #else ret = fontInfo->ascent + fontInfo->descent; #endif break; case FontAscentOp: #ifdef OW_I18N_L4 ret = - fontInfo->fsx->max_logical_extent.y; #else ret = fontInfo->ascent; #endif break; case FontDescentOp: #ifdef OW_I18N_L4 ret = fontInfo->fsx->max_logical_extent.height + fontInfo->fsx->max_logical_extent.y; #else ret = fontInfo->descent; #endif break; default: return 0; } return ret; } #ifdef OW_I18N_L4 /* * When converting the wide char to CTEXT, we need to estimate the * space, but there are no right way to do this without actually * converting. "wslen(wchar) * sizeof(wchar_t)" will give us the how * many bytes consume by the characters, but this does not include the * any control sequences. I decided use fudge bytes for this control * sequnces for now. This is absolutely bad idea to having a this * value, but otherwise we need to convert it twice. One control * sequnce require the 3 bytes, so, following allow to switch the code * set 6 times. */ #define WCSTOCTS_FUDGE_BYTES (3 * 6) wchar_t * mbstowcsdup(mbs) register char *mbs; { register int n; register wchar_t *wcs; if (mbs == NULL) return NULL; n = strlen(mbs) + 1; wcs = (wchar_t *) MemAlloc(n * sizeof(wchar_t)); mbstowcs(wcs, mbs, n); #if DEBUG > 4 fprintf(stderr, "mbstowcsdup: mbs [%s] -> wcs [%ws]\n", mbs, wcs); #endif return wcs; } #if DEBUG > 4 ascii_dump(s) register unsigned char *s; { while (*s) { if (*s < ' ') fprintf(stderr, "^%c", *s + '@'); else if (*s > 0x80) fprintf(stderr, "(%2x)", *s); else fputc(*s, stderr); s++; } } #endif DEBUG #endif OW_I18N_L4 xview-3.2p1.4/clients/olwm/i18n.h100644 1750 1750 10424 5413747424 14024 0ustar mbmb#ident "@(#)i18n.h 1.26 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_I18N_H #define _OLWM_I18N_H #include #include #ifdef OW_I18N_L4 #include #include #include #include #if XlibSpecificationRelease < 5 #include #endif /* XlibSpecificationRelease < 5 */ typedef struct { XFontSet fs; XFontSetExtents *fsx; } XFontSetInfo; extern wchar_t *mbstowcsdup(); #endif /* OW_I18N_L4 */ /* * String/Text - To better handle non-i18n, Level3 and Level4 * we introduce two 'types'; string and text. * * String - really char * - which may be a multibyte string in L4. * - used in printf output * - ie. printf(GetString("msg")); * * Text - Text * type - either char * in L3 or wchar_t * in L4. * - used in output to display via DrawText() or olgx functions * - in L4 entails an allocation of memory for conversion from * multibyte to widechar, so there must be a deallocation * when done with the Text. * - ie: * Text * txt = GetText("msg"); * DrawText(...,txt,TextLen(txt)); * FreeText(txt); * - In non-i18n and L3, FreeText() is a no-op since GetText() * does not allocate memory */ /* * Text Convenience Functions */ #ifdef OW_I18N_L4 typedef wchar_t Text; #define TextCat(t1, t2) wscat((t1), (t2)) #define TextChr(t,c) wschr((t),(wchar_t)(c)) #define TextCmp(t1, t2) wscmp((t1), (t2)) #define TextCpy(t) wscpy((t1),(t2)) #define TextLen(t) wslen((t)) #define TextSPrintf wsprintf #define TextTok(t,s) wstok((t),(s)) #define TextTolower(t) towlower((t)) #else typedef char Text; #define TextCat(t1, t2) strcat((t1), (t2)) #define TextChr(t,c) strchr((t),(c)) #define TextCmp(t1, t2) strcmp((t1), (t2)) #define TextCpy(t) strcpy((t1),(t2)) #define TextLen(t) strlen((t)) #define TextSPrintf sprintf #define TextTok(t,s) strtok((t),(s)) #define TextTolower(t) tolower((t)) #endif /* OW_I18N_L4 */ /* * Font Info and Text Draw Functions */ typedef enum { TitleFont, TextFont, ButtonFont, IconFont } DisplayFont; typedef enum { FontWidthOp, FontHeightOp, FontAscentOp, FontDescentOp } FontInfoOp; extern void DrawText(); extern int FontInfo(); #define FontWidth(font,text,len) FontInfo(font,FontWidthOp,text,len) #define FontHeight(font) FontInfo(font,FontHeightOp,(Text*)0,0) #define FontAscent(font) FontInfo(font,FontAscentOp,(Text*)0,0) #define FontDescent(font) FontInfo(font,FontDescentOp,(Text*)0,0) /* * String/Text Messaging Convenience Functions * * char *GetString(char *) * Returns an internationalized string (perhaps multi-byte). This * string is suitable for printf output. This string must not be * modified or freed. * * Text *GetText(char *) * Returns an internationalized piece of text (perhaps composed of wide * chars). This text is suitable for window system display (e.g. for use * with XDrawText(). This string must be disposed of with FreeText(). * This string should never be hooked into a persistent data structure or * freed with MemFree(). * * void FreeText(Text *) * Frees a string. This string must have come from GetText(). * * Text *GetNewText(char *) * Returns a piece of internationalized text suitable for window system * display. This text is guaranteed to have been allocated from the * heap, and it must be freed eventually with MemFree(). It is thus * suitable for use in persistent data structures. */ #ifdef OW_I18N_L4 extern char *gettext(); #define GetString(s) gettext(s) #define GetText(s) mbstowcsdup(gettext(s)) #define FreeText(s) MemFree(s) #define GetNewText(s) mbstowcsdup(gettext(s)) #elif defined OW_I18N_L3 extern char *gettext(); #define GetString(s) gettext(s) #define GetText(s) gettext(s) #define FreeText(s) #define GetNewText(s) MemNewString(gettext(s)) #else #define GetString(s) s #define GetText(s) s #define FreeText(s) #define GetNewText(s) MemNewString(s) #endif /* * OLGX macros */ #ifdef OW_I18N_L4 #define olgx_main_initialize olgx_i18n_initialize #define TextOLGX OLGX_LABEL_IS_WCS #else #define TextOLGX (0) #endif #endif /* _OLWM_I18N_H */ xview-3.2p1.4/clients/olwm/iconimage.h100644 1750 1750 5404 5413747424 15162 0ustar mbmb#ident "@(#)iconimage.h 26.12 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_ICONIMAGE_H #define _OLWM_ICONIMAGE_H #define iconimage_width 64 #define iconimage_height 48 static unsigned char iconimage_bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb9, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x5c, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xae, 0x4e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x17, 0x9d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0xab, 0x3a, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x45, 0x94, 0x03, 0x00, 0x00, 0x00, 0x00, 0x64, 0xaa, 0xca, 0x04, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x14, 0xe5, 0x09, 0x00, 0x00, 0x00, 0x00, 0xb9, 0xa9, 0xb2, 0x13, 0x00, 0x00, 0x00, 0x80, 0x5c, 0x53, 0x59, 0x27, 0x00, 0x00, 0x00, 0x40, 0xae, 0xa6, 0xac, 0x4e, 0x00, 0x00, 0x00, 0x20, 0x17, 0x4d, 0x56, 0x9d, 0x00, 0x00, 0x00, 0x90, 0xab, 0x1a, 0xab, 0x3a, 0x01, 0x00, 0x00, 0xc8, 0x45, 0x94, 0x55, 0x75, 0x06, 0x00, 0x00, 0x98, 0xaa, 0xca, 0xaa, 0x2a, 0x09, 0x00, 0x00, 0x30, 0x15, 0xe5, 0x54, 0x95, 0x18, 0x00, 0x00, 0x60, 0xaa, 0xb2, 0xa9, 0x4a, 0x0c, 0x00, 0x00, 0xc0, 0x54, 0x59, 0x53, 0x25, 0x06, 0x00, 0x00, 0x80, 0xa9, 0xac, 0xa6, 0x12, 0x03, 0x00, 0x00, 0x00, 0x53, 0x56, 0x4d, 0x89, 0x01, 0x00, 0x00, 0x00, 0x26, 0xab, 0x9a, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x8c, 0x55, 0x35, 0x62, 0x00, 0x00, 0x00, 0x00, 0xd8, 0xaa, 0x2a, 0x31, 0x00, 0x00, 0x00, 0x00, 0x70, 0x55, 0x95, 0x18, 0x00, 0x00, 0x00, 0x00, 0x60, 0xaa, 0x4a, 0x0c, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x54, 0x25, 0x06, 0x00, 0x00, 0x00, 0x00, 0x80, 0xa9, 0x12, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x53, 0x89, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; #endif /* _OLWM_ICONIMAGE_H */ xview-3.2p1.4/clients/olwm/iconmask.h100644 1750 1750 5373 5413747424 15040 0ustar mbmb#ident "@(#)iconmask.h 1.7 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_ICONMASK_H #define _OLWM_ICONMASK_H #define iconmask_width 64 #define iconmask_height 48 static unsigned char iconmask_bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; #endif /* _OLWM_ICONMASK_H */ xview-3.2p1.4/clients/olwm/info.c100644 1750 1750 3726 5413747424 14162 0ustar mbmb#ident "@(#)info.c 26.10 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #include #include #include #include #include #include #include "i18n.h" #include "olwm.h" #include "win.h" #include "st.h" #include "mem.h" #include "error.h" st_table *wiHashTable; static int wiCompare( w1, w2 ) register char *w1, *w2; { return ((Window)w1) - ((Window)w2); } static int wiHash( w1, modulus ) register char *w1; register int modulus; { return ((Window)w1) % modulus; } /* * initialize the hash tables * returns: True - success * False - failure */ /*ARGSUSED*/ /* dpy arg will be used when multiple Displays supported */ WIInit( dpy ) Display *dpy; { wiHashTable = st_init_table(wiCompare, wiHash); } /* * Save window information with the associated window, for later dispatch */ void WIInstallInfo(info) WinGeneric *info; { if (WIGetInfo(info->core.self) != NULL) { ErrorGeneral( GetString("Tried to duplicate-register a window -- bailing")); } st_insert(wiHashTable, (int)info->core.self, (char *)info); } /* * delete storage for window information * returns: True - window entry deleted * False - window entry not found */ Bool WIUninstallInfo(win) Window win; { WinGeneric *oldInfo; Window tmpWin = win; Window *tmpWinPtr = &tmpWin; return (st_delete(wiHashTable, (char *)tmpWinPtr, (char *)&oldInfo)); } /* * retrieve information associated with a window * returns: Pointer to WinGeneric struct if window is found * NULL if not found */ WinGeneric * WIGetInfo(win) Window win; { WinGeneric *winInfo = NULL; st_lookup(wiHashTable, win, &winInfo); return winInfo; } /* * apply a function to all windows */ void WIApply(f,c) enum st_retval (*f)(); void *c; { st_foreach(wiHashTable, f, c); } xview-3.2p1.4/clients/olwm/kbdfuncs.c100644 1750 1750 46102 5413747424 15041 0ustar mbmb#ident "@(#)kbdfuncs.c 1.18 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #ifdef SYSV #include #else #include #endif #include #include #include "i18n.h" #include "ollocale.h" #include "olwm.h" #include "win.h" #include "menu.h" #include "globals.h" #include "group.h" #include "resources.h" /* * Externals */ extern void ClientActivate(); extern Client *ClientGetLastCurrent(); extern void ClientLowerTransients(); extern Client *ClientRaiseTransients(); extern void ClientSetCurrent(); /* ===== private functions ================================================ */ typedef struct { Bool prev; Bool seencur; Client *cur; Client *next; } FindClosure; /* * Given a keystroke event, find the window (and its client structure) that is * under the >pointer<. If the pointer is on the same screen as the event * window, then this is simply the subwindow field of the event. If the * pointer is on another screen, we must do a TranslateCoordinates to find it. * Returns True if a window with a client structure was found, otherwise * returns False. */ static Bool childUnderPointer(dpy, ke, wid, info, cli) Display *dpy; XKeyEvent *ke; Window *wid; WinGeneric **info; Client **cli; { int junk; if (ke->same_screen) { *wid = ke->subwindow; } else { (void) XTranslateCoordinates(dpy, ke->root, ke->root, ke->x_root, ke->y_root, &junk, &junk, wid); } if (*wid == None) return False; *info = WIGetInfo(*wid); if (*info == NULL) return False; *cli = (*info)->core.client; if (*cli == NULL) return False; return True; } /* * Derive a value related to an angle without using trigonometry or floating * point. Derived from Sedgewick, Algorithms, p. 315. Returns a value in the * range [0..360), scaled by 2^16. Since Y is positive-downwards in the X * window system, angles increase in the clockwise direction. This is what we * want. However, we rotate by -90 to get zero at the top instead of at the * right. */ #define SCALE(i) ((i)<<16) #define UNSCALE(i) ((i)>>16) #define REMSCALE(i) (((i)&0xffff)*10000/65536*10) long itheta(p1x, p1y, p2x, p2y) int p1x, p1y, p2x, p2y; { long ax, ay, dx, dy; long t; /* * You might think that the code below should be: * * dx = p2x - p1x; * dy = p2y - p1y; * * In the X window system, the x-axis is positive right and the y-axis is * positive down. This puts the zero angle at the right, increasing * clockwise. We want zero at the top, increasing clockwise. To do this, * we swap the x and y values and negate the x delta. This is why the x's * and y's and 1's and 2's are apparently jumbled. */ dx = p1y - p2y; dy = p2x - p1x; ax = ABS(dx); ay = ABS(dy); if (dx == 0 && dy == 0) t = 0; else t = SCALE(dy) / (ax+ay); if (dx < 0) t = SCALE(2)-t; else if (dy < 0) t = SCALE(4)+t; t *= 90; #ifdef notdef /* * Rotate so that zero is at top. We could do this by swapping and * negating the dx and dy values above, but this would reduce readability. */ t += SCALE(90); if (t >= SCALE(360)) t -= SCALE(360); #endif /* notdef */ return t; } /* * Compare two client structures for ordering within the global window order. * Sort ordering is based first on screen number, then window state (open * considered to be before closed), then window position. Return value if -1 * if c1 is before c2, 1 if c1 is after c2, and 0 if they are tied. The bool * prev reverse the sense sort order. The NoFocus client is considered to * come before all other clients, regardless of whether the prev bool is set. * * A static boolean value AngularTraversal controls whether the tranversal * policy should be based on the angular position of the window. If false, * the old policy of upper-left to lower-right is used. */ static int compareClients(c1, c2, prev) Client *c1; Client *c2; Bool prev; { int pos1, pos2; int x1, x2, y1, y2; int LESS, GREATER; static Bool AngularTraversal = True; /* First check if both or either are the NoFocus client. */ if (c1->framewin == NULL && c2->framewin == NULL) return 0; if (c1->framewin == NULL) return -1; if (c2->framewin == NULL) return 1; if (prev) { LESS = 1; GREATER = -1; } else { LESS = -1; GREATER = 1; } /* Compare screens. */ if (c1->screen < c2->screen) return LESS; if (c1->screen > c2->screen) return GREATER; /* * Compare states. Note: this depends on the state values defined in * Xutil.h. Notably, NormalState < IconicState. This will need to be * changed if olwm adds any new state values. */ if (c1->wmState < c2->wmState) return LESS; if (c1->wmState > c2->wmState) return GREATER; /* They are both the same state. */ if (AngularTraversal) { /* calculate angle to window center */ long theta1, theta2; WinRoot *root = c1->scrInfo->rootwin; int rootcx = root->core.width / 2; int rootcy = root->core.height / 2; if (c1->wmState == NormalState) { x1 = c1->framewin->core.x + c1->framewin->core.width / 2; y1 = c1->framewin->core.y + c1->framewin->core.height / 2; x2 = c2->framewin->core.x + c2->framewin->core.width / 2; y2 = c2->framewin->core.y + c2->framewin->core.height / 2; } else { x1 = c1->iconwin->core.x + c1->iconwin->core.width / 2; y1 = c1->iconwin->core.y + c1->iconwin->core.height / 2; x2 = c2->iconwin->core.x + c2->iconwin->core.width / 2; y2 = c2->iconwin->core.y + c2->iconwin->core.height / 2; } theta1 = itheta(rootcx, rootcy, x1, y1); theta2 = itheta(rootcx, rootcy, x2, y2); if (theta1 < theta2) return LESS; else if (theta1 > theta2) return GREATER; } else { /* Sort from upper-left to lower-right. */ if (c1->wmState == NormalState) { x1 = c1->framewin->core.x; y1 = c1->framewin->core.y; x2 = c2->framewin->core.x; y2 = c2->framewin->core.y; } else { x1 = c1->iconwin->core.x; y1 = c1->iconwin->core.y; x2 = c2->iconwin->core.x; y2 = c2->iconwin->core.y; } pos1 = MAX(x1,y1); pos2 = MAX(x2,y2); if (pos1 < pos2) return LESS; if (pos1 > pos2) return GREATER; /* Positions are tied. Compare scanline order. */ if (y1 < y2) return LESS; if (y1 > y2) return GREATER; if (x1 < x2) return LESS; if (x1 > x2) return GREATER; } return 0; } static void * findClient(cli, closure) Client *cli; FindClosure *closure; { switch (compareClients(cli, closure->cur, closure->prev)) { case -1: /* this is earlier in the sort order; ignore */ break; case 0: /* * equal: if we've just seen the current client, advance to next; * otherwise, ignore. */ if (closure->seencur) { closure->next = cli; closure->seencur = False; } closure->seencur = (cli == closure->cur); break; case 1: /* * later in sort order; advance if earlier than later ones * already seen. */ if (closure->next == NULL) closure->next = cli; else if (compareClients(cli, closure->next, closure->prev) < 0) closure->next = cli; break; } return NULL; } /* * Activate the next or previous popup window or pinned menu of the current * application. */ static void selectNextPrevWindow(dpy, ke, prev) Display *dpy; XKeyEvent *ke; Bool prev; { GroupID grpid; Group *group; FindClosure closure; if (ke->type != KeyPress) return; closure.prev = prev; closure.cur = CurrentClient; closure.next = NULL; closure.seencur = False; (void) GroupApply(CurrentClient->groupid, findClient, &closure, GROUP_LEADER | GROUP_DEPENDENT); if (closure.next == NULL) { /* * We didn't find a suitable client. Wrap around by resetting the * current client to the NoFocus client and searching again. */ closure.cur = NoFocusWinInfo->core.client; closure.next = NULL; closure.seencur = False; (void) GroupApply(CurrentClient->groupid, findClient, &closure, GROUP_LEADER | GROUP_DEPENDENT); } if (CurrentClient != closure.next) ClientActivate(dpy, closure.next, ke->time); } /* * Activate the next or previous application's base window. */ static void selectNextPrevApp(dpy, ke, prev) Display *dpy; XKeyEvent *ke; Bool prev; { Client *cli; Client *next = NULL; Client *first = NULL; List *l = ActiveClientList; int cmp; Bool seencur = False; if (ke->type != KeyPress) return; if (CurrentClient == NULL) { /* Consider the current client to be the NoFocus client. */ ClientSetCurrent(NoFocusWinInfo->core.client); } l = ActiveClientList; for (cli = ListEnum(&l); cli != NULL; cli = ListEnum(&l)) { /* skip special screen clients (including NoFocus client) */ if (cli->framewin == NULL) continue; /* skip dependent followers */ if (cli->groupmask == GROUP_DEPENDENT) continue; switch (compareClients(cli, CurrentClient, prev)) { case -1: /* earlier in the sort order: see if it's the first client */ if (first == NULL || compareClients(cli, first, prev) == -1) first = cli; break; case 0: /* * equal: if we've just seen the current client, advance to next; * otherwise, ignore. */ if (seencur) { next = cli; seencur = False; } seencur = (cli == CurrentClient); if (first == NULL) first = cli; break; case 1: /* * later in sort order; advance if earlier than later ones * already seen. */ if (next == NULL) next = cli; else if (compareClients(cli, next, prev) < 0) next = cli; break; } } if (next != NULL) ClientActivate(dpy, next, ke->time); else ClientActivate(dpy, first, ke->time); } /* ===== global functions ================================================= */ /* * Beep on keystrokes, but only if the key isn't a modifier, and if beeping is * enabled. */ void KeyBeep(dpy,ke) Display *dpy; XKeyEvent *ke; { /* * REMIND: we should use xkeyevent->time to make sure that we don't send * to many beep requests within a small period of time. */ if ((FindModifierMask(ke->keycode) == 0) && (GRV.Beep == BeepAlways)) XBell(dpy,100); } /* * Lock the colormap of the window under the pointer into the hardware. */ void KeyLockColormap(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type != KeyPress) return; InstallPointerColormap(dpy, ke->root, ke->x_root, ke->y_root, True); } /* * Unlock the colormap; revert to color-follows-mouse mode. */ void KeyUnlockColormap(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type != KeyPress) return; UnlockColormap(dpy, ke->root, ke->x_root, ke->y_root); } /* * KeyRaiseLowerPointer - raise or lower the window under the pointer * * Restack the window under the pointer, similar to the SunView Front key. If * this window is at all occluded, raise it. If other windows are occluded by * this window, lower it. (This is the behavior of the value Opposite for the * stack-mode parameter of a ConfigureWindow request.) * * The behavior is different if this window is a transient window, or if this * window has transient windows associated with it. If this window is a * transient window, the parent and all transients are pushed to the back, * with the transients remaining above the parent. If this window is a parent * of any transient windows, all are raised to the front, with the parent * remaining behind the transients. * * REMIND this is probably suboptimal behavior for transients and parents of * transients, as the occlusion rule is not used for them. This may result in * apparent misbehavior. */ void KeyRaiseLowerPointer(dpy, ke) Display *dpy; XKeyEvent *ke; { Window child; WinGeneric *childinfo; Client *cli; XWindowChanges xwc; WinGeneric *owner; Client *transient; if (ke->type != KeyPress) return; /* * If childUnderPointer returns a valid window structure, we use it. If * childUnderPointer returns False, we go ahead and reconfigure any window * found, even if we don't know about it. This is useful for restacking * override-redirect windows. */ if (childUnderPointer(dpy, ke, &child, &childinfo, &cli)) { if (cli->transientFor != 0 && GRV.KeepTransientsAbove && (owner = WIGetInfo(cli->transientFor)) != NULL && owner->core.kind == WIN_PANE && owner->core.client != NULL) { XLowerWindow(cli->dpy, owner->core.client->framewin->core.self); ClientLowerTransients(owner->core.client); } else { transient = ClientRaiseTransients(cli); if (transient != NULL) { xwc.stack_mode = Below; xwc.sibling = transient->framewin->core.self; XConfigureWindow(dpy, child, CWStackMode | CWSibling, &xwc); } else { xwc.stack_mode = Opposite; XConfigureWindow(dpy, child, CWStackMode, &xwc); } } } else { if (child != None) { xwc.stack_mode = Opposite; XConfigureWindow(dpy, child, CWStackMode, &xwc); } } } /* * Toggle the open/closed state of the window under the pointer. */ void KeyOpenClosePointer(dpy, ke) Display *dpy; XKeyEvent *ke; { Window child; WinGeneric *childinfo; Client *cli; if (ke->type != KeyPress) return; if (childUnderPointer(dpy, ke, &child, &childinfo, &cli)) ClientOpenCloseToggle(cli, ke->time); } /* * Set the focus to the window under the pointer. If there is no window under * the pointer, set the focus to the no-focus window. */ void KeyFocusToPointer(dpy, ke) Display *dpy; XKeyEvent *ke; { Window child; WinGeneric *childinfo; Client *cli; if (ke->type != KeyPress) return; if (childUnderPointer(dpy, ke, &child, &childinfo, &cli)) ClientSetFocus(cli, True, ke->time); else NoFocusTakeFocus(dpy, ke->time, GetScrInfoOfRoot(ke->root)); } /* * Activate the base window of the next application. */ void KeyNextApp(dpy, ke) Display *dpy; XKeyEvent *ke; { selectNextPrevApp(dpy, ke, False); } /* * Activate the base window of the previous application. */ void KeyPrevApp(dpy, ke) Display *dpy; XKeyEvent *ke; { selectNextPrevApp(dpy, ke, True); } /* * Activate the next popup window or pinned menu of the current application. */ void KeyNextWindow(dpy, ke) Display *dpy; XKeyEvent *ke; { selectNextPrevWindow(dpy, ke, False); } /* * Activate the previous popup window or pinned menu of the current * application. */ void KeyPrevWindow(dpy, ke) Display *dpy; XKeyEvent *ke; { selectNextPrevWindow(dpy, ke, True); } /* * Toggle between this and the previous active window. */ void KeyToggleInput(dpy, ke) Display *dpy; XKeyEvent *ke; { Client *next; if (ke->type != KeyPress) return; next = ClientGetLastCurrent(); ClientActivate(dpy, next, ke->time); } /* * Toggle the pin if the active window, if any. */ void KeyTogglePin(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type != KeyPress) return; if (!ClientTogglePin(CurrentClient)) KeyBeep(dpy,ke); } /* * Refresh the active window. */ void KeyRefresh(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type != KeyPress) return; if (CurrentClient->framewin != NULL) ClientRefresh(CurrentClient); } /* * Raise the active window to the front. */ void KeyFrontFocus(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type != KeyPress) return; if (CurrentClient->framewin != NULL) ClientFront(CurrentClient); } /* * Send the active window to the back. */ void KeyBackFocus(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type != KeyPress) return; if (CurrentClient->framewin != NULL) ClientBack(CurrentClient); } /* * Toggle the open/close state of the active window. */ void KeyOpenCloseFocus(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type != KeyPress) return; if (CurrentClient->framewin != NULL) ClientOpenCloseToggle(CurrentClient, ke->time); } /* * Toggle the full/restored size of the active window. */ void KeyFullRestore(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type != KeyPress) return; if (CurrentClient->framewin != NULL) ClientFullRestoreSizeToggle(CurrentClient,ke->time); } /* * Quit the active window. */ void KeyQuit(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type != KeyPress) return; if (CurrentClient->framewin != NULL) ClientKill(CurrentClient, True); } /* * Flash the owner window of the active window. */ void KeyOwner(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type != KeyPress) return; if (CurrentClient->framewin != NULL) ClientFlashOwner(CurrentClient); } /* * Move the active window. */ void KeyMove(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type != KeyPress) return; if (CurrentClient->framewin != NULL) ClientMove(CurrentClient,ke); } /* * Resize the active window. */ void KeyResize(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type != KeyPress) return; if (CurrentClient->framewin != NULL) ClientResize(CurrentClient, ke, keyevent, NULL, NULL); } /* * Bring up the Properties window for the active window. */ void KeyProperties(dpy, ke) Display *dpy; XKeyEvent *ke; { /* REMIND - fill in when window properties implemented */ } /* * Bring up the workspace menu. */ void KeyWorkspaceMenu(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type == KeyPress) RootMenuShow(dpy, WIGetInfo(ke->root), ke); } /* * Bring up the window menu for the active menu. */ void KeyWindowMenu(dpy, ke) Display *dpy; XKeyEvent *ke; { WinGenericFrame *frameInfo = (WinGenericFrame *)CurrentClient->framewin; if (ke->type != KeyPress) return; if (frameInfo == NULL || (frameInfo->core.client->wmDecors->menu_type == MENU_NONE)) KeyBeep(dpy, ke); else { ShowStandardMenu(frameInfo, ke, False); } } /* * Transition to InvisibleState the client with the focus */ void KeyMakeInvisibleFocus(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type != KeyPress) return; if (CurrentClient->framewin != NULL) StateInvisible(CurrentClient, ke->time); } /* * Transition to InvisibleState the client under the pointer */ void KeyMakeInvisiblePointer(dpy, ke) Display *dpy; XKeyEvent *ke; { Window child; WinGeneric *childinfo; Client *cli; if (ke->type != KeyPress) return; if (childUnderPointer(dpy, ke, &child, &childinfo, &cli)) StateInvisible(cli, ke->time); } /* * Transition an Invisible client back to NormalState */ static void * makeVisible(cli,timestamp) Client *cli; Time timestamp; { if (cli->wmState == InvisibleState) StateNormal(cli, timestamp); return NULL; } /* * Transition all Invisible clients back to NormalState */ void KeyMakeVisibleAll(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type != KeyPress) return; ListApply(ActiveClientList, makeVisible, ke->time); } xview-3.2p1.4/clients/olwm/kbdfuncs.h100644 1750 1750 2133 5413747424 15022 0ustar mbmb#ident "@(#)kbdfuncs.h 1.8 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_KBDFUNCS_H #define _OLWM_KBDFUNCS_H extern void KeyBackFocus(); extern void KeyBeep(); extern void KeyFocusToPointer(); extern void KeyRaiseLowerPointer(); extern void KeyFrontFocus(); extern void KeyFullRestore(); extern void KeyLockColormap(); extern void KeyMove(); extern void KeyNextApp(); extern void KeyNextWindow(); extern void KeyOpenClosePointer(); extern void KeyOpenCloseFocus(); extern void KeyOwner(); extern void KeyPrevApp(); extern void KeyPrevWindow(); extern void KeyProperties(); extern void KeyQuit(); extern void KeyRefresh(); extern void KeyResize(); extern void KeyToggleInput(); extern void KeyTogglePin(); extern void KeyUnlockColormap(); extern void KeyWindowMenu(); extern void KeyWorkspaceMenu(); extern void KeyMakeInvisiblePointer(); extern void KeyMakeInvisibleFocus(); extern void KeyMakeVisibleAll(); #endif /* _OLWM_KBDFUNCS_H */ xview-3.2p1.4/clients/olwm/list.c100644 1750 1750 10601 5413747425 14211 0ustar mbmb#ident "@(#)list.c 26.9 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #include "mem.h" #include "list.h" /*************************************************************************** * Local data ***************************************************************************/ #define NUMCELLS 511 typedef struct _cellBlock { struct _cellBlock *next; int n; List cells[NUMCELLS]; } cellBlock, *pcellBlock; static pcellBlock cellList = NULL; static List *freeList = NULL; /*************************************************************************** * Local functions ***************************************************************************/ /* local function * * pcellBlock mkCellBlock() * returns a new, minimally initialised cell block. The block is not linked * into the list of cell blocks. The cells are not initialised. */ static pcellBlock mkCellBlock() { pcellBlock pcb; pcb = MemNew(cellBlock); pcb->n = NUMCELLS; pcb->next = NULL; return pcb; } /* local function * * void initCellBlock() * puts all the cells in the new cell block onto the free list */ static void initCellBlock(pcb) pcellBlock pcb; { int i; for (i=0; in; i++) { pcb->cells[i].next = freeList; pcb->cells[i].value = NULL; freeList = &(pcb->cells[i]); } } /* local function * * List *allocCell() * allocates a cell from the free list; if none are available, allocates * a new cell block. */ static List * allocCell() { pcellBlock pcb; List *cell; if (freeList == NULL) { pcb = mkCellBlock(); initCellBlock(pcb); pcb->next = cellList; cellList = pcb; } cell = freeList; freeList = freeList->next; cell->next = NULL; return cell; } /* local function * * void freeCell() * returns a cell from the free list */ static void freeCell(cell) List *cell; { cell->next = freeList; cell->value = NULL; freeList = cell; } #ifdef DEBUG /* debugging function listPrint * * Intended to be called from a debugger. Prints out the value of each list * item in hex. */ static void listPrint(list) List *list; { int count; for (count=0 ; list != NULL_LIST ; list = list->next, ++count) fprintf(stderr, "item %d: value = 0x%x\n", count, list->value); } #endif /* DEBUG */ /*************************************************************************** * Global functions ***************************************************************************/ /* global function * * void ListInit() * no parameters. * * Initialises the List package: allocates a block of cells. */ void ListInit() { cellList = mkCellBlock(); initCellBlock(cellList); } /* global function * * void ListCons(void *val, List *next) * * Prepends a value to the head of a list. */ List * ListCons(val,next) void *val; List *next; { List *cell; cell = allocCell(); cell->value = val; cell->next = next; return cell; } /* global function * * int ListCount(List *l) * * Returns the number of items in a list. */ int ListCount(l) List *l; { int len = 0; while (l != NULL) { len++; l = l->next; } return len; } /* global function * void ListDestroy(List *l) * * destroys all the cells in a list. Leaves the values unaffected. */ void ListDestroy(l) List *l; { List *last; while (l != NULL) { last = l; l = l->next; freeCell(last); } } /* global function * void ListDestroyCell(List **l) * * deletes one cell from a list; modifies the List* passed by * reference to point to the next cell. */ void ListDestroyCell(l) List **l; { List *cell; if ((cell = *l) != NULL) { *l = cell->next; freeCell(cell); } } /* global function * void ListApply(List *l,void *(*f)(),void*c) * * iteratively calls the function f with list values and the * closure c, until f returns a non-NULL value */ void * ListApply(l,f,c) List *l; void *(*f)(); void *c; { List *cell; void *res; for (cell = l; cell != NULL; cell = cell->next) { res = (*f)(cell->value,c); if (res != NULL) return res; } return NULL; } /* global function * void * ListEnum(List **l) * * returns the value of the cell pointed to by l; modifies l to point * to the next cell in the list. */ void * ListEnum(l) List **l; { void *val; if (*l != NULL) { val = (*l)->value; *l = (*l)->next; return val; } else return NULL; } xview-3.2p1.4/clients/olwm/list.h100644 1750 1750 2514 5413747425 14202 0ustar mbmb#ident "@(#)list.h 26.8 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_LIST_H #define _OLWM_LIST_H typedef struct _List { void *value; struct _List *next; } List; #define NULL_LIST ((List *)0) extern void ListInit(); /* initialises the List package; should be called only once * at startup. */ extern List *ListCons(); /* void *val, List *next */ extern int ListCount(); /* List *l */ /* returns number of items in a list */ extern void ListDestroy(); /* List *l */ /* destroys all list cells in a list; does not affect list values */ extern void ListDestroyCell(); /* List **l */ /* deletes one cell from a list; modifies the List* passed by * reference to point to the next cell. */ extern void *ListApply(); /* List *l, (void *)(*f)(), void *c */ /* iteratively calls the function f with list values and the * closure, until it returns a non-NULL value. Returns this non-Null * value, or NULL if hte end of the list is reached. */ extern void *ListEnum(); /* List **l */ /* used for enumerating a list in a loop. Returns the value of the * cell, and modifies the cell pointer to point to the next cell. */ #endif /* _OLWM_LIST_H */ xview-3.2p1.4/clients/olwm/mem.h100644 1750 1750 2461 5413747425 14006 0ustar mbmb#ident "@(#)mem.h 26.15 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_MEM_H #define _OLWM_MEM_H extern void *MemAlloc(); /* malloc frontend */ extern void *MemCalloc(); /* calloc frontend */ extern void MemFree(); /* free frontend */ extern void *MemRealloc(); /* realloc frontend */ #ifdef MEMDEBUG extern void *d_MemAlloc(); extern void d_MemFree(); extern void *d_MemRealloc(); extern void *d_MemCalloc(); #define MemAlloc(s) d_MemAlloc((s), __FILE__, __LINE__, NULL) #define MemCalloc(n,s) d_MemCalloc((n),(s), __FILE__, __LINE__) #define MemFree(p) d_MemFree(p) #define MemRealloc(p,s) d_MemRealloc((p),(s)) #define MemNew(X) d_MemAlloc(sizeof(X), __FILE__, __LINE__, #X) #define MemNewString(s) (strcpy(d_MemAlloc(strlen(s)+1,__FILE__,__LINE__,"(string)"),s)) extern int MemAcct; extern int AcctTag; #else #define MemNew(t) ((t *)MemAlloc((unsigned int)sizeof(t))) #define MemNewString(s) (strcpy((char *)MemAlloc(strlen(s)+1),s)) #endif MEMDEBUG #ifdef OW_I18N_L4 #define MemNewText(s) wscpy((wchar_t *)MemAlloc((wslen(s)+1)*sizeof(wchar_t)),s) #else #define MemNewText(s) MemNewString((char *)s) #endif OW_I18N_L4 #endif _OLWM_MEM_H xview-3.2p1.4/clients/olwm/menu.c100644 1750 1750 236067 6331115755 14235 0ustar mbmb#ident "@(#)menu.c 26.76 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ /* * This file contains all of the functions for creating and displaying menus. * * Global Functions: * InitMenus -- initialize menu stuff * MenuCreate -- create a new menu * MenuDestroy -- destroy an existing menu * MenuShow -- display a menu */ #include #include #include #include #include #include #include #include #include #include #include "i18n.h" /* needed by olgx.h */ #include #include #include #include "ollocale.h" #include "mem.h" #include "events.h" #include "olwm.h" #include "win.h" #include "menu.h" #include "globals.h" #include "error.h" extern unsigned int FindModifierMask(); /* Locals */ static XEvent lastPress; static int lastX, lastY, minX; static WinGeneric *prevColorFocusWindow = NULL; static MenuTrackMode menuTrackMode; /* * Table of currently active menus. * REMIND: perhaps this should be dynamically allocated. */ #define MAX_ACTIVE_MENUS 20 /* We hope, more than enough. */ static MenuInfo *menuInfoTable[MAX_ACTIVE_MENUS]; static int topMenu = 0; /* Next free menuInfoTable slot. */ #define PUSHPINHEIGHT(g) (PushPinOut_Height(g) + 4) /* * Various dimensions. REMIND: these should be eliminated if possible, * and information from the font (via olgx) should be used instead. */ #define BUTT_VSPACE 0 /* vertical space between buttons */ #define BUTT_HSPACE 5 /* Space betw button/mark & pin/title/box */ #define HEAD_VSPACE 4 /* space around title and below last btn */ #define LOC_CURSOR_SIZE 6 /* space for the SuperCaret */ #define MENUMARK_SIZE 6 /* size of menu mark; REMIND use olgx macro */ #define MENU_HORIZ_OFFSET 3 /* where to place menu w.r.t. event */ /* * globals */ Bool flDoSetDefault; /*****************************************************************************/ static void calcmenusize(); static void recalcCachedMenu(); static void (*syncFunc) (); static void *syncInfo; static MenuInfo *findMenuInfo(); static void menuInfoDestroy(); static ButtonInfo *buttonInfoCreate(); static void showMenu(); static Bool menuHandleUpDownMotion(); static Bool menuHandlePress(); static void menuHandleMotion(); static Bool menuHandleRelease(); static MenuInfo *menuSearch(); static MenuLocation checkMenuEvent(); static int menuHide(); static void unmapChildren(); static void activateButton(); static void setMenuPin(); static void activateSubMenu(); static void drawButton(); static void drawRevButton(); static Bool isClick(); int MenuTrack(); void DrawLocCursor(); /* ***************************************************************************** * Code for dealing with storing menu defaults. * REMIND: not used. ***************************************************************************** */ #ifdef notdef /* Defaulting stuff */ extern DefaultsP DefaultsPtr; /* defined in usermenu.c */ /* REMIND: * the resource stuff for saving defaults is not implemented; */ void UpdDefaultPtr(mInfo, index) MenuInfo *mInfo; int index; { DefaultsP curr = DefaultsPtr; while (curr) { if (curr->mInfo == mInfo) break; curr = curr->next; } if (curr) curr->DefaultButton = index; } XrmDatabase CreateDB() { char *path; char filename[80]; extern char *getenv(); extern XrmDatabase XrmGetFileDataBase(); if ((path = getenv("OLWMRC")) != NULL) return XrmGetFileDatabase(path); path = getenv("HOME"); strcpy(filename, path ? path : ""); strcat(filename, "/.olwmrc"); return XrmGetFileDatabase(filename); } static void makeRMName_class(name, class, Name) char *name, *class, *Name; { int len = strlen(Name); int i, j; strcpy(name, "Olwm*Menu."); for (i = 0, j = strlen(name); i < len; i++) if (isalpha(Name[i])) name[j++] = Name[i]; name[j] = '\0'; strcat(name, ".DefaultButton"); strcpy(class, name); } FillDefaultsList(defaultsDB, DefaultsPtr) XrmDatabase defaultsDB; DefaultsP DefaultsPtr; { DefaultsP curr = DefaultsPtr; char *Stype; char name[80]; char class[80]; XrmValue val; while (curr) { makeRMName_class(name, class, curr->Name); if (XrmGetResource(defaultsDB, name, class, &Stype, &val)) curr->DefaultButton = atoi(val.addr); curr = curr->next; } } static int ApplyDefaults(DefPtr, mInfo) DefaultsP DefPtr; MenuInfo *mInfo; { int i; Text *mtit = menuTitle(mInfo); if (mtit != NULL && (TextCmp(mtit, DefPtr->Name) == 0)) { DefPtr->mInfo = mInfo; if (DefPtr->DefaultButton < mInfo->menu->buttonCount) { mInfo->menu->buttonDefault = DefPtr->DefaultButton; } return 1; } else { for (i = 0; i < mInfo->menu->buttonCount; i++) { Button *pb = mInfo->buttons[i].button; if (pb == NULL) /*button is not visible; it has no entry*/ continue; if (pb->has_submenu) { if (strcmp(pb->label[pb->which], DefPtr->Name) == 0) { DefPtr->mInfo = mInfo->buttons[i].subMenu; if (DefPtr->DefaultButton < mInfo->buttons[i].subMenu->menu->buttonCount) mInfo->buttons[i].subMenu->menu->buttonDefault = DefPtr->DefaultButton; return 1; } } } return 0; } } /* * ApplyMenuDefaults - * read $HOME/.olwmrc or the file specified in OLWMRC env variable. * This file has entries in Xrm format. DefaultsPtr points to a list of node, * where each node contains the name of a button to which a menu corresponds * and a buttonIndex in the menu which should be the default button for that * menu. When ApplyMenuDefaults() is called, the buttonIndex field is 0, and * the name field contains all buttons which have a menu associated with them * These include Window Menu and the WorkSpace Menu. */ void ApplyMenuDefaults(dpy, menuCache) Display *dpy; MenuCache *menuCache; { XrmDatabase defaultsDB; MenuInfo *mInfo; DefaultsP curr; int i; defaultsDB = CreateDB(); if (defaultsDB == NULL) return; FillDefaultsList(defaultsDB, DefaultsPtr); for (curr = DefaultsPtr; curr; curr = curr->next) { for (i = 0; i < menuCache->nextSlot; i++) { mInfo = menuCache->menuInfoList[i]; if (ApplyDefaults(curr, mInfo)) break; } } } /* * Save defaults for next invocation of wm. Should be called from cleanup() * functions when exiting wm. */ SaveMenuDefaults() { char *path; char filename[80]; FILE *fd; extern char *getenv(); DefaultsP curr, temp; char name[80], class[80]; /* open a file for writing, overwriting existing file */ if ((path = getenv("OLWMRC")) != NULL) { if ((fd = fopen(path, "w")) == NULL) { printf("Cannot create %s\n", path); return; } } else { path = getenv("HOME"); strcpy(filename, path ? path : ""); strcat(filename, "/.olwmrc"); if ((fd = fopen(filename, "w")) == NULL) { printf("Cannot create %s\n", path); return; } } curr = DefaultsPtr; while (curr) { makeRMName_class(name, class, curr->Name); temp = curr; curr = curr->next; free(temp); } } #endif /* notdef */ /* ***************************************************************************** * REMIND: end of unused menu defaulting code. ***************************************************************************** */ /* * whether the menu has a title or not is dependant on * if it's pinned */ static Text * menuTitle(mInfo) MenuInfo *mInfo; { if (mInfo->origmenuInfo != NULL) return NULL; return mInfo->menu->title; } /* * SOMETIMES, it is desirable to know when the menu * has changed the tracking mode (from click to selecto to drag to * select (or rather, vice versa) * so that buttons can busify themselves. * so ShowStandardMenuSync() will use these to that * effect */ void (*clickProc)(); void *clickData; void SetClickMode(flclick) Bool flclick; { menuTrackMode = flclick? MODE_CLICK : MODE_DRAG; if (clickProc) (*clickProc)(menuTrackMode, clickData); } void SetClickCallback(proc, data) void (*proc)(); void *data; { clickProc = proc; clickData = data; } /* * this is used when someone has a pushpin set as the default; * we bring that menu's clone to the top rather than making * another menu */ static void _bringPinnedMenuToTop(cli, mInfo) Client *cli; MenuInfo *mInfo; { WinPinMenu *winPinMenu; if (cli->screen == mInfo->menuWin->core.client->screen) { /*quick check to see if we're in the neighborhood*/ winPinMenu = (WinPinMenu *) cli->framewin->fcore.panewin; if (winPinMenu->menuInfo->menu == mInfo->menu) ClientFront(cli); } } /* * ExecButtonAction * * Given a menu and a button, find the button's action (by searching down the * menu tree following defaults, if necessary) and execute it. */ void ExecButtonAction(dpy, winInfo, menuInfo, btn) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int btn; { Menu *menu = menuInfo->menu; if (btn > menu->buttonCount) return; /* search down the menu tree for defaults */ while (btn != NOBUTTON) { if (btn == PINBUTTON) { /* pin the menu if we're allowed */ if (isEnabled(menuInfo, PINBUTTON)) { (void) MakePinMenu(dpy, winInfo, menuInfo); } else { /* * That menu is already pinned somewhere; bring * it to the front. */ VisitPinnedMenuClients(_bringPinnedMenuToTop, menuInfo); } break; } else if (menu->buttons[btn]->has_submenu) { menu = menu->buttons[btn]->action.submenu; btn = menu->buttonDefault; menuInfo = findMenuInfo(winInfo, menu); } else { /* this is a leaf button */ break; } } /* if not the same menu then find its corresponding menuinfo */ if (menuInfo->menu != menu) { if ((menuInfo = findMenuInfo(winInfo, menu)) == NULL) return; } if (isEnabled(menuInfo,btn)) (*menu->buttons[btn]->callback) (dpy, winInfo, menuInfo, btn); } static void drawMenuPushpin(dpy, menuInfo) Display *dpy; MenuInfo *menuInfo; { WinGeneric *winInfo = menuInfo->menuWin; Window win = winInfo->core.self; Menu *menu = menuInfo->menu; GC windowGC = WinGC(winInfo, WINDOW_GC); Graphics_info *gisNormal = WinGI(winInfo, NORMAL_GINFO); if (menu->hasPushPin) { int flags; /* * If the menu is already displayed, draw the pushpin grayed out to * indicate that it can't be pinned again. * * REMIND we have to manually erase the pushpin because OLGX is * broken when it comes to erasing pushpins. */ XFillRectangle(dpy, win, windowGC, menuInfo->pushPinX, menuInfo->pushPinY, PushPinOut_Width(gisNormal), PUSHPINHEIGHT(gisNormal)); if (menuInfo->pinnedBrother != NULL) flags = OLGX_PUSHPIN_OUT | OLGX_INACTIVE; else if (menuInfo->ringedButton == PINBUTTON) flags = OLGX_PUSHPIN_OUT | OLGX_DEFAULT; else flags = OLGX_PUSHPIN_OUT; olgx_draw_pushpin(gisNormal, win, menuInfo->pushPinX, menuInfo->pushPinY, flags); } } /* * this only draws the menu buttons that need have their * icky flag set */ void DrawMenuWithHints(dpy, mInfo) Display *dpy; MenuInfo *mInfo; { Menu *menu = mInfo->menu; int bindex; /* Draw the buttons. */ for (bindex = 0; bindex < menu->buttonCount; bindex++) { ButtonInfo *bi = &mInfo->buttons[bindex]; if (! bi->flDirty) continue; bi->flDirty = False; if (! bi->button->visible || bi->button->label[bi->button->which] == NULL) continue; drawButton(dpy, mInfo, bindex, (bindex == menu->buttonDefault)); } } void SetMenuRedrawHints(dpy, ee, mInfo) Display *dpy; XExposeEvent *ee; MenuInfo *mInfo; { Menu *menu = mInfo->menu; int bindex; static Region region = NULL; MakeExposeDamage(®ion, ee); /* Draw the buttons. */ for (bindex = 0; bindex < menu->buttonCount; bindex++) { ButtonInfo *bi = &mInfo->buttons[bindex]; if (bi->flDirty) continue; if (XRectInRegion(region, bi->buttonX, bi->buttonY, mInfo->maxbuttonWidth, bi->buttonHeight + HEAD_VSPACE)) bi->flDirty = True; } } /* * Draw menu contents into menu->window. */ void DrawMenu(dpy, mInfo) Display *dpy; MenuInfo *mInfo; { WinGeneric *winInfo = mInfo->menuWin; Window win = winInfo->core.self; Menu *menu = mInfo->menu; GC windowGC = WinGC(winInfo, WINDOW_GC); Graphics_info *gisNormal = WinGI(winInfo, NORMAL_GINFO); int bindex; Text *mtit; /* Draw the basic menu background if this menu isn't pinned */ if (mInfo->origmenuInfo != NULL || !winInfo->core.client->scrInfo->use3D) { XFillRectangle(dpy, win, windowGC, 0, 0, mInfo->menuWidth, mInfo->menuHeight); } if (mInfo->origmenuInfo == NULL) { olgx_draw_box(gisNormal, win, 0, 0, mInfo->menuWidth, mInfo->menuHeight, OLGX_NORMAL, True); } /* Draw the menu title. */ if ((mtit = menuTitle(mInfo)) != NULL) { drawMenuPushpin(dpy, mInfo); olgx_draw_text(gisNormal, win, mtit, mInfo->titleX, mInfo->titleY, 0, OLGX_NORMAL | TextOLGX); #ifdef OW_I18N_L4 if (GRV.BoldFontEmulation == True) olgx_draw_text(gisNormal, win, mtit, mInfo->titleX + 1, mInfo->titleY, 0, OLGX_NORMAL | TextOLGX); #endif olgx_draw_text_ledge(gisNormal, win, BUTT_HSPACE, mInfo->titleHeight - 6, mInfo->menuWidth - (BUTT_HSPACE * 2)); } /* Draw the buttons. */ for (bindex = 0; bindex < menu->buttonCount; bindex++) { ButtonInfo *bi = &mInfo->buttons[bindex]; bi->flDirty = False; if (bi->button == NULL || ! bi->button->visible || bi->button->label[bi->button->which] == NULL) continue; drawButton(dpy, mInfo, bindex, bindex == menu->buttonDefault); } } /* * SetButton: when you want to talk about the default ring, * use flsetdefault=true */ void SetButton(dpy, menuInfo, idx, highlight, flsetdefault) Display *dpy; MenuInfo *menuInfo; int idx; Bool highlight; Bool flsetdefault; { /* * If flsetdefault is on, draw the button with default ring if it is to * be high-lighted. */ Bool flenabled = isEnabled(menuInfo, idx); if (idx < NOBUTTON) return; if (flsetdefault) { if (highlight) { if (idx != menuInfo->ringedButton) { if (menuInfo->ringedButton > NOBUTTON) drawButton(dpy, menuInfo, menuInfo->ringedButton, False); if (idx > NOBUTTON && flenabled) { drawButton(dpy, menuInfo, idx, True); menuInfo->ringedButton = idx; } } } else { if (idx == menuInfo->ringedButton) { if (idx > NOBUTTON) drawButton(dpy, menuInfo, idx, False); menuInfo->ringedButton = NOBUTTON; } } } else { if (highlight) { if (menuInfo->ringedButton == idx) { if (idx > NOBUTTON) drawButton(dpy, menuInfo, idx, False); menuInfo->ringedButton = NOBUTTON; } if (idx > NOBUTTON) drawRevButton(dpy, menuInfo, idx); } else if (idx > NOBUTTON) drawButton(dpy, menuInfo, idx, False); } } Bool StartMenuGrabs(dpy, winInfo) Display *dpy; WinGeneric *winInfo; { int grabstat; /* * Grab the server to prevent anybody from sullying the underlying windows * when the menu window is mapped, but only if we're allowed. */ grabstat = XGrabPointer(dpy, WinRootID(winInfo), True, ButtonReleaseMask | ButtonMotionMask | ButtonPressMask, GrabModeAsync, GrabModeAsync, None, GRV.MenuPointer, CurrentTime); if (grabstat != GrabSuccess) { ErrorWarning(GetString("failed to grab pointer")); /*don't worry about sync function*/ return False; } /* needed for previewing */ grabstat = XGrabKeyboard(dpy, WinRootID(winInfo), False, GrabModeAsync, GrabModeAsync, CurrentTime); if (grabstat != GrabSuccess) ErrorWarning(GetString("failed to grab keyboard")); if (GRV.ServerGrabs) XGrabServer(dpy); InstallInterposer(MenuTrack, winInfo); return True; } /* * MenuShow * MenuShowSync * * These functions are the main entry points into the menu tracking system. * MenuShow() grabs everything, sets up the event interposer, and returns. * * REMIND * MenuShowSync() sets up an additional callback that is called after the menu * action is completed. This is necessary for the present implementation of * pinned menus, which need to have work done after the menu goes down, in * addition to the menu button action. This interface should probably go away * once pinned menus are rearchitected. * * flbutton means that it came from a window menu button; so it should be placed * below that button. * flkbd means that it was a mouselessly invoked menu; it needs to be placed just * to the right of the button (if any) */ void MenuMakeFirst(mInfo, sfunc, sinfo) MenuInfo *mInfo; void (*sfunc)(); void *sinfo; { memset((char *) menuInfoTable, 0, sizeof(MenuInfo *) * MAX_ACTIVE_MENUS); topMenu = 0; menuInfoTable[topMenu++] = mInfo; syncFunc = sfunc; syncInfo = sinfo; } void MenuShowSync(dpy, winInfo, menu, pevent, sfunc, sinfo, flkbd, flbutton) Display *dpy; WinGeneric *winInfo; Menu *menu; XEvent *pevent; void (*sfunc) (); void *sinfo; Bool flkbd; Bool flbutton; { MenuInfo *menuInfo; MenuCache *menuCache = winInfo->core.client->scrInfo->menuCache; Graphics_info *gisButton = WinGI(winInfo, BUTTON_GINFO); int x, y; if (! StartMenuGrabs(dpy, winInfo)) return; if (menu->menudirty) { /*some attribute of the menu has changed; recalc it's size, and button layoyt*/ menu->menudirty = False; recalcCachedMenu(winInfo, menu); } menuInfo = findMenuInfo(winInfo, menu); if (menuInfo == NULL) return; MenuMakeFirst(menuInfo, sfunc, sinfo); menuInfo->menuWin = (WinGeneric *) menuCache->menuWinList[0]; if (prevColorFocusWindow == NULL && ColorFocusLocked(menuInfo->menuWin)) prevColorFocusWindow = ColorFocusWindow(menuInfo->menuWin); InstallColormap(dpy, menuInfo->menuWin->core.client->scrInfo->rootwin); switch (pevent->type) { case ButtonPress: case ButtonRelease: lastX = minX = pevent->xbutton.x_root; if (flbutton) { WinGeneric *deco = ((WinPaneFrame *) winInfo)->winDeco; x = winInfo->core.x; y = winInfo->core.y; if (deco != NULL) { /*should always be the case*/ x += deco->core.x; y += deco->core.y + deco->core.height + HEAD_VSPACE; } } else { x = pevent->xbutton.x_root - MENU_HORIZ_OFFSET; y = pevent->xbutton.y_root - (Button_Height(gisButton) + BUTT_VSPACE) / 2; } flDoSetDefault = (pevent->xbutton.state & ModMaskMap[MOD_SETDEFAULT]); break; case KeyPress: case KeyRelease: if (flkbd) { if (CurrentClient->wmState == IconicState) { x = CurrentClient->iconwin->core.x + (CurrentClient->iconwin->core.width) / 2; y = CurrentClient->iconwin->core.y + (CurrentClient->iconwin->core.height) / 2; } else { WinGeneric *deco = ((WinPaneFrame *) winInfo)->winDeco; x = winInfo->core.x; y = winInfo->core.y; if (deco != NULL) { x += deco->core.x + deco->core.width; y += deco->core.y; } } } else { lastX = minX = pevent->xkey.x_root; x = pevent->xkey.x_root - MENU_HORIZ_OFFSET; y = pevent->xkey.y_root - (Button_Height(gisButton) + BUTT_VSPACE) / 2; } flDoSetDefault = (FindModifierMask(pevent->xkey.keycode) == ModMaskMap[MOD_SETDEFAULT]); break; default: return; } /* Install the first menu */ menuTrackMode = MODE_CLICK; lastPress = *pevent; showMenu(dpy, menuInfo, x, y, ! flbutton); } /* * MenuShow */ void MenuShow(dpy, winInfo, menu, pevent) Display *dpy; WinGeneric *winInfo; Menu *menu; XEvent *pevent; { MenuShowSync(dpy, winInfo, menu, pevent, NULL, NULL, False, False); } /* * PointInRect -- check if a point is inside a rectangle */ int PointInRect(x, y, rx, ry, rw, rh) int x, y, rx, ry, rw, rh; { return (x >= rx && x < rx + rw) && (y >= ry && y < ry + rh); } /* * =========================================================================== */ /* * Local routines */ /* * findMaxDepth - returns max depth of all menuinfo's in a cache */ static int findMaxDepth(menuCache) MenuCache *menuCache; { MenuInfo *menuInfo; int i, depth; int nextSlot = menuCache->nextSlot; depth = 0; for (i = 0; i < nextSlot; i++) { menuInfo = menuCache->menuInfoList[i]; depth = MAX(depth, menuInfo->depth); } return depth; } /* * menuInfoCreate -- Create the MenuInfo structure for this menu. * This is mainly sizing information that is screen specific. * This will traverse the entire menu/button/submenu tree * and created all needed structures. */ MenuInfo * MenuInfoCreate(menuCache, winInfo, menu, depth) MenuCache *menuCache; WinGeneric *winInfo; Menu *menu; int depth; { MenuInfo *menuInfo; if (menu == NULL) return (MenuInfo *) NULL; menuInfo = MemNew(MenuInfo); menuInfo->depth = depth; /* save a pointer to the original/global menu */ menuInfo->menu = menu; /* create info each button (which creates any needed submenus */ menuInfo->buttons = buttonInfoCreate(menuCache, winInfo, menuInfo); calcmenusize(menuInfo, winInfo, menu); /* zero out the rest of the fields */ menuInfo->menuWin = (WinGeneric *) NULL; menuInfo->origmenuInfo = (MenuInfo *) NULL; menuInfo->pinnedBrother = NULL; /* insert it into the list */ if (menuCache->nextSlot == menuCache->maxSlots - 1) { menuCache->maxSlots += 10; menuCache->menuInfoList = MemRealloc(menuCache->menuInfoList, sizeof(MenuInfo) * menuCache->maxSlots); } menuCache->menuInfoList[menuCache->nextSlot++] = menuInfo; return menuInfo; } /* * Set the x,y position of the button excluding the * title height (since a pinned menu has no title). */ static void calcbuttonpositions(wi, bi, mi) WinGeneric *wi; ButtonInfo *bi; MenuInfo *mi; { Graphics_info *gisButton = WinGI(wi, BUTTON_GINFO); int i; int nextY = BUTT_VSPACE; int buttonheight = Button_Height(gisButton) + BUTT_VSPACE; for (i = 0; i < mi->menu->buttonCount; i++, bi++) { if (bi->button == NULL) continue; if (bi->subMenu != NULL) calcbuttonpositions(wi, bi->subMenu->buttons, bi->subMenu); /* set the core of the ButtonInfo */ bi->buttonX = BUTT_HSPACE + LOC_CURSOR_SIZE; bi->buttonY = nextY; /* * Move down to next button position. * If label is null, it's a separator. */ if (bi->button->label[bi->button->which] == NULL) bi->buttonHeight = buttonheight / 2; else bi->buttonHeight = buttonheight; nextY += bi->buttonHeight; } } /* * establishAccelerator * * Given a button-info and a key binding, fills in the accelerator fields of * the button-info from the key binding. */ static void establishAccelerator(bInfo, binding) ButtonInfo *bInfo; KeyBinding *binding; { extern Display *DefDpy; int m; KeySym ks; Text buf[100]; Bool modified = False; Text *modsep; Text *temp; buf[0] = (Text) NULL; modsep = GetText("-"); /* If the accelerator is a letter key, force it to upper case. */ ks = XKeycodeToKeysym(DefDpy, binding->keycode, 0); if (ks >= XK_a && ks <= XK_z) ks = ks - XK_a + XK_A; #ifdef OW_I18N_L4 bInfo->accel_key = mbstowcsdup(XKeysymToString(ks)); #else bInfo->accel_key = MemNewString(XKeysymToString(ks)); #endif /* OW_I18N_L4 */ /* run through the eight modifier bits */ for (m = 0; m < 8; ++m) { if (! (binding->modstate & (1 << m))) continue; ks = ModifierToKeysym(m); if (ks == NoSymbol) continue; if (ks == XK_Meta_L || ks == XK_Meta_R) { bInfo->has_meta_mark = True; } else { if (modified) (void) TextCat(buf, modsep); switch (ks) { case XK_Shift_L: case XK_Shift_R: temp = GetText("shift"); break; case XK_Control_L: case XK_Control_R: temp = GetText("ctrl"); break; case XK_Alt_L: case XK_Alt_R: temp = GetText("alt"); break; case XK_Super_L: case XK_Super_R: temp = GetText("super"); break; case XK_Hyper_L: case XK_Hyper_R: temp = GetText("hyper"); break; default: #ifdef OW_I18N_L4 temp = mbstowcsdup(XKeysymToString(ks)); #else temp = XKeysymToString(ks); #endif /* OW_I18N_L4 */ break; } TextCat(buf, temp); FreeText(temp); modified = True; } } bInfo->accel_modifier = MemNewText(buf); FreeText(modsep); } /* * buttonInfoCreate - Create ButtonInfo's for each button in the menu * Create any submenus found in the buttons. */ static ButtonInfo * buttonInfoCreate(menuCache, winInfo, menuInfo) MenuCache *menuCache; WinGeneric *winInfo; MenuInfo *menuInfo; { int buttonCount = menuInfo->menu->buttonCount; int bindex; ButtonInfo *buttonInfo; ButtonInfo *bInfo; KeyBinding *binding; #if 1 /* Avoid alloc'ing 0 bytes (this might confuse malloc() badly) */ buttonInfo = MemAlloc(1 + buttonCount * sizeof(ButtonInfo)); #else buttonInfo = MemAlloc(buttonCount * sizeof(ButtonInfo)); #endif /* Init each ButtonInfo for each button */ for (bindex = 0; bindex < buttonCount; bindex++) { Button *pb = menuInfo->menu->buttons[bindex]; if (pb == NULL) continue; bInfo = &buttonInfo[bindex]; /* * Erase everything; if we decide not to use this item (visible == * False) then bInfo->buttons will be NULL; this must be checked * before using! */ memset((void *) bInfo, 0, sizeof(ButtonInfo)); if (! pb->visible) continue; bInfo->button = pb; /* If this is a submenu then traverse it */ if (bInfo->button->has_submenu && bInfo->button->action.submenu) { bInfo->subMenu = MenuInfoCreate(menuCache, winInfo, bInfo->button->action.submenu, menuInfo->depth + 1); } else { bInfo->subMenu = (MenuInfo *) NULL; } binding = LookupKeyBinding(pb->semantic); if (binding != NULL) { bInfo->has_accel = True; establishAccelerator(bInfo, binding); } else { bInfo->has_accel = False; } } calcbuttonpositions(winInfo, buttonInfo, menuInfo); return buttonInfo; } static void buttonInfoDestroy(bi) ButtonInfo *bi; { if (bi->accel_modifier != NULL) MemFree(bi->accel_modifier); if (bi->accel_key != NULL) MemFree(bi->accel_key); } /* * menuInfoDestroy */ static void menuInfoDestroy(menuInfo) MenuInfo *menuInfo; { int i; if (menuInfo->buttons) { for (i = 0; i < menuInfo->menu->buttonCount; ++i) buttonInfoDestroy(&menuInfo->buttons[i]); MemFree(menuInfo->buttons); } MemFree(menuInfo); } /* * findMenuInfo */ static MenuInfo * findMenuInfo(winInfo, menu) WinGeneric *winInfo; Menu *menu; { MenuCache *menuCache; MenuInfo *new = (MenuInfo *) NULL; int i; menuCache = winInfo->core.client->scrInfo->menuCache; for (i = 0; i < menuCache->nextSlot; i++) { if (menu == menuCache->menuInfoList[i]->menu) { new = menuCache->menuInfoList[i]; break; } } if (new == NULL) return (MenuInfo *) NULL; new->childActive = False; new->pinIn = False; new->litButton = NOBUTTON; new->ringedButton = new->menu->buttonDefault; return new; } /* * buttonTextWidth * * Returns the width of a piece of a menu button's text, properly dealing with * narrow or wide characters. */ static int buttonTextWidth(t) Text *t; { return FontWidth(ButtonFont, t, TextLen(t)); } static void calcmenusize(menuInfo, winInfo, menu) MenuInfo *menuInfo; WinGeneric *winInfo; Menu *menu; { int i; int maxLabWidth = 0; /* width of longest menu label */ int maxAccelModWidth = 0; /* width of longest accel modifier */ int maxAccelKeyWidth = 0; /* width of longest accel key */ int menWidth, menHeight; /* width and height of menu */ Bool hasSubMenu = False; /* any submenus? */ int heightofbuttons = 0; /* running height */ Button *pb; /* temp pointer to button */ ButtonInfo *bi; /* temp pointer to ButtonInfo */ Graphics_info *gisButton = WinGI(winInfo, BUTTON_GINFO); Graphics_info *gisNormal = WinGI(winInfo, NORMAL_GINFO); int buttonheight = Button_Height(gisButton) + BUTT_VSPACE; menuInfo->hasAccelerators = False; /* find longest menu entry and the total height of the buttons */ for (i = 0; i < menu->buttonCount; i++) { pb = menu->buttons[i]; bi = &menuInfo->buttons[i]; if (! pb->visible) continue; if (pb->label[pb->which] == NULL) { /* it's a separator */ heightofbuttons += (buttonheight / 2); } else { maxLabWidth = MAX(maxLabWidth, buttonTextWidth(pb->label[pb->which])); heightofbuttons += buttonheight; } if (pb->has_submenu) hasSubMenu = True; if (bi->has_accel && menu->wantAccelerators) { menuInfo->hasAccelerators = True; maxAccelModWidth = MAX(maxAccelModWidth, buttonTextWidth(bi->accel_modifier)); maxAccelKeyWidth = MAX(maxAccelKeyWidth, buttonTextWidth(bi->accel_key)); } } /* Make space for the menu mark (for submenus) or for accelerators. */ if (menuInfo->hasAccelerators) { menuInfo->labelPos = MainLabel_Pos(gisButton, LOC_CURSOR_SIZE + BUTT_HSPACE); menuInfo->buttonMarkPos = ButtonMark_Pos(gisButton, menuInfo->labelPos, maxLabWidth, maxAccelModWidth); menuInfo->accKeyPos = KeyLabel_Pos(gisButton, menuInfo->buttonMarkPos); menuInfo->accModPos = QualifierLabel_Pos(gisButton, menuInfo->buttonMarkPos, maxAccelModWidth); maxLabWidth = menuInfo->accKeyPos + maxAccelKeyWidth - menuInfo->labelPos; } else if (hasSubMenu) { /* XXX assume menu mark is smaller than any accelerator */ maxLabWidth += BUTT_HSPACE + MENUMARK_SIZE; } /* add the width of the button end caps */ maxLabWidth += 2 * ButtonEndcap_Width(gisButton); /* Calculate title parameters. */ /* it's ok to check title here because we know this is a new * (not existing) menu */ if (menu->title != NULL) { menuInfo->titleWidth = FontWidth(TitleFont, menu->title, TextLen(menu->title)); /* * REMIND: the +4 is so that there be a tiny bit more space to draw * the default ring around a pushpin. It is also used in erasing the * pushpin, below. */ menuInfo->titleHeight = HEAD_VSPACE + MAX(FontHeight(TitleFont), PUSHPINHEIGHT(gisNormal)) + HEAD_VSPACE + 4; if (menu->hasPushPin) { menuInfo->titleX = BUTT_HSPACE + LOC_CURSOR_SIZE + PushPinOut_Width(gisNormal) + BUTT_HSPACE; /* * REMIND: the +3 is so that the title will match up with what the * pinned menu looks like. */ menuInfo->titleY = HEAD_VSPACE + FontAscent(TitleFont) + 3; menWidth = LOC_CURSOR_SIZE + BUTT_HSPACE + MAX(maxLabWidth, PushPinOut_Width(gisNormal) + BUTT_HSPACE + menuInfo->titleWidth) + BUTT_HSPACE + LOC_CURSOR_SIZE; } else { menWidth = LOC_CURSOR_SIZE + BUTT_HSPACE + MAX(maxLabWidth, menuInfo->titleWidth) + BUTT_HSPACE + LOC_CURSOR_SIZE; menuInfo->titleX = (menWidth / 2) - (menuInfo->titleWidth / 2); menuInfo->titleY = HEAD_VSPACE + FontAscent(TitleFont); } menuInfo->buttonOffset = menuInfo->titleHeight; } else { /* no title */ menWidth = LOC_CURSOR_SIZE + BUTT_HSPACE + maxLabWidth + BUTT_HSPACE + LOC_CURSOR_SIZE; menuInfo->titleX = 0; menuInfo->titleY = 0; menuInfo->titleWidth = 0; menuInfo->titleHeight = 0; menuInfo->buttonOffset = HEAD_VSPACE; } menuInfo->notitleOffset = HEAD_VSPACE; /* * Menu height is the sum of the buttons, the title height if any, the * space above the first button, and the space below the last button. */ menHeight = menuInfo->titleHeight + HEAD_VSPACE + heightofbuttons + HEAD_VSPACE; menuInfo->menuWidth = menWidth; menuInfo->menuHeight = menHeight; /* * Place the pushpin. Pushpin is centered vertically in case the font * height is smaller than the pushpin height. */ menuInfo->pushPinX = BUTT_HSPACE + LOC_CURSOR_SIZE; menuInfo->pushPinY = (menuInfo->titleHeight - PUSHPINHEIGHT(gisNormal)) / 2; /* all buttons have the same width, but the height can differ; * it stored in the button itself * the buttons are centered in the menu. */ menuInfo->maxbuttonWidth = menWidth - (BUTT_HSPACE + LOC_CURSOR_SIZE) * 2; } static void updateButtonInfo(wi, mi) WinGeneric *wi; MenuInfo *mi; { int i; ButtonInfo *bi; for (bi = mi->buttons, i = 0; i < mi->menu->buttonCount; i++, bi++) { if (bi->subMenu != NULL) { updateButtonInfo(wi, bi->subMenu); } else if (bi->button) { if (! mi->menu->buttons[i]->visible) bi->button = NULL; /*not visible any more*/ } else { if (mi->menu->buttons[i]->visible) bi->button = mi->menu->buttons[i]; /*now visible*/ } } calcbuttonpositions(wi, mi->buttons, mi); } static void recalcCachedMenu(win, menu) WinGeneric *win; Menu *menu; { MenuCache *menuCache; int i; menuCache = win->core.client->scrInfo->menuCache; for (i = 0; i < menuCache->nextSlot; i++) { MenuInfo *mInfo = menuCache->menuInfoList[i]; if (menu == mInfo->menu) { /* update the minfo's notion of buttons */ updateButtonInfo(win, mInfo); calcmenusize(mInfo, win, menu); break; } } } /* * Assumes that the window menus will tkae up the first MENU_NONE slots */ int DestroyWindowMenuInfo(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { int i; for (i = 0; i < (int) MENU_NONE; i++) { menuInfoDestroy(scrInfo->menuCache->menuInfoList[i]); } } /* * Assumes that Destroy called before Create. * Assumes that root menu info starts in slot MENU_ROOT in the menu cache. */ int CreateUserMenuInfo(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { int i, maxDepth; scrInfo->menuCache->nextSlot = (int) MENU_ROOT; (void) MenuInfoCreate(scrInfo->menuCache, scrInfo->rootwin, MenuTable[(int) MENU_ROOT], 1); maxDepth = findMaxDepth(scrInfo->menuCache); if (maxDepth > scrInfo->menuCache->maxDepth) { scrInfo->menuCache->menuWinList = MemRealloc(scrInfo->menuCache->menuWinList, maxDepth * sizeof(struct _winmenu *)); for (i = scrInfo->menuCache->maxDepth; i < maxDepth; i++) { scrInfo->menuCache->menuWinList[i] = MakeMenu(dpy, scrInfo->rootwin); } scrInfo->menuCache->maxDepth = maxDepth; } } /* * Assumes that root menu info starts in slot MENU_ROOT in the menu cache. */ int DestroyUserMenuInfo(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { int i; for (i = (int) MENU_ROOT; i < scrInfo->menuCache->nextSlot; i++) { menuInfoDestroy(scrInfo->menuCache->menuInfoList[i]); scrInfo->menuCache->menuInfoList[i] = 0; } } /* * showMenu */ static void showMenu(dpy, menuInfo, x, y, flusedefault) Display *dpy; MenuInfo *menuInfo; int x, y; Bool flusedefault; { int dpyWidth, dpyHeight; Menu *menu = menuInfo->menu; WinRoot *winRoot; if (flusedefault) { /* * if menu has a default, line default button with current y; otherwise * line first button of menu up with current y. */ if (menu->buttonDefault > 0) { y -= menuInfo->buttons[menu->buttonDefault].buttonY; } #ifdef REMIND_PIN_ALIGN else if (menu->buttonDefault == PINBUTTON) { /* REMIND align with pin */ } #endif /* REMIND_PIN_ALIGN */ } /* * If menu has a title move y up by titleHeight, else move up by only the * space above first button. */ if (menuTitle(menuInfo) != NULL) y -= menuInfo->titleHeight; else y -= HEAD_VSPACE; /* Make sure the menu is going to fit on the screen. */ winRoot = menuInfo->menuWin->core.client->scrInfo->rootwin; dpyWidth = winRoot->core.width; dpyHeight = winRoot->core.height; if ((x + menuInfo->menuWidth) > dpyWidth) x = dpyWidth - menuInfo->menuWidth; if ((y + menuInfo->menuHeight) > dpyHeight) y = dpyHeight - menuInfo->menuHeight; if (y < 0) y = 0; menuInfo->menuX = x; menuInfo->menuY = y; menuInfo->ignoreNextExpose = True; menuInfo->action = ACTION_MENU; MapMenuWindow(dpy, menuInfo->menuWin, menuInfo); /* * Initialize menu brought up using keyboard. Draw the location cursor and * hilight the default button */ if (lastPress.type == KeyPress && menuInfo->menu->buttonDefault != PINBUTTON) { drawRevButton(dpy, menuInfo, menuInfo->menu->buttonDefault); DrawLocCursor(dpy, menuInfo, menuInfo->menu->buttonDefault, True); menuInfo->litButton = menuInfo->menu->buttonDefault; } } struct brotherVisitInfo { Menu *menu; int newdef; }; static void _setdefault(cli, bfi) Client *cli; struct brotherVisitInfo *bfi; { WinPinMenu *pinmenu = (WinPinMenu *) cli->framewin->fcore.panewin; MenuInfo *mInfo = pinmenu->menuInfo; if (mInfo->menu->buttonDefault != bfi->newdef && mInfo->menu == bfi->menu) { /*erase old ring*/ SetButton(cli->dpy, mInfo, bfi->menu->buttonDefault, False, False); if (bfi->newdef > NOBUTTON) { /*draw new ring*/ SetButton(cli->dpy, mInfo, bfi->newdef, True, True); } } } static void setBrothersDefault(dpy, mInfo, new) Display *dpy; MenuInfo *mInfo; int new; { struct brotherVisitInfo bfi; bfi.menu = mInfo->menu; bfi.newdef = new; VisitPinnedMenuClients(_setdefault, &bfi); mInfo->menu->buttonDefault = new; SetButton(dpy, mInfo, new, True, False); #ifdef notdef UpdDefaultPtr(mInfo, bindex); #endif } static void handleMenuKeyPress(dpy, pevent) Display *dpy; XEvent *pevent; { int bindex; MenuInfo *mInfo; flDoSetDefault = (pevent->type == KeyPress); mInfo = menuInfoTable[topMenu - 1]; if (! flDoSetDefault) { if (mInfo != NULL && mInfo->litButton != NOBUTTON && isEnabled(mInfo, mInfo->litButton)) { setBrothersDefault(dpy, mInfo, mInfo->litButton); if (lastPress.type == KeyPress) DrawLocCursor(dpy, mInfo, mInfo->litButton, True); } } else { bindex = mInfo->litButton; /* If on PIN, take out push pin and show it as a default */ if (bindex == PINBUTTON) { setMenuPin(dpy, mInfo, False, flDoSetDefault); if (mInfo->ringedButton > NOBUTTON) SetButton(dpy, mInfo, mInfo->ringedButton, False, False); } else if (bindex > NOBUTTON) { if (mInfo->menu->buttonDefault < NOBUTTON) { mInfo->ringedButton = bindex; drawMenuPushpin(dpy, mInfo); } else if (mInfo->menu->buttonDefault > NOBUTTON) { SetButton(dpy, mInfo, mInfo->menu->buttonDefault, False, flDoSetDefault); } if (mInfo->litButton > NOBUTTON) { if (lastPress.type == KeyPress) DrawLocCursor(dpy, mInfo, mInfo->litButton, False); SetButton(dpy, mInfo, mInfo->litButton, False, flDoSetDefault); } SetButton(dpy, mInfo, mInfo->litButton, True, flDoSetDefault); if (lastPress.type == KeyPress) DrawLocCursor(dpy, mInfo, mInfo->litButton, True); } } } static Bool keyEventToItem(dpy, xke) Display *dpy; XKeyEvent *xke; { MenuInfo *mInfo = menuInfoTable[topMenu - 1]; Button *pb; char c; int ct; int best; int i; if (mInfo == NULL) return False; ct = XLookupString(xke, &c, sizeof(c), NULL, NULL); if (ct > 0) { best = NOBUTTON; if (isupper(c)) c = tolower(c); if (c == 'p' && isEnabled(mInfo, PINBUTTON)) best = PINBUTTON; for (i = 0; i < mInfo->menu->buttonCount; i++) { pb = mInfo->menu->buttons[i]; if (pb->enabled && pb->visible) { char t = *pb->label[pb->which]; if (isupper(t)) t = tolower(t); if (t == c) if (best == NOBUTTON || i > mInfo->litButton) { best = i; if (i > mInfo->litButton) break; } } } if (best == NOBUTTON) best = mInfo->litButton; if (BUTTON_INDEX_OK(mInfo, best)) { if (mInfo->pinIn && isEnabled(mInfo, PINBUTTON)) setMenuPin(dpy, mInfo, False, flDoSetDefault); else if (mInfo->litButton > NOBUTTON) DrawLocCursor(dpy, mInfo, mInfo->litButton, False); else if (mInfo->ringedButton != NOBUTTON) { SetButton(dpy, mInfo, mInfo->menu->buttonDefault, False, False); mInfo->ringedButton = NOBUTTON; } activateButton(dpy, mInfo, best, flDoSetDefault); DrawLocCursor(dpy, mInfo, best, True); return True; } else if (best == PINBUTTON) { DrawLocCursor(dpy, mInfo, mInfo->litButton, False); SetButton(dpy, mInfo, mInfo->litButton, False, False); setMenuPin(dpy, mInfo, True, flDoSetDefault); mInfo->litButton = PINBUTTON; return True; } } return False; } /* * replaces any occurance of any string in sstr found in buff with c */ void ReplaceChars(buff, sstr, rc) char *buff; char *sstr; char rc; { char *p; while ((p = strpbrk(buff, sstr)) != NULL) *p = rc; } static void menuHelpCommand(dpy, xke, closure) Display *dpy; XKeyEvent *xke; void *closure; { int bindex; MenuInfo *mInfo = menuSearch(xke); int status = checkMenuEvent(dpy, mInfo, xke, &bindex); char helpbuff[255]; char *helpstring; Button *pb; switch (status) { case ML_PIN: helpstring = "olwm:PushPin"; break; case ML_BUTTON: case ML_MENU: case ML_BUTTONDISABLED: if (! BUTTON_INDEX_OK(mInfo, bindex)) { helpstring = mInfo->menu->helpstring; break; } pb = mInfo->menu->buttons[bindex]; helpstring = pb->helpstring[pb->which]; if (helpstring && status == ML_BUTTONDISABLED) { sprintf(helpbuff, "%s_D", helpstring); helpstring = helpbuff; } break; default: helpstring = NULL; } if (helpstring == NULL) { if (mInfo->menu->helpstring != NULL) helpstring = mInfo->menu->helpstring; else if (mInfo->menu->title != NULL) { sprintf(helpbuff, "workspace:%s", mInfo->menu->title); ReplaceChars(helpbuff, " \t", '_'); helpstring = helpbuff; } else helpstring = "workspace:NoHelp"; } menuHide(dpy, closure, False); (void) ShowHelpWindow(mInfo->menuWin->core.client->screen, xke->x_root, xke->y_root, helpstring); #ifdef DEBUG fprintf(stderr, "help: %s\n", helpstring); #endif } Bool MenuHandleKeyEvent(dpy, pevent, win, closure) Display *dpy; XEvent *pevent; WinGeneric *win; WinGeneric *closure; { SemanticAction a; MenuInfo *mInfo; int bindex; Bool lastGood = True; Bool rval = False; if (FindModifierMask(pevent->xkey.keycode) == ModMaskMap[MOD_SETDEFAULT]) { handleMenuKeyPress(dpy, pevent); return False; } if (pevent->type == KeyRelease) return False; if (GRV.Mouseless == KbdSunView || mouselessSuspended) return False; /*mouseless not turned on*/ a = FindKeyboardAction(dpy, pevent); switch (a) { case ACTION_SELECT: case ACTION_EXEC_DEFAULT: mInfo = menuInfoTable[topMenu - 1]; bindex = NOBUTTON; if (mInfo->litButton == NOBUTTON) { bindex = mInfo->menu->buttonDefault; if (isEnabled(mInfo, bindex)) { mInfo->litButton = bindex; SetButton(dpy, mInfo, mInfo->litButton, True, False); XFlush(dpy); /*for effect...*/ } } menuHide(dpy, closure, True); break; case ACTION_UP: case ACTION_DOWN: case ACTION_RIGHT: mInfo = menuInfoTable[topMenu - 1]; if (menuHandleUpDownMotion(dpy, pevent, mInfo)) { rval = True; break; } break; case ACTION_LEFT: case ACTION_STOP: if (topMenu <= 1) { menuHide(dpy, closure, False); } else { mInfo = menuInfoTable[topMenu - 1]; UnmapMenuWindow(dpy, mInfo->menuWin); --topMenu; mInfo = menuInfoTable[topMenu - 1]; mInfo->childActive = False; DrawLocCursor(dpy, mInfo, mInfo->litButton, True); /* got rid of a submenu, there's only the pinned menu left, * and it's the one that initiated these mouseless operations, * so we want to uninstall the interposer, and ungrab the server */ if (topMenu == 1 && mInfo->menuWin->core.kind == WIN_PINMENU) { if (GRV.ServerGrabs) XUngrabServer(dpy); XUngrabPointer(dpy, CurrentTime); XUngrabKeyboard(dpy, CurrentTime); XFlush(dpy); UninstallInterposer(); } } break; case ACTION_NONE: if (! keyEventToItem(dpy, pevent)) KeyBeep(dpy, pevent); break; case ACTION_HELP: menuHelpCommand(dpy, pevent, closure); break; default: lastGood = False; } if (lastGood) lastPress = *pevent; return rval; } /* * eventX, eventY, eventTime * * Extract the xroot, yroot, or timestamp fields from an event, assuming it's * a MotionNotify, ButtonPress, or ButtonRelease. */ #define eventX(e) ((e)->type == MotionNotify ? (e)->xmotion.x_root \ : (e)->xbutton.x_root ) #define eventY(e) ((e)->type == MotionNotify ? (e)->xmotion.y_root \ : (e)->xbutton.y_root ) #define eventTime(e) ((e)->type == MotionNotify ? (e)->xmotion.time \ : (e)->xbutton.time ) /* * menuTracker * Event interposer for menu tracking. */ /*ARGSUSED*/ int MenuTrack(dpy, pevent, win, closure) Display *dpy; XEvent *pevent; WinGeneric *win; WinGeneric *closure; { MenuInfo *mInfo = menuInfoTable[topMenu - 1]; XEvent nextevent; switch (pevent->type) { case KeyRelease: case KeyPress: (void) MenuHandleKeyEvent(dpy, pevent, win, closure); break; case ButtonPress: if (lastPress.type == KeyPress) { if (isEnabled(mInfo, PINBUTTON)) setMenuPin(dpy, mInfo, False, False); if (isEnabled(mInfo, mInfo->litButton)) { DrawLocCursor(dpy, mInfo, mInfo->litButton, False); /* force redraw of that item */ if (mInfo->litButton == mInfo->ringedButton) mInfo->ringedButton = NOBUTTON; SetButton(dpy, mInfo, mInfo->litButton, True, flDoSetDefault); } } lastPress = *pevent; if (menuHandlePress(dpy, pevent)) menuHide(dpy, closure, False); break; case ButtonRelease: if (!AllButtonsUp(pevent)) break; /* * if the control key is down, then don't * allow anything to execute, but make sure * that the default item is set for the top menu * REMIND: should maybe we be wanting to do that * thing with showing the defaults for all previous menus? * if so, then shouldn't SetBrothersDefault set the parents * defaults as well? No, probably not, but still, we might * want to set the parents defaults somehow on an * {key,button}up */ if (menuHandleRelease(dpy, pevent)) { if (flDoSetDefault && BUTTON_INDEX_OK(mInfo, mInfo->litButton) && isEnabled(mInfo, mInfo->litButton)) setBrothersDefault(dpy, mInfo, mInfo->litButton); menuHide(dpy, closure, ! flDoSetDefault); } lastPress = *pevent; /*need to resync it*/ break; case MotionNotify: if (!pevent->xmotion.same_screen) break; /* * Motion compression. If the next event is a MotionNotify, * ignore this one. */ if (XEventsQueued(dpy, QueuedAfterReading) > 0 && (XPeekEvent(dpy, &nextevent), nextevent.type == MotionNotify)) break; menuHandleMotion(dpy, pevent); break; case Expose: mInfo = menuSearch(pevent); if (mInfo == NULL) return DISPOSE_DISPATCH; if (mInfo->ignoreNextExpose) mInfo->ignoreNextExpose = False; else { DrawMenu(dpy, mInfo); if (mInfo->litButton != NOBUTTON) SetButton(dpy, mInfo, mInfo->litButton, True, flDoSetDefault); if (mInfo->pinIn) { /* * REMIND This is a trifle odd. We have to set pinIn to False * because setMenuPin does nothing if pinIn already equals the * value we're setting it to. The alternative is to code a * call to olgx_draw_pushpin here, which is worse. */ mInfo->pinIn = False; setMenuPin(dpy, mInfo, True, flDoSetDefault); } } break; default: return DISPOSE_DEFER; } /* for pointer events, save the event location */ switch (pevent->type) { case MotionNotify: if (! pevent->xmotion.same_screen) break; /*fallthrough*/ case ButtonPress: case ButtonRelease: lastX = eventX(pevent); lastY = eventY(pevent); break; default: break; } return DISPOSE_USED; } SemanticAction MenuMouseAction(dpy, pevent, mask) Display *dpy; XEvent *pevent; long mask; { SemanticAction a; a = ResolveMouseBinding(dpy, pevent, mask); if (GRV.SelectDisplaysMenu && a == ACTION_SELECT) a = ACTION_MENU; return a; } static void getMenuDim(mInfo, prect) MenuInfo *mInfo; XRectangle *prect; { WinGeneric *win; if (mInfo->menuWin->core.kind == WIN_MENU) win = mInfo->menuWin; else win = mInfo->menuWin->core.parent; prect->x = win->core.x; prect->y = win->core.y; if (mInfo->menuWin->core.kind != WIN_MENU) { int xoff = mInfo->menuWin->core.x; int yoff = mInfo->menuWin->core.y; prect->x += xoff; prect->y += yoff; prect->width = mInfo->menuWin->core.width; prect->height = mInfo->menuWin->core.height; } else { prect->width = win->core.width; prect->height = win->core.height; } } static Bool inMenuDent(mInfo, bindex, pevent) MenuInfo *mInfo; int bindex; XEvent *pevent; { int curX; Graphics_info *gisNormal; Graphics_info *gisButton; XRectangle menuDim; if (BUTTON_INDEX_OK(mInfo, bindex)) { switch (pevent->type) { case MotionNotify: if (pevent->xmotion.same_screen) { curX = pevent->xmotion.x_root; } break; case ButtonPress: case ButtonRelease: curX = pevent->xbutton.x_root; break; default: return False; } gisNormal = WinGI(mInfo->menuWin, NORMAL_GINFO); gisButton = WinGI(mInfo->menuWin, BUTTON_GINFO); getMenuDim(mInfo, &menuDim); if (curX > menuDim.x + mInfo->buttons[bindex].buttonX + mInfo->maxbuttonWidth - ButtonEndcap_Width(gisButton) - MenuMark_Width(gisNormal)) { return True; } } return False; } static Bool menuHandlePress(dpy, pevent) Display *dpy; XEvent *pevent; { int bindex; int status; MenuInfo *mInfo; flDoSetDefault = (pevent->xbutton.state & ModMaskMap[MOD_SETDEFAULT]); mInfo = menuSearch(pevent); status = checkMenuEvent(dpy, mInfo, pevent, &bindex); mInfo->action = MenuMouseAction(dpy, pevent, ModMaskMap[MOD_SETDEFAULT]); if (mInfo->action != ACTION_SELECT && mInfo->action != ACTION_MENU) return False; if (isClick(&lastPress, pevent)) SetClickMode(True); switch (status) { case ML_OFFMENU: return True; case ML_PIN: unmapChildren(dpy, mInfo); setMenuPin(dpy, mInfo, True, flDoSetDefault); break; case ML_BUTTON: case ML_BUTTONDISABLED: /*remove the default ring */ if (! flDoSetDefault) { if (mInfo->ringedButton != NOBUTTON) { SetButton(dpy, mInfo, mInfo->menu->buttonDefault, False, False); mInfo->ringedButton = NOBUTTON; } } unmapChildren(dpy, mInfo); minX = eventX(pevent); if (status == ML_BUTTONDISABLED) break; /*don't do anything else*/ /*FALL THROUGH*/ default: if (isEnabled(mInfo, mInfo->litButton)) { DrawLocCursor(dpy, mInfo, mInfo->litButton, False); /* force redraw of that item */ if (mInfo->litButton == mInfo->ringedButton) mInfo->ringedButton = NOBUTTON; SetButton(dpy, mInfo, mInfo->litButton, True, flDoSetDefault); } activateButton(dpy, mInfo, bindex, flDoSetDefault); if (mInfo->action == ACTION_MENU || inMenuDent(mInfo, bindex, pevent)) activateSubMenu(dpy, mInfo, bindex, pevent->xbutton.x_root); break; } return False; } static void menuHandleMotion(dpy, pevent) Display *dpy; XEvent *pevent; { XRectangle menuDim; int status; int bindex; int curX; int deltaX; Bool samebutton; int i; Graphics_info *gisNormal; Graphics_info *gisButton; MenuInfo *mInfo; int menuX; mInfo = menuSearch(pevent); if (mInfo == NULL) return; gisNormal = WinGI(mInfo->menuWin, NORMAL_GINFO); gisButton = WinGI(mInfo->menuWin, BUTTON_GINFO); status = checkMenuEvent(dpy, mInfo, pevent, &bindex); if (mInfo->action != ACTION_SELECT && mInfo->action != ACTION_MENU) return; if (lastPress.type == KeyPress && ! flDoSetDefault) { if (isEnabled(mInfo, mInfo->litButton)) { DrawLocCursor(dpy, mInfo, mInfo->litButton, False); drawRevButton(dpy, mInfo, mInfo->litButton); } } if (! isClick(&lastPress, pevent)) SetClickMode(False); /*for window buttons*/ /* * If the push pin was in before and this event is not a ML_PIN event, put * the pin back out because we are no longer in the pin area. */ if (isEnabled(mInfo, PINBUTTON)) if ((mInfo->pinIn) && (status != ML_PIN)) setMenuPin(dpy, mInfo, False, flDoSetDefault); /* * I know this is a kludge, but i need it. I want to remove the ring around * the default item at this point. */ if ((!flDoSetDefault && (status == ML_BUTTON)) || (status == ML_PIN)) { if (mInfo->ringedButton != NOBUTTON) { SetButton(dpy, mInfo, mInfo->menu->buttonDefault, False, False); mInfo->ringedButton = NOBUTTON; } } switch (status) { case ML_BUTTONDISABLED: #if false activateButton(dpy, mInfo, NOBUTTON, flDoSetDefault); break; #endif case ML_BUTTON: samebutton = (bindex == mInfo->litButton); if (mInfo->childActive && ! samebutton) { unmapChildren(dpy, mInfo); if (mInfo->litButton > NOBUTTON && flDoSetDefault) SetButton(dpy, mInfo, mInfo->litButton, False, False); } curX = pevent->xmotion.x_root; activateButton(dpy, mInfo, bindex, flDoSetDefault); getMenuDim(mInfo, &menuDim); menuX = menuDim.x; if (BUTTON_INDEX_OK(mInfo, bindex)) if (mInfo->menu->buttons[bindex]->has_submenu) { if (samebutton) { deltaX = curX - minX; minX = MIN(curX, minX); } else { deltaX = curX - MAX(lastX, menuX); minX = MIN(curX, lastX); } if ((deltaX > GRV.DragRightDistance) || (curX > (menuX + mInfo->buttons[bindex].buttonX + mInfo->maxbuttonWidth - ButtonEndcap_Width(gisButton) - MenuMark_Width(gisNormal)))) { (void) activateSubMenu(dpy, mInfo, bindex, pevent->xmotion.x_root); minX = curX; } } break; case ML_PIN: setMenuPin(dpy, mInfo, True, flDoSetDefault); if (mInfo->childActive) { unmapChildren(dpy, mInfo); if (mInfo->litButton > NOBUTTON && flDoSetDefault) SetButton(dpy, mInfo, mInfo->litButton, False, False); } activateButton(dpy, mInfo, PINBUTTON, flDoSetDefault); break; case ML_MENU: case ML_OFFMENU: if (mInfo->childActive) unmapChildren(dpy, mInfo); activateButton(dpy, mInfo, NOBUTTON, flDoSetDefault); break; } /* End switch */ /* * Pull down all menus to the right of the current mouse position, except * for the initial menu. */ i = topMenu - 1; while (i > 0) { XRectangle menuDim; getMenuDim(menuInfoTable[i], &menuDim); if (menuDim.x < pevent->xmotion.x_root) break; --i; } if (i < topMenu - 1) { mInfo = menuInfoTable[i]; unmapChildren(dpy, mInfo); topMenu = i + 1; status = checkMenuEvent(dpy, mInfo, pevent, &bindex); if (status != ML_BUTTON) { activateButton(dpy, mInfo, NOBUTTON, flDoSetDefault); } else { /*right now, nothing should be depressed */ activateButton(dpy, mInfo, bindex, flDoSetDefault); } } } static Bool isEnabled(mInfo, item) MenuInfo *mInfo; int item; { Button *pb; if (item > NOBUTTON) { pb = mInfo->menu->buttons[item]; return BUTTON_INDEX_OK(mInfo, item) && pb->enabled && pb->visible; } if (item == PINBUTTON) { return ( mInfo->menu->hasPushPin && mInfo->pinnedBrother == NULL && mInfo->origmenuInfo == NULL); } return False; } static Bool alldisabled(mInfo) MenuInfo *mInfo; { Bool good; int i; good = isEnabled(mInfo, PINBUTTON); for (i = 0; i < mInfo->menu->buttonCount && ! good; i++) good = isEnabled(mInfo, i); return ! good; } /* * {next,prev}Item are slightly recursive; they rely on themselves to do * the right thing */ static int nextItem(mInfo, item) MenuInfo *mInfo; int item; { if (alldisabled(mInfo)) return item; item++; if (item == NOBUTTON) /*came off of pushpin*/ item = 0; if (item == mInfo->menu->buttonCount) item = PINBUTTON; if (isEnabled(mInfo, item)) return item; return nextItem(mInfo, item); } static int prevItem(mInfo, item) MenuInfo *mInfo; int item; { if (alldisabled(mInfo)) return item; item--; if (item == NOBUTTON) item = PINBUTTON; if (item < PINBUTTON) item = mInfo->menu->buttonCount - 1; if (isEnabled(mInfo, item)) return item; return prevItem(mInfo, item); } static Bool menuHandleUpDownMotion(dpy, pevent, mInfo) Display *dpy; XEvent *pevent; MenuInfo *mInfo; { int status; int bindex; static int (*bumpIndex[])() = {prevItem, nextItem}; if (mInfo == NULL) return False; status = FindKeyboardAction(dpy, pevent); if (mInfo->litButton == NOBUTTON) mInfo->litButton = mInfo->menu->buttonDefault; if (status == ACTION_NONE) return False; /* * If the push pin was in before put the pin back out because we are no * longer in the pin area. */ if (mInfo->pinIn && isEnabled(mInfo, PINBUTTON)) setMenuPin(dpy, mInfo, False, flDoSetDefault); switch (status) { case ACTION_UP: case ACTION_DOWN: assert(ACTION_UP == ACTION_DOWN - 1); bindex = (*bumpIndex[status - ACTION_UP])(mInfo, mInfo->litButton); if (bindex != mInfo->litButton) { assert(isEnabled(mInfo, bindex)); DrawLocCursor(dpy, mInfo, mInfo->litButton, False); /* One kludge leads to another */ if (mInfo->ringedButton != NOBUTTON) { SetButton(dpy, mInfo, mInfo->menu->buttonDefault, 0, 0); mInfo->ringedButton = NOBUTTON; } if (mInfo->childActive) unmapChildren(dpy, mInfo); if (bindex != PINBUTTON) activateButton(dpy, mInfo, bindex, flDoSetDefault); else { setMenuPin(dpy, mInfo, True, flDoSetDefault); activateButton(dpy, mInfo, PINBUTTON, flDoSetDefault); } DrawLocCursor(dpy, mInfo, bindex, True); } break; case ACTION_RIGHT: bindex = mInfo->litButton; if (BUTTON_INDEX_OK(mInfo, bindex) && mInfo->menu->buttons[bindex]->has_submenu == 1) { int menuat; DrawLocCursor(dpy, mInfo, bindex, False); drawRevButton(dpy, mInfo, bindex); if (mInfo->menuWin->core.kind == WIN_MENU) menuat = mInfo->menuX + mInfo->menuWidth; else { WinGenericFrame *parent = (WinGenericFrame *) mInfo->menuWin->core.parent; assert(parent); menuat = parent->core.x + parent->core.width - LOC_CURSOR_SIZE; } activateSubMenu(dpy, mInfo, bindex, menuat); return True; } break; } /* End switch */ return False; } /* * menuHandleRelease * * Handles ButtonRelease events. Return value indicates whether the menu * stack should taken down. */ static Bool menuHandleRelease(dpy, pevent) Display *dpy; XEvent *pevent; { int bindex; int status; MenuInfo *mInfo; Bool setClick = False; mInfo = menuSearch(pevent); if (menuTrackMode == MODE_DRAG) { return True; } else { if (isClick(&lastPress, pevent)) { SetClickMode(True); /*for window buttons*/ setClick = True; } switch (mInfo->action) { case ACTION_SELECT: return True; /*always return true on SELECT*/ case ACTION_MENU: status = checkMenuEvent(dpy, mInfo, pevent, &bindex); switch (status) { case ML_PIN: return True; case ML_BUTTONDISABLED: return True; case ML_BUTTON: if (mInfo->litButton != NOBUTTON) return True; /*fall through*/ default: return ! setClick; } /*switch(status)*/ default: return False; } } } /* * menuSearch * * Given an event, search the stack of active menus for the menu on which this * event occurred. The event must be a ButtonPress, ButtonRelease, * MotionNotify, or Expose event. If the event didn't occur on any of the * menus, for the pointer events, the topmost menu in the stack is returned. * Otherwise, zero is returned. */ static MenuInfo * menuSearch(event) XEvent *event; { Window w = 0; int i; switch (event->type) { case KeyPress: case KeyRelease: w = event->xkey.subwindow; break; case ButtonPress: case ButtonRelease: w = event->xbutton.subwindow; if (w == None) w = event->xbutton.window; break; case MotionNotify: if (event->xmotion.same_screen) { w = event->xmotion.subwindow; if (w == None) w = event->xbutton.window; } break; case Expose: w = event->xexpose.window; break; default: fputs( GetString("olwm: wrong event type passed to menuSearch\n"), stderr); return (MenuInfo *) 0; } for (i = topMenu - 1; i >= 0; --i) { if (w == menuInfoTable[i]->menuWin->core.self) return menuInfoTable[i]; } return (event->type == Expose) ? (MenuInfo *) 0 : menuInfoTable[topMenu - 1]; } /* * checkMenuEvent * * Check a button or motion event against a menu. Sets the index of the * active button (or to NOBUTTON) and returns the pointer location: * ML_BUTTON, ML_PIN, ML_MENU, or ML_OFFMENU. */ static MenuLocation checkMenuEvent(dpy, menuInfo, pevent, bindex) Display *dpy; MenuInfo *menuInfo; XEvent *pevent; int *bindex; { int i; int yoff = 0; Window hitwindow = 0; int ex, ey; Graphics_info *gisNormal = WinGI(menuInfo->menuWin, NORMAL_GINFO); int rx, ry; XRectangle menuDim; /* menu->title == NULL for pinned menus, as well as title-less ones */ if (menuTitle(menuInfo) != NULL) yoff = menuInfo->titleHeight; else yoff = HEAD_VSPACE; switch (pevent->type) { case MotionNotify: if (pevent->xmotion.same_screen) { hitwindow = pevent->xmotion.window; ex = pevent->xmotion.x; ey = pevent->xmotion.y; rx = pevent->xmotion.x_root; ry = pevent->xmotion.y_root; } break; case ButtonPress: case ButtonRelease: hitwindow = pevent->xbutton.window; ex = pevent->xbutton.x; ey = pevent->xbutton.y; rx = pevent->xbutton.x_root; ry = pevent->xbutton.y_root; break; case KeyPress: case KeyRelease: hitwindow = menuInfo->menuWin->core.self; ex = pevent->xkey.x_root - menuInfo->menuX; ey = pevent->xkey.y_root - menuInfo->menuY; rx = pevent->xkey.x_root; ry = pevent->xkey.y_root; break; } /* If the event window is not the menu window. */ if (hitwindow != menuInfo->menuWin->core.self) { if (hitwindow != None) { XTranslateCoordinates(dpy, hitwindow, menuInfo->menuWin->core.self, ex, ey, &ex, &ey, &hitwindow); } else { *bindex = NOBUTTON; return ML_OFFMENU; } } getMenuDim(menuInfo, &menuDim); if (! PointInRect(rx, ry, menuDim.x, menuDim.y, menuDim.width, menuDim.height)) return ML_OFFMENU; /* * Check the event coordinates against each of the buttons. Since the * button event is reported relative to root window it must be adjusted for * the check. */ for (i = 0; i < menuInfo->menu->buttonCount; i++) { /*button is invisible; it has no entry*/ if (menuInfo->buttons[i].button == NULL) continue; if (PointInRect(ex, ey, menuInfo->buttons[i].buttonX, menuInfo->buttons[i].buttonY + yoff, menuInfo->maxbuttonWidth, menuInfo->buttons[i].buttonHeight)) { /* * Event is in a button. Is it a button with a submenu, and if so, * is the event in the right half of the button? */ *bindex = i; if (menuInfo->buttons[i].button->enabled) return ML_BUTTON; else return ML_BUTTONDISABLED; #ifdef notdef if ((menuInfo->buttons[i].button->has_submenu) && ((ex - menuInfo->menuX) > (menuInfo->menuWidth / 2))) return S_ACTIVATE; else return S_ONBUTTON; #endif /* notdef */ } } /* Check the pushpin area. */ *bindex = NOBUTTON; if (isEnabled(menuInfo, PINBUTTON) && PointInRect(ex, ey, menuInfo->pushPinX, menuInfo->pushPinY, PushPinOut_Width(gisNormal), PUSHPINHEIGHT(gisNormal))) return ML_PIN; return ML_MENU; } /* * menuHide * * Remove any active menus from the screen, and call the menu callback * function as necessary. */ static int menuHide(dpy, winInfo, fldoit) Display *dpy; WinGeneric *winInfo; Bool fldoit; { int i; MenuInfo *mInfo = menuInfoTable[topMenu - 1]; int item = mInfo->litButton; /* * reinstall the locked colormap, if we saved it */ if (prevColorFocusWindow != NULL) { InstallColormap(dpy, prevColorFocusWindow); prevColorFocusWindow = NULL; } if (GRV.ServerGrabs) XUngrabServer(dpy); /* Unmap any active menus. */ for (i = topMenu - 1; i >= 0; --i) { MenuInfo *mi = menuInfoTable[i]; WinGeneric *menuWin = mi->menuWin; if (menuWin->core.kind == WIN_MENU) UnmapMenuWindow(dpy, menuWin); else { DrawLocCursor(dpy, mi, mi->litButton, False); SetButton(dpy, mi, mi->litButton, False, False); } mi->litButton = NOBUTTON; } XUngrabPointer(dpy, CurrentTime); XUngrabKeyboard(dpy, CurrentTime); EnableInterposerDelegation(); /* * need to sync before calling the proc, * because the proc's purpose might be to * destroy all pinned menus! */ if (syncFunc != NULL) (*syncFunc) (syncInfo); if (fldoit) { if (mInfo->pinIn && isEnabled(mInfo, PINBUTTON)) { (void) MakePinMenu(dpy, winInfo, mInfo); } else { if (item != NOBUTTON) ExecButtonAction(dpy, winInfo, mInfo, item); } } if (InterposerInstalled() == MenuTrack) UninstallInterposer(); } static void unmapChildren(dpy, mInfo) Display *dpy; MenuInfo *mInfo; { int i; i = topMenu - 1; while (i >= 0 && menuInfoTable[i]->menu != mInfo->menu) { UnmapMenuWindow(dpy, menuInfoTable[i]->menuWin); --i; } topMenu = i + 1; #ifdef DEBUG if (i < 0) fputs("olwm: warning, internal error in unmapChildren!\n", stderr); #endif /* DEBUG */ mInfo->childActive = False; } static void activateButton(dpy, mInfo, idx, flsetdefault) Display *dpy; MenuInfo *mInfo; int idx; Bool flsetdefault; { if (mInfo->litButton == idx) return; /* Unhighlight any highlit button. */ if (mInfo->litButton > NOBUTTON) { if (isEnabled(mInfo, mInfo->litButton)) { /*otherwise, it's a separator or disabled item and we don't need to do anything with it */ SetButton(dpy, mInfo, mInfo->litButton, False, flsetdefault); SetButton(dpy, mInfo, mInfo->litButton, False, False); } } else if (mInfo->litButton == PINBUTTON && isEnabled(mInfo, PINBUTTON)) { int oldstate; /* setMenuPin is too restrictive */ oldstate = mInfo->pinIn; mInfo->pinIn = True; setMenuPin(dpy, mInfo, False, False); mInfo->pinIn = oldstate; } /* Highlight the new button */ if (idx > NOBUTTON) SetButton(dpy, mInfo, idx, True, flsetdefault); else SetButton(dpy, mInfo, mInfo->menu->buttonDefault, True, True); mInfo->litButton = idx; } static void setMenuPin(dpy, mInfo, state, flsetdefault) Display *dpy; MenuInfo *mInfo; Bool state; int flsetdefault; { GC windowGC = WinGC(mInfo->menuWin, WINDOW_GC); Graphics_info *gisNormal = WinGI(mInfo->menuWin, NORMAL_GINFO); Window win = mInfo->menuWin->core.self; int olgx_flags; if (mInfo->pinIn != state) { mInfo->pinIn = state; #ifdef DEBUG if (! isEnabled(mInfo, PINBUTTON)) fprintf(stderr, "trying to set disabled pin!\n"); #endif XFillRectangle(dpy, win, windowGC, mInfo->pushPinX, mInfo->pushPinY, PushPinOut_Width(gisNormal), PUSHPINHEIGHT(gisNormal)); if (((mInfo->menu->buttonDefault == PINBUTTON) && !state) || flsetdefault) olgx_flags = OLGX_DEFAULT | OLGX_PUSHPIN_OUT; else olgx_flags = (state ? OLGX_PUSHPIN_IN : OLGX_PUSHPIN_OUT); olgx_draw_pushpin(gisNormal, win, mInfo->pushPinX, mInfo->pushPinY, olgx_flags); } } /* * activateSubMenu * * Given a MenuInfo struct and a button, activate that button's submenu. * It's assumed that the button actually has a submenu. Note that only the * x-location is passed in, while the y-location is calculated. The reason is * that the x-location is determined by the mouse event, while the y-location * is always based the location of the parent menu. If a submenu is already * active, do nothing. This is primarily to prevent the same submenu from * being activated again. This occurs if a submenu is much narrower than its * parent, and you pull off the right of the submenu back into the parent. */ static void activateSubMenu(dpy, mInfo, bindex, x) Display *dpy; MenuInfo *mInfo; int bindex; int x; { MenuInfo *subMenu; MenuCache *menuCache = mInfo->menuWin->core.client->scrInfo->menuCache; int ypos; if (!mInfo->childActive && BUTTON_INDEX_OK(mInfo, bindex) && mInfo->buttons[bindex].subMenu) { subMenu = mInfo->buttons[bindex].subMenu; if (subMenu->menu->buttonCount == 0) return; mInfo->childActive = True; subMenu->menuWin = (WinGeneric *) menuCache->menuWinList[topMenu]; menuInfoTable[topMenu++] = subMenu; subMenu->childActive = False; subMenu->pinIn = False; subMenu->litButton = NOBUTTON; subMenu->ringedButton = subMenu->menu->buttonDefault; if (mInfo->menuWin->core.kind == WIN_MENU) { ypos = mInfo->menuY; if (menuTitle(mInfo) == NULL) ypos += HEAD_VSPACE; else ypos += mInfo->titleHeight; } else { WinGenericFrame *parent = (WinGenericFrame *) mInfo->menuWin->core.parent; assert(parent); ypos = mInfo->menuWin->core.y + HEAD_VSPACE; ypos += parent->core.y; } ypos += mInfo->buttons[bindex].buttonY; showMenu(dpy, subMenu, x - MENU_HORIZ_OFFSET, ypos, True); } } void DrawLocCursor(dpy, mInfo, bindex, fldraw) Display *dpy; MenuInfo *mInfo; int bindex; Bool fldraw; { Window wid = mInfo->menuWin->core.self; int y; XPoint Pt[3]; Button *pb; /* * REMIND: * we don't draw the location cursor for the pushpin */ if (! BUTTON_INDEX_OK(mInfo, bindex)) return; pb = mInfo->buttons[bindex].button; if (pb == NULL || pb->label[pb->which] == NULL) return; if (menuTitle(mInfo) != NULL) y = mInfo->titleHeight; else y = HEAD_VSPACE; y += (mInfo->buttons[bindex].buttonY + (mInfo->buttons[bindex].buttonHeight / 2)); Pt[0].x = 6 + 11; Pt[0].y = y; Pt[1].x = -11; Pt[1].y = -6; Pt[2].x = 0; Pt[2].y = 12; if (fldraw && bindex != PINBUTTON) XFillPolygon(dpy, wid, WinGC(mInfo->menuWin, FOREGROUND_GC), Pt, 3, Convex, CoordModePrevious); else XFillPolygon(dpy, wid, WinGC(mInfo->menuWin, WINDOW_GC), Pt, 3, Convex, CoordModePrevious); } /* * drawCommonButton * * Draw either a normal or inverted button. */ static void drawCommonButton(dpy, menuInfo, idx, fDefault, fInverse) Display *dpy; MenuInfo *menuInfo; int idx; Bool fDefault; Bool fInverse; { Button *pb; ButtonInfo *bi; WinGeneric *winInfo = menuInfo->menuWin; int state; int marktype; if (! BUTTON_INDEX_OK(menuInfo, idx)) return; bi = &menuInfo->buttons[idx]; pb = bi->button; if (pb == NULL) return; /* don't invert disabled buttons */ if (fInverse && ! pb->enabled) return; state = OLGX_ERASE | OLGX_MENU_ITEM; if (fInverse) state |= OLGX_INVOKED; else state |= OLGX_NORMAL; if (! pb->enabled) state |= OLGX_INACTIVE; else /*don't let default buttons have rings*/ if (fDefault) state |= OLGX_DEFAULT; if (menuInfo->hasAccelerators) { if (pb->has_submenu) marktype = OLGX_HORIZ_MENU_MARK; else if (bi->has_meta_mark) marktype = OLGX_DIAMOND_MARK; else marktype = 0; olgx_draw_accel_button( WinGI(winInfo, BUTTON_GINFO), winInfo->core.self, bi->buttonX, bi->buttonY + menuInfo->buttonOffset, menuInfo->maxbuttonWidth, 0, pb->label[pb->which], MainLabel_Pos(WinGI(winInfo, BUTTON_GINFO), bi->buttonX), bi->accel_modifier, menuInfo->accModPos, marktype, menuInfo->buttonMarkPos, bi->accel_key, menuInfo->accKeyPos, NULL, state | TextOLGX); } else { if (pb->has_submenu) state |= OLGX_HORIZ_MENU_MARK; olgx_draw_button(WinGI(winInfo, BUTTON_GINFO), winInfo->core.self, bi->buttonX, bi->buttonY + menuInfo->buttonOffset, menuInfo->maxbuttonWidth, 0, pb->label[pb->which], state | TextOLGX); } } /* Draw a normal button. * if fDefault is true, a default ring will be drawn. */ /*ARGSUSED*/ static void drawButton(dpy, menuInfo, idx, fDefault) Display *dpy; MenuInfo *menuInfo; int idx; Bool fDefault; { drawCommonButton(dpy, menuInfo, idx, fDefault, False); } /* * drawRevButton - Draw a reverse video button. */ /*ARGSUSED*/ static void drawRevButton(dpy, menuInfo, idx) Display *dpy; MenuInfo *menuInfo; int idx; { drawCommonButton(dpy, menuInfo, idx, False, True); } /* * isClick * * Takes two button events and returns a boolean indicating whether they are * close enough (spacially and temporally) to be considered a click. */ #define THRESH_DIST 5 static Bool isClick(e1, e2) XEvent *e1; XEvent *e2; { return ( ABS(eventX(e1) - eventX(e2)) <= GRV.ClickMoveThreshold && ABS(eventY(e1) - eventY(e2)) <= GRV.ClickMoveThreshold && eventTime(e2) - eventTime(e1) <= GRV.DoubleClickTime ); } /********************************************************************************/ void SetMenuDefault(pmenu, def) Menu *pmenu; int def; { pmenu->buttonDefault = def; } Menu * NewNamedMenu(name, flpin, help) Text *name; Bool flpin; char *help; { Menu *pmenu = MemNew(Menu); if (pmenu != NULL) { pmenu->title = name; pmenu->buttons = NULL; pmenu->buttonCount = 0; pmenu->buttonDefault = 0; pmenu->hasPushPin = flpin; pmenu->helpstring = help; pmenu->menudirty = True; pmenu->wantAccelerators = True; } return pmenu; } Bool AppendMenuItem(pmenu, pitem) Menu *pmenu; Button *pitem; { if (pmenu == NULL) return False; if (pmenu->buttonCount++ == 0) pmenu->buttons = (Button **) MemNew(Button **); else pmenu->buttons = (Button **) MemRealloc(pmenu->buttons, (pmenu->buttonCount * sizeof(Button **))); if (pmenu->buttons == NULL) return False; pmenu->buttons[pmenu->buttonCount - 1] = pitem; pmenu->menudirty = True; return True; } /* * caveat: aren't overly useful, since you may have a button used in * multiple menus, in which case the second menu may never get dirtied * so you have to handle those special cases [look in GetEnabledMenu()] */ void SetMenuHier(pmenu, itemno, phier) Menu *pmenu; int itemno; Menu *phier; { Button *pb = pmenu->buttons[itemno]; if (pb->action.submenu != phier) { pmenu->menudirty = True; pb->action.submenu = phier; pb->has_submenu = (phier != NULL); } } void _ToggleEnabled(pmenu, itemno, flenabled) Menu *pmenu; int itemno; Bool flenabled; { ToggleEnabled(pmenu, itemno, flenabled); } void _ToggleItem(pmenu, itemno, which) Menu *pmenu; int itemno; int which; { ToggleItem(pmenu, itemno, which); } void _ToggleVisible(pmenu, itemno, visible) Menu *pmenu; int itemno; int visible; { ToggleVisible(pmenu, itemno, visible); } void _SetMenuTitle(pmenu, s) Menu *pmenu; Text *s; { SetMenuTitle(pmenu, s); } void _DirtyMenu(pmenu) Menu *pmenu; { DirtyMenu(pmenu); } Menu * CreateMenu(name, barray, ctbuttons, flpin, help) Text *name; Button **barray; /* array of button pointers */ int ctbuttons; Bool flpin; char *help; { Menu *new = NewNamedMenu(name, flpin, help); if (new != NULL) { new->buttonCount = ctbuttons; new->buttons = (Button **) MemAlloc(ctbuttons * sizeof(Button **)); memcpy((void *) new->buttons, (void *) barray, ctbuttons * sizeof(Button **)); } return new; } /********************************************************************************/ /* * InitScreenMenus */ MenuCache * InitScreenMenus(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { MenuCache *menuCache; int index, maxDepth; menuCache = MemNew(MenuCache); menuCache->maxSlots = 40; /*intial size*/ menuCache->nextSlot = 0; menuCache->menuInfoList = (MenuInfo **) MemAlloc(sizeof(MenuInfo) * menuCache->maxSlots); for (index = 0; index < (int) NUM_MENUS; index++) { (void) MenuInfoCreate(menuCache, scrInfo->rootwin, MenuTable[index], 1); } maxDepth = findMaxDepth(menuCache); menuCache->menuWinList = MemAlloc(maxDepth * sizeof(struct _winmenu *)); for (index = 0; index < maxDepth; index++) menuCache->menuWinList[index] = MakeMenu(dpy, scrInfo->rootwin); menuCache->maxDepth = maxDepth; #ifdef notdef ApplyMenuDefaults(dpy, menuCache); #endif return menuCache; } /* * DoDefaultMenuAction - execute the default menu item from this window's * Window Menu. * * REMIND: this deals ONLY with the Window Menu. It has certain limitations. * In particular, it does not deal with pinning, as no pushpins appear on any * window menu. Eventually, this routine should be merged with * ExecButtonAction(). */ Bool DoDefaultMenuAction(win) WinGenericFrame *win; { Menu *menu; int defitem; Button *pb; MenuInfo *menuInfo; /* * find the menu associated with this frame, * this ensures that the menu is enabled correctly */ menu = GetEnabledMenu(win->core.client, win->fcore.fullsize, False); if (!menu) return False; defitem = win->core.client->wmDecors->def_item; if (defitem < 0 || defitem >= menu->buttonCount) defitem = 0; pb = menu->buttons[defitem]; /* Search down the menu tree, following default buttons */ while (1) { if (! pb->enabled) return True; if (! pb->has_submenu) break; menu = pb->action.submenu; if (menu->buttonDefault < 0 || menu->buttonDefault >= menu->buttonCount) { return True; } pb = menu->buttons[menu->buttonDefault]; } /* assume it's a button; execute its action */ if (pb->callback == NULL) return True; menuInfo = findMenuInfo(win, menu); assert(menuInfo); (*pb->callback) (win->core.client->dpy, win, menuInfo, defitem); return True; } /********************************************************************************/ static Region zeroregion; void InitRegions() { zeroregion = XCreateRegion(); } void EmptyRegion(r) Region r; { if (r != NULL) XIntersectRegion(zeroregion, r, r); } void RectRegion(r, x, y, w, h) Region r; int x, y; unsigned int w, h; { XRectangle rect; if (r != NULL) { rect.x = x; rect.y = y; rect.width = w; rect.height = h; XUnionRectWithRegion(&rect, r, r); } } void AppendExposeDamage(pr, ee) Region *pr; XExposeEvent *ee; { if (*pr == NULL) *pr = XCreateRegion(); if (*pr != NULL) RectRegion(*pr, ee->x, ee->y, ee->width, ee->height); } void MakeExposeDamage(pr, ee) Region *pr; XExposeEvent *ee; { if (*pr != NULL) EmptyRegion(*pr); AppendExposeDamage(pr, ee); } xview-3.2p1.4/clients/olwm/menu.h100644 1750 1750 16576 5413747426 14231 0ustar mbmb/* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_MENU_H #define _OLWM_MENU_H #pragma ident "@(#)menu.h 26.35 93/06/28 SMI" #include "events.h" /* constants */ #define NOBUTTON -1 /* no button is active */ #define PINBUTTON -2 /* the pin is active */ /* types */ typedef int (*FuncPtr) (); /* pointer to function returning int */ /* * Button: describes a single button in a menu. */ typedef struct _button { Text *label[2]; /* displayed text, alternate text */ char *helpstring[2]; /* help for that button, alternate help */ int which; /* which label to display */ Bool has_submenu; /* tells whether this button has a submenu */ Bool enabled; /* grayed out if not enabled */ Bool visible; /* takes up no space if not visible */ FuncPtr callback; /* function to call when item hit */ /* NULL if button has pullright */ union { /* additional data for the callback */ struct _menu *submenu; /* pointer to the submenu, if has_submenu */ char *command; /* command, if callback is AppMenuFunc */ void *other; /* unspecified */ } action; SemanticAction semantic; /* semantic action for window menu items */ } Button; /* * Menu: describes a single popup menu. Contains title, pin, list of buttons. */ typedef struct _menu { Text *title; /* the menu's title, NULL if no title */ Button **buttons; /* array of buttons owned by this menu */ int buttonCount; /* size of buttons array */ int buttonDefault; /* index of dflt button into buttons array */ Bool hasPushPin; Bool menudirty; /* needs size recalced */ char *helpstring; Bool wantAccelerators; /* whether the object on which this menu */ /* appears wants the accelerators */ } Menu; #define basewin_openitem 0 #define basewin_zoomitem (basewin_openitem + 1) #define basewin_moveitem (basewin_zoomitem + 1) #define basewin_resizeitem (basewin_moveitem + 1) #define basewin_propsitem (basewin_resizeitem + 1) #define basewin_backitem (basewin_propsitem + 1) #define basewin_refreshitem (basewin_backitem + 1) #define basewin_quititem (basewin_refreshitem + 1) #define basewin_ctbuttons basewin_quititem #define popup_dismissitem 0 #define popup_moveitem (popup_dismissitem + 1) #define popup_resizeitem (popup_moveitem + 1) #define popup_backitem (popup_resizeitem + 1) #define popup_refreshitem (popup_backitem + 1) #define popup_quititem (popup_refreshitem + 1) #define popup_ctbuttons popup_quititem /* * Global array of menus */ extern Menu *MenuTable[NUM_MENUS]; extern Bool flDoSetDefault; /*is the ctrl key down (only used in winpinmenu.c)*/ /* * constants used by ShowStandardMenuSync() */ #define SYNC_DONE 0 #define SYNC_CHANGECLICK (SYNC_DONE + 1) /* * The ButtonInfo and MenuInfo structures are created in parallel with the * Button and Menu structures. The info structures have geometry information, * which depends on the fonts currently in use. */ typedef struct _buttonInfo { Button *button; int buttonX, buttonY; int buttonHeight; Bool flDirty; /*damaged*/ struct _menuInfo *subMenu; Bool has_accel; /* whether this button shows an accelerator */ Bool has_meta_mark; /* whether accelerator has a diamond mark */ Text *accel_modifier; /* accelerator modifier text */ Text *accel_key; /* the actual accelerator key name */ } ButtonInfo; typedef struct _menuInfo { int depth; Menu *menu; ButtonInfo *buttons; int notitleOffset, buttonOffset; int menuX, menuY, menuWidth, menuHeight; int titleX, titleY, titleHeight, titleWidth; int pushPinX, pushPinY; int maxbuttonWidth; int labelPos, accModPos, buttonMarkPos, accKeyPos; struct _wingeneric *menuWin; struct _menuInfo *origmenuInfo; struct _menuInfo *pinnedBrother; Bool childActive; Bool pinIn; int litButton; Bool ignoreNextExpose; SemanticAction action; int ringedButton; Bool hasAccelerators; } MenuInfo; /* * MenuCache: a per-screen cache of menu information. */ typedef struct _menuCache { MenuInfo **menuInfoList; /* dynamic */ int nextSlot; int maxSlots; /* how big is menuInfoList */ struct _winmenu **menuWinList; int maxDepth; } MenuCache; typedef enum _menuTrackMode { MODE_DRAG, /* press-drag-release */ MODE_CLICK /* click-move-click */ } MenuTrackMode; typedef enum _menuLocation { ML_BUTTON, /* on a button */ ML_PIN, /* on the pin */ ML_MENU, /* elsewhere on the menu */ ML_OFFMENU, /* outside the menu entirely */ ML_BUTTONDISABLED /* on a disabled button */ } MenuLocation; #define BUTTON_INDEX_OK(mi,idx) ((idx)>=0 && (idx)<(mi)->menu->buttonCount) #ifdef notdef /* * Default button list */ typedef struct _defaults { char Name[80]; int DefaultButton; MenuInfo *mInfo; struct _defaults *next; } Defaults, *DefaultsP; #endif /* ***************************************************************************** * External functions ***************************************************************************** */ void SetMenuDefault(); Menu *NewNamedMenu(); Bool AppendMenuItem(); Menu *CreateMenu(); Menu *GetEnabledMenu(); MenuInfo *MenuInfoCreate(); void ShowStandardMenu(); void ShowStandardMenuSync(); void SetClickCallback(); extern void InitMenus(); extern MenuCache *InitScreenMenus( /* Display *dpy, ScreenInfo *scrInfo */ ); extern void MenuCreate( /* dpy, menu */ ); extern void MenuShow( /* dpy, WinGeneric, menu, event */ ); extern void SetButton( /* dpy, menu, bindex, Bool */ ); extern void ExecButtonAction( /* dpy, winInfo, menu, btn, Bool */ ); extern void DrawMenu( /* dpy, menu */ ); extern int PointInRect( /* x, y, rx, ry, rw, rh */ ); /* * generically useful region code that happens to live in menu.c */ void InitRegions(); void EmptyRegion(); void RectRegion(); void AppendExposeDamage(); void MakeExposeDamage(); /* * WinMenu Functions (from winmenu.c) */ extern struct _winmenu * MakeMenu( /* Display *dpy, WinRoot *winInfo */ ); extern void MapMenuWindow(/* Display *dpy, WinMenu *winInfo, MenuInfo *menuInfo */ ); extern void UnmapMenuWindow(/* Display *dpy, WinMenu *winInfo, MenuInfo *menuInfo */ ); int MenuEventExpose(); int MenuEventDrawMenu(); SemanticAction MenuMouseAction(/*Display *dpy, XEvent *pevent, long mask*/ ); /* * WinPinMenu Functions (from winpinmenu.c) */ extern struct _winpinmenu * MakePinMenu(/* Display *dpy, WinRoot *winInfo, MenuInfo *menuInfo */ ); /* * macros for setting menu items */ #define DirtyMenu(pmenu) (pmenu)->menudirty = True #define _menuset(p,i,q,x) do { \ Button *pb = p->buttons[i]; \ if (pb->q != (x)) { \ DirtyMenu(p); \ pb->q = (x); \ } \ } while(0) #define ToggleVisible(p,i,x) _menuset(p,i,visible,(x)) #define ToggleItem(p,i,x) _menuset(p,i,which,(((x) == 0)? False : True)) #define ToggleEnabled(p,i,x) _menuset(p,i,enabled,(x)) #define SetMenuTitle(m,t) do { \ if (m->title != t) { \ m->title = t; \ DirtyMenu(m); \ } \ } while (0) #endif /* _OLWM_MENU_H */ xview-3.2p1.4/clients/olwm/moveresize.c100644 1750 1750 113416 5413747427 15460 0ustar mbmb#ident "@(#)moveresize.c 26.54 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #include #include #include #include #include #include #include "i18n.h" #include "ollocale.h" #include "mem.h" #include "olwm.h" #include "win.h" #include "events.h" #include "list.h" #include "globals.h" #include "error.h" /* REMIND - find out how to get rid of this */ extern int Resize_width, Resize_height; typedef enum { Unconstrained, /* resizing not constrained */ EitherConstrained, /* constrained, but no direction yet */ HorizConstrained, /* constrained horizontally */ VertConstrained, /* constrained vertically */ } Constraint; #define DELTA_INCREASE (1) #define DELTA_DECREASE (-1) #define JUMP_INCREASE (10) #define JUMP_DECREASE (-10) #define REDUCE_ROUNDER 5 #define REDUCE_DIVIDER 10 /* * drawDouble * * Draw a thick box on the given window, using the given GC. The box is drawn * using four rectangles. This technique is used instead of wide lines * because this routine is used during animation, and the wide line code of * some servers is too slow. */ #define defrect(r, X, Y, W, H) \ (r).x = X, (r).y = Y, (r).width = W, (r).height = H static void drawDouble(dpy, si, gc, x, y, w, h) Display *dpy; ScreenInfo *si; GC gc; int x, y, w, h; { int thick = GRV.RubberBandThickness; XRectangle rects[4]; int nrects, doublethick; Window win = si->rootid; if (w == 0 && h == 0) return; doublethick = 2 * thick; /* if too small for box just draw one solid rect */ if (w <= doublethick || h <= doublethick) { defrect(rects[0], x, y, w, h); nrects = 1; /* else draw all 4 rects for the box */ } else { defrect(rects[0], x, y, w, thick); defrect(rects[1], x, y + h - thick, w, thick); defrect(rects[2], x, y + thick, thick, h - doublethick); defrect(rects[3], x + w - thick, y + thick, thick, h - doublethick); nrects = 4; } #ifdef ALLPLANES if (si->useAllPlanes) XAllPlanesFillRectangles(dpy, win, rects, nrects); else #endif /* ALLPLANES */ XFillRectangles(dpy, win, gc, rects, nrects); } #undef defrect /* ===== status window ==================================================== */ #define HMARGIN 5 #define VMARGIN 3 typedef struct { Display *dpy; Window win; int ypos; int width; int height; DisplayFont font; ScreenInfo *scrinfo; } StatusWinInfo; static StatusWinInfo * createStatusWindow(dpy, scrinfo, proto) Display *dpy; ScreenInfo *scrinfo; Text *proto; { XSetWindowAttributes attr; StatusWinInfo *sw; sw = MemNew(StatusWinInfo); sw->dpy = dpy; sw->font = TitleFont; sw->ypos = FontAscent(sw->font) + VMARGIN; sw->height = FontHeight(sw->font) + 2*VMARGIN; sw->width = FontWidth(sw->font,proto,TextLen(proto)) + 2*HMARGIN; sw->scrinfo = scrinfo; attr.border_pixel = 0; attr.colormap = scrinfo->colormap; attr.save_under = True; sw->win = ScreenCreateWindow(scrinfo, scrinfo->rootid, 0, 0, sw->width, sw->height, CWColormap | CWBorderPixel | CWSaveUnder, &attr); XMapRaised(dpy, sw->win); return sw; } static void paintStatusWindow(sw, text) StatusWinInfo *sw; Text *text; { int textlen; if (sw == NULL) return; olgx_draw_box(sw->scrinfo->gi[NORMAL_GINFO], sw->win, 0, 0, sw->width, sw->height, OLGX_NORMAL | OLGX_ERASE, True); textlen = TextLen(text); DrawText(sw->dpy, sw->win, sw->font, sw->scrinfo->gc[FOREGROUND_GC], (sw->width - FontWidth(sw->font, text, textlen)) / 2, sw->ypos, text, textlen); } static void destroyStatusWindow(sw) StatusWinInfo *sw; { if (sw == NULL) return; ScreenDestroyWindow(sw->scrinfo, sw->win); MemFree(sw); } /* ===== mouse-based window moving ======================================== */ typedef struct { Display *dpy; int initX, initY; int offX, offY; int curX, curY; int rounder, divider; List *winlist; WinGenericFrame *frame; StatusWinInfo *statuswindow; char *statusfmt; Constraint constraint; Bool dragwin; /* true=dragwin, false=dragframe */ Bool mouse; } MoveClosure; static Bool movewinInterposer(); static void *moveOneWindow(); static void *configOneWindow(); static void *drawOneBox(); static void moveDone(); static void mouseMovePaintStatus(mstuff, x, y) MoveClosure *mstuff; int x, y; { Text buf[50]; if (!mstuff->statuswindow) return; TextSPrintf(buf, mstuff->statusfmt, x, y); paintStatusWindow(mstuff->statuswindow, buf); } /* * UserMoveWindows * * Allow the user to move a window or the set of selected windows. The * "first" parameter must be the button event that initiated the interaction. * The "winInfo" parameter must be the frame or icon on which the action was * initiated. The external boolean DragWindow controls whether the whole * window is moved or whether the outline is moved. * * TODO: * (1) clean up coordinate systems; * (2) implement hysteresis against other windows' edges. */ void UserMoveWindows(cli, first) Client *cli; XEvent *first; { Display *dpy = cli->dpy; List *winlist = NULL_LIST; static MoveClosure mstuff; Time timestamp; mstuff.dpy = dpy; mstuff.offX = 0; mstuff.offY = 0; mstuff.constraint = Unconstrained; mstuff.rounder = 0; mstuff.divider = 1; if (cli->wmState == IconicState) mstuff.frame = (WinGenericFrame *) cli->iconwin; else mstuff.frame = (WinGenericFrame *) cli->framewin; if (first == NULL || first->type == KeyPress) { timestamp = (first == NULL) ? CurrentTime : first->xkey.time; mstuff.dragwin = False; mstuff.curX = mstuff.initX = mstuff.frame->core.x; mstuff.curY = mstuff.initY = mstuff.frame->core.y; mstuff.mouse = False; } else { /* it's a ButtonPress */ mstuff.curX = mstuff.initX = first->xbutton.x_root; mstuff.curY = mstuff.initY = first->xbutton.y_root; mstuff.dragwin = GRV.DragWindow; mstuff.mouse = True; timestamp = first->xbutton.time; if (first->xbutton.state & ModMaskMap[MOD_INVERT]) mstuff.dragwin = !mstuff.dragwin; if (first->xbutton.state & ModMaskMap[MOD_REDUCE]) { mstuff.rounder = REDUCE_ROUNDER; mstuff.divider = REDUCE_DIVIDER; } if (first->xbutton.state & ModMaskMap[MOD_CONSTRAIN]) mstuff.constraint = EitherConstrained; } /* * If we're dragging the window, and raise-on-move is set, raise it now so * that the user drags it around after it's been raised. Raise only this * window, even if several are selected. */ if (GRV.RaiseOnMove && mstuff.dragwin) XRaiseWindow(dpy, mstuff.frame->core.self); /* * Generate the list of windows to be moved. If the initial window is * selected, we're moving the selection; otherwise, we're moving just this * window. */ if (IsSelected(cli)) { Client *c = (Client *) 0; while (c = EnumSelections(c)) { if (c->wmState == IconicState) winlist = ListCons(c->iconwin, winlist); else winlist = ListCons(c->framewin, winlist); } } else { winlist = ListCons(mstuff.frame, NULL_LIST); } mstuff.winlist = winlist; /* Grab the pointer to change the cursor and confine to the root window. */ if (XGrabPointer(dpy, cli->scrInfo->rootid, True, ButtonPressMask | ButtonReleaseMask | PointerMotionMask, GrabModeAsync, GrabModeAsync, cli->scrInfo->rootid, GRV.MovePointer, timestamp) != GrabSuccess) { ErrorWarning(GetString("failed to grab pointer")); return; } if (XGrabKeyboard(dpy, cli->scrInfo->rootid, False, GrabModeAsync, GrabModeAsync, timestamp) != GrabSuccess) { /* note: not fatal */ ErrorWarning(GetString("failed to grab keyboard")); } InstallInterposer(movewinInterposer, &mstuff); if (GRV.ShowMoveGeometry) { Text proto[50]; mstuff.statusfmt = GetString("location: %4d , %4d"); TextSPrintf(proto, mstuff.statusfmt, 9999, 9999); mstuff.statuswindow = createStatusWindow(dpy, cli->scrInfo, proto); } else { mstuff.statuswindow = NULL; } /* * If we're dragging the outlines, we must also grab the server and draw * the initial set of bounding boxes. */ if (!mstuff.dragwin) { XGrabServer(dpy); (void) ListApply(mstuff.winlist, drawOneBox, &mstuff); } } void moveUpdate(mstuff) MoveClosure *mstuff; { if (!mstuff->dragwin) (void) ListApply(mstuff->winlist, drawOneBox, mstuff); mstuff->offX = (mstuff->curX - mstuff->initX + mstuff->rounder) / mstuff->divider; mstuff->offY = (mstuff->curY - mstuff->initY + mstuff->rounder) / mstuff->divider; if (mstuff->constraint == EitherConstrained) { if (ABS(mstuff->offX) > ABS(mstuff->offY)) mstuff->constraint = HorizConstrained; else mstuff->constraint = VertConstrained; } if (mstuff->constraint == HorizConstrained) { mstuff->offY = 0; } else if (mstuff->constraint == VertConstrained) { mstuff->offX = 0; } if (mstuff->dragwin) (void) ListApply(mstuff->winlist, moveOneWindow, mstuff); else (void) ListApply(mstuff->winlist, drawOneBox, mstuff); } void moveKeyDelta(mstuff, dx, dy) MoveClosure *mstuff; int dx, dy; { mstuff->constraint = Unconstrained; if (mstuff->mouse) { mstuff->initX -= dx; mstuff->initY -= dy; } else { mstuff->curX += dx; mstuff->curY += dy; } moveUpdate(mstuff); } /* * movewinInterposer * * Interposer function for moving windows. Moves the list of windows on each * MotionNotify; releases interposition on ButtonRelease. */ /*ARGSUSED*/ static int movewinInterposer(dpy, event, w, mstuff) Display *dpy; XEvent *event; WinGeneric *w; MoveClosure *mstuff; { XEvent nextevent; SemanticAction action; switch (event->type) { case ButtonPress: /* ignore if buttons are already down */ if (!FirstButtonDown(event)) break; switch (ResolveMouseBinding(dpy, event, ModMaskMap[MOD_REDUCE] | ModMaskMap[MOD_CONSTRAIN])) { case ACTION_SELECT: mstuff->mouse = True; mstuff->curX = event->xbutton.x_root; mstuff->curY = event->xbutton.y_root; mstuff->initX = mstuff->curX - mstuff->offX; mstuff->initY = mstuff->curY - mstuff->offY; if (event->xbutton.state & ModMaskMap[MOD_REDUCE]) { mstuff->rounder = REDUCE_ROUNDER; mstuff->divider = REDUCE_DIVIDER; } if (event->xbutton.state & ModMaskMap[MOD_CONSTRAIN]) mstuff->constraint = EitherConstrained; break; default: /* otherwise, abort the move operation */ mstuff->curX = mstuff->initX; mstuff->curY = mstuff->initY; moveUpdate(mstuff); moveDone(mstuff); } break; case ButtonRelease: if (AllButtonsUp(event)) moveDone(mstuff); break; case MotionNotify: /* if the event is off the screen, ignore it */ if (!event->xmotion.same_screen) break; if (!mstuff->mouse) break; /* * Motion compression. If the next event is a MotionNotify, * ignore this one. */ if (XEventsQueued(dpy, QueuedAfterReading) > 0 && (XPeekEvent(dpy,&nextevent), nextevent.type == MotionNotify)) break; mstuff->curX = event->xmotion.x_root; mstuff->curY = event->xmotion.y_root; moveUpdate(mstuff); break; case KeyPress: action = FindKeyboardAction(dpy, event); switch (action) { case ACTION_UP: moveKeyDelta(mstuff,0,DELTA_DECREASE); break; case ACTION_DOWN: moveKeyDelta(mstuff,0,DELTA_INCREASE); break; case ACTION_LEFT: moveKeyDelta(mstuff,DELTA_DECREASE,0); break; case ACTION_RIGHT: moveKeyDelta(mstuff,DELTA_INCREASE,0); break; case ACTION_JUMP_UP: moveKeyDelta(mstuff,0,JUMP_DECREASE); break; case ACTION_JUMP_DOWN: moveKeyDelta(mstuff,0,JUMP_INCREASE); break; case ACTION_JUMP_LEFT: moveKeyDelta(mstuff,JUMP_DECREASE,0); break; case ACTION_JUMP_RIGHT: moveKeyDelta(mstuff,JUMP_INCREASE,0); break; case ACTION_EXEC_DEFAULT: moveDone(mstuff); break; case ACTION_STOP: mstuff->curX = mstuff->initX; mstuff->curY = mstuff->initY; moveUpdate(mstuff); moveDone(mstuff); break; default: if (FindModifierMask(event->xkey.keycode) == ModMaskMap[MOD_CONSTRAIN]) { if (mstuff->mouse) { mstuff->constraint = EitherConstrained; moveUpdate(mstuff); } } else { KeyBeep(dpy, event); } break; } break; case KeyRelease: if (FindModifierMask(event->xkey.keycode) == ModMaskMap[MOD_CONSTRAIN]) { mstuff->constraint = Unconstrained; moveUpdate(mstuff, event->xkey.x_root, event->xkey.y_root); } break; /* Send out expose's immediately */ case Expose: return DISPOSE_DISPATCH; default: return DISPOSE_DEFER; } return DISPOSE_USED; } /* windowOff -- function to determine how far a window should be offset * given a pointer offset. Returns both X and Y, by reference. */ static void windowOff(win, mstuff, pox, poy) WinGenericFrame *win; MoveClosure *mstuff; int *pox, *poy; { int pixw = DisplayWidth(win->core.client->dpy, win->core.client->screen); int hpoint; int pixy = DisplayHeight(win->core.client->dpy, win->core.client->screen); if (mstuff->offX == 0) { *pox = 0; } else if (mstuff->offX > 0) { hpoint = pixw - win->core.x - win->core.width; if ((mstuff->offX >= hpoint) && (mstuff->offX <= hpoint + GRV.EdgeThreshold)) *pox = hpoint; else if (mstuff->offX >= hpoint+win->core.width-Resize_width) *pox = hpoint+win->core.width-Resize_width; else *pox = mstuff->offX; } else if (mstuff->offX < 0) { if ((mstuff->offX <= -win->core.x) && (mstuff->offX >= (-win->core.x - GRV.EdgeThreshold))) *pox = -win->core.x; else if (mstuff->offX <= (-win->core.x-win->core.width+Resize_width)) *pox = (-win->core.x-win->core.width+Resize_width); else *pox = mstuff->offX; } if (mstuff->offY == 0) { *poy = 0; } else if (mstuff->offY > 0) { hpoint = pixy - win->core.y - win->core.height; if ((mstuff->offY >= hpoint) && (mstuff->offY <= hpoint + GRV.EdgeThreshold)) *poy = hpoint; else if (mstuff->offY >= hpoint+win->core.height-Resize_height) *poy = hpoint+win->core.height-Resize_height; else *poy = mstuff->offY; } else if (mstuff->offY < 0) { if ((mstuff->offY <= -win->core.y) && (mstuff->offY >= (-win->core.y - GRV.EdgeThreshold))) *poy = -win->core.y; else if (mstuff->offY <= (-win->core.y-win->core.height+Resize_height)) *poy = (-win->core.y-win->core.height+Resize_height); else *poy = mstuff->offY; } } /* * moveOneWindow * * Apply function for window moving animation. Draws a window outline or * actually moves the window, depending on DragWindow. */ static void * moveOneWindow(win, mstuff) WinGenericFrame *win; MoveClosure *mstuff; { int offX, offY; windowOff(win, mstuff, &offX, &offY); XMoveWindow(mstuff->dpy, win->core.self, win->core.x + offX, win->core.y + offY); if (win == mstuff->frame) mouseMovePaintStatus(mstuff, win->core.x + offX, win->core.y + offY); return (void *) 0; } /* * drawOneBox * * Apply function for drawing XOR boxes. Draws a double-width rectangle * around the outline of a single window. */ static void * drawOneBox(w, mstuff) WinGenericFrame *w; MoveClosure *mstuff; { int offX, offY; windowOff(w, mstuff, &offX, &offY); drawDouble(mstuff->dpy, w->core.client->scrInfo, WinGC(w,ROOT_GC), w->core.x + offX, w->core.y + offY, w->core.width, w->core.height); if (w == mstuff->frame) mouseMovePaintStatus(mstuff, w->core.x + offX, w->core.y + offY); return (void *) 0; } /* * configOneWindow * * Apply function for calling a moved window's configfunc. */ static void * configOneWindow(win, mstuff) WinGenericFrame *win; MoveClosure *mstuff; { int offX, offY; windowOff(win, mstuff, &offX, &offY); GFrameSetConfig(win, win->core.x + offX, win->core.y + offY, win->core.width, win->core.height); return (void *) 0; } /* * moveDone * * Cleanup function for window moving. Releases grabs, uninstalls * interposition, cleans up. */ static void moveDone(mstuff) MoveClosure *mstuff; { /* * If we're dragging the outlines, we must ungrab the server and undraw * the last set of boxes. */ if (!mstuff->dragwin) { (void) ListApply(mstuff->winlist, drawOneBox, mstuff); XUngrabServer(mstuff->dpy); } XUngrabPointer(mstuff->dpy, CurrentTime); XUngrabKeyboard(mstuff->dpy, CurrentTime); /* * If we moved the outline (not the whole window) cause the window to be * raised at the same time it is moved. Raise just the frame the user * started on, even if several are selected. */ if (GRV.RaiseOnMove && !mstuff->dragwin) GFrameSetStack(mstuff->frame, CWStackMode, Above, None); (void) ListApply(mstuff->winlist, configOneWindow, mstuff); ListDestroy(mstuff->winlist); destroyStatusWindow(mstuff->statuswindow); UninstallInterposer(); } /* ===== mouse-based resizing ============================================= */ /* * Note on use of gravity values: in this section, the gravity field is used * to denote the window edge or corner that is being moved. It's not * being used as "gravity" in the usual sense, which is the location that is * being held constant. * * TODO: * (1) implement screen edge hysteresis for resize+move mode (meta key); * (2) implement window edge hysteresis. */ /* * The following enum is arranged specifically so that the values can be * tested with bit operations. The one-bit indicates down or right if one, up * or left if zero. The two-bit indicates vertical if one, horizontal if zero. * The four-bit indicates a jump if one, normal if zero. */ typedef enum { RS_LEFT = 0, RS_RIGHT, RS_UP, RS_DOWN, RS_J_LEFT, RS_J_RIGHT, RS_J_UP, RS_J_DOWN } ResizeAction; #define RS_ISRIGHT (1<<0) #define RS_ISDOWN (1<<0) #define RS_ISVERT (1<<1) #define RS_ISJUMP (1<<2) #define RS_JUMPMULT 10 /* jump multiplier */ struct { int x, y; } ResizeDeltas[] = { { -1, 0 }, /* left */ { 1, 0 }, /* right */ { 0, -1 }, /* up */ { 0, 1 }, /* down */ { -RS_JUMPMULT, 0 }, /* jump left */ { RS_JUMPMULT, 0 }, /* jump right */ { 0, -RS_JUMPMULT }, /* jump up */ { 0, RS_JUMPMULT } /* jump down */ }; typedef struct { Client *cli; Constraint constraint; Bool drawn; Bool moving; Bool useAspect; Bool baseProvided; int origX, origY; int curX, curY; /* current mouse position */ int winX, winY; /* current window position */ int winW, winH; /* current window height */ int minW, minH; int maxW, maxH; int incW, incH; int minAspectX, minAspectY; int maxAspectX, maxAspectY; int baseW, baseH; int borderW, borderH; /* size of frame border */ void (*callback)(); void *cbarg; StatusWinInfo *statuswindow; char *statusfmt; int gravity; /* see note above */ Bool mouse; /* using mouse? */ } ResizeClosure; /* * Macro for adjusting the size of a window to its resize increment. First, * assigns diff to be the difference between the size and the next lesser * incremental size. If diff is greater than half the incremental * size, adjust the size upward to the next greater increment, otherwise * adjust downward. THIS MACRO ALTERS ITS FIRST ARGUMENT. * * size is the window size to be adjusted * base is base size, to be subtracted off before modulo is done * i is the incremental size */ #define INCADJ(size, base, i) \ { \ int diff; \ diff = ((size) - (base)) % (i); \ (size) += (diff > (i)/2) ? (i)-diff : -diff; \ } static void resizeDraw(rstuff) ResizeClosure *rstuff; { drawDouble(rstuff->cli->dpy, rstuff->cli->scrInfo, WinGC(rstuff->cli->framewin, ROOT_GC), rstuff->winX, rstuff->winY, rstuff->winW, rstuff->winH); } static void resizePaintStatus(rstuff) ResizeClosure *rstuff; { Text buf[30]; int w, h; if (!rstuff->statuswindow) return; w = rstuff->winW - rstuff->borderW; h = rstuff->winH - rstuff->borderH; if (rstuff->baseProvided) { w -= rstuff->baseW; h -= rstuff->baseH; } TextSPrintf(buf, rstuff->statusfmt, w / rstuff->incW, h / rstuff->incH); paintStatusWindow(rstuff->statuswindow, buf); } static void resizeDone(dpy, e, w, rstuff, doit) Display *dpy; XEvent *e; WinGeneric *w; ResizeClosure *rstuff; Bool doit; { if (rstuff->drawn) resizeDraw(rstuff); XUngrabPointer(dpy, e->xbutton.time); XUngrabKeyboard(dpy, e->xbutton.time); XUngrabServer(dpy); if (doit) { if (GRV.RaiseOnResize) GFrameSetStack(rstuff->cli->framewin, CWStackMode, Above, None); GFrameSetConfig(rstuff->cli->framewin, rstuff->winX, rstuff->winY, rstuff->winW, rstuff->winH); } if (rstuff->callback != NULL) (*rstuff->callback)(dpy, rstuff->cbarg); destroyStatusWindow(rstuff->statuswindow); UninstallInterposer(); } static void resizeMotion(rstuff, x, y) ResizeClosure *rstuff; int x, y; { int dx, dy, dW, dH, tmpW, tmpH, newW, newH, idiff; unsigned long aspect; dx = x - rstuff->curX; dy = y - rstuff->curY; if (ABS(dx) <= GRV.MoveThreshold && ABS(dy) <= GRV.MoveThreshold && !rstuff->drawn) return; if (rstuff->mouse) { if (rstuff->constraint == EitherConstrained) { if (ABS(rstuff->origX - x) > ABS(rstuff->origY - y)) rstuff->constraint = HorizConstrained; else rstuff->constraint = VertConstrained; } if (rstuff->constraint == HorizConstrained) { y = rstuff->origY; dy = y - rstuff->curY; } else if (rstuff->constraint == VertConstrained) { x = rstuff->origX; dx = x - rstuff->curX; } } newW = rstuff->winW; newH = rstuff->winH; if (rstuff->moving) { if (dx == 0 && dy == 0) return; if (rstuff->drawn) resizeDraw(rstuff); rstuff->winX += dx; rstuff->winY += dy; rstuff->curX += dx; rstuff->curY += dy; resizeDraw(rstuff); rstuff->drawn = True; return; } switch (rstuff->gravity) { case NorthWestGravity: newW -= dx; newH -= dy; break; case NorthGravity: newH -= dy; break; case NorthEastGravity: newW += dx; newH -= dy; break; case WestGravity: newW -= dx; break; case CenterGravity: break; case EastGravity: newW += dx; break; case SouthWestGravity: newW -= dx; newH += dy; break; case SouthGravity: newH += dy; break; case SouthEastGravity: newW += dx; newH += dy; break; } /* * Convert from frame size to pane size, apply the constraints, then * convert back to frame size. */ newW -= rstuff->borderW; newH -= rstuff->borderH; INCADJ(newW, rstuff->baseW, rstuff->incW); INCADJ(newH, rstuff->baseH, rstuff->incH); newW = MAX(rstuff->minW, MIN(rstuff->maxW, newW)); newH = MAX(rstuff->minH, MIN(rstuff->maxH, newH)); if (rstuff->useAspect && newW * rstuff->maxAspectY > newH * rstuff->maxAspectX) { if (rstuff->maxAspectX > rstuff->maxAspectY) { /* max aspect is wider than tall; increase height. */ newH = (newW * rstuff->maxAspectY) / rstuff->maxAspectX; if (newH > rstuff->maxH) { newH = rstuff->maxH; newW = (newH * rstuff->maxAspectX) / rstuff->maxAspectY; } } else { /* max aspect is taller than wide; decrease width. */ newW = (newH * rstuff->maxAspectX) / rstuff->maxAspectY; if (newW < rstuff->minW) { newW = rstuff->minW; newH = (newW * rstuff->maxAspectY) / rstuff->maxAspectX; } } } if (rstuff->useAspect && newW * rstuff->minAspectY < newH * rstuff->minAspectX) { if (rstuff->minAspectX > rstuff->minAspectY) { /* min aspect is wider than tall; decrease height. */ newH = (newW * rstuff->minAspectY) / rstuff->minAspectX; if (newH < rstuff->minH) { newH = rstuff->minH; newW = (newH * rstuff->minAspectX) / rstuff->minAspectY; } } else { /* min aspect is taller than wide; increase width. */ newW = (newH * rstuff->minAspectX) / rstuff->minAspectY; if (newW > rstuff->maxW) { newW = rstuff->maxW; newH = (newW * rstuff->minAspectY) / rstuff->minAspectX; } } } newW += rstuff->borderW; newH += rstuff->borderH; /* * Calculate the change in size (if any) and update the window's origin * (winX, winY) depending on which corner is being moved. Also, update * the virtual pointer location (curX, curY). Don't draw anything if the * size hasn't changed. */ dW = newW - rstuff->winW; dH = newH - rstuff->winH; if (dW == 0 && dH == 0) return; if (rstuff->drawn) resizeDraw(rstuff); switch (rstuff->gravity) { case NorthWestGravity: rstuff->winX -= dW; rstuff->winY -= dH; rstuff->curX -= dW; rstuff->curY -= dH; break; case NorthGravity: rstuff->winX -= dW / 2; rstuff->winY -= dH; rstuff->curY -= dH; break; case NorthEastGravity: rstuff->winY -= dH; rstuff->curX += dW; rstuff->curY -= dH; break; case WestGravity: rstuff->winX -= dW; rstuff->winY -= dH / 2; rstuff->curX -= dW; break; case CenterGravity: rstuff->winX -= dW / 2; rstuff->winY -= dH / 2; break; case EastGravity: rstuff->winY -= dH / 2; rstuff->curX += dW; break; case SouthWestGravity: rstuff->winX -= dW; rstuff->curX -= dW; rstuff->curY += dH; break; case SouthGravity: rstuff->winX -= dW / 2; rstuff->curY += dH; break; case SouthEastGravity: rstuff->curX += dW; rstuff->curY += dH; break; } rstuff->winW = newW; rstuff->winH = newH; resizeDraw(rstuff); resizePaintStatus(rstuff); rstuff->drawn = True; } void resizeDelta(rstuff, action) ResizeClosure *rstuff; ResizeAction action; { int dx, dy; if (rstuff->mouse) return; if (action & RS_ISVERT) { switch (rstuff->gravity) { case WestGravity: case CenterGravity: case EastGravity: rstuff->gravity += (action & RS_ISDOWN) ? 3 : -3; break; } } else { switch (rstuff->gravity) { case NorthGravity: case CenterGravity: case SouthGravity: rstuff->gravity += (action & RS_ISRIGHT) ? 1 : -1; break; } } /* generate a delta vector based on which edge is being moved */ dx = ResizeDeltas[action].x; dy = ResizeDeltas[action].y; dx *= rstuff->incW; dy *= rstuff->incH; resizeMotion(rstuff, rstuff->curX + dx, rstuff->curY + dy); } static int resizeInterposer(dpy, e, w, rstuff) Display *dpy; XEvent *e; WinGeneric *w; ResizeClosure *rstuff; { int dx, dy; unsigned int mask; SemanticAction action; XEvent nextevent; switch (e->type) { case ButtonPress: if (!FirstButtonDown(e)) break; switch (ResolveMouseBinding(dpy, e, ModMaskMap[MOD_CONSTRAIN] | ModMaskMap[MOD_INVERT])) { case ACTION_SELECT: rstuff->mouse = True; rstuff->curX = rstuff->origX = e->xbutton.x_root; rstuff->curY = rstuff->origY = e->xbutton.y_root; if (e->xbutton.state & ModMaskMap[MOD_CONSTRAIN]) rstuff->constraint = EitherConstrained; if (e->xbutton.state & ModMaskMap[MOD_INVERT]) rstuff->moving = True; rstuff->gravity = NorthWestGravity; if (e->xbutton.y_root > rstuff->winY + (rstuff->winH / 2)) rstuff->gravity = SouthWestGravity; if (e->xbutton.x_root > rstuff->winX + (rstuff->winW / 2)) rstuff->gravity += 2; /* turns any west into any east */ resizeMotion(rstuff, e->xbutton.x_root, e->xbutton.y_root); break; default: resizeDone(dpy, e, w, rstuff, False); break; } break; case ButtonRelease: if (AllButtonsUp(e)) resizeDone(dpy, e, w, rstuff, True); break; case MotionNotify: if (!e->xmotion.same_screen || !rstuff->mouse) break; /* * Motion compression. If the next event is a MotionNotify, * ignore this one. */ if (XEventsQueued(dpy, QueuedAfterReading) > 0 && (XPeekEvent(dpy, &nextevent), nextevent.type == MotionNotify)) break; resizeMotion(rstuff, e->xmotion.x_root, e->xmotion.y_root); break; case KeyPress: action = FindKeyboardAction(dpy, e); switch (action) { case ACTION_STOP: resizeDone(dpy, e, w, rstuff, False); break; case ACTION_UP: resizeDelta(rstuff, RS_UP); break; case ACTION_DOWN: resizeDelta(rstuff, RS_DOWN); break; case ACTION_LEFT: resizeDelta(rstuff, RS_LEFT); break; case ACTION_RIGHT: resizeDelta(rstuff, RS_RIGHT); break; case ACTION_JUMP_UP: resizeDelta(rstuff, RS_J_UP); break; case ACTION_JUMP_DOWN: resizeDelta(rstuff, RS_J_DOWN); break; case ACTION_JUMP_LEFT: resizeDelta(rstuff, RS_J_LEFT); break; case ACTION_JUMP_RIGHT: resizeDelta(rstuff, RS_J_RIGHT); break; case ACTION_EXEC_DEFAULT: resizeDone(dpy, e, w, rstuff, True); break; default: mask = FindModifierMask(e->xkey.keycode); if (mask == ModMaskMap[MOD_CONSTRAIN] && rstuff->mouse) { rstuff->constraint = EitherConstrained; resizeMotion(rstuff, e->xkey.x_root, e->xkey.y_root); } else if (mask == ModMaskMap[MOD_INVERT]) { rstuff->moving = True; } else { KeyBeep(dpy, e); } break; } break; case KeyRelease: mask = FindModifierMask(e->xkey.keycode); if (mask == ModMaskMap[MOD_CONSTRAIN] && rstuff->mouse) { rstuff->constraint = Unconstrained; resizeMotion(rstuff, e->xkey.x_root, e->xkey.y_root); } else if (mask == ModMaskMap[MOD_INVERT]) rstuff->moving = False; break; case Expose: return DISPOSE_DISPATCH; default: return DISPOSE_DEFER; } return DISPOSE_USED; } /* * Install an interposer for resizing with the mouse. */ void UserResizeWin(cli, trigger, corner, callback, cbarg) Client *cli; XEvent *trigger; WhichResize corner; void (*callback)(); void *cbarg; { static ResizeClosure rstuff; XSizeHints *sh = cli->normHints; Window root = WinRootID(cli->framewin); Time timestamp; int frameMinWidth, frameMinHeight; if (trigger == NULL || trigger->type == KeyPress) { if (trigger == NULL) timestamp = CurrentTime; else timestamp = trigger->xkey.time; rstuff.mouse = False; rstuff.origX = rstuff.curX = cli->framewin->core.x; rstuff.origY = rstuff.curY = cli->framewin->core.y; } else { /* it's a button press */ timestamp = trigger->xbutton.time; rstuff.mouse = True; if (trigger->xbutton.state & ModMaskMap[MOD_CONSTRAIN]) rstuff.constraint = EitherConstrained; else rstuff.constraint = Unconstrained; if (trigger->xbutton.state & ModMaskMap[MOD_INVERT]) rstuff.moving = True; else rstuff.moving = False; rstuff.origX = rstuff.curX = trigger->xbutton.x_root; rstuff.origY = rstuff.curY = trigger->xbutton.y_root; } switch (corner) { case upleft: rstuff.gravity = NorthWestGravity; break; case upright: rstuff.gravity = NorthEastGravity; break; case lowleft: rstuff.gravity = SouthWestGravity; break; case lowright: rstuff.gravity = SouthEastGravity; break; case keyevent: rstuff.gravity = CenterGravity; break; } /* Grab the pointer to change the cursor and confine to the root window. */ if (XGrabPointer(cli->dpy, root, True, ButtonPressMask | ButtonReleaseMask | PointerMotionMask, GrabModeAsync, GrabModeAsync, root, GRV.ResizePointer, timestamp) != GrabSuccess) { ErrorWarning(GetString("failed to grab pointer")); return; } if (XGrabKeyboard(cli->dpy, root, False, GrabModeAsync, GrabModeAsync, timestamp) != GrabSuccess) { /* note: not fatal */ ErrorWarning(GetString("failed to grab keyboard")); } XGrabServer(cli->dpy); /* Fill in the closure for the interposer. */ rstuff.drawn = False; rstuff.cli = cli; rstuff.winX = cli->framewin->core.x; rstuff.winY = cli->framewin->core.y; rstuff.winW = cli->framewin->core.width; rstuff.winH = cli->framewin->core.height; rstuff.callback = callback; rstuff.cbarg = cbarg; /* * Look at the client's size hints and update the closure appropriately. */ rstuff.minW = rstuff.minH = 1; rstuff.maxW = rstuff.maxH = 32767; /* REMIND: max value of signed short */ rstuff.incW = rstuff.incH = 1; rstuff.useAspect = False; rstuff.baseW = rstuff.baseH = 0; if (sh != NULL) { if (sh->flags & PMinSize) { rstuff.minW = sh->min_width; rstuff.minH = sh->min_height; } else if (sh->flags & PBaseSize) { rstuff.minW = MAX(1,sh->base_width); rstuff.minH = MAX(1,sh->base_height); } if (sh->flags & PMaxSize) { rstuff.maxW = sh->max_width; rstuff.maxH = sh->max_height; } if (sh->flags & PResizeInc) { rstuff.incW = sh->width_inc; rstuff.incH = sh->height_inc; } if (sh->flags & PAspect) { rstuff.useAspect = True; rstuff.minAspectX = sh->min_aspect.x; rstuff.minAspectY = sh->min_aspect.y; rstuff.maxAspectX = sh->max_aspect.x; rstuff.maxAspectY = sh->max_aspect.y; } if (sh->flags & PBaseSize) { rstuff.baseW = sh->base_width; rstuff.baseH = sh->base_height; rstuff.baseProvided = True; } else if (sh->flags & PMinSize) { rstuff.baseW = sh->min_width; rstuff.baseH = sh->min_height; rstuff.baseProvided = False; } } /* figure in the size of the frame decorations */ rstuff.borderW = FrameWidthLeft(cli->framewin) + FrameWidthRight(cli->framewin); rstuff.borderH = FrameHeightTop(cli->framewin) + FrameHeightBottom(cli->framewin); FrameMinSize(cli->framewin, &frameMinWidth, &frameMinHeight); frameMinWidth -= rstuff.borderW; frameMinHeight -= rstuff.borderH; rstuff.minW = MAX(rstuff.minW, frameMinWidth); rstuff.minH = MAX(rstuff.minH, frameMinHeight); /* map the geom window and draw the initial outline, if necessary */ if (GRV.ShowResizeGeometry) { Text proto[50]; rstuff.statusfmt = GetString("size: %4d, %4d"); TextSPrintf(proto, rstuff.statusfmt, 9999, 9999); rstuff.statuswindow = createStatusWindow(cli->dpy, cli->scrInfo, proto); } else { rstuff.statuswindow = NULL; } if (trigger == NULL || trigger->type == KeyPress) { resizeDraw(&rstuff); rstuff.drawn = True; } resizePaintStatus(&rstuff); InstallInterposer(resizeInterposer, &rstuff); } /* ===== root bounding box ================================================ */ typedef struct _rootboxclosure { int x0, y0; int x, y; unsigned int w, h; WinRoot *rootWin; ScreenInfo *scrInfo; GC rootGC; void *closure; void (*callback)(); } RootBoxClosure; static int rootBoxInterposer(dpy, event, w, rbc) Display *dpy; XEvent *event; WinGeneric *w; RootBoxClosure *rbc; { XEvent nextevent; register int ex, ey; switch (event->type) { case ButtonPress: return DISPOSE_USED; case MotionNotify: /* if the event is off the screen, ignore it */ if (event->xmotion.root != rbc->scrInfo->rootid) return DISPOSE_USED; /* * Motion compression. If the next event is a MotionNotify, * ignore this one. */ if (XEventsQueued(dpy, QueuedAfterReading) > 0 && (XPeekEvent(dpy, &nextevent), nextevent.type == MotionNotify)) { return DISPOSE_USED; } /* erase old box */ drawDouble(dpy, rbc->scrInfo, rbc->rootGC, rbc->x, rbc->y, rbc->w, rbc->h); /* update closure with new position */ ex = event->xmotion.x_root; ey = event->xmotion.y_root; if (ex > rbc->x0) { rbc->x = rbc->x0; rbc->w = ex - rbc->x; } else { rbc->x = ex; rbc->w = rbc->x0 - rbc->x; } if (ey > rbc->y0) { rbc->y = rbc->y0; rbc->h = ey - rbc->y; } else { rbc->y = ey; rbc->h = rbc->y0 - rbc->y; } /* draw new box */ drawDouble(dpy, rbc->scrInfo, rbc->rootGC, rbc->x, rbc->y, rbc->w, rbc->h); return DISPOSE_USED; case ButtonRelease: if (!AllButtonsUp(event)) return DISPOSE_USED; break; case KeyPress: if (FindKeyboardAction(dpy, event) != ACTION_STOP) { KeyBeep(dpy,event); return DISPOSE_USED; } break; default: return DISPOSE_DEFER; } /* * erase outline, let go of server, call the callback */ drawDouble(dpy, rbc->scrInfo, rbc->rootGC, rbc->x, rbc->y, rbc->w, rbc->h); XUngrabServer(dpy); XUngrabPointer(dpy, CurrentTime); XUngrabKeyboard(dpy, CurrentTime); (*rbc->callback)(dpy, rbc->rootWin, rbc->x, rbc->y, rbc->w, rbc->h, event->xbutton.time, rbc->closure); UninstallInterposer(); return DISPOSE_USED; } /* * TraceRootBox -- trace an XOR box with the initial point specified * by pEvent, which is assumed to be a ButtonPress event. Call the * callback function when done. */ void TraceRootBox(dpy, winInfo, pEvent, callback, closure) Display *dpy; WinRoot *winInfo; XEvent *pEvent; void (*callback)(); void *closure; { static RootBoxClosure rbc; Window rootID = WinRootID(winInfo); /* Change and confine the cursor. */ if (XGrabPointer(dpy, rootID, True, ButtonReleaseMask | PointerMotionMask, GrabModeAsync, GrabModeAsync, rootID, GRV.BasicPointer, pEvent->xbutton.time) != GrabSuccess) { ErrorWarning(GetString("failed to grab pointer")); return; } if (XGrabKeyboard(dpy, rootID, False, GrabModeAsync, GrabModeAsync, pEvent->xbutton.time) != GrabSuccess) { /* note: not fatal */ ErrorWarning(GetString("failed to grab keyboard")); } rbc.x = rbc.x0 = pEvent->xbutton.x_root; rbc.y = rbc.y0 = pEvent->xbutton.y_root; rbc.w = rbc.h = 0; rbc.rootWin = winInfo; rbc.scrInfo = winInfo->core.client->scrInfo; rbc.rootGC = WinGC(winInfo, ROOT_GC); rbc.callback = callback; rbc.closure = closure; /* Grab the server, then draw the initial outline. */ XGrabServer(dpy); drawDouble(dpy, rbc.scrInfo, WinGC(winInfo, ROOT_GC), rbc.x, rbc.y, 0, 0); InstallInterposer(rootBoxInterposer, &rbc); return; } xview-3.2p1.4/clients/olwm/notice.c100644 1750 1750 54551 5413747427 14535 0ustar mbmb#ident "@(#)notice.c 26.32 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #include #include #include #include #include #include "i18n.h" /* needed before olgx.h */ #include #include "ollocale.h" #include "olwm.h" #include "screen.h" #include "notice.h" #include "globals.h" #include "mem.h" #include "events.h" #include "error.h" extern int PointInRect(); extern SemanticAction FindKeyboardAction(); /* difference between inside beveled box and outside beveled box */ #define BORDER_WIDTH 5 #define MIN_BOX_SIDE ( 15 + BORDER_WIDTH ) /* betw side & text */ #define MIN_BOX_TOP ( 15 + BORDER_WIDTH ) /* betw top & text */ #define MIN_BOX_BOTTOM ( 15 + BORDER_WIDTH ) /* betw bot & text */ #define MIN_BUTTON_SPACE 15 /* space between buttons */ #define MIN_BUTTON_VSPACE 15 /* space above buttons */ #define MIN_STRING_VSPACE 5 /* space above/below strings */ #define OUTLINE_WIDTH 2 /* thickness of 2D border */ typedef struct { int x; int y; unsigned int width; /* space taken up by text */ unsigned int fullWidth; /* width including endcaps */ char accelerator; /* mouseless accelerator key */ } noticeButtonDetails; typedef struct { Display *dpy; ScreenInfo *scrInfo; NoticeBox *noticeBox; int numStrings; Text **stringText; Window window; unsigned int buttonHeight; unsigned int fontHeight; unsigned int boxHeight; unsigned int boxWidth; int x; int y; int totalButtonWidth; noticeButtonDetails *buttonInfo; int buttonSelected; int buttonFocus; int buttonDown; int buttonDrawnDown; void (*noticeCallback)(); int pointerX,pointerY; Bool ignoreExpose; Bool warped; } noticeBoxDetails; static void calculateBoxDimensions(); static void drawNoticeBox(); static void noticeDone(); static int noticeInterposer(); noticeBoxDetails *CreateNoticeBox(); void DestroyNoticeBox(); void ShowNoticeBox(); /****************************************************************** * Private Draw Functions ******************************************************************/ /* * calculateBoxDimensions -- determine size of box needed, etc. based on * information passed in in noticeBox structure. Return * values in boxDetails structure. */ static void calculateBoxDimensions( noticeBox, boxDetails ) NoticeBox *noticeBox; noticeBoxDetails *boxDetails; { int screen = boxDetails->scrInfo->screen; unsigned int displayWidth, displayHeight; int longestStringLength = 0; int totalButtonWidth = 0; Graphics_info *gisButton = boxDetails->scrInfo->gi[BUTTON_GINFO]; int ii; Text *tok,*str; static Text sep[2] = { '\n', 0 }; boxDetails->fontHeight = FontHeight(TextFont); /* calculate the width of the text which appears inside the button */ for ( ii = 0 ; ii < noticeBox->numButtons ; ii++ ) { boxDetails->buttonInfo[ii].width = FontWidth(ButtonFont,noticeBox->buttonText[ii], TextLen(noticeBox->buttonText[ii])); boxDetails->buttonInfo[ii].fullWidth = boxDetails->buttonInfo[ii].width + 2 * ButtonEndcap_Width(gisButton); } /* make the key accelerators from the button text string */ for ( ii = 0 ; ii < noticeBox->numButtons ; ii++ ) { boxDetails->buttonInfo[ii].accelerator = TextTolower(*noticeBox->buttonText[ii]); } /* add together widths of all the buttons */ for ( ii = 0 ; ii < noticeBox->numButtons ; ii++ ) totalButtonWidth += boxDetails->buttonInfo[ii].fullWidth; boxDetails->totalButtonWidth = totalButtonWidth; /* * Split the msg string into individual strings using newlines */ /* count the newlines in the msg starting with one */ for (ii = 1, str = noticeBox->msgText; *str != '\0'; str++) { if (*str == '\n') ii++; } /* alloc the string pointer array */ boxDetails->numStrings = ii; boxDetails->stringText = (Text **)MemAlloc(boxDetails->numStrings * sizeof(Text *)); /* split the msg string into separate string in stringText array */ str = MemNewText(noticeBox->msgText); for (ii=0, tok=TextTok(str,sep); tok; tok=TextTok((Text *)NULL,sep)) { boxDetails->stringText[ii++] = MemNewText(tok); } MemFree(str); /* figure out which descriptive string is longest */ for ( ii = 0 ; ii < boxDetails->numStrings ; ii++ ) { longestStringLength = MAX(longestStringLength, FontWidth(TextFont,boxDetails->stringText[ii], TextLen(boxDetails->stringText[ii]))); } /* * REMIND: this calculation assumes all the buttons are * on the same line */ boxDetails->boxWidth = 2 * MIN_BOX_SIDE + MAX( longestStringLength, totalButtonWidth + /* amount of space between all the buttons */ MIN_BUTTON_SPACE * (noticeBox->numButtons - 1) ); boxDetails->buttonHeight = Button_Height(gisButton); boxDetails->boxHeight = MIN_BOX_TOP + MIN_BOX_BOTTOM + ( boxDetails->numStrings * boxDetails->fontHeight ) /* amount of space vertically between all the strings */ + ( (boxDetails->numStrings - 1) * MIN_STRING_VSPACE ) + MIN_BUTTON_VSPACE + boxDetails->buttonHeight; displayWidth = DisplayWidth( boxDetails->dpy, screen ); displayHeight = DisplayHeight( boxDetails->dpy, screen ); /* if not set, create default "origin" for box: centered */ boxDetails->x = ( noticeBox->boxX == -1 ) ? (int)( displayWidth - boxDetails->boxWidth )/2 : noticeBox->boxX ; boxDetails->y = ( noticeBox->boxY == -1 ) ? (int)( displayHeight - boxDetails->boxHeight )/2 : noticeBox->boxY ; } /* * drawLocationCursor */ static void drawLocationCursor(details,btn,erase) noticeBoxDetails *details; int btn; Bool erase; { static XPoint pts[] = { 0,0, 6,11, -12,0 }; GC gc ; if (GRV.Mouseless != KbdFull) return; pts[0].x = details->buttonInfo[btn].x + details->buttonInfo[btn].fullWidth/2; pts[0].y = details->buttonInfo[btn].y + details->buttonHeight - 7; if (erase) gc = details->scrInfo->gc[WINDOW_GC]; else gc = details->scrInfo->gc[FOREGROUND_GC]; XFillPolygon(details->dpy,details->window, gc,pts,3,Convex,CoordModePrevious); } /* * drawButton */ static void drawButton(noticeBox,details,btn,btnState) NoticeBox *noticeBox; noticeBoxDetails *details; int btn; int btnState; { Graphics_info *gisButton = details->scrInfo->gi[BUTTON_GINFO]; if (noticeBox->defaultButton == btn) btnState |= OLGX_DEFAULT; if ((btnState & OLGX_ERASE) && details->buttonFocus == btn) drawLocationCursor(details,btn,True); olgx_draw_button(gisButton,details->window, details->buttonInfo[btn].x,details->buttonInfo[btn].y, details->buttonInfo[btn].fullWidth,0, noticeBox->buttonText[btn],btnState | TextOLGX); if ( !(btnState & OLGX_ERASE) && details->buttonFocus == btn) drawLocationCursor(details,btn,False); } /* * drawNoticeBox -- draw box outline, strings, and buttons using information * in noticeBox and boxDetails structures which are passed in. * Location of buttons (x, y) are set in boxDetails structure * for use later (mouse warping, determining pointer position). */ static void drawNoticeBox( noticeBox, boxDetails ) NoticeBox *noticeBox; noticeBoxDetails *boxDetails; { int ii; int buttonX, buttonY; int buttonState; /* OLGX_NORMAL or OLGX_DEFAULT */ Graphics_info *gisText = boxDetails->scrInfo->gi[TEXT_GINFO]; Graphics_info *gisButton = boxDetails->scrInfo->gi[BUTTON_GINFO]; /* frame outline */ if (GRV.F3dFrames) { /* fill it in, because olgx doesn't fill in 2D */ if (!boxDetails->scrInfo->use3D) XFillRectangle(boxDetails->dpy, boxDetails->window, boxDetails->scrInfo->gc[WINDOW_GC], 0, 0, boxDetails->boxWidth, boxDetails->boxHeight); olgx_draw_box(gisButton, boxDetails->window, 0, 0, boxDetails->boxWidth, boxDetails->boxHeight, OLGX_NORMAL, True ); } else { GC gc = boxDetails->scrInfo->gc[BORDER_GC]; XFillRectangle(boxDetails->dpy, boxDetails->window, boxDetails->scrInfo->gc[WINDOW_GC], 0, 0, boxDetails->boxWidth, boxDetails->boxHeight); XFillRectangle(boxDetails->dpy, boxDetails->window, gc, 0, 0, boxDetails->boxWidth, OUTLINE_WIDTH); XFillRectangle(boxDetails->dpy, boxDetails->window, gc, 0, boxDetails->boxHeight - OUTLINE_WIDTH, boxDetails->boxWidth, OUTLINE_WIDTH); XFillRectangle(boxDetails->dpy, boxDetails->window, gc, 0, OUTLINE_WIDTH, OUTLINE_WIDTH, boxDetails->boxHeight - 2*OUTLINE_WIDTH); XFillRectangle(boxDetails->dpy, boxDetails->window, gc, boxDetails->boxWidth - OUTLINE_WIDTH, OUTLINE_WIDTH, OUTLINE_WIDTH, boxDetails->boxHeight - 2*OUTLINE_WIDTH); } if (boxDetails->scrInfo->use3D) { /* REMIND: this is a hack to draw a chiseled box */ olgx_draw_box(gisButton, boxDetails->window, BORDER_WIDTH, BORDER_WIDTH, boxDetails->boxWidth - 2 * BORDER_WIDTH, boxDetails->boxHeight - 2 * BORDER_WIDTH, OLGX_INVOKED, False); olgx_draw_box(gisButton, boxDetails->window, BORDER_WIDTH+1, BORDER_WIDTH+1, boxDetails->boxWidth - 2 * BORDER_WIDTH - 2, boxDetails->boxHeight - 2 * BORDER_WIDTH - 2, OLGX_NORMAL, False); } else { olgx_draw_box(gisButton, boxDetails->window, BORDER_WIDTH, BORDER_WIDTH, boxDetails->boxWidth - 2 * BORDER_WIDTH, boxDetails->boxHeight - 2 * BORDER_WIDTH, OLGX_NORMAL, True); } /* draw descriptive text * REMIND: all strings are along the left edge (MIN_BOX_SIDE) */ for ( ii = 0 ; ii < boxDetails->numStrings ; ii++ ) olgx_draw_text(gisText, boxDetails->window, boxDetails->stringText[ii], MIN_BOX_SIDE, /* need to move each line further down the screen */ MIN_BOX_TOP + FontAscent(TextFont) * ( ii + 1 ) + ( MIN_STRING_VSPACE * ii ), 0, OLGX_NORMAL | TextOLGX ); /* put buttons in - notice that it's a single row */ /* row of buttons should be centered within available space, * assuming MIN_BUTTON_SPACE between each of the them */ buttonX = ( boxDetails->boxWidth - (boxDetails->totalButtonWidth + MIN_BUTTON_SPACE * (noticeBox->numButtons - 1)) )/2; /* this calculates from the bottom of the box */ buttonY = ( boxDetails->boxHeight - ( MIN_BOX_BOTTOM + boxDetails->buttonHeight ) ); for ( ii = 0 ; ii < noticeBox->numButtons ; ii++ ) { if ( noticeBox->defaultButton == ii ) buttonState = OLGX_DEFAULT; else buttonState = OLGX_NORMAL; /* save button's x, y values for use later */ boxDetails->buttonInfo[ii].x = buttonX; boxDetails->buttonInfo[ii].y = buttonY; olgx_draw_button(gisButton, boxDetails->window, buttonX, buttonY, boxDetails->buttonInfo[ii].fullWidth, 0, noticeBox->buttonText[ii], buttonState | TextOLGX); /* set up buttonX for next button */ buttonX = buttonX + boxDetails->buttonInfo[ii].fullWidth + MIN_BUTTON_SPACE; } drawLocationCursor(boxDetails,boxDetails->buttonFocus,False); } /****************************************************************** * Private Event Functions ******************************************************************/ /* * setButtonFocus - sets the focus button to the passed value and * redraws the necessary buttons. */ static void setButtonFocus(details,newFocus) noticeBoxDetails *details; int newFocus; { int oldFocus = details->buttonFocus; drawButton(details->noticeBox,details,oldFocus,OLGX_ERASE); details->buttonFocus = newFocus; drawButton(details->noticeBox,details,newFocus,OLGX_NORMAL); } /* * moveButtonFocus - moves the focus button in the indicated direction * and wraps around then first and last buttons. */ static void moveButtonFocus(details,dir) noticeBoxDetails *details; int dir; { NoticeBox *noticeBox = details->noticeBox; int newFocus = details->buttonFocus; if (noticeBox->numButtons == 1) return; newFocus += dir; if (newFocus >= noticeBox->numButtons) newFocus = 0; else if (newFocus < 0) newFocus = noticeBox->numButtons-1; setButtonFocus(details,newFocus); } /* * keyAccelerator - if the key event matches one of the button accelerators * return True and set button to the accelerated button. */ static Bool keyAccelerator(key,details,button) XKeyEvent *key; noticeBoxDetails *details; int *button; /* RETURN */ { NoticeBox *noticeBox = details->noticeBox; char accel,str[10]; KeySym keySym; int keyCount,i; keyCount = XLookupString(key,str,10,&keySym,NULL); if (keyCount != 1) return False; accel = TextTolower(str[0]); for (i = 0; i < noticeBox->numButtons; i++) { if (accel == details->buttonInfo[i].accelerator) { *button = i; return True; } } return False; } /* * pointInButton - True if the button is it the passed button number */ static Bool pointInButton(event,details,btn) XButtonEvent *event; noticeBoxDetails *details; int btn; { return PointInRect(event->x,event->y, details->buttonInfo[btn].x,details->buttonInfo[btn].y, details->buttonInfo[btn].fullWidth,details->buttonHeight); } /* * noticeInterposer - event handler for notices */ static int noticeInterposer(dpy,event,win,details) Display *dpy; XEvent *event; void *win; noticeBoxDetails *details; { NoticeBox *noticeBox = details->noticeBox; int ii,button,buttonState; SemanticAction action; /* * Discard synthetic events */ if (event->xany.send_event) return DISPOSE_USED; switch (event->type) { case ButtonPress: /* first check to see if we're even in the notice box */ if (!PointInRect(event->xbutton.x,event->xbutton.y, 0,0,details->boxWidth,details->boxHeight)) break; /* if on one of the notice buttons, depress it */ for ( ii = 0 ; ii < noticeBox->numButtons ; ii++ ) { if (pointInButton(event,details,ii)) { details->buttonDown = ii; details->buttonDrawnDown = True; drawButton(noticeBox,details,ii,OLGX_INVOKED); break; } } break; case ButtonRelease: if (details->buttonDown < 0) break; /* only a depressed button can be selected */ if (pointInButton(event,details,details->buttonDown)) { details->buttonSelected = details->buttonDown; noticeDone(dpy,details); /* else erase the depressed button and now unselected */ } else { drawButton(noticeBox,details, details->buttonDown,OLGX_ERASE); details->buttonDown = -1; details->buttonDrawnDown = False; } break; case MotionNotify: if ( details->buttonDown < 0 ) break; /* if moved out of depressed button erase it and cancel */ if (!pointInButton(event,details,details->buttonDown)) { drawButton(noticeBox,details, details->buttonDown,OLGX_ERASE); details->buttonDown = -1; details->buttonDrawnDown = False; } break; case KeyPress: action = FindKeyboardAction(dpy,event); /* If not in full mouseless, then only process default action */ if (GRV.Mouseless != KbdFull && action != ACTION_EXEC_DEFAULT) { KeyBeep(dpy,event); return DISPOSE_USED; } switch (action) { case ACTION_EXEC_DEFAULT: details->buttonSelected = noticeBox->defaultButton; noticeDone(dpy,details); break; case ACTION_CANCEL: case ACTION_STOP: details->buttonSelected = NOTICE_CANCEL; noticeDone(dpy,details); break; case ACTION_SELECT: details->buttonSelected = details->buttonFocus; noticeDone(dpy,details); break; case ACTION_NEXT_ELEMENT: case ACTION_RIGHT: moveButtonFocus(details,1); break; case ACTION_PREVIOUS_ELEMENT: case ACTION_LEFT: moveButtonFocus(details,-1); break; case ACTION_FIRST_CONTROL: setButtonFocus(details,0); break; case ACTION_LAST_CONTROL: setButtonFocus(details,noticeBox->numButtons-1); break; default: if (keyAccelerator(event,details,&button)) setButtonFocus(details,button); else KeyBeep(dpy,event); break; } case KeyRelease: return DISPOSE_USED; case Expose: /* * Ignore the first expose, since we painted as soon as we * mapped. Otherwise, we really were exposed, so repaint. */ if (event->xexpose.count == 0) { if (details->ignoreExpose) details->ignoreExpose = False; else drawNoticeBox(details->noticeBox,details); } return DISPOSE_USED; default: return DISPOSE_DEFER; } return DISPOSE_USED; } /* * noticeDone() -- warp pointer back, release grabs, remove interposer, call * the callback, and clean up the notice window. */ static void noticeDone(dpy,boxDetails) Display *dpy; noticeBoxDetails *boxDetails; { if (boxDetails->warped) XWarpPointer(dpy,None,boxDetails->scrInfo->rootid, 0,0,0,0,boxDetails->pointerX,boxDetails->pointerY); if (GRV.ServerGrabs) XUngrabServer(dpy); XUngrabKeyboard(dpy,CurrentTime); XUngrabPointer(dpy,CurrentTime); UninstallInterposer(); if (boxDetails->noticeCallback) (*boxDetails->noticeCallback)(dpy,boxDetails->buttonSelected); DestroyNoticeBox(boxDetails); } /****************************************************************** * Global Functions ******************************************************************/ /* * CreateNoticeBox -- create the notice box/button details and the window */ noticeBoxDetails * CreateNoticeBox(dpy,screen,noticeBox,callback) Display *dpy; int screen; NoticeBox *noticeBox; void (*callback)(); { XSetWindowAttributes attributes; noticeBoxDetails *boxDetails; int i,defaultButton; /* * Create box details and button details */ boxDetails = MemNew(noticeBoxDetails); boxDetails->buttonInfo = (noticeButtonDetails *)MemAlloc( noticeBox->numButtons * (unsigned int)sizeof(noticeButtonDetails) ); boxDetails->noticeBox = MemNew(NoticeBox); /* * Init basic box details * - copy the passed in noticeBox since this is interposition */ boxDetails->dpy = dpy; boxDetails->scrInfo = GetScrInfoOfScreen(screen); boxDetails->noticeCallback = callback; *boxDetails->noticeBox = *noticeBox; boxDetails->noticeBox->buttonText = MemAlloc(noticeBox->numButtons * sizeof(Text *)); for (i = 0; i < noticeBox->numButtons; i++) { boxDetails->noticeBox->buttonText[i] = MemNewText(noticeBox->buttonText[i]); } boxDetails->noticeBox->msgText = MemNewText(noticeBox->msgText); /* figure out size to make window and where to put it */ calculateBoxDimensions(boxDetails->noticeBox,boxDetails); /* create the window */ attributes.border_pixel = 0; attributes.colormap = boxDetails->scrInfo->colormap; attributes.event_mask = ButtonPressMask | ButtonReleaseMask | PointerMotionMask | KeyPressMask | ExposureMask; attributes.save_under = True; boxDetails->window = ScreenCreateWindow(boxDetails->scrInfo, RootWindow(dpy, screen), boxDetails->x, boxDetails->y, boxDetails->boxWidth, boxDetails->boxHeight, CWBorderPixel | CWColormap | CWEventMask | CWSaveUnder, &attributes); boxDetails->buttonSelected = -1; boxDetails->buttonFocus = noticeBox->defaultButton; boxDetails->buttonDown = -1; boxDetails->buttonDrawnDown = False; boxDetails->ignoreExpose = True; boxDetails->warped = False; return boxDetails; } /* * DestroyNoticeBox -- destroys the notice box/button details and window */ void DestroyNoticeBox(boxDetails) noticeBoxDetails *boxDetails; { int i; ScreenDestroyWindow(boxDetails->scrInfo, boxDetails->window); for (i=0; inumStrings; i++) MemFree(boxDetails->stringText[i]); MemFree(boxDetails->stringText); MemFree(boxDetails->buttonInfo); for (i=0; inoticeBox->numButtons; i++) MemFree(boxDetails->noticeBox->buttonText[i]); MemFree(boxDetails->noticeBox->buttonText); MemFree(boxDetails->noticeBox->msgText); MemFree(boxDetails->noticeBox); MemFree(boxDetails); } /* * ShowNoticeBox -- Brings up the notice box */ void ShowNoticeBox(dpy,details) Display *dpy; noticeBoxDetails *details; { int defaultButton; int grabstat; /* * Map the window, then grab the pointer, the keyboard, and the * server. Return immediately if we couldn't grab the pointer, but * only issue a warning if we couldn't grab the keyboard. We need to * map the window first, otherwise the grabs will fail. */ XMapRaised(dpy,details->window); grabstat = XGrabPointer(dpy, details->window, False, ButtonPressMask | ButtonReleaseMask, GrabModeAsync, GrabModeAsync, None, None, CurrentTime); if (grabstat != GrabSuccess) { noticeDone(dpy, details); ErrorWarning(GetString("failed to grab pointer")); return; } grabstat = XGrabKeyboard(dpy, details->window, False, GrabModeAsync, GrabModeAsync, CurrentTime); if (grabstat != GrabSuccess) ErrorWarning(GetString("failed to grab keyboard")); if (GRV.ServerGrabs) XGrabServer(dpy); /* * Draw notice window immediately. The first expose event is ignored, * so there is no redundant repaint. */ drawNoticeBox(details->noticeBox,details); if (GRV.Beep != BeepNever) XBell(dpy,100); if (GRV.PopupJumpCursor) { int dummyInt; unsigned int dummyUInt; Window dummyWin; /* save current mouse position */ XQueryPointer(dpy,details->scrInfo->rootid, &dummyWin,&dummyWin, &(details->pointerX),&(details->pointerY), &dummyInt,&dummyInt,&dummyUInt); /* warp pointer to default button */ defaultButton = details->noticeBox->defaultButton; XWarpPointer(dpy,None,details->window,0,0,0,0, details->buttonInfo[defaultButton].x + details->buttonInfo[defaultButton].fullWidth/2, details->buttonInfo[defaultButton].y + details->buttonHeight/2 ); details->warped = True; } InstallInterposer(noticeInterposer,details); } /* * UseNoticeBox -- pop up a box which forces the user to answer * a question using the buttons * * Arguments: * dpy - pointer to current display * screen - index to current screen * noticeBox - pointer to NoticeBox structure: * numButtons (number of buttons) * defaultButton (index into buttonText for mouse warp) * buttonText (array of strings for button text) * msgText (msg string for description w/ newlines) * boxX (box origin (-1 =use default/centered)) * boxY (box origin (-1 =use default/centered)) * * Default placement of the box is centered in the display * Returns -1 on failure (0 for 0th button, 1 for 1st button, etc.) */ void UseNoticeBoxSync(dpy,screen,noticeBox,callback) Display *dpy; int screen; NoticeBox *noticeBox; void (*callback)(); { noticeBoxDetails *boxDetails; boxDetails = CreateNoticeBox(dpy,screen,noticeBox,callback); ShowNoticeBox(dpy,boxDetails); } /* * UseNoticeBox() -- NoticeBox with no callback */ int UseNoticeBox( dpy, screen, noticeBox ) Display *dpy; int screen; NoticeBox *noticeBox; { UseNoticeBoxSync(dpy,screen,noticeBox,NULL); } xview-3.2p1.4/clients/olwm/notice.h100644 1750 1750 1410 5413747427 14504 0ustar mbmb#ident "@(#)notice.h 26.12 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_NOTICE_H #define _OLWM_NOTICE_H #define NOTICE_CANCEL (-1) #define NOTICE_BUTTON_COUNT(b) sizeof((b))/sizeof(char *) typedef struct _noticeBox { int numButtons; /* number of buttons */ int defaultButton; /* index into buttonText array */ Text **buttonText; /* array of strings for button text */ Text *msgText; int boxX; /* box origin (-1 =use default/centered) */ int boxY; /* box origin (-1 =use default/centered) */ } NoticeBox; /* function declarations */ extern int UseNoticeBox(); #endif /* _OLWM_NOTICE_H */ xview-3.2p1.4/clients/olwm/olcursor.h100644 1750 1750 1132 5413747430 15066 0ustar mbmb#ident "@(#)olcursor.h 26.7 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_OLCURSOR_H #define _OLWM_OLCURSOR_H #define OLC_basic 0 #define OLC_move 2 #define OLC_copy 4 #define OLC_busy 6 #define OLC_stop 8 #define OLC_panning 10 #define OLC_target 12 #define OLC_nouse 14 #define OLC_ptr 16 #define OLC_beye 18 #define OLC_rtarr 20 #define OLC_xhair 22 #define OLC_xcurs 24 #define OLC_hourg 26 #endif /* _OLWM_OLCURSOR_H */ xview-3.2p1.4/clients/olwm/ollocale.h100644 1750 1750 2121 5413747430 15007 0ustar mbmb#ident "@(#)ollocale.h 1.10 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLLOCALE_H #define _OLLOCALE_H #ifdef OW_I18N_L3 #include /* * OPEN LOOK Locale Categories. Basic Locale must be first item * (least number). */ #define OLLC_LC_BASIC_LOCALE 0 #define OLLC_LC_DISPLAY_LANG 1 #define OLLC_LC_INPUT_LANG 2 #define OLLC_LC_NUMERIC 3 #define OLLC_LC_DATE_FORMAT 4 #define OLLC_LC_MAX 5 /* * The "ISO_LATIN_1" is default character set value * (GRV.CharacterSet), we could choose some other namings (such as * "latin1"), however choose to stay with the XLFD's charset and * encoding. This way we may find other way to utilize this value in * the future. */ #define ISO_LATIN_1 "iso8859-1" typedef struct _OLLCItem { char *locale; int posixCategory; /* Will initialize in GRVLCInit() */ char *envName; /* Will initialize in GRVLCInit() */ } OLLCItem; #endif /* OW_I18N_L3 */ #endif /* _OLLOCALE_H */ xview-3.2p1.4/clients/olwm/olwm.c100644 1750 1750 45624 6331433172 14220 0ustar mbmb#ident "@(#)olwm.c 26.66 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "i18n.h" #include "ollocale.h" #include "events.h" #include "mem.h" #include "olwm.h" #include "win.h" #include "menu.h" #include "defaults.h" #include "resources.h" #include "globals.h" #include "group.h" #include "selection.h" #include "slots.h" #include "error.h" #include "dsdm.h" #if defined(__linux) && !defined(MAXPID) #define MAXPID 32767 #endif typedef void (*VoidFunc)(); /* * Globals */ char *ProgramName; /* pointer to original argv[0] */ char *AppName; /* last component of ProgramName */ GlobalResourceVariables GRV; /* variables settable by rsrcs */ XrmDatabase OlwmDB; /* the main resource database */ Display *DefDpy; /* the display connection */ #ifdef DEBUG unsigned char ScratchBuffer[1024]; /* for use in the debugger */ #endif /* DEBUG */ /* * Global Quarks. "Top" refers to the root of the resource name/instance * hierarchy. */ XrmQuark TopClassQ; XrmQuark TopInstanceQ; XrmQuark OpenWinQ; /* * Forward declarations. */ static void usage(); static Display *openDisplay(); static void parseCommandline(); static void sendSyncSignal(); static void initWinClasses(); /* * Command-line option table. Resources named here must be kept in sync with * the resources probed for in resources.c. */ static XrmOptionDescRec optionTable[] = { /* * Standard Options */ { "-display", ".display", XrmoptionSepArg, (caddr_t)NULL }, { "-name", ".name", XrmoptionSepArg, (caddr_t)NULL }, { "-xrm", NULL, XrmoptionResArg, (caddr_t)NULL }, { "-2d", ".use3D", XrmoptionNoArg, (caddr_t)"False" }, { "-3d", ".use3D", XrmoptionNoArg, (caddr_t)"True" }, { "-bd", "*BorderColor", XrmoptionSepArg, (caddr_t)NULL }, { "-bordercolor","*BorderColor",XrmoptionSepArg, (caddr_t)NULL }, { "-bg", "*Background", XrmoptionSepArg, (caddr_t)NULL }, { "-background","*Background", XrmoptionSepArg, (caddr_t)NULL }, { "-fg", "*Foreground", XrmoptionSepArg, (caddr_t)NULL }, { "-foreground","*Foreground", XrmoptionSepArg, (caddr_t)NULL }, { "-c", ".setInput", XrmoptionNoArg, (caddr_t)"select" }, { "-click", ".setInput", XrmoptionNoArg, (caddr_t)"select" }, { "-f", ".setInput", XrmoptionNoArg, (caddr_t)"follow" }, { "-follow", ".setInput", XrmoptionNoArg, (caddr_t)"follow" }, { "-fn", "*TitleFont", XrmoptionSepArg, (caddr_t)NULL }, { "-font", "*TitleFont", XrmoptionSepArg, (caddr_t)NULL }, { "-single", ".singleScreen",XrmoptionNoArg, (caddr_t)"True" }, { "-multi", ".singleScreen",XrmoptionNoArg, (caddr_t)"False" }, { "-syncpid", ".syncPid", XrmoptionSepArg, (caddr_t)NULL }, { "-syncsignal",".syncSignal", XrmoptionSepArg, (caddr_t)NULL }, { "-depth", "*depth", XrmoptionSepArg, (caddr_t)NULL }, { "-visual", "*visual", XrmoptionSepArg, (caddr_t)NULL }, { "-dsdm", ".startDSDM", XrmoptionNoArg, (caddr_t)"True" }, { "-nodsdm", ".startDSDM", XrmoptionNoArg, (caddr_t)"False" }, /* * Debugging Options */ { "-all", ".printAll", XrmoptionNoArg, (caddr_t)"True" }, { "-debug", ".printOrphans",XrmoptionNoArg, (caddr_t)"True" }, { "-orphans", ".printOrphans",XrmoptionNoArg, (caddr_t)"True" }, { "-synchronize",".synchronize", XrmoptionNoArg, (caddr_t)"True" }, #ifdef OW_I18N_L3 /* * Internationalization Options */ { "-basiclocale", "*basicLocale", XrmoptionSepArg, (caddr_t) NULL }, { "-displaylang", "*displayLang", XrmoptionSepArg, (caddr_t) NULL }, { "-inputlang", "*inputLang", XrmoptionSepArg, (caddr_t) NULL }, { "-numeric", "*numeric", XrmoptionSepArg, (caddr_t) NULL }, { "-dateformat", "*dateFormat", XrmoptionSepArg, (caddr_t) NULL }, #endif /* OW_I18N_L3 */ }; #define OPTION_TABLE_ENTRIES (sizeof(optionTable)/sizeof(XrmOptionDescRec)) /* Child Process Handling */ static Bool deadChildren = False; static void handleChildSignal(); static int slavePid; void ReapChildren(); /* public -- called from events.c */ #ifdef ALLPLANES Bool AllPlanesExists; /* server supports the ALLPLANES extension */ #endif #ifdef SHAPE Bool ShapeSupported; /* server supports the SHAPE extension */ int ShapeEventBase; int ShapeErrorBase; int ShapeRequestBase; #endif int numbuttons; /* number of buttons on the pointer */ /* REMIND: this shouldn't be global */ static char **argVec; /* * main -- parse arguments, perform initialization, call event-loop */ main(argc, argv) int argc; char **argv; { int ExitOLWM(); XrmDatabase commandlineDB = NULL; char *dpystr; #ifdef OW_I18N_L3 char *OpenWinHome; char locale_dir[MAXPATHLEN+1]; extern char *getenv(); #endif /* OW_I18N_L3 */ #ifdef MALLOCDEBUG malloc_debug(MALLOCDEBUG); #endif /* MALLOCDEBUG */ #ifdef GPROF_HOOKS moncontrol(0); #endif /* GPROF_HOOKS */ #ifdef OW_I18N_L3 /* * Even in the SUNDAE1.0 (first release) we might need the * dynamic locale change for window manager, since window * manager is usually never re-start again in one sesstion. * But leave static for now. */ /* * We are setting the locale (issuing the setlocale) by * EffectOLLC() function, but we need to call setlocale here * to handle command line argument with certain locale. * FIX_ME! But may not work well, because we did not touch the * Xlib function XrmParseCommand(). */ if (setlocale(LC_CTYPE, "") == NULL) { char *locale; locale = (locale = getenv("LC_CTYPE")) != NULL ? locale : (locale = getenv("LANG")) != NULL ? locale : "Unknown"; /* * In the following fprintf, it is point less to use * GetString, since we are saying using "C" locale instead. */ fprintf(stderr, "\ olwm: Warning: '%s' is invalid locale for the LC_CTYPE category,\n\ using 'C' locale for the command line parsing.\n", locale); (void)setlocale(LC_CTYPE,"C"); } if ((OpenWinHome = getenv("OPENWINHOME")) != 0) (void)strcpy(locale_dir,OpenWinHome); else #ifdef OPENWINHOME_DEFAULT /* martin-2.buck@student.uni-ulm.de */ (void)strcpy(locale_dir,OPENWINHOME_DEFAULT); #else (void)strcpy(locale_dir,"/usr"); #endif (void)strcat(locale_dir,"/lib/locale"); bindtextdomain("olwm_messages",locale_dir); textdomain("olwm_messages"); #endif /* OW_I18N_L3 */ ProgramName = argv[0]; argVec = argv; /* * Set up signal handlers. Clean up and exit on SIGHUP, SIGINT, and * SIGTERM; note child process changes on SIGCHLD. */ #ifdef SYSV sigset(SIGHUP, (VoidFunc)ExitOLWM); sigset(SIGINT, (VoidFunc)ExitOLWM); sigset(SIGTERM, (VoidFunc)ExitOLWM); sigset(SIGCHLD, handleChildSignal); #else signal(SIGHUP, (VoidFunc)ExitOLWM); signal(SIGINT, (VoidFunc)ExitOLWM); signal(SIGTERM, (VoidFunc)ExitOLWM); signal(SIGCHLD, handleChildSignal); #endif XrmInitialize(); /* parse the command line arguments into local tmp DB */ parseCommandline(&argc, argv, &commandlineDB); DefDpy = openDisplay(commandlineDB); #ifdef ALLPLANES { int tmp; AllPlanesExists = XAllPlanesQueryExtension(DefDpy, &tmp, &tmp); } #endif /* ALLPLANES */ #ifdef SHAPE ShapeSupported = XQueryExtension(DefDpy, "SHAPE", &ShapeRequestBase, &ShapeEventBase, &ShapeErrorBase); #endif /* SHAPE */ /* * Determine the number of buttons on the pointer. Use 3 by default. */ numbuttons = XGetPointerMapping (DefDpy, (unsigned char *)0, 0); if (numbuttons < 1) numbuttons = 3; /* put all resources into global OlwmDB and set olwm variables */ GetDefaults(DefDpy, commandlineDB); /* Initialize the event handling system. */ InitEvents(DefDpy); InitBindings(DefDpy); XSetErrorHandler(ErrorHandler); if (GRV.Synchronize) XSynchronize(DefDpy, True); /* Initialize a variety of olwm subsystems. */ InitAtoms(DefDpy); WIInit(DefDpy); initWinClasses(DefDpy); InitClients(DefDpy); GroupInit(); /* * Ensure that the X display connection is closed when we exec a * program. */ if (fcntl(ConnectionNumber(DefDpy), F_SETFD, 1) == -1) { perror(GetString("olwm: child cannot disinherit TCP fd")); exit(1); } /* Init the global menus */ InitMenus(DefDpy); /* init region handling code */ InitRegions(); /* Init screen */ InitScreens(DefDpy); GrabKeys(DefDpy, True); GrabButtons(DefDpy, True); ReparentScreens(DefDpy); if (!GRV.FocusFollowsMouse) ClientFocusTopmost(DefDpy, GetFirstScrInfo(), CurrentTime); /* Initialize selections. */ SelectionInit(); /* Initialize (and then start, if desired) the DSDM function. */ DragDropInit(); if (GRV.StartDSDM) DragDropStartDSDM(DefDpy); /* Start olwmslave - using the same args we got. */ if (GRV.RunSlaveProcess) slavePid = SlaveStart(argVec); /* Beep to indicate that we're ready. */ if (GRV.Beep != BeepNever) XBell(DefDpy, 100); /* Inform anyone who's waiting that we're ready. */ sendSyncSignal(); EventLoop(DefDpy); /*NOTREACHED*/ } /* * parseCommandline - parse the command line arguments into a resource * database */ static void parseCommandline( argc, argv, tmpDB ) int *argc; char *argv[]; XrmDatabase *tmpDB; { char instName[MAX_NAME]; char namestr[MAX_NAME]; char *type, *p; XrmValue val; /* Extract trailing pathname component of argv[0] into AppName. */ AppName = strrchr(argv[0], '/'); if (AppName == NULL) AppName = argv[0]; else ++AppName; XrmParseCommand(tmpDB, optionTable, OPTION_TABLE_ENTRIES, AppName, argc, argv ); /* * Initialize root instance and class quarks. Create the instance * name by first looking up the "name" resource in the command line * database (for the -name option). If it's not present, use AppName * (the trailing pathname component of argv[0]). Then, scan it and * replace all illegal characters with underscores. Note: we don't * use the ctype functions here, because they are internationalized. * In some locales, isalpha() will return true for characters that are * not valid in resource component names. Thus, we must fall back to * standard character comparisions. * * REMIND: specifying the -name option changes the name with which * resources are looked up. But the command line options were put * into the database using AppName, which is based on argv[0]. Thus, * specifying -name causes all command-line args to be ignored, which * is wrong. */ (void) strcpy(namestr, AppName); (void) strcat(namestr, ".name"); if (XrmGetResource(*tmpDB, namestr, namestr, &type, &val)) { (void) strncpy(instName, (char *)val.addr, MAX_NAME); } else { (void) strncpy(instName, AppName, MAX_NAME); } instName[MAX_NAME-1] = '\0'; for (p=instName; *p != '\0'; ++p) { if (!(*p >= 'a' && *p <= 'z' || *p >= 'A' && *p <= 'Z' || *p >= '0' && *p <= '9' || *p == '_' || *p == '-')) { *p = '_'; } } TopInstanceQ = XrmStringToQuark(instName); TopClassQ = XrmStringToQuark("Olwm"); OpenWinQ = XrmStringToQuark("OpenWindows"); /* check to see if there are any arguments left unparsed */ if ( *argc != 1 ) { /* check to see if it's -help */ if ( argv[1][0] == '-' && argv[1][1] == 'h' ) { usage( GetString("Command line arguments accepted"), GetString("are:")); } else { usage( GetString("Unknown argument(s)"), GetString("encountered")); } } } /* * openDisplay - open the connection to the X display. A probe is done into * the command-line resource database in order to pick up the '-display' * command-line argument. If it is found, its value is put into the * environment. */ static Display * openDisplay(rdb) XrmDatabase rdb; { char namebuf[MAX_NAME]; char *type; XrmValue value; char *dpystr = NULL; char *envstr; Display *dpy; (void) strcpy(namebuf, AppName); (void) strcat(namebuf, ".display"); if (XrmGetResource(rdb, namebuf, namebuf, &type, &value)) { dpystr = (char *)value.addr; envstr = (char *)MemAlloc(8+strlen(dpystr)+1); sprintf(envstr, "DISPLAY=%s", dpystr); putenv(envstr); } dpy = XOpenDisplay(dpystr); if (dpy == NULL) { if (dpystr == NULL) dpystr = GetString("(NULL DISPLAY)"); fprintf(stderr, GetString("%s: cannot connect to %s\n"), ProgramName, dpystr); exit(1); } return dpy; } /* * sendSyncSignal * * Send a signal to the process named on the command line (if any). Values * for the process id and signal to send are looked up in the resource * database; they are settable with command-line options. The resources are * looked up with the names * * .syncPid process id * .syncSignal signal to send (integer) * * where is the trailing pathname component of argv[0]. */ static void sendSyncSignal() { char *type; XrmValue value; int pid; int sig = SIGALRM; int tmp; char namebuf[100]; (void) strcpy(namebuf, AppName); (void) strcat(namebuf, ".syncPid"); if (!XrmGetResource(OlwmDB, namebuf, namebuf, &type, &value)) return; pid = atoi((char *)value.addr); if (pid <= 0 || pid > MAXPID) return; (void) strcpy(namebuf, AppName); (void) strcat(namebuf, ".syncSignal"); if (XrmGetResource(OlwmDB, namebuf, namebuf, &type, &value)) { tmp = atoi((char *)value.addr); if (tmp > 0 && tmp <= SIGUSR2) sig = tmp; } (void) kill(pid, sig); } /* * initWinClasses -- initialize all of olwm's class structures. */ static void initWinClasses(dpy) Display *dpy; { FrameInit(dpy); IconInit(dpy); ResizeInit(dpy); ColormapInit(dpy); ButtonInit(dpy); BusyInit(dpy); MenuInit(dpy); PinMenuInit(dpy); RootInit(dpy); NoFocusInit(dpy); PushPinInit(dpy); PaneInit(dpy); IconPaneInit(dpy); } /* * Exit -- kill the slave process, kill all running applications, then exit. */ Exit(dpy) Display *dpy; { extern void *ClientShutdown(); SlaveStop(); ListApply(ActiveClientList, ClientShutdown, (void *)0); XSync(dpy, True); exit(0); /*NOTREACHED*/ } /* * cleanup -- kill the slave process, destroy pinned menus, and restore all * client windows to the screen. Does not exit. */ static void cleanup() { extern void *UnparentClient(); /* * If DefDpy is NULL then we didn't get to the XOpenDisplay() * so basically there is nothing to clean up so return. */ if (DefDpy == NULL) return; /* * Stop olwmslave */ SlaveStop(); /* * destroy all pinned menus */ DestroyPinnedMenuClients(); /* * Go through the list of windows. Unmap all icons that are on the * screen. Reparent all windows back to the root, suitably offset * according to their window-gravities. Also remap all non-withdrawn * windows, and remove all Withdrawn windows from the save-set (so * they don't get remapped. REMIND: We have to do this because * Withdrawn windows are still left reparented inside the frame; this * shouldn't be the case. */ ListApply(ActiveClientList,UnparentClient,NULL); /* Destroy the screens - which will restore input focus, colormap, * and background, etc. */ DestroyScreens(DefDpy); XSync(DefDpy, True); } /* RestartOLWM -- clean up and then re-exec argv. */ int RestartOLWM() { cleanup(); execvp(argVec[0], argVec); ErrorGeneral("cannot restart"); /*NOTREACHED*/ } /* Clean up and then exit. */ int ExitOLWM() { cleanup(); exit(0); } /* * handleChildSignal - keep track of children that have died */ static void handleChildSignal() { #ifdef __linux /* Reinitialize signal catcher */ signal(SIGCHLD, handleChildSignal); #endif deadChildren = True; } /* * ReapChildren - wait() for all dead child processes. Blocks SIGCHLD, reaps * children until there aren't any more that have died, then unblock SIGCHLD. */ void ReapChildren() { #ifdef SYSV pid_t pid; int status; #else int oldmask; int pid; union wait status; #endif if (!deadChildren) return; #ifdef SYSV sighold(SIGCHLD); #else oldmask = sigblock(sigmask(SIGCHLD)); #endif /* clean up children until there are no more to be cleaned up */ while (1) { #ifdef SYSV pid = waitpid(-1, &status, WNOHANG); #else pid = wait3(&status, WNOHANG, (struct rusage *)0); #endif if (pid == 0) break; if (pid == -1) { if (errno == EINTR) continue; if (errno != ECHILD) perror("olwm -- wait"); break; } /* if it's the slave process then stop its use */ if (pid == slavePid) SlaveStopped(); if (WIFSTOPPED(status)) kill(pid, SIGKILL); } deadChildren = False; #ifdef SYSV sigrelse(SIGCHLD); #else (void) sigsetmask(oldmask); #endif } /* * usage(s1, s2) -- print informative message regarding usage */ static void usage(s1, s2) char *s1, *s2; { fprintf(stderr, "%s %s\n", s1, s2); fprintf(stderr,GetString("usage: %s [options]\n"),ProgramName); /* STRING_EXTRACTION - do not translate the option (ie -2d, -display) * because those are the actual string names of the command line * option. Translate the option argument (ie ) and * the descriptive text. */ #define USAGE(msg) (void) fprintf(stderr,"%s\n",GetString(msg)) USAGE("Standard Options:"); USAGE(" -2d Use two-dimensional look"); USAGE(" -3d Use three-dimensional look"); USAGE(" -bd, -bordercolor Specify the border color"); USAGE(" -bg, -background Specify the background color"); USAGE(" -c, -click Use click-to-focus mode"); USAGE(" -depth Specify the depth of the visual to use"); USAGE(" -display Specify the display to manage"); USAGE(" -f, -follow Use focus-follows-mouse mode"); USAGE(" -fn, -font Set the font for window titles"); USAGE(" -fg, -foreground Specify the foreground color"); USAGE(" -multi Manage windows on all screens"); USAGE(" -name Specify resource name for resource db"); USAGE(" -single Manage windows for a single screen only"); USAGE(" -syncpid Synchronize with process-id"); USAGE(" -syncsignal Signal to send to syncpid"); USAGE(" -xrm Specify resources on commandline"); USAGE("Debugging Options:"); USAGE(" -all Print a message for all events received"); USAGE(" -debug Turn on all debugging options"); USAGE(" -orphans Print orphaned events"); USAGE(" -synchronize Run in synchronous mode"); ; USAGE("Internationalization Options:"); USAGE(" -basiclocale Specify the basic locale for all categories"); USAGE(" -displaylang Specify the language used for displaying text"); USAGE(" -numeric Specify the numeric format"); #undef USAGE exit(1); } xview-3.2p1.4/clients/olwm/olwm.h100644 1750 1750 12274 5413747431 14226 0ustar mbmb#ident "@(#)olwm.h 26.27 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_OLWM_H #define _OLWM_OLWM_H #ifndef ABS #define ABS(a) (((a) < 0) ? -(a) : (a)) #endif #ifndef MAX #define MAX(a,b) (((a) > (b)) ? (a) : (b)) #endif #ifndef MIN #define MIN(a,b) ((a) < (b) ? (a) : (b)) #endif /* * path and file name lengths -- if not defined already */ #ifndef MAXPATHLEN #define MAXPATHLEN 1024 #endif #ifndef MAXNAMELEN #define MAXNAMELEN 256 #endif /* Determine the size of an object type in 32bit multiples. * Rounds up to make sure the result is large enough to hold the object. */ #define LONG_LENGTH(a) ((long)(( sizeof(a) + 3 ) / 4)) #define FOOTLEN 50L /* protocols bits */ #define TAKE_FOCUS (1<<0) #define SAVE_YOURSELF (1<<1) #define DELETE_WINDOW (1<<2) /* Workspace Background Styles */ typedef enum { WkspDefault, WkspColor, WkspPixmap } WorkspaceStyle; /* Icon positioning modes */ typedef enum { AlongTop, AlongBottom, AlongRight, AlongLeft, AlongTopRL, AlongBottomRL, AlongRightBT, AlongLeftBT } IconPreference; /* size of icon window */ #define ICON_WIN_WIDTH 60 #define ICON_WIN_HEIGHT 60 #define ICON_GRID_WIDTH 13 #define ICON_GRID_HEIGHT 13 /* min/max/inc icon sizes */ #define ICON_MIN_WIDTH 1 #define ICON_MIN_HEIGHT 1 #define ICON_MAX_WIDTH 160 #define ICON_MAX_HEIGHT 160 #define ICON_WIDTH_INC 1 #define ICON_HEIGHT_INC 1 /* minimum window size */ #define MINSIZE 5 /* Globals */ extern char *ProgramName; /* adornment pixmaps */ extern Pixmap pixIcon; extern Pixmap pixmapGray; extern Pixmap pixGray; /* miscellaneous functions */ extern int ExitOLWM(); extern void *GetWindowProperty(); #ifdef OW_I18N_L4 extern void parseApplicationLocaleDefaults(); #endif /* state functions */ extern struct _client *StateNew(); extern void ReparentTree(); extern void StateNormIcon(); extern void StateIconNorm(); extern void StateWithdrawn(); /* root window functions */ extern struct _winroot *MakeRoot(); /* no-focus window information and functions */ extern Window NoFocusWin; extern struct _wingeneric *NoFocusWinInfo; extern struct _wingeneric *MakeNoFocus(); extern void NoFocusTakeFocus(); extern void NoFocusInit(); extern int NoFocusEventBeep(); /* client information and functions */ extern struct _List *ActiveClientList; extern struct _client *ClientCreate(); extern Window ClientPane(); typedef struct _clientinboxclose { Display *dpy; int screen; int (*func)(); short bx, by, bw, bh; Time timestamp; } ClientInBoxClosure; extern void *ClientInBox(); extern void ClientInhibitFocus(); extern void ClientSetFocus(); extern void ClientSetCurrent(); extern struct _client *ClientGetLastCurrent(); extern void ClientActivate(); extern void ClientFocusTopmost(); /* frame functions */ extern struct _winpaneframe *MakeFrame(); extern void FrameSetPosFromPane(); extern void FrameFullSize(); extern void FrameNormSize(); extern void FrameNewFooter(); extern void FrameNewHeader(); extern void FrameSetBusy(); extern void FrameWarpPointer(); extern void FrameUnwarpPointer(); /* generic frame functions */ extern int GFrameFocus(); extern int GFrameSelect(); extern int GFrameSetConfigFunc(); extern void GFrameSetStack(); extern void GFrameSetConfig(); extern int GFrameEventButtonPress(); extern int GFrameEventMotionNotify(); extern int GFrameEventButtonRelease(); extern int GFrameEventFocus(); extern int GFrameEventEnterNotify(); /* icon functions */ extern void IconInit(); extern struct _winiconframe *MakeIcon(); extern void IconChangeName(); extern void DrawIconToWindowLines(); extern void IconShow(); extern void IconHide(); extern void IconSetPos(); /* icon pane functions */ extern struct _winiconpane *MakeIconPane(); /* pane functions */ extern struct _winpane *MakePane(); /* pinned menu functions */ extern struct _winmenu *MakeMenu(); /* colormap functions */ extern struct _wingeneric *MakeColormap(); extern void TrackSubwindows(); extern void UnTrackSubwindows(); extern void ColormapInhibit(); extern void InstallColormap(); extern void InstallPointerColormap(); extern void UnlockColormap(); extern void ColorWindowCrossing(); extern struct _wingeneric *ColormapUnhook(); extern void ColormapTransmogrify(); /* selection functions */ extern Bool IsSelected(); extern struct _client *EnumSelections(); extern Time TimeFresh(); extern int AddSelection(); extern Bool RemoveSelection(); extern Bool ToggleSelection(); extern void ClearSelections(); extern void SelectionResponse(); /* decoration window functions */ extern struct _winpushpin *MakePushPin(); extern struct _winbutton *MakeButton(); extern struct _winresize *MakeResize(); /* general window functions */ extern void WinCallFocus(); extern void WinRedrawAllWindows(); extern Bool WinShowHelp(); /* general window event functions */ extern int WinEventExpose(); extern int WinNewPosFunc(); extern int WinNewConfigFunc(); extern int WinSetConfigFunc(); /* rubber-banding functions */ extern void UserMoveWindows(); extern void UserResizeWin(); extern void TraceRootBox(); /* busy windows */ extern struct _winbusy *MakeBusy(); #endif /* _OLWM_OLWM_H */ xview-3.2p1.4/clients/olwm/properties.c100644 1750 1750 43246 5413747431 15442 0ustar mbmb#ident "@(#)properties.c 26.15 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ /* * properties.c */ #include #include #include #include #include #include #include "i18n.h" #include "olwm.h" #include "win.h" #include "mem.h" #include "properties.h" /*************************************************************************** * external data ***************************************************************************/ extern Atom AtomWMClass; extern Atom AtomWMState; extern Atom AtomWMName; extern Atom AtomWMIconName; extern Atom AtomWMNormalHints; extern Atom AtomWMHints; extern Atom AtomProtocols; extern Atom AtomWMTransientFor; extern Atom AtomColorMapWindows; extern Atom AtomDecorAdd; extern Atom AtomDecorClose; extern Atom AtomDecorDel; extern Atom AtomDecorFooter; extern Atom AtomDecorHeader; extern Atom AtomDecorIconName; extern Atom AtomDecorPin; extern Atom AtomDecorResize; extern Atom AtomDeleteWindow; extern Atom AtomPinIn; extern Atom AtomPinOut; extern Atom AtomSaveYourself; extern Atom AtomTakeFocus; extern Atom AtomWinAttr; extern Atom AtomSunWindowState; extern Atom AtomLeftFooter; extern Atom AtomRightFooter; #ifdef OW_I18N_L4 extern Atom AtomDecorIMStatus; extern Atom AtomLeftIMStatus; extern Atom AtomRightIMStatus; extern Atom AtomCompoundText; #endif /*************************************************************************** * GetWindowProperty ***************************************************************************/ /* * GetWindowProperty - wrapper around XGetWindowProperty() * Returns NULL on a variety of error states; no such property, * not requested type or format. * Returned memory should be free'd with XFree() since it * is allocated by XGetWindowProperty() internally. */ void * GetWindowProperty(dpy, w, property, long_offset, long_length, req_type, req_fmt, nitems, bytes_after) Display *dpy; Window w; Atom property; long long_offset, long_length; Atom req_type; int req_fmt; unsigned long *nitems; unsigned long *bytes_after; { int status; unsigned char *prop; Atom act_type; int act_format; status = XGetWindowProperty(dpy, w, property, long_offset, long_length, False, req_type, &act_type, &act_format, nitems, bytes_after, &prop); if ((status != Success) || (act_type != req_type)) { *nitems = 0; return NULL; } if ((req_fmt != 0) && (act_format != req_fmt)) { XFree((char *)prop); *nitems = 0; return NULL; } return (void *)prop; } /* * propGetTextProp - returns a display text property */ static Bool propGetTextProp(dpy,win,property,text) Display *dpy; Window win; Atom property; Text **text; /* RETURN */ { XTextProperty textProp; Bool ret = False; #ifdef OW_I18N_L4 wchar_t **list; int count; int status; #endif if (XGetTextProperty(dpy,win,&textProp,property) == 0) { *text = NULL; return False; } #ifdef OW_I18N_L4 if (textProp.format != 8) { *text = NULL; } else { status = XwcTextPropertyToTextList(dpy, &textProp, &list, &count); if (count >= 1 && status == Success) { *text = MemNewText(list[0]); XwcFreeStringList(list); ret = True; } else *text = NULL; } #else if (textProp.encoding == XA_STRING && textProp.format == 8) { *text = MemNewText(textProp.value); ret = True; } else { *text = NULL; ret = False; } XFree((char *)textProp.value); #endif return ret; } /*************************************************************************** * Property Filter Functions ***************************************************************************/ /* * PropListAvailable - returns a set of flags representing the properties * available on the passed window. */ long PropListAvailable(dpy,win) Display *dpy; Window win; { Atom *atomList; int i,count; long retFlags; if ((atomList = XListProperties(dpy,win,&count)) == NULL) return 0L; retFlags = 0L; for (i = 0; i < count; i++) { if (atomList[i] == AtomWMClass) retFlags |= WMClassAvail; else if (atomList[i] == AtomWMName) retFlags |= WMNameAvail; else if (atomList[i] == AtomWMIconName) retFlags |= WMIconNameAvail; else if (atomList[i] == AtomWMNormalHints) retFlags |= WMNormalHintsAvail; else if (atomList[i] == AtomWMHints) retFlags |= WMHintsAvail; else if (atomList[i] == AtomProtocols) retFlags |= WMProtocolsAvail; else if (atomList[i] == AtomWMTransientFor) retFlags |= WMTransientForAvail; else if (atomList[i] == AtomColorMapWindows) retFlags |= WMColormapWindowsAvail; else if (atomList[i] == AtomWMState) retFlags |= WMStateAvail; else if (atomList[i] == AtomWinAttr) retFlags |= OLWinAttrAvail; else if (atomList[i] == AtomDecorAdd) retFlags |= OLDecorAddAvail; else if (atomList[i] == AtomDecorDel) retFlags |= OLDecorDelAvail; else if (atomList[i] == AtomSunWindowState) retFlags |= OLWindowStateAvail; else if (atomList[i] == AtomLeftFooter) retFlags |= OLLeftFooterAvail; else if (atomList[i] == AtomRightFooter) retFlags |= OLRightFooterAvail; #ifdef OW_I18N_L4 else if (atomList[i] == AtomLeftIMStatus) retFlags |= OLLeftIMStatusAvail; else if (atomList[i] == AtomRightIMStatus) retFlags |= OLRightIMStatusAvail; #endif } XFree((char *)atomList); return retFlags; } /* * Property availability control */ static struct { Window win; long flags; } propAvailable; #define PropAvailable(w,f) ((propAvailable.win == None) || \ (propAvailable.win == (w) && \ (propAvailable.flags & (f)))) /* * PropSetAvailable - sets the property read filter for that window */ void PropSetAvailable(dpy,win) Display *dpy; Window win; { propAvailable.win = win; propAvailable.flags = PropListAvailable(dpy,win); } /* * PropClearAvailable - turns off the property read filter */ void PropClearAvailable() { propAvailable.win = None; propAvailable.flags = ~0; } /*************************************************************************** * Property Get Functions ***************************************************************************/ /* * PropGetWMName - gets the WM_NAME property */ Bool PropGetWMName(dpy,win,winName) Display *dpy; Window win; Text **winName; /* RETURN */ { Text *name; if (!PropAvailable(win,WMNameAvail)) return False; if (!propGetTextProp(dpy,win,AtomWMName,winName)) return False; return True; } /* * PropGetWMIconName - gets the WM_ICON_NAME property */ Bool PropGetWMIconName(dpy,win,iconName) Display *dpy; Window win; Text **iconName; /* RETURN */ { if (!PropAvailable(win,WMIconNameAvail)) return False; if (!propGetTextProp(dpy,win,AtomWMIconName,iconName)) return False; return True; } /* * PropGetWMClass - gets the WM_CLASS property with the class and instance * strings. */ Bool PropGetWMClass(dpy,win,class,instance) Display *dpy; Window win; char **class; /* RETURN */ char **instance; /* RETURN */ { XClassHint classHint; if (!PropAvailable(win,WMClassAvail)) return False; if (XGetClassHint(dpy,win,&classHint) == 0) return False; if (classHint.res_name) { *instance = MemNewString(classHint.res_name); XFree(classHint.res_name); } if (classHint.res_class) { *class = MemNewString(classHint.res_class); XFree(classHint.res_class); } return True; } /* * PropGetWMHints - get the WM_HINTS property */ Bool PropGetWMHints(dpy,win,wmHints) Display *dpy; Window win; XWMHints *wmHints; { XWMHints *prop; if (!PropAvailable(win,WMHintsAvail)) return False; if ((prop = XGetWMHints(dpy,win)) == (XWMHints *)NULL) return False; *wmHints = *prop; XFree((char *)prop); return True; } /* * PropGetWMNormalHints - get the WM_NORMAL_HINTS property. * * preICCCM is true if we got a short/old property as indicated * by a supplied flag of PWinGravity (added by ICCCM) */ Bool PropGetWMNormalHints(dpy,win,sizeHints,preICCCM) Display *dpy; Window win; XSizeHints *sizeHints; /* RETURN */ Bool *preICCCM; /* RETURN */ { long supplied; *preICCCM = False; if (!PropAvailable(win,WMNormalHintsAvail)) return False; if (XGetWMNormalHints(dpy,win,sizeHints,&supplied) == 0) return False; if (!(supplied & PWinGravity)) *preICCCM = True; if (!(sizeHints->flags & PWinGravity)) { sizeHints->win_gravity = NorthWestGravity; sizeHints->flags |= PWinGravity; } else if (sizeHints->win_gravity == 0) { sizeHints->win_gravity = NorthWestGravity; } if (sizeHints->flags & PResizeInc) { if (sizeHints->width_inc <= 0 || sizeHints->height_inc <= 0) sizeHints->flags ^= PResizeInc; } if (sizeHints->flags & PAspect) { if (sizeHints->min_aspect.x <= 0 || sizeHints->min_aspect.y <= 0 || sizeHints->max_aspect.x <= 0 || sizeHints->max_aspect.y <= 0) sizeHints->flags ^= PAspect; } return True; } /* * PropGetWMProtocols - get the protocols in which the client will participate. * Convert the individual atoms into protocol flags. */ Bool PropGetWMProtocols(dpy,win,protocols) Display *dpy; Window win; int *protocols; { Atom *atomList; int i,count; if (!PropAvailable(win,WMProtocolsAvail)) return False; if (XGetWMProtocols(dpy,win,&atomList,&count) == 0) return False; *protocols = 0; for (i = 0; i < count; i++) { if (atomList[i] == AtomTakeFocus) *protocols |= TAKE_FOCUS; else if (atomList[i] == AtomSaveYourself) *protocols |= SAVE_YOURSELF; else if (atomList[i] == AtomDeleteWindow) *protocols |= DELETE_WINDOW; } XFree((char *)atomList); return True; } /* * PropGetWMTransientFor * * Get the WM_TRANSIENT_FOR hint. If the property exists but has a * contents of zero, or the window itself, substitute the root's * window ID. This is because some (buggy) clients actually write * zero in the WM_TRANSIENT_FOR property, and we want to give them * transient window behavior. */ Bool PropGetWMTransientFor(dpy,win,root,transientFor) Display *dpy; Window win; Window root; Window *transientFor; /* RETURN */ { Window transient; if (!PropAvailable(win,WMTransientForAvail)) return False; if (XGetTransientForHint(dpy,win,&transient) == 0) return False; if (transient != 0 && transient != win) *transientFor = transient; else *transientFor = root; return True; } /* * PropGetWMColormapWindows - */ Bool PropGetWMColormapWindows(dpy,win,wins,count) Display *dpy; Window win; Window **wins; int *count; { if (!PropAvailable(win,WMColormapWindowsAvail)) return False; if (XGetWMColormapWindows(dpy,win,wins,count) == 0) return False; return True; } /* * PropGetWMState -- get the contents of the WM_STATE property. * The first datum is the state (NormalState/IconicState/WithdrawnState) * and the second is the icon window */ Bool PropGetWMState(dpy,win,state,iconwin) Display *dpy; Window win; int *state; /* RETURN */ Window *iconwin; /* RETURN */ { unsigned int nItems,remain; int *data; if (!PropAvailable(win,WMStateAvail)) return False; data = GetWindowProperty(dpy,win,AtomWMState,0L, LONG_LENGTH(int)+LONG_LENGTH(Window), AtomWMState,32,&nItems,&remain); if (data == NULL) { *state = NormalState; *iconwin = None; return False; } if (nItems > 0) *state = data[0]; else *state = NormalState; if (nItems > 1) *iconwin = (Window)data[1]; else *iconwin = None; XFree((char *)data); return True; } /* * PropSetWMState - writes the WM_STATE property */ void PropSetWMState(dpy,win,state,iconwin) Display *dpy; Window win; int state; Window iconwin; { unsigned long data[2]; data[0] = state; data[1] = iconwin; XChangeProperty(dpy,win,AtomWMState,AtomWMState,32, PropModeReplace,(unsigned char *)data,2); } #define OL_WINDOW_STATE_LENGTH (sizeof(OLWindowState)/sizeof(unsigned long)) /* * PropGetOLWindowState - reads the _SUN_WINDOW_STATE property */ Bool PropGetOLWindowState(dpy,win,winState) Display *dpy; Window win; OLWindowState *winState; /* RETURN */ { OLWindowState *newState; unsigned int nItems,remain; if (!PropAvailable(win,OLWindowStateAvail)) return False; newState = GetWindowProperty(dpy,win,AtomSunWindowState, 0L,OL_WINDOW_STATE_LENGTH,XA_INTEGER,32,&nItems,&remain); if (newState == NULL) return False; if (nItems != OL_WINDOW_STATE_LENGTH) { XFree((char *)newState); return False; } *winState = *newState; XFree((char *)newState); return True; } /* * Old OLWinAttr structure; used for compatability with existing * old clients; will convert into new structure. */ typedef struct { Atom win_type; Atom menu_type; unsigned long pin_initial_state; } oldOLWinAttr; #define OLDOLWINATTRLENGTH (sizeof(oldOLWinAttr)/sizeof(unsigned long)) /* * PropGetOLWinAttr */ Bool PropGetOLWinAttr(dpy,win,winAttr,oldVersion) Display *dpy; Window win; OLWinAttr *winAttr; /* RETURN */ Bool *oldVersion; { void *attrdata; unsigned long nItems,remain; *oldVersion = False; if (!PropAvailable(win,OLWinAttrAvail)) return False; attrdata = GetWindowProperty(dpy,win,AtomWinAttr,0L,ENTIRE_CONTENTS, AtomWinAttr,0,&nItems,&remain); /* * If it's not there */ if (attrdata == NULL) return False; /* * It's either old or new size. If old size then convert * it to new structure */ if (nItems == OLDOLWINATTRLENGTH) { *oldVersion = True; winAttr->flags = WA_WINTYPE | WA_MENUTYPE | WA_PINSTATE; winAttr->win_type = ((oldOLWinAttr *)attrdata)->win_type; winAttr->menu_type = ((oldOLWinAttr *)attrdata)->menu_type; winAttr->pin_initial_state = ((oldOLWinAttr *)attrdata)->pin_initial_state; } else if (nItems == OLWINATTRLENGTH) { *winAttr = *(OLWinAttr *)attrdata; } else { /* wrong size */ XFree((char *)attrdata); return False; } /* * Convert the pushpin's initial state. * * There's some backwards compatibility code here. * Older clients use the _OL_PIN_IN and _OL_PIN_OUT atoms * here, whereas the OLXCI specifies zero as out and one as * in. Convert old into new. */ if (winAttr->flags & WA_PINSTATE) { if (winAttr->pin_initial_state == AtomPinIn) winAttr->pin_initial_state = PIN_IN; else if (winAttr->pin_initial_state == AtomPinOut) winAttr->pin_initial_state = PIN_OUT; } XFree((char *)attrdata); return True; } /* * propGetOLDecor - gets either _OL_DECOR_ADD or _OL_DECOR_DEL list of * decoration atoms and converts it into a set of flags. */ static Bool propGetOLDecor(dpy,win,atom,decorFlags) Display *dpy; Window win; Atom atom; int *decorFlags; { Atom *atomList; unsigned long nItems,remain; int i; atomList = (Atom *)GetWindowProperty(dpy,win,atom, 0L,ENTIRE_CONTENTS,XA_ATOM,0,&nItems,&remain); if (!atomList || nItems == 0) { if (atomList) XFree((char *)atomList); return False; } *decorFlags = 0; for (i = 0; i < nItems; i++) { if (atomList[i] == AtomDecorClose) *decorFlags |= WMDecorationCloseButton; else if (atomList[i] == AtomDecorFooter) *decorFlags |= WMDecorationFooter; else if (atomList[i] == AtomDecorResize) *decorFlags |= WMDecorationResizeable; else if (atomList[i] == AtomDecorHeader) *decorFlags |= WMDecorationHeader; else if (atomList[i] == AtomDecorPin) *decorFlags |= WMDecorationPushPin; else if (atomList[i] == AtomDecorIconName) *decorFlags |= WMDecorationIconName; #ifdef OW_I18N_L4 else if (atomList[i] == AtomDecorIMStatus) *decorFlags |= WMDecorationIMStatus; #endif } XFree((char *)atomList); return True; } /* * PropGetOLDecorAdd - gets the _OL_DECOR_ADD property */ Bool PropGetOLDecorAdd(dpy,win,decorFlags) Display *dpy; Window win; int *decorFlags; { if (!PropAvailable(win,OLDecorAddAvail)) return False; if (!propGetOLDecor(dpy,win,AtomDecorAdd,decorFlags)) return False; return True; } /* * PropGetOLDecorDel - gets the _OL_DECOR_DEL property */ Bool PropGetOLDecorDel(dpy,win,decorFlags) Display *dpy; Window win; int *decorFlags; { if (!PropAvailable(win,OLDecorDelAvail)) return False; if (!propGetOLDecor(dpy,win,AtomDecorDel,decorFlags)) return False; return True; } /* * propGetOLFooter - get either left/right footer strings */ static Bool propGetOLFooter(dpy,win,atom,footer) Display *dpy; Window win; Atom atom; char **footer; /* RETURN */ { char *value; unsigned long nItems,remain; value = (char *)GetWindowProperty(dpy,win,atom, 0L,ENTIRE_CONTENTS,XA_STRING,0,&nItems,&remain); if (value == NULL) return False; *footer = MemNewString(value); XFree(value); return True; } /* * PropGetOLLeftFooter - gets the left footer string */ Bool PropGetOLLeftFooter(dpy,win,footer) Display *dpy; Window win; Text **footer; /* RETURN */ { if (!PropAvailable(win,OLLeftFooterAvail)) return False; if (!propGetTextProp(dpy,win,AtomLeftFooter,footer)) return False; return True; } /* * PropGetOLRightFooter - gets the right footer string */ Bool PropGetOLRightFooter(dpy,win,footer) Display *dpy; Window win; Text **footer; /* RETURN */ { if (!PropAvailable(win,OLRightFooterAvail)) return False; if (!propGetTextProp(dpy,win,AtomRightFooter,footer)) return False; return True; } #ifdef OW_I18N_L4 /* * PropGetOLLeftIMStatus - gets the left IM status string */ Bool PropGetOLLeftIMStatus(dpy,win,status) Display *dpy; Window win; Text **status; /* RETURN */ { if (!PropAvailable(win,OLLeftIMStatusAvail)) return False; if (!propGetTextProp(dpy,win,AtomLeftIMStatus,status)) return False; return True; } /* * PropGetOLRightIMStatus - gets the right IM status string */ Bool PropGetOLRightIMStatus(dpy,win,status) Display *dpy; Window win; Text **status; /* RETURN */ { if (!PropAvailable(win,OLRightIMStatusAvail)) return False; if (!propGetTextProp(dpy,win,AtomRightIMStatus,status)) return False; return True; } #endif xview-3.2p1.4/clients/olwm/properties.h100644 1750 1750 4202 5413747431 15414 0ustar mbmb#ident "@(#)properties.h 26.8 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_PROPERTIES_H #define _OLWM_PROPERTIES_H /* * Open Look Window Attribute structure */ typedef struct { unsigned long flags; Atom win_type; Atom menu_type; unsigned long pin_initial_state; unsigned long cancel; } OLWinAttr; #define OLWINATTRLENGTH (sizeof(OLWinAttr)/sizeof(unsigned long)) /* * Values for flags in OLWinAttr */ #define WA_WINTYPE (1<<0) #define WA_MENUTYPE (1<<1) #define WA_PINSTATE (1<<2) #define WA_CANCEL (1<<3) /* * Values for flags of available top-level window-management properties */ #define WMClassAvail (1<<0) #define WMNameAvail (1<<1) #define WMIconNameAvail (1<<2) #define WMNormalHintsAvail (1<<3) #define WMHintsAvail (1<<4) #define WMTransientForAvail (1<<5) #define WMProtocolsAvail (1<<6) #define WMColormapWindowsAvail (1<<7) #define WMStateAvail (1<<8) #define OLWinAttrAvail (1<<9) #define OLDecorAddAvail (1<<10) #define OLDecorDelAvail (1<<11) #define OLWindowStateAvail (1<<12) #define OLLeftFooterAvail (1<<13) #define OLRightFooterAvail (1<<14) #ifdef OW_I18N_L4 #define OLLeftIMStatusAvail (1<<15) #define OLRightIMStatusAvail (1<<16) #endif #define ENTIRE_CONTENTS (10000000L) extern void *GetWindowProperty(); extern long PropListAvailable(); extern void PropSetAvailable(); extern void PropClearAvailable(); extern Bool PropGetWMName(); extern Bool PropGetWMIconName(); extern Bool PropGetWMClass(); extern Bool PropGetWMNormalHints(); extern Bool PropGetWMHints(); extern Bool PropGetWMProtocols(); extern Bool PropGetWMTransientFor(); extern Bool PropGetWMState(); extern void PropSetWMState(); extern Bool PropGetOLWindowState(); extern Bool PropGetOLWinAttr(); extern Bool PropGetOLDecorAdd(); extern Bool PropGetOLDecorDel(); extern Bool PropGetOLLeftFooter(); extern Bool PropGetOLRightFooter(); #ifdef OW_I18N_L4 extern Bool PropGetOLLeftIMStatus(); extern Bool PropGetOLRightIMStatus(); #endif #endif /* _OLWM_PROPERTIES_H */ xview-3.2p1.4/clients/olwm/resources.c100644 1750 1750 147050 6331115755 15274 0ustar mbmb#ident "@(#)resources.c 26.75 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifdef SYSV #include #endif #include #include #include #include #include #include #include #include #include #include #include #include #include "i18n.h" /* needed by olgx.h */ #include #include "mem.h" #include "olwm.h" #include "ollocale.h" #include "defaults.h" #include "globals.h" #include "resources.h" #include "win.h" #include "olcursor.h" #include "events.h" #include "error.h" #if defined(__linux) && !defined(LC_MESSAGES) #define LC_MESSAGES LC_RESPONSE #endif /* static data */ static Bool updateWorkspaceBackground; static Bool forceKeyRegrab; /* converters */ static Bool cvtWorkspaceStyle(); static Bool cvtBeepStatus(); static Bool cvtBoolean(); static Bool cvtClickTimeout(); static Bool cvtCursorFont(); static Bool cvtFocusStyle(); static Bool cvtFont(); #ifdef OW_I18N_L4 static Bool cvtFontSet(); #endif static Bool cvtIconLocation(); static Bool cvtInteger(); static Bool cvtKey(); static Bool cvtMouseless(); static Bool cvtString(); #ifdef OW_I18N_L4 static Bool cvtWString(); #endif static Bool cvtStringList(); /* internationalization stuff */ #ifdef OW_I18N_L3 static void GRVLCInit(); static Bool cvtOLLC(); static void setOLLCPosix(); #endif /* updaters */ static void updButtonFont(); void UpdFocusStyle(); /* yes, this one's global */ static void updGlyphFont(); static void updIconFont(); static void updIconLocation(); static void updMenuAccelerators(); static void updMouseless(); static void updString(); static void updStringList(); static void updSync(); static void updTextFont(); static void updTitleFont(); static void updWindow(); static void updWindowCacheSize(); static void updWorkspaceStyle(); static void updWorkspace(); static void updForeground(); static void updBackground(); static void updBorder(); /* resource table */ typedef struct _resourceitem { char *instance; char *class; char *defaultString; void *addr; Bool (*converter)(); void (*updater)(); unsigned long flags; XrmQuark instanceQ; XrmQuark classQ; } ResourceItem; /* values for flags field */ #define RI_IMMUTABLE (1<<0) /* cannot be updated once initialized */ #define RI_LOCALE_DEP (1<<1) /* is locale dependent */ #define RI_LAST_ITEM (1<<2) /* this is the last item in the table */ /* values for ScanResourceItemTable()'s flags argument */ #define SR_IMMUTABLE (1<<0) /* scan immutable items as well */ #define SR_USE_DEFAULT (1<<1) /* If probe missed, use default */ #define SR_UPDATING (1<<2) /* update resource DB */ /* * Locale Item Table. This table contains resource items pertaining to locale * information. It is separate from the Main Item Table (below), because * locale announcement may affect which files are read to obtain resources, * and also because some items in the main table may require an additional * locale-specific resource database probe. No items in the locale item * table should require such a probe, i.e. no items in this table should have * the RI_LOCALE_DEP flag set. */ ResourceItem LocaleItemTable[] = { #ifdef OW_I18N_L3 { "basicLocale", "BasicLocale", NULL, &(GRV.lc_basic), cvtOLLC, NULL, 0L }, { "displayLang", "DisplayLang", NULL, &(GRV.lc_dlang), cvtOLLC, NULL, 0L }, { "inputLang", "InputLang", NULL, &(GRV.lc_ilang), cvtOLLC, NULL, 0L }, { "numeric", "Numeric", NULL, &(GRV.lc_numeric), cvtOLLC, NULL, 0L }, { "dateFormat", "DateFormat", NULL, &(GRV.lc_datefmt), cvtOLLC, NULL, 0L }, #endif /* OW_I18N_L3 */ /* NOTE: the following item must always be the last. */ { NULL, NULL, NULL, NULL, NULL, NULL, RI_LAST_ITEM } }; /* * Main Item Table. Contains resource items corresponding to all global * variables, except those pertaining to locale information. */ ResourceItem MainItemTable[] = { { "titleFont", "TitleFont", "-b&h-lucida-bold-r-normal-sans-*-120-*-*-*-*-*-*", #ifdef OW_I18N_L4 &(GRV.TitleFontSetInfo), cvtFontSet, updTitleFont, #else &(GRV.TitleFontInfo), cvtFont, updTitleFont, #endif RI_LOCALE_DEP }, { "textFont", "TextFont", "-b&h-lucida-medium-r-normal-sans-*-120-*-*-*-*-*-*", #ifdef OW_I18N_L4 &(GRV.TextFontSetInfo), cvtFontSet, updTextFont, #else &(GRV.TextFontInfo), cvtFont, updTextFont, #endif RI_LOCALE_DEP }, { "buttonFont", "ButtonFont", "-b&h-lucida-medium-r-normal-sans-*-120-*-*-*-*-*-*", #ifdef OW_I18N_L4 &(GRV.ButtonFontSetInfo), cvtFontSet, updButtonFont, #else &(GRV.ButtonFontInfo), cvtFont, updButtonFont, #endif RI_LOCALE_DEP }, { "iconFont", "IconFont", "-b&h-lucida-medium-r-normal-sans-*-120-*-*-*-*-*-*", #ifdef OW_I18N_L4 &(GRV.IconFontSetInfo), cvtFontSet, updIconFont, #else &(GRV.IconFontInfo), cvtFont, updIconFont, #endif RI_LOCALE_DEP }, { "glyphFont", "GlyphFont", "-sun-open look glyph-*-*-*-*-*-120-*-*-*-*-*-*", &(GRV.GlyphFontInfo), cvtFont, updGlyphFont, RI_LOCALE_DEP }, { "cursorFont", "CursorFont", "-sun-open look cursor-*-*-*-*-*-120-*-*-*-*-*-*", &(GRV.BasicPointer), cvtCursorFont, NULL, 0L }, { "foreground", "Foreground", "#000000", &(GRV.ForegroundColor), cvtString, updForeground, 0L }, { "background", "Background", "#ffffff", &(GRV.BackgroundColor), cvtString, updBackground, 0L }, { "reverseVideo", "ReverseVideo", "False", &(GRV.ReverseVideo), cvtBoolean, NULL, 0L }, { "borderColor", "BorderColor", "#000000", &(GRV.BorderColor), cvtString, updBorder, 0L }, { "windowColor", "WindowColor", "#cccccc", &(GRV.WindowColor), cvtString, updWindow, 0L }, { "workspaceStyle", "WorkspaceStyle", "paintcolor", &(GRV.WorkspaceStyle), cvtWorkspaceStyle, updWorkspaceStyle, 0L }, { "workspaceColor", "WorkspaceColor", "#40a0c0", &(GRV.WorkspaceColor), cvtString, updWorkspace, 0L }, { "workspaceBitmapFile", "WorkspaceBitmapFile", "gray", &(GRV.WorkspaceBitmapFile), cvtString, updWorkspace, 0L }, { "workspaceBitmapFg", "WorkspaceBitmapFg", "#000000", &(GRV.WorkspaceBitmapFg), cvtString, updWorkspace, 0L }, { "workspaceBitmapBg", "WorkspaceBitmapBg", "#ffffff", &(GRV.WorkspaceBitmapBg), cvtString, updWorkspace, 0L }, { "paintWorkspace", "PaintWorkspace", "True", &(GRV.PaintWorkspace), cvtBoolean, NULL, 0L }, { "pointerWorkspace", "PointerWorkspace", "True", &(GRV.PointerWorkspace), cvtBoolean, NULL, 0L }, { "use3D", "Use3D", "True", &(GRV.F3dUsed), cvtBoolean, NULL, 0L }, { "setInput", "SetInput", "Select", &(GRV.FocusFollowsMouse), cvtFocusStyle, UpdFocusStyle, 0L }, { "defaultTitle", "DefaultTitle", "No Name", #ifdef OW_I18N_L4 &(GRV.DefaultWinName), cvtWString, updString, #else &(GRV.DefaultWinName), cvtString, updString, #endif 0L }, { "flashFrequency", "FlashFrequency", "100000", &(GRV.FlashTime), cvtInteger, NULL, 0L }, { "flashTime", "FlashTime", "100000", &(GRV.FlashTime), cvtInteger, NULL, 0L }, { "iconLocation", "IconLocation", "bottom", &(GRV.IconPlacement), cvtIconLocation, updIconLocation, 0L }, { "focusLenience", "FocusLenience", "False", &(GRV.FocusLenience), cvtBoolean, NULL, 0L }, { "dragWindow", "DragWindow", "False", &(GRV.DragWindow), cvtBoolean, NULL, 0L }, { "autoRaise", "AutoRaise", "False", &(GRV.AutoRaise), cvtBoolean, NULL, 0L }, { "autoRaiseDelay", "AutoRaiseDelay", "0", &(GRV.AutoRaiseDelay), cvtInteger, NULL, 0L }, { "dragRightDistance", "DragRightDistance", "100", &(GRV.DragRightDistance), cvtInteger, NULL, 0L }, { "moveThreshold", "MoveThreshold", "5", &(GRV.MoveThreshold), cvtInteger, NULL, 0L }, { "dragThreshold", "DragThreshold", "5", &(GRV.MoveThreshold), cvtInteger, NULL, 0L }, { "clickMoveThreshold", "ClickMoveThreshold", "5", &(GRV.ClickMoveThreshold), cvtInteger, NULL, 0L }, { "multiClickTimeout", "MultiClickTimeout", "5", &(GRV.DoubleClickTime), cvtClickTimeout, NULL, 0L }, { "frontKey", "FrontKey", "Any L5", &(GRV.FrontKey), cvtKey, NULL, 0L }, { "helpKey", "HelpKey", "Help", &(GRV.HelpKey), cvtKey, NULL, 0L }, { "openKey", "OpenKey", "Any L7", &(GRV.OpenKey), cvtKey, NULL, 0L }, { "confirmKey", "ConfirmKey", "Return", &(GRV.ConfirmKey), cvtKey, NULL, 0L }, { "printOrphans", "PrintOrphans", "False", &(GRV.PrintOrphans), cvtBoolean, NULL, 0L }, { "printAll", "PrintAll", "False", &(GRV.PrintAll), cvtBoolean, NULL, 0L }, { "synchronize", "Synchronize", "False", &(GRV.Synchronize), cvtBoolean, updSync, 0L }, { "snapToGrid", "SnapToGrid", "False", &(GRV.FSnapToGrid), cvtBoolean, NULL, 0L }, { "saveWorkspaceTimeout", "SaveWorkspaceTimeout", "30", &(GRV.SaveWorkspaceTimeout), cvtInteger, NULL, 0L }, { "saveWorkspaceCmd", "SaveWorkspaceCmd", "owplaces -silent -multi -local -script -tw -output $HOME/.openwin-init", &(GRV.SaveWorkspaceCmd), cvtString, NULL, 0L }, { "popupJumpCursor", "PopupJumpCursor", "True", &(GRV.PopupJumpCursor), cvtBoolean, NULL, 0L }, { "cancelKey", "CancelKey", "Escape", &(GRV.CancelKey), cvtKey, NULL, 0L }, { "colorLockKey", "ColorLockKey", "Control L2", &(GRV.ColorLockKey), cvtKey, NULL, 0L }, { "colorUnlockKey", "ColorUnlockKey", "Control L4", &(GRV.ColorUnlockKey), cvtKey, NULL, 0L }, { "colorFocusLocked", "ColorFocusLocked", "False", &(GRV.ColorLocked), cvtBoolean, NULL, 0L }, { "edgeMoveThreshold", "EdgeMoveThreshold", "10", &(GRV.EdgeThreshold), cvtInteger, NULL, 0L }, { "rubberBandThickness", "RubberBandThickness", "2", &(GRV.RubberBandThickness), cvtInteger, NULL, 0L }, { "beep", "Beep", "always", &(GRV.Beep), cvtBeepStatus, NULL, 0L }, { "pPositionCompat", "PPositionCompat", "false", &(GRV.PPositionCompat), cvtBoolean, NULL, 0L }, { "minimalDecor", "MinimalDecor", "", &(GRV.Minimals), cvtStringList, updStringList, 0L }, { "use3DFrames", "Use3DFrames", "False", &(GRV.F3dFrames), cvtBoolean, NULL, 0L }, { "use3DResize", "Use3DResize", "True", &(GRV.F3dResize), cvtBoolean, NULL, 0L }, { "refreshRecursively", "RefreshRecursively", "True", &(GRV.RefreshRecursively), cvtBoolean, NULL, 0L }, { "mouseChordTimeout", "MouseChordTimeout", "100", &(GRV.MouseChordTimeout), cvtInteger, NULL, 0L }, { "mouseChordMenu", "MouseChordMenu", "False", &(GRV.MouseChordMenu), cvtBoolean, NULL, 0L }, { "singleScreen", "SingleScreen", "False", &(GRV.SingleScreen), cvtBoolean, NULL, 0L }, { "autoReReadMenuFile", "AutoReReadMenuFile", "True", &(GRV.AutoReReadMenuFile), cvtBoolean, NULL, 0L }, { "keepTransientsAbove", "KeepTransientsAbove", "False", &(GRV.KeepTransientsAbove), cvtBoolean, NULL, 0L }, { "transientsSaveUnder", "TransientsSaveUnder", "True", &(GRV.TransientsSaveUnder), cvtBoolean, NULL, 0L }, { "transientsTitled", "TransientsTitled", "True", &(GRV.TransientsTitled), cvtBoolean, NULL, 0L }, { "selectWindows", "SelectWindows", "True", &(GRV.SelectWindows), cvtBoolean, NULL, 0L }, { "showMoveGeometry", "ShowMoveGeometry", "False", &(GRV.ShowMoveGeometry), cvtBoolean, NULL, 0L }, { "showResizeGeometry", "ShowResizeGeometry", "False", &(GRV.ShowResizeGeometry), cvtBoolean, NULL, 0L }, { "invertFocusHighlighting", "InvertFocusHighlighting", "False", &(GRV.InvertFocusHighlighting), cvtBoolean, NULL, 0L }, { "runSlaveProcess", "RunSlaveProcess", "True", &(GRV.RunSlaveProcess), cvtBoolean, NULL, 0L }, { "selectToggleStacking", "SelectToggleStacking","False", &(GRV.SelectToggleStacking),cvtBoolean, NULL, 0L }, { "flashCount", "FlashCount", "6", &(GRV.FlashCount), cvtInteger, NULL, 0L }, { "defaultIconImage", "DefaultIconImage", NULL, &(GRV.DefaultIconImage), cvtString, NULL, 0L }, { "defaultIconMask", "DefaultIconMask", NULL, &(GRV.DefaultIconMask), cvtString, NULL, 0L }, { "serverGrabs", "ServerGrabs", "True", &(GRV.ServerGrabs), cvtBoolean, NULL, 0L }, { "iconFlashCount", "IconFlashCount", "3", &(GRV.IconFlashCount), cvtInteger, NULL, 0L }, { "selectDisplaysMenu", "SelectDisplaysMenu", "False", &(GRV.SelectDisplaysMenu), cvtBoolean, NULL, 0L }, { "selectionFuzz", "SelectionFuzz", "1", &(GRV.SelectionFuzz), cvtInteger, NULL, 0L }, { "autoInputFocus", "AutoInputFocus", "False", &(GRV.AutoInputFocus), cvtBoolean, NULL, 0L }, { "autoColorFocus", "AutoColorFocus", "False", &(GRV.AutoColorFocus), cvtBoolean, NULL, 0L }, { "colorTracksInputFocus", "ColorTracksInputFocus","False", &(GRV.ColorTracksInputFocus),cvtBoolean, NULL, 0L }, { "iconFlashOnTime", "IconFlashOnTime", "20000", &(GRV.IconFlashOnTime), cvtInteger, NULL, 0L }, { "iconFlashOffTime", "IconFlashOffTime", "1", &(GRV.IconFlashOffTime), cvtInteger, NULL, 0L }, { "keyboardCommands", "KeyboardCommands", "Basic", &(GRV.Mouseless), cvtMouseless, updMouseless, 0L }, { "raiseOnActivate", "RaiseOnActivate", "True", &(GRV.RaiseOnActivate), cvtBoolean, NULL, 0L }, { "restackWhenWithdraw", "RestackWhenWithdraw", "True", &(GRV.RestackWhenWithdraw), cvtBoolean, NULL, 0L }, { "boldFontEmulation", "BoldFontEmulation", "False", &(GRV.BoldFontEmulation), cvtBoolean, NULL, RI_LOCALE_DEP }, { "raiseOnMove", "RaiseOnMove", "False", &(GRV.RaiseOnMove), cvtBoolean, NULL, 0L }, { "raiseOnResize", "RaiseOnResize", "False", &(GRV.RaiseOnResize), cvtBoolean, NULL, 0L }, { "startDSDM", "StartDSDM", "True", &(GRV.StartDSDM), cvtBoolean, NULL, 0L }, { "printWarnings", "PrintWarnings", "False", &(GRV.PrintWarnings), cvtBoolean, NULL, 0L }, { "windowCacheSize", "WindowCacheSize", "500", &(GRV.WindowCacheSize), cvtInteger, updWindowCacheSize, 0L }, { "menuAccelerators", "MenuAccelerators", "True", &(GRV.MenuAccelerators), cvtBoolean, updMenuAccelerators, 0L }, { "windowMenuAccelerators", "WindowMenuAccelerators", "True", &(GRV.WindowMenuAccelerators), cvtBoolean, updMenuAccelerators, 0L }, #ifdef OW_I18N_L3 { "characterSet", "CharacterSet", ISO_LATIN_1, &(GRV.CharacterSet), cvtString, NULL, RI_LOCALE_DEP }, #endif /* NOTE: the following item must always be the last. */ { NULL, NULL, NULL, NULL, NULL, NULL, RI_LAST_ITEM } }; /* ===== Utilities ======================================================== */ /* * Copy a string, converting it to lower case. */ static void strnlower(dest, src, n) char *dest; char *src; int n; { char *p; strncpy(dest, src, n); dest[n-1] = '\0'; /* force null termination */ for (p = dest; *p; ++p) if (isupper(*p)) *p = tolower(*p); } #define BSIZE 100 /* * Determine whether value matches pattern, irrespective of case. * This routine is necessary because not all systems have strcasecmp(). */ static Bool matchString(value, pattern) char *value; char *pattern; { char buf[BSIZE]; strnlower(buf, value, BSIZE); return (0 == strcmp(buf, pattern)); } /* * Match any of the following booleans: yes, no, 1, 0, on, off, t, nil, * true, false. Pass back the boolean matched in ret, and return True. * Otherwise, return False. Matches are case-insensitive. */ static Bool matchBool(value, ret) char *value; Bool *ret; { char buf[BSIZE]; strnlower(buf, value, BSIZE); if (0 == strcmp(buf, "yes") || 0 == strcmp(buf, "on") || 0 == strcmp(buf, "t") || 0 == strcmp(buf, "true") || 0 == strcmp(buf, "1")) { *ret = True; return True; } if (0 == strcmp(buf, "no") || 0 == strcmp(buf, "off") || 0 == strcmp(buf, "nil") || 0 == strcmp(buf, "false") || 0 == strcmp(buf, "0")) { *ret = False; return True; } return False; } /* * BoolString() - return Bool based on string, returning the default value if * the string can't be converted. */ Bool BoolString(s, dflt) char *s; Bool dflt; { Bool b; if (matchBool(s,&b)) return b; else return dflt; } /* * Match any of the WorkspaceStyle keywords: paintcolor, tilebitmap, none * Pass back the WorkspaceStyle value by reference, and return True, if * a match was found; otherwise return False and do not disturb the * passed value. */ static Bool matchWorkspaceStyle(value, ret) char *value; WorkspaceStyle *ret; { if (matchString(value,"paintcolor")) { *ret = WkspColor; return True; } if (matchString(value,"tilebitmap")) { *ret = WkspPixmap; return True; } if (matchString(value,"default")) { *ret = WkspDefault; return True; } return False; } /* * Match any of the following input focus keywords: followmouse, follow, f, * select, s, click, clicktotype, c. Pass back True for focusfollows or * False for clicktotype in ret (since FocusFollowsMouse is the global * corresponding to this resource), and return True. * Otherwise, return False. */ static Bool matchFocusKeyword(value, ret) char *value; Bool *ret; { char buf[BSIZE]; strnlower(buf, value, BSIZE); if (0 == strcmp(buf, "followmouse") || 0 == strcmp(buf, "follow") || 0 == strcmp(buf, "f")) { *ret = True; return True; } if (0 == strcmp(buf, "select") || 0 == strcmp(buf, "click") || 0 == strcmp(buf, "clicktotype") || 0 == strcmp(buf, "c") || 0 == strcmp(buf, "s")) { *ret = False; return True; } return False; } /* * Match any of the three possible beep keywords: always, never, or notices. * Pass back the BeepStatus value by reference, and return True, if * a match was found; otherwise return False and do not disturb the * passed value. */ static Bool matchBeepKeyword(value, ret) char *value; BeepStatus *ret; { if (matchString(value,"always")) { *ret = BeepAlways; return True; } if (matchString(value,"never")) { *ret = BeepNever; return True; } if (matchString(value,"notices")) { *ret = BeepNotices; return True; } return False; } /* * Match an icon placement keyword. Store matched value in ret and return * True, or return False if no match occurred. */ static Bool matchIconPlace( value, ret ) char *value; IconPreference *ret; { if (matchString(value, "top")) { *ret = AlongTop; return True; } if (matchString(value, "bottom")) { *ret = AlongBottom; return True; } if (matchString(value, "right")) { *ret = AlongRight; return True; } if (matchString(value, "left")) { *ret = AlongLeft; return True; } if (matchString(value, "top-lr")) { *ret = AlongTop; return True; } if (matchString(value, "top-rl")) { *ret = AlongTopRL; return True; } if (matchString(value, "bottom-lr")) { *ret = AlongBottom; return True; } if (matchString(value, "bottom-rl")) { *ret = AlongBottomRL; return True; } if (matchString(value, "right-tb")) { *ret = AlongRight; return True; } if (matchString(value, "right-bt")) { *ret = AlongRightBT; return True; } if (matchString(value, "left-tb")) { *ret = AlongLeft; return True; } if (matchString(value, "left-bt")) { *ret = AlongLeftBT; return True; } return False; } static Bool matchMouselessKeyword(str, ret) char *str; MouselessMode *ret; { if (0 == strcmp(str, "SunView1")) { *ret = KbdSunView; return True; } else if (0 == strcmp(str, "Basic")) { *ret = KbdBasic; return True; } else if (0 == strcmp(str, "Full")) { *ret = KbdFull; return True; } return False; } /* * Parse a key specification of the form * * [modifier ...] keysym * * For example, "Control Shift F7". Returns True if a valid keyspec was * parsed, otherwise False. The modifier mask is returned in modmask, and the * keycode is returned in keycode. */ static Bool parseKeySpec(dpy, str, modmask, keycode) Display *dpy; char *str; unsigned int *modmask; KeyCode *keycode; { char line[100]; char *word; extern unsigned int FindModiferMask(); int kc, m; int mask = 0; int code = 0; KeySym ks; strcpy(line, str); word = strtok(line, " \t"); if (word == NULL) return False; while (word != NULL) { ks = XStringToKeysym(word); if (ks == NoSymbol) { if (strcmp(word, "Any") == 0) { mask = AnyModifier; word = strtok(NULL, " \t"); continue; } else if (strcmp(word, "Shift") == 0) ks = XK_Shift_L; else if (strcmp(word, "Control") == 0) ks = XK_Control_L; else if (strcmp(word, "Meta") == 0) ks = XK_Meta_L; else if (strcmp(word, "Alt") == 0) ks = XK_Alt_L; else if (strcmp(word, "Super") == 0) ks = XK_Super_L; else if (strcmp(word, "Hyper") == 0) ks = XK_Hyper_L; else return False; } kc = XKeysymToKeycode(dpy, ks); if (kc == 0) return False; m = FindModifierMask(kc); if (m == 0) { code = kc; break; } mask |= m; word = strtok(NULL, " \t"); } if (code == 0) return False; *keycode = code; *modmask = mask; return True; } /* ===== Converters ======================================================= */ /* * static Bool cvtWhatever(dpy, item, string, addr) * * The job of the converter is to take a string and convert it into the value * appropriate for storage into a global variable. If the conversion is * successful, the value is stored at addr and True is returned. Otherwise, * False is returned. NOTE: the converted global variable shouldn't have any * pointers into the resource database. If it's necessary to keep a handle on * this data, the converter should allocate memory and make a copy. See also * the note about memory allocation in the comment at the top of the updaters * section, below. */ static Bool cvtBoolean(dpy, item, string, addr) Display *dpy; ResourceItem *item; char *string; void *addr; { return matchBool(string, (Bool *)addr); } #ifdef OW_I18N_L4 static Bool cvtFontSet(dpy, item, string, addr) Display *dpy; ResourceItem *item; char *string; void *addr; { XFontSetInfo *dest = addr; XFontSet info; char *locale; XFontSet loadQueryFontSet(); XFontSetExtents *XExtentsOfFontSet(); /* XXX - is this right? the locale may not have been set up properly */ locale = setlocale(LC_CTYPE, NULL); info = loadQueryFontSet(dpy, string, locale); if (info == NULL) { return False; } dest->fs = info; dest->fsx = XExtentsOfFontSet(info); return True; } #endif static Bool cvtFont(dpy, item, string, addr) Display *dpy; ResourceItem *item; char *string; void *addr; { XFontStruct **dest = addr; XFontStruct *info; info = XLoadQueryFont(dpy, string); if (info == NULL) return False; *dest = info; return True; } /* * cvtCursorFont -- set up ALL cursors from cursor font specified. * * NOTE that CursorColor and Bg1Color must be set before the cursors! * * Notice that six cursors are set up (and stored in six separate GRV * elements) from this single resource. REMIND: this is kind of bogus. * Ideally, all six cursors would have fonts and character indexes specifiable * independently. Further, addr isn't used; GRV is stored directly. * * REMIND: this appears to have a resource leak, in that cursorFont is loaded * but never unloaded. */ static Bool cvtCursorFont(dpy, item, string, addr) Display *dpy; ResourceItem *item; char *string; void *addr; { Font cursorFont; int ii; Cursor *tmpVariable; unsigned int tmpFontIndex; unsigned int defaultIndex; XColor foreColor, backColor; cursorFont = XLoadFont(dpy, string); /* * REMIND: the following doesn't make any sense. XLoadFont() simply * allocates an ID, sends the LoadFont requst, and returns the ID. There * is no error indication in the return value from XLoadFont(). This * needs to be fixed. Perhaps using XLoadQueryFont() would be the right * thing. */ if (cursorFont == NULL) return False; /* * REMIND: in the future, we will probably want to set up some scheme for * customizing cursor colors. For now, use black and white. */ foreColor.red = foreColor.green = foreColor.blue = 0; /* black */ backColor.red = backColor.green = backColor.blue = 65535; /* white */ for (ii = 0; ii < NUM_CURSORS; ++ii) { switch (ii) { case BASICPTR: tmpVariable = &GRV.BasicPointer; tmpFontIndex = OLC_basic; defaultIndex = XC_left_ptr; break; case MOVEPTR: tmpVariable = &GRV.MovePointer; tmpFontIndex = OLC_basic; defaultIndex = XC_left_ptr; break; case BUSYPTR: tmpVariable = &GRV.BusyPointer; tmpFontIndex = OLC_busy; defaultIndex = XC_watch; break; case ICONPTR: tmpVariable = &GRV.IconPointer; tmpFontIndex = OLC_basic; defaultIndex = XC_left_ptr; break; case RESIZEPTR: tmpVariable = &GRV.ResizePointer; tmpFontIndex = OLC_beye; defaultIndex = XC_tcross; break; case MENUPTR: tmpVariable = &GRV.MenuPointer; tmpFontIndex = OLC_basic; defaultIndex = XC_sb_right_arrow; break; case QUESTIONPTR: tmpVariable = &GRV.QuestionPointer; tmpFontIndex = OLC_basic; defaultIndex = XC_question_arrow; break; case TARGETPTR: tmpVariable = &GRV.TargetPointer; tmpFontIndex = OLC_basic; defaultIndex = XC_circle; break; case PANPTR: tmpVariable = &GRV.PanPointer; tmpFontIndex = OLC_panning; defaultIndex = XC_sb_v_double_arrow; break; } if (cursorFont == 0 || 0 == (*tmpVariable = XCreateGlyphCursor(dpy, cursorFont, cursorFont, tmpFontIndex, tmpFontIndex+1, &foreColor, &backColor))) { /* use default */ *tmpVariable = XCreateFontCursor( dpy, defaultIndex ); #ifdef LATER XRecolorCursor(dpy, tmpVariable, &foreColor, &backColor); #endif } } return True; } #ifdef OW_I18N_L4 /* * Converting a string simply means making a copy of it. */ static Bool cvtWString(dpy, item, string, addr) Display *dpy; ResourceItem *item; char *string; void *addr; { wchar_t **str = addr; if (string == NULL) return False; *str = mbstowcsdup(string); return True; } #endif /* * Converting a string simply means making a copy of it. */ static Bool cvtString(dpy, item, string, addr) Display *dpy; ResourceItem *item; char *string; void *addr; { char **str = addr; if (string == NULL) return False; *str = MemNewString(string); return True; } static Bool cvtFloat(dpy, item, string, addr) Display *dpy; ResourceItem *item; char *string; void *addr; { return (1 == sscanf(string, "%f", (float *)addr)); } /* * Convert an integer. Note that %i converts from decimal, octal, and * hexadecimal representations. */ static Bool cvtInteger(dpy, item, string, addr) Display *dpy; ResourceItem *item; char *string; void *addr; { return (1 == sscanf(string, "%i", (int *)addr)); } /* * Convert a string representing WorkspaceStyle */ static Bool cvtWorkspaceStyle(dpy, item, string, addr) Display *dpy; ResourceItem *item; char *string; void *addr; { /* return False; */ return matchWorkspaceStyle(string, (WorkspaceStyle *)addr); } /* * Convert a string representing tenths of a second into milliseconds. */ static Bool cvtClickTimeout(dpy, item, string, addr) Display *dpy; ResourceItem *item; char *string; void *addr; { int intval; int *dest = addr; if (1 != sscanf(string, "%d", &intval)) return False; intval *= 100; /* convert to milliseconds */ /* * It's nearly impossible for typical mouse hardware to generate two * clicks in less than 100ms. We special-case this and make the minimum * timeout value be 150ms. */ if (intval < 150) intval = 150; *dest = intval; return True; } static Bool cvtFocusStyle(dpy, item, string, addr) Display *dpy; ResourceItem *item; char *string; void *addr; { return matchFocusKeyword(string, (Bool *)addr); } static Bool cvtBeepStatus(dpy, item, string, addr) Display *dpy; ResourceItem *item; char *string; void *addr; { return matchBeepKeyword(string, (BeepStatus *)addr); } static Bool cvtMouseless(dpy, item, string, addr) Display *dpy; ResourceItem *item; char *string; void *addr; { return matchMouselessKeyword(string, (MouselessMode *)addr); } static Bool cvtIconLocation(dpy, item, string, addr) Display *dpy; ResourceItem *item; char *string; void *addr; { return matchIconPlace(string, (IconPreference *)addr); } /* * Convert a key specification. REMIND: this needs to be reconciled with the * key specification stuff in evbind.c. */ static Bool cvtKey(dpy, item, string, addr) Display *dpy; ResourceItem *item; char *string; void *addr; { KeySpec *keyspec = addr; unsigned int modmask; KeyCode keycode; if (!parseKeySpec(dpy, string, &modmask, &keycode)) return False; keyspec->modmask = modmask; keyspec->keycode = keycode; return True; } /* * buildStringList -- parse a string into words and build a linked list of * them. */ static void buildStringList(str, pplist) char *str; List **pplist; { char *swork, *swork2; List *l = NULL_LIST; swork2 = swork = MemNewString(str); while ((swork2 = strtok(swork2, " \t")) != NULL) { l = ListCons(MemNewString(swork2),l); swork2 = NULL; } MemFree(swork); *pplist = l; } static void * freeStringList(str,junk) char *str; void *junk; { MemFree(str); return NULL; } static Bool cvtStringList(dpy, item, string, addr) Display *dpy; ResourceItem *item; char *string; void *addr; { List **dest = addr; List *newl = NULL_LIST; buildStringList(string, &newl); *dest = newl; return True; } #ifdef OW_I18N_L3 /* * cvtOLLC * * REMIND: somewhat strange. This function always returns True, so the * default value in the Resource Table is never used. Further, this function * handles both the conversion and update functions itself. */ static Bool cvtOLLC(dpy, item, string, addr) Display *dpy; ResourceItem *item; char *string; void *addr; { OLLCItem *ollcitem = addr; char *newlocale; #ifdef DEBUG fprintf(stderr, "cvtOLLC: locale#%d, newlocale %s, curlocale %s\n", ollcitem->posixCategory, string, ollcitem->locale ? ollcitem->locale : "(null)"); #endif /* don't need to do anything if the new locale is the same as the old */ if ((string == NULL && ollcitem->locale == NULL) || (string != NULL && ollcitem->locale != NULL && 0 == strcmp(string, ollcitem->locale))) { return True; } /* they differ; update the locale */ if (string == NULL) newlocale = NULL; else newlocale = MemNewString(string); if (ollcitem->locale != NULL) MemFree(ollcitem->locale); ollcitem->locale = newlocale; #ifdef DEBUG fprintf(stderr, "cvtOLLC: locale#%d -> %s\n", ollcitem->posixCategory, ollcitem->locale ? ollcitem->locale : "(null)"); #endif return True; } #endif /* OW_I18N_L3 */ #if defined (DEBUG) && defined (OW_I18N_L3) dump_locale() { fprintf(stderr, " -> %5.5s %5.5s %5.5s %5.5s %5.5s\n", "basic", "dlang", "ilang", "numeric", "date"); fprintf(stderr, " -> %5.5s %5.5s %5.5s %5.5s %5.5s\n", GRV.lc_basic.locale ? GRV.lc_basic.locale : "(null)", GRV.lc_dlang.locale ? GRV.lc_dlang.locale : "(null)", GRV.lc_ilang.locale ? GRV.lc_ilang.locale : "(null)", GRV.lc_numeric.locale ? GRV.lc_numeric.locale : "(null)", GRV.lc_datefmt.locale ? GRV.lc_datefmt.locale : "(null)"); } #endif /* ===== Updaters ========================================================= */ /* * static void updWhatever(dpy, item, cur, new); * * The job of the updater is to compare the current value and newly converted * values, and update the current value if they differ. It is responsible * for all changes in global state, such as grabbing and ungrabbing keys. * NOTE: if the converter has allocated memory, the updater must free it * appropriately. Since the updater is called with old and new values, * exactly one of them should be freed by the updater, otherwise a memory leak * will result. */ static void updString(dpy, item, cur, new) Display *dpy; ResourceItem *item; char **cur, **new; { MemFree(*cur); *cur = *new; } static void updStringList(dpy, item, cur, new) Display *dpy; ResourceItem *item; List **cur, **new; { ListApply(*cur, freeStringList, NULL); ListDestroy(*cur); *cur = *new; } static void updWorkspaceStyle(dpy, item, cur, new) Display *dpy; ResourceItem *item; WorkspaceStyle *cur, *new; { *cur = *new; updateWorkspaceBackground = True; } static void updWorkspace(dpy, item, cur, new) Display *dpy; ResourceItem *item; char **cur, **new; { MemFree(*cur); *cur = *new; updateWorkspaceBackground = True; } static void updWindow(dpy, item, cur, new) Display *dpy; ResourceItem *item; char **cur, **new; { MemFree(*cur); *cur = *new; SetWindowColor(dpy); } static void updForeground(dpy, item, cur, new) Display *dpy; ResourceItem *item; char **cur, **new; { MemFree(*cur); *cur = *new; SetForegroundColor(dpy); } static void updBackground(dpy, item, cur, new) Display *dpy; ResourceItem *item; char **cur, **new; { MemFree(*cur); *cur = *new; SetBackgroundColor(dpy); } static void updBorder(dpy, item, cur, new) Display *dpy; ResourceItem *item; char **cur, **new; { MemFree(*cur); *cur = *new; SetBorderColor(dpy); } static void updSync(dpy, item, cur, new) Display *dpy; ResourceItem *item; Bool *cur, *new; { if (*cur != *new) { (void) XSynchronize(dpy, *new); *cur = *new; } } static void updTitleFont(dpy, item, cur, new) Display *dpy; ResourceItem *item; #ifdef OW_I18N_L4 XFontSetInfo *cur, *new; #else XFontStruct **cur, **new; #endif { #ifdef OW_I18N_L4 freeFontSet(dpy, cur->fs); #else XFree((char *) *cur); #endif *cur = *new; SetTitleFont(dpy); } static void updTextFont(dpy, item, cur, new) Display *dpy; ResourceItem *item; #ifdef OW_I18N_L4 XFontSetInfo *cur, *new; #else XFontStruct **cur, **new; #endif { #ifdef OW_I18N_L4 freeFontSet(dpy, cur->fs); #else XFree((char *) *cur); #endif *cur = *new; SetTextFont(dpy); } static void updButtonFont(dpy, item, cur, new) Display *dpy; ResourceItem *item; #ifdef OW_I18N_L4 XFontSetInfo *cur, *new; #else XFontStruct **cur, **new; #endif { #ifdef OW_I18N_L4 freeFontSet(dpy, cur->fs); #else XFree((char *) *cur); #endif *cur = *new; SetButtonFont(dpy); } static void updIconFont(dpy, item, cur, new) Display *dpy; ResourceItem *item; #ifdef OW_I18N_L4 XFontSetInfo *cur, *new; #else XFontStruct **cur, **new; #endif { #ifdef OW_I18N_L4 freeFontSet(dpy, cur->fs); #else XFree((char *) *cur); #endif *cur = *new; SetIconFont(dpy); } static void updGlyphFont(dpy, item, cur, new) Display *dpy; ResourceItem *item; XFontStruct **cur, **new; { XFree((char *) *cur); *cur = *new; SetGlyphFont(dpy); } static void updIconLocation(dpy, item, cur, new) Display *dpy; ResourceItem *item; IconPreference *cur, *new; { if (*cur != *new) { *cur = *new; SetIconLocation(dpy); } } static void updMouseless(dpy, item, cur, new) Display *dpy; ResourceItem *item; MouselessMode *cur, *new; { if (*cur != *new) { *cur = *new; forceKeyRegrab = True; } } static void updMenuAccelerators(dpy, item, cur, new) Display *dpy; ResourceItem *item; Bool *cur, *new; { if (*cur != *new) { *cur = *new; forceKeyRegrab = True; } } static void updWindowCacheSize(dpy, item, cur, new) Display *dpy; ResourceItem *item; int *cur, *new; { if (*cur != *new) { *cur = *new; ScreenUpdateWinCacheSize(dpy); } } /* * unconfigureFocus * * Tell a client to remove any grabs it may have set up according to the focus * mode. If this client is the focus, tell it to draw in its unfocused state. */ static void * unconfigureFocus(cli) Client *cli; { if (cli->framewin == NULL) return NULL; FrameSetupGrabs(cli, cli->framewin->core.self, False); if (cli->isFocus) { cli->isFocus = False; WinCallDraw((WinGeneric *)cli->framewin); cli->isFocus = True; } return NULL; } /* * reconfigureFocus * * Tell a client to restore any grabs it may need for the new focus mode. If * this client is the focus, tell it to draw using the proper highlighting for * the new focus mode. */ static void * reconfigureFocus(cli) Client *cli; { if (cli->framewin == NULL) return NULL; FrameSetupGrabs(cli, cli->framewin->core.self, True); if (cli->isFocus) { WinCallDraw((WinGeneric *)cli->framewin); } return NULL; } /* * UpdFocusStyle -- change the focus style on the fly * * If focus style needs updating, call unconfigureFocus on every client. This * will clear grabs and highlighting and such while the old focus mode is * still in effect. Update the global value, and then call reconfigureFocus * on every client to set up stuff for the new focus mode. * * REMIND: This function is global because it's called from FlipFocusFunc in * services.c. This call passes NULL for item. This needs to be cleaned up. */ void UpdFocusStyle(dpy, item, cur, new) Display *dpy; ResourceItem *item; Bool *cur, *new; { if (*cur != *new) { ListApply(ActiveClientList, unconfigureFocus, 0); *cur = *new; ListApply(ActiveClientList, reconfigureFocus, 0); } } /* ===== Global Functions ================================================= */ /* * datum -- temporary destination for converted values. On resource updates, * values are converted into this area instead of directly into the global * variable. This allows the update function to compare the converted values * to see whether an update is really necessary. This union should be as * large as the largest field in GRV. */ static union { int intval; void *pointer; KeySpec keyspec; #ifdef OW_I18N_L3 OLLCItem ollcitem; #ifdef OW_I18N_L4 XFontSetInfo fontsetinfo; #endif #endif /* OW_I18N_L3 */ } datum; /* * ScanResourceItemTable. Scans a resource item table, probing the * resource database for each item. Ignores any immutable items in * the table. If SR_IMMUTABLE is True, a hit will cause the table * entry's immutable flag to be set. If the probe missed and * SR_USE_DEFAULT is True, the default value will be converted. * * If SR_UPDATING is True, then we are updating the resource database * instead of initializing it. This causes a couple of differences. * If an updater function is given for the item, conversions are done * into a piece of temporary storage and then the updater function is * called to update the real global variable from this temporary * storage. */ void ScanResourceItemTable(dpy, table, rdb, oldlocale, flags) Display *dpy; ResourceItem *table; XrmDatabase rdb; char *oldlocale; unsigned long flags; { XrmRepresentation type; XrmValue value; XrmValue oldvalue; XrmQuark classes[4]; XrmQuark instances[4]; ResourceItem *item; Bool hit; #ifdef OW_I18N_L3 XrmQuark localeQ; XrmQuark oldlocaleQ; if (GRV.lc_basic.locale != NULL) localeQ = XrmStringToQuark(GRV.lc_basic.locale); else localeQ = NULLQUARK; if (oldlocale != NULL) oldlocaleQ = XrmStringToQuark(oldlocale); #endif classes[0] = OpenWinQ; instances[0] = TopInstanceQ; for (item = table; !(item->flags & RI_LAST_ITEM); ++item) { /* never update an immutable item */ if (item->flags & RI_IMMUTABLE) continue; classes[1] = item->classQ; instances[1] = item->instanceQ; hit = False; #ifdef OW_I18N_L3 if (item->flags & RI_LOCALE_DEP) { classes[2] = instances[2] = localeQ; classes[3] = instances[3] = NULLQUARK; hit = XrmQGetResource(rdb, instances, classes, &type, &value); } #endif if (!hit) { classes[2] = instances[2] = NULLQUARK; hit = XrmQGetResource(rdb, instances, classes, &type, &value); } if (flags & SR_UPDATING) { /* ignore if not found */ if (!hit) continue; /* ignore if old and new values are the same */ #ifdef OW_I18N_L3 if ((item->flags & RI_LOCALE_DEP) && (oldlocale != NULL)) classes[2] = instances[2] = oldlocaleQ; #endif if (XrmQGetResource(OlwmDB, instances, classes, &type, &oldvalue) && 0 == strcmp((char *)value.addr, (char *)oldvalue.addr)) { continue; } #ifdef OW_I18N_L3 if ((item->flags & RI_LOCALE_DEP) && (oldlocale != NULL)) classes[2] = instances[2] = localeQ; #endif if (item->updater == NULL) { (void) (*item->converter)(dpy, item, (char *)value.addr, item->addr); } else { (void) memset((char *) &datum, 0, sizeof(datum)); if ((*item->converter)(dpy, item, (char *)value.addr, &datum)) (*item->updater)(dpy, item, item->addr, &datum); } } else { if (hit && (*item->converter)(dpy, item, value.addr, item->addr)) { if (flags & SR_IMMUTABLE) item->flags |= RI_IMMUTABLE; } else { if (flags & SR_USE_DEFAULT) (void) (*item->converter)(dpy, item, item->defaultString, item->addr); } } } } /* * InitGlobals. Zero out all global variables. Run through resource tables, * interning their quarks. Called once at startup time. Destroys cmdDB. */ void InitGlobals(dpy, cmdDB) Display *dpy; XrmDatabase cmdDB; { ResourceItem *item; XrmDatabase userDB; (void) memset((char *) &GRV, 0, sizeof(GRV)); /* Run through the tables and intern the quarks. */ for (item = LocaleItemTable; !(item->flags & RI_LAST_ITEM); ++item) { item->classQ = XrmStringToQuark(item->class); item->instanceQ = XrmStringToQuark(item->instance); } for (item = MainItemTable; !(item->flags & RI_LAST_ITEM); ++item) { item->classQ = XrmStringToQuark(item->class); item->instanceQ = XrmStringToQuark(item->instance); } #ifdef OW_I18N_L3 GRVLCInit(); #endif userDB = GetUserDefaults(dpy); ScanResourceItemTable(dpy, LocaleItemTable, cmdDB, NULL, SR_IMMUTABLE); ScanResourceItemTable(dpy, LocaleItemTable, userDB, NULL, NULL); #ifdef OW_I18N_L3 setOLLCPosix(); EffectOLLC(dpy, True, NULL, NULL); #endif ScanResourceItemTable(dpy, MainItemTable, cmdDB, NULL, SR_IMMUTABLE); OlwmDB = GetAppDefaults(); XrmMergeDatabases(userDB, &OlwmDB); XrmMergeDatabases(cmdDB, &OlwmDB); ScanResourceItemTable(dpy, MainItemTable, OlwmDB, NULL, SR_USE_DEFAULT); /* * Special case for glyph font: if we couldn't find a valid glyph font, * it's a fatal error. */ if (GRV.GlyphFontInfo == NULL) ErrorGeneral(GetString("can't open glyph font")); /*NOTREACHED*/ } /* * UpdateGlobals -- handle updates to the server's resource database. Called * every time the server's RESOURCE_MANAGER property changes. Refetches the * user's database and the app-defaults database and merges them, and then * replaces the global database with this new one. This loses the resources * that corresponded to the command-line arguments, but that should be OK * since we should have set them to be immutable at startup time. */ void UpdateGlobals(dpy) Display *dpy; { XrmDatabase userDB; XrmDatabase newDB; Bool dlangChanged = False; #ifdef OW_I18N_L3 char oldBasicLocale[MAXNAMELEN + 1]; char oldDisplayLang[MAXNAMELEN + 1]; #endif updateWorkspaceBackground = False; forceKeyRegrab = False; userDB = GetUserDefaults(dpy); ScanResourceItemTable(dpy, LocaleItemTable, userDB, NULL, SR_UPDATING); #ifdef OW_I18N_L3 EffectOLLC(dpy, False, oldBasicLocale, oldDisplayLang); #endif /* OW_I18N_L3 */ /* * This re-fetches the app-defaults file every time the user database * changes. This may be necessary if the locale changes. It may also be * necessary if a resource disappears from the user's database. In this * case, we will want the value to revert to a value in the app-defaults * file, a value that had been overridden before. */ newDB = GetAppDefaults(); XrmMergeDatabases(userDB, &newDB); #ifdef OW_I18N_L3 ScanResourceItemTable(dpy, MainItemTable, newDB, oldBasicLocale, SR_UPDATING); if (strcmp(GRV.lc_dlang.locale, oldDisplayLang) != 0) dlangChanged = True; #else ScanResourceItemTable(dpy, MainItemTable, newDB, NULL, SR_UPDATING); #endif if (updateWorkspaceBackground) SetWorkspaceBackground(dpy); if (dlangChanged || UpdateBindings(dpy, newDB, forceKeyRegrab)) ReInitAllMenus(dpy); XrmDestroyDatabase(OlwmDB); OlwmDB = newDB; } /* ===== Internationalization ============================================= */ #ifdef OW_I18N_L3 /* * setOLLCPosix * * For each locale category setting that's NULL, fetch its current POSIX * setting and store it into GRV. */ static void setOLLCPosix() { OLLCItem *ollci; OLLCItem *last = &GRV.LC[OLLC_LC_MAX]; (void) setlocale(LC_ALL, ""); #ifdef DEBUG fprintf(stderr, "Just bfore OLLCPosix\n"); dump_locale(); #endif for (ollci = GRV.LC; ollci < last; ollci++) { if (ollci->locale == NULL && ollci->posixCategory >= 0) ollci->locale = MemNewString(setlocale(ollci->posixCategory, NULL)); } #ifdef DEBUG dump_locale(); #endif } /* * GRVLCInit * * For each OPEN LOOK locale category, fill in its corresponding POSIX locale * category identifier. Note: this is not intended to be a complete mapping. */ static void GRVLCInit() { GRV.lc_basic.posixCategory = LC_CTYPE; GRV.lc_basic.envName = "LC_CTYPE"; GRV.lc_dlang.posixCategory = LC_MESSAGES; GRV.lc_dlang.envName = "LC_MESSAGES"; GRV.lc_ilang.posixCategory = -1; GRV.lc_ilang.envName = NULL; GRV.lc_numeric.posixCategory = LC_NUMERIC; GRV.lc_numeric.envName = "LC_NUMERIC"; GRV.lc_datefmt.posixCategory = LC_TIME; GRV.lc_datefmt.envName = "LC_TIME"; } /* * EffectOLLC * * Apply restrictions to locale category combinations and then effect locale * changes as necessary (using setlocale()). Restrictions are as follows: * * + The basic locale can be changed from C to a non-C locale. However, once * in a non-C locale, it can never be changed again. If Olwm is in a non-C * locale, it can support only applications in that locale and applications in * the C locale. It cannot support applications in multiple non-C locales, as * that might require Olwm to switch between locales from window to window, * which it can't do. * * + If the first or initial time through, then ignore the above restriction. * This is because the locale may be set to a non-C locale in olwm.c/main() * using an environment variable. Here we're using the locale setting from * the resources which override the environment. So the first time through * set the locale using the resource setting. * * + If the basic locale is C, all other locale categories must be C. If the * basic locale is non-C, the other categories must either be C or must match * the basic locale. * * REMIND: need to check return values from setlocale(). */ void EffectOLLC(dpy, initial, oldBasicLocale, oldDisplayLang) Display *dpy; Bool initial; char *oldBasicLocale; char *oldDisplayLang; { OLLCItem *ollci; char *basic, *new, *cur; Bool basic_updated = False; Bool sticky_locale; #ifdef DEBUG fprintf(stderr, "Before calling EffectOLLC\n"); dump_locale(); #endif /* * Apply restrictions to the basic locale if current locale is not * sticky locale (sticky locale is defined to be locale which uses * none iso latin1 as characterset), updating if necessary. * Ensure that GRV.lc_basic matches reality. * * Note: update using LC_ALL in order to get the POSIX locale * categories that aren't covered by the OPEN LOOK locale * categories. This forces us to update all the other locale * categories, even if they otherwise wouldn't need to be updated. */ if (initial || strcmp(GRV.CharacterSet, ISO_LATIN_1) == 0) sticky_locale = False; else sticky_locale = True; basic = MemNewString(setlocale(LC_CTYPE, NULL)); if (oldBasicLocale != NULL) (void) strcpy(oldBasicLocale, basic); if (oldDisplayLang != NULL) (void) strcpy(oldDisplayLang, setlocale(LC_MESSAGES, NULL)); if (initial || ! sticky_locale || (strcmp(basic, "C") == 0 && strcmp(GRV.lc_basic.locale, "C") != 0) ) { #ifdef DEBUG fprintf(stderr, "Basic Locale -> %s\n", GRV.lc_basic.locale); #endif setlocale(LC_ALL, GRV.lc_basic.locale); basic_updated = True; #ifdef OW_I18N_L4 /* * Check with Xlib to see basiclocale/LC_CTYPE is supported or * not. */ if (! XSupportsLocale()) { /* * Assumption: "C" locale is always supported by the Xlib. */ (void) fprintf(stderr, "%s: Supplied locale (%s) is not supported by Xlib - defaulting to C\n", ProgramName, GRV.lc_basic.locale); (void) setlocale(LC_ALL, "C"); if (strcmp(basic, "C") == 0) basic_updated = False; MemFree(GRV.lc_basic.locale); GRV.lc_basic.locale = MemNewString("C"); MemFree(GRV.lc_dlang.locale); GRV.lc_dlang.locale = MemNewString("C"); } if (! XSetLocaleModifiers("")) (void) fprintf(stderr, "%s: Error in setting locale modifier to Xlib\n", ProgramName); #endif MemFree(basic); basic = MemNewString(GRV.lc_basic.locale); } else if (strcmp(basic, GRV.lc_basic.locale) != 0) { MemFree(GRV.lc_basic.locale); GRV.lc_basic.locale = MemNewString(basic); } /* * Run through the other locale categories, applying the restrictions, and * updating if necessary. Skip categories that have no corresponding * Posix locale category. As before, make sure the value in GRV matches * the actual current setting. */ for (ollci = GRV.LC + 1; ollci < &GRV.LC[OLLC_LC_MAX]; ++ollci) { if (ollci->posixCategory < 0) continue; if (sticky_locale) { if (strcmp(basic, "C") != 0 && strcmp(ollci->locale, "C") != 0) { new = basic; } else { new = "C"; } } else new = ollci->locale; cur = setlocale(ollci->posixCategory, NULL); if (basic_updated || strcmp(cur, new) != 0) { #ifdef DEBUG fprintf(stderr, "locale#%d -> %s\n", ollci->posixCategory, new); #endif setlocale(ollci->posixCategory, new); } if (strcmp(ollci->locale, new) != 0) { MemFree(ollci->locale); ollci->locale = MemNewString(new); } } MemFree(basic); #ifdef DEBUG dump_locale(); #endif } #endif /* OW_I18N_L3 */ xview-3.2p1.4/clients/olwm/resources.h100644 1750 1750 1634 5413747432 15241 0ustar mbmb#ident "@(#)resources.h 26.18 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_RESOURCES_H #define _OLWM_RESOURCES_H #include /* maximum length of fully-specified instance/class name */ #define MAX_NAME 100 #define MAX_CLASS 100 #define BASICPTR 0 #define MOVEPTR 1 #define BUSYPTR 2 #define ICONPTR 3 #define RESIZEPTR 4 #define MENUPTR 5 #define QUESTIONPTR 6 #define TARGETPTR 7 #define PANPTR 8 #define NUM_CURSORS 9 /* number of pointers supported */ extern XrmQuark TopClassQ; extern XrmQuark TopInstanceQ; extern XrmQuark OpenWinQ; extern XrmDatabase OlwmDB; extern void InitGlobals(); extern void UpdateGlobals(); #ifdef OW_I18N_L3 extern void EffectOLLC(); #endif /* OW_I18N_L3 */ #endif /* _OLWM_RESOURCES_H */ xview-3.2p1.4/clients/olwm/saber.suppress100644 1750 1750 23744 5413747433 16007 0ustar mbmbsuppress 25 st.c /* Initializing bad pointer */ suppress 53 in setResizeSizes /* Information lost */ suppress 68 in callFocusTree /* Benign argument mismatch */ suppress 68 in WinEventExpose /* Benign argument mismatch */ suppress 68 in dispatchEvent /* Benign argument mismatch */ suppress 68 in setTreeConfig /* Benign argument mismatch */ suppress 68 in WinCallConfig /* Benign argument mismatch */ suppress 68 in ResolveMouseBinding /* Benign argument mismatch */ suppress 68 in setKey /* Benign argument mismatch */ suppress 68 in WindowDismissAllAction /* Benign argument mismatch */ suppress 68 states.c /* Benign argument mismatch */ suppress 68 in WinCallSelect /* Benign argument mismatch */ suppress 68 in WinCallDestroy /* Benign argument mismatch */ suppress 68 winbusy.c /* Benign argument mismatch */ suppress 68 winbutton.c /* Benign argument mismatch */ suppress 68 wincolor.c /* Benign argument mismatch */ suppress 68 winframe.c /* Benign argument mismatch */ suppress 68 wingframe.c /* Benign argument mismatch */ suppress 68 winicon.c /* Benign argument mismatch */ suppress 68 winipane.c /* Benign argument mismatch */ suppress 68 winmenu.c /* Benign argument mismatch */ suppress 68 winpane.c /* Benign argument mismatch */ suppress 68 winpush.c /* Benign argument mismatch */ suppress 68 winresize.c /* Benign argument mismatch */ suppress 68 winroot.c /* Benign argument mismatch */ suppress 530 "winnofoc.c":200 /* Empty body of statement */ suppress 530 "winnofoc.c":196 /* Empty body of statement */ suppress 530 "winnofoc.c":192 /* Empty body of statement */ suppress 530 "winnofoc.c":188 /* Empty body of statement */ suppress 530 "olwm.c":712 /* Empty body of statement */ suppress 530 "RubberWin.c":833 /* Empty body of statement */ suppress 530 "RubberWin.c":583 /* Empty body of statement */ suppress 530 "RubberWin.c":574 /* Empty body of statement */ suppress 530 "RubberWin.c":820 /* Empty body of statement */ suppress 530 "olwm.c":751 /* Empty body of statement */ suppress 530 "usermenu.c":487 /* Empty body of statement */ suppress 530 "usermenu.c":512 /* Empty body of statement */ suppress 530 "usermenu.c":601 /* Empty body of statement */ suppress 530 "winnofoc.c":185 /* Empty body of statement */ suppress 530 "winnofoc.c":189 /* Empty body of statement */ suppress 530 "winnofoc.c":193 /* Empty body of statement */ suppress 530 "winnofoc.c":197 /* Empty body of statement */ suppress 560 in UserMoveWindows /* Assignment within conditional */ suppress 560 services.c /* Assignment within conditional */ suppress 560 in parseMenu /* Assignment within conditional */ suppress 560 in setTitleText /* Assignment within conditional */ suppress 590 in setBg1Color /* Unused formal parameter */ suppress 590 in setBeepResource /* Unused formal parameter */ suppress 590 resources.c /* Unused formal parameter */ suppress 590 services.c /* Unused formal parameter */ suppress 590 in widthfuncBusy /* Unused formal parameter */ suppress 590 in heightfuncBusy /* Unused formal parameter */ suppress 590 in BusyInit /* Unused formal parameter */ suppress 590 winbutton.c /* Unused formal parameter */ suppress 590 wincolor.c /* Unused formal parameter */ suppress 590 winframe.c /* Unused formal parameter */ suppress 590 winicon.c /* Unused formal parameter */ suppress 590 winipane.c /* Unused formal parameter */ suppress 590 winmenu.c /* Unused formal parameter */ suppress 590 winnofoc.c /* Unused formal parameter */ suppress 590 winpane.c /* Unused formal parameter */ suppress 590 winpush.c /* Unused formal parameter */ suppress 590 winresize.c /* Unused formal parameter */ suppress 590 winroot.c /* Unused formal parameter */ suppress 592 /* Unused static */ suppress 594 in UpdCursorColor /* Set but not used */ suppress 701 in SelectionResponse /* Function redeclared */ suppress 701 mem.h /* Function redeclared */ suppress 701 in menuHandlePress /* Function redeclared */ suppress 701 olwm.c /* Function redeclared */ suppress 701 resources.c /* Function redeclared */ suppress 701 services.c /* Function redeclared */ suppress 701 states.c /* Function redeclared */ suppress 701 usermenu.c /* Function redeclared */ suppress 701 win.c /* Function redeclared */ suppress 701 winbusy.c /* Function redeclared */ suppress 701 in eventButtonPress /* Function redeclared */ suppress 701 winbutton.c /* Function redeclared */ suppress 701 wincolor.c /* Function redeclared */ suppress 701 winframe.c /* Function redeclared */ suppress 701 wingframe.c /* Function redeclared */ suppress 701 winipane.c /* Function redeclared */ suppress 701 winmenu.c /* Function redeclared */ suppress 701 winpane.c /* Function redeclared */ suppress 701 winpush.c /* Function redeclared */ suppress 701 winresize.c /* Function redeclared */ suppress 701 in rootKeystroke /* Function redeclared */ suppress 701 winroot.c /* Function redeclared */ suppress 701 slave.c /* Function redeclared */ suppress 25 st.c /* Initializing bad pointer */ suppress 53 in setResizeSizes /* Information lost */ suppress 65 in ExecButtonAction /* Too many function arguments */ suppress 68 in callFocusTree /* Benign argument mismatch */ suppress 68 in WinEventExpose /* Benign argument mismatch */ suppress 68 in dispatchEvent /* Benign argument mismatch */ suppress 68 in setTreeConfig /* Benign argument mismatch */ suppress 68 in WinCallConfig /* Benign argument mismatch */ suppress 68 in ResolveMouseBinding /* Benign argument mismatch */ suppress 68 in setKey /* Benign argument mismatch */ suppress 68 in WindowDismissAllAction /* Benign argument mismatch */ suppress 68 states.c /* Benign argument mismatch */ suppress 68 in WinCallSelect /* Benign argument mismatch */ suppress 68 in WinCallDestroy /* Benign argument mismatch */ suppress 68 winbusy.c /* Benign argument mismatch */ suppress 68 winbutton.c /* Benign argument mismatch */ suppress 68 wincolor.c /* Benign argument mismatch */ suppress 68 winframe.c /* Benign argument mismatch */ suppress 68 wingframe.c /* Benign argument mismatch */ suppress 68 winicon.c /* Benign argument mismatch */ suppress 68 winipane.c /* Benign argument mismatch */ suppress 68 winmenu.c /* Benign argument mismatch */ suppress 68 winpane.c /* Benign argument mismatch */ suppress 68 winpush.c /* Benign argument mismatch */ suppress 68 winresize.c /* Benign argument mismatch */ suppress 68 winroot.c /* Benign argument mismatch */ suppress 530 "winnofoc.c":200 /* Empty body of statement */ suppress 530 "winnofoc.c":196 /* Empty body of statement */ suppress 530 "winnofoc.c":192 /* Empty body of statement */ suppress 530 "winnofoc.c":188 /* Empty body of statement */ suppress 530 "olwm.c":712 /* Empty body of statement */ suppress 530 "RubberWin.c":833 /* Empty body of statement */ suppress 530 "RubberWin.c":583 /* Empty body of statement */ suppress 530 "RubberWin.c":574 /* Empty body of statement */ suppress 530 "RubberWin.c":820 /* Empty body of statement */ suppress 530 "olwm.c":751 /* Empty body of statement */ suppress 530 "usermenu.c":487 /* Empty body of statement */ suppress 530 "usermenu.c":512 /* Empty body of statement */ suppress 530 "usermenu.c":601 /* Empty body of statement */ suppress 530 "winnofoc.c":185 /* Empty body of statement */ suppress 530 "winnofoc.c":189 /* Empty body of statement */ suppress 530 "winnofoc.c":193 /* Empty body of statement */ suppress 530 "winnofoc.c":197 /* Empty body of statement */ suppress 560 in UserMoveWindows /* Assignment within conditional */ suppress 560 services.c /* Assignment within conditional */ suppress 560 in parseMenu /* Assignment within conditional */ suppress 560 in setTitleText /* Assignment within conditional */ suppress 590 in setBg1Color /* Unused formal parameter */ suppress 590 in setBeepResource /* Unused formal parameter */ suppress 590 resources.c /* Unused formal parameter */ suppress 590 services.c /* Unused formal parameter */ suppress 590 in widthfuncBusy /* Unused formal parameter */ suppress 590 in heightfuncBusy /* Unused formal parameter */ suppress 590 in BusyInit /* Unused formal parameter */ suppress 590 winbutton.c /* Unused formal parameter */ suppress 590 wincolor.c /* Unused formal parameter */ suppress 590 winframe.c /* Unused formal parameter */ suppress 590 winicon.c /* Unused formal parameter */ suppress 590 winipane.c /* Unused formal parameter */ suppress 590 winmenu.c /* Unused formal parameter */ suppress 590 winnofoc.c /* Unused formal parameter */ suppress 590 winpane.c /* Unused formal parameter */ suppress 590 winpush.c /* Unused formal parameter */ suppress 590 winresize.c /* Unused formal parameter */ suppress 590 winroot.c /* Unused formal parameter */ suppress 592 /* Unused static */ suppress 594 in UpdCursorColor /* Set but not used */ suppress 701 on MemFree /* Function redeclared */ suppress 701 on MemAlloc /* Function redeclared */ suppress 701 in SelectionResponse /* Function redeclared */ suppress 701 mem.h /* Function redeclared */ suppress 701 in menuHandlePress /* Function redeclared */ suppress 701 olwm.c /* Function redeclared */ suppress 701 resources.c /* Function redeclared */ suppress 701 services.c /* Function redeclared */ suppress 701 states.c /* Function redeclared */ suppress 701 usermenu.c /* Function redeclared */ suppress 701 win.c /* Function redeclared */ suppress 701 winbusy.c /* Function redeclared */ suppress 701 in eventButtonPress /* Function redeclared */ suppress 701 winbutton.c /* Function redeclared */ suppress 701 wincolor.c /* Function redeclared */ suppress 701 winframe.c /* Function redeclared */ suppress 701 wingframe.c /* Function redeclared */ suppress 701 winipane.c /* Function redeclared */ suppress 701 winmenu.c /* Function redeclared */ suppress 701 winpane.c /* Function redeclared */ suppress 701 winpush.c /* Function redeclared */ suppress 701 winresize.c /* Function redeclared */ suppress 701 in rootKeystroke /* Function redeclared */ suppress 701 winroot.c /* Function redeclared */ suppress 701 slave.c /* Function redeclared */ xview-3.2p1.4/clients/olwm/screen.c100644 1750 1750 163522 6331437207 14542 0ustar mbmb#ident "@(#)screen.c 26.46 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #include #include #include #include #include #include #include #include #include #include #include #include "i18n.h" /* needed by olgx.h */ #include #include "ollocale.h" #include "mem.h" #include "olwm.h" #include "defaults.h" #include "globals.h" #include "resources.h" #include "environ.h" #include "win.h" #include "menu.h" #include "slots.h" #include "iconimage.h" #include "iconmask.h" /*------------------------------------------------------------------------- * Default Constants *-------------------------------------------------------------------------*/ #define DEFWORKSPACECOLOR "#40a0c0" #define DEFWINDOWCOLOR "#cccccc" #define DEFFOREGROUNDCOLOR "#000000" #define DEFBACKGROUNDCOLOR "#ffffff" #define DEFBORDERCOLOR "#000000" /*------------------------------------------------------------------------- * Global Data *-------------------------------------------------------------------------*/ List *ScreenInfoList; /* List of managed screens */ extern Bool BoolString(); /*------------------------------------------------------------------------- * Local Data *-------------------------------------------------------------------------*/ #define gray50_width 8 /* background gray bitmap */ #define gray50_height 8 static unsigned char gray50_bits[] = { 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa }; #define busy_gray_width 8 /* frame busy bitmap */ #define busy_gray_height 8 static unsigned char busy_gray_bits[] = { 0x88, 0x00, 0x22, 0x00, 0x88, 0x00, 0x22, 0x00 }; static Bool usingDefaultRootStipple; /* * Set from GlyphFont; used in moveresize.c,winframe.c,winresize.c */ int Resize_height, Resize_width; /* * Quarks. The 'C' suffix indicates a class name, and the 'I' suffix * indicates an instance name. All are also suffixed with 'Q' to indicate * that they're quarks. Note that the "class" in the "visclass" variables * refers to the visual class, not the resource class. */ static XrmQuark screenClassQ; static XrmQuark visdepthCQ; static XrmQuark visdepthIQ; static XrmQuark visclassCQ; static XrmQuark visclassIQ; static XrmQuark visidCQ; static XrmQuark visidIQ; static XrmQuark cmapCQ; static XrmQuark cmapIQ; static XrmQuark workspaceColorCQ; static XrmQuark workspaceColorIQ; static XrmQuark workspaceBitmapFileCQ; static XrmQuark workspaceBitmapFileIQ; static XrmQuark workspaceBitmapFgCQ; static XrmQuark workspaceBitmapFgIQ; static XrmQuark workspaceBitmapBgCQ; static XrmQuark workspaceBitmapBgIQ; static XrmQuark windowColorCQ; static XrmQuark windowColorIQ; static XrmQuark foregroundColorCQ; static XrmQuark foregroundColorIQ; static XrmQuark backgroundColorCQ; static XrmQuark backgroundColorIQ; static XrmQuark borderColorCQ; static XrmQuark borderColorIQ; static XrmQuark reverseVideoCQ; static XrmQuark reverseVideoIQ; static XrmQuark stippledRubberBandsCQ; static XrmQuark stippledRubberBandsIQ; /*------------------------------------------------------------------------- * Local Functions *-------------------------------------------------------------------------*/ /* * makeScreenQuarks -- set up quarks for screen resources */ static void makeScreenQuarks() { screenClassQ = XrmStringToQuark("Screen"); visdepthCQ = XrmStringToQuark("Depth"); visdepthIQ = XrmStringToQuark("depth"); visclassCQ = XrmStringToQuark("Visual"); visclassIQ = XrmStringToQuark("visual"); visidCQ = XrmStringToQuark("VisualID"); visidIQ = XrmStringToQuark("visualID"); cmapCQ = XrmStringToQuark("Colormap"); cmapIQ = XrmStringToQuark("colormap"); workspaceColorCQ = XrmStringToQuark("WorkspaceColor"); workspaceColorIQ = XrmStringToQuark("workspaceColor"); workspaceColorCQ = XrmStringToQuark("WorkspaceColor"); workspaceColorIQ = XrmStringToQuark("workspaceColor"); workspaceBitmapFileCQ = XrmStringToQuark("WorkspaceBitmapFile"); workspaceBitmapFileIQ = XrmStringToQuark("workspaceBitmapFile"); workspaceBitmapFgCQ = XrmStringToQuark("WorkspaceBitmapFg"); workspaceBitmapFgIQ = XrmStringToQuark("workspaceBitmapFg"); workspaceBitmapBgCQ = XrmStringToQuark("WorkspaceBitmapBg"); workspaceBitmapBgIQ = XrmStringToQuark("workspaceBitmapBg"); windowColorCQ = XrmStringToQuark("WindowColor"); windowColorIQ = XrmStringToQuark("windowColor"); foregroundColorCQ = XrmStringToQuark("Foreground"); foregroundColorIQ = XrmStringToQuark("foreground"); backgroundColorCQ = XrmStringToQuark("Background"); backgroundColorIQ = XrmStringToQuark("background"); borderColorCQ = XrmStringToQuark("BorderColor"); borderColorIQ = XrmStringToQuark("borderColor"); foregroundColorIQ = XrmStringToQuark("foreground"); reverseVideoCQ = XrmStringToQuark("ReverseVideo"); reverseVideoIQ = XrmStringToQuark("reverseVideo"); stippledRubberBandsCQ = XrmStringToQuark("StippledRubberBands"); stippledRubberBandsIQ = XrmStringToQuark("stippledRubberBands"); } /* * getResource -- gets the resource value for a given instance/class quark * * Probes are made into the resource database using the following instance and * class components: * * class: Olwm.Screen. * instance: .screen#. * * Returns NULL on failure */ static char * getResource(scrInfo,classQ,instanceQ) ScreenInfo *scrInfo; XrmQuark classQ; XrmQuark instanceQ; { XrmQuark classes[4]; XrmQuark instances[4]; XrmQuark type; XrmValue value; classes[0] = TopClassQ; classes[1] = screenClassQ; classes[2] = classQ; classes[3] = 0; instances[0] = TopInstanceQ; instances[1] = scrInfo->instanceQ; instances[2] = instanceQ; instances[3] = 0; if (!XrmQGetResource(OlwmDB, instances, classes, &type, &value)) { return (char *)NULL; } return (char *)value.addr; } /* * isColorScreen -- check to see if a screen supports color. */ static Bool isColorScreen(scrInfo,visInfo,nvisuals) ScreenInfo *scrInfo; XVisualInfo *visInfo; int nvisuals; { int screen = scrInfo->screen; int i; for (i=0; idepth; int visclass = scrInfo->visual->class; /* REMIND: this is illegal; visual is supposed to be opaque */ Bool result = True; /* * If 2d-look specified then use it no matter what the visual is */ if (!GRV.F3dUsed) return False; switch (visclass) { case StaticGray: case GrayScale: if (depth < 2) result = False; break; case DirectColor: case PseudoColor: if (depth < 4) result = False; break; case StaticColor: if (depth < 8) result = False; break; case TrueColor: if (depth < 6) result = False; break; } return result; } /* * initBasic * Sets root/depth/visual/colormap basics. */ static void initBasic(dpy,scrInfo,visInfo,nvis) Display *dpy; ScreenInfo *scrInfo; XVisualInfo *visInfo; int nvis; { char instance[MAX_NAME]; scrInfo->dpy = dpy; scrInfo->rootid = RootWindow(dpy,scrInfo->screen); scrInfo->iscolor = isColorScreen(scrInfo,visInfo,nvis); sprintf(instance, "screen%d", scrInfo->screen); scrInfo->instanceQ = (XrmQuark) XrmStringToQuark(instance); } /* * initVisual * Initialize screen's visual information using data obtained * from the resource database. */ static void initVisual(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { char *buf; char *p; XVisualInfo vtemplate; unsigned int vinfomask = 0; XVisualInfo *vinfo = NULL; int nitems; if ((buf = getResource(scrInfo,visdepthCQ,visdepthIQ)) != NULL) { /* atoi returns 0 on error, which is invalid anyway */ vtemplate.depth = atoi(buf); if (vtemplate.depth != 0) vinfomask |= VisualDepthMask; } if ((buf = getResource(scrInfo,visclassCQ,visclassIQ)) != NULL) { vinfomask |= VisualClassMask; if (0 == strcmp(buf, "StaticGray")) vtemplate.class = StaticGray; else if (0 == strcmp(buf, "GrayScale")) vtemplate.class = GrayScale; else if (0 == strcmp(buf, "StaticColor")) vtemplate.class = StaticColor; else if (0 == strcmp(buf, "PseudoColor")) vtemplate.class = PseudoColor; else if (0 == strcmp(buf, "TrueColor")) vtemplate.class = TrueColor; else if (0 == strcmp(buf, "DirectColor")) vtemplate.class = DirectColor; else vinfomask &= ~VisualClassMask; } if ((buf = getResource(scrInfo,visidCQ,visidIQ)) != NULL) { /* * Note: %i converts from hex (if leading "0x"), from octal (if * leading "0"), otherwise from decimal. */ if (1 == sscanf(buf, "%i", &vtemplate.visualid)) vinfomask |= VisualIDMask; } if (vinfomask != 0) { vinfomask |= VisualScreenMask; vtemplate.screen = scrInfo->screen; vinfo = XGetVisualInfo(dpy, vinfomask, &vtemplate, &nitems); } if (vinfo == NULL) { /* use default visual and depth */ scrInfo->visual = DefaultVisual(dpy, scrInfo->screen); scrInfo->depth = DefaultDepth(dpy,scrInfo->screen); } else { /* use the first visual found -- ignore the others */ scrInfo->visual = vinfo->visual; scrInfo->depth = vinfo->depth; XFree((char *)vinfo); } #ifdef DEBUG printf("screen #%d visual: 0x%08x, depth=%d, class=%d%s\n", scrInfo->screen, scrInfo->visual->visualid, scrInfo->depth, scrInfo->visual->class, (scrInfo->visual == DefaultVisual(dpy, scrInfo->screen)) ? " [default]" : ""); #endif /* DEBUG */ } /* * initColormap - initialize screen's colormap * * If this screen is using the default visual, simply use the default * colormap. Otherwise, search for a standard colormap and use it instead. * If one can't be found, we'll have to create one. */ static void initColormap(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { XStandardColormap *cmaps; int i, ncmaps; Colormap cm = 0; if (scrInfo->visual == DefaultVisual(dpy, scrInfo->screen)) { cm = DefaultColormap(dpy,scrInfo->screen); #ifdef DEBUG printf("using default colormap (0x%x) on screen %d\n", cm, scrInfo->screen); #endif /* DEBUG */ } else { if (XGetRGBColormaps(dpy, scrInfo->rootid, &cmaps, &ncmaps, XA_RGB_DEFAULT_MAP)) { for (i=0; ivisual->visualid) { cm = cmaps[i].colormap; #ifdef DEBUG printf("using rgb default map 0x%x for screen %d\n", cm, scrInfo->screen); #endif /* DEBUG */ break; } } XFree((char *) cmaps); } /* * We didn't find one in the property, or there wasn't a property at * all. We'll have to create our own colormap. */ if (cm == 0) { cm = XCreateColormap(dpy, scrInfo->rootid, scrInfo->visual, AllocNone); #ifdef DEBUG printf("creating colormap 0x%x for screen %d\n", cm, scrInfo->screen); #endif /* DEBUG */ } } scrInfo->colormap = cm; } /* * initWinCache - initialize the screen's window cache. * * Setting the cache size to zero effectively turns off window caching. */ static void initWinCache(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { scrInfo->winCacheCount = 0; scrInfo->winCacheSize = GRV.WindowCacheSize; if (GRV.WindowCacheSize == 0) scrInfo->winCache = NULL; else scrInfo->winCache = (Window *) MemCalloc(GRV.WindowCacheSize, sizeof(Window)); } /* * Bitmap Search Path */ static char **bitmapSearchPath; /* bitmap search path */ /* * makeBitmapSearchPath * * Construct bitmap search path as follows: * $OPENWINHOME/etc/workspace/patterns * $OPENWINHOME/include/X11/include/bitmaps * /usr/X11/include/X11/include/bitmaps * * REMIND: this should be cleaned up so that it doesn't use a fixed-size * array. */ static void makeBitmapSearchPath() { char bmPath[MAXPATHLEN]; char *owHome; int i = 0;; if ((owHome = getenv("OPENWINHOME")) == NULL) #ifdef OPENWINHOME_DEFAULT /* martin-2.buck@student.uni-ulm.de */ owHome = OPENWINHOME_DEFAULT; #else owHome = "/usr/openwin"; #endif bitmapSearchPath = (char **)MemAlloc(4 * sizeof(char *)); (void)sprintf(bmPath, "%s/etc/workspace/patterns",owHome); bitmapSearchPath[i++] = MemNewString(bmPath); (void)sprintf(bmPath, "%s/include/X11/bitmaps",owHome); bitmapSearchPath[i++] = MemNewString(bmPath); bitmapSearchPath[i++] = MemNewString("/usr/X11/include/X11/bitmaps"); bitmapSearchPath[i] = (char *)NULL; } /* * findBitmapFile * Finds a bitmap file in the bitmap search path; * Returns a dynamically allocated string containing the * fullpath to the bitmap file. */ static char * #if defined(__STDC__) findBitmapFile( char *fileName) #else findBitmapFile(fileName) char *fileName; #endif /* __STDC__ */ { char **dir; char fullPath[MAXPATHLEN]; int i; if (bitmapSearchPath == NULL) makeBitmapSearchPath(); if (fileName[0] == '/' && (access(fileName, R_OK) == 0)) return MemNewString(fileName); for (dir = bitmapSearchPath; *dir; dir++) { (void)sprintf(fullPath,"%s/%s",*dir,fileName); if (access(fullPath, R_OK) == 0) return MemNewString(fullPath); } return (char *)NULL; } /* * makePixmap - make a screen pixmap from bitmapfile * or built-in default */ static Bool #if defined(__STDC__) makePixmap( Display *dpy, ScreenInfo *scrInfo, char *bitmapfile, Pixmap *pixmap) /* RETURN */ #else makePixmap(dpy, scrInfo, bitmapfile, pixmap) Display *dpy; ScreenInfo *scrInfo; char *bitmapfile; Pixmap *pixmap; /* RETURN */ #endif /* __STDC__ */ { char *bmPath; Pixmap bitmap; unsigned int width,height; int x,y; int status = BitmapNoMemory; GC gc; XGCValues gcv; Bool freeBitmap = False; /* * Read the bitmap file */ if ((bmPath = findBitmapFile(bitmapfile)) != NULL) { status = XReadBitmapFile(dpy,scrInfo->rootid,bmPath, &width,&height,&bitmap,&x,&y); MemFree(bmPath); /* REMIND - should print error msg for readbitmap failure */ } /* * If that fails then use our built-in gray bitmap */ if (status) { bitmap = scrInfo->pixmap[GRAY50_BITMAP]; width = gray50_width; height = gray50_height; usingDefaultRootStipple = GRV.PaintWorkspace; } else { freeBitmap = True; } /* * Create a screen depth pixmap from the bitmap */ gcv.foreground = scrInfo->colorInfo.workspaceBitmapFg; gcv.background = scrInfo->colorInfo.workspaceBitmapBg; gc = XCreateGC(dpy,scrInfo->rootid, GCForeground|GCBackground,&gcv); *pixmap = XCreatePixmap(dpy,scrInfo->rootid, width,height,scrInfo->depth); XCopyPlane(dpy,bitmap,*pixmap,gc,0,0,width,height,0,0,1); XFreeGC(dpy,gc); if (freeBitmap) XFreePixmap(dpy,bitmap); return True; } /* * makeColor - alloc a color using colorname or defaultcolor */ static Bool #if defined(__STDC__) makeColor( Display *dpy, ScreenInfo *scrInfo, char *colorname, char *defaultcolor, XColor *color) /* RETURN */ #else makeColor(dpy, scrInfo, colorname, defaultcolor, color) Display *dpy; ScreenInfo *scrInfo; char *colorname; char *defaultcolor; XColor *color; /* RETURN */ #endif /* __STDC__ */ { Colormap cmap = scrInfo->colormap; if (!scrInfo->iscolor) return False; if (!colorname) colorname = defaultcolor; if (!XParseColor(dpy,cmap,colorname,color)) { if (colorname == defaultcolor || !XParseColor(dpy,cmap,defaultcolor,color)) { return False; } } if (!XAllocColor(dpy,cmap,color)) return False; /* REMIND - should print error msg for above failures */ return True; } /* * makeRootColors - allocate a color for the root window * * This is necessary in addition to makeColor because olwm may be using a * visual other than the default visual. This routine allocates a color cell * both from the default colormap and from the colormap for olwm's visual. */ static Bool #if defined(__STDC__) makeRootColors( Display *dpy, ScreenInfo *scrInfo, char *colorname, char *defaultcolor, XColor *olwmcolor, XColor *rootcolor) #else makeRootColors(dpy, scrInfo, colorname, defaultcolor, olwmcolor, rootcolor) Display *dpy; ScreenInfo *scrInfo; char *colorname; char *defaultcolor; XColor *olwmcolor; XColor *rootcolor; #endif /* __STDC__ */ { if (!scrInfo->iscolor) return False; if (!XParseColor(dpy, scrInfo->colormap, colorname, olwmcolor)) { if (colorname == defaultcolor || !XParseColor(dpy,scrInfo->colormap,defaultcolor,olwmcolor)) { return False; } } *rootcolor = *olwmcolor; if (!XAllocColor(dpy, scrInfo->colormap, olwmcolor)) return False; if (!XAllocColor(dpy,DefaultColormap(dpy,scrInfo->screen),rootcolor)) { XFreeColors(dpy, scrInfo->colormap, &(olwmcolor->pixel), 1, 0); return False; } return True; } /* * makeBitmapColors * Alloc the fg/bg pair of workspace bitmap colors out of * the default colormap -- suitable for the root window. * Returns True only if both colors were alloced */ static Bool #if defined(__STDC__) makeBitmapColors( Display *dpy, ScreenInfo *scrInfo, char *fgColorName, XColor *fgColor, char *bgColorName, XColor *bgColor) #else makeBitmapColors(dpy, scrInfo, fgColorName, fgColor, bgColorName, bgColor) Display *dpy; ScreenInfo *scrInfo; char *fgColorName; XColor *fgColor; char *bgColorName; XColor *bgColor; #endif /* __STDC__ */ { Colormap cmap = DefaultColormap(dpy,scrInfo->screen); if (!scrInfo->iscolor) return False; if (!XParseColor(dpy, cmap, fgColorName, fgColor)) return False; if (!XParseColor(dpy, cmap, bgColorName, bgColor)) return False; if (!XAllocColor(dpy, cmap, fgColor)) return False; if (!XAllocColor(dpy, cmap, bgColor)) { XFreeColors(dpy, cmap, &(fgColor->pixel), 1, 0); return False; } return True; } /* * setScreenWorkspaceColor - sets the workspace/root to be either * a color, a pixmap or none/default. */ static void #if defined(__STDC__) setScreenWorkspaceColor( Display *dpy, ScreenInfo *scrInfo) #else setScreenWorkspaceColor(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; #endif /* __STDC__ */ { Bool update = False; XColor oColor; XColor rColor; Pixmap pixmap; char *colorName; char *defName = DEFWORKSPACECOLOR; if (scrInfo->colorInfo.flags & CIWorkspaceColorAlloced) { unsigned long pixels[2],i=0; pixels[i++] = scrInfo->colorInfo.workspaceColor; pixels[i++] = scrInfo->colorInfo.workspaceRootPixel; XFreeColors(dpy,scrInfo->colormap,pixels,i,0); scrInfo->colorInfo.flags ^= CIWorkspaceColorAlloced; update = True; } colorName = getResource(scrInfo,workspaceColorCQ,workspaceColorIQ); if (!colorName) colorName = GRV.WorkspaceColor; if (!colorName) colorName = DEFWORKSPACECOLOR; usingDefaultRootStipple = False; /* * If on color screen then make a workspace color * otherwise force use of workspace bitmap */ if (scrInfo->iscolor && makeRootColors(dpy,scrInfo,colorName,defName,&oColor,&rColor)) { scrInfo->colorInfo.workspaceColor = oColor.pixel; scrInfo->colorInfo.workspaceRootPixel = rColor.pixel; scrInfo->colorInfo.flags |= CIWorkspaceColorAlloced; } else { scrInfo->colorInfo.workspaceStyle = WkspPixmap; } if (update) updateScreenWorkspaceColor(dpy,scrInfo); } /* * setScreenWorkspaceBitmap */ static void #if defined(__STDC__) setScreenWorkspaceBitmap( Display *dpy, ScreenInfo *scrInfo) #else setScreenWorkspaceBitmap(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; #endif /* __STDC__ */ { XColor fgColor; XColor bgColor; char *fgName; char *bgName; char *bmFile; Pixmap pixmap; if (scrInfo->colorInfo.flags & CIWorkspaceBitmapColorsAlloced) { unsigned long pixels[2],i=0; pixels[i++] = scrInfo->colorInfo.workspaceBitmapFg; pixels[i++] = scrInfo->colorInfo.workspaceBitmapBg; XFreeColors(dpy,scrInfo->colormap,pixels,i,0); scrInfo->colorInfo.flags ^= CIWorkspaceBitmapColorsAlloced; } /* * Probe for screen or global resources for File, Fg & Bg */ bmFile = getResource(scrInfo, workspaceBitmapFileCQ,workspaceBitmapFileIQ); if (!bmFile) bmFile = GRV.WorkspaceBitmapFile; fgName = getResource(scrInfo, workspaceBitmapFgCQ,workspaceBitmapFgIQ); if (!fgName) fgName = GRV.WorkspaceBitmapFg; bgName = getResource(scrInfo, workspaceBitmapBgCQ,workspaceBitmapBgIQ); if (!bgName) bgName = GRV.WorkspaceBitmapBg; /* * Make bitmap colors or use default black/white */ if (scrInfo->iscolor && makeBitmapColors(dpy,scrInfo,fgName,&fgColor,bgName,&bgColor)) { scrInfo->colorInfo.workspaceBitmapFg = fgColor.pixel; scrInfo->colorInfo.workspaceBitmapBg = bgColor.pixel; scrInfo->colorInfo.flags |= CIWorkspaceBitmapColorsAlloced; } else { scrInfo->colorInfo.workspaceBitmapFg = scrInfo->colorInfo.black; scrInfo->colorInfo.workspaceBitmapBg = scrInfo->colorInfo.white; } /* * Make a workspace pixmap or None; set it */ if (!makePixmap(dpy,scrInfo,bmFile,&pixmap)) pixmap = None; XSetWindowBackgroundPixmap(dpy,scrInfo->rootid,pixmap); } /* * setScreenWorkspaceBackground */ static void #if defined(__STDC__) setScreenWorkspaceBackground( Display *dpy, ScreenInfo *scrInfo) #else setScreenWorkspaceBackground(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; #endif /* __STDC__ */ { scrInfo->colorInfo.workspaceStyle = GRV.WorkspaceStyle; /* * Always need the workspace color (for icon backgrounds) * even if not painting the workspace */ setScreenWorkspaceColor(dpy,scrInfo); /* * Set the root window background as appropriate * only if PaintWorkspace is True */ if (GRV.PaintWorkspace) { switch (scrInfo->colorInfo.workspaceStyle) { case WkspColor: /* background color */ XSetWindowBackground(dpy,scrInfo->rootid, scrInfo->colorInfo.workspaceRootPixel); break; case WkspPixmap: /* background pixmap */ setScreenWorkspaceBitmap(dpy,scrInfo); break; case WkspDefault: /* mimic xsetroot -def */ XSetWindowBackgroundPixmap(dpy,scrInfo->rootid, (Pixmap)None); break; } XClearWindow(dpy,scrInfo->rootid); } } /* * setScreenWindowColor - computes the various window * color(s) for a screen */ static void setScreenWindowColor(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { Bool update = False; XColor fg,bg0,bg1,bg2,bg3; char *colorname; if (scrInfo->colorInfo.flags & CIWindowColorAlloced) { unsigned long pixels[4],i=0; pixels[i++] = scrInfo->colorInfo.bg1Color; if (scrInfo->use3D) { pixels[i++] = scrInfo->colorInfo.bg2Color; pixels[i++] = scrInfo->colorInfo.bg3Color; pixels[i++] = scrInfo->colorInfo.bg0Color; } XFreeColors(dpy,scrInfo->colormap,pixels,i,0); scrInfo->colorInfo.flags ^= CIWindowColorAlloced; update = True; } colorname = getResource(scrInfo,windowColorCQ,windowColorIQ); if (!colorname) colorname = GRV.WindowColor; /* * If color screen and we can make a pixel from colorname * (or default) then use that pixel. */ if (scrInfo->iscolor && makeColor(dpy,scrInfo,colorname,DEFWINDOWCOLOR,&bg1)) { /* * If 3D mode then get all 4 bg colors */ if (scrInfo->use3D) { Colormap cmap = scrInfo->colormap; fg.pixel = scrInfo->colorInfo.fgColor; XQueryColor(dpy,cmap,&fg); olgx_calculate_3Dcolors(&fg,&bg1,&bg2,&bg3,&bg0); /* REMIND: check return values */ XAllocColor(dpy,cmap,&bg2); XAllocColor(dpy,cmap,&bg3); XAllocColor(dpy,cmap,&bg0); scrInfo->colorInfo.flags |= CIWindowColorAlloced; scrInfo->colorInfo.bg0Color = bg0.pixel; scrInfo->colorInfo.bg1Color = bg1.pixel; scrInfo->colorInfo.bg2Color = bg2.pixel; scrInfo->colorInfo.bg3Color = bg3.pixel; /* * Else if 2D mode then just use bg1 */ } else { scrInfo->colorInfo.flags |= CIWindowColorAlloced; scrInfo->colorInfo.bg0Color = scrInfo->colorInfo.bg1Color = scrInfo->colorInfo.bg2Color = scrInfo->colorInfo.bg3Color = bg1.pixel; } } else { scrInfo->colorInfo.bg0Color = scrInfo->colorInfo.bg1Color = scrInfo->colorInfo.bg2Color = scrInfo->colorInfo.bg3Color = scrInfo->colorInfo.white; } if (update) updateScreenWindowColor(dpy,scrInfo); } /* * setScreenForegroundColor - sets window foreground color for a screen */ static void setScreenForegroundColor(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { Bool update = False; XColor color; char *colorname; if (scrInfo->colorInfo.flags & CIForegroundColorAlloced) { unsigned long pixel[1]; pixel[0] = scrInfo->colorInfo.fgColor; XFreeColors(dpy,scrInfo->colormap,pixel,1,0); scrInfo->colorInfo.flags ^= CIForegroundColorAlloced; update = True; } colorname = getResource(scrInfo,foregroundColorCQ,foregroundColorIQ); if (!colorname) colorname = GRV.ForegroundColor; /* * If color screen and we can make a pixel * from colorname (or default) then use that pixel. * Otherwise just use black. */ if (scrInfo->iscolor && makeColor(dpy,scrInfo,colorname,DEFFOREGROUNDCOLOR,&color)) { scrInfo->colorInfo.flags |= CIForegroundColorAlloced; scrInfo->colorInfo.fgColor = color.pixel; } else { scrInfo->colorInfo.fgColor = scrInfo->colorInfo.black; } if (update) updateScreenForegroundColor(dpy,scrInfo); } /* * setScreenBackgroundColor - sets window Background color for a screen */ static void setScreenBackgroundColor(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { Bool update = False; XColor color; char *colorname; if (scrInfo->colorInfo.flags & CIBackgroundColorAlloced) { unsigned long pixel[1]; pixel[0] = scrInfo->colorInfo.bgColor; XFreeColors(dpy,scrInfo->colormap,pixel,1,0); scrInfo->colorInfo.flags ^= CIBackgroundColorAlloced; update = True; } colorname = getResource(scrInfo,backgroundColorCQ,backgroundColorIQ); if (!colorname) colorname = GRV.BackgroundColor; /* * If color screen and we can make a pixel * from colorname (or default) then use that pixel. * Otherwise just use white. */ if (scrInfo->iscolor && makeColor(dpy,scrInfo,colorname,DEFBACKGROUNDCOLOR,&color)) { scrInfo->colorInfo.flags |= CIBackgroundColorAlloced; scrInfo->colorInfo.bgColor = color.pixel; } else { scrInfo->colorInfo.bgColor = scrInfo->colorInfo.white; } if (update) updateScreenBackgroundColor(dpy,scrInfo); } /* * setScreenBorderColor - sets border color for a screen */ static void setScreenBorderColor(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { Bool update = False; XColor color; char *colorname; if (scrInfo->colorInfo.flags & CIBorderColorAlloced) { unsigned long pixel[1]; pixel[0] = scrInfo->colorInfo.borderColor; XFreeColors(dpy,scrInfo->colormap,pixel,1,0); scrInfo->colorInfo.flags ^= CIBorderColorAlloced; update = True; } colorname = getResource(scrInfo,borderColorCQ,borderColorIQ); if (!colorname) colorname = GRV.BorderColor; /* * If color screen and doing 3d and we can make a pixel * from colorname (or default) then use that pixel. * Otherwise just use black. */ if (scrInfo->iscolor && makeColor(dpy,scrInfo,colorname,DEFBORDERCOLOR,&color)) { scrInfo->colorInfo.flags |= CIBorderColorAlloced; scrInfo->colorInfo.borderColor = color.pixel; } else { scrInfo->colorInfo.borderColor = scrInfo->colorInfo.black; } if (update) updateScreenBorderColor(dpy,scrInfo); } /* * initColors - setups workspace/window/background colors */ static void initColors(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { XColor color; unsigned long black,white; char *resStr; if (scrInfo->visual == DefaultVisual(dpy, scrInfo->screen)) { black = BlackPixel(dpy,scrInfo->screen); white = WhitePixel(dpy,scrInfo->screen); } else { /* * Allocate black and white from this screen's colormap. * REMIND: check return values from XAllocColor. */ color.red = color.green = color.blue = 0; (void) XAllocColor(dpy, scrInfo->colormap, &color); black = color.pixel; color.red = color.green = color.blue = 65535; (void) XAllocColor(dpy, scrInfo->colormap, &color); white = color.pixel; } if ((resStr = getResource(scrInfo,reverseVideoCQ,reverseVideoIQ))) { scrInfo->colorInfo.reverseVideo = BoolString(resStr, False); } else { scrInfo->colorInfo.reverseVideo = GRV.ReverseVideo; } if (scrInfo->colorInfo.reverseVideo) { scrInfo->colorInfo.black = white; scrInfo->colorInfo.white = black; } else { scrInfo->colorInfo.black = black; scrInfo->colorInfo.white = white; } setScreenForegroundColor(dpy,scrInfo); setScreenBackgroundColor(dpy,scrInfo); setScreenBorderColor(dpy,scrInfo); setScreenWindowColor(dpy,scrInfo); setScreenWorkspaceBackground(dpy,scrInfo); } /* * initPixmaps - inits the pixmaps */ static void initPixmaps(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { int result, junk; unsigned int width, height; Pixmap tempPixmap; scrInfo->pixmap[BUSY_STIPPLE] = XCreateBitmapFromData( dpy,scrInfo->rootid, (char *)busy_gray_bits,busy_gray_width,busy_gray_height); scrInfo->pixmap[ICON_BITMAP] = None; if (GRV.DefaultIconImage != NULL) { if (BitmapSuccess == XReadBitmapFile(dpy, scrInfo->rootid, GRV.DefaultIconImage, &width, &height, &tempPixmap, &junk, &junk)) { scrInfo->pixmap[ICON_BITMAP] = tempPixmap; scrInfo->dfltIconWidth = width; scrInfo->dfltIconHeight = height; } } if (scrInfo->pixmap[ICON_BITMAP] == None) { scrInfo->pixmap[ICON_BITMAP] = XCreateBitmapFromData(dpy, scrInfo->rootid, (char *) iconimage_bits, iconimage_width, iconimage_height); scrInfo->dfltIconWidth = iconimage_width; scrInfo->dfltIconHeight = iconimage_height; } scrInfo->pixmap[ICON_MASK] = None; if (GRV.DefaultIconMask != NULL) { if (BitmapSuccess == XReadBitmapFile(dpy, scrInfo->rootid, GRV.DefaultIconMask, &width, &height, &tempPixmap, &junk, &junk)) { scrInfo->pixmap[ICON_MASK] = tempPixmap; } } if (scrInfo->pixmap[ICON_MASK] == None) { scrInfo->pixmap[ICON_MASK] = XCreateBitmapFromData(dpy, scrInfo->rootid, (char *) iconmask_bits, iconmask_width, iconmask_height); } scrInfo->pixmap[PROTO_DRAWABLE] = XCreatePixmap(dpy, scrInfo->rootid, 1, 1, scrInfo->depth); scrInfo->pixmap[GRAY50_BITMAP] = XCreateBitmapFromData( dpy, scrInfo->rootid, (char *)gray50_bits, gray50_width, gray50_height); } /* * initGCs - initialize all the GCs used by olwm on this screen. This must be * called after initPixmaps and initColors. */ static void initGCs(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { XGCValues values; static char dashList[2] = { 1, 1 }; Window rootwin = scrInfo->rootid; int screen = scrInfo->screen; unsigned long valuemask; char *resString; #ifdef ALLPLANES extern Bool AllPlanesExists; #endif /* * Set up the GC for drawing rubber-band lines on the root window. If * we painted this screen's root with the default stipple pattern, * paint rubber-band lines with a stipple pattern so that they are * visible against the root stipple. This can be overridden with the * StippledRubberBands screen-specific resource. If we are doing * stippled, force useAllPlanes off, because the allplanes extension * can't support stippled graphics. */ #ifdef ALLPLANES scrInfo->useAllPlanes = AllPlanesExists; #endif resString = getResource(scrInfo, stippledRubberBandsCQ, stippledRubberBandsIQ); valuemask = GCFunction | GCForeground | GCSubwindowMode; if ((resString == NULL && usingDefaultRootStipple) || (resString != NULL && BoolString(resString, False))) { #ifdef ALLPLANES scrInfo->useAllPlanes = False; #endif valuemask |= GCTileStipXOrigin | GCFillStyle | GCStipple; } values.fill_style = FillStippled; values.foreground = ~0L; /* paint all bitplanes */ values.function = GXxor; values.stipple = scrInfo->pixmap[GRAY50_BITMAP]; values.subwindow_mode = IncludeInferiors; values.ts_x_origin = 1; scrInfo->gc[ROOT_GC] = XCreateGC(dpy, rootwin, valuemask, &values); /* * Create a GC for Foregound w/ TitleFont */ values.function = GXcopy; values.foreground = scrInfo->colorInfo.fgColor; #ifndef OW_I18N_L4 values.font = GRV.TitleFontInfo->fid; #endif values.graphics_exposures = False; scrInfo->gc[FOREGROUND_GC] = XCreateGC(dpy, scrInfo->pixmap[PROTO_DRAWABLE], #ifdef OW_I18N_L4 (GCFunction | GCForeground | GCGraphicsExposures), #else (GCFont | GCFunction | GCForeground | GCGraphicsExposures), #endif &values ); /* * Create a GC for drawing the icon name and pixmap when selected * (used only in 3D) and the frame border */ values.function = GXcopy; values.foreground = scrInfo->colorInfo.borderColor; values.graphics_exposures = False; scrInfo->gc[BORDER_GC] = XCreateGC( dpy, scrInfo->pixmap[PROTO_DRAWABLE], ( GCFunction | GCForeground | GCGraphicsExposures ), &values ); /* * Create a GC for drawing using the window color and title font */ values.function = GXcopy; values.foreground = scrInfo->colorInfo.bg1Color; #ifndef OW_I18N_L4 values.font = GRV.TitleFontInfo->fid; #endif values.graphics_exposures = False; scrInfo->gc[WINDOW_GC] = XCreateGC( dpy, scrInfo->pixmap[PROTO_DRAWABLE], #ifdef OW_I18N_L4 ( GCFunction | GCForeground | GCGraphicsExposures ), #else ( GCFunction | GCForeground | GCFont | GCGraphicsExposures ), #endif &values ); /* * Create a GC for drawing in the workspace color */ values.function = GXcopy; values.foreground = scrInfo->colorInfo.workspaceColor; values.line_width = 0; scrInfo->gc[WORKSPACE_GC] = XCreateGC(dpy, scrInfo->pixmap[PROTO_DRAWABLE], ( GCFunction | GCForeground | GCLineWidth ), &values); /* * Create a GC for busy stipple in foreground */ values.function = GXcopy; values.foreground = scrInfo->colorInfo.fgColor; values.fill_style = FillStippled; values.stipple = scrInfo->pixmap[BUSY_STIPPLE]; values.graphics_exposures = False; scrInfo->gc[BUSY_GC] = XCreateGC( dpy, scrInfo->pixmap[PROTO_DRAWABLE], ( GCFunction | GCForeground | GCGraphicsExposures | GCStipple | GCFillStyle), &values ); /* * Create a GC for drawing the icon name (just like FOREGROUND_GC, but * using IconFont). Is also used for the icon pixmap. Hence both * fg/bf are set for borderless icons (ie bg = workspace) */ values.function = GXcopy; values.foreground = scrInfo->colorInfo.fgColor; values.background = scrInfo->colorInfo.workspaceColor; #ifndef OW_I18N_L4 values.font = GRV.IconFontInfo->fid; #endif values.graphics_exposures = False; scrInfo->gc[ICON_NORMAL_GC] = XCreateGC( dpy, scrInfo->pixmap[PROTO_DRAWABLE], ( GCFunction | GCForeground | GCBackground | #ifdef OW_I18N_L4 GCGraphicsExposures ), #else GCFont | GCGraphicsExposures ), #endif &values ); /* * Create a GC for drawing the icon pixmap with a clip mask. * Used to XCopyPlane() icon_mask and icon_pixmap into background. */ values.function = GXcopy; values.foreground = scrInfo->colorInfo.fgColor; values.background = scrInfo->colorInfo.bgColor; values.graphics_exposures = False; scrInfo->gc[ICON_MASK_GC] = XCreateGC( dpy, scrInfo->pixmap[PROTO_DRAWABLE], ( GCFunction | GCForeground | GCBackground | GCGraphicsExposures ), &values ); /* * Create a GC for icon border w/ dashed lines */ values.function = GXcopy; values.foreground = scrInfo->colorInfo.borderColor; values.line_width = 0; values.line_style = LineOnOffDash; values.graphics_exposures = False; scrInfo->gc[ICON_BORDER_GC] = XCreateGC( dpy, scrInfo->pixmap[PROTO_DRAWABLE], ( GCFunction | GCForeground | GCGraphicsExposures | GCLineWidth | GCLineStyle ), &values ); XSetDashes( dpy, scrInfo->gc[ICON_BORDER_GC], 1, dashList, 2 ); } /* * initOLGX - initialize all the olgx Graphics_info structures used by olwm * * Creating all of these in one place will hopefully prevent the * creation of redundant gis variables. (There is some motivation for * creating olgx_gis* as they are needed, so they can also be better * managed, but so far it's resulted in more gis variables than really * needed. If we change back to that scheme, some Upd* routines for * dynamically changing resources will need to be reorganized.) */ static void initOLGX(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { unsigned long pixvals[5]; int dflag = scrInfo->use3D ? OLGX_3D_COLOR : OLGX_2D; /* * Common set of colors all GInfo's */ pixvals[OLGX_WHITE] = scrInfo->colorInfo.bg0Color; pixvals[OLGX_BG1] = scrInfo->colorInfo.bg1Color; pixvals[OLGX_BG2] = scrInfo->colorInfo.bg2Color; pixvals[OLGX_BG3] = scrInfo->colorInfo.bg3Color; pixvals[OLGX_BLACK] = scrInfo->colorInfo.fgColor; /* * Gis for drawing in window color with title font * most window objects and frame title */ scrInfo->gi[NORMAL_GINFO] = olgx_main_initialize(dpy, scrInfo->screen, scrInfo->depth, dflag, GRV.GlyphFontInfo, #ifdef OW_I18N_L4 GRV.TitleFontSetInfo.fs, #else GRV.TitleFontInfo, #endif pixvals,NULL); /* * Gis for drawing in window color with button font * notice buttons & menu buttons */ scrInfo->gi[BUTTON_GINFO] = olgx_main_initialize(dpy, scrInfo->screen, scrInfo->depth, dflag, GRV.GlyphFontInfo, #ifdef OW_I18N_L4 GRV.ButtonFontSetInfo.fs, #else GRV.ButtonFontInfo, #endif pixvals,NULL); /* * Gis for drawing in window color with text font * notice descriptive text and 2D resize corners * * NOTE: this is always in 2D, because the resize corners may be * painted in 2D even if everything else is in 3D. This relies * on the fact that notice text is never truncated, so it will * never require the 3D "more arrow". */ pixvals[OLGX_WHITE] = scrInfo->colorInfo.bg1Color; scrInfo->gi[TEXT_GINFO] = olgx_main_initialize(dpy, scrInfo->screen, scrInfo->depth, OLGX_2D, GRV.GlyphFontInfo, #ifdef OW_I18N_L4 GRV.TextFontSetInfo.fs, #else GRV.TextFontInfo, #endif pixvals,NULL); /* * Gis for drawing pushpin in reverse - useful only in 2D * swap fb/bg0 entries */ pixvals[OLGX_WHITE] = scrInfo->colorInfo.fgColor; pixvals[OLGX_BLACK] = scrInfo->colorInfo.bg0Color; scrInfo->gi[REVPIN_GINFO] = olgx_main_initialize(dpy, scrInfo->screen, scrInfo->depth, dflag, GRV.GlyphFontInfo, #ifdef OW_I18N_L4 GRV.TitleFontSetInfo.fs, #else GRV.TitleFontInfo, #endif pixvals,NULL); } /* * updateScreenWorkspaceColor -- change all GC/Ginfo's that use WorkspaceColor */ static updateScreenWorkspaceColor(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { XGCValues values; /* * Change GC's */ values.foreground = values.background = scrInfo->colorInfo.workspaceColor; XChangeGC(dpy,scrInfo->gc[ICON_NORMAL_GC],GCBackground,&values); XChangeGC(dpy,scrInfo->gc[WORKSPACE_GC],GCForeground,&values); /* no Ginfo's use workspaceColor */ } /* * updateScreenWindowColor -- change all GC/Ginfo's that use WindowColor */ static updateScreenWindowColor(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { XGCValues values; /* * Change GC's */ values.foreground = scrInfo->colorInfo.bg1Color; XChangeGC(dpy,scrInfo->gc[WINDOW_GC],GCForeground,&values); /* * Change Ginfo's */ olgx_set_single_color(scrInfo->gi[BUTTON_GINFO], OLGX_WHITE,scrInfo->colorInfo.bg0Color,OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[BUTTON_GINFO], OLGX_BG1,scrInfo->colorInfo.bg1Color,OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[BUTTON_GINFO], OLGX_BG2,scrInfo->colorInfo.bg2Color,OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[BUTTON_GINFO], OLGX_BG3,scrInfo->colorInfo.bg3Color,OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[TEXT_GINFO], OLGX_WHITE,scrInfo->colorInfo.bg0Color,OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[TEXT_GINFO], OLGX_BG1,scrInfo->colorInfo.bg1Color,OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[TEXT_GINFO], OLGX_BG2,scrInfo->colorInfo.bg2Color,OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[TEXT_GINFO], OLGX_BG3,scrInfo->colorInfo.bg3Color,OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[NORMAL_GINFO], OLGX_WHITE,scrInfo->colorInfo.bg0Color,OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[NORMAL_GINFO], OLGX_BG1,scrInfo->colorInfo.bg1Color,OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[NORMAL_GINFO], OLGX_BG2,scrInfo->colorInfo.bg2Color,OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[NORMAL_GINFO], OLGX_BG3,scrInfo->colorInfo.bg3Color,OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[REVPIN_GINFO], OLGX_BLACK,scrInfo->colorInfo.bg0Color,OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[REVPIN_GINFO], OLGX_BG1,scrInfo->colorInfo.bg1Color,OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[REVPIN_GINFO], OLGX_BG2,scrInfo->colorInfo.bg2Color,OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[REVPIN_GINFO], OLGX_BG3,scrInfo->colorInfo.bg3Color,OLGX_SPECIAL); } /* * updateScreenForegroundColor -- change all GC/Ginfo's that use Foreground */ static updateScreenForegroundColor(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { XGCValues values; /* * Change GC's */ values.foreground = scrInfo->colorInfo.fgColor; XChangeGC(dpy,scrInfo->gc[FOREGROUND_GC],GCForeground,&values); XChangeGC(dpy,scrInfo->gc[BUSY_GC],GCForeground,&values); XChangeGC(dpy,scrInfo->gc[ICON_NORMAL_GC],GCForeground,&values); XChangeGC(dpy,scrInfo->gc[ICON_MASK_GC],GCForeground,&values); /* * Change Ginfo's */ olgx_set_single_color(scrInfo->gi[BUTTON_GINFO], OLGX_BLACK,scrInfo->colorInfo.fgColor,OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[TEXT_GINFO], OLGX_BLACK,scrInfo->colorInfo.fgColor,OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[NORMAL_GINFO], OLGX_BLACK,scrInfo->colorInfo.fgColor,OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[REVPIN_GINFO], OLGX_WHITE,scrInfo->colorInfo.fgColor,OLGX_SPECIAL); } /* * updateScreenBackgroundColor -- change all GC/Ginfo's that use Background */ static updateScreenBackgroundColor(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { XGCValues values; values.background = scrInfo->colorInfo.bgColor; XChangeGC(dpy,scrInfo->gc[ICON_MASK_GC],GCBackground,&values); } /* * updateScreenBorderColor -- change all GC/Ginfo's that use Border */ static updateScreenBorderColor(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { XGCValues values; /* * Change GC's */ values.foreground = scrInfo->colorInfo.borderColor; XChangeGC(dpy,scrInfo->gc[BORDER_GC],GCForeground,&values); XChangeGC(dpy,scrInfo->gc[ICON_BORDER_GC],GCForeground,&values); } /* * initFonts - init things that depend on the fonts */ static void initFonts(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { Resize_width = Resize_height = 0; updateScreenGlyphFont(dpy,scrInfo); } /* * updateScreenTitleFont -- change all GC/Ginfo's that use TitleFont */ static updateScreenTitleFont(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { #ifdef OW_I18N_L4 XFontSet fs = GRV.TitleFontSetInfo.fs; #else XFontStruct *font = GRV.TitleFontInfo; #endif #ifndef OW_I18N_L4 XGCValues values; values.font = font->fid; XChangeGC(dpy,scrInfo->gc[FOREGROUND_GC],GCFont,&values); XChangeGC(dpy,scrInfo->gc[WINDOW_GC],GCFont,&values); #endif #ifdef OW_I18N_L4 olgx_set_text_fontset(scrInfo->gi[NORMAL_GINFO],fs,OLGX_NORMAL); olgx_set_text_fontset(scrInfo->gi[REVPIN_GINFO],fs,OLGX_NORMAL); #else olgx_set_text_font(scrInfo->gi[NORMAL_GINFO],font,OLGX_NORMAL); olgx_set_text_font(scrInfo->gi[REVPIN_GINFO],font,OLGX_NORMAL); #endif } /* * updateScreenTextFont -- change all GC/Ginfo's that use TextFont */ static updateScreenTextFont(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { #ifdef OW_I18N_L4 XFontSet fs = GRV.TextFontSetInfo.fs; olgx_set_text_fontset(scrInfo->gi[TEXT_GINFO],fs,OLGX_NORMAL); #else XFontStruct *font = GRV.TextFontInfo; olgx_set_text_font(scrInfo->gi[TEXT_GINFO],font,OLGX_NORMAL); #endif } /* * updateScreenButtonFont -- change all GC/Ginfo's that use ButtonFont */ static updateScreenButtonFont(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { #ifdef OW_I18N_L4 XFontSet fs = GRV.ButtonFontSetInfo.fs; olgx_set_text_fontset(scrInfo->gi[BUTTON_GINFO],fs,OLGX_NORMAL); #else XFontStruct *font = GRV.ButtonFontInfo; olgx_set_text_font(scrInfo->gi[BUTTON_GINFO],font,OLGX_NORMAL); #endif } /* * updateScreenIconFont -- change all GC/Ginfo's that use IconFont */ static updateScreenIconFont(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { #ifndef OW_I18N_L4 XFontStruct *font = GRV.IconFontInfo; XGCValues values; values.font = font->fid; XChangeGC(dpy,scrInfo->gc[ICON_NORMAL_GC],GCFont,&values); #endif } /* * updateScreenGlyphFont -- change all GC/Ginfo's that use GlyphFont */ static updateScreenGlyphFont(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { XFontStruct *font = GRV.GlyphFontInfo; olgx_set_glyph_font(scrInfo->gi[NORMAL_GINFO],font,OLGX_NORMAL); olgx_set_glyph_font(scrInfo->gi[REVPIN_GINFO],font,OLGX_NORMAL); olgx_set_glyph_font(scrInfo->gi[TEXT_GINFO],font,OLGX_NORMAL); olgx_set_glyph_font(scrInfo->gi[BUTTON_GINFO],font,OLGX_NORMAL); /* * w/h of resize corner glyph. Set if unset (ie 0) */ if (Resize_width == 0 && Resize_height == 0) { char s[2]; XCharStruct xcs; int i1,i2; /* US_RESIZE_OUTLINE is really unsigned char */ s[0]=UL_RESIZE_OUTLINE; s[1]='\0'; XTextExtents(GRV.GlyphFontInfo,s,1,&i1,&i2,&i2,&xcs); Resize_height = xcs.ascent + xcs.descent; Resize_width = xcs.width; } } /* * initScreenInfo - creates the ScreenInfo for a particular screen */ static void initScreenInfo(dpy,screenno,visInfo,nvis) Display *dpy; int screenno; XVisualInfo *visInfo; int nvis; { ScreenInfo *scrInfo; Client *client; /* * Create a new ScreenInfo and minimally initialize it */ scrInfo = MemNew(ScreenInfo); scrInfo->screen = screenno; initBasic(dpy,scrInfo,visInfo,nvis); initVisual(dpy,scrInfo); initColormap(dpy, scrInfo); initPixmaps(dpy,scrInfo); initWinCache(dpy, scrInfo); /* * Insert the proto ScreenInfo into the list so that * ClientCreate can find it and get the client for MakeRoot */ ScreenInfoList = ListCons(scrInfo,ScreenInfoList); if ((client = ClientCreate(dpy,scrInfo->screen)) == NULL) return; scrInfo->rootwin = MakeRoot(dpy,client); /* * Initialize the rest of the ScreenInfo fields */ scrInfo->use3D = use3D(scrInfo); initColors(dpy,scrInfo); initGCs(dpy,scrInfo); initOLGX(dpy,scrInfo); initFonts(dpy,scrInfo); /* * Initialize the screen dependent parts of menus */ scrInfo->menuCache = InitScreenMenus(dpy,scrInfo); /* REMIND: shouldn't this be in SlotInit? */ scrInfo->framepos = 0; /* * Initialize the icon slots for this screen */ scrInfo->iconGrid = SlotInit(dpy,screenno); /* * Make a new environment for this screen number */ scrInfo->environment = MakeEnviron(dpy,screenno); /* * Initalize the colormap focus for screen/root */ ColorFocusInit(dpy,scrInfo->rootwin); /* * Set the cursor for that screen's root window */ if (GRV.PointerWorkspace) XDefineCursor(dpy,scrInfo->rootid,GRV.BasicPointer); } /*------------------------------------------------------------------------- * Global Functions *-------------------------------------------------------------------------*/ /* * InitScreens - inits all managed screens */ void InitScreens(dpy) Display *dpy; { XVisualInfo *visInfo; int scr,nvis; ScreenInfo *scrInfo; makeScreenQuarks(); /* * Get the visual info for all the screens */ visInfo = XGetVisualInfo(dpy,VisualNoMask,(XVisualInfo *)NULL,&nvis); /* * If only managing a single screen then use the defaultscreen */ if (GRV.SingleScreen) { scr = DefaultScreen(dpy); initScreenInfo(dpy,scr,visInfo,nvis); /* * Else manage all screens for this display */ } else { for (scr=0; scrvalue; MakeNoFocus(dpy,scrInfo->rootwin); } /* * DestroyScreens - shuts down all screens * * For each screen/root-window: destroy the WinRoot object, install the root * colormap, and reset the background to the default (if we had set it in the * first place). Then set the input focus back to PointerRoot. Note: we * install the server's notion of the default colormap, not the olwm's root * colormap. This is in case olwm is running in a visual other than the * default visual. */ void DestroyScreens(dpy) Display *dpy; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { XInstallColormap(dpy, DefaultColormap(dpy, si->screen)); if (GRV.PaintWorkspace) XSetWindowBackgroundPixmap(dpy, si->rootid, None); XClearWindow(dpy, si->rootid); (*(WinFunc(si->rootwin, core.destroyfunc)))(dpy, si->rootwin); } XSetInputFocus(dpy, PointerRoot, RevertToPointerRoot, CurrentTime); } /* * GetScrInfoOfScreen - return the ScreenInfo for a particular screen no */ ScreenInfo * GetScrInfoOfScreen(screenno) int screenno; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { if (si->screen == screenno) return si; } return (ScreenInfo *)NULL; } /* * GetScrInfoOfRoot - return the ScreenInfo for a particular root win */ ScreenInfo * GetScrInfoOfRoot(root) Window root; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { if (si->rootid == root) return si; } return (ScreenInfo *)NULL; } /* * GetFirstScrInfo - return the ScreenInfo for the lowest-numbered screen */ ScreenInfo * GetFirstScrInfo() { ScreenInfo *si; ScreenInfo *lowestScrInfo; List *l = ScreenInfoList; int lowestScreen = 99999; /* REMIND */ for (si = ListEnum(&l); si; si = ListEnum(&l)) { if (si->screen < lowestScreen) { lowestScrInfo = si; lowestScreen = si->screen; } } return lowestScrInfo; } /* * SetWorkspaceBackground - set workspace background for each screen */ void SetWorkspaceBackground(dpy) Display *dpy; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { setScreenWorkspaceBackground(dpy,si); } WinRedrawAllWindows(); } /* * SetWindowColor - set various window background colors for each screen */ void SetWindowColor(dpy) Display *dpy; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { setScreenWindowColor(dpy,si); } WinRedrawAllWindows(); } /* * SetForegroundColor - set the window foreground color for each screen */ void SetForegroundColor(dpy) Display *dpy; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { setScreenForegroundColor(dpy,si); } WinRedrawAllWindows(); } /* * SetBackgroundColor - set the background color for each screen */ void SetBackgroundColor(dpy) Display *dpy; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { setScreenBackgroundColor(dpy,si); } WinRedrawAllWindows(); } /* * SetBorderColor - set the border color for each screen */ void SetBorderColor(dpy) Display *dpy; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { setScreenBorderColor(dpy,si); } WinRedrawAllWindows(); } /* * SetTitleFont - set Title Font for each screen */ void SetTitleFont(dpy) Display *dpy; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { updateScreenTitleFont(dpy,si); } WinRedrawAllWindows(); } /* * SetTextFont - set Text Font for each screen */ void SetTextFont(dpy) Display *dpy; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { updateScreenTextFont(dpy,si); } /* affects notices only so don't redraw */ } /* * SetButtonFont - set Button Font for each screen */ void SetButtonFont(dpy) Display *dpy; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { updateScreenButtonFont(dpy,si); } WinRedrawAllWindows(); /* should be just pinned menus */ } /* * SetIconFont - set Icon Font for each screen */ void SetIconFont(dpy) Display *dpy; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { updateScreenIconFont(dpy,si); } WinRedrawAllWindows(); /* should be just icon windows */ } /* * SetGlyphFont - set Glyph Font for each screen */ void SetGlyphFont(dpy) Display *dpy; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { updateScreenGlyphFont(dpy,si); } WinRedrawAllWindows(); } /* * SetIconLocation - calls SlotSetLocations for each screen */ void SetIconLocation(dpy) Display *dpy; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { SlotSetLocations(dpy,si->iconGrid); } } /* * ReparentScreens - reparents each of the screens window trees */ int ReparentScreens(dpy) Display *dpy; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { ReparentTree(dpy,si->rootid); } } int CreateScreenWindowMenuInfo(dpy) Display *dpy; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { CreateWindowMenuInfo(dpy,si); } } int DestroyScreenWindowMenuInfo(dpy) Display *dpy; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { DestroyWindowMenuInfo(dpy,si); } } int CreateScreenUserMenuInfo(dpy) Display *dpy; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { CreateUserMenuInfo(dpy,si); } } int DestroyScreenUserMenuInfo(dpy) Display *dpy; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { DestroyUserMenuInfo(dpy,si); } } /* * ScreenCreateWindow * * Act like XCreateWindow(), except fetch a window from the cache if one is * available instead of creating one. The window cache is mainly intended for * fairly stylized use by decoration windows, so the full generality of * XCreateWindow() is not provided. In particular: * * - the border width is always zero; * - the depth and visual arguments are taken from the screen info; * - the class is always InputOutput. */ Window ScreenCreateWindow(scrInfo, parent, x, y, w, h, attrmask, attr) ScreenInfo *scrInfo; Window parent; int x, y, w, h; unsigned long attrmask; XSetWindowAttributes *attr; { Window win; if (scrInfo->winCacheCount > 0) { /* allocate out of the cache */ scrInfo->winCacheCount -= 1; win = scrInfo->winCache[scrInfo->winCacheCount]; XReparentWindow(scrInfo->dpy, win, parent, x, y); XResizeWindow(scrInfo->dpy, win, w, h); XChangeWindowAttributes(scrInfo->dpy, win, attrmask, attr); } else { /* really create a new window */ win = XCreateWindow(scrInfo->dpy, parent, x, y, w, h, 0, scrInfo->depth, InputOutput, scrInfo->visual, attrmask, attr); } assert(win != 0); return win; } /* * defaultAttributes * * This structure is an XSetWindowAttributes structure that contains all of * the default values that a window would have if it were freshly created. */ static XSetWindowAttributes defaultAttributes = { None, /* background_pixmap */ 0, /* background pixel (NOT USED) */ CopyFromParent, /* border_pixmap */ 0, /* border_pixel (NOT USED) */ ForgetGravity, /* bit_gravity */ NorthWestGravity, /* win_gravity */ NotUseful, /* backing_store */ ~0, /* backing_planes */ 0, /* backing_pixel */ False, /* save_under */ NoEventMask, /* event_mask */ NoEventMask, /* do_not_propagate_mask */ False, /* override_redirect */ CopyFromParent, /* colormap */ None /* cursor */ }; /* everything except CWBackPixel and CWBorderPixel */ #define DEFAULT_ATTR_MASK \ (CWBackPixmap | CWBorderPixmap | CWBitGravity | CWWinGravity | \ CWBackingStore | CWBackingPlanes | CWBackingPixel | CWSaveUnder | \ CWEventMask | CWDontPropagate | CWOverrideRedirect | \ CWColormap | CWCursor) /* * ScreenDestroyWindow * * Add a window to the screen's window cache for later re-use. If the cache * is full, just destroy the window. Before putting the window back into the * cache, reset most of its attributes to a reasonable state. */ void ScreenDestroyWindow(scrInfo, win) ScreenInfo *scrInfo; Window win; { XSetWindowAttributes xswa; unsigned long mask; Atom *proplist; int i, nprops; if (scrInfo->winCacheCount < scrInfo->winCacheSize) { /* add to the cache */ scrInfo->winCache[scrInfo->winCacheCount] = win; scrInfo->winCacheCount += 1; XUnmapWindow(scrInfo->dpy, win); XReparentWindow(scrInfo->dpy, win, scrInfo->rootid, -1, -1); XChangeWindowAttributes(scrInfo->dpy, win, DEFAULT_ATTR_MASK, &defaultAttributes); proplist = XListProperties(scrInfo->dpy, win, &nprops); if (proplist != NULL) { for (i = 0; i < nprops; ++i) XDeleteProperty(scrInfo->dpy, win, proplist[i]); XFree((char *)proplist); } } else { /* cache full; really destroy */ XDestroyWindow(scrInfo->dpy, win); } } /* * ScreenUpdateWinCacheSize * * Change each screen's window cache size to be the new size named in * GRV.WindowCacheSize. */ void ScreenUpdateWinCacheSize(dpy) Display *dpy; { List *l = ScreenInfoList; ScreenInfo *si; int newsize = GRV.WindowCacheSize; int i; for (si = ListEnum(&l); si; si = ListEnum(&l)) { if (newsize < si->winCacheCount) { for (i = newsize; i < si->winCacheCount; ++i) XDestroyWindow(dpy, si->winCache[i]); si->winCacheCount = newsize; } if (newsize == 0) { if (si->winCache != NULL) { MemFree(si->winCache); si->winCache = NULL; } } else { if (si->winCache == NULL) si->winCache = MemCalloc(newsize, sizeof(Window)); else si->winCache = MemRealloc(si->winCache, newsize * sizeof(Window)); } si->winCacheSize = newsize; } } xview-3.2p1.4/clients/olwm/screen.h100644 1750 1750 10225 5413747434 14524 0ustar mbmb#ident "@(#)screen.h 26.24 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_SCREEN_H #define _OLWM_SCREEN_H #include /* * Index's into GC array of ScreenInfo struct */ typedef enum { ROOT_GC, FOREGROUND_GC, BORDER_GC, WINDOW_GC, WORKSPACE_GC, BUSY_GC, ICON_NORMAL_GC, ICON_MASK_GC, ICON_BORDER_GC, NUM_GCS } ScreenGCIndex; /* * Index's into Graphics_info array of ScreenInfo struct */ typedef enum { NORMAL_GINFO, BUTTON_GINFO, TEXT_GINFO, REVPIN_GINFO, NUM_GINFOS } ScreenGinfoIndex; /* * Index's into Pixmap array of ScreenInfo struct */ typedef enum { BUSY_STIPPLE, ICON_BITMAP, ICON_MASK, PROTO_DRAWABLE, GRAY50_BITMAP, NUM_PIXMAPS } ScreenPixmapIndex; /* * ColorMapFocus - client/window which has colormap focus */ typedef struct _colormapfocus { struct _client *client; struct _wingeneric *window; Bool locked; } ColorMapFocus; /* * ColorInfo - window/workspace/etc colors */ typedef struct _colorinfo { unsigned long flags; Bool reverseVideo; unsigned long black, white; unsigned long fgColor, bgColor; unsigned long bg0Color,bg1Color,bg2Color,bg3Color; unsigned long borderColor; WorkspaceStyle workspaceStyle; unsigned long workspaceColor; unsigned long workspaceRootPixel; unsigned long workspaceBitmapFg; unsigned long workspaceBitmapBg; } ColorInfo; #define CIWorkspaceColorAlloced (1L<<0) #define CIWorkspaceBitmapColorsAlloced (1L<<1) #define CIWindowColorAlloced (1L<<2) #define CIForegroundColorAlloced (1L<<3) #define CIBackgroundColorAlloced (1L<<4) #define CIBorderColorAlloced (1L<<5) /* * ScreenInfo - Per screen info */ typedef struct _screeninfo { Display *dpy; int screen; Window rootid; struct _winroot *rootwin; int depth; Visual *visual; Colormap colormap; Bool iscolor; Bool use3D; ColorInfo colorInfo; GC gc[NUM_GCS]; Graphics_info *gi[NUM_GINFOS]; Pixmap pixmap[NUM_PIXMAPS]; struct _menuCache *menuCache; ColorMapFocus cmapfocus; int framepos; struct _iconGrid *iconGrid; char **environment; int instanceQ; /* quark for this screen's instance name */ int dfltIconWidth, dfltIconHeight; #ifdef ALLPLANES Bool useAllPlanes; #endif Window *winCache; /* array of window IDs */ int winCacheSize; /* size of the array */ int winCacheCount; /* first free element */ } ScreenInfo; /* * Global functions from screen.c */ #if defined(__STDC__) extern void InitScreens(Display *dpy); extern void DestroyScreens(Display *dpy); extern ScreenInfo *GetFirstScrInfo(void); extern ScreenInfo *GetScrInfoOfScreen(int screen); extern ScreenInfo *GetScrInfoOfRoot(Window root); extern void SetWorkspaceBackground(Display *dpy); extern void SetWindowColor(Display *dpy); extern void SetForegroundColor(Display *dpy); extern void SetBackgroundColor(Display *dpy); extern void SetBorderColor(Display *dpy); extern void SetTitleFont(Display *dpy); extern void SetTextFont(Display *dpy); extern void SetButtonFont(Display *dpy); extern void SetIconFont(Display *dpy); extern void SetGlyphFont(Display *dpy); extern void SetIconLocation(Display *dpy); extern Window ScreenCreateWindow(ScreenInfo*, Window, int, int, int, int, unsigned long, XSetWindowAttributes*); extern void ScreenDestroyWindow(ScreenInfo*, Window); extern void ScreenUpdateWinCacheSize(Display *dpy); #else extern void InitScreens(); extern void DestroyScreens(); extern ScreenInfo *GetFirstScrInfo(); extern ScreenInfo *GetScrInfoOfScreen(); extern ScreenInfo *GetScrInfoOfRoot(); extern void SetWorkspaceBackground(); extern void SetWindowColor(); extern void SetForegroundColor(); extern void SetBackgroundColor(); extern void SetBorderColor(); extern void SetTitleFont(); extern void SetTextFont(); extern void SetButtonFont(); extern void SetIconFont(); extern void SetGlyphFont(); extern void SetIconLocation(); extern Window ScreenCreateWindow(); extern void ScreenDestroyWindow(); extern void ScreenUpdateWinCacheSize(); #endif /* STDC */ #endif /* _OLWM_SCREEN_H */ xview-3.2p1.4/clients/olwm/selection.c100644 1750 1750 27660 5413747434 15240 0ustar mbmb#ident "@(#)selection.c 26.19 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #include #include #include #include #include #include #include "i18n.h" #include "olwm.h" #include "win.h" #include "list.h" #include "mem.h" /* ===== global data ====================================================== */ Time SelectionTime; /* ===== private data ===================================================== */ typedef struct _selection_registry { Atom selection; Bool (*handler)(); } SelectionRegistry; /* * selectList is the list of selected clients; it's used for the PRIMARY * selection. */ static List *selectList = NULL_LIST; /* * selectionRegistry is the list of selections and their handler functions. */ static List *selectRegistry = NULL_LIST; /* ===== externals ======================================================== */ extern Atom AtomAtomPair; extern Atom AtomClientWindow; extern Atom AtomLength; extern Atom AtomListLength; extern Atom AtomName; extern Atom AtomMultiple; extern Atom AtomTargets; extern Atom AtomTimestamp; /* ===== private functions ================================================ */ /* * processPrimaryTarget * * Process the conversion of a single target for the PRIMARY selection. Used * for both single requests and for MULTIPLE requests. Returns True if the * conversion was successful, otherwise False. */ static Bool processPrimaryTarget(dpy, requestor, target, property) Display *dpy; Window requestor; Atom target; Atom property; { unsigned long data[10]; /* long enough for most things */ unsigned char *propdata = (unsigned char *) data; int format, nelements, i; Client *cli; Atom type; Bool freedata = False; Window *wp; if (target == AtomTargets) { data[0] = AtomTargets; data[1] = AtomTimestamp; data[2] = AtomListLength; data[3] = XA_DRAWABLE; data[4] = AtomLength; data[5] = AtomMultiple; data[6] = AtomName; data[7] = AtomClientWindow; nelements = 8; type = XA_ATOM; format = 32; } else if (target == AtomTimestamp) { data[0] = SelectionTime; nelements = 1; type = XA_INTEGER; format = 32; } else if (target == AtomListLength) { data[0] = ListCount(selectList); nelements = 1; type = XA_INTEGER; format = 32; } else if (target == AtomLength) { data[0] = ListCount(selectList)*sizeof(long); nelements = 1; type = XA_INTEGER; format = 32; } else if (target == XA_DRAWABLE) { nelements = ListCount(selectList); propdata = (unsigned char *) MemCalloc(nelements, sizeof(unsigned long)); freedata = True; wp = (Window *) propdata; i = 0; cli = NULL; while ((cli = EnumSelections(cli)) && (iframewin != NULL && cli->framewin->fcore.name != NULL) { wchar_t *wcs = cli->framewin->fcore.name; int n = wslen(wcs) * sizeof(wchar_t) + 1; tmp = (char*) MemAlloc(n); wcstombs(tmp, wcs, n); } #else if (cli->framewin != NULL && cli->framewin->fcore.name != NULL) tmp = cli->framewin->fcore.name; #endif else tmp = ""; tmplen = strlen(tmp) + 1; if (curlen + tmplen > maxlen) { maxlen += 100; propdata = MemRealloc(propdata, maxlen); } strcpy((char *) propdata+curlen, tmp); curlen += tmplen; } nelements = curlen; type = XA_STRING; format = 8; } else if (target == AtomClientWindow) { data[0] = NoFocusWin; nelements = 1; type = XA_WINDOW; format = 32; } else { return False; } XChangeProperty(dpy, requestor, property, type, format, PropModeReplace, (unsigned char *)propdata, nelements); if (freedata) MemFree(propdata); return True; } /* * handlePrimary * * Respond to a SelectionRequest or SelectionClear event on the PRIMARY * selection. */ static void handlePrimary(event) XEvent *event; { XSelectionRequestEvent *request; XSelectionEvent response; Atom *pairs; unsigned long nitems, remain; int i; Bool writeback = False; switch (event->type) { case SelectionClear: ClearSelections(event->xany.display); return; case SelectionRequest: /* use code below */ break; default: return; } request = (XSelectionRequestEvent *) event; /* * Fill in the response message. We fill in the property field with None * here. If the conversion fails, we just send this message. If a * conversion succeeds, the property field is filled in appropriately. */ response.type = SelectionNotify; response.serial = request->serial; response.requestor = request->requestor; response.selection = request->selection; response.time = request->time; response.target = request->target; response.property = None; if (request->target == AtomMultiple) { if (request->property != None) { pairs = GetWindowProperty(request->display, request->requestor, request->property, 0L, 100000L, AtomAtomPair, 32, &nitems, &remain); if (pairs != NULL) { /* * Process each pair of atoms (target, property). Watch out * for an odd last atom, and for property atoms of None. If * the conversion fails, replace it with None in the original * property. */ for (i = 0; i+1 < nitems; i += 2) { if (pairs[i+1] == None) continue; if (!processPrimaryTarget(request->display, request->requestor, pairs[i], pairs[i+1])) { pairs[i+1] = None; writeback = True; } } if (writeback) XChangeProperty(request->display, request->requestor, request->property, AtomAtomPair, 32, PropModeReplace, (unsigned char *) pairs, nitems); XFree((char *) pairs); response.property = request->property; } } } else { /* * Handle a single request. If its property field is None, the * requestor is using an obsolete draft of the ICCCM. Per the * suggestion in ICCCM section 2.2, use the target name as the * property name. */ if (request->property == None) request->property = request->target; if (processPrimaryTarget(request->display, request->requestor, request->target, request->property)) response.property = request->property; } XSendEvent(request->display, request->requestor, False, NoEventMask, (XEvent *)&response); } /* ===== public functions ================================================= */ /* * IsSelected * * Determine whether a client is selected. * * REMIND: is this really necessary? Why not just use cli->isSelected in open * code? */ Bool IsSelected(cli) Client *cli; { return cli->isSelected; } /* * AddSelection * * Add this client to the list of clients on the PRIMARY selection and mark * the client as being selected. Acquires the PRIMARY selection if necessary. */ int AddSelection(cli, timestamp) Client *cli; Time timestamp; { List *l = selectList; Client *tc; if (selectList == NULL_LIST) { /* * Since we don't have anything selected, we must acquire the * selection. If we don't actually get the selection, fail * silently. This may occur if the user selects something * else after selecting a window, but we are slow to respond. */ XSetSelectionOwner(cli->dpy, XA_PRIMARY, NoFocusWin, timestamp); if (NoFocusWin != XGetSelectionOwner(cli->dpy, XA_PRIMARY)) return; } else { /* First look to see if window is already listed. */ for(tc = ListEnum(&l); tc != NULL; tc = ListEnum(&l)) { if (tc == cli) return; } } /* If we get here the window wasn't already in the list. */ selectList = ListCons(cli,selectList); cli->isSelected = True; /* Tell the window it is selected. */ WinCallSelect(cli, True); SelectionTime = timestamp; } /* * RemoveSelection * * Remove a client from the PRIMARY selection list. Returns True if client * was deselected; false if the client was not already selected. */ Bool RemoveSelection(cli) Client *cli; { List **l; for (l = &selectList ; *l != NULL; l = &((*l)->next)) { if ((*l)->value == cli) { ListDestroyCell(l); cli->isSelected = False; WinCallSelect(cli,False); return True; } } return False; } /* * ToggleSelection * * Toggle a client's membership in the selection. Returns a boolean * indicating whether the client is a now member of the PRIMARY selection. */ Bool ToggleSelection(cli, timestamp) Client *cli; Time timestamp; { /* If already present, we want to deselect. */ if (RemoveSelection(cli)) { return False; } else { AddSelection(cli, timestamp); return True; } } /* * ClearSelections * * Clear the list of clients on the PRIMARY selection. This is called in * response to receiving a SelectionClear event or when olwm voluntarily gives * up the selection. Note that this function does not relinquish the PRIMARY * selection. If that is desired, it is the responsibility of the caller. */ /*ARGSUSED*/ void ClearSelections(dpy) Display *dpy; { List *l; Client *cli; l = selectList; for(cli = ListEnum(&l); cli != NULL; cli = ListEnum(&l)) { cli->isSelected = False; WinCallSelect(cli,False); } ListDestroy(selectList); selectList = NULL_LIST; } /* * EnumSelections * * Enumerate the selected client structures. Pass NULL to begin enumeration; * any non-NULL value thereafter will continue enumeration where it left off. * This function uses static data, so only one enumeration can happen at any * given time. Returns NULL when list is exhausted. */ Client * EnumSelections(foo) void *foo; { static List *l; Client *ct; if (foo == NULL) l = selectList; if (l != NULL) { ct = l->value; l = l->next; return ct; } return NULL; } /* * SelectionRegister * * Register a selection and its handler function. The handler function should * be declared as: * * Bool handler(selreqevent); * * Note that there is no way to unregister a selection. That function isn't * necessary at this time. */ void SelectionRegister(selection, handler) Atom selection; Bool (*handler)(); { SelectionRegistry *reg; reg = MemNew(SelectionRegistry); reg->selection = selection; reg->handler = handler; selectRegistry = ListCons(reg, selectRegistry); } /* * SelectionResponse * * Handle a selection event. Look up the selection in the selection registry * and call the appropriate handler. If there is match in the registry and * the event is a SelectionRequest event, refuse the request. */ void SelectionResponse(event) XEvent *event; { SelectionRegistry *reg; List *l = selectRegistry; Atom selection; XSelectionEvent refusal; switch (event->type) { case SelectionClear: selection = event->xselectionclear.selection; break; case SelectionRequest: selection = event->xselectionrequest.selection; break; default: return; } for (reg = ListEnum(&l); reg != NULL; reg = ListEnum(&l)) { if (reg->selection == selection) { (*(reg->handler))(event); return; } } /* * We received an event for an unregistered selection. Refuse any * requests, and ignore SelectionClear events. */ if (event->type == SelectionRequest) { refusal.type = SelectionNotify; refusal.requestor = event->xselectionrequest.requestor; refusal.selection = event->xselectionrequest.selection; refusal.time = event->xselectionrequest.time; refusal.target = event->xselectionrequest.target; refusal.property = None; XSendEvent(event->xany.display, refusal.requestor, False, NoEventMask, (XEvent *) &refusal); } } /* * SelectionInit * * Register the handler for the PRIMARY selection. */ void SelectionInit() { SelectionRegister(XA_PRIMARY, handlePrimary); } xview-3.2p1.4/clients/olwm/selection.h100644 1750 1750 1343 5413747434 15213 0ustar mbmb#ident "@(#)selection.h 1.3 93/06/28 SMI" /* * (c) Copyright 1992 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_SELECTION_H #define _OLWM_SELECTION_H extern Time SelectionTime; extern Bool IsSelected(/* client */); extern int AddSelection(/* client, time */); extern Bool RemoveSelection(/* client */); extern Bool ToggleSelection(/* client, time */); extern void ClearSelections(/* dpy */); extern Client* EnumSelections(/* void* */); extern void SelectionInit(); extern void SelectionRegister(/* seln, handler */); extern void SelectionResponse(/* event */); #endif /* _OLWM_SELECTION_H */ xview-3.2p1.4/clients/olwm/services.c100644 1750 1750 45200 6352314164 15055 0ustar mbmb#ident "@(#)services.c 26.53 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #include #include #include #include #include #include #include #include #include #define XK_MISCELLANY #include #include "i18n.h" #include "ollocale.h" #include "events.h" #include "olwm.h" #include "win.h" #include "menu.h" #include "notice.h" #include "globals.h" #include "group.h" #include "mem.h" #include "resources.h" #include "error.h" #include "dsdm.h" extern char *getenv(); extern unsigned int FindModifierMask(); extern void ReInitUserMenu(); extern void *ClientKill(); /* * Externals */ extern Atom AtomProtocols; extern Atom AtomSaveYourself; extern Window NoFocusWin; extern Bool UpdInputFocusStyle(); extern Time LastEventTime; /* * Execute a command by handing it to /bin/sh. */ static int execCommand(winInfo,cmd) WinGeneric *winInfo; char *cmd; { char *args[4]; int pid; char **env = winInfo->core.client->scrInfo->environment; args[0] = "/bin/sh"; args[1] = "-c"; args[2] = cmd; args[3] = NULL; pid = fork(); if (pid == -1) { perror("olwm: fork"); return 1; } else if (pid == 0) { /* child */ #if defined(SYSV) || defined(__linux) setpgrp(); #else setpgrp(0, getpid()); #endif execve(args[0], args, env); perror("olwm: exec"); exit(1); } return 0; } /*************************************************************************** * Exit from WM ****************************************************************************/ void ExitCallback(dpy,button) Display *dpy; int button; { /* If Exit button is selected, will return 0 */ if (button == 0) Exit(dpy); } /* * ExitFunc - Exit window with a confirmation notice */ /*ARGSUSED*/ int ExitFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { int screen; Text *buttons[2]; Text *msg; NoticeBox noticeBox; buttons[0] = GetText("Exit"); buttons[1] = GetText("Cancel"); msg = GetText("Please confirm exit from window system"); screen = winInfo->core.client->screen; /* set up noticeBox information */ noticeBox.numButtons = NOTICE_BUTTON_COUNT(buttons); noticeBox.defaultButton = 1; /* cancel is default */ noticeBox.buttonText = buttons; noticeBox.msgText = msg; noticeBox.boxX = -1; noticeBox.boxY = -1; UseNoticeBoxSync(dpy,screen,¬iceBox,ExitCallback); FreeText(buttons[0]); FreeText(buttons[1]); FreeText(msg); } /* * ExitNoConfirmFunc - Exit window w/o a confirmation notice */ int /*ARGSUSED*/ ExitNoConfirmFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { Exit(dpy); } /*************************************************************************** * Command execution ****************************************************************************/ /* * AppMenuFunc -- called when a command is listed as the item selected on * the olwm menu */ /*ARGSUSED*/ int AppMenuFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { return execCommand(winInfo, menuInfo->menu->buttons[idx]->action.command); } /* * PshFunc -- called when the "POSTSCRIPT" keyword is present for the * item selected in the olwm menu * */ /*ARGSUSED*/ int PshFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { char *commArgv[2]; int pshPipe[2]; int pid; char *dir; char pshPath[100]; char **env = winInfo->core.client->scrInfo->environment; if ( (dir = getenv( "OPENWINHOME" )) == NULL ) #ifdef OPENWINHOME_DEFAULT { /* martin-2.buck@student.uni-ulm.de */ strcpy( pshPath, OPENWINHOME_DEFAULT ); strcat( pshPath, "/bin/psh" ); commArgv[0] = pshPath; } #else commArgv[0] = "/usr/bin/psh"; #endif else { strcpy( pshPath, dir ); strcat( pshPath, "/bin/psh" ); commArgv[0] = pshPath; } commArgv[1] = NULL; if ( pipe( pshPipe ) == -1 ) { perror( "olwm: pipe" ); return( -1 ); } pid = fork(); if ( pid == -1 ) { perror("olwm: fork"); return( -1 ); } else if ( pid == 0 ) { /* child reads from pipe and writes to stdout/err */ close( 0 ); /* close stdin */ dup( pshPipe[0] ); /* make stdin the read end */ close( pshPipe[0] ); /* don't need orig pipe fds */ close( pshPipe[1] ); close( 1 ); /* close stdout */ dup( 2 ); /* make olwm stderr = psh stdout */ #if defined(SYSV) || defined(__linux) setpgrp(); #else setpgrp(0, getpid()); #endif execve( commArgv[0], commArgv, env ); fprintf( stderr, GetString("olwm: psh error: %d\n"), errno ); } else { /* parent writes user menu postscript code down pipe */ close( pshPipe[0] ); /* don't need to read pipe */ write( pshPipe[1], (menuInfo->menu->buttons[idx]->action.command), strlen((menuInfo->menu->buttons[idx]->action.command))); close( pshPipe[1] ); } return 1; } /*************************************************************************** * Flip Drag ****************************************************************************/ /*ARGSUSED*/ int FlipDragFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { GRV.DragWindow = !GRV.DragWindow; return 0; } /*************************************************************************** * Flip Focus ****************************************************************************/ /*ARGSUSED*/ int FlipFocusFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { extern void UpdFocusStyle(); Bool temp = !GRV.FocusFollowsMouse; UpdFocusStyle(dpy, NULL, &GRV.FocusFollowsMouse, &temp); return 0; } /*************************************************************************** * No-Operation ****************************************************************************/ /* * NopFunc - a no-operation function, used as a placeholder for * the NOP service */ /*ARGSUSED*/ int NopFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { } /*************************************************************************** * Clipboard ****************************************************************************/ /*ARGSUSED*/ int ClipboardFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { NoticeBox noticeBox; Text *buttons[1]; Text *msg; buttons[0] = GetText("Ok"); msg = GetText("Sorry, the clipboard is not yet implemented."); /* set up noticeBox information */ noticeBox.numButtons = NOTICE_BUTTON_COUNT(buttons); noticeBox.defaultButton = 0; noticeBox.buttonText = buttons; noticeBox.msgText = msg; noticeBox.boxX = -1; noticeBox.boxY = -1; (void) UseNoticeBox(dpy, winInfo->core.client->screen, ¬iceBox); FreeText(buttons[0]); FreeText(msg); } /*************************************************************************** * Print Screen ****************************************************************************/ /*ARGSUSED*/ int PrintScreenFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { NoticeBox noticeBox; Text *buttons[1]; Text *msg; buttons[0] = GetText("Ok"); msg = GetText("Sorry, Print Screen is not yet implemented."); /* set up noticeBox information */ noticeBox.numButtons = NOTICE_BUTTON_COUNT(buttons); noticeBox.defaultButton = 0; noticeBox.buttonText = buttons; noticeBox.msgText = msg; noticeBox.boxX = -1; noticeBox.boxY = -1; (void) UseNoticeBox(dpy, winInfo->core.client->screen, ¬iceBox); FreeText(buttons[0]); FreeText(msg); } /*************************************************************************** * Refresh screen ****************************************************************************/ /* * RecursiveRefresh * * Recursively refresh an entire window tree, by walking the hierarchy and * sending Expose events to each window (via XClearWindow). Note that * XClearArea will generate a BadMatch error if called on InputOnly windows; * this error is suppressed in Error.c. */ void RecursiveRefresh(dpy, win) Display *dpy; Window win; { int i; unsigned int nchildren; Status s; Window root, parent; Window *childlist; XClearArea(dpy, win, 0, 0, 0, 0, True); s = XQueryTree(dpy, win, &root, &parent, &childlist, &nchildren); if (s == 0) return; for (i=0; i 0) XFree((char *)childlist); } /* * RefreshFunc -- called when the "Refresh Screen" item has been selected on * the olwm menu */ /*ARGSUSED*/ int RefreshFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { if (GRV.RefreshRecursively) { RecursiveRefresh(dpy, winInfo->core.client->scrInfo->rootid); } else { Window w; XSetWindowAttributes xswa; int screen = winInfo->core.client->screen; /* We create a window over the whole screen, map it, * then destroy it. */ xswa.override_redirect = True; w = ScreenCreateWindow(winInfo->core.client->scrInfo, WinRootID(winInfo), 0, 0, DisplayWidth(dpy,screen), DisplayHeight(dpy,screen), CWOverrideRedirect, &xswa); XMapRaised(dpy, w); ScreenDestroyWindow(winInfo->core.client->scrInfo, w); } } /*************************************************************************** * Properties ****************************************************************************/ #define WORKSPACEPROPS "props" /* * PropertiesFunc -- called when the "Properties ..." item has been selected * on the root menu. REMIND: this and AppMenuFunc should be merged. */ /*ARGSUSED*/ int PropertiesFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { return execCommand(winInfo,WORKSPACEPROPS); } /*************************************************************************** * Save Workspace ****************************************************************************/ /* * SaveWorkspaceFunc - called when "Save Workspace" is selected * from the root menu. */ /*ARGSUSED*/ int SaveWorkspaceFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { Text *buttons[1]; Text *msg; int status; int screen = winInfo->core.client->screen; NoticeBox noticeBox; /* having either grab fail isn't fatal; issue warnings only */ if (XGrabPointer(dpy, NoFocusWin, False, ButtonPressMask, GrabModeAsync, GrabModeAsync, None, GRV.BusyPointer, CurrentTime) != GrabSuccess) { ErrorWarning(GetString("failed to grab pointer")); } if (XGrabKeyboard(dpy, NoFocusWin, False, GrabModeAsync, GrabModeAsync, CurrentTime) != GrabSuccess) { ErrorWarning(GetString("failed to grab keyboard")); } status = system(GRV.SaveWorkspaceCmd); XUngrabKeyboard(dpy,CurrentTime); XUngrabPointer(dpy,CurrentTime); /* * owplaces was sucessful */ if (status == 0) { buttons[0] = GetText("Ok"); msg = GetText("Save Workspace complete."); noticeBox.numButtons = NOTICE_BUTTON_COUNT(buttons); noticeBox.defaultButton = 0; noticeBox.buttonText = buttons; noticeBox.boxX = noticeBox.boxY = -1; noticeBox.msgText = msg; UseNoticeBox(dpy,screen,¬iceBox); FreeText(buttons[0]); FreeText(msg); return True; } /* * owplaces failed with an error */ buttons[0] = GetText("Cancel"); switch (status>>8) { case 4: msg = GetText("Save Workspace could not be performed, because\nthere was an error writing the .openwin-init file."); break; case 5: msg = GetText("Save Workspace could not be performed,\nbecause some applications did not respond."); break; default: msg = GetText("Save Workspace could not be performed,\nbecause the owplaces(1) command failed."); break; } noticeBox.numButtons = NOTICE_BUTTON_COUNT(buttons); noticeBox.defaultButton = 0; noticeBox.buttonText = buttons; noticeBox.boxX = noticeBox.boxY = -1; noticeBox.msgText = msg; UseNoticeBox(dpy,screen,¬iceBox); FreeText(buttons[0]); FreeText(msg); return False; } /*************************************************************************** * ReReadUserMenu ****************************************************************************/ /* * ReReadUserMenuFunc */ /*ARGSUSED*/ int ReReadUserMenuFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { ReInitUserMenu(dpy,True); } /*************************************************************************** * Window Menu Action Procs ****************************************************************************/ /* * WindowOpenCloseAction * Toggles Open/Close. */ /*ARGSUSED*/ int WindowOpenCloseAction(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { ClientOpenCloseToggle(winInfo->core.client,LastEventTime); } /* * WindowFullRestoreSizeAction * Toggles Full/Restore Size. */ /*ARGSUSED*/ int WindowFullRestoreSizeAction(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { ClientFullRestoreSizeToggle(winInfo->core.client,LastEventTime); } /* * WindowMoveAction * Moves the window with user interaction. */ /*ARGSUSED*/ int WindowMoveAction(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { ClientMove(winInfo->core.client,(XEvent *)NULL); } /* * WindowResizeAction * Resizes the window with user interaction. */ /*ARGSUSED*/ int WindowResizeAction(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { ClientResize(winInfo->core.client, NULL, keyevent, NULL, NULL); } /* * WindowPropsAction * * This function is stubbed out because there is currently no definition * of what the WM is supposed to do when the "Props" item is hit. */ /*ARGSUSED*/ int WindowPropsAction(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { return 0; } /* * WindowBackAction * Pushes a window back in the window hierarchy. */ /*ARGSUSED*/ int WindowBackAction(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { ClientBack(winInfo->core.client); } /* * WindowRefreshAction * Refreshes the window */ /*ARGSUSED*/ int WindowRefreshAction(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { ClientRefresh(winInfo->core.client); } /* * WindowQuitAction * */ /*ARGSUSED*/ int WindowQuitAction(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { ClientKill(winInfo->core.client,True); } /* * WindowFlashOwnerAction * */ /*ARGSUSED*/ int WindowFlashOwnerAction(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { ClientFlashOwner(winInfo->core.client); } /* * WindowThisAction * Dismiss this window. */ /*ARGSUSED*/ int WindowDismissThisAction(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { ClientKill(winInfo->core.client, False); } /* * _dismissSiblingMenus - called from ViisitPinnedMenuclients to * dismiss all pinned menus on a particular screen */ void _dismissSiblingMenus(cli, winInfo) Client *cli; WinGeneric *winInfo; { if (cli->screen == winInfo->core.client->screen) ClientKill(cli, False); } /* * WindowDismissAllAction * Dismiss all pop-ups in the group. */ /*ARGSUSED*/ int WindowDismissAllAction(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { Client *cli = winInfo->core.client; if (cli->framewin && cli->framewin->fcore.panewin && cli->framewin->fcore.panewin->core.kind == WIN_PINMENU) { VisitPinnedMenuClients(_dismissSiblingMenus, winInfo); } else { /* dismiss all followers in this window's group */ GroupApply(cli->groupid,ClientKill,(void *)False,GROUP_DEPENDENT); /* * If this window is not a dependent follower, make sure to dismiss * it too. */ if (cli->groupmask != GROUP_DEPENDENT) ClientKill(winInfo->core.client, False); } } /*************************************************************************** * Window controls functions ****************************************************************************/ /* * Window Control Functions: * Each function operates on the selected client list and * performs the necessary action on each client (if any). */ /* * OpenCloseSelnFunc * Toggles Open/Close on all selected clients */ /*ARGSUSED*/ int OpenCloseSelnFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { Client *cli = (Client *)NULL; while (cli = EnumSelections(cli)) { ClientOpenCloseToggle(cli,LastEventTime); } } /* * FullRestoreSizeSelnFunc * Toggles Full/Restore Size on all selected clients */ /*ARGSUSED*/ int FullRestoreSizeSelnFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { Client *cli = (Client *)NULL; while (cli = EnumSelections(cli)) { ClientFullRestoreSizeToggle(cli,LastEventTime); } } /* * BackSelnFunc * Lowers all selected clients/windows to that back of the * window hierarchy. */ /*ARGSUSED*/ int BackSelnFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { Client *cli = (Client *)NULL; while (cli = EnumSelections(cli)) { ClientBack(cli); } } /* * QuitSelnFunc * Quit's all selected clients. */ /*ARGSUSED*/ int QuitSelnFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { Client *cli = (Client *)NULL; while (cli = EnumSelections(cli)) { ClientKill(cli,True); } } /*************************************************************************** * DSDM functions ****************************************************************************/ /*ARGSUSED*/ int StartDSDMFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { DragDropStartDSDM(dpy); return 0; } /*ARGSUSED*/ int StopDSDMFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { DragDropStopDSDM(dpy); return 0; } xview-3.2p1.4/clients/olwm/slave.c100644 1750 1750 7002 6331115755 14324 0ustar mbmb#ident "@(#)slave.c 26.13 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ /* ---------------------------------------------------------------------- * slave.c * ---------------------------------------------------------------------*/ #include #include #include #include #include #include #include #include "cmdstream.h" #include "error.h" /* ---------------------------------------------------------------------- * Local Data * ---------------------------------------------------------------------*/ typedef struct { char *program; pid_t pid; } SlaveInfo; static SlaveInfo slaveInfo = { "olwmslave", 0 }; /* ---------------------------------------------------------------------- * Local Forward Declarations * ---------------------------------------------------------------------*/ void SlaveFailure(); /* ---------------------------------------------------------------------- * SlaveStart * ---------------------------------------------------------------------*/ pid_t SlaveStart(argv) char **argv; { int input[2],output[2]; struct rlimit rlimit; int fd,maxfd; if (pipe(input) == -1) { ErrorWarning("Couldn't create input pipe for olwmslave"); perror("pipe"); SlaveFailure(); return -1; } if (pipe(output) == -1) { ErrorWarning("Couldn't create output pipe for olwmslave"); perror("pipe"); SlaveFailure(); (void)close(input[0]); (void)close(input[1]); return -1; } slaveInfo.pid = fork(); switch (slaveInfo.pid) { case -1: /* error */ (void)close(input[0]); (void)close(input[1]); (void)close(output[0]); (void)close(output[1]); SlaveFailure(); break; case 0: /* Slave */ dup2(input[0],0); dup2(output[1],1); #ifndef __linux if (getrlimit(RLIMIT_NOFILE,&rlimit) == -1) maxfd = 0; else maxfd = rlimit.rlim_cur; #else maxfd = sysconf(_SC_OPEN_MAX); #endif for (fd=3; fd #include #include #include #include "i18n.h" #include "ollocale.h" #include "mem.h" #include "st.h" #include "olwm.h" #include "win.h" #include "globals.h" #include "list.h" #include "slots.h" #define PLUSINFINITY 0xfffffff /* REMIND fix this for architecture-independence */ /*************************************************************************** * Local functions ***************************************************************************/ #define ROUNDUP(n,d) (((n)+(d)-1)/(d)) /* #define ROUND(n,d) ((0.5+((float)(n)/(float)(d)))*(int)(d)) */ #define ROUND(n,d) (((((n)%(d))>((d)/2))?(((n)/(d))+1):((n)/(d)))*(d)) #define SLOTOFFSET(ig,ma,mi) (((ma))*(ig)->mislots+(mi)) #define AOCCUPANCY(ig,ma,mi) ((ig->occupancy+SLOTOFFSET((ig),(ma),(mi)))) #define OCCUPANCY(ig,ma,mi) (*(AOCCUPANCY((ig),(ma),(mi)))) #define ISVERT(so) (((so)==SOBottomToTop)||((so)==SOTopToBottom)) #define ISHORZ(so) (((so)==SOLeftToRight)||((so)==SORightToLeft)) #define ISDECREASING(so) (((so)==SORightToLeft)||((so)==SOBottomToTop)) static char * sotochar(so) SlotOrder so; { if (so == SOTopToBottom) return ("SOTopToBottom"); if (so == SOBottomToTop) return ("SOBottomToTop"); if (so == SOLeftToRight) return ("SOLeftToRight"); if (so == SORightToLeft) return ("SORightToLeft"); return("SOIllegal"); } #ifdef notused #ifdef DEBUG /* dumpocc -- print the occupancy count table to stderr */ static void dumpocc() { int ima, imi; fprintf(stderr,"dump of occupancy table:\n"); for (ima = 0; imaSOmajor)) { *pma = r; *pmi = c; } else { *pma = c; *pmi = r; } } /* setAbsolute -- set two output variables from two input variables, based * on major/minor settings; this is the inverse of setMajorMinor. */ static void setAbsolute(iconGrid,ma,mi,pr,pc) IconGrid *iconGrid; int ma, mi; int *pr, *pc; { if (ISVERT(iconGrid->SOmajor)) { *pr = ma; *pc = mi; } else { *pc = ma; *pr = mi; } } /* incrRegion -- increment the occupancy count of a region */ static void incrRegion(iconGrid,slot,val) IconGrid *iconGrid; IconSlot *slot; int val; { int ii,jj; for (ii = slot->ma; (ii>=0)&&(iimaslots)&&(iima+slot->maw); ii++) for (jj = slot->mi; (jj>=0)&&(jjmislots)&&(jjmi+slot->miw); jj++) { if ((OCCUPANCY(iconGrid,ii,jj) += val) < iconGrid->minoccupancy) iconGrid->minoccupancy = OCCUPANCY(iconGrid,ii,jj); } } /* findMinMaxRgn -- find the minimum and maximum occupancies of a region */ static void findMinMaxRgn(iconGrid,ma, mi, nmajor, nminor, pminrgn, pmaxrgn) IconGrid *iconGrid; int ma, mi, nmajor, nminor, *pminrgn, *pmaxrgn; { int min, max; int ii, jj; int occ; min = PLUSINFINITY; max = -1; for (ii=ma; ii max) max = occ; } *pminrgn = min; *pmaxrgn = max; } static IconSlot * incrDynamicSlots(iconGrid,nmajor, nminor) IconGrid *iconGrid; int nmajor, nminor; { int minoccrgn; /* smallest occupancy found for a region of given size */ int minfound, minfoundrgn; /* smallest occupancy found for one slot * and a region respectively; used to reset * search values */ int ma, mi; /* indices in major and minor directions */ int maxrgn, minrgn; /* max and min occupancies in a region */ IconSlot *slot = MemNew(IconSlot); minoccrgn = iconGrid->minoccupancy; slot->positioned = False; for (;;) /* will actually only iterate twice */ { minfound = minfoundrgn = PLUSINFINITY; for (ma = 0; (ma <= iconGrid->maslots-nmajor); ma++) { for (mi = 0; (mi <= iconGrid->mislots-nminor); mi++) { findMinMaxRgn(iconGrid,ma,mi,nmajor,nminor,&minrgn,&maxrgn); if (minrgn < minfound) minfound = minrgn; if (maxrgn < minfoundrgn) minfoundrgn = maxrgn; if (maxrgn <= minoccrgn) { slot->ma = ma; slot->mi = mi; slot->maw = nmajor; slot->miw = nminor; incrRegion(iconGrid,slot,1); return slot; } } } /* no regions available with occupancy <= known minimum */ if (minfound > iconGrid->minoccupancy) /* increase slot minimum */ iconGrid->minoccupancy = minfound; minoccrgn = minfoundrgn; /* increase local region min */ } } /* setIconPos -- given a slot, position the icon frame window accordingly. */ static void setIconPos(win, slot) WinIconFrame *win; IconSlot *slot; { int x,y; IconGrid *iconGrid = win->core.client->scrInfo->iconGrid; if (iconGrid->SOmajor == SOTopToBottom) { y = ICON_GRID_HEIGHT*slot->ma; if (iconGrid->SOminor == SOLeftToRight) { x = ICON_GRID_WIDTH*slot->mi; } else { x = iconGrid->pixhoriz - slot->mi*ICON_GRID_WIDTH - win->core.width; } } else if (iconGrid->SOmajor == SOBottomToTop) { y = iconGrid->pixvert - ICON_GRID_HEIGHT*slot->ma - win->core.height; if (iconGrid->SOminor == SOLeftToRight) { x = ICON_GRID_WIDTH*slot->mi; } else { x = iconGrid->pixhoriz - slot->mi*ICON_GRID_WIDTH - win->core.width; } } else if (iconGrid->SOmajor == SOLeftToRight) { x = ICON_GRID_WIDTH*slot->ma; if (iconGrid->SOminor == SOTopToBottom) { y = ICON_GRID_HEIGHT*slot->mi; } else { y = iconGrid->pixvert - slot->mi*ICON_GRID_HEIGHT - win->core.height; } } else if (iconGrid->SOmajor == SORightToLeft) { x = iconGrid->pixhoriz - ICON_GRID_WIDTH*slot->ma - win->core.width; if (iconGrid->SOminor == SOTopToBottom) { y = ICON_GRID_HEIGHT*slot->mi; } else { y = iconGrid->pixvert - slot->mi*ICON_GRID_HEIGHT - win->core.height; } } (WinFunc(win,core.newposfunc))(win,x,y); } /* incrPositionedSlots -- an icon has been explicitly positioned; create an * iconslot record and increment the occupancy count of the affected slots. */ static IconSlot * incrPositionedSlots(iconGrid,x,y,w,h,snaptogrid) IconGrid *iconGrid; int x,y,w,h; Bool snaptogrid; { IconSlot *slot = MemNew(IconSlot); #define ROUNDIF(v,w) (snaptogrid?ROUND((v),(w)):(v))/(w) #define ROUNDDIM(p,s,w) (ROUNDUP(((p)%(w))+(s),(w))) if (iconGrid->SOmajor == SOTopToBottom) { slot->ma = ROUNDIF(y,ICON_GRID_HEIGHT); slot->maw = ROUNDDIM(y,h,ICON_GRID_HEIGHT); if (iconGrid->SOminor == SOLeftToRight) { slot->mi = ROUNDIF(x,ICON_GRID_WIDTH); slot->miw = ROUNDDIM(x,w,ICON_GRID_WIDTH); } else { slot->mi = ROUNDIF(iconGrid->pixhoriz-(x+w),ICON_GRID_WIDTH); slot->miw = ROUNDDIM(iconGrid->pixhoriz-(x+w),w,ICON_GRID_WIDTH); } } else if (iconGrid->SOmajor == SOBottomToTop) { slot->ma = ROUNDIF(iconGrid->pixvert-(y+h),ICON_GRID_HEIGHT); slot->maw = ROUNDDIM(iconGrid->pixvert-(y+h),h,ICON_GRID_HEIGHT); slot->miw = w; if (iconGrid->SOminor == SOLeftToRight) { slot->mi = ROUNDIF(x,ICON_GRID_WIDTH); slot->miw = ROUNDDIM(x,w,ICON_GRID_WIDTH); } else { slot->mi = ROUNDIF(iconGrid->pixhoriz-(x+w),ICON_GRID_WIDTH); slot->miw = ROUNDDIM(iconGrid->pixhoriz-(x+w),w,ICON_GRID_WIDTH); } } else if (iconGrid->SOmajor == SOLeftToRight) { slot->ma = ROUNDIF(x,ICON_GRID_WIDTH); slot->maw = ROUNDDIM(x,w,ICON_GRID_WIDTH); if (iconGrid->SOminor == SOTopToBottom) { slot->mi = ROUNDIF(y,ICON_GRID_HEIGHT); slot->miw = ROUNDDIM(y,h,ICON_GRID_HEIGHT); } else { slot->mi = ROUNDIF(iconGrid->pixvert-(y+h),ICON_GRID_HEIGHT); slot->miw = ROUNDDIM(iconGrid->pixvert-(y+h),h,ICON_GRID_HEIGHT); } } else if (iconGrid->SOmajor == SORightToLeft) { slot->ma = ROUNDIF(iconGrid->pixhoriz-(x+w),ICON_GRID_WIDTH); slot->maw = ROUNDDIM(iconGrid->pixhoriz-(x+w),w,ICON_GRID_WIDTH); if (iconGrid->SOminor == SOTopToBottom) { slot->mi = ROUNDIF(y,ICON_GRID_HEIGHT); slot->miw = ROUNDDIM(y,h,ICON_GRID_HEIGHT); } else { slot->mi = ROUNDIF(iconGrid->pixvert-(y+h),ICON_GRID_HEIGHT); slot->miw = ROUNDDIM(iconGrid->pixvert-(y+h),h,ICON_GRID_HEIGHT); } } if (slot->ma < 0) slot->ma = 0; if (slot->ma >= iconGrid->maslots) slot->ma = iconGrid->maslots-1; if (slot->mi < 0) slot->mi = 0; if (slot->mi >= iconGrid->mislots) slot->mi = iconGrid->mislots-1; slot->positioned = True; incrRegion(iconGrid,slot,1); return slot; } /*************************************************************************** * Global functions ***************************************************************************/ /* * SlotInit -- */ IconGrid * SlotInit(dpy,screenno) Display *dpy; int screenno; { IconGrid *iconGrid; int occLen; iconGrid = MemNew(IconGrid); iconGrid->iconList = NULL_LIST; iconGrid->pixhoriz = DisplayWidth(dpy,screenno); iconGrid->pixvert = DisplayHeight(dpy,screenno); iconGrid->slotshoriz = iconGrid->pixhoriz/ICON_GRID_WIDTH; iconGrid->slotsvert = iconGrid->pixvert/ICON_GRID_HEIGHT; occLen = iconGrid->slotshoriz * iconGrid->slotsvert * sizeof(int); iconGrid->occupancy = MemAlloc(occLen); iconGrid->minoccupancy = 0; SlotSetLocations(dpy,iconGrid); return iconGrid; } /* SlotAlloc - given a sized and possibly positioned icon window, allocate * the appropriate slots for it. If the window is positioned, * True should be passed for the second parameter, and the x,y * position will be honoured. If the window is not positioned, it * will be positioned by this function to the appropriate slots(s). * If snaptogrid is true and positioned is true, the given position is * modified so that the upper left corner of the icon is at the closest * icon grid point. Modifies the icon structure to assign it the icon * slot. * Returns an IconSlot pointer if successful; NULL otherwise. */ struct _iconSlot * SlotAlloc(winicon, positioned, snaptogrid) WinIconFrame *winicon; Bool positioned; Bool snaptogrid; { int nhoriz, nvert; /* number of slots occupied, horizontally & vertically */ int nmajor, nminor; /* number of slots occupied, in major & minor directions */ IconSlot *slot; IconGrid *iconGrid = winicon->core.client->scrInfo->iconGrid; iconGrid->iconList = ListCons(winicon, iconGrid->iconList); if (positioned) { slot = incrPositionedSlots(iconGrid,winicon->core.x, winicon->core.y, winicon->core.width, winicon->core.height, snaptogrid); winicon->iconslot = slot; if (snaptogrid) setIconPos(winicon,slot); else (WinFunc(winicon,core.newposfunc))(winicon,winicon->core.x,winicon->core.y); } else { nhoriz = ROUNDUP(winicon->core.width, ICON_GRID_WIDTH); nvert = ROUNDUP(winicon->core.height, ICON_GRID_HEIGHT); setMajorMinor(iconGrid, nvert, nhoriz, &nmajor, &nminor); slot = incrDynamicSlots(iconGrid, nmajor, nminor); winicon->iconslot = slot; setIconPos(winicon,slot); } return slot; } /* SlotFree -- An icon is going away, so its references to slots should also go * away. Returns True iff the free was successful. * Note that if this code is changed, the similar code in SlotSetLocations * may need to be changed also. */ Bool SlotFree(winicon) WinIconFrame *winicon; { List **l; IconGrid *iconGrid = winicon->core.client->scrInfo->iconGrid; WinIconFrame *win; if (winicon->iconslot == NULL) { return; } incrRegion(iconGrid,winicon->iconslot,-1); MemFree(winicon->iconslot); winicon->iconslot = NULL; l = &iconGrid->iconList; for (win = ListEnum(l); win != NULL; win = ListEnum(l)) { if (win == winicon) { ListDestroyCell(l); break; } } } /* sets the order in which slots are allocated for icons which are * not explicitly positioned. The order is gotten from the global * resource vector. * For example, the AlongBottom order is expressed as * major BottomToTop, minor LeftToRight. The major and minor orders * cannot be both vertical or horizontal. Any icons which were * automatically positioned are repositioned to equivalent positions * in the new order. */ /*ARGSUSED*/ Bool SlotSetLocations(dpy,iconGrid) Display *dpy; IconGrid *iconGrid; { List *lauto, *lpos; List **l; WinIconFrame *win; int ima, imi; /* set up the new order of things */ switch (GRV.IconPlacement) { case AlongTop: iconGrid->SOmajor = SOTopToBottom; iconGrid->SOminor = SOLeftToRight; break; case AlongTopRL: iconGrid->SOmajor = SOTopToBottom; iconGrid->SOminor = SORightToLeft; break; case AlongBottom: iconGrid->SOmajor = SOBottomToTop; iconGrid->SOminor = SOLeftToRight; break; case AlongBottomRL: iconGrid->SOmajor = SOBottomToTop; iconGrid->SOminor = SORightToLeft; break; case AlongLeft: iconGrid->SOmajor = SOLeftToRight; iconGrid->SOminor = SOTopToBottom; break; case AlongLeftBT: iconGrid->SOmajor = SOLeftToRight; iconGrid->SOminor = SOBottomToTop; break; case AlongRight: iconGrid->SOmajor = SORightToLeft; iconGrid->SOminor = SOTopToBottom; break; case AlongRightBT: iconGrid->SOmajor = SORightToLeft; iconGrid->SOminor = SOBottomToTop; break; } setMajorMinor(iconGrid,iconGrid->slotsvert,iconGrid->slotshoriz, &(iconGrid->maslots),&(iconGrid->mislots)); if (iconGrid->iconList == NULL_LIST) { for (ima = 0; imamaslots; ima++) for (imi = 0; imimislots; imi++) OCCUPANCY(iconGrid,ima,imi)=0; return; } /* partition existing icons */ lauto = NULL_LIST; lpos = NULL_LIST; l = &iconGrid->iconList; for (win = ListEnum(l); win != NULL; win = ListEnum(l)) { if (!win->iconslot->positioned) { lauto = ListCons(win,lauto); } else { lpos = ListCons(win,lpos); } /* this is the basics of a SlotFree */ MemFree(win->iconslot); win->iconslot = NULL; } ListDestroy(iconGrid->iconList); iconGrid->iconList = NULL_LIST; for (ima = 0; imamaslots; ima++) for (imi = 0; imimislots; imi++) OCCUPANCY(iconGrid,ima,imi)=0; /* place positioned icons */ l = &lpos; for (win = ListEnum(l); win != NULL; win = ListEnum(l)) { SlotAlloc(win,True,False); (WinFunc(win,core.setconfigfunc))(win->core.client->dpy,win); } ListDestroy(lpos); /* place auto-positioned icons */ l = &lauto; for (win = ListEnum(l); win != NULL; win = ListEnum(l)) { SlotAlloc(win,False,False); (WinFunc(win,core.setconfigfunc))(win->core.client->dpy,win); } ListDestroy(lauto); } xview-3.2p1.4/clients/olwm/slots.h100644 1750 1750 3637 5413747435 14403 0ustar mbmb/* * (c) Copyright 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ident "@(#)slots.h 26.8 93/06/28 SMI" #ifndef _OLWM_SLOT_H #define _OLWM_SLOT_H typedef enum {SOTopToBottom, SOBottomToTop, SOLeftToRight, SORightToLeft} SlotOrder; typedef struct _iconSlot { int ma, mi, maw, miw; Bool positioned; } IconSlot; typedef struct _iconGrid { SlotOrder SOmajor,SOminor; int *occupancy; int minoccupancy; List *iconList; int maslots,mislots; int slotshoriz,slotsvert; int pixhoriz,pixvert; } IconGrid; extern IconGrid *SlotInit(); /* Display *dpy, int screeno */ /* initialises the Slots package; should be called for * each screen */ extern struct _iconSlot *SlotAlloc(); /* WinIcon *, Bool, Bool */ /* given a sized and possibly positioned icon window, allocate * the appropriate slots for it. If the window is positioned, * True should be passed for the second parameter, and the x,y * position will be honoured. If the window is not positioned, it * will be positioned by this function to the appropriate slots(s). * If the icon is being manually positioned and should be positioned * according to the icon grid, True should be passed for the third * parameter; False should be passed otherwise. */ extern Bool SlotFree(); /* WinIcon * */ /* An icon is going away, so its references to slots should also go * away. */ extern Bool SlotSetLocations(); /* Display *dpy */ /* sets the order in which slots are allocated for icons which are * not explicitly positioned. The new order is obtained from the * global resource vector. * For example, the AlongBottom order is expressed as * major BottomToTop, minor LeftToRight. Any icons which were * automatically positioned are repositioned to equivalent positions * in the new order. */ #endif /* _OLWM_SLOT_H */ xview-3.2p1.4/clients/olwm/st.c100644 1750 1750 17634 5413747436 13703 0ustar mbmb#ident "@(#)st.c 26.8 93/06/28 SMI" /* This is a general purpose hash table package written by Peter Moore @ UCB. */ #include #include "st.h" #include "mem.h" #define max(a,b) ((a) > (b) ? (a) : (b)) #define nil(type) ((type *) 0) #define alloc(type) (type *)MemAlloc((unsigned)sizeof(type)) #define Calloc(n,s) (char *)MemCalloc((n),(s)) /* * DEFAULT_MAX_DENSITY is the default for the largest we allow the * average number of items per bin before increasing the number of * bins * * DEFAULT_INIT_TABLE_SIZE is the default for the number of bins * allocated initially * * DEFAULT_GROW_FACTOR is the amount the hash table is expanded after * the density has reached max_density */ #define EQUAL(func, x, y) \ ((func == ST_NUMCMP) ? ((x) == (y)) : ((*func)((x), (y)) == 0)) /*#define do_hash(key, table) (*table->hash)(key, table->num_bins)*/ #define do_hash(key, table)\ ((table->hash == ST_PTRHASH) ? (((int) (key) >> 2) % table->num_bins) :\ (table->hash == ST_NUMHASH) ? ((int) (key) % table->num_bins) :\ (*table->hash)((key), table->num_bins)) st_table *st_init_table_with_params(compare, hash, size, density, grow_factor, reorder_flag) int (*compare)(); int (*hash)(); int size; int density; double grow_factor; int reorder_flag; { st_table *new; new = alloc(st_table); new->compare = compare; new->hash = hash; new->num_entries = 0; new->max_density = density; new->grow_factor = grow_factor; new->reorder_flag = reorder_flag; new->num_bins = size; new->bins = (st_table_entry **) Calloc((unsigned)size, sizeof(st_table_entry *)); return new; } st_table *st_init_table(compare, hash) int (*compare)(); int (*hash)(); { return st_init_table_with_params(compare, hash, ST_DEFAULT_INIT_TABLE_SIZE, ST_DEFAULT_MAX_DENSITY, ST_DEFAULT_GROW_FACTOR, ST_DEFAULT_REORDER_FLAG); } st_free_table(table) st_table *table; { register st_table_entry *ptr, *next; int i; for(i = 0; i < table->num_bins ; i++) { ptr = table->bins[i]; while (ptr != nil(st_table_entry)) { next = ptr->next; free((char *) ptr); ptr = next; } } free((char *) table->bins); free((char *) table); } #define PTR_NOT_EQUAL(table, ptr, key)\ (ptr != nil(st_table_entry) && !EQUAL(table->compare, key, (ptr)->key)) #define FIND_ENTRY(table, ptr, hashval)\ ptr = (table)->bins[hashval];\ if (PTR_NOT_EQUAL(table, ptr, key)) {\ while (PTR_NOT_EQUAL(table, ptr->next, key)) {\ ptr = ptr->next;\ }\ if (ptr->next != nil(st_table_entry) && (table)->reorder_flag) {\ st_table_entry *_tmp = (ptr)->next;\ (ptr)->next = (ptr)->next->next;\ _tmp->next = (table)->bins[hashval];\ (table)->bins[hashval] = _tmp;\ ptr = _tmp;\ } else {\ ptr = ptr->next;\ }\ } st_lookup(table, key, value) st_table *table; register char *key; char **value; { int hash_val; register st_table_entry *ptr; hash_val = do_hash(key, table); FIND_ENTRY(table, ptr, hash_val); if (ptr == nil(st_table_entry)) { return 0; } else { if (value != nil(char *)) *value = ptr->record; return 1; } } #define ADD_DIRECT(table, key, value, hash_val, new)\ {\ if (table->num_entries/table->num_bins > table->max_density) {\ rehash(table);\ hash_val = do_hash(key,table);\ }\ \ new = alloc(st_table_entry);\ \ new->key = key;\ new->record = value;\ new->next = table->bins[hash_val];\ table->bins[hash_val] = new;\ table->num_entries++;\ } st_insert(table, key, value) register st_table *table; register char *key; char *value; { int hash_val; st_table_entry *new; register st_table_entry *ptr; hash_val = do_hash(key, table); FIND_ENTRY(table, ptr, hash_val); if (ptr == nil(st_table_entry)) { ADD_DIRECT(table,key,value,hash_val,new); return 0; } else { ptr->record = value; return 1; } } st_add_direct(table, key, value) st_table *table; char *key; char *value; { int hash_val; st_table_entry *new; hash_val = do_hash(key, table); ADD_DIRECT(table, key, value, hash_val, new); } st_find_or_add(table, key, slot) st_table *table; char *key; char ***slot; { int hash_val; st_table_entry *new, *ptr; hash_val = do_hash(key, table); FIND_ENTRY(table, ptr, hash_val); if (ptr == nil(st_table_entry)) { ADD_DIRECT(table, key, (char *)0, hash_val, new) if (slot != nil(char **)) *slot = &new->record; return 0; } else { if (slot != nil(char **)) *slot = &ptr->record; return 1; } } static rehash(table) register st_table *table; { register st_table_entry *ptr, *next, **old_bins = table->bins; int i, old_num_bins = table->num_bins, hash_val; table->num_bins = table->grow_factor*old_num_bins; if (table->num_bins%2 == 0) { table->num_bins += 1; } table->num_entries = 0; table->bins = (st_table_entry **) Calloc((unsigned) table->num_bins, sizeof(st_table_entry *)); for(i = 0; i < old_num_bins ; i++) { ptr = old_bins[i]; while (ptr != nil(st_table_entry)) { next = ptr->next; hash_val = do_hash(ptr->key, table); ptr->next = table->bins[hash_val]; table->bins[hash_val] = ptr; table->num_entries++; ptr = next; } } free((char *) old_bins); } st_table *st_copy(old_table) st_table *old_table; { st_table *new_table; st_table_entry *ptr, *new; int i, num_bins = old_table->num_bins; new_table = alloc(st_table); if (new_table == nil(st_table)) { return nil(st_table); } *new_table = *old_table; new_table->bins = (st_table_entry **) Calloc((unsigned) num_bins, sizeof(st_table_entry *)); if (new_table->bins == nil(st_table_entry *)) { free((char *) new_table); return nil(st_table); } for(i = 0; i < num_bins ; i++) { new_table->bins[i] = nil(st_table_entry); ptr = old_table->bins[i]; while (ptr != nil(st_table_entry)) { new = alloc(st_table_entry); if (new == nil(st_table_entry)) { free((char *) new_table->bins); free((char *) new_table); return nil(st_table); } *new = *ptr; new->next = new_table->bins[i]; new_table->bins[i] = new; ptr = ptr->next; } } return new_table; } st_delete(table, key, value) register st_table *table; register char **key; char **value; { int hash_val; st_table_entry *tmp; register st_table_entry *ptr; hash_val = do_hash(*key, table); ptr = table->bins[hash_val]; if (ptr == nil(st_table_entry)) { *value = nil(char); return 0; } if (EQUAL(table->compare, *key, ptr->key)) { table->bins[hash_val] = ptr->next; table->num_entries--; if (value != nil(char *)) *value = ptr->record; *key = ptr->key; free((char *) ptr); return 1; } for(; ptr->next != nil(st_table_entry); ptr = ptr->next) { if (EQUAL(table->compare, ptr->next->key, *key)) { tmp = ptr->next; ptr->next = ptr->next->next; if (value != nil(char *)) *value = tmp->record; *key = tmp->key; free((char *) tmp); return 1; } } return 0; } st_foreach(table, func, arg) st_table *table; enum st_retval (*func)(); char *arg; { st_table_entry *ptr, *last, *tmp; enum st_retval retval; int i; for(i = 0; i < table->num_bins; i++) { last = nil(st_table_entry); for(ptr = table->bins[i]; ptr != nil(st_table_entry);) { retval = (*func)(ptr->key, ptr->record, arg); switch (retval) { case ST_CONTINUE: last = ptr; ptr = ptr->next; break; case ST_STOP: return; case ST_DELETE: tmp = ptr; if (last == nil(st_table_entry)) { table->bins[i] = ptr->next; } else { last->next = ptr->next; } ptr = ptr->next; free((char *) tmp); } } } } st_strhash(string, modulus) register char *string; int modulus; { register int val = 0; register int c; while ((c = *string++) != '\0') { val = val*997 + c; } return ((val < 0) ? -val : val)%modulus; } xview-3.2p1.4/clients/olwm/st.h100644 1750 1750 2346 5413747436 13662 0ustar mbmb#ident "@(#)st.h 26.7 93/06/28 SMI" /* This is a general purpose hash table package written by Peter Moore @ UCB. */ #ifndef _OLWM_ST_H #define _OLWM_ST_H typedef struct st_table_entry st_table_entry; struct st_table_entry { char *key; char *record; st_table_entry *next; }; typedef struct st_table st_table; struct st_table { int (*compare)(); int (*hash)(); int num_bins; int num_entries; int max_density; int reorder_flag; double grow_factor; st_table_entry **bins; }; #define st_is_member(table,key) st_lookup(table,key,(char **) 0) enum st_retval {ST_CONTINUE, ST_STOP, ST_DELETE}; int st_delete(), st_insert(), st_foreach(), st_free_table(); int st_lookup(), st_find_or_add(), st_add_direct(); st_table *st_init_table(), *st_init_table_with_params(); #define ST_NUMCMP ((int (*)()) 0) #define ST_NUMHASH ((int (*)()) -2) #define ST_PTRCMP ((int (*)()) 0) #define ST_PTRHASH ((int (*)()) -1) #define st_numcmp ST_NUMCMP #define st_numhash ST_NUMHASH #define st_ptrcmp ST_PTRCMP #define st_ptrhash ST_PTRHASH #define ST_DEFAULT_MAX_DENSITY 5 #define ST_DEFAULT_INIT_TABLE_SIZE 11 #define ST_DEFAULT_GROW_FACTOR 2.0 #define ST_DEFAULT_REORDER_FLAG 0 int st_strhash(); #endif /* _OLWM_ST_H */ xview-3.2p1.4/clients/olwm/states.c100644 1750 1750 113250 5413747436 14567 0ustar mbmb#ident "@(#)states.c 26.66 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ /* states.c - functions relating to changes in client state * (Normal, Iconic, Withdrawn) */ #include #include #include #include #include #include #include "i18n.h" #include "ollocale.h" #include "mem.h" #include "olwm.h" #include "win.h" #include "group.h" #include "globals.h" #include "properties.h" /*************************************************************************** * global data ***************************************************************************/ extern Atom AtomWMClass; extern Atom AtomDecorAdd; extern Atom AtomDecorClose; extern Atom AtomDecorDel; extern Atom AtomDecorFooter; extern Atom AtomDecorHeader; extern Atom AtomDecorIconName; #ifdef OW_I18N_L4 extern Atom AtomDecorIMStatus; #endif extern Atom AtomDecorPin; extern Atom AtomDecorResize; extern Atom AtomDeleteWindow; extern Atom AtomMenuFull; extern Atom AtomMenuLimited; extern Atom AtomNone; extern Atom AtomPinIn; extern Atom AtomPinOut; extern Atom AtomProtocols; extern Atom AtomSaveYourself; extern Atom AtomTakeFocus; extern Atom AtomWinAttr; extern Atom AtomWTBase; extern Atom AtomWTCmd; extern Atom AtomWTHelp; extern Atom AtomWTNotice; extern Atom AtomWTOther; extern int WinDrawFunc(); extern void IconPaneSetPixmap(); extern void IconPaneSetMask(); /*************************************************************************** * private data ***************************************************************************/ /* sanity checks for getting stuff out of hints */ #define IsCard16(x) ((x) == ((unsigned short)(x)) && (x) > 0 ) #define IsInt16(x) ((x) == ((short) (x))) static WMDecorations BaseWindow = { WMDecorationCloseButton | WMDecorationResizeable | WMDecorationHeader | WMDecorationIconName, MENU_FULL, 0, PIN_IN, 0 }; static WMDecorations CmdWindow = { WMDecorationPushPin | WMDecorationResizeable | WMDecorationHeader | WMDecorationIconName, MENU_LIMITED, 0, PIN_IN, 0 }; static WMDecorations NoticeWindow = { WMDecorationIconName, MENU_NONE, 0, PIN_IN, 0 }; static WMDecorations HelpWindow = { WMDecorationPushPin | WMDecorationHeader | WMDecorationIconName | WMDecorationWarpToPin, MENU_LIMITED, 0, PIN_IN, 0 }; static WMDecorations OtherWindow = { WMDecorationIconName, MENU_NONE, 0, PIN_IN, 0 }; static WMDecorations TransientWindow = { WMDecorationResizeable | WMDecorationIconName, MENU_LIMITED, 0, PIN_IN, 0 }; static WMDecorations MinimalWindow = { WMDecorationResizeable | WMDecorationIconName, MENU_FULL, 0, PIN_IN, 0 }; typedef struct { char *class, *instance; } minimalclosure; /*************************************************************************** * private functions ***************************************************************************/ /* * Determine FocusMode from wmHints and protocols */ static FocusMode focusModeFromHintsProtocols(wmHints,protocols) XWMHints *wmHints; int protocols; { FocusMode focusMode; if (wmHints && wmHints->input) { if (protocols & TAKE_FOCUS) focusMode = LocallyActive; else focusMode = Passive; } else { /* wmHints->input == False */ if (protocols & TAKE_FOCUS) focusMode = GloballyActive; else focusMode = NoInput; } return focusMode; } /* * matchInstClass -- run through the list of names to be minimally decorated, * and see if this window's class or instance match any. */ static Bool matchInstClass(str, mc) char *str; minimalclosure *mc; { if ((mc->class == NULL) || (strcmp(str, mc->class) != 0)) return ((mc->instance != NULL) && (strcmp(str, mc->instance) == 0)); else return True; } /* * getOlWinDecors - given the window attributes and decoration add/delete * requests, determine what kind of window (according to the OpenLook * kinds of windows) the client represents, and determine what sort of * decorations are appropriate. */ WMDecorations * getOLWinDecors(dpy, win, transient, cli) Display *dpy; Window win; Bool transient; Client *cli; { WMDecorations *decors; minimalclosure mc; XWMHints *wmHints = cli->wmHints; OLWinAttr winAttrs; Bool oldVersion; int decorFlags; decors = MemNew(WMDecorations); /* * REMIND: there is no way for a program to specify the default item, * so this always initialized to zero. */ decors->def_item = 0; #ifdef SHAPE if (cli->isShaped) { *decors = MinimalWindow; return decors; } #endif oldVersion = False; /* * If the _OL_WIN_ATTR property is not present then make the * window into a base window unless is a transient window. */ if (!PropGetOLWinAttr(dpy, win, &winAttrs, &oldVersion)) { if (transient) { *decors = TransientWindow; if (GRV.TransientsTitled) decors->flags |= WMDecorationHeader; } else { *decors = BaseWindow; } /* * Else we do have that property; so interpret it */ } else { /* * Choose the decor from win_type */ if ((winAttrs.flags & WA_WINTYPE) == 0) { *decors = BaseWindow; } else if (winAttrs.win_type == AtomWTBase) { *decors = BaseWindow; } else if (winAttrs.win_type == AtomWTCmd) { *decors = CmdWindow; } else if (winAttrs.win_type == AtomWTHelp) { *decors = HelpWindow; } else if (winAttrs.win_type == AtomWTNotice) { *decors = NoticeWindow; } else if (winAttrs.win_type == AtomWTOther) { *decors = OtherWindow; } /* * Override the decor/menu_type if specified */ if (winAttrs.flags & WA_MENUTYPE) { if (winAttrs.menu_type == AtomMenuFull) decors->menu_type = MENU_FULL; else if (winAttrs.menu_type == AtomMenuLimited) decors->menu_type = MENU_LIMITED; else if (winAttrs.menu_type == AtomNone) decors->menu_type = MENU_NONE; } /* * Backward compatibility. If we had a old/short attribute * property, and the client specified an icon window, we're * probably dealing with an old XView client. These clients * assume the window manager doesn't put the icon name in * the icon, so they paint it into the icon window itself. * Turn off the painting of the icon name for icons of * these windows. */ if (oldVersion && wmHints && (wmHints->flags & IconWindowHint)) decors->flags &= ~WMDecorationIconName; /* * Set cancel if something specified */ if (winAttrs.flags & WA_CANCEL) decors->cancel = (winAttrs.cancel != 0); /* * Set the pin state */ if (winAttrs.flags & WA_PINSTATE) { decors->pushpin_initial_state = winAttrs.pin_initial_state; } else { decors->pushpin_initial_state = PIN_OUT; } #ifdef OW_I18N_L4 /* check if need to decor the IM status */ if (oldVersion) { } #endif } /* * Apply DecorAdd flags */ if (PropGetOLDecorAdd(dpy, win, &decorFlags)) { decors->flags |= decorFlags; } /* * Apply DecorDel flags */ if (PropGetOLDecorDel(dpy, win, &decorFlags)) { decors->flags &= ~decorFlags; } /* * If the instance or class strings match any of the names * listed for minimal decoration, remove the header. */ mc.class = cli->wmClass; mc.instance = cli->wmInstance; if (ListApply(GRV.Minimals, matchInstClass, &mc) != NULL) { decors->flags &= ~WMDecorationHeader; } /* * Below, apply constraints to ensure that decorations are * consistent. */ /* No header implies no window button or pushpin. */ if (!(decors->flags & WMDecorationHeader)) { decors->flags &= ~(WMDecorationHeaderDeco); } /* Can't have button and pushpin; pushpin wins. */ if ((decors->flags & WMDecorationCloseButton) && (decors->flags & WMDecorationPushPin)) decors->flags &= ~(WMDecorationCloseButton); /* Don't warp to the pin if there's no pin. */ if (!(decors->flags & WMDecorationPushPin)) decors->flags &= ~WMDecorationWarpToPin; return decors; } /* * clientSpecifiedPosition * * Return an indication of whether the client has specified a position using * its hints. This is true in the typical case if either the USPosition or * PPosition flags are set. However, if the PPositionCompat option is on, the * PPosition flag is ignored if the specified position is at or above and to * the left of (1,1). * * The point of PPositionCompat is that many old clients (X11R3 and prior) * always set the PPosition flag, even when they had no useful position to * request. When this occurred, the requested position was almost always * (1,1) or thereabouts. */ static Bool clientSpecifiedPosition(normHints, paneAttr) XSizeHints *normHints; XWindowAttributes *paneAttr; { return (normHints->flags & USPosition) || ((normHints->flags & PPosition) && !(GRV.PPositionCompat && paneAttr->x <= 1 && paneAttr->y <= 1)); } /* * Return an indication of whether this frame would be visible on the screen * if it were mapped at the given location. Visibility is defined as having * at least one resize-corner width (or height) on the screen. */ static Bool frameOnScreen(winFrame, scrInfo, x, y) WinPaneFrame *winFrame; ScreenInfo *scrInfo; int x, y; { int dx, dy; int sw = DisplayWidth(scrInfo->dpy, scrInfo->screen); int sh = DisplayHeight(scrInfo->dpy, scrInfo->screen); /* REMIND */ extern int Resize_width, Resize_height; extern void FrameGetGravityOffset(); FrameGetGravityOffset(winFrame, &dx, &dy); x -= dx; y -= dy; return (x + Resize_width <= sw && y + Resize_height <= sh && x + (int) winFrame->core.width >= Resize_width && y + (int) winFrame->core.height >= Resize_height); } /* * calcPosition * * Calculate the next position to place a new window. This function places * all new windows on the diagonal and makes sure that there is enough room on * the screen for the new window's size passed in w and h. * * Changes the x and y members of the attrs structure; also changes the * screen's notion of the location for the next frame. */ static void calcPosition(dpy, screen, attrs, frame) Display *dpy; int screen; XWindowAttributes *attrs; WinPaneFrame *frame; { int stepValue; ScreenInfo *scrInfo; if ((scrInfo = GetScrInfoOfScreen(screen)) == NULL) { attrs->x = attrs->y = 0; return; } /* if the height of the current window is too large ... */ if ((scrInfo->framepos + frame->core.height > DisplayHeight(dpy, screen)) || (scrInfo->framepos + frame->core.width > DisplayWidth(dpy, screen))) { scrInfo->framepos = 0; } /* REMIND this should really be based on the header height */ stepValue = 30; /* we will return the current position */ attrs->x = attrs->y = scrInfo->framepos; /* calculate the next return value */ scrInfo->framepos = scrInfo->framepos + stepValue; if ((scrInfo->framepos > DisplayWidth(dpy, screen)) || (scrInfo->framepos > DisplayHeight(dpy, screen))) { scrInfo->framepos = 0; } } /* * iconifyOne -- iconify one client to IconicState from NormalState */ static void * iconifyOne(cli, winIcon) Client *cli; WinGeneric *winIcon; { if (cli->groupmask == GROUP_DEPENDENT) RemoveSelection(cli); else DrawIconToWindowLines(cli->dpy, winIcon, cli->framewin); XUnmapWindow(cli->dpy, cli->framewin->core.self); XUnmapWindow(cli->dpy, PANEWINOFCLIENT(cli)); cli->framewin->fcore.panewin->pcore.pendingUnmaps++; ClientSetWMState(cli,IconicState); return NULL; } /* deiconifyOne -- deiconify one client to NormalState from IconicState */ static void * deiconifyOne(cli, winIcon, raise) Client *cli; WinGeneric *winIcon; Bool raise; { if (cli->groupmask != GROUP_DEPENDENT) DrawIconToWindowLines(cli->dpy, winIcon, cli->framewin); if (raise) XRaiseWindow(cli->dpy, cli->framewin->core.self); XMapWindow(cli->dpy, cli->framewin->core.self); XMapRaised(cli->dpy, PANEWINOFCLIENT(cli)); ClientSetWMState(cli,NormalState); return NULL; } /* * markFrame * * Marks a client's frame window with a given value. Suitable for calling by * ListApply or GroupApply. */ static void * markFrame(cli, value) Client *cli; int value; { if (cli->framewin != NULL) cli->framewin->core.tag = value; return NULL; } /* * unmarkAllFrames -- Clear the tag field of the frame window of every client. */ static void * unmarkAllFrames() { List *l = ActiveClientList; Client *tc; for (tc = ListEnum(&l); tc != NULL; tc = ListEnum(&l)) markFrame(tc, 0); return NULL; } #ifdef DEBUG static void printClientList() { List *l = ActiveClientList; Client *tc; for (tc = ListEnum(&l); tc != NULL; tc = ListEnum(&l)) printf("0x%x\n", (unsigned int) tc); fflush(stdout); } static void * printGroupMember(cli, value) Client *cli; int value; { printf("0x%x\n", (unsigned int) cli); return NULL; } static void printGroupList(id) unsigned long id; { GroupApply(id, printGroupMember, 0, GROUP_LEADER | GROUP_DEPENDENT | GROUP_INDEPENDENT); fflush(stdout); } #endif /* DEBUG */ /* * deiconifyGroup * * Deiconify a window group, preserving stacking order. Mark all the frames * that are to be deiconified, then query the server for all children-of-root. * Walk backward through this array (i.e. from top to bottom). For each group * member found, stack it just below the previous one (raise the first one to * the top) and deiconify it. Finally, unmark all the frames in the group. * Note: this algorithm depends on having the stacking order of windows * preserved when the group is iconified. */ static void deiconifyGroup(cli, winIcon) Client *cli; WinIconFrame* winIcon; { Window root, parent; Window *children; Window prev = None; unsigned int nchildren; int i; WinGeneric *wi; XWindowChanges xwc; unmarkAllFrames(); if (cli->groupmask == GROUP_LEADER) { GroupApply(cli->groupid, markFrame, 1, GROUP_LEADER | GROUP_DEPENDENT); } else if (cli->groupmask == GROUP_INDEPENDENT) { markFrame(cli, 1); GroupApply(PANEWINOFCLIENT(cli), markFrame, 1, GROUP_DEPENDENT); } (void) XQueryTree(cli->dpy, cli->scrInfo->rootid, &root, &parent, &children, &nchildren); xwc.stack_mode = Below; for (i=nchildren-1; i>=0; --i) { wi = WIGetInfo(children[i]); if (wi != NULL && wi->core.tag == 1) { if (prev == None) { XRaiseWindow(cli->dpy, children[i]); } else { xwc.sibling = prev; XConfigureWindow(cli->dpy, children[i], CWSibling|CWStackMode, &xwc); } prev = children[i]; deiconifyOne(wi->core.client, winIcon, False); } } unmarkAllFrames(); if (children != NULL) XFree((char *)children); } /* * promoteDependentFollowers -- called for a newly appearing dependent * followers. Promote all dependent followers of "window" to be dependent * followers of the leader of the new window "groupid". In other words, * suppose we have a group relationship of C->B->A, where "->" means "is a * dependent follower of", and B is a newly appearing window. For all such * windows C that are followers of B, make them followers of A. * * REMIND we don't update the group data structures while the GroupApply is in * progress. Doing so will corrupt the group data structure. */ static void * promoteDependentFollowers(window, groupid) Window window; Window groupid; { List *l = ActiveClientList; Client *cli; unmarkAllFrames(); GroupApply(window, markFrame, 1, GROUP_DEPENDENT); for (cli = ListEnum(&l); cli != NULL; cli = ListEnum(&l)) { if (cli->framewin && cli->framewin->core.tag) { GroupRemove(window, cli); GroupAdd(groupid, cli, GROUP_DEPENDENT); cli->groupid = groupid; } } unmarkAllFrames(); } /*************************************************************************** * global functions ***************************************************************************/ /* * StateNew -- A client is mapping a top-level window (either a new window * or a Withdrawn window). The window may become Iconic or Normal * depending on the hints. Check to see if this window needs to be mapped * and if so add the required adornments. * dpy -- display pointer * rootWin -- root window * if None will determine the root window * for the client window * window -- client's window * fexisting -- the window already exists and we * are starting olwm, so positioning should * be special-cased * ourWinInfo -- if is this one of our menu windows, this * will be its WinMenu structure; this window must * be a subclass of Pane */ Client * StateNew(dpy, rootWin, window, fexisting, ourWinInfo) Display *dpy; Window rootWin; Window window; Bool fexisting; WinPane *ourWinInfo; { Client *cli; WinGeneric *winGeneric; WinPane *winPane; WinIconFrame *winIcon; WinPaneFrame *winFrame; WinIconPane *winIconPane; XSizeHints *normHints; Bool preICCCM; Bool transient = False; int status; int initstate; XWindowAttributes paneAttr; int screen; int tmpx, tmpy; ScreenInfo *scrInfo; int winState; Window iconWin; /* * If the window is thought to be new (i.e. if ourWinInfo is null, as * it is always except for the case of pinned menus) and the window * has already been registered in the WinInfo database and it's * anything other than colormap window, then return. * * This is to head off (a) clients that might be mapping the olwm * frame, (b) clients that map their top-level window (pane) more than * once before olwm can reparent it to a frame, and (c) olwm's own * popup menus. */ if (!ourWinInfo && (winGeneric = WIGetInfo(window)) != NULL && winGeneric->core.kind != WIN_COLORMAP) { return NULL; } /* Find the screen the client window is on. * If ourWinInfo is valid, use it's screen * Else if know the root then use it's screen * Lastly QueryTree to find out from the server */ if (ourWinInfo) { scrInfo = ourWinInfo->core.client->scrInfo; } else if (rootWin != None) { if ((scrInfo = GetScrInfoOfRoot(rootWin)) == NULL) return NULL; } else { Window root, parent, *children; unsigned int nChild; Status result; result = XQueryTree(dpy, window, &root, &parent, &children, &nChild); if (result == 0 || parent != root) return NULL; if ((scrInfo = GetScrInfoOfRoot(root)) == NULL) return NULL; } screen = scrInfo->screen; /* * Select for events on the pane right now (including StructureNotify) * so that we are guaranteed to get a DestroyNotify if the window goes * away. If the window has already gone away, the call to * XGetWindowAttributes below will tell us without race conditions. */ if (!ourWinInfo) XSelectInput(dpy, window, PropertyChangeMask | StructureNotifyMask | ColormapChangeMask | EnterWindowMask); /* get all the info about the new pane */ status = XGetWindowAttributes(dpy, window, &paneAttr); if ( status == 0 ) { return NULL; } /* * If it's an override-redirect window, or if already exists but is * unmapped, ignore it after first removing our StructureNotify * interest. */ if (paneAttr.override_redirect || (fexisting && paneAttr.map_state != IsViewable)) { if (!ourWinInfo) XSelectInput(dpy, window, NoEventMask); return NULL; } /* Create the client structure so we can start hooking things to it */ if ((cli = ClientCreate(dpy,screen)) == NULL) { return NULL; } #ifdef SHAPE { Bool bshaped, cshaped; int bx, by, cx, cy; unsigned int bw, bh, cw, ch; if (ShapeSupported && 0 != XShapeQueryExtents(dpy, window, &bshaped, &bx, &by, &bw, &bh, &cshaped, &cx, &cy, &cw, &ch)) { XShapeSelectInput(dpy, window, ShapeNotifyMask); cli->isShaped = bshaped; } else { cli->isShaped = False; } } #endif /* SHAPE */ /* * Turn on prop read filtering with set of available properties */ PropSetAvailable(dpy,window); /* * Get the WM_TRANSIENT_FOR hint. If the property exists but has a * contents of zero, or the window itself, substitute the root's * window ID. This is because some (buggy) clients actually write * zero in the WM_TRANSIENT_FOR property, and we want to give them * transient window behavior. */ if (!PropGetWMTransientFor(dpy,window,cli->scrInfo->rootid, &(cli->transientFor))) { cli->transientFor = 0; transient = False; } else { transient = True; } /* * Get the WM_NORMAL_HINTS property. If it's short, then we have a * pre-ICCCM client on our hands, so we interpret some values * specially. */ normHints = MemNew(XSizeHints); if (!PropGetWMNormalHints(dpy,window,normHints,&preICCCM)) { normHints->win_gravity = NorthWestGravity; normHints->flags = PWinGravity; } /* * We got a short property. Assume that this is a pre-X11R4 * client who's using the short version of the property. Copy * the data into a correctly-sized structure. Then, depending * on the flags set, ignore the window's real geometry and use * the data in the hint (but only if it passes some sanity * checking). The sanity checking is necessary because early * versions of XView write a short property, but rely on the * window manager to look at the window's geometry instead of * at the values in the hint. */ if (preICCCM) { int maxDpyWidth = 2*DisplayWidth(dpy,screen); int maxDpyHeight = 2*DisplayHeight(dpy,screen); if (!fexisting && (normHints->flags & (USPosition|PPosition)) && IsInt16(normHints->x) && IsInt16(normHints->y) && normHints->x > -maxDpyWidth && normHints->y > -maxDpyHeight && normHints->x < maxDpyWidth && normHints->y < maxDpyHeight) { paneAttr.x = normHints->x; paneAttr.y = normHints->y; } if ((normHints->flags & (USSize|PSize)) && IsCard16(normHints->width) && IsCard16(normHints->height) && normHints->width >= MINSIZE && normHints->height >= MINSIZE && normHints->width < maxDpyWidth && normHints->height < maxDpyHeight) { paneAttr.width = normHints->width; paneAttr.height = normHints->height; } } cli->normHints = normHints; /* * Get the WM_HINTS */ cli->wmHints = MemNew(XWMHints); if (!PropGetWMHints(dpy,window,cli->wmHints)) { cli->wmHints->flags = 0L; } /* * Get the protocols in which the client will participate */ if (!PropGetWMProtocols(dpy,window,&(cli->protocols))) { cli->protocols = 0; } /* * Figure out what focus mode this window intends */ cli->focusMode = focusModeFromHintsProtocols(cli->wmHints, cli->protocols); /* * Get the window class and instance strings */ if (!PropGetWMClass(dpy,window,&(cli->wmClass),&(cli->wmInstance))) { cli->wmClass = cli->wmInstance = NULL; cli->wmClassQ = cli->wmInstanceQ = NULLQUARK; } cli->wmClassQ = XrmStringToQuark(cli->wmClass); cli->wmInstanceQ = XrmStringToQuark(cli->wmInstance); ClientSetInstanceVars(cli); /* * Get the OpenLook window type and associated decorations */ cli->wmDecors = getOLWinDecors(dpy, window, transient, cli); /* * Establish window groups. Policy: if the window is transient, this * takes priority over any window group specified in WM_HINTS. If * it's transient, make it be part of the window group of the window * it is transient for. Otherwise, use the group specified in * WM_HINTS. If no group is specified in WM_HINTS, consider the * window to be the leader of its own group. */ if (transient) { winGeneric = WIGetInfo(cli->transientFor); if (winGeneric != NULL && winGeneric->core.client->groupmask == GROUP_DEPENDENT) cli->groupid = winGeneric->core.client->groupid; else cli->groupid = cli->transientFor; } else if ((cli->wmHints) && (cli->wmHints->flags & WindowGroupHint)) { winGeneric = WIGetInfo(cli->wmHints->window_group); if (winGeneric != NULL && winGeneric->core.client->groupmask == GROUP_DEPENDENT) cli->groupid = winGeneric->core.client->groupid; else cli->groupid = cli->wmHints->window_group; } else { cli->groupid = window; } /* * Determine group role: leader, independent follower, or dependent * follower. Leader and independent followers can be iconified * themselves, while dependent followers iconify with their parent. * * A window is a dependent follower if it's a group follower and: * * - it's transient, or * - it's a popup window. * * A window is considered to be a popup window if: * * - it has a pin, or * - it has a limited menu. * * If this window is a dependent follower, its followers are * "promoted" to be followers of this window's leader. * * If a window is a group follower but doesn't satisfy any of these * criteria, it's considered an independent follower. */ if (cli->groupid == window) { cli->groupmask = GROUP_LEADER; } else { if (transient || ClientIsPopup(cli)) { cli->groupmask = GROUP_DEPENDENT; promoteDependentFollowers(window, cli->groupid); } else { cli->groupmask = GROUP_INDEPENDENT; } } GroupAdd(cli->groupid,cli,cli->groupmask); /* * Officially set up the frame */ winFrame = MakeFrame(cli,window,&paneAttr); /* * If a client-created window then create the pane for it. Otherwise, * call the creation callback function; this is used for pinned menus. */ if (ourWinInfo == NULL) { winPane = MakePane(cli,winFrame,window,&paneAttr); } else { winPane = ourWinInfo; (WinClass(winPane)->core.createcallback)(ourWinInfo,cli, winFrame); } /* * We use the window's position if: * * + it's an existing window, or * + the client has specified that its position be used and its * position leaves at least part of the frame on the screen. * * Otherwise, we calculate a position for the window and place it * there. */ if (! (fexisting || clientSpecifiedPosition(normHints, &paneAttr) && frameOnScreen(winFrame, scrInfo, paneAttr.x, paneAttr.y))) { calcPosition(dpy, screen, &paneAttr, winFrame); } /* * Officially set up the icon */ winIcon = MakeIcon(cli,window,&paneAttr); winIconPane = MakeIconPane(cli,winIcon,cli->wmHints,fexisting); /* * Keep track of any subwindows that need colormap installation */ TrackSubwindows(cli); /* * Size and generally configure the frame window tree */ FrameSetPosFromPane(winFrame,paneAttr.x,paneAttr.y); WinCallConfig(dpy, winPane, NULL); /* * Size and generally configure the icon window tree */ WinCallConfig(dpy, winIconPane, NULL); if (cli->wmHints != NULL) IconSetPos(winIcon,cli->wmHints->icon_x,cli->wmHints->icon_y); else IconSetPos(winIcon,0,0); WinCallConfig(dpy, winIcon, NULL); /* * We manually move the icon pane window, since all the configuration * has been done with the icon pane parented to root. */ WinRootPos(winIconPane, &tmpx, &tmpy); XMoveWindow(dpy, winIconPane->core.self, tmpx, tmpy); /* * Determine the proper initial state of the window. * If the window already exists and there is a WM_STATE property * then use the state that the last window manager left there, * otherwise use WM_HINTS. */ if (fexisting && PropGetWMState(dpy,winPane->core.self,&winState,&iconWin)) { if (winState == IconicState) initstate = IconicState; else initstate = NormalState; } else { /* For new windows, check the initial_state field of WM_HINTS. */ if (cli->wmHints && (cli->wmHints->flags & StateHint) && (cli->wmHints->initial_state == IconicState)) initstate = IconicState; else initstate = NormalState; } /* * Don't allow the popup into iconic state if its leader is in normal * state. */ if (cli->groupmask == GROUP_DEPENDENT && initstate == IconicState) { Client *leader = GroupLeader(cli->groupid); if (leader != NULL && leader->wmState == NormalState) initstate = NormalState; } ClientProcessDragDropInterest(cli, PropertyNewValue); /* * Put the window into the correct initial state */ /* REMIND - The call to ClientSetWMState() should be * here instead of directly assigning cli->wmState. * But if we did that clients would see a different * event order than it saw in earlier releases. * This way the client will see the MapNotify from * the XMapRaised() and then the PropertyNotify from * ClientSetWMState(). * In a future major release we should change this. */ cli->wmState = initstate; switch ( initstate ) { case NormalState: XMapRaised(dpy, winFrame->core.self); XMapRaised(dpy, winPane->core.self); if (!fexisting) { FrameWarpPointer(cli); if (GRV.AutoInputFocus) ClientSetFocus(cli, True, CurrentTime); if (GRV.AutoColorFocus) LockColormap(dpy, cli, winPane); } break; case IconicState: /* unmap the window in case it was mapped originally */ XUnmapWindow(dpy, winPane->core.self); winPane->pcore.pendingUnmaps++; /* dependent group followers don't get their own icons */ if (cli->groupmask != GROUP_DEPENDENT) IconShow(cli, winIcon); break; } ClientSetWMState(cli,initstate); /* * Get the window state */ ClientGetWindowState(cli); /* * Turn off prop read filtering */ PropClearAvailable(); return cli; } /* * ReparentTree -- called at start up, this routine queries the window * tree and reparents all the windows */ void ReparentTree(dpy,treeroot) Display *dpy; Window treeroot; { unsigned int numChildren; Window *children, root, parent, w; int ii; Client *cli; children = NULL; if (XQueryTree(dpy, treeroot, &root, &parent, &children, &numChildren)) { for (ii=0; iiframewin->fcore.panewin->pcore.pendingUnmaps++; /* unmap because of reparent */ } } } } if (children != NULL) XFree((char *)children); } /* * StateIconic - transition a window to IconicState */ void StateIconic(cli,timestamp) Client *cli; Time timestamp; { WinIconFrame *iconInfo = cli->iconwin; WinPaneFrame *frameInfo = cli->framewin; unsigned int groupApplyMask = 0; if (iconInfo == NULL || frameInfo == NULL || !ClientHasIcon(cli)) return; /* * Transition from the various states */ switch (cli->wmState) { case IconicState: /* If already iconic just return */ return; case NormalState: switch (cli->groupmask) { /* * Iconify group leader and all dependent followers */ case GROUP_LEADER: IconShow(cli, iconInfo); GroupApply(cli->groupid, iconifyOne, iconInfo, GROUP_LEADER|GROUP_DEPENDENT); break; /* * Iconify the group independent follower and its dependent * followers */ case GROUP_INDEPENDENT: IconShow(cli, iconInfo); iconifyOne(cli, iconInfo); GroupApply(PANEWINOFCLIENT(cli), iconifyOne, iconInfo, GROUP_DEPENDENT); break; /* * Dont inconify the dependent follower by itself since * it should only go iconic if it's group leader is going * iconic (above) */ case GROUP_DEPENDENT: return; } break; case InvisibleState: /* * Map the icon window and update the client wmState */ IconShow(cli, iconInfo); ClientSetWMState(cli, IconicState); break; } /* * Set focus to the newly iconified client if it's the current * client and we're in click-to-type mode */ if (cli == CurrentClient && !GRV.FocusFollowsMouse) ClientSetFocus(cli, False, timestamp); } /* * StateNormal - transition a window to NormalState */ void StateNormal(cli,timestamp) Client *cli; Time timestamp; { WinIconFrame *iconInfo = cli->iconwin; WinPaneFrame *frameInfo = cli->framewin; Display *dpy = cli->dpy; if (iconInfo == NULL || frameInfo == NULL) return; /* * Transition from the various states */ switch (cli->wmState) { case IconicState: /* * Unmap the icon. This must be done before mapping the * frame windows, so that we get LeaveNotify events (that * cause us to change focus) before the exposure events on * the frame. If we mapped the frames first, they'd be * painted with the focus highlight. */ IconHide(cli, iconInfo); /* Map the frame window and any group followers. */ if (cli->groupmask == GROUP_DEPENDENT) deiconifyOne(cli,iconInfo,True); else deiconifyGroup(cli, iconInfo); break; case NormalState: /* If already in normal just return */ return; case InvisibleState: /* * Map frame and pane and update client's wmState */ XMapWindow(dpy, frameInfo->core.self); XMapRaised(dpy, PANEWINOFCLIENT(cli)); ClientSetWMState(cli,NormalState); break; } /* * Transfer the focus to the newly mapped frame, but only if we're in * click-to-type mode. */ if (cli == CurrentClient && !GRV.FocusFollowsMouse) ClientSetFocus(cli, True, timestamp); } /* * StateWithdrawn - a window is being withdrawn; tear down all related * structures; clear the client out of all lists it may be * on; reparent the pane window */ void StateWithdrawn(cli,timestamp) Client *cli; Time timestamp; { WinIconFrame *iconInfo = cli->iconwin; WinPaneFrame *frameInfo = cli->framewin; Display *dpy = cli->dpy; if (iconInfo == NULL || frameInfo == NULL) return; /* Zero event mask to cut down on unneeded events */ XSelectInput(dpy,PANEWINOFCLIENT(cli),NoEventMask); /* * Transition from the various states */ switch (cli->wmState) { case IconicState: /* Unmap the icon */ IconHide(cli, iconInfo); break; case NormalState: /* Unmap the frame and pane. */ XUnmapWindow(dpy, frameInfo->core.self); XUnmapWindow(dpy, PANEWINOFCLIENT(cli)); break; case InvisibleState: /* Both icon and frame are already unmapped so do nothing */ break; } /* Return the pointer if necessary */ FrameUnwarpPointer(cli); /* Move the pane and unparent it */ FrameUnparentPane(cli, frameInfo, frameInfo->fcore.panewin); DestroyClient(cli); } /* * StateInvisible - transition a window to InvisibleState * Unmap either icon or frame windows and update wmState */ void StateInvisible(cli,timestamp) Client *cli; Time timestamp; { WinIconFrame *iconInfo = cli->iconwin; WinPaneFrame *frameInfo = cli->framewin; Display *dpy = cli->dpy; if (iconInfo == NULL || frameInfo == NULL) return; /* * Transition from the various states */ switch (cli->wmState) { case IconicState: /* Unmap the icon */ IconHide(cli, iconInfo); break; case NormalState: /* Unmap the frame and pane */ XUnmapWindow(dpy, frameInfo->core.self); XUnmapWindow(dpy, PANEWINOFCLIENT(cli)); frameInfo->fcore.panewin->pcore.pendingUnmaps++; break; case InvisibleState: /* Already in InvisibleState */ return; } ClientSetWMState(cli,InvisibleState); } /************************************************************************ * Top-Level Window Property Update Functions ************************************************************************/ /* * Refresh SizeHints from WM_NORMAL_HINTS property. The new values * can simply be copied into the client's normHints. */ void StateUpdateWMNormalHints(cli,event) Client *cli; XPropertyEvent *event; { Window pane; XSizeHints sizeHints; Bool preICCCM; if (event->state != PropertyNewValue) return; pane = PANEWINOFCLIENT(cli); if (!PropGetWMNormalHints(cli->dpy,pane,&sizeHints,&preICCCM)) return; *(cli->normHints) = sizeHints; } /* * Reapply WMHints from the WM_HINTS property. Ignore everything but * InputHint and Icon{Pixmap/Mask}Hint. */ void StateUpdateWMHints(cli,event) Client *cli; XPropertyEvent *event; { Window pane; XWMHints wmHints; WinIconPane *iconPane; Pixmap iconMask; if (cli->framewin == NULL || cli->iconwin == NULL || event->state != PropertyNewValue) return; pane = PANEWINOFCLIENT(cli); iconPane = (WinIconPane *)cli->iconwin->fcore.panewin; if (!PropGetWMHints(cli->dpy,pane,&wmHints)) return; if (wmHints.flags & InputHint) { cli->focusMode = focusModeFromHintsProtocols(&wmHints,cli->protocols); } if (wmHints.flags & IconPixmapHint) IconPaneSetPixmap(cli->dpy,iconPane,wmHints.icon_pixmap); if (wmHints.flags & IconMaskHint) IconPaneSetMask(cli->dpy,iconPane,wmHints.icon_mask); if (wmHints.flags & IconPixmapHint || wmHints.flags & IconMaskHint) WinDrawFunc(iconPane); if (cli->wmHints == NULL) cli->wmHints = MemNew(XWMHints); *(cli->wmHints) = wmHints; } /* * Reset client protocols and focusMode from WM_PROTOCOLS */ void StateUpdateWMProtocols(cli,event) Client *cli; XPropertyEvent *event; { Window pane; int protocols; if (cli->framewin == NULL || event->state != PropertyNewValue) return; pane = PANEWINOFCLIENT(cli); if (!PropGetWMProtocols(cli->dpy,pane,&protocols)) return; if (cli->protocols == protocols) return; cli->focusMode = focusModeFromHintsProtocols(cli->wmHints,protocols); cli->protocols = protocols; } /* * StateUpdateWinAttr - reread the _OL_WIN_ATTR property. * For now just apply WA_PINSTATE. */ void StateUpdateWinAttr(cli,event) Client *cli; XPropertyEvent *event; { OLWinAttr winAttr; Bool old; Window pane; if (cli->framewin == NULL || event->state != PropertyNewValue) return; pane = PANEWINOFCLIENT(cli); if (!PropGetOLWinAttr(cli->dpy,pane,&winAttr,&old)) return; if ((winAttr.flags & WA_PINSTATE) && ClientIsPinnable(cli)) { WinPushPin *pushPin = (WinPushPin *)cli->framewin->winDeco; PushPinSetPinState(cli->dpy,pushPin, winAttr.pin_initial_state,False); } } /* * StateUpdateDecorAdd - read the DecorAdd property and reapply it */ void StateUpdateDecorAdd(cli,event) Client *cli; XPropertyEvent *event; { /* REMIND - this needs to be implemented */ } /* * StateUpdateDecorDel - read the DecorDel property and reapply it */ void StateUpdateDecorDel(cli,event) Client *cli; XPropertyEvent *event; { /* REMIND - this needs to be implemented */ } xview-3.2p1.4/clients/olwm/usermenu.c100644 1750 1750 151711 6331510574 15122 0ustar mbmb#ident "@(#)usermenu.c 26.62 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ /* * This file contains all of the functions for manipulating the user menu * * Global Functions: * InitUserMenu -- load the user menu and initialise * ReInitUserMenu -- reload the user menu and re-initialise * RootMenuShow -- call MenuShow on the root menu * */ /* * Syntax of the user menu file should be identical to that used by * buildmenu (SunView style RootMenu files). * * NOTICE that SunView compatibility has resulted in old-style * olwm menus no longer being supported. * * There are two new reserved keywords: * * DEFAULT tags a default button * TITLE tags a title string for a menu (for titlebar) * * One syntax in sunview menus is not supported: * can not be used as a menu item * * Here are the common reserved keywords: * MENU and END are used to delimit a submenu * PIN (appearing after END) indicates the menu is pinnable * EXIT (built-in - olwm service) * REFRESH (built-in - olwm service) * POSTSCRIPT will invoke psh on the named command * * The file is line-oriented, however commands to be executed can * extend to the next line if the newline is escaped (\). * * Each line consists of up to three fields: a label (a string * corresponding to either the menu label or menu option label), * up to two tags (keywords), and a command to be executed * (or a file from which to read a submenu). Two tags are allowed * if one of them is "DEFAULT" or "END". * * The tag is used to indicate the start and end of menu definitions, * pinnability, built-in functions, and default options. * The label indicates the text which appears on the user's menu, * and the command describes what should be done when each item * is selected. * * Labels must be enclosed in double quotes if they contain * whitespace. Commands may be enclosed in double quotes (but * do not have to be). * * Comments can be embedded in a file by starting a line with a * pound sign (#). Comments may not be preserved as the file is * used. * * There are several functions which aren't invoked as programs; * rather, they are built in to window manager. These built-in * services are each denoted by a single keyword. The keywords are * listed in the svctokenlookup[] array initialization. * * example (will always have label: "Workspace Menu"): * * "Workspace Menu" TITLE * Programs MENU * "Helpful Programs" TITLE * "Command Tool" cmdtool * "Blue Xterm" DEFAULT xterm -fg white \ * -bg blue * Programs END PIN * Utilities MENU * "Refresh Screen" DEFAULT REFRESH * "Clipboard" CLIPBOARD * Utilities END */ #ifdef SYSV #include #include #endif #include #include #include #ifdef SYSV #include #else #include #endif #include #include #include /* for stat(2) */ #include #include #include #include #include #include #include #include "i18n.h" #include "ollocale.h" #include "olwm.h" #include "globals.h" #include "list.h" #include "mem.h" #include "win.h" #include "menu.h" static char *menuFileName = "openwin-menu"; static char *workspaceHelpStub = "workspace"; static int menuRecursionCount; extern char *getenv(); #define TOKLEN 300 #define DEFAULT_WORKSPACE_TITLE "Workspace" #define DEFAULT_WORKSPACE_HELPSTR "workspace:DefaultMenu" /* parseMenu return values */ #define MENU_RECURSION -2 #define MENU_FATAL -1 #define MENU_NOTFOUND 0 #define MENU_OK 1 #define MENU_PINNABLE 2 typedef enum { UsrToken, MenuToken, EndToken, DefaultToken, PinToken, TitleToken, ServiceToken, PshToken } TokenType; /* locally useful macros */ #define APPEND_STRING(buf, str) ( strncat( buf, str, \ ( sizeof(buf) - strlen(buf) - 1 ) ) ) #define COUNT(x) (sizeof(x) / sizeof(x[0])) /* ***************************************************************************** * externals ***************************************************************************** */ extern int RefreshFunc(); extern int ClipboardFunc(); extern int PrintScreenFunc(); extern int ExitFunc(); extern int ExitNoConfirmFunc(); extern int PropertiesFunc(); extern int SaveWorkspaceFunc(); extern int FlipDragFunc(); extern int AppMenuFunc(); extern int PshFunc(); extern int NopFunc(); extern int WindowCtlFunc(); extern int RestartOLWM(); extern int FlipFocusFunc(); extern int ReReadUserMenuFunc(); extern int OpenCloseSelnFunc(); extern int FullRestoreSizeSelnFunc(); extern int BackSelnFunc(); extern int QuitSelnFunc(); extern int StartDSDMFunc(); extern int StopDSDMFunc(); /* ***************************************************************************** * local forward declarations ***************************************************************************** */ static int menuFromFile(); static int parseMenu(); static void fillMenuStruct(); static TokenType lookupToken(); static Menu *buildFromSpec(); static void initMenu(); static void initButton(); static void freeButtonData(); static void freeMenuData(); static void freeUserMenu(); static Bool menuFileModified(); static void addToMenuInfo(); static void freeFileInfoList(); static int firstEnabledItem(); /* ***************************************************************************** * local data ***************************************************************************** */ typedef struct { char *filename; /* menu file path */ dev_t device; /* device that the inode/file reside on */ ino_t inode; /* inode of menu file */ time_t mtime; /* modification time */ } FileInfo; typedef struct { char *topfilename; /* top-level menu file name */ List *fileinfoList; /* list of FileInfo's for each menu file */ } MenuFileInfo; MenuFileInfo menuFileInfo; typedef struct _buttondata { struct _buttondata *next; char *name; Bool isDefault; Bool isLast; FuncPtr func; char *exec; /* string to be executed, like "xterm" */ void *submenu; } buttondata; typedef struct { char *title; char *menulabel; int idefault; /* index of default button */ int nbuttons; Bool pinnable; buttondata *bfirst; } menudata; static menudata *makeRootMenu(); /* ***************************************************************************** * global routines ***************************************************************************** */ void SetWindowMenuLabels(); void WindowMenuCreate(dpy) Display *dpy; { SetWindowMenuLabels(); SetWindowMenuTitle(); CreateScreenWindowMenuInfo(dpy); } void WindowMenuDestroy(dpy) Display *dpy; { DestroyScreenWindowMenuInfo(dpy); } /* * getUserMenu * * Returns a pointer to a menudata structure describing the menu that was * read. If no menu was read successfully, returns NULL. */ static menudata * getUserMenu() { menudata *userroot; char temp[MAXPATHLEN]; char *path; char *homeEnv; char homePath[MAXPATHLEN]; char *openwinhomeEnv; char openwinhomePath[MAXPATHLEN]; /* try reading $OLWMMENU */ path = getenv("OLWMMENU"); if (path != NULL && (userroot = makeRootMenu(path)) != NULL) return userroot; /* try searching for "openwin-menu" */ if ((userroot = makeRootMenu(menuFileName)) != NULL) return userroot; return NULL; } /* * createButton: allocate a new button structure, filled in based on the * parameters, and return it. */ static Button * createButton(label0, label1, helpstr0, helpstr1, which, has_submenu, enabled, visible, callback, action) Text *label0; Text *label1; char *helpstr0; char *helpstr1; int which; Bool has_submenu; Bool enabled; Bool visible; FuncPtr callback; void *action; { Button *b = (Button *) MemNew(Button); b->label[0] = label0; b->label[1] = label1; b->helpstring[0] = helpstr0; b->helpstring[1] = helpstr1; b->which = which; b->has_submenu = has_submenu; b->enabled = enabled; b->visible = visible; b->callback = callback; b->action.other = action; return b; } /* * createSimpleButton: create a simple button, with no alternate label, * with no submenu, always enabled and visible. */ static Button * createSimpleButton(label, helpstr, callback, action) Text *label; char *helpstr; FuncPtr callback; void *action; { return createButton(label, NULL, helpstr, NULL, 0, False, True, True, callback, action); } /* * createSeparatorButton: create and return a menu separator "button". */ static Button * createSeparatorButton() { return createButton(NULL, NULL, NULL, NULL, 0, False, False, True, NULL, NULL); } /* * getBuiltinMenu * * Create the built-in default menu. This menu is used only if no menu file * can be found. It is intended to have a very minimal set of buttons. * * N.B. All of the constant strings in this function must be copied into * dynamically allocated storage, e.g. with GetNewText() or MemNewString(). * This is because these string pointers are put directly into the menu * structure, which is assumed to be entirely on the heap. * * N.B. If you add a new button to the built-in menu, you *must* change the * NBUTTONS macro to reflect the new number of buttons. We would prefer to * use a static, initialized array of strings (letting the compiler determine * the size), but the string extraction routines require that the argument to * gettext() be a string constant, not the address of a string. This forces * us to code the string constants in-line, thus requiring us to use an * atrocity like NBUTTONS. */ #define NBUTTONS 9 /* number of buttons in the built-in menu */ static Menu * getBuiltinMenu() { Button **buttons; int b; buttons = (Button **) MemAlloc(NBUTTONS * sizeof(Button *)); b = 0; buttons[b++] = createSimpleButton(GetNewText("Command Tool..."), NULL, AppMenuFunc, MemNewString("cmdtool")); buttons[b++] = createSimpleButton(GetNewText("xterm..."), NULL, AppMenuFunc, MemNewString("xterm")); buttons[b++] = createSeparatorButton(); buttons[b++] = createSimpleButton(GetNewText("Refresh"), NULL, RefreshFunc, NULL); buttons[b++] = createSimpleButton(GetNewText("Restart WM"), NULL, RestartOLWM, NULL); buttons[b++] = createSimpleButton(GetNewText("Reread Menu File"), NULL, ReReadUserMenuFunc, NULL); buttons[b++] = createSeparatorButton(); buttons[b++] = createSimpleButton(GetNewText("Exit WM"), NULL, ExitOLWM, NULL); buttons[b++] = createSimpleButton(GetNewText("Exit..."), NULL, ExitFunc, NULL); assert(b == NBUTTONS); return CreateMenu(GetNewText(DEFAULT_WORKSPACE_TITLE), buttons, NBUTTONS, True, MemNewString(DEFAULT_WORKSPACE_HELPSTR)); } /* * InitUserMenu * * Attempt to load a menu from the filesystem. If no menu file can be found, * create a built-in menu and use it instead. */ void InitUserMenu(dpy) Display *dpy; { menudata *userroot; static Bool internalMenuTestMode = False; menuFileInfo.fileinfoList = NULL; menuFileInfo.topfilename = NULL; if (internalMenuTestMode) userroot = NULL; else userroot = getUserMenu(); if (userroot == NULL) { MenuTable[MENU_ROOT] = getBuiltinMenu(); } else { /* we read a menu from a file; now build it */ MenuTable[MENU_ROOT] = buildFromSpec(dpy, userroot, userroot->title); } } /* * ReInitUserMenu * * Rereads the user menu if it has changed. If the menu file has been * modified since last looked at or if forceReRead is True, attempt to create * a new menu from the file. If the new file is ok and a menu is created then * use it, otherwise use the built-in workspace menu. * * REMIND - 1065563 - this shouldn't throw away the existing menu if the * rereading attempt failed. */ void ReInitUserMenu(dpy, forceReRead) Display *dpy; Bool forceReRead; { menudata *userroot; if (forceReRead || menuFileModified()) { freeFileInfoList(&menuFileInfo.fileinfoList); DestroyPinnedMenuClients(); DestroyScreenUserMenuInfo(dpy); if (menuFileInfo.topfilename != NULL) freeUserMenu(MenuTable[MENU_ROOT]); else if (MenuTable[MENU_ROOT] != NULL) { /* default menu, most of it is just static data */ MemFree(MenuTable[MENU_ROOT]->buttons); MemFree(MenuTable[MENU_ROOT]); } MenuTable[MENU_ROOT] = NULL; if (! forceReRead && menuFileInfo.topfilename != NULL) { userroot = makeRootMenu(menuFileInfo.topfilename); } else { MemFree(menuFileInfo.topfilename); menuFileInfo.topfilename = NULL; userroot = getUserMenu(); } if (userroot == NULL) MenuTable[MENU_ROOT] = getBuiltinMenu(); else MenuTable[MENU_ROOT] = buildFromSpec(dpy, userroot, userroot->title); CreateScreenUserMenuInfo(dpy); } } /* * RootMenuShow - makes sure the user root menu is up to date and * then calls MenuShow on the root menu to bring it up on the display. */ void RootMenuShow(dpy, winInfo, pEvent) Display *dpy; WinGeneric *winInfo; XEvent *pEvent; { ReInitUserMenu(dpy, False); MenuShowSync(dpy, winInfo, MenuTable[MENU_ROOT], pEvent, NULL, NULL, False, False); } /* * ReInitAllMenus * * Re-initialize all menus. */ void ReInitAllMenus(dpy) Display *dpy; { WindowMenuDestroy(dpy); WindowMenuCreate(dpy); ReInitUserMenu(dpy, True); } /* ***************************************************************************** * Local routines ***************************************************************************** */ /* * expandPath * * Expands any environment variables in a path. Returns a dynamically * allocated string with the expanded path. * * Actually, this will also expand things of the nature: * $(OPENWINHOME)/include:${MUBMEL}/include:$FOOBLES/include */ static char * expandPath(pin, messages) char *pin; Bool messages; { char pathname[MAXPATHLEN]; int haveslash; char envbuff[MAXPATHLEN]; char *pend; char *penv; char *pstart; char *p; int len; struct passwd *ppw; char c; char *orig; if (pin == NULL) return NULL; orig = pin; *pathname = NULL; len = strlen(pin); if (pin[len] == '/') --len; haveslash = False; for (p = pathname; len > 0;) { switch (*pin) { case '~': /*overrides everything back to last :*/ ++pin; --len; if (len <= 1 || *pin == '/') { penv = getenv("HOME"); } else { int tmp; pend = strchr(pin, '/'); if (pend == NULL) { pend = strchr(pin, ':'); if (pend == NULL) pend = pin + strlen(pin); } tmp = pend - pin; memcpy(envbuff, pin, tmp); envbuff[tmp] = NULL; pin = pend; len -= tmp; ppw = getpwnam(envbuff); if (ppw == NULL && messages) fprintf(stderr, GetString("olwm: couldn't find user \"%s\" in \"%s\"\n"), envbuff, orig); penv = (char *) (ppw? ppw->pw_dir : NULL); } if (penv) { for (pstart = p; pstart > pathname; pstart--) if (*pstart == ':') { ++pstart; break; } strcpy(pstart, penv); p = pstart + strlen(penv); } haveslash = False; continue; case '$': if ((c = *(pin+1)) == '(' || c == '{') { int tmp; pin += 2; pend = strpbrk(pin, "})"); if (pend == NULL) { if (messages) fprintf(stderr, GetString("olwm: no match for '%c' in pathname \"%s\"\n"), c, orig); return NULL; } else { if (*pend == '}' && c != '{') { if (messages) fprintf(stderr, GetString("olwm: found a '}' before a ')' in \"%s\"\n"), orig); return NULL; } else if (*pend == ')' && c != '(') { if (messages) fprintf(stderr, GetString("olwm: found a ')' before a '}' in \"%s\"\n"), orig); return NULL; } } tmp = pend - pin; memcpy(envbuff, pin, tmp); envbuff[tmp] = NULL; len -= (2 + tmp + 1); pin = pend+1; } else { --len; pend = strchr(++pin, '/'); if (pend) { int tmp = pend - pin; memcpy(envbuff, pin, tmp); envbuff[tmp] = NULL; len -= tmp; pin = pend; } else { memcpy(envbuff, pin, len); envbuff[len] = NULL; len = 0; } } penv = getenv(envbuff); #ifdef OPENWINHOME_DEFAULT if (!penv && !strcmp(envbuff, "OPENWINHOME")) { penv = OPENWINHOME_DEFAULT; } #endif if (penv) { int tmp = strlen(penv); if (haveslash && *penv == '/') { /*if he put /usr//home, turn it into /home*/ /*/mumble:/usr//home -> /mumble:/home*/ for (; p > pathname; p--) if (*p == ':') { ++p; break; } } memcpy(p, penv, tmp); p += tmp; haveslash = len > 0 && *(p-1) == '/'; } if (len <= 0) break; /*FALL THROUGH*/ default: if (*pin != '/') haveslash = False; else { if (!haveslash) haveslash = True; else { ++pin; --len; continue; } } *p++ = *pin++; --len; } } *p = NULL; if (haveslash) pathname[strlen(pathname)-1] = NULL; return MemNewString(pathname); } /* * Menu Search Path */ #define NUM_SEARCH_PATH 7 static char **menuSearchPath; /* * makeMenuSearchPath */ static char ** makeMenuSearchPath() { char buf[MAXPATHLEN]; char *home; char *owHome; int i = 0; if ((home = getenv("HOME")) == NULL) home = "."; if ((owHome = getenv("OPENWINHOME")) == NULL) #ifdef OPENWINHOME_DEFAULT /* martin-2.buck@student.uni-ulm.de */ owHome = OPENWINHOME_DEFAULT; #else owHome = "/usr/openwin"; #endif menuSearchPath = (char **)MemAlloc(NUM_SEARCH_PATH*sizeof(char *)); #ifdef OW_I18N_L3 /* $HOME/.. */ sprintf(buf, "%s/.%%1$s.%%2$s", home); menuSearchPath[i++] = MemNewString(buf); #endif /* $HOME/. */ sprintf(buf, "%s/.%%s", home); menuSearchPath[i++] = MemNewString(buf); #ifdef OW_I18N_L3 /* $OPENWINHOME/share/locale//olwm/ */ sprintf(buf, "%s/share/locale/%%2$s/olwm/%%1$s", owHome); menuSearchPath[i++] = MemNewString(buf); /* $OPENWINHOME/lib/. */ sprintf(buf, "%s/lib/%%1$s.%%2$s", owHome); menuSearchPath[i++] = MemNewString(buf); #endif /* $OPENWINHOME/lib/ */ sprintf(buf, "%s/lib/%%s", owHome); menuSearchPath[i++] = MemNewString(buf); /* /usr/openwin/lib/ */ menuSearchPath[i++] = MemNewString("/usr/openwin/lib/%s"); menuSearchPath[i] = (char *)NULL; return menuSearchPath; } /* * menuFromFileSearch */ static int #if defined(__STDC__) menuFromFileSearch( char *file, menudata *menu, Bool messages) #else menuFromFileSearch(file, menu, messages) char *file; menudata *menu; Bool messages; #endif /* __STDC__ */ { char **pFmt; char fullPath[MAXPATHLEN]; char *locale = GRV.lc_dlang.locale; int rval; if (file[0] == '/') return menuFromFile(file, menu, messages); if (menuSearchPath == NULL) makeMenuSearchPath(); for (pFmt = menuSearchPath; *pFmt; pFmt++) { (void)sprintf(fullPath, *pFmt, file, locale); #ifdef DEBUG fprintf(stderr,"menuFromFileSearch: trying '%s'\n",fullPath); #endif if (access(fullPath, R_OK) == 0) { rval = menuFromFile(fullPath, menu, messages); if (rval >= MENU_OK) return rval; } } return MENU_NOTFOUND; } /* * menuFromFile - read a menu description from a file * * Return values: same as parseMenu, with the addition of * MENU_NOTFOUND = couldn't read submenu file */ static int menuFromFile(file, menu, messages) char *file; menudata *menu; Bool messages; { char *new; FILE *stream; int lineno = 1; /* Needed for recursion */ int rval; if (++menuRecursionCount > 25) { fprintf(stderr,GetString("olwm: maximum menu filedepth exceeded\n")); menuRecursionCount = 0; return MENU_RECURSION; } /* expand any environment vars in path */ if ((new = expandPath(file, messages)) != NULL) file = new; if (file[0] != '/') return menuFromFileSearch(file, menu, messages); if ((stream = fopen(file, "r")) == NULL) { if (messages) fprintf(stderr, GetString("olwm: can't open menu file %s\n"), file); rval = MENU_NOTFOUND; goto end; } rval = parseMenu(file, stream, menu, &lineno); fclose(stream); if (rval >= MENU_OK) { addToMenuInfo(file); fillMenuStruct(menu); } end: if (new) MemFree(new); return (rval); } /* * makeRootMenu - attempts to create a root menu from a given file. * Returns NULL on failure, and assumes that the caller will free * returned menudata. */ static menudata * makeRootMenu(file) char *file; { menudata *userroot; initMenu(&userroot); userroot->pinnable = True; menuRecursionCount = 0; if (menuFromFileSearch(file, userroot, False) >= MENU_OK) { if (!menuFileInfo.topfilename) menuFileInfo.topfilename = MemNewString(file); return userroot; } else { freeMenuData(userroot); freeFileInfoList(&menuFileInfo.fileinfoList); return (menudata *) NULL; } } /* * parseMenu -- read the user menu from the given stream and * parse the stream into the menu structures defined locally. * These structures (which are local to this module) are later * used to build real menu structures. * * Note that fillMenuStruct() needs to be called after parseMenu() * is called (to finish filling out the menudata structure). * If parseMenu() returns < 0, then freeMenuData() needs to be * called instead, to free up unused memory. * * Return values: * MENU_OK = an unpinnable menu was read successfully * MENU_PINNABLE = a pinnable menu was read successfully * MENU_FATAL = a fatal error was encountered * * This is based heavily on buildmenu's getmenu() parsing routine. * */ static int parseMenu(filename, stream, parent, lineno) char *filename; FILE *stream; menudata *parent; int *lineno; { menudata *currentMenu, *saveMenu; buttondata *currentButton; char line[TOKLEN]; char label[TOKLEN]; char prog[TOKLEN]; char args[TOKLEN]; static char localBuf[1024]; char *nqformat = "%[^ \t\n]%*[ \t]%[^ \t\n]%*[ \t]%[^\n]\n"; char *qformat = "\"%[^\"]\"%*[ \t]%[^ \t\n]%*[ \t]%[^\n]\n"; char *format; register char *p; int continuation; Bool done; currentMenu = parent; initButton((buttondata **) & (currentMenu->bfirst)); currentButton = currentMenu->bfirst; continuation = 0; for (; fgets(line, sizeof(line), stream); (*lineno)++) { if (line[0] == '#') continue; for (p = line; isspace(*p); p++) /* EMPTY */ ; if (*p == '\0') continue; /* * if we're already on a continuation line (the previous line ended in * '\') then just copy the input through to the output until we get a * line that doesn't end in '\' (nuke the vi backslash). */ if (continuation) { /* fgets includes the newline in the string read */ while (line[strlen(line) - 2] == '\\') { /* get rid of backslash */ line[strlen(line) - 2] = '\0'; APPEND_STRING(localBuf, " "); APPEND_STRING(localBuf, p); if (!fgets(line, sizeof(line), stream)) break; (*lineno)++; for (p = line; isspace(*p); p++) /* EMPTY */ ; } /* last line of continuation - replace \n with \0 */ line[strlen(line) - 1] = '\0'; APPEND_STRING(localBuf, " "); APPEND_STRING(localBuf, p); /* save it permanently in the buttondata structure */ currentButton->exec = MemNewString(localBuf); localBuf[0] = '\0'; continuation = 0; initButton((buttondata **) & (currentButton->next)); currentButton = currentButton->next; continue; } /* * if the line ends in '\' remember that continuation has started. */ if (line[strlen(line) - 2] == '\\') { continuation = 1; line[strlen(line) - 2] = '\0'; } args[0] = '\0'; format = (*p == '"') ? qformat : nqformat; if (sscanf(p, format, label, prog, args) < 2) { /* seperator keyword appears alone on a line */ if (strcmp(label, "SEPARATOR") == 0) { currentButton->name = NULL; currentButton->isDefault = False; currentButton->func = NULL; currentButton->exec = NULL; currentButton->submenu = NULL; initButton((buttondata **) & (currentButton->next)); currentButton = currentButton->next; continue; } /*otherwise...*/ fprintf(stderr, GetString("olwm: syntax error in menu file %s, line %d\n"), filename, *lineno); return (MENU_FATAL); } if (strcmp(prog, "END") == 0) { /* currently allocated button is last for this menu */ currentButton->isLast = True; if (currentMenu->menulabel != NULL && strcmp(label, currentMenu->menulabel) != 0) { fprintf(stderr, GetString("olwm: menu label mismatch in file %s, line %d\n"), filename, *lineno); return (MENU_FATAL); } /* compare PIN as # chars; args may have extra space */ if (strncmp(args, "PIN", 3) == 0) return (MENU_PINNABLE); else return (MENU_OK); } if (strcmp(prog, "TITLE") == 0) { currentMenu->title = MemNewString(label); if (strncmp(args, "PIN", 3) == 0) currentMenu->pinnable = True; /* * we don't need to set up the next button, since the TITLE line * didn't use up a button */ continue; } currentButton->name = MemNewString(label); if (strcmp(prog, "DEFAULT") == 0) { char *t; char *u; currentButton->isDefault = True; /* * Pull the first token from args into prog. */ t = strtok(args, " \t"); if (t == NULL) { fprintf(stderr, GetString("olwm: error in menu file %s, line %d\n"), filename, *lineno); /* STRING_EXTRACTION - Since DEFAULT is keyword, do not * translate. */ fputs(GetString("missing item after DEFAULT keyword.\n"), stderr); return (MENU_FATAL); } strcpy(prog, t); t = strtok(NULL, ""); /* get remainder of args */ if (t == NULL) args[0] = '\0'; else { u = args; /* can't use strcpy because they overlap */ while (*u++ = *t++) /* EMPTY */ ; } } if (strcmp(prog, "INCLUDE") == 0) { int rval; initMenu((menudata **) & (currentButton->submenu)); saveMenu = currentMenu; currentMenu = (menudata *) currentButton->submenu; currentMenu->menulabel = MemNewString(label); if (args != NULL) { rval = menuFromFile(args, currentMenu, False); switch (rval) { case MENU_PINNABLE: currentMenu->pinnable = True; /* FALL THRU */ case MENU_OK: currentMenu = saveMenu; break; default: /* bad menu file */ initMenu((menudata **) & (currentButton->submenu)); break; } } } if (strcmp(prog, "MENU") == 0) { int rval; initMenu((menudata **) & (currentButton->submenu)); saveMenu = currentMenu; currentMenu = (menudata *) currentButton->submenu; currentMenu->menulabel = MemNewString(label); if (args[0] == '\0') { /* * we haven't incremented lineno for this read loop yet, so we * need to do it now. when END is read, parseMenu returns * without incrementing lineno, so the count will be ok when * this loop increments it before reading the next line of the * file. */ (*lineno)++; if ((rval = parseMenu(filename, stream, currentMenu, lineno)) < 0) { return (MENU_FATAL); } else fillMenuStruct(currentMenu); } else { rval = menuFromFile(args, currentMenu, True); if (rval <= MENU_NOTFOUND) { return (MENU_FATAL); } } if (rval == MENU_PINNABLE) currentMenu->pinnable = True; currentMenu = saveMenu; /* if submenu not found, reuse button */ if (rval != MENU_NOTFOUND) { initButton((buttondata **) & (currentButton->next)); currentButton = currentButton->next; } continue; } done = False; while (!done) { switch (lookupToken(prog, &(currentButton->func))) { case UsrToken: /* * if UsrToken, that means that "prog" was just the first word * of the command to be executed, */ strcpy(localBuf, prog); APPEND_STRING(localBuf, " "); APPEND_STRING(localBuf, args); /* * copy current contents of localBuf back into args array so * that PshToken code can be used */ strcpy(args, localBuf); localBuf[0] = '\0'; /* fall through */ case PshToken: if (continuation) strcpy(localBuf, args); else currentButton->exec = MemNewString(args); done = True; break; case PinToken: fprintf(stderr, GetString("olwm: format error in menu file %s, line %d\n"), filename, *lineno); /* STRING_EXTRACTION - Do not translate END or PIN since they * are keywords in the menu file format */ fputs( GetString("menu title and END required before PIN keyword.\n"), stderr); return (MENU_FATAL); /* NOTREACHED */ break; default: /* some other valid token found and returned */ done = True; break; } } if (!continuation) { initButton((buttondata **) & (currentButton->next)); currentButton = currentButton->next; } } /* never used the last button created */ currentButton->isLast = True; return (MENU_OK); } /* * fillMenuStruct - Once the menu structures have been filled out using * information in the menu description file (via parseMenu()), the * nbuttons and idefault elements need to be set. */ static void fillMenuStruct(mptr) menudata *mptr; { buttondata *bptr; int buttonIndex = 0; bptr = mptr->bfirst; if (bptr->isLast == True) { MemFree(bptr); bptr = mptr->bfirst = NULL; } for (; bptr != NULL && bptr->isLast == False; bptr = bptr->next) { if (bptr->isDefault == True) mptr->idefault = buttonIndex; if ((bptr->next)->isLast == True) { MemFree(bptr->next); bptr->next = NULL; } buttonIndex++; } /* buttonIndex is one past end, but started at 0, so = number buttons */ mptr->nbuttons = buttonIndex; } /* * Array of allowed menu keywords (tokens). */ struct _svctoken { char *token; FuncPtr func; TokenType toktype; } svctokenlookup[] = { { "REFRESH", RefreshFunc, ServiceToken }, { "CLIPBOARD", ClipboardFunc, ServiceToken }, { "PRINT_SCREEN", PrintScreenFunc, ServiceToken }, { "EXIT", ExitFunc, ServiceToken }, { "EXIT_NO_CONFIRM", ExitNoConfirmFunc, ServiceToken }, { "WMEXIT", ExitOLWM, ServiceToken }, { "PROPERTIES", PropertiesFunc, ServiceToken }, { "NOP", NopFunc, ServiceToken }, { "DEFAULT", NULL, DefaultToken }, { "MENU", NULL, MenuToken }, { "END", NULL, EndToken }, { "PIN", NULL, PinToken }, { "TITLE", NULL, TitleToken }, { "FLIPDRAG", FlipDragFunc, ServiceToken }, { "SAVE_WORKSPACE", SaveWorkspaceFunc, ServiceToken }, { "POSTSCRIPT", PshFunc, PshToken }, { "RESTART", RestartOLWM, ServiceToken }, { "FLIPFOCUS", FlipFocusFunc, ServiceToken }, { "REREAD_MENU_FILE", ReReadUserMenuFunc, ServiceToken }, { "OPEN_CLOSE_SELN", OpenCloseSelnFunc, ServiceToken }, { "FULL_RESTORE_SIZE_SELN", FullRestoreSizeSelnFunc, ServiceToken }, { "BACK_SELN", BackSelnFunc, ServiceToken }, { "QUIT_SELN", QuitSelnFunc, ServiceToken }, { "START_DSDM", StartDSDMFunc, ServiceToken }, { "STOP_DSDM", StopDSDMFunc, ServiceToken } }; #define NSERVICES COUNT(svctokenlookup) /* * lookupToken * * Look up a token in the list of tokens given a supposed keyword or service * name. If the name doesn't match any existing token, return the * user-defined token. */ static TokenType lookupToken(nm, ppf) char *nm; FuncPtr *ppf; { int ii; for (ii = 0; ii < NSERVICES; ii++) { if (strcmp(nm, svctokenlookup[ii].token) == 0) { if (ppf != (FuncPtr *) 0) *ppf = svctokenlookup[ii].func; return svctokenlookup[ii].toktype; } } if (ppf != (FuncPtr *) 0) *ppf = AppMenuFunc; return UsrToken; } /* * buildFromSpec * * Build the real menu structures, and create the associated menus, from the * specifications parsed from the menu layout. Free up the specifications as * we go along. */ static Menu * buildFromSpec(dpy, pmenu, deftitle) Display *dpy; menudata *pmenu; char *deftitle; { Menu *m; Button *b; int ii; buttondata *bdata, *bsave; Bool flpin; char *tit; char *menuHelp; char helpbuff[255]; if (pmenu->pinnable) { flpin = True; if (pmenu->title == NULL) { if (deftitle == NULL) { tit = MemNewString(GetString(DEFAULT_WORKSPACE_TITLE)); } else { tit = MemNewString(deftitle); } } else { tit = MemNewString(pmenu->title); } } else { flpin = False; /* * Non-pinnable menus only get titles if they ask for them. * m->title must be NULL if pmenu->title is NULL. */ if (pmenu->title == NULL) tit = NULL; else tit = MemNewString(pmenu->title); } menuHelp = NULL; if (tit != NULL) { sprintf(helpbuff, "%s:%s", workspaceHelpStub, tit); menuHelp = MemNewString(helpbuff); } if (menuHelp == NULL && deftitle != NULL) { sprintf(helpbuff, "%s:%s", workspaceHelpStub, deftitle); menuHelp = MemNewString(helpbuff); } if (menuHelp != NULL) ReplaceChars(menuHelp, " \t", '_'); #ifdef OW_I18N_L4 if (tit == NULL) { m = NewNamedMenu(NULL, flpin, menuHelp); } else { wchar_t *wtit = mbstowcsdup(tit); MemFree(tit); m = NewNamedMenu(wtit, flpin, menuHelp); } #else m = NewNamedMenu(tit, flpin, menuHelp); #endif /* * If no default has been specified, set the first button in the menu to be * the default button. REMIND: The OL spec wants the pin, if one exists, to * be the default in such a cse. Fix this. */ for (ii = 0, bdata = pmenu->bfirst; ii < pmenu->nbuttons; ii++) { b = (Button *) MemNew(Button); /*right now, usermenus cannot have alternate items*/ #ifdef OW_I18N_L4 b->label[0] = mbstowcsdup(bdata->name); #else b->label[0] = bdata->name; #endif b->label[1] = NULL; b->which = 0; b->has_submenu = (bdata->submenu != NULL); b->enabled = (bdata->name != NULL); b->visible = True; b->callback = bdata->func; if (! b->has_submenu) { /* multi-purpose */ b->action.command = bdata->exec; } else { b->action.submenu = buildFromSpec(dpy, (menudata *) bdata->submenu, bdata->name); if (b->action.submenu->buttonCount < 1) b->enabled = False; } bsave = bdata; bdata = bdata->next; MemFree(bsave); AppendMenuItem(m, b); } if (pmenu->idefault == NOBUTTON) SetMenuDefault(m, firstEnabledItem(m)); else SetMenuDefault(m, pmenu->idefault); MemFree(pmenu->menulabel); MemFree(pmenu); return (m); } /* * initMenu - create and return an initialized menudata structure. */ static void initMenu(newmenu) menudata **newmenu; { *newmenu = MemNew(menudata); (*newmenu)->title = NULL; (*newmenu)->menulabel = NULL; (*newmenu)->idefault = NOBUTTON; (*newmenu)->nbuttons = 0; (*newmenu)->pinnable = False; (*newmenu)->bfirst = (buttondata *) 0; } /* * initButton - create and return an initialized buttondata structure. */ static void initButton(newButton) buttondata **newButton; { *newButton = MemNew(buttondata); (*newButton)->next = NULL; (*newButton)->name = NULL; (*newButton)->isDefault = False; (*newButton)->isLast = False; (*newButton)->func = (FuncPtr) 0; (*newButton)->exec = NULL; (*newButton)->submenu = NULL; } /* * freeMenuData - free a menudata structure and any memory referenced by it. */ static void freeMenuData(unusedMenu) menudata *unusedMenu; { buttondata *unusedButton; /* isLast probably isn't set, since this menu had an error */ if ((unusedButton = unusedMenu->bfirst) != (buttondata *) 0) freeButtonData(unusedButton); MemFree(unusedMenu->title); MemFree(unusedMenu->menulabel); MemFree(unusedMenu); } /* * freeButtonData - free a buttondata structure and any memory referenced by * it. */ static void freeButtonData(unusedButton) buttondata *unusedButton; { if (unusedButton->next != NULL) freeButtonData(unusedButton->next); MemFree(unusedButton->name); MemFree(unusedButton->exec); if (unusedButton->submenu != NULL) freeMenuData(unusedButton->submenu); MemFree(unusedButton); } /* * freeUserMenu - recursively frees a Menu structure and all of its buttons. */ static void freeUserMenu(menu) Menu *menu; { int i; if (menu == NULL) return; for (i = 0; i < menu->buttonCount; i++) { /* free the submenu or the command string */ if (menu->buttons[i]->has_submenu) freeUserMenu(menu->buttons[i]->action.submenu); else MemFree(menu->buttons[i]->action.command); /* * REMIND: user menus cannot yet have alternates, * nor specify help on a per item basis. */ MemFree(menu->buttons[i]->label[0]); MemFree(menu->buttons[i]); } MemFree(menu->buttons); MemFree(menu->title); MemFree(menu->helpstring); MemFree(menu); } /* * menuFileModified * * Check to see if any of the menu files have been changed. Modifed is * defined as any change in either the inode or modification time of the file. * A change in the device/inode indicates a change in a symbolic link while a * change in the modification time indicates that the file has be edited. * Only true if the AutoReReadMenuFile resource is also true. */ static Bool menuFileModified() { FileInfo *fi; List *lp; struct stat statbuf; if (!GRV.AutoReReadMenuFile) return False; lp = menuFileInfo.fileinfoList; for (fi = ListEnum(&lp); fi != NULL; fi = ListEnum(&lp)) { if (stat(fi->filename, &statbuf) < 0) { return False; } if (statbuf.st_mtime != fi->mtime || statbuf.st_dev != fi->device || statbuf.st_ino != fi->inode) { return True; } } return False; } /* * addToMenuInfo - Adds file and its stat info onto the list of FileInfo * in menuFileInfo. */ static void addToMenuInfo(file) char *file; { FileInfo *fi; struct stat statbuf; if (stat(file, &statbuf) < 0) { return; } fi = MemNew(FileInfo); fi->filename = MemNewString(file); fi->device = statbuf.st_dev; fi->inode = statbuf.st_ino; fi->mtime = statbuf.st_mtime; menuFileInfo.fileinfoList = ListCons(fi, menuFileInfo.fileinfoList); } /* * freeFileInfoList - frees all the FileInfo structs in a list and frees the * list itself. */ static void freeFileInfoList(plist) List **plist; { FileInfo *fi; List *lp; List *list = *plist; if (!list) return; lp = list; for (fi = ListEnum(&lp); fi != NULL; fi = ListEnum(&lp)) { MemFree(fi->filename); MemFree(fi); } ListDestroy(list); *plist = NULL; } /* ***************************************************************************** */ /* * Table of menus */ Menu *MenuTable[NUM_MENUS]; /* * Frame/icon menu action procs */ extern int WindowOpenCloseAction(), WindowFullRestoreSizeAction(); extern int WindowMoveAction(), WindowResizeAction(); extern int WindowPropsAction(), WindowBackAction(), WindowRefreshAction(); extern int WindowQuitAction(), WindowDismissThisAction(); extern int WindowDismissAllAction(), WindowFlashOwnerAction(); /* * Title and help strings */ static Text *windowTitle; static char *windowMenuHelpString = "window:WindowMenu"; /* * Buttons used to build the frame and icon menus * REMIND: right now, toggles always use the same actions! */ #ifdef __STDC__ static Button openButton = { { NULL, NULL }, { "window:Open", "window:Close" }, 0, False, True, True, WindowOpenCloseAction, { NULL }, ACTION_OPEN_CLOSE, }; static Button fullSizeButton = { { NULL, NULL }, { "window:FullSize", "window:RestoreSize" }, 0, False, True, True, WindowFullRestoreSizeAction, { NULL }, ACTION_FULL_RESTORE, }; static Button moveButton = { { NULL, NULL }, { "window:Move", NULL }, 0, False, True, True, WindowMoveAction, { NULL }, ACTION_MOVE, }; static Button resizeButton = { { NULL, NULL }, { "window:Resize", NULL }, 0, False, True, True, WindowResizeAction, { NULL }, ACTION_RESIZE, }; static Button propertiesButton = { { NULL, NULL }, { "window:Properties", NULL }, 0, False, False, True, WindowPropsAction, { NULL }, ACTION_PROPS, }; static Button backButton = { { NULL, NULL }, { "window:Back", NULL }, 0, False, True, True, WindowBackAction, { NULL }, ACTION_BACK, }; static Button refreshButton = { { NULL, NULL }, { "window:Refresh", NULL }, 0, False, True, True, WindowRefreshAction, { NULL }, ACTION_REFRESH, }; static Button quitButton = { { NULL, NULL }, { "window:Quit", NULL }, 0, False, True, True, WindowQuitAction, { NULL }, ACTION_QUIT, }; static Button dismissButton = { { NULL, NULL }, { "window:Dismiss", "window:Dismiss" }, /* REMIND "window:Cancel" ? */ 0, False, True, True, NULL, { NULL }, ACTION_NONE, }; static Button dismissThisButton = { { NULL, NULL }, { "window:DismissThis", NULL }, 0, False, True, True, WindowDismissThisAction, { NULL }, ACTION_OPEN_CLOSE, }; static Button dismissAllButton = { { NULL, NULL }, { "window:DismissAll", NULL }, 0, False, True, True, WindowDismissAllAction, { NULL }, ACTION_NONE, }; static Button ownerButton = { { NULL, NULL }, { "window:Owner", NULL }, 0, False, True, True, WindowFlashOwnerAction, { NULL }, ACTION_OWNER, }; #else static Button openButton; static Button fullSizeButton; static Button moveButton; static Button resizeButton; static Button propertiesButton; static Button backButton; static Button refreshButton; static Button quitButton; static Button dismissButton; static Button dismissThisButton; static Button dismissAllButton; static Button ownerButton; #endif /* __STDC__ */ /* * Actual frame/icon menus using shared buttons */ static Button *windowMenuFullButtons[] = { &openButton, &fullSizeButton, &moveButton, &resizeButton, &propertiesButton, &backButton, &refreshButton, &quitButton }; static Button *windowMenuDismissButtons[] = { &dismissThisButton, &dismissAllButton, }; static Button *windowMenuLimitedButtons[] = { &dismissButton, &moveButton, &resizeButton, &backButton, &refreshButton, &ownerButton, }; /*****************************************************************************/ void SetWindowMenuLabels() { if (windowTitle) FreeText(windowTitle); windowTitle = GetText("Window"); if (openButton.label[0]) FreeText(openButton.label[0]); openButton.label[0] = GetText("Open"); if (openButton.label[1]) FreeText(openButton.label[1]); openButton.label[1] = GetText("Close"); if (fullSizeButton.label[0]) FreeText(fullSizeButton.label[0]); fullSizeButton.label[0] = GetText("Full Size"); if (fullSizeButton.label[1]) FreeText(fullSizeButton.label[1]); fullSizeButton.label[1] = GetText("Restore Size"); if (moveButton.label[0]) FreeText(moveButton.label[0]); moveButton.label[0] = GetText("Move"); if (resizeButton.label[0]) FreeText(resizeButton.label[0]); resizeButton.label[0] = GetText("Resize"); if (propertiesButton.label[0]) FreeText(propertiesButton.label[0]); propertiesButton.label[0] = GetText("Properties"); if (backButton.label[0]) FreeText(backButton.label[0]); backButton.label[0] = GetText("Back"); if (refreshButton.label[0]) FreeText(refreshButton.label[0]); refreshButton.label[0] = GetText("Refresh"); if (quitButton.label[0]) FreeText(quitButton.label[0]); quitButton.label[0] = GetText("Quit"); if (dismissButton.label[0]) FreeText(dismissButton.label[0]); dismissButton.label[0] = GetText("Dismiss"); if (dismissButton.label[1]) FreeText(dismissButton.label[1]); dismissButton.label[1] = GetText("Cancel"); if (dismissAllButton.label[0]) FreeText(dismissAllButton.label[0]); dismissAllButton.label[0] = GetText("All Pop-ups"); if (dismissThisButton.label[0]) FreeText(dismissThisButton.label[0]); dismissThisButton.label[0] = GetText("This Window"); if (ownerButton.label[0]) FreeText(ownerButton.label[0]); ownerButton.label[0] = GetText("Owner?"); } SetWindowMenuTitle() { MenuTable[MENU_FULL]->title = windowTitle; MenuTable[MENU_LIMITED]->title = windowTitle; MenuTable[MENU_LIMITED]->buttons[0]->action.submenu->title = windowTitle; } #ifndef __STDC__ /* * InitButton -- initalizes button struct * This was added specifically for the MIT release, due to the fact * that initialization of union structures is not allowed by /bin/cc * on SunOS4.x. */ void InitButton(button, help1, help2, which, has_submenu, enabled, visible, callback, semantic) Button *button; char *help1; char *help2; int which; Bool has_submenu; Bool enabled; Bool visible; FuncPtr callback; SemanticAction semantic; { button->label[0] = NULL; button->label[1] = NULL; button->helpstring[0] = help1 ? strdup(help1) : (char *)NULL; button->helpstring[1] = help2 ? strdup(help2) : (char *)NULL; button->which = which; button->has_submenu = has_submenu; button->enabled = enabled; button->visible = visible; button->callback = callback; button->action.other = (void *)NULL; button->semantic = semantic; } /* * InitAllButtons-- initalizes all relevant button structs * This was added specifically for the MIT release, due to the fact * that initialization of union structures is not allowed by /bin/cc * on SunOS4.x. */ void InitAllButtons() { InitButton(&openButton, "window:Open", "window:Close", 0, False, True, True, WindowOpenCloseAction, ACTION_OPEN_CLOSE); InitButton(&fullSizeButton, "window:FullSize", "window:RestoreSize", 0, False, True, True, WindowFullRestoreSizeAction, ACTION_FULL_RESTORE); InitButton(&moveButton, "window:Move", NULL, 0, False, True, True, WindowMoveAction, ACTION_MOVE); InitButton(&resizeButton, "window:Resize", NULL, 0, False, True, True, WindowResizeAction, ACTION_RESIZE); InitButton(&propertiesButton, "window:Properties", NULL, 0, False, False, True, WindowPropsAction, ACTION_PROPS); InitButton(&backButton, "window:Back", NULL, 0, False, True, True, WindowBackAction, ACTION_BACK); InitButton(&refreshButton, "window:Refresh", NULL, 0, False, True, True, WindowRefreshAction, ACTION_REFRESH); InitButton(&quitButton, "window:Quit", NULL, 0, False, True, True, WindowQuitAction, ACTION_QUIT); InitButton(&dismissButton, "window:Dismiss", "window:Dismiss", 0, False, True, True, NULL, ACTION_NONE); InitButton(&dismissThisButton, "window:DismissThis", NULL, 0, False, True, True, WindowDismissThisAction, ACTION_OPEN_CLOSE); InitButton(&dismissAllButton, "window:DismissAll", NULL, 0, False, True, True, WindowDismissAllAction, ACTION_NONE); InitButton(&ownerButton, "window:Owner", NULL, 0, False, True, True, WindowFlashOwnerAction, ACTION_OWNER); } #endif /* __STDC__ */ /* * InitMenus -- Creates the built-in screen-independent menus */ void InitMenus(dpy) Display *dpy; { #ifndef __STDC__ static int init_all_buttons_done = False; /* * Initialize all buttons * This was added specifically for the MIT release to fix * a problem where union initializing was not allowed in * SunOS4.x using /bin/cc */ if (!init_all_buttons_done) { InitAllButtons(); init_all_buttons_done = True; } #endif /* __STDC__ */ SetWindowMenuLabels(); MenuTable[MENU_FULL] = CreateMenu(windowTitle, windowMenuFullButtons, COUNT(windowMenuFullButtons), False, windowMenuHelpString); MenuTable[MENU_LIMITED] = CreateMenu(windowTitle, windowMenuLimitedButtons, COUNT(windowMenuLimitedButtons), False, windowMenuHelpString); SetMenuHier(MenuTable[MENU_LIMITED], popup_dismissitem, CreateMenu(windowTitle, windowMenuDismissButtons, COUNT(windowMenuDismissButtons), False, windowMenuHelpString)); /* this sets ROOT_MENU */ InitUserMenu(dpy); } /* * CreateWindowMenuInfo * * Assumes that Destroy called before Create. * Assumes that the window menus will take up the first 6 slots */ int CreateWindowMenuInfo(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { int origNextSlot = scrInfo->menuCache->nextSlot; int j, x; scrInfo->menuCache->nextSlot = 0; (void) MenuInfoCreate(scrInfo->menuCache, scrInfo->rootwin, MenuTable[MENU_FULL], 1); (void) MenuInfoCreate(scrInfo->menuCache, scrInfo->rootwin, MenuTable[MENU_LIMITED], 1); scrInfo->menuCache->nextSlot = origNextSlot; } /*****************************************************************************/ /* * firstEnabledItem -- returns the index of the first button of a menu that is * both enabled and visible. */ static int firstEnabledItem(menu) Menu *menu; { int i; for (i = 0; i < menu->buttonCount; i++) if (menu->buttons[i]->enabled && menu->buttons[i]->visible) return i; if (menu->hasPushPin) return PINBUTTON; return NOBUTTON; /*can't do anything else...*/ } Menu * GetEnabledMenu(cli, flfull, flnotitle) Client *cli; Bool flfull; Bool flnotitle; { WMDecorations *decor = cli->wmDecors; Menu *menu; static Bool lastmouseless = True; Bool flmouseless = ! (GRV.Mouseless == KbdSunView || mouselessSuspended); Bool flicon = cli->wmState != NormalState; Bool flresizable = decor->flags & WMDecorationResizeable; Bool flcancel = decor->cancel; if (flmouseless != lastmouseless) { moveButton.visible = flmouseless; resizeButton.visible = flmouseless; DirtyMenu(MenuTable[MENU_FULL]); DirtyMenu(MenuTable[MENU_LIMITED]); lastmouseless = flmouseless; } switch (decor->menu_type) { case MENU_FULL: menu = MenuTable[MENU_FULL]; ToggleEnabled(menu, basewin_resizeitem, flresizable && ! flicon); ToggleEnabled(menu, basewin_zoomitem, flresizable); ToggleItem(menu, basewin_openitem, ! flicon); ToggleItem(menu, basewin_zoomitem, flfull); break; case MENU_LIMITED: menu = MenuTable[MENU_LIMITED]; ToggleEnabled(menu, popup_resizeitem, flresizable && ! flicon); ToggleItem(menu, popup_dismissitem, flcancel); break; default: menu = NULL; break; } if (menu) { if (cli->menuAccelerators != menu->wantAccelerators) { menu->wantAccelerators = cli->menuAccelerators; DirtyMenu(menu); } if (menu->buttons[decor->def_item]->visible) menu->buttonDefault = decor->def_item; else menu->buttonDefault = firstEnabledItem(menu); if (flnotitle) SetMenuTitle(menu, NULL); else SetMenuTitle(menu, windowTitle); } return menu; } struct _setdefinfo { WinGenericFrame *win; Menu *menu; void (*proc)(); void *data; #ifdef DEBUG Bool flinuse; #endif }; static void setFrameDefault(sdi) struct _setdefinfo *sdi; { sdi->win->core.client->wmDecors->def_item = sdi->menu->buttonDefault; if (sdi->proc) { (*sdi->proc)(SYNC_DONE, 0, sdi->data); SetClickCallback(NULL, NULL); } #ifdef DEBUG sdi->flinuse = False; #endif } static void doClickCallback(clickmode, sdi) MenuTrackMode clickmode; struct _setdefinfo *sdi; { (*sdi->proc)(SYNC_CHANGECLICK, clickmode, sdi->data); } /* * ShowStandardMenuSync * * Assemble a menu and show it from one of the base types. * If the menu came by hitting MENU on a button, pass flbutton. */ void ShowStandardMenuSync(win, eve, flbutton, proc, data) WinGenericFrame *win; XEvent *eve; Bool flbutton; void (*proc)(); void *data; { static struct _setdefinfo sdi; #ifdef DEBUG if (sdi.flinuse) fprintf(stderr, "showstandardmenusync: stranding defitem!\n"); sdi.flinuse = True; #endif sdi.menu = GetEnabledMenu(win->core.client, win->fcore.fullsize, flbutton); sdi.win = win; sdi.proc = proc; sdi.data = data; if (proc != NULL) { SetClickCallback(doClickCallback, &sdi); } MenuShowSync(win->core.client->dpy, win, sdi.menu, eve, setFrameDefault, &sdi, (eve->type == KeyPress) || (eve->type == KeyRelease), flbutton); } /* * ShowStandardMenu * * Convenience function for showing a standard menu when no sync function is * required. */ void ShowStandardMenu(win, eve, flbutton) WinGenericFrame *win; XEvent *eve; Bool flbutton; { ShowStandardMenuSync(win, eve, flbutton, NULL, NULL); } xview-3.2p1.4/clients/olwm/usleep.c100644 1750 1750 3471 5413747437 14525 0ustar mbmb#ident "@(#)usleep.c 26.12 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ /* * usleep() compatibility function * * Under System V, implements usleep() using the interval timer. Otherwise, * simply calls the library's usleep(). To use this implementation instead of * the library's, you must define SYSV. If you want to this implementation * to use BSD-style signals, you must define SYS *and* USE_BSD_SIGNALS, even * if you're not on System V. */ #include #include #include void olwm_do_nothing() { } int olwm_usleep(usec) unsigned int usec; { #ifdef SYSV struct itimerval new, old; #ifdef USE_BSD_SIGNALS struct sigvec new_vec, old_vec; int old_mask; #else struct sigaction new_vec, old_vec; #endif if (usec == 0) return 0; new.it_interval.tv_sec = 0; new.it_interval.tv_usec = 0; /* We only want one tick */ new.it_value.tv_sec = usec / 1000000; new.it_value.tv_usec = usec % 1000000; #ifdef USE_BSD_SIGNALS new_vec.sv_handler = olwm_do_nothing; new_vec.sv_mask= 0; new_vec.sv_flags = 0; old_mask = sigblock(sigmask(SIGALRM)); sigvec(SIGALRM, &new_vec, &old_vec); #else new_vec.sa_handler = olwm_do_nothing; sigemptyset(&new_vec.sa_mask); new_vec.sa_flags = 0; sighold(SIGALRM); sigaction(SIGALRM, &new_vec, &old_vec); #endif setitimer(ITIMER_REAL, &new, &old); #ifdef USE_BSD_SIGNALS sigpause(0); sigvec(SIGALRM, &old_vec, (struct sigvec *)0); sigsetmask(old_mask); #else sigpause(SIGALRM); sigaction(SIGALRM, &old_vec, (struct sigaction *)0); sigrelse(SIGALRM); #endif setitimer(ITIMER_REAL, &old, (struct itimerval *)0); return 0; #else SYSV return usleep(usec); #endif /* SYSV */ } xview-3.2p1.4/clients/olwm/wcstocts.c100644 1750 1750 14674 5413747440 15122 0ustar mbmb#ident "@(#)wcstocts.c 1.3 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #include #include #include #include "charset.h" static int makeGL(), makeGR(); #define RESET (-1) /* wcstocts() converts a wide character string to the corresponding * Compound Text string. * The function currenly supports only the japanese locale. * The Comound Text allows two kinds of mapping of JIS X0208, GR and GL. * This function uses the GR mapping. */ int wcstocts(cts, wcs, ncts) char cts[]; wchar_t *wcs; int ncts; { wchar_t wc; register wchar_t *pwc = wcs; register char *pcts = cts; register int n = ncts; register int i; int j; makeGL(RESET, 0, 0); /* Reset the internal state of makeGL()... */ makeGR(RESET, 0, 0); /* ... and makeGR(). */ while (wc = *pwc++) switch(wcsetno(wc)) { case 0: /* ASCII to GL */ i = makeGL(ASCII, pcts, n); if (i < 0) return -1; pcts += i; n -= i; if (n <= 1) return -1; /* Not enough space */ *pcts++ = (char)WCHAR_BYTE_OF(wc, 0); --n; *pcts = 0; break; case 1: /* JIS X0208 to GR */ if (strcmp("japanese",setlocale(LC_CTYPE,NULL)) == 0) i = makeGR(JISX0208, pcts, n); else if (strcmp ("korean",setlocale(LC_CTYPE,NULL)) == 0) i = makeGR(KSC5601, pcts, n); else if (strcmp ("chinese",setlocale(LC_CTYPE,NULL)) == 0) i = makeGR(GB2312, pcts, n); else if (strcmp("tchinese",setlocale(LC_CTYPE,NULL)) == 0) i = makeGR(CNS1,pcts,n); if (i < 0) return -1; pcts += i; n -= i; if (n <= 2) return -1; /* Not enough space */ *pcts++ = (char)(WCHAR_BYTE_OF(wc,1)|0x80); *pcts++ = (char)(WCHAR_BYTE_OF(wc,0)|0x80); n -= 2; *pcts = 0; break; case 2: /* JIS X0201 to GR */ if (strcmp("tchinese",setlocale(LC_CTYPE,NULL)) == 0) { if ((WCHAR_BYTE_OF(wc,2) & 0xf0) == 0x20) i = makeGRP(CNS2, pcts, n, WCHAR_BYTE_OF(wc,2)-0x20); else i = makeGRP(CNS3, pcts, n, WCHAR_BYTE_OF(wc,2)-0x20); if (i < 0) return -1; pcts += i; n-=i; if (n <= 2) return -1; /* Not enough space */ *pcts++ = (char)(WCHAR_BYTE_OF(wc,1)|0x80); *pcts++ = (char)(WCHAR_BYTE_OF(wc,0)|0x80); n -= 2; } else { i = makeGR(JISX0201R, pcts, n); if (i < 0) return -1; pcts += i; n-=i; if (n <= 1) return -1; /* Not enough space */ *pcts++ = (char)(WCHAR_BYTE_OF(wc,0)|0x80); --n; } *pcts = 0; break; default:/* Gaiji or other junk */ return -1; } /* Return to the initial designation state. */ i = makeGL(ASCII, pcts, n); if (i < 0) return -1; pcts += i; n -= i; i = makeGR(ISO8859_1R, pcts, n); if (i < 0) return -1; pcts += i; n -= i; if (n > 0) *pcts++ = 0; return pcts - cts; } /* makeGL() and makeGR() ensures that the each codeset has * been designated the given character set. If not, it stores * the neccessary Esc sequnce to designate the char set. * If successful, it returns the number of bytes stored. * If not enough space is available, -1 is returned. */ static int makeGL(charset, to, n) register int charset; /* -1 to initialize. */ char to[]; int n; /* Size of to[]. */ { static int curGLCharset; char seq[5];/* Mini buffer to store the Esc sequnce.*/ register char *pc=seq; if (charset == RESET){ curGLCharset = ASCII; return 0; } if(charset == curGLCharset) return 0;/* Already designated. */ else{/* Need to designated. */ int i; *pc++ = Esc; if (charset&_94S){/* 94 char set */ *pc++=0x28; } else if (charset & _94M){/* multibyte 94 char set */ *pc++ = 0x24; *pc++ = 0x28; } else {/* Unknown. */ return -1; } *pc++ = (charset & 0xff);/* Put the "Final" char. */ i = pc - to; if (i >= n) {/* Not enough space. */ return -1; } *pc = 0; strncpy(to, seq, n); curGLCharset = charset; return i; } }/*makeGL()*/ static int curGRCharset; static int makeGR(charset, to, n) register int charset; /* -1 to initialize. */ char to[]; int n; /* Size of to[]. */ { static int curGRCharset; char seq[5];/* Mini buffer to store the Esc sequnce.*/ register char *pc = seq; if (charset == RESET){ curGRCharset = ISO8859_1R; return 0; } if (charset == curGRCharset) return 0;/* Already designated. */ else {/* Need to designated. */ int i; *pc++ = Esc; if (charset & _94S) {/* 94 char set */ *pc++ = 0x29; } else if (charset & _96S) {/* 96 char set */ *pc++=0x2d; } else if(charset&_94M) {/* multibyte 94 char set */ *pc++ = 0x24; *pc++ = 0x29; } else {/* Unknown. */ return -1; } if (!strcmp("tchinese",setlocale(LC_CTYPE,NULL))) *pc++ = 0x30; /* Put the "Final" char. */ else *pc++ = (charset & 0xff); /* Put the "Final" char. */ i = pc - seq; if (i >= n) {/* Not enough space. */ return -1; } *pc = 0; strncpy(to, seq, n); curGRCharset = charset; return i; } }/*makeGR()*/ static int makeGRP(charset, to, n, plane) register int charset; /* -1 to initialize. */ char to[]; int n; /* Size of to[]. */ int plane; { char seq[5];/* Mini buffer to store the Esc sequnce.*/ register char *pc = seq; static int lastplane = -1; if (charset == RESET){ curGRCharset = ISO8859_1R; return 0; } if (charset == curGRCharset && plane == lastplane) { return 0;/* Already designated. */ } else {/* Need to designated. */ int i; *pc++ = Esc; if (charset & _94S) {/* 94 char set */ *pc++ = 0x29; } else if (charset & _96S) {/* 96 char set */ *pc++=0x2d; } else if(charset&_94M) {/* multibyte 94 char set */ *pc++ = 0x24; /* $ */ if (!strcmp("tchinese",setlocale(LC_CTYPE,NULL))) if (plane == 2) *pc++ = ')'; else *pc++ = ')'; else *pc++ = 0x29; } else {/* Unknown. */ return -1; } if (!strcmp("tchinese",setlocale(LC_CTYPE,NULL))) *pc++ = plane + 0x2f; /* Put the "Final" char. */ else *pc++ = (charset & 0xff); /* Put the "Final" char. */ lastplane = plane; i = pc - seq; if (i >= n) {/* Not enough space. */ return -1; } *pc = 0; strncpy(to, seq, n); curGRCharset = charset; return i; } }/*makeGRP()*/ xview-3.2p1.4/clients/olwm/win.c100644 1750 1750 23557 5413747440 14046 0ustar mbmb#ident "@(#)win.c 26.16 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #include #include #include #include #include #include "i18n.h" #include "olwm.h" #include "win.h" #include "mem.h" #include "st.h" #include "notice.h" /*************************************************************************** * local functions ***************************************************************************/ /*ARGSUSED*/ static enum st_retval doRedrawOneWindow(w,win,c) Window w; WinGeneric *win; void *c; { if ((WinFunc(win,core.drawfunc) != NULL) && (win->core.client != NULL)) (WinFunc(win,core.drawfunc))(win->core.client->dpy,win); return ST_CONTINUE; } static void callSelectTree(dpy,win,sel) Display *dpy; WinGeneric *win; Bool sel; { List *l = win->core.children; if (WinFunc(win,core.selectfunc) != NULL) (*(WinFunc(win,core.selectfunc)))(dpy,win,sel); for (win = ListEnum(&l); win != NULL; win = ListEnum(&l)) callSelectTree(dpy, win, sel); } /* Destroying a window tree: walk the trees associated with a client, * invoking the destroyfuncs on each. The order that the windows are * destroyed is significant; it works from the root upwards. The * client structure is not affected; it is assumed that this function * is only called from routines which take responsibility for removing * the client structure as well. */ static void callDestroyTree(dpy,win) Display *dpy; WinGeneric *win; { List *l; WinGeneric *cwin; if (win == NULL) return; l = win->core.children; for (cwin = ListEnum(&l); cwin != NULL; cwin = ListEnum(&l)) callDestroyTree(dpy, cwin); if (WinFunc(win,core.destroyfunc) != NULL) (*(WinFunc(win,core.destroyfunc)))(dpy,win); } static void setTreeConfig(dpy,win) Display *dpy; WinGeneric *win; { List *l = win->core.children; WinGeneric *wc; (*(WinFunc(win,core.setconfigfunc)))(dpy,win); for (wc = ListEnum(&l); wc != NULL; wc = ListEnum(&l)) { setTreeConfig(dpy,wc); } } static void callFocusTree(win, focus) WinGeneric *win; Bool focus; { List *l; WinGeneric *cwin; if (win == NULL) return; if (WinFunc(win,core.focusfunc) != NULL) (WinFunc(win,core.focusfunc))(win->core.client->dpy,win,focus); l = win->core.children; for (cwin = ListEnum(&l); cwin != NULL; cwin = ListEnum(&l)) callFocusTree(cwin, focus); } static void callDrawTree(win) WinGeneric *win; { List *l; WinGeneric *cwin; if (WinFunc(win,core.drawfunc) != NULL) (WinFunc(win,core.drawfunc))(win->core.client->dpy,win); l = win->core.children; for (cwin = ListEnum(&l); cwin != NULL; cwin = ListEnum(&l)) callDrawTree(cwin); } /*************************************************************************** * global functions ***************************************************************************/ /* WinCallSelect - call a client's select functions for either the icon or * frame trees, depending on which is visible. Passes along sel, * which is True iff the client is being selected. */ void WinCallSelect(cli, sel) Client *cli; Bool sel; { if (cli->wmState == NormalState) callSelectTree(cli->dpy, cli->framewin, sel); else if (cli->wmState == IconicState) callSelectTree(cli->dpy, cli->iconwin, sel); } /* WinCallFocus - call a client's focus functions for the frame tree. * Passes along focus, which is True iff the client is gaining focus */ void WinCallFocus(win,focus) WinGeneric *win; Bool focus; { if (win == NULL) return; win->core.client->isFocus = focus; callFocusTree(win, focus); } /* WinCallDestroy - call a client's destroy functions for both the icon and * frame trees */ void WinCallDestroy(cli) Client *cli; { Display *dpy = cli->dpy; WinPaneFrame *framewin = cli->framewin; WinIconFrame *iconwin = cli->iconwin; callDestroyTree(dpy, framewin); callDestroyTree(dpy, iconwin); } /* WinCallConfig - initiate a configuration change, starting at some * particular window. * Configuration change works as follows: a window is the initiator * of the change. If the children of this window need to be sized, * then they are called to do so; then the window sizes itself and * sets the position of each of its children. This process is * repeated on the parent of the initiating window, and so on up * to the top window in the hierarchy (presumably a frame). * A second pass then occurs, doing a depth-first preorder * traversal of the window tree, performing the window's set * configuration function to make the computed change. * In the first pass, any window which changes its configuration * should return this fact to be propagated back to this routine; * if no window has changed configuration then the second pass * won't be performed. * The initiator window is passed (in some cases) the configure * request event which cause the action to begin. */ void WinCallConfig(dpy,win,pxcre) Display *dpy; WinGeneric *win; XConfigureRequestEvent *pxcre; { Bool fDirty = False; WinGeneric *w; do { fDirty = (WinFunc(win,core.newconfigfunc))(win,pxcre) || fDirty; pxcre = NULL; w = win; } while ((win = win->core.parent) != NULL); if (fDirty) { setTreeConfig(dpy,w); } } /* * WinCallDraw * Call all child windows' draw functions. */ void WinCallDraw(win) WinGeneric *win; { callDrawTree(win); } /* WinAddChild -- add a child to a parent's list of children */ void WinAddChild(parent,child) WinGeneric *parent; WinGeneric *child; { parent->core.children = ListCons(child,parent->core.children); child->core.parent = parent; } /* WinRemoveChild -- remove a child from a parent's list of children */ void WinRemoveChild(parent,child) WinGeneric *parent; WinGeneric *child; { List **l; for (l = &(parent->core.children); *l != NULL; l = &((*l)->next)) { if ((WinGeneric *)((*l)->value) == child) { ListDestroyCell(l); return; } } #ifdef DEBUG printf("Warning: tried to remove child %x from parent %x, but it wasn't there\n",child,parent); #endif } /* WinRootPos -- figure the root coordinates of a window's position */ void WinRootPos(win,px,py) WinGeneric *win; int *px, *py; { *px = 0; *py = 0; for ( ; win != NULL; win = win->core.parent) { *px += win->core.x; *py += win->core.y; } } /* WinRedrawAllWindows -- call every window's draw function (if provided) */ void WinRedrawAllWindows() { WIApply(doRedrawOneWindow, NULL); } /* WinShowHelp -- show help for that window if available */ Bool WinShowHelp(dpy,win,mousex,mousey) Display *dpy; WinGeneric *win; int mousex,mousey; { int screen; Text *buttons[1]; Text *msg; NoticeBox noticeBox; if (win->core.helpstring) { if (win->core.client) screen = win->core.client->screen; else screen = DefaultScreen(dpy); if (!ShowHelpWindow(screen,mousex,mousey, win->core.helpstring)) { buttons[0] = GetText("Ok"); msg = GetText("Couldn't write to olwmslave\nNo Help Available for olwm"); noticeBox.numButtons = NOTICE_BUTTON_COUNT(buttons); noticeBox.defaultButton = 0; noticeBox.buttonText = buttons; noticeBox.msgText = msg; noticeBox.boxX = -1; /* centered */ noticeBox.boxY = -1; (void)UseNoticeBox(dpy,screen,¬iceBox); FreeText(buttons[0]); FreeText(msg); return False; } return True; } return False; } /*************************************************************************** * general event/class functions ***************************************************************************/ int WinDrawFunc(win) WinGeneric *win; { if ((WinFunc(win,core.drawfunc) != NULL) && (win->core.client != NULL)) (WinFunc(win,core.drawfunc))(win->core.client->dpy,win); } int WinEventExpose(dpy, event, win) Display *dpy; XEvent *event; WinGeneric *win; { if (event->xexpose.count == 0) (WinFunc(win,core.drawfunc))(dpy, win); } int WinNewPosFunc(win,x,y) WinGeneric *win; int x,y; { if (x != win->core.x) { win->core.x = x; win->core.dirtyconfig |= CWX; } if (y != win->core.y) { win->core.y = y; win->core.dirtyconfig |= CWY; } return win->core.dirtyconfig; } int WinNewConfigFunc(win, pxcre) WinGeneric *win; XConfigureRequestEvent *pxcre; { int neww = WinFunc(win,core.widthfunc)(win, pxcre); int newh = WinFunc(win,core.heightfunc)(win, pxcre); if (neww != win->core.width) { win->core.width = neww; win->core.dirtyconfig |= CWWidth; } if (newh != win->core.height) { win->core.height = newh; win->core.dirtyconfig |= CWHeight; } return win->core.dirtyconfig; } int WinSetConfigFunc(dpy, win) Display *dpy; WinGeneric *win; { XWindowChanges xwc; if (win->core.dirtyconfig) { xwc.x = win->core.x; xwc.y = win->core.y; xwc.width = win->core.width; xwc.height = win->core.height; /* generic windows never change border or stacking */ XConfigureWindow(dpy,win->core.self,win->core.dirtyconfig,&xwc); } win->core.dirtyconfig &= ~(CWX|CWY|CWWidth|CWHeight); } /* * WinAddColorClient * * Add cli to this win's list of colormap clients. Assumes that cli isn't * already in the list. */ void WinAddColorClient(win, cli) WinGeneric *win; Client *cli; { win->core.colormapClients = ListCons(cli, win->core.colormapClients); } /* * WinRemoveColorClient * * Remove cli from this win's list of colormap clients. If there are no more * clients, and this window is a WIN_COLORMAP, destroy the window. Assumes * that cli appears in win's list zero or one times. */ void WinRemoveColorClient(dpy, win, cli) Display *dpy; WinGeneric *win; Client *cli; { List **l; l = &win->core.colormapClients; while (*l != NULL) { if ((*l)->value == cli) { ListDestroyCell(l); break; } l = &((*l)->next); } if (win->core.colormapClients == NULL_LIST && win->core.kind == WIN_COLORMAP) (WinFunc(win, core.destroyfunc))(dpy, win); } xview-3.2p1.4/clients/olwm/win.h100644 1750 1750 37257 5413747440 14055 0ustar mbmb#ident "@(#)win.h 26.43 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_WIN_H #define _OLWM_WIN_H #include #include "list.h" #include "events.h" #include "screen.h" #ifdef SHAPE #include #endif /*************************************************************************** * Client state structures ***************************************************************************/ /* a type for the four possible focus modes */ typedef enum { Passive, NoInput, LocallyActive, GloballyActive } FocusMode; typedef enum { MENU_FULL, /* Close, Zoom, Props, Scale, Back, Refresh, Quit */ MENU_LIMITED, /* Dismiss, Scale, Refresh */ MENU_NONE, MENU_ROOT, /* used only by usermenu.c */ NUM_MENUS } MenuIndex; typedef struct { long flags; MenuIndex menu_type; int def_item; /* default menu item */ int pushpin_initial_state; int cancel; /* 1 means Cancel instead of Dismiss */ /* numbers assigned as per OLXCI 3/20/89 */ } WMDecorations; /* pin states numbers, as per OLXCI 3/20/89 */ #define PIN_OUT 0 #define PIN_IN 1 /* value for flags */ #define WMDecorationHeader (1L<<0) #define WMDecorationFooter (1L<<1) #define WMDecorationPushPin (1L<<2) #define WMDecorationCloseButton (1L<<3) #define WMDecorationHeaderDeco (WMDecorationPushPin | WMDecorationCloseButton) #define WMDecorationResizeable (1L<<4) #define WMDecorationIconName (1L<<5) #define WMDecorationWarpToPin (1L<<6) #ifdef OW_I18N_L4 #define WMDecorationIMStatus (1L<<7) #endif /* * Window Manager State * Uses state codes in Xutil.h; * WithdrawnState, NormalState, IconicState * and a special olwm-private InvisibleState */ typedef int WMState; #define InvisibleState 5469550 /* olwm-private WMState value */ /* * Pointer warp state */ typedef struct { int warpToX, warpToY; /* where pointer goes on warp */ int dflButtonX, dflButtonY; /* location of default button */ int dflButtonW, dflButtonH; /* size of default button */ struct _client *warpBackClient; /* where to return focus */ int warpBackX, warpBackY; /* where to put it back */ } WarpInfo; /* * Semantic window state */ typedef struct _windowstate { unsigned long flags; unsigned long state; } OLWindowState; /* value for OLWindowState flags */ #define WSSemanticState (1L<<0) /* value for OLWindowState state */ #define WSSemanticCompose (1L<<0) #define WSSemanticCapsLock (1L<<1) #define WSSemanticNumLock (1L<<2) #define WSSemanticScrollLock (1L<<3) /* client flags */ #define CLOlwmOwned (1L<<0) /*************************************************************************** * Client structures ***************************************************************************/ /* a top-level client window */ typedef struct _client { int flags; WMDecorations *wmDecors; WMState wmState; XSizeHints *normHints; /* WM_NORMAL_HINTS */ XWMHints *wmHints; /* WM_HINTS */ char *wmInstance; /* WM_CLASS instance name */ char *wmClass; /* WM_CLASS class name */ XrmQuark wmInstanceQ; /* quarks for WM_CLASS instance */ XrmQuark wmClassQ; /* and class */ int protocols; FocusMode focusMode; Bool isFocus; Bool isSelected; Bool isBusy; Display *dpy; int screen; struct _winpaneframe *framewin; struct _winiconframe *iconwin; WarpInfo warpInfo; Window groupid; /* Actually GroupID */ unsigned int groupmask; /* role that client is playing in group */ long busyState; List *colormapWins; struct _screeninfo *scrInfo; OLWindowState *windowState; Window transientFor; #ifdef SHAPE Bool isShaped; #endif Bool menuAccelerators; } Client; /* * A popup window (in contrast to a base window) is one that has either a * pushpin or a limited menu. */ #define ClientIsPopup(cli) \ ((cli)->wmDecors->flags & WMDecorationPushPin || \ (cli)->wmDecors->menu_type == MENU_LIMITED) #define ClientHasIcon(cli) \ (! ((cli)->groupmask == GROUP_DEPENDENT || ClientIsPopup(cli))) #define ClientIsPinnable(cli) \ ((cli)->wmDecors->flags & WMDecorationPushPin) #define ClientIsResizeable(cli) \ ((cli)->wmDecors->flags & WMDecorationResizeable) /*************************************************************************** * Window class structures ***************************************************************************/ /* classes of window which we can deal with */ typedef enum { WIN_FRAME, WIN_ICON, WIN_RESIZE, WIN_PUSHPIN, WIN_WINBUTTON, WIN_PANE, WIN_ICONPANE, WIN_COLORMAP, WIN_MENU, WIN_PINMENU, WIN_NOFOCUS, WIN_ROOT, WIN_BUSY } WinKind; typedef int (*EvFunc)(); typedef int (*IntFunc)(); typedef struct _genericclasscore { WinKind kind; EvFunc xevents[LASTEvent]; /* function for each X event */ EvFunc extEventHdlr; /* handler for extension events */ EvFunc focusfunc; /* focus state has changed */ EvFunc drawfunc; /* draw window */ EvFunc destroyfunc; /* destroy window and structures */ EvFunc selectfunc; /* selecte state has changed */ EvFunc newconfigfunc; /* compute configuration */ EvFunc newposfunc; /* set position */ EvFunc setconfigfunc; /* set configuration */ EvFunc createcallback; /* used in menu creation */ IntFunc heightfunc; /* compute correct height */ IntFunc widthfunc; /* compute correct width */ } GenericClassCore; typedef struct _classgeneric { GenericClassCore core; } ClassGeneric; typedef struct _genericframeclasscore { IntFunc heighttop, heightbottom, widthleft, widthright; IntFunc menuPress; IntFunc adjustPress, adjustClick; IntFunc selectPress, selectClick, selectDoubleClick, selectDrag; IntFunc fullrestoreToggle; } GenericFrameClassCore; typedef struct _classgenericframe { GenericClassCore core; GenericFrameClassCore fcore; } ClassGenericFrame; typedef struct _genericpaneclasscore { EvFunc setsizefunc; } GenericPaneClassCore; typedef struct _classpane { GenericClassCore core; GenericPaneClassCore pcore; } ClassGenericPane; typedef ClassGenericFrame ClassPaneFrame; typedef ClassGenericFrame ClassIconFrame; typedef ClassGeneric ClassPushPin; typedef ClassGenericPane ClassPane; typedef ClassGeneric ClassMenu; typedef ClassGenericPane ClassPinMenu; typedef ClassGeneric ClassResize; typedef ClassGeneric ClassButton; typedef ClassGeneric ClassBusy; typedef ClassGenericPane ClassIconPane; typedef ClassGeneric ClassRoot; typedef ClassGeneric ClassNoFocus; typedef ClassGeneric ClassColormap; /* Core functions: * * destroyfunc - int (*destroyfunc)(Display *dpy, WinGeneric *win) * Called when the window is being destroyed; should destroy any private * resources associated with the window (including possibly destroying * the X window) and destroy the window information structure. * * selectfunc - int (*selectfunc)(Display *dpy, WinGeneric *win, Bool selected) * Called whenever the window is selected/deselected. The window should * update its private state -- most particularly, its screen appearance -- * to match the new state. This function is only called when the selection * state has changed. * * focusfunc - int (*focusfunc)(Display *dpy, WinGeneric *win, Bool focus) * Called whenever the window gains/loses focus. The window should update * its private state -- most particularly, its screen appearance -- * to match the new state. The window does _not_ need to take focus if * it is active; this has already been taken care of. This function is * only called when the focus has changed. * * newconfigfunc - int (*newconfigfunc)(WinGeneric *win, * XConfigureRequestEvent *xcre) * Called when the configuration of a window should be recomputed. It * can be assumed that all child windows will have already computed their * sizes. This function should compute the size of this window, and call * the newposfunc of each child that needs to be moved. If the configuration * of the window is changed by this function, the dirtyconfig flag should be * set. The xcre parameter will be be set to a configure request event * structure only if a configure request was received for this * particular window; otherwise the parameter will be null. * Returns True if any dirtyconfig flag has been set. * * newposfunc - int (*newposfunc)(WinGeneric *win, int x, y) * Instructs a child window to move to a position (x,y). If this position * is different from the old position, then the dirtyconfig flag * should be set. Returns True if any dirtyconfig flag has been set. * * setconfigfunc - int (*setconfigfunc)(Display *dpy, WinGeneric *win) * The window's configuration may have changed; if so, call XConfigureWindow * to make the changes. Clear the dirtyconfig bits in the process. * The pane window will need to send a synthetic configure notify for * any configuration call. * * createcallback - int (*createcallback)(WinGeneric *self, Client *cli, * WinGeneric *parent) * For internally-created panes, the client and parent are filled out * when the StateNew process would normally create a pane. * * heightfunc - int (*heightfunc)(WinGeneric *self, XConfigureRequestEvent *pxcre) * should return the window's correct height, given a configure request * event and the current environment. Used to see if a window needs to * be resized. * * widthfunc - same as heightfunc, except that it returns correct width */ /*************************************************************************** * Window instance structures ***************************************************************************/ /* * The wincore structure contains common information about each window. * * stack_mode, stack_sib, and dirtyconfig contain information pending window * configuration changes that have not yet been sent to the server. * * exposures is a list of exposed rectangles that have not yet been repainted. * * colormapClients is a list of clients that have this window in their * colormapWins list. tag is used only while processing changes to a client's * colormapWins list. */ typedef struct _wincore { Window self; WinKind kind; struct _wingeneric *parent; List *children; Client *client; int x, y; unsigned int width, height; int stack_mode; Window stack_sib; unsigned int dirtyconfig; Colormap colormap; List *exposures; List *colormapClients; Bool tag; char *helpstring; } WinCore; /* REMIND maybe add: cursor */ /* macros associated with a window core */ #define WinIsKind(w,k) ((w)->core.kind == (k)) #define WinClass(w) ((w)->class) #define WinFunc(w,f) ((w)->class->f) #define WinScreen(w) ((w)->core.client->screen); #define WinRootID(w) ((w)->core.client->scrInfo->rootid) #define WinDepth(w) ((w)->core.client->scrInfo->depth) #define WinVisual(w) ((w)->core.client->scrInfo->visual) #define WinGI(w,idx) ((w)->core.client->scrInfo->gi[(idx)]) #define WinGC(w,idx) ((w)->core.client->scrInfo->gc[(idx)]) #define Win3D(w) ((w)->core.client->scrInfo->use3D) /* * These macros access the fields of the ColorMapFocus struct inside * the ScreenInfo struct of a Client. */ #define ColorFocusWindow(win) ((win)->core.client->scrInfo->cmapfocus.window) #define ColorFocusClient(win) ((win)->core.client->scrInfo->cmapfocus.client) #define ColorFocusLocked(win) ((win)->core.client->scrInfo->cmapfocus.locked) /* FrameCore defines fields common to all types of frame */ typedef struct _winframecore { struct _wingenericpane *panewin;/* pane inside frame */ Text *name; /* name to be displayed on frame */ Bool fullsize; /* if frame is full size */ } WinFrameCore; /* PaneCore defines fields common to all types of panes */ typedef struct _winpanecore { int oldBorderWidth; int oldSaveUnder; int pendingUnmaps; } WinPaneCore; /* Specific window types */ typedef struct _wingeneric { ClassGeneric *class; WinCore core; } WinGeneric; typedef struct _winroot { ClassGeneric *class; WinCore core; SemanticAction currentAction; XEvent buttonPressEvent; } WinRoot; typedef struct _wingenericframe { ClassGenericFrame *class; WinCore core; WinFrameCore fcore; } WinGenericFrame; /* macros for generic frames */ #define FrameHeightTop(w) (WinFunc((w),fcore.heighttop))((w)) #define FrameHeightBottom(w) (WinFunc((w),fcore.heightbottom))((w)) #define FrameWidthLeft(w) (WinFunc((w),fcore.widthleft))((w)) #define FrameWidthRight(w) (WinFunc((w),fcore.widthright))((w)) typedef struct _wingenericpane { ClassGenericPane *class; WinCore core; WinPaneCore pcore; } WinGenericPane; typedef struct { Text *string; int length,width; } Footer; typedef struct _winpaneframe { ClassPaneFrame *class; WinCore core; WinFrameCore fcore; /* resize corners */ struct _winresize *resizeCorner[4]; /* footers */ Footer leftFooter; Footer rightFooter; #ifdef OW_I18N_L4 /* input method status footers */ Footer leftIMStatus; Footer rightIMStatus; #endif /* title fields */ int titleOff; /* x offset of title area in pix */ int nameLength; /* length of name in chars */ int nameWidth; /* width of name in pix */ int titlex, titley; /* title position */ /* pointer warp status */ Bool pointerIsWarped; /* sizing functions */ void (*normfullsizefunc)(); /* normal/full size function */ Bool restoreSet; /* True => restore values valid */ int restoreX, restoreY, restoreWidth, restoreHeight; /* context for full/norm size * note that x/y is frame; w/h are pane */ /* other decorations */ WinGeneric *winDeco; /* window button or pushpin */ struct _winbusy *winBusy; /* special window when busy */ } WinPaneFrame; typedef struct _winiconframe { ClassIconFrame *class; WinCore core; WinFrameCore fcore; struct _iconSlot *iconslot; Bool fManuallyPositioned; int nameX, nameY; /* name of icon */ int nameWidth; int nameLength; } WinIconFrame; typedef struct _winiconpane { ClassIconPane *class; WinCore core; WinPaneCore pcore; Bool iconClientWindow; /* true iff client owns pane */ Pixmap iconPixmap; /* None if icon has client window */ Pixmap iconMask; } WinIconPane; typedef struct _winpushpin { ClassPushPin *class; WinCore core; Bool pushpinin; } WinPushPin; typedef struct _winpane { ClassPane *class; WinCore core; WinPaneCore pcore; } WinPane; typedef struct _winmenu { ClassMenu *class; WinCore core; struct _menuInfo *menuInfo; Bool ignoreNextExpose; } WinMenu; typedef struct _winpinmenu { /* pinned menus are a subclass of panes */ ClassPinMenu *class; WinCore core; WinPaneCore pcore; struct _menuInfo *menuInfo; } WinPinMenu; typedef enum {upleft, upright, lowleft, lowright, keyevent} WhichResize; typedef struct _winresize { ClassResize *class; WinCore core; WhichResize which; Bool depressed; } WinResize; typedef struct _winbutton { ClassButton *class; WinCore core; Bool ignore; } WinButton; typedef struct _winbusy { ClassBusy *class; WinCore core; Bool isFocus; } WinBusy; typedef WinGeneric WinNoFocus; /* colormap windows aren't linked into the ordinary window tree since they * are presumed under client control. We create info structures for them * only so appropriate events can be dispatched on them. Colormap windows * are in a list on the client structure. */ typedef WinGeneric WinColormap; /* functions mapping windows to infos */ extern void WIInstallInfo(); extern Bool WIUninstallInfo(); extern WinGeneric *WIGetInfo(); extern void WIApply(); /* window functions */ extern void WinAddChild(); extern void WinRemoveChild(); /* Useful client macros */ #define PANEOFCLIENT(cli) ((cli)->framewin->fcore.panewin) #define PANEWINOFCLIENT(cli) (PANEOFCLIENT(cli)->core.self) /* globals */ #ifdef SHAPE extern Bool ShapeSupported; extern int ShapeEventBase; extern int ShapeErrorBase; #endif extern Client *CurrentClient; #endif /* _OLWM_WIN_H */ xview-3.2p1.4/clients/olwm/winbusy.c100644 1750 1750 12705 5413747440 14742 0ustar mbmb#ident "@(#)winbusy.c 26.12 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #include #include #include #include #include #ifdef OW_I18N_L4 #include "i18n.h" #endif #include #include "i18n.h" #include "ollocale.h" #include "mem.h" #include "olwm.h" #include "win.h" #include "globals.h" /*************************************************************************** * global data ***************************************************************************/ /*************************************************************************** * private data ***************************************************************************/ static ClassBusy classBusy; static Bool busyDisabled = True; /*************************************************************************** * private functions ***************************************************************************/ /* * DestroyBusy -- destroy the busy window resources and free any allocated * data. */ static int destroyBusy(dpy, winInfo) Display *dpy; WinBusy *winInfo; { /* free our data and throw away window */ XUndefineCursor(dpy, winInfo->core.self); WinRemoveChild(winInfo->core.parent,winInfo); ScreenDestroyWindow(winInfo->core.client->scrInfo, winInfo->core.self); WIUninstallInfo(winInfo->core.self); MemFree(winInfo); } /* * widthfuncBusy - recomputes the height of the busy window */ int widthfuncBusy(win, pxcre) WinBusy *win; XConfigureRequestEvent *pxcre; { WinGenericFrame *frame = (WinGenericFrame *)win->core.parent; return frame->fcore.panewin->core.width; } /* * heightfuncBusy - recomputes the height of the busy window */ int heightfuncBusy(win, pxcre) WinBusy *win; XConfigureRequestEvent *pxcre; { WinGenericFrame *frame = (WinGenericFrame *)win->core.parent; return frame->fcore.panewin->core.height; } /* * * REMIND * * Busy windows are effectively "turned off" by the static Bool busyDisabled. * The reason for this is that having a busy window on the screen over the * application's window will prevent that application from receiving drag-n- * drop messages properly. When busyDisabled is set, the following newconfig, * newpos, and setconfig functions prevent the busy window from changing from * its initial state. The initial state is set in MakeBusy, which makes the * busy window very small and above the upper left corner of the frame window. */ static int newConfigBusy(winInfo, pxcre) WinBusy *winInfo; XConfigureRequestEvent *pxcre; { if (busyDisabled) return 0; else return WinNewConfigFunc(winInfo, pxcre); } static int newPosBusy(winInfo, x, y) WinBusy *winInfo; int x, y; { if (busyDisabled) return 0; else return WinNewPosFunc(winInfo, x, y); } static int setConfigBusy(dpy, winInfo) Display *dpy; WinBusy *winInfo; { if (busyDisabled) return 0; else return WinSetConfigFunc(dpy, winInfo); } /*************************************************************************** * global functions ***************************************************************************/ /* * MakeBusy -- create the busy window. The Busy window is exactly the * same size as its parent and gets all keyboard and pointer events * for the frame. The parent is assumed to be a frame. */ WinBusy * MakeBusy(dpy, par) Display *dpy; WinGenericFrame *par; { WinBusy *w; Window win; unsigned long valuemask; XSetWindowAttributes attributes; /* create the associated structure */ w = MemNew(WinBusy); w->core.kind = WIN_BUSY; w->class = &classBusy; WinAddChild(par,w); w->core.children = NULL; w->core.client = par->core.client; if (busyDisabled) { w->core.x = -10; w->core.y = -10; w->core.width = 1; w->core.height = 1; } else { w->core.x = par->fcore.panewin->core.x; w->core.y = par->fcore.panewin->core.y; w->core.width = par->fcore.panewin->core.width; w->core.height = par->fcore.panewin->core.height; } w->core.dirtyconfig = CWX | CWY | CWWidth | CWHeight; w->core.exposures = NULL; w->isFocus = False; /* inheirit help from the parent frame */ w->core.helpstring = par->core.helpstring; /* create the window */ attributes.event_mask = ButtonReleaseMask | ButtonPressMask | KeyPressMask; attributes.cursor = GRV.BusyPointer; valuemask = CWEventMask | CWCursor; win = ScreenCreateWindow(par->core.client->scrInfo, par->core.self, w->core.x, w->core.y, w->core.width, w->core.height, valuemask, &attributes); /* fill out remaining fields */ w->core.self = win; WIInstallInfo(w); XMapRaised(dpy, win); return w; } void BusyInit(dpy) Display *dpy; { classBusy.core.kind = WIN_BUSY; classBusy.core.xevents[ButtonPress] = NoFocusEventBeep; classBusy.core.xevents[ButtonRelease] = NoFocusEventBeep; classBusy.core.xevents[KeyPress] = NoFocusEventBeep; classBusy.core.xevents[KeyRelease] = NoFocusEventBeep; classBusy.core.focusfunc = NULL; classBusy.core.drawfunc = NULL; classBusy.core.destroyfunc = destroyBusy; classBusy.core.selectfunc = NULL; classBusy.core.newconfigfunc = newConfigBusy; classBusy.core.newposfunc = newPosBusy; classBusy.core.setconfigfunc = setConfigBusy; classBusy.core.createcallback = NULL; classBusy.core.heightfunc = heightfuncBusy; classBusy.core.widthfunc = widthfuncBusy; } xview-3.2p1.4/clients/olwm/winbutton.c100644 1750 1750 25735 5413747441 15303 0ustar mbmb#ident "@(#)winbutton.c 26.31 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #include #include #include #include #include #include "i18n.h" /* needed by olgx.h */ #include #include "ollocale.h" #include "mem.h" #include "olwm.h" #include "win.h" #include "globals.h" #include "menu.h" #include "events.h" extern void FrameAllowEvents(); extern Bool DoDefaultMenuAction(); extern Atom AtomChangeState; /*************************************************************************** * private data ***************************************************************************/ #define in_windowmark(win,x,y) \ ( (x) >= 0 && (y) >= 0 && \ (x) <= Abbrev_MenuButton_Width(WinGI((win),NORMAL_GINFO)) && \ (y) <= Abbrev_MenuButton_Height(WinGI((win),NORMAL_GINFO)) \ ) static Bool buttonActive = False; static ClassButton classButton; static SemanticAction currentAction = ACTION_NONE; /*************************************************************************** * private functions ***************************************************************************/ static int drawButton(); static void doUnhilite(act, mode, winInfo) int act; MenuTrackMode mode; WinButton *winInfo; { Graphics_info *gisNormal = WinGI(winInfo, NORMAL_GINFO); long flags; if (act != SYNC_CHANGECLICK) flags = OLGX_NORMAL | OLGX_ERASE; else if (mode == MODE_CLICK) flags = OLGX_BUSY | OLGX_ERASE | OLGX_NORMAL; else { /* don't do this; it's unsettling to press it in when you drag again */ return; } olgx_draw_abbrev_button(gisNormal, winInfo->core.self, 0, 0, flags); } /* * eventButtonPress - handle button press events on the close button window. */ static int eventButtonPress(dpy, event, winInfo) Display *dpy; XEvent *event; WinButton *winInfo; { Client *cli = winInfo->core.client; WinPaneFrame *winFrame = cli->framewin; Graphics_info *gisNormal = WinGI(winInfo,NORMAL_GINFO); SemanticAction a; a = MenuMouseAction(dpy, event, ModMaskMap[MOD_CONSTRAIN]); if (winInfo->ignore) { FrameAllowEvents(cli, event->xbutton.time); return; } switch (a) { case ACTION_SELECT: olgx_draw_abbrev_button(gisNormal, winInfo->core.self, 0, 0, OLGX_INVOKED); /* * REMIND: bad style. This is grabbing the pointer after * the fact. We should set up a passive grab instead. */ XGrabPointer(dpy, winInfo->core.self, False, (ButtonReleaseMask | ButtonPressMask | PointerMotionMask), GrabModeAsync, GrabModeAsync, None, GRV.MovePointer, CurrentTime); buttonActive = True; currentAction = a; break; case ACTION_MENU: olgx_draw_abbrev_button(gisNormal, winInfo->core.self, 0, 0, OLGX_INVOKED); if (winFrame->core.client->wmDecors->menu_type != MENU_NONE) ShowStandardMenuSync(winFrame, event, True, doUnhilite, winInfo); break; default: FrameAllowEvents(cli, event->xbutton.time); return; } } /* * eventButtonRelease - handle button release events on the close button * window. When we handle an event, start ignoring mouse events on the button * and send a ClientMessage to ourself. When we receive the ClientMessage, * stop ignore events. This is so that double-clicking on the button doesn't * close and then reopen the window (or perform the default action twice). */ static int eventButtonRelease(dpy, event, winInfo) Display *dpy; XEvent *event; WinButton *winInfo; { Client *cli = winInfo->core.client; int x,y; XClientMessageEvent ce; FrameAllowEvents(cli, event->xbutton.time); if (!AllButtonsUp(event)) return; XUngrabPointer(dpy, CurrentTime); x = event->xbutton.x; y = event->xbutton.y; if (buttonActive) { drawButton(dpy, winInfo); buttonActive = False; } if (!in_windowmark(winInfo,x,y) || currentAction != ACTION_SELECT) { return; } if (! winInfo->ignore) { if (!DoDefaultMenuAction(cli->framewin)) { ClientOpenCloseToggle(cli,event->xbutton.time); } ce.type = ClientMessage; ce.window = winInfo->core.self; ce.message_type = AtomChangeState; ce.format = 32; XSendEvent(dpy, winInfo->core.self, False, NoEventMask, (XEvent *) &ce); winInfo->ignore = True; } currentAction = ACTION_NONE; } /* * eventMotionNotify - handle motion notify events on the close button window. */ static int eventMotionNotify(dpy, event, winInfo) Display *dpy; XEvent *event; WinButton *winInfo; { int x,y; Graphics_info *gisNormal = WinGI(winInfo,NORMAL_GINFO); if (!event->xmotion.same_screen || currentAction != ACTION_SELECT) return; x = event->xmotion.x; y = event->xmotion.y; if ( buttonActive && !in_windowmark(winInfo,x,y) ) { drawButton(dpy, winInfo); buttonActive = False; } else if ( !buttonActive && in_windowmark(winInfo,x,y) ) { olgx_draw_abbrev_button(gisNormal, winInfo->core.self, 0, 0, OLGX_INVOKED); buttonActive = True; } } /* * eventClientMessage - handle ClientMessage events sent to the button. In * eventButtonRelease, we send a ClientMessage to ourself. When we receive * it, stop ignoring button press events. */ static int eventClientMessage(dpy, ce, winInfo) Display *dpy; XClientMessageEvent *ce; WinButton *winInfo; { if (ce->message_type == AtomChangeState) winInfo->ignore = False; return 0; } /* * drawButton -- draw the window button */ /*ARGSUSED*/ static int drawButton(dpy, winInfo) Display *dpy; WinButton *winInfo; { Client *cli = winInfo->core.client; GC windowGC = WinGC(winInfo,WINDOW_GC); XGCValues gcv; Graphics_info *gisNormal = WinGI(winInfo,NORMAL_GINFO); int focusLines = (GRV.FocusFollowsMouse ? 1 : 0) ^ (GRV.InvertFocusHighlighting ? 1 : 0); /* * Erase the background first. Unfortunately, we can't depend on * OLGX_ERASE to do the right thing, because it (a) erases only in BG1, * and (b) erases only in 2D mode. We need to erase a background color * that depends on the state of the frame. If we're in click-focus and we * have the focus, draw in BG2; otherwise, draw in BG1. */ /* Temporarily set background to BG2 if click-to-type */ if (!focusLines && winInfo->core.client->isFocus && Win3D(winInfo)) { XGetGCValues(dpy,windowGC,GCBackground,&gcv); XSetBackground(dpy,windowGC,cli->scrInfo->colorInfo.bg2Color); } XFillRectangle(dpy, winInfo->core.self, windowGC, 0, 0, Abbrev_MenuButton_Width(gisNormal), Abbrev_MenuButton_Height(gisNormal)); /* Restore background back to BG1 */ if (!focusLines && winInfo->core.client->isFocus && Win3D(winInfo)) { XSetBackground(dpy,windowGC,gcv.background); } olgx_draw_abbrev_button(gisNormal, winInfo->core.self, 0, 0, OLGX_NORMAL | OLGX_ERASE); /* * REMIND: hack for working around OLGX deficiency. OLGX erases the * "ears" at each corner of the window button to the background color. * They should really be filled in with the foreground color. */ if (!focusLines && winInfo->core.client->isFocus && !Win3D(winInfo)) { XDrawRectangle(dpy, winInfo->core.self, WinGC(winInfo,FOREGROUND_GC), 0, 0, Abbrev_MenuButton_Width(gisNormal)-1, Abbrev_MenuButton_Height(gisNormal)-1); XDrawPoint(dpy, winInfo->core.self, WinGC(winInfo,FOREGROUND_GC), Abbrev_MenuButton_Width(gisNormal)-1, Abbrev_MenuButton_Height(gisNormal)-1); } } /* * DestroyButton -- destroy the close button window resources and free any allocated * data. */ static int destroyButton(dpy, winInfo) Display *dpy; WinButton *winInfo; { /* free our data and throw away window */ ScreenDestroyWindow(winInfo->core.client->scrInfo, winInfo->core.self); WIUninstallInfo(winInfo->core.self); MemFree(winInfo); } /* * focusButton - the focus or selection state has changed */ static int focusButton(dpy, winInfo, selected) Display *dpy; WinButton *winInfo; Bool selected; { (WinFunc(winInfo,core.drawfunc))(dpy, winInfo); } /* * heightfuncButton - recomputes the height of the close button window */ static int heightfuncButton(win, pxcre) WinButton *win; XConfigureRequestEvent *pxcre; { return Abbrev_MenuButton_Width(WinGI(win,NORMAL_GINFO)); } /* * widthfuncButton - recomputes the width of the close button window */ static int widthfuncButton(win, pxcre) WinButton *win; XConfigureRequestEvent *pxcre; { return Abbrev_MenuButton_Height(WinGI(win,NORMAL_GINFO)); } /*************************************************************************** * global functions ***************************************************************************/ /* * MakeButton -- create the close button window. Return a WinGeneric structure. */ WinButton * MakeButton(dpy, par, x, y) Display *dpy; WinGeneric *par; int x,y; { WinButton *w; Window win; unsigned long valuemask; XSetWindowAttributes attributes; Graphics_info *gisNormal = WinGI(par,NORMAL_GINFO); attributes.event_mask = ButtonReleaseMask | ButtonPressMask | ExposureMask; attributes.cursor = GRV.IconPointer; valuemask = CWEventMask | CWCursor; win = ScreenCreateWindow(par->core.client->scrInfo, par->core.self, x, y, Abbrev_MenuButton_Width(gisNormal), Abbrev_MenuButton_Height(gisNormal), valuemask, &attributes); /* create the associated structure */ w = MemNew(WinButton); w->core.self = win; w->class = &classButton; w->core.kind = WIN_WINBUTTON; WinAddChild(par,w); w->core.children = NULL; w->core.client = par->core.client; w->core.x = x; w->core.y = y; w->core.width = Abbrev_MenuButton_Width(gisNormal); w->core.height = Abbrev_MenuButton_Height(gisNormal); w->core.dirtyconfig = 0; w->core.exposures = NULL; w->core.helpstring = "olwm:CloseButton"; w->ignore = False; /* register the window */ WIInstallInfo(w); XMapWindow(dpy, win); return w; } void ButtonInit(dpy) Display *dpy; { classButton.core.kind = WIN_WINBUTTON; classButton.core.xevents[ButtonPress] = eventButtonPress; classButton.core.xevents[ButtonRelease] = eventButtonRelease; classButton.core.xevents[MotionNotify] = eventMotionNotify; classButton.core.xevents[Expose] = WinEventExpose; classButton.core.xevents[ClientMessage] = eventClientMessage; classButton.core.focusfunc = focusButton; classButton.core.drawfunc = drawButton; classButton.core.destroyfunc = destroyButton; classButton.core.selectfunc = NULL; classButton.core.newconfigfunc = WinNewConfigFunc; classButton.core.newposfunc = WinNewPosFunc; classButton.core.setconfigfunc = WinSetConfigFunc; classButton.core.createcallback = NULL; classButton.core.heightfunc = heightfuncButton; classButton.core.widthfunc = widthfuncButton; } xview-3.2p1.4/clients/olwm/wincolor.c100644 1750 1750 54073 5413747442 15104 0ustar mbmb#ident "@(#)wincolor.c 26.24 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #include #include #include #include #include #ifdef OW_I18N_L4 #include "i18n.h" #endif #include #include "i18n.h" #include "ollocale.h" #include "mem.h" #include "olwm.h" #include "win.h" #include "globals.h" /*************************************************************************** * global data ***************************************************************************/ extern Atom AtomColorMapWindows; /* * ColorFocusLocked indicates the color focus mode. If it is false, we are in * "color-follows-mouse" mode. In this mode, colormaps are installed based on * the location of the mouse. The WM_COLORMAP_WINDOWS property determines the * list of windows that are eligible to have their colormaps installed, but * changes to this property do not necessarily cause colormap installation. * If ColorFocusLocked is true, we are in "color-locked" mode. In this mode, * a particular colormap is locked into the hardware, and colormaps do not * track the pointer location. If a particular client has the focus, this * client will be named by ColorFocusClient, and changes to its * WM_COLORMAP_WINDOWS property will cause colormap changes. If no client has * the focus (e.g. the colormap window is the root) then only user action can * cause the colormap to change. In this case the colorFocusClient will be * NULL. */ /* * colorFocusWindow indicates the window that currently has the color focus. * This is updated regardless of the color focus mode. */ extern void WinAddColorClient(); extern void WinRemoveColorClient(); extern Bool PropGetWMColormapWindows(); void InstallDefaultColormap(); void ColormapChange(); /*************************************************************************** * private data ***************************************************************************/ static ClassColormap classColormap; /*************************************************************************** * private functions ***************************************************************************/ /* * eventDestroy - handle destroy events on the colormap window */ static int eventDestroy(dpy, event, winInfo) Display *dpy; XEvent *event; WinColormap *winInfo; { Client *cli; List *cli_list = winInfo->core.colormapClients; List **win_list; WinGeneric *newfocuswin; /* * For every client in this window's client list, search that client's * window list and remove this window from it. */ for (cli = ListEnum(&cli_list); cli != NULL; cli = ListEnum(&cli_list)) { win_list = &(cli->colormapWins); while (*win_list != NULL) { if ((*win_list)->value == winInfo) { ListDestroyCell(win_list); break; } win_list = &((*win_list)->next); } if (ColorFocusLocked(winInfo) && ColorFocusWindow(winInfo) == winInfo && ColorFocusClient(winInfo) == cli) { if (cli->colormapWins) newfocuswin = cli->colormapWins->value; else newfocuswin = (WinGeneric *) PANEOFCLIENT(cli); InstallColormap(dpy, newfocuswin); } } ListDestroy(winInfo->core.colormapClients); winInfo->core.colormapClients = NULL_LIST; (WinFunc(winInfo,core.destroyfunc))(dpy, winInfo); } /* * eventEnterLeaveNotify - handle enter/leave notify events on the colormap window */ static int eventEnterLeaveNotify(dpy, event, winInfo) Display *dpy; XEvent *event; WinColormap *winInfo; { if (event->xany.type == EnterNotify) ColorWindowCrossing(dpy, event, winInfo); } /* * eventUnmapNotify - handle the unmapping of a colormap window */ static int eventUnmapNotify(dpy, event, winInfo) Display *dpy; XEvent *event; WinColormap *winInfo; { /* * If this is the window with the color focus, and the color focus is not * locked, then we must install the colormap of the window that is now * under the pointer. REMIND: there's a race condition here, because * calling InstallPointerColormap with an arg of None ends up calling * QueryPointer to find the pointer's location. */ if (ColorFocusWindow(winInfo) == (WinGeneric *)winInfo && !ColorFocusLocked(winInfo) ) { InstallPointerColormap(dpy, None, 0, 0, False); } } /* * eventColormapNotify * * Handle changes to this window's colormap attribute. If this window had the * colormap focus, install the new colormap. */ static int eventColormapNotify(dpy, event, winInfo) Display *dpy; XEvent *event; WinColormap *winInfo; { ColormapChange(dpy, event, (WinGeneric *)winInfo); } /* * destroyColormap -- destroy the colormap window resources and * free any allocated data. */ static int destroyColormap(dpy, winInfo) Display *dpy; WinGeneric *winInfo; { #ifdef DEBUG if (winInfo->core.colormapClients != NULL_LIST) puts("warning: destroying cmap window with non-null client list"); #endif /* DEBUG */ /* free our data and throw away window */ /* REMIND this test is here to avoid problems with changing * a colourmap window into a pane */ if (WIGetInfo(winInfo->core.self) == winInfo) WIUninstallInfo(winInfo->core.self); MemFree(winInfo); } /*************************************************************************** * global functions ***************************************************************************/ /* * Colormap Installation Inhibition. * * When colormap installation is inhibited, information about colormap * installation is stored in the ColormapInhibitRecord structure. If multiple * installations are requested while installation is inhibited, information * only from the last request is stored. When installation is uninhibited, * this information is used to install the colormap for real. Inhibiting * colormap installation prevents unnecessary colormap installation, thereby * reducing flashing. * * The window's client pointer is also stored, so that the entry may be * removed if the client is destroyed before colormap installation is * uninhibited. */ static struct ColormapInhibitRecord { Bool inhibited; Client *cli; WinGeneric *winInfo; } cir; /* * ColormapInhibit -- inhibit or uninhibit colormap installation. */ void ColormapInhibit(inhibit) Bool inhibit; { if (inhibit) { cir.inhibited = True; cir.winInfo = NULL; cir.cli = NULL; } else { if (cir.winInfo != NULL) { InstallColormap(cir.cli->dpy, cir.winInfo); } cir.inhibited = False; cir.winInfo = NULL; cir.cli = NULL; } } /* * Preen the colormap inhibition information. This is called when a client is * destroyed. If the client owns the information in the colormap inhibition * structure, it is cleaned up. */ void PreenColormapInhibit(cli) Client *cli; { if (cir.cli == cli) { cir.inhibited = False; cir.cli = NULL; cir.winInfo = NULL; } } /* * InstallColormap * * Install the colormap for the given window. If the window's colormap * attribute is None, install the default screen colormap instead. * This can occur if a client creates a window, sets its colormap * attribute to a particular colormap, and then destroys that colormap. */ void InstallColormap(dpy, winInfo) Display *dpy; WinGeneric *winInfo; { Colormap cmap = winInfo->core.colormap; if (cmap == None) { cmap = winInfo->core.client->scrInfo->colormap; } if (cir.inhibited) { cir.cli = winInfo->core.client; cir.winInfo = winInfo; } else { XInstallColormap(dpy, cmap); ColorFocusWindow(winInfo) = winInfo; } } /* * InstallDefaultColormap * * Install the default colormap for the screen on which this window resides. * If `lock' is true, lock it in place as well as installing it. */ void InstallDefaultColormap(dpy,winInfo,lock) Display *dpy; WinGeneric *winInfo; Bool lock; { WinRoot *rootwin = winInfo->core.client->scrInfo->rootwin; InstallColormap(dpy, rootwin); if (lock) { ColorFocusClient(rootwin) = rootwin->core.client; ColorFocusLocked(rootwin) = True; } } /* * Give this client the colormap focus, and lock the colormap of winInfo into * the hardware. Doesn't actually check if winInfo is one of cli's colormap * windows. Note: cli can be NULL. */ void LockColormap(dpy, cli, winInfo) Display *dpy; Client *cli; WinGeneric *winInfo; { InstallColormap(dpy, winInfo); ColorFocusClient(winInfo) = cli; ColorFocusLocked(winInfo) = True; } /* * InstallPointerColormap * * Install the colormap for the leafmost window that we know about that * encloses the pointer. The boolean setfocusclient indicates whether to set * the colormap focus client to this window's client. * * If root is None, we do a QueryPointer to find out where the pointer is * instead of using the rootx and rooty values. */ void InstallPointerColormap(dpy, root, rootx, rooty, setfocusclient) Display *dpy; Window root; int rootx, rooty; Bool setfocusclient; { Window src; Window dest; Window child; int srcx; int srcy; int destx, desty; WinGeneric *wi = NULL; WinGeneric *t; Client *cli; if (root == None) { Window wjunk; int junk; unsigned int uijunk; /* We want only the root, rootx, and rooty; we throw the rest away */ (void) XQueryPointer(dpy, DefaultRootWindow(dpy), &root, &wjunk, &rootx, &rooty, &junk, &junk, &uijunk); } src = root; dest = root; srcx = rootx; srcy = rooty; /* * Walk down the window hierarchy from the root toward the leaf, looking * up windows along the way. Stop when the child returned is None, * indicating that there are no more windows under this location. Set * child to None before calling XTranslateCoordinates() in case it fails * with an X error. This might happen if, for instance, the window is * destroyed while we're doing this. */ while (1) { t = WIGetInfo(dest); if (t != NULL) wi = t; child = None; /* in case TranslateCoordinates gets an X error */ (void) XTranslateCoordinates(dpy, src, dest, srcx, srcy, &destx, &desty, &child); if (child == None) break; src = dest; dest = child; srcx = destx; srcy = desty; } /* * At this point, dest contains the leafmost window that encloses the * pointer, and wi points to the window structure of the leafmost known * window that encloses the pointer. * * If we didn't find a window we know about, use the root instead. */ if (wi == NULL) { wi = WIGetInfo(root); if (wi == NULL) return; } /* * If we are over a frame, its window button, or its resize corners, * use the head of the pane's colormap window list, or the pane itself if * it has no list. */ switch (wi->core.kind) { case WIN_FRAME: case WIN_RESIZE: case WIN_PUSHPIN: case WIN_WINBUTTON: if (wi->core.client->colormapWins) wi = wi->core.client->colormapWins->value; else wi = (WinGeneric *) PANEOFCLIENT(wi->core.client); break; default: break; } if (setfocusclient) { if (wi->core.colormapClients) cli = (Client *) wi->core.colormapClients->value; else if (wi->core.client) cli = wi->core.client; else cli = NULL; LockColormap(dpy, cli, wi); } else { InstallColormap(dpy, wi); } } /* * UnlockColormap * * Turn off colormap-locked mode. */ void UnlockColormap(dpy, root, rootx, rooty) Display *dpy; { WinGeneric *rootinfo = WIGetInfo(root); /* REMIND: assert rootinfo != NULL */ ColorFocusClient(rootinfo) = NULL; ColorFocusLocked(rootinfo) = False; InstallPointerColormap(dpy, root, rootx, rooty, False); } /* * ColormapChange * * Handle a change to a window's colormap attribute. */ void ColormapChange(dpy, event, winInfo) Display *dpy; XEvent *event; WinGeneric *winInfo; { if (event->xcolormap.new) { winInfo->core.colormap = event->xcolormap.colormap; if (winInfo == ColorFocusWindow(winInfo)) InstallColormap(dpy, winInfo); } } /* * ColorWindowCrossing * * Handle colormap installation on crossing events. If we are not in * colormap-locked mode, install the window's colormap. */ void ColorWindowCrossing(dpy, event, winInfo) Display *dpy; XEvent *event; WinGeneric *winInfo; { if (!ColorFocusLocked(winInfo)) InstallColormap(dpy, winInfo); } /* values for tag field */ #define TAG_NEITHER 0 #define TAG_OLDLIST 1 #define TAG_NEWLIST 2 /* * TrackSubwindows -- check for the WM_COLORMAP_WINDOWS prop * on a pane, if it exists, track the subwindows. */ void TrackSubwindows(cli) Client *cli; { Display *dpy = cli->dpy; Window pane = PANEWINOFCLIENT(cli); unsigned long nItems, remain; Window *cmapwindata; List **last; List *oldlist; List *l; WinGeneric *cmwi; int i; WinGenericPane *paneinfo = PANEOFCLIENT(cli); if (!PropGetWMColormapWindows(dpy,pane,&cmapwindata,&nItems)) return; /* * Register all the windows on the new list, taking care to not touch any * window that was on the old list, while getting rid of windows not on * the new list, and ensuring that the new list has no duplicates. This * is a five-step process. (Note: the tag field is initialized to TAG_ * NEITHER during window creation.) * * (1) Mark all windows on the old list as TAG_OLDLIST. * * (2) Run through the WM_COLORMAP_WINDOWS property. For each window ID * in this property, there are four cases: (a) we've never seen this * window ID before; (b) we've seen this ID before but it is on neither * list; (c) this ID is on the old list; (d) this ID already on the new * list. For case (a), a record for the window is created and this case * is subsumed by case (b). * * Cases (a) and (b) correspond to TAG_NEITHER. Add this window to the * new list, add this client to the window's client list, and mark the * window as TAG_NEWLIST. Case (c) corresponds to TAG_OLDLIST. Add this * window to the new list and mark it as TAG_NEWLIST. This client is * already on the window's client list. Case (d) corresponds to * TAG_NEWLIST. This window is already on the new list, so nothing more * need be done. * * (3) If we haven't encountered the pane window in the new property, add * it to the front of the list and mark it as TAG_NEWLIST (per ICCCM * section 4.1.8). * * (4) Run through the old list. Each window marked TAG_OLDLIST is no * longer on the new list, so remove this client from the window's client * list. Windows marked TAG_NEWLIST are already on the new list, so * nothing need be done. Reclaim the old list. * * (5) Reset tags of all windows on the new list to TAG_NEITHER. */ oldlist = cli->colormapWins; cli->colormapWins = NULL_LIST; /* step (1) */ l = oldlist; for (cmwi = ListEnum(&l); cmwi != NULL; cmwi = ListEnum(&l)) cmwi->core.tag = TAG_OLDLIST; /* step (2) */ last = &cli->colormapWins; for (i=0; icore.tag) { case TAG_NEITHER: /* case (b) */ WinAddColorClient(cmwi, cli); /* FALL THRU */ case TAG_OLDLIST: /* case (c) */ (*last) = ListCons(cmwi, NULL_LIST); last = &((*last)->next); cmwi->core.tag = TAG_NEWLIST; break; case TAG_NEWLIST: /* case (d) */ break; } } XFree((char *)cmapwindata); /* step (3) */ switch (paneinfo->core.tag) { case TAG_NEITHER: WinAddColorClient(paneinfo, cli); /* FALL THRU */ case TAG_OLDLIST: cli->colormapWins = ListCons(paneinfo, cli->colormapWins); paneinfo->core.tag = TAG_NEWLIST; break; case TAG_NEWLIST: /* it's on the new list, do nothing */ break; } /* step (4) */ l = oldlist; for (cmwi = ListEnum(&l); cmwi != NULL; cmwi = ListEnum(&l)) { if (cmwi->core.tag == TAG_OLDLIST) WinRemoveColorClient(dpy, cmwi, cli); cmwi->core.tag = TAG_NEITHER; } ListDestroy(oldlist); /* step (5) */ l = cli->colormapWins; for (cmwi = ListEnum(&l); cmwi != NULL; cmwi = ListEnum(&l)) cmwi->core.tag = TAG_NEITHER; /* install colormaps as necessary */ if (!ColorFocusLocked(paneinfo)) { InstallPointerColormap(dpy, None, 0, 0, False); } else if (ColorFocusClient(paneinfo) == cli) { if (cli->colormapWins) InstallColormap(dpy, (WinGeneric *)cli->colormapWins->value); else InstallColormap(dpy, paneinfo); } } /* * UnTrackSubwindows -- stop tracking all subwindows. The Bool destroyed * indicates that this client is being destroyed. If so, this client loses * the colormap focus. If not, the color focus window is transferred to this * client's pane. */ void UnTrackSubwindows(cli, destroyed) Client *cli; Bool destroyed; { WinGeneric *wi; List *l; WinGenericPane *paneinfo = PANEOFCLIENT(cli); l = cli->colormapWins; for (wi = ListEnum(&l); wi != NULL; wi = ListEnum(&l)) WinRemoveColorClient(cli->dpy, wi, cli); ListDestroy(cli->colormapWins); cli->colormapWins = NULL_LIST; if (ColorFocusClient(paneinfo) == cli) { if (destroyed) { ColorFocusClient(paneinfo) = NULL; if (GRV.ColorLocked) { /* lock in the root's colormap */ InstallColormap(cli->dpy,cli->scrInfo->rootwin); } else { /* revert to follow-mouse */ ColorFocusLocked(paneinfo) = False; InstallPointerColormap(cli->dpy, None, 0, 0, False); } } else { InstallColormap(cli->dpy,paneinfo); } } } /* * ColorUpdateColorMapWindows - handle the PropertyNotify on WM_COLORMAP_WINDOWS */ void ColorUpdateColorMapWindows(cli,event) Client *cli; XPropertyEvent *event; { if (event->state == PropertyNewValue) { TrackSubwindows(cli); } else { UnTrackSubwindows(cli,False); } } /* * MakeColormap -- create the colormap window. Return a WinGeneric structure. */ WinColormap * MakeColormap(cli,win) Client *cli; Window win; { WinColormap *w; XWindowAttributes winAttr; /* * Select input before getting window attributes in order to avoid * race conditions with destruction and colormap changes. */ XSelectInput(cli->dpy, win, EnterWindowMask | ColormapChangeMask | StructureNotifyMask); if (XGetWindowAttributes(cli->dpy, win, &winAttr) == 0) return NULL; /* create the associated structure */ w = MemNew(WinColormap); w->class = &classColormap; w->core.self = win; w->core.kind = WIN_COLORMAP; w->core.client = cli; w->core.colormap = winAttr.colormap; w->core.colormapClients = NULL_LIST; w->core.helpstring = (char *)NULL; /* no help for colormaps */ /* register the window */ WIInstallInfo(w); return w; } void ColormapInit(dpy) Display *dpy; { classColormap.core.kind = WIN_COLORMAP; classColormap.core.xevents[DestroyNotify] = eventDestroy; classColormap.core.xevents[EnterNotify] = eventEnterLeaveNotify; classColormap.core.xevents[LeaveNotify] = eventEnterLeaveNotify; classColormap.core.xevents[UnmapNotify] = eventUnmapNotify; classColormap.core.xevents[ColormapNotify] = eventColormapNotify; classColormap.core.focusfunc = NULL; classColormap.core.drawfunc = NULL; classColormap.core.destroyfunc = destroyColormap; classColormap.core.selectfunc = NULL; classColormap.core.newconfigfunc = NULL; classColormap.core.newposfunc = NULL; classColormap.core.setconfigfunc = NULL; classColormap.core.createcallback = NULL; classColormap.core.heightfunc = NULL; classColormap.core.widthfunc = NULL; } void ColorFocusInit(dpy, root) Display *dpy; WinGeneric *root; { InstallColormap(dpy, root); ColorFocusClient(root) = (Client *)NULL; ColorFocusLocked(root) = GRV.ColorLocked; } /* The following two functions are used when a pane is being mapped, to * handle the possibility that a pane has already been named as a * colourmap window before it was mapped. */ /* ColormapUnhook -- Given a window, if exists as a colourmap * window, remove it from the event dispatching lookup table * and return a pointer to the window structure. */ WinColormap * ColormapUnhook(w) Window w; { WinColormap *win; win = WIGetInfo(w); if (win != NULL) { if (win->core.kind == WIN_COLORMAP) { WIUninstallInfo(w); } else { win = NULL; } } return win; } /* ColormapTransmogrify -- Take a previously-saved colourmap window * structure, which has been superceded by a pane window structure, * and patch up client-to-window references to point to the * pane window structure. When done, destroy the colourmap * window structure. */ void ColormapTransmogrify(winc, winp) WinColormap *winc; WinPane *winp; { Client *cli; List *cli_list; List *win_list; if (winc == NULL) return; /* * For every client in the colourmap window's client list, search that * client's window list and change the reference. */ cli_list = winc->core.colormapClients; for (cli = ListEnum(&cli_list); cli != NULL; cli = ListEnum(&cli_list)) { win_list = cli->colormapWins; while (win_list != NULL) { if (win_list->value == winc) { win_list->value = winp; break; } win_list = win_list->next; } } /* patch up other pointers */ if (ColorFocusWindow(winc) == winc) ColorFocusWindow(winc) = (WinGeneric *)winp; #ifdef NOTDEF /* REMIND check that this next statement is correct */ if (ColorFocusClient(winc) == winc->core.client) ColorFocusClient(winc) = winp->core.client; #endif winp->core.colormapClients = winc->core.colormapClients; winc->core.colormapClients = NULL_LIST; /* the colourmap window can now be destroyed since all references * to it have been removed. */ (WinFunc(winc,core.destroyfunc))(winc->core.client->dpy, winc); } xview-3.2p1.4/clients/olwm/winframe.c100644 1750 1750 172612 5413747443 15101 0ustar mbmb#ident "@(#)winframe.c 26.77 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #include #include #include #include #include #include #include "i18n.h" /* needed by olgx.h */ #include #include "ollocale.h" #include "mem.h" #include "olwm.h" #include "win.h" #include "menu.h" #include "group.h" #include "globals.h" #include "error.h" /*************************************************************************** * global data ***************************************************************************/ extern Atom AtomLeftFooter; extern Atom AtomRightFooter; extern Atom AtomTakeFocus; extern Atom AtomDfltBtn; #ifdef OW_I18N_L4 extern Atom AtomLeftIMStatus; extern Atom AtomRightIMStatus; #endif /* REMIND - figure out how to get rid of this */ extern int Resize_height, Resize_width; extern Time TimeFresh(); /*************************************************************************** * private data ***************************************************************************/ /* REMIND rework this stuff so it can handle different point sizes */ #define FRAME_OUTLINE_WIDTH 2 #define FRAME_SELECTED_WIDTH 3 static ClassPaneFrame classPaneFrame; /*************************************************************************** * forward-declared functions ***************************************************************************/ void FrameSetupGrabs(); static void setTitleText(); static void setFooterText(); void FrameUpdateShape(); #ifdef OW_I18N_L4 static void setIMStatusText(); #endif static void updateResizePositions(); /*************************************************************************** * sizing and decoration positioning functions ***************************************************************************/ /* decoration positioning */ /* ptSize - determine the point size we're working with. * REMIND this function is a hack which should be replaced with a * glyph font property. */ static int ptSize(gis) Graphics_info *gis; { #ifdef OBSOLETE switch (Resize_height) { case 10: return 10; case 11: return 12; case 12: return 14; case 14: return 19; default: return 10+((int)(0.5 * Resize_height)); } #endif return Pointsize_Glyph(gis); } static int xposCloseButton(gis) Graphics_info *gis; { return ptSize(gis)+FRAME_OUTLINE_WIDTH; } static int yposCloseButton(cli,gis) Client *cli; Graphics_info *gis; { if (Abbrev_MenuButton_Height(gis) < headerHeight(cli,gis)) return(ResizeArm_Height(gis)+(headerHeight(cli,gis)-Abbrev_MenuButton_Height(gis))/2); else return ResizeArm_Height(gis)+(ptSize(gis)>>4+2); } static int xposPushPin(gis) Graphics_info *gis; { return xposCloseButton(gis); } static int yposPushPin(cli,gis) Client *cli; Graphics_info *gis; { if (PushPinOut_Height(gis) < headerHeight(cli,gis)) return(ResizeArm_Height(gis)+(headerHeight(cli,gis)-PushPinOut_Height(gis))/2); else return ResizeArm_Height(gis)+(ptSize(gis)>>4); } static int decoToTitle(gis) Graphics_info *gis; { #ifdef NOTDEF return (2*xposCloseButton(gis))/3; #endif return (ptSize(gis)>>2); } /* REMIND change this function to use olgx macros to extract * font size */ static int headerHeight(cli,gis) Client *cli; Graphics_info *gis; { return MAX(Abbrev_MenuButton_Height(gis), FontHeight(TitleFont)+2); } /* REMIND this function should also be changed to use olgx macros */ static int footerHeight(cli,gis) Client *cli; Graphics_info *gis; { return FontHeight(TitleFont) + ResizeArm_Height(gis); } #ifdef OW_I18N_L4 static int IMstatusHeight(cli,gis) Client *cli; Graphics_info *gis; { return FontHeight(TitleFont); } #endif /* height/width functions */ static int heightTopFrame(win) WinPaneFrame *win; { Client *cli = win->core.client; Graphics_info *gisNormal = WinGI(win,NORMAL_GINFO); if (cli->wmDecors->flags & WMDecorationHeader) return headerHeight(cli,gisNormal) + 2*ResizeArm_Height(gisNormal); else return ResizeArm_Height(gisNormal); } static int heightBottomFrame(win) WinPaneFrame *win; { register int result; Client *cli = win->core.client; Graphics_info *gisNormal = WinGI(win,NORMAL_GINFO); result = ResizeArm_Height(gisNormal); if (cli->wmDecors->flags & WMDecorationFooter) result += footerHeight(cli, gisNormal); #ifdef OW_I18N_L4 if (cli->wmDecors->flags & WMDecorationIMStatus) result += IMstatusHeight(cli, gisNormal); #endif return result; } static int widthRightFrame(win) WinPaneFrame *win; { return ResizeArm_Width(WinGI(win,NORMAL_GINFO)); } static int widthLeftFrame(win) WinPaneFrame *win; { return ResizeArm_Width(WinGI(win,NORMAL_GINFO)); } /*************************************************************************** * event-handling functions ***************************************************************************/ /* * handle events for the frame * * The reader should be aware of the fact that both the titlebar * window and the frame window are affected when the window's * focus and select state is changed. The window manager was * being written before the OpenLook spec. was completed so it is * not the most efficient design and is rather awkward in places. * * The way focusing is handled deserves some attention. For a * detailed description of how focusing should be handled see * the Inter-Client Communication Conventions Manual. I'll give * a rough overview below. * * A client can use one of four input models: No Input, Passive, * Locally Active, Globally Active. When OLWM is in focus-follows- * mouse mode, focus is handled in a fairly straightforward manner. * When the cursor enters a window, signaled by the frame getting * an EnterNotify event, OLWM sets the focus like this: * * No Input - Do nothing. * Passive - Set the focus using XSetInputFocus. * Locally Active - Set the focus using XSetInputFocus. * Globally Active - Set the focus by sending a message * to the client. * * When OLWM is in click-to-focus mode, focus is a bit more complicated. * This is due to the fact that the user can press down in the decoration * around the client window and drag the window, and NOT set the focus. * If the user just clicks, without moving, in the decoration then we * set the focus. So, we don't know whether to set the focus until * the button release event. But, if the user presses down in the * client window we must set the focus immediately. This is so the user * can go to an xterm which does not have the focus, press down, (which * sets the focus), move the cursor, and release the button to select * some text, for example. If the client is Passive or Locally Active, * we have a passive grab on the SELECT button. This is how we handle * setting the focus upon button press and release for the four input * modes: * * ButtonPress * No Input - Do Nothing. * Passive - If the press was in the client, * set the focus * Locally Active - If the press was in the client, * set the focus * Globally Active - Do Nothing. * * ButtonRelease * No Input - Do Nothing. * Passive - Set the focus. We only get here * if the button press was NOT in * the client. * Locally Active - Set the focus. We only get here * if the button press was NOT in * the client. * Globally Active - Send a message to the client. */ /* * eventMapRequest -- the pane is go from iconic to normal states */ static int eventMapRequest(dpy, event, frameInfo) Display *dpy; XEvent *event; WinPaneFrame *frameInfo; { Client *cli = frameInfo->core.client; /* transition from Iconic or Withdrawn */ if (cli->wmState == IconicState ) { StateNormal(cli,TimeFresh()); } #ifdef DEBUG else { ErrorWarning("ignoring MapRequest event on frame."); } #endif /* DEBUG */ } /* * eventConfigureRequest -- the pane is trying to change configuration */ static int eventConfigureRequest(dpy, event, frameInfo) Display *dpy; XEvent *event; WinPaneFrame *frameInfo; { Client *cli = frameInfo->core.client; WinPane *winPane = (WinPane*)frameInfo->fcore.panewin; ClientConfigure(cli,winPane,event); } /* * selectClickFrame -- the select button has been clicked */ static int selectClickFrame(dpy, event, frameInfo) Display *dpy; XEvent *event; WinPaneFrame *frameInfo; { Client *cli = frameInfo->core.client; if (!GRV.FocusFollowsMouse) { ClientSetFocus(cli,True,event->xbutton.time); } } /* * selectDoubleClickFrame -- the select button has been double-clicked */ static int selectDoubleClickFrame(dpy, event, frameInfo) Display *dpy; XEvent *event; WinPaneFrame *frameInfo; { if (GRV.SelectToggleStacking) ClientBack(frameInfo->core.client); else ClientFullRestoreSizeToggle(frameInfo->core.client,event->xbutton.time); } /* * selectDragFrame -- the select button has been pressed and moved enough * to trigger a drag. */ static int selectDragFrame(dpy, event, frameInfo, lastpress) Display *dpy; XEvent *event; WinPaneFrame *frameInfo; XButtonEvent *lastpress; { ClientMove(frameInfo->core.client,lastpress); } /* * menuPressFrame -- the menu button has been pressed */ static int menuPressFrame(dpy,event,frameInfo) Display *dpy; XEvent *event; WinPaneFrame *frameInfo; { if (frameInfo->core.client->wmDecors->menu_type != MENU_NONE) ShowStandardMenu(frameInfo, event, False); } /* * selectPressFrame -- the select or adjust button has been pressed */ static int selectAdjustPressFrame(dpy, event, frameInfo) Display *dpy; XEvent *event; WinPaneFrame *frameInfo; { Client *cli = frameInfo->core.client; /* If the button press was in the * client, set the input focus. */ ClientSetFocus(cli,False,event->xbutton.time); } /* * adjustClickFrame -- the adjust button has been pressed */ static int adjustClickFrame(dpy, event, frameInfo) Display *dpy; XEvent *event; WinPaneFrame *frameInfo; { Client *cli = frameInfo->core.client; ToggleSelection(cli, event->xbutton.time); if (!GRV.FocusFollowsMouse) { ClientSetFocus(cli,True,event->xbutton.time); } } /* * eventEnterNotify * * If the pointer enters from the pane, turn off the warp-back flag. Do this * in addition to all the normal frame stuff done by GFrameEventEnterNotify. */ static int eventEnterNotify(dpy, event, frameInfo) Display *dpy; XEvent *event; WinPaneFrame *frameInfo; { if (event->xcrossing.detail == NotifyInferior) frameInfo->pointerIsWarped = False; (void) GFrameEventEnterNotify(dpy, event, frameInfo); } /* * eventLeaveNotify * * If we really left the window, the detail will be something other than * NotifyInferior. If we are in focus-follows-mouse mode, this window loses * the focus. Also, unset the warp-back flag if the pointer has gone outside * the frame. */ static int eventLeaveNotify(dpy, event, frameInfo) Display *dpy; XEvent *event; WinPaneFrame *frameInfo; { /* ignore events caused by grabs */ if (event->xcrossing.mode != NotifyNormal) return; if (event->xcrossing.detail != NotifyInferior) frameInfo->pointerIsWarped = False; } /* * drawHeaderBusy3D - draw header in busy state (3D mode) */ static void drawHeaderBusy3D(dpy, win, cli, sel) Display *dpy; WinPaneFrame *win; Client *cli; Bool sel; { Window self = win->core.self; int w = win->core.width; Graphics_info *gisNormal = WinGI(win,NORMAL_GINFO); int armh = ResizeArm_Height(gisNormal); int armw = ResizeArm_Width(gisNormal); XFillRectangle(dpy, self, WinGC(win,WINDOW_GC), armw, armh, w-2*armw, heightTopFrame(win)-armh); XFillRectangle(dpy, self, WinGC(win,BUSY_GC), armw, armh, w-2*armw, heightTopFrame(win)-armh); olgx_draw_text(gisNormal, self, win->fcore.name, win->titlex, win->titley, 0, OLGX_NORMAL | TextOLGX); if (GRV.BoldFontEmulation) olgx_draw_text(gisNormal, self, win->fcore.name, win->titlex+1, win->titley, 0, OLGX_NORMAL | TextOLGX); } /* * drawHeaderBusy2D - draw header in busy state (2D mode) */ static void drawHeaderBusy2D(dpy, win, cli, sel) Display *dpy; WinPaneFrame *win; Client *cli; Bool sel; { Window self = win->core.self; int w = win->core.width; int armh = ResizeArm_Height(WinGI(win,NORMAL_GINFO)); int armw = ResizeArm_Width(WinGI(win,NORMAL_GINFO)); /* fill in frame-colored area below titlebar */ XFillRectangle(dpy, self, WinGC(win,WINDOW_GC), armw, armh, w-2*armw, heightTopFrame(win)-armh); XFillRectangle(dpy, self, WinGC(win,BUSY_GC), armw, armh, w-2*armw, heightTopFrame(win)-armh); /* fill in window name in titlebar */ DrawText(dpy,self,TitleFont,WinGC(win,FOREGROUND_GC), win->titlex, win->titley, win->fcore.name, win->nameLength); /* emulate bold font */ if (GRV.BoldFontEmulation) { DrawText(dpy,self,TitleFont,WinGC(win,FOREGROUND_GC), win->titlex + 1, win->titley, win->fcore.name, win->nameLength); } } /* * drawHeaderBar3D - draw the header, with indented focus bar (3D mode) */ static void drawHeaderBar3D(dpy, win, cli, sel) Display *dpy; WinPaneFrame *win; Client *cli; Bool sel; { Window self = win->core.self; int w = win->core.width; Graphics_info *gisNormal = WinGI(win,NORMAL_GINFO); int armh = ResizeArm_Height(gisNormal); XFillRectangle(dpy, self, WinGC(win,WINDOW_GC), widthLeftFrame(win), heightTopFrame(win)-armh, w-widthLeftFrame(win)-widthRightFrame(win), armh); olgx_draw_box(gisNormal, self, widthLeftFrame(win), armh, w-widthLeftFrame(win)-widthRightFrame(win), heightTopFrame(win)-(2*armh), OLGX_INVOKED, True); olgx_draw_text(gisNormal, self, win->fcore.name, win->titlex, win->titley, 0, OLGX_INVOKED | TextOLGX); if (GRV.BoldFontEmulation) olgx_draw_text(gisNormal, self, win->fcore.name, win->titlex+1, win->titley, 0, OLGX_NORMAL | TextOLGX); } /* * drawHeaderLines3D - draw the header, with two focus lines (3D mode) */ static void drawHeaderLines3D(dpy, win, cli, sel) Display *dpy; WinPaneFrame *win; Client *cli; Bool sel; { Window self = win->core.self; int outlinewidth = sel?FRAME_SELECTED_WIDTH:FRAME_OUTLINE_WIDTH; int w = win->core.width; Graphics_info *gisNormal = WinGI(win,NORMAL_GINFO); int armh = ResizeArm_Height(gisNormal); int armw = ResizeArm_Width(gisNormal); int lineleft, linelen; static Bool chiseledFocusLines = False; XFillRectangle(dpy, self, WinGC(win,WINDOW_GC), armw, armh, w-2*armw, heightTopFrame(win)-armh); olgx_draw_text(gisNormal, self, win->fcore.name, win->titlex, win->titley, 0, OLGX_NORMAL | TextOLGX); if (GRV.BoldFontEmulation) olgx_draw_text(gisNormal, self, win->fcore.name, win->titlex+1, win->titley, 0, OLGX_NORMAL | TextOLGX); if (cli->wmDecors->flags & WMDecorationResizeable) { lineleft = Resize_width + 1; linelen = w - (2*Resize_width) - 2; } else { lineleft = widthLeftFrame(win); linelen = w - widthLeftFrame(win) - widthRightFrame(win); } if (chiseledFocusLines) { olgx_draw_box(gisNormal, self, lineleft, outlinewidth+1, linelen, 2, OLGX_INVOKED, 0); olgx_draw_box(gisNormal, self, widthLeftFrame(win), heightTopFrame(win)-4, w-widthLeftFrame(win)-widthRightFrame(win), 2, OLGX_INVOKED, 0); } else { olgx_draw_text_ledge(gisNormal, self, lineleft, outlinewidth+1, linelen); olgx_draw_text_ledge(gisNormal, self, widthLeftFrame(win), heightTopFrame(win)-3, w-widthLeftFrame(win)-widthRightFrame(win)); } } /* * drawHeaderNoFocus3D - draw the header, without focus (3D mode) */ static void drawHeaderNoFocus3D(dpy, win, cli, sel) Display *dpy; WinPaneFrame *win; Client *cli; Bool sel; { Window self = win->core.self; int w = win->core.width; Graphics_info *gisNormal = WinGI(win,NORMAL_GINFO); int armh = ResizeArm_Height(gisNormal); int armw = ResizeArm_Width(gisNormal); XFillRectangle(dpy, self, WinGC(win,WINDOW_GC), armw, armh, w-2*armw, heightTopFrame(win)-armh); olgx_draw_text(gisNormal, self, win->fcore.name, win->titlex, win->titley, 0, OLGX_NORMAL | TextOLGX); if (GRV.BoldFontEmulation) olgx_draw_text(gisNormal, self, win->fcore.name, win->titlex+1, win->titley, 0, OLGX_NORMAL | TextOLGX); } /* * drawHeaderBar2D - draw the header, with inverted focus bar (2D mode) */ static void drawHeaderBar2D(dpy, win, cli, sel) Display *dpy; WinPaneFrame *win; Client *cli; Bool sel; { Window self = win->core.self; int w = win->core.width; int armh = ResizeArm_Height(WinGI(win,NORMAL_GINFO)); /* draw frame-colored rectangle below titlebar box */ XFillRectangle(dpy, self, WinGC(win,WINDOW_GC), widthLeftFrame(win), heightTopFrame(win)-armh, w-widthLeftFrame(win)-widthRightFrame(win), armh); /* draw black titlebar to indicate 2d focus (XFillRectangle uses * foreground color for fill) */ XFillRectangle(dpy, self, WinGC(win,FOREGROUND_GC), widthLeftFrame(win), armh-1, w-widthLeftFrame(win)-widthRightFrame(win), heightTopFrame(win)-(2*armh)+1); /* fill in window name */ DrawText(dpy,self,TitleFont,WinGC(win,WINDOW_GC), win->titlex, win->titley, win->fcore.name, win->nameLength); /* emulate bold font */ if (GRV.BoldFontEmulation) { DrawText(dpy,self,TitleFont,WinGC(win,WINDOW_GC), win->titlex + 1, win->titley, win->fcore.name, win->nameLength); } } /* * drawHeaderLines2D - draw the header, with focus lines (2D mode) */ static void drawHeaderLines2D(dpy, win, cli, sel) Display *dpy; WinPaneFrame *win; Client *cli; Bool sel; { Window self = win->core.self; int outlinewidth = sel?FRAME_SELECTED_WIDTH:FRAME_OUTLINE_WIDTH; int w = win->core.width; Graphics_info *gisNormal = WinGI(win,NORMAL_GINFO); int armh = ResizeArm_Height(gisNormal); int armw = ResizeArm_Width(gisNormal); GC foregroundGC = WinGC(win,FOREGROUND_GC); /* fill in frame-colored area below titlebar area */ XFillRectangle(dpy, self, WinGC(win,WINDOW_GC), armw, armh, w-2*armw, heightTopFrame(win)-armh); /* fill in window name */ DrawText(dpy,self,TitleFont,foregroundGC, win->titlex, win->titley, win->fcore.name, win->nameLength); /* emulate bold font */ if (GRV.BoldFontEmulation) { DrawText(dpy,self,TitleFont,foregroundGC, win->titlex + 1, win->titley, win->fcore.name, win->nameLength); } /* draw 2 pixel tall black focus indicator line above titlebar area * (without overwriting the resize corners) */ if (cli->wmDecors->flags & WMDecorationResizeable) XFillRectangle(dpy, self, foregroundGC, Resize_width+1, outlinewidth+1, w-(2*Resize_width)-2, 2); else XFillRectangle(dpy, self, foregroundGC, widthLeftFrame(win), outlinewidth+1, w-widthLeftFrame(win)-widthRightFrame(win), 2); /* draw 2 pixel tall black focus indicator line below titlebar area */ XFillRectangle(dpy, self, foregroundGC, widthLeftFrame(win), heightTopFrame(win)-3, w-widthLeftFrame(win)-widthRightFrame(win), 2); } /* * drawHeaderNoFocus2D - draw the header, without focus (2D mode) */ static void drawHeaderNoFocus2D(dpy, win, cli, sel) Display *dpy; WinPaneFrame *win; Client *cli; Bool sel; { Window self = win->core.self; int w = win->core.width; int armh = ResizeArm_Height(WinGI(win,NORMAL_GINFO)); int armw = ResizeArm_Width(WinGI(win,NORMAL_GINFO)); GC foregroundGC = WinGC(win,FOREGROUND_GC); /* fill in frame-colored area below titlebar */ XFillRectangle(dpy, self, WinGC(win,WINDOW_GC), armw, armh, w-2*armw, heightTopFrame(win)-armh); /* fill in window name */ DrawText(dpy,self,TitleFont,foregroundGC, win->titlex, win->titley, win->fcore.name, win->nameLength); /* emulate bold font */ if (GRV.BoldFontEmulation) { DrawText(dpy,self,TitleFont,foregroundGC, win->titlex + 1, win->titley, win->fcore.name, win->nameLength); } } /* drawFooter - draw the footer */ static void drawFooter(dpy, win, cli) Display *dpy; WinPaneFrame *win; Client *cli; { Window self = win->core.self; int w = win->core.width; int h = win->core.height; int fy = h-heightBottomFrame(win); Graphics_info *gisNormal = WinGI(win,NORMAL_GINFO); int baseline; int margin = FRAME_OUTLINE_WIDTH + ptSize(gisNormal); int footwidth = w - 2*margin; int qfootwidth = footwidth / 4; int gutter = ptSize(gisNormal); int rstart, lmaxwidth, rmaxwidth; #ifdef OW_I18N_L4 if (cli->wmDecors->flags & WMDecorationIMStatus) fy += IMstatusHeight(cli,gisNormal); #endif baseline = fy + FontAscent(TitleFont) + ResizeArm_Height(gisNormal); /* fill in frame-colored area above footer */ XFillRectangle(dpy, self, WinGC(win,WINDOW_GC), widthLeftFrame(win), fy, w - widthLeftFrame(win) - widthRightFrame(win), footerHeight(cli, gisNormal)); /* REMIND we don't paint the "more arrow" if text is truncated */ if ((win->leftFooter.width + win->rightFooter.width + gutter) <= footwidth) { /* room for both: no clipping */ lmaxwidth = win->leftFooter.width; rmaxwidth = win->rightFooter.width; } else if (win->rightFooter.width < qfootwidth) { /* right footer takes less than 1/4 of the footer */ rmaxwidth = win->rightFooter.width; lmaxwidth = footwidth - rmaxwidth - gutter; } else if ((win->leftFooter.width) < (footwidth - qfootwidth - gutter)) { /* left footer takes less than 3/4 of the footer */ lmaxwidth = win->leftFooter.width; rmaxwidth = footwidth - lmaxwidth - gutter; } else { /* must truncate both */ rmaxwidth = qfootwidth; lmaxwidth = footwidth - qfootwidth - gutter; } rstart = w - margin - rmaxwidth; if (win->leftFooter.string) { olgx_draw_text(gisNormal, self, win->leftFooter.string, margin, baseline, lmaxwidth, OLGX_NORMAL | TextOLGX); } if (win->rightFooter.string) { olgx_draw_text(gisNormal, self, win->rightFooter.string, rstart, baseline, rmaxwidth, OLGX_NORMAL | TextOLGX); } } #ifdef OW_I18N_L4 /* * drawIMStatus - draw the IMStatus, IMStatus window position is NOT * reflected by footer exsitence or not, but footer postion will * affect by IMStatus existance (this is bad assumption). */ static void drawIMStatus(dpy, win, cli) Display *dpy; WinPaneFrame *win; Client *cli; { Window self; int w; int h; int armh; int fy; int baseline; int margin; int statuswidth; int qstatuswidth; int gutter; int rstart, lmaxwidth, rmaxwidth; Graphics_info *gisNormal = WinGI(win,NORMAL_GINFO); self = win->core.self; w = win->core.width; h = win->core.height; armh = ResizeArm_Height(gisNormal); fy = h - heightBottomFrame(win); baseline = fy - GRV.TitleFontSetInfo.fsx->max_logical_extent.y + ResizeArm_Height(gisNormal); margin = FRAME_OUTLINE_WIDTH + ptSize(gisNormal); statuswidth = w - 2*margin; qstatuswidth = statuswidth / 4; gutter = ptSize(gisNormal); /* fill in frame-colored area above IMStatus */ XFillRectangle(dpy, self, WinGC(win,WINDOW_GC), widthLeftFrame(win), fy, w - widthLeftFrame(win) - widthRightFrame(win), IMstatusHeight(cli, gisNormal)); /* REMIND we don't paint the "more arrow" if text is truncated */ if ((win->leftIMStatus.width + win->rightIMStatus.width + gutter) <= statuswidth) { /* room for both: no clipping */ lmaxwidth = win->leftIMStatus.width; rmaxwidth = win->rightIMStatus.width; } else if (win->leftIMStatus.width < qstatuswidth) { /* left IMStatus takes less than 1/4 of the status */ lmaxwidth = win->leftIMStatus.width; rmaxwidth = statuswidth - lmaxwidth - gutter; } else if ((win->rightIMStatus.width) < (statuswidth-qstatuswidth-gutter)) { /* right IMStatus takes less than 3/4 of the IMStatus */ rmaxwidth = win->rightIMStatus.width; lmaxwidth = statuswidth - rmaxwidth - gutter; } else { /* must truncate both */ lmaxwidth = qstatuswidth; rmaxwidth = statuswidth - qstatuswidth - gutter; } rstart = w - margin - rmaxwidth; if (win->leftIMStatus.string) { olgx_draw_text(gisNormal, self, win->leftIMStatus.string, margin, baseline, lmaxwidth, OLGX_NORMAL | TextOLGX); if (GRV.BoldFontEmulation == True) olgx_draw_text(gisNormal, self, win->leftIMStatus.string, margin + 1, baseline, lmaxwidth, OLGX_NORMAL | TextOLGX); } if (win->rightIMStatus.string) { olgx_draw_text(gisNormal, self, win->rightIMStatus.string, rstart, baseline, rmaxwidth, OLGX_NORMAL | TextOLGX); if (GRV.BoldFontEmulation) olgx_draw_text(gisNormal, self, win->rightIMStatus.string, rstart + 1, baseline, rmaxwidth, OLGX_NORMAL | TextOLGX); } } #endif OW_I18N_L4 /* drawBase2D - draw the outer border of the window (2D mode) */ static void drawBase2D(dpy, win, cli, sel) Display *dpy; WinPaneFrame *win; Client *cli; Bool sel; { Window self = win->core.self; int lwidth = sel ? FRAME_SELECTED_WIDTH : FRAME_OUTLINE_WIDTH; int w = win->core.width; int h = win->core.height; int armh = ResizeArm_Height(WinGI(win,NORMAL_GINFO)); int armw = ResizeArm_Width(WinGI(win,NORMAL_GINFO)); GC borderGC = WinGC(win,BORDER_GC); /* fill background with window color */ XFillRectangle(dpy, self, WinGC(win,WINDOW_GC), lwidth, lwidth, w-(2*lwidth), h-(2*lwidth)); /* draw frame outline: top, bottom, left, right */ XFillRectangle(dpy,self,borderGC,0,0,w,lwidth); XFillRectangle(dpy,self,borderGC,0,h-lwidth,w,lwidth); XFillRectangle(dpy,self,borderGC,0,lwidth,lwidth,h-(2*lwidth)); XFillRectangle(dpy,self,borderGC,w-lwidth,lwidth,lwidth,h-(2*lwidth)); } /* drawBase3D - draw the outer border of the window (3D mode) */ static void drawBase3D(dpy, win, cli, sel) Display *dpy; WinPaneFrame *win; Client *cli; Bool sel; { Graphics_info *gisNormal = WinGI(win,NORMAL_GINFO); olgx_draw_box(gisNormal, win->core.self, 0, 0, win->core.width, win->core.height, OLGX_NORMAL, True); if (sel) { olgx_draw_box(gisNormal, win->core.self, 1, 1, win->core.width-2, win->core.height-2, OLGX_NORMAL, False); } } /* * drawHeader - draw header appropriately, taking into consideration the 2D/3D * style, busy state, selected state, and focus state. */ static void drawHeader(dpy, winInfo, cli, sel) Display *dpy; WinPaneFrame *winInfo; Client *cli; Bool sel; { void (*func)(); if (cli->isBusy) { func = Win3D(winInfo) ? drawHeaderBusy3D : drawHeaderBusy2D; } else if (cli->isFocus) { /* * Switch based on a value whose 1-bit indicates focus bar (if * zero) or focus lines (if one), and whose 2-bit indicates 2D (if * zero) or 3D (if one). */ switch (((GRV.FocusFollowsMouse ? 1 : 0) ^ (GRV.InvertFocusHighlighting ? 1 : 0)) | (Win3D(winInfo) ? 2 : 0)) { case 0: func = drawHeaderBar2D; break; case 1: func = drawHeaderLines2D; break; case 2: func = drawHeaderBar3D; break; case 3: func = drawHeaderLines3D; break; } } else { func = Win3D(winInfo) ? drawHeaderNoFocus3D : drawHeaderNoFocus2D; } (*func)(dpy, winInfo, cli, sel); } /* * drawFrame -- draw the frame window */ /*ARGSUSED*/ /* dpy arg will be used when multiple Displays supported */ static int drawFrame(dpy, winInfo) Display *dpy; WinPaneFrame *winInfo; { Client *cli = winInfo->core.client; if (Win3D(winInfo) && GRV.F3dFrames) drawBase3D(dpy, winInfo, cli, cli->isSelected); else drawBase2D(dpy, winInfo, cli, cli->isSelected); if (cli->wmDecors->flags & WMDecorationHeader) drawHeader(dpy, winInfo, cli, cli->isSelected); if (cli->wmDecors->flags & WMDecorationFooter) drawFooter(dpy, winInfo, cli); /* no difference between 2D and 3D */ #ifdef OW_I18N_L4 if (cli->wmDecors->flags & WMDecorationIMStatus) drawIMStatus(dpy, winInfo, cli); /* no difference between 2D and 3D */ #endif } /* * focusFrame - call global focus handler and redraw frame */ static int focusFrame(dpy,winInfo,focus) Display *dpy; WinPaneFrame *winInfo; Bool focus; { GFrameFocus(dpy,winInfo,focus); (WinFunc(winInfo,core.drawfunc))(dpy,winInfo); } /* * DestroyFrame -- destroy the frame window resources and free any allocated * data. */ static int destroyFrame(dpy, winInfo) Display *dpy; WinPaneFrame *winInfo; { Client *cli = winInfo->core.client; /* free our data and throw away window */ ListDestroy(winInfo->core.children); MemFree(winInfo->fcore.name); if (winInfo->leftFooter.string) MemFree(winInfo->leftFooter.string); if (winInfo->rightFooter.string) MemFree(winInfo->rightFooter.string); #ifdef OW_I18N_L4 if (winInfo->leftIMStatus.string) MemFree(winInfo->leftIMStatus.string); if (winInfo->leftIMStatus.string) MemFree(winInfo->rightIMStatus.string); #endif /* * REMIND: we need to remove grabs and shapes from this window, * because it may be stored on a cache and re-used. If we were to * really destroy the window, we wouldn't need to remove them. */ FrameSetupGrabs(cli, winInfo->core.self, False); #ifdef SHAPE if (cli->isShaped) { cli->isShaped = False; FrameUpdateShape(cli, winInfo); } #endif /* SHAPE */ ScreenDestroyWindow(winInfo->core.client->scrInfo, winInfo->core.self); WIUninstallInfo(winInfo->core.self); #ifdef DEBUG memset((char *) winInfo, 0, sizeof(WinPaneFrame)); #endif /* DEBUG */ MemFree(winInfo); } /* * newconfigFrame -- compute a new configuration of frame window */ static int newconfigFrame(winInfo, pxcre) WinPaneFrame *winInfo; XConfigureRequestEvent *pxcre; { Client *cli = winInfo->core.client; Display *dpy = cli->dpy; WinPane *winPane = (WinPane *)winInfo->fcore.panewin; int neww; int newh; WinGeneric *winDeco; Graphics_info *gisNormal = WinGI(winPane,NORMAL_GINFO); neww = winInfo->fcore.panewin->core.width + widthLeftFrame(winInfo) + widthRightFrame(winInfo); newh = winInfo->fcore.panewin->core.height + heightTopFrame(winInfo) + heightBottomFrame(winInfo); if (neww != winInfo->core.width) { winInfo->core.width = neww; winInfo->core.dirtyconfig |= CWWidth; setTitleText(dpy,winInfo,winPane->core.self); setFooterText(dpy,winInfo,winPane->core.self); #ifdef OW_I18N_L4 setIMStatusText(dpy,winInfo,winPane->core.self); #endif } if (newh != winInfo->core.height) { winInfo->core.height = newh; winInfo->core.dirtyconfig |= CWHeight; } if (winInfo->core.dirtyconfig) { (WinFunc(winPane,core.newposfunc))(winPane, widthLeftFrame(winInfo), heightTopFrame(winInfo)); winDeco = winInfo->winDeco; if (cli->wmDecors->flags & WMDecorationPushPin) { (WinFunc(winDeco,core.newposfunc))(winDeco, xposPushPin(gisNormal), yposPushPin(cli,gisNormal)); } if (cli->wmDecors->flags & WMDecorationCloseButton) { (WinFunc(winDeco,core.newposfunc))(winDeco, xposCloseButton(gisNormal), yposCloseButton(cli,gisNormal)); } if (cli->isBusy && winInfo->winBusy != NULL) (WinFunc(winInfo->winBusy,core.newposfunc))(winInfo->winBusy, widthLeftFrame(winInfo), heightTopFrame(winInfo)); if (cli->wmDecors->flags & WMDecorationResizeable) updateResizePositions(winInfo); } return winInfo->core.dirtyconfig; } /* * setconfigFrame -- set new configuration for frame window * Update its shape if it has one, and if the width or height have changed. */ static int setconfigFrame(dpy, winInfo) Display *dpy; WinPaneFrame *winInfo; { Client *cli = winInfo->core.client; #ifdef SHAPE if (cli->isShaped && (winInfo->core.dirtyconfig & (CWWidth | CWHeight))) { FrameUpdateShape(cli, winInfo); } #endif /* SHAPE */ GFrameSetConfigFunc(dpy, winInfo); } /* * selectFrame * * Update the frame's shape if it has one, then do normal selection * processing. */ static int selectFrame(dpy, winInfo, selected) Display *dpy; WinPaneFrame *winInfo; Bool selected; { Client *cli = winInfo->core.client; #ifdef SHAPE if (cli->isShaped) FrameUpdateShape(cli, winInfo); #endif /* SHAPE */ GFrameSelect(dpy, winInfo, selected); } /* * updateResizePositions -- update the position fields of the resize corners. * This is necessary because the resize corners are positioned automatically * by the protocol's window gravity feature, instead of being positioned * through the normal window configuration scheme. */ static void updateResizePositions(frame) WinPaneFrame *frame; { WinResize *resize; int i; for (i = 0; i < 4; ++i) { resize = frame->resizeCorner[i]; if (resize == NULL) continue; switch (resize->which) { case upleft: resize->core.x = 0; resize->core.y = 0; break; case upright: resize->core.x = frame->core.width - Resize_width; resize->core.y = 0; break; case lowleft: resize->core.x = 0; resize->core.y = frame->core.height - Resize_height; break; case lowright: resize->core.x = frame->core.width - Resize_width; resize->core.y = frame->core.height - Resize_height; break; } } } /* * makeSpecials -- make any special mark windows (pushpin, close button) */ static void makeSpecials(cli,dpy,wf,panewin,wid,high) Client *cli; Display *dpy; WinPaneFrame *wf; Window panewin; int wid,high; { int decorWidth = 0; Graphics_info *gisNormal = WinGI(wf,NORMAL_GINFO); /* Make resize children */ if (cli->wmDecors->flags & WMDecorationResizeable) { wf->resizeCorner[upleft] = MakeResize(dpy, wf, upleft, 0, 0); wf->resizeCorner[upright] = MakeResize(dpy, wf, upright, wid - Resize_width, 0); wf->resizeCorner[lowleft] = MakeResize(dpy, wf, lowleft, 0, high - Resize_height); wf->resizeCorner[lowright] = MakeResize(dpy, wf, lowright, wid - Resize_width, high - Resize_height); } /* * Here we figure out, among other things, how much space * the decorations will take up in the title bar. Also, we * set the leftmost point at which the title string can be * drawn without interfering with the decoration, if any, * on the left hand side of the title bar. 'frame->titleOff' * * A window cannot have both a close button and a pushpin. So, if * they ask for both, they only get the pushpin. This mutual * exclusion was taken care of in GetOLWinDecors in states.c */ if (cli->wmDecors->flags & WMDecorationPushPin) { wf->winDeco = (WinGeneric *) MakePushPin(dpy,wf,panewin,xposPushPin(gisNormal), yposPushPin(cli,gisNormal)); decorWidth = xposPushPin(gisNormal) + PushPinOut_Width(gisNormal); } if (cli->wmDecors->flags & WMDecorationCloseButton) { wf->winDeco = (WinGeneric *) MakeButton(dpy,wf,xposCloseButton(gisNormal), yposCloseButton(cli,gisNormal)); decorWidth = xposCloseButton(gisNormal) + Abbrev_MenuButton_Width(gisNormal) ; } wf->titleOff = decorWidth + decoToTitle(gisNormal); } /* setTitleText - extract the name of the window and set up the titlebar * area */ static void setTitleText(dpy,w,panewin) Display *dpy; WinPaneFrame *w; Window panewin; { int availwidth; Text *ptr, *tmp; /* * Get window name */ if (w->fcore.name) MemFree(w->fcore.name); if (!PropGetWMName(dpy,panewin,&(w->fcore.name))) { w->fcore.name = MemNewText(GRV.DefaultWinName); } w->nameLength = TextLen(w->fcore.name); w->nameWidth = FontWidth(TitleFont,w->fcore.name,w->nameLength); availwidth = w->core.width - widthRightFrame(w) - w->titleOff; availwidth = MAX(0,availwidth); if (availwidth < w->nameWidth) { /* Must truncate the title. * First we see if there is a colon and truncate * all the chars up to the colon. */ if (ptr = TextChr(w->fcore.name, ':')) { ptr++; /* after ':' */ w->nameLength -= ptr - w->fcore.name; tmp = w->fcore.name; w->fcore.name = MemNewText(ptr); MemFree(tmp); w->nameWidth = FontWidth(TitleFont, w->fcore.name,w->nameLength); } } while (availwidth < w->nameWidth) { /* Truncate the title from the right. */ w->fcore.name[TextLen(w->fcore.name) - 1] = '\0'; w->nameLength--; w->nameWidth = FontWidth(TitleFont, w->fcore.name,w->nameLength); } /* Center that title. */ w->titlex = w->titleOff + (availwidth - w->nameWidth)/2; w->titley = FontAscent(TitleFont) + ResizeArm_Height(WinGI(w,NORMAL_GINFO)); } /* * calcFooterSize - figure footer size from string */ static void calcFooterSize(footer) Footer *footer; { if (footer->string == NULL) { footer->width = footer->length = 0; } else { footer->length = TextLen(footer->string); footer->width = FontWidth(TitleFont, footer->string,footer->length); } } /* * setLeftFooter - sets the left footer from the AtomLeftFooter property */ static void setLeftFooter(dpy,winInfo,panewin) Display *dpy; WinPaneFrame *winInfo; Window panewin; { if (winInfo->leftFooter.string) MemFree(winInfo->leftFooter.string); if (!PropGetOLLeftFooter(dpy,panewin,&(winInfo->leftFooter.string))) winInfo->leftFooter.string = NULL; calcFooterSize(&(winInfo->leftFooter)); } /* * setRightFooter - sets the left footer from the AtomRightFooter property */ static void setRightFooter(dpy,winInfo,panewin) Display *dpy; WinPaneFrame *winInfo; Window panewin; { if (winInfo->rightFooter.string) MemFree(winInfo->rightFooter.string); if (!PropGetOLRightFooter(dpy,panewin,&(winInfo->rightFooter.string))) winInfo->rightFooter.string = NULL; calcFooterSize(&(winInfo->rightFooter)); } /* * setFooterText - set both left and right footers */ static void setFooterText(dpy,w,panewin) Display *dpy; WinPaneFrame *w; Window panewin; { setLeftFooter(dpy,w,panewin); setRightFooter(dpy,w,panewin); } #ifdef OW_I18N_L4 /* * setLeftIMStatus - sets the left IMStatus from the AtomLeftIMStatus property */ static void setLeftIMStatus(dpy,winInfo,panewin) Display *dpy; WinPaneFrame *winInfo; Window panewin; { if (winInfo->leftIMStatus.string) MemFree(winInfo->leftIMStatus.string); if (!PropGetOLLeftIMStatus(dpy,panewin,&(winInfo->leftIMStatus.string))) winInfo->leftIMStatus.string = NULL; calcFooterSize(&(winInfo->leftIMStatus)); } /* * setRightIMStatus - sets the left IMStatus from the AtomRightIMStatus property */ static void setRightIMStatus(dpy,winInfo,panewin) Display *dpy; WinPaneFrame *winInfo; Window panewin; { if (winInfo->rightIMStatus.string) MemFree(winInfo->rightIMStatus.string); if (!PropGetOLRightIMStatus(dpy,panewin,&(winInfo->rightIMStatus.string))) winInfo->rightIMStatus.string = NULL; calcFooterSize(&(winInfo->rightIMStatus)); } /* * setIMStatusText - set both left and right IMStatus text */ static void setIMStatusText(dpy,w,panewin) Display *dpy; WinPaneFrame *w; Window panewin; { setLeftIMStatus(dpy,w,panewin); setRightIMStatus(dpy,w,panewin); } #endif /* * fullrestoreFrame */ /* ARGSUSED */ static int fullrestoreFrame(client,timestamp) Client *client; Time timestamp; { WinPaneFrame *frameInfo = client->framewin; WinPane *paneInfo = (WinPane *)frameInfo->fcore.panewin; int width,height; if (frameInfo->fcore.fullsize) { /* going to restore/normal */ /* restore from saved values */ frameInfo->core.y = frameInfo->restoreY; frameInfo->core.dirtyconfig |= CWY; frameInfo->restoreSet = False; width = frameInfo->restoreWidth; height = frameInfo->restoreHeight; } else { /* going to fullsize */ /* save current size attributes */ if (!frameInfo->restoreSet) { frameInfo->restoreWidth = paneInfo->core.width; frameInfo->restoreHeight = paneInfo->core.height; frameInfo->restoreY = frameInfo->core.y; frameInfo->restoreSet = True; } /* move to the top of the screen */ frameInfo->core.y = 0; frameInfo->core.dirtyconfig |= CWY; /* if has specified a max size then use it */ if ((client->normHints) && (client->normHints->flags & PMaxSize)) { width = client->normHints->max_width; height = client->normHints->max_height; /* else if has specified a resize increment then use it */ } else if ((client->normHints) && (client->normHints->flags & PResizeInc)) { int availHt,incr,incrHt,baseHt; if (client->normHints->flags & PBaseSize) baseHt = client->normHints->base_height; else baseHt = 0; incrHt = client->normHints->height_inc; availHt = DisplayHeight(client->dpy,client->screen) - heightTopFrame(frameInfo) - heightBottomFrame(frameInfo) - baseHt; incr = availHt / incrHt; width = paneInfo->core.width; height = baseHt + ( incr * incrHt); /* else make it full screen height */ } else { width = paneInfo->core.width; height = DisplayHeight(client->dpy,client->screen) - heightTopFrame(frameInfo) - heightBottomFrame(frameInfo); } } /* Set the new pos/height */ (WinFunc(paneInfo,pcore.setsizefunc))(paneInfo,width,height); WinCallConfig(client->dpy,paneInfo,NULL); frameInfo->fcore.fullsize = !frameInfo->fcore.fullsize; } /*************************************************************************** * global functions ***************************************************************************/ /* * FrameSetupGrabs * * Set up any pointer grabs for this window, as appropriate for the focus mode * (follow-mouse or click) and for the focus model (Passive, Globally Active, * etc.) of this window. This is important for ClickFocus mode for Passive * and Locally Active clients. If the user clicks over the pane window, we * get the event, set the focus, and replay the event, thus passing the event * through. * * The buttons are grabbed with owner-events True so that olwm's own * subwindows (e.g. window buttons, resize corners) will get the event instead * of the frame. * * REMIND we need to remove explicit reference to Buttons 1 and 2. */ void FrameSetupGrabs(cli, win, activate) Client *cli; Window win; Bool activate; { if (!GRV.FocusFollowsMouse) { switch (cli->focusMode) { case Passive: case LocallyActive: if (activate) { XGrabButton(cli->dpy, Button1, AnyModifier, win, True, ButtonPressMask | ButtonReleaseMask | ButtonMotionMask, GrabModeSync, GrabModeSync, None, None); XGrabButton(cli->dpy, Button2, AnyModifier, win, True, ButtonPressMask | ButtonReleaseMask | ButtonMotionMask, GrabModeSync, GrabModeSync, None, None); } else { XUngrabButton(cli->dpy, Button1, AnyModifier, win); XUngrabButton(cli->dpy, Button2, AnyModifier, win); } break; } } } /* * FrameAllowEvents * * Issue an AllowEvents request if necessary. If the client is Passive or * Locally Active, and the focus mode is click-to-type, there is a passive, * synchronous grab on the frame window. If a subwindow receives an event but * wants to ignore it, it must call this function in order to unfreeze the * devices. */ void FrameAllowEvents(cli, time) Client *cli; Time time; { if (!GRV.FocusFollowsMouse) { switch (cli->focusMode) { case Passive: case LocallyActive: XAllowEvents(cli->dpy, AsyncBoth, time); break; } } } /* * MakeFrame -- create the frame window. Return a WinPaneFrame structure. * Note that unlike most Make functions, frames are not mapped right * away. */ WinPaneFrame * MakeFrame(cli,panewin,paneattrs) Client *cli; Window panewin; XWindowAttributes *paneattrs; { Display *dpy = cli->dpy; WinPaneFrame *w; Window win; XSetWindowAttributes attributes; unsigned long valuemask; int wid, high; /* create the frame window */ attributes.background_pixmap = None; attributes.border_pixel = 0; attributes.colormap = cli->scrInfo->colormap; attributes.cursor = GRV.TargetPointer; attributes.event_mask = ButtonPressMask | ButtonReleaseMask | ExposureMask | ButtonMotionMask | EnterWindowMask | LeaveWindowMask | SubstructureRedirectMask | FocusChangeMask | PropertyChangeMask; attributes.save_under = paneattrs->save_under || (cli->transientFor != 0 && GRV.TransientsSaveUnder); valuemask = CWEventMask | CWSaveUnder | CWBackPixmap | CWCursor | CWBorderPixel | CWColormap; win = ScreenCreateWindow(cli->scrInfo, cli->scrInfo->rootid, 0, 0, 1, 1, valuemask, &attributes); /* create the associated structure */ w = MemNew(WinPaneFrame); w->class = &classPaneFrame; w->core.self = win; w->core.kind = WIN_FRAME; w->core.parent = NULL; w->core.children = NULL; w->core.client = cli; /* x and y set later */ /* compute size of frame from pane */ wid = paneattrs->width + widthLeftFrame(w) + widthRightFrame(w); high = paneattrs->height + heightTopFrame(w) + heightBottomFrame(w); w->core.width = wid; /* these get fixed up at config time */ w->core.height = high; w->core.stack_mode = Above; w->core.dirtyconfig = CWX | CWY | CWHeight | CWWidth | CWStackMode; w->core.colormap = None; w->core.exposures = NULL; w->core.helpstring = "olwm:Frame"; cli->framewin = w; /* register the window */ WIInstallInfo(w); /* if there's any special marks, make them */ makeSpecials(cli,dpy,w,panewin,wid,high); /* set up the titlebar */ if (cli->wmDecors->flags & WMDecorationHeader) setTitleText(dpy,w,panewin); /* set up the footer */ if (cli->wmDecors->flags & WMDecorationFooter) setFooterText(dpy,w,panewin); #ifdef OW_I18N_L4 /* set up the status */ if (cli->wmDecors->flags & WMDecorationIMStatus) setIMStatusText(dpy,w,panewin); #endif OW_I18N_L4 /* Determine which menu should come up when menus are requested * for this frame. */ FrameSetupGrabs(cli, win, True); /* set the full/normal size to transition to full size * on first activation */ w->fcore.fullsize = False;; w->restoreSet = False; return w; } void FrameInit(dpy) Display *dpy; { classPaneFrame.core.kind = WIN_FRAME; classPaneFrame.core.xevents[MapRequest] = eventMapRequest; classPaneFrame.core.xevents[ConfigureRequest] = eventConfigureRequest; classPaneFrame.core.xevents[Expose] = WinEventExpose; classPaneFrame.core.xevents[ButtonRelease] = GFrameEventButtonRelease; classPaneFrame.core.xevents[MotionNotify] = GFrameEventMotionNotify; classPaneFrame.core.xevents[ButtonPress] = GFrameEventButtonPress; classPaneFrame.core.xevents[EnterNotify] = eventEnterNotify; classPaneFrame.core.xevents[LeaveNotify] = eventLeaveNotify; classPaneFrame.core.xevents[FocusIn] = GFrameEventFocus; classPaneFrame.core.xevents[FocusOut] = GFrameEventFocus; classPaneFrame.core.focusfunc = focusFrame; classPaneFrame.core.drawfunc = drawFrame; classPaneFrame.core.destroyfunc = destroyFrame; classPaneFrame.core.selectfunc = selectFrame; classPaneFrame.core.newconfigfunc = newconfigFrame; classPaneFrame.core.newposfunc = WinNewPosFunc; classPaneFrame.core.setconfigfunc = setconfigFrame; classPaneFrame.core.createcallback = NULL; classPaneFrame.core.heightfunc = NULL; classPaneFrame.core.widthfunc = NULL; classPaneFrame.fcore.heighttop = heightTopFrame; classPaneFrame.fcore.heightbottom = heightBottomFrame; classPaneFrame.fcore.widthleft = widthRightFrame; classPaneFrame.fcore.widthright = widthLeftFrame; classPaneFrame.fcore.menuPress = menuPressFrame; classPaneFrame.fcore.adjustPress = selectAdjustPressFrame; classPaneFrame.fcore.adjustClick = adjustClickFrame; classPaneFrame.fcore.selectPress = selectAdjustPressFrame; classPaneFrame.fcore.selectClick = selectClickFrame; classPaneFrame.fcore.selectDoubleClick = selectDoubleClickFrame; classPaneFrame.fcore.selectDrag = selectDragFrame; classPaneFrame.fcore.fullrestoreToggle = fullrestoreFrame; } #ifdef NOTDEF /* FrameSetStack -- set the frame's stacking position. Does not initiate * a configuration change. */ void FrameSetStack(win, mask, mode, sib) WinPaneFrame *win; int mask; int mode; Window sib; { WinGeneric *wsib; if ((mask & CWSibling) && (mask & CWStackMode)) { wsib = WIGetInfo(sib); if (wsib != NULL) { win->core.stack_sib = wsib->core.client->framewin->core.self; win->core.dirtyconfig |= CWSibling; } } if (mask & CWStackMode) { win->core.stack_mode = mode; win->core.dirtyconfig |= CWStackMode; } } #endif /* NOTDEF */ /* FrameMoveRelative * Moves a frame by a delta in x and y */ void FrameMoveRelative(win,dx,dy) WinPaneFrame *win; int dx,dy; { (WinFunc(win,core.newposfunc))(win,win->core.x+dx,win->core.y+dy); } /* * FrameSetPosAbsolute * The client is moving the pane to an absolute location on the screen, so we * must move the frame accordingly. */ void FrameSetPosAbsolute(win, x, y) WinPaneFrame *win; int x, y; { int fx, fy; WinGenericPane *pane = win->fcore.panewin; int panebord = (pane == NULL)?(0):(pane->pcore.oldBorderWidth); fx = x - widthLeftFrame(win)+panebord; fy = y - heightTopFrame(win)+panebord; (WinFunc(win,core.newposfunc))(win, fx, fy); } /* * FrameGetGravityOffset -- calculate the offset due to window-gravity and * fill the values into dx and dy. */ void FrameGetGravityOffset(frame, dx, dy) WinPaneFrame *frame; int *dx; int *dy; { int decorw = widthLeftFrame(frame) + widthRightFrame(frame); int decorh = heightTopFrame(frame) + heightBottomFrame(frame); int bw = frame->fcore.panewin->pcore.oldBorderWidth; switch (frame->core.client->normHints->win_gravity) { default: case NorthWestGravity: *dx = 0; *dy = 0; break; case NorthGravity: *dx = decorw/2 - bw; *dy = 0; break; case NorthEastGravity: *dx = decorw - 2*bw; *dy = 0; break; case WestGravity: *dx = 0; *dy = decorh/2 - bw; break; case CenterGravity: *dx = decorw/2 - bw; *dy = decorh/2 - bw; break; case EastGravity: *dx = decorw - 2*bw; *dy = decorh/2 - bw; break; case SouthWestGravity: *dx = 0; *dy = decorh - 2*bw; break; case SouthGravity: *dx = decorw/2 - bw; *dy = decorh - 2*bw; break; case SouthEastGravity: *dx = decorw - 2*bw; *dy = decorh - 2*bw; break; case StaticGravity: *dx = widthLeftFrame(frame) - bw; *dy = heightTopFrame(frame) - bw; break; } } /* FrameSetPosFromPane -- the client has specified a position for the pane. * Using the window gravity, the frame's position should be adjusted * so that the point on the frame named by the window gravity is at the * corresponding point in the requested pane. */ void FrameSetPosFromPane(win, x, y) WinPaneFrame *win; int x, y; { int dx, dy; FrameGetGravityOffset(win, &dx, &dy); x -= dx; y -= dy; (WinFunc(win,core.newposfunc))(win, x, y); } /* FrameUnparentPane * * Reparent the pane back to the root, moving the pane's position according to * the window gravity. Also, restack the pane so that it has the same * stacking order as the frame had. This is important, so that windows on top * remain on top after exiting the window manager. * Apply the original size/position of the pane if we've full-sized it. */ void FrameUnparentPane(cli, winFrame, winPane) Client *cli; WinPaneFrame *winFrame; WinPane *winPane; { int x = winFrame->core.x; int y = winFrame->core.y; int dx, dy; XWindowChanges xwc; unsigned int xwc_mask; xwc.sibling = winFrame->core.self; xwc.stack_mode = Above; xwc_mask = CWSibling|CWStackMode; if (winFrame->restoreSet) { y = winFrame->restoreY; xwc.width = winFrame->restoreWidth; xwc.height = winFrame->restoreHeight; xwc_mask |= CWWidth|CWHeight; } FrameGetGravityOffset(winFrame, &dx, &dy); x += dx; y += dy; XSetWindowBorderWidth(cli->dpy,winPane->core.self, winPane->pcore.oldBorderWidth); if (winPane->pcore.oldSaveUnder) { XSetWindowAttributes xwa; xwa.save_under = True; XChangeWindowAttributes(cli->dpy,winPane->core.self, CWSaveUnder,&xwa); } if (winPane->core.kind != WIN_MENU) { XReparentWindow(cli->dpy, winPane->core.self, cli->scrInfo->rootid, x, y); XChangeSaveSet(cli->dpy, winPane->core.self, SetModeDelete); /* * REMIND - RestackWhenWithdraw is a misnomer - since * we may also be configuring width and height */ if (GRV.RestackWhenWithdraw) { XConfigureWindow(cli->dpy, winPane->core.self, xwc_mask, &xwc); } } } /* * FrameUpdateHeader -- the header text has changed; update as appropriate */ /* ARGSUSED */ void FrameUpdateHeader(cli,event) Client *cli; XPropertyEvent *event; { setTitleText(cli->dpy,cli->framewin,PANEWINOFCLIENT(cli)); (WinFunc(cli->framewin,core.drawfunc))(cli->dpy, cli->framewin); } /* * FrameUpdateFooter -- the footer text has changed */ void FrameUpdateFooter(cli,event) Client *cli; XPropertyEvent *event; { if (event->atom == AtomLeftFooter) { setLeftFooter(cli->dpy,cli->framewin,PANEWINOFCLIENT(cli)); } else if (event->atom == AtomRightFooter) { setRightFooter(cli->dpy,cli->framewin,PANEWINOFCLIENT(cli)); } (WinFunc(cli->framewin,core.drawfunc))(cli->dpy, cli->framewin); } #ifdef OW_I18N_L4 /* * FrameUpdateIMStatus -- the IMStatus text has changed */ void FrameUpdateIMStatus(cli,event) Client *cli; XPropertyEvent *event; { if (event->atom == AtomLeftIMStatus) { setLeftIMStatus(cli->dpy,cli->framewin,PANEWINOFCLIENT(cli)); } else if (event->atom == AtomRightIMStatus) { setRightIMStatus(cli->dpy,cli->framewin,PANEWINOFCLIENT(cli)); } (WinFunc(cli->framewin,core.drawfunc))(cli->dpy, cli->framewin); } #endif /* * FrameFlashTitleBar -- flash the title bar */ void FrameFlashTitleBar(winInfo) WinPaneFrame *winInfo; { Client *cli = winInfo->core.client; Display *dpy = cli->dpy; int ii; void (*draw)(), (*undraw)(); /* if no header, don't draw anything */ if ((cli->wmDecors->flags & WMDecorationHeader) == 0) return; /* set up draw/undraw procs */ if (Win3D(winInfo)) { undraw = drawHeaderNoFocus3D; draw = drawHeaderBar3D; } else { undraw = drawHeaderNoFocus2D; draw = drawHeaderBar2D; } (*undraw)(dpy, winInfo, cli, cli->isSelected); for (ii=0; iiisSelected); XFlush(dpy); olwm_usleep((unsigned)(GRV.FlashTime)); (*undraw)(dpy, winInfo, cli, cli->isSelected); XFlush(dpy); olwm_usleep((unsigned)(GRV.FlashTime)); } /* now redraw the header */ drawHeader(dpy, winInfo, cli, cli->isSelected); } /* FrameSetBusy - change the frame's busy state. The client's overall * indication has already been set; create a busy window and manipulate * the focus (if necessary). */ void FrameSetBusy(win, newBusy) WinPaneFrame *win; Bool newBusy; { if (newBusy) { win->winBusy = MakeBusy(win->core.client->dpy, win); } else { (WinFunc(win->winBusy,core.destroyfunc))(win->core.client->dpy, win->winBusy); } WinCallDraw(win); } /* * FrameWarpPointer - warp to pane windows' default button position if a * property is given; otherwise, if the window has a pushpin, warp it there. * This function can only be called AFTER the frame & pane are mapped. */ #define WARPINFO_LEN 6 void FrameWarpPointer(cli) Client *cli; { WinPaneFrame *frameInfo = cli->framewin; WinPane *paneInfo = (WinPane *) frameInfo->fcore.panewin; int *warpParam; unsigned long nItems, remain; Window root, child, dest; int root_x, root_y, win_x; unsigned int keys_buttons; int offsetX, offsetY; Graphics_info *gis = WinGI(frameInfo, NORMAL_GINFO); frameInfo->pointerIsWarped = False; if (!GRV.PopupJumpCursor) return; /* see if window pane has any warp info */ warpParam = GetWindowProperty(cli->dpy, paneInfo->core.self, AtomDfltBtn, 0L, WARPINFO_LEN, XA_INTEGER, 0, &nItems, &remain); if (warpParam != NULL && nItems != WARPINFO_LEN) { XFree((char *) warpParam); warpParam = NULL; } /* * Warp to pin if warpParam non-NULL or WarpToPin is set. */ if (warpParam == NULL && !(cli->wmDecors->flags & WMDecorationWarpToPin)) { return; } if (warpParam == NULL) { WinRootPos(frameInfo, &offsetX, &offsetY); /* warp to the pushpin */ cli->warpInfo.dflButtonX = xposPushPin(gis); cli->warpInfo.dflButtonY = yposPushPin(cli, gis); cli->warpInfo.dflButtonW = PushPinOut_Width(gis); cli->warpInfo.dflButtonH = PushPinOut_Height(gis); cli->warpInfo.warpToX = cli->warpInfo.dflButtonX + PushPinOut_Width(gis) / 2; cli->warpInfo.warpToY = cli->warpInfo.dflButtonY + PushPinOut_Height(gis) / 2; dest = frameInfo->core.self; } else { WinRootPos(paneInfo, &offsetX, &offsetY); /* save warp destination information */ cli->warpInfo.warpToX = warpParam[0]; cli->warpInfo.warpToY = warpParam[1]; cli->warpInfo.dflButtonX = warpParam[2]; cli->warpInfo.dflButtonY = warpParam[3]; cli->warpInfo.dflButtonW = warpParam[4]; cli->warpInfo.dflButtonH = warpParam[5]; XFree((char *)warpParam); dest = paneInfo->core.self; } /* translate to root coordinates */ cli->warpInfo.dflButtonX += offsetX; cli->warpInfo.dflButtonY += offsetY; /* save warp return information */ if (!XQueryPointer(cli->dpy, dest, &root, &child, &root_x, &root_y, &win_x, &win_x, &keys_buttons)) { /* refuse to warp off the screen */ return; } cli->warpInfo.warpBackClient = CurrentClient; cli->warpInfo.warpBackX = root_x; cli->warpInfo.warpBackY = root_y; /* warp the pointer */ XWarpPointer(cli->dpy, None, dest, 0, 0, 0, 0, cli->warpInfo.warpToX, cli->warpInfo.warpToY); frameInfo->pointerIsWarped = True; /* finally, set the focus if necessary */ if (!GRV.AutoInputFocus) ClientSetFocus(cli, True, CurrentTime); } /* * FrameUnwarpPointer - called when a pane is unmapping, and the pointer * needs to be restored to its original position (if it was warped when the * window was initially mapped). */ void FrameUnwarpPointer(cli) Client *cli; { WinPaneFrame *frameInfo = cli->framewin; if (frameInfo->pointerIsWarped) { XWarpPointer(cli->dpy, cli->scrInfo->rootid, cli->scrInfo->rootid, cli->warpInfo.dflButtonX, cli->warpInfo.dflButtonY, cli->warpInfo.dflButtonW, cli->warpInfo.dflButtonH, cli->warpInfo.warpBackX, cli->warpInfo.warpBackY); if (cli->warpInfo.warpBackClient != NULL) { /* * REMIND: set current client in order to prevent * DestroyClient from setting focus again. Should we use * ClientActivate instead? */ Client *warpcli = cli->warpInfo.warpBackClient; if (warpcli->framewin != NULL) { ClientSetCurrent(cli->warpInfo.warpBackClient); ClientSetFocus(cli->warpInfo.warpBackClient, True, CurrentTime); } } /* invalidate the pointer warp info */ frameInfo->pointerIsWarped = False; } } /* * Update the frame's bounding shape, based on the client's bounding shape and * (if the window is selected) the resize corners. */ void FrameUpdateShape(cli, winInfo) Client *cli; WinPaneFrame *winInfo; { #ifdef SHAPE if (cli->isShaped) { XShapeCombineShape(cli->dpy, winInfo->core.self, ShapeBounding, widthLeftFrame(winInfo), heightTopFrame(winInfo), winInfo->fcore.panewin->core.self, ShapeBounding, ShapeSet); if (cli->isSelected && (cli->wmDecors->flags & WMDecorationResizeable)) { XRectangle rects[8]; Graphics_info *gi = WinGI(winInfo, NORMAL_GINFO); int tw = Resize_width; /* total width & height */ int th = Resize_height; int aw = ResizeArm_Width(gi); /* arm width & height */ int ah = ResizeArm_Height(gi); /* Add in shapes for the resize corners, two rectangles each. */ /* upper left */ rects[0].x = 0; rects[0].y = 0; rects[0].width = tw; rects[0].height = ah; rects[1].x = 0; rects[1].y = ah; rects[1].width = aw; rects[1].height = th - ah; /* upper right */ rects[2].x = winInfo->core.width - tw; rects[2].y = 0; rects[2].width = tw; rects[2].height = ah; rects[3].x = winInfo->core.width - aw; rects[3].y = ah; rects[3].width = aw; rects[3].height = th - ah; /* lower left */ rects[4].x = 0; rects[4].y = winInfo->core.height - th; rects[4].width = aw; rects[4].height = th - ah; rects[5].x = 0; rects[5].y = winInfo->core.height - ah; rects[5].width = tw; rects[5].height = ah; /* lower right */ rects[6].x = winInfo->core.width - aw; rects[6].y = winInfo->core.height - th; rects[6].width = aw; rects[6].height = th - ah; rects[7].x = winInfo->core.width - tw; rects[7].y = winInfo->core.height - ah; rects[7].width = tw; rects[7].height = ah; XShapeCombineRectangles(cli->dpy, winInfo->core.self, ShapeBounding, 0, 0, rects, 8, ShapeUnion, Unsorted); } } else { /* remove the shape from the frame */ XShapeCombineMask(cli->dpy, winInfo->core.self, ShapeBounding, 0, 0, None, ShapeSet); } #endif } /* * Return the minimum width and height of this frame. */ void FrameMinSize(frame, width, height) WinPaneFrame *frame; int *width; /* RETURN */ int *height; /* RETURN */ { int decors = frame->core.client->wmDecors->flags; Graphics_info *gi = WinGI(frame, NORMAL_GINFO); int temp; /* calculate minimum height */ temp = 2*ResizeArm_Height(gi); if (decors & WMDecorationResizeable) temp = MAX(temp, 2*Resize_height); if (decors & WMDecorationHeader) temp = MAX(temp, heightTopFrame(frame) + heightBottomFrame(frame)); *height = temp; /* calculate minimum width */ temp = 2*ResizeArm_Width(gi); if (decors & WMDecorationResizeable) temp = MAX(temp, 2*Resize_width); if (decors & WMDecorationCloseButton) temp = MAX(temp, 2*xposCloseButton(gi) + Abbrev_MenuButton_Width(gi)); if (decors & WMDecorationPushPin) temp = MAX(temp, 2*xposPushPin(gi) + PushPinOut_Width(gi)); *width = temp; } xview-3.2p1.4/clients/olwm/wingframe.c100644 1750 1750 34472 5413747443 15231 0ustar mbmb#ident "@(#)wingframe.c 26.33 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ /* * wingframe.c -- generic frame window routines */ #include #include #include #include #include #include #include #include #include "i18n.h" /* needed for olgx.h */ #include #include "i18n.h" #include "ollocale.h" #include "mem.h" #include "olwm.h" #include "win.h" #include "globals.h" #include "events.h" /*************************************************************************** * private data ***************************************************************************/ /* * REMIND * The hadSelect variable is necessary because we sometimes receive * MotionNotify events with all buttons up, even though we ask for only * ButtonMotionMask. We set hadSelect only on receipt of an event that is * bound to the Select action, and we ignore motion events that occur if * hadSelect isn't set. */ static Bool hadSelect = False; static Time timeOfLastButPress = 0; static int buttonPressX; static int buttonPressY; static XButtonEvent lastSelectRelease; static XButtonEvent lastSelectPress; static Time lastDoubleClickTime; static SemanticAction currentAction = ACTION_NONE; /*************************************************************************** * forward-declared functions ***************************************************************************/ extern void ClientSetCurrent(); /*************************************************************************** * static functions ***************************************************************************/ /* * Raise the frame whose ID is passed. The frame ID is passed instead of the * pointer to the frame structure. This is because this function may be * called at an arbitrary time by the timeout mechanism, and the frame could * have been destroyed between the time the timeout was set up and the time it * went off. We look up the ID and verify that it's a frame. If it's * nonexistent or not a frame, we assume the original frame has been destroyed * and we ignore the raise request. */ void autoRaise(frameid) Window frameid; { WinGenericFrame *frame; Bool samescreen; Window root, child; int rootx, rooty, winx, winy; unsigned int state; Client *cli; frame = (WinGenericFrame *) WIGetInfo(frameid); if (frame == NULL || (frame->core.kind != WIN_FRAME && frame->core.kind != WIN_ICON)) { return; } cli = frame->core.client; if (cli->isFocus) { if (GRV.FocusFollowsMouse) { samescreen = XQueryPointer(cli->dpy, WinRootID(frame), &root, &child, &rootx, &rooty, &winx, &winy, &state); if (samescreen && child == frame->core.self) ClientFront(cli); } else { ClientFront(cli); } } } /*************************************************************************** * global functions ***************************************************************************/ /* * GFrameSelect -- handle selection state change */ /*ARGSUSED*/ /* dpy arg will be used when multiple Displays supported */ int GFrameSelect(dpy, winInfo, selected) Display *dpy; WinGeneric *winInfo; Bool selected; { (WinFunc(winInfo,core.drawfunc))(dpy, winInfo); } /* * GFrameFocus -- handle focus changes * * If we're in auto-raise mode, raise the window. But if we're in focus- * follows-mouse, we query the pointer to make sure we're still in the same * window before we do this raise. This is to avoid restacking loops. * * If colormap installation is tracking the input focus, get the first entry * in the client's WM_COLORMAP_WINDOWS list and install its colormap; * otherwise, install the pane's colormap. */ /*ARGSUSED*/ int GFrameFocus(dpy, winInfo, focus) Display *dpy; WinGenericFrame *winInfo; Bool focus; { WinGeneric *cmwi; if (focus) { ClientSetCurrent(winInfo->core.client); ClientSetWindowState(winInfo->core.client); if (GRV.ColorTracksInputFocus) { if (winInfo->core.client->colormapWins) cmwi = winInfo->core.client->colormapWins->value; else cmwi = (WinGeneric *) winInfo->fcore.panewin; LockColormap(dpy, winInfo->core.client, cmwi); } if (GRV.AutoRaise) { if (GRV.AutoRaiseDelay > 0) { TimeoutCancel(); TimeoutRequest(GRV.AutoRaiseDelay, autoRaise, winInfo->core.self); } else { autoRaise(winInfo->core.self); } } } } /* * GFrameSetConfigFunc -- change configuration of frame window * REMIND: ensure that transient windows are treated properly. */ int GFrameSetConfigFunc(dpy, win) Display *dpy; WinGenericFrame *win; { XWindowChanges xwc; if (win->core.dirtyconfig) { xwc.x = win->core.x; xwc.y = win->core.y; xwc.width = win->core.width; xwc.height = win->core.height; xwc.sibling = win->core.stack_sib; xwc.stack_mode = win->core.stack_mode; if ((win->core.dirtyconfig & CWSibling) && !(win->core.dirtyconfig &CWStackMode)) win->core.dirtyconfig &= ~CWSibling; XConfigureWindow(dpy,win->core.self,win->core.dirtyconfig,&xwc); win->core.dirtyconfig &= ~(CWX|CWY|CWWidth|CWHeight|CWSibling|CWStackMode); } } /* GFrameSetStack -- set the frame's stacking position. Does not initiate * a configuration change. */ void GFrameSetStack(win, mask, mode, sib) WinGenericFrame *win; int mask; int mode; Window sib; { WinGeneric *wsib; if ((mask & CWSibling) && (mask & CWStackMode)) { wsib = WIGetInfo(sib); if (wsib != NULL && wsib->core.kind == WIN_PANE && wsib->core.client->framewin != NULL) { win->core.stack_sib = wsib->core.client->framewin->core.self; } else { win->core.stack_sib = sib; } win->core.dirtyconfig |= CWSibling; } if (mask & CWStackMode) { win->core.stack_mode = mode; win->core.dirtyconfig |= CWStackMode; } } /* GFrameSetConfig - set the frame's size and position -- generally used in * resizing or moving the window. We position the frame and resize the pane. * If the pane has refused resizing we skip that part. */ void GFrameSetConfig(win,x,y,w,h) WinGenericFrame *win; int x,y,w,h; { WinPane *pane = (WinPane *)win->fcore.panewin; (WinFunc(win,core.newposfunc))(win,x,y); if (pane != NULL) { if (WinFunc(pane,pcore.setsizefunc) != NULL) (WinFunc(pane,pcore.setsizefunc))(pane, w-(WinFunc(win,fcore.widthleft))(win)-(WinFunc(win,fcore.widthright))(win), h-(WinFunc(win,fcore.heighttop))(win)-(WinFunc(win,fcore.heightbottom))(win)); WinCallConfig(win->core.client->dpy, pane, NULL); } else { WinCallConfig(win->core.client->dpy, win, NULL); } } /*************************************************************************** * global event functions ***************************************************************************/ /* * GFrameEventButtonRelease -- a button has been released * */ int GFrameEventButtonRelease(dpy, event, frameInfo) Display *dpy; XEvent *event; WinGenericFrame *frameInfo; { WinGenericPane *winPane = (WinGenericPane*)frameInfo->fcore.panewin; Client *cli = frameInfo->core.client; if (!AllButtonsUp(event)) return; #define bevent (event->xbutton) switch (currentAction) { case ACTION_SELECT: if (GRV.SelectWindows) { ClearSelections(dpy); AddSelection(cli, event->xbutton.time); } ClientSetCurrent(cli); ClientFront(cli); hadSelect = False; if (WinFunc(frameInfo,fcore.selectClick) != NULL) { (WinFunc(frameInfo,fcore.selectClick))(dpy,event,frameInfo); } /* * If the click happened in the decoration windows, * (i.e. not in the pane), check for a double click. * Do this by checking: the time of the last click, the * time of the last double-click, and the proximity to the * previous click (in terms of windows and coordinates). */ if ((WinFunc(frameInfo,fcore.selectDoubleClick) != NULL) && ((winPane == NULL) || (bevent.subwindow != winPane->core.self)) && (bevent.time-lastSelectRelease.time) <= GRV.DoubleClickTime && (bevent.time-lastDoubleClickTime) > GRV.DoubleClickTime && bevent.window == lastSelectRelease.window && ABS(bevent.x - lastSelectRelease.x) < GRV.MoveThreshold && ABS(bevent.y - lastSelectRelease.y) < GRV.MoveThreshold) { /* execute the double click action */ (WinFunc(frameInfo,fcore.selectDoubleClick))(dpy,event,frameInfo); lastDoubleClickTime = bevent.time; } lastSelectRelease = event->xbutton; currentAction = ACTION_NONE; break; /* out of ACTION_SELECT case */ case ACTION_ADJUST: if (WinFunc(frameInfo,fcore.adjustClick) != NULL) { (WinFunc(frameInfo,fcore.adjustClick))(dpy,event,frameInfo); } currentAction = ACTION_NONE; break; } } /* * GFrameEventMotionNotify -- a button is down and the pointer is moving */ int GFrameEventMotionNotify(dpy, event, frameInfo) Display *dpy; XEvent *event; WinGenericFrame *frameInfo; { /* We get this only after a Select press */ if (hadSelect == False) /* watch for erroneous motions */ { return; } if (!event->xmotion.same_screen) return; /* See if we have moved more than the threshold amount. */ if ((ABS(event->xmotion.x - buttonPressX) < GRV.MoveThreshold) && (ABS(event->xmotion.y - buttonPressY) < GRV.MoveThreshold)) return; (WinFunc(frameInfo,fcore.selectDrag))(dpy, event, frameInfo, &lastSelectPress); /* * UserMoveWindows() will grab the pointer and handle events * using an interposer, so we can clear the hadSelect flag. */ hadSelect = False; } /* * GFrameEventButtonPress -- a mouse button has gone down. */ int GFrameEventButtonPress(dpy, event, frameInfo) Display *dpy; XEvent *event; WinGenericFrame *frameInfo; { WinPane *winPane = (WinPane*)frameInfo->fcore.panewin; Window panewindow = winPane->core.self; SemanticAction a; unsigned int ignoremask; ignoremask = ModMaskMap[MOD_CONSTRAIN] | ModMaskMap[MOD_INVERT] | ModMaskMap[MOD_REDUCE]; a = ResolveMouseBinding(dpy, event, ignoremask); switch (a) { case ACTION_SELECT: currentAction = a; /* * Save the location where the button went down so we * can see if the user moves the mouse more than * GRV.MoveThreshold, and wants to move the window. */ buttonPressX = event->xbutton.x; buttonPressY = event->xbutton.y; if (!GRV.FocusFollowsMouse && (WinFunc(frameInfo,fcore.selectPress) != NULL)) { /* It is possible for us to replay the event and * have the window, (decoration window, e.g. the * resize corner, the titlebar), in which the * button press happened to ignore it. * In this case we would get the event * again. For example, the user could button press * in the title bar, (which doesn't select this event), * and have this EventFrame routine get the same event * twice. So, we check that the time stamp of this * button press is different than the last. */ if (event->xbutton.time == timeOfLastButPress) /* We already dealt with this event. */ break; timeOfLastButPress = event->xbutton.time; if (event->xbutton.subwindow == panewindow) { (WinFunc(frameInfo,fcore.selectPress))(dpy,event,frameInfo); } /* Let the button press through * if we had grabbed it. */ XAllowEvents(dpy, ReplayPointer, CurrentTime); } /* End if not GRV.FocusFollowsMouse */ lastSelectPress = event->xbutton; hadSelect = True; break; /* Break case ACTION_SELECT */ case ACTION_ADJUST: currentAction = a; if (!GRV.FocusFollowsMouse) { if (event->xbutton.time == timeOfLastButPress) break; timeOfLastButPress = event->xbutton.time; if (event->xbutton.subwindow == panewindow && WinFunc(frameInfo,fcore.adjustPress) != NULL) { (WinFunc(frameInfo,fcore.adjustPress)) (dpy,event,frameInfo); } XAllowEvents(dpy, ReplayPointer, CurrentTime); } break; case ACTION_MENU: currentAction = a; if (WinFunc(frameInfo,fcore.menuPress) != NULL) (WinFunc(frameInfo,fcore.menuPress))(dpy, event, frameInfo); break; } /* End switch on button pressed */ } /* * GFrameEventEnterNotify * * If we entered from outside and we're in follows-mouse mode, set the focus. * If we enter the frame from the pane or directly from elsewhere (i.e. * nonlinearly) install the appropriate colormap. */ int GFrameEventEnterNotify(dpy, event, frameInfo) Display *dpy; XEvent *event; WinGenericFrame *frameInfo; { Client *cli = frameInfo->core.client; if (GRV.FocusFollowsMouse && event->xcrossing.detail != NotifyInferior) ClientSetFocus(cli,True,event->xcrossing.time); switch (event->xcrossing.detail) { case NotifyInferior: case NotifyNonlinear: ColorWindowCrossing(dpy, event, cli->scrInfo->rootwin); break; } } /* * GFrameEventFocus * * If the focus changed normally (i.e. not as the result of a keyboard grab or * ungrab), call the focus functions. */ int GFrameEventFocus(dpy, event, frameInfo) Display *dpy; XEvent *event; WinGenericFrame *frameInfo; { switch (event->xfocus.mode) { case NotifyNormal: case NotifyWhileGrabbed: if (event->xfocus.detail <= NotifyNonlinearVirtual) WinCallFocus(frameInfo, (event->type == FocusIn)); break; } } xview-3.2p1.4/clients/olwm/winicon.c100644 1750 1750 54736 5413747444 14726 0ustar mbmb#ident "@(#)winicon.c 26.42 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #include #include #include #include #include #include #include "i18n.h" /* needed by olgx.h */ #include #include "ollocale.h" #include "mem.h" #include "olwm.h" #include "win.h" #include "menu.h" #include "globals.h" #include "slots.h" #include "group.h" extern Bool PropGetWMName(); extern Bool PropGetWMIconName(); /*************************************************************************** * private data ***************************************************************************/ /* border sizes, in pixels */ #define ICON_HORZBORDER 3 #define ICON_VERTBORDER 3 /* Class function vector */ static ClassIconFrame classIconFrame; /*************************************************************************** * private event functions ***************************************************************************/ static int menuPressIcon(dpy,event,iconInfo) Display *dpy; XEvent *event; WinIconFrame *iconInfo; { if (iconInfo->core.client->wmDecors->menu_type != MENU_NONE) ShowStandardMenu(iconInfo, event, False); } static int selectDoubleClickIcon(dpy,event,iconInfo) Display *dpy; XEvent *event; WinIconFrame *iconInfo; { StateNormal(iconInfo->core.client, event->xbutton.time); } static int adjustClickIcon(dpy,event,iconInfo) Display *dpy; XEvent *event; WinIconFrame *iconInfo; { ToggleSelection(iconInfo->core.client, event->xbutton.time); } /*************************************************************************** * private functions ***************************************************************************/ /* * iconCalcName - calc position/size of icon name */ static void iconCalcName(winIcon,pane) WinIconFrame *winIcon; Window pane; { Display *dpy = winIcon->core.client->dpy; winIcon->nameLength = TextLen(winIcon->fcore.name); winIcon->nameWidth = FontWidth(IconFont, winIcon->fcore.name,winIcon->nameLength); winIcon->nameX = (winIcon->core.width - winIcon->nameWidth)/2; /* * Position the text one pixel above the ICON_VERTBORDER and * the descent of the font */ winIcon->nameY = winIcon->core.height - ICON_VERTBORDER - 1 - FontDescent(IconFont); } /* * iconSetName -- set the icon name and possibly redraw */ static void iconSetName(winIcon,pane) WinIconFrame *winIcon; Window pane; { Display *dpy = winIcon->core.client->dpy; if (winIcon->fcore.name) MemFree(winIcon->fcore.name); if (!PropGetWMIconName(dpy,pane,&(winIcon->fcore.name)) && !PropGetWMName(dpy,pane,&(winIcon->fcore.name))) { winIcon->fcore.name = MemNewText(GRV.DefaultWinName); } iconCalcName(winIcon,pane); if (!winIcon->core.dirtyconfig) (WinFunc(winIcon,core.drawfunc))(dpy,winIcon); } /* selectDragIcon -- the user has held the select button down long enough * to initiate a drag. Unpin the icon slot and start a window-move. */ static int selectDragIcon(dpy, ev, iframe, lastpress) Display *dpy; XEvent *ev; WinIconFrame *iframe; XButtonEvent *lastpress; { SlotFree(iframe); iframe->fManuallyPositioned = True; ClientMove(iframe->core.client,lastpress); } /* * newconfigIcon -- compute a new configuration of icon window */ static int newconfigIcon(winInfo, pxcre) WinIconFrame *winInfo; XConfigureRequestEvent *pxcre; { Client *cli = winInfo->core.client; WinPane *winPane = (WinPane *)winInfo->fcore.panewin; int neww,newh; neww = winInfo->fcore.panewin->core.width + 2*widthBothIcon(winInfo); newh = winInfo->fcore.panewin->core.height + heightTopIcon(winInfo) + heightBottomIcon(winInfo); if (neww != winInfo->core.width) { winInfo->core.width = neww; winInfo->core.dirtyconfig |= CWWidth; } if (newh != winInfo->core.height) { winInfo->core.height = newh; winInfo->core.dirtyconfig |= CWHeight; } if (winInfo->core.dirtyconfig) { (WinFunc(winPane,core.newposfunc))(winPane, widthBothIcon(winInfo), heightTopIcon(winInfo)); } if (winInfo->core.dirtyconfig & (CWWidth | CWHeight)) { iconCalcName(winInfo,PANEWINOFCLIENT(cli)); } return winInfo->core.dirtyconfig; } /* * The icon is being moved to a new (x,y) location. If the icon slot has not * yet been allocated, do so if appropriate. Otherwise, blindly accept the * (x,y) position. */ static int newposIcon(winInfo,x,y) WinIconFrame *winInfo; int x,y; { Client *cli = winInfo->core.client; WinNewPosFunc(winInfo,x,y); if (winInfo->iconslot == NULL && ClientHasIcon(cli)) { SlotAlloc(winInfo, winInfo->fManuallyPositioned, GRV.FSnapToGrid); } return winInfo->core.dirtyconfig; } static void drawDashedRect(dpy, winInfo, win, x, y, w, h) Display *dpy; WinIconFrame *winInfo; Window win; int x, y, w, h; { XPoint pts[5]; pts[0].x = x; pts[0].y = y; pts[1].x = x; pts[1].y = y + h; pts[2].x = x + w; pts[2].y = y + h; pts[3].x = x + w; pts[3].y = y; pts[4].x = x; pts[4].y = y; /* * The following is necessary because IconBorderGC uses the LineOnOffDash * line-style, which is faster than LineDoubleDash on some servers. */ XDrawLines(dpy, win, WinGC(winInfo,WORKSPACE_GC), pts, 5, CoordModeOrigin); XDrawLines(dpy, win, WinGC(winInfo,ICON_BORDER_GC), pts, 5, CoordModeOrigin); } /* * drawIconBorder -- based on the value of select, draw the border for an icon */ static void drawIconBorder(dpy, winInfo, select) Display *dpy; WinIconFrame *winInfo; Bool select; { int x, y; /* values for use with */ unsigned int width, height; /* rectangle drawn for border */ Window w = winInfo->core.self; GC borderGC = WinGC(winInfo,BORDER_GC); GC workspaceGC = WinGC(winInfo,WORKSPACE_GC); x = y = 0; width = winInfo->core.width - 1; height = winInfo->core.height - 1; /* * If 3D is used, give "borderless" icons. Otherwise, give black and * white borders. */ if (select) { XDrawRectangle(dpy, w, borderGC, x, y, width, height ); XDrawRectangle(dpy, w, borderGC, x+1, y+1, width-2, height-2 ); XDrawRectangle(dpy, w, borderGC, x+2, y+2, width-4, height-4 ); } else { XDrawRectangle(dpy, w, workspaceGC, x, y, width, height); if (Win3D(winInfo)) { XDrawRectangle(dpy, w, workspaceGC, x+1, y+1, width-2, height-2); } else { #ifdef notdef XDrawRectangle(dpy, w, IconBorderGC, x+1, y+1, width-2, height-2); #endif /* notdef */ drawDashedRect(dpy, winInfo, w, x+1, y+1, width-2, height-2); } XDrawRectangle(dpy, w, workspaceGC, x+2, y+2, width-4, height-4); } #ifdef notdef /* * This stuff was used for the attempt at 3D-look icons. * It has been abandoned in favor of the "borderless" icon look. */ /* initial values for first rectangle */ x = 0; y = 0; /* need to subtract one, based on how XDrawRectangle works */ width = winInfo->core.width - 1; height = winInfo->core.height - 1; /* draw three rectangles for border */ for ( rectangle = 0 ; rectangle < 3 ; rectangle++ ) { switch( rectangle ) { case 0: /* outermost rectangle */ if (Win3D(winInfo)) { if ( select ) olgxState = OLGX_INVOKED; else olgxState = OLGX_NORMAL; olgx_draw_box( olgx_gisnormal, winInfo->core.self, x, y, width+1, height+1, olgxState, 0 ); drawRectangle = False; } else { highlightGC = select ? DrawSelectedGC : DrawBackgroundGC; drawRectangle = True; } break; case 1: /* middle rectangle */ if ( select ) highlightGC = DrawSelectedGC; else if (Win3D(winInfo)) highlightGC = DrawBackgroundGC; else /* REMIND eventually need to handle * IconBorder resource when 2d & ColorDisplay */ highlightGC = IconBorderGC; drawRectangle = True; break; case 2: /* innermost rectangle */ default: highlightGC = select ? DrawSelectedGC : DrawBackgroundGC; drawRectangle = True; break; } if ( drawRectangle ) XDrawRectangle( dpy, winInfo->core.self, highlightGC, x, y, width, height ); x++; y++; width -= 2; height -= 2; } #endif /* notdef */ } /* * drawIcon -- draw the icon window */ /*ARGSUSED*/ /* dpy arg will be used when multiple Displays supported */ static int drawIcon(dpy, winInfo) Display *dpy; WinIconFrame *winInfo; { Window frameWin = winInfo->core.self; XFillRectangle(dpy, frameWin, WinGC(winInfo,WORKSPACE_GC), 0, 0, winInfo->core.width, winInfo->core.height); /* draw icon name */ if (winInfo->core.client->wmDecors->flags & WMDecorationIconName) DrawText(dpy,frameWin,IconFont,WinGC(winInfo,ICON_NORMAL_GC), winInfo->nameX, winInfo->nameY, winInfo->fcore.name, winInfo->nameLength); /* draw border */ drawIconBorder(dpy, winInfo, winInfo->core.client->isSelected); } /* * DestroyIcon -- destroy the icon window resources and free any allocated * data. */ static int destroyIcon(dpy, winInfo) Display *dpy; WinIconFrame *winInfo; { /* * Free our data and throw away window */ SlotFree(winInfo); ListDestroy(winInfo->core.children); MemFree(winInfo->fcore.name); ScreenDestroyWindow(winInfo->core.client->scrInfo, winInfo->core.self); WIUninstallInfo(winInfo->core.self); MemFree(winInfo); } /* * heightIconName - returns the height of the icon name portion of * the total icon height. */ static int heightIconName(win) WinIconFrame *win; { if (win->core.client->wmDecors->flags & WMDecorationIconName) { return (FontHeight(IconFont) + ICON_VERTBORDER); } else { return 0; } } /* * heightTopIcon - returns the height of the top portion of the icon window. * If the IconPane (image/window) is too small then increase the * the top height to bring total height to the minimal icon * window size of ICON_WIN_HEIGHT. Otherwise use the default * border size. */ static int heightTopIcon(win) WinIconFrame *win; { WinIconPane *winPane = (WinIconPane *)(win->fcore.panewin); int availHeight,basicbottom; availHeight = ICON_WIN_HEIGHT - heightIconName(win); if (winPane->core.height < availHeight) { return (availHeight-winPane->core.height)/2; } else { return ICON_VERTBORDER; } } /* * heightBottomIcon - returns the height of the bottom portion of * the icon window - which includes the icon name string (if any). * If the IconPane (image/window) is too small then increase the * the bottom height to bring total height to the minimal icon * window size of ICON_WIN_HEIGHT. Otherwise use the default * border size. */ static int heightBottomIcon(win) WinIconFrame *win; { WinIconPane *winPane = (WinIconPane *)(win->fcore.panewin); int nameHeight,availHeight; nameHeight = heightIconName(win); availHeight = ICON_WIN_HEIGHT - nameHeight; if (winPane->core.height < availHeight) { return (availHeight - winPane->core.height)/2 + nameHeight; } else { return nameHeight + ICON_VERTBORDER; } } /* The icon pane has the same border width on either side, so this function * is used to calculate both border widths. */ static int widthBothIcon(win) WinIconFrame *win; { WinIconPane *winPane = (WinIconPane *)(win->fcore.panewin); if (winPane->iconClientWindow) { return ICON_HORZBORDER; } else { if (winPane->core.width < ICON_WIN_WIDTH - 2*ICON_HORZBORDER) { return (ICON_WIN_WIDTH-winPane->core.width)/2; } else return ICON_HORZBORDER; } } /* * fullrestoreIcon * Switch icon menus and if this client is iconic then * open it. */ static int fullrestoreIcon(client,timestamp) Client *client; Time timestamp; { WinIconFrame *iconInfo = client->iconwin; if (client->wmState == IconicState) StateNormal(client,timestamp); iconInfo->fcore.fullsize = !iconInfo->fcore.fullsize; } /* * eventConfigureRequest -- handle ConfigureRequest events on the icon frame. * * Clients aren't supposed to configure their icon windows, so this routine * simply issues a synthetic ConfigureNotify event that indicates the request * has been refused. */ static int eventConfigureRequest(dpy, req, iconInfo) Display *dpy; XConfigureRequestEvent *req; WinIconFrame *iconInfo; { XConfigureEvent notify; WinIconPane *pane = (WinIconPane *) iconInfo->fcore.panewin; notify.type = ConfigureNotify; notify.window = notify.event = req->window; notify.x = pane->core.x; notify.y = pane->core.y; notify.width = pane->core.width; notify.height = pane->core.height; notify.above = None; notify.override_redirect = False; /* REMIND: should be NORMAL_BORDERWIDTH from winipane.c */ notify.border_width = 0; (void) XSendEvent(dpy, req->window, False, StructureNotifyMask, (XEvent *) ¬ify); #ifdef DEBUG ErrorWarning("ignoring ConfigureRequest event on icon."); #endif /* DEBUG */ } /*************************************************************************** * global functions ***************************************************************************/ /* * MakeIcon -- create the icon window. Return a WinIconFrame structure. * Note that unlike most Make functions, icons are not mapped right * away. */ WinIconFrame * MakeIcon(cli,panewin,paneattrs) Client *cli; Window panewin; XWindowAttributes *paneattrs; { Display *dpy = cli->dpy; WinIconFrame *w; XSetWindowAttributes attributes; unsigned long valuemask; XWMHints *wmHints = cli->wmHints; Screen *screen = ScreenOfDisplay(dpy, cli->scrInfo->screen); /* create the window structure */ w = MemNew(WinIconFrame); w->core.kind = WIN_ICON; w->class = &classIconFrame; w->core.parent = NULL; w->core.children = NULL; w->core.client = cli; w->core.width = ICON_WIN_WIDTH; w->core.height = ICON_WIN_HEIGHT; /* fill out the associated structure */ w->core.dirtyconfig = CWX|CWY|CWWidth|CWHeight; w->core.colormap = None; w->core.exposures = NULL; w->core.helpstring = "olwm:Icon"; /* create the icon frame */ attributes.border_pixel = 0; attributes.colormap = cli->scrInfo->colormap; attributes.event_mask = ButtonPressMask | ButtonReleaseMask | ExposureMask | ButtonMotionMask | EnterWindowMask | FocusChangeMask | SubstructureRedirectMask; valuemask = CWBorderPixel | CWColormap | CWEventMask; w->core.self = ScreenCreateWindow(cli->scrInfo, cli->scrInfo->rootid, w->core.x, w->core.y, 1, 1, valuemask, &attributes); /* install icon frame in client */ cli->iconwin = w; /* REMIND: should be called cli->iconframe */ /* * Use the icon position in the hints if that position is valid. The * notion of validity is somewhat asymmetrical, as we don't have the * icon's size yet. We constrain the position to be in the rectangle * bounded by (0,0) and (screen_width - ICON_HORZBORDER, * screen_height - ICON_VERTBORDER). This has the effect of * constraining icons to be fully onscreen at the left and top but * merely lapping on a few pixels at the bottom and right. * * If the position isn't specified in the hints, or it is specified * but is invalid, set the position to zero and mark the icon to be * positioned automatically. */ if (wmHints != NULL && (wmHints->flags & IconPositionHint) && wmHints->icon_x >= 0 && wmHints->icon_y >= 0 && wmHints->icon_x <= (WidthOfScreen(screen) - ICON_HORZBORDER) && wmHints->icon_y <= (HeightOfScreen(screen) - ICON_VERTBORDER)) { w->core.x = wmHints->icon_x; w->core.y = wmHints->icon_y; w->fManuallyPositioned = True; } else { /* to be fixed up at config time */ w->core.x = 0; w->core.y = 0; w->fManuallyPositioned = False; } /* register the window */ WIInstallInfo(w); /* set cursor for frame */ XDefineCursor(dpy, w->core.self, GRV.IconPointer); iconSetName(w, panewin); w->fcore.fullsize = False; return w; } void IconInit(dpy) Display *dpy; { classIconFrame.core.kind = WIN_ICON; classIconFrame.core.xevents[Expose] = WinEventExpose; classIconFrame.core.xevents[ButtonRelease] = GFrameEventButtonRelease; classIconFrame.core.xevents[MotionNotify] = GFrameEventMotionNotify; classIconFrame.core.xevents[ButtonPress] = GFrameEventButtonPress; classIconFrame.core.xevents[EnterNotify] = GFrameEventEnterNotify; classIconFrame.core.xevents[FocusIn] = GFrameEventFocus; classIconFrame.core.xevents[FocusOut] = GFrameEventFocus; classIconFrame.core.xevents[ConfigureRequest] = eventConfigureRequest; classIconFrame.core.focusfunc = GFrameFocus; classIconFrame.core.drawfunc = drawIcon; classIconFrame.core.destroyfunc = destroyIcon; classIconFrame.core.selectfunc = GFrameSelect; classIconFrame.core.newconfigfunc = newconfigIcon; classIconFrame.core.newposfunc = newposIcon; classIconFrame.core.setconfigfunc = GFrameSetConfigFunc; classIconFrame.core.createcallback = NULL; classIconFrame.core.heightfunc = NULL; classIconFrame.core.widthfunc = NULL; classIconFrame.fcore.heighttop = heightTopIcon; classIconFrame.fcore.heightbottom = heightBottomIcon; classIconFrame.fcore.widthleft = widthBothIcon; classIconFrame.fcore.widthright = widthBothIcon; classIconFrame.fcore.menuPress = menuPressIcon; classIconFrame.fcore.adjustPress = NULL; classIconFrame.fcore.adjustClick = adjustClickIcon; classIconFrame.fcore.selectPress = NULL; classIconFrame.fcore.selectClick = NULL; classIconFrame.fcore.selectDoubleClick = selectDoubleClickIcon; classIconFrame.fcore.selectDrag = selectDragIcon; classIconFrame.fcore.fullrestoreToggle = fullrestoreIcon; } /* * DrawIconToWindowLines -- draw the "zoom" lines when a window is * opening or closing. The lines are drawn from the corners of the icon to * the corners of the window frame. */ #define NSEGS 4 void DrawIconToWindowLines(dpy, iconInfo, winInfo) Display *dpy; WinPaneFrame *winInfo; WinIconFrame *iconInfo; { int ii; GC rootGC; Window root; XSegment segs[NSEGS]; #ifdef ALLPLANES Bool allplanes = winInfo->core.client->scrInfo->useAllPlanes; #endif if (GRV.IconFlashCount <= 0) return; rootGC = WinGC(winInfo, ROOT_GC); root = WinRootID(winInfo); XGrabServer(dpy); segs[0].x1 = iconInfo->core.x; segs[0].y1 = iconInfo->core.y; segs[0].x2 = winInfo->core.x; segs[0].y2 = winInfo->core.y; segs[1].x1 = iconInfo->core.x; segs[1].y1 = iconInfo->core.y + iconInfo->core.height; segs[1].x2 = winInfo->core.x; segs[1].y2 = winInfo->core.y + winInfo->core.height; segs[2].x1 = iconInfo->core.x + iconInfo->core.width; segs[2].y1 = iconInfo->core.y; segs[2].x2 = winInfo->core.x + winInfo->core.width; segs[2].y2 = winInfo->core.y; segs[3].x1 = iconInfo->core.x + iconInfo->core.width; segs[3].y1 = iconInfo->core.y + iconInfo->core.height; segs[3].x2 = winInfo->core.x + winInfo->core.width; segs[3].y2 = winInfo->core.y + winInfo->core.height; for(ii=0; ii < GRV.IconFlashCount; ii++) { /* draw */ #ifdef ALLPLANES if (allplanes) XAllPlanesDrawSegments(dpy, root, segs, NSEGS); else #endif /* ALLPLANES */ XDrawSegments(dpy, root, rootGC, segs, NSEGS); XFlush(dpy); olwm_usleep((unsigned) GRV.IconFlashOnTime); /* erase */ #ifdef ALLPLANES if (allplanes) XAllPlanesDrawSegments(dpy, root, segs, NSEGS); else #endif /* ALLPLANES */ XDrawSegments(dpy, root, rootGC, segs, NSEGS); XFlush(dpy); olwm_usleep((unsigned) GRV.IconFlashOffTime); } XUngrabServer(dpy); } #undef NSEGS /* * IconUpdateName -- the icon name property has been changed */ void IconUpdateName(cli,event) Client *cli; XPropertyEvent *event; { iconSetName(cli->iconwin,PANEWINOFCLIENT(cli)); } /* * Set the icon's (x,y) location explicitly. This information is typically * taken from the WM_HINTS structure. Since the coordinates specify the * absolute position of the icon pane, we must subtract the icon border to get * the position if the icon frame. */ void IconSetPos(win,x,y) WinIconFrame *win; int x,y; { (WinFunc(win,core.newposfunc))(win,x-ICON_HORZBORDER,y-ICON_VERTBORDER); } /* * IconShow -- map an icon onto the screen, handling reparenting and * save-sets for icon panes. In click-to-type, if this is the current * client, select the icon to ensure that it's clear that this icon has the * input focus. */ void IconShow(cli, winIcon) Client *cli; WinIconFrame *winIcon; { WinIconPane *pane = (WinIconPane *)winIcon->fcore.panewin; extern Client *CurrentClient; if (! GRV.FocusFollowsMouse && cli == CurrentClient) { ClearSelections(cli->dpy); AddSelection(cli, LastEventTime); } XReparentWindow(cli->dpy, pane->core.self, winIcon->core.self, pane->core.x, pane->core.y); XMapWindow(cli->dpy, pane->core.self); if (pane->iconClientWindow) XChangeSaveSet(cli->dpy, pane->core.self, SetModeInsert); XMapWindow(cli->dpy, winIcon->core.self); } /* * IconHide -- remove an icon from the screen, handling reparenting and * save-sets for icon panes. */ void IconHide(cli, winIcon) Client *cli; WinIconFrame *winIcon; { WinIconPane *pane = (WinIconPane *)winIcon->fcore.panewin; XUnmapWindow(cli->dpy, winIcon->core.self); XUnmapWindow(cli->dpy, pane->core.self); XReparentWindow(cli->dpy, pane->core.self, cli->scrInfo->rootid, winIcon->core.x + pane->core.x, winIcon->core.y + pane->core.y); if (pane->iconClientWindow) XChangeSaveSet(cli->dpy, pane->core.self, SetModeDelete); } xview-3.2p1.4/clients/olwm/winipane.c100644 1750 1750 30056 5413747444 15057 0ustar mbmb#ident "@(#)winipane.c 26.33 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #include #include #include #include #include #include "i18n.h" /* needed by olgx.h */ #include #include "ollocale.h" #include "mem.h" #include "olwm.h" #include "win.h" #include "menu.h" #include "globals.h" #include "events.h" #include "error.h" /*************************************************************************** * global data ***************************************************************************/ extern Atom AtomChangeState; extern Atom AtomColorMapWindows; extern Window NoFocusWin; extern Time TimeFresh(); /*************************************************************************** * private data ***************************************************************************/ /* border width for reparented windows */ #define NORMAL_BORDERWIDTH 0 static ClassPane classIconPane; #define IPANE_DEFAULT_PIXMAP(w) (w)->core.client->scrInfo->pixmap[ICON_BITMAP] #define IPANE_DEFAULT_MASK(w) (w)->core.client->scrInfo->pixmap[ICON_MASK] /*************************************************************************** * private functions ***************************************************************************/ /* * drawIPane -- draw the pane window */ /*ARGSUSED*/ /* dpy arg will be used when multiple Displays supported */ static int drawIPane(dpy, winInfo) Display *dpy; WinIconPane *winInfo; { Window pane = winInfo->core.self; Client *cli = winInfo->core.client; GC gc; XGCValues gcv; if (winInfo->iconClientWindow) return; XFillRectangle(dpy, pane, WinGC(winInfo,WORKSPACE_GC), 0, 0, winInfo->core.width, winInfo->core.height); /* * REMIND: (1) Need to error-check icon pixmap and mask for being the * proper depth. (2) Need to handle color changes better. Should we use * a different GC? */ gc = WinGC(winInfo,ICON_NORMAL_GC); if (winInfo->iconMask != None) { gc = WinGC(winInfo,ICON_MASK_GC); XSetClipMask(dpy, gc, winInfo->iconMask); } XCopyPlane(dpy, winInfo->iconPixmap, pane, gc, 0, 0, winInfo->core.width, winInfo->core.height, 0, 0, (unsigned long)1L); if (winInfo->iconMask != None) { XSetClipMask(dpy, gc, None); } } /* * focusIPane -- handle focus change */ static int focusIPane(dpy, winInfo, focus) Display *dpy; WinGeneric *winInfo; Bool focus; { /* REMIND: change background pixel of pane window */ } /* * destroyIPane -- destroy the pane window resources and free any allocated * data. */ static int destroyIPane(dpy, winInfo) Display *dpy; WinIconPane *winInfo; { /* free our data and throw away window */ WIUninstallInfo(winInfo->core.self); if (!winInfo->iconClientWindow) { /* REMIND there may be other resources to be freed */ ScreenDestroyWindow(winInfo->core.client->scrInfo, winInfo->core.self); } MemFree(winInfo); } /* * setconfigIPane -- change configuration of pane window */ /*ARGSUSED*/ /* dpy arg will be used when multiple Displays supported */ static int setconfigIPane(dpy, winInfo) Display *dpy; WinIconPane *winInfo; { XWindowChanges xwc; if (winInfo->core.dirtyconfig) { xwc.x = winInfo->core.x; xwc.y = winInfo->core.y; xwc.width = winInfo->core.width; xwc.height = winInfo->core.height; XConfigureWindow(dpy, winInfo->core.self, winInfo->core.dirtyconfig&(CWX|CWY|CWWidth|CWHeight), &xwc); winInfo->core.dirtyconfig &= ~(CWX|CWY|CWWidth|CWHeight); } } /* * newconfigIPane - compute a new configuration given an event * Note: this function must *always* be called with a configure request * event. */ static int newconfigIPane(win, pxcre) WinIconPane *win; XConfigureRequestEvent *pxcre; { int oldWidth, oldHeight; int oldX, oldY; WinIconFrame *winFrame = (WinIconFrame *)(win->core.parent); if (pxcre == NULL) return win->core.dirtyconfig; oldX = win->core.x; oldY = win->core.y; oldWidth = win->core.width; oldHeight = win->core.height; if ((pxcre->value_mask & CWHeight) && (pxcre->height != oldHeight)) { win->core.height = pxcre->height; win->core.dirtyconfig |= CWHeight; } if ((pxcre->value_mask & CWWidth) && (pxcre->width != oldWidth)) { win->core.width = pxcre->width; win->core.dirtyconfig |= CWWidth; } if (pxcre->value_mask & CWBorderWidth) { win->pcore.oldBorderWidth = pxcre->border_width; } if (pxcre->value_mask & (CWX | CWY)) { FrameSetPosFromPane(winFrame, (pxcre->value_mask & CWX)?(pxcre->x):oldX, (pxcre->value_mask & CWY)?(pxcre->y):oldY); } if (pxcre->value_mask & (CWStackMode | CWSibling)) { GFrameSetStack(winFrame, pxcre->value_mask, pxcre->detail, pxcre->above); } return win->core.dirtyconfig; } /* * newposIPane - move to a given position (relative to parent) */ static int newposIPane(win,x,y) WinIconPane *win; int x, y; { if (win->core.x != x) { win->core.x = x; win->core.dirtyconfig |= CWX; } if (win->core.y != y) { win->core.y = y; win->core.dirtyconfig |= CWY; } return win->core.dirtyconfig; } /* * setsizeIPane - set the pane to a particular size, and initiate a reconfigure */ static int setsizeIPane(win,w,h) WinIconPane *win; int w, h; { if (win->core.width != w) { win->core.width = w; win->core.dirtyconfig |= CWWidth; } if (win->core.height != h) { win->core.height = h; win->core.dirtyconfig |= CWHeight; } } static int eventEnterNotify(dpy, event, winInfo) Display *dpy; XEvent *event; WinIconPane *winInfo; { if (event->xany.type == EnterNotify) ColorWindowCrossing(dpy, event, winInfo); } /*************************************************************************** * global functions ***************************************************************************/ /* * MakeIconPane -- create the pane window. Return a WinGeneric structure. */ WinIconPane * MakeIconPane(cli,par,wmHints,fexisting) Client *cli; WinGeneric *par; XWMHints *wmHints; Bool fexisting; { WinIconPane *w; WinIconFrame *frame = (WinIconFrame *)par; XSetWindowAttributes xswa; XWindowAttributes attr; long valuemask; Window iconPane; Window winRoot; unsigned int borderWidth, depthReturn; Display *dpy = cli->dpy; int screen = cli->screen; Status status; WinGeneric *info; /* this event mask is used for wm-created icon panes */ #define ICON_PANE_EVENT_MASK \ (ButtonPressMask | ButtonReleaseMask | \ ButtonMotionMask | ExposureMask | EnterWindowMask) /* create the associated structure */ w = MemNew(WinIconPane); w->class = &classIconPane; w->core.kind = WIN_ICONPANE; WinAddChild(par,w); w->core.children = NULL; w->core.client = cli; w->core.x = 0; w->core.y = 0; w->core.colormap = cli->scrInfo->colormap; w->core.dirtyconfig = CWX|CWY|CWWidth|CWHeight; w->core.exposures = NULL; w->core.helpstring = "olwm:Icon"; w->iconClientWindow = False; w->iconPixmap = None; w->iconMask = None; frame->fcore.panewin = (WinGenericPane *)w; /* first try the client's icon window hint */ if (wmHints && (wmHints->flags & IconWindowHint)) { iconPane = wmHints->icon_window; info = WIGetInfo(iconPane); if (info != NULL && info->core.kind != WIN_PANE) { ErrorWarning(GetString( "An existing window was named as an icon window.")); } else { if (info != NULL) StateWithdrawn(info->core.client,TimeFresh()); status = XGetWindowAttributes(dpy, iconPane, &attr); if (status) { w->core.x = attr.x; w->core.y = attr.y; /* constrain to max icon size */ w->core.width = MIN(attr.width,ICON_MAX_WIDTH); w->core.height = MIN(attr.height,ICON_MAX_HEIGHT); w->core.colormap = attr.colormap; w->iconClientWindow = True; XSelectInput(dpy, iconPane, ButtonPressMask | ButtonReleaseMask | ButtonMotionMask | EnterWindowMask); if (attr.border_width != NORMAL_BORDERWIDTH) XSetWindowBorderWidth(dpy, iconPane, NORMAL_BORDERWIDTH); goto goodicon; } ErrorWarning(GetString( "An invalid window was named as an icon window.")); } } /* try the client's icon pixmap hint */ if (wmHints && (wmHints->flags & IconPixmapHint)) { status = XGetGeometry(dpy, wmHints->icon_pixmap, &winRoot, &(w->core.x), &(w->core.y), &(w->core.width), &(w->core.height), &borderWidth, &depthReturn); if (status && depthReturn <= 1) { /* build icon pixmap window */ xswa.border_pixel = 0; xswa.colormap = cli->scrInfo->colormap; xswa.event_mask = ICON_PANE_EVENT_MASK; valuemask = CWBorderPixel | CWColormap | CWEventMask; /* constrain to max icon size */ w->core.width = MIN(w->core.width,ICON_MAX_WIDTH); w->core.height = MIN(w->core.height,ICON_MAX_HEIGHT); iconPane = ScreenCreateWindow(cli->scrInfo, WinRootID(par), 0, 0, w->core.width, w->core.height, valuemask, &xswa); w->iconPixmap = wmHints->icon_pixmap; /* check for the icon mask */ if (wmHints->flags & IconMaskHint) { int junkx, junky; unsigned int junkw, junkh; status = XGetGeometry(dpy, wmHints->icon_mask, &winRoot, &junkx, &junky, &junkw, &junkh, &borderWidth, &depthReturn); if (status && depthReturn == 1) w->iconMask = wmHints->icon_mask; else ErrorWarning(GetString( "An invalid pixmap was named as an icon mask")); } goto goodicon; } else { ErrorWarning(GetString( "An invalid pixmap was named as an icon pixmap")); } } /* use the default icon */ w->iconClientWindow = False; w->iconPixmap = IPANE_DEFAULT_PIXMAP(w); w->iconMask = IPANE_DEFAULT_MASK(w); w->core.x = w->core.y = 0; w->core.width = cli->scrInfo->dfltIconWidth; w->core.height = cli->scrInfo->dfltIconHeight; xswa.border_pixel = 0; xswa.colormap = cli->scrInfo->colormap; xswa.event_mask = ICON_PANE_EVENT_MASK; valuemask = CWBorderPixel | CWColormap | CWEventMask; iconPane = ScreenCreateWindow(cli->scrInfo, WinRootID(par), 0, 0, w->core.width, w->core.height, valuemask, &xswa); goodicon: w->core.self = iconPane; /* set up icon cursor */ XDefineCursor(dpy, w->core.self, GRV.IconPointer); /* register the window */ WIInstallInfo(w); return w; } /* * IconPaneInit -- initialise the IconPane class function vector */ void IconPaneInit(dpy) Display *dpy; { classIconPane.core.kind = WIN_ICONPANE; classIconPane.core.xevents[Expose] = WinEventExpose; classIconPane.core.xevents[ButtonRelease] = PropagateEventToParent; classIconPane.core.xevents[MotionNotify] = PropagateEventToParent; classIconPane.core.xevents[ButtonPress] = PropagateEventToParent; classIconPane.core.xevents[EnterNotify] = eventEnterNotify; classIconPane.core.focusfunc = focusIPane; classIconPane.core.drawfunc = drawIPane; /* NULL */ classIconPane.core.destroyfunc = destroyIPane; classIconPane.core.selectfunc = drawIPane; /* NULL */ classIconPane.core.newconfigfunc = newconfigIPane; classIconPane.core.newposfunc = newposIPane; classIconPane.core.setconfigfunc = setconfigIPane; classIconPane.core.createcallback = NULL; classIconPane.core.heightfunc = NULL; classIconPane.core.widthfunc = NULL; classIconPane.pcore.setsizefunc = setsizeIPane; } /* * Set the icon pane's pixmap. */ void IconPaneSetPixmap(dpy,winInfo,pixmap) Display *dpy; WinIconPane *winInfo; Pixmap pixmap; { if (winInfo->iconClientWindow) return; if (pixmap == None || pixmap == winInfo->iconPixmap) return; if (winInfo->iconMask == IPANE_DEFAULT_MASK(winInfo)) winInfo->iconMask = None; winInfo->iconPixmap = pixmap; } /* * Set the icon pane's mask. */ void IconPaneSetMask(dpy,winInfo,mask) Display *dpy; WinIconPane *winInfo; Pixmap mask; { if (winInfo->iconClientWindow) return; if (mask == None || mask == winInfo->iconMask) return; if (winInfo->iconPixmap == IPANE_DEFAULT_PIXMAP(winInfo)) winInfo->iconPixmap = None; winInfo->iconMask = mask; } xview-3.2p1.4/clients/olwm/winmenu.c100644 1750 1750 15537 5413747444 14736 0ustar mbmb#ident "@(#)winmenu.c 26.18 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #include #include #include #include #include #ifdef OW_I18N_L4 #include "i18n.h" #endif #include #include "i18n.h" #include "ollocale.h" #include "mem.h" #include "olwm.h" #include "win.h" #include "menu.h" #include "globals.h" /*************************************************************************** * private data ***************************************************************************/ /* function vector for menu windows */ static ClassMenu classMenu; #define MENU_SHADOW_OFFSET 10 /*************************************************************************** * private event functions ***************************************************************************/ /* * eventButtonPress - a button has gone down. */ static int eventButtonPress(dpy, event, winInfo) Display *dpy; XEvent *event; WinMenu *winInfo; { /* REMIND - placeholder for future */ } /* * eventButtonRelease - a button has gone up */ static int eventButtonRelease(dpy, event, winInfo) Display *dpy; XEvent *event; WinMenu *winInfo; { /* REMIND - placeholder for future */ } /* * eventKeyPress - a key has gone down */ static int eventKeyPress(dpy, event, winInfo) Display *dpy; XEvent *event; WinMenu *winInfo; { /* REMIND - mouseless operation */ } /* * eventKeyRelease - a key has gone up */ static int eventKeyRelease(dpy, event, winInfo) Display *dpy; XEvent *event; WinMenu *winInfo; { /* REMIND - mouseless operation */ } /* * eventMotionNotify - mouse moved */ static int eventMotionNotify(dpy, event, winInfo) Display *dpy; XEvent *event; WinMenu *winInfo; { /* REMIND - placeholder for future */ } /* * destroyMenu -- destroy the menu window resources and free any allocated * data. */ static int destroyMenu(dpy, winInfo) Display *dpy; WinMenu *winInfo; { XUndefineCursor(dpy, winInfo->core.self); XDestroyWindow(dpy, winInfo->core.self); #ifdef SHADOW XDestroyWindow(dpy, winInfo->menu.shadow); #endif /* SHADOW */ MemFree(winInfo); } /*************************************************************************** * global functions ***************************************************************************/ /* * MakeMenu -- create the WinMenu structure and windows but does not * map them. */ WinMenu * MakeMenu(dpy, winInfo) Display *dpy; WinGeneric *winInfo; { WinMenu *w; Window win; unsigned long valuemask; XSetWindowAttributes attributes; Client *cli = winInfo->core.client; /* create the associated structure */ w = MemNew(WinMenu); w->class = &classMenu; w->core.kind = WIN_MENU; w->core.children = NULL; w->core.client = cli; w->core.x = 0; w->core.y = 0; w->core.width = 1; w->core.height = 1; /* REMIND - is dirtyconfig necessary??? */ w->core.dirtyconfig = CWX|CWY|CWWidth|CWHeight; w->core.exposures = NULL; w->core.helpstring = (char *)0; /* Menu window. */ attributes.event_mask = ButtonPressMask | ExposureMask; attributes.save_under = DoesSaveUnders( ScreenOfDisplay(dpy,cli->screen)); attributes.border_pixel = 0; attributes.colormap = cli->scrInfo->colormap; valuemask = CWEventMask | CWSaveUnder | CWBorderPixel | CWColormap; win = XCreateWindow(dpy, WinRootID(winInfo), w->core.x, w->core.y, w->core.width, w->core.height, 0, WinDepth(winInfo), InputOutput, WinVisual(winInfo), valuemask, &attributes); w->core.self = win; WIInstallInfo(w); #ifdef SHADOW /* REMIND - there is no pixmapGray - what to use really??? */ attributes.background_pixmap = pixmapGray; attributes.save_under = DoesSaveUnders(cli->screen); w->shadow = XCreateWindow(dpy, WinRootID(winInfo), 0, 0, 1, 1, 0, WinDepth(winInfo), InputOutput, WinVisual(winInfo), CWBackPixmap | CWSaveUnder, &attributes); #endif /* SHADOW */ XDefineCursor( dpy, win, GRV.MenuPointer ); return w; } /* * MapMenuWindow - Configures (sizes) and maps the WinMenu windows */ void MapMenuWindow(dpy,winInfo,menuInfo) Display *dpy; WinMenu *winInfo; MenuInfo *menuInfo; { XWindowChanges changes; /* position, size and map menu window */ winInfo->core.x = menuInfo->menuX; winInfo->core.y = menuInfo->menuY; winInfo->core.width = menuInfo->menuWidth; winInfo->core.height = menuInfo->menuHeight; changes.x = winInfo->core.x; changes.y = winInfo->core.y; changes.width = winInfo->core.width; changes.height = winInfo->core.height; XConfigureWindow(dpy,winInfo->core.self, CWX|CWY|CWWidth|CWHeight,&changes); XMapRaised(dpy,winInfo->core.self); #ifdef SHADOW /* map shadow below menu window */ changes.x = menuInfo.menuX + MENU_SHADOW_OFFSET; changes.y = menuInfo.menuY + MENU_SHADOW_OFFSET; changes.sibling = winInfo->core.self; change.stack_mode = Below; XConfigureWindow(dpy,winInfo->shadow, CWX|CWY|CWWidth|CWHeight|CWStackMode|CWSibling,&changes); #endif /* SHADOW */ /* save the menuinfo */ winInfo->menuInfo = menuInfo; DrawMenu(dpy,menuInfo); } /* * UnmapMenuWindow - take down WinMenu windows */ void UnmapMenuWindow(dpy,winInfo) Display *dpy; WinMenu *winInfo; { XUnmapWindow(dpy,winInfo->core.self); #ifdef SHADOW XUnmapWindow(dpy,winInfo->shadow); #endif /* SHADOW */ winInfo->menuInfo = (MenuInfo *)NULL; } int MenuEventExpose(dpy, event, winInfo) Display *dpy; XEvent *event; WinGeneric *winInfo; { MenuInfo *mInfo = NULL; if (winInfo->core.kind == WIN_MENU) mInfo = ((WinMenu *) winInfo)->menuInfo; else mInfo = ((WinPinMenu *) winInfo)->menuInfo; if (mInfo == NULL) /*not yet reparented*/ WinEventExpose(dpy, event, winInfo); else { SetMenuRedrawHints(dpy, event, mInfo); if (event->xexpose.count == 0) DrawMenuWithHints(dpy, mInfo); } } /* * drawMenu -- draw the menu window */ int MenuEventDrawMenu(dpy, winInfo) Display *dpy; WinGeneric *winInfo; { MenuInfo *mInfo = NULL; if (winInfo->core.kind == WIN_MENU) mInfo = ((WinMenu *) winInfo)->menuInfo; else mInfo = ((WinPinMenu *) winInfo)->menuInfo; if (mInfo) DrawMenu(dpy, mInfo); } /* * MenuInit - initialize WinMenu class functions */ /*ARGSUSED*/ void MenuInit(dpy) Display *dpy; { classMenu.core.kind = WIN_MENU; classMenu.core.xevents[ButtonPress] = eventButtonPress; classMenu.core.xevents[ButtonRelease] = eventButtonRelease; classMenu.core.xevents[MotionNotify] = eventMotionNotify; classMenu.core.xevents[KeyPress] = eventKeyPress; classMenu.core.xevents[KeyRelease] = eventKeyRelease; classMenu.core.xevents[Expose] = MenuEventExpose; classMenu.core.drawfunc = MenuEventDrawMenu; classMenu.core.destroyfunc = destroyMenu; classMenu.core.heightfunc = NULL; classMenu.core.widthfunc = NULL; } xview-3.2p1.4/clients/olwm/winnofoc.c100644 1750 1750 15431 5413747444 15067 0ustar mbmb#ident "@(#)winnofoc.c 26.22 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #include #include #include #include #include #include "i18n.h" /* needed by olgx.h */ #include #include "ollocale.h" #include "mem.h" #include "olwm.h" #include "win.h" #include "globals.h" #include "selection.h" extern unsigned int FindModifierMask(); extern Atom AtomProtocols; extern Atom AtomOlwmNoFocusWin; extern Atom AtomTakeFocus; extern void ClientSetCurrent(); /*************************************************************************** * global data ***************************************************************************/ Window NoFocusWin = NULL; WinNoFocus *NoFocusWinInfo; /*************************************************************************** * private data ***************************************************************************/ static ClassNoFocus classNoFocus; /*************************************************************************** * private functions ***************************************************************************/ /* * DestroyNoFocus -- destroy the no-focus window and free any allocated * data. */ static int destroyNoFocus(dpy, winInfo) Display *dpy; WinGeneric *winInfo; { /* free our data and throw away window */ XDestroyWindow(dpy, winInfo->core.self); WIUninstallInfo(winInfo->core.self); MemFree(winInfo); } /* * eventClientMessage - handle WM_TAKE_FOCUS messages. This is a vestige of a * previous focus-handling scheme. However, it remains, in case it becomes * useful at some time for the no-focus window to respond to WM_TAKE_FOCUS * messages. */ static int eventClientMessage(dpy, event, winInfo) Display *dpy; XEvent *event; WinNoFocus *winInfo; { if (event->xclient.message_type == AtomProtocols && event->xclient.data.l[0] == AtomTakeFocus && event->xclient.format == 32) { NoFocusTakeFocus(dpy, event->xclient.data.l[1]); } } /* * eventSelection * * Handle a SelectionRequest or SelectionClear event. */ static int eventSelection(dpy, pEvent, winInfo) Display *dpy; XEvent *pEvent; WinNoFocus *winInfo; { SelectionResponse(pEvent); } /*************************************************************************** * global functions ***************************************************************************/ /* * MakeNoFocus -- create the no-focus windows to a window. Return a * WinGeneric structure. */ WinGeneric * MakeNoFocus(dpy, par) Display *dpy; WinGeneric *par; { XSetWindowAttributes attributes; WinNoFocus *w; /* create the window */ attributes.event_mask = KeyPressMask | PropertyChangeMask; attributes.override_redirect = True; NoFocusWin = XCreateWindow(dpy, par->core.self, -10, -10, 10, 10 , 0, 0, InputOnly, CopyFromParent, CWEventMask | CWOverrideRedirect, &attributes); XMapWindow(dpy, NoFocusWin); /* create the associated structure */ w = MemNew(WinNoFocus); w->core.self = NoFocusWin; w->core.kind = WIN_NOFOCUS; w->class = &classNoFocus; w->core.parent = par; w->core.children = NULL; w->core.client = par->core.client; w->core.x = -10; w->core.y = -10; w->core.width = 10; w->core.height = 10; w->core.dirtyconfig = False; w->core.exposures = NULL; w->core.helpstring = (char *)NULL; /* no help */ /* register the window */ WIInstallInfo(w); /* set the focus to the NoFocusWin */ NoFocusWinInfo = w; /* * Call TimeFresh to leave a property on the window so that it's * identifiable with `xprop'. */ (void) TimeFresh(); return w; } void NoFocusInit(dpy) Display *dpy; { classNoFocus.core.kind = WIN_NOFOCUS; classNoFocus.core.xevents[ButtonPress] = NoFocusEventBeep; classNoFocus.core.xevents[ButtonRelease] = NoFocusEventBeep; classNoFocus.core.xevents[KeyPress] = NoFocusEventBeep; classNoFocus.core.xevents[KeyRelease] = NoFocusEventBeep; classNoFocus.core.xevents[ClientMessage] = eventClientMessage; classNoFocus.core.xevents[SelectionRequest] = eventSelection; classNoFocus.core.xevents[SelectionClear] = eventSelection; classNoFocus.core.focusfunc = NULL; classNoFocus.core.drawfunc = NULL; classNoFocus.core.destroyfunc = destroyNoFocus; classNoFocus.core.selectfunc = NULL; classNoFocus.core.newconfigfunc = NULL; classNoFocus.core.newposfunc = NULL; classNoFocus.core.setconfigfunc = NULL; classNoFocus.core.createcallback = NULL; classNoFocus.core.heightfunc = NULL; classNoFocus.core.widthfunc = NULL; } /* * Set the focus to the NoFocus window. If colormap installation is tracking * the focus, install and lock the default colormap for this screen. */ void NoFocusTakeFocus(dpy,evtime,scrInfo) Display *dpy; Time evtime; ScreenInfo *scrInfo; { XSetInputFocus(dpy, NoFocusWin, RevertToParent, evtime); ClientSetCurrent(NoFocusWinInfo->core.client); ClientDefaultWindowState(dpy); if (scrInfo != NULL && GRV.ColorTracksInputFocus) InstallDefaultColormap(dpy, scrInfo->rootwin, True); } /* * NoFocusEventBeep -- beep on keyboard/mouse events for the no-focus window * Also used by busy windows */ int NoFocusEventBeep(dpy, event, winInfo) Display *dpy; XEvent *event; WinGeneric *winInfo; { XEvent dummy; if (FindModifierMask(event->xkey.keycode) != 0) return; XSync(dpy,0); /* * Discard pending keyboard and mouse events on this * window, and then beep once. */ while (XCheckTypedWindowEvent(dpy,winInfo->core.self, KeyPress,&dummy)) /*EMPTY*/ ; while (XCheckTypedWindowEvent(dpy,winInfo->core.self, KeyRelease,&dummy)) /*EMPTY*/ ; while (XCheckTypedWindowEvent(dpy,winInfo->core.self, ButtonPress,&dummy)) /*EMPTY*/ ; while (XCheckTypedWindowEvent(dpy,winInfo->core.self, ButtonRelease,&dummy)) /*EMPTY*/ ; KeyBeep(dpy,event); } /* * TimeFresh * * Get a fresh timestamp from the server. This is accomplished by writing a * zero-length property on the no-focus window and getting the timestamp out * of the resulting PropertyNotify event. */ Time TimeFresh() { XEvent e; Time timestamp; XChangeProperty(NoFocusWinInfo->core.client->dpy, NoFocusWin, AtomOlwmNoFocusWin, XA_INTEGER, 32, PropModeReplace, (unsigned char *)NoFocusWinInfo, 0); XSync(NoFocusWinInfo->core.client->dpy, False); if (XCheckTypedWindowEvent(NoFocusWinInfo->core.client->dpy, NoFocusWin, PropertyNotify, &e)) timestamp = e.xproperty.time; else timestamp = CurrentTime; return timestamp; } xview-3.2p1.4/clients/olwm/winpane.c100644 1750 1750 31327 5413747445 14711 0ustar mbmb#ident "@(#)winpane.c 26.22 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #include #include #include #include #include #include "i18n.h" /* needed by olgx.h */ #include #include "ollocale.h" #include "mem.h" #include "olwm.h" #include "win.h" #include "globals.h" extern Time TimeFresh(); /*************************************************************************** * global data ***************************************************************************/ extern Atom AtomChangeState; extern Atom AtomColorMapWindows; extern Window NoFocusWin; extern void ColormapChange(); extern void FrameGetGravityOffset(); /*************************************************************************** * private data ***************************************************************************/ /* border width for reparented windows */ #define NORMAL_BORDERWIDTH 0 static ClassPane classPane; static Bool disallowMappedRepositioning = False; /*************************************************************************** * private functions ***************************************************************************/ /* * eventEnterLeaveNotify - The pointer has entered or left the window */ static int eventEnterLeaveNotify(dpy, event, winInfo) Display *dpy; XEvent *event; WinPane *winInfo; { if (event->xany.type == EnterNotify) ColorWindowCrossing(dpy, event, winInfo); } /* * eventColormapNotify * * Handle changes to this window's colormap attribute. */ static int eventColormapNotify(dpy, event, winInfo) Display *dpy; XEvent *event; WinPane *winInfo; { ColormapChange(dpy, event, (WinGeneric *)winInfo); } /* * eventUnmapNotify - the client is transitioning to withrdrawn */ static int eventUnmapNotify(dpy, event, winInfo) Display *dpy; XEvent *event; WinPane *winInfo; { if (winInfo->pcore.pendingUnmaps > 0) { --winInfo->pcore.pendingUnmaps; } else { /* Mark current state */ StateWithdrawn(winInfo->core.client,TimeFresh()); } } /* * eventDestroyNotify - the pane window has disappeared * This function can get called either during new state processing, * or while app is iconic */ static int eventDestroyNotify(dpy, event, winInfo) Display *dpy; XEvent *event; WinPane *winInfo; { StateWithdrawn(winInfo->core.client,TimeFresh()); } /* * eventPropertyNotify - handle client messages, in particular iconic requests */ static int eventPropertyNotify(dpy, event, winInfo) Display *dpy; XEvent *event; WinPane *winInfo; { ClientDistributeProperty(winInfo->core.client,event); } /* * eventClientMessage - handle client messages, in particular iconic requests */ static int eventClientMessage(dpy, event, winInfo) Display *dpy; XEvent *event; WinPane *winInfo; { Client *cli = winInfo->core.client; if (event->xclient.message_type == AtomChangeState) { if (event->xclient.data.l[0] == IconicState) StateIconic(cli,TimeFresh()); } } /* * eventExtension - handle extension events */ static int eventExtension(dpy, event, winInfo) Display *dpy; XEvent *event; WinPane *winInfo; { #ifdef SHAPE XShapeEvent *se; Client *cli; if (event->xany.type == ShapeEventBase) { /* it's a ShapeNotify event */ se = (XShapeEvent *) event; if (se->kind != ShapeBounding) return; cli = winInfo->core.client; cli->isShaped = se->shaped; FrameUpdateShape(cli, cli->framewin); } #endif /* SHAPE */ } /* * drawPane -- draw the pane window */ /*ARGSUSED*/ /* dpy arg will be used when multiple Displays supported */ static int drawPane(dpy, winInfo) Display *dpy; WinGeneric *winInfo; { } /* * focusPane -- handle focus change */ static int focusPane(dpy, winInfo, focus) Display *dpy; WinGeneric *winInfo; Bool focus; { } /* * DestroyPane -- destroy the pane window resources and free any allocated * data. */ static int destroyPane(dpy, winInfo) Display *dpy; WinGeneric *winInfo; { /* free our data and throw away window */ WIUninstallInfo(winInfo->core.self); MemFree(winInfo); } /* * setconfigPane -- change configuration of pane window */ /*ARGSUSED*/ /* dpy arg will be used when multiple Displays supported */ static int setconfigPane(dpy, winInfo) Display *dpy; WinPane *winInfo; { XConfigureEvent ce; XWindowChanges xwc; if (winInfo->core.dirtyconfig) { xwc.x = winInfo->core.x; xwc.y = winInfo->core.y; xwc.width = winInfo->core.width; xwc.height = winInfo->core.height; XConfigureWindow(dpy, winInfo->core.self, winInfo->core.dirtyconfig, &xwc); winInfo->core.dirtyconfig &= ~(CWX|CWY|CWWidth|CWHeight); } /* send synthetic configure notify in root coordinates */ ce.type = ConfigureNotify; ce.serial = 0L; ce.event = winInfo->core.self; ce.window = winInfo->core.self; WinRootPos(winInfo,&ce.x,&ce.y); ce.x -= winInfo->pcore.oldBorderWidth; ce.y -= winInfo->pcore.oldBorderWidth; ce.width = winInfo->core.width; ce.height = winInfo->core.height; ce.border_width = winInfo->pcore.oldBorderWidth; ce.above = None; ce.override_redirect = False; XSendEvent(dpy, winInfo->core.self, False, StructureNotifyMask, (XEvent *)&ce); } /* * newconfigPane - compute a new configuration given an event * Note: this function must *always* be called with a configure request * event. */ static int newconfigPane(win, pxcre) WinPane *win; XConfigureRequestEvent *pxcre; { int oldWidth, oldHeight; Client *cli = win->core.client; int oldX, oldY; WinPaneFrame *winFrame = cli->framewin; void FrameMoveRelative(); int dwidth, dheight; int dx, dy; if (pxcre == NULL) return win->core.dirtyconfig; WinRootPos(winFrame, &oldX, &oldY); FrameGetGravityOffset(winFrame, &dx, &dy); oldX += dx; oldY += dy; oldWidth = win->core.width; oldHeight = win->core.height; if ((pxcre->value_mask & CWHeight) && (pxcre->height != oldHeight)) { win->core.height = pxcre->height; win->core.dirtyconfig |= CWHeight; } if ((pxcre->value_mask & CWWidth) && (pxcre->width != oldWidth)) { win->core.width = pxcre->width; win->core.dirtyconfig |= CWWidth; } if (pxcre->value_mask & CWBorderWidth) { win->pcore.oldBorderWidth = pxcre->border_width; } if (disallowMappedRepositioning) pxcre->value_mask &= ~(CWX | CWY); if (pxcre->value_mask & (CWX | CWY)) { FrameSetPosFromPane(winFrame, (pxcre->value_mask & CWX)?(pxcre->x):oldX, (pxcre->value_mask & CWY)?(pxcre->y):oldY); } else { dwidth = oldWidth - win->core.width; dheight = oldHeight - win->core.height; if ((dwidth != 0) || (dheight!=0)) { switch (cli->normHints->win_gravity) { case StaticGravity: case NorthWestGravity: break; case NorthGravity: FrameMoveRelative(winFrame,dwidth/2,0); break; case NorthEastGravity: FrameMoveRelative(winFrame,dwidth,0); break; case WestGravity: FrameMoveRelative(winFrame,0,dheight/2); break; case CenterGravity: FrameMoveRelative(winFrame,dwidth/2,dheight/2); break; case EastGravity: FrameMoveRelative(winFrame,dwidth,dheight/2); break; case SouthWestGravity: FrameMoveRelative(winFrame,0,dheight); break; case SouthGravity: FrameMoveRelative(winFrame,dwidth/2,dheight); break; case SouthEastGravity: FrameMoveRelative(winFrame,dwidth,dheight); break; } } } if (pxcre->value_mask & (CWStackMode | CWSibling)) { GFrameSetStack(winFrame, pxcre->value_mask, pxcre->detail, pxcre->above); } return win->core.dirtyconfig; } /* * newposPane - move to a given position (relative to parent) */ static int newposPane(win,x,y) WinPane *win; int x, y; { if (win->core.x != x) { win->core.x = x; win->core.dirtyconfig |= CWX; } if (win->core.y != y) { win->core.y = y; win->core.dirtyconfig |= CWY; } return win->core.dirtyconfig; } /* * setsizePane - set the pane to a particular size, and initiate a reconfigure */ static int setsizePane(win,w,h) WinPane *win; int w, h; { if (win->core.width != w) { win->core.width = w; win->core.dirtyconfig |= CWWidth; } if (win->core.height != h) { win->core.height = h; win->core.dirtyconfig |= CWHeight; } } /*************************************************************************** * global functions ***************************************************************************/ /* * MakePane -- create the pane window. Return a WinGeneric structure. */ WinPane * MakePane(cli,par,win,paneattrs) Client *cli; WinGeneric *par; Window win; XWindowAttributes *paneattrs; { WinPane *w; XSetWindowAttributes attributes; long mask; WinColormap *colorwin; /* this window may already be mentioned as a colourmap window. * grab its colourmap window structure, and unhook it from the * event dispatching table so we can register a new structure * for the window. We will call another function at the end * of pane processing to re-establish the relation between this * window and other structures in the system. */ colorwin = ColormapUnhook(win); /* create the associated structure */ w = MemNew(WinPane); w->core.self = win; w->class = &classPane; w->core.kind = WIN_PANE; WinAddChild(par,w); w->core.children = NULL; w->core.client = cli; w->core.x = 0; /* gets fixed up later */ w->core.y = 0; /* gets fixed up later */ w->core.width = paneattrs->width; w->core.height = paneattrs->height; w->core.colormap = paneattrs->colormap; w->core.dirtyconfig = CWX|CWY|CWWidth|CWHeight; w->core.exposures = NULL; w->pcore.oldBorderWidth = paneattrs->border_width; w->pcore.oldSaveUnder = paneattrs->save_under; w->core.helpstring = (char *)NULL; /* no help */ cli->framewin->fcore.panewin = (WinGenericPane *)w; /* register the window */ WIInstallInfo(w); /* Put the window in the save set so it doesn't go away */ XChangeSaveSet(cli->dpy,win,SetModeInsert); /* * Since the pane is reparented, save-unders are not useful. * In the code above the save-under attribute is propogated to * the frame, so it is safe to remove it here. But don't do this for * InputOnly windows. */ if (paneattrs->class == InputOutput) { attributes.save_under = False; XChangeWindowAttributes(cli->dpy, win, (unsigned long) CWSaveUnder, &attributes); /* * Change the border width if necessary. The border width of * InputOnly windows is zero by definition. */ if (paneattrs->border_width != NORMAL_BORDERWIDTH) XSetWindowBorderWidth(cli->dpy, win, NORMAL_BORDERWIDTH); } /* * Focus Lenience. Be lenient about enforcing the requirement that * clients set the input hint in WM_HINTS before they can get keyboard * input. If this flag is set, and if the focus mode is NoInput, then * force the mode to be passive. This way, if a client either fails * to set the WM_HINTS.input field, or fails to write WM_HINTS at all, * it can still get keyboard input. * * REMIND This kind of flag should be implemented on a * client-by-client basis, not on a global basis. */ if (GRV.FocusLenience && cli->focusMode == NoInput ) { cli->focusMode = Passive; } /* Reparent the pane */ XReparentWindow(cli->dpy, win, par->core.self, w->core.x, w->core.y); /* we may have saved colourmap manipulation information at * the beginning. Re-establish the connection between this window * and other structures based on the old structure. */ ColormapTransmogrify(colorwin, w); return w; } /* * PaneInit -- initialise the Pane class function vector */ void PaneInit(dpy) Display *dpy; { classPane.core.kind = WIN_PANE; classPane.core.xevents[EnterNotify] = eventEnterLeaveNotify; classPane.core.xevents[LeaveNotify] = eventEnterLeaveNotify; classPane.core.xevents[ColormapNotify] = eventColormapNotify; classPane.core.xevents[UnmapNotify] = eventUnmapNotify; classPane.core.xevents[DestroyNotify] = eventDestroyNotify; classPane.core.xevents[PropertyNotify] = eventPropertyNotify; classPane.core.xevents[ClientMessage] = eventClientMessage; classPane.core.extEventHdlr = eventExtension; classPane.core.focusfunc = focusPane; classPane.core.drawfunc = NULL; classPane.core.destroyfunc = destroyPane; classPane.core.selectfunc = NULL; classPane.core.newconfigfunc = newconfigPane; classPane.core.newposfunc = newposPane; classPane.core.setconfigfunc = setconfigPane; classPane.core.createcallback = NULL; classPane.core.heightfunc = NULL; classPane.core.widthfunc = NULL; classPane.pcore.setsizefunc = setsizePane; } xview-3.2p1.4/clients/olwm/winpinmenu.c100644 1750 1750 25531 5413747445 15441 0ustar mbmb#ident "@(#)winpinmenu.c 26.31 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #include #include #include #include #include #include "i18n.h" /* needed by olgx.h */ #include #include "ollocale.h" #include "mem.h" #include "olwm.h" #include "win.h" #include "menu.h" #include "globals.h" /*************************************************************************** * global data ***************************************************************************/ extern Atom AtomDecorAdd; extern Atom AtomDecorHeader; extern Atom AtomDecorPin; extern Atom AtomDeleteWindow; extern Atom AtomMenuLimited; extern Atom AtomProtocols; extern Atom AtomPushpinState; extern Atom AtomWinAttr; extern Atom AtomWTOther; #ifdef OW_I18N_L4 extern Atom AtomCompoundText; #endif /*************************************************************************** * private data ***************************************************************************/ /* function vector for menu windows */ static ClassPinMenu classPinMenu; /*************************************************************************** * private functions ***************************************************************************/ /* * afterMenuShow - called after MenuShowSync has finished showing * and possibly executing the menu. */ static void afterMenuShow(win) WinPinMenu *win; { MenuInfo *mInfo = win->menuInfo; Display *dpy = win->core.client->dpy; if (BUTTON_INDEX_OK(mInfo, mInfo->litButton)) { DrawLocCursor(dpy, mInfo, mInfo->litButton, False); SetButton(dpy, mInfo, mInfo->litButton, False, False); } SetButton(dpy, mInfo, mInfo->menu->buttonDefault, True, True); } /*************************************************************************** * private event functions ***************************************************************************/ /* * eventButtonPress - a button has gone down. */ static int eventButtonPress(dpy, event, winInfo) Display *dpy; XEvent *event; WinPinMenu *winInfo; { if (! StartMenuGrabs(dpy, winInfo)) return; MenuMakeFirst(winInfo->menuInfo, afterMenuShow, winInfo); MenuTrack(dpy, event, winInfo, winInfo); } static int eventKeyEvent(dpy, event, winInfo) Display *dpy; XEvent *event; WinPinMenu *winInfo; { MenuMakeFirst(winInfo->menuInfo, afterMenuShow, winInfo); if (MenuHandleKeyEvent(dpy, event, winInfo, winInfo)) { if (! StartMenuGrabs(dpy, winInfo)) return; } } /* * eventClientMessage - handle a DELETE_WINDOW message. */ /*ARGSUSED*/ static int eventClientMessage(dpy, event, winInfo) Display *dpy; XEvent *event; WinPinMenu *winInfo; { if ((event->xclient.message_type == AtomProtocols) && (event->xclient.data.l[0] == AtomDeleteWindow)) { DestroyClient(winInfo->core.client); } } static int eventEnterNotify(dpy, event, winInfo) Display *dpy; XEvent *event; WinPinMenu *winInfo; { if (event->xany.type == EnterNotify) ColorWindowCrossing(dpy, event, winInfo); } static int focusMenuFunc(dpy, winInfo, focus) Display *dpy; WinPinMenu *winInfo; Bool focus; { MenuInfo *mInfo = winInfo->menuInfo; if (mInfo->litButton != NOBUTTON && focus) { SetButton(dpy, mInfo, mInfo->menu->buttonDefault, False, True); SetButton(dpy, mInfo, mInfo->litButton, True, False); DrawLocCursor(dpy, mInfo, mInfo->litButton, True); } else if (! focus) { if (BUTTON_INDEX_OK(mInfo, mInfo->litButton)) { DrawLocCursor(dpy, mInfo, mInfo->litButton, False); SetButton(dpy, mInfo, mInfo->litButton, False, False); } SetButton(dpy, mInfo, mInfo->menu->buttonDefault, True, True); } } /* * destroyMenu -- destroy the menu window resources and free any allocated * data. */ static int destroyMenu(dpy, winInfo) Display *dpy; WinPinMenu *winInfo; { MenuInfo *menuInfo = (MenuInfo *)(winInfo->menuInfo); /* tell the original menu that we're gone */ menuInfo->origmenuInfo->pinnedBrother = NULL; /* remove window */ ScreenDestroyWindow(winInfo->core.client->scrInfo, winInfo->core.self); WIUninstallInfo(winInfo->core.self); /* free memory */ MemFree(menuInfo); MemFree(winInfo); } /* * newconfigMenu - recomputes the size of the menu window * Note that menus don't change size, so this is a no-op. */ /*ARGSUSED*/ static int newconfigMenu(win, pxcre) WinPinMenu *win; XConfigureRequestEvent *pxcre; { return win->core.dirtyconfig; } /* menuSetParent -- callback during creation. Since menus are internally- * created windows we must fix up certain fields that are only available * after the window is mapped. */ static int menuSetParent(winInfo,cli,par) WinGeneric *winInfo; Client *cli; WinGenericFrame *par; { MenuInfo *mInfo; /* mark this client as owned by olwm itself */ cli->flags = CLOlwmOwned; winInfo->core.client = cli; WinAddChild((WinGeneric *)par, winInfo); XReparentWindow(cli->dpy, winInfo->core.self, par->core.self, winInfo->core.x, winInfo->core.y); par->fcore.panewin = (WinGenericPane *)winInfo; mInfo = ((WinPinMenu *) winInfo)->menuInfo; winInfo->core.helpstring = mInfo->menu->helpstring; par->core.helpstring = mInfo->menu->helpstring; } /*************************************************************************** * global functions ***************************************************************************/ /* * MakePinMenu -- create the pinned menu's menu window (around which we'll put * a frame). The window is mapped during the transition to normal * state. */ WinPinMenu * MakePinMenu(dpy, winInfo, origMenuInfo) Display *dpy; WinGeneric *winInfo; MenuInfo *origMenuInfo; { WinPinMenu *w; Window win; Window rootWin; unsigned long valuemask; XSetWindowAttributes attributes; Atom atomList[3]; XSizeHints sizeHints; XWMHints wmHints; MenuInfo *newMenuInfo; #ifdef OW_I18N_L4 XTextProperty textProps; #endif /* Make a copy of the original MenuInfo * the main difference is that a pinned menu does not have a title * in itself since the frame takes care of the title for us. * Also adjust our height to remove the title height */ newMenuInfo = MemNew(MenuInfo); *newMenuInfo = *origMenuInfo; newMenuInfo->menu = origMenuInfo->menu; newMenuInfo->titleWidth = 0; newMenuInfo->titleHeight = 0; newMenuInfo->menuHeight = origMenuInfo->menuHeight - origMenuInfo->titleHeight; newMenuInfo->buttonOffset = newMenuInfo->notitleOffset; newMenuInfo->childActive = False; newMenuInfo->pinIn = False; newMenuInfo->litButton = NOBUTTON; newMenuInfo->ringedButton = newMenuInfo->menu->buttonDefault; /* save a back pointer to the original and mark it pinned */ newMenuInfo->origmenuInfo = origMenuInfo; newMenuInfo->pinnedBrother = NULL; origMenuInfo->pinnedBrother = newMenuInfo; /* create the associated structure */ w = MemNew(WinPinMenu); w->class = &classPinMenu; w->core.kind = WIN_PINMENU; w->core.children = NULL; w->core.client = winInfo->core.client; w->core.x = newMenuInfo->menuX; w->core.y = newMenuInfo->menuY; w->core.width = newMenuInfo->menuWidth; w->core.height = newMenuInfo->menuHeight; w->core.dirtyconfig = CWX|CWY|CWWidth|CWHeight; w->core.exposures = NULL; w->core.helpstring = (char *)0; w->core.colormap = winInfo->core.client->scrInfo->colormap; /* create the actual window */ attributes.event_mask = ButtonReleaseMask | ButtonPressMask | ExposureMask | PropertyChangeMask | ButtonMotionMask | KeyPressMask | KeyReleaseMask | EnterWindowMask; attributes.background_pixel = winInfo->core.client->scrInfo->colorInfo.bg1Color; attributes.border_pixel = 0; attributes.colormap = w->core.colormap; attributes.cursor = GRV.MenuPointer; valuemask = CWEventMask | CWBackPixel | CWBorderPixel | CWColormap | CWCursor; win = ScreenCreateWindow(winInfo->core.client->scrInfo, WinRootID(winInfo), w->core.x, w->core.y, w->core.width, w->core.height, valuemask, &attributes); w->core.self = win; /* register the window */ WIInstallInfo((WinGeneric *)w); /* first we set the properties defining what kind of OpenLook window it is */ atomList[0] = AtomWTOther; atomList[1] = AtomMenuLimited; atomList[2] = (Atom) PIN_IN; XChangeProperty(dpy, win, AtomWinAttr, AtomWinAttr, 32, PropModeReplace, (unsigned char *)atomList, 3); /* add a push-pin */ atomList[0] = AtomDecorPin; atomList[1] = AtomDecorHeader; XChangeProperty(dpy, win, AtomDecorAdd, XA_ATOM, 32, PropModeReplace, (unsigned char *)atomList, 2); /* set protocols */ atomList[0] = AtomDeleteWindow; XChangeProperty(dpy, win, AtomProtocols, XA_ATOM, 32, PropModeReplace, (unsigned char *)atomList, 1); /* now set the size hints */ sizeHints.flags = USPosition | USSize; XChangeProperty(dpy, win, XA_WM_NORMAL_HINTS, XA_WM_SIZE_HINTS, 32, PropModeReplace, (unsigned char *)&sizeHints, sizeof(XSizeHints)/sizeof(long)); /* and the wmHints */ wmHints.flags = InputHint | StateHint; wmHints.initial_state = NormalState; wmHints.input = True; XChangeProperty(dpy, win, XA_WM_HINTS, XA_WM_HINTS, 32, PropModeReplace, (unsigned char *)&wmHints, sizeof(XWMHints)/sizeof(long)); /* put the title into the header */ #ifdef OW_I18N_L4 /* * Should be using XStdICCTextStyle, but uses * XCompoundTextStyle for workaround for bug 1100305. */ if (XwcTextListToTextProperty(dpy, &newMenuInfo->menu->title, 1, XCompoundTextStyle, &textProps) == Success) { XSetWMName(dpy, win, &textProps); XFree((char *)textProps.value); } #else XStoreName(dpy, win, newMenuInfo->menu->title); #endif newMenuInfo->menuWin = (WinGeneric *)w; w->menuInfo = newMenuInfo; rootWin = w->core.client->scrInfo->rootid; StateNew(dpy, rootWin, win, False, (WinPane *)w); return w; } /* * PinMenuInit - initializes class functions */ /*ARGSUSED*/ int PinMenuInit(dpy) Display *dpy; { classPinMenu.core.kind = WIN_PINMENU; classPinMenu.core.xevents[ButtonPress] = eventButtonPress; classPinMenu.core.xevents[ClientMessage] = eventClientMessage; classPinMenu.core.xevents[KeyPress] = eventKeyEvent; classPinMenu.core.xevents[KeyRelease] = eventKeyEvent; classPinMenu.core.xevents[EnterNotify] = eventEnterNotify; classPinMenu.core.xevents[Expose] = MenuEventExpose; classPinMenu.core.focusfunc = focusMenuFunc; classPinMenu.core.drawfunc = MenuEventDrawMenu; classPinMenu.core.destroyfunc = destroyMenu; classPinMenu.core.selectfunc = NULL; classPinMenu.core.newconfigfunc = newconfigMenu; classPinMenu.core.newposfunc = WinNewPosFunc; classPinMenu.core.setconfigfunc = WinSetConfigFunc; classPinMenu.core.createcallback = menuSetParent; classPinMenu.core.heightfunc = NULL; classPinMenu.core.widthfunc = NULL; classPinMenu.pcore.setsizefunc = NULL; } xview-3.2p1.4/clients/olwm/winpush.c100644 1750 1750 25043 5413747445 14743 0ustar mbmb#ident "@(#)winpush.c 26.23 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #include #include #include #include #include #ifdef OW_I18N_L4 #include "i18n.h" #endif #include #include "i18n.h" #include "ollocale.h" #include "mem.h" #include "olwm.h" #include "win.h" #include "globals.h" /*************************************************************************** * global data ***************************************************************************/ extern Atom AtomDeleteWindow; extern Atom AtomPushpinState; extern void FrameAllowEvents(); /*************************************************************************** * private data ***************************************************************************/ static ClassPushPin classPushPin; static Bool pushpinStateAfterPress; /* State of the pushpin * after the user pressed * the mouse button. */ static SemanticAction currentAction = ACTION_NONE; void PushPinChangePinState(); /*************************************************************************** * private functions ***************************************************************************/ /* locallyChangePushPinState -- temporarily change the pushpin state, * while tracking a button press over the pin. The permanent change * will be made later. */ static void locallyChangePushPinState(dpy,winInfo,newState) Display *dpy; WinPushPin *winInfo; Bool newState; { if (winInfo->pushpinin != newState) { winInfo->pushpinin = newState; (WinFunc(winInfo,core.drawfunc))(dpy, winInfo); } } /* * eventButtonPress - handle button press events on the pushpin window */ static int eventButtonPress(dpy, event, winInfo) Display *dpy; XEvent *event; WinPushPin *winInfo; { SemanticAction a = ResolveMouseBinding(dpy, event, 0L); FrameAllowEvents(winInfo->core.client, event->xbutton.time); switch (a) { case ACTION_SELECT: case ACTION_ADJUST: locallyChangePushPinState(dpy, winInfo, !(winInfo->pushpinin)); pushpinStateAfterPress = winInfo->pushpinin; currentAction = a; break; } } /* * eventButtonRelease - handle button release events on the pushpin window */ static int eventButtonRelease(dpy, event, winInfo) Display *dpy; XEvent *event; WinPushPin *winInfo; { FrameAllowEvents(winInfo->core.client, event->xbutton.time); if (!AllButtonsUp(event)) return; /* * If pushpinStateAfterPress equals the current pin state, we know * that the user really wants to change the pin state. If they are * not equal, the user has released the button outside the pin, so * there should be no change of state. */ if (pushpinStateAfterPress == winInfo->pushpinin) { PushPinChangePinState(dpy, winInfo, currentAction == ACTION_SELECT); } currentAction = ACTION_NONE; } /* * eventMotionNotify - handle pointer moves */ static int eventMotionNotify(dpy, event, winInfo) Display *dpy; XEvent *event; WinPushPin *winInfo; { Bool fInWindow; Graphics_info *gisNormal = WinGI(winInfo,NORMAL_GINFO); if (!event->xmotion.same_screen) return; if (currentAction != ACTION_SELECT && currentAction != ACTION_ADJUST) return; /* When the user moves the cursor off the pushpin * while s/he has the button down we should pull * the button out. If the user moves back onto the * pushpin put the pin back in. So, * * if (cursor is off the pushpin) and (pin is in) * OR * (cursor is on the pushpin) and (pin is out) * then * change the state of the pushpin. */ fInWindow = !((event->xmotion.x < 0) || (event->xmotion.y < 0) || (event->xmotion.x >= PushPinOut_Width(gisNormal)) || (event->xmotion.y >= PushPinOut_Height(gisNormal))); locallyChangePushPinState(dpy, winInfo, fInWindow?pushpinStateAfterPress:!pushpinStateAfterPress); } /* * drawPushPin -- draw the pushpin window */ /*ARGSUSED*/ static int drawPushPin(dpy, winInfo) Display *dpy; WinPushPin *winInfo; { Client *cli = winInfo->core.client; Graphics_info *gis = WinGI(winInfo,NORMAL_GINFO); int focusLines = (GRV.FocusFollowsMouse ? 1 : 0) ^ (GRV.InvertFocusHighlighting ? 1 : 0); /* If the titlebar is in reverse video we need to * draw the pushpin in reverse video also. */ if (Win3D(winInfo)) { /* * REMIND * We need to erase the background here to BG2. We can't use * OLGX_ERASE because olgx erases only in BG1. So, we draw an * filled, invoked box that is just larger than the pin * window, so that the border doesn't show. */ olgx_draw_box(gis, winInfo->core.self, -1, -1, winInfo->core.width+2, winInfo->core.height+2, ((cli->isFocus) && !focusLines) ? OLGX_INVOKED : OLGX_NORMAL, True); } else { GC gc; if (cli->isFocus && !focusLines) { gc = WinGC(winInfo, FOREGROUND_GC); gis = WinGI(winInfo, REVPIN_GINFO); } else { gc = WinGC(winInfo, WINDOW_GC); } XFillRectangle(dpy, winInfo->core.self, gc, 0, 0, winInfo->core.width, winInfo->core.height); } if (winInfo->core.client->isBusy) { XFillRectangle(dpy, winInfo->core.self, WinGC(winInfo,BUSY_GC), 0, 0, winInfo->core.width, winInfo->core.height); } olgx_draw_pushpin(gis, winInfo->core.self, 0, 0, ((winInfo->pushpinin) ? OLGX_PUSHPIN_IN : OLGX_PUSHPIN_OUT)); } /* * DestroyPushPin -- destroy the pushpin window resources and free any allocated * data. */ static int destroyPushPin(dpy, winInfo) Display *dpy; WinPushPin *winInfo; { /* free our data and throw away window */ ScreenDestroyWindow(winInfo->core.client->scrInfo, winInfo->core.self); WIUninstallInfo(winInfo->core.self); MemFree(winInfo); } /* * focusselectPushPin - the focus or selection state has changed */ static int focusselectPushPin(dpy, winInfo, selected) Display *dpy; WinPushPin *winInfo; Bool selected; { (WinFunc(winInfo,core.drawfunc))(dpy, winInfo); } /* * heightfuncPushPin - recomputes the correct height of the window */ static int heightfuncPushPin(win, pxcre) WinPushPin *win; XConfigureRequestEvent *pxcre; { return PushPinOut_Width(WinGI(win,NORMAL_GINFO)); } /* * widthfuncPushPin - recomputes the correct width of the window */ static int widthfuncPushPin(win, pxcre) WinPushPin *win; XConfigureRequestEvent *pxcre; { return PushPinOut_Height(WinGI(win,NORMAL_GINFO)); } /*************************************************************************** * global functions ***************************************************************************/ /* * MakePushPin -- create the pushpin window. Return a WinGeneric structure. */ WinPushPin * MakePushPin(dpy, par, pane, x, y) Display *dpy; WinGeneric *par; Window pane; int x,y; { WinPushPin *w; Window win; unsigned long valuemask; XSetWindowAttributes attributes; Graphics_info *gisNormal = WinGI(par,NORMAL_GINFO); attributes.event_mask = ButtonMotionMask | ButtonReleaseMask | ButtonPressMask | ExposureMask; attributes.win_gravity = NorthWestGravity; valuemask = CWEventMask | CWWinGravity; win = ScreenCreateWindow(par->core.client->scrInfo, par->core.self, x, y, PushPinOut_Width(gisNormal), PushPinOut_Height(gisNormal), valuemask, &attributes); /* create the associated structure */ w = MemNew(WinPushPin); w->core.self = win; w->class = &classPushPin; w->core.kind = WIN_PUSHPIN; WinAddChild(par,w); w->core.children = NULL; w->core.client = par->core.client; w->core.x = x; w->core.y = y; w->core.width = PushPinOut_Width(gisNormal); w->core.height = PushPinOut_Height(gisNormal); w->core.dirtyconfig = CWX | CWY | CWWidth | CWHeight; w->core.exposures = NULL; w->core.helpstring = "olwm:PushPin"; /* Determine initial state of push pin. */ w->pushpinin = (par->core.client->wmDecors->pushpin_initial_state == PIN_IN); /* Register the push-pin state. */ XChangeProperty(dpy, pane, AtomPushpinState, XA_INTEGER, 32, PropModeReplace, (unsigned char *)&(w->pushpinin), 1); /* register the window */ WIInstallInfo(w); XMapRaised(dpy, win); return w; } void PushPinInit(dpy) Display *dpy; { classPushPin.core.kind = WIN_PUSHPIN; classPushPin.core.xevents[Expose] = WinEventExpose; classPushPin.core.xevents[ButtonPress] = eventButtonPress; classPushPin.core.xevents[ButtonRelease] = eventButtonRelease; classPushPin.core.xevents[MotionNotify] = eventMotionNotify; classPushPin.core.focusfunc = focusselectPushPin; classPushPin.core.drawfunc = drawPushPin; classPushPin.core.destroyfunc = destroyPushPin; classPushPin.core.selectfunc = focusselectPushPin; classPushPin.core.newconfigfunc = WinNewConfigFunc; classPushPin.core.newposfunc = WinNewPosFunc; classPushPin.core.setconfigfunc = WinSetConfigFunc; classPushPin.core.createcallback = NULL; classPushPin.core.heightfunc = heightfuncPushPin; classPushPin.core.widthfunc = widthfuncPushPin; } /* * Permanently change the push pin state. */ void PushPinChangePinState(dpy, winInfo, sendDelete) Display *dpy; WinPushPin *winInfo; Bool sendDelete; { Client *cli = winInfo->core.client; (WinFunc(winInfo,core.drawfunc))(dpy, winInfo); /* Tell the client that the state of its push-pin has changed. */ XChangeProperty(dpy, PANEWINOFCLIENT(cli), AtomPushpinState, XA_INTEGER, 32, PropModeReplace, (unsigned char *)&(winInfo->pushpinin), 1); if (!winInfo->pushpinin && sendDelete) ClientKill(winInfo->core.client,False); } /* * Sets the pin state to a new state (if different that current state) */ void PushPinSetPinState(dpy,winInfo,newState,sendDelete) Display *dpy; WinPushPin *winInfo; int newState; Bool sendDelete; { if (newState == winInfo->pushpinin) return; winInfo->pushpinin = newState; PushPinChangePinState(dpy,winInfo,sendDelete); } /* * Toggles the pin state */ void PushPinTogglePinState(dpy,winInfo,sendDelete) Display *dpy; WinPushPin *winInfo; Bool sendDelete; { winInfo->pushpinin = !winInfo->pushpinin; PushPinChangePinState(dpy,winInfo,sendDelete); } xview-3.2p1.4/clients/olwm/winresize.c100644 1750 1750 21145 5413747445 15264 0ustar mbmb#ident "@(#)winresize.c 26.27 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #include #include #include #include #include #include #ifdef OW_I18N_L4 #include "i18n.h" #endif #include #include "ollocale.h" #include "i18n.h" #include "mem.h" #include "olwm.h" #include "win.h" #include "globals.h" #include "events.h" /*************************************************************************** * global data ***************************************************************************/ extern int Resize_width, Resize_height; extern void FrameAllowEvents(); /*************************************************************************** * private data ***************************************************************************/ static int whicholgx[] = {OLGX_UPPER_LEFT, OLGX_UPPER_RIGHT, OLGX_LOWER_LEFT, OLGX_LOWER_RIGHT}; static int whichgrav[] = {NorthWestGravity, NorthEastGravity, SouthWestGravity, SouthEastGravity}; static ClassResize classResize; /*************************************************************************** * private functions ***************************************************************************/ /* * resizeCallback - restore the resize corner to its normal state */ static void resizeCallback(dpy, winInfo) Display *dpy; WinResize *winInfo; { winInfo->depressed = False; (WinFunc(winInfo,core.drawfunc))(dpy,winInfo); } /* * eventButtonPress - handle button press events on the resize window */ static int eventButtonPress(dpy, event, winInfo) Display *dpy; XEvent *event; WinResize *winInfo; { unsigned int ignoremask = ModMaskMap[MOD_CONSTRAIN] | ModMaskMap[MOD_INVERT]; if (ResolveMouseBinding(dpy, event, ignoremask) != ACTION_SELECT) { FrameAllowEvents(winInfo->core.client, event->xbutton.time); return; } /* draw depressed corner */ winInfo->depressed = True; (WinFunc(winInfo,core.drawfunc))(dpy,winInfo); /* resize function will eat button release */ ClientResize(winInfo->core.client,event,winInfo->which, resizeCallback,winInfo); } /* * drawResize -- draw the resize window */ /*ARGSUSED*/ static int drawResize(dpy, winInfo) Display *dpy; WinResize *winInfo; { WhichResize which = winInfo->which; GC drawForegroundGC = WinGC(winInfo,FOREGROUND_GC); GC drawWindowGC = WinGC(winInfo,WINDOW_GC); GC drawBusyGC = WinGC(winInfo,BUSY_GC); Graphics_info *gisNormal = WinGI(winInfo,NORMAL_GINFO); int focusLines; /* two lines or solid bar */ focusLines = (GRV.FocusFollowsMouse ? 1 : 0) ^ (GRV.InvertFocusHighlighting ? 1 : 0); if ((which == upright) || (which == upleft)) { if (winInfo->core.client->isBusy) { if (which == upleft) { XFillRectangle(dpy, winInfo->core.self, drawWindowGC, ResizeArm_Width(gisNormal), ResizeArm_Height(gisNormal), winInfo->core.width - ResizeArm_Width(gisNormal), winInfo->core.height - ResizeArm_Height(gisNormal)); XFillRectangle(dpy, winInfo->core.self, drawBusyGC, ResizeArm_Width(gisNormal), ResizeArm_Height(gisNormal), winInfo->core.width - ResizeArm_Width(gisNormal), winInfo->core.height - ResizeArm_Height(gisNormal)); } else { /* upper right */ XFillRectangle(dpy, winInfo->core.self, drawWindowGC, 0, ResizeArm_Height(gisNormal), winInfo->core.width - ResizeArm_Width(gisNormal), winInfo->core.height - ResizeArm_Height(gisNormal)); /* * Update the tile/stipple origin to be the origin of the * frame window. This is necessary to make the stipple * fragment painted here match the stipple painted in the * title bar. Reset the tile/stipple origin when done. */ XSetTSOrigin(dpy, drawBusyGC, - winInfo->core.x, - winInfo->core.y); XFillRectangle(dpy,winInfo->core.self, drawBusyGC, 0, ResizeArm_Height(gisNormal), winInfo->core.width - ResizeArm_Width(gisNormal), winInfo->core.height - ResizeArm_Height(gisNormal)); XSetTSOrigin(dpy, drawBusyGC, 0, 0); } } else if ((winInfo->core.client->isFocus) && !focusLines) { if (Win3D(winInfo)) { olgx_draw_box(gisNormal, winInfo->core.self, (which==upleft)?(ResizeArm_Width(gisNormal)):(-2), ResizeArm_Height(gisNormal), winInfo->core.width-ResizeArm_Width(gisNormal)+2, winInfo->core.height-ResizeArm_Height(gisNormal)+2, OLGX_INVOKED, True); } else { XFillRectangle(dpy,winInfo->core.self,drawForegroundGC, (which==upleft)?(ResizeArm_Width(gisNormal)):(0), ResizeArm_Height(gisNormal), winInfo->core.width-ResizeArm_Width(gisNormal), winInfo->core.height-ResizeArm_Height(gisNormal)); } } else { XFillRectangle(dpy,winInfo->core.self,drawWindowGC, (which==upleft)?(ResizeArm_Width(gisNormal)):(0), ResizeArm_Height(gisNormal), winInfo->core.width-ResizeArm_Width(gisNormal), winInfo->core.height-ResizeArm_Height(gisNormal)); } } else { /* lowleft or lowright */ XFillRectangle(dpy, winInfo->core.self, drawWindowGC, (which==lowleft) ? (ResizeArm_Width(gisNormal)) : 0, 0, winInfo->core.width-ResizeArm_Width(gisNormal), winInfo->core.height-ResizeArm_Height(gisNormal)); } if (!Win3D(winInfo) || !GRV.F3dResize) gisNormal = WinGI(winInfo, TEXT_GINFO); olgx_draw_resize_corner(gisNormal, winInfo->core.self, 0, 0, whicholgx[winInfo->which], (winInfo->depressed)?(OLGX_INVOKED):(OLGX_NORMAL)); } /* * DestroyResize -- destroy the resize window resources and free any allocated * data. */ static int destroyResize(dpy, winInfo) Display *dpy; WinGeneric *winInfo; { /* free our data and throw away window */ ScreenDestroyWindow(winInfo->core.client->scrInfo, winInfo->core.self); WIUninstallInfo(winInfo->core.self); MemFree(winInfo); } /* * focusselectResize - the focus or selection state has changed */ static int focusResize(dpy, winInfo, selected) Display *dpy; WinResize *winInfo; Bool selected; { (WinFunc(winInfo,core.drawfunc))(dpy, winInfo); } /* * widthfuncResize - recomputes the width of the resize window */ static int widthfuncResize(win, pxcre) WinResize *win; XConfigureRequestEvent *pxcre; { return Resize_width; } /* * heightfuncResize - recomputes the width of the resize window */ static int heightfuncResize(win, pxcre) WinResize *win; XConfigureRequestEvent *pxcre; { return Resize_height; } /*************************************************************************** * global functions ***************************************************************************/ /* * MakeResize -- create the resize window. Return a WinGeneric structure. */ WinResize * MakeResize(dpy, par, which, x, y) Display *dpy; WinGeneric *par; WhichResize which; int x,y; { WinResize *w; Window win; unsigned long valuemask; XSetWindowAttributes attributes; attributes.event_mask = ButtonPressMask | ButtonMotionMask | ButtonReleaseMask | ExposureMask | OwnerGrabButtonMask; attributes.win_gravity = whichgrav[which]; attributes.cursor = GRV.ResizePointer; valuemask = CWEventMask | CWWinGravity | CWCursor; win = ScreenCreateWindow(par->core.client->scrInfo, par->core.self, x, y, Resize_width, Resize_height, valuemask, &attributes); /* create the associated structure */ w = MemNew(WinResize); w->core.self = win; w->class = &classResize; w->core.kind = WIN_RESIZE; WinAddChild(par,w); w->core.children = NULL; w->core.client = par->core.client; w->core.x = x; w->core.y = y; w->core.width = Resize_width; w->core.height = Resize_height; w->core.dirtyconfig = CWX | CWY | CWWidth | CWHeight; w->core.exposures = NULL; w->which = which; w->core.helpstring = "olwm:ResizeCorner"; /* register the window */ WIInstallInfo(w); XMapRaised(dpy, win); return w; } /* ResizeInit -- initialise values for the resize class */ void ResizeInit(dpy) Display *dpy; { classResize.core.kind = WIN_RESIZE; classResize.core.xevents[Expose] = WinEventExpose; classResize.core.xevents[ButtonPress] = eventButtonPress; classResize.core.focusfunc= focusResize; classResize.core.drawfunc= drawResize; classResize.core.destroyfunc = destroyResize; classResize.core.selectfunc = NULL; classResize.core.newconfigfunc = WinNewConfigFunc; classResize.core.newposfunc = WinNewPosFunc; classResize.core.setconfigfunc = WinSetConfigFunc; classResize.core.createcallback = NULL; classResize.core.heightfunc = heightfuncResize; classResize.core.widthfunc = widthfuncResize; } xview-3.2p1.4/clients/olwm/winroot.c100644 1750 1750 41225 5413747446 14750 0ustar mbmb#ident "@(#)winroot.c 26.60 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #include #include #include #include #include #include "i18n.h" /* needed by olgx.h */ #include #include "ollocale.h" #include "mem.h" #include "olwm.h" #include "win.h" #include "menu.h" #include "globals.h" #include "group.h" #include "events.h" #include "error.h" /*************************************************************************** * global data ***************************************************************************/ extern Time SelectionTime; extern Atom AtomSunWMProtocols; extern Atom AtomSunWindowState; extern Atom AtomSunOLWinAttr5; extern Atom AtomSunReReadMenuFile; extern Bool DoingWindowState; /*************************************************************************** * private data ***************************************************************************/ static ClassRoot classRoot; /*************************************************************************** * private functions ***************************************************************************/ static Window findLeafWindow(dpy,win,srcx,srcy,dstx,dsty) Display *dpy; Window win; int srcx,srcy; int *dstx,*dsty; { Window childwin,dstwin,srcwin; srcwin = dstwin = win; while (1) { XTranslateCoordinates(dpy,srcwin,dstwin,srcx,srcy, dstx,dsty,&childwin); if (childwin == None) break; srcx = *dstx; srcy = *dsty; srcwin = dstwin; dstwin = childwin; } return dstwin; } static void redistributeKeystroke(dpy,key,dstwin,dstx,dsty ) Display *dpy; XKeyEvent *key; Window dstwin; int dstx,dsty; { static Bool pressreceived = False; static XKeyEvent pressevent; Window childwin; if (key->type == KeyPress) { if (pressreceived == False) { pressevent = *key; pressevent.x = dstx; pressevent.y = dsty; pressevent.window = dstwin; pressevent.subwindow = None; XSendEvent( dpy, pressevent.window, True, KeyPressMask, (XEvent *)&pressevent ); pressreceived = True; } } else { if (key->window != pressevent.window) { XTranslateCoordinates(dpy,key->window,pressevent.window, key->x,key->y,&dstx,&dsty,&childwin ); key->window = pressevent.window; key->x = dstx; key->y = dsty; } key->subwindow = None; XSendEvent(dpy,pressevent.window,True, KeyPressMask,(XEvent *)key); if (key->type == KeyRelease) pressreceived = False; } } /* * HandleHelpKey - Figure out what window should really get the Help key. * If it's not an olwm window or a pane window then send the key event * onto that window. If it's an olwm window then bring up the help * info window with the window kind specific help. If it is a * WIN_ROOT window we need to use key->root since it is the root * window that the pointer was on when the event happened while * key->window is the window that the grab was made on. */ void HandleHelpKey(dpy, pEvent) Display *dpy; XEvent *pEvent; { static WinGeneric *olwmWin = (WinGeneric *)0; XKeyEvent *key = (XKeyEvent *)pEvent; static Window dstwin = None; int dstx,dsty; if (key->type == KeyPress) { dstwin = findLeafWindow(dpy,key->window, key->x_root,key->y_root,&dstx,&dsty); olwmWin = WIGetInfo(dstwin); /* send the help key to the client window */ if (olwmWin == NULL || olwmWin->core.helpstring == (char *)0) { redistributeKeystroke(dpy,key,dstwin,dstx,dsty); olwmWin = (WinGeneric *)0; /* find out which root window is really happened on */ } else if (olwmWin->core.kind == WIN_ROOT) { if (dstwin != key->root) olwmWin = WIGetInfo(key->root); WinShowHelp(dpy,olwmWin,key->x_root,key->y_root); /* it belongs to a decoration window (frame/resize/whatever) */ } else { WinShowHelp(dpy,olwmWin,key->x_root,key->y_root); } } else { /* if KeyRelease */ if (olwmWin == NULL && dstwin != None) redistributeKeystroke(dpy,key,dstwin,0,0); dstwin = None; } } static Bool matchKeystrokeToSpec(event,spec) XEvent *event; KeySpec *spec; { return (spec->keycode == event->xkey.keycode && (spec->modmask == AnyModifier || spec->modmask == event->xkey.state)); } /*************************************************************************** * event functions ***************************************************************************/ /* * eventEnterNotify - the pointer has entered the root window. * Ignore events whose detail is NonlinearVirtual, because the pointer has * crossed through the root window into a child window, and we will get the * EnterNotify for that child window. */ static int eventEnterNotify(dpy, pEvent, winInfo) Display *dpy; XEvent *pEvent; WinRoot *winInfo; { if (pEvent->xcrossing.detail == NotifyNonlinearVirtual) return; ColorWindowCrossing(dpy, pEvent, winInfo); if (GRV.FocusFollowsMouse) NoFocusTakeFocus(dpy, pEvent->xcrossing.time, winInfo->core.client->scrInfo); } /* * eventConfigureRequest - a client wants to change configuration */ static int eventConfigureRequest(dpy, pEvent, winInfo) Display *dpy; XEvent *pEvent; WinRoot *winInfo; { WinGeneric *clientInfo; #define ConfEvent (pEvent->xconfigurerequest) if ((clientInfo = WIGetInfo(ConfEvent.window)) == NULL) { /* we don't know about this window, so let it go */ ClientConfigure(NULL,NULL,pEvent); } else /* OBSOLETE: if (ConfEvent.value_mask & (CWX | CWY | CWWidth | CWHeight)) */ { /* configure the window and its frame */ ClientConfigure(clientInfo->core.client,clientInfo,pEvent); } /* REMIND doesn't handle stacking or border width yet */ } /* * eventMapRequest - a new client is mapping */ static int eventMapRequest(dpy, pEvent, winInfo) Display *dpy; XEvent *pEvent; WinRoot *winInfo; { #ifdef GPROF_HOOKS moncontrol(1); #endif /* GPROF_HOOKS */ StateNew(dpy,winInfo->core.self,pEvent->xmaprequest.window,False,NULL); #ifdef GPROF_HOOKS moncontrol(0); #endif /* GPROF_HOOKS */ } static void selectInBox(dpy, winInfo, boxX, boxY, boxW, boxH, timestamp, closure) Display *dpy; WinRoot *winInfo; int boxX, boxY; unsigned int boxW, boxH; Time timestamp; void *closure; { ClientInBoxClosure cibclosure; int fuzz = GRV.SelectionFuzz; /* * Apply selectFunc to all clients in the box. * Widen the box slightly to make selections easier. */ cibclosure.dpy = dpy; cibclosure.screen = WinScreen(winInfo); cibclosure.func = (int (*)()) closure; cibclosure.bx = boxX - fuzz; cibclosure.by = boxY - fuzz; cibclosure.bw = boxW + 2 * fuzz; cibclosure.bh = boxH + 2 * fuzz; cibclosure.timestamp = timestamp; ListApply(ActiveClientList, ClientInBox, &cibclosure); } /* * eventMotionNotify - the pointer is moving */ static int eventMotionNotify(dpy, pEvent, winInfo) Display *dpy; XEvent *pEvent; WinRoot *winInfo; { short boxX, boxY, boxW, boxH; int (*selectFunc)(); if (!pEvent->xmotion.same_screen) return; /* If the user hasn't moved more than the threshold * amount, break out of here. REMIND Also, if we get a * MotionNotify event with no buttons down, we ignore it. * Ideally this shouldn't happen, but some areas of the code * still leave the pointer grabbed even after all the buttons * have gone up. */ if ((ABS(pEvent->xmotion.x - winInfo->buttonPressEvent.xbutton.x) < GRV.MoveThreshold) && (ABS(pEvent->xmotion.y - winInfo->buttonPressEvent.xbutton.y) < GRV.MoveThreshold)) return; if (pEvent->xmotion.state == 0) return; /* * On Select: Clear existing selected clients and add new ones * On Adjust: Toggle selections on/off */ switch(winInfo->currentAction) { case ACTION_SELECT: ClearSelections(dpy); selectFunc = AddSelection; break; case ACTION_ADJUST: selectFunc = ToggleSelection; break; default: selectFunc = NULL; break; } if (selectFunc) TraceRootBox(dpy, winInfo, &(winInfo->buttonPressEvent), selectInBox, selectFunc); } /* * eventButtonRelease - handle a click in the root. * * If the user clicks in the window, the focus is set to the no-focus window, * and the PRIMARY and SECONDARY selections are acquired and nulled. */ static int eventButtonRelease(dpy, pEvent, winInfo) Display *dpy; XEvent *pEvent; WinRoot *winInfo; { if (!AllButtonsUp(pEvent)) return; /* * This only happens if we did NOT get a motion notify * after the last button press. */ if (winInfo->currentAction == ACTION_SELECT) { NoFocusTakeFocus(dpy,pEvent->xbutton.time, winInfo->core.client->scrInfo); ClearSelections(dpy); XSetSelectionOwner(dpy, XA_PRIMARY, None, pEvent->xbutton.time); XSetSelectionOwner(dpy, XA_SECONDARY, None, pEvent->xbutton.time); SelectionTime = pEvent->xbutton.time; } winInfo->currentAction = ACTION_NONE; } /* * eventButtonPress - handle a button press. If the WMGRAB modifier is down, * we've received this event by virtue of a passive, synchronous button grab * on the root. We need to (1) propagate the event to the window underneath, * if it's a frame or an icon, (2) unfreeze the pointer either by regrabbing * or by issuing an AllowEvents request, and (3) ungrab the pointer if the * child's handler didn't issue a grab of its own. */ static int eventButtonPress(dpy, pEvent, winInfo) Display *dpy; XEvent *pEvent; WinRoot *winInfo; { SemanticAction a; WinGeneric *child; if (pEvent->xbutton.state & ModMaskMap[MOD_WMGRAB]) { /* redistribute to child */ if (pEvent->xbutton.subwindow != NULL && (child = WIGetInfo(pEvent->xbutton.subwindow)) != NULL && (child->core.kind == WIN_FRAME || child->core.kind == WIN_ICON) && (GrabSuccess == XGrabPointer(dpy, child->core.self, False, ButtonPressMask | ButtonMotionMask | ButtonReleaseMask, GrabModeAsync, GrabModeAsync, None, None, pEvent->xbutton.time))) { PropagatePressEventToChild(dpy, pEvent, child); return; } /* * If the window under the pointer isn't a frame or icon, or if we * failed to grab the pointer, simply unfreeze the pointer and try * to process the event normally. */ XAllowEvents(dpy, AsyncBoth, pEvent->xbutton.time); } a = ResolveMouseBinding(dpy, pEvent, ModMaskMap[MOD_CONSTRAIN]); winInfo->buttonPressEvent = *pEvent; switch (a) { case ACTION_MENU: RootMenuShow(dpy, winInfo, pEvent); /* FALL THRU */ case ACTION_SELECT: case ACTION_ADJUST: winInfo->currentAction = a; break; } } /* * eventKeyPressRelease - a keystroke has happened in the root window */ static int eventKeyPressRelease(dpy, pEvent, winInfo) Display *dpy; XEvent *pEvent; WinRoot *winInfo; { Window child; WinGeneric *childInfo; Client *childClient; Bool samescreen; int destX, destY; extern Bool ExecuteKeyboardFunction(); Bool isbound; isbound = ExecuteKeyboardFunction(dpy, pEvent); if (!isbound && pEvent->type == KeyPress) KeyBeep(dpy,pEvent); } /* * eventPropertyNotify - a root property has changed */ static int eventPropertyNotify(dpy, pEvent, winInfo) Display *dpy; XEvent *pEvent; WinRoot *winInfo; { unsigned long nitems, remain; char *resourceString; /* make sure that the property was the one we care about and * changed (as opposed to deleted) */ if ((pEvent->xproperty.atom != XA_RESOURCE_MANAGER) || (pEvent->xproperty.state != PropertyNewValue)) { return; } UpdateGlobals(dpy); } /* * eventClientMessage - a client message has been sent to the root window */ static int eventClientMessage(dpy, pEvent, winInfo) Display *dpy; XEvent *pEvent; WinRoot *winInfo; { if (pEvent->xclient.message_type == AtomSunReReadMenuFile) { ReInitUserMenu(dpy, True); } } /* * eventUnmapNotify - an unreparented pane is going away */ static int eventUnmapNotify(dpy, pEvent, winInfo) Display *dpy; XEvent *pEvent; WinRoot *winInfo; { WinGeneric *wg; extern Time TimeFresh(); wg = WIGetInfo(pEvent->xunmap.window); if (wg != NULL) { StateWithdrawn(wg->core.client,TimeFresh()); } } /* * destroyRoot -- destroy the root window resources and free any allocated * data. */ static int destroyRoot(dpy, winInfo) Display *dpy; WinRoot *winInfo; { /* delete the _SUN_WM_PROTOCOLS property */ XDeleteProperty(dpy,winInfo->core.self,AtomSunWMProtocols); /* delete the WM_ICON_SIZE property */ XDeleteProperty(dpy,winInfo->core.self,XA_WM_ICON_SIZE); /* free our data and throw away window */ WIUninstallInfo(winInfo->core.self); MemFree(winInfo); } /* * writeProtocols - write the _SUN_WM_PROTOCOLS property on the root win, * which advertises the capabilities of the window manager. */ static void writeProtocols(dpy,rootwin) Display *dpy; Window rootwin; { unsigned int data[10]; int nitems = 0; /* conditionally support the _SUN_WINDOW_STATE protocol */ if (DoingWindowState) data[nitems++] = AtomSunWindowState; /* support 5-word-long _OL_WIN_ATTR property */ data[nitems++] = AtomSunOLWinAttr5; if (nitems == 0) return; XChangeProperty(dpy,rootwin,AtomSunWMProtocols,XA_ATOM,32, PropModeReplace,(unsigned char *)data,nitems); } /* * writeIconSize - write the WM_ICON_SIZE property on the root window. */ static void writeIconSize(dpy,rootwin) Display *dpy; Window rootwin; { XIconSize iconSize; iconSize.min_width = ICON_MIN_WIDTH; iconSize.min_height = ICON_MIN_HEIGHT; iconSize.max_width = ICON_MAX_WIDTH; iconSize.max_height = ICON_MAX_HEIGHT; iconSize.width_inc = ICON_WIDTH_INC; iconSize.height_inc = ICON_HEIGHT_INC; XSetIconSizes(dpy,rootwin,&iconSize,1); } /*************************************************************************** * global functions ***************************************************************************/ /* * MakeRoot -- create the root window. Return a WinGeneric structure. */ WinRoot * MakeRoot(dpy, cli) Display *dpy; Client *cli; { XWindowAttributes attr; WinRoot *w; Window win; win = cli->scrInfo->rootid; /* * Tell the server we need to get mapping requests. * ErrorSensitive will force an exit if this fails * (ie another window manager is running). * * REMIND: instead of exiting, MakeRoot should probably just * return NULL, and callers to MakeRoot should check the return * value. */ ErrorSensitive( GetString("Perhaps there is another window manager running?")); XSelectInput(dpy,win, KeyPressMask | SubstructureRedirectMask | ButtonPressMask | ButtonReleaseMask | ButtonMotionMask | EnterWindowMask | PropertyChangeMask | OwnerGrabButtonMask); XSync(dpy, False); ErrorInsensitive(dpy); if (XGetWindowAttributes(dpy, win, &attr) == 0) { ErrorGeneral(GetString("Could not get attributes of root window")); /*NOTREACHED*/ } /* mark the client as olwm owned */ cli->flags = CLOlwmOwned; /* create the associated structure */ w = MemNew(WinRoot); w->core.self = win; w->class = &classRoot; w->core.kind = WIN_ROOT; w->core.parent = NULL; w->core.children = NULL; w->core.client = cli; w->core.x = 0; w->core.y = 0; w->core.width = attr.width; w->core.height = attr.height; w->core.dirtyconfig = False; w->core.colormap = cli->scrInfo->colormap; w->core.exposures = NULL; w->core.helpstring = "olwm:Workspace"; w->currentAction = ACTION_NONE; /* Write properties on the root window */ writeProtocols(dpy,win); writeIconSize(dpy,win); /* register the window */ WIInstallInfo((WinGeneric *)w); return w; } /* * RootInit - init the WinRoot class function vector */ void RootInit(dpy) Display *dpy; { classRoot.core.kind = WIN_ROOT; classRoot.core.xevents[ConfigureRequest] = eventConfigureRequest; classRoot.core.xevents[EnterNotify] = eventEnterNotify; classRoot.core.xevents[MapRequest] = eventMapRequest; classRoot.core.xevents[MotionNotify] = eventMotionNotify; classRoot.core.xevents[ButtonRelease] = eventButtonRelease; classRoot.core.xevents[ButtonPress] = eventButtonPress; classRoot.core.xevents[KeyPress] = eventKeyPressRelease; classRoot.core.xevents[KeyRelease] = eventKeyPressRelease; classRoot.core.xevents[PropertyNotify] = eventPropertyNotify; classRoot.core.xevents[ClientMessage] = eventClientMessage; classRoot.core.xevents[UnmapNotify] = eventUnmapNotify; classRoot.core.focusfunc = NULL; classRoot.core.drawfunc = NULL; classRoot.core.destroyfunc = destroyRoot; classRoot.core.selectfunc = NULL; classRoot.core.newconfigfunc = NULL; classRoot.core.newposfunc = NULL; classRoot.core.setconfigfunc = NULL; classRoot.core.createcallback = NULL; classRoot.core.heightfunc = NULL; classRoot.core.widthfunc = NULL; } xview-3.2p1.4/clients/olwm/openwin-menu100644 1750 1750 303 5413747447 15400 0ustar mbmb# # @(#)openwin-menu 23.18 93/01/11 openwin-menu # # OpenWindows default root menu file - top level menu # "Workspace" TITLE "Programs" DEFAULT INCLUDE openwin-menu-programs "Exit..." EXIT xview-3.2p1.4/clients/olwm/openwin-menu-demo100644 1750 1750 254 5413747447 16327 0ustar mbmb# # @(#)openwin-menu-demo-nodemo 1.1 92/08/12 openwin-menu-demo-fulldemo # # OpenWindows default root menu file - Demos submenu # "Demos" TITLE "No Demos Installed" true xview-3.2p1.4/clients/olwm/olwm.man100644 1750 1750 230640 5413747447 14600 0ustar mbmb.\" @(#)olwm.man 23.31 93/06/28 .TH olwm 1 "25 Nov 1992" .SH NAME olwm \- OPEN LOOK window manager for OpenWindows .SH SYNOPSIS .B olwm [ .I options ] .\" ======================================================================== .SH DESCRIPTION .LP .B Olwm is a window manager for the X Window System that implements parts of the OPEN LOOK graphical user interface. It is the standard window manager for Sun's OpenWindows product, but it will work properly with any X11 system. The only requirements for running .B olwm are that the server have the OPEN LOOK glyph and cursor fonts available. .\" ======================================================================== .SH OPTIONS .LP Most command-line options have counterparts in the resource database. A command-line option will override any setting from the resource database. .TP .B \-2d Use two-dimensional look. This is the default for monochrome systems. .TP .B \-3d Use three-dimensional look. This is the default for color systems. This option is ignored for monochrome systems. .TP \fB\-bd\fP\ \fIcolor,\fP\ \ \fB\-bordercolor\fP\ \fIcolor Specifies the border color. See the description of the .B BorderColor resource. .TP \fB\-bg\fP\ \fIcolor,\fP\ \ \fB\-background\fP\ \fIcolor Specifies the background color. See the description of the .B Background resource. .TP .BR \-c ",\ \ " \-click Use click-to-focus mode. This is the default focus mode. .TP .BI "\-depth " depth Specifies the depth of the visual in which .B olwm is to run. See the discussion in the Screen Resources section for further information about depths. .TP .BI "\-display " display-string Specify the name of the display to manage. Overrides the DISPLAY environment variable, if any. In addition, the display string is exported to .BR olwm 's environment, so processes forked from .B olwm will inherit this value. .TP .B \-dsdm Specify that .B olwm should provide the Drop Site Database Management (DSDM) service. This is the default. .TP .BR \-f ",\ \ " \-follow Use focus-follows-mouse mode. Default mode is click-to-focus. .TP \fB\-fn\fP\ \fIfont-name,\fP\ \ \fB\-font\fP\ \ \fIfont-name\fP Set the font for window titles. .TP \fB\-fg\fP\ \fIcolor,\fP\ \ \fB\-foreground\fP\ \fIcolor Specifies the foreground color. See the description of the .B ForegroundColor resource. .TP .BI "\-multi" Manage windows on all screens that a display supports. This is the default. .TP .BI "\-name " resource-name Use .I resource-name to look up resources in the resource database. .TP .B \-nodsdm Specify that .B olwm should not provide the Drop Site Database Management service. The default is to provide the service. .TP .BI "\-single" Manage windows for a single screen only, using the default screen for the specified display. Overrides the .B \-multi option. .TP .BI "\-syncpid " process-id When .B olwm has completed its initialization, it will send a signal (SIGALRM by default) to .I process-id. The signal will be sent only if this option is present. This is useful for running .B olwm from shell scripts (such as .BR .xinitrc ) in such a way that the script waits for .B olwm to finish its initialization, while leaving .B olwm as a child process of the shell script. This can be done using the following .BR sh (1) construct: .nf .sp sleep 15 & pid=$! olwm \-syncpid $pid & wait $pid .sp .fi .TP .BI "\-syncsignal " signal Specifies the signal to send instead of SIGALRM. The signal is specified as a number, not symbolically. .TP .BI "\-visual " visual-class Specifies the class of the visual in which .B olwm is to run. See the discussion in the Screen Resources section for further information about visuals. .TP .BI "\-xrm " resource-string Specify resources on the command-line. Resources specified here will override resources found in resource files. .\" ======================================================================== .SH DEBUGGING OPTIONS .LP The following options are strictly for debugging. They are not recommended for general use. Don't use them unless you know what you are doing. .TP .B \-all Print a message for every event received. .TP .B \-debug Equivalent to turning on all debugging options. .TP .B \-orphans Print orphaned events. Orphaned events are events that are associated with a window or frame that has no entry in the frame hash table, or events that are not handled by the various event handlers. .TP .B \-synchronize Run the window manager in synchronous mode. .\" ======================================================================== .SH INTERNATIONALIZATION OPTIONS .TP .BI "\-basiclocale " locale-name Specifies the basic OPEN LOOK locale category setting. This category will be the base for other locale categories. .TP .BI "\-displaylang " locale-name Specifies the display language OPEN LOOK locale category. This category affects the contents of workspace menu, window menu and notice messages. .TP .BI "\-numeric " locale-name Specifies the numeric format OPEN LOOK locale category. This category affects the numeric format displayed in any message that contains numerics. .\" ======================================================================== .SH LOCALE HANDLING .PP The .I locale is the set of language and cultural conventions used by a program. The locale controls the language-dependent part of .BR olwm 's behavior. The OPEN LOOK international extensions have defined several locale categories as follows: .TP .B "Basic Locale" This is the basic setting for the entire locale mechanism. This category specifies internal character handling behavior. .TP .B "Display Language" This category specifies the language used for displaying menus, notice messages, and error messages. .TP .B "Input Language" This category specifies the language used for text input. This category has no effect on .BR olwm , because it does not accept text input from the keyboard. .TP .B "Date Format" This category specifies the format of date and time. This category has no effect on .BR olwm , because it does not display any date and time information. .TP .B "Numeric Format" This category specifies the format of displayed numeric data. .PP The Basic Locale setting determines the character set used by .BR olwm . The other locale categories can differ from the basic setting, but they cannot require a different character set from the Basic Locale. The following restrictions thus apply: .IP 1. 3 If basic locale setting is the "C" locale, then all other locale categories must be in the "C" locale. .IP 2. If the Basic Locale is set to a locale other than the "C" locale, then all other locale categories must be set either to a locale that uses the same character set as the basic setting, or to the "C" locale. .PP The following methods are available to inform .B olwm of the locale settings, listed in order of priority: .IP 1. 3 Command line options (such as \fB\-basiclocale\fP); .IP 2. by resource database; and .IP 3. .BR setlocale (3C) function defaults (e.g. LANG environment variable). .\" ======================================================================== .SH INPUT FOCUS The .I input focus is the window that will receive keystrokes. .B olwm has two different input focus modes, which are different ways of transferring the input focus from one window to another. By default, .B olwm uses "click-to-focus" (also known as "click-to-type") mode. This means that you must click on the window in order to get the focus to it. While a window has the input focus, the pointer can be anywhere on the screen; the keyboard events will still go to that window. You can set the input focus to a window and simultaneously raise it to the top by clicking the left mouse button in the window's title bar or border. .LP .B olwm has another focus mode called "focus-follows-mouse." In this mode, whatever window the mouse is pointing to will receive the input focus. To switch the input focus from one window to another, you simply move the pointer to the other window; you don't have to click at all. Note, however, that to transfer the focus amongst subwindows of a single top-level window, you must click in the subwindow, or you must use focus transfer function keys (if available from the application). .LP The input focus mode can be controlled with command-line options or by entries in the resource database. Neither focus mode has inherent advantages. Which one you choose is a matter of personal preference. .\" ======================================================================== .SH MOUSE BUTTONS OPEN LOOK defines three mouse button functions: SELECT, ADJUST, and MENU. On systems with three mouse buttons, these functions are mapped to buttons 1, 2, and 3 (left, middle, and right) respectively. On systems with two mouse buttons, SELECT is on button 1 (left) and MENU is on button 2 (right). ADJUST can be performed by holding down the Shift key while pressing button 1. On systems with a single mouse button, that button is SELECT. Holding Shift while pressing the button gives ADJUST, and holding Control gives MENU. .LP There is an alternate style of button handling for two-button mice: SELECT is button 1, ADJUST is button 2, and MENU is performed by holding down buttons 1 and 2 simultaneously. This technique is referred to as mouse button .I chording. It can be activated on systems with two-button mice by setting the .B MouseChordMenu resource to true. .\" ======================================================================== .SH MANIPULATING WINDOWS AND ICONS .I Window Title Bar and Borders. .PP Clicking SELECT selects the window, raises it above other windows, and deselects any other objects. In click-focus mode, the focus is also transferred to this window. Pressing and holding SELECT and then dragging the mouse will move windows without raising them or setting the focus. If this window is selected, it and all other selected windows are moved simultaneously. Otherwise, just this window is moved, and it is not selected. If you hold down the Control key while you are moving a window, motion is constrained either vertically or horizontally, depending on which direction you move first. .LP Double-clicking SELECT on the window is the same as selecting the Full Size (or Restore Size) menu item. Clicking ADJUST will toggle the selected state of this window. If other windows or icons are already selected, they remain selected. ADJUST is useful for selecting several windows and icons. Pressing MENU will bring up the window menu. See the Window Menu section for further details. If the .B Alt key is held down, the mouse button functions become accessible anywhere over the window, not just over the title bar and borders. The modifier used can be changed; see the description of the .B WMGrab resource in the section on Modifier Customization. .LP .I Resize Corners. .PP You can resize a window by pressing and holding SELECT over any of the resize corners and then dragging the mouse to the new location. Releasing the mouse button will set the new size of the window. If you hold down the Control key while you are dragging, the resize operation is constrained to resize vertically or horizontally, depending on which direction you move first. .LP .I Window Button. .PP The Window Button is the small box with a downward-pointing triangle near the left end of the title bar. Pressing MENU over the window button will bring up the Window Menu. Clicking SELECT over the left mouse button on the Window Button will execute the window menu's default action. This will usually close the window into an icon. You can change the window menu's default action by holding down the Control key while manipulating the window menu. .LP .I Pushpin. .PP OPEN LOOK pop-up windows have a pushpin instead of a window button. The pin is either in or out, and you can click SELECT on the pin to move it to the other state. If the pin is out, pressing a command button inside the window will execute the command and then dismiss (take down) the window. If the pin is in, the window is "pinned" to the workspace, and it will remain on the screen even after you have pressed a command button in the window. This allows you to press several command buttons in the same window. Pulling the pin out (by clicking SELECT over it) will dismiss the window immediately. .LP .I Icons. .PP An icon represents a closed window. You can still do most of the same operations as with an open window. Moving and selecting icons with SELECT and ADJUST is exactly the same as for open windows. A similar version of the Window Menu is available on an icon by pressing MENU. Double-clicking SELECT will open the icon. Icons cannot be resized. .\" ======================================================================== .SH NON-RECTANGULAR WINDOWS The X11 Non-Rectangular Window Shape Extension (commonly referred to simply as the SHAPE extension) allows windows to have arbitrary shapes. .B Olwm will handle these windows by giving them no decoration whatsoever. Shaped windows can be manipulated by using the WMGrab modifier (Alt by default) with the mouse buttons. (See the section on Modifier Customization for further details.) Shaped windows can be moved, resized, closed, opened, etc. like ordinary windows. The selection feedback for shaped windows is the presence of resize corners floating at the corners of the bounding rectangle of the window's shape. .\" ======================================================================== .SH SELECTIONS ON THE WORKSPACE .LP You can select a group of windows and icons by using the left or middle mouse buttons over the Workspace (the area of the screen outside of all windows and icons, commonly known as the "root window"). Pressing either SELECT or ADJUST and dragging the mouse will define a rubber-band rectangle. When you release the mouse button, the set of windows and icons enclosed by this rectangle will be operated on. If you created the rectangle using SELECT, the windows and icons within will be selected, and all other objects will be deselected. If you used ADJUST, the objects within will have their selected state toggled, and any other windows and icons already selected will remain selected. .\" ======================================================================== .SH MENU OPERATION .LP In general, pop-up menus are operated using the MENU mouse button. There are two methods of operating with an OPEN LOOK menu: the "click-move-click" method and the "press-drag-release" method. You choose the method either by clicking the MENU button (pressing and releasing it quickly) or by pressing it down and holding it. If you click the MENU button, the menu will pop up and will stay up indefinitely. To continue operating the menu, click the MENU button over a menu item. To dismiss the menu, click the MENU button on an area of the screen outside the menu. To operate menus in press-drag-release mode, press the MENU button and hold it down while you move the mouse. The menu will remain on the screen as long as you hold down the MENU button. To execute an action, move the pointer over a menu item and release the mouse button. To dismiss the menu, move the pointer outside the menu and release the MENU button. .LP Some menu items have a sub-menu. This is indicated by a right-pointing triangle at the right edge of the item. To activate a submenu, click on the item (in click-move-click mode) or move the pointer to the item and then move toward the right edge of the menu (in press-drag-release mode). .LP Some menus have pushpins. If a menu has a pushpin, it will initially be in the "out" state. If you click on the pin (in click-move-click mode) or move over it and release (in press-drag-release mode) you will pin the menu to the workspace. The menu will remain on the screen indefinitely and you can execute commands from it by clicking on its items. To remove the menu, move over the pin and click SELECT on it. .LP The behavior of menus can be customized using \fBolwm\fP's resources. In the Global Resources section, see the entries for \fBClickMoveThreshold\fP, \fBDragRightDistance\fP, \fBMultiClickTimeout\fP, and \fBSelectDisplaysMenu\fP for further information. .LP Some menus may have "accelerators" defined for them. See the section on Menu Accelerators for further details. .\" ======================================================================== .SH WORKSPACE MENU .LP Pressing MENU over the workspace brings up the Workspace Menu. This menu is customizable, but it typically contains at least the following items. (The items may appear in a different language depending on the current locale setting.) .TP .B Programs This item has a sub-menu that allows you to invoke applications. The default Programs sub-menu contains all of the programs in the OpenWindows DeskSet. However, users typically customize this menu to contain many more programs and to contain nested sub-menus. See the section on Menu Customization for further information. .TP .B Utilities This item has a sub-menu that contains several utility functions for the workspace, including Refresh (redisplay all windows on the screen), Lock Screen, and Save Workspace. .TP .B Properties... This item brings up the Workspace Properties window, which allows you to view and customize settings of the OpenWindows environment. .TP .B Help... Brings up the table of contents of the Help Handbooks. .TP .B "Desktop Intro..." Brings up a tutorial introduction to the Sun Desktop. .TP .B Exit Shuts down all applications and exits the window system. A confirmation notice will appear first to give you a chance to cancel the operation. .\" ======================================================================== .SH WINDOW MENU .LP The window menu of most windows has the following items. (The items may appear in a different language depending on the current locale setting.) .TP .B Close Closes the window to an icon. Any OPEN LOOK pop-up windows are closed into this icon as well. They will reappear when the icon is opened. This item is "Open" if you bring up this menu over an icon. .TP .B Full Size Expands the window to the full height of the screen. If this has already done, the button is Normal Size instead of Full Size. Normal Size restores the window to the size it was before you did the Full Size operation. If the application has specified a maximum size for the window, this size is used for Full Size instead of the full screen height. .TP .B Move Starts the keyboard-based form of moving the window. Appears only if OPEN LOOK Mouseless Mode is enabled. .TP .B Resize Starts the keyboard-based form of resizing the window. Appears only if OPEN LOOK Mouseless Mode is enabled. .TP .B Back Moves the window behind all other windows. .TP .B Refresh Clears and redisplays the window. .TP .B Quit Kills the program running in the window and removes the window. If the application has elected to participate in the WM_DELETE_WINDOW protocol, .B olwm sends a WM_DELETE_WINDOW ClientMessage instead of killing that window. .LP OPEN LOOK pop-up windows (as opposed to base windows) have a smaller window menu. It lacks the Close, Full Size, and Quit items, but it has two new items: .TP .B Dismiss Causes the window to be dismissed. This button has a sub-menu with two items: This Window, which dismisses just this window, and All Pop-ups, which dismisses all pop-up windows owned by this application. .TP .B Owner? Raises and flashes the title bar of the base window that "owns" this pop-up window. .\" ======================================================================== .SH MENU CUSTOMIZATION FILES .LP You can customize .BR olwm 's Workspace Menu by putting a menu description into a file that .B olwm will read. When it starts up, .B olwm will first look for a file named by the OLWMMENU environment variable. If this variable does not exist, or if the file is not readable, .B olwm will then look in the file named .B .openwin\-menu in your home directory. If this file is not present or is unreadable, .B olwm will fall back on the system default menu file. If, for some reason, the system default menu file cannot be found, .B olwm will use a minimal, built-in menu. The menu file that is read can also be modified by the display language locale setting. The locale name is used as a suffix for the filename. If a localized menu file is found, it is used in preference to the non-localized menu file. For example, if the display language locale is "japanese", the file .B .openwin\-menu.japanese will take precedence over the file .BR .openwin\-menu . .LP .B Olwm will automatically re-read its menu file whenever the menu file changes. This lets you make many small changes to a menu file, trying out the modified menu after each change. The automatic re-reading can be controlled with the .B AutoReReadMenuFile resource. .LP If .B olwm encounters a syntax error during the reading of any menu file, a message is printed to the standard error file and the reading of this menu file is considered to have failed. .B Olwm will then attempt to read the next file in the sequence as described above. .\" ======================================================================== .SH MENU SPECIFICATION SYNTAX The menu specification language has a number of keywords, all of which are in all upper case letters. The keywords are .I not translated into the language specified by the the locale category settings. Keywords are always in English. .LP Each line typically specifies one menu button. There are three fields on each line: a label, the optional keyword DEFAULT, and a command. The label is either a single word or a string enclosed in double quotes. This is the label that appears in the menu button. If the optional keyword DEFAULT appears next, this menu item becomes the default item for this menu. The rest of the line (excluding leading whitespace) is considered to be a command. It is executed by sending it to .BR sh (1). Any shell metacharacters will be passed through to the shell unchanged. The command field can be extended onto the next line by placing a backslash `\\' at the end of the line. The newline will not be embedded in the command. .LP A sub-menu is specified using the special keyword MENU in place of a command. A button is added to the current menu, and clicking or pulling right on this button will bring up the sub-menu. Subsequent lines in the menu file define buttons for the sub-menu, until a line that has the special keyword END in the command field is encountered. The label of the MENU line must match the label on the END line, otherwise an error is signaled. Sub-menus can be nested arbitrarily, bracketed by MENU and END lines with matching labels. .LP Sub-menus can be defined in a different file using either the MENU or the INCLUDE keyword. To include a sub-menu from another file, use a line with a label, either the MENU or the INCLUDE keyword, and then the filename. The file so named is assumed to contain lines that specify menu buttons. The sub-menu file need not have any MENU or END lines (unless it has sub-menus itself). The current file need not have a matching END line if the sub-menu is read from another file. Sub-menu files included with the MENU keyword are considered to be an integral part of the menu tree, and any error encountered during reading of the file will cause the entire menu to be considered invalid. A sub-menu file included with the INCLUDE keyword is considered optional, and any error encountered during reading of the file is not considered fatal. If an error occurs during INCLUDE processing, a disabled (grayed-out) item is inserted in place of the sub-menu and processing of the current menu file continues. .LP To make a sub-menu pinnable, add the special keyword "PIN" after the END keyword on the line that ends the sub-menu definition, or after the TITLE directive (see below). .LP By default, the label in a menu button is used as the title of the sub-menu. This can be overridden by specifying a line that has the special keyword TITLE in the command field. The label from this line will be used as the sub-menu's title. This line can appear anywhere in the sub-menu definition. It does not add an item to the menu. In addition, if the PIN keyword follows the TITLE keyword on this line, the sub-menu will be made pinnable. This construct is useful for declaring that a sub-menu defined in a separate file be pinnable. .LP A line containing only the keyword SEPARATOR will add extra space before the next item. .LP The following keywords can be used in the command field of a menu item. They specify functions that are internal to .B olwm, that are not invoked by running a shell. .TP BACK_SELN Move the selected windows and icons behind other windows. .TP EXIT .br Kills all applications and exits the window manager after getting confirmation from the user. This is useful for exiting the entire window system. .TP EXIT_NO_CONFIRM Like EXIT but skips the confirmation notice. .TP FLIPDRAG Toggle the state of the .B DragWindow resource. .TP FLIPFOCUS Toggle the state of the .B SetInput resource. .TP FULL_RESTORE_SIZE_SELN Toggle the full-sized/normal-sized states of the selected windows and icons. .TP NOP .br No operation; don't do anything. .TP OPEN_CLOSE_SELN Toggle the opened/closed states of the selected windows and icons. .TP QUIT_SELN Quit the selected windows and icons. .TP PROPERTIES Bring up Workspace Properties. .TP REFRESH Refresh causes all windows on the screen to be repainted. .TP REREAD_MENU_FILE Force an immediate rereading of the workspace menu customization file. .B Olwm will start a complete search for a menu file (as described in the .I Menu Customization section) and use the first valid file it finds. .TP RESTART Restart the window manager by issuing an .BR exec (2) on .B argv. This shouldn't affect any running applications, nor should it cause the server to shut down. .TP SAVE_WORKSPACE .br Take a snapshot of the set of currently running applications, and put the command lines so obtained into the file ".openwin\-init" in the user's home directory. This runs the command specified by the .B SaveWorkspaceCmd resource. .TP START_DSDM Start providing the DSDM service. See the section on Drag and Drop for further information. .TP STOP_DSDM Stop providing the DSDM service. See the section on Drag and Drop for further information. .TP WMEXIT Exit the window manager without killing any applications. .LP Here is an example root menu specification. .LP .nf "My Custom Menu" TITLE .sp Programs MENU "Command Tool" DEFAULT cmdtool "Text Editor" textedit Mail mailtool "File Manager" filemgr Other MENU "Other Tools" TITLE "Shell Tool" shelltool "Icon Editor" iconedit Clock clock "Perf Meter" DEFAULT perfmeter Other END Programs END PIN .sp "Repaint Screen" REFRESH .sp "Properties ..." PROPERTIES .sp Exit EXIT .fi .\" ======================================================================== .SH COLORMAP INSTALLATION .LP .B Olwm will handle colormap installation for windows that have colormaps other than the default colormap. There are two colormap focus modes: "color-follows-mouse" and "color-locked". They are roughly analogous to the corresponding modes for input focus. However, the colormap focus mode can be completely independent of the input focus mode. The mode in which the system starts up is determined by the .B ColorFocusLocked resource. .LP .B Olwm keeps track of a set of windows that are eligible to have their colormaps installed. This set includes all top-level windows of clients. If any clients have specified other windows in a WM_COLORMAP_WINDOWS property, these windows are included in the set as well. The windows listed in this property need not be top-level windows; they can be nested subwindows as well. .LP In color-follows-mouse mode, .B olwm keeps track of the location of the pointer and always keeps installed the colormap of the eligible window underneath the pointer. Thus, you can install the colormap of a particular window simply by sliding the pointer into it. The default colormap will be restored if you move the pointer back out into a window frame or into the workspace. In this mode, the WM_COLORMAP_WINDOWS properties are tracked for changes, but only to change the set of eligible windows. Changes to these properties only cause colormaps to be installed if the eligible window under the pointer has changed as a result of the set of eligible windows changing. In this mode, no window is considered to have the colormap focus; colormap installation entirely is under control of the user. .LP In color-locked mode, colormaps are not installed based on pointer motion. Instead, colormaps are installed explicitly by the user using function keys or by a program changing the contents of the WM_COLORMAP_WINDOWS property on its top-level window. .LP The user can install the colormap of a window (or subwindow listed in the WM_COLORMAP_WINDOWS property) by moving the pointer over the window or subwindow and pressing the Color-Lock key (which is bound to Control-L2 by default). This will install the colormap of the window or subwindow under the pointer, and it will also grant the colormap focus to the top-level window. When a window has the colormap focus, .B olwm will honor changes to this window's WM_COLORMAP_WINDOWS property by installing the colormap of the first window named in this property. In this way, the application whose window has the colormap focus can control colormap installation by altering the contents of the WM_COLORMAP_WINDOWS property. .LP Note that, according to the ICCCM, if WM_COLORMAP_WINDOWS does not include the top-level window, it is assumed to occur first in the list. If you want your program to request colormap installation via changes to WM_COLORMAP_WINDOWS, you must make sure that the top-level window appears somewhere in this property. Otherwise, .B olwm will always install the colormap of the top-level window. .LP The colormap focus may be given to a window in several other ways. If you press the Color-Lock key over a window's title bar or border, that window will be given the colormap focus and the first window in the WM_COLORMAP_WINDOWS property will be installed. If the .B AutoColorFocus resource is set, new windows will be given the colormap focus automatically. If the .B ColorTracksInputFocus resource is set, the colormap focus will always be given to the window that has the input focus. .LP If you press the Color-Lock key over the workspace, the default colormap will be installed, and any window with the colormap focus will lose it. The root window is then considered to have the colormap focus. At any time, you can revert to color-follows-mouse mode by pressing the Color-Unlock key. Any window with the colormap focus will lose it. .\" ======================================================================== .SH SPOT HELP .LP .B Olwm provides spot help for frames, icons, the Workspace and Window menus, window buttons, resize corners, pushpins, and the Workspace itself. This is done via a separate slave program, .BR olwmslave (1) . The slave program is forked automatically when .B olwm starts up. The forking of the slave program can be controlled by the .B RunSlaveProcess resource. .\" ======================================================================== .SH MULTIPLE SCREENS .LP By default, .B olwm will manage windows on all screens of the display server. Most operations are unchanged from single screen operation. A window exists on a particular screen for its entire lifetime. The window cannot be moved from one screen to another, nor can it be resized to cross a screen boundary. Windows invoked from the Workspace menu will appear on the same screen as the menu. Spot help will appear on the same screen as the pointer when the Help key is pressed. .LP Previous releases required modifications to the user's .B .xinitrc script to start multiple instances of .B olwm, one for each screen. These modifications are no longer necessary. The default .B Xinitrc (which contains a single invocation of .BR olwm ) works for both single and multiple screen situations. .\" ======================================================================== .SH DRAG AND DROP .LP The OpenWindows drag and drop system relies on a third-party client (i.e. a client other than the source or destination clients of a drag and drop operation) to maintain a database of all possible locations on the screen where an object may be dropped. These locations are referred to as ``drop sites.'' This third party client is thus called the Drop Site Database Manager or DSDM. By default, .B olwm is configured to provide the DSDM service to clients. This can be controlled using the .B StartDSDM resource or the .B \-dsdm and .B \-nodsdm command-line options. .LP If you have customized your Workspace Menu (see the section on Menu Customization) you can add items that use the START_DSDM and STOP_DSDM menu keywords. Invoking a menu item bound to one of these keywords will enable or disable .BR olwm 's providing of the DSDM service. .LP A standalone client .BR dsdm (1) exists in order to provide the DSDM service in the case where .B olwm is not running or if it has been directed not to provide the DSDM service. Note that the START_DSDM and STOP_DSDM functions do not run an actual .B dsdm process; rather, they control whether .B olwm provides the DSDM service itself. It is not necessary to run .B dsdm if .B olwm is providing the DSDM service. .\" ======================================================================== .SH GLOBAL RESOURCES .LP Global resources in .B olwm consist of two resource components. The first component in the resource name is taken from the trailing pathname component of .BR argv[0] . This value is typically `olwm'. This name can be altered by using the .B \-name command-line argument. The second resource component names the global attribute being set. It should be one of the names from the following list. Thus, to set the .B AutoColorFocus attribute, one would use "olwm.AutoColorFocus" as the resource specification. .LP .B Olwm will automatically pick up changes to many of these resources if the resource database changes at run-time. One can thus modify \fBolwm\fP's behavior by changing the resource database with .BR xrdb (1) or with Workspace Properties. If a resource value is specified on \fBolwm\fP's command line, it will override the value in the resource database, and thus changing the resource's value in the database will have no effect on this resource setting. .LP Some resources are also interpreted by XView (see .BR xview (7)) and are set by the Workspace Properties program (see .BR props (1)). For these resources, .B olwm will also accept the string `OpenWindows' as the first resource component. These resources are marked with an asterisk `*'. .LP Colors can be specified using the formats parsed by the Xlib XParseColor() function. Common formats are color names (see .BR showrgb (1)) and explicit red, green, and blue values in hexadecimal, preceded by a `#'. For example, a cyan (full green and blue) would be specified with "#00ffff". .LP Boolean values can be specified with the words "true", "false", "on", "off", "yes", "no", "1", "0", "t", and "nil". .TP .BI AutoColorFocus " (boolean)" Indicates whether newly appearing windows are to be given the colormap focus automatically. See the section on Colormap Installation for further details. .I Default value: false. .TP .BI AutoInputFocus " (boolean)" Indicates whether newly appearing windows are to be given the input focus automatically. .I Default value: false. .TP .BI AutoRaise " (boolean)" Raise windows automatically when they receive the focus. This is useful in click-to-focus if you always like to type into the topmost window. This is useful in focus-follow-mouse when the .B AutoRaiseDelay resource is set to a reasonable value. .I Default value: false. .TP .BI AutoRaiseDelay " (integer)" Amount of time to delay, in microseconds, between a window receiving the focus and raising it above other windows. Effective only when the value of the .B AutoRaise resource is true. .I Default value: 0. .TP .BI AutoReReadMenuFile " (boolean)" Specifies whether the menu file is to be re-read whenever it changes. .I Default value: true. .TP .BI Background " (color)" Specifies the background color. This is used for the background of masked icons. Note: it is not used for the backgrounds of icon windows such as those used by XView (see .BR xview (7)). This resource is also distinct from the .B WindowColor resource. .I Default value: white. .TP .BI BasicLocale " (locale name)" Specifies the basic OPEN LOOK locale category setting. See the section on Locale Handling for more details. .TP .BI Beep " (enumeration) " * Specifies the circumstances under which .B olwm should beep. Permissible values are the strings "always", "never", and "notices". The string "never" means that .B olwm should never beep, "notices" means that .B olwm should beep only when a notice appears, and "always" means that .B olwm will beep whenever it is appropriate. .I Default value: always. .TP .BI BorderColor " (color)" Specifies the color used for window and icon borders. .I Default value: black. .TP .BI ButtonFont " (font name)" Font to be used for buttons in menus and notices. .I Default value: Lucida-Sans-12. .TP .BI ClickMoveThreshold " (integer)" This value is used when bringing up a menu. If the pointer moves more than this amount while the menu button is down, the menu is considered to be in press-drag-release mode. Otherwise, the menu is in click-move-click mode. .I Default value: 5. .TP .BI ColorFocusLocked " (boolean)" Specifies the initial state of the colormap focus policy. If true, the default colormap is locked into the hardware. If false, the colormap of the window under the pointer is kept installed. See the section on Colormap Installation for further details. .I Default value: false. .TP .BI ColorTracksInputFocus " (boolean)" If true, indicates that the colormap focus is to be set automatically to any window that receives the input focus. See the section on Colormap Installation for further details. .I Default value: false. .TP .BI CursorFont " (font name)" Specifies the font to be used for cursors. It is probably not useful to change this unless you have an alternate cursor font with the same encoding as the OPEN LOOK cursor font. .I Default value: .br .I \-sun\-open look cursor\-*\-*\-*\-*\-*\-120\-*\-*\-*\-*\-*\-*. .TP .BI DefaultIconImage " (filename)" Specifies a file containing a bitmap to be used as the default icon image. .TP .BI DefaultIconMask " (filename)" Specifies a file containing a bitmap to be used as the default icon mask. .TP .BI DefaultTitle " (string)" Specifies the string to be used in the title bar of windows that have not provided a string in the WM_NAME property. .I Default value: No Name. .TP .BI DisplayLang " (locale name)" Specifies the display language OPEN LOOK locale category. See the section on Locale Handling for more details. .TP .BI DragRightDistance " (integer) " * The number of pixels you must drag the mouse to the right in a menu item to bring up a sub-menu. The sub-menu always comes up when you move over the menu mark (the right-pointing triangle), regardless of the drag-right distance. .I Default value: 100. .TP .BI DragThreshold " (integer) " * This is the number of pixels the mouse must move while a mouse button is down in order to have the action be considered a drag. If the mouse moves fewer than this number of pixels while the button is down, it is considered to be click instead of a drag. .I Default value: 5. .TP .BI DragWindow " (boolean)" If true, drags the entire image of the window when you move it. Otherwise, just drags the window outline. .I Default value: false. .TP .BI EdgeMoveThreshold " (integer)" Specifies the amount of "hysteresis" provided when moving windows past the edge of the screen. When you move a window or an icon, it will pause when it touches the edge of the screen. This is to allow you to easily position windows right up against the edge of the screen. If you move farther, the window or icon will continue to move past the edge. You can prevent windows from ever lapping off the screen by setting an extremely large value (say, 10000) for this resource, and you can disable this feature entirely by specifying a value of zero. .I Default value: 10. .TP .BI FlashCount " (integer)" Number of times the title bar is flashed when the "Owners?" menu item is activated. .I Default value: 6. .TP .BI FlashTime " (integer)" Amount of time, in microseconds, for which the title bar is flashed when the "Owner?" menu item is activated. .I Default value: 100000. .TP .BI FocusLenience " (boolean)" If this is set to true, .B olwm will not enforce the ICCCM requirement that windows must have the input hint set in order to receive the input focus. This option is useful if you run clients that aren't ICCCM-compliant, like many X11R3-based clients. .I Default value: false. .TP .BI Foreground " (color)" Specifies the foreground color. This color is used mainly for the text of window and icon titles and in menus. .I Default value: black. .TP .BI GlyphFont " (font name)" Glyph font used for drawing OPEN LOOK graphics. Changing this font is mainly useful for changing its size. Specifying a different font, such as a text font, will result in undesirable behavior. .I Default value: .br .I \-sun\-open look glyph\-*\-*\-*\-*\-*\-120\-*\-*\-*\-*\-*\-*. .TP .BI IconFlashCount " (integer)" Number of times to flash the open/close "zoom" lines. .I Default value: 3. .TP .BI IconFlashOffTime " (integer)" Amount of time to pause, in microseconds, while open/close "zoom" lines are not visible. .I Default value: 1. .TP .BI IconFlashOnTime " (integer)" Amount of time to pause, in microseconds, while open/close "zoom" lines are visible. .I Default value: 20000. .TP .BI IconFont " (font name)" Font used for icon names. .I Default: Lucida-Sans-12. .TP .BI IconLocation " (enumeration) " * One of the words "top-lr", "top-rl", "bottom-lr", "bottom-rl", "left-tb", "left-bt", "right-tb", or "right-bt". These specify that icons should be arranged along a particular edge of the screen, ordered from left to right or top to bottom as appropriate. The words "top", "bottom", "left", and "right" are synonyms for "top-lr", "bottom-lr", "left-tb", and "right-tb", respectively. .I Default value: bottom. .TP .BI InvertFocusHighlighting " (boolean)" In click-to-focus, the input focus is normally indicated by a solid rectangle in the title bar. In focus-follows-mouse, focus is normally indicated with two lines in the title bar. If this resource is true, the style of highlighting is inverted with respect to the focus style. This results in two lines for click-to-focus and a solid bar for focus-follows-mouse. .I Default value: false. .TP .BI KeepTransientsAbove " (boolean)" Specifies whether .B olwm should attempt to keep transient windows above their owner window. .I Default value: false. .TP .BI KeyboardCommands " (enumeration) " * Permissible values for this resource are .B "SunView1, Basic," and .B Full. Values are case-sensitive. In .B Full mode, all OPEN LOOK Mouseless commands implemented by the window manager are active. See the section on Mouseless Navigation for further information. In .B Basic mode, the keys active are Open, Front, Help, and the colormap keys. In .B SunView1 mode, the only keys active are Open and Front. .I Default value: Basic. .TP .BI MenuAccelerators " (boolean)" Determines whether menu accelerators are active. Used in conjunction with the .B WindowMenuAccelerators resource. Both must be set to true for menu accelerators to be active. .I Default value: true. .TP .BI MinimalDecor " (list of strings)" Specifies a list of windows that are to be decorated minimally. Decoration on such windows includes only a thin border and resize corners, with no title bar or window button. The value should be a whitespace-separated list of strings. Each string should specify an application's class or instance name, as passed in the WM_CLASS property. Most applications set this property based on the name of the executable (i.e. argv[0]). For example, to specify that the clock and the calculator should be decorated minimally, you would use the following resource: .nf .sp olwm.MinimalDecor: calctool clock .sp .fi Many applications will allow you to override the value of the WM_CLASS property using the .B \-name option on the command line. .I Default value: (null). .TP .BI MouseChordMenu " (boolean)" If true, uses a chorded mouse button combination for MENU instead of shift keys. See the Mouse Buttons section for further details. .I Default value: false. .TP .BI MouseChordTimeout " (integer)" Specifies the amount of time, in milliseconds, that .B olwm is to wait for subsequent events to disambiguate chorded mouse button event sequences. .I Default value: 100. .TP .BI MultiClickTimeout " (integer) " * The time, in tenths of a second, that differentiates a double-click from two single clicks. This value is also used to distinguish the click-move-click and press-drag-release modes of pop-up menus. If the MENU button is held down longer than this amount of time, the menu is considered to be in press-drag-release mode, otherwise it is considered to be in click-move-click mode. .I Default value: 5. .TP .BI Numeric " (locale name)" Specifies the numeric format OPEN LOOK locale category. See the section on Locale Handling for more details. .TP .BI PaintWorkspace " (boolean)" If true, .B olwm will use the .B WorkspaceColor resource to set the workspace (root window) background color. If false, .B olwm will not change the root window background. This is useful If you prefer to set your own workspace color using .BR xsetroot (1) or a similar program. .I Default value: true. .TP .BI PointerWorkspace " (boolean)" If true, .B olwm will set the workspace (root window) cursor. If false, .B olwm will not change the root window cursor. This is useful if you prefer to set your own workspace cursor using .BR xsetroot (1) or a similar program. .I Default value: true. .TP .BI PPositionCompat " (boolean)" Turns on backward compatibility for older applications that have a habit of always setting the PPosition flag in the WM_NORMAL_HINTS property, even when they haven't set a position. This most often occurs with X11R3-based clients. Without backward compatibility, these windows will always appear in the upper-left corner of the screen. With backward compatibility, these windows will be positioned according to the default OPEN LOOK window placement policy, along the diagonal of the screen. This option will not affect windows that have a geometry specified on the command line. .I Default value: false. .TP .BI PopupJumpCursor " (boolean) " * Specifies whether to warp the cursor to pop-up windows. .I Default value: true. .TP .BI PrintWarnings " (boolean)" Determines whether .B olwm will issue non-fatal warning messages (such as X protocol errors) to its standard error file. .I Default value: false. .TP .BI RaiseOnActivate " (boolean)" Specifies whether a window is to be raised when it is activated via a Mouseless command. .I Default value: true. .TP .BI RaiseOnMove " (boolean)" Tells \fBolwm\fP to raise a window whenever it is moved by the user. .I Default value: false. .TP .BI RaiseOnResize " (boolean)" Tells \fBolwm\fP to raise a window whenever it is resized by the user. .I Default value: false. .TP .BI RefreshRecursively " (boolean)" Determines how the Refresh menu items on the window and workspace menus operate. If the value is true, .B olwm will walk the window hierarchy and send exposure events to every window. This is useful for refreshing windows that have backing store. If the value is false, .B olwm will map a window and then unmap it, causing all windows underneath that do not have backing store get exposures. When this feature is on, the Refresh operation generates a large amount of client-server traffic. It may be useful to turn this feature off if the connection transport has low bandwidth or high latency. .I Default value: true. .TP .BI ReverseVideo " (boolean)" If true, reverses the sense of black and white on monochrome screens. Ignored for color screens. .I Default value: false. .TP .BI RubberBandThickness " (integer)" Specifies the thickness of the "rubber-band" line that is drawn when a window is resized, when a group of windows is selected by dragging a rectangle on the root, and when a window is moved and the value of the .B DragWindow resource is false. .I Default value: 2. .TP .BI RunSlaveProcess " (boolean)" If false, disables the running of .BR olwmslave (1) at startup time. If the slave process is not running, Spot Help will not be available on objects owned by .B olwm such as pushpins and resize corners. .I Default value: true. .TP .BI SaveWorkspaceCmd " (string)" The command to execute to perform the Save Workspace functionality. This command defaults to running owplaces(1) which saves the currently running clients into the OpenWindows startup script $HOME/.openwin\-init. .I Default value: .br .I owplaces \-silent \-multi \-local \-script \-tw \-output $HOME/.openwin\-init .TP .BI SaveWorkspaceTimeout " (integer)" Number of seconds to wait while the Save Workspace operation is in progress. If the Save Workspace command has not completed within this amount of time, the operation is considered to have failed. .I Default value: 30. .TP .BI SelectDisplaysMenu " (boolean) " * If true, pressing the SELECT mouse button will bring up a menu item's sub-menu (if any) instead of executing the sub-menu's default action. .I Default value: false. .TP .BI SelectionFuzz " (integer)" Number of pixels of "fuzz" to be applied when selecting windows and icons by dragging a rectangle on the workspace. Consider an object that lies almost entirely within the selection rectangle, but that laps outside the rectangle by a few pixels. The object will be considered to be within the selection rectangle if it laps outside by fewer than or equal to "fuzz" pixels. .I Default value: 1. .TP .BI SelectToggleStacking " (boolean)" If true, double-clicking on a window will push it to the back instead of zooming it to and from its full size. .I Default value: false. .TP .BI SelectWindows " (boolean)" If false, the SELECT mouse button will not select windows and icons. Its other functions are unaffected. The ADJUST mouse button can still be used to select windows and icons. .I Default value: true. .TP .BI ServerGrabs " (boolean)" Controls whether .B olwm grabs the server while menus and notices are up. .I Default value: true. .TP .BI SetInput " (enumeration) " * Controls the input focus mode. If the value is "select", it means click-to-focus. If the value is "followmouse", it means focus-follows-mouse. .I Default value: select. .TP .BI ShowMoveGeometry " (boolean)" Indicates whether the geometry box should be shown while moving windows and icons. .I Default value: false. .TP .BI ShowResizeGeometry " (boolean)" Indicates whether the geometry box should be shown while resizing windows. .I Default value: false. .TP .BI SnapToGrid " (boolean)" Determines whether icons will snap to a grid when they are moved. .I Default value: false. .TP .BI StartDSDM " (boolean)" Determines whether .B olwm will provide the DSDM service. See the section on Drag and Drop for further details. .I Default value: true. .TP .BI TextFont " (font name)" Font used in the text of notices. .I Default: Lucida-Sans-12. .if 0 \{ .TP .BI timeFormat " (locale name)" Specify the time format OPEN LOOK locale category. See the section on Locale Handling for more details. \} .TP .BI TitleFont " (font name)" Font used in title bars atop windows and menus. .I Default: Lucida-Sans-12 Bold. .TP .BI TransientsSaveUnder " (boolean)" Specifies whether the save-under attribute of frames of transient windows is to be forced on. .I Default value: true. .TP .BI TransientsTitled " (boolean)" Specifies whether transient windows should have title bars. Normally, transient windows have a title bar and resize corners, but no window button or pushpin. Setting this resource to false will remove the title bar from transient windows. .I Default value: true. .TP .BI Use3D " (boolean)" Specifies whether to use 3D OPEN LOOK when possible. If false, 3D look is never used. If true, 3D is used unless the display hardware cannot support it. .I Default value: true. .TP .BI Use3DFrames " (boolean)" Specifies whether to use a 3D look for the frame borders. If true, the frames will be given a 3D look; otherwise, they have the same thick border as in 2D look. Some people prefer the look of 3D frames, but it is more difficult to distinguish selected from unselected windows with this option turned on. .I Default value: false. .TP .BI Use3DResize " (boolean)" Specifies whether the window resize corners are to be in the 3D look. If false, the 2D look is used for window resize corners. .I Default value: true. .TP .BI WindowCacheSize " (integer)" .B Olwm keeps a cache of windows in order to minimize unnecessary window creation and destruction. The value of this resource specifies the size of this cache. Setting this resource to zero disables the window cache. .I Default value: 500. .TP .BI WindowColor " (color) " * Specifies the color of windows. This is the "BG1" color for 3D OPEN LOOK. It is used for the backgrounds of windows, menus, and notices. The 3D effect is achieved by using highlight and shadow colors derived from this color. .I Default value: #cccccc. This specifies a 20% gray value. .TP .BI WindowMenuAccelerators " (boolean)" Determines whether menu accelerators are active. Used in conjunction with the .B MenuAccelerators resource. Both must be set to true for menu accelerators to be active. .I Default value: true. .TP .BI WorkspaceBitmapBg " (color specification)" Specifies the background color used for the workspace bitmap when the .B WorkspaceStyle resource is "tilebitmap". .I Default value: black. .TP .BI WorkspaceBitmapFg " (color specification)" Specifies the foreground color used for the workspace bitmap when the .B WorkspaceStyle resource is "tilebitmap". .I Default value: white. .TP .BI WorkspaceBitmapFile " (filename)" Specifies a X bitmap file that will be used for the workspace background when WorkspaceStyle is "tilebitmap". If the filename is not a full path name, the following directories are searched: .nf .sp $OPENWINHOME/etc/workspace/patterns $OPENWINHOME/include/X11/include/bitmaps /usr/X11/include/X11/include/bitmaps .sp .fi .I Default value: gray. .TP .BI WorkspaceColor " (color) " * Specifies the color for the workspace (root window). On startup, .B olwm will set the root window's background color to the color specified by this resource, and it will restore the default background on shutdown. To turn off this behavior, see the description of the .B PaintWorkspace resource. .I Default value: #40a0c0. This specifies a light blue color. .I Note: earlier versions of .B olwm would accept a bitmap file name as the value of the .B WorkspaceColor resource. This is no longer supported, and the .B WorkspaceBitmapFile, WorkspaceBitmapBg, and .B WorkspaceBitmapFg resources should be used instead. .TP .BI WorkspaceStyle " (enumeration)" This controls how the workspace is painted. If the value is "paintcolor", the solid color specified by the .B WorkspaceColor resource is used. If the value is "tilebitmap", the workspace is tiled with a bitmap using the .B WorkspaceBitmapFile, WorkspaceBitmapBg, and .B WorkspaceBitmapFg resources. If the value is "default", the server default root-weave pattern is used. If the value of the .B PaintWorkspace resource is false, then all of these resources are ignored and the workspace color or pattern is left unchanged. .I Default value: paintcolor .\" ======================================================================== .SH SCREEN RESOURCES .LP In addition to the global resources described above, .B olwm also uses screen-specific resources. The first component of the resource specification is the trailing pathname component of .BR argv[0] . The second component is the screen number appended to the string `screen'. The screens are numbered sequentially starting from zero. The third component of the resource name is the name of the resource itself. For example, .nf .sp olwm.screen1.ReverseVideo: true .sp .fi enables reverse video on screen number 1 for .B olwm. To affect all screens, you can use resource wildcarding. For example, `olwm*ReverseVideo: true' will set reverse video for all screens .B olwm manages. .LP The following resources are available both globally and on a per-screen basis. A screen-specific resource overrides the corresponding global setting for that screen. Note that screen specific settings for WorkspaceColor and WindowColor will only affect \fBolwm\fP; this may cause clashes with XView clients which only use the global setting. .nf .sp Background BorderColor Foreground ReverseVideo WindowColor WorkspaceColor .sp .fi .LP The following resources allow the selection of visuals other than the screen's default. Available visuals may be listed with the .BR xdpyinfo (1) command. .TP .BI Depth " (integer)" Specify the visual depth to be used when searching for visuals. .I Default value: none. .TP .BI Visual " (enumeration)" Specify the visual class to be used when searching for visuals. Valid visual classes are .BR StaticGray , .BR GrayScale , .BR StaticColor , .BR PseudoColor , .BR TrueColor , and .BR DirectColor . Names are case-sensitive. .I Default value: none. .TP .BI VisualID " (id)" Specify the visual ID to be used. Note: specifying a visual by its ID is not portable, as IDs may vary from server to server and even from one invocation of a server to the next. .I Default value: none. .\" ======================================================================== .SH MOUSELESS NAVIGATION .B Olwm implements OPEN LOOK Mouseless operations. This is a set of functions bound to keys that enable one to use the window system entirely without a pointing device. Some Mouseless functions are also useful for "cross-over" users, who may want to use them as accelerators for mouse-based operations. The full benefits of Mouseless operations are realized in click-to-focus mode, although the Mouseless operations can still be used in focus-follows-mouse mode. .LP To use the Mouseless functions, you must make sure that the .B KeyboardCommands resource value is "Full". Other settings for this resource will leave most of the Mouseless functions disabled. For further details, see the description of the .B KeyboardCommands resource in the Global Resources section. Enabling Mouseless operation only activates keyboard-based functions. It does not affect mouse functions in any way. .LP One can navigate from window to window using the Next Application, Previous Application, Next Window, and Previous Window functions, bound by default to Alt-n, Alt-Shift-n, Alt-w, and Alt-Shift-w, respectively. (See the section on Mouseless Navigation for more detailed information.) You can bring up both the window and the workspace menu using Alt-m and Alt-Shift-m, respectively. Once a menu is up, you can navigate through it by using the arrow keys or by pressing the first letter of the menu item you want to go to. You can execute the current item by pressing Return, or you can cancel the menu using Stop or Escape. .LP When Mouseless navigation is turned on, Move and Resize items will appear on the window menu. These items provide an alternative technique for moving and resizing windows. They can be invoked using the mouse, using the Mouseless menu navigation functions from the keyboard, or by using Menu Accelerator keys (although they are not bound to any accelerator keys by default). After selecting either of these items, you will be put into a mode where you can move or resize the window using keyboard keys. In Move mode, you can use the arrow keys to move the window in the desired direction. You can also hold down the Control key to "jump" the window by a larger distance each time you press an arrow key. You can press Return to accept the new location, or you can press Escape or Stop to abort the move operation. .LP In Resize mode, the first arrow key selects the edge you are moving, and subsequent arrow keys move that edge. For example, to shrink a window from the right (that is, to move its right edge to the left) you would first enter resize mode, press the right arrow key to select the right edge, and then press the left arrow key to move this edge to the left. As in move mode, you can hold down Control to "jump" the edge by a greater increment. You can press Return to accept the new size, and you can press Escape or Stop to abort the resize operation. .\" ======================================================================== .SH MENU ACCELERATORS .LP .B Olwm supports accelerator keys for certain items on the Window Menu. By default, the items for which accelerators are enabled are Close (Meta-W) and Quit (Meta-Q). Pressing these key combinations will operate on the window or icon that has the input focus. Other Window Menu items are not bound to key combinations, but can be bound with resources. See the Key Binding Resources section (below) for further information. When a menu accelerator key is active for a particular function, an indication of this appears at the right edge of the menu item. Key combinations with modifiers are displayed in a self-evident fashion, except for the Meta modifier, which is displayed as a diamond mark. (The meta keys are marked with diamonds on Sun keyboards.) .LP The default menu accelerator bindings may conflict with certain popular applications (such as Emacs or the Athena text widget). It is thus possible to disable menu accelerators on a per-application basis. To disable menu accelerators, add a resource of the form .nf .sp olwm.Client.\fIclass\fP.MenuAccelerators: false .sp .fi to the resource database, where \fIclass\fP is the application's class or instance name as written in the WM_CLASS property. For instance, to disable menu accelerators for Emacs, one would add the following .nf .sp olwm.Client.Emacs.MenuAccelerators: false .sp .fi to the \fB.Xdefaults\fP file. .\" ======================================================================== .SH KEY BINDING RESOURCES .LP Key bindings for mouseless navigation functions and menu accelerator keys are specified using resources. There is one resource per function, and the value of the resources are the keys to which the function is bound. The resource value consists of a comma-separated list of key specifications. Each key specification consists of a keysym optionally followed by modifier keysyms; the modifier keysyms are separated by `+' signs. For example, to bind a function to F2, control-F3, and alt-shift-F4, one would use the value: .nf .sp F2,F3+Control,F4+Shift+Alt .sp .fi .LP Any keysym whose key is in the modifier mapping may be used as a modifier. The following can also be used as aliases for common modifier keysyms: .BR Shift , .BR Lock , .BR Control , .BR Ctrl , .BR Ctl , .BR Meta , .BR Alt , .BR Super , and .B Hyper. .LP Resource names are prefixed with the trailing pathname component of .BR argv[0] , followed by .B KeyboardCommand for mouseless navigation functions, or .B MenuAccelerator for menu accelerator keys, followed by one of the resource names from the following list. (Note that the .B KeyboardCommand resource component is singular, and is not to be confused with the .B KeyboardCommands global resource name.) For example, the resource specification for setting the Stop function would be: .nf .sp olwm.KeyboardCommand.Stop .sp .fi and the resource specification for setting the Back menu accelerator function would be: .nf .sp olwm.MenuAccelerator.Back .sp .fi .LP Each item in this list is followed by its default keyboard binding and a description of what the function does. Items marked with an asterisk `*' involve keyboard grabs. Items not marked with an asterisk are active only while .B olwm is in a mode, such as when a menu is up. Items marked with an exclamation point `!' are menu accelerators and are specified using the .B MenuAccelerator resource component as described above. Items not marked with an exclamation point are considered mouseless navigation functions and use the .B KeyboardCommand resource component. .LP Most of the mouseless navigation functions that use grabs are active only when the .B KeyboardCommands resource is set to .B Full. The menu accelerator functions all use grabs, and they are controlled by the global resources .B MenuAccelerators and .B WindowMenuAccelerators. For further information, see the description of these resources in the Global Resources section. .TP Stop \fI(L1, Escape)\fP Abort the current mode or action. .TP DefaultAction \fI(Return, Meta-Return, Enter)\fP Execute the default action for the current menu or notice. .TP Select \fI(space)\fP Select the current button. .TP Adjust \fI(Alt-Insert)\fP Toggle the selected state of the current object. .TP Menu \fI(Alt-space)\fP Bring up a menu on the current object. .TP InputFocusHelp \fI(?, Control-?)\fP Bring up Help on the object with the input focus. .TP Up \fI(up-arrow)\fP Move up one item. .TP Down \fI(down-arrow)\fP Move down one item. .TP Left \fI(left-arrow)\fP Move left one item. .TP Right \fI(right-arrow)\fP Move right one item. .TP JumpUp \fI(Control up-arrow)\fP Move up ten items. .TP JumpDown \fI(Control down-arrow)\fP Move down ten items. .TP JumpLeft \fI(Control left-arrow)\fP Move left ten items. .TP JumpRight \fI(Control right-arrow)\fP Move right ten items. .TP RowStart \fI(Home, R7)\fP Move to the start of the current row. .TP RowEnd \fI(End, R13)\fP Move to the end of the current row. .TP DataStart \fI(Control-Home)\fP Move to the start of the data. .TP DataEnd \fI(Control-End)\fP Move to the end of the data. .TP FirstControl \fI(Control-[)\fP Move to the first item. .TP LastControl \fI(Control-])\fP Move to the last item. .TP NextElement \fI(Tab, Control-Tab)\fP Move to the next item. .TP PreviousElement \fI(Shift-Tab, Control-Shift-Tab)\fP Move to the previous item. .TP Open \fI(Alt-L7)\fP * Open the object with the input focus. .TP Help \fI(Help)\fP * Bring up Spot Help on the object under the pointer. .TP LockColormap \fI(Control-L2)\fP * Install the colormap of the subwindow under the pointer, and give the colormap focus to the top-level window containing the pointer. See .I Colormap Installation for further details. .TP UnlockColormap \fI(Control-L4)\fP * Revert to color-follows-mouse mode, and unset colormap focus. See .I Colormap Installation for further details. .TP Front \fI(Alt-L5)\fP * Bring the object with the input focus to the front. .TP FocusToPointer \fI(Alt-Shift-j)\fP * Set the focus to the window under the pointer. .TP NextApp \fI(Alt-n)\fP * Move the focus to the next base window. Windows are ordered clockwise starting at the top. Icons come after all windows, also in a clockwise fashion. Order proceeds from the last icon on a screen to the first window of the next screen. After the last screen, the order wraps back around to the first screen. .TP PreviousApp \fI(Alt-Shift-n)\fP * Move the focus to the previous base window. See .B NextApp for details about the window traversal order. .TP ToggleInput \fI(Alt-t)\fP * Move the input focus to the previous window that had the input focus. .TP NextWindow \fI(Alt-w)\fP * Move to the next window in the family of windows consisting of a base window and a set of pop-up windows. Windows are ordered clockwise, starting at the top of the screen. .TP PreviousWindow \fI(Alt-Shift-w)\fP * Move to the previous window in the family of windows consisting of a base window and a set of pop-up windows. Windows are ordered clockwise, starting at the top of the screen. .TP TogglePin \fI(Meta-Insert)\fP * Toggle the state of the pin of the window with the input focus. .TP SuspendMouseless \fI(Alt-z)\fP * Temporarily suspend all key grabs associated with Mouseless operation. .TP ResumeMouseless \fI(Alt-Shift-z)\fP * Resume grabs after temporary suspension. .TP QuoteNextKey \fI(Alt-q)\fP * Pass the next key sequence to the application with the focus, ignoring any grabs. .TP Refresh \fI(no binding)\fP *! Repaint the window with the focus. .TP Back \fI(no binding)\fP *! Move the focus window behind other windows. .TP OpenClose \fI(Meta-W)\fP *! Toggle the open/close state of the window with the focus. .TP FullRestore \fI(no binding)\fP *! Toggle the full-sized/normal-sized state of the window with the focus. .TP Quit \fI(Meta-Q)\fP *! Quit the window with the focus. .TP Owner \fI(no binding)\fP *! Flash the owner window of the pop-up window with the focus. .TP WorkspaceMenu \fI(Alt-Shift-m)\fP * Bring up the workspace menu. .TP WindowMenu \fI(Alt-m)\fP * Bring up the window menu on the window with the focus. .TP Move \fI(no binding)\fP *! Move the window with the focus. .TP Resize \fI(no binding)\fP *! Resize the window with the focus. .TP OpenClosePointer \fI(L7)\fP * Toggle the open/close state of the window or icon under the pointer. .TP RaiseLower \fI(L5)\fP * Raise the window under the pointer if obscured by other windows. Otherwise, lower the window if it obscures other windows. .\" ======================================================================== .SH MODIFIER CUSTOMIZATION .B Olwm will alter the operation of certain mouse-based functions based on the state of the modifier keys. The relationship between the alteration and the associated modifier keys is controlled by a set of resources. Resource names are prefixed with the trailing pathname component of .BR argv[0] , followed by .B Modifier, followed by a resource from the list below. For example, the resource specification to bind the Reduce modifier would typically be .nf .sp olwm.Modifier.Reduce .sp .fi The value of each resource is a comma-separated list of modifier keysyms. Each item in this list is followed by its default modifier and a description of what it does. .TP Constrain \fI(Control)\fP Constrain a move or resize operation to be only on a horizontal or vertical direction. .TP Ignore \fI(Lock, NumLock, mod5, Mode_switch)\fP The set of modifiers to be ignored when processing mouse button events. This resource should contain the set of locking modifiers, so that mouse actions are still interpreted properly even while locking modifiers are in effect. The \fImod5\fP modifier is included in this set because XView places function keys into this row in the modifier mapping table for use with quick-move and quick-copy operations. .TP Invert \fI(Shift)\fP When moving windows, temporarily invert the sense of the .B DragWindow resource. When resizing a window, temporarily move the window as long as this modifier is held down. Return to resizing when the modifier is released. .TP Reduce \fI(Meta)\fP When moving windows, reduce the amount of mouse motion by a factor of ten. .TP SetDefault \fI(Control)\fP Sets the default item for a menu. .TP WMGrab \fI(Alt)\fP Using the WMGrab modifier allows access to the mouse button functions anywhere over the window, not just over the window's title bar and border. .\" ======================================================================== .SH ENVIRONMENT .TP DISPLAY Specifies the X11 server to which to connect. .TP LANG, LC_CTYPE, LC_MESSAGE, LC_TIME These variables specify which locale to use when other methods of locale announcement are not available. (See the section on Locale Handling for more details.) .TP OLWMMENU Specifies a file to use for the Workspace Menu. .TP OPENWINHOME Specifies the location of the OpenWindows software. .\" ======================================================================== .SH FILES .TP $HOME/.openwin\-menu\fI.localename\fP .TP $HOME/.openwin\-menu Contains the user-customized Workspace Menu specification. .TP $OPENWINHOME/lib/openwin\-menu.\fIlocale-name\fP .TP $OPENWINHOME/lib/openwin\-menu Contains the default Workspace Menu specification. .TP $HOME/.openwin\-init Stores the command lines obtained during the Save Workspace operation. .TP $OPENWINHOME/lib/app\-defaults/Olwm .TP $OPENWINHOME/lib/locale/\fIlocale-name\fP/app\-defaults/Olwm Specifies system-wide default resource values. .\" ======================================================================== .SH TRADEMARKS .LP OPEN LOOK is a trademark of AT&T. .br The X Window system is a trademark of the Massachusetts Institute of Technology. .br OpenWindows is a trademark of Sun Microsystems, Inc. .\" ======================================================================== .SH REFERENCES .LP Rosenthal, David S.H. .I Inter-Client Communication Conventions Manual for X11. Copyright 1989 by the Massachusetts Institute of Technology. This document is commonly known as the ICCCM. It is an X Consortium Standard that specifies conventions to which all X11 clients must adhere. .LP OPEN LOOK Graphical User Interface Functional Specification. Copyright 1989 by Sun Microsystems, Inc. Addison-Wesley Publishing Company, Inc. ISBN 0\-201\-52365\-5. .LP OPEN LOOK Graphical User Interface International Extensions Functional Specification. Draft 1.1 (May 10, 1990). Copyright 1990 by Unix International. .SH SEE ALSO .LP .BR dsdm (1), .BR olwmslave (1), .BR openwin (1), .BR owplaces (1), .BR setlocale (3C), .BR xinit (1), .BR xnews (1) .\" ======================================================================== .SH NOTES .LP The resource names do not follow any classing structure. There is no general way to specify resources on a per-client basis. .LP There is no way to reconfigure the mouse buttons. .LP The uses of the modifier keys described in the Modifier Customization section interferes with the button bindings for one- and two-button mice. The default value of Modifier.Invert is Shift, which interferes with using shift-button1 for ADJUST. The default value of Modifier.Constrain is Control, which interferes with using control-button1 for MENU (on one-button mice only). One can set the Modifier.Invert and Modifier.Constrain resources to null (or to other modifiers) to avoid these conflicts, allowing full access to ADJUST and MENU on systems with one- and two-button mice. There is still a further conflict, as the default value of Modifier.SetDefault is also Control. Using control-button1 on a one-button system will bring up the menu, but will set the menu's default item. One must release the Control key after the menu is up in order to get normal menu operation. The choice of Alt as the default value for Modifier.WMGrab may conflict with some applications' key bindings. .LP The Exit menu item on the Workspace Menu doesn't really shut down the server. It kills off all clients being managed by the window manager, and then it exits the window manager itself. This works properly if some outside agent such as .BR xinit (1) or .BR xdm (1) is waiting for the window manager or a client to exit. The outside agent will take care of shutting down the server or reinitializing it. If you've started up the server a different way, this option may not work. Instead, the server will be left running with no clients and no window manager running, and you will have to login from elsewhere to kill the server. A common cause of this problem is an \fB.xinitrc\fP script that inadvertently leaves a non-windowed application (such as a daemon) running in the background. If the \fB.xinitrc\fP script ends with the \fBwait\fP shell command, it will never terminate. The fix is to change the script to either wait for a particular process-id, or to run the daemon in a subshell: .nf .sp (daemon &) .sp .fi .LP .B Olwm is fairly simplistic about how it manages its keyboard bindings. For example, if you bind a function to control-F2, .B olwm will grab F2 with the Control modifier and with all combinations of the Lock and NumLock modifiers. If another locking modifier is in effect, .BR olwm 's passive grab will not be activated, and thus the function will not work. .LP .B Olwm cannot manage multiple locales at one time, therefore all clients should be running in the same locale. The "C" locale is the exception. Applications using the "C" locale (such as non-internationalized applications) can be mixed with applications using one other locale. .LP .B Olwm does not handle different sizes of the glyph fonts well. Each locale can define a different size for the default font (for example, the default glyph font size is 12 for the "C" locale and is 14 for the "japanese" locale). .B Olwm does not re-position the window decorations after switching locale, therefore the window decorations may appear to be wrong. To remedy this problem partially, .B olwm will not change the font when locale is switching from non-"C" locale to the "C" locale. .LP There is no input focus feedback for non-rectangular windows. The title string of non-rectangular windows cannot be displayed. Non-rectangular icon windows are not supported. .LP .B Olwm will not dynamically track screen-specific and client-specific resources. Changes to global resources, key binding resources, and modifier resources are applied dynamically. .LP The interaction of the .BR AutoColorFocus , .BR ColorFocusLocked , and .B ColorTracksInputFocus resources and the color locking and unlocking keys is overly complex. .LP Changing the Display Language locale setting or editing the menu specification file will cause .B olwm to unpin any menus that were pinned at the time. .LP Resources that specify time values use inconsistent units. Some resources are in tenths of a second, some are in milliseconds, and some are in microseconds. xview-3.2p1.4/clients/olwm/openwin-menu-programs100644 1750 1750 361 5413747447 17234 0ustar mbmb# # @(#)openwin-menu-programs 1.17 93/01/11 openwin-menu-programs # # OpenWindows default root menu file - Programs submenu # "Programs" TITLE PIN "Command Tool..." exec $OPENWINHOME/bin/cmdtool "Clock..." exec $OPENWINHOME/bin/clock xview-3.2p1.4/clients/cmdtool/ 40755 1750 1750 0 6354605713 13440 5ustar mbmbxview-3.2p1.4/clients/cmdtool/cmdtool.c100644 1750 1750 22575 5413747450 15375 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)cmdtool.c 15.61 93/06/28"; #endif #endif /* * Copyright (c) 1985, 1987 by Sun Microsystems, Inc. */ /* * cmd/shelltool - run a process in a tty subwindow */ #include #ifndef SVR4 #include #else #include #endif SVR4 #include #include #include #include #include #include #include #include #define TEXTDOMAIN "cmdtool" #define MSG(msg) dgettext(TEXTDOMAIN, msg) extern char *getenv(); extern char *dgettext(); static unsigned short tty_image[258] = { #include }; static unsigned short tty_mask_image[258] = { #include }; static unsigned short cmd_image[258] = { #include }; static unsigned short cmd_mask_image[258] = { #include }; static unsigned short console_image[258] = { #include }; static unsigned short console_mask_image[258] = { #include }; print_usage(am_cmdtool, toolname) int am_cmdtool; char *toolname; { char *mode_spec = (am_cmdtool) ? MSG("-P frequency") : MSG("-B boldstyle"); (void)fprintf(stderr, MSG("syntax: %s [-C] [-I initial_cmd] [%s] [program [args]]\n"), toolname, mode_spec); if (!am_cmdtool) { (void)fprintf(stderr, MSG("\ -B set bold style for this instance of %s\n\ where 'boldstyle' is a number from 1 to 8\n"), toolname); } (void)fprintf(stderr, MSG("-C redirect console output to this instance of %s\n"), toolname); (void)fprintf(stderr, MSG("-I 'initial_cmd' is first command 'program' executes\n")); (void)fprintf(stderr, MSG("-L run the .login file when starting the shell subprocess\n")); if (am_cmdtool) { (void)fprintf(stderr, MSG("\ -P checkpoint frequency for this %s, where 'frequency' is number\n\ of edits between checkpoints; a value of 0 means no checkpointing.\n"), toolname); } } main(argc,argv) int argc; char **argv; { int am_cmdtool; Frame base_frame; Tty ttysw; Icon tool_icon; char *tool_name = argv[0]; char *shell_label; char *cmd_label; char *console_label; char frame_label[150]; char icon_label[30]; char *tmp_label1, *tmp_label2; int become_console = 0; int run_login = 0; char *bold_name = 0; char *sh_argv[2]; char *init_cmd = 0; int len; char *filename = (char *)strrchr(argv[0], '/'); int checkpoint = 0; int edit_log_wraps_at = TEXTSW_INFINITY; int tty_pid = 0; char err_msg[50]; char *cmdline[100]; int cmdline_count = 0; char cmdline2[50]; Server_image cmd_pixmap, cmd_mask_pixmap; #ifdef GPROF if (argc > 1 && strcmp(argv[argc-1], "-gprof") == 0) { moncontrol(1); /* Pull the -gprof out of argc/v */ argc--; argv[argc] = (char *)0; } else { moncontrol(0); } #endif #ifdef DEBUG malloc_debug(0); #endif /* This is required to initialize correctly */ xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, XV_USE_LOCALE, TRUE, 0); shell_label = MSG("shelltool"); cmd_label = MSG("cmdtool"); console_label = MSG(" (CONSOLE) - "); if (filename) filename++; else filename = argv[0]; am_cmdtool = (strcmp(filename, "cmdtool") == 0); /* * Send the icon attr before argc, argv to give * commandline argument a chance to override. * A waste of space & time if commandline argument * is present. */ icon_label[0] = 0177; /* del, highly unlikely as cmd arg */ icon_label[1] = '\0'; cmd_pixmap = (Server_image)xv_create(NULL, SERVER_IMAGE, XV_WIDTH, 64, XV_HEIGHT, 64, SERVER_IMAGE_BITS, become_console ? console_image : am_cmdtool ? cmd_image : tty_image, NULL); cmd_mask_pixmap = (Server_image)xv_create(NULL, SERVER_IMAGE, XV_WIDTH, 64, XV_HEIGHT, 64, SERVER_IMAGE_BITS, become_console ? console_mask_image : am_cmdtool ? cmd_mask_image : tty_mask_image, NULL); tool_icon = (Icon)xv_create(NULL, ICON, WIN_RETAINED, TRUE, ICON_IMAGE, cmd_pixmap, ICON_MASK_IMAGE, cmd_mask_pixmap, ICON_LABEL, icon_label, ICON_TRANSPARENT,TRUE, NULL); base_frame = xv_create((Xv_window)NULL, FRAME, FRAME_ICON, tool_icon, HELP_STRING_FILENAME, "manpage_synopsis_help_index", 0); if (base_frame == NULL) { fprintf(stderr, MSG("Cannot create base frame. Process aborted.\n")); exit(1); } /* Get ttysw related args */ sh_argv[0] = NULL; sh_argv[1] = NULL; argv++; argc--; if (am_cmdtool) { checkpoint = defaults_get_integer_check("cmdtool.checkpointFrequency", "Term.CheckpointFrequency", 0, 0, (int)TEXTSW_INFINITY); edit_log_wraps_at = defaults_get_integer_check("cmdtool.maxLogFileSize", "Term.MaxLogFileSize", (int)TEXTSW_INFINITY, 0, (int)TEXTSW_INFINITY); } while (argc > 0 && **argv == '-') { switch (argv[0][1]) { case 'C': become_console = 1; cmdline[cmdline_count++] = "-C"; break; case 'h': case '-': case 'H': case '?': print_usage(am_cmdtool, tool_name); (void)xv_usage(tool_name); exit(1); case 'B': if (argc > 1) { argv++; argc--; bold_name = *argv; cmdline[cmdline_count++] = "-B"; cmdline[cmdline_count++] = bold_name; } break; case 'I': if (argc > 1) { argv++; argc--; init_cmd = *argv; } break; case 'P': checkpoint = atoi(argv[1]); cmdline[cmdline_count++] = "-P"; cmdline[cmdline_count++] = argv[1]; argc--, argv++; break; case 'M': edit_log_wraps_at = atoi(argv[1]); cmdline[cmdline_count++] = "-M"; cmdline[cmdline_count++] = argv[1]; argc--, argv++; break; case 'L': /* jcb 5/10/90 runs .login on startup */ run_login++; cmdline[cmdline_count++] = "-L"; break; default: ; } argv++; argc--; } if ((cmdline_count > 0) || init_cmd) { if (init_cmd) { cmdline[cmdline_count++] = "-I"; cmdline[cmdline_count++] = init_cmd; } xv_set(base_frame, FRAME_WM_COMMAND_ARGC_ARGV, cmdline_count, cmdline, NULL); } if (argc == 0) { argv = sh_argv; if ((argv[0] = getenv("SHELL")) == NULL) argv[0] = "/bin/sh"; } /* if the user wants to run .login format shell, prefix '-' to name */ if( run_login && argv != NULL ) { /* jcb 5/10/90 */ strcpy( cmdline2, "-" ); strcat( cmdline2, argv[0] ); argv[0] = cmdline2; } /* If FRAME_LABEL wasn't set by cmdline argument, set it */ if ((tmp_label1 = (char *)xv_get(base_frame, FRAME_LABEL)) == NULL) { (void)strncpy(frame_label, am_cmdtool ? cmd_label : shell_label, sizeof(frame_label)); if (become_console) { (void)strncat(frame_label, console_label, sizeof(frame_label)); } else { (void)strncat(frame_label, " - ", sizeof(frame_label)); } (void)strncat(frame_label, *argv, sizeof(frame_label)); (void)xv_set(base_frame, FRAME_LABEL, frame_label, 0); } tool_icon = (Icon)xv_get(base_frame, FRAME_ICON); if (((tmp_label2 = (char *) xv_get(tool_icon, ICON_LABEL)) == NULL) || *tmp_label2 == 0177) { if (tmp_label1) { (void)strncpy(icon_label, tmp_label1, sizeof(icon_label)); } else if (become_console) { (void)strncpy(icon_label, MSG("Console"), sizeof(icon_label)); } else { (void)strncpy(icon_label, *argv, sizeof(icon_label)); } (void)xv_set(tool_icon, ICON_LABEL, icon_label, 0); xv_set(tool_icon, ICON_LABEL, icon_label, NULL); } ttysw = xv_create(base_frame, TERMSW, WIN_IS_CLIENT_PANE, TTY_ARGV, argv, TTY_QUIT_ON_CHILD_DEATH, TRUE, TTY_CONSOLE, become_console, 0); if (!(defaults_exists("window.width", "Window.Width") || defaults_exists("window.height", "window.height") || defaults_exists("window.geometry", "Window.Geometry"))) { int cols, rows; cols = defaults_get_integer_check("window.columns", "Window.Columns", 80, 1, 999); rows = defaults_get_integer_check("window.rows", "Window.Rows", 35, 1, 999); xv_set(ttysw, WIN_COLUMNS, cols, WIN_ROWS, rows, 0); window_fit(base_frame); } if (!am_cmdtool) xv_set(ttysw, TERMSW_MODE, TTYSW_MODE_TYPE, 0); if (bold_name) { (void)xv_set(ttysw, TTY_BOLDSTYLE_NAME, bold_name, 0); } if (am_cmdtool) { (void) xv_set(ttysw, TEXTSW_CHECKPOINT_FREQUENCY, checkpoint, TEXTSW_WRAPAROUND_SIZE, edit_log_wraps_at, 0); } tty_pid = (int)xv_get(ttysw, TTY_PID); #ifdef DEBUG (void)fprintf(stderr, "child pid = %d\n", tty_pid); #endif DEBUG if (tty_pid == -1) { strcpy(err_msg, (am_cmdtool) ? MSG("Command") : MSG("Shell")); strcat(err_msg, MSG(" Tool: Out of swap space. Cannot continue.\n")); (void) ttysw_output(ttysw, err_msg, strlen(err_msg)); } else if (init_cmd && ((len = strlen(init_cmd)) > 0)) { if (init_cmd[len-1] != '\n') { init_cmd[len] = '\n'; len++; } (void)ttysw_input(ttysw, init_cmd, len); } xv_main_loop(base_frame); exit(0); } xview-3.2p1.4/clients/cmdtool/Imakefile100644 1750 1750 1276 5413747450 15354 0ustar mbmb#include /**/########################################################################## /**/# @(#)Imakefile 1.16 28 Jun 1993 SMI /**/# Imakefile for cmdtool and shelltool. DEFINES = -DSTANDALONE $(XVCLIENTDEFINES) INCLUDES = -I$(HEADER_DEST) -I$(TOP) $(XVCLIENTINCLUDES) SYS_LIBRARIES = $(SYSV_CLIENT_LIB) DEPLIBS = XViewClientDepLibs LOCAL_LIBRARIES = XViewClientLibs ICONS = HEADERS = ${ICONS} INFOFILES = MANPAGES = cmdtool.man shelltool.man SRCS = cmdtool.c OBJS = cmdtool.o ALLFILES = ${HEADERS} ${INFOFILES} ${MANPAGES} ${ICONS} ${SRCS} ComplexProgramTarget(cmdtool) LinkToFile(install,./cmdtool,shelltool,$(BINDIR)) InstallManPage(shelltool,$(MANDIR)) #include xview-3.2p1.4/clients/cmdtool/cmdtool.man100644 1750 1750 21065 5413747451 15720 0ustar mbmb.\" @(#)cmdtool.1 1.27 90/06/21 SMI; .\" @(#)cmdtool.1 1.25 90/02/26 SMI; .\" Updated 6/8/90 .TH cmdtool 1 "18 March 1992" .SH NAME cmdtool \- run a shell (or other program) in an OpenWindows enhanced terminal window .SH SYNOPSIS .B cmdtool [ .B \-C ] [ .B \-M .I bytes ] [ .B \-P .I count ] [ .B \-B .I boldstyle ] [ .B \-I .I command ] .br [ .I generic-tool-arguments ] [ .I program [ .I program-arguments ] ] .SH AVAILABILITY This command is available with the OpenWindows user environment. For information about installing OpenWindows, refer to the Solaris installation documentation. .SH DESCRIPTION .IX cmdtool "" "\fLcmdtool\fR \(em shell or program with XView text facility" .IX "shell window" "\fLcmdtool\fR" .LP .B cmdtool is the standard .I OpenWindows support facility for shells and other programs. When invoked, .B cmdtool runs a program (usually a shell) in a text-based command window. Characters typed on the keyboard are inserted at the caret. If the program is a shell, that shell accepts and runs commands in the usual manner. .B cmdtool also supports programs that perform cursor motions directly, such as .BR vi (1). .LP The text of the current command line can be edited using normal .BR textedit (1) functions. The command window displays a log of the session, which can be scrolled through using the scrollbar (unless the escape command mode is in effect). This log can be edited, and saved by choosing the .RB ` "Store as New File" ' item in the text facility's pop-up menu. .SH OPTIONS .TP 15 .B \-C Console .BR cmdtool . Redirect system console output to this cmdtool. Display console messages in this .BR cmdtool , which might otherwise appear in unexpected places on the workstation screen. Since a .B cmdtool window can be scrolled, console error messages can be recorded for later examination. .TP .BI \-M " bytes" Set the log to wrap-around after the indicated number of .IR bytes . .TP .BI \-P " count" Checkpoint the log after every set of .I count editing operations. .TP .BI \-B " boldstyle" Set the style for displaying bold text to .IR boldstyle . .I boldstyle can be a string specifying one of the choices for the .B term.boldstyle default, or it may be a numerical value for one of those choices, from 0 to 8, corresponding to the placement of the choice in the list. .TP .BI \-I " command" Pass .I command to the shell. .SM SPACE characters within the command must be escaped. .TP .I generic-tool-arguments .B cmdtool accepts the generic tool arguments listed in .BR xview (7). .HP .I program [ .I program-arguments ] .br If a .I program argument is present, .B cmdtool runs it and passes any remaining arguments to that .IR program . If no .I program is given, .B cmdtool runs the program indicated by the .B \s-1SHELL\s0 environment variable, or .B /bin/sh by default. .SH USAGE .SS .Xdefaults File Options .LP You can specify a number of defaults using the options in the .B .Xdefaults file that effect the behavior of .BR cmdtool . The ones of interest are those that begin with .BR text , term , or .BR keyboard . See .BR xview (7) for more detailed information. .SS cmdtool Windows .LP The window created by .B cmdtool is based on the text facility that is described in the .B textedit man page. The user is given a prompt at which to type commands and pop-up menus from which to select command options. .LP .B cmdtool windows support cursor motions, using an .B /etc/termcap entry called .BR sun-cmd . Command windows automatically set the .B \s-1TERM\s0 environment variable to .BR sun-cmd . So, if you .BR rlogin (1) to a machine that does not have an entry for .B sun-cmd in its .B /etc/termcap file, the error message .RB ` "Type sun-cmd unknown" ' results. To rectify this, type the comman .RB ` "set \s-1TERM\s0=sun-cmd" '. Programs written using the .BR curses (3X) library packages will work in a command window, but programs hard-coded for .BR sun -type terminals may not. When supporting a program that performs cursor motions, the command window automatically takes on the characteristics of a tty window (as with .BR shelltool (1)). When that program terminates or sleeps, the full command window functionality is restored. .LP .B cmdtool supports programs that use .SM CBREAK and .SM NO ECHO terminal modes. This support is normally invisible to the user. However, programs that use .SM RAW mode, such as .BR rlogin (1) and .BR script (1), inhibit command-line editing with the mouse. In this case, however, tty-style .SM ERASE, word-kill and line-kill characters can still be used to edit the current command line. .SS The cmdtool Menu .LP The .B cmdtool window menu is called the .B Term Pane menu and contains the following options and their submenus: .TP 10 .PD 0 .B History Creates a a list of commands used during the cmdtool session. .RS .TP 10 .B Mode .RS .TP 10 .B Editable You can edit the contents of the window. .TP .B Read Only You can only read from the window. .RE .TP .B Store Log as new file Create a new file that contains the contents of the log. .TP .B Clear log Clears all entries from the log. .RE .TP .B Edit Provides a set of editing functions for this window. .RS .TP 10 .B Again Repeats the last action. .TP .B Undo .RS .TP 10 .B Undo Last Edit Undoes the last edit made in .B cmdtool . .TP .B Undo All Edits Undoes all edits made during this session of .B cmdtool . .RE .TP .B Copy Makes a copy of the selected text and places it on the clipboard. .TP .B Paste Pastes a copy of the text stored on the clipboard at the cursor location. .TP .B Cut Deletes the selected text. .RE .sp .TP .B Find Provides a set of find and replace functions. .RS .TP 10 .B Find and Replace Brings up a pop-up menu containing text fields and command buttons that allow you to search forward and backward through the file being edited for specific text strings. Allows you to specify options for the replacement of text. .TP .B Find Selection .RS .TP 10 .B Forward Searches forward to find a selected text string. .TP .B Backward Searches backward to find a selected text string. .RE .TP .B Find Marked Text Brings up a pop-up menu that allows you to find text that is included between specified bracket pairs. Also allows you to insert or remove bracket pairs around selected text. .TP .B Replace |>field<| > Allows you to replace selected text forward and backward throughout the file. .\" .RE .RE .TP 10 .B Extras A user-definable pull-right menu controlled by the .B /usr/lib/.text_extras_menu file. This can be overridden in two ways: .br 1) Change the value of the \fB.Xdefaults\fP parameter .B text.extrasMenuFilename to the correct file path. .br 2) Set the environment variable .B \s-1EXTRASMENU\s0 to the file desired. .br Note that option 1 overrides option 2 if both are used. For more information see the OpenWindows user documentation. .TP .B File Editor .RS .TP 10 .B Enable Allows you to edit files from within .B cmdtool. .TP .B Disable Turns off the ability to edit files from within .B cmdtool. .RE .TP .B Scrolling .RS .TP 10 .B Enables Scrolling Enables scrolling within .B cmdtool. .TP .B Disable Scrolling Turns off the ability to scroll within .B cmdtool. Once scrolling in .B cmdtool is disabled, its functionality is identical to .B shelltool and a more restricted menu appears. Selecting the .B Enable Scrolling option from the restricted menu restores the full menu and functionality of .B cmdtool. .R.RE .SS User Defined Keyboard Remapping The file .B ~/.textswrc specifies filter programs that are assigned to (available) function keys. These filters are applied to the contents of the primary selection. Their output is entered at the caret. .sp .SS Accelerators .LP Text facility accelerators that are especially useful in command windows are described here. See .BR textedit (1) for more information. .TP 18 .SM CTRL-RETURN Position the caret at the bottom, and scroll it into view as determined by .BR Text.LowerContext . .TP .PD 0 \s-1CAPS\s0-lock .TP Toggle between all-upper-case keyboard input, and mixed-case. .PD .SH FILES .PD 0 .TP 20 .BI /tmp/tty.txt. pid log file .TP .B ~/.textswrc .TP .B ~/.ttyswrc .TP .B /usr/lib/.text_extras_menu .TP .B $HOME/.TextExtraMenu .TP .B /etc/termcap .TP .B /usr/bin/sh .PD .SH "SEE ALSO" .BR rlogin (1), .BR script (1), .BR shelltool (1), .BR textedit (1), .BR vi (1), .BR xview (7), .BR curses (3X) .LP OpenWindows user documentation .SH BUGS .LP Typing ahead while .B cmdtool changes between its scrollable and cursor motion modes will sometimes freeze .BR cmdtool . .LP Full terminal emulation is not complete. Some manifestations of this deficiency are: .TP 3 \(bu File completion in the C shell does not work. .TP \(bu Enhanced display of text is not supported. xview-3.2p1.4/clients/cmdtool/shelltool.man100644 1750 1750 20675 5413747451 16272 0ustar mbmb.\" @(#)shelltool.1 1.32 90/06/22 SMI; .\" @(#)shelltool.1 1.30 90/02/26 SMI; .\" Updated 6/8/90 .TH shelltool 1 "11 June 1990" .SH NAME .B shelltool \- run a shell (or other program) in an OpenWindows terminal window .SH SYNOPSIS .B shelltool [ .B \-C ] [ .B \-B .I boldstyle ] [ .B \-I .I command ] [ .I generic-tool-arguments ] [ .I program [ .I arguments ] ] .SH AVAILABILITY This command is available with the OpenWindows user environment, For information about installing OpenWindows, refer to the .I OpenWindows Installation and Start-Up Guide. .SH DESCRIPTION .IX shelltool "" "\fLshelltool\fR \(em shell terminal window" .IX "shell window" "\fLshelltool\fR" .LP .B shelltool is a standard .I OpenWindows facility for shells or other programs that use a standard tty-based interface. .LP When invoked, .B shelltool runs a program, (usually a shell) in an interactive terminal emulator based on a tty subwindow. Keyboard input is passed to that program. In the OpenWindows version of .B shelltool, a restricted pop-up menu is available from the main display area that allows you to enable scrolling. Selecting the .B Enable Scrolling option from the restricted menu gives .B shelltool the full functionality of the .B cmdtool window, included a larger pop-up menu from which to select options. Selecting .B Disable Scrolling from the pop-up submenu will return .B Shelltool to its original state. .SH OPTIONS .TP 15 .B \-C Redirect system console output to this .BR shelltool . .TP .BI \-B " boldstyle" Set the style for displaying bold text to .IR boldstyle . .I boldstyle can be a string specifying one of the choices for the .B term.boldstyle default, see .BR "Defaults Options" , below, or it may be a numerical value for one of those choices, from 0 to 8, corresponding to the placement of the choice in the list. .TP .BI \-I " command" Pass .I command to the shell. .SM SPACE characters within the command must be escaped. .TP .I generic-tool-arguments .B shelltool accepts the generic tool arguments listed in .BR xview (1). .LP .SH USAGE .SS .Xdefaults File Options .LP You can specify a number of defaults using the options in the .B .Xdefaults file that effect the behavior of .BR shelltool . The ones of interest are those that begin with .BR text , term , or .BR keyboard . See .BR .xview (1) for more detailed information. .SS "The Terminal Emulator" .LP The tty subwindow is a terminal emulator. Whenever a tty subwindow is created, the startup file .B ~/.ttyswrc is read for initialization parameters that are specific to the tty subwindow. .SS The .ttyswrc File The command format for this file is: .LP .RS .PD 0 .TP 20 .B # Comment. .TP .BI set " variable" Turn on the specified variable. .TP .BI mapi " key text" When .I key is typed pretend .I text was input. .TP .BI mapo " key text" When .I key is typed pretend .I text was output. .PD .RE .LP The only currently defined variable is .BR pagemode . .I key is one of L1-L15, F1-F15, T1-T15, R1-R15, .SM LEFT , or .SM RIGHT (see note below). .I text may contain escapes such as \eE, \en, ^X, etc. (\s-1ESC\s0, .SM RETURN , and .SM CTRL-X , respectively). See .BR termcap (5) for the format of the string escapes that are recognized. Note: .B mapi and .B mapo may be replaced by another keymapping mechanism in the future. .LP When using the default kernel keyboard tables, the keys L1, .SM LEFT , .SM RIGHT , .SM BREAK , R8, R10, R12, and R14 cannot be mapped in this way; they send special values to the tty subwindow. Also, when using the default kernel keyboard tables, L1-L10 are now used by XView. See .BR input_from_defaults (1) and .BR kbd (4S) for more information on how to change the behavior of the keyboard. .LP It is possible to have terminal-based p special escape sequences. These escape sequences may also be sent by typing a key appropriately mapped using the .B mapo function described above. The following functions pertain to the tool in which the tty subwindow resides, not the tty subwindow itself. .LP .RS .PD 0 .TP 20 .B \eE[1t \- open .TP .B \eE[2t \- close (become iconic) .TP .B \eE[3t \- move, with interactive feedback .TP .B \eE[3;\s-1TOP\s0;\s-1LEFT\s0t \- move, to .B \s-1TOP LEFT\s0 (pixel coordinates) .TP .B \eE[4t \- stretch, with interactive feedback .TP .B \eE[4;\s-1HT\s0;\s-1WIDTH\s0t \- stretch, to .B \s-1HT WIDTH\s0 size (in pixels) .TP .B \eE[5t \- front .TP .B \eE[6t \- back .TP .B \eE[7t \- refresh .TP .B \eE[8;\s-1ROWS\s0;\s-1COLS\s0t \- stretch, to .B \s-1ROWS COLS\s0 size (in characters) .TP .B \eE[11t \- report if open or iconic by sending .B \eE[1t\fP or \fB\eE[2t .TP .B \eE[13t \- report position by sending .B \eE[3;\s-1TOP\s0;\s-1LEFT\s0t .TP .B \eE[14t \- report size in pixels by sending .B \eE[4;\s-1HT\s0;\s-1WIDTH\s0t .TP .B \eE[18t \- report size in characters by sending .B \eE[8;\s-1ROWS\s0;\s-1COLS\s0t .TP .B \eE[20t \- report icon label by sending .B \eE]Llabel\eE\e .TP .B \eE[21t \- report tool header by sending .B \eE]llabel\eE\e .TP .B \eE]ltext\eE\e \- set tool header to .RB text .TP .B \eE]Ifile\eE\e \- set icon to the icon contained in .RB file ; .RB file must be in .I iconedit output format .TP .B \eE]Llabel\eE\e \- set icon label to .RB label .TP .B \eE[>\s-1OPT\s0;\|.\|.\|.h \- turn SB OPT on .RB ( \s-1OPT\s0 = 1 => pagemode), for example, .B \eE[>1;3;4h .TP .B \eE[>\s-1OPT\s0;\|.\|.\|.k \- report .BR \s-1OPT\s0 ; sends .B \eE[>\s-1OPT\s0l or .B \eE[>\s-1OPT\s0h for each .B \s-1OPT\s0 .TP .B \eE[>\s-1OPT\s0;\|.\|.\|.l \- turn .B \s-1OPT\s0 off .RB ( \s-1OPT\s0 = 1 => pagemode), for .B \eE[>1;3; .PD .RE .LP See .B \s-1EXAMPLES\s0 for an example of using this facility. .LP .B shelltool Windows .LP The window created by .B shelltool is based on the text facility that is described in the .B textedit man page. The user is given a prompt at which to type commands and pop-up menus from which to select command options. .LP .B shelltool windows support cursor motions, using an .B /etc/termcap entry called .BR sun-cmd . Command windows automatically set the .B \s-1TERM\s0 environment variable to .BR sun-cmd . So, if you .BR rlogin (1C) to a machine that does not have an entry for .B sun-cmd in its .B /etc/termcap file, the error message .RB ` "Type sun-cmd unknown" ' results. To rectify this, type the command .RB ` "set \s-1TERM\s0=sun" '. Programs written using the .BR curses (3X) or .BR curses (3V) library packages will work in a command window, but programs hard-coded for .BR sun -type terminals may not. When supporting a program that performs cursor motions, the command window automatically takes on the characteristics of a tty window (as with .BR shelltool (1)). When that program terminates or sleeps, the full command window functionality is restored. .LP .B cmdtool supports programs that use .SM CBREAK and .SM NO ECHO terminal modes. This support is normally invisible to the user. However, programs that use .SM RAW mode, such as .BR rlogin (1C) and .BR script (1), inhibit command-line editing with the mouse. In this case, however, tty-style .SM ERASE, word-kill and line-kill characters can still be used to edit the current command line. .SS The shelltool Menu .LP The .B shelltool window menu is called the .B Term Pane menu and contains the following options and their submenus: .TP 10 .B Enable Page Mode Enables page mode within .B shelltool . .TP .B Copy Places the highlighted text on the clipboard. .TP .B PastePuts the contents of pointed to by the cusor. .TP .B Scrolling Enables scrolling within .B shelltool . .SH EXAMPLES .LP The following aliases can be put into your .B ~/.cshrc file: .RS .sp .5 .nf .ft B # dynamically set the name stripe of the tool: alias header 'echo \-n "\eE]l\e!*\eE\e"' # dynamically set the label on the icon: alias iheader 'echo \-n "\eE]L\e!*\eE\e"' # dynamically set the image on the icon: alias icon 'echo \-n "\eE]I\e!*\eE\e"' .fi .RE .SH FILES .PD 0 .TP 20 .B ~/.ttyswrc .TP .B /usr/lib/ttyswrc .TP .B /usr/bin/xview/shelltool .TP .B /usr/demo/* .PD .SH "SEE ALSO" .LP .BR cmdtool (1) , .BR more (1) , .BR xview (1) , .BR rlogin (1C) , .BR kbd (4S) , .BR termcap (5) .LP .I "OpenWindows User's Guide" .SH BUGS If more than 256 characters are input to a terminal emulator subwindow without an intervening .SM NEWLINE , the terminal emulator may hang. If this occurs, an alert will come up with a message saying .RB ` "Too many keystrokes in input buffer" '. Choosing the .B "Flush Input Buffer" menu item may correct the problem. This is a bug for a terminal emulator subwindow running on top of or .BR rlogin (1C) to a machine with pre-4.0 release kernel. xview-3.2p1.4/clients/olwmslave/ 40755 1750 1750 0 6354605713 14010 5ustar mbmbxview-3.2p1.4/clients/olwmslave/README100644 1750 1750 263 5413747452 14750 0ustar mbmbSource caveats: 1. mem.c mem.h are straight from olwm. 2. helpcmd.h helpsend.c are used by olwm too. 3. cmdstream.c cmdstream.h are used by olwm too. props* not used yet. xview-3.2p1.4/clients/olwmslave/cmdstream.c100644 1750 1750 14040 5413747452 16251 0ustar mbmb#ifndef line #ifdef sccs static char sccsid[] = "@(#) cmdstream.c 26.1 90/10/01 Sun Micro"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ /* ---------------------------------------------------------------------- * cmdstream.c * ---------------------------------------------------------------------*/ #include #ifdef SYSV #include #else #include #endif #include "cmdstream.h" #include "mem.h" extern char *strtok(); /* ---------------------------------------------------------------------- * Local Data Structures * ---------------------------------------------------------------------*/ typedef struct _CList { Command *this; struct _CList *next; } CList; typedef struct _CmdInfo { FILE *input; FILE *output; CList *cmdListHead; } CmdInfo; /* ---------------------------------------------------------------------- * Data Definitions * ---------------------------------------------------------------------*/ static CmdInfo cmdInfo = { (FILE *)0, (FILE *)0, (CList *)0 }; /* ---------------------------------------------------------------------- * Local Forward Declarations * ---------------------------------------------------------------------*/ Command *MatchCommand(); CmdAttr *MatchAttr(); int EncodeAttrValue(); int DecodeAttrValue(); /* ---------------------------------------------------------------------- * SetCmdStream * ---------------------------------------------------------------------*/ void SetCmdStream(instream,outstream) FILE *instream; FILE *outstream; { if (instream == NULL) fclose(cmdInfo.input); cmdInfo.input = instream; if (outstream == NULL) fclose(cmdInfo.output); cmdInfo.output = outstream; } /* ---------------------------------------------------------------------- * SendCmd * ---------------------------------------------------------------------*/ int SendCmd(cmd) Command *cmd; { CmdAttr *attr; int i; if (cmdInfo.output == (FILE *)NULL) return FALSE; fprintf(cmdInfo.output,"%s\n",cmd->keyword); for (i=0; iattrLen; i++) { attr = &(cmd->attrList[i]); fprintf(cmdInfo.output,"\t%s=",attr->name); EncodeAttrValue(attr,cmdInfo.output); fputs("\n",cmdInfo.output); } fputs(";\n",cmdInfo.output); fflush(cmdInfo.output); return TRUE; } /* ---------------------------------------------------------------------- * RegisterCmd * ---------------------------------------------------------------------*/ void RegisterCmd(cmd) Command *cmd; { CList *item; item = MemNew(CList); item->this = cmd; item->next = cmdInfo.cmdListHead; cmdInfo.cmdListHead = item; } /* ---------------------------------------------------------------------- * GetCmd * ---------------------------------------------------------------------*/ int GetCmd() { #define CMDBUFLEN 1024 char cmdBuf[CMDBUFLEN]; while (fgets(cmdBuf,CMDBUFLEN,cmdInfo.input) != (char *)NULL) { if (ParseCmd(cmdBuf) == FALSE) return FALSE; } return TRUE; } /* ---------------------------------------------------------------------- * ParseCmd * ---------------------------------------------------------------------*/ int ParseCmd(line) char *line; { char *token; char *sep = " \t\n"; static Command *cmd = (Command *)NULL; static CmdAttr *attr = (CmdAttr *)NULL; for (token=strtok(line,sep); token; token=strtok(0,sep)) { if (cmd == (Command *)NULL) { if ((cmd = MatchCommand(token)) == (Command *)NULL) return FALSE; } else if (token[0] == ';') { if (cmd->callback) (*cmd->callback)(cmd); cmd = (Command *)NULL; attr = (CmdAttr *)NULL; } else { if ((attr = MatchAttr(cmd,token)) == (CmdAttr *)NULL) { cmd = (Command *)NULL; return FALSE; } } } return FALSE; } /* ---------------------------------------------------------------------- * MatchKeyword * ---------------------------------------------------------------------*/ static Command * MatchCommand(keyword) char *keyword; { CList *item; for (item=cmdInfo.cmdListHead; item; item=item->next) { if (!strcmp(keyword,item->this->keyword)) { return item->this; } } return (Command *)NULL; } /* ---------------------------------------------------------------------- * MatchAttr * ---------------------------------------------------------------------*/ static CmdAttr * MatchAttr(cmd,name) Command *cmd; char *name; { int i,equalindex; char *equalpos; char *strchr(); equalpos = strchr(name,'='); if (!equalpos) return (CmdAttr *)NULL; equalindex = equalpos - name; for (i=0; iattrLen; i++) { if (!strncmp(name,cmd->attrList[i].name,equalindex)) { if (!DecodeAttrValue(&cmd->attrList[i],++equalpos)) return (CmdAttr *)NULL; return &(cmd->attrList[i]); } } return (CmdAttr *)NULL; } /* ---------------------------------------------------------------------- * EncodeAttrValue * ---------------------------------------------------------------------*/ static int EncodeAttrValue(attr,stream) CmdAttr *attr; FILE *stream; { switch (attr->type) { case INT: fprintf(stream,"%d",attr->value.ival); break; case FLOAT: fprintf(stream,"%f",attr->value.fval); break; case STRING: fprintf(stream,"%s",attr->value.sval); break; } return TRUE; } /* ---------------------------------------------------------------------- * DecodeAttrValue * ---------------------------------------------------------------------*/ static int DecodeAttrValue(attr,valuestr) CmdAttr *attr; char *valuestr; { char *ptr; int status = TRUE; switch (attr->type) { case INT: attr->value.ival = (int)strtol(valuestr,&ptr,10); if (ptr == valuestr) status = FALSE; break; case FLOAT: attr->value.fval = (float)strtod(valuestr,&ptr); if (ptr == valuestr) status = FALSE; break; case STRING: attr->value.sval = MemNewString(valuestr); if (attr->value.sval == (char *)NULL) status = FALSE; break; default: status = FALSE; break; } return status; } xview-3.2p1.4/clients/olwmslave/cmdstream.h100644 1750 1750 2662 5413747452 16245 0ustar mbmb/* @(#) cmdstream.h 26.1 90/09/30 Sun Microsystems */ /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ /* ---------------------------------------------------------------------- * cmdstream.h * ---------------------------------------------------------------------*/ #ifndef CMDSTREAM_H #define CMDSTREAM_H #ifndef TRUE #define TRUE 1 #endif #ifndef FALSE #define FALSE 0 #endif /* ---------------------------------------------------------------------- * Command Data Structures * ---------------------------------------------------------------------*/ typedef enum _AttrType { INT, FLOAT, STRING } AttrType; typedef union _AttrValue { int ival; float fval; char *sval; } AttrValue; typedef struct _CmdAttr { char *name; AttrType type; AttrValue value; } CmdAttr; typedef struct _Command { char *keyword; void (*callback)(); int attrLen; CmdAttr *attrList; } Command; /* ---------------------------------------------------------------------- * Function Definitions * ---------------------------------------------------------------------*/ extern void SetCmdStream(/* FILE *instream, FILE * outstream */); extern int SendCmd(/* Command* cmd */); extern void RegisterCmd(/* Command *cmd */); extern int GetCmd(); extern int ParseCmd(/* char *line */); #endif /* CMDSTREAM_H */ xview-3.2p1.4/clients/olwmslave/help_file.c100644 1750 1750 10417 5413747453 16226 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)help_file.c 1.17 90/12/04"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #include #include #include #include #include #ifdef OLWMSLAVE #ifdef OW_I18N_L3 #include #endif #else #include #endif #define DEFAULT_HELP_DIRECTORY "/usr/lib/help" #define MAX_MORE_HELP_CMD 128 static FILE *help_file; static char help_buffer[128]; static int help_search_file(key, more_help) /* returns XV_OK or XV_ERROR */ char *key; /* Spot Help key */ char **more_help; /* OUTPUT parameter: More Help system cmd */ { char *entry; char *more_help_cmd; static char more_help_cmd_buffer[MAX_MORE_HELP_CMD]; fseek(help_file, 0, 0); while (entry = fgets(help_buffer, sizeof(help_buffer), help_file)) if (*entry++ == ':') { entry = strtok(entry, ":\n"); /* parse Spot Help key */ if (entry && !strcmp(entry, key)) { /* Found requested Spot Help key */ more_help_cmd = strtok(NULL, "\n"); /* parse More Help system * command */ if (more_help_cmd) { strncpy(more_help_cmd_buffer, more_help_cmd, MAX_MORE_HELP_CMD); *more_help = &more_help_cmd_buffer[0]; } else *more_help = NULL; return XV_OK; } } return XV_ERROR; } /* * FIX ME help_find_file is called frlom attr.c (attr_names) so we * can't add an extra parameter to help_find_file for the XV_LC_DISPLAY_LANG * so we'll use LC_MESSAGES for now */ Xv_private FILE * help_find_file(filename) char *filename; { FILE *file_ptr; char *helpdir = NULL; char *helppath; char *helppath_copy; char *xv_lc_display_lang; extern int _xv_use_locale; helppath = (char *) getenv("HELPPATH"); if (!helppath) helppath = DEFAULT_HELP_DIRECTORY; helppath_copy = (char *) xv_malloc(strlen(helppath) + 1); strcpy(helppath_copy, helppath); /* * Need to fix this to get the XV_LC_DISPLAY_LANG from server */ if (_xv_use_locale) xv_lc_display_lang = setlocale(LC_MESSAGES, NULL); helpdir = strtok(helppath_copy, ":"); do { /* * If XV_USE_LOCALE set to TRUE, look for locale specific * help file first. */ if (_xv_use_locale) { sprintf(help_buffer, "%s/%s/help/%s", helpdir, xv_lc_display_lang, filename); if ((file_ptr = fopen(help_buffer, "r")) != NULL) break; } /* * If locale specific help file not found or required, fallback * on helpdir/filename. */ sprintf(help_buffer, "%s/%s", helpdir, filename); if ((file_ptr = fopen(help_buffer, "r")) != NULL) { break; } } while (helpdir=strtok(NULL, ":")); free(helppath_copy); return file_ptr; } Pkg_private int help_get_arg(data, more_help) /* returns XV_OK or XV_ERROR */ char *data; /* "file:key" */ char **more_help; /* OUTPUT parameter */ { char *client; char data_copy[64]; char filename[64]; char *key; static char last_client[64]; if (data == NULL) return XV_ERROR; /* No key supplied */ strncpy(data_copy, data, sizeof(data_copy)); data_copy[sizeof(data_copy) - 1] = '\0'; if (!(client = strtok(data_copy, ":")) || !(key = strtok(NULL, ""))) return XV_ERROR; /* No file specified in key */ if (strcmp(last_client, client)) { /* Last .info filename != new .info filename */ if (help_file) { fclose(help_file); last_client[0] = '\0'; } sprintf(filename, "%s.info", client); help_file = help_find_file(filename); if (help_file) { strcpy(last_client, client); return help_search_file(key, more_help); } else return XV_ERROR; /* Specified .info file not found */ } return (help_search_file(key, more_help)); } Pkg_private char * help_get_text() { #ifdef OW_I18N_L3 char *ptr; while ((ptr = fgets(help_buffer, sizeof(help_buffer), help_file)) && (*ptr == '#')) ; return (ptr && *ptr != ':' ? ptr : NULL); #else char *ptr = fgets(help_buffer, sizeof(help_buffer), help_file); return (ptr && *ptr != ':' && *ptr != '#' ? ptr : NULL); #endif } xview-3.2p1.4/clients/olwmslave/helpcmd.h100644 1750 1750 777 5413747453 15670 0ustar mbmb/* ---------------------------------------------------------------------- * helpcmd.h * ---------------------------------------------------------------------*/ #include "cmdstream.h" #define HW_SCREEN_NO 0 #define HW_MOUSE_X 1 #define HW_MOUSE_Y 2 #define HW_HELPKEY 3 #define HW_ATTR_COUNT 4 static CmdAttr helpCmdAttr[] = { { "SCREEN_NO", INT }, { "MOUSE_X", INT }, { "MOUSE_Y", INT }, { "HELPKEY", STRING } }; static Command helpCommand = { "SHOWHELP", 0, HW_ATTR_COUNT, helpCmdAttr }; xview-3.2p1.4/clients/olwmslave/helprecv.c100644 1750 1750 2301 5413747453 16060 0ustar mbmb/* * (c) Copyright 1989, 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ /* ---------------------------------------------------------------------- * helpcmdrecv.c * ---------------------------------------------------------------------*/ #ifndef line #ifdef sccs static char sccsid[] = "@(#) helprecv.c 1.3 93/06/28 Sun Micro"; #endif #endif #include "helpcmd.h" extern int ShowHelpWindow(); void ReceiveHelpCmd(); /* ---------------------------------------------------------------------- * RegisterHelpWindow * ---------------------------------------------------------------------*/ void RegisterHelpCmd() { helpCommand.callback = ReceiveHelpCmd; RegisterCmd(&helpCommand); } /* ---------------------------------------------------------------------- * ReceiveHelpCmd * ---------------------------------------------------------------------*/ static void ReceiveHelpCmd(cmd) Command *cmd; { CmdAttr *attr; attr = cmd->attrList; ShowHelpWindow( attr[HW_SCREEN_NO].value.ival, attr[HW_MOUSE_X].value.ival, attr[HW_MOUSE_Y].value.ival, attr[HW_HELPKEY].value.sval ); } xview-3.2p1.4/clients/olwmslave/helpwin.c100644 1750 1750 37016 6331115755 15743 0ustar mbmb/* * (c) Copyright 1989, 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ /* ---------------------------------------------------------------------- * helpwin.c * ---------------------------------------------------------------------*/ #ident "@(#)helpwin.c 1.13 93/06/28 helpwin.c SMI" #include #include #include #include #include #include #include #include #include "olwmslave.h" #include "mem.h" #ifdef OW_I18N_L4 #include #include #include #include "i18n.h" #endif /* ---------------------------------------------------------------------- * Data Structure Definitions * ---------------------------------------------------------------------*/ /* * HelpWindow * * There is one HelpWindow structure for each screen that a * display server handles. It consists of a Help Frame that * contains a Text window for the help text and a Panel Message * item with an image for the magnifying glass. This image * is rendered into using an mag-glass image and it's mask along * with the actual image under the pointer to create the * complete magnifiying glass image. A handle on the scrollbar * in the text window is needed since the scrollbar is visible * when the help/info text exceeds the length of the scrollbar. */ typedef struct _HelpWindow { int hwScreenNo; Frame hwFrame; Panel hwMGlassPanel; Server_image hwMGlassRender; Panel_item hwMGlassItem; Textsw hwText; Scrollbar hwTextScroll; Panel hwMorePanel; Panel_item hwMoreHelp; char *hwMoreHelpCmd; Server_image hwMGlassImage; Server_image hwMGlassMask; GC hwFillGC; GC hwCopyGC; GC hwImageGC; } HelpWindow; /* ---------------------------------------------------------------------- * Local Data * ---------------------------------------------------------------------*/ static HelpWindow *helpWinList ; /* dynamic array of HelpWindows one for each screen */ /* convience macro to access list as array */ #define HelpWin(nscr) (&helpWinList[(nscr)]) #define HS_HELP 0 #define HS_MORE 1 #define HS_OK 2 #define HS_NOHELPERR 3 #define HS_LENGTH 4 #ifdef OW_I18N_L4 static wchar_t *helpStrings[HS_LENGTH]; #else static char *helpStrings[HS_LENGTH]; #endif /* ---------------------------------------------------------------------- * The following is taken from XView: libxvol/help/help.c * This is to ensure window size consistency. * ---------------------------------------------------------------------*/ /* * There is a maximum of 10 lines of text of 50 chars each visible in the * help text subwindow. If the help text exceeds 10 lines, a scrollbar is * shown. */ #define HELPTEXTCOLS 50 #define HELPTEXTLINES 10 #define HELP_CANVAS_MARGIN 10 #define HELP_IMAGE_X 35 #define HELP_IMAGE_Y 5 #define HELP_IMAGE_WIDTH 80 #define HELP_IMAGE_HEIGHT 73 #define MORE_BUTTON_OFFSET 30 #define MAX_HELP_STRING_LENGTH 128 #define MAX_FILE_KEY_LENGTH 64 #define HELPWIN_KEY 1 /* ---------------------------------------------------------------------- * Magnify glass image and mask * ----------------------------------------------------------------------*/ static unsigned short hwmglass_data[] = { #include }; mpr_static(hwmglass_pr, 199, 133, 1, hwmglass_data); static unsigned short hwmglass_mask_data[] = { #include }; mpr_static(hwmglass_mask_pr, 199, 133, 1, hwmglass_mask_data); /* ---------------------------------------------------------------------- * External Functions * ---------------------------------------------------------------------*/ int help_get_arg(); /* from help_file.c */ char *help_get_text(); /* ---------------------------------------------------------------------- * Local Forward Functions * ---------------------------------------------------------------------*/ int ShowHelpWindow(); void InitHelpWindow(); Bool CreateHelpWindow(); Notify_value DestroyHelpWindow(); void ResetHelpWindow(); Bool TextHelpWindow(); Bool ImageHelpWindow(); void MoreHelp(); void ErrorNotice(); /* ---------------------------------------------------------------------- * ShowHelpWindow * ---------------------------------------------------------------------*/ int ShowHelpWindow(nscreen,mousex,mousey,helpkey) int nscreen; int mousex,mousey; char *helpkey; { HelpWindow *hw; if (!ScreenUsed(nscreen)) return False; if (!helpWinList) InitHelpWindow(); hw = HelpWin(nscreen); if (!hw->hwFrame) { if (!CreateHelpWindow(hw,helpkey)) goto Error; } else { ResetHelpWindow(hw); } if (!TextHelpWindow(hw,helpkey)) { goto Error; } if (!ImageHelpWindow(hw,mousex,mousey)) { goto Error; } xv_set(hw->hwFrame, XV_SHOW, TRUE, WIN_FRONT, NULL); return True; Error: xv_set(hw->hwFrame,XV_SHOW,FALSE,NULL); ErrorNotice(nscreen,helpStrings[HS_NOHELPERR],helpkey); return False; } /* ---------------------------------------------------------------------- * InitHelpWindow - Inits helpWinList array. * ----------------------------------------------------------------------*/ static void InitHelpWindow() { HelpWindow *hw; int i; helpWinList = (HelpWindow *)MemAlloc( sizeof(HelpWindow)*NumScreens()); for (i=0; ihwScreenNo = i; hw->hwFrame = (Frame)NULL; } #ifdef OW_I18N_L4 helpStrings[HS_HELP] = mbstowcsdup(LOCALIZE("Help")); helpStrings[HS_MORE] = mbstowcsdup(LOCALIZE("More")); helpStrings[HS_OK] = mbstowcsdup(LOCALIZE("OK")); helpStrings[HS_NOHELPERR] = mbstowcsdup(LOCALIZE("No Help Available For ")); #else helpStrings[HS_HELP] = LOCALIZE("Help"); helpStrings[HS_MORE] = LOCALIZE("More"); helpStrings[HS_OK] = LOCALIZE("OK"); helpStrings[HS_NOHELPERR] = LOCALIZE("No Help Available For "); #endif } /* ---------------------------------------------------------------------- * CreateHelpWindow - Creates the help window frame and etc. * ----------------------------------------------------------------------*/ static Bool CreateHelpWindow(hw,helpkey) HelpWindow *hw; char *helpkey; { Cms controlcms; XGCValues gcv; hw->hwFrame = (Frame)xv_create(XVRoot(hw->hwScreenNo),FRAME_HELP, XV_X, 0, XV_Y, 0, XV_KEY_DATA, HELPWIN_KEY, hw, XV_SHOW, FALSE, #ifdef OW_I18N_L4 WIN_USE_IM, FALSE, #endif NULL); notify_interpose_destroy_func(hw->hwFrame,DestroyHelpWindow); hw->hwText = (Textsw)xv_create(hw->hwFrame,TEXTSW, XV_X, hwmglass_pr.pr_width, XV_Y, 0, WIN_COLUMNS, HELPTEXTCOLS, WIN_ROWS, HELPTEXTLINES, TEXTSW_IGNORE_LIMIT, TEXTSW_INFINITY, TEXTSW_LINE_BREAK_ACTION, TEXTSW_WRAP_AT_WORD, TEXTSW_LOWER_CONTEXT, -1, /* disable scroll on insert */ TEXTSW_DISABLE_LOAD, TRUE, TEXTSW_READ_ONLY, TRUE, NULL); hw->hwTextScroll = (Scrollbar)xv_get(hw->hwText, OPENWIN_VERTICAL_SCROLLBAR, xv_get(hw->hwText,OPENWIN_NTH_VIEW,0)); xv_set(hw->hwTextScroll,SCROLLBAR_SPLITTABLE,FALSE, NULL); hw->hwMGlassPanel = (Panel)xv_create(hw->hwFrame,PANEL, XV_X, 0, XV_Y, 0, XV_WIDTH, hwmglass_pr.pr_width, XV_HEIGHT, xv_get(hw->hwText,XV_HEIGHT), NULL); hw->hwMGlassItem = (Panel_item)xv_create(hw->hwMGlassPanel,PANEL_MESSAGE, XV_HELP_DATA, "xview:helpMagnifyingGlass", NULL); hw->hwMGlassRender = (Server_image)NULL; hw->hwMorePanel = (Panel)xv_create(hw->hwFrame,PANEL, XV_X, 0, WIN_BELOW, hw->hwText, XV_WIDTH, hwmglass_pr.pr_width + xv_get(hw->hwText,XV_WIDTH), NULL); hw->hwMoreHelp = (Panel)xv_create(hw->hwMorePanel,PANEL_BUTTON, XV_X, hwmglass_pr.pr_width+MORE_BUTTON_OFFSET, #ifdef OW_I18N_L4 PANEL_LABEL_STRING_WCS, helpStrings[HS_MORE], #else PANEL_LABEL_STRING, helpStrings[HS_MORE], #endif PANEL_NOTIFY_PROC, MoreHelp, XV_KEY_DATA, HELPWIN_KEY, hw, NULL); window_fit_height(hw->hwMorePanel); window_fit(hw->hwFrame); hw->hwMGlassImage = (Server_image)xv_create(XVScreen(hw->hwScreenNo),SERVER_IMAGE, XV_WIDTH, hwmglass_pr.pr_width, XV_HEIGHT, hwmglass_pr.pr_height, SERVER_IMAGE_DEPTH, hwmglass_pr.pr_depth, SERVER_IMAGE_BITS, hwmglass_data, NULL); hw->hwMGlassMask = (Server_image)xv_create(XVScreen(hw->hwScreenNo),SERVER_IMAGE, XV_WIDTH, hwmglass_mask_pr.pr_width, XV_HEIGHT, hwmglass_mask_pr.pr_height, SERVER_IMAGE_DEPTH, hwmglass_mask_pr.pr_depth, SERVER_IMAGE_BITS, hwmglass_mask_data, NULL); controlcms = (Cms)xv_get(hw->hwMGlassPanel,WIN_CMS); gcv.function = GXclear; gcv.background = (unsigned long)xv_get(controlcms,CMS_FOREGROUND_PIXEL); gcv.foreground = (unsigned long)xv_get(controlcms,CMS_BACKGROUND_PIXEL); hw->hwFillGC = XCreateGC(display,RootWin(hw->hwScreenNo), GCFunction|GCForeground|GCBackground,&gcv); gcv.foreground = (unsigned long)xv_get(controlcms,CMS_FOREGROUND_PIXEL); gcv.background = (unsigned long)xv_get(controlcms,CMS_BACKGROUND_PIXEL); hw->hwCopyGC = XCreateGC(display,RootWin(hw->hwScreenNo), GCForeground|GCBackground,&gcv); gcv.foreground = (unsigned long)xv_get(controlcms,CMS_FOREGROUND_PIXEL); gcv.background = (unsigned long)xv_get(controlcms,CMS_BACKGROUND_PIXEL); gcv.fill_style = FillOpaqueStippled; gcv.stipple = (XID)xv_get(hw->hwMGlassImage,XV_XID); gcv.clip_mask = (XID)xv_get(hw->hwMGlassMask,XV_XID); hw->hwImageGC = XCreateGC(display,RootWin(hw->hwScreenNo), GCForeground|GCBackground|GCFillStyle|GCStipple|GCClipMask,&gcv); return True; } /* ---------------------------------------------------------------------- * ResetHelpWindow * ---------------------------------------------------------------------*/ static void ResetHelpWindow(hw) HelpWindow *hw; { textsw_reset(hw->hwText,0,0); } /* ---------------------------------------------------------------------- * DestroyHelpWindow - Destroy the help window * ---------------------------------------------------------------------*/ static Notify_value DestroyHelpWindow(client,status) Notify_client client; Destroy_status status; { HelpWindow *hw; if (status != DESTROY_CHECKING) { hw = (HelpWindow *)xv_get(client,XV_KEY_DATA,HELPWIN_KEY); if (hw) { xv_destroy(hw->hwMGlassRender); hw->hwMGlassRender = (Server_image)NULL; xv_destroy(hw->hwMGlassImage); xv_destroy(hw->hwMGlassMask); XFreeGC(display,hw->hwFillGC); XFreeGC(display,hw->hwCopyGC); XFreeGC(display,hw->hwImageGC); hw->hwFrame = (Frame)NULL; } } return (notify_next_destroy_func(client,status)); } /* ---------------------------------------------------------------------- * TextHelpWindow - Inserts the help text. * ---------------------------------------------------------------------*/ static Bool TextHelpWindow(hw,helpkey) HelpWindow *hw; char *helpkey; { char *moreHelpCmd; #ifdef OW_I18N_L4 wchar_t *helpText; #else char *helpText; #endif int i; char flabel[128]; #ifdef OW_I18N_L4 wchar_t flabelwc[128]; #endif int len; /* * Update the frame label with the helpkey */ len = (int)strchr(helpkey,':') - (int)helpkey; if (len > 80) len = 80; strncpy(flabel,helpkey,len); flabel[len++] = ':'; flabel[len++] = ' '; flabel[len] = 0; #ifdef OW_I18N_L4 mbstowcs(flabelwc, flabel, len + 1); wscat(flabelwc,helpStrings[HS_HELP]); #else strcat(flabel,helpStrings[HS_HELP]); #endif xv_set(hw->hwFrame, #ifdef OW_I18N_L4 XV_LABEL_WCS, flabelwc, #else FRAME_LABEL, flabel, #endif NULL); /* * Find the appropriate help file */ if (help_get_arg(helpkey,&moreHelpCmd) != XV_OK) { return False; } /* * If there is a MoreHelp command string save it * and set the visibility of the More help button to match */ if (hw->hwMoreHelpCmd) MemFree(hw->hwMoreHelpCmd); if (moreHelpCmd) { hw->hwMoreHelpCmd = MemNewString(moreHelpCmd); xv_set(hw->hwMoreHelp,XV_SHOW,TRUE,0); } else { hw->hwMoreHelpCmd = (char *)NULL; xv_set(hw->hwMoreHelp,XV_SHOW,FALSE,0); } /* * Insert the help text into the text window */ #ifdef OW_I18N_L4 helpText = mbstowcsdup(help_get_text()); #else helpText = help_get_text(); #endif for (i=0; helpText; i++) { #ifdef OW_I18N_L4 (void)textsw_insert_wcs(hw->hwText,helpText,wslen(helpText)); helpText = mbstowcsdup(help_get_text()); #else (void)textsw_insert(hw->hwText,helpText,strlen(helpText)); helpText = help_get_text(); #endif } /* * Scroll back to the top and only show the scrollbar * if there are more than HELPTEXTLINES number of lines. */ xv_set(hw->hwText, TEXTSW_FIRST, 0, NULL); xv_set(hw->hwTextScroll, XV_SHOW, i>HELPTEXTLINES, NULL); return True; } /* ---------------------------------------------------------------------- * ImageHelpWindow * ---------------------------------------------------------------------*/ static Bool ImageHelpWindow(hw,mousex,mousey) HelpWindow *hw; { XImage *scrimage; XID renderxid; int srcx,srcy; ConstrainMousePos(hw->hwScreenNo,mousex,mousey,&srcx,&srcy); scrimage = XGetImage(display,RootWin(hw->hwScreenNo),srcx,srcy, HELP_IMAGE_WIDTH,HELP_IMAGE_HEIGHT,AllPlanes,ZPixmap); if (!hw->hwMGlassRender) { hw->hwMGlassRender = (Server_image)xv_create( XVScreen(hw->hwScreenNo),SERVER_IMAGE, XV_WIDTH, hwmglass_pr.pr_width, XV_HEIGHT, hwmglass_pr.pr_height, SERVER_IMAGE_DEPTH, scrimage->depth, NULL); } renderxid = (XID)xv_get(hw->hwMGlassRender,XV_XID); XPutImage(display,renderxid,hw->hwCopyGC,scrimage,0,0, HELP_IMAGE_X,HELP_IMAGE_Y,HELP_IMAGE_WIDTH,HELP_IMAGE_HEIGHT); XDestroyImage(scrimage); XFillRectangle(display,renderxid,hw->hwImageGC, 0,0,hwmglass_pr.pr_width,hwmglass_pr.pr_height); xv_set(hw->hwMGlassItem, PANEL_LABEL_IMAGE, hw->hwMGlassRender, NULL); return True; } /* ---------------------------------------------------------------------- * ConstrainMousePos * ---------------------------------------------------------------------*/ static int ConstrainMousePos(nscreen,mousex,mousey,imagex,imagey) int nscreen; int mousex,mousey; int *imagex,*imagey; { int srcx,srcy; srcx = mousex - HELP_IMAGE_WIDTH / 2; if (srcx < 0) { srcx = 0; } else if (srcx + HELP_IMAGE_WIDTH > DisplayWidth(display,nscreen)) { srcx = DisplayWidth(display,nscreen) - HELP_IMAGE_WIDTH; } srcy = mousey - HELP_IMAGE_HEIGHT / 2; if (srcy < 0) { srcy = 0; } else if (srcy + HELP_IMAGE_HEIGHT > DisplayHeight(display,nscreen)) { srcy = DisplayHeight(display,nscreen) - HELP_IMAGE_HEIGHT; } *imagex = srcx; *imagey = srcy; } /* ---------------------------------------------------------------------- * MoreHelp * ---------------------------------------------------------------------*/ /*ARGSUSED*/ static void MoreHelp(item,event) Panel_item item; Event *event; { HelpWindow *hw; hw = (HelpWindow *)xv_get(item,XV_KEY_DATA,HELPWIN_KEY); if (hw->hwMoreHelpCmd) { putenv(DpyEnvString(hw->hwScreenNo)); system(hw->hwMoreHelpCmd); } } /* ---------------------------------------------------------------------- * ErrorNotice * ---------------------------------------------------------------------*/ static void ErrorNotice(nscreen,errmsg,helpkey) int nscreen; char *errmsg; char *helpkey; { Xv_Window notice_window; #ifdef OW_I18N_L4 wchar_t msgbuf[128]; #else char msgbuf[128]; #endif #ifdef OW_I18N_L4 (void) wsprintf(msgbuf, "%ws%s", errmsg, helpkey); #else msgbuf[0] = 0; strcat(msgbuf,errmsg); strcat(msgbuf,helpkey); #endif notice_window = xv_create(XVRoot(nscreen),FRAME, XV_X, -100, XV_Y, -100, XV_WIDTH, 1, XV_HEIGHT, 1, XV_SHOW, TRUE, 0); notice_prompt(notice_window,(Event *)NULL, #ifdef OW_I18N_L4 NOTICE_MESSAGE_STRING_WCS, msgbuf, NOTICE_BUTTON_YES_WCS, helpStrings[HS_OK], #else NOTICE_MESSAGE_STRINGS, msgbuf, NULL, NOTICE_BUTTON_YES, helpStrings[HS_OK], #endif NULL); } xview-3.2p1.4/clients/olwmslave/i18n.c100644 1750 1750 5377 5413747454 15050 0ustar mbmb#ident "@(#)i18n.c 1.3 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifdef OW_I18N_L4 #include "i18n.h" #include "mem.h" #include #include #include #include /* * When converting the wide char to CTEXT, we need to estimate the * space, but there are no right way to do this without actually * converting. "wslen(wchar) * sizeof(wchar_t)" will give us the how * many bytes consume by the characters, but this does not include the * any control sequences. I decided use fudge bytes for this control * sequnces for now. This is absolutely bad idea to having a this * value, but otherwise we need to convert it twice. One control * sequnce require the 3 bytes, so, following allow to switch the code * set 6 times. */ #define WCSTOCTS_FUDGE_BYTES (3 * 6) wchar_t * mbstowcsdup(mbs) register char *mbs; { register int n; register wchar_t *wcs; if (mbs == NULL) return NULL; n = strlen(mbs) + 1; wcs = (wchar_t *) MemAlloc(n * sizeof(wchar_t)); mbstowcs(wcs, mbs, n); #if DEBUG > 4 fprintf(stderr, "mbstowcsdup: mbs [%s] -> wcs [%ws]\n", mbs, wcs); #endif return wcs; } wchar_t * ctstowcsdup(cts) register char *cts; { register int n; register wchar_t *wcs; if (cts == NULL) return NULL; n = strlen(cts) + 1; wcs = (wchar_t *) MemAlloc(n * sizeof(wchar_t)); ctstowcs(wcs, cts, n); #ifdef DEBUG > 4 fprintf(stderr, "ctstowcsdup: cts [%d:", n); ascii_dump(cts); fprintf(stderr, "] -> wcs [%d:%ws]\n", (n * sizeof(wchar_t)), wcs); #endif return wcs; } char * ctstombsdup(cts) register char *cts; { register int n; register wchar_t *wcs; register char *mbs; wcs = ctstowcsdup(cts); if (wcs == NULL) return NULL; n = wslen(wcs) * sizeof(wchar_t) + 1; mbs = (char *) MemAlloc(n); wcstombs(mbs, wcs, n); MemFree (wcs); return mbs; } char * wcstoctsdup(wcs) register wchar_t *wcs; { register int n; register char *cts; if (wcs == NULL) return NULL; n = wslen(wcs) * sizeof(wchar_t) + WCSTOCTS_FUDGE_BYTES + 1; cts = (char *) MemAlloc(n); /* * FIX_ME: We should check the result from wcstotcs, and if * cts does not have a enough space, we should re-allocate the * space and try again. */ wcstocts(cts, wcs, n); #ifdef DEBUG > 4 fprintf(stderr, "wcstoctsdup: wcs [%d:%ws] -> cts [%d:", wslen(wcs), wcs, n+1); ascii_dump(cts); fprintf(stderr, "]\n"); #endif return cts; } #ifdef DEBUG > 4 ascii_dump(s) register unsigned char *s; { while (*s) { if (*s < ' ') fprintf(stderr, "^%c", *s + '@'); else if (*s > 0x80) fprintf(stderr, "(%2x)", *s); else fputc(*s, stderr); s++; } } #endif DEBUG #endif xview-3.2p1.4/clients/olwmslave/i18n.h100644 1750 1750 1207 5413747454 15041 0ustar mbmb#ident "@(#)i18n.h 1.4 93/06/28 SMI" /* * (c) Copyright 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #ifndef i18n_DEFINED #define i18n_DEFINED #ifdef OW_I18N_L4 #include #include #include #include typedef struct { XFontSet fs; XFontSetExtents *fsx; char *fsn; } XFontSetInfo; extern wchar_t *mbstowcsdup(); extern wchar_t *ctstowcsdup(); extern char *ctstombsdup(); extern char *wcstoctsdup(); #endif OW_I18N_L4 #endif i18n_DEFINED xview-3.2p1.4/clients/olwmslave/mem.c100644 1750 1750 2211 5413747454 15027 0ustar mbmb/* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. * * Written for Sun Microsystems by Crucible, Santa Cruz, CA. */ #ifndef lint #ifdef sccs static char sccsid[] = "@(#) mem.c 26.1 90/08/14 Crucible"; #endif #endif /* * Safe memory allocation/free routines - front-ends the C library functions * */ #include #include #include #include void * MemAlloc(sz) unsigned int sz; { #ifdef __STDC__ void *p; #else char *p; #endif if ((p = malloc(sz)) == NULL) ErrorGeneral("Memory allocation failure."); memset((char *)p, 0, (int)sz); return p; } void * MemCalloc(num,sz) unsigned int num; unsigned int sz; { #ifdef __STDC__ void *p; #else char *p; char *calloc(); #endif if ((p = calloc(num,sz)) == NULL) ErrorGeneral("Memory array allocation failure."); memset((char *)p, 0, (int)sz*(int)num); return p; } void MemFree(p) void *p; { if (p != NULL) free(p); } ErrorGeneral(txt) char *txt; { (void)fprintf(stderr,"olwmslave: Fatal Error: %s\n",txt); exit(-1); } xview-3.2p1.4/clients/olwmslave/mem.h100644 1750 1750 1223 5413747454 15036 0ustar mbmb/* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. * * Written for Sun Microsystems by Crucible, Santa Cruz, CA. */ /* @(#) mem.h 26.1 90/08/14 Crucible */ extern void *MemAlloc(); /* malloc frontend */ extern void *MemCalloc(); /* calloc frontend */ extern void MemFree(); /* free frontend */ #define MemNew(t) ((t *)MemAlloc((unsigned int)sizeof(t))) #define MemNewString(s) (strcpy(MemAlloc(strlen(s)+1),s)) #ifdef OW_I18N_L4 #define MemNewWString(s) (wscpy(MemAlloc((wslen(s)+1) * sizeof(wchar_t)),s)) #endif OW_I18N_L4 xview-3.2p1.4/clients/olwmslave/olwm.info100644 1750 1750 6613 5413747454 15752 0ustar mbmb# ----------------------------------------------- # olwm.info 2 July 1991 # # OpenWindows Version 3 FCS rev'd by James Brook # ----------------------------------------------- # @(#) olwm.info 1.4 91/02/15 Sun Micro # helpopen path changed 11 July 1991 ##########################50###################### :Workspace:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Workspace Everything on the screen is on the Workspace. Windows and icons are displayed on it. The Workspace is the background on your screen. Press the MENU mouse button on that background to display the Workspace menu, which provides these options and submenus: Programs Displays a menu of available DeskSet tools and demonstration programs. Utilities Displays a menu of commonly used utilities and services. Properties Displays the Workspace Properties window, where you can customize the look and behavior of your desktop. Help Opens the Help Viewer to the table of contents for the DeskSet help handbooks. Desktop Intro Starts the tutorial in the basics of using OpenWindows. Exit Choose Exit to leave the Workspace and return to a tty command-line interface. ##########################50###################### :Frame:$OPENWINHOME/bin/helpopen handbooks/desktop.intro.handbook Window Border This is the header, footer, or side of a window that contains an application program. The border thickens when the window is selected. To select a window, point to the border and click SELECT. From the border, you can display a Window menu with options for closing, moving, resizing, repainting, and quitting the window. To display the Window menu, point to the border and press MENU. :Icon:$OPENWINHOME/bin/helpopen handbooks/desktop.intro.handbook Icon This is a closed window for an application. The picture on this icon identifies its application. For example, the File Manager icon shows the picture of a file drawer. To open the icon, double-click SELECT on it. Or press MENU and choose Open. ##########################50###################### :CloseButton:$OPENWINHOME/bin/helpopen handbooks/desktop.intro.handbook Close Button Click SELECT on this button to close the window to an icon. When you close an application's base window, its associated pop-up windows are also closed. :PushPin:$OPENWINHOME/bin/helpopen handbooks/desktop.intro.handbook Pushpin Pins up a pop-up window for continued use. When the pin is lying on its side, the pop-up window is unpinned. The window will be dismissed the next time you give a command. To pin up the window, click SELECT on the pushpin. The window is pinned when the pin pops into the hole. To unpin the window, click SELECT on the pushpin to pop it out of the hole. This dismisses the window. ##########################50###################### :ResizeCorner:$OPENWINHOME/bin/helpopen handbooks/desktop.intro.handbook Resize Corner Use the Resize corner to expand or contract the window: 1. Move the pointer to any Resize corner. The pointer changes from an arrow to a circle. 2. Press SELECT and drag the pointer. The Resize corner is highlighted. A bounding box shows you the location of the new window border. 3. Release SELECT. The window is redisplayed in the new size, and the contents adjust to fit within the borders of the window. To change only the height or the width of the window, hold down the Control key while pressing SELECT on the Resize corner. xview-3.2p1.4/clients/olwmslave/olwmslave.c100644 1750 1750 11415 6331436111 16271 0ustar mbmb#ifndef line #ifdef sccs static char sccsid[] = "@(#) olwmslave.c 1.9 93/06/28 Sun Micro"; #endif #endif /* * (c) Copyright 1989, 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ /* ---------------------------------------------------------------------- * olwmslave.c * ----------------------------------------------------------------------*/ #include #ifdef SYSV #include #else #include #endif #include #ifndef MAXPATHLEN #define MAXPATHLEN 256 #endif #include "olwmslave.h" #include "mem.h" /* ---------------------------------------------------------------------- * External globals * ----------------------------------------------------------------------*/ ScreenInfo screenInfo; Display *display; Xv_Server dpyServer; /* ---------------------------------------------------------------------- * Local Data * ----------------------------------------------------------------------*/ Bool Done = False; #define CMDBUFLEN 1024 char cmdBuf[CMDBUFLEN]; /* ---------------------------------------------------------------------- * Forward Definitions * ----------------------------------------------------------------------*/ void InitScreenInfo(); void ParseScreenArgs(); Notify_value InputReader(); /* ---------------------------------------------------------------------- * main * ----------------------------------------------------------------------*/ /*ARGSUSED*/ main(argc,argv) int argc; char **argv; { dpyServer = (Xv_Server)xv_init( #ifdef OW_I18N_L3 XV_USE_LOCALE, TRUE, #endif XV_INIT_ARGC_PTR_ARGV, &argc,argv, 0); display = (Display *)xv_get(dpyServer,XV_DISPLAY); #ifdef OW_I18N_L3 { char *domain = "olwmslave"; char *openwinDir; char localePath[MAXPATHLEN]; if ((openwinDir = getenv("OPENWINHOME")) != 0) (void)strcpy(localePath,openwinDir); else #ifndef OPENWINHOME_DEFAULT /* martin-2.buck@student.uni-ulm.de */ (void)strcpy(localePath,OPENWINHOME_DEFAULT); #else (void)strcpy(localePath,"/usr/share"); #endif (void)strcat(localePath,"/lib/locale"); (void)bindtextdomain(domain,localePath); textdomain(domain); } #endif InitScreenInfo(dpyServer); ParseScreenArgs(&argc,argv); RegisterHelpCmd(); RegisterPropsCmd(); SetCmdStream(stdin,stdout); notify_set_input_func((Notify_client)stdin,InputReader,fileno(stdin)); while (!Done) notify_start(); exit(0); } /* ---------------------------------------------------------------------- * makeDpyEnvString * ----------------------------------------------------------------------*/ static char * makeDpyEnvString(dpy,nscreen) Display *dpy; int nscreen; { char dpyEnv[256]; char scrNum[5]; extern char *strtok(); (void)strcpy(dpyEnv,"DISPLAY="); (void)strcat(dpyEnv,DisplayString(dpy)); (void)strtok(dpyEnv,"."); (void)sprintf(scrNum,".%d",nscreen); (void)strcat(dpyEnv,scrNum); return MemNewString(dpyEnv); } /* ---------------------------------------------------------------------- * InitScreenRoot * ----------------------------------------------------------------------*/ static void InitScreenInfo(server) Xv_Server server; { int i; ScreenRoot *sr; screenInfo.numScreens = ScreenCount(display); screenInfo.screenList = (ScreenRoot *)MemAlloc( sizeof(ScreenRoot)*NumScreens()); sr = ScreenList(0); for (i=0; iscreen = (Xv_Screen)xv_get(server,SERVER_NTH_SCREEN,i); sr->root = (Xv_Window)xv_get(sr->screen,XV_ROOT); sr->rootwin = (Window)xv_get(sr->root,XV_XID); sr->dpyEnvStr = makeDpyEnvString(display,i); } } /* ---------------------------------------------------------------------- * ParseScreenArgs * ----------------------------------------------------------------------*/ /*ARGSUSED*/ static void ParseScreenArgs(argc,argv) int *argc; char **argv; { int i; ScreenRoot *sr; sr = ScreenList(0); for (i=0; iused = True; } } /* ---------------------------------------------------------------------- * InputReader * ----------------------------------------------------------------------*/ static Notify_value InputReader(client,fd) Notify_client client; int fd; { int count; count = read(fd,cmdBuf,CMDBUFLEN); switch (count) { case -1: /* error */ perror("olwmslave: read"); exit(-1); break; case 0: /* eof */ notify_set_input_func(client,0,fd); Done = True; notify_stop(); break; default: /* normal */ cmdBuf[count] = 0; ParseCmd(cmdBuf); } return NOTIFY_DONE; } #ifdef OW_I18N_L4 mbstowcsdup(mbs) register char *mbs; { register int n; register wchar_t *wcs; if (mbs == NULL) return NULL; n = strlen(mbs) + 1; wcs = (wchar_t *) MemAlloc(n * sizeof(wchar_t)); mbstowcs(wcs, mbs, n); return wcs; } #endif xview-3.2p1.4/clients/olwmslave/olwmslave.h100644 1750 1750 3471 5413747455 16301 0ustar mbmb/* * (c) Copyright 1989, 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ /*---------------------------------------------------------------------- * Global data * * Initialised in olwmslave.c *----------------------------------------------------------------------*/ /* @(#) olwmslave.h 1.8 93/06/28 Sun Micro */ extern Display *display; /* X handle on display server */ extern Xv_Server dpyServer; /* XView handle on display server */ typedef struct _ScreenRoot { Bool used; /* whether we're using this screen */ Xv_Screen screen; /* XView handle on screen */ Xv_Window root; /* XView handle on root window */ Window rootwin; /* X handle on root window */ char *dpyEnvStr; /* DISPLAY env string for this screen */ } ScreenRoot; typedef struct _ScreenInfo { int numScreens; /* Number of screens for a display */ ScreenRoot *screenList; /* List of ScreenRoot's - one for each * screen that the display handles */ } ScreenInfo; extern ScreenInfo screenInfo; /*---------------------------------------------------------------------- * ScreenInfo convenience macros *----------------------------------------------------------------------*/ #define NumScreens() (screenInfo.numScreens) #define ScreenList(nscr) (&(screenInfo.screenList[(nscr)])) #define ScreenUsed(nscr) (screenInfo.screenList[(nscr)].used) #define XVScreen(nscr) (screenInfo.screenList[(nscr)].screen) #define XVRoot(nscr) (screenInfo.screenList[(nscr)].root) #define RootWin(nscr) (screenInfo.screenList[(nscr)].rootwin) #define DpyEnvString(nscr) (screenInfo.screenList[(nscr)].dpyEnvStr) #ifdef OW_I18N_L3 #include extern char *gettext(); #define LOCALIZE(msg) gettext(msg) #else #define LOCALIZE(msg) (msg) #endif xview-3.2p1.4/clients/olwmslave/propscmd.h100644 1750 1750 1147 5413747455 16115 0ustar mbmb/* * (c) Copyright 1989, 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ /* ---------------------------------------------------------------------- * propscmd.h * ---------------------------------------------------------------------*/ /* @(#) propscmd.h 1.3 93/06/28 Sun Micro */ #include "cmdstream.h" #define PW_SCREEN_NO 0 #define PW_ATTR_COUNT 1 static CmdAttr propsCmdAttr[] = { { "SCREEN_NO", INT }, }; static Command propsCommand = { "SHOWPROPS", 0, PW_ATTR_COUNT, propsCmdAttr }; xview-3.2p1.4/clients/olwmslave/propsrecv.c100644 1750 1750 2150 5413747455 16277 0ustar mbmb/* * (c) Copyright 1989, 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ /* ---------------------------------------------------------------------- * propscmdrecv.c * ---------------------------------------------------------------------*/ #ifndef lint #ifdef sccs static char sccsid[] = "@(#) propsrecv.c 1.3 93/06/28 Sun Micro"; #endif #endif #include "propscmd.h" extern int ShowWindowProps(); void ReceivePropsCmd(); /* ---------------------------------------------------------------------- * RegisterPropsWindow * ---------------------------------------------------------------------*/ void RegisterPropsCmd() { propsCommand.callback = ReceivePropsCmd; RegisterCmd(&propsCommand); } /* ---------------------------------------------------------------------- * ReceivePropsCmd * ---------------------------------------------------------------------*/ static void ReceivePropsCmd(cmd) Command *cmd; { CmdAttr *attr; attr = cmd->attrList; ShowWindowProps(attr[PW_SCREEN_NO].value.ival); } xview-3.2p1.4/clients/olwmslave/propssend.c100644 1750 1750 1424 5413747455 16274 0ustar mbmb/* * (c) Copyright 1989, 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ /* ---------------------------------------------------------------------- * propscmdsend.c * ---------------------------------------------------------------------*/ #ifndef line #ifdef sccs static char sccsid[] = "@(#) propssend.c 1.3 93/06/28 Sun Micro"; #endif #endif #include "propscmd.h" /* ---------------------------------------------------------------------- * ShowPropsWindow * ---------------------------------------------------------------------*/ int ShowPropsWindow(nscreen) int nscreen; { propsCmdAttr[PW_SCREEN_NO].value.ival = nscreen; return(SendCmd(&propsCommand)); } xview-3.2p1.4/clients/olwmslave/propswin.c100644 1750 1750 12000 5413747455 16150 0ustar mbmb/* * (c) Copyright 1989, 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ /* ---------------------------------------------------------------------- * propswin.c * ----------------------------------------------------------------------*/ #ifndef line #ifdef sccs static char sccsid[] = "@(#) propswin.c 1.7 93/06/28 Sun Micro"; #endif #endif #include #include #include "olwmslave.h" #include "mem.h" /* ---------------------------------------------------------------------- * Window Properties structure definition * ----------------------------------------------------------------------*/ typedef struct { int wpScreenNo; Frame wpFrame; } WindowProps; /* ---------------------------------------------------------------------- * Local Data * ----------------------------------------------------------------------*/ static WindowProps *winPropsList = 0; /* dynamic array of WindowProps * one for each server */ #define WinProps(nscr) (&winPropsList[(nscr)]);/* convenience macros to access * list as array */ /* ---------------------------------------------------------------------- * Local Forward Declarations * ----------------------------------------------------------------------*/ int ShowWindowProps(); void InitWindowProps(); Bool CreateWindowProps(); Notify_value DestroyWindowProps(); void ApplyProps(); void ResetProps(); /* ---------------------------------------------------------------------- * ShowWindowProps * ----------------------------------------------------------------------*/ int ShowWindowProps(nscreen) int nscreen; { WindowProps *wp; if (!ScreenUsed(nscreen)) { return False; } if (!winPropsList) { InitWindowProps(); } wp = WinProps(nscreen); if (!CreateWindowProps(wp)) { return False; } xv_set(wp->wpFrame, XV_SHOW, TRUE, WIN_FRONT, NULL); return True; } /* ---------------------------------------------------------------------- * InitWindowProps * ----------------------------------------------------------------------*/ static void InitWindowProps() { WindowProps *wp; int i; winPropsList = (WindowProps *)MemAlloc( sizeof(WindowProps)*NumScreens()); for (i=0; iwpScreenNo = i; wp->wpFrame = (Frame)NULL; } } /* ---------------------------------------------------------------------- * CreateWindowProps * ----------------------------------------------------------------------*/ static Bool CreateWindowProps(wp) WindowProps *wp; { Panel wpPanel; #ifdef OW_I18N_L4 wchar_t *wpwc = mbstowcsdup(LOCALIZE("Window Properties")); wchar_t *wpniwc = mbstowcsdup(LOCALIZE("Window Properties Not Implemented")); wchar_t *apwc = mbstowcsdup(LOCALIZE("Apply")); wchar_t *rewc = mbstowcsdup(LOCALIZE("Reset")); #endif wp->wpFrame = (Frame)xv_create(XVRoot(wp->wpScreenNo),FRAME_PROPS, WIN_ROWS, 1, WIN_COLUMNS, 33, FRAME_CMD_PUSHPIN_IN, TRUE, #ifdef OW_I18N_L4 FRAME_LABEL_WCS, wpwc, #else FRAME_LABEL, LOCALIZE("Window Properties"), #endif XV_KEY_DATA, winPropsList, wp, XV_SHOW, FALSE, NULL); notify_interpose_destroy_func(wp->wpFrame,DestroyWindowProps); wpPanel = (Panel)xv_create(wp->wpFrame,PANEL, WIN_ROWS, 1, NULL); (void)xv_create(wpPanel,PANEL_MESSAGE, #ifdef OW_I18N_L4 PANEL_LABEL_STRING_WCS, wpniwc, #else PANEL_LABEL_STRING, LOCALIZE("Window Properties Not Implemented"), #endif NULL); #ifdef notdef (void)xv_create(wpPanel,PANEL_BUTTON, #ifdef OW_I18N_L4 PANEL_LABEL_STRING_WCS, apwc, #else PANEL_LABEL_STRING, LOCALIZE("Apply"), #endif PANEL_NOTIFY_PROC, ApplyProps, NULL); (void)xv_create(wpPanel,PANEL_BUTTON, #ifdef OW_I18N_L4 PANEL_LABEL_STRING_WCS, rewc, #else PANEL_LABEL_STRING, LOCALIZE("Reset"), #endif PANEL_NOTIFY_PROC, ResetProps, NULL); #endif #ifdef OW_I18N_L4 free(wpwc); free(wpniwc); free(apwc); free(rewc); #endif window_fit(wpPanel); window_fit(wp->wpFrame); return True; } /* ---------------------------------------------------------------------- * DestroyWindowProps * ----------------------------------------------------------------------*/ static Notify_value DestroyWindowProps(client,status) Notify_client client; Destroy_status status; { WindowProps *wp; if (status != DESTROY_CLEANUP) { wp = (WindowProps *)xv_get(client,XV_KEY_DATA,winPropsList); if (wp) { wp->wpFrame = (Frame)NULL; } } return (notify_next_destroy_func(client,status)); } #ifdef notdef /* ---------------------------------------------------------------------- * ApplyProps * ----------------------------------------------------------------------*/ static void ApplyProps(item,event) Panel_item item; Event *event; { } /* ---------------------------------------------------------------------- * ResetProps * ----------------------------------------------------------------------*/ static void ResetProps(item,event) Panel_item item; Event *event; { } #endif xview-3.2p1.4/clients/olwmslave/saber.suppress100644 1750 1750 132 5413747455 16770 0ustar mbmbsuppress 560 /* Assignment within conditional */ suppress 701 /* Function redeclared */ xview-3.2p1.4/clients/olwmslave/window.info100644 1750 1750 12305 5413747456 16320 0ustar mbmb# ----------------------------------------------- # window.info 2 July 1991 # # OpenWindows Version 3 FCS rev'd by James Brook # ----------------------------------------------- # @(#) @(#)window.info 1.1 1.1 91/06/28 SMI # # helpopen path changed 11 July 1991 # The following are the only items that will ever # be disabled, and therefore have separate help. The # _D is appended by OLWM ########################50######################## :Resize_D:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Resize The Resize item has been disabled because this window cannot be resized. :FullSize_D:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Full Size The Full Size item has been disabled because this window cannot be resized. :Properties_D:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Properties The Properties item has been disabled because no Properties window is available for this window. # # standard window menu items # :NoHelp:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Sorry! No help is available for this menu! ########################50######################## :WindowMenu:$OPENWINHOME/bin/helpopen handbooks/desktop.intro.handbook Window Menu The Window menu allows you to manipulate the selected window or icon. Not all menu items are always available--unavailable items are grayed out. Menu items with a triangle to their right have a submenu that can be displayed by dragging MENU to the right. To choose an item, press MENU on it: Open/Close Opens the icon or closes the window. Full Size/Restore Size Zooms window to full height of screen or restore it to its original height. Move Choose Move to move the selected window with the arrow keys. Press Return to move the window. Resize Choose Resize to resize the selected window with the arrow keys. Press Return to resize the window. Properties Properties has been disabled because no Properties window is available for this window. Back Sends the selected window to the back of the window stack. Refresh Refreshes (redraws) the selected window. Quit Quits the selected window or icon. ########################50######################## :Open:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Open Choose Open to open the selected icon. :Close:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Close Choose Close to close the selected window to an icon. :FullSize:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Full Size Choose Full Size to enlarge the selected window to the full height of the screen. :RestoreSize:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Restore Size Choose Restore Size to return the window to the size it was before you gave the Full Size command. ########################50######################## :Move:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Move Choose Move to move the selected window with keyboard commands. After choosing Move, you can move the window in increments of 1 pixel by pressing any of the arrow keys: Up [R8] Move up. Down [R14] Move down. Left [R10] Move left. Right [12] Move right. By pressing the Control key and an arrow key at the same time, you can move the window in increments of 10 pixels. ########################50######################## :Resize:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Resize Choose Resize to resize the selected window with keyboard commands. After choosing Resize, you can change the size of the window by pressing the arrow keys: Up [R8] Increase height. Down [R14] Decrease height. Left [R10] Increase width. Right [12] Decrease width. By pressing the Control key and an arrow key at the same time, you can move the change window size in greater increments. :Properties:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Properties The Properties item is disabled because no Properties window is available. :Back:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Back Choose Back to send the selected window to the back of the window stack. ########################50######################## :Refresh:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Refresh Choose Refresh to refresh (or redraw) the selected window. :Quit:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Quit Choose Quit to close and quit the selected window. :Dismiss:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Dismiss Dismiss closes pop-up windows with these options: This Window Dismiss this pop-up window. All Pop-ups Dismiss all pop-up windows of the application. Dismissing a pop-up window has the same effect as unpinning it. :DismissThis:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook This Window Dismiss this pop-up window. Dismissing a pop-up window has the same effect as unpinning it. :DismissAll:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook All Pop-ups Dismiss all pop-up windows of the application. Dismissing a pop-up window has the same effect as unpinning it. :Owner:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Owner? Choose Owner? to find the application that controls this pop-up window. The title bar of the "owner" will flash. ########################50######################## xview-3.2p1.4/clients/olwmslave/workspace.info100644 1750 1750 12151 5413747456 17006 0ustar mbmb# ----------------------------------------------- # Workspace.info 20 Nov edits R. Patten # July1, 1991 rev'd by James Brook # helpopen path changed July 11, 1991 # OpenWindows Version 3 FCS # ----------------------------------------------- # @(#) @(#)workspace.info 1.1 1.1 91/06/28 SMI # This is the default help for the default (shipped) root menu. # if a window has a space in the name, just replace it with an # underscore. ##########################50###################### :Workspace:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Workspace Menu To choose an item--or to display its submenus-- press MENU: Programs Displays a menu of available DeskSet tools and demonstration programs. Utilities Displays a menu of commonly used utilities and services. Properties Displays the Workspace Properties window, where you can customize the look and behavior of your desktop. Workstation Info Displays the Workstation Information window that contains information about the configuration of your workstation. Desktop Intro Starts a tutorial on the use of OpenWindows. Help Opens the Help Viewer to the table of contents of handbooks for the DeskSet tools. Exit Choose Exit to leave OpenWindows and return to a tty command-line interface. To restart OpenWindows, type "openwin" at the command prompt. ##########################50###################### :Programs:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Programs You can choose any of these programs: File Manager Graphical file browser and manipulation application. Text Editor ASCII (text-only) editor. Mail Tool Graphical electronic mail application. Calendar Manager Time-management and appointment calendar. Command Tool Interactive, scrolling command window. Shell Tool Nonscrolling command window. Clock Time and date display. Calculator General-purpose scientific and financial calculator. Performance Meter Graphical system monitor. Print Tool Graphical application for sending files to a printer. Audio Tool Recording and play-back tool used with the Sun SPARCstation sound port. Tape Tool Tool for reading and writing files to local and remote tape drives. Image Tool Tool for viewing, editing, and translating the format of image and PostScript files. Snapshot Tool for making, printing, and viewing screen captures. Icon Editor Tool for creating and changing icons. Can be used with Binder. Binder Tool for changing filename bindings as they are used in File Manager. Demos Displays a menu of demonstration programs that show some of the uses of the OpenWindows environment. :Demos:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Demos Demonstration programs showing some of the uses of the OpenWindows environment. These programs are not supported Sun applications. :NoHelp:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook NoHelp No help is available for this submenu. ##########################50###################### :Utilities:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Utilities You can choose any of these utilities: Refresh Refreshes (redraws) all windows and icons on the desktop. Reset Input If keyboard input is corrupted, choose this item to reset the keyboard. Function Keys Displays a graphical keypad that corresponds to keyboard function keys for the selected application. Window Controls Pinnable menu that enables you to manipulate a selected window or icon. Save Workspace Saves layout of your desktop for future OpenWindows sessions. Lock Screen Locks your screen to prevent unauthorized use of your workstation. To unlock screen, press any key or mouse button, and then type your password at the prompt. Console Starts a Console window, where you receive system and application messages. Do not run more than one Console at a time. ##########################50###################### :Window_Controls:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Window Controls These controls work on the selected window or icon: Open/Close Open the icon or close the window. Full/Restore Size Zoom window to full height of screen or restore it to its original height. Back Send the selected item to the back. Quit Quit the selected window or icon. :DefaultMenu:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Workspace Menu This menu is used because no menu was found in ~/.openwin-menu or $OPENWINHOME/lib/openwin-menu: Xterm Terminal emulator from the MIT X distribution. Cmdtool Standard Sun terminal emulator. Refresh Refreshes (redraws) all windows and icons on the desktop. Restart Restarts and reinitializes the window manager. Reread Menu File Attempts to reread the menu file from locations mentioned above. Exit WM Exits the window manager. This may or may not end the OpenWindows session. Exit Exits this OpenWindows session. ##########################50###################### xview-3.2p1.4/clients/olwmslave/Imakefile100644 1750 1750 2317 6331115755 15716 0ustar mbmb#include /**/######################################################################### /**/# @(#)Imakefile 1.7 28 Apr 1993 SMI /**/# Imakefile for olwmslave release 3.0. #define HasInfoFiles YES #ifndef __linux DEFINES = $(XVCLIENTDEFINES) #else DEFINES = $(XVCLIENTDEFINES) -DOW_I18N_L3 #endif INCLUDES = -I$(HEADER_DEST) -I$(TOP) $(XVCLIENTINCLUDES) SYS_LIBRARIES = $(SYSV_CLIENT_LIB) DEPLIBS = LOCAL_LIBRARIES = XViewClientLibs HFILES.olwmslave.3 = HFILES.olwmslave.4 = i18n.h HEADERS = \ cmdstream.h \ helpcmd.h \ mem.h \ olwmslave.h \ propscmd.h \ ${HFILES.olwmslave.XvI18nLevel} INFOFILES = olwm.info workspace.info MANPAGES = olwmslave.man BITMAPS = SCRIPTS = MISC = SRCS = \ cmdstream.c \ help_file.c \ helprecv.c \ helpwin.c \ mem.c \ olwmslave.c \ propsrecv.c \ propswin.c OBJS = \ cmdstream.o \ help_file.o \ helprecv.o \ helpwin.o \ mem.o \ olwmslave.o \ propsrecv.o \ propswin.o ALLFILES = \ ${HEADERS} ${BITMAPS} ${SRCS} \ ${MISC} ${INFOFILES} ${MANPAGES} ${SCRIPTS} ComplexProgramTarget(olwmslave) #include xview-3.2p1.4/clients/olwmslave/olwmslave.man100644 1750 1750 550 5413747453 16576 0ustar mbmb.TH olwmslave 1 "22 Feb 1991" .SH NAME olwmslave - helper program for olwm .SH SYNOPSIS .LP .B olwmslave .SH DESCRIPTION .B olwmslave provides functionality for .BR olwm (1) that is better done via a separate program, such as the Spot Help window. .LP .B olwmslave is started by .B olwm and is not intended to be used directly. .SH "SEE ALSO" .BR olwm (1) xview-3.2p1.4/clients/Imakefile100644 1750 1750 762 6331115754 13666 0ustar mbmb#include /**/########################################################################## /**/# @(#)Imakefile 1.6 28 Apr 1993 SMI /**/# Imakefile for contrib directory. #define IHaveSubdirs #define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)' SUBDIRS = clock cmdtool olwm olwmslave props textedit DIRS_TO_CREATE = $(SRC_DEST) MakeSubdirs($(SUBDIRS)) DependSubdirs($(SUBDIRS)) MakeDirectories(install, $(DIRS_TO_CREATE)) InstallSrcsSubdirs($(SUBDIRS)) PopulateSubdirs($(SUBDIRS)) xview-3.2p1.4/clients/olvwm-4.1/ 40755 1750 1750 0 6354605713 13443 5ustar mbmbxview-3.2p1.4/clients/olvwm-4.1/Makefile.sunpro100644 1750 1750 12542 6241361454 16545 0ustar mbmb.KEEP_STATE: # # Makefile for olvwm # # To make olvwm, simply type make # To install olvwm, type make install # Set this to the directory to place the olvwm executable INSTALLDIR = ${OPENWINHOME}/bin # If you want to use the OPENWINDOWS help facility, then set HELPDIR # to the directory where those files are kept. If you cannot write # to that directory but still want to install the helpfile, set HELPDIR # to some other directory and add that directory to your HELPPATH. # If you don't want to install the help file at all, set HELPDIR to /dev/null. HELPDIR = ${OPENWINHOME}/lib/help # Where to install the man pages: man1 dir is where olvwm.man will go; # and man5 dir is where olvwmrc.man will go; you may want to set these # to a local directory somewhere. # If you don't want to install the man pages, set these to /dev/null. MAN1DIR = ${OPENWINHOME}/man/man1 MAN5DIR = ${OPENWINHOME}/man/man5 # If you don't have olwm installed anywhere and want to install the olwm # man page (which discusses most of the olvwm functionality too) uncomment # out the following line #OLWMMAN = olwm.man # # Set MORECCFLAGS to any options you want to pass to the compiler. These # include and defines, and debugging and/or optimization flags, and the like. # Also, if you have headers for things like the XPM library in a non-standard # place, include the appropriate -I flag here. # # There are a bunch of defines, and I can't honestly say I've used or even # tested all of them (since much of this code came from the xview 3.2 release) # and certainly I haven't used all combinations of them. See below for # suggested settings: # # Here's a set of possible defines: # -DALLPLANES Support the AllPlanes extension (valid in SunOs/Solaris) # -DDEBUG Include some debugging code # -DIDENT Include ident directives for the compiler # -DMAXPID=32768 For 386BSD # -DMEMDEBUG To debug the memory allocation # -DOW_I18N_L3 Include support for Level 3 internationalization # (Note: I haven't tested without this, and I can't # test it in any locale but C, so include it, but # take it with a grain of salt -- the original olwm # code will work, but the olvwm extensions may not # support the correctinternationalization) # -DOW_I18N_L4 Include support for Level 4 internationalization # (Note: This is not yet supported, but it may work) # -DREGEXP Support for the 386 BSD regular expression library # -DRLIMIT_NOFILE Support for the 386BSD/Ultrix RLIMIT calls # -DSHAPE Support the shapes extension (valid in SunOS/Solaris) # -DSYSV Support for System V (Release 3 or 4) # -DSVR4 Support for System V Release 4 (you must also include # -DSYSV) # -DXPM Support the XPM color pixmaps -- requires that you # have the xpm library (version 3.0) somewhere. # If your xpm header isn't in /usr/openwin/include # make sure to add the appropriate -I flag to # MORECCFLAGS. Also remember to add the # library name to LDFLAGS. # # I haven't tested this on Solaris 1.x, but I'd suggest #MORECCFLAGS=-DOW_I18N_L3 -DSHAPE -DIDENT # For a generic Solaris 2.x system, I'd suggest MORECCFLAGS=-DOW_I18N_L3 -DSHAPE -DSVR4 -DSYSV -DIDENT -x O4 # # Set LDFLAGS to any link options you want. For a generic Solaris 1.x # system, I'd suggest #LDFLAGS=-L${OPENWINHOME}/lib # # For Solaris 2.x, I'd suggest LDFLAGS=-L${OPENWINHOME}/lib -R${OPENWINHOME}/lib -lintl # # Which compiler to use CC = cc # # You shouldn't need to change anything below this line INC = -I${OPENWINHOME}/include CFLAGS = ${INC} ${MORECCFLAGS} HEADERS = cmdstream.h cursors.h debug.h defaults.h dsdm.h environ.h error.h \ events.h gettext.h globals.h group.h helpcmd.h i18n.h iconimage.h \ iconmask.h kbdfuncs.h list.h mem.h menu.h notice.h olcursor.h \ olgx_impl.h ollocale.h olwm.h patchlevel.h properties.h resources.h \ screen.h selection.h slots.h st.h virtual.h win.h SRCS = atom.c client.c cmdstream.c cursors.c debug.c defaults.c dsdm.c \ environ.c error.c evbind.c events.c fontset.c gettext.c gif.c group.c \ helpsend.c i18n.c images.c info.c kbdfuncs.c list.c mem.c menu.c \ moveresize.c notice.c ol_button.413.c ol_button.svr4.c olvwmrc.c \ olwm.c pixmap.c properties.c reduce.c resources.c screen.c \ selection.c services.c slave.c slots.c st.c states.c usermenu.c \ usleep.c virtual.c win.c winbusy.c winbutton.c wincolor.c winframe.c \ wingframe.c winicon.c winipane.c winmenu.c winnofoc.c winpane.c \ winpinmenu.c winpush.c winresize.c winroot.c LIBS = ${LDFLAGS} -lolgx -lXext -lX11 -ll -lm OBJS = ${SRCS:.c=.o} olvwm : ${OBJS} ${CC} -o olvwm ${OBJS} ${LIBS} lint: lint ${CFLAGS} ${SRCS} parse.c : parse.l lex -t parse.l > parse.c olvwmrc.c : olvwmrc.y yacc olvwmrc.y mv y.tab.c olvwmrc.c olvwmrc.o : parse.c olvwmrc.c clean : /bin/rm -f olvwm .make.state .nse_depinfo parse.c olvwmrc.c *.o core errs ,* .emacs_* tags TAGS make.log MakeOut "#"* install: @echo "Installing olvwm in $(INSTALLDIR)" @/bin/cp olvwm $(INSTALLDIR) @echo "Installing help file in $(HELPDIR)" @/bin/cp olvwm.info $(HELPDIR) @echo "Installing olvwm man page in $(MAN1DIR)" @/bin/cp olvwm.man olvwm.1 @/bin/cp olvwm.1 $(MAN1DIR) @/bin/rm -f olvwm.1 @echo "Installing olvwmrc man page in $(MAN5DIR)" @/bin/cp olvwmrc.man olvwmrc.5 @/bin/cp olvwmrc.5 $(MAN5DIR) @/bin/rm -f olvwmrc.5 -@/bin/cp ${OLWMMAN} ${MAN1DIR}/olwm.1 >/dev/null 2>&1 xview-3.2p1.4/clients/olvwm-4.1/atom.c100644 1750 1750 13376 5515337302 14670 0ustar mbmb#ident "@(#)atom.c 26.24 93/06/28 SMI" /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #include #include Atom AtomAtomPair; Atom AtomChangeState; Atom AtomClass; Atom AtomClientWindow; Atom AtomColorMapWindows; Atom AtomDecorAdd; Atom AtomDecorClose; Atom AtomDecorDel; Atom AtomDecorFooter; Atom AtomDecorHeader; Atom AtomDecorPin; Atom AtomDecorResize; Atom AtomDelete; Atom AtomDeleteWindow; Atom AtomDfltBtn; Atom AtomLeftFooter; Atom AtomLength; Atom AtomListLength; Atom AtomMenuFull; Atom AtomMenuLimited; Atom AtomMultiple; Atom AtomName; Atom AtomNone; Atom AtomOlwmNoFocusWin; Atom AtomPinIn; Atom AtomPinOut; Atom AtomProtocols; Atom AtomPushpinState; Atom AtomRightFooter; Atom AtomSaveYourself; Atom AtomSunViewEnv; Atom AtomTakeFocus; Atom AtomTargets; Atom AtomTimestamp; Atom AtomUser; Atom AtomWMClass; Atom AtomWMName; Atom AtomWMIconName; Atom AtomWMHints; Atom AtomWMNormalHints; Atom AtomWMSizeHints; Atom AtomWMTransientFor; Atom AtomWMState; Atom AtomWTBase; Atom AtomWTCmd; Atom AtomWTHelp; Atom AtomWTNotice; Atom AtomWTOther; Atom AtomWinAttr; Atom AtomWindowBusy; Atom AtomSunLedMap; Atom AtomSunWMProtocols; Atom AtomSunWindowState; Atom AtomSunDragDropDSDM; Atom AtomSunDragDropInterest; Atom AtomSunDragDropSiteRects; Atom AtomSunOLWinAttr5; Atom AtomDecorIconName; Atom AtomSunReReadMenuFile; #ifdef OW_I18N_L4 Atom AtomCompoundText; Atom AtomDecorIMStatus; Atom AtomLeftIMStatus; Atom AtomRightIMStatus; #endif /*************************************************************************** * Global functions ***************************************************************************/ /* * InitAtoms -- initialize the atoms needed to communicate with Open * Look clients */ void InitAtoms(dpy) Display *dpy; { /* ICCCM specific flags */ AtomColorMapWindows = XInternAtom(dpy, "WM_COLORMAP_WINDOWS", False); AtomWMState = XInternAtom(dpy, "WM_STATE", False); AtomChangeState = XInternAtom(dpy, "WM_CHANGE_STATE" , False); AtomProtocols = XInternAtom(dpy, "WM_PROTOCOLS" , False); AtomTakeFocus = XInternAtom(dpy, "WM_TAKE_FOCUS" , False); AtomSaveYourself = XInternAtom(dpy, "WM_SAVE_YOURSELF" , False); AtomDeleteWindow = XInternAtom(dpy, "WM_DELETE_WINDOW" , False); /* Predefined atoms - referenced from ClientDistributeProperties */ AtomWMName = XA_WM_NAME; AtomWMIconName = XA_WM_ICON_NAME; AtomWMClass = XA_WM_CLASS; AtomWMHints = XA_WM_HINTS; AtomWMNormalHints = XA_WM_NORMAL_HINTS; AtomWMSizeHints = XA_WM_SIZE_HINTS; AtomWMTransientFor = XA_WM_TRANSIENT_FOR; /* OpenLook specific flags */ AtomWinAttr = XInternAtom(dpy, "_OL_WIN_ATTR" , False); AtomPushpinState = XInternAtom(dpy, "_OL_PIN_STATE" , False); AtomWindowBusy = XInternAtom(dpy, "_OL_WIN_BUSY" , False); AtomLeftFooter = XInternAtom(dpy, "_OL_WINMSG_ERROR" , False); AtomRightFooter = XInternAtom(dpy, "_OL_WINMSG_STATE" , False); AtomPinOut = XInternAtom(dpy, "_OL_PIN_OUT" , False); AtomDecorResize = XInternAtom(dpy, "_OL_DECOR_RESIZE" , False); AtomWTBase = XInternAtom(dpy, "_OL_WT_BASE" , False); AtomDecorFooter = XInternAtom(dpy, "_OL_DECOR_FOOTER" , False); AtomDecorAdd = XInternAtom(dpy, "_OL_DECOR_ADD" , False); AtomDecorDel = XInternAtom(dpy, "_OL_DECOR_DEL" , False); AtomDecorPin = XInternAtom(dpy, "_OL_DECOR_PIN" , False); AtomWTCmd = XInternAtom(dpy, "_OL_WT_CMD" , False); AtomPinIn = XInternAtom(dpy, "_OL_PIN_IN" , False); AtomNone = XInternAtom(dpy, "_OL_NONE" , False); AtomWTNotice = XInternAtom(dpy, "_OL_WT_NOTICE" , False); AtomMenuFull = XInternAtom(dpy, "_OL_MENU_FULL" , False); AtomDecorHeader = XInternAtom(dpy, "_OL_DECOR_HEADER" , False); AtomWTHelp = XInternAtom(dpy, "_OL_WT_HELP" , False); AtomMenuLimited = XInternAtom(dpy, "_OL_MENU_LIMITED" , False); AtomDecorClose = XInternAtom(dpy, "_OL_DECOR_CLOSE" , False); AtomWTOther = XInternAtom(dpy, "_OL_WT_OTHER" , False); AtomOlwmNoFocusWin = XInternAtom(dpy,"_SUN_OLWM_NOFOCUS_WINDOW",False); AtomDfltBtn = XInternAtom(dpy, "_OL_DFLT_BTN", False); AtomDecorIconName = XInternAtom(dpy, "_OL_DECOR_ICON_NAME", False); #ifdef OW_I18N_L4 AtomDecorIMStatus = XInternAtom(dpy, "_OL_DECOR_IMSTATUS", False); AtomLeftIMStatus = XInternAtom(dpy, "_OL_WINMSG_IMSTATUS", False); AtomRightIMStatus = XInternAtom(dpy, "_OL_WINMSG_IMPREEDIT", False); #endif /* ICCCM selection atoms */ AtomAtomPair = XInternAtom(dpy,"ATOM_PAIR",False); AtomClientWindow = XInternAtom(dpy, "CLIENT_WINDOW",False); AtomClass = XInternAtom(dpy,"CLASS",False); AtomDelete = XInternAtom(dpy,"DELETE",False); AtomMultiple = XInternAtom(dpy,"MULTIPLE",False); AtomLength = XInternAtom(dpy,"LENGTH",False); AtomListLength = XInternAtom(dpy,"LIST_LENGTH",False); AtomName = XInternAtom(dpy,"NAME",False); AtomTargets = XInternAtom(dpy,"TARGETS",False); AtomTimestamp = XInternAtom(dpy,"TIMESTAMP",False); AtomUser = XInternAtom(dpy,"USER",False); #ifdef OW_I18N_L4 AtomCompoundText = XInternAtom(dpy, "COMPOUND_TEXT" , False); #endif /* SunView environment */ AtomSunViewEnv = XInternAtom(dpy,"_SUN_SUNVIEW_ENV",False); /* Sun window manager atoms */ AtomSunLedMap = XInternAtom(dpy,"_SUN_LED_MAP",False); AtomSunWMProtocols = XInternAtom(dpy,"_SUN_WM_PROTOCOLS",False); AtomSunWindowState = XInternAtom(dpy,"_SUN_WINDOW_STATE",False); AtomSunOLWinAttr5 = XInternAtom(dpy,"_SUN_OL_WIN_ATTR_5",False); AtomSunReReadMenuFile = XInternAtom(dpy,"_SUN_WM_REREAD_MENU_FILE",False); /* Sun drag-and-drop atoms */ AtomSunDragDropInterest = XInternAtom(dpy, "_SUN_DRAGDROP_INTEREST", False); AtomSunDragDropDSDM = XInternAtom(dpy, "_SUN_DRAGDROP_DSDM", False); AtomSunDragDropSiteRects = XInternAtom(dpy, "_SUN_DRAGDROP_SITE_RECTS", False); } xview-3.2p1.4/clients/olvwm-4.1/client.c100644 1750 1750 116370 5515337303 15225 0ustar mbmb/* * (c) Copyright 1989, 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ /* client.c - functions relating to clients as a whole */ #ifdef IDENT #ident "@(#)client.c 1.5 olvwm version 07 Jan 1994" #endif /* * Based on #ident "@(#)client.c 26.56 93/06/28 SMI" * */ #include #include #include #include #include #include #include #include "i18n.h" #include #include "ollocale.h" #include "events.h" #include "mem.h" #include "olwm.h" #include "win.h" #include "group.h" #include "globals.h" #include "dsdm.h" #include "resources.h" #include "virtual.h" /*************************************************************************** * global data ***************************************************************************/ /* * List of currently active clients. All frames and icons and the no-focus * window are reachable by traversing this list. */ List *ActiveClientList; /* * Pointer to the "current" client. This is usually the client whose window * has the input focus, but not always. The exceptions include icons and * pinned menus, where the icon or menu window may be the "current" client but * where the focus really is with the no-focus window. */ Client *CurrentClient = NULL; /* * DoingWindowState indicates whether olwm is doing window state. * This is set in InitClientState() and used in MakeRoot(). */ Bool DoingWindowState = False; extern Atom AtomColorMapWindows; extern Atom AtomDecorDel; extern Atom AtomDecorAdd; extern Atom AtomDeleteWindow; extern Atom AtomProtocols; extern Atom AtomLeftFooter; extern Atom AtomRightFooter; extern Atom AtomTakeFocus; extern Atom AtomWindowBusy; extern Atom AtomWinAttr; extern Atom AtomWMState; extern Atom AtomWMName; extern Atom AtomWMIconName; extern Atom AtomWMHints; extern Atom AtomWMNormalHints; extern Atom AtomSunLedMap; extern Atom AtomSunWindowState; extern Atom AtomSunDragDropInterest; #ifdef OW_I18N_L4 extern Atom AtomLeftIMStatus; extern Atom AtomRightIMStatus; #endif extern void RecursiveRefresh(); extern void PushPinChangeState(); extern void FrameUpdateHeader(); extern void FrameUpdateFooter(); extern void IconUpdateName(); extern void ColorUpdateColorMapWindows(); extern void StateUpdateWinAttr(); extern void StateUpdateDecorAdd(); extern void StateUpdateDecorDel(); extern void StateUpdateWMNormalHints(); extern void StateUpdateWMHints(); extern void StateUpdateWMProtocols(); #ifdef OW_I18N_L4 extern void FrameUpdateIMStatus(); #endif /*************************************************************************** * private data ***************************************************************************/ typedef struct _ledstate { int led; int led_mode; } LedState; static LedState composeLedState; static Client *lastCurrentClient = NULL; #define LED_MAP_LENGTH (33L) /* * Focus Change Inhibition. * * If focus changing is inhibited, information about focus changing is stored * in the FocusInhibitRecord instead of being used to set the focus. If * several focus changes occur while focus changing is inhibited, only * information for the latest change is stored. When focus changing becomes * uninhibited, the information is used to set the focus for real. This * prevents unnecessary focus changing. REMIND: focus inhibition doesn't * occur when the focus is set to the NoFocus window. This isn't too bad, as * no highlighting occurs when this happens. */ static struct FocusInhibitRecord { Bool inhibited; Client *cli; Bool sendTF; Time evtime; } fir; static XrmQuark clientCQ; /* quark for "Client" (a class) */ static XrmQuark clientIQ; /* quark for "client" (an instance) */ static XrmQuark menuAccelIQ; /* quark for "menuAccelerators" */ static XrmQuark menuAccelCQ; /* quark for "MenuAccelerators" */ /*************************************************************************** * private functions ***************************************************************************/ /* * setComposeLed - sets the compose led to the new mode iff different than * the current mode. */ static void setComposeLed(dpy,mode) Display *dpy; int mode; { XKeyboardControl kbdValue; if (mode == composeLedState.led_mode) return; composeLedState.led_mode = mode; kbdValue.led = composeLedState.led; kbdValue.led_mode = composeLedState.led_mode; XChangeKeyboardControl(dpy,KBLed|KBLedMode,&kbdValue); } /* * initClientState - init kbd led state for client use */ static void initClientState(dpy) Display *dpy; { int *ledMap; int i,numLeds; unsigned int nitems,nremain; DoingWindowState = False; /* * Get the _SUN_LED_MAP property from the default root window */ ledMap = GetWindowProperty(dpy,DefaultRootWindow(dpy),AtomSunLedMap, 0L,LED_MAP_LENGTH,XA_INTEGER,32,&nitems,&nremain); if (ledMap == NULL || nitems != LED_MAP_LENGTH || nremain != 0) { return; } numLeds = ledMap[0]; /* first entry is the number of leds */ /* * Find out which led number is marked Compose */ for (i = 1; i <= numLeds; i++) { if (ledMap[i] == XK_Multi_key) { composeLedState.led = i; composeLedState.led_mode = -1; /* for first time */ DoingWindowState = True; } } /* * Turn off the compose led */ if (DoingWindowState) setComposeLed(dpy,LedModeOff); XFree((char *)ledMap); } /**************************************************************************** global functions ***************************************************************************/ /* * Initialize the client package. Called once at startup. * * Initialize the client state (LED handling) data. Initialize quarks for * per-client attributes. */ void InitClients(dpy) Display *dpy; { initClientState(dpy); clientCQ = XrmStringToQuark("Client"); clientIQ = XrmStringToQuark("client"); menuAccelCQ = XrmStringToQuark("MenuAccelerators"); menuAccelIQ = XrmStringToQuark("menuAccelerators"); } /* * ClientDefaultWindowState - applies the default window state */ void ClientDefaultWindowState(dpy) Display *dpy; { setComposeLed(dpy,LedModeOff); } /* * ClientSetWindowState - applies the client's window state */ void ClientSetWindowState(cli) Client *cli; { if (!DoingWindowState) return; /* * If the client has specified the window state then interpret it. */ if (cli->windowState) { if (cli->windowState->flags & WSSemanticState) { if (cli->windowState->state & WSSemanticCompose) setComposeLed(cli->dpy,LedModeOn); else setComposeLed(cli->dpy,LedModeOff); } /* * Else just apply the default state */ } else { ClientDefaultWindowState(cli->dpy); } } /* * ClientGetWindowState - gets the _SUN_WINDOW_STATE property and if the * client has the focus then apply that new state. */ void ClientGetWindowState(cli) Client *cli; { Window pane; OLWindowState winState; if (!DoingWindowState) return; if (cli->framewin == NULL) return; pane = PANEWINOFCLIENT(cli); if (!PropGetOLWindowState(cli->dpy,pane,&winState)) return; if (cli->windowState == NULL) cli->windowState = MemNew(OLWindowState); *cli->windowState = winState; if (cli->isFocus) ClientSetWindowState(cli); } /* * ClientUpdateWindowState - handle PropertyNotify on _SUN_WINDOW_STATE */ void ClientUpdateWindowState(cli,event) Client *cli; XPropertyEvent *event; { if (!DoingWindowState) return; if (event->state == PropertyNewValue) { ClientGetWindowState(cli); } else { if (cli->windowState) MemFree((char *)cli->windowState); cli->windowState = (OLWindowState *)NULL; ClientDefaultWindowState(cli->dpy); } } /* ClientSendProtocol - send a protocol message to a client */ void * ClientSendProtocol(cli,proto,evtime) Client *cli; Atom proto; Time evtime; { XEvent clientEvent; clientEvent.xclient.type = ClientMessage; clientEvent.xclient.message_type = AtomProtocols; clientEvent.xclient.format = 32; clientEvent.xclient.display = cli->dpy; clientEvent.xclient.window = ClientPane(cli); clientEvent.xclient.data.l[0] = proto; clientEvent.xclient.data.l[1] = evtime; XSendEvent(cli->dpy, clientEvent.xclient.window, False, NoEventMask, &clientEvent); return NULL; } /* ClientKill - a client must be killed. If it can handle the DELETE_WINDOW * protocol, use it; otherwise, if we are forcing the client to go * away, kill it. */ void * ClientKill(cli,pforce) Client *cli; Bool pforce; { if (cli->framewin == NULL) return NULL; if (cli->protocols & DELETE_WINDOW) { ClientSendProtocol(cli,AtomDeleteWindow,LastEventTime); } else { if (pforce && ! cli->flags & CLOlwmOwned) XKillClient(cli->dpy,ClientPane(cli)); else if (GRV.Beep == BeepAlways) XBell(cli->dpy, 100); } return NULL; } /* ClientShutdown - a client must be shut down. Force the client * the go away without any further user interaction. */ void * /* ARGSUSED */ ClientShutdown(cli,junk) Client *cli; void *junk; { /* Only kill non-olwm owned clients */ if (! cli->flags & CLOlwmOwned) XKillClient(cli->dpy,ClientPane(cli)); return NULL; } /* UnparentClient - while exiting OLWM: unmap all icons that are on the * screen. Reparent all windows back to the root, suitably offset * according to their window-gravities. Also remap all non-withdrawn * windows, and remove all Withdrawn windows from the save-set (so * they don't get remapped. REMIND: We have to do this because * Withdrawn windows are still left reparented inside the frame; this * shouldn't be the case. */ /*ARGSUSED*/ void * UnparentClient(cli,junk) Client *cli; void *junk; { WinPaneFrame *frameInfo = cli->framewin; WinPane *paneInfo; Display *dpy = cli->dpy; Window pane; void ClientSetWMState(); /* if no framewin then it's probably a root window */ if (frameInfo == NULL) return NULL; paneInfo = (WinPane*)(frameInfo->fcore.panewin); pane = paneInfo->core.self; if (cli->wmState == IconicState) IconHide(cli, cli->iconwin); IconUnparent(cli, cli->iconwin); FrameUnparentPane(cli, frameInfo, paneInfo); if (cli->wmState == DontCareState) { if (!(cli->flags & CLOlwmOwned)) XChangeSaveSet(dpy, pane, SetModeDelete); } else { XMapWindow(dpy,pane); } /* If this client is Invisible, it's WM_STATE property says * it's Iconic which is probably wrong, so reset it to Normal */ if (cli->wmState == InvisibleState) ClientSetWMState(cli,NormalState); return NULL; } /* * addClient -- add this client structure to the list of active clients */ static void addClient(cli) Client *cli; { List *l = ActiveClientList; Client *tc; /* First look to see if window is already listed. */ for(tc = ListEnum(&l); tc != NULL; tc = ListEnum(&l)) { if (tc == cli) return; } /* Wasn't present, add to list. */ ActiveClientList = ListCons(cli, ActiveClientList); } /* * removeClient -- remove this client structure from the list of active * clients. */ static void removeClient(cli) Client *cli; { List **l; for (l = &ActiveClientList ; *l != NULL; l = &((*l)->next)) { if ((*l)->value == cli) { ListDestroyCell(l); return; } } } /* * ClientCreate -- allocate and initialize a client structure. */ Client * ClientCreate(dpy,screen) Display *dpy; int screen; { Client *cli = MemNew(Client); cli->wmState = DontCareState; cli->dpy = dpy; cli->screen = screen; cli->scrInfo = GetScrInfoOfScreen(screen); /* all other fields set to zero by allocation function */ addClient(cli); return cli; } /* * Using the class and instance quarks already in the client structure, look * up some resources and fill in instance variables. * * Client instance variables are looked up in the resource database using * resource specifications of the form: * * Olwm.Client.. * .client.. * * REMIND: this should be table-driven (like in Xt) eventually, but right now * we set up instance variables in open code. */ void ClientSetInstanceVars(cli) Client *cli; { XrmQuark classes[5]; XrmQuark instances[5]; XrmQuark rep; XrmValue value; /* * Fill in class and instance templates; element 3 is filled in * below. */ classes[0] = TopClassQ; classes[1] = clientCQ; classes[2] = cli->wmClassQ; classes[4] = NULLQUARK; instances[0] = TopInstanceQ; instances[1] = clientIQ; instances[2] = cli->wmInstanceQ; instances[4] = NULLQUARK; /* menu accelerators */ classes[3] = menuAccelCQ; instances[3] = menuAccelIQ; cli->menuAccelerators = True; if (XrmQGetResource(OlwmDB, instances, classes, &rep, &value)) { cli->menuAccelerators = BoolString((char *) value.addr, True); } } /* * DestroyClient -- destroy all resources associated with this client, and * remove external references to this client. If this is the current client, * and we are in click-to-type, set the focus to the topmost client *after* * having destroyed this client. * * REMIND: there is an architectural problem here, because this routine needs * to know about every place that every stores a persistent pointer to a * client structure. When a client is destroyed, this routine needs to clean * up these client pointers so they don't dangle. Some kind if ID for each * client (such as an XID) should be used, so that references can go stale * without causing fatal problems. */ void DestroyClient(cli) Client *cli; { Bool setfocus = False; Display *dpy = cli->dpy; ScreenInfo *scrInfo = cli->scrInfo; List *l; Client *tcli; extern void PreenColormapInhibit(); UnTrackSubwindows(cli, True); if (IsSelected(cli)) RemoveSelection(cli); if (cli == CurrentClient) { ClientSetCurrent(NoFocusWinInfo->core.client); /* purge the old client from lastCurrentClient */ /* REMIND need a better interface */ lastCurrentClient = NULL; setfocus = !GRV.FocusFollowsMouse; } /* Clean up references in the focus inhibit record */ if (fir.inhibited && cli == fir.cli) fir.cli = NULL; /* Clean up references in the colormap inhibit record */ PreenColormapInhibit(cli); removeClient(cli); /* * Run through the remaining clients and remove any references to this * client from their warp-back records. */ l = ActiveClientList; while (tcli = ListEnum(&l)) { if (tcli->framewin != NULL && tcli->warpInfo.warpBackClient == cli) { tcli->framewin->pointerIsWarped = False; } } /* destroy the window resources associated with the client */ IconUnparent(cli, cli->iconwin); WinCallDestroy(cli); GroupRemove(cli->groupid, cli); /* free up the client structure resources */ if (cli->wmDecors) MemFree(cli->wmDecors); if (cli->normHints) MemFree(cli->normHints); if (cli->wmHints) MemFree(cli->wmHints); if (cli->wmInstance) MemFree(cli->wmInstance); if (cli->wmClass) MemFree(cli->wmClass); if (cli->windowState) MemFree(cli->windowState); /* REMIND what's to be done with followers here? */ #ifdef DEBUG memset(cli, 0x55, sizeof(Client)); #endif /* DEBUG */ MemFree(cli); if (setfocus) ClientFocusTopmost(dpy, scrInfo, CurrentTime); } /* * ClientConfigure - a configure request event has been received on the * pane. Configure the windows accordingly. */ void ClientConfigure(cli,win,pxcre) Client *cli; WinGeneric *win; XConfigureRequestEvent *pxcre; { XWindowChanges winChange; if ((cli == NULL) || (win == NULL)) { /* We don't know about this window, or it's withdrawn * convert the request into an XConfigureWindow * call. We do not look at the hints to see if * the resize is in the proper increments, but since * the app is asking for the reconfigure this seems * right. */ winChange.x = pxcre->x; winChange.y = pxcre->y; winChange.width = pxcre->width; winChange.height = pxcre->height; winChange.border_width = pxcre->border_width; winChange.stack_mode = pxcre->detail; winChange.sibling = pxcre->above; XConfigureWindow(pxcre->display, pxcre->window, /* lint will warn: this is a long, not int */ (int) pxcre->value_mask, &winChange ); } else /* cli->wmState == NormalState or IconicState */ { WinCallConfig(cli->dpy,win,pxcre); } } /* * ClientSetWMState -- sets the WMState field of the client and * writes the contents of the WM_STATE property, * given the information in the WinInfo struct. * Since InvisibleState is private to olwm, * coerce to IconicState. */ void ClientSetWMState(cli,wmState) Client *cli; WMState wmState; { WinIconFrame *iconWinInfo = cli->iconwin; Window pane = PANEWINOFCLIENT(cli); Window icon; cli->wmState = wmState; if (cli->framewin->core.self == cli->scrInfo->vdm->client->framewin->core.self) return; if (iconWinInfo) { if ( iconWinInfo->fcore.panewin ) icon = iconWinInfo->fcore.panewin->core.self; else icon = iconWinInfo->core.self; } else { icon = None; } if (wmState == InvisibleState) wmState = IconicState; PropSetWMState(cli->dpy,pane,cli->wmState,icon); } /* ===== Drag-and-Drop Interest Property ================================== */ /* * Get the next word from the `data' array, indexed by `cur'. If this causes * us to go beyond `nitems', return silently. */ #define NEXTWORD(dest) do { \ if (++cur >= nitems) { \ XFree((char *)data); \ return; \ } \ (dest) = data[cur]; \ } while (0) #define INCR(by) do { \ cur += (by); \ if (cur >= nitems) \ return; \ } while (0) static struct { unsigned long version, nsites, wid, sid, flags, areatype, nelts, rx, ry, rw, rh; } forwardingInterest = { 0, /* version */ 1, /* nsites */ 0, /* window id -- to be filled in */ 0, /* site id -- to be filled in */ 0, /* flags -- to be filled in */ DND_INTEREST_RECT, /* areatype */ 1, /* number of rects */ 0, 0, 0, 0 /* rectangle -- to be filled in */ }; #define FI_LENGTH \ (sizeof(forwardingInterest)/sizeof(unsigned long)) /* * ClientProcessDragDropInterest - read the clients drag'n'drop interest * property, and put an interest containing the default site onto the frame * window and the icon window. If we encounter an error reading the property, * do nothing and return silently. */ void ClientProcessDragDropInterest(cli, state) Client *cli; int state; /* PropertyNewValue or PropertyDelete */ { unsigned long *data; int nitems, remain, nsites, i, areatype, nelts; int cur = 0; Window wid; unsigned long sid, flags; if (state == PropertyDelete) { DeleteProperty(cli->dpy, (WinGenericFrame *) cli->framewin, AtomSunDragDropInterest); if (cli->iconwin != NULL) DeleteProperty(cli->dpy, (WinGenericFrame *) cli->iconwin, AtomSunDragDropInterest); return; } data = GetWindowProperty(cli->dpy, PANEWINOFCLIENT(cli), AtomSunDragDropInterest, 0L, 1000000L, AtomSunDragDropInterest, 32, &nitems, &remain); if (data == NULL) return; if (data[cur] != DND_VERSION) { XFree((char *)data); return; } NEXTWORD(nsites); for (i=0; iframewin->core.width; forwardingInterest.rh = cli->framewin->core.height; ChangeProperty(cli->dpy, (WinGenericFrame *) cli->framewin, AtomSunDragDropInterest, AtomSunDragDropInterest, 32, PropModeReplace, (unsigned char *) &forwardingInterest, FI_LENGTH); /* write the property on the icon */ if (cli->iconwin != NULL) { forwardingInterest.rx = 0; forwardingInterest.ry = 0; forwardingInterest.rw = cli->iconwin->core.width; forwardingInterest.rh = cli->iconwin->core.height; ChangeProperty(cli->dpy, (WinGenericFrame *) cli->iconwin, AtomSunDragDropInterest, AtomSunDragDropInterest, 32, PropModeReplace, (unsigned char *) &forwardingInterest, FI_LENGTH); } break; } } XFree((char *)data); } /* * ClientUpdateDragDropInterest - handle PropertyNotify on DragDropInterest */ void ClientUpdateDragDropInterest(cli,event) Client *cli; XPropertyEvent *event; { ClientProcessDragDropInterest(cli,event->state); } /* ClientPane - return the pane window of a client */ Window ClientPane(cli) Client *cli; { WinPaneFrame *wf; WinPane *wp; if ((wf = cli->framewin) == NULL) return NULL; if ((wp = (WinPane *)(wf->fcore.panewin)) == NULL) return NULL; return wp->core.self; } /* * ClientOpenCloseToggle * Perform the appropriate open/close action. If the client has no icon, * attempt to dismiss it instead. */ void ClientOpenCloseToggle(cli,timestamp) Client *cli; Time timestamp; { if (ClientHasIcon(cli)) { switch (cli->wmState) { case NormalState: StateIconic(cli,timestamp); break; case IconicState: StateNormal(cli,timestamp); break; default: break; } } else { ClientKill(cli,False); } } /* * ClientStickUnstickToggle * Perform the appropriate Stick/Unstick action. */ void ClientStickUnstickToggle(cli) Client *cli; { MakeSticky(cli, !cli->sticky); if (cli->groupmask == GROUP_LEADER) GroupApply(cli->groupid, MakeSticky, cli->sticky, GROUP_DEPENDENT); } /* * ClientFullRestoreSizeToggle * Call both frame and icon full/restore toggle functions. */ void ClientFullRestoreSizeToggle(cli,timestamp) Client *cli; Time timestamp; { if (cli->wmDecors->flags & WMDecorationResizeable) { (WinFunc(cli->framewin,fcore.fullrestoreToggle))(cli,timestamp); (WinFunc(cli->iconwin,fcore.fullrestoreToggle))(cli,timestamp); } } /* * ClientMove * Moves the client to a new x,y position. */ void ClientMove(cli,trigger) Client *cli; XEvent *trigger; { UserMoveWindows(cli, trigger); } /* * ClientResize * Resizes the client to a new w,h size. */ void ClientResize(cli,trigger,which,callback,cbarg) Client *cli; XEvent *trigger; WhichResize which; void (*callback)(); void *cbarg; { if (cli->wmDecors->flags & WMDecorationResizeable) UserResizeWin(cli, trigger, which, callback, cbarg); } /* * ClientRaiseTransients * * Raise any transient windows associated with this client. Return the * client for the bottommost transient window. This is useful so that the * parent window can be restacked just below the bottommost transient. If * there are no transient windows, returns NULL. * * REMIND raises all transient windows in the order they are encountered in * the active client list, and returns the first one found. Ideally, this * should preserve the stacking order of the transients. */ Client * ClientRaiseTransients(cli) Client *cli; { List *l = ActiveClientList; Client *tc; Client *first = NULL; if (!GRV.KeepTransientsAbove) return NULL; while (tc = ListEnum(&l)) { if (tc->transientFor == PANEWINOFCLIENT(cli)) { RaiseWindow(tc->framewin); if (first == NULL) first = tc; } } return first; } /* * ClientLowerTransients * * Restack any transient windows associated with this client to be just above * this client's frame. * * REMIND this lowers all transient windows in the order they are encountered * in the active client list. Ideally, this should preserve the stacking * order of the transients. */ void ClientLowerTransients(cli) Client *cli; { List *l = ActiveClientList; Client *tc; XWindowChanges xwc; if (!GRV.KeepTransientsAbove) return; xwc.stack_mode = Above; xwc.sibling = cli->framewin->core.self; while (tc = ListEnum(&l)) { if (tc->transientFor == PANEWINOFCLIENT(cli)) { ConfigureWindow(tc->dpy, tc->framewin, CWSibling | CWStackMode, &xwc); } } } /* * ClientFront * * Moves the appropriate client window to the front of the window hierarchy. * If this window has any transient windows, move them in front first. */ void ClientFront(cli) Client *cli; { Client *firsttransient; XWindowChanges xwc; switch (cli->wmState) { case NormalState: firsttransient = ClientRaiseTransients(cli); if (firsttransient != NULL) { xwc.sibling = firsttransient->framewin->core.self; xwc.stack_mode = Below; ConfigureWindow(cli->dpy, cli->framewin, CWSibling | CWStackMode, &xwc); } else { RaiseWindow(cli->framewin); } break; case IconicState: RaiseWindow(cli->iconwin); break; default: break; } } /* * ClientBack * * Moves the appropriate client window to the back of the window hierarchy. * If this is a transient window, move its parent window to the back first, * and then move this window just in front of it. * * REMIND this isn't optimal behavior for transient windows, but it does * ensure that transient windows always remain in front of their parents. */ void ClientBack(cli) Client *cli; { WinGeneric *owner; Window ownerwin; XWindowChanges xwc; switch (cli->wmState) { case NormalState: if (cli->transientFor != 0 && GRV.KeepTransientsAbove) { owner = WIGetInfo(cli->transientFor); if (owner == NULL || owner->core.kind != WIN_PANE) { LowerWindow(cli->framewin); } else { ownerwin = owner->core.client->framewin->core.self; LowerWindow(owner->core.client->framewin); xwc.sibling = ownerwin; xwc.stack_mode = Above; ConfigureWindow(cli->dpy, cli->framewin, CWSibling | CWStackMode, &xwc); } } else { LowerWindow(cli->framewin); } break; case IconicState: LowerWindow(cli->iconwin); break; default: break; } } /* * ClientToggleStacking * * Moves the appropriate client window to the front of the window hierarchy if * it is obscured, otherwise move it to the back of the hierarchy if it * obscures any other window. REMIND: doesn't deal with transient windows at * all. */ void ClientToggleStacking(cli) Client *cli; { XWindowChanges xwc; WinGeneric *win; switch (cli->wmState) { case NormalState: win = (WinGeneric *) cli->framewin; break; case IconicState: win = (WinGeneric *) cli->iconwin; break; } xwc.stack_mode = Opposite; ConfigureWindow(cli->dpy, win, CWStackMode, &xwc); } /* * ClientRefresh * Refresh the window. We do this by creating a window on top * of the window to refresh and then immediately destroy it. * Refresh either icon or frame windows. */ void ClientRefresh(cli) Client *cli; { Window w,cliwin; int cliwidth,cliheight; XSetWindowAttributes xswa; /* Chose which window to refresh */ switch (cli->wmState) { case NormalState: cliwin = cli->framewin->core.self; cliwidth = cli->framewin->core.width; cliheight = cli->framewin->core.height; break; case IconicState: cliwin = cli->iconwin->core.self; cliwidth = cli->iconwin->core.width; cliheight = cli->iconwin->core.height; break; default: return; /*NOTREACHED*/ break; } /* if we should refresh all windows */ if (GRV.RefreshRecursively) { RecursiveRefresh(cli->dpy,cliwin); /* or just the top/main window */ } else { w = XCreateWindow(cli->dpy, cliwin, 0, 0, cliwidth, cliheight, 0, CopyFromParent, InputOutput, CopyFromParent, 0, &xswa); XMapRaised(cli->dpy,w); XDestroyWindow(cli->dpy,w); } } /* * ClientFlashOwner * Find group leader frame, bring it to the top and then * flash its title bar. * * REMIND: make sure transient windows get treated properly * before or after (which? not sure) the leader is raised. */ void ClientFlashOwner(cli) Client *cli; { Client *cliLead = GroupLeader(cli->groupid); if (cliLead && cliLead->framewin) { RaiseWindow(cliLead->framewin); WinCallDraw((WinGeneric *)cliLead->framewin); FrameFlashTitleBar(cliLead->framewin); } } /* * Toggle the pushpin of this client's window. Returns False if this client's * window has no pin, otherwise, returns True. */ Bool ClientTogglePin(cli) Client *cli; { WinPushPin *pin; if (cli->framewin == NULL || !ClientIsPinnable(cli)) return False; pin = (WinPushPin *)cli->framewin->winDeco; PushPinTogglePinState(cli->dpy,pin,True); return True; } /* ClientInBox -- given a bounding box, apply a function to all clients * which fall inside the rectangle */ void * ClientInBox(cli, close) Client *cli; ClientInBoxClosure *close; { int x, y, w, h; if (cli->screen != close->screen) return NULL; if (cli->framewin == NULL) return NULL; switch(cli->wmState) { case IconicState: x = cli->iconwin->core.x; y = cli->iconwin->core.y; w = cli->iconwin->core.width; h = cli->iconwin->core.height; break; case NormalState: x = cli->framewin->core.x; y = cli->framewin->core.y; w = cli->framewin->core.width; h = cli->framewin->core.height; break; case InvisibleState: return NULL; } if ((x >= close->bx) && (y >= close->by) && ((x + w) <= (close->bx + close->bw)) && ((y + h) <= (close->by + close->bh))) (close->func)(cli, close->timestamp); return NULL; } /* * ClientUpdateBusy -- the busy state has (possibly) been changed for a client. * if the client is going from normal to busy: * mark the client as busy * put up a busy window * if the client is going from busy to normal: * mark the client as unbusy * take down a busy window (if it exists) */ void ClientUpdateBusy(cli,event) Client *cli; XPropertyEvent *event; { int *newBusyPtr; int newBusy; unsigned long nItems, remain; if (event->state == PropertyNewValue) { newBusyPtr = GetWindowProperty(cli->dpy, PANEWINOFCLIENT(cli), AtomWindowBusy, 0L, LONG_LENGTH(*newBusyPtr), XA_INTEGER, 32, &nItems, &remain); if (newBusyPtr == NULL) { /* property not found or has the wrong type */ newBusy = 0; } else { if (nItems != LONG_LENGTH(newBusy) || remain != 0) { /* got a property, but it is invalid */ newBusy = 0; } else { /* valid property */ newBusy = *newBusyPtr; } XFree((char *)newBusyPtr); } } else { /* property was deleted */ newBusy = 0; } /* * Losing busy */ if (cli->isBusy && (newBusy == 0)) { cli->isBusy = False; if (cli->isFocus) ClientSetFocus(cli,True,event->time); FrameSetBusy(cli->framewin, False); } /* * Else Gaining busy */ else if (!cli->isBusy && (newBusy == 1)) { cli->isBusy = True; FrameSetBusy(cli->framewin, True); if (cli->isFocus) ClientSetFocus(cli,True,event->time); } } /* * VisitPinnedMenuClients - visit all pinned menu clients on all screens */ void VisitPinnedMenuClients(pproc, extra) void (*pproc)(); void *extra; { List *l = ActiveClientList; Client *cli; for (cli = ListEnum(&l); cli != NULL; cli = ListEnum(&l)) { if (cli->framewin && cli->framewin->fcore.panewin && cli->framewin->fcore.panewin->core.kind == WIN_PINMENU) { (*pproc)(cli, extra); } } } /* * REMIND this function should be removed when menu/menuinfos * are reorged. */ void DestroyPinnedMenuClients() { VisitPinnedMenuClients(DestroyClient, (void *) NULL); } /* ===== focus stuff ====================================================== */ /* * ClientInhibitFocus -- inhibit or uninhibit focus changing. If inhibit is * True, starts focus inhibition. If False, removes inhibition and sets the * focus to the cached client, if any. The client might be null if it had * been destroyed while focus was inhibited. */ void ClientInhibitFocus(inhibit) Bool inhibit; { if (inhibit) { fir.inhibited = True; fir.cli = NULL; } else { fir.inhibited = False; if (fir.cli != NULL) ClientSetFocus(fir.cli, fir.sendTF, fir.evtime); fir.cli = NULL; } } /* * ClientSetFocus -- possibly set the focus to this client. If focus changing * is inhibited, store information in the inhibit record. Otherwise, set the * focus normally. If the client is GloballyActive, we only send TakeFocus * messages if sendTF is true. If the client has a different focus mode * sendTF is ignored. If the client is a NoInput client, set the focus to the * frame itself. REMIND: this works, if a little bizarre. The frame doesn't * select for keystrokes, so they fall to the root. The root event handler * ends up beeping, which is OK. */ void ClientSetFocus(cli,sendTF,evtime) Client *cli; Bool sendTF; Time evtime; { if (fir.inhibited) { fir.cli = cli; fir.sendTF = sendTF; fir.evtime = evtime; return; } switch (cli->wmState) { case IconicState: if (cli->iconwin != NULL) XSetInputFocus(cli->dpy, cli->iconwin->core.self, RevertToParent, evtime); break; case NormalState: switch (cli->focusMode) { case NoInput: XSetInputFocus(cli->dpy, cli->framewin->core.self, RevertToParent, evtime); break; case Passive: case LocallyActive: XSetInputFocus(cli->dpy, PANEWINOFCLIENT(cli), RevertToParent, evtime); break; case GloballyActive: if (sendTF) { ClientSendProtocol(cli, AtomTakeFocus, evtime); } break; } break; case InvisibleState: return; } } /* * Current Client. * * The current client is used by the mouseless functions. These functions * maintain the current and previously-current client. If cli is already the * current client, don't do anything. This is necessary because this may be * called when a client is activated explicitly (from ClientActivate) or * implicitly (when a globally active client takes the focus). Therefore, if * ClientActivate activates a globally active client, this function will be * called twice. * * Eventually, this may change to be a "ring-buffer" history of clients. * * REMIND: the notion of the current client may be a vestige from the time * when some objects (like icons and pinned menus) didn't take the focus. * Activating one of these items would set the focus to the NoFocus window, * but set the current client to that particular client. Thus, having the * focus was not the same as being the current client. This distinction may * no longer be true, in which case it is sufficient to keep track of the * client that has the focus, without the separate notion of a current client. * One possible problem may occur with buggy Globally Active clients that * don't take the focus when requested. If we rely on the focus to keep track * of the current client, we may get "stuck" if the next client fails to take * the focus when requested. */ void ClientSetCurrent(cli) Client *cli; { if (cli != CurrentClient) { lastCurrentClient = CurrentClient; CurrentClient = cli; } } Client * ClientGetLastCurrent() { return lastCurrentClient; } /* * Client Activation. * * Activate the named client. The difference between this and ClientSetFocus * is that this function selects and raises the client's window in addition to * setting the focus. Further, this function works on iconic clients as well * as open ones. This function sets the current client explicitly. We would * rely on the resulting focus change to set the current client, except that * a globally active client may decline the focus when it is asked to take it. * * REMIND this shouldn't have to deal with selections at all. However, * icons and headerless windows currently have no way to indicate that they * have the focus. Therefore, select them. */ void ClientActivate(dpy, cli, time) Display *dpy; Client *cli; Time time; { /* * If the current client is selected, assume it was selected because it * was made the active client, and deselect it. (See REMIND above.) */ if (CurrentClient != NULL && CurrentClient->isSelected) ClearSelections(dpy); /* * If we are being asked to activate a NULL client, or a client without a * frame (i.e. a root client), activate the NoFocus client. */ if (cli == NULL) { NoFocusTakeFocus(dpy, time, NULL); } else if (cli->framewin == NULL) { NoFocusTakeFocus(dpy, time, cli->scrInfo); } else { ClientSetFocus(cli, True, time); /* * If the client is iconic or has no header, select it to show that it * is the active client. (See REMIND above.) */ if (cli->wmState == IconicState || !(cli->wmDecors->flags & WMDecorationHeader)) { ClearSelections(dpy); AddSelection(cli, time); } if (GRV.RaiseOnActivate) ClientFront(cli); ClientSetCurrent(cli); } } /* * Set the focus to the topmost window on the given screen. */ void ClientFocusTopmost(dpy, scrinfo, time) Display *dpy; ScreenInfo *scrinfo; Time time; { Window wjunk; Window *children; unsigned int nchildren; int i; Client *topframeclient = NULL; WinGeneric *win; if (0 == XQueryTree(dpy, scrinfo->rootid, &wjunk, &wjunk, &children, &nchildren)) { return; } /* * QueryTree returns children on bottom-to-top order, so search backward. */ for (i = nchildren-1; i >= 0; --i) { win = WIGetInfo(children[i]); if (win != NULL && win->core.kind == WIN_FRAME && win->core.client->wmState == NormalState) { topframeclient = win->core.client; break; } } if (topframeclient != NULL) ClientSetFocus(topframeclient, True, time); else NoFocusTakeFocus(dpy, time, scrinfo); XFree((char *) children); } /* ===== Client Property Changes ================================== */ typedef struct { Atom *propAtom; void (*updateFunc)(); } ClientPropUpdate; static ClientPropUpdate propUpdateTable[] = { &AtomWMName, FrameUpdateHeader, &AtomLeftFooter, FrameUpdateFooter, &AtomRightFooter, FrameUpdateFooter, &AtomWMIconName, IconUpdateName, &AtomColorMapWindows, ColorUpdateColorMapWindows, &AtomProtocols, StateUpdateWMProtocols, &AtomWMNormalHints, StateUpdateWMNormalHints, &AtomWMHints, StateUpdateWMHints, &AtomWindowBusy, ClientUpdateBusy, &AtomSunWindowState, ClientUpdateWindowState, &AtomSunDragDropInterest, ClientUpdateDragDropInterest, &AtomWinAttr, StateUpdateWinAttr, &AtomDecorAdd, StateUpdateDecorAdd, &AtomDecorDel, StateUpdateDecorDel, #ifdef OW_I18N_L4 &AtomLeftIMStatus, FrameUpdateIMStatus, &AtomLeftIMStatus, FrameUpdateIMStatus, #endif }; #define NPROPUPDATETABLE (sizeof(propUpdateTable)/sizeof(ClientPropUpdate)) /* ClientDistributeProperty -- a property of the client has changed. * Forward the change notification to the appropriate handler. */ void ClientDistributeProperty(cli, event) Client *cli; XPropertyEvent *event; { int i; for (i=0; iatom == *propUpdateTable[i].propAtom) { (propUpdateTable[i].updateFunc)(cli,event); break; } } } xview-3.2p1.4/clients/olvwm-4.1/cmdstream.c100644 1750 1750 14046 5515337303 15703 0ustar mbmb#ifdef IDENT #ident "@(#)cmdstream.c 26.9 93/06/28 SMI" #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ /* ---------------------------------------------------------------------- * cmdstream.c * ---------------------------------------------------------------------*/ #include #ifdef SYSV #include #else #include #endif #include "cmdstream.h" #include "mem.h" extern char *strtok(); /* ---------------------------------------------------------------------- * Local Data Structures * ---------------------------------------------------------------------*/ typedef struct _CList { Command *this; struct _CList *next; } CList; typedef struct _CmdInfo { FILE *input; FILE *output; CList *cmdListHead; } CmdInfo; /* ---------------------------------------------------------------------- * Data Definitions * ---------------------------------------------------------------------*/ static CmdInfo cmdInfo = { (FILE *)0, (FILE *)0, (CList *)0 }; /* ---------------------------------------------------------------------- * Local Forward Declarations * ---------------------------------------------------------------------*/ static Command *MatchCommand(); static CmdAttr *MatchAttr(); static int EncodeAttrValue(); static int DecodeAttrValue(); /* ---------------------------------------------------------------------- * SetCmdStream * ---------------------------------------------------------------------*/ void SetCmdStream(instream,outstream) FILE *instream; FILE *outstream; { if (instream == NULL) fclose(cmdInfo.input); cmdInfo.input = instream; if (outstream == NULL) fclose(cmdInfo.output); cmdInfo.output = outstream; } /* ---------------------------------------------------------------------- * SendCmd * ---------------------------------------------------------------------*/ int SendCmd(cmd) Command *cmd; { CmdAttr *attr; int i; if (cmdInfo.output == (FILE *)NULL) return FALSE; fprintf(cmdInfo.output,"%s\n",cmd->keyword); for (i=0; iattrLen; i++) { attr = &(cmd->attrList[i]); fprintf(cmdInfo.output,"\t%s=",attr->name); EncodeAttrValue(attr,cmdInfo.output); fputs("\n",cmdInfo.output); } fputs(";\n",cmdInfo.output); fflush(cmdInfo.output); return TRUE; } /* ---------------------------------------------------------------------- * RegisterCmd * ---------------------------------------------------------------------*/ void RegisterCmd(cmd) Command *cmd; { CList *item; item = MemNew(CList); item->this = cmd; item->next = cmdInfo.cmdListHead; cmdInfo.cmdListHead = item; } /* ---------------------------------------------------------------------- * GetCmd * ---------------------------------------------------------------------*/ int GetCmd() { #define CMDBUFLEN 1024 char cmdBuf[CMDBUFLEN]; while (fgets(cmdBuf,CMDBUFLEN,cmdInfo.input) != (char *)NULL) { if (ParseCmd(cmdBuf) == FALSE) return FALSE; } return TRUE; } /* ---------------------------------------------------------------------- * ParseCmd * ---------------------------------------------------------------------*/ int ParseCmd(line) char *line; { char *token; char *sep = " \t\n"; static Command *cmd = (Command *)NULL; static CmdAttr *attr = (CmdAttr *)NULL; for (token=strtok(line,sep); token; token=strtok(0,sep)) { if (cmd == (Command *)NULL) { if ((cmd = MatchCommand(token)) == (Command *)NULL) return FALSE; } else if (token[0] == ';') { if (cmd->callback) (*cmd->callback)(cmd); cmd = (Command *)NULL; attr = (CmdAttr *)NULL; } else { if ((attr = MatchAttr(cmd,token)) == (CmdAttr *)NULL) { cmd = (Command *)NULL; return FALSE; } } } #ifdef lint attr = attr; #endif return FALSE; } /* ---------------------------------------------------------------------- * MatchKeyword * ---------------------------------------------------------------------*/ static Command * MatchCommand(keyword) char *keyword; { CList *item; for (item=cmdInfo.cmdListHead; item; item=item->next) { if (!strcmp(keyword,item->this->keyword)) { return item->this; } } return (Command *)NULL; } /* ---------------------------------------------------------------------- * MatchAttr * ---------------------------------------------------------------------*/ static CmdAttr * MatchAttr(cmd,name) Command *cmd; char *name; { int i,equalindex; char *equalpos; equalpos = strchr(name,'='); if (!equalpos) return (CmdAttr *)NULL; equalindex = equalpos - name; for (i=0; iattrLen; i++) { if (!strncmp(name,cmd->attrList[i].name,equalindex)) { if (!DecodeAttrValue(&cmd->attrList[i],++equalpos)) return (CmdAttr *)NULL; return &(cmd->attrList[i]); } } return (CmdAttr *)NULL; } /* ---------------------------------------------------------------------- * EncodeAttrValue * ---------------------------------------------------------------------*/ static int EncodeAttrValue(attr,stream) CmdAttr *attr; FILE *stream; { switch (attr->type) { case INT: fprintf(stream,"%d",attr->value.ival); break; case FLOAT: fprintf(stream,"%f",attr->value.fval); break; case STRING: fprintf(stream,"%s",attr->value.sval); break; } return TRUE; } /* ---------------------------------------------------------------------- * DecodeAttrValue * ---------------------------------------------------------------------*/ static int DecodeAttrValue(attr,valuestr) CmdAttr *attr; char *valuestr; { char *ptr; int status = TRUE; switch (attr->type) { case INT: attr->value.ival = (int)strtol(valuestr,&ptr,10); if (ptr == valuestr) status = FALSE; break; case FLOAT: attr->value.fval = (float)strtod(valuestr,&ptr); if (ptr == valuestr) status = FALSE; break; case STRING: attr->value.sval = MemNewString(valuestr); if (attr->value.sval == (char *)NULL) status = FALSE; break; default: status = FALSE; break; } return status; } xview-3.2p1.4/clients/olvwm-4.1/cursors.c100644 1750 1750 25626 5515337303 15432 0ustar mbmb#include #include #include #include #include #include #include #include #include "i18n.h" #include "olcursor.h" #include "ollocale.h" #include "mem.h" #include "olwm.h" #include "win.h" #include "menu.h" #include "globals.h" #include "screen.h" #include "cursors.h" #include "st.h" #ifdef IDENT #ident "@(#)cursors.c 1.4 olvwm version 07 Jan 1994" #endif static st_table *cursorTable; static st_table *fontTable; struct _cursor_data { char *name; int num; }; static struct _cursor_data cursor_names[] = { { "XC_num_glyphs", XC_num_glyphs }, { "XC_X_cursor", XC_X_cursor }, { "XC_arrow", XC_arrow }, { "XC_based_arrow_down", XC_based_arrow_down }, { "XC_based_arrow_up", XC_based_arrow_up }, { "XC_boat", XC_boat }, { "XC_bogosity", XC_bogosity }, { "XC_bottom_left_corner", XC_bottom_left_corner }, { "XC_bottom_right_corner", XC_bottom_right_corner }, { "XC_bottom_side", XC_bottom_side }, { "XC_bottom_tee", XC_bottom_tee }, { "XC_box_spiral", XC_box_spiral }, { "XC_center_ptr", XC_center_ptr }, { "XC_circle", XC_circle }, { "XC_clock", XC_clock }, { "XC_coffee_mug", XC_coffee_mug }, { "XC_cross", XC_cross }, { "XC_cross_reverse", XC_cross_reverse }, { "XC_crosshair", XC_crosshair }, { "XC_diamond_cross", XC_diamond_cross }, { "XC_dot", XC_dot }, { "XC_dotbox", XC_dotbox }, { "XC_double_arrow", XC_double_arrow }, { "XC_draft_large", XC_draft_large }, { "XC_draft_small", XC_draft_small }, { "XC_draped_box", XC_draped_box }, { "XC_exchange", XC_exchange }, { "XC_fleur", XC_fleur }, { "XC_gobbler", XC_gobbler }, { "XC_gumby", XC_gumby }, { "XC_hand1", XC_hand1 }, { "XC_hand2", XC_hand2 }, { "XC_heart", XC_heart }, { "XC_icon", XC_icon }, { "XC_iron_cross", XC_iron_cross }, { "XC_left_ptr", XC_left_ptr }, { "XC_left_side", XC_left_side }, { "XC_left_tee", XC_left_tee }, { "XC_leftbutton", XC_leftbutton }, { "XC_ll_angle", XC_ll_angle }, { "XC_lr_angle", XC_lr_angle }, { "XC_man", XC_man }, { "XC_middlebutton", XC_middlebutton }, { "XC_mouse", XC_mouse }, { "XC_pencil", XC_pencil }, { "XC_pirate", XC_pirate }, { "XC_plus", XC_plus }, { "XC_question_arrow", XC_question_arrow }, { "XC_right_ptr", XC_right_ptr }, { "XC_right_side", XC_right_side }, { "XC_right_tee", XC_right_tee }, { "XC_rightbutton", XC_rightbutton }, { "XC_rtl_logo", XC_rtl_logo }, { "XC_sailboat", XC_sailboat }, { "XC_sb_down_arrow", XC_sb_down_arrow }, { "XC_sb_h_double_arrow", XC_sb_h_double_arrow }, { "XC_sb_left_arrow", XC_sb_left_arrow }, { "XC_sb_right_arrow", XC_sb_right_arrow }, { "XC_sb_up_arrow", XC_sb_up_arrow }, { "XC_sb_v_double_arrow", XC_sb_v_double_arrow }, { "XC_shuttle", XC_shuttle }, { "XC_sizing", XC_sizing }, { "XC_spider", XC_spider }, { "XC_spraycan", XC_spraycan }, { "XC_star", XC_star }, { "XC_target", XC_target }, { "XC_tcross", XC_tcross }, { "XC_top_left_arrow", XC_top_left_arrow }, { "XC_top_left_corner", XC_top_left_corner }, { "XC_top_right_corner", XC_top_right_corner }, { "XC_top_side", XC_top_side }, { "XC_top_tee", XC_top_tee }, { "XC_trek", XC_trek }, { "XC_ul_angle", XC_ul_angle }, { "XC_umbrella", XC_umbrella }, { "XC_ur_angle", XC_ur_angle }, { "XC_watch", XC_watch }, { "XC_xterm", XC_xterm }, { "OLC_basic", OLC_basic }, { "OLC_move", OLC_move }, { "OLC_copy", OLC_copy }, { "OLC_busy", OLC_busy }, { "OLC_stop", OLC_stop }, { "OLC_panning", OLC_panning }, { "OLC_target", OLC_target }, { "OLC_nouse", OLC_nouse }, { "OLC_ptr", OLC_ptr }, { "OLC_beye", OLC_beye }, { "OLC_rtarr", OLC_rtarr }, { "OLC_xhair", OLC_xhair }, { "OLC_xcurs", OLC_xcurs }, { "OLC_hourg", OLC_hourg }, { NULL, -1 } }; static int cursorHash(a, modulus) register char *a; register int modulus; { int sum = 0; while (*a) sum += *a++; return sum % modulus; } #define DEFAULT_CURSOR XC_left_ptr static Font resLoadFont(dpy, file) Display *dpy; char *file; { Font fid; XFontStruct *p; if (!fontTable) fontTable = st_init_table(strcmp, cursorHash); if (!st_lookup(fontTable, file, &fid)) { if ((p = XLoadQueryFont(dpy, file)) == NULL) { ErrorWarning(gettext("An invalid font file was named for a cursor font")); fid = (Font) 0; } else { fid = p->fid; st_insert(fontTable, file, (char *) fid); } } return fid; } static Bool findNextColor(dpy, ptr, xcolor, cmap) Display *dpy; char **ptr; XColor *xcolor; Colormap cmap; { char *color, tmp; Bool return_flag = True; for ( ; **ptr && isspace(**ptr); ++(*ptr)) ; /* read to next space */ if (**ptr == '\0') return_flag = False; else { color = *ptr; for ( ; **ptr && !isspace( **ptr ); ++(*ptr) ) ; /* read to next space */ tmp = **ptr; **ptr = '\0'; if (!XParseColor(dpy, cmap, color, xcolor) || !XAllocColor(dpy, cmap, xcolor)) return_flag = False; **ptr = tmp; } return return_flag; } static void createCursor(dpy, cmap, pointer, cursor_id, font_file, no_colors, colors_p) Display *dpy; Colormap cmap; Cursor *pointer; int cursor_id; char *font_file; Bool no_colors; char *colors_p; { static XColor def_bg, def_fg; static Bool def_cols_set = False; XColor fg, bg; Font fid; Bool use_default = False; if (!def_cols_set) { def_fg.pixel = BlackPixel(dpy, DefaultScreen(dpy)); XQueryColor(dpy, cmap, &def_fg); def_bg.pixel = WhitePixel(dpy, DefaultScreen(dpy)); XQueryColor(dpy, cmap, &def_bg); def_cols_set = True; } if (no_colors) { fg = def_fg; bg = def_bg; } else { char *p = colors_p; if (findNextColor(dpy, (++p, &p), &fg, cmap)) { if (!*p || !findNextColor(dpy, (++p, &p), &bg, cmap)) bg = def_bg; } else { fg = def_fg; bg = def_bg; } } if (font_file == NULL || (fid = resLoadFont(dpy, font_file)) == 0) use_default = True; else { if ((*pointer = XCreateGlyphCursor(dpy, fid, fid, cursor_id, cursor_id+1, &fg, &bg )) == NULL) use_default = True; } if (use_default) { *pointer = XCreateFontCursor(dpy, DEFAULT_CURSOR); XRecolorCursor(dpy, *pointer, &def_fg, &def_bg); } } static void initPointer(dpy, cmap, data, pointer) Display *dpy; Colormap cmap; char *data; Cursor *pointer; { char *our_copy, *ptr; Bool end = False; int cursor_id; char *font_file = NULL; char *cursor_id_p; if (data) { our_copy = MemNewString(data); for (ptr = our_copy; *ptr && !isspace( *ptr ); ++ptr) ; if ( *ptr == '\0' ) end = True; else *ptr = '\0'; if (st_lookup(cursorTable, our_copy, &cursor_id)) { if (our_copy[0] == 'X') font_file = "cursor"; else if (our_copy[0] == 'O') font_file = "olcursor"; createCursor(dpy, cmap, pointer, cursor_id, font_file, end, ptr); } else { if (end) createCursor(dpy, cmap, pointer, 0, (char *) NULL, end, ptr); font_file = our_copy; for (++ptr; *ptr && isspace( *ptr ); ++ptr) ; cursor_id_p = ptr; for (; *ptr && !isspace( *ptr ); ++ptr ) ; if ( *ptr == '\0' ) end = True; else *ptr = '\0'; cursor_id = atoi(cursor_id_p); createCursor(dpy, cmap, pointer, cursor_id, font_file, end, ptr); } MemFree( our_copy ); } } static void initOtherPointers(dpy, cmap) Display *dpy; Colormap cmap; { initPointer(dpy, cmap, GRV.BasicPointerData, &GRV.BasicPointer); initPointer(dpy, cmap, GRV.MovePointerData, &GRV.MovePointer); initPointer(dpy, cmap, GRV.BusyPointerData, &GRV.BusyPointer); initPointer(dpy, cmap, GRV.IconPointerData, &GRV.IconPointer); initPointer(dpy, cmap, GRV.ResizePointerData, &GRV.ResizePointer); initPointer(dpy, cmap, GRV.MenuPointerData, &GRV.MenuPointer); initPointer(dpy, cmap, GRV.QuestionPointerData, &GRV.QuestionPointer); initPointer(dpy, cmap, GRV.TargetPointerData, &GRV.TargetPointer); initPointer(dpy, cmap, GRV.PanPointerData, &GRV.PanPointer); initPointer(dpy, cmap, GRV.CloseUpPointerData, &GRV.CloseUpPointer); initPointer(dpy, cmap, GRV.CloseDownPointerData, &GRV.CloseDownPointer); } static Bool initResizePointers(dpy, cmap) Display *dpy; Colormap cmap; { char *ptr; Bool colorsIncluded = False; char *our_copy; XColor colFGC, colBGC, colFGM, colBGM; int i; if (GRV.SpecialResizePointerData) { our_copy = MemNewString( GRV.SpecialResizePointerData ); for (ptr = our_copy; *ptr && !isspace(*ptr); ++ptr) ; /* get the first space in ptr */ if (*ptr) { colorsIncluded = True; *ptr = '\0'; } if (matchBool(our_copy, &GRV.SpecialResizePointers) == True ) { /* Turn on cursors */ /* Arrays are in order of enum WhichResize, defined in win.h */ GRV.CornerPointers[0] = XCreateFontCursor(dpy, XC_ul_angle); GRV.CornerPointers[1] = XCreateFontCursor(dpy, XC_ur_angle); GRV.CornerPointers[2] = XCreateFontCursor(dpy, XC_ll_angle); GRV.CornerPointers[3] = XCreateFontCursor(dpy, XC_lr_angle); GRV.ResizePointers[0] = XCreateFontCursor(dpy, XC_top_left_corner); GRV.ResizePointers[1] = XCreateFontCursor(dpy, XC_top_right_corner); GRV.ResizePointers[2] = XCreateFontCursor(dpy, XC_bottom_left_corner); GRV.ResizePointers[3] = XCreateFontCursor(dpy, XC_bottom_right_corner); if (colorsIncluded) { if (!findNextColor(dpy, (++ptr, &ptr), &colFGC, cmap) || !*ptr || !findNextColor(dpy, (++ptr, &ptr), &colBGC, cmap) || !*ptr || !findNextColor(dpy, (++ptr, &ptr), &colFGM, cmap) || !*ptr || !findNextColor(dpy, (++ptr, &ptr), &colBGM, cmap)) { ErrorWarning(gettext("Bad color specification for special resize cursor")); colorsIncluded = False; } } if (!colorsIncluded) { /* if not included, get default colors */ colFGC.pixel = BlackPixel(dpy, DefaultScreen(dpy)); XQueryColor(dpy, cmap, &colFGC); colBGC.pixel = WhitePixel(dpy, DefaultScreen(dpy)); XQueryColor(dpy, cmap, &colBGC); colFGM = colFGC; colBGM = colBGC; } for (i = 0; i < 4; ++i) { XRecolorCursor(dpy, GRV.CornerPointers[i], &colFGC, &colBGC); XRecolorCursor(dpy, GRV.ResizePointers[i], &colFGM, &colBGM); } } MemFree(our_copy); } else return False; return True; } /* * * ============================================================================ * Entry Points */ void InitCursors(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { Colormap cmap; struct _cursor_data *p; cmap = scrInfo->colormap; cursorTable = st_init_table(strcmp, cursorHash); for (p = cursor_names; p->name; p++) st_insert(cursorTable, (int) p->name, (char *) p->num); if (!initResizePointers(dpy, cmap)) GRV.SpecialResizePointers = False; initOtherPointers(dpy, cmap); } xview-3.2p1.4/clients/olvwm-4.1/debug.c100644 1750 1750 3103 5515337303 14762 0ustar mbmb#ifdef IDENT #ident "@(#)debug.c 26.11 93/06/28 SMI" #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #include #include #include #include "i18n.h" #include "olwm.h" #include "win.h" #include "debug.h" static char *eventNames[] = { "", "", "KeyPress", "KeyRelease", "ButtonPress", "ButtonRelease", "MotionNotify", "EnterNotify", "LeaveNotify", "FocusIn", "FocusOut", "KeymapNotify", "Expose", "GraphicsExpose", "NoExpose", "VisibilityNotify", "CreateNotify", "DestroyNotify", "UnmapNotify", "MapNotify", "MapRequest", "ReparentNotify", "ConfigureNotify", "ConfigureRequest", "GravityNotify", "ResizeRequest", "CirculateNotify", "CirculateRequest", "PropertyNotify", "SelectionClear", "SelectionRequest", "SelectionNotify", "ColormapNotify", "ClientMessage", "MappingNotify" }; void DebugEvent(ep, str) XEvent *ep; char *str; { (void)fprintf(stderr, "%s:%s - ", str, eventNames[ep->type]); (void)fflush(stderr); } static char *typeNames[] = { "Frame", "Icon", "Resize", "Pushpin", "Button", "Pane", "IconPane", "Colormap", "Menu", "PinMenu", "NoFocus", "Root", "Busy" }; void DebugWindow(win) WinGeneric *win; { if (win == NULL) { (void)fprintf(stderr, "other window - "); } else { (void)fprintf(stderr, "win %x (self %lu) %s - ", win, win->core.self, typeNames[win->core.kind]); } (void)fflush(stderr); } xview-3.2p1.4/clients/olvwm-4.1/defaults.c100644 1750 1750 10743 6331436377 15543 0ustar mbmb#ifdef IDENT #ident "@(#)defaults.c 26.22 93/06/28 SMI" #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifdef SYSV #include #ifdef SVR4 #include #endif #endif #include #include #include #include #include #include #include #include #include #include #include #include #ifdef OW_I18N_L4 #include #endif #include "i18n.h" #include "ollocale.h" #include "olwm.h" #include "defaults.h" #include "globals.h" #include "resources.h" /* * GetUserDefaults * * Get RESOURCE_MANAGER string from server; if none, then load from * $HOME/.Xdefaults. If XENVIRONMENT names a file, load and merge it. * Otherwise, load $HOME/.Xdefaults-hostname and merge it. See * Xlib/XGetDflt.c. We could use that code if it weren't Xlib-private. */ XrmDatabase GetUserDefaults(dpy) Display *dpy; { XrmDatabase serverDB = NULL; XrmDatabase fileDB = NULL; char filename[1024]; unsigned long nitems, remain; char *rsrcstr; char *homedir = getenv("HOME"); char *envfile = getenv("XENVIRONMENT"); char hostname[100]; #ifndef SVR4 int namelen; #endif rsrcstr = GetWindowProperty(dpy, RootWindow(dpy, 0), XA_RESOURCE_MANAGER, 0L, 100000000L, /* REMIND: use ENTIRE_CONTENTS */ XA_STRING, 0L, &nitems, &remain); if (rsrcstr == NULL) { if (homedir != NULL) { (void) strcpy(filename, homedir); (void) strcat(filename, "/.Xdefaults"); serverDB = XrmGetFileDatabase(filename); } } else { serverDB = XrmGetStringDatabase(rsrcstr); XFree(rsrcstr); } /* Now try XENVIRONMENT or $HOME/.Xdefaults-hostname. */ if (envfile == NULL) { if (homedir != NULL) { (void) strcpy(filename, homedir); (void) strcat(filename, "/.Xdefaults-"); #ifdef SVR4 if (sysinfo(SI_HOSTNAME, hostname, sizeof(hostname)) != -1) { #else #ifdef __linux if (0 == gethostname(hostname, sizeof(hostname))) { #else if (0 == gethostname(hostname, sizeof(hostname), &namelen)) { #endif #endif (void) strcat(filename, hostname); fileDB = XrmGetFileDatabase(filename); } } } else { fileDB = XrmGetFileDatabase(envfile); } if (fileDB != NULL) XrmMergeDatabases(fileDB, &serverDB); return serverDB; } /* * GetAppDefaults * * Gets the app-defaults file and return a database of its contents. If we * are running internationalized, looks in the following places * * $OPENWINHOME/lib/locale//app-defaults * /usr/lib/X11/app-defaults/ * $OPENWINHOME/lib/app-defaults * /usr/lib/X11/app-defaults * * If we are not running internationalized, the entries with are * ignored. Returns NULL if no app-defaults file is found. * * REMIND: this should use XFILESEARCHPATH. */ XrmDatabase GetAppDefaults() { XrmDatabase appDB = NULL; char filename[1024]; char *openwinhome = getenv("OPENWINHOME"); #ifdef OW_I18N_L3 char *locale; #endif #ifdef OPENWINHOME_DEFAULT /* martin-2.buck@student.uni-ulm.de */ if (!openwinhome) { openwinhome = OPENWINHOME_DEFAULT; } #endif #ifdef OW_I18N_L3 locale = GRV.lc_basic.locale; if (locale != NULL) { #ifndef OPENWINHOME_DEFAULT if (openwinhome != NULL) { #endif (void) sprintf(filename, "%s/lib/locale/%s/app-defaults/Olwm", openwinhome, locale); appDB = XrmGetFileDatabase(filename); if (appDB != NULL) return appDB; #ifndef OPENWINHOME_DEFAULT } #endif (void) sprintf(filename, "/usr/lib/X11/app-defaults/%s/Olwm", locale); appDB = XrmGetFileDatabase(filename); if (appDB != NULL) return appDB; } #endif #ifndef OPENWINHOME_DEFAULT if (openwinhome != NULL) { #endif (void) strcpy(filename, openwinhome); (void) strcat(filename, "/lib/app-defaults/Olwm"); appDB = XrmGetFileDatabase(filename); if (appDB != NULL) return appDB; #ifndef OPENWINHOME_DEFAULT } #endif appDB = XrmGetFileDatabase("/usr/lib/X11/app-defaults/Olwm"); return appDB; } /* ===== global functions ================================================= */ /* * GetDefaults * * XXX - this has been turned into just a call to InitGlobals(). Does it * still need to exist? */ void GetDefaults(dpy, commandlineDB) Display *dpy; XrmDatabase commandlineDB; { InitGlobals(dpy, commandlineDB); } xview-3.2p1.4/clients/olvwm-4.1/dsdm.c100644 1750 1750 43721 5515337304 14656 0ustar mbmb#ifdef IDENT #ident "@(#)dsdm.c 1.5 93/06/28" #endif /* * (c) Copyright 1992 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ /* * DSDM - Drop Site Database Manager for drag'n'drop. * * Master algorithm: * * Start with visible region as whole screen. * For each top-level window, do * (0) flatten its interest rectangles * (1) intersect interest rects with the top-level window * (2) intersect them with the visible region * (3) append them to the master list * (4) subtract this top-level frame from the visible region */ #include #include #include #include #include #include "i18n.h" #include "ollocale.h" #include "mem.h" #include "olwm.h" #include "properties.h" #include "win.h" #include "error.h" #include "dsdm.h" /* * Round-trip metering. Meter the XGetGeometry, XGetWindowAttributes, * XGetWindowProperty, XQueryTree, and XTranslateCoordinates calls. Calls to * them in the code must be coded as _XWhatever((arg, arg, ...)). To enable, * just add #define RTMETER. */ #ifdef RTMETER int _rt_count; #define INC_RT_COUNT ++_rt_count , #else #define INC_RT_COUNT #endif /* RTMETER */ #define _XGetGeometry(args) (\ INC_RT_COUNT \ XGetGeometry args) #define _XGetWindowAttributes(args) (\ INC_RT_COUNT \ XGetWindowAttributes args) #define _XGetWindowProperty(args) (\ INC_RT_COUNT \ XGetWindowProperty args) #define _XQueryTree(args) (\ INC_RT_COUNT \ XQueryTree args) #define _XTranslateCoordinates(args) (\ INC_RT_COUNT \ XTranslateCoordinates args) /* ===== externs ========================================================== */ extern Atom AtomAtomPair; extern Atom AtomMultiple; extern Atom AtomSunDragDropDSDM; extern Atom AtomSunDragDropInterest; extern Atom AtomSunDragDropSiteRects; extern Atom AtomTargets; extern Atom AtomTimestamp; extern Atom AtomWMState; extern Window NoFocusWin; /* ===== private data ===================================================== */ typedef struct _site { int screen; unsigned long site_id; Window window_id; unsigned long flags; Region region; struct _site *next; } site_t; static site_t *MasterSiteList = NULL; static site_t **NextSite = &MasterSiteList; static int SitesFound = 0; static Time selectionTime; static Bool selectionOwned = False; /* ===== regions ========================================================== */ /* * This region stuff is stolen from region.h. It is dependent upon the * current Xlib implementation of regions. */ typedef struct _box { short x1, x2, y1, y2; } BOX; typedef struct { long size; long numRects; BOX *rects; BOX extents; } REGION; #define REGION_NUMRECTS(r) (((REGION *)(r))->numRects) /* ===== private functions ================================================ */ /* * Get the interest property from this window. If a valid interest property * was found, a pointer to the data is returned. This data must be freed with * XFree(). If no valid property is found, NULL is returned. */ static void * GetInterestProperty(dpy, win, nitems) Display *dpy; Window win; unsigned long *nitems; { Status s; Atom acttype; unsigned long remain; int actfmt; void *data; s = _XGetWindowProperty((dpy, win, AtomSunDragDropInterest, 0L, ENTIRE_CONTENTS, False, AtomSunDragDropInterest, &acttype, &actfmt, nitems, &remain, (unsigned char **) &data)); if (s != Success) return NULL; if (acttype == None) /* property does not exist */ return NULL; if (acttype != AtomSunDragDropInterest) { #ifdef DEBUG ErrorWarning("dnd interest property has wrong type"); #endif /* DEBUG */ return NULL; } if (actfmt != 32) { #ifdef DEBUG ErrorWarning("dnd interest property has wrong format"); #endif /* DEBUG */ XFree(data); return NULL; } if (remain > 0) { #ifdef DEBUG /* * We didn't read it all, just punt. REMIND: we should loop around * GetWindowProperty until we have all the data. */ fputs("dsdm: interest property too long\n", stderr); #endif /* DEBUG */ XFree(data); return NULL; } return data; } /* * Create and return a region that contains a given rectangle. */ static Region MakeRegionFromRect(x, y, w, h) int x, y; unsigned int w, h; { XRectangle r; Region reg; r.x = x; r.y = y; r.width = w; r.height = h; reg = XCreateRegion(); XUnionRectWithRegion(&r, reg, reg); return reg; } /* * Create and return a region that contains the geometry of the window. * The region returned must be destroyed with XDestroyRegion(). The offset * parameter indicates whether the window's geometry should be offset by its * (x,y) location w.r.t. its parent. If it is false, the region's upper left * corner is at (0,0). */ static Region GetWindowRegion(dpy, winInfo, offset) Display *dpy; WinGeneric *winInfo; Bool offset; { return MakeRegionFromRect( offset ? winInfo->core.x : 0, offset ? winInfo->core.y : 0, winInfo->core.width, winInfo->core.height ); } /* * Subtract the area of a window from the current visible region. */ static void SubtractWindowFromVisibleRegion(dpy, winInfo, visrgn) Display *dpy; Window winInfo; Region visrgn; { Region winrgn = GetWindowRegion(dpy, winInfo, True); XSubtractRegion(visrgn, winrgn, visrgn); XDestroyRegion(winrgn); } /* * NEXTWORD - a macro to step through the property data. This macro depends * on local variables of ProcessInterestProperty(). */ #define NEXTWORD(dest) do { \ if (++cur >= datalen) { \ if (region != NULL) \ XDestroyRegion(region); \ if (toprgn != NULL) \ XDestroyRegion(toprgn); \ return; \ } \ (dest) = array[cur]; \ } while (0) /* * Process a window's drop site interest property. If the property is in an * invalid format, fail silently. */ static void ProcessInterestProperty(dpy, winInfo, screen, data, datalen, visrgn, xoff, yoff) Display *dpy; WinGeneric *winInfo; int screen; void *data; unsigned long datalen; Region visrgn; int xoff, yoff; { unsigned long *array = data; int cur = 0; int i, j, nsites; Window wid; Window wjunk; Window areawin; unsigned long sid; int areatype; int nrects; unsigned long flags; Region region = NULL; Region toprgn = NULL; XRectangle rect; site_t *site; int x, y; unsigned int width, height, border, ujunk; int junk; if (array[cur] != DND_VERSION) { #ifdef DEBUG char msg[100]; sprintf(msg, "unknown drop interest property version (%d) on 0x%x\n", array[cur], winInfo->core.self); ErrorWarning(msg); #endif /* DEBUG */ return; } toprgn = GetWindowRegion(dpy, winInfo, False); NEXTWORD(nsites); for (i=0; icore.self); ErrorWarning(msg); #endif /* DEBUG */ continue; } (void) _XTranslateCoordinates((dpy, areawin, winInfo->core.self, 0, 0, &x, &y, &wjunk)); rect.x = x - border; rect.y = y - border; rect.width = width + border; rect.height = height + border; XUnionRectWithRegion(&rect, region, region); } break; default: #ifdef DEBUG { char msg[100]; sprintf(msg, "unknown site area type on window 0x%x\n", winInfo->core.self); ErrorWarning(msg); } #endif /* DEBUG */ XDestroyRegion(toprgn); return; } XIntersectRegion(region, toprgn, region); XOffsetRegion(region, xoff, yoff); XIntersectRegion(region, visrgn, region); site = (site_t *) malloc(sizeof(site_t)); if (site == NULL) break; /* out of memory - stop processing this property */ site->screen = screen; site->site_id = sid; site->window_id = wid; site->flags = flags; site->region = region; site->next = NULL; (*NextSite) = site; NextSite = &site->next; ++SitesFound; region = NULL; } XDestroyRegion(toprgn); } /* * FindDropSites * * For the root window of each screen, get the list of children. For each * child, get its drop forwarding information and find the top-level window * underneath that child, and get the top-level window's drop site * information. Add the top-level window's site information and the site * forwarding information to the site database. */ static void FindDropSites(dpy) Display *dpy; { Window junk, root, *children; int s, i, nchildren; Region visrgn, framergn, toprgn; void *sitedata; void *fwdsitedata; int xoff, yoff; WinRoot *rootInfo; WinGeneric *winInfo; WinPane *paneInfo; int state; unsigned long datalen; unsigned long fwdlen; #ifdef RTMETER _rt_count = 0; #endif for (s=0; score.kind != WIN_ROOT) continue; visrgn = GetWindowRegion(dpy, rootInfo, False); if (_XQueryTree((dpy, root, &junk, &junk, &children, (unsigned int *) &nchildren)) == 0) { #ifdef DEBUG char msg[100]; (void) sprintf(msg, "XQueryTree failed on root window 0x%x", root); ErrorWarning(msg); #endif /* DEBUG */ continue; } /* * Run through the children of root in top-to-bottom order. For * frames, get the pane's drop interest and any forwarding interest. * For icons, get the icon's forwarding interest. Add any site data * found to the master site list. */ for (i = nchildren-1; i >= 0; --i) { winInfo = WIGetInfo(children[i]); if (winInfo == NULL) continue; state = winInfo->core.client->wmState; /* * Ignore everything except frames in NormalState and icons in * IconicState. */ if (!((winInfo->core.kind == WIN_FRAME && state == NormalState) || (winInfo->core.kind == WIN_ICON && state == IconicState))) { continue; } fwdsitedata = GetInterestProperty(dpy, children[i], &fwdlen); if (winInfo->core.kind == WIN_FRAME) { paneInfo = (WinPane *) PANEOFCLIENT(winInfo->core.client); sitedata = GetInterestProperty(dpy, paneInfo->core.self, &datalen); WinRootPos(paneInfo, &xoff, &yoff); if (sitedata != NULL) { ProcessInterestProperty(dpy, paneInfo, s, sitedata, datalen, visrgn, xoff, yoff); XFree(sitedata); if (fwdsitedata != NULL) { framergn = GetWindowRegion(dpy, winInfo, True); XIntersectRegion(framergn, visrgn, framergn); toprgn = GetWindowRegion(dpy, paneInfo, False); XOffsetRegion(toprgn, xoff, yoff); XSubtractRegion(framergn, toprgn, framergn); ProcessInterestProperty(dpy, winInfo, s, fwdsitedata, fwdlen, framergn, winInfo->core.x, winInfo->core.y); XDestroyRegion(framergn); XDestroyRegion(toprgn); XFree(fwdsitedata); } } } else { if (fwdsitedata != NULL) { ProcessInterestProperty(dpy, winInfo, s, fwdsitedata, fwdlen, visrgn, winInfo->core.x, winInfo->core.y); XFree(fwdsitedata); } } SubtractWindowFromVisibleRegion(dpy, winInfo, visrgn); } XDestroyRegion(visrgn); XFree((char *) children); } #ifdef RTMETER printf("roundtrips = %d\n", _rt_count); #endif } /* * FreeDropSites * * Free the memory associated with the list of drop sites. */ static void FreeDropSites() { site_t *next, *temp; next = MasterSiteList; while (next != NULL) { XDestroyRegion(next->region); temp = next->next; free(next); next = temp; } MasterSiteList = NULL; SitesFound = 0; NextSite = &MasterSiteList; } /* * WriteSiteRectList * * Write a property containing site rectangle information. The format * consists of zero or more blocks of 8 words, as follows: * 8k+0 screen number * 8k+1 site id * 8k+2 window id * 8k+3 x * 8k+4 y * 8k+5 width * 8k+6 height * 8k+7 flags */ static void WriteSiteRectList(dpy, win, prop) Display *dpy; Window win; Atom prop; { unsigned long *cur; unsigned long *array; site_t *site; int numrects = 0; REGION *region; BOX *box, *last; site = MasterSiteList; while (site != NULL) { numrects += REGION_NUMRECTS(site->region); site = site->next; } array = (unsigned long *) malloc(8 * MAX(numrects,1) * sizeof(int)); /* MAX is to prevent malloc(0) */ cur = array; site = MasterSiteList; while (site != NULL) { region = (REGION *) site->region; box = region->rects; last = box + region->numRects; for ( ; box < last ; ++box) { *cur++ = site->screen; *cur++ = site->site_id; *cur++ = site->window_id; *cur++ = box->x1; *cur++ = box->y1; *cur++ = box->x2 - box->x1; *cur++ = box->y2 - box->y1; *cur++ = site->flags; } site = site->next; } XChangeProperty(dpy, win, prop, XA_INTEGER, 32, PropModeReplace, (unsigned char *)array, cur - array); free(array); } /* * convertTarget * * Do the actual work to convert a single DSDM target. */ static Bool convertTarget(dpy, requestor, target, property) Display *dpy; Window requestor; Atom target; Atom property; { unsigned long data[10]; /* long enough for most return values */ unsigned char *propdata = (unsigned char *) data; int format, nelements; Atom type; if (target == AtomTargets) { data[0] = AtomTargets; data[1] = AtomTimestamp; data[2] = AtomMultiple; data[3] = AtomSunDragDropSiteRects; nelements = 4; type = XA_ATOM; format = 32; } else if (target == AtomTimestamp) { data[0] = selectionTime; nelements = 1; type = XA_INTEGER; format = 32; } else if (target == AtomSunDragDropSiteRects) { FindDropSites(dpy); WriteSiteRectList(dpy, requestor, property); FreeDropSites(); return True; } else { return False; } /* write the property, free it if necessary, and return success */ XChangeProperty(dpy, requestor, property, type, format, PropModeReplace, (unsigned char *)propdata, nelements); if (propdata != (unsigned char *) data) MemFree(propdata); return True; } /* * handleDSDMrequest * * Respond to a SelectionRequest or SelectionClear event on the DSDM * selection. */ static void handleDSDMrequest(event) XEvent *event; { XSelectionEvent reply; XSelectionRequestEvent *request; Atom *pairs; int i; Bool writeback = False; unsigned long nitems, remain; switch (event->type) { case SelectionClear: selectionOwned = False; return; case SelectionRequest: /* processing proceeds below */ break; } request = (XSelectionRequestEvent *) event; /* * Set up a reply event for refusal. If a conversion is successful, the * property field will be filled in appropriately. */ reply.type = SelectionNotify; reply.requestor = request->requestor; reply.selection = AtomSunDragDropDSDM; reply.property = None; reply.target = request->target; reply.time = request->time; if (selectionOwned) { if (request->target == AtomMultiple) { if (request->property != None) { pairs = GetWindowProperty(request->display, request->requestor, request->property, 0L, 100000L, AtomAtomPair, 32, &nitems, &remain); if (pairs != NULL) { /* * Process each pair of atoms (target, property). Watch * out for an odd last atom, and for property atoms of * None. If the conversion fails, replace it with None in * the original property. */ for (i = 0; i+1 < nitems; i += 2) { if (pairs[i+1] == None) continue; if (!convertTarget(request->display, request->requestor, pairs[i], pairs[i+1])) { pairs[i+1] = None; writeback = True; } } if (writeback) XChangeProperty(request->display, request->requestor, request->property, AtomAtomPair, 32, PropModeReplace, (unsigned char *) pairs, nitems); XFree((char *) pairs); reply.property = request->property; } } } else { /* backwards compatibility per ICCCM section 2.2 */ if (request->property == None) request->property = request->target; if (convertTarget(request->display, request->requestor, request->target, request->property)) { reply.property = request->property; } } } (void) XSendEvent(event->xany.display, reply.requestor, False, NoEventMask, (XEvent *) &reply); } /* ===== public functions ================================================= */ /* * DragDropStartDSDM * * Start performing the DSDM function by acquiring the DSDM selection. * Grabbing the server guarantees that we'll get the selection. */ void DragDropStartDSDM(dpy) Display *dpy; { XGrabServer(dpy); selectionTime = TimeFresh(); XSetSelectionOwner(dpy, AtomSunDragDropDSDM, NoFocusWin, selectionTime); XUngrabServer(dpy); selectionOwned = True; } /* * DragDropStopDSDM * * Stop performing the DSDM function by relinquishing ownership of the DSDM * selection. Note that this will generate a SelectionClear event. */ void DragDropStopDSDM(dpy) Display *dpy; { XSetSelectionOwner(dpy, AtomSunDragDropDSDM, None, selectionTime); } /* * DragDropInit * * Register the selection handler for the DSDM selection. Should be called * exactly once at startup. */ void DragDropInit() { SelectionRegister(AtomSunDragDropDSDM, handleDSDMrequest); } xview-3.2p1.4/clients/olvwm-4.1/environ.c100644 1750 1750 11036 5515337304 15401 0ustar mbmb/* * (c) Copyright 1989, 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifdef IDENT #ident "@(#)environ.c 1.3 olvwm version 07 Dec 1992" #endif #include #ifdef SYSV #include #else #include extern char *strrchr(); extern char *strchr(); #endif #include #include #include #include "mem.h" extern char **environ; /* ----------------------------------------------------------------------- * Local Data Structures * -----------------------------------------------------------------------*/ /* * Env - environment object */ typedef struct _env { char **environ; /* array of environment strings */ int length; /* length of environ array */ int used; /* number of entries actually used */ } Env; /* ----------------------------------------------------------------------- * Local Functions * -----------------------------------------------------------------------*/ /* * createEnv - Creates a new environment array that is the length of * of the current environment plus the number of additions. */ static void createEnv(env,nadditions) Env *env; int nadditions; { int i = 0; /* find the number of items in the current environ */ while (environ[i] != (char *)NULL) { i++; } /* create space for the environ strings */ env->used = i; env->length = env->used + nadditions + 1; env->environ = MemAlloc(env->length*sizeof(char *)); /* copy the current environ into the new one */ for (i=0; iused; i++) { env->environ[i] = MemNewString(environ[i]); } env->environ[i] = (char *)NULL; } /* * putEnv - Puts the name,value pair into the specified environment * replacing any existing values. * Assumes there is space for the new setting. */ static void putEnv(env,name,value) Env *env; char *name; char *value; { int nameLen = strlen(name); char *envVar; int count; /* create new env string with space for '=' and null */ envVar = (char *)MemAlloc(nameLen + strlen(value) +2); (void)sprintf(envVar,"%s=%s",name,value); /* search through, checking for variable in question */ for (count=0 ; countused; count++) { if (!strncmp(env->environ[count],name,nameLen)) break; } if (count == env->used) /* finished loop without match */ env->used++; /* added 1 more var to the env */ else MemFree(env->environ[count]); /* don't need */ env->environ[count] = envVar; /* make sure the last entry in the vector is NULL */ env->environ[env->used] = (char *)NULL; } /* * putDisplayEnv - sets the DISPLAY env to the appropriate screen */ static void putDisplayEnv(env,dpy,screen) Env *env; Display *dpy; int screen; { char *display = DisplayString(dpy); char *colon,*dot; char value[128]; int len; if ((colon = strrchr(display,':')) == (char *)NULL) { return; } if ((dot = strchr(colon,'.')) != (char *)NULL) { len = dot - display; } else { len = colon - display; } (void)sprintf(value,"%.*s.%d",len,display,screen); putEnv(env,"DISPLAY",value); } #ifndef NOSVENV /* * putSunViewEnv - sets the various SV environment variables */ static void putSunViewEnv(env,dpy,screen) Env *env; Display *dpy; int screen; { static char *svEnv[] = { "WINDOW_PARENT", "WMGR_ENV_PLACEHOLDER", "WINDOW_TTYPARMS" }; int i, svEnvLen = sizeof(svEnv)/sizeof(char *); char *result,*curpos; unsigned long nitems,remainder; extern void *GetWindowProperty(); extern Atom AtomSunViewEnv; result = (char *)GetWindowProperty(dpy,RootWindow(dpy,screen), AtomSunViewEnv,0L,100000L, XA_STRING,8,&nitems,&remainder); if (result == NULL) return; curpos = result; for (i=0; i #include #include #include #include "i18n.h" #include "ollocale.h" #include "error.h" #include "olwm.h" #include "globals.h" /* some syntactic sugar to shut up lint */ #define FPRINTF (void) fprintf /* The following defines create bitmasks from the X Error Codes */ #define BReq (1<error_code, buf, BUFSIZ); FPRINTF(stderr, GetString("%s%s\n"), tag, buf); sprintf(number, "%d", err->request_code); XGetErrorDatabaseText(dpy, "XRequest", number, "", buf, BUFSIZ); FPRINTF(stderr, GetString(" request major code: %d (%s)\n"), err->request_code, buf); FPRINTF(stderr, GetString(" request minor code: %d\n"), err->minor_code); FPRINTF(stderr, GetString(" resource ID in failed request: 0x%x\n"), err->resourceid); FPRINTF(stderr, GetString(" serial number of failed request: %d\n"), err->serial); /* FPRINTF(stderr, GetString(" current request serial number: %d\n"), dpy->request);*/ } /* * handleExtensionError -- handle an error that came from an extension * request. Policy is determined in code instead of being table-driven. * BadWindow errors for SHAPE extension requests are ignored. All other * errors are treated as warnings. */ static void handleExtensionError(dpy, event) Display *dpy; XErrorEvent *event; { #ifdef SHAPE extern int ShapeRequestBase; if (event->request_code == ShapeRequestBase && event->error_code == BadWindow) return; #endif /* SHAPE */ if (GRV.PrintWarnings) { printError(dpy, event, GetString("olvwm: warning, X extension error -- ")); } } /* * ErrorSensitive * * Cause an exit on all X errors. If an error occurs, the string is printed * along with the error message. */ void ErrorSensitive(s) char *s; { hyperSensitive = s; } /* * ErrorInsensitive -- perform normal X error processing */ /*ARGSUSED*/ /* dpy arg will be used when multiple Displays supported */ void ErrorInsensitive(dpy) Display *dpy; { hyperSensitive = NULL; } /* * ErrorHandler * * Called whenever an X protocol error is detected. Prints the contents of * the X error event. If hypersensitive, always exits. Calls * handleExtensionError() and returns if the error was generated by a * extension request. For errors generated by core requests, may exit if * errorTable entry dictates that we do so. */ int ErrorHandler(dpy, event) Display *dpy; XErrorEvent *event; { int errBitmask; ErrorEntry *entry; if (hyperSensitive != NULL) { printError(dpy, event, GetString("olvwm: fatal X protocol error -- ")); FPRINTF(stderr, "%s\n", hyperSensitive); exit(1); /*NOTREACHED*/ } if (event->request_code > X_NoOperation) { handleExtensionError(dpy, event); return 0; } errBitmask = 1 << event->error_code; entry = &errorTable[event->request_code]; if (errBitmask & entry->fatal) { printError(dpy, event, GetString("olvwm: fatal X protocol error -- ")); exit(1); /*NOTREACHED*/ } else if (errBitmask & entry->warning) { if (GRV.PrintWarnings) { printError(dpy, event, GetString("olvwm: warning, X protocol error -- ")); } } return 0; } /* * ErrorGeneral * * Called whenever a fatal error occurs that is not caused by an X protocol * error. Always exits immediately. */ void ErrorGeneral(txt) char *txt; { FPRINTF(stderr, GetString("olvwm: fatal error -- %s\n"), txt); #ifdef DEBUG abort(); /*NOTREACHED*/ #else exit(1); /*NOTREACHED*/ #endif } /* * ErrorWarning * * Called whenever OLWM needs to issue a warning message. */ void ErrorWarning(txt) char *txt; { if (GRV.PrintWarnings) FPRINTF(stderr, GetString("olvwm: warning -- %s\n"), txt); } xview-3.2p1.4/clients/olvwm-4.1/evbind.c100644 1750 1750 130042 6241361454 15207 0ustar mbmb/* * (c) Copyright 1991 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifdef IDENT #ident "@(#)evbind.c 1.6 olvwm version 09 Feb 1994" #endif /* * Based on #ident "@(#)evbind.c 1.35 93/06/28 SMI" * */ #include #include #include #include #include #ifdef __STDC__ #include #endif #include #include #include #include "i18n.h" #include "ollocale.h" #include "olwm.h" #include "win.h" #include "globals.h" #include "events.h" #include "list.h" #include "mem.h" #include "kbdfuncs.h" #include "resources.h" #include "error.h" /* ===== externs ========================================================== */ extern List *ScreenInfoList; /* ===== private data ===================================================== */ static XrmQuark kbdCmdInstanceQ; static XrmQuark kbdCmdClassQ; static XrmQuark modInstanceQ; static XrmQuark modClassQ; static XrmQuark menuAccelInstanceQ; static XrmQuark menuAccelClassQ; /* ===== Modifier Binding ================================================= */ unsigned int ModMaskMap[MOD_MASK_COUNT]; typedef struct { char *rsrc_name; char *dflt_binding; int mapindex; } ModDescriptor; ModDescriptor ModDescriptorTable[] = { /* rsrc_name default mapindex */ { "Constrain", "Control", MOD_CONSTRAIN }, { "WMGrab", "Alt", MOD_WMGRAB }, { "Reduce", "Meta", MOD_REDUCE }, { "Invert", "Shift", MOD_INVERT }, { "SetDefault", "Control", MOD_SETDEFAULT }, { "Ignore", "Lock,Num_Lock,mod5,Mode_switch", MOD_IGNORE } }; #define NMODBINDINGS (sizeof(ModDescriptorTable)/sizeof(ModDescriptor)) /* * establishModBindings * * Read through the modifier descriptor table and fill in the modifier mask * map with modifier masks found in the server's modifier mask map. */ static void establishModBindings(dpy, newDB) Display *dpy; XrmDatabase newDB; { XrmQuark classlist[4], instlist[4]; char *s; XrmRepresentation rep; XrmValue value; ModDescriptor *d; unsigned int polyStringToModifier(); classlist[0] = OpenWinQ; classlist[1] = modClassQ; classlist[3] = NULLQUARK; instlist[0] = TopInstanceQ; instlist[1] = modInstanceQ; instlist[3] = NULLQUARK; for (d = ModDescriptorTable; d < ModDescriptorTable + NMODBINDINGS; ++d) { classlist[2] = instlist[2] = XrmStringToQuark(d->rsrc_name); if (XrmQGetResource(newDB, instlist, classlist, &rep, &value)) s = (char *) value.addr; else { /* * Use olwm binding -- see resources.c */ classlist[0] = OlwmQ; if (XrmQGetResource(newDB, instlist, classlist, &rep, &value)) s = (char *) value.addr; else s = d->dflt_binding; classlist[0] = OpenWinQ; } ModMaskMap[d->mapindex] = polyStringToModifier(dpy, s); } } /* ===== Mouse Binding ==================================================== */ /* * Table of mouse bindings. * * REMIND * * At a future time, this table will be changeable via resources. For now, * it's specified as a compile-time constant. */ typedef struct { int state; int button; SemanticAction action; } MouseBinding; #define BAD_STATE 0xffffffff MouseBinding *MouseBindingTable; MouseBinding ThreeButtons[] = { /* state, button, action */ { 0, Button1, ACTION_SELECT }, { 0, Button2, ACTION_ADJUST }, { 0, Button3, ACTION_MENU }, { ButtonToMask(1), Button2, ACTION_MENU }, { ButtonToMask(2), Button1, ACTION_MENU }, { ShiftMask, Button1, ACTION_ADJUST }, { ControlMask, Button3, ACTION_MENU }, { ControlMask|ButtonToMask(1), Button2, ACTION_MENU }, { ControlMask|ButtonToMask(2), Button1, ACTION_MENU }, { BAD_STATE, 0, ACTION_NONE }, }; MouseBinding OneButtonOnly[] = { /* state, button, action */ { 0, Button1, ACTION_SELECT }, { ShiftMask, Button1, ACTION_ADJUST }, { ControlMask, Button1, ACTION_MENU }, { ControlMask|ButtonToMask(1), Button2, ACTION_MENU }, { ControlMask|ButtonToMask(2), Button1, ACTION_MENU }, { BAD_STATE, 0, ACTION_NONE }, }; MouseBinding TwoButtonsOlSpec[] = { /* according to the OL spec */ /* state, button, action */ { 0, Button1, ACTION_SELECT }, { 0, Button2, ACTION_MENU }, { ShiftMask, Button1, ACTION_ADJUST }, { ControlMask, Button2, ACTION_MENU }, { ControlMask|ButtonToMask(1), Button2, ACTION_MENU }, { ControlMask|ButtonToMask(2), Button1, ACTION_MENU }, { BAD_STATE, 0, ACTION_NONE }, }; MouseBinding TwoButtonsWithChording[] = { /* The Xerox-inspired way */ /* state, button, action */ { 0, Button1, ACTION_SELECT }, { 0, Button2, ACTION_ADJUST }, { ButtonToMask(1), Button2, ACTION_MENU }, { ButtonToMask(2), Button1, ACTION_MENU }, { ShiftMask, Button1, ACTION_ADJUST }, { ControlMask, Button2, ACTION_MENU }, { ControlMask|ButtonToMask(1), Button2, ACTION_MENU }, { ControlMask|ButtonToMask(2), Button1, ACTION_MENU }, { BAD_STATE, 0, ACTION_NONE }, }; /* * searchMouseBindings * * Search the mouse binding table and return information about what was found. * Return values of MATCH_NONE, MATCH_INCOMPLETE, and MATCH_AMBIG mean that no * action is available for the given event. MATCH_PREFIX and MATCH_EXACT * indicate that an action is available; this action is returned in the area * pointed to by the action parameter. */ static MouseMatchState searchMouseBindings(pe, action) XButtonEvent *pe; SemanticAction *action; { int i; int nexact = 0; /* number of exact matches */ int nprefix = 0; /* number of prefix matches */ int lastexact = 0; /* index of last exact match */ unsigned int modmask = (pe->state | ButtonToMask(pe->button)); static int first = 1; if (first) { extern int numbuttons; switch (numbuttons) { /* based on # buttons on pointer */ default: case 3: MouseBindingTable = ThreeButtons; break; case 2: if (GRV.MouseChordMenu) /* is chording enabled? */ MouseBindingTable = TwoButtonsWithChording; else MouseBindingTable = TwoButtonsOlSpec; break; case 1: MouseBindingTable = OneButtonOnly; break; } first = 0; } for (i=0; MouseBindingTable[i].state != BAD_STATE; ++i) { if (pe->state == MouseBindingTable[i].state && pe->button == MouseBindingTable[i].button) { lastexact = i; ++nexact; } else if (modmask == MouseBindingTable[i].state) { ++nprefix; } } if (nexact == 0 && nprefix == 0) return MATCH_NONE; if (nexact == 0 && nprefix > 0) return MATCH_INCOMPLETE; if (nexact > 1) return MATCH_AMBIG; /* at this point, we know there is exactly one exact match */ *action = MouseBindingTable[lastexact].action; if (nprefix == 0) return MATCH_EXACT; else return MATCH_PREFIX; } /* * checkChording * * Scan the input queue for button events that will disambiguate a single * action from a chorded action. If there aren't any events in the queue, * wait for them until a certain timeout period has elapsed. Return value * indicates whether a ButtonPress was seen further ahead in the event stream, * which indicates that this event is part of a chorded sequence. The timeout * parameter is updated with the amount of time remaining. */ static Bool checkChording(dpy, timeout, pr) Display *dpy; struct timeval timeout; XButtonEvent *pr; { XEvent e; int n; while (1) { /* * Check for data on the connection. Scan it for disambiguating * events. Note that MotionNotify events within the move threshold * are discarded. */ n = XEventsQueued(dpy, QueuedAfterReading); if (n > 0 && XCheckMaskEvent(dpy, ButtonPressMask|ButtonReleaseMask|ButtonMotionMask, &e)) { switch (e.type) { case ButtonPress: XPutBackEvent(dpy, &e); return True; case ButtonRelease: XPutBackEvent(dpy, &e); return False; case MotionNotify: if (ABS(pr->x_root - e.xmotion.x_root) > GRV.MoveThreshold || ABS(pr->y_root - e.xmotion.y_root) > GRV.MoveThreshold) { XPutBackEvent(dpy, &e); return False; } break; } } if (!AwaitEvents(dpy, &timeout)) return False; } /* NOTREACHED */ } /* * ResolveMouseBinding * * Given a mouse button press event, determines whether this event completes * an event sequence that binds to an action. If the button press is a prefix * of a chording sequence, and this press falls within the chording time of * the initial button press, checkChording is called to disambiguate the event * stream. Returns a proper action if the action is complete, otherwise * returns ACTION_NONE. All callers should ensure that no action is taken * when this routine returns ACTION_NONE. */ SemanticAction ResolveMouseBinding(dpy, pevent, ignoremask) Display *dpy; XEvent *pevent; unsigned long ignoremask; { MouseMatchState m; struct timeval timeout; SemanticAction a; static Time firstpresstime; XEvent e; /* copy *pevent to e, masking off ignored bits from the state */ e = *pevent; e.xbutton.state &= ~(ignoremask | ModMaskMap[MOD_IGNORE] | ModMaskMap[MOD_WMGRAB]); /* Chording is in msec. Convert to sec/usec for timeval. */ timeout.tv_usec = GRV.MouseChordTimeout * 1000; if (timeout.tv_usec >= 1000000) { timeout.tv_sec = timeout.tv_usec / 1000000; timeout.tv_usec %= 1000000; } else { timeout.tv_sec = 0; } if (FirstButtonDown(&e)) { firstpresstime = e.xbutton.time; } else { if (e.xbutton.time - firstpresstime > GRV.MouseChordTimeout) return ACTION_NONE; } m = searchMouseBindings((XButtonEvent *) &e, &a); if ((m == MATCH_PREFIX && !checkChording(dpy, timeout, (XButtonEvent *) &e)) || m == MATCH_EXACT) { return a; } else { return ACTION_NONE; } } /* ===== Keyboard Binding ================================================= */ /* * Table of default keyboard descriptors. This table contains information * necessary to initialize keyboard bindings and customize them based on * resources. */ #define NULLFUNC ((void (*)())0) extern void HandleHelpKey(); static void keySuspend(); static void keyResume(); static void keyQuoteNext(); static unsigned long mouselessMaskTable[] = { KD_SUNVIEW, KD_BASIC, KD_FULL }; KeyDescriptor KeyDescriptorTable[] = { /* rsrc_name dflt_binding function action flags */ { "Stop", "L1,Escape", NULLFUNC, ACTION_STOP, KD_ALWAYS }, { "DefaultAction", "Return,Return+Meta,KP_Enter", NULLFUNC, ACTION_EXEC_DEFAULT, KD_ALWAYS }, { "Select", "space", NULLFUNC, ACTION_SELECT, KD_ALWAYS }, { "Adjust", "Insert+Alt", NULLFUNC, ACTION_ADJUST, KD_ALWAYS }, { "Menu", "space+Alt", NULLFUNC, ACTION_MENU, KD_ALWAYS }, { "InputFocusHelp", "question,question+Ctrl", NULLFUNC, ACTION_FOCUS_HELP, KD_ALWAYS }, { "Up", "Up", NULLFUNC, ACTION_UP, KD_ALWAYS, }, { "Down", "Down", NULLFUNC, ACTION_DOWN, KD_ALWAYS, }, { "Left", "Left", NULLFUNC, ACTION_LEFT, KD_ALWAYS }, { "Right", "Right", NULLFUNC, ACTION_RIGHT, KD_ALWAYS }, { "JumpUp", "Up+Ctrl", NULLFUNC, ACTION_JUMP_UP, KD_ALWAYS }, { "JumpDown", "Down+Ctrl", NULLFUNC, ACTION_JUMP_DOWN, KD_ALWAYS }, { "JumpLeft", "Left+Ctrl", NULLFUNC, ACTION_JUMP_LEFT, KD_ALWAYS }, { "JumpRight", "Right+Ctrl", NULLFUNC, ACTION_JUMP_RIGHT, KD_ALWAYS }, { "RowStart", "Home,R7", NULLFUNC, ACTION_ROW_START, KD_ALWAYS }, { "RowEnd", "End,R13", NULLFUNC, ACTION_ROW_END, KD_ALWAYS }, { "DataStart", "Home+Ctrl", NULLFUNC, ACTION_DATA_START, KD_ALWAYS }, { "DataEnd", "End+Ctrl", NULLFUNC, ACTION_DATA_END, KD_ALWAYS }, { "FirstControl", "bracketleft+Ctrl", NULLFUNC, ACTION_FIRST_CONTROL, KD_ALWAYS }, { "LastControl", "bracketright+Ctrl", NULLFUNC, ACTION_LAST_CONTROL, KD_ALWAYS }, { "NextElement", "Tab,Tab+Ctrl", NULLFUNC, ACTION_NEXT_ELEMENT, KD_ALWAYS }, { "PreviousElement", "Tab+Shift,Tab+Shift+Ctrl", NULLFUNC, ACTION_PREVIOUS_ELEMENT, KD_ALWAYS }, { "Open", "L7+Alt", NULLFUNC, ACTION_OPEN, KD_ALWAYS }, { "Help", "Help", HandleHelpKey, ACTION_HELP, KD_BASIC_FULL }, { "LockColormap", "L2+Ctrl", KeyLockColormap, ACTION_NONE, KD_BASIC_FULL }, { "UnlockColormap", "L4+Ctrl", KeyUnlockColormap, ACTION_NONE, KD_BASIC_FULL }, { "Front", "L5+Alt", KeyFrontFocus, ACTION_FRONT, KD_BASIC_FULL }, { "FocusToPointer", "j+Shift+Alt", KeyFocusToPointer, ACTION_NONE, KD_FULL }, { "NextApp", "n+Alt", KeyNextApp, ACTION_NONE, KD_FULL }, { "PreviousApp", "N+Alt", KeyPrevApp, ACTION_NONE, KD_FULL }, { "ToggleInput", "t+Alt", KeyToggleInput, ACTION_NONE, KD_FULL }, { "NextWindow", "w+Alt", KeyNextWindow, ACTION_NONE, KD_FULL }, { "PreviousWindow", "W+Alt", KeyPrevWindow, ACTION_NONE, KD_FULL }, { "TogglePin", "Insert+Meta", KeyTogglePin, ACTION_TOGGLE_PIN, KD_FULL }, { "SuspendMouseless", "z+Alt", keySuspend, ACTION_NONE, KD_FULL }, { "ResumeMouseless", "Z+Alt", keyResume, ACTION_NONE, KD_IMMUNE | KD_FULL }, { "QuoteNextKey", "q+Alt", keyQuoteNext, ACTION_NONE, KD_FULL }, { "Refresh", "", KeyRefresh, ACTION_REFRESH, KD_MENU_ACCEL }, { "Back", "", KeyBackFocus, ACTION_BACK, KD_MENU_ACCEL }, { "OpenClose", "w+Meta", KeyOpenCloseFocus, ACTION_OPEN_CLOSE, KD_MENU_ACCEL }, { "FullRestore", "", KeyFullRestore, ACTION_FULL_RESTORE, KD_MENU_ACCEL }, { "Quit", "q+Meta", KeyQuit, ACTION_QUIT, KD_MENU_ACCEL }, { "Owner", "", KeyOwner, ACTION_OWNER, KD_MENU_ACCEL }, { "WorkspaceMenu", "M+Alt", KeyWorkspaceMenu, ACTION_NONE, KD_FULL }, { "WindowMenu", "m+Alt", KeyWindowMenu, ACTION_NONE, KD_FULL }, { "Move", "", KeyMove, ACTION_MOVE, KD_MENU_ACCEL }, { "Resize", "", KeyResize, ACTION_RESIZE, KD_MENU_ACCEL }, { "Properties", "", KeyProperties, ACTION_PROPS, KD_MENU_ACCEL }, { "OpenClosePointer", "L7", KeyOpenClosePointer, ACTION_NONE, KD_ALWAYS }, { "RaiseLower", "L5", KeyRaiseLowerPointer, ACTION_NONE, KD_ALWAYS }, { "MakeInvisiblePointer", "", KeyMakeInvisiblePointer, ACTION_NONE, KD_FULL }, { "MakeInvisibleFocus", "", KeyMakeInvisibleFocus, ACTION_NONE, KD_FULL }, { "MakeVisibleAll", "", KeyMakeVisibleAll, ACTION_NONE, KD_FULL }, { "ToggleFullSizeZoomX", "F3+Alt+Shift", KeyToggleFullSizeZoomX, ACTION_NONE, KD_FULL }, { "ToggleDragWindow", "F6+Alt+Shift", KeyToggleDragWindow, ACTION_NONE, KD_FULL }, { "ToggleMoveGroups", "g+Alt", KeyToggleMoveGroups, ACTION_NONE, KD_FULL }, { "ToggleSticky", "t+Meta", KeyToggleSticky, ACTION_STICK, KD_FULL }, { "SaveWorkspace", "F10+Meta+Alt+Shift", KeySaveWorkspace, ACTION_NONE, KD_FULL }, /* * Keymappings for the virtual desktop. The keypad keys are mapped * in a clockwise fashion around the arrow keys. These keys with a meta * modifier are grabbed and are always active, otherwise they fall through * to the no focus window which moves the vdm * */ { "VirtualUp", "Up+Meta", KeyMoveVDM, ACTION_UP_V, KD_VIRTUAL }, { "HalfUp", "Up+Shift", NULLFUNC, ACTION_HALF_UP, KD_VIRTUAL }, { "VirtualHalfUp", "Up+Shift+Meta", KeyMoveVDM, ACTION_HALF_UP, KD_VIRTUAL }, { "VirtualJumpUp", "Up+Ctrl+Meta", KeyMoveVDM, ACTION_JUMP_UP, KD_VIRTUAL }, { "VirtualDown", "Down+Meta", KeyMoveVDM, ACTION_DOWN_V, KD_VIRTUAL }, { "HalfDown", "Down+Shift", NULLFUNC, ACTION_HALF_DOWN, KD_VIRTUAL }, { "VirtualHalfDown", "Down+Shift+Meta", KeyMoveVDM, ACTION_HALF_DOWN, KD_VIRTUAL }, { "VirtualJumpDown", "Down+Ctrl+Meta", KeyMoveVDM, ACTION_JUMP_DOWN, KD_VIRTUAL }, { "VirtualLeft", "Left+Meta", KeyMoveVDM, ACTION_LEFT_V, KD_VIRTUAL }, { "HalfLeft", "Left+Shift", NULLFUNC, ACTION_HALF_LEFT, KD_VIRTUAL }, { "VirtualHalfLeft", "Left+Shift+Meta", KeyMoveVDM, ACTION_HALF_LEFT, KD_VIRTUAL }, { "VirtualJumpLeft", "Left+Ctrl+Meta", KeyMoveVDM, ACTION_JUMP_LEFT, KD_VIRTUAL }, { "VirtualRight", "Right+Meta", KeyMoveVDM, ACTION_RIGHT_V, KD_VIRTUAL }, { "HalfRight", "Right+Shift", NULLFUNC, ACTION_HALF_RIGHT, KD_VIRTUAL }, { "VirtualHalfRight", "Right+Shift+Meta", KeyMoveVDM, ACTION_HALF_RIGHT, KD_VIRTUAL }, { "VirtualJumpRight", "Right+Ctrl+Meta", KeyMoveVDM, ACTION_JUMP_RIGHT, KD_VIRTUAL }, { "UpLeft", "R7", NULLFUNC, ACTION_UPLEFT, KD_VIRTUAL }, { "VirtualUpLeft", "R7+Meta", KeyMoveVDM, ACTION_UPLEFT_V, KD_VIRTUAL }, { "JumpUpLeft", "R7+Ctrl", NULLFUNC, ACTION_JUMP_UPLEFT, KD_VIRTUAL }, { "VirtualJumpUpLeft", "R7+Ctrl+Meta", KeyMoveVDM, ACTION_JUMP_UPLEFT, KD_VIRTUAL }, { "HalfUpLeft", "R7+Shift", NULLFUNC, ACTION_HALF_UPLEFT, KD_VIRTUAL }, { "VirtualHalfUpLeft", "R7+Shift+Meta", KeyMoveVDM, ACTION_HALF_UPLEFT, KD_VIRTUAL }, { "VirtualUpRight", "R9+Meta", KeyMoveVDM, ACTION_UPRIGHT_V, KD_VIRTUAL }, { "UpRight", "R9", NULLFUNC, ACTION_UPRIGHT, KD_VIRTUAL }, { "JumpUpRight", "R9+Ctrl", NULLFUNC, ACTION_JUMP_UPRIGHT, KD_VIRTUAL }, { "VirtualJumpUpRight", "R9+Ctrl+Meta", KeyMoveVDM, ACTION_JUMP_UPRIGHT, KD_VIRTUAL }, { "HalfUpRight", "R9+Shift", NULLFUNC, ACTION_HALF_UPRIGHT, KD_VIRTUAL }, { "VirtualHalfUpRight", "R9+Shift+Meta", KeyMoveVDM, ACTION_HALF_UPRIGHT, KD_VIRTUAL }, { "DownLeft", "R13", NULLFUNC, ACTION_DOWNLEFT, KD_VIRTUAL }, { "VirtualDownLeft", "R13+Meta", KeyMoveVDM, ACTION_DOWNLEFT_V, KD_VIRTUAL }, { "JumpDownLeft", "R13+Ctrl", NULLFUNC, ACTION_JUMP_DOWNLEFT, KD_VIRTUAL }, { "VirtualJumpDownLeft", "R13+Ctrl+Meta", KeyMoveVDM, ACTION_JUMP_DOWNLEFT, KD_VIRTUAL }, { "HalfDownLeft", "R13+Shift", NULLFUNC, ACTION_HALF_DOWNLEFT, KD_VIRTUAL }, { "VirtualHalfDownLeft", "R13+Shift+Meta", KeyMoveVDM, ACTION_HALF_DOWNLEFT, KD_VIRTUAL }, { "VirtualDownRight", "R15+Meta", KeyMoveVDM, ACTION_DOWNRIGHT_V, KD_VIRTUAL }, { "DownRight", "R15", NULLFUNC, ACTION_DOWNRIGHT, KD_VIRTUAL }, { "JumpDownRight", "R15+Ctrl", NULLFUNC, ACTION_JUMP_DOWNRIGHT, KD_VIRTUAL }, { "VirtualJumpDownRight", "R15+Ctrl+Meta", KeyMoveVDM, ACTION_JUMP_DOWNRIGHT, KD_VIRTUAL }, { "HalfDownRight", "R15+Shift", NULLFUNC, ACTION_HALF_DOWNRIGHT, KD_VIRTUAL }, { "VirtualHalfDownRight", "R15+Shift+Meta", KeyMoveVDM, ACTION_HALF_DOWNRIGHT, KD_VIRTUAL }, { "VirtualHome", "R11+Meta", KeyMoveVDM, ACTION_HOME_V, KD_VIRTUAL }, { "GoHome", "R11", NULLFUNC, ACTION_HOME, KD_VIRTUAL }, { "VirtualScreen1", "F1+Meta", KeyMoveVDM, ACTION_GOTO_1, KD_VIRTUAL }, { "Screen1", "F1", NULLFUNC, ACTION_GOTO_1, KD_VIRTUAL }, { "VirtualScreen2", "F2+Meta", KeyMoveVDM, ACTION_GOTO_2, KD_VIRTUAL }, { "Screen2", "F2", NULLFUNC, ACTION_GOTO_2, KD_VIRTUAL }, { "VirtualScreen3", "F3+Meta", KeyMoveVDM, ACTION_GOTO_3, KD_VIRTUAL }, { "Screen3", "F3", NULLFUNC, ACTION_GOTO_3, KD_VIRTUAL }, { "VirtualScreen4", "F4+Meta", KeyMoveVDM, ACTION_GOTO_4, KD_VIRTUAL }, { "Screen4", "F4", NULLFUNC, ACTION_GOTO_4, KD_VIRTUAL }, { "VirtualScreen5", "F5+Meta", KeyMoveVDM, ACTION_GOTO_5, KD_VIRTUAL }, { "Screen5", "F5", NULLFUNC, ACTION_GOTO_5, KD_VIRTUAL }, { "VirtualScreen6", "F6+Meta", KeyMoveVDM, ACTION_GOTO_6, KD_VIRTUAL }, { "Screen6", "F6", NULLFUNC, ACTION_GOTO_6, KD_VIRTUAL }, { "VirtualScreen7", "F7+Meta", KeyMoveVDM, ACTION_GOTO_7, KD_VIRTUAL }, { "Screen7", "F7", NULLFUNC, ACTION_GOTO_7, KD_VIRTUAL }, { "VirtualScreen8", "F8+Meta", KeyMoveVDM, ACTION_GOTO_8, KD_VIRTUAL }, { "Screen8", "F8", NULLFUNC, ACTION_GOTO_8, KD_VIRTUAL }, { "VirtualScreen9", "F9+Meta", KeyMoveVDM, ACTION_GOTO_9, KD_VIRTUAL }, { "Screen9", "F9", NULLFUNC, ACTION_GOTO_9, KD_VIRTUAL }, { "VirtualScreen10", "F10+Meta", KeyMoveVDM, ACTION_GOTO_10, KD_VIRTUAL }, { "Screen10", "F10", NULLFUNC, ACTION_GOTO_10, KD_VIRTUAL }, }; #define NUMKEYDESCRIPTORS (sizeof(KeyDescriptorTable)/sizeof(KeyDescriptor)) typedef struct { KeySym sym; unsigned int mod; } modsym; #define KEYBINDING_TABLE_SIZE 60 #define KEYBINDING_TABLE_INCR 20 static KeyBinding *KeyBindingTable = NULL; static KeyBinding *activeKey = NULL; static int bindingTableCount = 0; static int bindingTableSize = 0; static Bool quotenext = False; Bool mouselessSuspended = False; /* * Suspension and resumption of Mouseless functions. */ static void /* ARGSUSED */ keySuspend(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type != KeyPress) return; mouselessSuspended = True; } static void keyResume(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type != KeyPress) return; if (mouselessSuspended) mouselessSuspended = False; else KeyBeep(dpy, ke); } static void /* ARGSUSED */ keyQuoteNext(dpy, ke) Display *dpy; XKeyEvent *ke; { /* * Turn on quotenext on the release. If we set it on the press, * the subsequent release would turn it off! */ if (ke->type != KeyRelease) return; quotenext = True; } /* * Add a binding to the key binding table. */ void AddKeyBinding(kc, mod, desc) KeyCode kc; unsigned int mod; KeyDescriptor *desc; { KeyBinding *b; if (bindingTableCount == bindingTableSize) { bindingTableSize += KEYBINDING_TABLE_INCR; KeyBindingTable = MemRealloc(KeyBindingTable, bindingTableSize*sizeof(KeyBinding)); } b = &KeyBindingTable[bindingTableCount]; b->keycode = kc; b->modstate = mod; b->desc = desc; ++bindingTableCount; } /* * Keysym aliasing. Provides aliases for modifier keysyms. Allows an alias * to represent a mask or to be a synonym for up to two keysyms. The keysyms * are only looked at if the mask value is zero. */ typedef struct { char *alias; unsigned int mask; KeySym sym1, sym2; } KeysymAlias; static KeysymAlias KeysymAliasTable[] = { /* alias mask sym1 sym2 */ { "Any", AnyModifier, 0, 0 }, { "Shift", ShiftMask, 0, 0 }, { "Lock", LockMask, 0, 0 }, { "Control", ControlMask, 0, 0 }, { "Ctrl", ControlMask, 0, 0 }, { "Ctl", ControlMask, 0, 0 }, { "Meta", 0, XK_Meta_L, XK_Meta_R }, { "Alt", 0, XK_Alt_L, XK_Alt_R }, { "Super", 0, XK_Super_L, XK_Super_R }, { "Hyper", 0, XK_Hyper_L, XK_Hyper_R } }; #define NUMALIASES (sizeof(KeysymAliasTable)/sizeof(KeysymAlias)) /* * Takes a word and presumes that it names a keysym. Looks up this keysym in * the modifier mapping table and returns the corresponding modifier mask. If * the string doesn't name a valid keysym, returns 0. If the keysym is not a * modifier, returns 0. If the word is "Any", returns AnyModifier. Several * aliases are supported for well-known modifiers, e.g. "Meta" for "Meta_L" or * "Meta_R". REMIND: If a keysym is on several keys, and only some of the * keys are modifiers, this function may fail to find the modifier mask. */ unsigned int stringToModifier(dpy, word) Display *dpy; char *word; { KeySym ks; KeyCode kc; KeysymAlias *ksa; int modnum; ks = XStringToKeysym(word); if (ks != NoSymbol) { kc = XKeysymToKeycode(dpy, ks); if (kc == 0) return 0; else return FindModifierMask(kc); } /* * It's not a valid keysym name, so try a bunch of aliases. First, * Allow "mod1" ... "mod5" as synonyms for Mod1Mask ... Mod5Mask. */ if (1 == sscanf(word, "mod%d", &modnum) && modnum >= 1 && modnum <= 5) { return (1 << (Mod1MapIndex + modnum - 1)); } /* look through the alias table for masks or keysyms */ kc = 0; for (ksa = KeysymAliasTable; ksa < KeysymAliasTable + NUMALIASES; ++ksa) { if (0 == strcmp(word, ksa->alias)) { if (ksa->mask != 0) return ksa->mask; kc = XKeysymToKeycode(dpy, ksa->sym1); if (kc == 0) kc = XKeysymToKeycode(dpy, ksa->sym2); if (kc == 0) return 0; else return FindModifierMask(kc); } } return 0; } /* * Parses a comma-separated string into words, gets the modifier mask for * each, ORs them together and returns the result. */ unsigned int polyStringToModifier(dpy, str) Display *dpy; char *str; { char buf[200]; unsigned int result = 0; char *word; /* make a copy first, because strtok riddles the string with nulls. */ strcpy(buf, str); word = strtok(buf, ","); while (word != NULL) { result |= stringToModifier(dpy, word); word = strtok(NULL, ","); } return result; } #define MAX_MAPPINGS 6 /* * Parses a key specification of the form * keymod[,keymod[,...]] * where keymod is * keysym[+modifier[+...]] */ static int parseKeySpec(dpy, specifier, syms) Display *dpy; char *specifier; modsym *syms; { char spec[200]; char *mapping[MAX_MAPPINGS]; char *keysym_string, *mod_string; KeySym keysym; int k; int modmask, newmod; int nbound = 0; char buffer[200]; /* make a copy first, because strtok riddles the string with nulls. */ strcpy(spec, specifier); /* break apart comma-separated mappings */ mapping[0] = strtok(spec, ","); for (k = 1; k < MAX_MAPPINGS; ++k) { mapping[k] = strtok(NULL, ","); if (mapping[k] == NULL) break; } /* for each mapping, break into keysym and modifier components */ for (k = 0; k < MAX_MAPPINGS && mapping[k]; ++k) { keysym_string = strtok(mapping[k], "+"); if (!keysym_string) { (void) sprintf(buffer, GetString("bad key mapping `%s'\n"), mapping[k]); ErrorWarning(buffer); continue; } keysym = XStringToKeysym(keysym_string); if (keysym == NoSymbol) { (void) sprintf(buffer, GetString("can't find keysym for `%s'\n"), keysym_string); ErrorWarning(buffer); continue; } /* * If the keysym is upper case alphabetic, add a shift mask. If it's * lower case, convert it to upper case. */ modmask = 0; if (XK_A <= keysym && keysym <= XK_Z) modmask = ShiftMask; if (XK_a <= keysym && keysym <= XK_z) keysym -= (XK_a - XK_A); while (1) { mod_string = strtok(NULL, "+"); if (!mod_string) break; newmod = stringToModifier(dpy, mod_string); if (newmod == 0) { /* * We couldn't find a modifier; ignore this binding. We can't * use continue, because we want to continue an outer loop. */ goto nobinding; } modmask |= newmod; } syms[nbound].sym = keysym; syms[nbound].mod = modmask; ++nbound; nobinding: ; } /* for each mapping */ return nbound; } /* * Run through the table of key descriptors and establish key bindings for * each descriptor. First, the resource database is probed for a customized * key binding specification. If one isn't found, the default key binding * specification is used. Then, this specification is parsed into an array of * keysym/modifier pairs. For each pair, the keyboard mapping table is * searched for the keysym and an entry is made into the binding table for * each instance of the keysym in the mapping table. Thus, if a keysym * appears on more than one keystation, a key binding entry is created for * each. * * The Mouseless and Menu Accelerator modes are checked before the binding is * added. For menu accelerator functions, if general menu accelerators are on * \and/ window menu accelerators are on, the binding is added. For other * functions, the appropriate Mouseless mode is checked. To effect a binding * that is always on, use KD_ALWAYS in the flags field of the key descriptor. * * Note: this is a change from earlier behavior, where a binding resource * would always be honored even if the Mouseless mode indicated that it would * be turned off. Now, a binding is ignored if the Mouseless or Menu * Accelerator mode indicates that it should be. * */ static void establishKeyBindings(dpy, rdb) Display *dpy; XrmDatabase rdb; { KeyDescriptor *d; modsym syms[MAX_MAPPINGS]; int nsyms; int i, j; int keytblsize = (MaxKeyCode-MinKeyCode+1) * KeySymsPerKeyCode; XrmQuark classlist[4], namelist[4]; XrmQuark rep; XrmValue value; char *keyspec; classlist[3] = NULLQUARK; namelist[0] = TopInstanceQ; namelist[3] = NULLQUARK; for (d=KeyDescriptorTable; d < KeyDescriptorTable+NUMKEYDESCRIPTORS; ++d) { classlist[0] = OpenWinQ; if (d->flags & KD_MENU_ACCEL) { if (! GRV.WindowMenuAccelerators || ! GRV.MenuAccelerators) continue; classlist[1] = menuAccelClassQ; namelist[1] = menuAccelInstanceQ; } else { if (! (d->flags & mouselessMaskTable[GRV.Mouseless])) continue; classlist[1] = kbdCmdClassQ; namelist[1] = kbdCmdInstanceQ; } classlist[2] = namelist[2] = XrmStringToQuark(d->rsrc_name); if (XrmQGetResource(rdb, namelist, classlist, &rep, &value)) { keyspec = (char *) value.addr; } else { /* * Use olwm binding; see resources.c */ classlist[0] = OlwmQ; if (XrmQGetResource(rdb, namelist, classlist, &rep, &value)) keyspec = (char *) value.addr; else keyspec = d->dflt_binding; } nsyms = parseKeySpec(dpy, keyspec, syms); for (i=0; idesc->function != NULLFUNC && (!virtual_only || k->desc->action == ACTION_VIRTUAL)) { if (grab) { if (k->desc->action != ACTION_VIRTUAL || GRV.GrabVirtualKeys) { XGrabKey(dpy, k->keycode, k->modstate, root, False, GrabModeAsync, GrabModeSync); XGrabKey(dpy, k->keycode, k->modstate | LockMask, root, False, GrabModeAsync, GrabModeSync); } } else { XUngrabKey(dpy, k->keycode, k->modstate, root); XUngrabKey(dpy, k->keycode, k->modstate|LockMask, root); } if (NumLockMask != 0) { if (grab) { if (k->desc->action != ACTION_VIRTUAL || GRV.GrabVirtualKeys) { XGrabKey(dpy, k->keycode, k->modstate | NumLockMask, root, False, GrabModeAsync, GrabModeSync); XGrabKey(dpy, k->keycode, k->modstate | NumLockMask | LockMask, root, False, GrabModeAsync, GrabModeSync); } } else { XUngrabKey(dpy, k->keycode, k->modstate | NumLockMask, root); XUngrabKey(dpy, k->keycode, k->modstate | NumLockMask | LockMask, root); } } } } } /* * Issue or release passive button grabs on this root window. Like * grabRootKeys, has to deal with Lock and NumLock by issuing up to four * separate grabs. Note: these are synchronous grabs. This relies on the * root event handler to issue an AllowEvents or GrabPointer request. */ static void grabRootButtons(dpy, root, grab) Display *dpy; Window root; Bool grab; /* True = grab, False = release */ { unsigned int NumLockMask = FindModifierMask(XKeysymToKeycode(dpy, XK_Num_Lock)); unsigned int eventmask = ButtonPressMask | ButtonMotionMask | ButtonReleaseMask; if (ModMaskMap[MOD_WMGRAB] != 0) { if (grab) { XGrabButton(dpy, AnyButton, ModMaskMap[MOD_WMGRAB], root, False, eventmask, GrabModeSync, GrabModeSync, None, None); XGrabButton(dpy, AnyButton, ModMaskMap[MOD_WMGRAB] | LockMask, root, False, eventmask, GrabModeSync, GrabModeSync, None, None); } else { XUngrabButton(dpy, AnyButton, ModMaskMap[MOD_WMGRAB], root); XUngrabButton(dpy, AnyButton, ModMaskMap[MOD_WMGRAB] | LockMask, root); } if (NumLockMask != 0) { if (grab) { XGrabButton(dpy, AnyButton, ModMaskMap[MOD_WMGRAB] | NumLockMask, root, False, eventmask, GrabModeSync, GrabModeSync, None, None); XGrabButton(dpy, AnyButton, ModMaskMap[MOD_WMGRAB] | LockMask | NumLockMask, root, False, eventmask, GrabModeSync, GrabModeSync, None, None); } else { XUngrabButton(dpy, AnyButton, ModMaskMap[MOD_WMGRAB] | NumLockMask, root); XUngrabButton(dpy, AnyButton, ModMaskMap[MOD_WMGRAB] | LockMask | NumLockMask, root); } } } } /* ===== public functions ================================================= */ /* * Given a semantic action, looks it up in the keyboard binding table. * Returns a pointer to the first key binding record that matches the semantic * action. The binding record is owned by the event binding system and must * not be altered by the caller, nor should references to it be maintained by * the caller, as it may be reclaimed if key bindings change. Returns NULL if * no binding can be found. As a special case, if the semantic action is * ACTION_NONE, NULL is returned. */ KeyBinding * LookupKeyBinding(action) SemanticAction action; { KeyBinding *k; if (action == ACTION_NONE) return NULL; for (k = KeyBindingTable; k < KeyBindingTable+bindingTableCount; ++k) { if (k->desc->action == action) return k; } return NULL; } /* * Given a keyboard event, looks it up in the keyboard binding table. If a * binding is found, returns the semantic action associated with that key. If * no binding is found, returns ACTION_NONE. */ SemanticAction /* ARGSUSED */ FindKeyboardAction(dpy, event) Display *dpy; XEvent *event; { KeyBinding *k; SemanticAction a = ACTION_NONE; unsigned long ignore = ModMaskMap[MOD_IGNORE] | AnyButtonMask; for (k=KeyBindingTable; k < KeyBindingTable+bindingTableCount; ++k) { if (k->keycode == event->xkey.keycode && k->modstate == (event->xkey.state & ~ignore)) { a = k->desc->action; break; } } return a; } /* * Keyboard actions added by olvwmrc are at the end of the list, but they * should take precedence over previous ones. So this function does a * similar search as above but starts at the end. */ SemanticAction /* ARGSUSED */ FindNewKeyboardAction(dpy, event) Display *dpy; XEvent *event; { KeyBinding *k; SemanticAction a = ACTION_NONE; unsigned long ignore = ModMaskMap[MOD_IGNORE] | AnyButtonMask; for (k=KeyBindingTable+bindingTableCount-1; k >= KeyBindingTable; --k) { if (k->keycode == event->xkey.keycode && k->modstate == (event->xkey.state & ~ignore)) { a = k->desc->action; break; } } return a; } /* * Given a keyboard event, looks it up in the keyboard binding table. * If a binding is found, executes the function bound to that key. Returns * True if a function was found and called, otherwise False. */ Bool ExecuteKeyboardFunction(dpy, event) Display *dpy; XEvent *event; { KeyBinding *k; void (*f)() = NULLFUNC; unsigned long ignore = ModMaskMap[MOD_IGNORE] | AnyButtonMask; for (k=KeyBindingTable; k < KeyBindingTable+bindingTableCount; ++k) { if (k->keycode == event->xkey.keycode && k->modstate == (event->xkey.state & ~ignore) && k->desc->function != NULLFUNC) { f = k->desc->function; break; } } /* If the user pressed the STOP key, clear active key. */ if (f == NULLFUNC) { if (FindKeyboardAction(dpy, event) == ACTION_STOP) activeKey = NULL; XAllowEvents(dpy, AsyncKeyboard, event->xkey.time); return False; } /* invariant: k points to a valid key binding */ #ifdef notdef /* * On the first keypress, stash the active key binding; ignore subsequent * keypresses. Ignore all key releases except the one corresponding to * the active binding. */ if (event->type == KeyPress) { if (activeKey == NULL) activeKey = k; else return False; } else { /* KeyRelease */ if (k == activeKey) activeKey = NULL; else return False; /* ignore it */ } #endif if (mouselessSuspended && !(k->desc->flags & KD_IMMUNE)) { XAllowEvents(dpy, ReplayKeyboard, event->xkey.time); return True; } if (quotenext) { XAllowEvents(dpy, ReplayKeyboard, event->xkey.time); quotenext = False; return True; } /* * Simply replay the event if this client has disallowed menu * accelerators. */ if (k->desc->flags & KD_MENU_ACCEL && CurrentClient != NULL && ! CurrentClient->menuAccelerators) { XAllowEvents(dpy, ReplayKeyboard, event->xkey.time); return True; } if (event->type == KeyPress) XAllowEvents(dpy, AsyncKeyboard, event->xkey.time); (*f)(dpy, event); return True; } /* ===== Initialization =================================================== */ /* * Deal with key grabs on all root windows. If grab = True, grab the keys; if * grab = False, release the keys. Note: the screens and the keyboard binding * information must be initialized prior to calling this function. */ void GrabVKeys(dpy, grab, virtual_only) Display *dpy; Bool grab; Bool virtual_only; { List *l = ScreenInfoList; ScreenInfo *scr; for (scr = ListEnum(&l); scr != NULL; scr = ListEnum(&l)) grabRootKeys(dpy, scr->rootid, grab, virtual_only); } void GrabKeys(dpy, grab) Display *dpy; Bool grab; { GrabVKeys(dpy, grab, False); } /* * Remove all key grabs, zero out the binding table, and rebuild it from the * resource database. Then, re-establish key grabs. */ void RefreshKeyGrabsFile(dpy, rdb, file) Display *dpy; XrmDatabase rdb; char *file; { GrabKeys(dpy, False); bindingTableCount = 0; establishKeyBindings(dpy, rdb); ReInitOlvwmRC(dpy, file); GrabKeys(dpy, True); } void RefreshKeyGrabs(dpy, rdb) Display *dpy; XrmDatabase rdb; { RefreshKeyGrabsFile(dpy, rdb, (char *) NULL); } /* * Deal with button grabs on all root windows. If grab = True, grab the * buttons; if grab = False, release them. */ void GrabButtons(dpy, grab) Display *dpy; Bool grab; { List *l = ScreenInfoList; ScreenInfo *scr; for (scr = ListEnum(&l); scr != NULL; scr = ListEnum(&l)) grabRootButtons(dpy, scr->rootid, grab); } /* * Remove all button grabs, regenerate the modifier mask table, and * re-establish the button grabs. */ void RefreshButtonGrabs(dpy) Display *dpy; { GrabButtons(dpy, False); establishModBindings(dpy, OlwmDB); GrabButtons(dpy, True); } /* * Update all bindings from a new resource database. Called whenever the * resource database changes. */ Bool UpdateBindings(dpy, newDB, regrabKeys) Display *dpy; XrmDatabase newDB; Bool regrabKeys; { KeyDescriptor *d; XrmQuark classlist[4], instlist[4]; XrmQuark rep; XrmValue newvalue, oldvalue; int size = sizeof(mouselessMaskTable) / sizeof(mouselessMaskTable[0]); int i; Bool newexists, oldexists; if (GRV.GrabVirtualKeys) for (i = 0; i < size; i++) mouselessMaskTable[i] |= KD_VIRTUAL; else for (i = 0; i < size; i++) mouselessMaskTable[i] &= ~KD_VIRTUAL; GrabButtons(dpy, False); establishModBindings(dpy, newDB); GrabButtons(dpy, True); /* * Run through the KeyDescriptorTable and probe resources to see if any of * the binding resources has changed. */ classlist[3] = NULLQUARK; instlist[0] = TopInstanceQ; instlist[3] = NULLQUARK; for (d=KeyDescriptorTable; d < KeyDescriptorTable+NUMKEYDESCRIPTORS; ++d) { classlist[0] = OpenWinQ; if (d->flags & KD_MENU_ACCEL) { classlist[1] = menuAccelClassQ; instlist[1] = menuAccelInstanceQ; } else { classlist[1] = kbdCmdClassQ; instlist[1] = kbdCmdInstanceQ; } classlist[2] = instlist[2] = XrmStringToQuark(d->rsrc_name); newexists = XrmQGetResource(newDB, instlist, classlist, &rep, &newvalue); oldexists = XrmQGetResource(OlwmDB, instlist, classlist, &rep, &oldvalue); if (!newexists) { classlist[0] = OlwmQ; newexists = XrmQGetResource(newDB, instlist, classlist, &rep, &newvalue); } if (!oldexists) { classlist[0] = OlwmQ; oldexists = XrmQGetResource(OlwmDB, instlist, classlist, &rep, &oldvalue); } /* skip resources that never existed */ if (!newexists && !oldexists) continue; /* skip resources that haven't changed */ if (newexists && oldexists && 0 == strcmp((char *) newvalue.addr, (char *) oldvalue.addr)) /* old and new values the same; ignore */ continue; regrabKeys = True; } if (regrabKeys) RefreshKeyGrabs(dpy, newDB); return regrabKeys; } /* * Initialize the event handling system, but don't do any key grabbing. This * function is called exactly *once* at startup. */ void InitBindings(dpy) Display *dpy; { int size = sizeof(mouselessMaskTable) / sizeof(mouselessMaskTable[0]); int i; kbdCmdInstanceQ = XrmStringToQuark("keyboardCommand"); kbdCmdClassQ = XrmStringToQuark("KeyboardCommand"); modInstanceQ = XrmStringToQuark("modifier"); modClassQ = XrmStringToQuark("Modifier"); menuAccelInstanceQ = XrmStringToQuark("menuAccelerator"); menuAccelClassQ = XrmStringToQuark("MenuAccelerator"); if (GRV.GrabVirtualKeys) for (i = 0; i < size; i++) mouselessMaskTable[i] |= KD_VIRTUAL; KeyBindingTable = MemCalloc(KEYBINDING_TABLE_SIZE,sizeof(KeyBinding)); bindingTableSize = KEYBINDING_TABLE_SIZE; establishKeyBindings(dpy, OlwmDB); establishModBindings(dpy, OlwmDB); } /* * Disable/Enable program keys in given range */ void SetProgKeys(dpy, start_sym, end_sym, modstate, off) Display *dpy; KeySym start_sym; KeySym end_sym; unsigned long modstate; Boolean off; { KeyBinding *k; KeySym keysym; extern CheckForKeyProg(); for(k=KeyBindingTable; k < KeyBindingTable+bindingTableCount; ++k) { if (k->desc->action == ACTION_VIRTUAL) { keysym = XKeycodeToKeysym(dpy, k->keycode, 0); if ((modstate == 0L || (k->modstate & modstate)) && (start_sym == NoSymbol || keysym >= start_sym) && (end_sym == NoSymbol || keysym <= end_sym)) { k->desc->function = off ? NULLFUNC : (void (*)()) CheckForKeyProg; } } } } xview-3.2p1.4/clients/olvwm-4.1/events.c100644 1750 1750 43532 5515337305 15234 0ustar mbmb/* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifdef IDENT #ident "@(#)events.c 1.5 olvwm version 07 Jan 1994" #endif /* * Based on #ident "@(#)events.c 26.50 93/06/28 SMI" * */ #include #include #include #include #include #include #include #include #include #include "i18n.h" #include "ollocale.h" #include "olwm.h" #include "win.h" #include "debug.h" #include "globals.h" #include "events.h" #include "list.h" #include "mem.h" #include "error.h" /* ===== externs ========================================================== */ extern void ReapChildren(); /* ===== globals ========================================================== */ Time LastEventTime = (Time) 0; KeySym *KbdMap = NULL; /* pointer to current key table; 2d array */ int MinKeyCode = 0; int MaxKeyCode = 0; int KeySymsPerKeyCode = 0; /* ===== private data ===================================================== */ static InterposerFunc interposer = NULL; static void *closure; static List *deferredEventListHead = NULL_LIST; static List *deferredEventListTail = NULL_LIST; static Bool delegationEnabled = False; static struct timeval timeoutNext = {0, 0}; static TimeoutFunc timeoutFunc = NULL; static void *timeoutClosure = NULL; static XModifierKeymap *ModMap = NULL; static explicitPointerGrab = False; /* ===== private functions ================================================ */ /* * lookupWindow * * Given an event, look up the WinInfo corresponding to the window field of * the event. For events that have no window field, return NULL. */ WinGeneric * lookupWindow( event ) XEvent *event; { switch ( event->xany.type ) { case KeymapNotify: case MappingNotify: /* these events have no window field */ return NULL; default: return WIGetInfo( event->xany.window ); } } /* * saveTimestamp * * Given an event, update LastEventTime with its timestamp. For events that * have no timestamp, do nothing. */ void saveTimestamp( event ) XEvent *event; { switch ( event->xany.type ) { case KeyPress: case KeyRelease: LastEventTime = event->xkey.time; break; case ButtonPress: case ButtonRelease: LastEventTime = event->xbutton.time; break; case MotionNotify: LastEventTime = event->xmotion.time; break; case EnterNotify: case LeaveNotify: LastEventTime = event->xcrossing.time; break; case PropertyNotify: LastEventTime = event->xproperty.time; break; case SelectionClear: LastEventTime = event->xselectionclear.time; break; case SelectionRequest: /* * The timestamp in SelectionRequest events comes from other clients; * it's not generated by the server. It's thus not clear whether we * should believe any timestamp in one of these events. */ /* LastEventTime = event->xselectionrequest.time; */ break; case SelectionNotify: /* * Ignore SelectionNotify events generated by other clients. * Save only the timestamps from server-generated events. */ if (!event->xany.send_event) LastEventTime = event->xselection.time; break; default: break; } } /* * Dispatches an event normally (i.e. not through an interposer). Looks up * the window structure from the event's window ID and calls the appropriate * event function for that window's class. All extension events are handled * through a single extension event handler in the class. If explicitGrab is * set, then someone has explicitly grabbed the pointer and redispatched the * event to a handler that is expecting an implicit grab, and so which won't * ungrab the pointer. We must therefore do an explicit ungrab of the * pointer. */ static void dispatchEvent(dpy, event, winInfo) Display *dpy; XEvent *event; WinGeneric *winInfo; { EvFunc evFunc; if (GRV.PrintAll) DebugEvent(event, "Dispatch - debug"); saveTimestamp( event ); if (winInfo == NULL) { if (DispatchVirtual(dpy, event)) return; else { /* REMIND should we do anything with these events? */ if (GRV.PrintOrphans) DebugEvent(event, "Orphaned (null window)"); /* If a client unmaps and then remaps its window, the * MapRequest comes in on the frame window, but we just * destroyed that window (on the unmap) so it appears as * an orphan window. Hence we'll just create a new * frame/etc via StateNew() * * The same is true for configure events on unmapped * windows */ if (event->xany.type == MapRequest) { StateNew(dpy,None,event->xmaprequest.window,False,NULL); } else if (event->xany.type == ConfigureRequest) { ClientConfigure(NULL, NULL, event); } } return; } if (GRV.PrintAll) DebugWindow(winInfo); #ifdef DEBUG if (winInfo->class == NULL) { ErrorGeneral("Window instance with NULL class pointer"); } if (winInfo->core.kind != winInfo->class->core.kind) ErrorWarning("Warning: window with kind different than class kind"); #endif if (event->xany.type >= LASTEvent) evFunc = WinClass(winInfo)->core.extEventHdlr; else evFunc = WinClass(winInfo)->core.xevents[event->xany.type]; if (evFunc != NULL) { (*evFunc)(dpy, event, winInfo); } else if (!DispatchVirtual(dpy, event)) if (GRV.PrintOrphans) DebugEvent(event, "Orphaned"); if (explicitPointerGrab && event->type == ButtonRelease && AllButtonsUp(event)) { XUngrabPointer(dpy, event->xbutton.time); } } static void dispatchInterposer(dpy, event) Display *dpy; XEvent *event; { int disposition; WinGeneric *winInfo; XEvent *temp; if (GRV.PrintAll) DebugEvent(event, "Dispatch - interposer"); saveTimestamp( event ); winInfo = lookupWindow(event); disposition = (*interposer)(dpy, event, winInfo, closure); switch (disposition) { case DISPOSE_DISPATCH: dispatchEvent(dpy, event, winInfo); break; case DISPOSE_DEFER: temp = MemNew(XEvent); *temp = *event; if (deferredEventListHead == NULL_LIST) { deferredEventListHead = ListCons(temp, NULL_LIST); deferredEventListTail = deferredEventListHead; } else { deferredEventListTail->next = ListCons(temp, NULL_LIST); deferredEventListTail = deferredEventListTail->next; } break; case DISPOSE_USED: /* do nothing */ break; } } static void doTimeout() { TimeoutFunc f; void *closure; f = timeoutFunc; closure = timeoutClosure; TimeoutCancel(); (*f)(closure); } static void nextEventOrTimeout(dpy, event) Display *dpy; XEvent *event; { int fd = ConnectionNumber(dpy); struct timeval polltime; fd_set rdset, wrset, xset; int ready = -1; while (XPending(dpy) == 0 && ready <= 0 && timeoutFunc != NULL) { gettimeofday(&polltime,NULL); if ((timeoutFunc != NULL) && ((polltime.tv_sec > timeoutNext.tv_sec) || ((polltime.tv_sec == timeoutNext.tv_sec) && (polltime.tv_usec >= timeoutNext.tv_usec)))) { doTimeout(); continue; } polltime.tv_sec = timeoutNext.tv_sec - polltime.tv_sec; polltime.tv_usec = 0; FD_ZERO(&rdset); FD_SET(fd,&rdset); FD_ZERO(&wrset); FD_ZERO(&xset); FD_SET(fd,&xset); ready = select(fd+1,&rdset,&wrset,&xset,&polltime); gettimeofday(&polltime,NULL); if ((timeoutFunc != NULL) && ((polltime.tv_sec > timeoutNext.tv_sec) || ((polltime.tv_sec == timeoutNext.tv_sec) && (polltime.tv_usec >= timeoutNext.tv_usec)))) { doTimeout(); } } XNextEvent(dpy, event); } /* * Update our own modifier map. This is unfortunate, as we know Xlib already * keeps this information around. */ static void updateModifierMap(dpy) Display *dpy; { if (ModMap != NULL) XFreeModifiermap(ModMap); ModMap = XGetModifierMapping(dpy); } /* * Update our own keyboard table. This is unfortunate, as we know Xlib * already keeps this information around. */ static void updateKeyboardMap(dpy) Display *dpy; { if (KbdMap != NULL ) XFree((char *)KbdMap); XDisplayKeycodes(dpy, &MinKeyCode, &MaxKeyCode); KbdMap = XGetKeyboardMapping(dpy, MinKeyCode, MaxKeyCode-MinKeyCode+1, &KeySymsPerKeyCode); } /* * Handle MappingNotify events. Refresh cached information about the keyboard * and the pointer. */ void handleMappingNotify(dpy, e) Display *dpy; XEvent *e; { XMappingEvent *mapEvent = (XMappingEvent *)e; extern XrmDatabase OlwmDB; switch (mapEvent->request) { case MappingModifier: XRefreshKeyboardMapping(mapEvent); updateModifierMap(dpy); RefreshKeyGrabs(dpy, OlwmDB); RefreshButtonGrabs(dpy); break; case MappingKeyboard: XRefreshKeyboardMapping(mapEvent); updateKeyboardMap(dpy); RefreshKeyGrabs(dpy, OlwmDB); break; case MappingPointer: /* no need to handle pointer mapping changes */ break; } } /*ARGSUSED*/ static void * redispatchEvent(e,c) XEvent *e; void *c; { dispatchEvent(e->xany.display, e, lookupWindow(e)); MemFree(e); return (void *)NULL; } /* * Compute t2 - t1 and return the time value in diff. The tv_usec field is * always in the range 0..999999. This means that negative time values always * have tv_sec less than zero. For instance, negative one-half seconds is * represented with tv_sec == -1 and tv_usec == 500000. */ static void tvdiff(t1, t2, diff) struct timeval *t1, *t2, *diff; { diff->tv_sec = t2->tv_sec - t1->tv_sec; diff->tv_usec = t2->tv_usec - t1->tv_usec; if (diff->tv_usec < 0) { diff->tv_sec -= 1; diff->tv_usec += 1000000; } } /* ===== public functions ================================================= */ /* * EventLoop * * The main event loop. Reads events from the wire and dispatches them. */ void EventLoop( dpy ) Display *dpy; { XEvent event; for (;;) { if (timeoutFunc == NULL) { XNextEvent( dpy, &event ); } else { nextEventOrTimeout(dpy, &event); } ReapChildren(); /* * Discard user events that have the Synthetic bit set. * * All device events (mouse and keyboard events) have types * that fall in between KeyPress and MotionNotify. * * But, if we allow synthetic events if the correct resource * is set */ if (event.xany.send_event && event.type <= MotionNotify && event.type >= KeyPress && (!GRV.AllowSyntheticEvents || !GRV.SyntheticEvents)) continue; /* * If its a function key, see if we need to ReRead olvwmrc */ if ((event.type == KeyPress) && GRV.VirtualReRead && IsFunctionKey(XLookupKeysym((XKeyEvent *) &event, 0))) CheckOlvwmRC(dpy); /* * Handle MappingNotify events. These events don't have * window field, so they can't be dispatched normally. */ if (event.xany.type == MappingNotify) { handleMappingNotify(dpy, &event); continue; } /* * If there is an event interposer, and it returns True, that * means it has successfully processed the event. We continue * around the loop instead of processing the event normally. */ if ( interposer != NULL) dispatchInterposer(dpy, &event); else dispatchEvent(dpy, &event, lookupWindow(&event)); } /*NOTREACHED*/ } /* * Propagate an event to this window's parent. REMIND: doesn't update the * event fields or the event coordinates. */ PropagateEventToParent(dpy,event,win) Display *dpy; XEvent *event; WinGeneric *win; { dispatchEvent(dpy,event,win->core.parent); } /* * Propagate a ButtonPress event to a child window. Win is assumed to be a * child of the event window. The event window and subwindow fields are * updated, and the coordinates are translated to the child's coordinate * system. Sets the explicitPointerGrab flag. */ void PropagatePressEventToChild(dpy, event, win) Display *dpy; XButtonPressedEvent *event; WinGeneric *win; { event->window = win->core.self; event->subwindow = None; event->x -= win->core.x; event->y -= win->core.y; dispatchEvent(dpy, (XEvent *) event, win); explicitPointerGrab = True; } /* * FindModifierMask * * Given a keycode, look in the modifier mapping table to see if this keycode * is a modifier. If it is, return the modifier mask bit for this key; * otherwise, return zero. */ unsigned int FindModifierMask(kc) KeyCode kc; { int i, j; KeyCode *mapentry; if (ModMap == NULL || kc == 0) return 0; mapentry = ModMap->modifiermap; for (i=0; i<8; ++i) { for (j=0; j<(ModMap->max_keypermod); ++j) { if (kc == *mapentry) return 1 << ( (mapentry - ModMap->modifiermap) / ModMap->max_keypermod ); ++mapentry; } } return 0; } /* * ModifierToKeysym * * Given a modifier number (not a mask) returns a keysym for it that occurs in * the modifier map. If there is no such modifier key, returns NoSymbol. */ KeySym ModifierToKeysym(mod) unsigned int mod; { KeyCode kc; extern Display *DefDpy; kc = ModMap->modifiermap[mod * ModMap->max_keypermod]; if (kc == 0) return NoSymbol; return(XKeycodeToKeysym(DefDpy, kc, 0)); } /* * Wait on dpy for some events to come in or for a timeout to occur. If * events come in, return True and change timeout to indicate the amount of * time remaining. If no events come in before the timeout expires, return * False. A negative timestamp is considered to have timed out immediately. */ Bool AwaitEvents(dpy, timeout) Display *dpy; struct timeval *timeout; { struct timeval starttime, curtime, diff1, diff2; fd_set rfds; int s; if (timeout->tv_sec < 0) return False; (void) gettimeofday(&starttime, NULL); while (1) { FD_ZERO(&rfds); FD_SET(ConnectionNumber(dpy), &rfds); s = select(ConnectionNumber(dpy)+1, &rfds, NULL, NULL, timeout); if (s == 0) { /* we timed out without getting anything */ return False; } /* * If an error occurred, report it and return False. */ if (s == -1 && errno != EINTR) { perror("select"); #ifdef DEBUG fputs("olvwm: generating core dump for analysis...\n", stderr); if (fork() == 0) { abort(); exit(1); } #endif return False; } /* * Either we got interrupted or the descriptor became ready, or both. * Compute the remaining time on the timeout. This can be negative, * because there is a slight window for delays between the select() * call above and this gettimeofday() call. This means that we can * return an indication of valid data to the caller, yet also return * a value for the time remaining that is less than or equal to zero. */ (void) gettimeofday(&curtime, NULL); tvdiff(&starttime, &curtime, &diff1); tvdiff(&diff1, timeout, &diff2); *timeout = diff2; starttime = curtime; /* * If we got some data, return True. Otherwise, we were interrupted. * If we timed out, return False. If not, there is time remaining; * continue around the loop. */ if (s > 0) return True; if (timeout->tv_sec < 0) return False; } /* NOTREACHED */ } /*************************************************************************** * Interposer functions ***************************************************************************/ /* * InstallInterposer * * Install an event interposition function. Nested interposition is illegal. * If interposer delegation has been enabled, a new interposer will replace * the current one without nesting. * */ void InstallInterposer( func, cl ) InterposerFunc func; void *cl; { if ( interposer != NULL && !delegationEnabled) { fputs( GetString("olvwm: warning, nested event interposer!\n"), stderr ); #ifdef DEBUG abort(); #endif /* DEBUG */ } interposer = func; closure = cl; delegationEnabled = False; } /* * UninstallInterposer * * Uninstalls an event interposition function. Does nothing if there is * currently no interposer. Replays any queued events. Inhibits focus * changes and colormap installation while replaying them. This prevents * redundant focus changes and colormap installation. */ void UninstallInterposer() { interposer = (InterposerFunc) NULL; delegationEnabled = False; if (deferredEventListHead != NULL) { ClientInhibitFocus(True); ColormapInhibit(True); ListApply(deferredEventListHead, redispatchEvent, 0); ListDestroy(deferredEventListHead); deferredEventListHead = deferredEventListTail = NULL_LIST; ClientInhibitFocus(False); ColormapInhibit(False); } } /* * Return an indication of whether an interposer is currently installed. */ InterposerFunc InterposerInstalled() { return interposer; } /* * Enable delegation of one interposer to another. This is used when one * interposer wants to transfer the interposition to another interposer * without replaying queued events. */ void EnableInterposerDelegation() { delegationEnabled = True; } /*************************************************************************** * Timeout functions ***************************************************************************/ /* TimeoutRequest(t,f,c) -- request that a timeout be generated t microseconds * in the future; when the timeout occurs, the function f is called * with the closure c. */ void TimeoutRequest(t,f,c) int t; TimeoutFunc f; void *c; { #ifdef DEBUG if (timeoutFunc != NULL) { ErrorWarning("Timeout being set while another timeout current"); } #endif gettimeofday(&timeoutNext,NULL); timeoutNext.tv_sec += t / 1000000; timeoutNext.tv_usec += t % 1000000; if (timeoutNext.tv_usec >= 1000000) { timeoutNext.tv_usec -= 1000000; timeoutNext.tv_sec += 1; } timeoutFunc = f; timeoutClosure = c; } /* TimeoutCancel() -- cancel an outstanding timeout. */ void TimeoutCancel() { timeoutNext.tv_sec = 0; timeoutNext.tv_usec = 0; timeoutFunc = NULL; timeoutClosure = NULL; } /* * Initialize the event handling system. This function is called exactly * once at startup. */ void InitEvents(dpy) Display *dpy; { updateKeyboardMap(dpy); updateModifierMap(dpy); } xview-3.2p1.4/clients/olvwm-4.1/fontset.c100644 1750 1750 21101 6331436557 15404 0ustar mbmb#ifdef IDENT #ident "@(#)fontset.c 1.10 93/06/28 SMI" #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifdef SYSV #include #include #endif #ifdef OW_I18N_L4 #include #include #include #include #include #include #include #include #include "olwm.h" #include "mem.h" #include "i18n.h" #include "error.h" #define FS_DEF "definition" #define FS_DEF_LEN (sizeof(FS_DEF)-1) #define FS_ALIAS "alias" #define FS_ALIAS_LEN (sizeof(FS_ALIAS)-1) #define FONT_SETS "OpenWindows.fs" #define XLFD_FIELD 13 /* Number of field */ XrmDatabase FontSetDB = NULL; extern char *getenv(); typedef struct _fs_cache { char *locale; char *name; XFontSet fs; int count; struct _fs_cache *next; } fs_cache; static fs_cache *fsc_root; static char *last_font_locale = NULL; static fs_cache *fsc_lookup_by_name(); static fs_cache *fsc_lookup_by_fs(); static void fsc_enter(); static void fsc_remove(); static char *get_font_set_list(); static void parseFontSetDefaults(); static void remove_white_space(); static char *skip_space(); static char *skip_space_back(); XFontSet loadQueryFontSet(dpy, font, locale) Display *dpy; char *font; char *locale; { char *current_lc_ctype; char **miss_list = NULL; char *font_name_list; XFontSet fs; fs_cache *fsc; int missing_charset_count; char *def_string; if ((fsc = fsc_lookup_by_name(locale, font)) != NULL) { fsc->count++; return fsc->fs; } if (last_font_locale == NULL || strcmp(last_font_locale, locale) != 0) { /* * Setup the new font set database for this locale. */ #ifdef DEBUG fprintf(stderr, "New font locale -> %s\n", locale); #endif if (last_font_locale != NULL) free(last_font_locale); last_font_locale = MemNewString(locale); parseFontSetDefaults (last_font_locale); } /* * Make sure we are talking same locale here. There only one * way we can tell the current locale to the XCreateFontSet is * via setlocale! */ if (strcmp(locale, setlocale(LC_CTYPE, NULL)) != NULL) { current_lc_ctype = MemNewString(setlocale(LC_CTYPE, NULL)); setlocale(LC_CTYPE, locale); } else current_lc_ctype = NULL; /* * First of all, try FontSetDB. */ if ((font_name_list = get_font_set_list(FontSetDB, font)) != NULL) { remove_white_space(font_name_list); fs = XCreateFontSet(dpy, font_name_list, &miss_list, &missing_charset_count, &def_string); } else { /* * Try "font" as a whole font set. */ miss_list = NULL; fs = XCreateFontSet(dpy, font, &miss_list, &missing_charset_count, &def_string); } if (current_lc_ctype != NULL) { setlocale(LC_CTYPE, current_lc_ctype); free(current_lc_ctype); } if (miss_list && (missing_charset_count > 0)) { XFreeStringList(miss_list); } if (missing_charset_count > 0 && fs) { XFreeFontSet(dpy, fs); fs = NULL; } if (fs != NULL) { fsc_enter(locale, font, fs); } return fs; } freeFontSet(dpy, fs) Display *dpy; XFontSet fs; { register fs_cache *fsc; char *cur_locale; char saved_locale[MAXNAMELEN + 1]; if ((fsc = fsc_lookup_by_fs(fs)) == NULL) { fprintf(stderr, "Freeing none cached font set\n"); return; } if (--(fsc->count) <= 0) { cur_locale = setlocale(LC_CTYPE, NULL); if (strcmp(fsc->locale, cur_locale) != 0) { (void) strcpy(saved_locale, cur_locale); (void) setlocale(LC_CTYPE, fsc->locale); } else saved_locale[0] = 0; fsc_remove(dpy, fsc); if (saved_locale[0] != 0) (void) setlocale(LC_CTYPE, saved_locale); } } /* * parseFontSetDefaults - get locale specific font set name settings * from Font set name default file. The FontSetDB is standalone DB, * which will not merge with others. */ static void parseFontSetDefaults(locale) char *locale; { char filename[1024]; char *openWinPath; Bool notFound = False; /* look for application default file */ #ifdef OPENWINHOME_DEFAULT /* martin-2.buck@student.uni-ulm.de */ if (!(openWinPath = getenv("OPENWINHOME"))) { openWinPath = OPENWINHOME_DEFAULT; } #else if ((openWinPath = getenv("OPENWINHOME")) != NULL) { #endif (void) sprintf(filename, "%s/lib/locale/%s/OW_FONT_SETS/%s", openWinPath, locale, FONT_SETS); #ifdef DEBUG fprintf(stderr, "Try to open the FontSetDB [%s]\n", filename); #endif if (access(filename, R_OK) != 0) notFound = True; #ifndef OPENWINHOME_DEFAULT } else notFound = True; #endif if (notFound) { (void) sprintf(filename, "/usr/lib/X11/app-defaults/%s/%s", locale, FONT_SETS); } if (FontSetDB != NULL) XrmDestroyDatabase(FontSetDB); if ((FontSetDB = XrmGetFileDatabase(filename)) == NULL && strcmp(locale, "C") != 0) { sprintf(filename, GetString("Could not find the font set DB for the '%s' locale.\n"), locale); ErrorWarning(filename); } } static char * parse_font_list(db, list, count) XrmDatabase db; register char *list; int count; { XrmValue xrm_result; char *key, *type; /* Enforce a limit of 15 recursions */ if (count > 15) return NULL; #ifdef DEBUG fprintf(stderr, "list -> [%s]\n", list); #endif if (strncmp(list, FS_DEF, FS_DEF_LEN) == 0) { if ((key = strchr(list, ',')) != NULL) { key = skip_space(key + 1); return key; } } else if (strncmp(list, FS_ALIAS, FS_ALIAS_LEN) == 0) { xrm_result.size = 0; xrm_result.addr = NULL; if ((key = strchr(list, ',')) != NULL) { key = skip_space(key + 1); if (XrmGetResource(db, key, key, &type, &xrm_result)) return parse_font_list(db, xrm_result.addr, count++); } } #ifdef DEBUG fprintf(stderr, "There are no such key\n"); #endif return NULL; } /* * Given a database handle and a font set specfier, return a comma * separated list of fonts if a font set definition is found. * If not, return NULL. */ static char * get_font_set_list(db, key) XrmDatabase db; char *key; { XrmValue xrm_result; char *type; if ((db == NULL) || (key == NULL)) return (NULL); xrm_result.size = 0; xrm_result.addr = NULL; #ifdef DEBUG fprintf(stderr, "Looking for key [%s] in FontSetDB...\n", key); #endif if (XrmGetResource(db, key, key, &type, &xrm_result) == True) return(parse_font_list(db, xrm_result.addr, 0)); #ifdef DEBUG fprintf(stderr, "There are no such key\n"); #endif return NULL; } static void remove_white_space(ss) char *ss; { char *t; char *s; char c; int field; t = s = ss; while (c = *s) { /* * Skip whip spaces between font names */ while (isspace(c) || c == ',') { if (c == NULL) goto term; else if (c == ',') *t++ = c; c = *++s; } /* * Copy font name. */ for (field = 0; field < XLFD_FIELD && c != ','; ) { if (c == NULL) goto term; else if (c == '-') field++; *t++ = c; c = *++s; } while (! isspace(c) && c != NULL && c != ',') { *t++ = c; c = *++s; } } term: *t = '\0'; } static char * skip_space(p) register char *p; { while (isspace(*p)) p++; return p; } static char * skip_space_back(p) register char *p; { while (isspace(*p)) p--; return p; } static fs_cache * fsc_lookup_by_name(locale, name) char *locale; char *name; { register fs_cache *fsc; for (fsc = fsc_root; fsc != NULL; fsc = fsc->next) if (strcmp(fsc->locale, locale) == 0 && strcmp(fsc->name, name) == 0) break; return fsc; } static fs_cache * fsc_lookup_by_fs(fs) XFontSet fs; { register fs_cache *fsc; for (fsc = fsc_root; fsc != NULL; fsc = fsc->next) if (fsc->fs == fs) break; return fsc; } static void fsc_enter(locale, name, fs) char *locale; char *name; XFontSet fs; { register fs_cache *new; new = MemNew(fs_cache); new->locale = MemNewString(locale); new->name = MemNewString(name); new->count = 1; new->fs = fs; new->next = fsc_root; fsc_root = new; } static void fsc_remove(dpy, afsc) Display *dpy; register fs_cache *afsc; { register fs_cache *fsc1, *fsc2; MemFree(afsc->locale); MemFree(afsc->name); XFreeFontSet(dpy, afsc->fs); /* * Typically, we should free the "RM_FONTVAR->fsb", but our * current font set library(libmltext) just returning the part * of "RM_FONTVAR->fs", hence we can not. * XFree(RM_FONTVAR->fsb); */ fsc2 = NULL; for (fsc1 = fsc_root; fsc1 != NULL; fsc1 = fsc1->next) { if (fsc1 == afsc) { if (fsc2 == NULL) fsc_root = afsc->next; else fsc2->next = afsc->next; MemFree(afsc); return; } fsc2 = fsc1; } fprintf(stderr, "Removing none existed font cache\n"); } #endif xview-3.2p1.4/clients/olvwm-4.1/gettext.c100644 1750 1750 22170 5515337306 15410 0ustar mbmb#ifdef IDENT #ident "@(#)gettext.c 1.10 93/06/28 SMI" #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include "gettext.h" #ifdef SYSV #define bzero(a,b) memset(a,0,b) #endif char *malloc(), *strdup(); char * dgettext(); char *_gettext(); char *in_path(); char *fgets(), *getenv(); caddr_t mmap(), calloc(); #ifdef NOT static struct domain_binding *firstbind=0, *lastbind=0; static void initbindinglist() { if (! firstbind) { firstbind = (struct domain_binding *) malloc(sizeof(struct domain_binding)); firstbind->domain_name = strdup(""); firstbind->binding = strdup(DEFAULT_BINDING); firstbind->nextdomain = (struct domain_binding *) 0; lastbind = firstbind; } } static char * lookupdefbind(domain_name) char *domain_name; { static char *binding = NULL; /* psuedo static ptr for return value */ static int bindinglen = 0; char *bindptr = firstbind->binding; char *current_locale; char chartmp; char *bindtmptr, pathtmp[MAXPATHLEN], bindtmp[MAXPATHLEN]; int newlen; struct stat statbuf; bindtmptr = bindtmp; current_locale = setlocale(LC_MESSAGES, NULL); while (chartmp = *bindptr++) { switch (chartmp) { case BINDINGLISTDELIM: *bindtmptr = '\0'; strcpy(pathtmp, bindtmp); strcat(pathtmp, "/"); strcat(pathtmp, current_locale); strcat(pathtmp, "/LC_MESSAGES/"); strcat(pathtmp, domain_name); strcat(pathtmp, ".mo"); if (stat(pathtmp, &statbuf)) { bindtmptr = bindtmp; break; } if ((newlen = strlen(bindtmp)) > bindinglen) { bindinglen = newlen; if (binding) { free (binding); } binding = malloc(newlen+1); strcpy(binding, bindtmp); } return(binding); default: *bindtmptr++ = chartmp; break; } } /* * NOT FOUND, return NULL */ return (NULL); } char * bindtextdomain(domain_name, binding) char *domain_name; unsigned char *binding; { struct domain_binding *bind; char *lastpath; unsigned char pathtmp[MAXPATHLEN+1]; int newlen; pathtmp[0] = '\0'; /* Initialize list */ if (! firstbind) { initbindinglist(); } if (!domain_name) { return (NULL); } if (*domain_name == '\0') { if (!binding) { /* query, add COOKIE to binding * return new binding cookie */ pathtmp[0] = (unsigned char) COOKIE; pathtmp[1] = '\0'; strcat(pathtmp, firstbind->binding); return (strdup(pathtmp)); } else if (binding[0] == COOKIE) { /* result of a previous query, * restore old binding */ firstbind->binding = strdup(binding+1); free(binding); return (NULL); } else { /* add binding to default binding list */ strcat(pathtmp, firstbind->binding); free(firstbind->binding); strcat(pathtmp, binding); strcat(pathtmp, "\n"); firstbind->binding = strdup(pathtmp); return (NULL); } } /* linear search for binding, rebind if found, add if not */ bind = firstbind; while (bind) { if (!strcmp(domain_name, bind->domain_name)) { if (!binding) { return(bind->domain_name); } if (bind->domain_name) { free(bind->domain_name); } if (bind->binding) { free(bind->binding); } bind->domain_name = strdup(domain_name); bind->binding = strdup(binding); return (bind->binding); } bind = bind->nextdomain; } /* Not found in list, add it to the end */ if (!binding) { return (NULL); } lastbind = bind = lastbind->nextdomain = (struct domain_binding *) malloc(sizeof(struct domain_binding)); bind->domain_name = strdup(domain_name); bind->binding = strdup(binding); bind->nextdomain = 0; return (bind->binding); } static char * findtextdomain(domain_name) char *domain_name; { struct domain_binding *bind; char *tmptr; bind = firstbind; if (!bind) { initbindinglist(); return (lookupdefbind(domain_name)); } while (bind) { if (!strcmp(domain_name, bind->domain_name)) { return (bind->binding); } bind = bind->nextdomain; } /* not found, look for binding in default binding list */ return (lookupdefbind(domain_name)); } char * textdomain(domain_name) char *domain_name; { static int entered = 0; static char current_domain[MAX_DOMAIN_LENGTH + 1]; if (! entered) { strcpy(current_domain, DEFAULT_DOMAIN); entered = 1; } if (domain_name == NULL) { return(current_domain); } if (strlen(domain_name) > MAX_DOMAIN_LENGTH) { return(NULL); } if (*domain_name == '\0') { strcpy(current_domain, DEFAULT_DOMAIN); } else { strcpy(current_domain, domain_name); } return(current_domain); } char * gettext(msg_id) char *msg_id; { return (dgettext(NULL, msg_id)); } char * dgettext(domain_name, msg_id) char *domain_name; char *msg_id; { char msgfile[MAXPATHLEN+1]; char *current_locale; char *current_domain; char *current_binding; char *msgptr, *openwinhome = NULL; struct stat statbuf; int fd = -1; caddr_t addr; int msg_inc; static int top_list = 0; /* top of message_so list */ static int first_free = 0; /* first free entry in list */ static int last_entry_seen = 0; /* try this one first */ static struct message_so messages_so[MAX_MSG]; static struct message_so cur_mess_so; /* holds current message domain */ current_locale = setlocale(LC_MESSAGES, NULL); if (domain_name == NULL) { current_domain = textdomain(NULL); } else if (strlen(domain_name) > MAX_DOMAIN_LENGTH) { return(msg_id); } else if (*domain_name == '\0') { current_domain = DEFAULT_DOMAIN; } else { current_domain = domain_name; } /* check to see if textdomain has changed */ bzero(msgfile, sizeof(msgfile)); if (current_binding = findtextdomain(current_domain)) { strcpy(msgfile, current_binding); strcat(msgfile, "/"); strcat(msgfile, current_locale); strcat(msgfile, "/LC_MESSAGES/"); strcat(msgfile, current_domain); strcat(msgfile, ".mo"); } else { return(msg_id); } msg_inc = top_list; while (msg_inc < first_free) { if (!strcmp(msgfile, messages_so[msg_inc].message_so_path)) { if (messages_so[msg_inc].fd != -1 && messages_so[msg_inc].mess_file_info != (struct struct_mo_info *) -1) { cur_mess_so = messages_so[msg_inc]; last_entry_seen = msg_inc; return (_gettext(cur_mess_so, msg_id)); } else { return(msg_id); } } msg_inc++; } /* been though entire queue and not found open new entry if there is space. */ if (msg_inc == MAX_MSG) { return (msg_id); /* not found and no more space */ } if (first_free == MAX_MSG) { return (msg_id); /* no more space */ } /* * There is an available entry in the queue, so make a * message_so for it and put it on the queue, * return msg_id if message file isn't opened -or- * mmap'd correctly */ /* if ((fd = open(msgfile, O_RDONLY)) == -1) { return (msg_id); } else if (fstat(fd, &statbuf) == -1) { close(fd); return (msg_id); } else if ((addr = mmap(0, statbuf.st_size, PROT_READ, MAP_SHARED, fd, 0)) == (caddr_t) -1 ) { close(fd); return (msg_id); } close(fd); */ fd = open(msgfile, O_RDONLY); messages_so[first_free].fd = fd; messages_so[first_free].message_so_path = strdup(msgfile); if (fd == -1) { first_free++; close(fd); return (msg_id); } fstat(fd, &statbuf); addr = mmap(0, statbuf.st_size, PROT_READ, MAP_SHARED, fd, 0); close(fd); messages_so[first_free].mess_file_info = (struct struct_mo_info *) addr; if (addr == (caddr_t) -1) { first_free++; return (msg_id); } messages_so[first_free].message_list = (struct message_struct *) &messages_so[first_free].mess_file_info[1]; messages_so[first_free].msg_ids = (char *) &messages_so[first_free].message_list[messages_so[first_free].mess_file_info->message_count]; messages_so[first_free].msgs = (char *) messages_so[first_free].msg_ids + messages_so[first_free].mess_file_info->string_count_msgid; cur_mess_so = messages_so[first_free]; first_free++; /* return pointer to message */ return (_gettext(cur_mess_so,msg_id)); } char *_gettext( messages, key_string ) struct message_so messages; char *key_string ; { register int check; register int val; check = messages.mess_file_info->message_mid; for (;;) { if ((val=strcmp(key_string, messages.msg_ids+messages.message_list[check].msgid_offset)) < 0) { if (messages.message_list[check].less == -99) { return (key_string); } else { check = messages.message_list[check].less; } } else if (val > 0) { if (messages.message_list[check].more == -99) { return (key_string); } else { check = messages.message_list[check].more; } } else { return (messages.msgs+messages.message_list[check].msg_offset); } /* if ((val= ... */ } /* for (;;) */ } #endif xview-3.2p1.4/clients/olvwm-4.1/gif.c100644 1750 1750 26120 5515337306 14470 0ustar mbmb/* +-------------------------------------------------------------------+ */ /* | Copyright 1990, David Koblas. | */ /* | Permission to use, copy, modify, and distribute this software | */ /* | and its documentation for any purpose and without fee is hereby | */ /* | granted, provided that the above copyright notice appear in all | */ /* | copies and that both that copyright notice and this permission | */ /* | notice appear in supporting documentation. This software is | */ /* | provided "as is" without express or implied warranty. | */ /* +-------------------------------------------------------------------+ */ #include #include #include #include #include #include #include #include #include "mem.h" #define MAXCOLORMAPSIZE 256 #define TRUE 1 #define FALSE 0 #define CM_RED 0 #define CM_GREEN 1 #define CM_BLUE 2 #define MAX_LWZ_BITS 12 #define INTERLACE 0x40 #define LOCALCOLORMAP 0x80 #define BitSet(byte, bit) (((byte) & (bit)) == (bit)) #define ReadOK(file,buffer,len) (fread(buffer, len, 1, file) != 0) #define LM_to_uint(a,b) (((b)<<8)|(a)) struct { unsigned int Width; unsigned int Height; XColor *ColorMap; unsigned int BitPixel; unsigned int ColorResolution; unsigned int Background; unsigned int AspectRatio; } GifScreen; struct { int transparent; int delayTime; int inputFlag; int disposal; } Gif89 = { -1, -1, -1, 0 }; extern XImage* ReadImage(); XImage *ReadGIF(dpy, fd, pNcolors, pColors) Display *dpy; FILE *fd; int *pNcolors; XColor **pColors; { XImage *in_image; unsigned char buf[16]; unsigned char c; int useGlobalColormap; int bitPixel; int imageCount = 0; char version[4]; int imageNumber = 1; rewind (fd); if (! ReadOK(fd,buf,6)) { return NULL; } if (strncmp(buf,"GIF",3) != 0) { return NULL; } strncpy(version, buf + 3, 3); version[3] = '\0'; if ((strcmp(version, "87a") != 0) && (strcmp(version, "89a") != 0)) { return NULL; } if (! ReadOK(fd,buf,7)) { return NULL; } GifScreen.Width = LM_to_uint(buf[0],buf[1]); GifScreen.Height = LM_to_uint(buf[2],buf[3]); GifScreen.BitPixel = 2<<(buf[4]&0x07); GifScreen.ColorResolution = (((buf[4]&0x70)>>3)+1); GifScreen.Background = buf[5]; GifScreen.AspectRatio = buf[6]; if (BitSet(buf[4], LOCALCOLORMAP)) { /* Global Colormap */ GifScreen.ColorMap = (XColor*)MemAllocN(GifScreen.BitPixel * sizeof (XColor)); if (ReadColorMap(fd,GifScreen.BitPixel,GifScreen.ColorMap) != 1) { MemFree (GifScreen.ColorMap); return NULL; } } for (;;) { if (! ReadOK(fd,&c,1)) { MemFree (GifScreen.ColorMap); return NULL; } switch (c) { case ';': /* GIF terminator */ if (imageCount < imageNumber) { MemFree (GifScreen.ColorMap); return NULL; } *pNcolors = GifScreen.BitPixel; *pColors = GifScreen.ColorMap; return in_image; break; case '!': /* Extension */ if (! ReadOK(fd,&c,1)) { MemFree (GifScreen.ColorMap); return NULL; } DoExtension(fd, c); break; case ',': /* a valid start character */ ++imageCount; if (! ReadOK(fd,buf,9)) { MemFree (GifScreen.ColorMap); return NULL; } useGlobalColormap = ! BitSet(buf[8], LOCALCOLORMAP); bitPixel = 1<<((buf[8]&0x07)+1); if (!useGlobalColormap) { MemFree (GifScreen.ColorMap); GifScreen.ColorMap = (XColor*)MemAllocN(GifScreen.BitPixel * sizeof (XColor)); if (ReadColorMap(fd, bitPixel, GifScreen.ColorMap) != 1) { MemFree (GifScreen.ColorMap); return NULL; } } in_image = ReadImage(dpy, fd, LM_to_uint(buf[4],buf[5]), LM_to_uint(buf[6],buf[7]), GifScreen.ColorMap, BitSet(buf[8], INTERLACE), imageCount != imageNumber); break; default: /* Not a valid start character */ break; } } } static int ReadColorMap(fd,number,buffer) FILE *fd; int number; XColor *buffer; { int i; unsigned char rgb[3]; for (i = 0; i < number; ++i) { if (! ReadOK(fd, rgb, sizeof(rgb))) return -1; buffer[i].pixel = i; buffer[i].red = rgb[0] << 8; buffer[i].green = rgb[1] << 8; buffer[i].blue = rgb[2] << 8; buffer[i].flags = 0; } return 1; } static int DoExtension(fd, label) FILE *fd; int label; { static char buf[256]; char *str; switch (label) { case 0x01: /* Plain Text Extension */ str = "Plain Text Extension"; #ifdef notdef if (GetDataBlock(fd, (unsigned char*) buf) == 0) ; lpos = LM_to_uint(buf[0], buf[1]); tpos = LM_to_uint(buf[2], buf[3]); width = LM_to_uint(buf[4], buf[5]); height = LM_to_uint(buf[6], buf[7]); cellw = buf[8]; cellh = buf[9]; foreground = buf[10]; background = buf[11]; while (GetDataBlock(fd, (unsigned char*) buf) != 0) { XPutPixel(in_image, xpos, ypos, v); ++index; } return 1; #else break; #endif case 0xff: /* Application Extension */ str = "Application Extension"; break; case 0xfe: /* Comment Extension */ str = "Comment Extension"; while (GetDataBlock(fd, (unsigned char*) buf) != 0) { } return 1; case 0xf9: /* Graphic Control Extension */ str = "Graphic Control Extension"; (void) GetDataBlock(fd, (unsigned char*) buf); Gif89.disposal = (buf[0] >> 2) & 0x7; Gif89.inputFlag = (buf[0] >> 1) & 0x1; Gif89.delayTime = LM_to_uint(buf[1],buf[2]); if ((buf[0] & 0x1) != 0) Gif89.transparent = buf[3]; while (GetDataBlock(fd, (unsigned char*) buf) != 0) ; return 1; default: str = buf; sprintf(buf, "UNKNOWN (0x%02x)", label); break; } while (GetDataBlock(fd, (unsigned char*) buf) != 0) ; return 1; } int ZeroDataBlock = FALSE; static int GetDataBlock(fd, buf) FILE *fd; unsigned char *buf; { unsigned char count; if (! ReadOK(fd,&count,1)) { return 0; } ZeroDataBlock = count == 0; if ((count != 0) && (! ReadOK(fd, buf, count))) { return 0; } return count; } static int GetCode(fd, code_size, flag) FILE *fd; int code_size; int flag; { static unsigned char buf[280]; static int curbit, lastbit, done, last_byte; int i, j, ret; unsigned char count; if (flag) { curbit = 0; lastbit = 0; done = FALSE; return 0; } if ( (curbit+code_size) >= lastbit) { if (done) { if (curbit >= lastbit) return -1; return 1; } buf[0] = buf[last_byte-2]; buf[1] = buf[last_byte-1]; if ((count = GetDataBlock(fd, &buf[2])) == 0) done = TRUE; last_byte = 2 + count; curbit = (curbit - lastbit) + 16; lastbit = (2+count)*8 ; } ret = 0; for (i = curbit, j = 0; j < code_size; ++i, ++j) ret |= ((buf[ i / 8 ] & (1 << (i % 8))) != 0) << j; curbit += code_size; return ret; } static int LWZReadByte(fd, flag, input_code_size) FILE *fd; int flag; int input_code_size; { static int fresh = FALSE; int code, incode; static int code_size, set_code_size; static int max_code, max_code_size; static int firstcode, oldcode; static int clear_code, end_code; static int table[2][(1<< MAX_LWZ_BITS)]; static int stack[(1<<(MAX_LWZ_BITS))*2], *sp; register int i; if (flag) { set_code_size = input_code_size; code_size = set_code_size+1; clear_code = 1 << set_code_size ; end_code = clear_code + 1; max_code_size = 2*clear_code; max_code = clear_code+2; GetCode(fd, 0, TRUE); fresh = TRUE; for (i = 0; i < clear_code; ++i) { table[0][i] = 0; table[1][i] = i; } for (; i < (1< stack) return *--sp; while ((code = GetCode(fd, code_size, FALSE)) >= 0) { if (code == clear_code) { for (i = 0; i < clear_code; ++i) { table[0][i] = 0; table[1][i] = i; } for (; i < (1< 0) ; return -2; } incode = code; if (code >= max_code) { *sp++ = firstcode; code = oldcode; } while (code >= clear_code) { *sp++ = table[1][code]; if (code == table[0][code]) return -1; code = table[0][code]; } *sp++ = firstcode = table[1][code]; if ((code = max_code) <(1<= max_code_size) && (max_code_size < (1< stack) return *--sp; } return code; } static XImage* ReadImage(dpy, fd, len, height, cmap, interlace, ignore) Display *dpy; FILE *fd; int len, height; XColor *cmap; int interlace, ignore; { unsigned long swaptest = 1; XImage *in_image; int screen = DefaultScreen(dpy); unsigned char c; int v; int xpos = 0, ypos = 0, pass = 0; /* ** Initialize the Compression routines */ if (! ReadOK(fd,&c,1)) return NULL; if (LWZReadByte(fd, TRUE, c) < 0) return NULL; /* ** If this is an "uninteresting picture" ignore it. */ if (ignore) { while (LWZReadByte(fd, FALSE, c) >= 0) ; return NULL; } /* initialize the input image */ in_image = XCreateImage (dpy, DefaultVisual (dpy, screen), 8, /* Depth */ ZPixmap, /* format */ 0, /* offset */ NULL, /* data */ len, /* width */ height, /* Height */ XBitmapPad(dpy), /* Scan line quantum */ 0 /* Bytes per line */ ); in_image->data = MemAllocN (ImageSize(in_image)); while ((v = LWZReadByte(fd,FALSE,c)) >= 0 ) { if (*(char*) &swaptest) _swaplong ((char*) &v, sizeof(long)); XPutPixel(in_image, xpos, ypos, v); ++xpos; if (xpos == len) { xpos = 0; if (interlace) { switch (pass) { case 0: case 1: ypos += 8; break; case 2: ypos += 4; break; case 3: ypos += 2; break; } if (ypos >= height) { ++pass; switch (pass) { case 1: ypos = 4; break; case 2: ypos = 2; break; case 3: ypos = 1; break; default: goto fini; } } } else { ++ypos; } } if (ypos >= height) break; } fini: LWZReadByte(fd,FALSE,c); return in_image; } xview-3.2p1.4/clients/olvwm-4.1/group.c100644 1750 1750 14573 5515337306 15070 0ustar mbmb/* * (c) Copyright 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifdef IDENT #ident "@(#)group.c 26.7 91/09/14 SMI" #endif #include #include #include #include #include "i18n.h" #include "mem.h" #include "st.h" #include "olwm.h" #include "win.h" #include "list.h" #include "group.h" /*************************************************************************** * Local data ***************************************************************************/ static st_table *groupHashTable; /*************************************************************************** * Local functions ***************************************************************************/ /* groupFindList -- find a client in a list of clients; return a given * value if found or 0 otherwise. If passed a pointer to a List **, set that. */ static unsigned int groupFindList(plist, cli, retlist, retval) List **plist; Client *cli; List ***retlist; unsigned int retval; { if ((cli == NULL) || (*plist == NULL)) { if (retlist != NULL) *retlist = NULL; return 0; } if ((*plist)->value == cli) { if (retlist != NULL) *retlist = plist; return retval; } return groupFindList(&((*plist)->next), cli, retlist, retval); } /* groupFindCli -- find a client in a group. Return a mask indicating * which category of client the client was found in, if any; if a list * pointer is passed in, return a pointer to a List * in that parameters * (presumably for list deletion). */ static unsigned int groupFindCli(group, cli, ppList) Group *group; Client *cli; List ***ppList; { unsigned int retmask; if (cli == group->leader) { retmask = GROUP_LEADER; } else { if ((retmask = groupFindList(&(group->dependents), cli, ppList, GROUP_DEPENDENT)) == 0) retmask = groupFindList(&(group->independents), cli, ppList, GROUP_INDEPENDENT); } return retmask; } /* groupCompare -- utility function to compare two group id's */ static int groupCompare(g1,g2) register char *g1, *g2; { return ((GroupID)g1) - ((GroupID)g2); } /* groupHash -- hash function for group id lookup table */ static int groupHash(g1, modulus) register char *g1; register int modulus; { return ((GroupID)g1)%modulus; } /* groupInsert -- put a group structure into the lookup table */ static void groupInsert(group) Group *group; { st_insert(groupHashTable, (int)group->groupid, (char *)group); } /* groupDelete -- remove a group structure from the lookup table */ static Bool groupDelete(grpid) GroupID grpid; { Group *oldGrp; GroupID tmpGrp = grpid; GroupID *tmpGrpPtr = &tmpGrp; return st_delete(groupHashTable, (char *)tmpGrpPtr, (char *)&oldGrp); } /*************************************************************************** * Global functions ***************************************************************************/ /* * GroupInit -- initialises the hash table used to map group id's to * group structures. */ void GroupInit() { groupHashTable = st_init_table(groupCompare, groupHash); } /* GroupApply -- applies a function to each part of the group identified * in the mask; as with any apply function, when the function returns * a non-NULL value application stops and that value is returned. */ void * GroupApply(grpid, func, closure, mask) GroupID grpid; GroupFunc func; void *closure; unsigned int mask; { Group *group; void *res = NULL; group = GroupLookup(grpid); if (group == NULL) return NULL; if ((mask & GROUP_LEADER) && (group->leader != NULL)) { res = (func)(group->leader, closure); } if ((mask & GROUP_DEPENDENT) && (group->dependents != NULL) && (res == NULL)) { res = ListApply(group->dependents,func,closure); } if ((mask & GROUP_INDEPENDENT) && (group->independents != NULL) && (res == NULL)) { res = ListApply(group->independents,func,closure); } return res; } /* GroupLookup -- given a GroupID, returns the associated group structure, * or NULL if there is none. */ Group * GroupLookup(group) GroupID group; { Group *tmp = NULL; st_lookup(groupHashTable, group, &tmp); return tmp; } /* GroupAdd -- adds a client to the named group, creating the group if need be. * The kind of client is specified in the mask field. Returns True * if the client was successfully added. */ Bool GroupAdd(grpid, cli, mask) GroupID grpid; Client *cli; unsigned int mask; { Group *group; unsigned int currmask; group = GroupLookup(grpid); if (group == NULL) { group = MemNew(Group); group->groupid = grpid; groupInsert(group); currmask = 0; } else { currmask = groupFindCli(group, cli, NULL); } if (mask & GROUP_LEADER) { if ((currmask == 0) || (group->leader == cli)) { group->leader = cli; return True; } else return False; } else if (mask & GROUP_DEPENDENT) { if (currmask != 0) return False; group->dependents = ListCons(cli,group->dependents); } else if (mask & GROUP_INDEPENDENT) { if (currmask != 0) return False; group->independents = ListCons(cli,group->independents); } return True; } /* GroupRemove -- removes a client from the group. If the group becomes empty * it is deleted. Returns True if the client was successfully deleted. */ Bool GroupRemove(grpid,cli) GroupID grpid; Client *cli; { Group *group; unsigned int mask; List **plist; group = GroupLookup(grpid); if (group == NULL) return False; mask = groupFindCli(group, cli, &plist); if (mask == GROUP_LEADER) { group->leader = NULL; } else if ((mask == GROUP_DEPENDENT) || (mask == GROUP_INDEPENDENT)) { ListDestroyCell(plist); } else { return False; } if ((group->leader == NULL) && (group->dependents == NULL) && (group->independents == NULL)) { groupDelete(group->groupid); MemFree(group); } return True; } /* GroupIsLeader -- returns whether a particular client is leader of a group * If the group hasn't been registered yet, assume that this client is * its leader. */ Bool GroupIsLeader(grpid, cli) GroupID grpid; Client *cli; { Group *group; group = GroupLookup(grpid); if (group == NULL) return True; return (group->leader == cli); } /* GroupLeader -- returns the leader of a group */ Client * GroupLeader(grpid) GroupID grpid; { Group *group; group = GroupLookup(grpid); if (group == NULL) return NULL; else return group->leader; } xview-3.2p1.4/clients/olvwm-4.1/helpsend.c100644 1750 1750 1640 5515337307 15506 0ustar mbmb/* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ /* ---------------------------------------------------------------------- * helpsend.c * ---------------------------------------------------------------------*/ #ifdef IDENT #ident "@(#)helpsend.c 26.6 91/09/14 SMI" #endif #include "helpcmd.h" /* ---------------------------------------------------------------------- * ShowHelpWindow * ---------------------------------------------------------------------*/ int ShowHelpWindow(nscreen,mousex,mousey,helpkey) int nscreen; int mousex,mousey; char *helpkey; { helpCmdAttr[HW_SCREEN_NO].value.ival = nscreen; helpCmdAttr[HW_MOUSE_X].value.ival = mousex; helpCmdAttr[HW_MOUSE_Y].value.ival = mousey; helpCmdAttr[HW_HELPKEY].value.sval = helpkey; return (SendCmd(&helpCommand)); } xview-3.2p1.4/clients/olvwm-4.1/i18n.c100644 1750 1750 7435 5515337307 14473 0ustar mbmb#ifdef IDENT #ident "@(#)i18n.c 1.12 93/06/28 SMI" #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #include #include #include "i18n.h" #include "mem.h" #include "ollocale.h" #include "olwm.h" #include "globals.h" /* * DrawText - Displays Text. * #ifdef'd for both normal and wide text */ void DrawText(dpy,drawable,font,gc,x,y,text,len) Display *dpy; Drawable drawable; DisplayFont font; GC gc; int x,y; Text *text; int len; { #ifdef OW_I18N_L4 XFontSet fontSet; switch (font) { case TitleFont: fontSet = GRV.TitleFontSetInfo.fs; break; case TextFont: fontSet = GRV.TextFontSetInfo.fs; break; case ButtonFont: fontSet = GRV.ButtonFontSetInfo.fs; break; case IconFont: fontSet = GRV.IconFontSetInfo.fs; break; default: return; } XwcDrawString(dpy,drawable,fontSet,gc,x,y,text,len); #else XDrawString(dpy,drawable,gc,x,y,text,len); #endif } /* * FontInfo - returns width,height,ascent,descent for the set of * fonts used in olwm. * #ifdef'd for both XFontInfo and XFontSet */ int FontInfo(font,op,text,len) DisplayFont font; FontInfoOp op; Text *text; int len; { #ifdef OW_I18N_L4 XFontSetInfo *fontInfo; #else XFontStruct *fontInfo; #endif int ret; switch (font) { case TitleFont: #ifdef OW_I18N_L4 fontInfo = &(GRV.TitleFontSetInfo); #else fontInfo = GRV.TitleFontInfo; #endif break; case TextFont: #ifdef OW_I18N_L4 fontInfo = &(GRV.TextFontSetInfo); #else fontInfo = GRV.TextFontInfo; #endif break; case ButtonFont: #ifdef OW_I18N_L4 fontInfo = &(GRV.ButtonFontSetInfo); #else fontInfo = GRV.ButtonFontInfo; #endif break; case IconFont: #ifdef OW_I18N_L4 fontInfo = &(GRV.IconFontSetInfo); #else fontInfo = GRV.IconFontInfo; #endif break; default: return 0; } switch (op) { case FontWidthOp: #ifdef OW_I18N_L4 ret = XwcTextEscapement(fontInfo->fs,text,len); #else ret = XTextWidth(fontInfo,text,len); #endif break; case FontHeightOp: #ifdef OW_I18N_L4 ret = fontInfo->fsx->max_logical_extent.height; #else ret = fontInfo->ascent + fontInfo->descent; #endif break; case FontAscentOp: #ifdef OW_I18N_L4 ret = - fontInfo->fsx->max_logical_extent.y; #else ret = fontInfo->ascent; #endif break; case FontDescentOp: #ifdef OW_I18N_L4 ret = fontInfo->fsx->max_logical_extent.height + fontInfo->fsx->max_logical_extent.y; #else ret = fontInfo->descent; #endif break; default: return 0; } return ret; } #ifdef OW_I18N_L4 /* * When converting the wide char to CTEXT, we need to estimate the * space, but there are no right way to do this without actually * converting. "wslen(wchar) * sizeof(wchar_t)" will give us the how * many bytes consume by the characters, but this does not include the * any control sequences. I decided use fudge bytes for this control * sequnces for now. This is absolutely bad idea to having a this * value, but otherwise we need to convert it twice. One control * sequnce require the 3 bytes, so, following allow to switch the code * set 6 times. */ #define WCSTOCTS_FUDGE_BYTES (3 * 6) wchar_t * mbstowcsdup(mbs) register char *mbs; { register int n; register wchar_t *wcs; if (mbs == NULL) return NULL; n = strlen(mbs) + 1; wcs = (wchar_t *) MemAlloc(n * sizeof(wchar_t)); mbstowcs(wcs, mbs, n); #if DEBUG > 4 fprintf(stderr, "mbstowcsdup: mbs [%s] -> wcs [%ws]\n", mbs, wcs); #endif return wcs; } #if DEBUG > 4 ascii_dump(s) register unsigned char *s; { while (*s) { if (*s < ' ') fprintf(stderr, "^%c", *s + '@'); else if (*s > 0x80) fprintf(stderr, "(%2x)", *s); else fputc(*s, stderr); s++; } } #endif DEBUG #endif OW_I18N_L4 xview-3.2p1.4/clients/olvwm-4.1/images.c100644 1750 1750 106757 6241361454 15225 0ustar mbmb/* * (c) Copyright 1991 Scott Oaks. See LEGAL_NOTICE file for terms of the * license */ #ifdef IDENT #ident "@(#)images.c 1.6 olvwm version 09 Feb 1994" #endif /* Use small images */ #define SMALL_IMAGES #include #include #include #include #include #include "i18n.h" #include "olwm.h" #include "ollocale.h" #include "globals.h" #include "win.h" #include "menu.h" /* * Frame/icon menu action procs */ extern int WindowOpenCloseAction(), WindowFullRestoreSizeAction(); extern int WindowMoveAction(), WindowResizeAction(); extern int WindowPropsAction(), WindowBackAction(), WindowRefreshAction(); extern int WindowQuitAction(), WindowDismissThisAction(); extern int WindowDismissAllAction(), WindowFlashOwnerAction(); extern int WindowStickAction(); /* * Buttons used to build the frame and icon menus * REMIND: right now, toggles always use the same actions! * * These buttons are more or less "prototype" buttons; if the UseImages * resource is set, their pixlabels may be adjusted */ Button openButton = { { { StringLabel, NULL, NULL }, { StringLabel, NULL, NULL } }, {"window:Open", "window:Close"}, 0, False, True, True, WindowOpenCloseAction, ACTION_OPEN_CLOSE, NULL, NULL }; Button fullSizeButton = { { { StringLabel, NULL, NULL }, { StringLabel, NULL, NULL } }, {"window:FullSize", "window:RestoreSize"}, 0, False, True, True, WindowFullRestoreSizeAction, ACTION_FULL_RESTORE, NULL, NULL }; Button moveButton = { { { StringLabel, NULL, NULL }, { NoType, NULL, NULL } }, {"window:Move", NULL}, 0, False, True, True, WindowMoveAction, ACTION_MOVE, NULL, NULL }; Button resizeButton = { { { StringLabel, NULL, NULL }, { NoType, NULL, NULL } }, {"window:Resize", NULL}, 0, False, True, True, WindowResizeAction, ACTION_RESIZE, NULL, NULL }; Button stickyButton = { { { StringLabel, NULL, NULL }, { StringLabel, NULL, NULL } }, {"window:Stick", "window:Unstick"}, 0, False, True, True, WindowStickAction, ACTION_STICK, NULL, NULL }; Button propertiesButton = { { { StringLabel, NULL, NULL }, { NoType, NULL, NULL } }, {"window:Properties", NULL}, 0, False, False, True, WindowPropsAction, ACTION_PROPS, NULL, NULL }; Button backButton = { { { StringLabel, NULL, NULL }, { NoType, NULL, NULL } }, {"window:Back", NULL}, 0, False, True, True, WindowBackAction, ACTION_BACK, NULL, NULL }; Button refreshButton = { { { StringLabel, NULL, NULL }, { NoType, NULL, NULL } }, {"window:Refresh", NULL}, 0, False, True, True, WindowRefreshAction, ACTION_REFRESH, NULL, NULL }; Button quitButton = { { { StringLabel, NULL, NULL }, { NoType, NULL, NULL } }, {"window:Quit", NULL}, 0, False, True, True, WindowQuitAction, ACTION_QUIT, NULL, NULL }; Button dismissButton = { { { StringLabel, NULL, NULL }, { NoType, NULL, NULL } }, {"window:Dismiss", NULL}, 0, False, True, True, NULL, ACTION_NONE, NULL, NULL }; Button dismissThisButton = { { { StringLabel, NULL, NULL}, { NoType, NULL, NULL } }, {"window:DismissThis", NULL}, 0, False, True, True, WindowDismissThisAction, ACTION_OPEN_CLOSE, NULL, NULL }; Button dismissAllButton = { { { StringLabel, NULL, NULL}, { NoType, NULL, NULL } }, {"window:DismissAll", NULL}, 0, False, True, True, WindowDismissAllAction, ACTION_NONE, NULL, NULL }; Button ownerButton = { { { StringLabel, NULL, NULL}, { NoType, NULL, NULL } }, {"window:Owner", NULL}, 0, False, True, True, WindowFlashOwnerAction, ACTION_OWNER, NULL, NULL }; extern int VDMMenuAction(); /* * Menu buttons for VDM motion menu */ Button moveRightButton = { { { StringLabel, NULL, NULL }, { NoType, NULL, NULL } }, { "virtual:Move", NULL }, 0, False, True, True, VDMMenuAction, ACTION_RIGHT_V, NULL, NULL }; Button moveLeftButton = { { { StringLabel, NULL, NULL }, { NoType, NULL, NULL } }, { "virtual:Move", NULL }, 0, False, True, True, VDMMenuAction, ACTION_LEFT_V, NULL, }; Button moveUpButton = { { { StringLabel, NULL, NULL }, { NoType, NULL, NULL } }, { "virtual:Move", NULL }, 0, False, True, True, VDMMenuAction, ACTION_UP_V, NULL, NULL }; Button moveDownButton = { { { StringLabel, NULL, NULL }, { NoType, NULL, NULL } }, { "virtual:Move", NULL }, 0, False, True, True, VDMMenuAction, ACTION_DOWN_V, NULL, NULL }; Button moveUpRightButton = { { { StringLabel, NULL, NULL }, { NoType, NULL, NULL } }, { "virtual:Move", NULL }, 0, False, True, True, VDMMenuAction, ACTION_UPRIGHT_V, NULL, NULL }; Button moveDownRightButton = { { { StringLabel, NULL, NULL }, { NoType, NULL, NULL } }, { "virtual:Move", NULL }, 0, False, True, True, VDMMenuAction, ACTION_DOWNRIGHT_V, NULL, NULL }; Button moveUpLeftButton = { { { StringLabel, NULL, NULL }, { NoType, NULL, NULL } }, { "virtual:Move", NULL }, 0, False, True, True, VDMMenuAction, ACTION_UPLEFT_V, NULL, NULL }; Button moveDownLeftButton = { { { StringLabel, NULL, NULL }, { NoType, NULL, NULL } }, { "virtual:Move", NULL }, 0, False, True, True, VDMMenuAction, ACTION_DOWNLEFT_V, NULL, NULL }; Button moveHomeButton = { { { StringLabel, NULL, NULL }, { NoType, NULL, NULL } }, { "virtual:Move", NULL }, 0, False, True, True, VDMMenuAction, ACTION_HOME_V, NULL, NULL }; #ifdef SMALL_IMAGES /* * Images for Frame Menus and VDM Menus */ #define Close_width 16 #define Close_height 14 static unsigned char Close_bits[] = { 0xc0, 0x3f, 0x40, 0x20, 0x40, 0x20, 0x40, 0xa1, 0xc0, 0x60, 0x64, 0xa0, 0x5c, 0x60, 0x5c, 0xa0, 0xff, 0x7f, 0x05, 0xaa, 0x07, 0x55, 0x14, 0xaa, 0x08, 0x00, 0x14, 0x00, }; #define Open_width 16 #define Open_height 14 static unsigned char Open_bits[] = { 0xc0, 0x3f, 0x40, 0x20, 0xc0, 0x27, 0x40, 0xa7, 0x40, 0x67, 0xc0, 0xa4, 0x60, 0x60, 0x50, 0xa0, 0xcf, 0x7f, 0x05, 0xaa, 0x07, 0x55, 0x14, 0xaa, 0x08, 0x00, 0x14, 0x00, }; #define FullSize_width 16 #define FullSize_height 14 static unsigned char FullSize_bits[] = { 0xf8, 0x7, 0x8, 0x4, 0x8, 0x4, 0x8, 0x14, 0x8, 0xc, 0x8, 0x14, 0xc8, 0xc, 0xc8, 0x14, 0xc8, 0xc, 0xf8, 0x17, 0xe8, 0xd, 0xc8, 0x14, 0xf8, 0xf, 0x40, 0x15, }; #define NormalSize_width 16 #define NormalSize_height 14 static unsigned char NormalSize_bits[] = { 0xf8, 0x7, 0x8, 0x4, 0x8, 0x4, 0x8, 0x14, 0x8, 0xc, 0x8, 0x14, 0x8, 0xc, 0x8, 0x14, 0xf8, 0xf, 0xc0, 0x14, 0xe0, 0xb, 0xf0, 0x17, 0xc0, 0x0, 0xc0, 0x0, }; #define Props_width 16 #define Props_height 14 static unsigned char Props_bits[] = { 0x00, 0x00, 0x00, 0x00, 0xfe, 0x1f, 0x02, 0x10, 0xfa, 0x57, 0x02, 0x30, 0xda, 0x56, 0x02, 0x30, 0x02, 0x50, 0xfe, 0x3f, 0x50, 0x55, 0xa8, 0x2a, 0x50, 0x55, 0x00, 0x00, }; #define Back_width 16 #define Back_height 14 static unsigned char Back_bits[] = { 0xff, 0x00, 0x81, 0x0f, 0x81, 0x3f, 0x81, 0x72, 0x81, 0xc2, 0x81, 0xaa, 0x81, 0xb6, 0x81, 0xfa, 0xff, 0x7e, 0x04, 0x3a, 0xfc, 0x37, 0xa0, 0x2a, 0x40, 0x05, 0xa0, 0x0a, }; #define Refresh_width 16 #define Refresh_height 14 static unsigned char Refresh_bits[] = { 0x00, 0x00, 0xf8, 0x07, 0x48, 0x05, 0xc8, 0x07, 0x08, 0x14, 0x08, 0x0c, 0x48, 0x14, 0x28, 0x0d, 0x08, 0x14, 0xf8, 0x0f, 0x40, 0x15, 0xa0, 0x0a, 0x40, 0x15, 0x00, 0x00, }; #define Stick_width 16 #define Stick_height 14 static unsigned char Stick_bits[] = { 0xb0, 0x0f, 0xf0, 0x1f, 0xb0, 0x23, 0x40, 0x29, 0x80, 0x57, 0x87, 0x8b, 0x82, 0x07, 0x82, 0x0b, 0x96, 0x07, 0x8a, 0x0b, 0x82, 0x07, 0x8a, 0x0b, 0x00, 0x04, 0x08, 0x0a, }; #define UnStick_width 16 #define UnStick_height 14 static unsigned char UnStick_bits[] = { 0x04, 0x00, 0x02, 0x00, 0x03, 0x00, 0x13, 0x00, 0xff, 0x1f, 0xff, 0x1f, 0xff, 0x1f, 0x56, 0x55, 0xaf, 0x2a, 0x57, 0x55, 0x08, 0x00, 0x17, 0x00, 0x0a, 0x00, 0x02, 0x00, }; #define Quit_width 16 #define Quit_height 14 static unsigned char Quit_bits[] = { 0x10, 0x04, 0x38, 0x0e, 0x7c, 0x1f, 0xf8, 0x0f, 0xf0, 0x17, 0xe8, 0x2b, 0xf0, 0x17, 0xf8, 0x0f, 0x7c, 0x1f, 0xb8, 0x0e, 0x50, 0x15, 0xa8, 0x2a, 0x50, 0x14, 0x20, 0x08, }; #define Resize_width 16 #define Resize_height 14 static unsigned char Resize_bits[] = { 0xf8, 0x07, 0x08, 0x04, 0x08, 0x04, 0x08, 0x14, 0xc8, 0x0d, 0xc8, 0x14, 0x48, 0x0d, 0x08, 0x16, 0xf8, 0x07, 0x40, 0x29, 0xa0, 0x32, 0x40, 0xb9, 0x00, 0x40, 0x00, 0xa0, }; #define Move_width 16 #define Move_height 14 static unsigned char Move_bits[] = { 0xc0, 0x3f, 0x40, 0x20, 0x40, 0x20, 0x40, 0xa0, 0xc0, 0x63, 0x6a, 0xa3, 0xc1, 0x62, 0x40, 0xa0, 0xe1, 0x7f, 0x90, 0xaa, 0x09, 0x54, 0x80, 0xaa, 0x01, 0x00, 0xaa, 0x00, }; #else SMALL_IMAGES #define Back_width 32 #define Back_height 32 static unsigned char Back_bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x00, 0x00, 0x14, 0x80, 0x00, 0x00, 0xfc, 0xff, 0x00, 0x00, 0x04, 0x80, 0xff, 0x01, 0x04, 0x80, 0xff, 0x07, 0x04, 0x80, 0xff, 0x0f, 0x04, 0x80, 0xff, 0x0f, 0x04, 0x80, 0x58, 0x1f, 0x04, 0x80, 0xa9, 0x1e, 0x04, 0x80, 0x58, 0x1c, 0x04, 0x80, 0xa9, 0x18, 0x04, 0x80, 0x58, 0x19, 0x04, 0x80, 0xa9, 0x19, 0x04, 0x80, 0xd8, 0x0d, 0x04, 0x80, 0xe9, 0x0f, 0xfc, 0xff, 0xf8, 0x07, 0x40, 0x55, 0xe9, 0x03, 0x40, 0x00, 0xd8, 0x01, 0xc0, 0xff, 0xaf, 0x01, 0x00, 0x54, 0x55, 0x01, 0x00, 0xa8, 0xaa, 0x00, 0x00, 0x54, 0x55, 0x00, 0x00, 0xa8, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; #define Close_width 32 #define Close_height 32 static unsigned char Close_bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x0f, 0x00, 0x40, 0x01, 0x08, 0x00, 0xc0, 0xff, 0x0f, 0x00, 0x40, 0x00, 0x08, 0x00, 0x40, 0x04, 0x58, 0x00, 0x40, 0x0e, 0xa8, 0x00, 0x40, 0x07, 0x58, 0x00, 0xc0, 0x03, 0xa8, 0x00, 0xc0, 0x01, 0x58, 0x00, 0xe0, 0x00, 0xa8, 0x00, 0x70, 0x00, 0x58, 0x40, 0x78, 0x00, 0xa8, 0xc0, 0x5c, 0x00, 0x58, 0xc0, 0x4f, 0x00, 0xa8, 0xc0, 0x47, 0x00, 0x58, 0xc0, 0xc7, 0xff, 0xaf, 0xc0, 0x0f, 0x54, 0x55, 0xc0, 0x1f, 0xa8, 0xaa, 0x3f, 0x00, 0x54, 0x55, 0x21, 0x00, 0xa8, 0xaa, 0x21, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x61, 0x01, 0x00, 0x00, 0xbf, 0x02, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, 0xa0, 0x02, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, 0xa0, 0x02, 0x00, 0x00 }; #define FullSize_width 32 #define FullSize_height 32 static unsigned char FullSize_bits[] = { 0x00, 0xfc, 0xff, 0x00, 0x00, 0x14, 0x80, 0x00, 0x00, 0xfc, 0xff, 0x00, 0x00, 0x04, 0x80, 0x00, 0x00, 0x04, 0x80, 0x05, 0xc0, 0xff, 0x8f, 0x0a, 0x40, 0x01, 0x88, 0x05, 0xc0, 0xff, 0x9f, 0x0a, 0x40, 0x00, 0x88, 0x05, 0x40, 0x00, 0x98, 0x0a, 0x40, 0x00, 0x88, 0x05, 0x40, 0x00, 0x98, 0x0a, 0x40, 0x00, 0x88, 0x05, 0x40, 0x00, 0x98, 0x0a, 0x40, 0x00, 0x88, 0x05, 0x40, 0x00, 0x98, 0x0a, 0x40, 0x00, 0x88, 0x05, 0x40, 0x00, 0x98, 0x0a, 0x40, 0x00, 0x88, 0x05, 0x40, 0x00, 0x98, 0x0a, 0xc0, 0xff, 0x8f, 0x05, 0x00, 0x54, 0x95, 0x0a, 0x00, 0xc4, 0x81, 0x05, 0x00, 0xc4, 0x81, 0x0a, 0x00, 0xc4, 0x81, 0x05, 0x00, 0xc4, 0x81, 0x0a, 0x00, 0xc4, 0x81, 0x05, 0x00, 0xf4, 0x87, 0x0a, 0x00, 0xe4, 0x83, 0x05, 0x00, 0xc4, 0x81, 0x0a, 0x00, 0x84, 0x80, 0x05, 0x00, 0xfc, 0xff, 0x0a }; #define Move_width 32 #define Move_height 32 static unsigned char Move_bits[] = { 0x00, 0x00, 0xfc, 0xff, 0x00, 0x00, 0x14, 0x80, 0x00, 0x00, 0xfc, 0xff, 0x00, 0x00, 0x04, 0x80, 0x00, 0x00, 0x04, 0x80, 0x00, 0x00, 0xfe, 0x80, 0x00, 0x00, 0xfc, 0x80, 0x00, 0x00, 0xf4, 0x80, 0x00, 0x00, 0xfc, 0x80, 0x00, 0x00, 0xfc, 0x80, 0x00, 0x00, 0xce, 0x80, 0x00, 0x00, 0x87, 0x80, 0x00, 0x80, 0x07, 0x80, 0x00, 0xc0, 0x05, 0x80, 0x00, 0xe0, 0x04, 0x80, 0x00, 0x70, 0xfc, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x05, 0x3c, 0x00, 0x00, 0xff, 0x3f, 0x00, 0x00, 0x01, 0x20, 0x00, 0x00, 0x01, 0x20, 0x00, 0x00, 0x01, 0x20, 0x00, 0x00, 0x01, 0x20, 0x00, 0x00, 0x01, 0x20, 0x00, 0x00, 0x01, 0x20, 0x00, 0x00, 0x01, 0x20, 0x00, 0x00, 0x01, 0x20, 0x00, 0x00, 0x01, 0x20, 0x00, 0x00, 0x01, 0x20, 0x00, 0x00, 0x01, 0x20, 0x00, 0x00, 0x01, 0x20, 0x00, 0x00, 0xff, 0x3f, 0x00, 0x00 }; #define NormalSize_width 32 #define NormalSize_height 32 static unsigned char NormalSize_bits[] = { 0x00, 0xfc, 0xff, 0x00, 0x00, 0x14, 0x80, 0x00, 0x00, 0xfc, 0xff, 0x00, 0x00, 0x04, 0x80, 0x00, 0x00, 0x04, 0x80, 0x05, 0xc0, 0xff, 0x8f, 0x0a, 0x40, 0x01, 0x88, 0x05, 0xc0, 0xff, 0x9f, 0x0a, 0x40, 0x00, 0x88, 0x05, 0x40, 0x00, 0x98, 0x0a, 0x40, 0x00, 0x88, 0x05, 0x40, 0x00, 0x98, 0x0a, 0x40, 0x00, 0x88, 0x05, 0x40, 0x00, 0x98, 0x0a, 0x40, 0x00, 0x88, 0x05, 0x40, 0x00, 0x98, 0x0a, 0x40, 0x00, 0x88, 0x05, 0x40, 0x00, 0x98, 0x0a, 0x40, 0x00, 0x88, 0x05, 0x40, 0x00, 0x98, 0x0a, 0xc0, 0xff, 0x8f, 0x05, 0x00, 0x54, 0x95, 0x0a, 0x00, 0x84, 0x80, 0x05, 0x00, 0xc4, 0x81, 0x0a, 0x00, 0xe4, 0x83, 0x05, 0x00, 0xf4, 0x87, 0x0a, 0x00, 0xc4, 0x81, 0x05, 0x00, 0xc4, 0x81, 0x0a, 0x00, 0xc4, 0x81, 0x05, 0x00, 0xc4, 0x81, 0x0a, 0x00, 0xc4, 0x81, 0x05, 0x00, 0xfc, 0xff, 0x0a }; #define Open_width 32 #define Open_height 32 static unsigned char Open_bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x0f, 0x00, 0x40, 0x01, 0x08, 0x00, 0xc0, 0xff, 0x0f, 0x00, 0x40, 0x00, 0x08, 0x00, 0x40, 0x00, 0x58, 0x00, 0xe0, 0x0f, 0xa8, 0x00, 0xc0, 0x0f, 0x58, 0x00, 0x40, 0x0f, 0xa8, 0x00, 0xc0, 0x0f, 0x58, 0x00, 0xc0, 0x0f, 0xa8, 0x00, 0xe0, 0x0c, 0x58, 0x00, 0x70, 0x08, 0xa8, 0x00, 0x78, 0x00, 0x58, 0x00, 0x5c, 0x00, 0xa8, 0x00, 0x4e, 0x00, 0x58, 0x00, 0xc7, 0xff, 0xaf, 0x80, 0x03, 0x54, 0x55, 0xc0, 0x01, 0xa8, 0xaa, 0xbf, 0x00, 0x54, 0x55, 0x21, 0x00, 0xa8, 0xaa, 0x21, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x61, 0x01, 0x00, 0x00, 0xbf, 0x02, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, 0xa0, 0x02, 0x00, 0x00, 0x50, 0x01, 0x00, 0x00, 0xa0, 0x02, 0x00, 0x00 }; #define Props_width 32 #define Props_height 32 static unsigned char Props_bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x3f, 0x00, 0x40, 0x02, 0x20, 0x00, 0x40, 0x53, 0x25, 0x00, 0x40, 0x00, 0x20, 0x00, 0x40, 0x00, 0x20, 0x00, 0x40, 0x00, 0xa0, 0x02, 0x40, 0x04, 0x25, 0x00, 0x40, 0x0a, 0xa2, 0x02, 0x40, 0x00, 0x20, 0x00, 0xc0, 0xff, 0xbf, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xaa, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xaa, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; #define Quit_width 32 #define Quit_height 32 static unsigned char Quit_bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x01, 0x00, 0x00, 0xff, 0x07, 0x00, 0xc0, 0x03, 0x1e, 0x00, 0xe0, 0x00, 0x38, 0x00, 0x70, 0x00, 0x70, 0x00, 0xb8, 0xff, 0xff, 0x00, 0x98, 0x02, 0xdc, 0x00, 0x8c, 0xff, 0x9f, 0x01, 0x8c, 0x00, 0x97, 0x01, 0x86, 0x80, 0xb3, 0x03, 0x86, 0xc0, 0x51, 0x03, 0x86, 0xe0, 0xb0, 0x03, 0x86, 0x70, 0x50, 0x03, 0x86, 0x38, 0xb0, 0x03, 0x86, 0x1c, 0x50, 0x03, 0x86, 0x0e, 0xb0, 0x03, 0x8c, 0x07, 0xd0, 0x01, 0x8c, 0x03, 0xb0, 0x01, 0xd8, 0x01, 0xd0, 0x01, 0xf8, 0x00, 0xf0, 0x00, 0xf0, 0xff, 0x7f, 0x01, 0xe0, 0xa8, 0xba, 0x00, 0xc0, 0x53, 0x5f, 0x01, 0x00, 0xff, 0xaf, 0x00, 0x00, 0xfc, 0x55, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; #define Refresh_width 32 #define Refresh_height 32 static unsigned char Refresh_bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x1f, 0x00, 0x80, 0x02, 0x10, 0x00, 0x80, 0xff, 0x18, 0x00, 0x80, 0x00, 0x10, 0x00, 0x80, 0x00, 0xb0, 0x00, 0x80, 0x00, 0x50, 0x01, 0x80, 0xa0, 0xb6, 0x00, 0x80, 0xc8, 0x50, 0x01, 0x80, 0x00, 0xb2, 0x00, 0x80, 0x00, 0x50, 0x01, 0x80, 0x00, 0xb0, 0x00, 0x80, 0x7f, 0x50, 0x01, 0x80, 0x55, 0xb0, 0x00, 0x80, 0x7f, 0x56, 0x01, 0x80, 0x55, 0xb0, 0x00, 0x80, 0xff, 0x5f, 0x01, 0x00, 0xa8, 0xaa, 0x00, 0x00, 0x50, 0x55, 0x01, 0x00, 0xa8, 0xaa, 0x00, 0x00, 0x50, 0x55, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; #define Resize_width 32 #define Resize_height 32 static unsigned char Resize_bits[] = { 0xff, 0x03, 0x00, 0x00, 0x05, 0x02, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x41, 0x02, 0x00, 0x00, 0xe1, 0x02, 0x00, 0x00, 0xc1, 0x03, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x00, 0xe0, 0x01, 0x80, 0x00, 0xc0, 0xff, 0xff, 0x00, 0xc0, 0x33, 0x80, 0x00, 0x40, 0x3f, 0x80, 0x00, 0x40, 0x3e, 0x80, 0x00, 0x40, 0x3e, 0x80, 0x00, 0x40, 0x3f, 0x80, 0x00, 0xc0, 0x3f, 0x80, 0x00, 0x40, 0x00, 0x80, 0x00, 0x40, 0x00, 0x80, 0x00, 0x40, 0x00, 0x80, 0x00, 0x40, 0x00, 0x80, 0x00, 0x40, 0x00, 0x80, 0x00, 0x40, 0x00, 0x80, 0x00, 0x40, 0x00, 0x80, 0x00, 0x40, 0x00, 0x80, 0x00, 0xc0, 0xff, 0xff }; #define Stick_width 32 #define Stick_height 32 static unsigned char Stick_bits[] = { 0x00, 0x0e, 0xff, 0x00, 0x00, 0x9e, 0xff, 0x03, 0x00, 0xfe, 0xff, 0x07, 0x00, 0xfe, 0xff, 0x0f, 0x00, 0x9e, 0x5f, 0x0d, 0x00, 0x6e, 0xaf, 0x3a, 0x00, 0xd0, 0x56, 0x51, 0x00, 0xa0, 0xae, 0x20, 0x00, 0x50, 0x5f, 0x40, 0x00, 0x00, 0x2f, 0x80, 0x00, 0x80, 0x1f, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x80, 0x5f, 0x00, 0x00, 0x80, 0xbf, 0x00, 0x00, 0x80, 0x5f, 0x00, 0x00, 0x80, 0xbf, 0x00, 0x7e, 0x80, 0x5f, 0x00, 0x7e, 0x80, 0xbf, 0x00, 0x18, 0x80, 0x5f, 0x00, 0xb8, 0x82, 0xbf, 0x00, 0x58, 0x81, 0x5f, 0x00, 0x98, 0x80, 0xbf, 0x00, 0x58, 0x80, 0x5f, 0x00, 0x98, 0x80, 0xbf, 0x00, 0x58, 0x80, 0x5f, 0x00, 0x98, 0x80, 0xbf, 0x00, 0x58, 0x80, 0x5f, 0x00, 0x98, 0x00, 0xaf, 0x00, 0x40, 0x00, 0x54, 0x00, 0x80, 0x00, 0xa8, 0x00, 0x40, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00 }; #define UnStick_width 32 #define UnStick_height 32 static unsigned char UnStick_bits[] = { 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x1c, 0x04, 0x00, 0x00, 0x9c, 0x02, 0x00, 0x00, 0x5e, 0x01, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0xbe, 0xf8, 0xff, 0x0f, 0x7e, 0xfe, 0xff, 0x1f, 0xfe, 0xff, 0xff, 0x1f, 0xfe, 0xff, 0xff, 0x5f, 0x7e, 0xfe, 0xff, 0xbf, 0xbc, 0xfd, 0xff, 0x5f, 0xd8, 0xaa, 0xaa, 0xaa, 0x58, 0x51, 0x55, 0x55, 0xbc, 0x80, 0xaa, 0x2a, 0x7e, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x7e, 0x01, 0x00, 0x00, 0xa0, 0x02, 0x00, 0x00, 0x7e, 0x01, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0xb8, 0x02, 0x00, 0x00, 0x58, 0x01, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; #endif SMALL_IMAGES /* * Images for Virtual Window Menu */ #define ArwUpLeft_width 16 #define ArwUpLeft_height 14 static unsigned char ArwUpLeft_bits[] = { 0xfe,0x07, 0x02,0x02, 0x02,0x01, 0x82,0x00, 0x02,0x01, 0x02,0x02, 0x12,0x04, 0x2a,0x08, 0x46,0x10, 0x82,0x20, 0x00,0x11, 0x00,0x0a, 0x00,0x04, 0x00,0x00, }; #define ArwLeft_width 16 #define ArwLeft_height 14 static unsigned char ArwLeft_bits[] = { 0x80,0x00, 0xc0,0x00, 0xa0,0x00, 0x90,0x00, 0x88,0x7f, 0x04,0x40, 0x02,0x40, 0x04,0x40, 0x88,0x7f, 0x90,0x00, 0xa0,0x00, 0xc0,0x00, 0x80,0x00, 0x00,0x00, }; #define ArwDownLeft_width 16 #define ArwDownLeft_height 14 static unsigned char ArwDownLeft_bits[] = { 0x00,0x00, 0x00,0x04, 0x00,0x0a, 0x00,0x11, 0x82,0x20, 0x46,0x10, 0x2a,0x08, 0x12,0x04, 0x02,0x02, 0x02,0x01, 0x82,0x00, 0x02,0x01, 0x02,0x02, 0xfe,0x07, }; #define ArwUp_width 16 #define ArwUp_height 14 static unsigned char ArwUp_bits[] = { 0x80,0x00, 0x40,0x01, 0x20,0x02, 0x10,0x04, 0x08,0x08, 0x04,0x10, 0x3e,0x3e, 0x20,0x02, 0x20,0x02, 0x20,0x02, 0x20,0x02, 0x20,0x02, 0x20,0x02, 0xe0,0x03, }; #define ArwHome_width 16 #define ArwHome_height 14 static unsigned char ArwHome_bits[] = { 0x80,0x00, 0x40,0x0d, 0x20,0x0e, 0x10,0x0c, 0x08,0x08, 0x04,0x10, 0xfe,0x3f, 0x04,0x10, 0x74,0x17, 0x54,0x15, 0x54,0x17, 0x54,0x10, 0xfc,0x1f, 0x00,0x00, }; #define ArwDown_width 16 #define ArwDown_height 14 static unsigned char ArwDown_bits[] = { 0xe0,0x03, 0x20,0x02, 0x20,0x02, 0x20,0x02, 0x20,0x02, 0x20,0x02, 0x20,0x02, 0x3e,0x3e, 0x04,0x10, 0x08,0x08, 0x10,0x04, 0x20,0x02, 0x40,0x01, 0x80,0x00, }; #define ArwUpRight_width 16 #define ArwUpRight_height 14 static unsigned char ArwUpRight_bits[] = { 0xe0,0x7f, 0x40,0x40, 0x80,0x40, 0x00,0x41, 0x80,0x40, 0x40,0x40, 0x20,0x48, 0x10,0x54, 0x08,0x62, 0x04,0x41, 0x88,0x00, 0x50,0x00, 0x20,0x00, 0x00,0x00, }; #define ArwRight_width 16 #define ArwRight_height 14 static unsigned char ArwRight_bits[] = { 0x00,0x01, 0x00,0x03, 0x00,0x05, 0x00,0x09, 0xfe,0x11, 0x02,0x20, 0x02,0x40, 0x02,0x20, 0xfe,0x11, 0x00,0x09, 0x00,0x05, 0x00,0x03, 0x00,0x01, 0x00,0x00, }; #define ArwDownRight_width 16 #define ArwDownRight_height 14 static unsigned char ArwDownRight_bits[] = { 0x00,0x00, 0x20,0x00, 0x50,0x00, 0x88,0x00, 0x04,0x41, 0x08,0x62, 0x10,0x54, 0x20,0x48, 0x40,0x40, 0x80,0x40, 0x00,0x41, 0x80,0x40, 0x40,0x40, 0xe0,0x7f, }; Button * MakeOpenButton(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { Button *b; static int openbuttoninit = 0; openbuttoninit++; b = (Button *) MemAlloc(sizeof(Button)); *b = openButton; if (GRV.UseImageMenu == UseAll) { b->label[0].pixlabel = (Pixlabel *) MemAlloc(sizeof(Pixlabel)); b->label[0].pixlabel->pixmap = XCreatePixmapFromBitmapData(dpy, scrInfo->rootid, (char *) Open_bits, Open_width, Open_height, scrInfo->colorInfo.fgColor, scrInfo->colorInfo.bg1Color, scrInfo->depth); b->label[0].pixlabel->width = Open_width; b->label[0].pixlabel->height = Open_height; b->label[0].kind = ComboLabel; b->label[1].pixlabel = (Pixlabel *) MemAlloc(sizeof(Pixlabel)); b->label[1].pixlabel->pixmap = XCreatePixmapFromBitmapData(dpy, scrInfo->rootid, (char *) Close_bits, Close_width, Close_height, scrInfo->colorInfo.fgColor, scrInfo->colorInfo.bg1Color, scrInfo->depth); b->label[1].pixlabel->width = Close_width; b->label[1].pixlabel->height = Close_height; b->label[1].kind = ComboLabel; } return b; } Button * MakeFullSizeButton(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { Button *b; b = (Button *) MemAlloc(sizeof(Button)); *b = fullSizeButton; if (GRV.UseImageMenu == UseAll) { b->label[0].pixlabel = (Pixlabel *) MemAlloc(sizeof(Pixlabel)); b->label[0].pixlabel->pixmap = XCreatePixmapFromBitmapData(dpy, scrInfo->rootid, (char *) FullSize_bits, FullSize_width, FullSize_height, scrInfo->colorInfo.fgColor, scrInfo->colorInfo.bg1Color, scrInfo->depth); b->label[0].pixlabel->width = FullSize_width; b->label[0].pixlabel->height = FullSize_height; b->label[0].kind = ComboLabel; b->label[1].pixlabel = (Pixlabel *) MemAlloc(sizeof(Pixlabel)); b->label[1].pixlabel->pixmap = XCreatePixmapFromBitmapData(dpy, scrInfo->rootid, (char *) NormalSize_bits, NormalSize_width, NormalSize_height, scrInfo->colorInfo.fgColor, scrInfo->colorInfo.bg1Color, scrInfo->depth); b->label[1].pixlabel->width = NormalSize_width; b->label[1].pixlabel->height = NormalSize_height; b->label[1].kind = ComboLabel; } return b; } Button * MakeStickyButton(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { Button *b; b = (Button *) MemAlloc(sizeof(Button)); *b = stickyButton; if (GRV.UseImageMenu == UseAll) { b->label[0].pixlabel = (Pixlabel *) MemAlloc(sizeof(Pixlabel)); b->label[0].pixlabel->pixmap = XCreatePixmapFromBitmapData(dpy, scrInfo->rootid, (char *) Stick_bits, Stick_width, Stick_height, scrInfo->colorInfo.fgColor, scrInfo->colorInfo.bg1Color, scrInfo->depth); b->label[0].pixlabel->width = Stick_width; b->label[0].pixlabel->height = Stick_height; b->label[0].kind = ComboLabel; b->label[1].pixlabel = (Pixlabel *) MemAlloc(sizeof(Pixlabel)); b->label[1].pixlabel->pixmap = XCreatePixmapFromBitmapData(dpy, scrInfo->rootid, (char *) UnStick_bits, UnStick_width, UnStick_height, scrInfo->colorInfo.fgColor, scrInfo->colorInfo.bg1Color, scrInfo->depth); b->label[1].pixlabel->width = UnStick_width; b->label[1].pixlabel->height = UnStick_height; b->label[1].kind = ComboLabel; } return b; } Button * MakePropertiesButton(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { Button *b; b = (Button *) MemAlloc(sizeof(Button)); *b = propertiesButton; if (GRV.UseImageMenu == UseAll) { b->label[0].pixlabel = (Pixlabel *) MemAlloc(sizeof(Pixlabel)); b->label[0].pixlabel->pixmap = XCreatePixmapFromBitmapData(dpy, scrInfo->rootid, (char *) Props_bits, Props_width, Props_height, scrInfo->colorInfo.fgColor, scrInfo->colorInfo.bg1Color, scrInfo->depth); b->label[0].pixlabel->width = Props_width; b->label[0].pixlabel->height = Props_height; b->label[0].kind = ComboLabel; } return b; } Button * MakeBackButton(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { Button *b; b = (Button *) MemAlloc(sizeof(Button)); *b = backButton; if (GRV.UseImageMenu == UseAll) { b->label[0].pixlabel = (Pixlabel *) MemAlloc(sizeof(Pixlabel)); b->label[0].pixlabel->pixmap = XCreatePixmapFromBitmapData(dpy, scrInfo->rootid, (char *) Back_bits, Back_width, Back_height, scrInfo->colorInfo.fgColor, scrInfo->colorInfo.bg1Color, scrInfo->depth); b->label[0].pixlabel->width = Back_width; b->label[0].pixlabel->height = Back_height; b->label[0].kind = ComboLabel; } return b; } Button * MakeResizeButton(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { Button *b; b = (Button *) MemAlloc(sizeof(Button)); *b = resizeButton; if (GRV.UseImageMenu == UseAll) { b->label[0].pixlabel = (Pixlabel *) MemAlloc(sizeof(Pixlabel)); b->label[0].pixlabel->pixmap = XCreatePixmapFromBitmapData(dpy, scrInfo->rootid, (char *) Resize_bits, Resize_width, Resize_height, scrInfo->colorInfo.fgColor, scrInfo->colorInfo.bg1Color, scrInfo->depth); b->label[0].pixlabel->width = Resize_width; b->label[0].pixlabel->height = Resize_height; b->label[0].kind = ComboLabel; } return b; } Button * MakeMoveButton(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { Button *b; b = (Button *) MemAlloc(sizeof(Button)); *b = moveButton; if (GRV.UseImageMenu == UseAll) { b->label[0].pixlabel = (Pixlabel *) MemAlloc(sizeof(Pixlabel)); b->label[0].pixlabel->pixmap = XCreatePixmapFromBitmapData(dpy, scrInfo->rootid, (char *) Move_bits, Move_width, Move_height, scrInfo->colorInfo.fgColor, scrInfo->colorInfo.bg1Color, scrInfo->depth); b->label[0].pixlabel->width = Move_width; b->label[0].pixlabel->height = Move_height; b->label[0].kind = ComboLabel; } return b; } Button * MakeQuitButton(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { Button *b; b = (Button *) MemAlloc(sizeof(Button)); *b = quitButton; if (GRV.UseImageMenu == UseAll) { b->label[0].pixlabel = (Pixlabel *) MemAlloc(sizeof(Pixlabel)); b->label[0].pixlabel->pixmap = XCreatePixmapFromBitmapData(dpy, scrInfo->rootid, (char *) Quit_bits, Quit_width, Quit_height, scrInfo->colorInfo.fgColor, scrInfo->colorInfo.bg1Color, scrInfo->depth); b->label[0].pixlabel->width = Quit_width; b->label[0].pixlabel->height = Quit_height; b->label[0].kind = ComboLabel; } return b; } Button * MakeRefreshButton(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { Button *b; b = (Button *) MemAlloc(sizeof(Button)); *b = refreshButton; if (GRV.UseImageMenu == UseAll) { b->label[0].pixlabel = (Pixlabel *) MemAlloc(sizeof(Pixlabel)); b->label[0].pixlabel->pixmap = XCreatePixmapFromBitmapData(dpy, scrInfo->rootid, (char *) Refresh_bits, Refresh_width, Refresh_height, scrInfo->colorInfo.fgColor, scrInfo->colorInfo.bg1Color, scrInfo->depth); b->label[0].pixlabel->width = Refresh_width; b->label[0].pixlabel->height = Refresh_height; b->label[0].kind = ComboLabel; } return b; } Button * /* ARGSUSED */ MakeDismissButton(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { Button *b; b = (Button *) MemAlloc(sizeof(Button)); *b = dismissButton; return b; } Button * /* ARGSUSED */ MakeDismissAllButton(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { Button *b; b = (Button *) MemAlloc(sizeof(Button)); *b = dismissAllButton; return b; } Button * /* ARGSUSED */ MakeDismissThisButton(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { Button *b; b = (Button *) MemAlloc(sizeof(Button)); *b = dismissThisButton; return b; } Button * /* ARGSUSED */ MakeOwnerButton(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { Button *b; b = (Button *) MemAlloc(sizeof(Button)); *b = ownerButton; return b; } Button * MakeUpLeftButton(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { Button *b; b = (Button *) MemAlloc(sizeof(Button)); *b = moveUpLeftButton; if (GRV.UseImageMenu != UseNone) { b->label[0].pixlabel = (Pixlabel *) MemAlloc(sizeof(Pixlabel)); b->label[0].pixlabel->pixmap = XCreatePixmapFromBitmapData(dpy, scrInfo->rootid, (char *) ArwUpLeft_bits, ArwUpLeft_width, ArwUpLeft_height, scrInfo->colorInfo.fgColor, scrInfo->colorInfo.bg1Color, scrInfo->depth); b->label[0].pixlabel->width = ArwUpLeft_width; b->label[0].pixlabel->height = ArwUpLeft_height; b->label[0].kind = ImageLabel; } return b; } Button * MakeLeftButton(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { Button *b; b = (Button *) MemAlloc(sizeof(Button)); *b = moveLeftButton; if (GRV.UseImageMenu != UseNone) { b->label[0].pixlabel = (Pixlabel *) MemAlloc(sizeof(Pixlabel)); b->label[0].pixlabel->pixmap = XCreatePixmapFromBitmapData(dpy, scrInfo->rootid, (char *) ArwLeft_bits, ArwLeft_width, ArwLeft_height, scrInfo->colorInfo.fgColor, scrInfo->colorInfo.bg1Color, scrInfo->depth); b->label[0].pixlabel->width = ArwLeft_width; b->label[0].pixlabel->height = ArwLeft_height; b->label[0].kind = ImageLabel; } return b; } Button * MakeDownLeftButton(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { Button *b; b = (Button *) MemAlloc(sizeof(Button)); *b = moveDownLeftButton; if (GRV.UseImageMenu != UseNone) { b->label[0].pixlabel = (Pixlabel *) MemAlloc(sizeof(Pixlabel)); b->label[0].pixlabel->pixmap = XCreatePixmapFromBitmapData(dpy, scrInfo->rootid, (char *) ArwDownLeft_bits, ArwDownLeft_width, ArwDownLeft_height, scrInfo->colorInfo.fgColor, scrInfo->colorInfo.bg1Color, scrInfo->depth); b->label[0].pixlabel->width = ArwDownLeft_width; b->label[0].pixlabel->height = ArwDownLeft_height; b->label[0].kind = ImageLabel; } return b; } Button * MakeUpButton(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { Button *b; b = (Button *) MemAlloc(sizeof(Button)); *b = moveUpButton; if (GRV.UseImageMenu != UseNone) { b->label[0].pixlabel = (Pixlabel *) MemAlloc(sizeof(Pixlabel)); b->label[0].pixlabel->pixmap = XCreatePixmapFromBitmapData(dpy, scrInfo->rootid, (char *) ArwUp_bits, ArwUp_width, ArwUp_height, scrInfo->colorInfo.fgColor, scrInfo->colorInfo.bg1Color, scrInfo->depth); b->label[0].pixlabel->width = ArwUp_width; b->label[0].pixlabel->height = ArwUp_height; b->label[0].kind = ImageLabel; } return b; } Button * MakeHomeButton(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { Button *b; b = (Button *) MemAlloc(sizeof(Button)); *b = moveHomeButton; if (GRV.UseImageMenu != UseNone) { b->label[0].pixlabel = (Pixlabel *) MemAlloc(sizeof(Pixlabel)); b->label[0].pixlabel->pixmap = XCreatePixmapFromBitmapData(dpy, scrInfo->rootid, (char *) ArwHome_bits, ArwHome_width, ArwHome_height, scrInfo->colorInfo.fgColor, scrInfo->colorInfo.bg1Color, scrInfo->depth); b->label[0].pixlabel->width = ArwHome_width; b->label[0].pixlabel->height = ArwHome_height; b->label[0].kind = ImageLabel; } return b; } Button * MakeDownButton(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { Button *b; b = (Button *) MemAlloc(sizeof(Button)); *b = moveDownButton; if (GRV.UseImageMenu != UseNone) { b->label[0].pixlabel = (Pixlabel *) MemAlloc(sizeof(Pixlabel)); b->label[0].pixlabel->pixmap = XCreatePixmapFromBitmapData(dpy, scrInfo->rootid, (char *) ArwDown_bits, ArwDown_width, ArwDown_height, scrInfo->colorInfo.fgColor, scrInfo->colorInfo.bg1Color, scrInfo->depth); b->label[0].pixlabel->width = ArwDown_width; b->label[0].pixlabel->height = ArwDown_height; b->label[0].kind = ImageLabel; } return b; } Button * MakeUpRightButton(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { Button *b; b = (Button *) MemAlloc(sizeof(Button)); *b = moveUpRightButton; if (GRV.UseImageMenu != UseNone) { b->label[0].pixlabel = (Pixlabel *) MemAlloc(sizeof(Pixlabel)); b->label[0].pixlabel->pixmap = XCreatePixmapFromBitmapData(dpy, scrInfo->rootid, (char *) ArwUpRight_bits, ArwUpRight_width, ArwUpRight_height, scrInfo->colorInfo.fgColor, scrInfo->colorInfo.bg1Color, scrInfo->depth); b->label[0].pixlabel->width = ArwUpRight_width; b->label[0].pixlabel->height = ArwUpRight_height; b->label[0].kind = ImageLabel; } return b; } Button * MakeRightButton(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { Button *b; b = (Button *) MemAlloc(sizeof(Button)); *b = moveRightButton; if (GRV.UseImageMenu != UseNone) { b->label[0].pixlabel = (Pixlabel *) MemAlloc(sizeof(Pixlabel)); b->label[0].pixlabel->pixmap = XCreatePixmapFromBitmapData(dpy, scrInfo->rootid, (char *) ArwRight_bits, ArwRight_width, ArwRight_height, scrInfo->colorInfo.fgColor, scrInfo->colorInfo.bg1Color, scrInfo->depth); b->label[0].pixlabel->width = ArwRight_width; b->label[0].pixlabel->height = ArwRight_height; b->label[0].kind = ImageLabel; } return b; } Button * MakeDownRightButton(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { Button *b; b = (Button *) MemAlloc(sizeof(Button)); *b = moveDownRightButton; if (GRV.UseImageMenu != UseNone) { b->label[0].pixlabel = (Pixlabel *) MemAlloc(sizeof(Pixlabel)); b->label[0].pixlabel->pixmap = XCreatePixmapFromBitmapData(dpy, scrInfo->rootid, (char *) ArwDownRight_bits, ArwDownRight_width, ArwDownRight_height, scrInfo->colorInfo.fgColor, scrInfo->colorInfo.bg1Color, scrInfo->depth); b->label[0].pixlabel->width = ArwDownRight_width; b->label[0].pixlabel->height = ArwDownRight_height; b->label[0].kind = ImageLabel; } return b; } xview-3.2p1.4/clients/olvwm-4.1/info.c100644 1750 1750 5463 5515337307 14646 0ustar mbmb#ifdef IDENT #ident "@(#)info.c 26.10 93/06/28 SMI" #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #include #include #include #include #include #include #include "i18n.h" #include "olwm.h" #include "win.h" #include "st.h" #include "mem.h" #include "error.h" st_table *wiHashTable; st_table *vHashTable; static int wiCompare( w1, w2 ) register char *w1, *w2; { return ((Window)w1) - ((Window)w2); } static int wiHash( w1, modulus ) register char *w1; register int modulus; { return ((Window)w1) % modulus; } /* * initialize the hash tables * returns: True - success * False - failure */ /*ARGSUSED*/ /* dpy arg will be used when multiple Displays supported */ void WIInit( dpy ) Display *dpy; { wiHashTable = st_init_table(wiCompare, wiHash); vHashTable = st_init_table(wiCompare, wiHash); } /* * Save window information with the associated window, for later dispatch */ void WIInstallInfo(info) WinGeneric *info; { if (WIGetInfo(info->core.self) != NULL) { ErrorGeneral( GetString("Tried to duplicate-register a window -- bailing")); } st_insert(wiHashTable, (int)info->core.self, (char *)info); } /* * delete storage for window information * returns: True - window entry deleted * False - window entry not found */ Bool WIUninstallInfo(win) Window win; { WinGeneric *oldInfo; Window tmpWin = win; Window *tmpWinPtr = &tmpWin; Bool ret; ret = st_delete(wiHashTable, (char *)tmpWinPtr, (char *)&oldInfo); if (oldInfo) VUninstallInfo(oldInfo->core.virtual); return ret; } /* * retrieve information associated with a window * returns: Pointer to WinGeneric struct if window is found * NULL if not found */ WinGeneric * WIGetInfo(win) Window win; { WinGeneric *winInfo = NULL; st_lookup(wiHashTable, win, &winInfo); return winInfo; } /* * apply a function to all windows */ void WIApply(f,c) enum st_retval (*f)(); void *c; { st_foreach(wiHashTable, f, c); } void VInstallInfo(info) WinGeneric *info; { if (VGetInfo(info->core.virtual) != NULL) ErrorGeneral(gettext("Tried to duplicate register a virtual window")); st_insert(vHashTable, (int) info->core.virtual, (char *) info); } /* * delete storage for window information * returns: True - window entry deleted * False - window entry not found */ Bool VUninstallInfo(win) Window win; { WinGeneric *oldInfo; Window tmpWin = win; Window *tmpWinPtr = &tmpWin; return st_delete(vHashTable, (char *)tmpWinPtr, (char *)&oldInfo); } WinGeneric * VGetInfo(win) Window win; { WinGeneric *winInfo = NULL; st_lookup(vHashTable, win, &winInfo); return winInfo; } xview-3.2p1.4/clients/olvwm-4.1/kbdfuncs.c100644 1750 1750 52257 5515337310 15527 0ustar mbmb/* * (c) Copyright 1989, 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifdef IDENT #ident "@(#)kbdfuncs.c 1.5 olvwm version 07 Jan 1994" #endif /* * Based on #ident "@(#)kbdfuncs.c 1.18 93/06/28 SMI" * */ #include #ifdef SYSV #include #else #include #endif #include #include #include "i18n.h" #include "ollocale.h" #include "olwm.h" #include "win.h" #include "menu.h" #include "globals.h" #include "group.h" #include "resources.h" /* * Externals */ extern void ClientActivate(); extern Client *ClientGetLastCurrent(); extern void ClientLowerTransients(); extern Client *ClientRaiseTransients(); extern void ClientSetCurrent(); /* ===== private functions ================================================ */ typedef struct { Bool prev; Bool seencur; Client *cur; Client *next; } FindClosure; /* * Given a keystroke event, find the window (and its client structure) that is * under the >pointer<. If the pointer is on the same screen as the event * window, then this is simply the subwindow field of the event. If the * pointer is on another screen, we must do a TranslateCoordinates to find it. * Returns True if a window with a client structure was found, otherwise * returns False. */ static Bool childUnderPointer(dpy, ke, wid, info, cli) Display *dpy; XKeyEvent *ke; Window *wid; WinGeneric **info; Client **cli; { int junk; if (ke->same_screen) { *wid = ke->subwindow; } else { (void) XTranslateCoordinates(dpy, ke->root, ke->root, ke->x_root, ke->y_root, &junk, &junk, wid); } if (*wid == None) return False; *info = WIGetInfo(*wid); if (*info == NULL) return False; *cli = (*info)->core.client; if (*cli == NULL) return False; return True; } /* * Derive a value related to an angle without using trigonometry or floating * point. Derived from Sedgewick, Algorithms, p. 315. Returns a value in the * range [0..360), scaled by 2^16. Since Y is positive-downwards in the X * window system, angles increase in the clockwise direction. This is what we * want. However, we rotate by -90 to get zero at the top instead of at the * right. */ #define SCALE(i) ((i)<<16) #define UNSCALE(i) ((i)>>16) #define REMSCALE(i) (((i)&0xffff)*10000/65536*10) long itheta(p1x, p1y, p2x, p2y) int p1x, p1y, p2x, p2y; { long ax, ay, dx, dy; long t; /* * You might think that the code below should be: * * dx = p2x - p1x; * dy = p2y - p1y; * * In the X window system, the x-axis is positive right and the y-axis is * positive down. This puts the zero angle at the right, increasing * clockwise. We want zero at the top, increasing clockwise. To do this, * we swap the x and y values and negate the x delta. This is why the x's * and y's and 1's and 2's are apparently jumbled. */ dx = p1y - p2y; dy = p2x - p1x; ax = ABS(dx); ay = ABS(dy); if (dx == 0 && dy == 0) t = 0; else t = SCALE(dy) / (ax+ay); if (dx < 0) t = SCALE(2)-t; else if (dy < 0) t = SCALE(4)+t; t *= 90; #ifdef notdef /* * Rotate so that zero is at top. We could do this by swapping and * negating the dx and dy values above, but this would reduce readability. */ t += SCALE(90); if (t >= SCALE(360)) t -= SCALE(360); #endif /* notdef */ return t; } /* * Compare two client structures for ordering within the global window order. * Sort ordering is based first on screen number, then window state (open * considered to be before closed), then window position. Return value if -1 * if c1 is before c2, 1 if c1 is after c2, and 0 if they are tied. The bool * prev reverse the sense sort order. The NoFocus client is considered to * come before all other clients, regardless of whether the prev bool is set. * * A static boolean value AngularTraversal controls whether the tranversal * policy should be based on the angular position of the window. If false, * the old policy of upper-left to lower-right is used. */ static int compareClients(c1, c2, prev) Client *c1; Client *c2; Bool prev; { int pos1, pos2; int x1, x2, y1, y2; int LESS, GREATER; static Bool AngularTraversal = True; /* First check if both or either are the NoFocus client. */ if (c1->framewin == NULL && c2->framewin == NULL) return 0; if (c1->framewin == NULL) return -1; if (c2->framewin == NULL) return 1; if (prev) { LESS = 1; GREATER = -1; } else { LESS = -1; GREATER = 1; } /* Compare screens. */ if (c1->screen < c2->screen) return LESS; if (c1->screen > c2->screen) return GREATER; /* * Compare states. Note: this depends on the state values defined in * Xutil.h. Notably, NormalState < IconicState. This will need to be * changed if olwm adds any new state values. */ if (c1->wmState < c2->wmState) return LESS; if (c1->wmState > c2->wmState) return GREATER; /* They are both the same state. */ if (AngularTraversal) { /* calculate angle to window center */ long theta1, theta2; WinRoot *root = c1->scrInfo->rootwin; int rootcx = root->core.width / 2; int rootcy = root->core.height / 2; if (c1->wmState == NormalState) { x1 = c1->framewin->core.x + c1->framewin->core.width / 2; y1 = c1->framewin->core.y + c1->framewin->core.height / 2; x2 = c2->framewin->core.x + c2->framewin->core.width / 2; y2 = c2->framewin->core.y + c2->framewin->core.height / 2; } else { x1 = c1->iconwin->core.x + c1->iconwin->core.width / 2; y1 = c1->iconwin->core.y + c1->iconwin->core.height / 2; x2 = c2->iconwin->core.x + c2->iconwin->core.width / 2; y2 = c2->iconwin->core.y + c2->iconwin->core.height / 2; } theta1 = itheta(rootcx, rootcy, x1, y1); theta2 = itheta(rootcx, rootcy, x2, y2); if (theta1 < theta2) return LESS; else if (theta1 > theta2) return GREATER; } else { /* Sort from upper-left to lower-right. */ if (c1->wmState == NormalState) { x1 = c1->framewin->core.x; y1 = c1->framewin->core.y; x2 = c2->framewin->core.x; y2 = c2->framewin->core.y; } else { x1 = c1->iconwin->core.x; y1 = c1->iconwin->core.y; x2 = c2->iconwin->core.x; y2 = c2->iconwin->core.y; } pos1 = MAX(x1,y1); pos2 = MAX(x2,y2); if (pos1 < pos2) return LESS; if (pos1 > pos2) return GREATER; /* Positions are tied. Compare scanline order. */ if (y1 < y2) return LESS; if (y1 > y2) return GREATER; if (x1 < x2) return LESS; if (x1 > x2) return GREATER; } return 0; } static void * findClient(cli, closure) Client *cli; FindClosure *closure; { switch (compareClients(cli, closure->cur, closure->prev)) { case -1: /* this is earlier in the sort order; ignore */ break; case 0: /* * equal: if we've just seen the current client, advance to next; * otherwise, ignore. */ if (closure->seencur) { closure->next = cli; closure->seencur = False; } closure->seencur = (cli == closure->cur); break; case 1: /* * later in sort order; advance if earlier than later ones * already seen. */ if (closure->next == NULL) closure->next = cli; else if (compareClients(cli, closure->next, closure->prev) < 0) closure->next = cli; break; } return NULL; } /* * Activate the next or previous popup window or pinned menu of the current * application. */ static void selectNextPrevWindow(dpy, ke, prev) Display *dpy; XKeyEvent *ke; Bool prev; { FindClosure closure; if (ke->type != KeyPress) return; closure.prev = prev; closure.cur = CurrentClient; closure.next = NULL; closure.seencur = False; (void) GroupApply(CurrentClient->groupid, findClient, &closure, GROUP_LEADER | GROUP_DEPENDENT); if (closure.next == NULL) { /* * We didn't find a suitable client. Wrap around by resetting the * current client to the NoFocus client and searching again. */ closure.cur = NoFocusWinInfo->core.client; closure.next = NULL; closure.seencur = False; (void) GroupApply(CurrentClient->groupid, findClient, &closure, GROUP_LEADER | GROUP_DEPENDENT); } if (CurrentClient != closure.next) ClientActivate(dpy, closure.next, ke->time); } /* * Activate the next or previous application's base window. */ static void selectNextPrevApp(dpy, ke, prev) Display *dpy; XKeyEvent *ke; Bool prev; { Client *cli; Client *next = NULL; Client *first = NULL; List *l = ActiveClientList; Bool seencur = False; if (ke->type != KeyPress) return; if (CurrentClient == NULL) { /* Consider the current client to be the NoFocus client. */ ClientSetCurrent(NoFocusWinInfo->core.client); } l = ActiveClientList; for (cli = ListEnum(&l); cli != NULL; cli = ListEnum(&l)) { /* skip special screen clients (including NoFocus client) */ if (cli->framewin == NULL) continue; /* skip dependent followers */ if (cli->groupmask == GROUP_DEPENDENT) continue; switch (compareClients(cli, CurrentClient, prev)) { case -1: /* earlier in the sort order: see if it's the first client */ if (first == NULL || compareClients(cli, first, prev) == -1) first = cli; break; case 0: /* * equal: if we've just seen the current client, advance to next; * otherwise, ignore. */ if (seencur) { next = cli; seencur = False; } seencur = (cli == CurrentClient); if (first == NULL) first = cli; break; case 1: /* * later in sort order; advance if earlier than later ones * already seen. */ if (next == NULL) next = cli; else if (compareClients(cli, next, prev) < 0) next = cli; break; } } if (next != NULL) ClientActivate(dpy, next, ke->time); else ClientActivate(dpy, first, ke->time); } /* ===== global functions ================================================= */ /* * Beep on keystrokes, but only if the key isn't a modifier, and if beeping is * enabled. */ void KeyBeep(dpy,ke) Display *dpy; XKeyEvent *ke; { /* * REMIND: we should use xkeyevent->time to make sure that we don't send * to many beep requests within a small period of time. */ if ((FindModifierMask(ke->keycode) == 0) && (GRV.Beep == BeepAlways)) XBell(dpy,100); } /* * Lock the colormap of the window under the pointer into the hardware. */ void KeyLockColormap(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type != KeyPress) return; InstallPointerColormap(dpy, ke->root, ke->x_root, ke->y_root, True); } /* * Unlock the colormap; revert to color-follows-mouse mode. */ void KeyUnlockColormap(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type != KeyPress) return; UnlockColormap(dpy, ke->root, ke->x_root, ke->y_root); } /* * KeyRaiseLowerPointer - raise or lower the window under the pointer * * Restack the window under the pointer, similar to the SunView Front key. If * this window is at all occluded, raise it. If other windows are occluded by * this window, lower it. (This is the behavior of the value Opposite for the * stack-mode parameter of a ConfigureWindow request.) * * The behavior is different if this window is a transient window, or if this * window has transient windows associated with it. If this window is a * transient window, the parent and all transients are pushed to the back, * with the transients remaining above the parent. If this window is a parent * of any transient windows, all are raised to the front, with the parent * remaining behind the transients. * * REMIND this is probably suboptimal behavior for transients and parents of * transients, as the occlusion rule is not used for them. This may result in * apparent misbehavior. */ void KeyRaiseLowerPointer(dpy, ke) Display *dpy; XKeyEvent *ke; { Window child; WinGeneric *childinfo; Client *cli; XWindowChanges xwc; WinGeneric *owner; Client *transient; if (ke->type != KeyPress) return; /* * If childUnderPointer returns a valid window structure, we use it. If * childUnderPointer returns False, we go ahead and reconfigure any window * found, even if we don't know about it. This is useful for restacking * override-redirect windows. */ if (childUnderPointer(dpy, ke, &child, &childinfo, &cli)) { if (cli->wmDecors->flags & WMNoDecor) return; if (cli->transientFor != 0 && GRV.KeepTransientsAbove && (owner = WIGetInfo(cli->transientFor)) != NULL && owner->core.kind == WIN_PANE && owner->core.client != NULL) { LowerWindow(owner->core.client->framewin); ClientLowerTransients(owner->core.client); } else { transient = ClientRaiseTransients(cli); if (transient != NULL) { xwc.stack_mode = Below; xwc.sibling = transient->framewin->core.self; owner = WIGetInfo(child); if (owner) ConfigureWindow(dpy, owner, CWStackMode | CWSibling, &xwc); else XConfigureWindow(dpy, child, CWStackMode | CWSibling, &xwc); } else { xwc.stack_mode = Opposite; owner = WIGetInfo(child); if (owner) ConfigureWindow(dpy, owner, CWStackMode, &xwc); else XConfigureWindow(dpy, child, CWStackMode, &xwc); } } } else { if (child != None) { xwc.stack_mode = Opposite; owner = WIGetInfo(child); if (owner) ConfigureWindow(dpy, owner, CWStackMode, &xwc); XConfigureWindow(dpy, child, CWStackMode, &xwc); } } } /* * Toggle the open/closed state of the window under the pointer. */ void KeyOpenClosePointer(dpy, ke) Display *dpy; XKeyEvent *ke; { Window child; WinGeneric *childinfo; Client *cli; if (ke->type != KeyPress) return; if (childUnderPointer(dpy, ke, &child, &childinfo, &cli) && !(cli->wmDecors->flags & WMNoDecor)) ClientOpenCloseToggle(cli, ke->time); } /* * Set the focus to the window under the pointer. If there is no window under * the pointer, set the focus to the no-focus window. */ void KeyFocusToPointer(dpy, ke) Display *dpy; XKeyEvent *ke; { Window child; WinGeneric *childinfo; Client *cli; if (ke->type != KeyPress) return; if (childUnderPointer(dpy, ke, &child, &childinfo, &cli)) ClientSetFocus(cli, True, ke->time); else NoFocusTakeFocus(dpy, ke->time, GetScrInfoOfRoot(ke->root)); } /* * Activate the base window of the next application. */ void KeyNextApp(dpy, ke) Display *dpy; XKeyEvent *ke; { selectNextPrevApp(dpy, ke, False); } /* * Activate the base window of the previous application. */ void KeyPrevApp(dpy, ke) Display *dpy; XKeyEvent *ke; { selectNextPrevApp(dpy, ke, True); } /* * Activate the next popup window or pinned menu of the current application. */ void KeyNextWindow(dpy, ke) Display *dpy; XKeyEvent *ke; { selectNextPrevWindow(dpy, ke, False); } /* * Activate the previous popup window or pinned menu of the current * application. */ void KeyPrevWindow(dpy, ke) Display *dpy; XKeyEvent *ke; { selectNextPrevWindow(dpy, ke, True); } /* * Toggle between this and the previous active window. */ void KeyToggleInput(dpy, ke) Display *dpy; XKeyEvent *ke; { Client *next; if (ke->type != KeyPress) return; next = ClientGetLastCurrent(); ClientActivate(dpy, next, ke->time); } /* * Toggle the pin if the active window, if any. */ void KeyTogglePin(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type != KeyPress) return; if (!ClientTogglePin(CurrentClient)) KeyBeep(dpy,ke); } /* * Refresh the active window. */ void /* ARGSUSED */ KeyRefresh(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type != KeyPress) return; if (CurrentClient->framewin != NULL) ClientRefresh(CurrentClient); } /* * Raise the active window to the front. */ void /* ARGSUSED */ KeyFrontFocus(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type != KeyPress) return; if (CurrentClient->framewin != NULL && !(CurrentClient->wmDecors->flags & WMNoDecor)) ClientFront(CurrentClient); } /* * Send the active window to the back. */ void /* ARGSUSED */ KeyBackFocus(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type != KeyPress) return; if (CurrentClient->framewin != NULL && !(CurrentClient->wmDecors->flags & WMNoDecor)) ClientBack(CurrentClient); } /* * Toggle the open/close state of the active window. */ void /* ARGSUSED */ KeyOpenCloseFocus(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type != KeyPress) return; if (CurrentClient->framewin != NULL && !(CurrentClient->wmDecors->flags & WMNoDecor)) ClientOpenCloseToggle(CurrentClient, ke->time); } /* * Toggle the full/restored size of the active window. */ void /* ARGSUSED */ KeyFullRestore(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type != KeyPress) return; if (CurrentClient->framewin != NULL && !(CurrentClient->wmDecors->flags & WMNoDecor)) ClientFullRestoreSizeToggle(CurrentClient, ke->time); } /* * Quit the active window. */ void /* ARGSUSED */ KeyQuit(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type != KeyPress) return; if (CurrentClient->framewin != NULL && !(CurrentClient->wmDecors->flags & WMNoDecor)) ClientKill(CurrentClient, True); } /* * Flash the owner window of the active window. */ void /* ARGSUSED */ KeyOwner(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type != KeyPress) return; if (CurrentClient->framewin != NULL) ClientFlashOwner(CurrentClient); } /* * Move the active window. */ void /* ARGSUSED */ KeyMove(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type != KeyPress) return; if (CurrentClient->framewin != NULL && !(CurrentClient->wmDecors->flags & WMNoDecor)) ClientMove(CurrentClient,ke); } /* * Resize the active window. */ void /* ARGSUSED */ KeyResize(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type != KeyPress) return; if (CurrentClient->framewin != NULL && !(CurrentClient->wmDecors->flags & WMNoDecor)) ClientResize(CurrentClient, ke, keyevent, NULL, NULL); } /* * Bring up the Properties window for the active window. */ void /* ARGSUSED */ KeyProperties(dpy, ke) Display *dpy; XKeyEvent *ke; { /* REMIND - fill in when window properties implemented */ } /* * Bring up the workspace menu. */ void KeyWorkspaceMenu(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type == KeyPress) RootMenuShow(dpy, WIGetInfo(ke->root), ke); } /* * Bring up the window menu for the active menu. */ void KeyWindowMenu(dpy, ke) Display *dpy; XKeyEvent *ke; { WinGenericFrame *frameInfo = (WinGenericFrame *)CurrentClient->framewin; if (ke->type != KeyPress) return; if (frameInfo == NULL || (frameInfo->core.client->wmDecors->menu_type == MENU_NONE)) KeyBeep(dpy, ke); else { ShowStandardMenu(frameInfo, ke, False); } } /* * Transition to InvisibleState the client with the focus */ /* ARGSUSED */ void KeyMakeInvisibleFocus(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type != KeyPress) return; if (CurrentClient->framewin != NULL) StateInvisible(CurrentClient, ke->time); } /* * Transition to InvisibleState the client under the pointer */ void KeyMakeInvisiblePointer(dpy, ke) Display *dpy; XKeyEvent *ke; { Window child; WinGeneric *childinfo; Client *cli; if (ke->type != KeyPress) return; if (childUnderPointer(dpy, ke, &child, &childinfo, &cli)) StateInvisible(cli, ke->time); } /* * Transition an Invisible client back to NormalState */ static void * makeVisible(cli,timestamp) Client *cli; Time timestamp; { if (cli->wmState == InvisibleState) StateNormal(cli, timestamp); return NULL; } /* * Transition all Invisible clients back to NormalState */ /* ARGSUSED */ void KeyMakeVisibleAll(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type != KeyPress) return; ListApply(ActiveClientList, makeVisible, ke->time); } /* * Toggle the resource FullSizeZoomX. */ void /* ARGSUSED */ KeyToggleFullSizeZoomX(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type != KeyPress) return; GRV.FullSizeZoomX = !GRV.FullSizeZoomX; } /* * Toggle the resource DragWindow */ void /* ARGSUSED */ KeyToggleDragWindow(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type != KeyPress) return; GRV.DragWindow = !GRV.DragWindow; } /* * Toggle the resource VirtualMoveGroups resource */ void /* ARGSUSED */ KeyToggleMoveGroups(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type != KeyPress) return; GRV.VirtualMoveGroups = !GRV.VirtualMoveGroups; } /* * Perform the Stick/Unstick Action */ void /* ARGSUSED */ KeyToggleSticky(dpy, ke) Display *dpy; XKeyEvent *ke; { if (ke->type != KeyPress) return; if (CurrentClient->framewin != NULL && !(CurrentClient->wmDecors->flags & WMNoDecor)) ClientStickUnstickToggle(CurrentClient); } /* * Save the workspace */ void KeySaveWorkspace(dpy, ev) Display *dpy; XEvent *ev; { if (ev->type != KeyPress) return; SaveWorkspaceFunc(dpy, lookupWindow(ev), NULL, 0); } xview-3.2p1.4/clients/olvwm-4.1/list.c100644 1750 1750 13004 5515337310 14666 0ustar mbmb/* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifdef IDENT #ident "@(#)list.c 1.2 olvwm version 25 Nov 1992" #endif /* * Based on #ident "@(#)list.c 26.7 91/09/14 SMI" * */ #include #include #include "mem.h" #include "list.h" /*************************************************************************** * Local data ***************************************************************************/ #define NUMCELLS 511 typedef struct _cellBlock { struct _cellBlock *next; int n; List cells[NUMCELLS]; } cellBlock, *pcellBlock; static pcellBlock cellList = NULL; static List *freeList = NULL; /*************************************************************************** * Local functions ***************************************************************************/ /* local function * * pcellBlock mkCellBlock() * returns a new, minimally initialised cell block. The block is not linked * into the list of cell blocks. The cells are not initialised. */ static pcellBlock mkCellBlock() { pcellBlock pcb; pcb = MemNew(cellBlock); pcb->n = NUMCELLS; pcb->next = NULL; return pcb; } /* local function * * void initCellBlock() * puts all the cells in the new cell block onto the free list */ static void initCellBlock(pcb) pcellBlock pcb; { int i; for (i=0; in; i++) { pcb->cells[i].next = freeList; pcb->cells[i].value = NULL; freeList = &(pcb->cells[i]); } } /* local function * * List *allocCell() * allocates a cell from the free list; if none are available, allocates * a new cell block. */ static List * allocCell() { pcellBlock pcb; List *cell; if (freeList == NULL) { pcb = mkCellBlock(); initCellBlock(pcb); pcb->next = cellList; cellList = pcb; } cell = freeList; freeList = freeList->next; cell->next = NULL; return cell; } /* local function * * void freeCell() * returns a cell from the free list */ static void freeCell(cell) List *cell; { cell->next = freeList; cell->value = NULL; freeList = cell; } #ifdef DEBUG /* debugging function listPrint * * Intended to be called from a debugger. Prints out the value of each list * item in hex. */ static void listPrint(list) List *list; { int count; for (count=0 ; list != NULL_LIST ; list = list->next, ++count) fprintf(stderr, "item %d: value = 0x%x\n", count, list->value); } #endif /* DEBUG */ /*************************************************************************** * Global functions ***************************************************************************/ /* global function * * void ListInit() * no parameters. * * Initialises the List package: allocates a block of cells. */ void ListInit() { cellList = mkCellBlock(); initCellBlock(cellList); } /* global function * * void ListCons(void *val, List *next) * * Prepends a value to the head of a list. */ List * ListCons(val,next) void *val; List *next; { List *cell; cell = allocCell(); cell->value = val; cell->next = next; return cell; } /* global function * * int ListCount(List *l) * * Returns the number of items in a list. */ int ListCount(l) List *l; { int len = 0; while (l != NULL) { len++; l = l->next; } return len; } /* global function * void ListDestroy(List *l) * * destroys all the cells in a list. Leaves the values unaffected. */ void ListDestroy(l) List *l; { List *last; while (l != NULL) { last = l; l = l->next; freeCell(last); } } /* global function * void ListDestroyCell(List **l) * * deletes one cell from a list; modifies the List* passed by * reference to point to the next cell. */ void ListDestroyCell(l) List **l; { List *cell; if ((cell = *l) != NULL) { *l = cell->next; freeCell(cell); } } /* global function * void ListApply(List *l,void *(*f)(),void*c) * * iteratively calls the function f with list values and the * closure c, until f returns a non-NULL value */ void * ListApply(l,f,c) List *l; void *(*f)(); void *c; { List *cell; void *res; for (cell = l; cell != NULL; cell = cell->next) { res = (*f)(cell->value,c); if (res != NULL) return res; } return NULL; } /* global function * void * ListEnum(List **l) * * returns the value of the cell pointed to by l; modifies l to point * to the next cell in the list. */ void * ListEnum(l) List **l; { void *val; if (*l != NULL) { val = (*l)->value; *l = (*l)->next; return val; } else return NULL; } List * ListDestroyCellByValue(val, l) void *val; List *l; { List *cell, *last; for (cell = l, last = NULL; cell; last = cell, cell = cell->next) if (cell->value == val) break; if (!cell) return l; if (last) { last->next = cell->next; freeCell(cell); } else { l = l->next; freeCell(cell); } return l; } Bool ListIsAMember(val, l) void *val; List *l; { List *cell; for (cell = l; cell; cell = cell->next) if (cell->value == val) return True; return False; } /* * ListReverse(List **l) * * reverses the order of the elements in a list. * this is done by creating a new list then destroying the old list. */ void ListReverse(l) List **l; { List *current; List *new = NULL; /* * Create new list reversing order. */ for (current = *l; current != NULL_LIST; current = current->next) { new = ListCons(current->value, new); } /* * Destroy old list, reset new list. */ ListDestroy(*l); *l = new; } xview-3.2p1.4/clients/olvwm-4.1/mem.c100644 1750 1750 7431 5515337310 14460 0ustar mbmb#ifdef IDENT #ident "@(#)mem.c 26.9 91/08/25 SMI" #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ /* * Safe memory allocation/free routines - front-ends the C library functions * */ #include #include #include #include #include "i18n.h" #include "mem.h" #include "error.h" #ifdef MEMDEBUG #include "st.h" #define MemAlloc d_MemAlloc #define MemFree d_MemFree #define MemRealloc d_MemRealloc #define MemCalloc d_MemCalloc int MemAcct; int AcctTag; static st_table *memHashTable; typedef struct { unsigned int s; int a; int l; char *f; char *k; } Mem; static int memCompare(g1, g2) char *g1, *g2; { return (g1 - g2); } static int memHash(g1, modulus) int g1; int modulus; { return g1 % modulus; } static void insertAcctInfo(p, s, f, l, k) void *p; unsigned int s; char *f; int l; char *k; { if (MemAcct) { Mem *m; MemAcct = 0; /*prevent nasty recursion*/ if (memHashTable == NULL) memHashTable = st_init_table(memCompare, memHash); m = (Mem *) malloc(sizeof(Mem)); m->s = s; m->f = f; m->l = l; m->a = AcctTag; m->k = k; st_insert(memHashTable, p, m); MemAcct = 1; } } static enum st_retval dodump(key, rec) void *key; Mem *rec; { char extra[255]; if (rec->k == NULL) strcpy(extra, "\n"); else { if (strcmp(rec->k, "(string)") == 0) sprintf(extra, ":\"%s\"\n", key); else sprintf(extra, ":%s\n", rec->k); } fprintf(stderr, "extant: %d) 0x%.8x, (f:%s, l:%d) (%d bytes)%s", rec->a, key, rec->f, rec->l, rec->s, extra); return ST_DELETE; } void DumpExtant() { if (memHashTable) st_foreach(memHashTable, dodump, NULL); else fprintf(stderr, "no accounting info availiable!\n"); } #endif void * MemAllocN(sz #ifdef MEMDEBUG , f, l, k #endif ) unsigned int sz; #ifdef MEMDEBUG char *f; int l; char *k; #endif { void *p; if ((p = malloc(sz)) == NULL) ErrorGeneral(gettext("Memory allocation failure.")); #ifdef MEMDEBUG insertAcctInfo(p, sz, f, l, k); #endif return p; } void * MemAlloc(sz #ifdef MEMDEBUG , f, l, k #endif ) unsigned int sz; #ifdef MEMDEBUG char *f; int l; char *k; #endif { void *p; if ((p = malloc(sz)) == NULL) ErrorGeneral(GetString("Memory allocation failure.")); memset((char *) p, 0, (int) sz); #ifdef MEMDEBUG insertAcctInfo(p, sz, f, l, k); #endif return p; } void * MemCalloc(num, sz #ifdef MEMDEBUG , f, l #endif ) unsigned int num; unsigned int sz; #ifdef MEMDEBUG char *f; int l; #endif { void *p; if ((p = calloc(num, sz)) == NULL) ErrorGeneral(GetString("Memory array allocation failure.")); memset((char *) p, 0, (int) sz * (int) num); #ifdef MEMDEBUG insertAcctInfo(p, sz * num, f, l, NULL); #endif return p; } void * MemRealloc(p, sz) void *p; unsigned int sz; { void *t; if ((t = realloc(p, sz)) == NULL) ErrorGeneral(GetString("Memory array allocation failure.")); #ifdef MEMDEBUG if (MemAcct && memHashTable) { Mem *oldM; MemAcct = 0; (void) st_delete(memHashTable, &p, (char *) &oldM); oldM->s = sz; st_insert(memHashTable, t, oldM); MemAcct = 1; } #endif return t; } void MemFree(p) void *p; { if (p != NULL) { #ifdef MEMDEBUG if (MemAcct && memHashTable) { Mem *oldM; MemAcct = 0; (void) st_delete(memHashTable, &p, (char *) &oldM); free(oldM); MemAcct = 1; } #endif free(p); } } xview-3.2p1.4/clients/olvwm-4.1/menu.c100644 1750 1750 253674 6332162603 14721 0ustar mbmb/* * (c) Copyright 1989, 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifdef IDENT #ident "@(#)menu.c 1.6 olvwm version 07 Jan 1994" #endif /* * Based on #ident "@(#)menu.c 26.76 93/06/28 SMI" * */ /* * This file contains all of the functions for creating and displaying menus. * * Global Functions: * InitMenus -- initialize menu stuff -- OBSOLETE IN 3.0 * MenuCreate -- create a new menu -- OBSOLETE IN 3.0 * MenuDestroy -- destroy an existing menu -- OBSOLETE IN 3.0 * MenuShow -- display a menu */ #include #include #include #include #include #include #include #include #include #include #include "i18n.h" #include #include #include #include "ollocale.h" #include "mem.h" #include "events.h" #include "olwm.h" #include "win.h" #include "menu.h" #include "globals.h" #include "error.h" extern unsigned int FindModifierMask(); /* Locals */ static XEvent lastPress; static int lastX, lastY, minX; static WinGeneric *prevColorFocusWindow = NULL; static MenuTrackMode menuTrackMode; /* * Table of currently active menus. * REMIND: perhaps this should be dynamically allocated. */ #define MAX_ACTIVE_MENUS 20 /* We hope, more than enough. */ static MenuInfo *menuInfoTable[MAX_ACTIVE_MENUS]; static int topMenu = 0; /* Next free menuInfoTable slot. */ #define PUSHPINHEIGHT(g) (PushPinOut_Height(g) + 4) /* * Various dimensions. REMIND: these should be eliminated if possible, * and information from the font (via olgx) should be used instead. */ #define BUTT_VSPACE 0 /* vertical space between buttons */ #define BUTT_HSPACE 5 /* Space betw button/mark & pin/title/box */ #define HEAD_VSPACE 4 /* space around title and below last btn */ #define LOC_CURSOR_SIZE 6 /* space for the SuperCaret */ #define MENUMARK_SIZE 6 /* size of menu mark; REMIND use olgx macro */ #define MENU_HORIZ_OFFSET 3 /* where to place menu w.r.t. event */ #define BUTT_IMGVSPACE 4 /* Space betw button frame and pixmap */ /* * globals */ Bool flDoSetDefault; /********************************************************************************/ static void calcmenusize(); static void recalcCachedMenu(); static void (*syncFunc) (); static void *syncInfo; MenuInfo *FindMenuInfo(); void MenuInfoDestroy(); static ButtonInfo *buttonInfoCreate(); static void showMenu(); static Bool menuHandleUpDownMotion(); static Bool menuHandlePress(); static void menuHandleMotion(); static Bool menuHandleRelease(); static MenuInfo *menuSearch(); static MenuLocation checkMenuEvent(); static void menuHide(); static void unmapChildren(); static void activateButton(); static void setMenuPin(); static void activateSubMenu(); static void drawButton(); static void drawRevButton(); static Bool isClick(); static Bool isEnabled(); static void calcbuttonpositions(); int MenuTrack(); void DrawLocCursor(); #ifdef notdef /* Defaulting stuff */ extern DefaultsP DefaultsPtr; /* defined in usermenu.c */ /* REMIND: * the resource stuff for saving defaults is not implemented; */ void UpdDefaultPtr(mInfo, index) MenuInfo *mInfo; int index; { DefaultsP curr = DefaultsPtr; while (curr) { if (curr->mInfo == mInfo) break; curr = curr->next; } if (curr) curr->DefaultButton = index; } XrmDatabase CreateDB() { char *path; char filename[80]; extern char *getenv(); extern XrmDatabase XrmGetFileDataBase(); if ((path = getenv("OLWMRC")) != NULL) return XrmGetFileDatabase(path); path = getenv("HOME"); strcpy(filename, path ? path : ""); strcat(filename, "/.olwmrc"); return XrmGetFileDatabase(filename); } static void makeRMName_class(name, class, Name) char *name, *class, *Name; { int len = strlen(Name); int i, j; strcpy(name, "Olwm*Menu."); for (i = 0, j = strlen(name); i < len; i++) if (isalpha(Name[i])) name[j++] = Name[i]; name[j] = '\0'; strcat(name, ".DefaultButton"); strcpy(class, name); } FillDefaultsList(defaultsDB, DefaultsPtr) XrmDatabase defaultsDB; DefaultsP DefaultsPtr; { DefaultsP curr = DefaultsPtr; char *Stype; char name[80]; char class[80]; XrmValue val; while (curr) { makeRMName_class(name, class, curr->Name); if (XrmGetResource(defaultsDB, name, class, &Stype, &val)) curr->DefaultButton = atoi(val.addr); curr = curr->next; } } static int ApplyDefaults(DefPtr, mInfo) DefaultsP DefPtr; MenuInfo *mInfo; { int i; char *mtit = menuTitle(mInfo); if (mtit != NULL && (strcmp(mtit, DefPtr->Name) == 0)) { DefPtr->mInfo = mInfo; if (DefPtr->DefaultButton < mInfo->menu->buttonCount) { mInfo->menu->buttonDefault = DefPtr->DefaultButton; } return 1; } else { for (i = 0; i < mInfo->menu->buttonCount; i++) { Button *pb = mInfo->buttons[i].button; if (pb == NULL) /*button is not visible; it has no entry*/ continue; if (pb->stacked) { if (pb->label[pb->which].kind = StringLabel) { if (!strcmp(pb->label[pb->which].string, DefPtr->Name)) { DefPtr->mInfo = mInfo->buttons[i].subMenu; if (DefPtr->DefaultButton < mInfo->buttons[i].subMenu->menu->buttonCount) mInfo->buttons[i].subMenu->menu->buttonDefault = DefPtr->DefaultButton; return 1; } } } } return 0; } } /* * ApplyMenuDefaults - * read $HOME/.olwmrc or the file specified in OLWMRC env variable. * This file has entries in Xrm format. DefaultsPtr points to a list of node, * where each node contains the name of a button to which a menu corresponds * and a buttonIndex in the menu which should be the default button for that * menu. When ApplyMenuDefaults() is called, the buttonIndex field is 0, and * the name field contains all buttons which have a menu associated with them * These include Window Menu and the WorkSpace Menu. */ void ApplyMenuDefaults(dpy, menuCache) Display *dpy; MenuCache *menuCache; { XrmDatabase defaultsDB; MenuInfo *mInfo; DefaultsP curr; int i; defaultsDB = CreateDB(); if (defaultsDB == NULL) return; FillDefaultsList(defaultsDB, DefaultsPtr); for (curr = DefaultsPtr; curr; curr = curr->next) { for (i = 0; i < menuCache->nextSlot; i++) { mInfo = menuCache->menuInfoList[i]; if (ApplyDefaults(curr, mInfo)) break; } } } /* * Save defaults for next invocation of wm. Should be called from cleanup() * functions when exiting wm. */ SaveMenuDefaults() { char *path; char filename[80]; FILE *fd; extern char *getenv(); DefaultsP curr, temp; char name[80], class[80]; /* open a file for writing, overwriting existing file */ if ((path = getenv("OLWMRC")) != NULL) { if ((fd = fopen(path, "w")) == NULL) { printf("Cannot create %s\n", path); return; } } else { path = getenv("HOME"); strcpy(filename, path ? path : ""); strcat(filename, "/.olwmrc"); if ((fd = fopen(filename, "w")) == NULL) { printf("Cannot create %s\n", path); return; } } curr = DefaultsPtr; while (curr) { makeRMName_class(name, class, curr->Name); temp = curr; curr = curr->next; free(temp); } } #endif /* * whether the menu has a title or not is dependant on * if it's pinned */ static Text * menuTitle(mInfo) MenuInfo *mInfo; { if (mInfo->origmenuInfo != NULL) return NULL; return mInfo->menu->title; } /* * SOMETIMES, it is desirable to know when the menu * has changed the tracking mode from click to selecto to drag to * select (or rather, vice versa) * so that buttons can busify themselves. * so ShowStandardMenuSync() will use these to that * effect */ void (*clickProc)(); void *clickData; void SetClickMode(flclick) Bool flclick; { menuTrackMode = flclick? MODE_CLICK : MODE_DRAG; if (clickProc) (*clickProc)(menuTrackMode, clickData); } void SetClickCallback(proc, data) void (*proc)(); void *data; { clickProc = proc; clickData = data; } /* * this is used when someone has a pushpin set as the default; * we bring that menu's clone to the top rather than making * another menu */ static void _bringPinnedMenuToTop(cli, mInfo) Client *cli; MenuInfo *mInfo; { WinPinMenu *winPinMenu; if (cli->screen == mInfo->menuWin->core.client->screen) { /*quick check to see if we're in the neighborhood*/ winPinMenu = (WinPinMenu *) cli->framewin->fcore.panewin; if (winPinMenu->menuInfo->menu == mInfo->menu) ClientFront(cli); } } /* * ExecButtonAction * * Given a menu and a button, find the button's action (by searching down the * menu tree following defaults, if necessary) and execute it. */ void ExecButtonAction(dpy, winInfo, menuInfo, btn) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int btn; { Menu *menu = menuInfo->menu; if (btn > menu->buttonCount) return; /* search down the menu tree for defaults */ while (btn != NOBUTTON && btn < menu->buttonCount) { if (btn == PINBUTTON) { /* pin the menu if we're allowed */ if (isEnabled(menuInfo, PINBUTTON)) { (void) MakePinMenu(dpy, winInfo, menuInfo); } else { /* * That menu is already pinned somewhere; bring * it to the front. */ VisitPinnedMenuClients(_bringPinnedMenuToTop, menuInfo); } break; } else if (menu->buttons[btn]->has_submenu) { menu = menu->buttons[btn]->action.submenu; btn = menu->buttonDefault; menuInfo = FindMenuInfo(winInfo, menu); } else { /* this is a leaf button */ break; } } if (!menuInfo) /* Selected a menu which doesn't have a default */ return; /* if not the same menu then find its corresponding menuinfo */ if (menuInfo->menu != menu) { if ((menuInfo = FindMenuInfo(winInfo, menu)) == NULL) return; } if (isEnabled(menuInfo, btn)) (*menu->buttons[btn]->callback) (dpy, winInfo, menuInfo, btn); } static void drawMenuPushpin(dpy, menuInfo) Display *dpy; MenuInfo *menuInfo; { WinGeneric *winInfo = menuInfo->menuWin; Window win = winInfo->core.self; Menu *menu = menuInfo->menu; GC windowGC = WinGC(winInfo, WINDOW_GC); Graphics_info *gisNormal = WinGI(winInfo, NORMAL_GINFO); if (menu->hasPushPin) { int flags; /* * If the menu is already displayed, draw the pushpin grayed out to * indicate that it can't be pinned again. */ /* * REMIND we have to manually erase the pushpin because OLGX is * broken when it comes to erasing pushpins. */ XFillRectangle(dpy, win, windowGC, menuInfo->pushPinX, menuInfo->pushPinY, PushPinOut_Width(gisNormal), PUSHPINHEIGHT(gisNormal)); if (menuInfo->pinnedBrother != NULL) flags = OLGX_PUSHPIN_OUT | OLGX_INACTIVE; else if (menuInfo->ringedButton == PINBUTTON) flags = OLGX_PUSHPIN_OUT | OLGX_DEFAULT; else flags = OLGX_PUSHPIN_OUT; olgx_draw_pushpin(gisNormal, win, menuInfo->pushPinX, menuInfo->pushPinY, flags); } } /* * this only draws the menu buttons that need have their * icky flag set */ void DrawMenuWithHints(dpy, mInfo) Display *dpy; MenuInfo *mInfo; { Menu *menu = mInfo->menu; int bindex; /* Draw the buttons. */ for (bindex = 0; bindex < menu->buttonCount; bindex++) { ButtonInfo *bi = &mInfo->buttons[bindex]; if (! bi->flDirty) continue; bi->flDirty = False; if (! bi->button->visible || bi->button->label[bi->button->which].kind == NoType) continue; drawButton(dpy, mInfo, bindex, (bindex == menu->buttonDefault)); } } void /* ARGSUSED */ SetMenuRedrawHints(dpy, ee, mInfo) Display *dpy; XExposeEvent *ee; MenuInfo *mInfo; { Menu *menu = mInfo->menu; int bindex; static Region region = NULL; MakeExposeDamage(®ion, ee); /* Draw the buttons. */ for (bindex = 0; bindex < menu->buttonCount; bindex++) { ButtonInfo *bi = &mInfo->buttons[bindex]; if (bi->flDirty) continue; if (XRectInRegion(region, bi->buttonX, bi->buttonY, mInfo->maxbuttonWidth, bi->buttonHeight + HEAD_VSPACE)) bi->flDirty = True; } } /* * Draw menu contents into menu->window. */ void DrawMenu(dpy, mInfo) Display *dpy; MenuInfo *mInfo; { WinGeneric *winInfo = mInfo->menuWin; Window win = winInfo->core.self; Menu *menu = mInfo->menu; GC windowGC = WinGC(winInfo, WINDOW_GC); Graphics_info *gisNormal = WinGI(winInfo, NORMAL_GINFO); int bindex; Text *mtit; /* Draw the basic menu background if this menu isn't pinned */ if (mInfo->origmenuInfo != NULL || !winInfo->core.client->scrInfo->use3D) { XFillRectangle(dpy, win, windowGC, 0, 0, mInfo->menuWidth, mInfo->menuHeight); } if (mInfo->origmenuInfo == NULL) { olgx_draw_box(gisNormal, win, 0, 0, mInfo->menuWidth, mInfo->menuHeight, OLGX_NORMAL, True); } /* Draw the menu title. */ if ((mtit = menuTitle(mInfo)) != NULL) { drawMenuPushpin(dpy, mInfo); olgx_draw_text(gisNormal, win, mtit, mInfo->titleX, mInfo->titleY, 0, OLGX_NORMAL | TextOLGX); #ifdef OW_I18N_L4 if (GRV.BoldFontEmulation == True) olgx_draw_text(gisNormal, win, mtit, mInfo->titleX + 1, mInfo->titleY, 0, OLGX_NORMAL | TextOLGX); #endif olgx_draw_text_ledge(gisNormal, win, BUTT_HSPACE, mInfo->titleHeight - 6, mInfo->menuWidth - (BUTT_HSPACE * 2)); } /* Draw the buttons. */ for (bindex = 0; bindex < menu->buttonCount; bindex++) { ButtonInfo *bi = &mInfo->buttons[bindex]; bi->flDirty = False; if (bi->button == NULL || ! bi->button->visible || (bi->button->label[bi->button->which].kind == NoType)) continue; drawButton(dpy, mInfo, bindex, bindex == menu->buttonDefault); } } /* * SetButton: when you want to talk about the default ring, * use flsetdefault=true */ void SetButton(dpy, menuInfo, idx, highlight, flsetdefault) Display *dpy; MenuInfo *menuInfo; int idx; Bool highlight; Bool flsetdefault; { Bool flenabled = isEnabled(menuInfo, idx); /* * If flsetdefault is on, draw the button with default ring if it is to * be high-lighted. */ if (idx < NOBUTTON) return; if (flsetdefault) { if (highlight) { if (idx != menuInfo->ringedButton) { if (menuInfo->ringedButton > NOBUTTON) drawButton(dpy, menuInfo, menuInfo->ringedButton, False); if (idx > NOBUTTON && flenabled) { drawButton(dpy, menuInfo, idx, True); menuInfo->ringedButton = idx; } } } else { if (idx == menuInfo->ringedButton) { if (idx > NOBUTTON) drawButton(dpy, menuInfo, idx, False); menuInfo->ringedButton = NOBUTTON; } } } else { if (highlight) { if (menuInfo->ringedButton == idx) { if (idx > NOBUTTON) drawButton(dpy, menuInfo, idx, False); menuInfo->ringedButton = NOBUTTON; } if (idx > NOBUTTON) drawRevButton(dpy, menuInfo, idx); } else if (idx > NOBUTTON) drawButton(dpy, menuInfo, idx, False); } } Bool StartMenuGrabs(dpy, winInfo) Display *dpy; WinGeneric *winInfo; { int grabstat; /* * Grab the server to prevent anybody from sullying the underlying windows * when the menu window is mapped, but only if we're allowed. */ grabstat = XGrabPointer(dpy, WinRootID(winInfo), True, ButtonReleaseMask | ButtonMotionMask | ButtonPressMask, GrabModeAsync, GrabModeAsync, None, GRV.MenuPointer, CurrentTime); if (grabstat != GrabSuccess) { ErrorWarning(GetString("failed to grab pointer")); /*don't worry about sync function*/ return False; } /* needed for previewing */ grabstat = XGrabKeyboard(dpy, WinRootID(winInfo), False, GrabModeAsync, GrabModeAsync, CurrentTime); if (grabstat != GrabSuccess) ErrorWarning(GetString("failed to grab keyboard")); if (GRV.ServerGrabs) XGrabServer(dpy); InstallInterposer(MenuTrack, winInfo); return True; } /* * MenuShow * MenuShowSync * * These functions are the main entry points into the menu tracking system. * MenuShow() grabs everything, sets up the event interposer, and returns. * * REMIND * MenuShowSync() sets up an additional callback that is called after the menu * action is completed. This is necessary for the present implementation of * pinned menus, which need to have work done after the menu goes down, in * addition to the menu button action. This interface should probably go away * once pinned menus are rearchitected. * * flbutton means that it came from a window menu button; so it should be placed * below that button. * flkbd means that it was a mouselessly invoked menu; it needs to be placed just * to the right of the button (if any) */ void MenuMakeFirst(mInfo, sfunc, sinfo) MenuInfo *mInfo; void (*sfunc)(); void *sinfo; { memset((char *) menuInfoTable, 0, sizeof(MenuInfo *) * MAX_ACTIVE_MENUS); topMenu = 0; menuInfoTable[topMenu++] = mInfo; syncFunc = sfunc; syncInfo = sinfo; } void MenuShowSync(dpy, winInfo, menu, pevent, sfunc, sinfo, flkbd, flbutton) Display *dpy; WinGeneric *winInfo; Menu *menu; XEvent *pevent; void (*sfunc) (); void *sinfo; Bool flkbd; Bool flbutton; { MenuInfo *menuInfo; MenuCache *menuCache = winInfo->core.client->scrInfo->menuCache; Graphics_info *gisButton = WinGI(winInfo, BUTTON_GINFO); int x, y; if (! StartMenuGrabs(dpy, winInfo)) return; if (menu->menudirty) { /*some attribute of the menu has changed; recalc it's size, and button layoyt*/ menu->menudirty = False; recalcCachedMenu(winInfo, menu); } menuInfo = FindMenuInfo(winInfo, menu); if (menuInfo == NULL) return; MenuMakeFirst(menuInfo, sfunc, sinfo); menuInfo->menuWin = (WinGeneric *) menuCache->menuWinList[0]; if (prevColorFocusWindow == NULL && ColorFocusLocked(menuInfo->menuWin)) prevColorFocusWindow = ColorFocusWindow(menuInfo->menuWin); InstallColormap(dpy, menuInfo->menuWin->core.client->scrInfo->rootwin); switch (pevent->type) { case ButtonPress: case ButtonRelease: lastX = minX = pevent->xbutton.x_root; if (flbutton) { WinGeneric *deco = ((WinPaneFrame *) winInfo)->winDeco; x = winInfo->core.x; y = winInfo->core.y; if (deco != NULL) { /*should always be the case*/ x += deco->core.x; y += deco->core.y + deco->core.height + HEAD_VSPACE; } } else { x = pevent->xbutton.x_root - MENU_HORIZ_OFFSET; y = pevent->xbutton.y_root - (Button_Height(gisButton) + BUTT_VSPACE) / 2; } flDoSetDefault = (pevent->xbutton.state & ModMaskMap[MOD_SETDEFAULT]); break; case KeyPress: case KeyRelease: if (flkbd) { if (CurrentClient->wmState == IconicState) { x = CurrentClient->iconwin->core.x + (CurrentClient->iconwin->core.width) / 2; y = CurrentClient->iconwin->core.y + (CurrentClient->iconwin->core.height) / 2; } else { WinGeneric *deco = ((WinPaneFrame *) winInfo)->winDeco; x = winInfo->core.x; y = winInfo->core.y; if (deco != NULL) { x += deco->core.x + deco->core.width; y += deco->core.y; } } } else { lastX = minX = pevent->xkey.x_root; x = pevent->xkey.x_root - MENU_HORIZ_OFFSET; y = pevent->xkey.y_root - (Button_Height(gisButton) + BUTT_VSPACE) / 2; } flDoSetDefault = (FindModifierMask(pevent->xkey.keycode) == ModMaskMap[MOD_SETDEFAULT]); break; default: return; } /* Install the first menu */ menuTrackMode = MODE_CLICK; lastPress = *pevent; showMenu(dpy, menuInfo, x, y, ! flbutton); } /* * MenuShow */ void MenuShow(dpy, winInfo, menu, pevent) Display *dpy; WinGeneric *winInfo; Menu *menu; XEvent *pevent; { MenuShowSync(dpy, winInfo, menu, pevent, NULL, NULL, False, False); } /* * PointInRect -- check if a point is inside a rectangle */ int PointInRect(x, y, rx, ry, rw, rh) int x, y, rx, ry, rw, rh; { return (x >= rx && x < rx + rw) && (y >= ry && y < ry + rh); } /* * =========================================================================== */ /* * Local routines */ /* * findMaxDepth - returns max depth of all menuinfo's in a cache */ static int findMaxDepth(menuCache) MenuCache *menuCache; { MenuInfo *menuInfo; int i, depth; int nextSlot = menuCache->nextSlot; depth = 0; for (i = 0; i < nextSlot; i++) { menuInfo = menuCache->menuInfoList[i]; depth = MAX(depth, menuInfo->depth); } return depth; } /* * menuInfoCreate -- Create the MenuInfo structure for this menu. * This is mainly sizing information that is screen specific. * This will traverse the entire menu/button/submenu tree * and created all needed structures. */ MenuInfo * MenuInfoCreate(menuCache, winInfo, menu, depth, slot) MenuCache *menuCache; WinGeneric *winInfo; Menu *menu; int depth; int slot; { int i; MenuInfo *menuInfo; if (menu == NULL) return (MenuInfo *) NULL; menuInfo = MemNew(MenuInfo); menuInfo->depth = depth; /* save a pointer to the original/global menu */ menuInfo->menu = menu; /* create info each button (which creates any needed submenus) */ menuInfo->buttons = buttonInfoCreate(menuCache, winInfo, menuInfo); calcmenusize(menuInfo, winInfo, menu); calcbuttonpositions(winInfo, menuInfo->buttons, menuInfo); /* zero out the rest of the fields */ menuInfo->menuWin = (WinGeneric *) NULL; menuInfo->origmenuInfo = (MenuInfo *) NULL; menuInfo->pinnedBrother = NULL; /* insert it into the list */ if (slot == MENU_NEWSLOT) { if (menuCache->nextSlot == menuCache->maxSlots - 1) { menuCache->maxSlots += 10; menuCache->menuInfoList = MemRealloc(menuCache->menuInfoList, sizeof(MenuInfo) * menuCache->maxSlots); } menuCache->menuInfoList[menuCache->nextSlot++] = menuInfo; } else menuCache->menuInfoList[slot] = menuInfo; return menuInfo; } /* * Set the x,y position of the button excluding the * title height (since a pinned menu has no title). * * REMIND: add a resource to control row major versus column major * placement of buttons in the menu; */ static void calcbuttonpositions(wi, bi, mi) WinGeneric *wi; ButtonInfo *bi; MenuInfo *mi; { Graphics_info *gisButton = WinGI(wi, BUTTON_GINFO); int i; int nextY = BUTT_VSPACE; int nextX = BUTT_HSPACE + LOC_CURSOR_SIZE; int buttonheight = Button_Height(gisButton) + BUTT_VSPACE; int offset; for (i = 0; i < mi->menu->buttonCount; i++, bi++) { if (bi->button == NULL) continue; if (bi->subMenu != NULL) calcbuttonpositions(wi, bi->subMenu->buttons, bi->subMenu); /* set the core of the ButtonInfo */ bi->buttonX = nextX; bi->buttonY = nextY; /* * Move down to next button position. */ switch(bi->button->label[bi->button->which].kind) { case NoType: bi->buttonHeight = buttonheight / 2; offset = 0; break; case StringLabel: bi->buttonHeight = buttonheight; offset = BUTT_VSPACE; break; case ImageLabel: #ifdef OLGX_LABEL_IS_COMB case ComboLabel: #endif bi->buttonHeight = bi->button->label[bi->button->which].pixlabel->height + BUTT_IMGVSPACE; bi->framed = True; offset = BUTT_IMGVSPACE; break; } if ((i % mi->menu->btnPerCol) == (mi->menu->btnPerCol - 1)) { nextX += MAX(mi->menu->maxLabWidth + BUTT_HSPACE, ((mi->menuWidth - BUTT_HSPACE) / mi->numColumns)); nextY = BUTT_VSPACE; } else nextY += bi->buttonHeight + offset; } } /* * establishAccelerator * * Given a button-info and a key binding, fills in the accelerator fields of * the button-info from the key binding. */ static void establishAccelerator(bInfo, binding) ButtonInfo *bInfo; KeyBinding *binding; { extern Display *DefDpy; int m; KeySym ks; Text buf[100]; Bool modified = False; Text *modsep; Text *temp; buf[0] = (Text) NULL; modsep = GetText("-"); /* If the accelerator is a letter key, force it to upper case. */ ks = XKeycodeToKeysym(DefDpy, binding->keycode, 0); if (ks >= XK_a && ks <= XK_z) ks = ks - XK_a + XK_A; #ifdef OW_I18N_L4 bInfo->accel_key = mbstowcsdup(XKeysymToString(ks)); #else bInfo->accel_key = MemNewString(XKeysymToString(ks)); #endif /* OW_I18N_L4 */ /* run through the eight modifier bits */ for (m = 0; m < 8; ++m) { if (! (binding->modstate & (1 << m))) continue; ks = ModifierToKeysym(m); if (ks == NoSymbol) continue; if (ks == XK_Meta_L || ks == XK_Meta_R) { bInfo->has_meta_mark = True; } else { if (modified) (void) TextCat(buf, modsep); switch (ks) { case XK_Shift_L: case XK_Shift_R: temp = GetText("shift"); break; case XK_Control_L: case XK_Control_R: temp = GetText("ctrl"); break; case XK_Alt_L: case XK_Alt_R: temp = GetText("alt"); break; case XK_Super_L: case XK_Super_R: temp = GetText("super"); break; case XK_Hyper_L: case XK_Hyper_R: temp = GetText("hyper"); break; default: #ifdef OW_I18N_L4 temp = mbstowcsdup(XKeysymToString(ks)); #else temp = XKeysymToString(ks); #endif /* OW_I18N_L4 */ break; } TextCat(buf, temp); FreeText(temp); modified = True; } } bInfo->accel_modifier = MemNewText(buf); FreeText(modsep); } /* * buttonInfoCreate - Create ButtonInfo's for each button in the menu * Create any submenus found in the buttons. */ static ButtonInfo * buttonInfoCreate(menuCache, winInfo, menuInfo) MenuCache *menuCache; WinGeneric *winInfo; MenuInfo *menuInfo; { int buttonCount = menuInfo->menu->buttonCount; int bindex; ButtonInfo *buttonInfo; ButtonInfo *bInfo; KeyBinding *binding; #if 1 /* Avoid alloc'ing 0 bytes (this might confuse malloc() badly) */ buttonInfo = MemAlloc(1 + buttonCount * sizeof(ButtonInfo)); #else buttonInfo = MemAlloc(buttonCount * sizeof(ButtonInfo)); #endif /* Init each ButtonInfo for each button */ for (bindex = 0; bindex < buttonCount; bindex++) { Button *pb = menuInfo->menu->buttons[bindex]; if (pb == NULL) continue; bInfo = &(buttonInfo[bindex]); /* erase everything; if we decide not to use this item (visible == * False) then bInfo->buttons will be NULL; this must be checked * before using! */ memset((void *) bInfo, 0, sizeof(ButtonInfo)); if (! pb->visible) continue; bInfo->button = pb; /* If this is a submenu then traverse it */ if (bInfo->button->has_submenu && bInfo->button->action.submenu) { bInfo->subMenu = MenuInfoCreate(menuCache, winInfo, bInfo->button->action.submenu, menuInfo->depth + 1, MENU_NEWSLOT); } else { bInfo->subMenu = (MenuInfo *) NULL; } binding = LookupKeyBinding(pb->semantic); if (binding != NULL) { bInfo->has_accel = True; establishAccelerator(bInfo, binding); } else { bInfo->has_accel = False; } } return buttonInfo; } static void buttonInfoDestroy(bi) ButtonInfo *bi; { if (bi->accel_modifier != NULL) MemFree(bi->accel_modifier); if (bi->accel_key != NULL) MemFree(bi->accel_key); } /* * menuInfoDestroy */ void MenuInfoDestroy(menuInfo) MenuInfo *menuInfo; { int i; if (menuInfo->buttons) { for (i = 0; i < menuInfo->menu->buttonCount; i++) buttonInfoDestroy(&menuInfo->buttons[i]); MemFree(menuInfo->buttons); } MemFree(menuInfo); } /* * FindMenuInfo */ MenuInfo * FindMenuInfo(winInfo, menu) WinGeneric *winInfo; Menu *menu; { MenuCache *menuCache; MenuInfo *new = (MenuInfo *) NULL; int i; menuCache = winInfo->core.client->scrInfo->menuCache; for (i = 0; i < menuCache->nextSlot; i++) { if (menu == menuCache->menuInfoList[i]->menu) { new = menuCache->menuInfoList[i]; break; } } if (new == NULL) return (MenuInfo *) NULL; new->childActive = False; new->pinIn = False; new->litButton = NOBUTTON; new->ringedButton = new->menu->buttonDefault; return new; } /* * buttonTextWidth * * Returns the width of a piece of a menu button's text, properly dealing with * narrow or wide characters. */ static int buttonTextWidth(t) Text *t; { return FontWidth(ButtonFont, t, TextLen(t)); } static void calcmenusize(menuInfo, winInfo, menu) MenuInfo *menuInfo; WinGeneric *winInfo; Menu *menu; { int i; int maxAccelModWidth = 0; /* width of longest accel modifier */ int maxAccelKeyWidth = 0; /* width of longest accel key */ int menWidth, menHeight; /* Width and height of menu. */ int hasSubMenu = False; /* True if there are submenus */ int maxTtlWidth; /* Width of longest title */ int labelWidth; /* Width of current label */ int labelHeight; /* Height of current label */ int dpyHeight; /* Height of display */ int heightofbuttons = 0; /* Height of all buttons */ Graphics_info *gisButton = WinGI(winInfo, BUTTON_GINFO); Graphics_info *gisNormal = WinGI(winInfo, NORMAL_GINFO); int buttonheight = Button_Height(gisButton) + BUTT_VSPACE; int tempheight, colheight; /* to calculate height of a column */ int currow, curcol; /* ditto */ int centerTitleX; int offset; Button *pb; /* temp pointer to button */ ButtonInfo *bi; /* temp pointer to ButtonInfo */ menuInfo->hasAccelerators = False; menuInfo->hasImages = False; /* Find longest menu entry and the height of the buttons*/ menu->maxLabHeight = 0; heightofbuttons = 0; for (menu->maxLabWidth = 0, i = 0; i < menu->buttonCount; i++) { pb = menu->buttons[i]; bi = &menuInfo->buttons[i]; if (! pb->visible) continue; switch(pb->label[pb->which].kind) { case NoType: labelHeight = (buttonheight / 2); labelWidth = 0; offset = 0; break; case StringLabel: labelWidth = buttonTextWidth(pb->label[pb->which].string); labelHeight = buttonheight; offset = BUTT_VSPACE; break; case ImageLabel: labelWidth = pb->label[pb->which].pixlabel->width; labelHeight = pb->label[pb->which].pixlabel->height + BUTT_IMGVSPACE; offset = BUTT_IMGVSPACE; menuInfo->hasImages = True; break; #ifdef OLGX_LABEL_IS_COMB case ComboLabel: labelWidth = pb->label[pb->which].pixlabel->width + BUTT_HSPACE + buttonTextWidth(pb->label[pb->which].string); labelHeight = pb->label[pb->which].pixlabel->height + BUTT_IMGVSPACE; offset = BUTT_IMGVSPACE; menuInfo->hasImages = True; break; #endif OLGX_LABEL_IS_COMB } menu->maxLabWidth = MAX(menu->maxLabWidth, labelWidth); menu->maxLabHeight = MAX(menu->maxLabHeight, labelHeight); heightofbuttons += labelHeight + offset; if (pb->has_submenu) hasSubMenu = True; if (bi->has_accel && menu->wantAccelerators) { menuInfo->hasAccelerators = True; maxAccelModWidth = MAX(maxAccelModWidth, buttonTextWidth(bi->accel_modifier)); maxAccelKeyWidth = MAX(maxAccelKeyWidth, buttonTextWidth(bi->accel_key)); } } /* * Accelerators and images are mutually exclusive */ if (menuInfo->hasImages) menuInfo->hasAccelerators = False; /* Make space for the menu mark (for submenus) or for accelerators. */ #if defined(SVR4) || defined(XVIEW32) if (menuInfo->hasAccelerators) { menuInfo->labelPos = MainLabel_Pos(gisButton, LOC_CURSOR_SIZE + BUTT_HSPACE); menuInfo->buttonMarkPos = ButtonMark_Pos(gisButton, menuInfo->labelPos, menu->maxLabWidth, maxAccelModWidth); menuInfo->accKeyPos = KeyLabel_Pos(gisButton, menuInfo->buttonMarkPos); menuInfo->accModPos = QualifierLabel_Pos(gisButton, menuInfo->buttonMarkPos, maxAccelModWidth); menu->maxLabWidth = menuInfo->accKeyPos + maxAccelKeyWidth - menuInfo->labelPos; } else #endif if (hasSubMenu) { /* XXX assume menu mark is smaller than any accelerator */ menu->maxLabWidth += BUTT_HSPACE + MENUMARK_SIZE; } menu->maxLabWidth += 2 * ButtonEndcap_Width(gisButton); /* * If any of the buttons have submenus, make space for the menu mark. */ if (hasSubMenu) menu->maxLabWidth += BUTT_HSPACE + MENUMARK_SIZE; /* Calculate title parameters. */ /* it's ok to check title here because we know this is a new * (not existing) menu */ if (menu->title != NULL) { menuInfo->titleWidth = FontWidth(TitleFont, menu->title, TextLen(menu->title)); /* * REMIND: the +4 is so that there be a tiny bit more space to draw * the default ring around a pushpin. It is also used in erasing the * pushpin, below. */ menuInfo->titleHeight = HEAD_VSPACE + MAX(FontHeight(TitleFont), PUSHPINHEIGHT(gisNormal)) + HEAD_VSPACE + 4; if (menu->hasPushPin) { menuInfo->titleX = BUTT_HSPACE + LOC_CURSOR_SIZE + PushPinOut_Width(gisNormal) + BUTT_HSPACE; /* REMIND: the +3 is so that the title will match * up with what the pinned menu looks like */ menuInfo->titleY = HEAD_VSPACE + FontAscent(TitleFont) + 3; maxTtlWidth = PushPinOut_Width(gisNormal) + BUTT_HSPACE + menuInfo->titleWidth; menWidth = menu->maxLabWidth + BUTT_HSPACE; } else { menWidth = menu->maxLabWidth + BUTT_HSPACE; menuInfo->titleX = (menWidth / 2) - (menuInfo->titleWidth / 2); menuInfo->titleY = HEAD_VSPACE + FontAscent(TitleFont); maxTtlWidth = menuInfo->titleWidth; } menuInfo->buttonOffset = menuInfo->titleHeight; } else { /* no title */ maxTtlWidth = 0; menWidth = menu->maxLabWidth + BUTT_HSPACE; menuInfo->titleX = 0; menuInfo->titleY = 0; menuInfo->titleWidth = 0; menuInfo->titleHeight = 0; menuInfo->buttonOffset = HEAD_VSPACE; } menuInfo->notitleOffset = HEAD_VSPACE; /* * Menu height is the sum of the buttons, the title height if any, the * space above the first button, and the space below the last button. */ menHeight = menuInfo->titleHeight + HEAD_VSPACE + heightofbuttons + HEAD_VSPACE; /* Make sure the menu is going to fit on the screen. */ dpyHeight = DisplayHeight(winInfo->core.client->dpy, winInfo->core.client->screen); if ((menHeight > dpyHeight) || (menu->prefColSize != 0)) { /* Calculate the number of buttons that will fit in a column */ if (menu->prefColSize != 0) { menu->btnPerCol = menu->buttonCount / menu->prefColSize; if (menu->buttonCount % menu->prefColSize) menu->btnPerCol++; menuInfo->numColumns = menu->prefColSize; } else { menu->btnPerCol = (dpyHeight - menuInfo->titleHeight + HEAD_VSPACE + HEAD_VSPACE) / (menu->maxLabHeight + BUTT_VSPACE); menuInfo->numColumns = (menu->buttonCount + (menu->btnPerCol - 1)) / menu->btnPerCol; /* Recalculate number of buttons per columns so that the columns * will be dense. */ menu->btnPerCol = (menu->buttonCount + (menuInfo->numColumns - 1)) / menuInfo->numColumns; } /* * Get the max buttonheight for each column */ colheight = 0; for (curcol = 0; curcol < menuInfo->numColumns; curcol++) { tempheight = 0; for (currow = 0; currow < menu->btnPerCol; currow++) { Button *pb = menu->buttons[currow + curcol * menu->btnPerCol]; if (! pb->visible) continue; else switch(pb->label[pb->which].kind) { case NoType: tempheight += (buttonheight / 2); break; case StringLabel: tempheight += buttonheight; break; case ImageLabel: #ifdef OLGX_LABEL_IS_COMB case ComboLabel: #endif OLGX_LABEL_IS_COMB tempheight += pb->label[pb->which].pixlabel->height + BUTT_IMGVSPACE * 2; break; } if (currow + curcol * menu->btnPerCol == menu->buttonCount - 1) break; /* last column may not have all the btnPerCol */ } colheight = MAX(colheight, tempheight); if (currow + curcol * menu->btnPerCol == menu->buttonCount - 1) break; /* last column may not have all the btnPerCol */ } menHeight = menuInfo->titleHeight + HEAD_VSPACE + colheight + BUTT_VSPACE; } else { menu->btnPerCol = menu->buttonCount; menuInfo->numColumns = 1; /* * If there is only one column, make the buttons at least as wide * as the title */ if (menu->maxLabWidth < maxTtlWidth) menu->maxLabWidth = maxTtlWidth; } /* Menu width is the width of the title or the sum of the width of * the button columns, whichever is greater. We are not checking * for menus that will not fit the entire screen */ menWidth *= menuInfo->numColumns; if (menu->hasPushPin) menWidth = MAX(menWidth, PushPinOut_Width(gisNormal) + BUTT_HSPACE + menuInfo->titleWidth); else menWidth = MAX(menWidth, maxTtlWidth); menWidth += LOC_CURSOR_SIZE + BUTT_HSPACE + LOC_CURSOR_SIZE; /* * Place the pushpin. Pushpin is centered vertically in case the font * height is smaller than the pushpin height. */ menuInfo->pushPinX = BUTT_HSPACE + LOC_CURSOR_SIZE; menuInfo->pushPinY = (menuInfo->titleHeight - PUSHPINHEIGHT(gisNormal)) / 2; /* all buttons have the same width, but the height can differ; * it stored in the button itself * the buttons are centered in the menu. * */ menuInfo->maxbuttonWidth = menu->maxLabWidth; menuInfo->menuWidth = menWidth; menuInfo->menuHeight = menHeight; /* * Center title; we guessed at this above, but now that we've redone * to columns we may have to do it again. */ if (menu->title != NULL) { centerTitleX = (menWidth / 2) - (menuInfo->titleWidth / 2); if (centerTitleX > menuInfo->titleX) menuInfo->titleX = centerTitleX; } } static void updateButtonInfo(wi, mi) WinGeneric *wi; MenuInfo *mi; { int i; ButtonInfo *bi; for (bi = mi->buttons, i = 0; i < mi->menu->buttonCount; i++, bi++) { if (bi->subMenu != NULL) { updateButtonInfo(wi, bi->subMenu); } else if (bi->button) { if (! mi->menu->buttons[i]->visible) bi->button = NULL; /*not visible any more*/ } else { if (mi->menu->buttons[i]->visible) bi->button = mi->menu->buttons[i]; /*now visible*/ } } calcbuttonpositions(wi, mi->buttons, mi); } static void recalcCachedMenu(win, menu) WinGeneric *win; Menu *menu; { MenuCache *menuCache; int i; menuCache = win->core.client->scrInfo->menuCache; for (i = 0; i < menuCache->nextSlot; i++) { MenuInfo *mInfo = menuCache->menuInfoList[i]; if (menu == mInfo->menu) { /* update the minfo's notion of buttons */ updateButtonInfo(win, mInfo); calcmenusize(mInfo, win, menu); break; } } } /* * Assumes that the window menus will tkae up the first MENU_NONE slots */ void /* ARGSUSED */ DestroyWindowMenuInfo(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { int i; for (i = 0; i < (int) MENU_NONE; i++) { MenuInfoDestroy(scrInfo->menuCache->menuInfoList[i]); } } /* * Assumes that Destroy called before Create. * Assumes that root menu info starts in slot MENU_ROOT in the menu cache. */ void CreateUserMenuInfo(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { int i, maxDepth; scrInfo->menuCache->nextSlot = (int) MENU_ROOT; (void) MenuInfoCreate(scrInfo->menuCache, (WinGeneric *) scrInfo->rootwin, scrInfo->menuTable[(int) MENU_ROOT], 1, MENU_NEWSLOT); maxDepth = findMaxDepth(scrInfo->menuCache); if (maxDepth > scrInfo->menuCache->maxDepth) { scrInfo->menuCache->menuWinList = MemRealloc(scrInfo->menuCache->menuWinList, maxDepth * sizeof(struct _winmenu *)); for (i = scrInfo->menuCache->maxDepth; i < maxDepth; i++) { scrInfo->menuCache->menuWinList[i] = MakeMenu(dpy, scrInfo->rootwin); } scrInfo->menuCache->maxDepth = maxDepth; } } /* * Assumes that root menu info starts in slot MENU_ROOT in the menu cache. */ void /* ARGSUSED */ DestroyUserMenuInfo(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { int i; for (i = (int) MENU_ROOT; i < scrInfo->menuCache->nextSlot; i++) { MenuInfoDestroy(scrInfo->menuCache->menuInfoList[i]); scrInfo->menuCache->menuInfoList[i] = 0; } } /* * showMenu */ static void showMenu(dpy, menuInfo, x, y, flusedefault) Display *dpy; MenuInfo *menuInfo; int x, y; Bool flusedefault; { int dpyWidth, dpyHeight; Menu *menu = menuInfo->menu; WinRoot *winRoot; if (flusedefault) { /* * if menu has a default, line default button with current y; otherwise * line first button of menu up with current y. * * REMIND: Only the row is lined up if the default is on the * second or subsequent column. */ if (menu->buttonDefault > 0) { y -= menuInfo->buttons[menu->buttonDefault % menu->btnPerCol].buttonY; } #ifdef REMIND_PIN_ALIGN else if (menu->buttonDefault == PINBUTTON) { /* REMIND align with pin */ } #endif /* REMIND_PIN_ALIGN */ } /* * If menu has a title move y up by titleHeight, else move up by only the * space above first button. */ if (menuTitle(menuInfo) != NULL) y -= menuInfo->titleHeight; else y -= HEAD_VSPACE; /* Make sure the menu is going to fit on the screen. */ winRoot = menuInfo->menuWin->core.client->scrInfo->rootwin; dpyWidth = winRoot->core.width; dpyHeight = winRoot->core.height; if ((x + menuInfo->menuWidth) > dpyWidth) x = dpyWidth - menuInfo->menuWidth; if ((y + menuInfo->menuHeight) > dpyHeight) y = dpyHeight - menuInfo->menuHeight; if (y < 0) y = 0; menuInfo->menuX = x; menuInfo->menuY = y; menuInfo->ignoreNextExpose = True; menuInfo->action = ACTION_MENU; MapMenuWindow(dpy, menuInfo->menuWin, menuInfo); /* * Initialize menu brought up using keyboard. Draw the location cursor and * hilight the default button */ if (lastPress.type == KeyPress && menuInfo->menu->buttonDefault != PINBUTTON) { drawRevButton(dpy, menuInfo, menuInfo->menu->buttonDefault); DrawLocCursor(dpy, menuInfo, menuInfo->menu->buttonDefault, True); menuInfo->litButton = menuInfo->menu->buttonDefault; } } struct brotherVisitInfo { Menu *menu; int newdef; }; static void _setdefault(cli, bfi) Client *cli; struct brotherVisitInfo *bfi; { WinPinMenu *pinmenu = (WinPinMenu *) cli->framewin->fcore.panewin; MenuInfo *mInfo = pinmenu->menuInfo; if (mInfo->menu->buttonDefault != bfi->newdef && mInfo->menu == bfi->menu) { /*erase old ring*/ SetButton(cli->dpy, mInfo, bfi->menu->buttonDefault, False, False); if (bfi->newdef > NOBUTTON) { /*draw new ring*/ SetButton(cli->dpy, mInfo, bfi->newdef, True, True); } } } static void setBrothersDefault(dpy, mInfo, new) Display *dpy; MenuInfo *mInfo; int new; { struct brotherVisitInfo bfi; bfi.menu = mInfo->menu; bfi.newdef = new; VisitPinnedMenuClients(_setdefault, &bfi); mInfo->menu->buttonDefault = new; SetButton(dpy, mInfo, new, True, False); #ifdef notdef UpdDefaultPtr(mInfo, bindex); #endif } static void handleMenuKeyPress(dpy, pevent) Display *dpy; XEvent *pevent; { int bindex; MenuInfo *mInfo; flDoSetDefault = (pevent->type == KeyPress); mInfo = menuInfoTable[topMenu - 1]; if (! flDoSetDefault) { if (mInfo != NULL && mInfo->litButton != NOBUTTON && isEnabled(mInfo, mInfo->litButton)) { setBrothersDefault(dpy, mInfo, mInfo->litButton); if (lastPress.type == KeyPress) DrawLocCursor(dpy, mInfo, mInfo->litButton, True); } } else { bindex = mInfo->litButton; /* If on PIN, take out push pin and show it as a default */ if (bindex == PINBUTTON) { setMenuPin(dpy, mInfo, False, flDoSetDefault); if (mInfo->ringedButton > NOBUTTON) SetButton(dpy, mInfo, mInfo->ringedButton, False, False); } else if (bindex > NOBUTTON) { if (mInfo->menu->buttonDefault < NOBUTTON) { mInfo->ringedButton = bindex; drawMenuPushpin(dpy, mInfo); } else if (mInfo->menu->buttonDefault > NOBUTTON) { SetButton(dpy, mInfo, mInfo->menu->buttonDefault, False, flDoSetDefault); } if (mInfo->litButton > NOBUTTON) { if (lastPress.type == KeyPress) DrawLocCursor(dpy, mInfo, mInfo->litButton, False); SetButton(dpy, mInfo, mInfo->litButton, False, flDoSetDefault); } SetButton(dpy, mInfo, mInfo->litButton, True, flDoSetDefault); if (lastPress.type == KeyPress) DrawLocCursor(dpy, mInfo, mInfo->litButton, True); } } } static Bool keyEventToItem(dpy, xke) Display *dpy; XKeyEvent *xke; { MenuInfo *mInfo = menuInfoTable[topMenu - 1]; Button *pb; char c; int ct; int best; int i; if (mInfo == NULL) return False; ct = XLookupString(xke, &c, sizeof(c), NULL, NULL); if (ct > 0) { best = NOBUTTON; if (isupper(c)) c = tolower(c); if (c == 'p' && isEnabled(mInfo, PINBUTTON)) best = PINBUTTON; for (i = 0; i < mInfo->menu->buttonCount; i++) { pb = mInfo->menu->buttons[i]; if (pb->enabled && pb->visible && pb->label[pb->which].string) { char t = *pb->label[pb->which].string; if (isupper(t)) t = tolower(t); if (t == c) if (best == NOBUTTON || i > mInfo->litButton) { best = i; if (i > mInfo->litButton) break; } } } if (best == NOBUTTON) best = mInfo->litButton; if (BUTTON_INDEX_OK(mInfo, best)) { if (mInfo->pinIn && isEnabled(mInfo, PINBUTTON)) setMenuPin(dpy, mInfo, False, flDoSetDefault); else if (mInfo->litButton > NOBUTTON) DrawLocCursor(dpy, mInfo, mInfo->litButton, False); else if (mInfo->ringedButton != NOBUTTON) { SetButton(dpy, mInfo, mInfo->menu->buttonDefault, False, False); mInfo->ringedButton = NOBUTTON; } activateButton(dpy, mInfo, best, flDoSetDefault); DrawLocCursor(dpy, mInfo, best, True); return True; } else if (best == PINBUTTON) { DrawLocCursor(dpy, mInfo, mInfo->litButton, False); SetButton(dpy, mInfo, mInfo->litButton, False, False); setMenuPin(dpy, mInfo, True, flDoSetDefault); mInfo->litButton = PINBUTTON; return True; } } return False; } /* * replaces any occurance of any string in sstr found in buff with c */ void ReplaceChars(buff, sstr, rc) char *buff; char *sstr; char rc; { char *p; while ((p = strpbrk(buff, sstr)) != NULL) *p = rc; } static void menuHelpCommand(dpy, xke, closure) Display *dpy; XKeyEvent *xke; void *closure; { int bindex; MenuInfo *mInfo = menuSearch(xke); int status = checkMenuEvent(dpy, mInfo, (XEvent *) xke, &bindex); char helpbuff[255]; char *helpstring; Button *pb; switch (status) { case ML_PIN: helpstring = "olwm:PushPin"; break; case ML_BUTTON: case ML_MENU: case ML_BUTTONDISABLED: if (! BUTTON_INDEX_OK(mInfo, bindex)) { helpstring = mInfo->menu->helpstring; break; } pb = mInfo->menu->buttons[bindex]; helpstring = pb->helpstring[pb->which]; if (helpstring && status == ML_BUTTONDISABLED) { sprintf(helpbuff, "%s_D", helpstring); helpstring = helpbuff; } break; default: helpstring = NULL; } if (helpstring == NULL) { if (mInfo->menu->helpstring != NULL) helpstring = mInfo->menu->helpstring; else if (mInfo->menu->title != NULL) { sprintf(helpbuff, "workspace:%s", mInfo->menu->title); ReplaceChars(helpbuff, " \t", '_'); helpstring = helpbuff; } else helpstring = "workspace:NoHelp"; } menuHide(dpy, closure, False); (void) ShowHelpWindow(mInfo->menuWin->core.client->screen, xke->x_root, xke->y_root, helpstring); #ifdef DEBUG fprintf(stderr, "help: %s\n", helpstring); #endif } Bool /* ARGSUSED */ MenuHandleKeyEvent(dpy, pevent, win, closure) Display *dpy; XEvent *pevent; WinGeneric *win; WinGeneric *closure; { SemanticAction a; MenuInfo *mInfo; int bindex; Bool lastGood = True; Bool rval = False; if (FindModifierMask(pevent->xkey.keycode) == ModMaskMap[MOD_SETDEFAULT]) { handleMenuKeyPress(dpy, pevent); return False; } if (pevent->type == KeyRelease) return False; if (GRV.Mouseless == KbdSunView || mouselessSuspended) return False; /*mouseless not turned on*/ a = FindKeyboardAction(dpy, pevent); switch (a) { case ACTION_SELECT: case ACTION_EXEC_DEFAULT: mInfo = menuInfoTable[topMenu - 1]; bindex = NOBUTTON; if (mInfo->litButton == NOBUTTON) { bindex = mInfo->menu->buttonDefault; if (isEnabled(mInfo, bindex)) { mInfo->litButton = bindex; SetButton(dpy, mInfo, mInfo->litButton, True, False); XFlush(dpy); /*for effect...*/ } } menuHide(dpy, closure, True); break; case ACTION_UP: case ACTION_DOWN: case ACTION_RIGHT: mInfo = menuInfoTable[topMenu - 1]; if (menuHandleUpDownMotion(dpy, pevent, mInfo)) { rval = True; break; } break; case ACTION_LEFT: case ACTION_STOP: if (topMenu <= 1) { menuHide(dpy, closure, False); } else { mInfo = menuInfoTable[topMenu - 1]; UnmapMenuWindow(dpy, mInfo->menuWin); --topMenu; mInfo = menuInfoTable[topMenu - 1]; mInfo->childActive = False; DrawLocCursor(dpy, mInfo, mInfo->litButton, True); /* got rid of a submenu, there's only the pinned menu left, * and it's the one that initiated these mouseless operations, * so we want to uninstall the interposer, and ungrab the server */ if (topMenu == 1 && mInfo->menuWin->core.kind == WIN_PINMENU) { if (GRV.ServerGrabs) XUngrabServer(dpy); XUngrabPointer(dpy, CurrentTime); XUngrabKeyboard(dpy, CurrentTime); XFlush(dpy); UninstallInterposer(); } } break; case ACTION_NONE: if (! keyEventToItem(dpy, (XKeyEvent *) pevent)) KeyBeep(dpy, pevent); break; case ACTION_HELP: menuHelpCommand(dpy, (XKeyEvent *) pevent, closure); break; default: lastGood = False; } if (lastGood) lastPress = *pevent; return rval; } /* * eventX, eventY, eventTime * * Extract the xroot, yroot, or timestamp fields from an event, assuming it's * a MotionNotify, ButtonPress, or ButtonRelease. */ #define eventX(e) ((e)->type == MotionNotify ? (e)->xmotion.x_root \ : (e)->xbutton.x_root ) #define eventY(e) ((e)->type == MotionNotify ? (e)->xmotion.y_root \ : (e)->xbutton.y_root ) #define eventTime(e) ((e)->type == MotionNotify ? (e)->xmotion.time \ : (e)->xbutton.time ) /* * menuTracker * Event interposer for menu tracking. */ /*ARGSUSED*/ int MenuTrack(dpy, pevent, win, closure) Display *dpy; XEvent *pevent; WinGeneric *win; WinGeneric *closure; { MenuInfo *mInfo = menuInfoTable[topMenu - 1]; XEvent nextevent; switch (pevent->type) { case KeyRelease: case KeyPress: (void) MenuHandleKeyEvent(dpy, pevent, win, closure); break; case ButtonPress: if (lastPress.type == KeyPress) { if (isEnabled(mInfo, PINBUTTON)) setMenuPin(dpy, mInfo, False, False); if (isEnabled(mInfo, mInfo->litButton)) { DrawLocCursor(dpy, mInfo, mInfo->litButton, False); /* force redraw of that item */ if (mInfo->litButton == mInfo->ringedButton) mInfo->ringedButton = NOBUTTON; SetButton(dpy, mInfo, mInfo->litButton, True, flDoSetDefault); } } lastPress = *pevent; if (menuHandlePress(dpy, pevent)) menuHide(dpy, closure, False); break; case ButtonRelease: if (!AllButtonsUp(pevent)) break; /* * if the control key is down, then don't * allow anything to execute, but make sure * that the default item is set for the top menu * REMIND: should maybe we be wanting to do that * thing with showing the defaults for all previous menus? * if so, then shouldn't SetBrothersDefault set the parents * defaults as well? No, probably not, but still, we might * want to set the parents defaults somehow on an * {key,button}up */ if (menuHandleRelease(dpy, pevent)) { if (flDoSetDefault && BUTTON_INDEX_OK(mInfo, mInfo->litButton) && isEnabled(mInfo, mInfo->litButton)) setBrothersDefault(dpy, mInfo, mInfo->litButton); menuHide(dpy, closure, ! flDoSetDefault); } lastPress = *pevent; /*need to resync it*/ break; case MotionNotify: if (!pevent->xmotion.same_screen) break; /* * Motion compression. If the next event is a MotionNotify, * ignore this one. */ if (XEventsQueued(dpy, QueuedAfterReading) > 0 && (XPeekEvent(dpy, &nextevent), nextevent.type == MotionNotify)) break; menuHandleMotion(dpy, pevent); break; case Expose: mInfo = menuSearch(pevent); if (mInfo == NULL) return DISPOSE_DISPATCH; if (mInfo->ignoreNextExpose) mInfo->ignoreNextExpose = False; else { DrawMenu(dpy, mInfo); if (mInfo->litButton != NOBUTTON) SetButton(dpy, mInfo, mInfo->litButton, True, flDoSetDefault); if (mInfo->pinIn) { /* * REMIND This is a trifle odd. We have to set pinIn to False * because setMenuPin does nothing if pinIn already equals the * value we're setting it to. The alternative is to code a * call to olgx_draw_pushpin here, which is worse. */ mInfo->pinIn = False; setMenuPin(dpy, mInfo, True, flDoSetDefault); } } break; default: return DISPOSE_DEFER; } /* for pointer events, save the event location */ switch (pevent->type) { case MotionNotify: if (! pevent->xmotion.same_screen) break; /*fallthrough*/ case ButtonPress: case ButtonRelease: lastX = eventX(pevent); lastY = eventY(pevent); break; default: break; } return DISPOSE_USED; } SemanticAction MenuMouseAction(dpy, pevent, mask) Display *dpy; XEvent *pevent; long mask; { SemanticAction a; a = ResolveMouseBinding(dpy, pevent, mask); if (GRV.SelectDisplaysMenu && a == ACTION_SELECT) a = ACTION_MENU; return a; } static void getMenuDim(mInfo, prect) MenuInfo *mInfo; XRectangle *prect; { WinGeneric *win; if (mInfo->menuWin->core.kind == WIN_MENU) win = mInfo->menuWin; else win = mInfo->menuWin->core.parent; prect->x = win->core.x; prect->y = win->core.y; if (mInfo->menuWin->core.kind != WIN_MENU) { int xoff = mInfo->menuWin->core.x; int yoff = mInfo->menuWin->core.y; prect->x += xoff; prect->y += yoff; prect->width = mInfo->menuWin->core.width; prect->height = mInfo->menuWin->core.height; } else { prect->width = win->core.width; prect->height = win->core.height; } } static Bool inMenuDent(mInfo, bindex, pevent) MenuInfo *mInfo; int bindex; XEvent *pevent; { int curX; Graphics_info *gisNormal; Graphics_info *gisButton; XRectangle menuDim; if (BUTTON_INDEX_OK(mInfo, bindex)) { switch (pevent->type) { case MotionNotify: if (pevent->xmotion.same_screen) { curX = pevent->xmotion.x_root; } break; case ButtonPress: case ButtonRelease: curX = pevent->xbutton.x_root; break; default: return False; } gisNormal = WinGI(mInfo->menuWin, NORMAL_GINFO); gisButton = WinGI(mInfo->menuWin, BUTTON_GINFO); getMenuDim(mInfo, &menuDim); if (curX > menuDim.x + mInfo->buttons[bindex].buttonX + mInfo->maxbuttonWidth - ButtonEndcap_Width(gisButton) - MenuMark_Width(gisNormal)) { return True; } } return False; } static Bool menuHandlePress(dpy, pevent) Display *dpy; XEvent *pevent; { int bindex; int status; MenuInfo *mInfo; flDoSetDefault = (pevent->xbutton.state & ModMaskMap[MOD_SETDEFAULT]); mInfo = menuSearch(pevent); status = checkMenuEvent(dpy, mInfo, pevent, &bindex); mInfo->action = MenuMouseAction(dpy, pevent, ModMaskMap[MOD_SETDEFAULT]); if (mInfo->action != ACTION_SELECT && mInfo->action != ACTION_MENU) return False; if (isClick(&lastPress, pevent)) SetClickMode(True); switch (status) { case ML_OFFMENU: return True; case ML_PIN: unmapChildren(dpy, mInfo); setMenuPin(dpy, mInfo, True, flDoSetDefault); break; case ML_BUTTON: case ML_BUTTONDISABLED: /*remove the default ring */ if (! flDoSetDefault) { if (mInfo->ringedButton != NOBUTTON) { SetButton(dpy, mInfo, mInfo->menu->buttonDefault, False, False); mInfo->ringedButton = NOBUTTON; } } unmapChildren(dpy, mInfo); minX = eventX(pevent); /*FALL THROUGH*/ default: if (isEnabled(mInfo, mInfo->litButton)) { DrawLocCursor(dpy, mInfo, mInfo->litButton, False); /* force redraw of that item */ if (mInfo->litButton == mInfo->ringedButton) mInfo->ringedButton = NOBUTTON; SetButton(dpy, mInfo, mInfo->litButton, True, flDoSetDefault); } activateButton(dpy, mInfo, bindex, flDoSetDefault); if (mInfo->action == ACTION_MENU || inMenuDent(mInfo, bindex, pevent)) activateSubMenu(dpy, mInfo, bindex, pevent->xbutton.x_root); break; } return False; } static void menuHandleMotion(dpy, pevent) Display *dpy; XEvent *pevent; { XRectangle menuDim; int status; int bindex; int curX; int deltaX; Bool samebutton; int i; Graphics_info *gisNormal; Graphics_info *gisButton; MenuInfo *mInfo; int menuX; mInfo = menuSearch(pevent); if (mInfo == NULL) return; gisNormal = WinGI(mInfo->menuWin, NORMAL_GINFO); gisButton = WinGI(mInfo->menuWin, BUTTON_GINFO); status = checkMenuEvent(dpy, mInfo, pevent, &bindex); if (mInfo->action != ACTION_SELECT && mInfo->action != ACTION_MENU) return; if (lastPress.type == KeyPress && ! flDoSetDefault) { if (isEnabled(mInfo, mInfo->litButton)) { DrawLocCursor(dpy, mInfo, mInfo->litButton, False); drawRevButton(dpy, mInfo, mInfo->litButton); } } if (! isClick(&lastPress, pevent)) SetClickMode(False); /*for window buttons*/ /* * If the push pin was in before and this event is not a ML_PIN event, put * the pin back out because we are no longer in the pin area. */ if (isEnabled(mInfo, PINBUTTON)) if ((mInfo->pinIn) && (status != ML_PIN)) setMenuPin(dpy, mInfo, False, flDoSetDefault); /* * I know this is a kludge, but i need it. I want to remove the ring around * the default item at this point. */ if ((!flDoSetDefault && (status == ML_BUTTON)) || (status == ML_PIN)) { if (mInfo->ringedButton != NOBUTTON) { SetButton(dpy, mInfo, mInfo->menu->buttonDefault, False, False); mInfo->ringedButton = NOBUTTON; } } switch (status) { case ML_BUTTONDISABLED: #if false activateButton(dpy, mInfo, NOBUTTON, flDoSetDefault); break; #endif case ML_BUTTON: samebutton = (bindex == mInfo->litButton); if (mInfo->childActive && ! samebutton) { unmapChildren(dpy, mInfo); if (mInfo->litButton > NOBUTTON && flDoSetDefault) SetButton(dpy, mInfo, mInfo->litButton, False, False); } curX = pevent->xmotion.x_root; activateButton(dpy, mInfo, bindex, flDoSetDefault); getMenuDim(mInfo, &menuDim); menuX = menuDim.x; if (BUTTON_INDEX_OK(mInfo, bindex)) if (mInfo->menu->buttons[bindex]->has_submenu) { if (samebutton) { deltaX = curX - minX; minX = MIN(curX, minX); } else { deltaX = curX - MAX(lastX, menuX); minX = MIN(curX, lastX); } if ((deltaX > GRV.DragRightDistance) || (curX > (menuX + mInfo->buttons[bindex].buttonX + mInfo->maxbuttonWidth - ButtonEndcap_Width(gisButton) - MenuMark_Width(gisNormal)))) { (void) activateSubMenu(dpy, mInfo, bindex, pevent->xmotion.x_root); minX = curX; } } break; case ML_PIN: setMenuPin(dpy, mInfo, True, flDoSetDefault); if (mInfo->childActive) { unmapChildren(dpy, mInfo); if (mInfo->litButton > NOBUTTON && flDoSetDefault) SetButton(dpy, mInfo, mInfo->litButton, False, False); } activateButton(dpy, mInfo, PINBUTTON, flDoSetDefault); break; case ML_MENU: case ML_OFFMENU: if (mInfo->childActive) unmapChildren(dpy, mInfo); activateButton(dpy, mInfo, NOBUTTON, flDoSetDefault); break; } /* End switch */ /* * Pull down all menus to the right of the current mouse position, except * for the initial menu. */ i = topMenu - 1; while (i > 0) { XRectangle menuDim; getMenuDim(menuInfoTable[i], &menuDim); if (menuDim.x < pevent->xmotion.x_root) break; --i; } if (i < topMenu - 1) { mInfo = menuInfoTable[i]; unmapChildren(dpy, mInfo); topMenu = i + 1; status = checkMenuEvent(dpy, mInfo, pevent, &bindex); if (status != ML_BUTTON) { activateButton(dpy, mInfo, NOBUTTON, flDoSetDefault); } else { /*right now, nothing should be depressed */ activateButton(dpy, mInfo, bindex, flDoSetDefault); } } } static Bool isEnabled(mInfo, item) MenuInfo *mInfo; int item; { Button *pb; if (item > NOBUTTON) { pb = mInfo->menu->buttons[item]; return BUTTON_INDEX_OK(mInfo, item) && pb->enabled && pb->visible; } if (item == PINBUTTON) { return ( mInfo->menu->hasPushPin && mInfo->pinnedBrother == NULL && mInfo->origmenuInfo == NULL); } return False; } static Bool alldisabled(mInfo) MenuInfo *mInfo; { Bool good; int i; good = isEnabled(mInfo, PINBUTTON); for (i = 0; i < mInfo->menu->buttonCount && ! good; i++) good = isEnabled(mInfo, i); return ! good; } /* * {next,prev}Item are slightly recursive; they rely on themselves to do * the right thing */ static int nextItem(mInfo, item) MenuInfo *mInfo; int item; { if (alldisabled(mInfo)) return item; item++; if (item == NOBUTTON) /*came off of pushpin*/ item = 0; if (item == mInfo->menu->buttonCount) item = PINBUTTON; if (isEnabled(mInfo, item)) return item; return nextItem(mInfo, item); } static int prevItem(mInfo, item) MenuInfo *mInfo; int item; { if (alldisabled(mInfo)) return item; item--; if (item == NOBUTTON) item = PINBUTTON; if (item < PINBUTTON) item = mInfo->menu->buttonCount - 1; if (isEnabled(mInfo, item)) return item; return prevItem(mInfo, item); } static Bool menuHandleUpDownMotion(dpy, pevent, mInfo) Display *dpy; XEvent *pevent; MenuInfo *mInfo; { int status; int bindex; static int (*bumpIndex[])() = {prevItem, nextItem}; if (mInfo == NULL) return False; status = FindKeyboardAction(dpy, pevent); if (mInfo->litButton == NOBUTTON) mInfo->litButton = mInfo->menu->buttonDefault; if (status == ACTION_NONE) return False; /* * If the push pin was in before put the pin back out because we are no * longer in the pin area. */ if (mInfo->pinIn && isEnabled(mInfo, PINBUTTON)) setMenuPin(dpy, mInfo, False, flDoSetDefault); switch (status) { case ACTION_UP: case ACTION_DOWN: #ifndef lint assert(ACTION_UP == ACTION_DOWN - 1); #endif bindex = (*bumpIndex[status - ACTION_UP])(mInfo, mInfo->litButton); if (bindex != mInfo->litButton) { assert(isEnabled(mInfo, bindex)); DrawLocCursor(dpy, mInfo, mInfo->litButton, False); /* One kludge leads to another */ if (mInfo->ringedButton != NOBUTTON) { SetButton(dpy, mInfo, mInfo->menu->buttonDefault, 0, 0); mInfo->ringedButton = NOBUTTON; } if (mInfo->childActive) unmapChildren(dpy, mInfo); if (bindex != PINBUTTON) activateButton(dpy, mInfo, bindex, flDoSetDefault); else { setMenuPin(dpy, mInfo, True, flDoSetDefault); activateButton(dpy, mInfo, PINBUTTON, flDoSetDefault); } DrawLocCursor(dpy, mInfo, bindex, True); } break; case ACTION_RIGHT: bindex = mInfo->litButton; if (BUTTON_INDEX_OK(mInfo, bindex) && mInfo->menu->buttons[bindex]->has_submenu == 1) { int menuat; DrawLocCursor(dpy, mInfo, bindex, False); drawRevButton(dpy, mInfo, bindex); if (mInfo->menuWin->core.kind == WIN_MENU) menuat = mInfo->menuX + mInfo->menuWidth; else { WinGenericFrame *parent = (WinGenericFrame *) mInfo->menuWin->core.parent; assert(parent); menuat = parent->core.x + parent->core.width - LOC_CURSOR_SIZE; } activateSubMenu(dpy, mInfo, bindex, menuat); return True; } break; } /* End switch */ return False; } /* * menuHandleRelease * * Handles ButtonRelease events. Return value indicates whether the menu * stack should taken down. */ static Bool menuHandleRelease(dpy, pevent) Display *dpy; XEvent *pevent; { int bindex; int status; MenuInfo *mInfo; Bool setClick = False; mInfo = menuSearch(pevent); if (menuTrackMode == MODE_DRAG) { return True; } else { if (isClick(&lastPress, pevent)) { SetClickMode(True); /*for window buttons*/ setClick = True; } switch (mInfo->action) { case ACTION_SELECT: return True; /*always return true on SELECT*/ case ACTION_MENU: status = checkMenuEvent(dpy, mInfo, pevent, &bindex); switch (status) { case ML_PIN: return True; case ML_BUTTONDISABLED: return True; case ML_BUTTON: if (mInfo->litButton != NOBUTTON) return True; /*fall through*/ default: return ! setClick; } /*switch(status)*/ default: return False; } } } /* * menuSearch * * Given an event, search the stack of active menus for the menu on which this * event occurred. The event must be a ButtonPress, ButtonRelease, * MotionNotify, or Expose event. If the event didn't occur on any of the * menus, for the pointer events, the topmost menu in the stack is returned. * Otherwise, zero is returned. */ static MenuInfo * menuSearch(event) XEvent *event; { Window w = 0; int i; switch (event->type) { case KeyPress: case KeyRelease: w = event->xkey.subwindow; break; case ButtonPress: case ButtonRelease: w = event->xbutton.subwindow; if (w == None) w = event->xbutton.window; break; case MotionNotify: if (event->xmotion.same_screen) { w = event->xmotion.subwindow; if (w == None) w = event->xbutton.window; } break; case Expose: w = event->xexpose.window; break; default: fputs(GetString("olvwm: wrong event type passed to menuSearch\n"), stderr); return (MenuInfo *) 0; } for (i = topMenu - 1; i >= 0; --i) { if (w == menuInfoTable[i]->menuWin->core.self) return menuInfoTable[i]; } return (event->type == Expose) ? (MenuInfo *) 0 : menuInfoTable[topMenu - 1]; } /* * checkMenuEvent * * Check a button or motion event against a menu. Sets the index of the * active button (or to NOBUTTON) and returns the pointer location: * ML_BUTTON, ML_PIN, ML_MENU, or ML_OFFMENU. */ static MenuLocation checkMenuEvent(dpy, menuInfo, pevent, bindex) Display *dpy; MenuInfo *menuInfo; XEvent *pevent; int *bindex; { int i; int yoff = 0; Window hitwindow = 0; int ex, ey; Graphics_info *gisNormal = WinGI(menuInfo->menuWin, NORMAL_GINFO); int rx, ry; XRectangle menuDim; /* menu->title == NULL for pinned menus, as well as title-less ones */ if (menuTitle(menuInfo) != NULL) yoff = menuInfo->titleHeight; else yoff = HEAD_VSPACE; switch (pevent->type) { case MotionNotify: if (pevent->xmotion.same_screen) { hitwindow = pevent->xmotion.window; ex = pevent->xmotion.x; ey = pevent->xmotion.y; rx = pevent->xmotion.x_root; ry = pevent->xmotion.y_root; } break; case ButtonPress: case ButtonRelease: hitwindow = pevent->xbutton.window; ex = pevent->xbutton.x; ey = pevent->xbutton.y; rx = pevent->xbutton.x_root; ry = pevent->xbutton.y_root; break; case KeyPress: case KeyRelease: hitwindow = menuInfo->menuWin->core.self; ex = pevent->xkey.x_root - menuInfo->menuX; ey = pevent->xkey.y_root - menuInfo->menuY; rx = pevent->xkey.x_root; ry = pevent->xkey.y_root; break; } /* If the event window is not the menu window. */ if (hitwindow != menuInfo->menuWin->core.self) { if (hitwindow != None) { XTranslateCoordinates(dpy, hitwindow, menuInfo->menuWin->core.self, ex, ey, &ex, &ey, &hitwindow); } else { *bindex = NOBUTTON; return ML_OFFMENU; } } getMenuDim(menuInfo, &menuDim); if (! PointInRect(rx, ry, menuDim.x, menuDim.y, menuDim.width, menuDim.height)) return ML_OFFMENU; /* * Check the event coordinates against each of the buttons. Since the * button event is reported relative to root window it must be adjusted for * the check. */ for (i = 0; i < menuInfo->menu->buttonCount; i++) { /*button is invisible; it has no entry*/ if (menuInfo->buttons[i].button == NULL) continue; if (PointInRect(ex, ey, menuInfo->buttons[i].buttonX, menuInfo->buttons[i].buttonY + yoff, menuInfo->maxbuttonWidth, menuInfo->buttons[i].buttonHeight)) { /* * Event is in a button. Is it a button submenu and if so, is it in * the right half of the button? */ *bindex = i; if (menuInfo->buttons[i].button->enabled) return ML_BUTTON; else return ML_BUTTONDISABLED; #ifdef notdef if ((menuInfo->buttons[i].button->sub_menu) && ((ex - menuInfo->menuX) > (menuInfo->menuWidth / 2))) return S_ACTIVATE; else return S_ONBUTTON; #endif /* notdef */ } } /* Check the pushpin area. */ *bindex = NOBUTTON; if (isEnabled(menuInfo, PINBUTTON) && PointInRect(ex, ey, menuInfo->pushPinX, menuInfo->pushPinY, PushPinOut_Width(gisNormal), PUSHPINHEIGHT(gisNormal))) return ML_PIN; return ML_MENU; } /* * menuHide * * Remove any active menus from the screen, and call the menu callback * function as necessary. */ static void menuHide(dpy, winInfo, fldoit) Display *dpy; WinGeneric *winInfo; Bool fldoit; { int i; MenuInfo *mInfo = menuInfoTable[topMenu - 1]; int item = mInfo->litButton; /* * reinstall the locked colormap, if we saved it */ if (prevColorFocusWindow != NULL) { InstallColormap(dpy, prevColorFocusWindow); prevColorFocusWindow = NULL; } if (GRV.ServerGrabs) XUngrabServer(dpy); /* Unmap any active menus. */ for (i = topMenu - 1; i >= 0; --i) { MenuInfo *mi = menuInfoTable[i]; WinGeneric *menuWin = mi->menuWin; if (menuWin->core.kind == WIN_MENU) UnmapMenuWindow(dpy, menuWin); else { DrawLocCursor(dpy, mi, mi->litButton, False); SetButton(dpy, mi, mi->litButton, False, False); } mi->litButton = NOBUTTON; } XUngrabPointer(dpy, CurrentTime); XUngrabKeyboard(dpy, CurrentTime); EnableInterposerDelegation(); /* * need to sync before calling the proc, * because the proc's purpose might be to * destroy all pinned menus! */ if (syncFunc != NULL) (*syncFunc) (syncInfo); if (fldoit) { if (mInfo->pinIn && isEnabled(mInfo, PINBUTTON)) { (void) MakePinMenu(dpy, winInfo, mInfo); } else { if (item != NOBUTTON && mInfo) ExecButtonAction(dpy, winInfo, mInfo, item); } } if (InterposerInstalled() == MenuTrack) UninstallInterposer(); } static void unmapChildren(dpy, mInfo) Display *dpy; MenuInfo *mInfo; { int i; i = topMenu - 1; while (i >= 0 && menuInfoTable[i]->menu != mInfo->menu) { UnmapMenuWindow(dpy, menuInfoTable[i]->menuWin); --i; } topMenu = i + 1; #ifdef DEBUG if (i < 0) fputs("olvwm: warning, internal error in unmapChildren!\n", stderr); #endif /* DEBUG */ mInfo->childActive = False; } static void activateButton(dpy, mInfo, idx, flsetdefault) Display *dpy; MenuInfo *mInfo; int idx; Bool flsetdefault; { if (mInfo->litButton == idx) return; /* Unhighlight any highlit button. */ if (mInfo->litButton > NOBUTTON) { if (isEnabled(mInfo, mInfo->litButton)) { /* otherwise, it's a seperator or disabled item and we don't * need to do anything with it */ SetButton(dpy, mInfo, mInfo->litButton, False, flsetdefault); SetButton(dpy, mInfo, mInfo->litButton, False, False); } } else if (mInfo->litButton == PINBUTTON && isEnabled(mInfo, PINBUTTON)) { int oldstate; /* setMenuPin is too restrictive */ oldstate = mInfo->pinIn; mInfo->pinIn = True; setMenuPin(dpy, mInfo, False, False); mInfo->pinIn = oldstate; } /* Highlight the new button */ if (idx > NOBUTTON) SetButton(dpy, mInfo, idx, True, flsetdefault); else SetButton(dpy, mInfo, mInfo->menu->buttonDefault, True, True); mInfo->litButton = idx; } static void setMenuPin(dpy, mInfo, state, flsetdefault) Display *dpy; MenuInfo *mInfo; Bool state; int flsetdefault; { GC windowGC = WinGC(mInfo->menuWin, WINDOW_GC); Graphics_info *gisNormal = WinGI(mInfo->menuWin, NORMAL_GINFO); Window win = mInfo->menuWin->core.self; int olgx_flags; if (mInfo->pinIn != state) { mInfo->pinIn = state; #ifdef DEBUG if (! isEnabled(mInfo, PINBUTTON)) fprintf(stderr, "trying to set disabled pin!\n"); #endif XFillRectangle(dpy, win, windowGC, mInfo->pushPinX, mInfo->pushPinY, PushPinOut_Width(gisNormal), PUSHPINHEIGHT(gisNormal)); if (((mInfo->menu->buttonDefault == PINBUTTON) && !state) || flsetdefault) olgx_flags = OLGX_DEFAULT | OLGX_PUSHPIN_OUT; else olgx_flags = (state ? OLGX_PUSHPIN_IN : OLGX_PUSHPIN_OUT); olgx_draw_pushpin(gisNormal, win, mInfo->pushPinX, mInfo->pushPinY, olgx_flags); } } /* * activateSubMenu * * Given a MenuInfo struct and a button, activate that button's submenu. * It's assumed that the button actually has a submenu. Note that only the * x-location is passed in, while the y-location is calculated. The reason is * that the x-location is determined by the mouse event, while the y-location * is always based the location of the parent menu. If a submenu is already * active, do nothing. This is primarily to prevent the same submenu from * being activated again. This occurs if a submenu is much narrower than its * parent, and you pull off the right of the submenu back into the parent. */ static void activateSubMenu(dpy, mInfo, bindex, x) Display *dpy; MenuInfo *mInfo; int bindex; int x; { MenuInfo *subMenu; MenuCache *menuCache = mInfo->menuWin->core.client->scrInfo->menuCache; int ypos; FuncPtr generate; if (!mInfo->childActive && BUTTON_INDEX_OK(mInfo, bindex) && (generate = mInfo->buttons[bindex].button->generate_func)) (*generate)(dpy, mInfo, bindex, menuCache, mInfo->menuWin, mInfo->depth + 1); if (!mInfo->childActive && BUTTON_INDEX_OK(mInfo, bindex) && mInfo->buttons[bindex].subMenu) { subMenu = mInfo->buttons[bindex].subMenu; if (subMenu->menu->buttonCount == 0) return; mInfo->childActive = True; subMenu->menuWin = (WinGeneric *) menuCache->menuWinList[topMenu]; menuInfoTable[topMenu++] = subMenu; subMenu->childActive = False; subMenu->pinIn = False; subMenu->litButton = NOBUTTON; subMenu->ringedButton = subMenu->menu->buttonDefault; if (mInfo->menuWin->core.kind == WIN_MENU) { ypos = mInfo->menuY; if (menuTitle(mInfo) == NULL) ypos += HEAD_VSPACE; else ypos += mInfo->titleHeight; } else { WinGenericFrame *parent = (WinGenericFrame *) mInfo->menuWin->core.parent; assert(parent); ypos = mInfo->menuWin->core.y + HEAD_VSPACE; ypos += parent->core.y; } ypos += mInfo->buttons[bindex].buttonY; showMenu(dpy, subMenu, x - MENU_HORIZ_OFFSET, ypos, True); } } void DrawLocCursor(dpy, mInfo, bindex, fldraw) Display *dpy; MenuInfo *mInfo; int bindex; Bool fldraw; { Window wid = mInfo->menuWin->core.self; int y; XPoint Pt[3]; Button *pb; /* * REMIND: * we don't draw the location cursor for the pushpin */ if (! BUTTON_INDEX_OK(mInfo, bindex)) return; pb = mInfo->buttons[bindex].button; if (pb == NULL || pb->label[pb->which].kind == NoType) return; if (menuTitle(mInfo) != NULL) y = mInfo->titleHeight; else y = HEAD_VSPACE; y += (mInfo->buttons[bindex].buttonY + (mInfo->buttons[bindex].buttonHeight / 2)); Pt[0].x = 6 + 11; Pt[0].y = y; Pt[1].x = -11; Pt[1].y = -6; Pt[2].x = 0; Pt[2].y = 12; if (fldraw && bindex != PINBUTTON) XFillPolygon(dpy, wid, WinGC(mInfo->menuWin, FOREGROUND_GC), Pt, 3, Convex, CoordModePrevious); else XFillPolygon(dpy, wid, WinGC(mInfo->menuWin, WINDOW_GC), Pt, 3, Convex, CoordModePrevious); } /* * drawCommonButton * * Draw either a normal or inverted button. */ /* ARGSUSED */ static void drawCommonButton(dpy, menuInfo, idx, fDefault, fInverse) Display *dpy; MenuInfo *menuInfo; int idx; Bool fDefault; Bool fInverse; { Button *pb; ButtonInfo *bi; WinGeneric *winInfo = menuInfo->menuWin; int state; void *label; int marktype; int columnWidth; #ifdef OLGX_LABEL_IS_COMB Comblabel combLabel; #endif if (! BUTTON_INDEX_OK(menuInfo, idx)) return; bi = &menuInfo->buttons[idx]; pb = menuInfo->buttons[idx].button; if (pb == NULL) return; /* don't invert disabled buttons */ if (fInverse && ! pb->enabled) return; /* * Calculate the column offset -- columnwidht * currentcolumn */ columnWidth = menuInfo->menuWidth / menuInfo->menu->btnPerCol; columnWidth *= (idx / menuInfo->menu->btnPerCol); state = OLGX_ERASE | OLGX_MENU_ITEM; if (fInverse) state |= OLGX_INVOKED; else state |= OLGX_NORMAL; if (! pb->enabled) state |= OLGX_INACTIVE; else /* don't let default buttons have rings */ if (fDefault) state |= OLGX_DEFAULT; if (pb->label[pb->which].kind == StringLabel) label = pb->label[pb->which].string; #ifdef OLGX_LABEL_IS_COMB else if (pb->label[pb->which].kind == ComboLabel) { label = &combLabel; combLabel.pixlabel = *(pb->label[pb->which].pixlabel); combLabel.strlabel = pb->label[pb->which].string; state |= OLGX_LABEL_IS_COMB; } #endif else if (pb->label[pb->which].kind == ImageLabel) { label = pb->label[pb->which].pixlabel; state |= OLGX_LABEL_IS_PIXMAP; } #if defined(SVR4) || defined(XVIEW32) if (menuInfo->hasAccelerators) { if (pb->has_submenu) marktype = OLGX_HORIZ_MENU_MARK; else if (bi->has_meta_mark) marktype = OLGX_DIAMOND_MARK; else marktype = 0; olgx_draw_accel_button( WinGI(winInfo, BUTTON_GINFO), winInfo->core.self, bi->buttonX, bi->buttonY + menuInfo->buttonOffset, menuInfo->maxbuttonWidth, 0, label, MainLabel_Pos(WinGI(winInfo, BUTTON_GINFO), bi->buttonX), bi->accel_modifier, menuInfo->accModPos + columnWidth, marktype, menuInfo->buttonMarkPos + columnWidth, bi->accel_key, menuInfo->accKeyPos + columnWidth, NULL, state | TextOLGX); } else #endif { if (pb->has_submenu) state |= OLGX_HORIZ_MENU_MARK; olgx_draw_button(WinGI(winInfo, BUTTON_GINFO), winInfo->core.self, bi->buttonX, bi->buttonY + menuInfo->buttonOffset, menuInfo->maxbuttonWidth, (menuInfo->buttons[idx].framed) ? menuInfo->buttons[idx].buttonHeight : 0, label, state | TextOLGX); } } /* Draw a normal button. * if fDefault is true, a default ring will be drawn. */ /*ARGSUSED*/ static void drawButton(dpy, menuInfo, idx, fDefault) Display *dpy; MenuInfo *menuInfo; int idx; Bool fDefault; { drawCommonButton(dpy, menuInfo, idx, fDefault, False); } /* * drawRevButton - Draw a reverse video button. */ /*ARGSUSED*/ static void drawRevButton(dpy, menuInfo, idx) Display *dpy; MenuInfo *menuInfo; int idx; { drawCommonButton(dpy, menuInfo, idx, False, True); } /* * isClick * * Takes two button events and returns a boolean indicating whether they are * close enough (spacially and temporally) to be considered a click. */ #define THRESH_DIST 5 static Bool isClick(e1, e2) XEvent *e1; XEvent *e2; { return ( ABS(eventX(e1) - eventX(e2)) <= GRV.ClickMoveThreshold && ABS(eventY(e1) - eventY(e2)) <= GRV.ClickMoveThreshold && eventTime(e2) - eventTime(e1) <= GRV.DoubleClickTime ); } /********************************************************************************/ void SetMenuDefault(pmenu, def) Menu *pmenu; int def; { pmenu->buttonDefault = def; } Menu * NewNamedMenu(name, flpin, help) Text *name; Bool flpin; char *help; { Menu *pmenu = MemNew(Menu); if (pmenu != NULL) { pmenu->title = name; pmenu->buttons = NULL; pmenu->buttonCount = 0; pmenu->buttonDefault = 0; pmenu->hasPushPin = flpin; pmenu->helpstring = help; pmenu->menudirty = True; pmenu->wantAccelerators = True; } return pmenu; } Bool AppendMenuItem(pmenu, pitem) Menu *pmenu; Button *pitem; { if (pmenu == NULL) return False; if (pmenu->buttonCount++ == 0) pmenu->buttons = (Button **) MemNew(Button **); else pmenu->buttons = (Button **) MemRealloc(pmenu->buttons, (pmenu->buttonCount * sizeof(Button **))); if (pmenu->buttons == NULL) return False; pmenu->buttons[pmenu->buttonCount - 1] = pitem; pmenu->menudirty = True; return True; } /* * caveat: aren't overly useful, since you may have a button used in * multiple menus, in which case the second menu may never get dirtied * so you have to handle those special cases [look in GetEnabledMenu()] */ void SetMenuHier(pmenu, itemno, phier) Menu *pmenu; int itemno; Menu *phier; { Button *pb = pmenu->buttons[itemno]; if (pb->action.submenu != phier) { pmenu->menudirty = True; pb->action.submenu = phier; pb->has_submenu = (phier != NULL); } } void _ToggleEnabled(pmenu, itemno, flenabled) Menu *pmenu; int itemno; Bool flenabled; { ToggleEnabled(pmenu, itemno, flenabled); } void _ToggleItem(pmenu, itemno, which) Menu *pmenu; int itemno; int which; { ToggleItem(pmenu, itemno, which); } void _ToggleVisible(pmenu, itemno, visible) Menu *pmenu; int itemno; int visible; { ToggleVisible(pmenu, itemno, visible); } void _SetMenuTitle(pmenu, s) Menu *pmenu; Text *s; { SetMenuTitle(pmenu, s); } void _DirtyMenu(pmenu) Menu *pmenu; { DirtyMenu(pmenu); } Menu * CreateMenu(name, barray, ctbuttons, flpin, help) Text *name; Button **barray; /*array of button pointers*/ int ctbuttons; Bool flpin; char *help; { Menu *new = NewNamedMenu(name, flpin, help); if (new != NULL) { new->buttonCount = ctbuttons; new->buttons = (Button **) MemAlloc(ctbuttons * sizeof(Button **)); memcpy((void *) new->buttons, (void *) barray, ctbuttons * sizeof(Button **)); } return new; } /********************************************************************************/ /* * InitScreenMenus */ MenuCache * InitScreenMenus(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { MenuCache *menuCache; int index, maxDepth; menuCache = MemNew(MenuCache); menuCache->maxSlots = 40; /*intial size*/ menuCache->nextSlot = 0; menuCache->menuInfoList = (MenuInfo **) MemAlloc(sizeof(MenuInfo) * menuCache->maxSlots); for (index = 0; index < (int) NUM_MENUS; index++) { (void) MenuInfoCreate(menuCache, (WinGeneric *) scrInfo->rootwin, scrInfo->menuTable[index], 1, MENU_NEWSLOT); } maxDepth = findMaxDepth(menuCache); menuCache->menuWinList = MemAlloc(maxDepth * sizeof(struct _winmenu *)); for (index = 0; index < maxDepth; index++) menuCache->menuWinList[index] = MakeMenu(dpy, scrInfo->rootwin); menuCache->maxDepth = maxDepth; #ifdef notdef ApplyMenuDefaults(dpy, menuCache); #endif return menuCache; } /* * DoDefaultMenuAction - execute the default menu item from this window's * Window Menu. * * REMIND: this deals ONLY with the Window Menu. It has certain limitations. * In particular, it does not deal with pinning, as no pushpins appear on any * window menu. Eventually, this routine should be merged with * ExecButtonAction(). */ Bool DoDefaultMenuAction(win) WinGenericFrame *win; { Menu *menu; int defitem; Button *pb; MenuInfo *menuInfo; Bool fullsize; /* * find the menu associated with this frame, * this ensures that the menu is enabled correctly */ if (win->core.kind == WIN_FRAME) fullsize = win->fcore.fullsize; else fullsize = False; menu = GetEnabledMenu(win->core.client, fullsize, False, win->core.client->sticky); if (!menu) return False; defitem = win->core.client->wmDecors->def_item; if (defitem < 0 || defitem >= menu->buttonCount) { defitem = 0; } pb = menu->buttons[defitem]; /* Search down the menu tree, following the default buttons */ while (1) { if (!pb->enabled) return True; if (!pb->has_submenu) break; menu = pb->action.submenu; if (menu->buttonDefault < 0 || menu->buttonDefault >= menu->buttonCount) return True; pb = menu->buttons[menu->buttonDefault]; } /* assume it's a button; execute its action */ if (pb->callback == NULL) return True; menuInfo = FindMenuInfo((WinGeneric *) win, menu); assert(menuInfo); (*pb->callback) (win->core.client->dpy, win, menuInfo, defitem); return True; } /********************************************************************************/ static Region zeroregion; void InitRegions() { zeroregion = XCreateRegion(); } void EmptyRegion(r) Region r; { if (r != NULL) XIntersectRegion(zeroregion, r, r); } void RectRegion(r, x, y, w, h) Region r; int x, y; unsigned int w, h; { XRectangle rect; if (r != NULL) { rect.x = x; rect.y = y; rect.width = w; rect.height = h; XUnionRectWithRegion(&rect, r, r); } } void AppendExposeDamage(pr, ee) Region *pr; XExposeEvent *ee; { if (*pr == NULL) *pr = XCreateRegion(); if (*pr != NULL) RectRegion(*pr, ee->x, ee->y, ee->width, ee->height); } void MakeExposeDamage(pr, ee) Region *pr; XExposeEvent *ee; { if (*pr != NULL) EmptyRegion(*pr); AppendExposeDamage(pr, ee); } xview-3.2p1.4/clients/olvwm-4.1/moveresize.c100644 1750 1750 143202 6241361454 16132 0ustar mbmb/* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifdef IDENT #ident "@(#)moveresize.c 1.7 olvwm version 09 Feb 1994" #endif /* * Based on #ident "@(#)moveresize.c 26.54 93/06/28 SMI" * */ #include #include #include #include #include #include #include #include "i18n.h" #include "ollocale.h" #include "mem.h" #include "olwm.h" #include "win.h" #include "events.h" #include "list.h" #include "globals.h" #include "group.h" #include "virtual.h" #include "error.h" /* REMIND - find out how to get rid of this */ extern int Resize_width, Resize_height; typedef enum { Unconstrained, /* resizing not constrained */ EitherConstrained, /* constrained, but no direction yet */ HorizConstrained, /* constrained horizontally */ VertConstrained /* constrained vertically */ } Constraint; #define DELTA_INCREASE (1) #define DELTA_DECREASE (-1) #define JUMP_INCREASE (10) #define JUMP_DECREASE (-10) #define REDUCE_ROUNDER 5 #define REDUCE_DIVIDER 10 /* * drawDouble * * Draw a thick box on the given window, using the given GC. The box is drawn * using four rectangles. This technique is used instead of wide lines * because this routine is used during animation, and the wide line code of * some servers is too slow. */ #define defrect(r, X, Y, W, H) \ (r).x = X, (r).y = Y, (r).width = W, (r).height = H /* ARGSUSED */ static void drawDouble(dpy, win, si, gc, x, y, w, h) Display *dpy; Window win; ScreenInfo *si; GC gc; int x, y, w, h; { int thick = GRV.RubberBandThickness; XRectangle rects[4]; int nrects, doublethick; if (w == 0 && h == 0) return; doublethick = 2 * thick; /* if too small for box just draw one solid rect */ if (w <= doublethick || h <= doublethick) { defrect(rects[0], x, y, w, h); nrects = 1; /* else draw all 4 rects for the box */ } else { defrect(rects[0], x, y, w, thick); defrect(rects[1], x, y + h - thick, w, thick); defrect(rects[2], x, y + thick, thick, h - doublethick); defrect(rects[3], x + w - thick, y + thick, thick, h - doublethick); nrects = 4; } #ifdef ALLPLANES if (si->useAllPlanes) XAllPlanesFillRectangles(dpy, win, rects, nrects); else #endif /* ALLPLANES */ XFillRectangles(dpy, win, gc, rects, nrects); } #undef defrect /* ===== status window ==================================================== */ #define HMARGIN 5 #define VMARGIN 3 typedef struct { Display *dpy; Window win; int ypos; int width; int height; XFontStruct *font; ScreenInfo *scrinfo; } StatusWinInfo; static StatusWinInfo * createStatusWindow(dpy, scrinfo, proto) Display *dpy; ScreenInfo *scrinfo; Text *proto; { XSetWindowAttributes attr; StatusWinInfo *sw; int changed, x, y; unsigned int w, h; sw = MemNew(StatusWinInfo); sw->dpy = dpy; sw->font = TitleFont; sw->height = FontHeight(sw->font) + 2*VMARGIN; sw->width = FontWidth(sw->font, proto, TextLen(proto)) + 2*HMARGIN; sw->scrinfo = scrinfo; if (MatchString(GRV.ResizePosition, "center")) { x = (DisplayWidth(dpy, scrinfo->screen) - sw->width) / 2; y = (DisplayHeight(dpy, scrinfo->screen) - sw->height) / 2; } else { changed = XParseGeometry(GRV.ResizePosition, &x, &y, &w, &h); if (changed & XValue) if (changed & XNegative) x = DisplayWidth(dpy, scrinfo->screen) + x - sw->width; else ; else x = 0; if (changed & YValue) if (changed & YNegative) y = DisplayHeight(dpy, scrinfo->screen) + y - sw->height; else ; else y = 0; } sw->ypos = FontAscent(sw->font) + VMARGIN; attr.border_pixel = 0; attr.colormap = scrinfo->colormap; attr.save_under = True; sw->win = ScreenCreateWindow(scrinfo, scrinfo->rootid, x, y, sw->width, sw->height, CWColormap | CWBorderPixel | CWSaveUnder, &attr); XMapRaised(dpy, sw->win); return sw; } static void paintStatusWindow(sw, text) StatusWinInfo *sw; Text *text; { int textlen; if (sw == NULL) return; olgx_draw_box(sw->scrinfo->gi[NORMAL_GINFO], sw->win, 0, 0, sw->width, sw->height, OLGX_NORMAL | OLGX_ERASE, True); textlen = TextLen(text); DrawText(sw->dpy, sw->win, sw->font, sw->scrinfo->gc[FOREGROUND_GC], (sw->width - FontWidth(sw->font, text, textlen)) / 2, sw->ypos, text, textlen); } static void destroyStatusWindow(sw) StatusWinInfo *sw; { if (sw == NULL) return; ScreenDestroyWindow(sw->scrinfo, sw->win); MemFree(sw); } /* ===== mouse-based window moving ======================================== */ typedef struct { Display *dpy; int initX, initY; int offX, offY; int curX, curY; int rounder, divider; List *winlist; WinGenericFrame *frame; StatusWinInfo *statuswindow; char *statusfmt; Constraint constraint; Bool dragwin; /* true=dragwin, false=dragframe */ Bool mouse; Bool AutoRaise; /* orig value of autoraise */ /* * Virtual Desktop things */ int check_vdm; int vdm_screenX; int vdm_screenY; int inVDM; VirtualDesktop *vdm; int targetScreenX; int targetScreenY; int initScreenX; int initScreenY; Region region; Window *children; unsigned int num_children; int vdm_stacking_order; } MoveClosure; static Bool movewinInterposer(); static void *moveOneWindow(); static void *configOneWindow(); static void *configOneWindowCleanup(); static void *drawOneBox(); static void moveDone(); static void mouseMovePaintStatus(mstuff, x, y) MoveClosure *mstuff; int x, y; { Text buf[50]; if (!mstuff->statuswindow) return; TextSPrintf(buf, mstuff->statusfmt, x, y); paintStatusWindow(mstuff->statuswindow, buf); } static int getWindowStackingOrder(win, mstuff) Window win; MoveClosure *mstuff; { int i; for (i = 0; i < mstuff->num_children; i++) if (mstuff->children[i] == win) return i; return 0; } static void * moveAddRegion(cli, mstuff) Client *cli; MoveClosure *mstuff; { Region new; XRectangle rect; if (!cli->framewin) return NULL; if (PANEWINOFCLIENT(cli) == PANEWINOFCLIENT(mstuff->vdm->client)) return NULL; if (cli->screen != mstuff->vdm->client->screen) return NULL; switch(cli->wmState) { case IconicState: if (getWindowStackingOrder(cli->iconwin->core.self, mstuff) < mstuff->vdm_stacking_order) return NULL; rect.x = cli->iconwin->core.x; rect.y = cli->iconwin->core.y; rect.width = cli->iconwin->core.width; rect.height = cli->iconwin->core.height; break; case NormalState: if (getWindowStackingOrder(cli->framewin->core.self, mstuff) < mstuff->vdm_stacking_order) return NULL; rect.x = cli->framewin->core.x; rect.y = cli->framewin->core.y; rect.width = cli->framewin->core.width; rect.height = cli->framewin->core.height; break; default: return NULL; } new = XCreateRegion(); XUnionRectWithRegion(&rect, new, new); XSubtractRegion(mstuff->region, new, mstuff->region); XDestroyRegion(new); return NULL; } /* * UserMoveWindows * * Allow the user to move a window or the set of selected windows. The * "first" parameter must be the button event that initiated the interaction. * The "winInfo" parameter must be the frame or icon on which the action was * initiated. The external boolean DragWindow controls whether the whole * window is moved or whether the outline is moved. * * TODO: * (1) clean up coordinate systems; * (2) implement hysteresis against other windows' edges. */ void UserMoveWindows(cli, first) Client *cli; XEvent *first; { Display *dpy = cli->dpy; List *winlist = NULL_LIST; static MoveClosure mstuff; Time timestamp; XRectangle rect; Window dummy_window; { /* * Set up where the VDM is to allow/prevent moving into it */ VirtualDesktop *vdm; unsigned int w, h, bw, d; int x, y; Window root; vdm = cli->scrInfo->vdm; if (vdm && vdm->client->wmState != IconicState && vdm->client != cli) { mstuff.check_vdm = GRV.AllowMoveIntoDesktop; XGetGeometry(dpy, vdm->client->framewin->core.self, &root, &x, &y, &w, &h, &bw, &d); mstuff.vdm_screenX = x; mstuff.vdm_screenY = y; XGetGeometry(dpy, vdm->client->framewin->fcore.panewin->core.self, &root, &x, &y, &w, &h, &bw, &d); mstuff.vdm_screenX += x; mstuff.vdm_screenY += y; mstuff.vdm = vdm; rect.x = mstuff.vdm_screenX; rect.y = mstuff.vdm_screenY; rect.width = w; rect.height = h; } else { mstuff.vdm = vdm; mstuff.check_vdm = False; } if (first) { if (first->xmotion.window == PANEWINOFCLIENT(vdm->client)) mstuff.inVDM = True; else if (VGetInfo(first->xmotion.window)) mstuff.inVDM = True; else mstuff.inVDM = False; } else mstuff.inVDM = False; } mstuff.dpy = dpy; mstuff.offX = 0; mstuff.offY = 0; mstuff.constraint = Unconstrained; mstuff.rounder = 0; mstuff.divider = 1; /* * Disable Autoraise while dragging -- otherwise, we obscure the moveresize * box */ mstuff.AutoRaise = GRV.AutoRaise; GRV.AutoRaise = False; TimeoutCancel(); if (cli->wmState == IconicState) mstuff.frame = (WinGenericFrame *) cli->iconwin; else mstuff.frame = (WinGenericFrame *) cli->framewin; if (first == NULL || first->type == KeyPress) { timestamp = (first == NULL) ? CurrentTime : first->xkey.time; mstuff.dragwin = False; mstuff.curX = mstuff.initX = mstuff.frame->core.x; mstuff.curY = mstuff.initY = mstuff.frame->core.y; mstuff.mouse = False; } else { /* it's a ButtonPress */ mstuff.curX = mstuff.initX = first->xbutton.x_root; mstuff.curY = mstuff.initY = first->xbutton.y_root; mstuff.dragwin = GRV.DragWindow; mstuff.mouse = True; timestamp = first->xbutton.time; if (first->xbutton.state & ModMaskMap[MOD_INVERT]) mstuff.dragwin = !mstuff.dragwin; if (first->xbutton.state & ModMaskMap[MOD_REDUCE]) { mstuff.rounder = REDUCE_ROUNDER; mstuff.divider = REDUCE_DIVIDER; } if (first->xbutton.state & ModMaskMap[MOD_CONSTRAIN]) mstuff.constraint = EitherConstrained; } mstuff.initScreenX = (mstuff.frame->core.x + (int) mstuff.frame->core.width / 2 - mstuff.vdm->offsetX) / DisplayWidth(dpy, mstuff.frame->core.client->screen); mstuff.initScreenY = (mstuff.frame->core.y + (int) mstuff.frame->core.height / 2 - mstuff.vdm->offsetY) / DisplayHeight(dpy, mstuff.frame->core.client->screen); /* * This is esoteric: we don't want to allow a drag into an obscured * part of the VDM. If we're dragging the outline, then it's easy, * since each event has the dest window, which will be the VDM only * when we want it to be. If we're dragging the window, then the window * in the event will be the window's frame, and we have to have another * test to see if we're over an unobscured part of the VDM. * * The best I can come up with now is to create a region equal to the * unobscured part of the VDM. This is probably very slow. */ if (mstuff.check_vdm) { if (mstuff.dragwin) { mstuff.region = XCreateRegion(); /* rect is set up above */ XUnionRectWithRegion(&rect, mstuff.region, mstuff.region); if (!XQueryTree(dpy, WinRootID(mstuff.frame), &dummy_window, &dummy_window, &mstuff.children, &mstuff.num_children)) mstuff.num_children = 0; mstuff.vdm_stacking_order = getWindowStackingOrder(mstuff.vdm->client->framewin->core.self, &mstuff); ListApply(ActiveClientList, moveAddRegion, &mstuff); } else mstuff.region = NULL; } /* * If we're dragging the window, and raise-on-move is set, raise it now so * that the user drags it around after it's been raised. Raise only this * window, even if several are selected. */ if (GRV.RaiseOnMove && mstuff.dragwin) XRaiseWindow(dpy, mstuff.frame->core.self); /* * Generate the list of windows to be moved. If the initial window is * selected, we're moving the selection; otherwise, we're moving just this * window. */ if (IsSelected(cli)) { Client *c = (Client *) 0; int allsticky = True; while (c = EnumSelections(c)) { if (c->wmState == IconicState) winlist = ListCons(c->iconwin, winlist); else winlist = ListCons(c->framewin, winlist); /* * Can't move sticky windows into the VDM. Thus, if all windows * are sticky, we don't allow any move into the VDM, since otherwise * its too confusing */ allsticky = allsticky & c->sticky; } if (allsticky) mstuff.check_vdm = False; } else { winlist = ListCons(mstuff.frame, NULL_LIST); if (cli->sticky) mstuff.check_vdm = False; } mstuff.winlist = winlist; /* Grab the pointer to change the cursor and confine to the root window. */ if (XGrabPointer(dpy, cli->scrInfo->rootid, True, ButtonPressMask | ButtonReleaseMask | PointerMotionMask, GrabModeAsync, GrabModeAsync, cli->scrInfo->rootid, GRV.MovePointer, timestamp) != GrabSuccess) { ErrorWarning(GetString("failed to grab pointer")); return; } if (XGrabKeyboard(dpy, cli->scrInfo->rootid, False, GrabModeAsync, GrabModeAsync, timestamp) != GrabSuccess) { /* note: not fatal */ ErrorWarning(GetString("failed to grab keyboard")); } InstallInterposer(movewinInterposer, &mstuff); if (GRV.ShowMoveGeometry) { Text proto[50]; mstuff.statusfmt = GetString("location: %4d , %4d"); TextSPrintf(proto, mstuff.statusfmt, 9999, 9999); mstuff.statuswindow = createStatusWindow(dpy, cli->scrInfo, proto); } else mstuff.statuswindow = NULL; /* * If we're dragging the outlines, we must also grab the server and draw * the initial set of bounding boxes. */ if (!mstuff.dragwin) { XGrabServer(dpy); (void) ListApply(mstuff.winlist, drawOneBox, &mstuff); } } void moveUpdate(mstuff, event) MoveClosure *mstuff; XEvent *event; { if (!mstuff->dragwin) (void) ListApply(mstuff->winlist, drawOneBox, mstuff); if (mstuff->check_vdm && event) { if (!mstuff->region) { if (event->xmotion.window == PANEWINOFCLIENT(mstuff->vdm->client)) mstuff->inVDM = True; /* * The events on the virtual windows are reported relative to * themselves; so if its a virtual window, we're in the VDM */ else if (VGetInfo(event->xmotion.window)) mstuff->inVDM = True; else if (mstuff->dragwin) { /* * If we're dragging the window, then we took care of setting * the VDM when we do the regioning stuff. * REMIND: Can we ever get here? */ } else mstuff->inVDM = False; } else mstuff->inVDM = XPointInRegion(mstuff->region, event->xmotion.x_root, event->xmotion.y_root); } if (mstuff->inVDM) { mstuff->offX = (mstuff->curX - mstuff->vdm_screenX) * (mstuff->vdm->resources->scale / mstuff->divider) - mstuff->initX + mstuff->vdm->offsetX; mstuff->offY = (mstuff->curY - mstuff->vdm_screenY) * (mstuff->vdm->resources->scale / mstuff->divider) - mstuff->initY + mstuff->vdm->offsetY; } else { mstuff->offX = (mstuff->curX - mstuff->initX + mstuff->rounder) / mstuff->divider; mstuff->offY = (mstuff->curY - mstuff->initY + mstuff->rounder) / mstuff->divider; } if (mstuff->constraint == EitherConstrained) { if (ABS(mstuff->offX) > ABS(mstuff->offY)) mstuff->constraint = HorizConstrained; else mstuff->constraint = VertConstrained; } if (mstuff->constraint == HorizConstrained) { mstuff->offY = 0; } else if (mstuff->constraint == VertConstrained) { mstuff->offX = 0; } if (mstuff->dragwin) (void) ListApply(mstuff->winlist, moveOneWindow, mstuff); else (void) ListApply(mstuff->winlist, drawOneBox, mstuff); } void moveKeyDelta(mstuff, dx, dy) MoveClosure *mstuff; int dx, dy; { mstuff->constraint = Unconstrained; if (mstuff->mouse) { mstuff->initX -= dx; mstuff->initY -= dy; } else { mstuff->curX += dx; mstuff->curY += dy; } moveUpdate(mstuff, (XEvent *) NULL); } /* * movewinInterposer * * Interposer function for moving windows. Moves the list of windows on each * MotionNotify; releases interposition on ButtonRelease. */ /*ARGSUSED*/ static int movewinInterposer(dpy, event, w, mstuff) Display *dpy; XEvent *event; WinGeneric *w; MoveClosure *mstuff; { XEvent nextevent; SemanticAction action; switch (event->type) { case ButtonPress: /* ignore if buttons are already down */ if (!FirstButtonDown(event)) break; switch (ResolveMouseBinding(dpy, event, ModMaskMap[MOD_REDUCE] | ModMaskMap[MOD_CONSTRAIN])) { case ACTION_SELECT: mstuff->mouse = True; mstuff->curX = event->xbutton.x_root; mstuff->curY = event->xbutton.y_root; mstuff->initX = mstuff->curX - mstuff->offX; mstuff->initY = mstuff->curY - mstuff->offY; if (event->xbutton.state & ModMaskMap[MOD_REDUCE]) { mstuff->rounder = REDUCE_ROUNDER; mstuff->divider = REDUCE_DIVIDER; } if (event->xbutton.state & ModMaskMap[MOD_CONSTRAIN]) mstuff->constraint = EitherConstrained; break; default: /* otherwise, abort the move operation */ mstuff->curX = mstuff->initX; mstuff->curY = mstuff->initY; moveUpdate(mstuff, event); moveDone(mstuff); } break; case ButtonRelease: if (AllButtonsUp(event)) moveDone(mstuff); break; case MotionNotify: /* if the event is off the screen, ignore it */ if (!event->xmotion.same_screen) break; if (!mstuff->mouse) break; /* * Motion compression. If the next event is a MotionNotify, * ignore this one. */ if (XEventsQueued(dpy, QueuedAfterReading) > 0 && (XPeekEvent(dpy,&nextevent), nextevent.type == MotionNotify)) break; mstuff->curX = event->xmotion.x_root; mstuff->curY = event->xmotion.y_root; moveUpdate(mstuff, event); break; case KeyPress: action = FindKeyboardAction(dpy, event); switch (action) { case ACTION_UP: moveKeyDelta(mstuff,0,DELTA_DECREASE); break; case ACTION_DOWN: moveKeyDelta(mstuff,0,DELTA_INCREASE); break; case ACTION_LEFT: moveKeyDelta(mstuff,DELTA_DECREASE,0); break; case ACTION_RIGHT: moveKeyDelta(mstuff,DELTA_INCREASE,0); break; case ACTION_JUMP_UP: moveKeyDelta(mstuff,0,JUMP_DECREASE); break; case ACTION_JUMP_DOWN: moveKeyDelta(mstuff,0,JUMP_INCREASE); break; case ACTION_JUMP_LEFT: moveKeyDelta(mstuff,JUMP_DECREASE,0); break; case ACTION_JUMP_RIGHT: moveKeyDelta(mstuff,JUMP_INCREASE,0); break; case ACTION_EXEC_DEFAULT: moveDone(mstuff); break; case ACTION_STOP: mstuff->curX = mstuff->initX; mstuff->curY = mstuff->initY; mstuff->inVDM = False; moveUpdate(mstuff, (XEvent *) NULL); moveDone(mstuff); break; case ACTION_FRONT: KeyFrontFocus(dpy, event); break; default: if (FindModifierMask(event->xkey.keycode) == ModMaskMap[MOD_CONSTRAIN]) { if (mstuff->mouse) { mstuff->constraint = EitherConstrained; moveUpdate(mstuff, (XEvent *) NULL); } } else { KeyBeep(dpy, event); } break; } break; case KeyRelease: if (FindModifierMask(event->xkey.keycode) == ModMaskMap[MOD_CONSTRAIN]) { mstuff->constraint = Unconstrained; moveUpdate(mstuff, (XEvent *) NULL); } break; /* Send out expose's immediately */ case Expose: return DISPOSE_DISPATCH; default: return DISPOSE_DEFER; } return DISPOSE_USED; } /* windowOff -- function to determine how far a window should be offset * given a pointer offset. Returns both X and Y, by reference. */ static void windowOff(win, mstuff, pox, poy) WinGenericFrame *win; MoveClosure *mstuff; int *pox, *poy; { int pixw = DisplayWidth(win->core.client->dpy, win->core.client->screen); int hpoint; int pixy = DisplayHeight(win->core.client->dpy, win->core.client->screen); if (mstuff->offX == 0) { *pox = 0; } else if (mstuff->offX > 0) { hpoint = pixw - win->core.x - win->core.width; if (!mstuff->inVDM && (mstuff->offX >= hpoint) && (mstuff->offX <= hpoint + GRV.EdgeThreshold)) *pox = hpoint; else { hpoint = mstuff->vdm->absoluteWidth + mstuff->vdm->offsetX - win->core.x - win->core.width; if (mstuff->offX >= hpoint + win->core.width - Resize_width) *pox = hpoint + win->core.width - Resize_width; else *pox = mstuff->offX; } } else if (mstuff->offX < 0) { if (!mstuff->inVDM && (mstuff->offX <= -win->core.x) && (mstuff->offX >= (-win->core.x - GRV.EdgeThreshold))) *pox = -win->core.x; else if (mstuff->offX <= (-win->core.x - win->core.width + Resize_width + mstuff->vdm->offsetX)) *pox = (-win->core.x - win->core.width + Resize_width + mstuff->vdm->offsetX); else *pox = mstuff->offX; } if (mstuff->offY == 0) { *poy = 0; } else if (mstuff->offY > 0) { hpoint = pixy - win->core.y - win->core.height; if (!mstuff->inVDM && (mstuff->offY >= hpoint) && (mstuff->offY <= hpoint + GRV.EdgeThreshold)) *poy = hpoint; else { hpoint = mstuff->vdm->absoluteHeight + mstuff->vdm->offsetY - win->core.y - win->core.height; if (mstuff->offY >= hpoint + win->core.height - Resize_height) *poy = hpoint + win->core.height - Resize_height; else *poy = mstuff->offY; } } else if (mstuff->offY < 0) { if (!mstuff->inVDM && (mstuff->offY <= -win->core.y) && (mstuff->offY >= (-win->core.y - GRV.EdgeThreshold))) *poy = -win->core.y; else if (mstuff->offY <= (-win->core.y - win->core.height + Resize_height + mstuff->vdm->offsetY)) *poy = (-win->core.y - win->core.height + Resize_height + mstuff->vdm->offsetY); else *poy = mstuff->offY; } } /* * moveOneWindow * * Apply function for window moving animation. Draws a window outline or * actually moves the window, depending on DragWindow. */ static void * moveOneWindow(win, mstuff) WinGenericFrame *win; MoveClosure *mstuff; { int offX, offY; windowOff(win, mstuff, &offX, &offY); XMoveWindow(mstuff->dpy, win->core.self, win->core.x + offX, win->core.y + offY); XMoveWindow(mstuff->dpy, win->core.virtual, (win->core.x + offX - mstuff->vdm->offsetX) / mstuff->vdm->resources->scale, (win->core.y + offY - mstuff->vdm->offsetY) / mstuff->vdm->resources->scale); if (win == mstuff->frame) mouseMovePaintStatus(mstuff, win->core.x + offX, win->core.y + offY); return (void *) 0; } /* * drawOneBox * * Apply function for drawing XOR boxes. Draws a double-width rectangle * around the outline of a single window. */ static void * drawOneBox(w, mstuff) WinGenericFrame *w; MoveClosure *mstuff; { int offX, offY; windowOff(w, mstuff, &offX, &offY); drawDouble(mstuff->dpy, w->core.client->scrInfo->rootid, w->core.client->scrInfo, WinGC(w,ROOT_GC), w->core.x + offX, w->core.y + offY, w->core.width, w->core.height); drawDouble(mstuff->dpy, PANEWINOFCLIENT(mstuff->vdm->client), w->core.client->scrInfo, WinGC(w,ROOT_GC), (w->core.x + offX - mstuff->vdm->offsetX) / mstuff->vdm->resources->scale, (w->core.y + offY - mstuff->vdm->offsetY) / mstuff->vdm->resources->scale, w->core.width / mstuff->vdm->resources->scale, w->core.height / mstuff->vdm->resources->scale); if (w == mstuff->frame) mouseMovePaintStatus(mstuff, w->core.x + offX, w->core.y + offY); return (void *) 0; } /* * doconfigOneWindow * * Apply function for calling a moved window's configfunc. * */ static void * doConfigOneWindow(win, mstuff) WinGenericFrame *win; MoveClosure *mstuff; { int offX, offY; int dw, dh; if (ListIsAMember(win, mstuff->winlist)) { windowOff(win, mstuff, &offX, &offY); GFrameSetConfig(win, win->core.x + offX, win->core.y + offY, win->core.width, win->core.height); } else { /* Else we're moving a dependent window without having selected it -- * ie VirtualMoveGroup is True and we're moving into the VDM. So * keep the relative screen position of this window */ dw = DisplayWidth(win->core.client->dpy, win->core.client->screen); dh = DisplayHeight(win->core.client->dpy, win->core.client->screen); offX = mstuff->targetScreenX * dw; offY = mstuff->targetScreenY * dh; GFrameSetConfig(win, win->core.x + offX, win->core.y + offY, win->core.width, win->core.height); } if (GRV.RaiseOnMove) RaiseWindow(win); return (void *) 0; } static void * configOneClient(cli, mstuff) Client *cli; MoveClosure *mstuff; { doConfigOneWindow((WinGenericFrame *) cli->framewin, mstuff); doConfigOneWindow((WinGenericFrame *) cli->iconwin, mstuff); cli->flags |= CLMoved; return (void *) 0; } static void * configOneWindow(win, mstuff) WinGenericFrame *win; MoveClosure *mstuff; { int dw, dh; int offX, offY; int newScreenX, newScreenY; Client *leader; if (win->core.client->flags & CLMoved) return (void *) 0; dw = DisplayWidth(win->core.client->dpy, win->core.client->screen); dh = DisplayHeight(win->core.client->dpy, win->core.client->screen); windowOff(win, mstuff, &offX, &offY); switch(win->core.client->groupmask) { case GROUP_LEADER: leader = win->core.client; break; case GROUP_DEPENDENT: leader = GroupLeader(win->core.client->groupid); if (!leader) { doConfigOneWindow(win, mstuff); return (void *) 0; } break; case GROUP_INDEPENDENT: doConfigOneWindow(win, mstuff); return (void *) 0; } if (GRV.VirtualMoveGroups) { newScreenX = (win->core.x + (win->core.width / 2) + offX - mstuff->vdm->offsetX) / dw; mstuff->targetScreenX = newScreenX - mstuff->initScreenX; newScreenY = (win->core.y + (win->core.height / 2) + offY - mstuff->vdm->offsetY) / dh; mstuff->targetScreenY = newScreenY - mstuff->initScreenY; if (mstuff->targetScreenY == 0 && mstuff->targetScreenX == 0) doConfigOneWindow(win, mstuff); else GroupApply(leader->groupid, configOneClient, mstuff, GROUP_LEADER | GROUP_DEPENDENT); } else doConfigOneWindow(win, mstuff); return (void *) 0; } static void * doConfigOneClientCleanup(cli) Client *cli; { cli->flags &= ~CLMoved; return (void *) 0; } static void * configOneWindowCleanup(win) WinGeneric *win; { Client *leader; if (GRV.VirtualMoveGroups) { leader = GroupLeader(win->core.client->groupid); if (!leader) { doConfigOneClientCleanup(win->core.client); return (void *) 0; } GroupApply(leader->groupid, doConfigOneClientCleanup, 0, GROUP_LEADER | GROUP_DEPENDENT); } else win->core.client->flags &= ~CLMoved; return (void *) 0; } /* * moveDone * * Cleanup function for window moving. Releases grabs, uninstalls * interposition, cleans up. */ static void moveDone(mstuff) MoveClosure *mstuff; { /* * If we're dragging the outlines, we must ungrab the server and undraw * the last set of boxes. */ if (!mstuff->dragwin) { (void) ListApply(mstuff->winlist, drawOneBox, mstuff); XUngrabServer(mstuff->dpy); } XUngrabPointer(mstuff->dpy, CurrentTime); XUngrabKeyboard(mstuff->dpy, CurrentTime); /* * If we moved the outline (not the whole window) cause the window to be * raised at the same time it is moved. Raise just the frame the user * started on, even if several are selected. */ if (GRV.RaiseOnMove && !mstuff->dragwin) GFrameSetStack(mstuff->frame, CWStackMode, Above, None); (void) ListApply(mstuff->winlist, configOneWindow, mstuff); (void) ListApply(mstuff->winlist, configOneWindowCleanup, 0); ListDestroy(mstuff->winlist); if (mstuff->region) { XDestroyRegion(mstuff->region); if (mstuff->num_children) XFree((char *) mstuff->children); mstuff->region = NULL; } destroyStatusWindow(mstuff->statuswindow); mstuff->statuswindow = NULL; GRV.AutoRaise = mstuff->AutoRaise; UninstallInterposer(); } /* ===== mouse-based resizing ============================================= */ /* * Note on use of gravity values: in this section, the gravity field is used * to denote the window edge or corner that is being moved. It's not * being used as "gravity" in the usual sense, which is the location that is * being held constant. * * TODO: * (1) implement screen edge hysteresis for resize+move mode (meta key); * (2) implement window edge hysteresis. */ /* * The following enum is arranged specifically so that the values can be * tested with bit operations. The one-bit indicates down or right if one, up * or left if zero. The two-bit indicates vertical if one, horizontal if zero. * The four-bit indicates a jump if one, normal if zero. */ typedef enum { RS_LEFT = 0, RS_RIGHT, RS_UP, RS_DOWN, RS_J_LEFT, RS_J_RIGHT, RS_J_UP, RS_J_DOWN } ResizeAction; #define RS_ISRIGHT (1<<0) #define RS_ISDOWN (1<<0) #define RS_ISVERT (1<<1) #define RS_ISJUMP (1<<2) #define RS_JUMPMULT 10 /* jump multiplier */ struct { int x, y; } ResizeDeltas[] = { { -1, 0 }, /* left */ { 1, 0 }, /* right */ { 0, -1 }, /* up */ { 0, 1 }, /* down */ { -RS_JUMPMULT, 0 }, /* jump left */ { RS_JUMPMULT, 0 }, /* jump right */ { 0, -RS_JUMPMULT }, /* jump up */ { 0, RS_JUMPMULT } /* jump down */ }; typedef struct { Client *cli; Constraint constraint; Bool drawn; Bool moving; Bool useAspect; Bool baseProvided; int origX, origY; int curX, curY; /* current mouse position */ int winX, winY; /* current window position */ int winW, winH; /* current window height */ int minW, minH; int maxW, maxH; int incW, incH; int minAspectX, minAspectY; int maxAspectX, maxAspectY; int baseW, baseH; int borderW, borderH; /* size of frame border */ void (*callback)(); void *cbarg; StatusWinInfo *statuswindow; char *statusfmt; int gravity; /* see note above */ Bool mouse; /* using mouse? */ } ResizeClosure; /* * Macro for adjusting the size of a window to its resize increment. First, * assigns diff to be the difference between the size and the next lesser * incremental size. If diff is greater than half the incremental * size, adjust the size upward to the next greater increment, otherwise * adjust downward. THIS MACRO ALTERS ITS FIRST ARGUMENT. * * size is the window size to be adjusted * base is base size, to be subtracted off before modulo is done * i is the incremental size */ #define INCADJ(size, base, i) \ { \ int diff; \ diff = ((size) - (base)) % (i); \ (size) += (diff > (i)/2) ? (i)-diff : -diff; \ } static void resizeDraw(rstuff) ResizeClosure *rstuff; { drawDouble(rstuff->cli->dpy, WinRootID(rstuff->cli->framewin), rstuff->cli->scrInfo, WinGC(rstuff->cli->framewin, ROOT_GC), rstuff->winX, rstuff->winY, rstuff->winW, rstuff->winH); drawDouble(rstuff->cli->dpy, PANEWINOFCLIENT(rstuff->cli->scrInfo->vdm->client), rstuff->cli->scrInfo, WinGC(rstuff->cli->framewin, ROOT_GC), (rstuff->winX - rstuff->cli->scrInfo->vdm->offsetX) / rstuff->cli->scrInfo->vdm->resources->scale, (rstuff->winY - rstuff->cli->scrInfo->vdm->offsetY) / rstuff->cli->scrInfo->vdm->resources->scale, rstuff->winW / rstuff->cli->scrInfo->vdm->resources->scale, rstuff->winH / rstuff->cli->scrInfo->vdm->resources->scale); } static void resizePaintStatus(rstuff) ResizeClosure *rstuff; { Text buf[30]; int w, h; if (!rstuff->statuswindow) return; w = rstuff->winW - rstuff->borderW; h = rstuff->winH - rstuff->borderH; if (rstuff->baseProvided) { w -= rstuff->baseW; h -= rstuff->baseH; } TextSPrintf(buf, rstuff->statusfmt, w / rstuff->incW, h / rstuff->incH); paintStatusWindow(rstuff->statuswindow, buf); } static void /* ARGSUSED */ resizeDone(dpy, e, w, rstuff, doit) Display *dpy; XEvent *e; WinGeneric *w; ResizeClosure *rstuff; Bool doit; { if (rstuff->drawn) resizeDraw(rstuff); XUngrabPointer(dpy, e->xbutton.time); XUngrabKeyboard(dpy, e->xbutton.time); XUngrabServer(dpy); if (doit) { if (GRV.RaiseOnResize) GFrameSetStack(rstuff->cli->framewin, CWStackMode, Above, None); GFrameSetConfig(rstuff->cli->framewin, rstuff->winX, rstuff->winY, rstuff->winW, rstuff->winH); } if (rstuff->callback != NULL) (*rstuff->callback)(dpy, rstuff->cbarg); destroyStatusWindow(rstuff->statuswindow); rstuff->statuswindow = NULL; UninstallInterposer(); } static void resizeMotion(rstuff, x, y) ResizeClosure *rstuff; int x, y; { int dx, dy, dW, dH, newW, newH; dx = x - rstuff->curX; dy = y - rstuff->curY; if (ABS(dx) <= GRV.MoveThreshold && ABS(dy) <= GRV.MoveThreshold && !rstuff->drawn) return; if (rstuff->mouse) { if (rstuff->constraint == EitherConstrained) { if (ABS(rstuff->origX - x) > ABS(rstuff->origY - y)) rstuff->constraint = HorizConstrained; else rstuff->constraint = VertConstrained; } if (rstuff->constraint == HorizConstrained) { y = rstuff->origY; dy = y - rstuff->curY; } else if (rstuff->constraint == VertConstrained) { x = rstuff->origX; dx = x - rstuff->curX; } } newW = rstuff->winW; newH = rstuff->winH; if (rstuff->moving) { if (dx == 0 && dy == 0) return; if (rstuff->drawn) resizeDraw(rstuff); rstuff->winX += dx; rstuff->winY += dy; rstuff->curX += dx; rstuff->curY += dy; resizeDraw(rstuff); rstuff->drawn = True; return; } switch (rstuff->gravity) { case NorthWestGravity: newW -= dx; newH -= dy; break; case NorthGravity: newH -= dy; break; case NorthEastGravity: newW += dx; newH -= dy; break; case WestGravity: newW -= dx; break; case CenterGravity: break; case EastGravity: newW += dx; break; case SouthWestGravity: newW -= dx; newH += dy; break; case SouthGravity: newH += dy; break; case SouthEastGravity: newW += dx; newH += dy; break; } /* * Convert from frame size to pane size, apply the constraints, then * convert back to frame size. */ newW -= rstuff->borderW; newH -= rstuff->borderH; INCADJ(newW, rstuff->baseW, rstuff->incW); INCADJ(newH, rstuff->baseH, rstuff->incH); newW = MAX(rstuff->minW, MIN(rstuff->maxW, newW)); newH = MAX(rstuff->minH, MIN(rstuff->maxH, newH)); if (rstuff->useAspect && newW * rstuff->maxAspectY > newH * rstuff->maxAspectX) { if (rstuff->maxAspectX > rstuff->maxAspectY) { /* max aspect is wider than tall; increase height. */ newH = (newW * rstuff->maxAspectY) / rstuff->maxAspectX; if (newH > rstuff->maxH) { newH = rstuff->maxH; newW = (newH * rstuff->maxAspectX) / rstuff->maxAspectY; } } else { /* max aspect is taller than wide; decrease width. */ newW = (newH * rstuff->maxAspectX) / rstuff->maxAspectY; if (newW < rstuff->minW) { newW = rstuff->minW; newH = (newW * rstuff->maxAspectY) / rstuff->maxAspectX; } } } if (rstuff->useAspect && newW * rstuff->minAspectY < newH * rstuff->minAspectX) { if (rstuff->minAspectX > rstuff->minAspectY) { /* min aspect is wider than tall; decrease height. */ newH = (newW * rstuff->minAspectY) / rstuff->minAspectX; if (newH < rstuff->minH) { newH = rstuff->minH; newW = (newH * rstuff->minAspectX) / rstuff->minAspectY; } } else { /* min aspect is taller than wide; increase width. */ newW = (newH * rstuff->minAspectX) / rstuff->minAspectY; if (newW > rstuff->maxW) { newW = rstuff->maxW; newH = (newW * rstuff->minAspectY) / rstuff->minAspectX; } } } newW += rstuff->borderW; newH += rstuff->borderH; /* * Calculate the change in size (if any) and update the window's origin * (winX, winY) depending on which corner is being moved. Also, update * the virtual pointer location (curX, curY). Don't draw anything if the * size hasn't changed. */ dW = newW - rstuff->winW; dH = newH - rstuff->winH; if (dW == 0 && dH == 0) return; if (rstuff->drawn) resizeDraw(rstuff); switch (rstuff->gravity) { case NorthWestGravity: rstuff->winX -= dW; rstuff->winY -= dH; rstuff->curX -= dW; rstuff->curY -= dH; break; case NorthGravity: rstuff->winX -= dW / 2; rstuff->winY -= dH; rstuff->curY -= dH; break; case NorthEastGravity: rstuff->winY -= dH; rstuff->curX += dW; rstuff->curY -= dH; break; case WestGravity: rstuff->winX -= dW; rstuff->winY -= dH / 2; rstuff->curX -= dW; break; case CenterGravity: rstuff->winX -= dW / 2; rstuff->winY -= dH / 2; break; case EastGravity: rstuff->winY -= dH / 2; rstuff->curX += dW; break; case SouthWestGravity: rstuff->winX -= dW; rstuff->curX -= dW; rstuff->curY += dH; break; case SouthGravity: rstuff->winX -= dW / 2; rstuff->curY += dH; break; case SouthEastGravity: rstuff->curX += dW; rstuff->curY += dH; break; } rstuff->winW = newW; rstuff->winH = newH; resizeDraw(rstuff); resizePaintStatus(rstuff); rstuff->drawn = True; } void resizeDelta(rstuff, action) ResizeClosure *rstuff; ResizeAction action; { int dx, dy; if (rstuff->mouse) return; if (action & RS_ISVERT) { switch (rstuff->gravity) { case WestGravity: case CenterGravity: case EastGravity: rstuff->gravity += (action & RS_ISDOWN) ? 3 : -3; break; } } else { switch (rstuff->gravity) { case NorthGravity: case CenterGravity: case SouthGravity: rstuff->gravity += (action & RS_ISRIGHT) ? 1 : -1; break; } } /* generate a delta vector based on which edge is being moved */ dx = ResizeDeltas[action].x; dy = ResizeDeltas[action].y; dx *= rstuff->incW; dy *= rstuff->incH; resizeMotion(rstuff, rstuff->curX + dx, rstuff->curY + dy); } static int resizeInterposer(dpy, e, w, rstuff) Display *dpy; XEvent *e; WinGeneric *w; ResizeClosure *rstuff; { unsigned int mask; SemanticAction action; XEvent nextevent; switch (e->type) { case ButtonPress: if (!FirstButtonDown(e)) break; switch (ResolveMouseBinding(dpy, e, ModMaskMap[MOD_CONSTRAIN] | ModMaskMap[MOD_INVERT])) { case ACTION_SELECT: rstuff->mouse = True; rstuff->curX = rstuff->origX = e->xbutton.x_root; rstuff->curY = rstuff->origY = e->xbutton.y_root; if (e->xbutton.state & ModMaskMap[MOD_CONSTRAIN]) rstuff->constraint = EitherConstrained; if (e->xbutton.state & ModMaskMap[MOD_INVERT]) rstuff->moving = True; rstuff->gravity = NorthWestGravity; if (e->xbutton.y_root > rstuff->winY + (rstuff->winH / 2)) rstuff->gravity = SouthWestGravity; if (e->xbutton.x_root > rstuff->winX + (rstuff->winW / 2)) rstuff->gravity += 2; /* turns any west into any east */ resizeMotion(rstuff, e->xbutton.x_root, e->xbutton.y_root); break; default: resizeDone(dpy, e, w, rstuff, False); break; } break; case ButtonRelease: if (AllButtonsUp(e)) resizeDone(dpy, e, w, rstuff, True); break; case MotionNotify: if (!e->xmotion.same_screen || !rstuff->mouse) break; /* * Motion compression. If the next event is a MotionNotify, * ignore this one. */ if (XEventsQueued(dpy, QueuedAfterReading) > 0 && (XPeekEvent(dpy, &nextevent), nextevent.type == MotionNotify)) break; resizeMotion(rstuff, e->xmotion.x_root, e->xmotion.y_root); break; case KeyPress: action = FindKeyboardAction(dpy, e); switch (action) { case ACTION_STOP: resizeDone(dpy, e, w, rstuff, False); break; case ACTION_UP: resizeDelta(rstuff, RS_UP); break; case ACTION_DOWN: resizeDelta(rstuff, RS_DOWN); break; case ACTION_LEFT: resizeDelta(rstuff, RS_LEFT); break; case ACTION_RIGHT: resizeDelta(rstuff, RS_RIGHT); break; case ACTION_JUMP_UP: resizeDelta(rstuff, RS_J_UP); break; case ACTION_JUMP_DOWN: resizeDelta(rstuff, RS_J_DOWN); break; case ACTION_JUMP_LEFT: resizeDelta(rstuff, RS_J_LEFT); break; case ACTION_JUMP_RIGHT: resizeDelta(rstuff, RS_J_RIGHT); break; case ACTION_EXEC_DEFAULT: resizeDone(dpy, e, w, rstuff, True); break; default: mask = FindModifierMask(e->xkey.keycode); if (mask == ModMaskMap[MOD_CONSTRAIN] && rstuff->mouse) { rstuff->constraint = EitherConstrained; resizeMotion(rstuff, e->xkey.x_root, e->xkey.y_root); } else if (mask == ModMaskMap[MOD_INVERT]) { rstuff->moving = True; } else { KeyBeep(dpy, e); } break; } break; case KeyRelease: mask = FindModifierMask(e->xkey.keycode); if (mask == ModMaskMap[MOD_CONSTRAIN] && rstuff->mouse) { rstuff->constraint = Unconstrained; resizeMotion(rstuff, e->xkey.x_root, e->xkey.y_root); } else if (mask == ModMaskMap[MOD_INVERT]) rstuff->moving = False; break; case Expose: return DISPOSE_DISPATCH; default: return DISPOSE_DEFER; } return DISPOSE_USED; } /* * Install an interposer for resizing with the mouse. */ void UserResizeWin(cli, trigger, corner, callback, cbarg) Client *cli; XEvent *trigger; WhichResize corner; void (*callback)(); void *cbarg; { static ResizeClosure rstuff; XSizeHints *sh = cli->normHints; Window root = WinRootID(cli->framewin); Time timestamp; int frameMinWidth, frameMinHeight; Cursor resizePointer; if (GRV.SpecialResizePointers) resizePointer = GRV.ResizePointers[corner]; else resizePointer = GRV.ResizePointer; if (trigger == NULL || trigger->type == KeyPress) { if (trigger == NULL) timestamp = CurrentTime; else timestamp = trigger->xkey.time; rstuff.mouse = False; rstuff.origX = rstuff.curX = cli->framewin->core.x; rstuff.origY = rstuff.curY = cli->framewin->core.y; } else { /* it's a button press */ timestamp = trigger->xbutton.time; rstuff.mouse = True; if (trigger->xbutton.state & ModMaskMap[MOD_CONSTRAIN]) rstuff.constraint = EitherConstrained; else rstuff.constraint = Unconstrained; if (trigger->xbutton.state & ModMaskMap[MOD_INVERT]) rstuff.moving = True; else rstuff.moving = False; rstuff.origX = rstuff.curX = trigger->xbutton.x_root; rstuff.origY = rstuff.curY = trigger->xbutton.y_root; } switch (corner) { case upleft: rstuff.gravity = NorthWestGravity; break; case upright: rstuff.gravity = NorthEastGravity; break; case lowleft: rstuff.gravity = SouthWestGravity; break; case lowright: rstuff.gravity = SouthEastGravity; break; case keyevent: rstuff.gravity = CenterGravity; break; } /* Grab the pointer to change the cursor and confine to the root window. */ if (XGrabPointer(cli->dpy, root, True, ButtonPressMask | ButtonReleaseMask | PointerMotionMask, GrabModeAsync, GrabModeAsync, root, resizePointer, timestamp) != GrabSuccess) { ErrorWarning(GetString("failed to grab pointer")); return; } if (XGrabKeyboard(cli->dpy, root, False, GrabModeAsync, GrabModeAsync, timestamp) != GrabSuccess) { /* note: not fatal */ ErrorWarning(GetString("failed to grab keyboard")); } XGrabServer(cli->dpy); /* Fill in the closure for the interposer. */ rstuff.drawn = False; rstuff.cli = cli; rstuff.winX = cli->framewin->core.x; rstuff.winY = cli->framewin->core.y; rstuff.winW = cli->framewin->core.width; rstuff.winH = cli->framewin->core.height; rstuff.callback = callback; rstuff.cbarg = cbarg; /* * Look at the client's size hints and update the closure appropriately. */ rstuff.minW = rstuff.minH = 1; rstuff.maxW = rstuff.maxH = 32767; /* REMIND: max value of signed short */ rstuff.incW = rstuff.incH = 1; rstuff.useAspect = False; rstuff.baseW = rstuff.baseH = 0; if (sh != NULL) { if (sh->flags & PMinSize) { rstuff.minW = sh->min_width; rstuff.minH = sh->min_height; } else if (sh->flags & PBaseSize) { rstuff.minW = MAX(1,sh->base_width); rstuff.minH = MAX(1,sh->base_height); } if (sh->flags & PMaxSize) { rstuff.maxW = sh->max_width; rstuff.maxH = sh->max_height; } if ((sh->flags & PResizeInc) && sh->width_inc > 0 && sh->height_inc > 0) { rstuff.incW = sh->width_inc; rstuff.incH = sh->height_inc; } if (sh->flags & PAspect) { rstuff.useAspect = True; rstuff.minAspectX = sh->min_aspect.x; rstuff.minAspectY = sh->min_aspect.y; rstuff.maxAspectX = sh->max_aspect.x; rstuff.maxAspectY = sh->max_aspect.y; } if (sh->flags & PBaseSize) { rstuff.baseW = sh->base_width; rstuff.baseH = sh->base_height; rstuff.baseProvided = True; } else if (sh->flags & PMinSize) { rstuff.baseW = sh->min_width; rstuff.baseH = sh->min_height; rstuff.baseProvided = False; } } /* figure in the size of the frame decorations */ rstuff.borderW = FrameWidthLeft(cli->framewin) + FrameWidthRight(cli->framewin); rstuff.borderH = FrameHeightTop(cli->framewin) + FrameHeightBottom(cli->framewin); FrameMinSize(cli->framewin, &frameMinWidth, &frameMinHeight); frameMinWidth -= rstuff.borderW; frameMinHeight -= rstuff.borderH; rstuff.minW = MAX(rstuff.minW, frameMinWidth); rstuff.minH = MAX(rstuff.minH, frameMinHeight); /* map the geom window and draw the initial outline, if necessary */ if (GRV.ShowResizeGeometry) { Text proto[50]; rstuff.statusfmt = GetString("size: %4d, %4d"); TextSPrintf(proto, rstuff.statusfmt, 9999, 9999); rstuff.statuswindow = createStatusWindow(cli->dpy, cli->scrInfo, proto); } else rstuff.statuswindow = NULL; if (trigger == NULL || trigger->type == KeyPress) { resizeDraw(&rstuff); rstuff.drawn = True; } resizePaintStatus(&rstuff); InstallInterposer(resizeInterposer, &rstuff); } /* ===== root bounding box ================================================ */ typedef struct _rootboxclosure { int x0, y0; int x, y; unsigned int w, h; WinRoot *rootWin; ScreenInfo *scrInfo; GC rootGC; void *closure; void (*callback)(); } RootBoxClosure; static int /* ARGSUSED */ rootBoxInterposer(dpy, event, w, rbc) Display *dpy; XEvent *event; WinGeneric *w; RootBoxClosure *rbc; { XEvent nextevent; register int ex, ey; switch (event->type) { case ButtonPress: return DISPOSE_USED; case MotionNotify: /* if the event is off the screen, ignore it */ if (event->xmotion.root != rbc->scrInfo->rootid) return DISPOSE_USED; /* * Motion compression. If the next event is a MotionNotify, * ignore this one. */ if (XEventsQueued(dpy, QueuedAfterReading) > 0 && (XPeekEvent(dpy, &nextevent), nextevent.type == MotionNotify)) { return DISPOSE_USED; } /* erase old box */ drawDouble(dpy, rbc->scrInfo->rootid, rbc->scrInfo, rbc->rootGC, rbc->x, rbc->y, rbc->w, rbc->h); /* update closure with new position */ ex = event->xmotion.x_root; ey = event->xmotion.y_root; if (ex > rbc->x0) { rbc->x = rbc->x0; rbc->w = ex - rbc->x; } else { rbc->x = ex; rbc->w = rbc->x0 - rbc->x; } if (ey > rbc->y0) { rbc->y = rbc->y0; rbc->h = ey - rbc->y; } else { rbc->y = ey; rbc->h = rbc->y0 - rbc->y; } /* draw new box */ drawDouble(dpy, rbc->scrInfo->rootid, rbc->scrInfo, rbc->rootGC, rbc->x, rbc->y, rbc->w, rbc->h); return DISPOSE_USED; case ButtonRelease: if (!AllButtonsUp(event)) return DISPOSE_USED; break; case KeyPress: if (FindKeyboardAction(dpy, event) != ACTION_STOP) { KeyBeep(dpy,event); return DISPOSE_USED; } break; default: return DISPOSE_DEFER; } /* * erase outline, let go of server, call the callback */ drawDouble(dpy, rbc->scrInfo->rootid, rbc->scrInfo, rbc->rootGC, rbc->x, rbc->y, rbc->w, rbc->h); XUngrabServer(dpy); XUngrabPointer(dpy, CurrentTime); XUngrabKeyboard(dpy, CurrentTime); (*rbc->callback)(dpy, rbc->rootWin, rbc->x, rbc->y, rbc->w, rbc->h, event->xbutton.time, rbc->closure); UninstallInterposer(); return DISPOSE_USED; } /* * TraceRootBox -- trace an XOR box with the initial point specified * by pEvent, which is assumed to be a ButtonPress event. Call the * callback function when done. */ void TraceRootBox(dpy, winInfo, pEvent, callback, closure) Display *dpy; WinRoot *winInfo; XEvent *pEvent; void (*callback)(); void *closure; { static RootBoxClosure rbc; Window rootID = WinRootID(winInfo); /* Change and confine the cursor. */ if (XGrabPointer(dpy, rootID, True, ButtonReleaseMask | PointerMotionMask, GrabModeAsync, GrabModeAsync, rootID, GRV.BasicPointer, pEvent->xbutton.time) != GrabSuccess) { ErrorWarning(GetString("failed to grab pointer")); return; } if (XGrabKeyboard(dpy, rootID, False, GrabModeAsync, GrabModeAsync, pEvent->xbutton.time) != GrabSuccess) { /* note: not fatal */ ErrorWarning(GetString("failed to grab keyboard")); } rbc.x = rbc.x0 = pEvent->xbutton.x_root; rbc.y = rbc.y0 = pEvent->xbutton.y_root; rbc.w = rbc.h = 0; rbc.rootWin = winInfo; rbc.scrInfo = winInfo->core.client->scrInfo; rbc.rootGC = WinGC(winInfo, ROOT_GC); rbc.callback = callback; rbc.closure = closure; /* Grab the server, then draw the initial outline. */ XGrabServer(dpy); drawDouble(dpy, rootID, rbc.scrInfo, WinGC(winInfo, ROOT_GC), rbc.x, rbc.y, 0, 0); InstallInterposer(rootBoxInterposer, &rbc); return; } xview-3.2p1.4/clients/olvwm-4.1/notice.c100644 1750 1750 54575 5515337312 15220 0ustar mbmb#ifdef IDENT #ident "@(#)notice.c 26.32 93/06/28 SMI" #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #include #include #include #include #include #include "i18n.h" /* needed before olgx.h */ #include #include "ollocale.h" #include "olwm.h" #include "screen.h" #include "notice.h" #include "globals.h" #include "mem.h" #include "events.h" #include "error.h" extern int PointInRect(); extern SemanticAction FindKeyboardAction(); /* difference between inside beveled box and outside beveled box */ #define BORDER_WIDTH 5 #define MIN_BOX_SIDE ( 15 + BORDER_WIDTH ) /* betw side & text */ #define MIN_BOX_TOP ( 15 + BORDER_WIDTH ) /* betw top & text */ #define MIN_BOX_BOTTOM ( 15 + BORDER_WIDTH ) /* betw bot & text */ #define MIN_BUTTON_SPACE 15 /* space between buttons */ #define MIN_BUTTON_VSPACE 15 /* space above buttons */ #define MIN_STRING_VSPACE 5 /* space above/below strings */ #define OUTLINE_WIDTH 2 /* thickness of 2D border */ typedef struct { int x; int y; unsigned int width; /* space taken up by text */ unsigned int fullWidth; /* width including endcaps */ char accelerator; /* mouseless accelerator key */ } noticeButtonDetails; typedef struct { Display *dpy; ScreenInfo *scrInfo; NoticeBox *noticeBox; int numStrings; Text **stringText; Window window; unsigned int buttonHeight; unsigned int fontHeight; unsigned int boxHeight; unsigned int boxWidth; int x; int y; int totalButtonWidth; noticeButtonDetails *buttonInfo; int buttonSelected; int buttonFocus; int buttonDown; int buttonDrawnDown; void (*noticeCallback)(); int pointerX,pointerY; Bool ignoreExpose; Bool warped; } noticeBoxDetails; static void calculateBoxDimensions(); static void drawNoticeBox(); static void noticeDone(); static int noticeInterposer(); noticeBoxDetails *CreateNoticeBox(); void DestroyNoticeBox(); void ShowNoticeBox(); /****************************************************************** * Private Draw Functions ******************************************************************/ /* * calculateBoxDimensions -- determine size of box needed, etc. based on * information passed in in noticeBox structure. Return * values in boxDetails structure. */ static void calculateBoxDimensions( noticeBox, boxDetails ) NoticeBox *noticeBox; noticeBoxDetails *boxDetails; { int screen = boxDetails->scrInfo->screen; unsigned int displayWidth, displayHeight; int longestStringLength = 0; int totalButtonWidth = 0; Graphics_info *gisButton = boxDetails->scrInfo->gi[BUTTON_GINFO]; int ii; Text *tok,*str; static Text sep[2] = { '\n', 0 }; boxDetails->fontHeight = FontHeight(TextFont); /* calculate the width of the text which appears inside the button */ for ( ii = 0 ; ii < noticeBox->numButtons ; ii++ ) { boxDetails->buttonInfo[ii].width = FontWidth(ButtonFont,noticeBox->buttonText[ii], TextLen(noticeBox->buttonText[ii])); boxDetails->buttonInfo[ii].fullWidth = boxDetails->buttonInfo[ii].width + 2 * ButtonEndcap_Width(gisButton); } /* make the key accelerators from the button text string */ for ( ii = 0 ; ii < noticeBox->numButtons ; ii++ ) { boxDetails->buttonInfo[ii].accelerator = TextTolower(*noticeBox->buttonText[ii]); } /* add together widths of all the buttons */ for ( ii = 0 ; ii < noticeBox->numButtons ; ii++ ) totalButtonWidth += boxDetails->buttonInfo[ii].fullWidth; boxDetails->totalButtonWidth = totalButtonWidth; /* * Split the msg string into individual strings using newlines */ /* count the newlines in the msg starting with one */ for (ii = 1, str = noticeBox->msgText; *str != '\0'; str++) { if (*str == '\n') ii++; } /* alloc the string pointer array */ boxDetails->numStrings = ii; boxDetails->stringText = (Text **)MemAlloc(boxDetails->numStrings * sizeof(Text *)); /* split the msg string into separate string in stringText array */ str = MemNewText(noticeBox->msgText); for (ii=0, tok=TextTok(str,sep); tok; tok=TextTok((Text *)NULL,sep)) { boxDetails->stringText[ii++] = MemNewText(tok); } MemFree(str); /* figure out which descriptive string is longest */ for ( ii = 0 ; ii < boxDetails->numStrings ; ii++ ) { longestStringLength = MAX(longestStringLength, FontWidth(TextFont,boxDetails->stringText[ii], TextLen(boxDetails->stringText[ii]))); } /* * REMIND: this calculation assumes all the buttons are * on the same line */ boxDetails->boxWidth = 2 * MIN_BOX_SIDE + MAX( longestStringLength, totalButtonWidth + /* amount of space between all the buttons */ MIN_BUTTON_SPACE * (noticeBox->numButtons - 1) ); boxDetails->buttonHeight = Button_Height(gisButton); boxDetails->boxHeight = MIN_BOX_TOP + MIN_BOX_BOTTOM + ( boxDetails->numStrings * boxDetails->fontHeight ) /* amount of space vertically between all the strings */ + ( (boxDetails->numStrings - 1) * MIN_STRING_VSPACE ) + MIN_BUTTON_VSPACE + boxDetails->buttonHeight; displayWidth = DisplayWidth( boxDetails->dpy, screen ); displayHeight = DisplayHeight( boxDetails->dpy, screen ); /* if not set, create default "origin" for box: centered */ boxDetails->x = ( noticeBox->boxX == -1 ) ? (int)( displayWidth - boxDetails->boxWidth )/2 : noticeBox->boxX ; boxDetails->y = ( noticeBox->boxY == -1 ) ? (int)( displayHeight - boxDetails->boxHeight )/2 : noticeBox->boxY ; } /* * drawLocationCursor */ static void drawLocationCursor(details,btn,erase) noticeBoxDetails *details; int btn; Bool erase; { static XPoint pts[] = { 0,0, 6,11, -12,0 }; GC gc ; if (GRV.Mouseless != KbdFull) return; pts[0].x = details->buttonInfo[btn].x + details->buttonInfo[btn].fullWidth/2; pts[0].y = details->buttonInfo[btn].y + details->buttonHeight - 7; if (erase) gc = details->scrInfo->gc[WINDOW_GC]; else gc = details->scrInfo->gc[FOREGROUND_GC]; XFillPolygon(details->dpy,details->window, gc,pts,3,Convex,CoordModePrevious); } /* * drawButton */ static void drawButton(noticeBox,details,btn,btnState) NoticeBox *noticeBox; noticeBoxDetails *details; int btn; int btnState; { Graphics_info *gisButton = details->scrInfo->gi[BUTTON_GINFO]; if (noticeBox->defaultButton == btn) btnState |= OLGX_DEFAULT; if ((btnState & OLGX_ERASE) && details->buttonFocus == btn) drawLocationCursor(details,btn,True); olgx_draw_button(gisButton,details->window, details->buttonInfo[btn].x,details->buttonInfo[btn].y, details->buttonInfo[btn].fullWidth,0, noticeBox->buttonText[btn],btnState | TextOLGX); if ( !(btnState & OLGX_ERASE) && details->buttonFocus == btn) drawLocationCursor(details,btn,False); } /* * drawNoticeBox -- draw box outline, strings, and buttons using information * in noticeBox and boxDetails structures which are passed in. * Location of buttons (x, y) are set in boxDetails structure * for use later (mouse warping, determining pointer position). */ static void drawNoticeBox( noticeBox, boxDetails ) NoticeBox *noticeBox; noticeBoxDetails *boxDetails; { int ii; int buttonX, buttonY; int buttonState; /* OLGX_NORMAL or OLGX_DEFAULT */ Graphics_info *gisText = boxDetails->scrInfo->gi[TEXT_GINFO]; Graphics_info *gisButton = boxDetails->scrInfo->gi[BUTTON_GINFO]; /* frame outline */ if (GRV.F3dFrames) { /* fill it in, because olgx doesn't fill in 2D */ if (!boxDetails->scrInfo->use3D) XFillRectangle(boxDetails->dpy, boxDetails->window, boxDetails->scrInfo->gc[WINDOW_GC], 0, 0, boxDetails->boxWidth, boxDetails->boxHeight); olgx_draw_box(gisButton, boxDetails->window, 0, 0, boxDetails->boxWidth, boxDetails->boxHeight, OLGX_NORMAL, True ); } else { GC gc = boxDetails->scrInfo->gc[BORDER_GC]; XFillRectangle(boxDetails->dpy, boxDetails->window, boxDetails->scrInfo->gc[WINDOW_GC], 0, 0, boxDetails->boxWidth, boxDetails->boxHeight); XFillRectangle(boxDetails->dpy, boxDetails->window, gc, 0, 0, boxDetails->boxWidth, OUTLINE_WIDTH); XFillRectangle(boxDetails->dpy, boxDetails->window, gc, 0, boxDetails->boxHeight - OUTLINE_WIDTH, boxDetails->boxWidth, OUTLINE_WIDTH); XFillRectangle(boxDetails->dpy, boxDetails->window, gc, 0, OUTLINE_WIDTH, OUTLINE_WIDTH, boxDetails->boxHeight - 2*OUTLINE_WIDTH); XFillRectangle(boxDetails->dpy, boxDetails->window, gc, boxDetails->boxWidth - OUTLINE_WIDTH, OUTLINE_WIDTH, OUTLINE_WIDTH, boxDetails->boxHeight - 2*OUTLINE_WIDTH); } if (boxDetails->scrInfo->use3D) { /* REMIND: this is a hack to draw a chiseled box */ olgx_draw_box(gisButton, boxDetails->window, BORDER_WIDTH, BORDER_WIDTH, boxDetails->boxWidth - 2 * BORDER_WIDTH, boxDetails->boxHeight - 2 * BORDER_WIDTH, OLGX_INVOKED, False); olgx_draw_box(gisButton, boxDetails->window, BORDER_WIDTH+1, BORDER_WIDTH+1, boxDetails->boxWidth - 2 * BORDER_WIDTH - 2, boxDetails->boxHeight - 2 * BORDER_WIDTH - 2, OLGX_NORMAL, False); } else { olgx_draw_box(gisButton, boxDetails->window, BORDER_WIDTH, BORDER_WIDTH, boxDetails->boxWidth - 2 * BORDER_WIDTH, boxDetails->boxHeight - 2 * BORDER_WIDTH, OLGX_NORMAL, True); } /* draw descriptive text * REMIND: all strings are along the left edge (MIN_BOX_SIDE) */ for ( ii = 0 ; ii < boxDetails->numStrings ; ii++ ) olgx_draw_text(gisText, boxDetails->window, boxDetails->stringText[ii], MIN_BOX_SIDE, /* need to move each line further down the screen */ MIN_BOX_TOP + FontAscent(TextFont) * ( ii + 1 ) + ( MIN_STRING_VSPACE * ii ), 0, OLGX_NORMAL | TextOLGX ); /* put buttons in - notice that it's a single row */ /* row of buttons should be centered within available space, * assuming MIN_BUTTON_SPACE between each of the them */ buttonX = ( boxDetails->boxWidth - (boxDetails->totalButtonWidth + MIN_BUTTON_SPACE * (noticeBox->numButtons - 1)) )/2; /* this calculates from the bottom of the box */ buttonY = ( boxDetails->boxHeight - ( MIN_BOX_BOTTOM + boxDetails->buttonHeight ) ); for ( ii = 0 ; ii < noticeBox->numButtons ; ii++ ) { if ( noticeBox->defaultButton == ii ) buttonState = OLGX_DEFAULT; else buttonState = OLGX_NORMAL; /* save button's x, y values for use later */ boxDetails->buttonInfo[ii].x = buttonX; boxDetails->buttonInfo[ii].y = buttonY; olgx_draw_button(gisButton, boxDetails->window, buttonX, buttonY, boxDetails->buttonInfo[ii].fullWidth, 0, noticeBox->buttonText[ii], buttonState | TextOLGX); /* set up buttonX for next button */ buttonX = buttonX + boxDetails->buttonInfo[ii].fullWidth + MIN_BUTTON_SPACE; } drawLocationCursor(boxDetails,boxDetails->buttonFocus,False); } /****************************************************************** * Private Event Functions ******************************************************************/ /* * setButtonFocus - sets the focus button to the passed value and * redraws the necessary buttons. */ static void setButtonFocus(details,newFocus) noticeBoxDetails *details; int newFocus; { int oldFocus = details->buttonFocus; drawButton(details->noticeBox,details,oldFocus,OLGX_ERASE); details->buttonFocus = newFocus; drawButton(details->noticeBox,details,newFocus,OLGX_NORMAL); } /* * moveButtonFocus - moves the focus button in the indicated direction * and wraps around then first and last buttons. */ static void moveButtonFocus(details,dir) noticeBoxDetails *details; int dir; { NoticeBox *noticeBox = details->noticeBox; int newFocus = details->buttonFocus; if (noticeBox->numButtons == 1) return; newFocus += dir; if (newFocus >= noticeBox->numButtons) newFocus = 0; else if (newFocus < 0) newFocus = noticeBox->numButtons-1; setButtonFocus(details,newFocus); } /* * keyAccelerator - if the key event matches one of the button accelerators * return True and set button to the accelerated button. */ static Bool keyAccelerator(key,details,button) XKeyEvent *key; noticeBoxDetails *details; int *button; /* RETURN */ { NoticeBox *noticeBox = details->noticeBox; char accel,str[10]; KeySym keySym; int keyCount,i; keyCount = XLookupString(key,str,10,&keySym,NULL); if (keyCount != 1) return False; accel = TextTolower(str[0]); for (i = 0; i < noticeBox->numButtons; i++) { if (accel == details->buttonInfo[i].accelerator) { *button = i; return True; } } return False; } /* * pointInButton - True if the button is it the passed button number */ static Bool pointInButton(event,details,btn) XButtonEvent *event; noticeBoxDetails *details; int btn; { return PointInRect(event->x,event->y, details->buttonInfo[btn].x,details->buttonInfo[btn].y, details->buttonInfo[btn].fullWidth,details->buttonHeight); } /* * noticeInterposer - event handler for notices */ static int noticeInterposer(dpy,event,win,details) Display *dpy; XEvent *event; void *win; noticeBoxDetails *details; { NoticeBox *noticeBox = details->noticeBox; int ii,button,buttonState; SemanticAction action; /* * Discard synthetic events */ if (event->xany.send_event) return DISPOSE_USED; switch (event->type) { case ButtonPress: /* first check to see if we're even in the notice box */ if (!PointInRect(event->xbutton.x,event->xbutton.y, 0,0,details->boxWidth,details->boxHeight)) break; /* if on one of the notice buttons, depress it */ for ( ii = 0 ; ii < noticeBox->numButtons ; ii++ ) { if (pointInButton(event,details,ii)) { details->buttonDown = ii; details->buttonDrawnDown = True; drawButton(noticeBox,details,ii,OLGX_INVOKED); break; } } break; case ButtonRelease: if (details->buttonDown < 0) break; /* only a depressed button can be selected */ if (pointInButton(event,details,details->buttonDown)) { details->buttonSelected = details->buttonDown; noticeDone(dpy,details); /* else erase the depressed button and now unselected */ } else { drawButton(noticeBox,details, details->buttonDown,OLGX_ERASE); details->buttonDown = -1; details->buttonDrawnDown = False; } break; case MotionNotify: if ( details->buttonDown < 0 ) break; /* if moved out of depressed button erase it and cancel */ if (!pointInButton(event,details,details->buttonDown)) { drawButton(noticeBox,details, details->buttonDown,OLGX_ERASE); details->buttonDown = -1; details->buttonDrawnDown = False; } break; case KeyPress: action = FindKeyboardAction(dpy,event); /* If not in full mouseless, then only process default action */ if (GRV.Mouseless != KbdFull && action != ACTION_EXEC_DEFAULT) { KeyBeep(dpy,event); return DISPOSE_USED; } switch (action) { case ACTION_EXEC_DEFAULT: details->buttonSelected = noticeBox->defaultButton; noticeDone(dpy,details); break; case ACTION_CANCEL: case ACTION_STOP: details->buttonSelected = NOTICE_CANCEL; noticeDone(dpy,details); break; case ACTION_SELECT: details->buttonSelected = details->buttonFocus; noticeDone(dpy,details); break; case ACTION_NEXT_ELEMENT: case ACTION_RIGHT: moveButtonFocus(details,1); break; case ACTION_PREVIOUS_ELEMENT: case ACTION_LEFT: moveButtonFocus(details,-1); break; case ACTION_FIRST_CONTROL: setButtonFocus(details,0); break; case ACTION_LAST_CONTROL: setButtonFocus(details,noticeBox->numButtons-1); break; default: if (keyAccelerator(event,details,&button)) setButtonFocus(details,button); else KeyBeep(dpy,event); break; } case KeyRelease: return DISPOSE_USED; case Expose: /* * Ignore the first expose, since we painted as soon as we * mapped. Otherwise, we really were exposed, so repaint. */ if (event->xexpose.count == 0) { if (details->ignoreExpose) details->ignoreExpose = False; else drawNoticeBox(details->noticeBox,details); } return DISPOSE_USED; default: return DISPOSE_DEFER; } return DISPOSE_USED; } /* * noticeDone() -- warp pointer back, release grabs, remove interposer, call * the callback, and clean up the notice window. */ static void noticeDone(dpy,boxDetails) Display *dpy; noticeBoxDetails *boxDetails; { if (boxDetails->warped) XWarpPointer(dpy,None,boxDetails->scrInfo->rootid, 0,0,0,0,boxDetails->pointerX,boxDetails->pointerY); if (GRV.ServerGrabs) XUngrabServer(dpy); XUngrabKeyboard(dpy,CurrentTime); XUngrabPointer(dpy,CurrentTime); UninstallInterposer(); if (boxDetails->noticeCallback) (*boxDetails->noticeCallback)(dpy,boxDetails->buttonSelected); DestroyNoticeBox(boxDetails); } /****************************************************************** * Global Functions ******************************************************************/ /* * CreateNoticeBox -- create the notice box/button details and the window */ noticeBoxDetails * CreateNoticeBox(dpy,screen,noticeBox,callback) Display *dpy; int screen; NoticeBox *noticeBox; void (*callback)(); { XSetWindowAttributes attributes; noticeBoxDetails *boxDetails; int i,defaultButton; /* * Create box details and button details */ boxDetails = MemNew(noticeBoxDetails); boxDetails->buttonInfo = (noticeButtonDetails *)MemAlloc( noticeBox->numButtons * (unsigned int)sizeof(noticeButtonDetails) ); boxDetails->noticeBox = MemNew(NoticeBox); /* * Init basic box details * - copy the passed in noticeBox since this is interposition */ boxDetails->dpy = dpy; boxDetails->scrInfo = GetScrInfoOfScreen(screen); boxDetails->noticeCallback = callback; *boxDetails->noticeBox = *noticeBox; boxDetails->noticeBox->buttonText = MemAlloc(noticeBox->numButtons * sizeof(Text *)); for (i = 0; i < noticeBox->numButtons; i++) { boxDetails->noticeBox->buttonText[i] = MemNewText(noticeBox->buttonText[i]); } boxDetails->noticeBox->msgText = MemNewText(noticeBox->msgText); /* figure out size to make window and where to put it */ calculateBoxDimensions(boxDetails->noticeBox,boxDetails); /* create the window */ attributes.border_pixel = 0; attributes.colormap = boxDetails->scrInfo->colormap; attributes.event_mask = ButtonPressMask | ButtonReleaseMask | PointerMotionMask | KeyPressMask | ExposureMask; attributes.save_under = True; boxDetails->window = ScreenCreateWindow(boxDetails->scrInfo, RootWindow(dpy, screen), boxDetails->x, boxDetails->y, boxDetails->boxWidth, boxDetails->boxHeight, CWBorderPixel | CWColormap | CWEventMask | CWSaveUnder, &attributes); boxDetails->buttonSelected = -1; boxDetails->buttonFocus = noticeBox->defaultButton; boxDetails->buttonDown = -1; boxDetails->buttonDrawnDown = False; boxDetails->ignoreExpose = True; boxDetails->warped = False; return boxDetails; } /* * DestroyNoticeBox -- destroys the notice box/button details and window */ void DestroyNoticeBox(boxDetails) noticeBoxDetails *boxDetails; { int i; ScreenDestroyWindow(boxDetails->scrInfo, boxDetails->window); for (i=0; inumStrings; i++) MemFree(boxDetails->stringText[i]); MemFree(boxDetails->stringText); MemFree(boxDetails->buttonInfo); for (i=0; inoticeBox->numButtons; i++) MemFree(boxDetails->noticeBox->buttonText[i]); MemFree(boxDetails->noticeBox->buttonText); MemFree(boxDetails->noticeBox->msgText); MemFree(boxDetails->noticeBox); MemFree(boxDetails); } /* * ShowNoticeBox -- Brings up the notice box */ void ShowNoticeBox(dpy,details) Display *dpy; noticeBoxDetails *details; { int defaultButton; int grabstat; /* * Map the window, then grab the pointer, the keyboard, and the * server. Return immediately if we couldn't grab the pointer, but * only issue a warning if we couldn't grab the keyboard. We need to * map the window first, otherwise the grabs will fail. */ XMapRaised(dpy,details->window); grabstat = XGrabPointer(dpy, details->window, False, ButtonPressMask | ButtonReleaseMask, GrabModeAsync, GrabModeAsync, None, None, CurrentTime); if (grabstat != GrabSuccess) { noticeDone(dpy, details); ErrorWarning(GetString("failed to grab pointer")); return; } grabstat = XGrabKeyboard(dpy, details->window, False, GrabModeAsync, GrabModeAsync, CurrentTime); if (grabstat != GrabSuccess) ErrorWarning(GetString("failed to grab keyboard")); if (GRV.ServerGrabs) XGrabServer(dpy); /* * Draw notice window immediately. The first expose event is ignored, * so there is no redundant repaint. */ drawNoticeBox(details->noticeBox,details); if (GRV.Beep != BeepNever) XBell(dpy,100); if (GRV.PopupJumpCursor) { int dummyInt; unsigned int dummyUInt; Window dummyWin; /* save current mouse position */ XQueryPointer(dpy,details->scrInfo->rootid, &dummyWin,&dummyWin, &(details->pointerX),&(details->pointerY), &dummyInt,&dummyInt,&dummyUInt); /* warp pointer to default button */ defaultButton = details->noticeBox->defaultButton; XWarpPointer(dpy,None,details->window,0,0,0,0, details->buttonInfo[defaultButton].x + details->buttonInfo[defaultButton].fullWidth/2, details->buttonInfo[defaultButton].y + details->buttonHeight/2 ); details->warped = True; } InstallInterposer(noticeInterposer,details); } /* * UseNoticeBox -- pop up a box which forces the user to answer * a question using the buttons * * Arguments: * dpy - pointer to current display * screen - index to current screen * noticeBox - pointer to NoticeBox structure: * numButtons (number of buttons) * defaultButton (index into buttonText for mouse warp) * buttonText (array of strings for button text) * msgText (msg string for description w/ newlines) * boxX (box origin (-1 =use default/centered)) * boxY (box origin (-1 =use default/centered)) * * Default placement of the box is centered in the display * Returns -1 on failure (0 for 0th button, 1 for 1st button, etc.) */ void UseNoticeBoxSync(dpy,screen,noticeBox,callback) Display *dpy; int screen; NoticeBox *noticeBox; void (*callback)(); { noticeBoxDetails *boxDetails; boxDetails = CreateNoticeBox(dpy,screen,noticeBox,callback); ShowNoticeBox(dpy,boxDetails); } /* * UseNoticeBox() -- NoticeBox with no callback */ int UseNoticeBox( dpy, screen, noticeBox ) Display *dpy; int screen; NoticeBox *noticeBox; { UseNoticeBoxSync(dpy,screen,noticeBox,NULL); } xview-3.2p1.4/clients/olvwm-4.1/ol_button.413.c100644 1750 1750 65335 6332162664 16252 0ustar mbmb#ifdef IDENT #ident "@(#)ol_button.413.c 1.1 olvwm version 13 Jan 1994" #endif /* * This file is required for compatibility with olgx 3.0, the version of * olgx which ships with Solaris 1.x. If you have Solaris 1.x and have * a version of olgx 3.2 (from the xview 3.2 release) and don't want to * use this file, change the define here */ #if !defined(SVR4) && !defined(XVIEW32) /* * Based on #ident "@(#)ol_button.c 1.40 91/09/06 SMI" * */ /* * Copyright 1989-1990 Sun Microsystems See LEGAL_NOTICE for terms of * disclosure. */ /* * OPEN LOOK object drawing package Sun Microsystems, Inc. * * OLGX_button.c Menu button module */ #include #include #include #include "i18n.h" #include "olgx_impl.h" #include "olwm.h" #include "win.h" #include "menu.h" /* * Private function declarations */ void olgx_set_busy_stipple(); void olgx_draw_pixmap_label(); void olgx_draw_button(info, win, x, y, width, height, label, state) Graphics_info *info; Window win; int x, y, width, height; void *label; int state; { XTextItem item; char string[STRING_SIZE]; short add_ins[STRING_SIZE]; register int i; int num_add; int inside_width; /* width minus endcaps */ int top_color, bottom_color, fill_color; inside_width = width - (2 * info->endcap_width); num_add = calc_add_ins(inside_width - 1, add_ins); item.nchars = 2 + num_add; item.font = None; item.chars = string; item.delta = 0; if (height) /* variable height button-- possibly a pixmap label */ olgx_draw_varheight_button(info, win, x, y, width, height, state); else { if (info->three_d) { /* * 3d determine what colors we should draw in */ if (state & OLGX_INVOKED) { /* invoked button */ top_color = OLGX_BG3; bottom_color = OLGX_WHITE; fill_color = OLGX_BG2; } else if ((state & OLGX_DEFAULT) && (state & OLGX_MENU_ITEM)) { /* default menu item */ top_color = bottom_color = OLGX_BG3; fill_color = OLGX_BG1; } else if (state & OLGX_MENU_ITEM && state & OLGX_BUSY) { /* busy menu item */ fill_color = top_color = bottom_color = OLGX_BG1; } else if (state & OLGX_MENU_ITEM) { /* normal menu item */ fill_color = top_color = bottom_color = NONE; } else { /* normal panel button */ top_color = OLGX_WHITE; bottom_color = OLGX_BG3; fill_color = OLGX_BG1; } if (state & OLGX_BUSY) { /* * This routine changes GC information on-the-fly, but it is * assumed that OLGX_BUSY won't be called often, so it makes * sense to use the same GC rather than one for ` each color. */ if (!info->gc_rec[OLGX_BUSYGC]) olgx_initialise_gcrec(info, OLGX_BUSYGC); fill_color = OLGX_BUSYGC; } /* only check erase on transparent items */ if (fill_color == NONE) { if (state & OLGX_ERASE) { /* * to improve performance, we erase a rectangle the size * of a button rather than drawing a real button. */ XFillRectangle(info->dpy, win, info->gc_rec[OLGX_BG1]->gc, x, y, width, Button_Height(info)); } } else { /* if not transparent, actually draw the * button */ if (top_color != NONE) { /* draw the top part of the button */ string[0] = BUTTON_UL; VARIABLE_LENGTH_MACRO(1, BUTTON_TOP_1); string[i + 1] = BUTTON_UR; XDrawText(info->dpy, win, info->gc_rec[top_color]->gc, x, y, &item, 1); } if (bottom_color != NONE) { /* draw the bottom part of the button */ string[0] = BUTTON_LL; VARIABLE_LENGTH_MACRO(1, BUTTON_BOTTOM_1); string[i + 1] = BUTTON_LR; XDrawText(info->dpy, win, info->gc_rec[bottom_color]->gc, x, y, &item, 1); } /* Fill in the button */ string[0] = BUTTON_LEFT_ENDCAP_FILL; VARIABLE_LENGTH_MACRO(1, BUTTON_FILL_1); string[i + 1] = BUTTON_RIGHT_ENDCAP_FILL; XDrawText(info->dpy, win, info->gc_rec[fill_color]->gc, x, y, &item, 1); /* draw the inner border of a default button (not menu item) */ if (!(state & OLGX_MENU_ITEM) && (state & OLGX_DEFAULT)) { string[0] = DFLT_BUTTON_LEFT_ENDCAP; VARIABLE_LENGTH_MACRO(1, DFLT_BUTTON_MIDDLE_1); string[i + 1] = DFLT_BUTTON_RIGHT_ENDCAP; XDrawText(info->dpy, win, info->gc_rec[OLGX_BG3]->gc, x, y, &item, 1); } } /* Not transparent */ } /* End 3D */ else { /* draw 2d button */ if (state & OLGX_ERASE) XFillRectangle(info->dpy, win, info->gc_rec[OLGX_WHITE]->gc, x, y, width + 1, Button_Height(info)); if ((state & OLGX_INVOKED)) { string[0] = BUTTON_FILL_2D_LEFTENDCAP; VARIABLE_LENGTH_MACRO(1, BUTTON_FILL_2D_MIDDLE_1); string[i + 1] = BUTTON_FILL_2D_RIGHTENDCAP; XDrawText(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, x, y, &item, 1); } else if (state & OLGX_BUSY) { if (!info->gc_rec[OLGX_BUSYGC]) olgx_initialise_gcrec(info, OLGX_BUSYGC); string[0] = BUTTON_FILL_2D_LEFTENDCAP; VARIABLE_LENGTH_MACRO(1, BUTTON_FILL_2D_MIDDLE_1); string[i + 1] = BUTTON_FILL_2D_RIGHTENDCAP; XDrawText(info->dpy, win, info->gc_rec[OLGX_BUSYGC]->gc, x, y, &item, 1); } else if (!(state & OLGX_MENU_ITEM) && (state & OLGX_DEFAULT)) { /* draw the 2d default ring if not menu-item */ string[0] = DFLT_BUTTON_LEFT_ENDCAP; VARIABLE_LENGTH_MACRO(1, DFLT_BUTTON_MIDDLE_1); string[i + 1] = DFLT_BUTTON_RIGHT_ENDCAP; XDrawText(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, x, y, &item, 1); } else if (state & OLGX_DEFAULT) { /* draw the 2d default ring for menu item */ string[0] = MENU_DFLT_OUTLINE_LEFT_ENDCAP; VARIABLE_LENGTH_MACRO(1, MENU_DFLT_OUTLINE_MIDDLE_1); string[i + 1] = MENU_DFLT_OUTLINE_RIGHT_ENDCAP; XDrawText(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, x, y, &item, 1); } /* draw the button if it is not a menu item */ if (!(state & OLGX_MENU_ITEM)) { string[0] = BUTTON_OUTLINE_LEFT_ENDCAP; VARIABLE_LENGTH_MACRO(1, BUTTON_OUTLINE_MIDDLE_1); string[i + 1] = BUTTON_OUTLINE_RIGHT_ENDCAP; XDrawText(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, x, y, &item, 1); } } } /* * Place the label, if specified. */ if (label) { if (state & OLGX_LABEL_IS_PIXMAP) { int centerx, centery; centerx = (width - ((Pixlabel *) label)->width >> 1); centery = (height - ((Pixlabel *) label)->height >> 1); olgx_draw_pixmap_label(info, win, ((Pixlabel *) label)->pixmap, x + ((centerx > 0) ? centerx : 0), y + ((centery > 0) ? centery : 0), ((Pixlabel *) label)->width, (height) ? height : Button_Height(info) - 2, state); } else if (state & OLGX_LABEL_IS_COMB) { Comblabel *combLabel; int centery; combLabel = (Comblabel *) label; centery = (((height) ? height : Button_Height(info) - 2) - combLabel->pixlabel.height) >> 1; olgx_draw_pixmap_label(info, win, combLabel->pixlabel.pixmap, x + info->endcap_width, y + ((centery > 0) ? centery : 0), combLabel->pixlabel.width, (height) ? combLabel->pixlabel.height : Button_Height(info) - 2, state); #ifdef OW_I18N olgx_draw_text(info, win, (wchar_t *) combLabel->strlabel, #else olgx_draw_text(info, win, (char *) combLabel->strlabel, #endif x + info->endcap_width + combLabel->pixlabel.width + 5, y + info->button_height - info->base_off, inside_width - combLabel->pixlabel.width - ((state & OLGX_MENU_MARK) ? info->mm_width : 0), state); } else { #ifdef OW_I18N /* * FIX_ME: Binary compat. Need some flag to tell char or * wchar_t. */ olgx_draw_text(info, win, (wchar_t *) label, #else olgx_draw_text(info, win, (char *) label, #endif /* OW_I18N */ x + info->endcap_width, y + info->button_height - info->base_off, inside_width - ((state & OLGX_MENU_MARK) ? info->mm_width : 0), state); } } /* * Place the menu mark, if desired. */ if (state & OLGX_MENU_MARK) { /* * draw the menu mark. (fill_color != OLGX_BG2) causes the menu mark * to be filled in only when necessary */ if (info->three_d) olgx_draw_menu_mark(info, win, x + (width - info->endcap_width - info->mm_width), y + (info->button_height - info->mm_height - info->base_off), state, (fill_color != OLGX_BG2)); else olgx_draw_menu_mark(info, win, x + (width - info->endcap_width - info->mm_width), y + (info->button_height - info->mm_height - info->base_off), state, 0); } /* * Mark the item as inactive, if specified */ if (state & OLGX_INACTIVE) { olgx_stipple_rect(info, win, x, y, width, (height) ? height + 8 : Button_Height(info)); } } /* * Draw the outline of a variable height button Private Routine */ void olgx_draw_varheight_button(info, win, x, y, width, height, state) Graphics_info *info; Window win; int x, y, width, height; int state; { char string[2]; XSegment seg[4]; if (info->three_d) { /* 3D */ /* Draw all the four corners */ if (state & OLGX_INVOKED) XFillRectangle(info->dpy, win, info->gc_rec[OLGX_BG2]->gc, x + 1, y + 1, width - 2, height - 2); else XFillRectangle(info->dpy, win, info->gc_rec[OLGX_BG1]->gc, x + 1, y + 1, width - 2, height - 2); string[0] = PIXLABEL_BUTTON_UL; XDrawString(info->dpy, win, (state & OLGX_INVOKED) ? info->gc_rec[OLGX_BG3]->gc : info->gc_rec[OLGX_WHITE]->gc, x, y, (char *) string, 1); string[0] = PIXLABEL_BUTTON_UR; XDrawString(info->dpy, win, (state & OLGX_INVOKED) ? info->gc_rec[OLGX_BG3]->gc : info->gc_rec[OLGX_WHITE]->gc, x + width - VARHEIGHT_BUTTON_CORNER_DIMEN, y, (char *) string, 1); string[0] = PIXLABEL_BUTTON_LL; XDrawString(info->dpy, win, (state & OLGX_INVOKED) ? info->gc_rec[OLGX_WHITE]->gc : info->gc_rec[OLGX_BG3]->gc, x, y + height - VARHEIGHT_BUTTON_CORNER_DIMEN, (char *) string, 1); string[0] = PIXLABEL_BUTTON_LR; XDrawString(info->dpy, win, (state & OLGX_INVOKED) ? info->gc_rec[OLGX_WHITE]->gc : info->gc_rec[OLGX_BG3]->gc, x + width - VARHEIGHT_BUTTON_CORNER_DIMEN, y + height - VARHEIGHT_BUTTON_CORNER_DIMEN, (char *) string, 1); seg[0].x1 = x + VARHEIGHT_BUTTON_CORNER_DIMEN; seg[0].y1 = seg[0].y2 = y; seg[0].x2 = x + width - VARHEIGHT_BUTTON_CORNER_DIMEN; seg[1].x1 = seg[1].x2 = x; seg[1].y1 = y + VARHEIGHT_BUTTON_CORNER_DIMEN; seg[1].y2 = y + height - VARHEIGHT_BUTTON_CORNER_DIMEN; XDrawSegments(info->dpy, win, (state & OLGX_INVOKED) ? info->gc_rec[OLGX_BG3]->gc : info->gc_rec[OLGX_WHITE]->gc, seg, 2); seg[0].x1 = x + VARHEIGHT_BUTTON_CORNER_DIMEN; seg[0].y1 = seg[0].y2 = y + height - 1; seg[0].x2 = x + width - VARHEIGHT_BUTTON_CORNER_DIMEN; seg[1].x1 = seg[1].x2 = x + width - 1; seg[1].y1 = y + VARHEIGHT_BUTTON_CORNER_DIMEN; seg[1].y2 = y + height - VARHEIGHT_BUTTON_CORNER_DIMEN; XDrawSegments(info->dpy, win, (state & OLGX_INVOKED) ? info->gc_rec[OLGX_WHITE]->gc : info->gc_rec[OLGX_BG3]->gc, seg, 2); } else { /* 2D */ if (state & OLGX_INVOKED) XFillRectangle(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, x + 3, y + 3, width - 6, height - 6); else XFillRectangle(info->dpy, win, info->gc_rec[OLGX_WHITE]->gc, x + 1, y + 1, width - 2, height - 2); string[0] = PIXLABEL_BUTTON_UL; XDrawString(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, x, y, (char *) string, 1); string[0] = PIXLABEL_BUTTON_UR; XDrawString(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, x + width - VARHEIGHT_BUTTON_CORNER_DIMEN, y, (char *) string, 1); string[0] = PIXLABEL_BUTTON_LL; XDrawString(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, x, y + height - VARHEIGHT_BUTTON_CORNER_DIMEN, (char *) string, 1); string[0] = PIXLABEL_BUTTON_LR; XDrawString(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, x + width - VARHEIGHT_BUTTON_CORNER_DIMEN, y + height - VARHEIGHT_BUTTON_CORNER_DIMEN, (char *) string, 1); seg[0].x1 = x + VARHEIGHT_BUTTON_CORNER_DIMEN; seg[0].y1 = seg[0].y2 = y; seg[0].x2 = x + width - VARHEIGHT_BUTTON_CORNER_DIMEN; seg[1].x1 = seg[1].x2 = x; seg[1].y1 = y + VARHEIGHT_BUTTON_CORNER_DIMEN; seg[1].y2 = y + height - VARHEIGHT_BUTTON_CORNER_DIMEN; seg[2].x1 = x + VARHEIGHT_BUTTON_CORNER_DIMEN; seg[2].y1 = seg[2].y2 = y + height - 1; seg[2].x2 = x + width - VARHEIGHT_BUTTON_CORNER_DIMEN; seg[3].x1 = seg[3].x2 = x + width - 1; seg[3].y1 = y + VARHEIGHT_BUTTON_CORNER_DIMEN; seg[3].y2 = y + height - VARHEIGHT_BUTTON_CORNER_DIMEN; XDrawSegments(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, seg, 4); } /* * REMIND: the code below probably uses OLGX_BLACK incorrectly. It should * be changed to use OLGX_BG3 in 3D mode as appropriate. */ if (state & OLGX_DEFAULT) { string[0] = PIXLABEL_DEF_BUTTON_UL; XDrawString(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, x, y, (char *) string, 1); string[0] = PIXLABEL_DEF_BUTTON_UR; XDrawString(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, x + width - VARHEIGHT_BUTTON_CORNER_DIMEN, y, (char *) string, 1); string[0] = PIXLABEL_DEF_BUTTON_LL; XDrawString(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, x, y + height - VARHEIGHT_BUTTON_CORNER_DIMEN, (char *) string, 1); string[0] = PIXLABEL_DEF_BUTTON_LR; XDrawString(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, x + width - VARHEIGHT_BUTTON_CORNER_DIMEN, y + height - VARHEIGHT_BUTTON_CORNER_DIMEN, (char *) string, 1); seg[0].x1 = x + VARHEIGHT_BUTTON_CORNER_DIMEN; seg[0].y1 = seg[0].y2 = y + 2; seg[0].x2 = x + width - VARHEIGHT_BUTTON_CORNER_DIMEN - 1; seg[1].x1 = seg[1].x2 = x + 2; seg[1].y1 = y + VARHEIGHT_BUTTON_CORNER_DIMEN; seg[1].y2 = y + height - VARHEIGHT_BUTTON_CORNER_DIMEN - 1; seg[2].x1 = x + VARHEIGHT_BUTTON_CORNER_DIMEN; seg[2].y1 = seg[2].y2 = y + height - 1 - 2; seg[2].x2 = x + width - VARHEIGHT_BUTTON_CORNER_DIMEN - 1; seg[3].x1 = seg[3].x2 = x + width - 1 - 2; seg[3].y1 = y + VARHEIGHT_BUTTON_CORNER_DIMEN; seg[3].y2 = y + height - VARHEIGHT_BUTTON_CORNER_DIMEN - 1; XDrawSegments(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, seg, 4); } if (state & OLGX_BUSY) { if (!info->gc_rec[OLGX_BUSYGC]) olgx_initialise_gcrec(info, OLGX_BUSYGC); XFillRectangle(info->dpy, win, info->gc_rec[OLGX_BUSYGC]->gc, x + 2, y + 2, width - 4, height - 4); } } void olgx_draw_menu_mark(info, win, x, y, state, fill_in) Graphics_info *info; Window win; int state, fill_in; { char string[3]; if (state & OLGX_VERT_MENU_MARK) string[0] = VERT_MENU_MARK_UL; else if (state & OLGX_HORIZ_MENU_MARK) string[0] = HORIZ_MENU_MARK_UL; else if (state & OLGX_HORIZ_BACK_MENU_MARK) string[0] = HORIZ_BACK_MENU_MARK_UL; else if (state & OLGX_VERT_BACK_MENU_MARK) string[0] = VERT_BACK_MENU_MARK_UL; string[1] = string[0] + 1; if ((state & OLGX_INVOKED) && (!info->three_d)) XDrawString(info->dpy, win, info->gc_rec[OLGX_WHITE]->gc, x, y, &string[0], info->three_d ? 1 : 2); else XDrawString(info->dpy, win, info->three_d ? info->gc_rec[OLGX_BG3]->gc : info->gc_rec[OLGX_BLACK]->gc, x, y, &string[0], info->three_d ? 1 : 2); if (info->three_d) XDrawString(info->dpy, win, info->gc_rec[OLGX_WHITE]->gc, x, y, &string[1], 1); /* fill in the menu mark, if requested */ if (fill_in) { string[0] = string[0] + 2; XDrawString(info->dpy, win, (info->three_d)?info->gc_rec[OLGX_BG2]->gc : info->gc_rec[OLGX_BLACK]->gc, x, y, &string[0], 1); } } void olgx_draw_abbrev_button(info, win, x, y, state) Graphics_info *info; Window win; int x, y; int state; { XTextItem item; char string[3]; int top_color, bottom_color, fill_color; item.nchars = 1; item.font = None; item.chars = string; item.delta = 0; if (!info->three_d) { /* 2d */ if (state & OLGX_ERASE) XFillRectangle(info->dpy, win, info->gc_rec[OLGX_WHITE]->gc, x, y, Abbrev_MenuButton_Width(info), Abbrev_MenuButton_Width(info)); if (state & OLGX_BUSY) { if (!info->gc_rec[OLGX_BUSYGC]) olgx_initialise_gcrec(info, OLGX_BUSYGC); string[0] = ABBREV_MENU_FILL; XDrawText(info->dpy, win, info->gc_rec[OLGX_BUSYGC]->gc, x, y, &item, 1); } if (state & OLGX_INVOKED) { XFillRectangle(info->dpy, win, info->gc_rec[OLGX_WHITE]->gc, x + 2, y + 2, (Abbrev_MenuButton_Width(info) - 4), (Abbrev_MenuButton_Width(info) - 4)); string[0] = OLG_ABBREV_MENU_BUTTON_INVERTED; XDrawText(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, x, y, &item, 1); } else { string[0] = OLG_ABBREV_MENU_BUTTON; XDrawText(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, x, y, &item, 1); } } else { /* 3d */ if (state & OLGX_INVOKED) { top_color = OLGX_BG3; bottom_color = OLGX_WHITE; fill_color = OLGX_BG2; } else { top_color = OLGX_WHITE; bottom_color = OLGX_BG3; fill_color = OLGX_BG1; } if (state & OLGX_BUSY) { if (!info->gc_rec[OLGX_BUSYGC]) olgx_initialise_gcrec(info, OLGX_BUSYGC); fill_color = OLGX_BUSYGC; } string[0] = ABBREV_MENU_UL; XDrawText(info->dpy, win, info->gc_rec[top_color]->gc, x, y, &item, 1); string[0] = ABBREV_MENU_LR; XDrawText(info->dpy, win, info->gc_rec[bottom_color]->gc, x, y, &item, 1); string[0] = ABBREV_MENU_FILL; XDrawText(info->dpy, win, info->gc_rec[fill_color]->gc, x, y, &item, 1); olgx_draw_menu_mark(info, win, x + ((Abbrev_MenuButton_Width(info) - info->mm_width) >> 1), y + ((1 + Abbrev_MenuButton_Height(info) - info->mm_height) >> 1), OLGX_VERT_MENU_MARK, 1); } /* If it is inactive fill the rectangle with inactive pixmap */ if (state & OLGX_INACTIVE) { olgx_stipple_rect(info, win, x, y, Abbrev_MenuButton_Width(info), Abbrev_MenuButton_Height(info)); } } void olgx_stipple_rect(info, win, x, y, width, height) Graphics_info *info; Window win; int x, y, width, height; { if (!info->gc_rec[OLGX_GREY_OUT]) olgx_initialise_gcrec(info, OLGX_GREY_OUT); XFillRectangle(info->dpy, win, info->gc_rec[OLGX_GREY_OUT]->gc, x, y, width, height); } void olgx_draw_text(info, win, string, x, y, max_width, state) Graphics_info *info; Window win; #ifdef OW_I18N wchar_t *string; #else char *string; #endif /* OW_I18N */ int x, y, max_width; int state; { #ifdef OW_I18N int len = wslen(string); #else int len = strlen(string); #endif /* OW_I18N */ register int i; short more_flag = 0; /* * if the string is too long, we'll have to truncate it max_width == 0 * implies don't truncate. */ #ifdef OW_I18N if (max_width && XwcTextEscapement(info->textfontset, string, len) > max_width) { #else if (max_width && XTextWidth(info->textfont, string, len) > max_width) { #endif /* OW_I18N */ int current_width = 0; for (i = 0; (i < len && current_width <= max_width); i++) { #ifdef OW_I18N current_width += XwcTextEscapement(info->textfontset, &string[i], 1); #else current_width += XTextWidth(info->textfont, &string[i], 1); #endif /* OW_I18N */ } /* * at this point, i-1 represents the number of chars of string that * will fit into max_width. */ len = i - 2; if (state & OLGX_MORE_ARROW) more_flag = 1; } if (!info->gc_rec[OLGX_TEXTGC]) olgx_initialise_gcrec(info, OLGX_TEXTGC); if (!info->three_d) if (!info->gc_rec[OLGX_TEXTGC_REV]) olgx_initialise_gcrec(info, OLGX_TEXTGC_REV); if ((state & OLGX_INVOKED) && !(info->three_d)) #ifdef OW_I18N XwcDrawString(info->dpy, win, info->textfontset, info->gc_rec[OLGX_TEXTGC_REV]->gc, x, y, string, len); else XwcDrawString(info->dpy, win, info->textfontset, info->gc_rec[OLGX_TEXTGC]->gc, x, y, string, len); #else OW_I18N XDrawString(info->dpy, win, info->gc_rec[OLGX_TEXTGC_REV]->gc, x, y, string, len); else XDrawString(info->dpy, win, info->gc_rec[OLGX_TEXTGC]->gc, x, y, string, len); #endif /* OW_I18N */ if (more_flag) /* render a more arrow at the end of the string */ #ifdef OW_I18N olgx_draw_menu_mark(info,win, x+XwcTextEscapement(info->textfontset,string,len)+1, #else olgx_draw_menu_mark(info,win,x+XTextWidth(info->textfont,string,len)+1 , #endif /* OW_I18N */ y-MenuMark_Height(info),OLGX_HORIZ_MENU_MARK,1); } void olgx_draw_pixmap_label(info, win, pix, x, y, width, height, state) Graphics_info *info; Window win; Pixmap pix; int x, y, width, height, state; { unsigned long savebg1; unsigned long savebg2; Window root; int x_dummy,y_dummy; unsigned int w_dummy,h_dummy,bw_dummy; unsigned int depth; GC gc; if (!info->gc_rec[OLGX_TEXTGC]) olgx_initialise_gcrec(info, OLGX_TEXTGC); if (!info->three_d) if (!info->gc_rec[OLGX_TEXTGC_REV]) olgx_initialise_gcrec(info, OLGX_TEXTGC_REV); if ((state & OLGX_INVOKED)) { if (info->three_d) { /* * reset the value of the textgc background from bg1 to bg2 in * invoked mode to get the transparent pixmap effect */ savebg1 = olgx_get_single_color(info, OLGX_BG1); savebg2 = olgx_get_single_color(info, OLGX_BG2); olgx_set_single_color(info, OLGX_BG1, savebg2, OLGX_SPECIAL); gc = info->gc_rec[OLGX_TEXTGC]->gc; } else { if (!info->gc_rec[OLGX_TEXTGC_REV]) olgx_initialise_gcrec(info, OLGX_TEXTGC_REV); gc = info->gc_rec[OLGX_TEXTGC_REV]->gc; } } else gc = info->gc_rec[OLGX_TEXTGC]->gc; /* * Performance Problem - RoundTrip request * Depth should be passed as part of Pixlabel struct */ XGetGeometry(info->dpy,pix,&root,&x_dummy,&y_dummy,&w_dummy, &h_dummy,&bw_dummy,&depth); if (depth > 1) XCopyArea(info->dpy, pix, /* src */ win, /* dest */ gc, 0, 0, /* src x,y */ width, height, x, y); else XCopyPlane(info->dpy, pix, /* src */ win, /* dest */ gc, 0, 0, /* src x,y */ width, height, x, y, (unsigned long) 1); /* Restore the original colors to the textgc */ if ((state & OLGX_INVOKED) && (info->three_d)) olgx_set_single_color(info, OLGX_BG1, savebg1, OLGX_SPECIAL); } void olgx_draw_textscroll_button(info, win, x, y, state) Graphics_info *info; Window win; int x, y; int state; { char string[2]; int width, height; int arr_x, arr_y; /* * A small hack to calculate the width, arrow postiton..etc since this * routine is expected to tbe used infrequently it is not included as * part of the info struct and the follwoing calculations take place each * time-- a penalty affordable at the cost of infrequency * */ if ((Abbrev_MenuButton_Height(info)) < 20) { width = height = Abbrev_MenuButton_Height(info); arr_y = 3; arr_x = (width / 3) - 1; } else { width = height = 25; /* Special case size-19 */ arr_y = 5; arr_x = 7; } if (!(info->three_d)) { /* Start 2-D */ if (state & OLGX_ERASE) XFillRectangle(info->dpy, win, info->gc_rec[OLGX_WHITE]->gc, x, y, width, height); if (state & OLGX_SCROLL_FORWARD) { if (state & OLGX_INVOKED) string[0] = TEXTSCROLLBUTTON_RIGHT_INV; else string[0] = TEXTSCROLLBUTTON_RIGHT; XDrawString(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, x, y, string,1); } else if (state & OLGX_SCROLL_BACKWARD) { if (state & OLGX_INVOKED) string[0] = TEXTSCROLLBUTTON_LEFT_INV; else string[0] = TEXTSCROLLBUTTON_LEFT; XDrawString(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, x, y, string,1); } } /* End 2-D */ else { /* Start 3-D */ olgx_draw_box(info, win, x, y, width, height, state, 0); if (state & OLGX_SCROLL_FORWARD) olgx_draw_menu_mark(info, win, x + arr_x, y + arr_y, OLGX_HORIZ_MENU_MARK | OLGX_INVOKED, 1); else olgx_draw_menu_mark(info, win, x + arr_x - 1, y + arr_y, OLGX_HORIZ_BACK_MENU_MARK | OLGX_INVOKED, 1); } /* End 3-D */ if (state & OLGX_INACTIVE) olgx_stipple_rect(info, win, x, y, TextScrollButton_Width(info), TextScrollButton_Height(info)); } void olgx_draw_numscroll_button(info, win, x, y, state) Graphics_info *info; Window win; int x, y, state; { char string[2]; int width, height, arr_x, arr_y; width = height = TextScrollButton_Height(info); if (width < 20) { arr_y = 3; arr_x = (width / 3) - 1; } else { arr_y = 5; arr_x = 7; } if (!info->three_d) { /* draw 2-D */ if (state & OLGX_ERASE) XFillRectangle(info->dpy, win, info->gc_rec[OLGX_WHITE]->gc, x, y, NumScrollButton_Width(info), height); if (state & OLGX_SCROLL_FORWARD) string[0] = NUMERIC_SCROLL_BUTTON_RIGHT_INV; else if (state & OLGX_SCROLL_BACKWARD) string[0] = NUMERIC_SCROLL_BUTTON_LEFT_INV; else string[0] = NUMERIC_SCROLL_BUTTON_NORMAL; XDrawString(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, x, y, string, 1); } else { /* draw 3-D */ olgx_draw_box(info, win, x, y, width, height, (state & OLGX_SCROLL_BACKWARD) ? OLGX_INVOKED : OLGX_NORMAL, 0); olgx_draw_box(info, win, x + width, y, width, height, (state & OLGX_SCROLL_FORWARD) ? OLGX_INVOKED : OLGX_NORMAL, 0); olgx_draw_menu_mark(info, win, x + arr_x, y + arr_y, OLGX_VERT_BACK_MENU_MARK | OLGX_INVOKED, 1); olgx_draw_menu_mark(info, win, x + arr_x + width, y + arr_y, OLGX_VERT_MENU_MARK | OLGX_INVOKED, 1); } if (state & OLGX_INACTIVE) olgx_stipple_rect(info, win, x, y, NumScrollButton_Width(info), NumScrollButton_Height(info)); if (state & OLGX_SCROLL_NO_FORWARD) olgx_stipple_rect(info, win, x + TextScrollButton_Width(info) - 1, y, TextScrollButton_Width(info), NumScrollButton_Height(info)); if (state & OLGX_SCROLL_NO_BACKWARD) olgx_stipple_rect(info, win, x, y, TextScrollButton_Width(info) - 2, NumScrollButton_Height(info)); } #endif SVR4 xview-3.2p1.4/clients/olvwm-4.1/ol_button.svr4.c100644 1750 1750 145704 6332162677 16664 0ustar mbmb#ifdef IDENT #ident "%W% olvwm version %G%" #endif /* * Based on #ident "@(#)ol_button.c 1.62 93/06/28 SMI" This file comes from the xview 3.2 release and must be used in conjuction with xview 3.2 olgx, which is the version of olgx which ships with Solaris 2.3. * */ #if defined(SVR4) || defined(XVIEW32) /* * Copyright 1989-1990 Sun Microsystems See LEGAL_NOTICE for terms of * disclosure. */ /* * OPEN LOOK object drawing package Sun Microsystems, Inc. * * OLGX_button.c Menu button module */ #include #include #include #include #include #include "i18n.h" #include "olgx_impl.h" #include "olwm.h" #include "win.h" #include "menu.h" /* * Private function declarations */ void olgx_set_busy_stipple(); void olgx_draw_pixmap_label(); void olgx_draw_ximage_label(); static void olgx_draw_accel_label_internal(); static void olgx_draw_diamond_mark(); static void olgx_draw_label(); void olgx_draw_button(info, win, x, y, width, height, label, state) Graphics_info *info; Window win; int x, y, width, height; void *label; int state; { XTextItem item; char string[STRING_SIZE]; short add_ins[STRING_SIZE]; register int i; int num_add; int inside_width; /* width minus endcaps */ int top_color, bottom_color, fill_color; inside_width = width - (2 * info->endcap_width); num_add = calc_add_ins(inside_width - 1, add_ins); item.nchars = 2 + num_add; item.font = None; item.chars = string; item.delta = 0; if (height && (height != Button_Height(info))) /* variable height button-- possibly a pixmap label */ olgx_draw_varheight_button(info, win, x, y, width, height, state); else { if (info->three_d) { /* * 3d determine what colors we should draw in */ if (state & OLGX_INVOKED) { /* invoked button */ top_color = OLGX_BG3; bottom_color = OLGX_WHITE; fill_color = OLGX_BG2; } else if ((state & OLGX_DEFAULT) && (state & OLGX_MENU_ITEM)) { /* default menu item */ top_color = bottom_color = OLGX_BG3; fill_color = OLGX_BG1; } else if (state & OLGX_MENU_ITEM && state & OLGX_BUSY) { /* busy menu item */ fill_color = top_color = bottom_color = OLGX_BG1; } else if (state & OLGX_MENU_ITEM) { /* normal menu item */ fill_color = top_color = bottom_color = NONE; } else { /* normal panel button */ top_color = OLGX_WHITE; bottom_color = OLGX_BG3; fill_color = OLGX_BG1; } if (state & OLGX_BUSY) { /* * This routine changes GC information on-the-fly, but it is * assumed that OLGX_BUSY won't be called often, so it makes * sense to use the same GC rather than one for ` each color. */ if (!info->gc_rec[OLGX_BUSYGC]) olgx_initialise_gcrec(info, OLGX_BUSYGC); fill_color = OLGX_BUSYGC; } /* only check erase on transparent items */ if (fill_color == NONE) { if (state & OLGX_ERASE) { /* * to improve performance, we erase a rectangle the size * of a button rather than drawing a real button. */ XFillRectangle(info->dpy, win, info->gc_rec[OLGX_BG1]->gc, x, y, width, Button_Height(info)); } } else { /* if not transparent, actually draw the * button */ if (top_color != NONE) { /* draw the top part of the button */ string[0] = BUTTON_UL; VARIABLE_LENGTH_MACRO(1, BUTTON_TOP_1); string[i + 1] = BUTTON_UR; XDrawText(info->dpy, win, info->gc_rec[top_color]->gc, x, y, &item, 1); } if (bottom_color != NONE) { /* draw the bottom part of the button */ string[0] = BUTTON_LL; VARIABLE_LENGTH_MACRO(1, BUTTON_BOTTOM_1); string[i + 1] = BUTTON_LR; XDrawText(info->dpy, win, info->gc_rec[bottom_color]->gc, x, y, &item, 1); } /* Fill in the button */ string[0] = BUTTON_LEFT_ENDCAP_FILL; VARIABLE_LENGTH_MACRO(1, BUTTON_FILL_1); string[i + 1] = BUTTON_RIGHT_ENDCAP_FILL; XDrawText(info->dpy, win, info->gc_rec[fill_color]->gc, x, y, &item, 1); /* draw the inner border of a default button (not menu item) */ if (!(state & OLGX_MENU_ITEM) && (state & OLGX_DEFAULT)) { string[0] = DFLT_BUTTON_LEFT_ENDCAP; VARIABLE_LENGTH_MACRO(1, DFLT_BUTTON_MIDDLE_1); string[i + 1] = DFLT_BUTTON_RIGHT_ENDCAP; XDrawText(info->dpy, win, info->gc_rec[OLGX_BG3]->gc, x, y, &item, 1); } } /* Not transparent */ } /* End 3D */ else { /* draw 2d button */ if (state & OLGX_ERASE) XFillRectangle(info->dpy, win, info->gc_rec[OLGX_WHITE]->gc, x, y, width + 1, Button_Height(info)); if ((state & OLGX_INVOKED)) { string[0] = BUTTON_FILL_2D_LEFTENDCAP; VARIABLE_LENGTH_MACRO(1, BUTTON_FILL_2D_MIDDLE_1); string[i + 1] = BUTTON_FILL_2D_RIGHTENDCAP; XDrawText(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, x, y, &item, 1); } else if (state & OLGX_BUSY) { if (!info->gc_rec[OLGX_BUSYGC]) olgx_initialise_gcrec(info, OLGX_BUSYGC); string[0] = BUTTON_FILL_2D_LEFTENDCAP; VARIABLE_LENGTH_MACRO(1, BUTTON_FILL_2D_MIDDLE_1); string[i + 1] = BUTTON_FILL_2D_RIGHTENDCAP; XDrawText(info->dpy, win, info->gc_rec[OLGX_BUSYGC]->gc, x, y, &item, 1); } else if (!(state & OLGX_MENU_ITEM) && (state & OLGX_DEFAULT)) { /* draw the 2d default ring if not menu-item */ string[0] = DFLT_BUTTON_LEFT_ENDCAP; VARIABLE_LENGTH_MACRO(1, DFLT_BUTTON_MIDDLE_1); string[i + 1] = DFLT_BUTTON_RIGHT_ENDCAP; XDrawText(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, x, y, &item, 1); } else if (state & OLGX_DEFAULT) { /* draw the 2d default ring for menu item */ string[0] = MENU_DFLT_OUTLINE_LEFT_ENDCAP; VARIABLE_LENGTH_MACRO(1, MENU_DFLT_OUTLINE_MIDDLE_1); string[i + 1] = MENU_DFLT_OUTLINE_RIGHT_ENDCAP; XDrawText(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, x, y, &item, 1); } /* draw the button if it is not a menu item */ if (!(state & OLGX_MENU_ITEM)) { string[0] = BUTTON_OUTLINE_LEFT_ENDCAP; VARIABLE_LENGTH_MACRO(1, BUTTON_OUTLINE_MIDDLE_1); string[i + 1] = BUTTON_OUTLINE_RIGHT_ENDCAP; XDrawText(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, x, y, &item, 1); } } } /* * Place the label, if specified. */ if (label) { if (state & OLGX_LABEL_IS_PIXMAP) { int centerx, centery; centerx = (width - ((Pixlabel *) label)->width >> 1); centery = (height - ((Pixlabel *) label)->height >> 1); olgx_draw_pixmap_label(info, win, ((Pixlabel *) label)->pixmap, x + ((centerx > 0) ? centerx : 0), y + ((centery > 0) ? centery : 0), (((Pixlabel *) label)->width > width)? width:((Pixlabel *)label)->width, (height) ? height : Button_Height(info) - 2, state); } else if (state & OLGX_LABEL_IS_XIMAGE) { int centerx, centery; centerx = (width - ((Pixlabel *) label)->width >> 1); centery = (height - ((Pixlabel *) label)->height >> 1); olgx_draw_ximage_label(info, win, ((Ximlabel *) label)->ximage, x + ((centerx > 0) ? centerx : 0), y + ((centery > 0) ? centery : 0), (((Pixlabel *) label)->width > width)? width:((Pixlabel *)label)->width, (height) ? height : Button_Height(info) - 2, state); } else if (state & OLGX_LABEL_IS_COMB) { Comblabel *combLabel; int centery; combLabel = (Comblabel *) label; centery = (((height) ? height : Button_Height(info) - 2) - combLabel->pixlabel.height) >> 1; olgx_draw_pixmap_label(info, win, combLabel->pixlabel.pixmap, x + info->endcap_width, y + ((centery > 0) ? centery : 0), combLabel->pixlabel.width, (height) ? combLabel->pixlabel.height : Button_Height(info) - 2, state); #ifdef OW_I18N olgx_draw_text(info, win, (wchar_t *) combLabel->strlabel, #else olgx_draw_text(info, win, (char *) combLabel->strlabel, #endif x + info->endcap_width + combLabel->pixlabel.width + 5, y + info->button_height - info->base_off, inside_width - combLabel->pixlabel.width - ((state & OLGX_MENU_MARK) ? info->mm_width : 0), state); } else { #ifdef OW_I18N olgx_draw_text(info, win, (wchar_t *) label, #else olgx_draw_text(info, win, (char *) label, #endif /* OW_I18N */ x + info->endcap_width, y + info->button_height - info->base_off, inside_width - ((state & OLGX_MENU_MARK) ? info->mm_width : 0), state & ~OLGX_INACTIVE); } } /* * Place the menu mark, if desired. */ if (state & OLGX_MENU_MARK) { /* * draw the menu mark. (fill_color != OLGX_BG2) causes the menu mark * to be filled in only when necessary */ if (info->three_d) olgx_draw_menu_mark(info, win, x + (width - info->endcap_width - info->mm_width), y + (info->button_height - info->mm_height - info->base_off), state & ~OLGX_INACTIVE, (fill_color != OLGX_BG2)); else olgx_draw_menu_mark(info, win, x + (width - info->endcap_width - info->mm_width), y + (info->button_height - info->mm_height - info->base_off), state & ~OLGX_INACTIVE, 0); } /* * Mark the item as inactive, if specified */ if (state & OLGX_INACTIVE) { olgx_stipple_rect(info, win, x, y, width, (height) ? height + 1 : Button_Height(info)); } } /* * Draw the outline of a variable height button Private Routine */ void olgx_draw_varheight_button(info, win, x, y, width, height, state) Graphics_info *info; Window win; int x, y, width, height; int state; { char string[2]; XSegment seg[4]; if (info->three_d) { /* 3D */ /* Draw all the four corners */ if (state & OLGX_INVOKED) XFillRectangle(info->dpy, win, info->gc_rec[OLGX_BG2]->gc, x + 1, y + 1, width - 2, height - 2); else XFillRectangle(info->dpy, win, info->gc_rec[OLGX_BG1]->gc, x + 1, y + 1, width - 2, height - 2); string[0] = PIXLABEL_BUTTON_UL; XDrawString(info->dpy, win, (state & OLGX_INVOKED) ? info->gc_rec[OLGX_BG3]->gc : info->gc_rec[OLGX_WHITE]->gc, x, y, (char *) string, 1); string[0] = PIXLABEL_BUTTON_UR; XDrawString(info->dpy, win, (state & OLGX_INVOKED) ? info->gc_rec[OLGX_BG3]->gc : info->gc_rec[OLGX_WHITE]->gc, x + width - VARHEIGHT_BUTTON_CORNER_DIMEN, y, (char *) string, 1); string[0] = PIXLABEL_BUTTON_LL; XDrawString(info->dpy, win, (state & OLGX_INVOKED) ? info->gc_rec[OLGX_WHITE]->gc : info->gc_rec[OLGX_BG3]->gc, x, y + height - VARHEIGHT_BUTTON_CORNER_DIMEN, (char *) string, 1); string[0] = PIXLABEL_BUTTON_LR; XDrawString(info->dpy, win, (state & OLGX_INVOKED) ? info->gc_rec[OLGX_WHITE]->gc : info->gc_rec[OLGX_BG3]->gc, x + width - VARHEIGHT_BUTTON_CORNER_DIMEN, y + height - VARHEIGHT_BUTTON_CORNER_DIMEN, (char *) string, 1); seg[0].x1 = x + VARHEIGHT_BUTTON_CORNER_DIMEN; seg[0].y1 = seg[0].y2 = y; seg[0].x2 = x + width - VARHEIGHT_BUTTON_CORNER_DIMEN; seg[1].x1 = seg[1].x2 = x; seg[1].y1 = y + VARHEIGHT_BUTTON_CORNER_DIMEN; seg[1].y2 = y + height - VARHEIGHT_BUTTON_CORNER_DIMEN; XDrawSegments(info->dpy, win, (state & OLGX_INVOKED) ? info->gc_rec[OLGX_BG3]->gc : info->gc_rec[OLGX_WHITE]->gc, seg, 2); seg[0].x1 = x + VARHEIGHT_BUTTON_CORNER_DIMEN; seg[0].y1 = seg[0].y2 = y + height - 1; seg[0].x2 = x + width - VARHEIGHT_BUTTON_CORNER_DIMEN; seg[1].x1 = seg[1].x2 = x + width - 1; seg[1].y1 = y + VARHEIGHT_BUTTON_CORNER_DIMEN; seg[1].y2 = y + height - VARHEIGHT_BUTTON_CORNER_DIMEN; XDrawSegments(info->dpy, win, (state & OLGX_INVOKED) ? info->gc_rec[OLGX_WHITE]->gc : info->gc_rec[OLGX_BG3]->gc, seg, 2); } else { /* 2D */ if (state & OLGX_INVOKED) XFillRectangle(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, x + 3, y + 3, width - 6, height - 6); else XFillRectangle(info->dpy, win, info->gc_rec[OLGX_WHITE]->gc, x + 1, y + 1, width - 2, height - 2); string[0] = PIXLABEL_BUTTON_UL; XDrawString(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, x, y, (char *) string, 1); string[0] = PIXLABEL_BUTTON_UR; XDrawString(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, x + width - VARHEIGHT_BUTTON_CORNER_DIMEN, y, (char *) string, 1); string[0] = PIXLABEL_BUTTON_LL; XDrawString(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, x, y + height - VARHEIGHT_BUTTON_CORNER_DIMEN, (char *) string, 1); string[0] = PIXLABEL_BUTTON_LR; XDrawString(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, x + width - VARHEIGHT_BUTTON_CORNER_DIMEN, y + height - VARHEIGHT_BUTTON_CORNER_DIMEN, (char *) string, 1); seg[0].x1 = x + VARHEIGHT_BUTTON_CORNER_DIMEN; seg[0].y1 = seg[0].y2 = y; seg[0].x2 = x + width - VARHEIGHT_BUTTON_CORNER_DIMEN; seg[1].x1 = seg[1].x2 = x; seg[1].y1 = y + VARHEIGHT_BUTTON_CORNER_DIMEN; seg[1].y2 = y + height - VARHEIGHT_BUTTON_CORNER_DIMEN; seg[2].x1 = x + VARHEIGHT_BUTTON_CORNER_DIMEN; seg[2].y1 = seg[2].y2 = y + height - 1; seg[2].x2 = x + width - VARHEIGHT_BUTTON_CORNER_DIMEN; seg[3].x1 = seg[3].x2 = x + width - 1; seg[3].y1 = y + VARHEIGHT_BUTTON_CORNER_DIMEN; seg[3].y2 = y + height - VARHEIGHT_BUTTON_CORNER_DIMEN; XDrawSegments(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, seg, 4); } /* * REMIND: the code below probably uses OLGX_BLACK incorrectly. It should * be changed to use OLGX_BG3 in 3D mode as appropriate. */ if (state & OLGX_DEFAULT) { string[0] = PIXLABEL_DEF_BUTTON_UL; XDrawString(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, x, y, (char *) string, 1); string[0] = PIXLABEL_DEF_BUTTON_UR; XDrawString(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, x + width - VARHEIGHT_BUTTON_CORNER_DIMEN, y, (char *) string, 1); string[0] = PIXLABEL_DEF_BUTTON_LL; XDrawString(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, x, y + height - VARHEIGHT_BUTTON_CORNER_DIMEN, (char *) string, 1); string[0] = PIXLABEL_DEF_BUTTON_LR; XDrawString(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, x + width - VARHEIGHT_BUTTON_CORNER_DIMEN, y + height - VARHEIGHT_BUTTON_CORNER_DIMEN, (char *) string, 1); seg[0].x1 = x + VARHEIGHT_BUTTON_CORNER_DIMEN; seg[0].y1 = seg[0].y2 = y + 2; seg[0].x2 = x + width - VARHEIGHT_BUTTON_CORNER_DIMEN - 1; seg[1].x1 = seg[1].x2 = x + 2; seg[1].y1 = y + VARHEIGHT_BUTTON_CORNER_DIMEN; seg[1].y2 = y + height - VARHEIGHT_BUTTON_CORNER_DIMEN - 1; seg[2].x1 = x + VARHEIGHT_BUTTON_CORNER_DIMEN; seg[2].y1 = seg[2].y2 = y + height - 1 - 2; seg[2].x2 = x + width - VARHEIGHT_BUTTON_CORNER_DIMEN - 1; seg[3].x1 = seg[3].x2 = x + width - 1 - 2; seg[3].y1 = y + VARHEIGHT_BUTTON_CORNER_DIMEN; seg[3].y2 = y + height - VARHEIGHT_BUTTON_CORNER_DIMEN - 1; XDrawSegments(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, seg, 4); } if (state & OLGX_BUSY) { if (!info->gc_rec[OLGX_BUSYGC]) olgx_initialise_gcrec(info, OLGX_BUSYGC); XFillRectangle(info->dpy, win, info->gc_rec[OLGX_BUSYGC]->gc, x + 2, y + 2, width - 4, height - 4); } } void olgx_draw_menu_mark(info, win, x, y, state, fill_in) Graphics_info *info; Window win; int state, fill_in; { char string[3]; GC gc; if (state & OLGX_VERT_MENU_MARK) string[0] = VERT_MENU_MARK_UL; else if (state & OLGX_HORIZ_MENU_MARK) string[0] = HORIZ_MENU_MARK_UL; else if (state & OLGX_HORIZ_BACK_MENU_MARK) string[0] = HORIZ_BACK_MENU_MARK_UL; else if (state & OLGX_VERT_BACK_MENU_MARK) string[0] = VERT_BACK_MENU_MARK_UL; string[1] = string[0] + 1; if ((state & OLGX_INVOKED) && (!info->three_d)) { gc = info->gc_rec[OLGX_WHITE]->gc; } else { if (info->three_d) { gc = info->gc_rec[OLGX_BG3]->gc; } else { gc = info->gc_rec[OLGX_BLACK]->gc; } } if (state & OLGX_INACTIVE) { XSetFillStyle(info->dpy,gc,FillStippled); } XDrawString(info->dpy, win, gc, x, y, &string[0], info->three_d ? 1 : 2); if (state & OLGX_INACTIVE) { XSetFillStyle(info->dpy,gc,FillSolid); } if (info->three_d) { gc = info->gc_rec[OLGX_WHITE]->gc; if (state & OLGX_INACTIVE) { XSetFillStyle(info->dpy,gc,FillStippled); } XDrawString(info->dpy, win, gc, x, y, &string[1], 1); if (state & OLGX_INACTIVE) { XSetFillStyle(info->dpy,gc,FillSolid); } } /* fill in the menu mark, if requested */ if (fill_in) { string[0] = string[0] + 2; if (info->three_d) { gc = info->gc_rec[OLGX_BG2]->gc; } else { gc = info->gc_rec[OLGX_BLACK]->gc; } if (state & OLGX_INACTIVE) { XSetFillStyle(info->dpy,gc,FillStippled); } XDrawString(info->dpy, win, gc, x, y, &string[0], 1); if (state & OLGX_INACTIVE) { XSetFillStyle(info->dpy,gc,FillSolid); } } } void olgx_draw_abbrev_button(info, win, x, y, state) Graphics_info *info; Window win; int x, y; int state; { XTextItem item; char string[3]; int top_color, bottom_color, fill_color; item.nchars = 1; item.font = None; item.chars = string; item.delta = 0; if (!info->three_d) { /* 2d */ if (state & OLGX_ERASE) XClearArea(info->dpy, win, x, y, Abbrev_MenuButton_Width(info), Abbrev_MenuButton_Width(info), 0); if (state & OLGX_BUSY) { if (!info->gc_rec[OLGX_BUSYGC]) olgx_initialise_gcrec(info, OLGX_BUSYGC); string[0] = ABBREV_MENU_FILL; XDrawText(info->dpy, win, info->gc_rec[OLGX_BUSYGC]->gc, x, y, &item, 1); } if (state & OLGX_INVOKED) { XFillRectangle(info->dpy, win, info->gc_rec[OLGX_WHITE]->gc, x + 2, y + 2, (Abbrev_MenuButton_Width(info) - 4), (Abbrev_MenuButton_Width(info) - 4)); string[0] = OLG_ABBREV_MENU_BUTTON_INVERTED; XDrawText(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, x, y, &item, 1); } else { string[0] = OLG_ABBREV_MENU_BUTTON; XDrawText(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, x, y, &item, 1); } } else { /* 3d */ if (state & OLGX_INVOKED) { top_color = OLGX_BG3; bottom_color = OLGX_WHITE; fill_color = OLGX_BG2; } else { top_color = OLGX_WHITE; bottom_color = OLGX_BG3; fill_color = OLGX_BG1; } if (state & OLGX_BUSY) { if (!info->gc_rec[OLGX_BUSYGC]) olgx_initialise_gcrec(info, OLGX_BUSYGC); fill_color = OLGX_BUSYGC; } string[0] = ABBREV_MENU_UL; XDrawText(info->dpy, win, info->gc_rec[top_color]->gc, x, y, &item, 1); string[0] = ABBREV_MENU_LR; XDrawText(info->dpy, win, info->gc_rec[bottom_color]->gc, x, y, &item, 1); string[0] = ABBREV_MENU_FILL; XDrawText(info->dpy, win, info->gc_rec[fill_color]->gc, x, y, &item, 1); olgx_draw_menu_mark(info, win, x + ((Abbrev_MenuButton_Width(info) - info->mm_width) >> 1), y + ((1 + Abbrev_MenuButton_Height(info) - info->mm_height) >> 1), OLGX_VERT_MENU_MARK & ~OLGX_INACTIVE, 1); } /* If it is inactive fill the rectangle with inactive pixmap */ if (state & OLGX_INACTIVE) { olgx_stipple_rect(info, win, x, y, Abbrev_MenuButton_Width(info), Abbrev_MenuButton_Height(info)); } } void olgx_stipple_rect(info, win, x, y, width, height) Graphics_info *info; Window win; int x, y, width, height; { if (!info->gc_rec[OLGX_GREY_OUT]) olgx_initialise_gcrec(info, OLGX_GREY_OUT); XFillRectangle(info->dpy, win, info->gc_rec[OLGX_GREY_OUT]->gc, x, y, width, height); } void olgx_draw_text(info, win, string, x, y, max_width, state) Graphics_info *info; Window win; #ifdef OW_I18N void *string; #else char *string; #endif /* OW_I18N */ int x, y, max_width; int state; { #ifdef OW_I18N int len; int mb_len; char *mbs; wchar_t *wcs; #else unsigned int len; #endif /* OW_I18N */ int current_width = 0; int width; GC gc; register int i; short more_flag = 0; #ifdef OW_I18N if ((Olgx_Flags(info) & OLGX_FONTSET) && (state & OLGX_LABEL_IS_WCS)) { wcs = (wchar_t *) string; len = wslen(wcs); } else { mbs = (char *) string; len = strlen(mbs); } #else len = strlen(string); #endif /* OW_I18N */ /* * if the string is too long, we'll have to truncate it max_width == 0 * implies don't truncate. */ #ifdef OW_I18N if (Olgx_Flags(info) & OLGX_FONTSET) { if (state & OLGX_LABEL_IS_WCS) { /* * Case for the wide character string */ width = XwcTextEscapement(info->textfontset, wcs, len); if (max_width && width > max_width) { for (i = 0; (i < len && current_width <= max_width); i++) { current_width += XwcTextEscapement(info->textfontset, &wcs[i], 1); } len = i - 2; if (state & OLGX_MORE_ARROW) more_flag = 1; } width = XwcTextEscapement(info->textfontset, wcs, len); } else { /* * Case for the multibyte string. It might be faster to * convert it to wide char.... */ width = XmbTextEscapement(info->textfontset, mbs, len); if (max_width && width > max_width) { for (i = 0; (i < len && current_width <= max_width); ) { mb_len = mblen(&mbs[i],len); current_width += XmbTextEscapement(info->textfontset, &mbs[i], mb_len); i += mb_len; } len = i - 2; if (state & OLGX_MORE_ARROW) more_flag = 1; width = XmbTextEscapement(info->textfontset, mbs, len); } } } else { width = XTextWidth(TextFont_Struct(info), mbs, len); if (max_width && width > max_width) { for (i = 0; (i < len && current_width <= max_width); i++) { current_width += XTextWidth(TextFont_Struct(info), &mbs[i], 1); } len = i - 2; if (state & OLGX_MORE_ARROW) more_flag = 1; width = XTextWidth(TextFont_Struct(info), mbs, len); } } #else /* OW_I18N */ if (max_width && XTextWidth(TextFont_Struct(info), string, len) > max_width) { for (i = 0; (i < len && current_width <= max_width); i++) { current_width += XTextWidth(TextFont_Struct(info), &string[i], 1); } /* * at this point, i-1 represents the number of chars of string that * will fit into max_width. */ len = i - 2; if (state & OLGX_MORE_ARROW) more_flag = 1; width = XTextWidth(TextFont_Struct(info),string,len); } #endif /* OW_I18N */ if ((state & OLGX_INVOKED) && !(info->three_d)) { if (!info->gc_rec[OLGX_TEXTGC_REV]) olgx_initialise_gcrec(info, OLGX_TEXTGC_REV); gc = info->gc_rec[OLGX_TEXTGC_REV]->gc; } else { if (!info->gc_rec[OLGX_TEXTGC]) olgx_initialise_gcrec(info, OLGX_TEXTGC); gc = info->gc_rec[OLGX_TEXTGC]->gc; } if (state & OLGX_INACTIVE) { XSetFillStyle(info->dpy,gc,FillStippled); } #ifdef OW_I18N if (Olgx_Flags(info) & OLGX_FONTSET) { if (state & OLGX_LABEL_IS_WCS) XwcDrawString(info->dpy, win, info->textfontset, gc, x, y, wcs, len); else XmbDrawString(info->dpy, win, info->textfontset, gc, x, y, mbs, len); } else XDrawString(info->dpy, win, gc, x, y, mbs, len); #else /* OW_I18N */ XDrawString(info->dpy, win, gc, x, y, string, len); #endif /* OW_I18N */ if (state & OLGX_INACTIVE) { XSetFillStyle(info->dpy,gc,FillSolid); } if (more_flag) /* render a more arrow at the end of the string */ olgx_draw_menu_mark(info,win, x + width + 1, y-MenuMark_Height(info),OLGX_HORIZ_MENU_MARK,1); } void olgx_draw_pixmap_label(info, win, pix, x, y, width, height, state) Graphics_info *info; Window win; Pixmap pix; int x, y, width, height, state; { unsigned long savebg1; unsigned long savebg2; Window root; int x_dummy,y_dummy; unsigned int w_dummy,h_dummy,bw_dummy; unsigned int depth; GC gc; if (!info->gc_rec[OLGX_TEXTGC]) olgx_initialise_gcrec(info, OLGX_TEXTGC); if (!info->three_d) if (!info->gc_rec[OLGX_TEXTGC_REV]) olgx_initialise_gcrec(info, OLGX_TEXTGC_REV); if ((state & OLGX_INVOKED)) { if (info->three_d) { /* * reset the value of the textgc background from bg1 to bg2 in * invoked mode to get the transparent pixmap effect */ savebg1 = olgx_get_single_color(info, OLGX_BG1); savebg2 = olgx_get_single_color(info, OLGX_BG2); olgx_set_single_color(info, OLGX_BG1, savebg2, OLGX_SPECIAL); gc = info->gc_rec[OLGX_TEXTGC]->gc; } else { if (!info->gc_rec[OLGX_TEXTGC_REV]) olgx_initialise_gcrec(info, OLGX_TEXTGC_REV); gc = info->gc_rec[OLGX_TEXTGC_REV]->gc; } } else gc = info->gc_rec[OLGX_TEXTGC]->gc; /* * Performance Problem - RoundTrip request * Depth should be passed as part of Pixlabel struct */ XGetGeometry(info->dpy,pix,&root,&x_dummy,&y_dummy,&w_dummy, &h_dummy,&bw_dummy,&depth); if (depth > 1) XCopyArea(info->dpy, pix, /* src */ win, /* dest */ gc, 0, 0, /* src x,y */ width, height, x, y); else XCopyPlane(info->dpy, pix, /* src */ win, /* dest */ gc, 0, 0, /* src x,y */ width, height, x, y, (unsigned long) 1); /* Restore the original colors to the textgc */ if ((state & OLGX_INVOKED) && (info->three_d)) olgx_set_single_color(info, OLGX_BG1, savebg1, OLGX_SPECIAL); } void olgx_draw_ximage_label(info, win, xim, x, y, width, height, state) Graphics_info *info; Window win; XImage *xim; int x, y, width, height, state; { unsigned long savebg1; unsigned long savebg2; Window root; int x_dummy,y_dummy; unsigned int w_dummy,h_dummy,bw_dummy; unsigned int depth; if (!info->gc_rec[OLGX_TEXTGC]) olgx_initialise_gcrec(info, OLGX_TEXTGC); if (!info->three_d) if (!info->gc_rec[OLGX_TEXTGC_REV]) olgx_initialise_gcrec(info, OLGX_TEXTGC_REV); if ((state & OLGX_INVOKED) && (info->three_d)) { /* * reset the value of the textgc background from bg1 to bg2 in * invoked mode to get the transparent pixmap effect */ savebg1 = olgx_get_single_color(info, OLGX_BG1); savebg2 = olgx_get_single_color(info, OLGX_BG2); olgx_set_single_color(info, OLGX_BG1, savebg2, OLGX_SPECIAL); } XPutImage(info->dpy, win, /* dest */ info->gc_rec[OLGX_TEXTGC]->gc, xim, 0, 0, /* src x,y */ x,y, /* dest x,y */ width, height); /* Restore the original colors to the textgc */ if ((state & OLGX_INVOKED) && (info->three_d)) olgx_set_single_color(info, OLGX_BG1, savebg1, OLGX_SPECIAL); } void olgx_draw_textscroll_button(info, win, x, y, state) Graphics_info *info; Window win; int x, y; int state; { char string[2]; int width, height; int arr_x, arr_y; /* * A small hack to calculate the width, arrow postiton..etc since this * routine is expected to tbe used infrequently it is not included as * part of the info struct and the follwoing calculations take place each * time-- a penalty affordable at the cost of infrequency * */ if ((Abbrev_MenuButton_Height(info)) < 20) { width = height = Abbrev_MenuButton_Height(info); arr_y = 3; arr_x = (width / 3) - 1; } else { width = height = 25; /* Special case size-19 */ arr_y = 5; arr_x = 7; } if (!(info->three_d)) { /* Start 2-D */ if (state & OLGX_ERASE) XClearArea(info->dpy, win,x, y, width, height,0); if (state & OLGX_SCROLL_FORWARD) { if (state & OLGX_INVOKED) string[0] = TEXTSCROLLBUTTON_RIGHT_INV; else string[0] = TEXTSCROLLBUTTON_RIGHT; XDrawString(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, x, y, string,1); } else if (state & OLGX_SCROLL_BACKWARD) { if (state & OLGX_INVOKED) string[0] = TEXTSCROLLBUTTON_LEFT_INV; else string[0] = TEXTSCROLLBUTTON_LEFT; XDrawString(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, x, y, string,1); } } /* End 2-D */ else { /* Start 3-D */ olgx_draw_box(info, win, x, y, width, height, state, 0); if (state & OLGX_SCROLL_FORWARD) olgx_draw_menu_mark(info, win, x + arr_x, y + arr_y, OLGX_HORIZ_MENU_MARK | OLGX_INVOKED & ~OLGX_INACTIVE, 1); else olgx_draw_menu_mark(info, win, x + arr_x - 1, y + arr_y, OLGX_HORIZ_BACK_MENU_MARK | OLGX_INVOKED & ~OLGX_INACTIVE, 1); } /* End 3-D */ if (state & OLGX_INACTIVE) olgx_stipple_rect(info, win, x, y, TextScrollButton_Width(info), TextScrollButton_Height(info)); } void olgx_draw_numscroll_button(info, win, x, y, state) Graphics_info *info; Window win; int x, y, state; { char string[2]; int width, height, arr_x, arr_y; width = height = TextScrollButton_Height(info); if (width < 20) { arr_y = 3; arr_x = (width / 3) - 1; } else { arr_y = 5; arr_x = 7; } if (!info->three_d) { /* draw 2-D */ if (state & OLGX_ERASE) XClearArea(info->dpy, win,x, y, NumScrollButton_Width(info), height,0); if (state & OLGX_SCROLL_FORWARD) string[0] = NUMERIC_SCROLL_BUTTON_RIGHT_INV; else if (state & OLGX_SCROLL_BACKWARD) string[0] = NUMERIC_SCROLL_BUTTON_LEFT_INV; else string[0] = NUMERIC_SCROLL_BUTTON_NORMAL; XDrawString(info->dpy, win, info->gc_rec[OLGX_BLACK]->gc, x, y, string, 1); } else { /* draw 3-D */ olgx_draw_box(info, win, x, y, width, height, (state & OLGX_SCROLL_BACKWARD) ? OLGX_INVOKED : OLGX_NORMAL, 0); olgx_draw_box(info, win, x + width, y, width, height, (state & OLGX_SCROLL_FORWARD) ? OLGX_INVOKED : OLGX_NORMAL, 0); olgx_draw_menu_mark(info, win, x + arr_x, y + arr_y, OLGX_VERT_BACK_MENU_MARK | OLGX_INVOKED & ~OLGX_INACTIVE, 1); olgx_draw_menu_mark(info, win, x + arr_x + width, y + arr_y, OLGX_VERT_MENU_MARK | OLGX_INVOKED & ~OLGX_INACTIVE, 1); } if (state & OLGX_INACTIVE) olgx_stipple_rect(info, win, x, y, NumScrollButton_Width(info), NumScrollButton_Height(info)); if (state & OLGX_SCROLL_NO_FORWARD) olgx_stipple_rect(info, win, x + TextScrollButton_Width(info) - 1, y, TextScrollButton_Width(info), NumScrollButton_Height(info)); if (state & OLGX_SCROLL_NO_BACKWARD) olgx_stipple_rect(info, win, x, y, TextScrollButton_Width(info) - 2, NumScrollButton_Height(info)); } static void olgx_draw_diamond_mark(info, win, x, y, state) Graphics_info *info; Window win; int x, y; int state; /* unused */ { XPoint point[6]; int d_height,d_half_height,d_width,d_half_width; GC gc; XGCValues values; char old_dashes; int old_dash_offset; /* diamond height needs to be divisible by 2, but width should be odd. */ d_half_width = info->mm_height/2; d_width = (d_half_width*2)+1; d_half_height = info->mm_height/2; /* Origin (x,y) is in lower left corner. Points are clockwise from 9 O'clock. Point 3 is 1 pixel below point 2 and point 6 is 1 pixel below point 0. */ /* We need to special case anything greater than or equal to 14pt. For large fonts, the diamond looks better a little lower. */ if (d_half_height < 5) { y--; } /* for 3d, diamond looks better 1 pixel to the left because usually it will be part of a menu and needs to line up visually with the meta symbol. */ if (info->three_d) { x--; } point[0].x = x; point[0].y = y - d_half_height - 1; point[1].x = x + d_half_width; point[1].y = point[0].y - d_half_height; point[2].x = x + d_width - 1; point[2].y = point[0].y; point[3].x = point[2].x; point[3].y = point[2].y + 1; point[4].x = point[1].x; point[4].y = y; point[5].x = x; point[5].y = point[0].y + 1; /* drawing a diamond in 2d is only doing an XDrawLines() for all the points. */ if (!info->three_d) { int dashes_changed = 0; if (state & OLGX_INVOKED) { gc = info->gc_rec[OLGX_WHITE]->gc; } else { gc = info->gc_rec[OLGX_BLACK]->gc; } if (state & OLGX_INACTIVE) { values.line_style = LineOnOffDash; XChangeGC(info->dpy, gc, GCLineStyle, &values); dashes_changed = 1; } XDrawLines(info->dpy, win, gc, point, 6, CoordModeOrigin); if (dashes_changed) { values.line_style = LineSolid; XChangeGC(info->dpy, gc, GCLineStyle, &values); } } else { /* draw diamond in 3d colors. light source is from above and diamond is lowered, so draw the upper part of the outline in BG3 and the lower part in white. */ if (state & OLGX_INACTIVE) { /* just draw all lines together with a dashed pattern. */ gc = info->gc_rec[OLGX_BG3]->gc; values.line_style = LineOnOffDash; XChangeGC(info->dpy, gc, GCLineStyle, &values); XDrawLines(info->dpy, win, gc, point, 6, CoordModeOrigin); values.line_style = LineSolid; XChangeGC(info->dpy, gc, GCLineStyle, &values); } else { /* fill in diamond first */ gc = info->gc_rec[OLGX_BG2]->gc; XFillPolygon(info->dpy, win, gc, point, 6, Convex, CoordModeOrigin); /* draw upper part in BG3 */ gc = info->gc_rec[OLGX_BG3]->gc; XDrawLines(info->dpy, win, gc, point, 3, CoordModeOrigin); /* draw lower part in white */ gc = info->gc_rec[OLGX_WHITE]->gc; XDrawLines(info->dpy, win, gc, point+3, 3, CoordModeOrigin); } } } static void olgx_draw_accel_label_internal(info, win, texty, x, y, width, height, main_label, m_pos, qualifier_label, q_pos, mark_type, mark_pos, key_label, key_pos, state, centerflag) Graphics_info *info; Window win; int texty; /* position of text as opposed to real. This is used by highlight and under- lining */ int x, y, width, height; /* position and size of text */ void *main_label; /* item main label */ int m_pos; /* position of main label */ void *qualifier_label; /* qualifier or modifier label */ int q_pos; /* x position of qualifier in pixels */ int mark_type; /* OLGX_DIAMOND_MARK, MENU_MARK, etc. */ int mark_pos; /* x position of mark sym. in pixels */ void *key_label; /* usually a single character */ int key_pos; /* x position of key char in pixels */ int state; /* state of the actual object */ int centerflag; /* TRUE = center pixmap or ximage, FALSE = place lower left corner at texty */ { int text_width; /* temporary var. for figuring max_width to pass to olgx_draw_text() */ if (main_label) { /* calc. max width of label w.r.t qualifier, mark, accelerator string, or entire width. */ if (q_pos) { text_width = q_pos - m_pos; } else if (mark_pos) { text_width = mark_pos - m_pos; } else if (key_pos) { text_width = key_pos - m_pos; } else { text_width = x + width - m_pos; } /* state can be IS_PIXMAP, IS_XIMAGE, HAS_UNDERLINE, HAS_HIGHLIGHT or normal. */ if (state & OLGX_LABEL_IS_PIXMAP) { int newy; Pixlabel *plabel; plabel= (Pixlabel *)main_label; if (centerflag) { newy = y + ((height - plabel->height)/2); } else { /* put bottom of pixmap at texty */ newy = texty - plabel->height; } olgx_draw_pixmap_label(info, win, plabel->pixmap, m_pos, newy, (plabel->width > text_width) ? text_width: plabel->width , height, state); } else if (state & OLGX_LABEL_IS_XIMAGE) { int newy; Ximlabel *ximlabel; ximlabel = (Ximlabel *)main_label; if (centerflag) { newy = y + ((height - ximlabel->height)/2); } else { /* put bottom of pixmap at texty */ newy = texty - ximlabel->height; } olgx_draw_ximage_label(info, win, ximlabel->ximage, m_pos, newy, (ximlabel->width > text_width)? text_width:ximlabel->width , (height) ? height : Button_Height(info) - 2, state); } else { int ascent, descent, direction; XCharStruct overall; void *string_label; Underlinelabel *ulabel, *hlabel; char *highlight_char; int has_highlight=0,has_underline=0; int highlightx_pos, highlight_length, highlighty_pos, highlight_height; if (state & OLGX_LABEL_HAS_UNDERLINE) { has_underline = 1; ulabel = (Underlinelabel *)main_label; string_label = (void *)ulabel->label; } else if (state & OLGX_LABEL_HAS_HIGHLIGHT) { GC gc; int ascent, descent, direction; XCharStruct overall; hlabel = (Underlinelabel *)main_label; string_label = (void *)hlabel->label; if (info->three_d) { gc = info->gc_rec[OLGX_BLACK]->gc; } else { if (state & OLGX_INVOKED) { if (!info->gc_rec[OLGX_TEXTGC_REV]) olgx_initialise_gcrec(info, OLGX_TEXTGC_REV); gc = info->gc_rec[OLGX_TEXTGC_REV]->gc; } else { if (!info->gc_rec[OLGX_TEXTGC]) olgx_initialise_gcrec(info, OLGX_TEXTGC); gc = info->gc_rec[OLGX_TEXTGC]->gc; } } #ifdef OW_I18N if (Olgx_Flags(info) & OLGX_FONTSET) { XRectangle overall_ink_return, overall_logical_return; int string_width; if (state & OLGX_LABEL_IS_WCS) { string_width = XwcTextExtents(info->textfontset, (wchar_t *)string_label, hlabel->position, &overall_ink_return, &overall_logical_return); highlight_length = XwcTextEscapement(info->textfontset, (wchar_t *) ((wchar_t *)string_label + hlabel->position), 1); highlightx_pos = m_pos + ((hlabel->position) ? string_width : 0); } else { /* multibyte case */ string_width = XmbTextExtents(info->textfontset, (char *)string_label, hlabel->position, &overall_ink_return, &overall_logical_return); highlight_char = (char *)string_label+hlabel->position; highlight_length = XmbTextEscapement(info->textfontset, highlight_char, mblen(highlight_char, strlen(highlight_char))); highlightx_pos = m_pos + ((hlabel->position) ? string_width : 0); } highlight_height = overall_logical_return.height + 1; /* overall_logical_return.y is < 0 */ highlighty_pos = texty + overall_logical_return.y; } else { /* single byte i18n case */ XTextExtents(TextFont_Struct(info),(char *)string_label, hlabel->position,&direction,&ascent,&descent, &overall); highlight_length = XTextWidth(TextFont_Struct(info), (char *)string_label + hlabel->position, 1); highlightx_pos = m_pos + ((hlabel->position) ? overall.width : 0); highlight_height = ascent + descent + 1; highlighty_pos = texty - ascent; } #else XTextExtents(TextFont_Struct(info),(char *)string_label, hlabel->position,&direction,&ascent,&descent, &overall); highlight_length = XTextWidth(TextFont_Struct(info), (char *)string_label + hlabel->position, 1); highlightx_pos = m_pos + ((hlabel->position) ? overall.width : 0); highlight_height = ascent + descent + 1; highlighty_pos = texty - ascent; #endif /* OW_I18N */ if (highlightx_pos < (m_pos + text_width)) { if (state & OLGX_INACTIVE) { XSetFillStyle(info->dpy,gc,FillStippled); } XFillRectangle(info->dpy, win, gc, highlightx_pos, highlighty_pos, highlight_length, highlight_height); if (state & OLGX_INACTIVE) { XSetFillStyle(info->dpy,gc,FillSolid); } /* now set flag because highlight actually drawn */ has_highlight = 1; } } else { string_label= main_label; } olgx_draw_text(info, win, #ifdef OW_I18N string_label, #else (char *) string_label, #endif /* OW_I18N */ m_pos, texty, text_width, state); if (has_underline) { int label_pixel_pos,label_y_pos, label_length; GC gc; if (!info->gc_rec[OLGX_TEXTGC]) olgx_initialise_gcrec(info, OLGX_TEXTGC); if (!info->three_d) if (!info->gc_rec[OLGX_TEXTGC_REV]) olgx_initialise_gcrec(info, OLGX_TEXTGC_REV); if ((state & OLGX_INVOKED) && !(info->three_d)) { gc = info->gc_rec[OLGX_TEXTGC_REV]->gc; } else { gc = info->gc_rec[OLGX_TEXTGC]->gc; } #ifdef OW_I18N if (Olgx_Flags(info) & OLGX_FONTSET) { XRectangle overall_ink_return, overall_logical_return; if (state & OLGX_LABEL_IS_WCS) { label_pixel_pos=m_pos + ((ulabel->position) ? XwcTextEscapement(info->textfontset, (wchar_t *)string_label, ulabel->position) : 0); label_length = XwcTextExtents(info->textfontset, (wchar_t *)((wchar_t *)string_label + ulabel->position), 1, &overall_ink_return, &overall_logical_return); } else { label_pixel_pos=m_pos + ((ulabel->position) ? XmbTextEscapement(info->textfontset, (char *)string_label, ulabel->position) : 0); label_length = XmbTextExtents(info->textfontset, (char *)string_label + ulabel->position, mblen((char *)string_label + ulabel->position, strlen((char *)string_label + ulabel->position)), &overall_ink_return, &overall_logical_return); } label_y_pos = texty + overall_logical_return.y + overall_logical_return.height; } else { XTextExtents(TextFont_Struct(info),(char *)string_label, hlabel->position,&direction,&ascent,&descent, &overall); label_pixel_pos=m_pos + ((ulabel->position) ? XTextWidth(TextFont_Struct(info), (char *)string_label, ulabel->position) : 0); label_length = XTextWidth(TextFont_Struct(info), (char *)string_label + ulabel->position, 1); label_y_pos = texty + descent; } #else XTextExtents(TextFont_Struct(info),(char *)string_label, hlabel->position,&direction,&ascent,&descent, &overall); label_pixel_pos=m_pos + ((ulabel->position) ? XTextWidth(TextFont_Struct(info), (char *)string_label, ulabel->position) : 0); label_length = XTextWidth(TextFont_Struct(info), (char *)string_label + ulabel->position, 1); label_y_pos = texty + descent; #endif /* OW_I18N */ if (label_pixel_pos < (m_pos + text_width)) { if (state & OLGX_INACTIVE) { XSetFillStyle(info->dpy,gc,FillStippled); } XDrawLine(info->dpy, win, gc, label_pixel_pos, label_y_pos, label_pixel_pos + label_length, label_y_pos); if (state & OLGX_INACTIVE) { XSetFillStyle(info->dpy,gc,FillSolid); } } } if (has_highlight) { GC gc; XGCValues values; /* cannot call olgx_draw_text() because gc is different */ if (info->three_d) { gc = info->gc_rec[OLGX_BG1]->gc; } else { if (state & OLGX_INVOKED) { if (!info->gc_rec[OLGX_TEXTGC]) olgx_initialise_gcrec(info, OLGX_TEXTGC); gc = info->gc_rec[OLGX_TEXTGC]->gc; } else { if (!info->gc_rec[OLGX_TEXTGC_REV]) olgx_initialise_gcrec(info, OLGX_TEXTGC_REV); gc = info->gc_rec[OLGX_TEXTGC_REV]->gc; } } /* Since we are drawing the highlight character in the same color that we are drawing the glyphs in, we need to save the glyphfont, then restore it. This is only true for 3d. */ if (info->three_d) { XGetGCValues(info->dpy,gc,GCFont,&values); } #ifdef OW_I18N if (Olgx_Flags(info) & OLGX_FONTSET) { if (state & OLGX_LABEL_IS_WCS) { XwcDrawString(info->dpy, win, info->textfontset, gc, highlightx_pos, texty, (wchar_t *) ((wchar_t *)string_label + hlabel->position), 1); } else { XmbDrawString(info->dpy, win, info->textfontset, gc, highlightx_pos, texty, highlight_char, mblen(highlight_char, strlen(highlight_char))); } } else { XSetFont(info->dpy,gc,(TextFont_Struct(info))->fid); XDrawString(info->dpy, win, gc, highlightx_pos, texty, (char *)((char *)string_label+hlabel->position),1); } #else XSetFont(info->dpy,gc,(TextFont_Struct(info))->fid); XDrawString(info->dpy, win, gc, highlightx_pos, texty, (char *)((char *)string_label+hlabel->position),1); #endif /* OW_I18N */ /* restore the font if 3d */ if (info->three_d) { XChangeGC(info->dpy,gc,GCFont,&values); } } } } if (qualifier_label) { /* calc. max width of label w.r.t mark, accelerator string, or entire width. */ if (mark_pos) { text_width = mark_pos - q_pos; } else if (key_pos) { text_width = key_pos - q_pos; } else { text_width = x + width - q_pos; } olgx_draw_text(info,win, #ifdef OW_I18N qualifier_label, #else (char *)qualifier_label, #endif /* OW_I18N */ q_pos,texty,text_width,state); } if (mark_type) { if (mark_type & OLGX_DIAMOND_MARK) { olgx_draw_diamond_mark(info,win, mark_pos, texty, state); } else if (mark_type & OLGX_MENU_MARK) { int fill_color; /* calculate the correct fill_color for menu mark */ if (info->three_d) { if (state & OLGX_INVOKED) { /* invoked button */ fill_color = OLGX_BG2; } else if ((state & OLGX_DEFAULT)&&(state & OLGX_MENU_ITEM)) { fill_color = OLGX_BG1; } else if (state & OLGX_MENU_ITEM && state & OLGX_BUSY) { fill_color = OLGX_BG1; } else if (state & OLGX_MENU_ITEM) { /* normal menu item */ fill_color = NONE; } else { /* normal panel button */ fill_color = OLGX_BG1; } if (state & OLGX_BUSY) { /* * This routine changes GC information on-the-fly, but it is * assumed that OLGX_BUSY won't be called often, so it makes * sense to use the same GC rather than one for each color. */ if (!info->gc_rec[OLGX_BUSYGC]) olgx_initialise_gcrec(info, OLGX_BUSYGC); fill_color = OLGX_BUSYGC; } olgx_draw_menu_mark(info, win, mark_pos, texty-info->mm_height, mark_type | state, (fill_color != OLGX_BG2)); } else { olgx_draw_menu_mark(info, win, mark_pos, texty-info->mm_height, mark_type | state,0); } } } if (key_label) { olgx_draw_text(info,win, #ifdef OW_I18N key_label, #else (char *)key_label, #endif /* OW_I18N */ key_pos,texty, x+width-key_pos,state); } } void olgx_draw_accel_label(info, win, x, y, width, height, main_label, m_pos, qualifier_label, q_pos, mark_type, mark_pos, key_label, key_pos, background_pixmap, state) Graphics_info *info; Window win; int x, y, width, height; /* position and size of item */ void *main_label; /* item main label */ int m_pos; /* position of main label */ void *qualifier_label; /* qualifier or modifier label */ int q_pos; /* x position of qualifier in pixels */ int mark_type; /* OLGX_DIAMOND_MARK, MENU_MARK, etc. */ int mark_pos; /* x position of mark sym. in pixels */ void *key_label; /* usually a single character */ int key_pos; /* x position of key char in pixels */ void *background_pixmap;/* unsupported right now! */ int state; /* state of the actual object */ { /* olgx_draw_accel_label_internal() is a separate function because we might decide to put something special for text only */ /* need to adjust y, because the label x,y is lower left corner, but olgx_draw_accel_label_internal() wants the upper left corner. */ olgx_draw_accel_label_internal(info,win,y,x, y - info->button_height + info->base_off, width,height, main_label,m_pos, qualifier_label,q_pos, mark_type,mark_pos, key_label,key_pos, state, 0); } void olgx_draw_accel_button(info, win, x, y, width, height, main_label, m_pos, qualifier_label, q_pos, mark_type, mark_pos, key_label, key_pos, background_pixmap, state) Graphics_info *info; Window win; int x, y, width, height; /* position and size of item */ void *main_label; /* item main label */ int m_pos; /* position of main label */ void *qualifier_label; /* qualifier or modifier label */ int q_pos; /* x position of qualifier in pixels */ int mark_type; /* OLGX_DIAMOND_MARK, MENU_MARK, etc. */ int mark_pos; /* x position of mark sym. in pixels */ void *key_label; /* usually a single character */ int key_pos; /* x position of key char in pixels */ void *background_pixmap;/* unsupported right now! */ int state; /* state of the actual object */ { /* don't want to duplicate code, so draw a button with a null label, no menu mark, and not inactive (will be done later) */ olgx_draw_button(info,win,x,y,width,height,(void *)NULL, state&~OLGX_MENU_MARK&~OLGX_INACTIVE); olgx_draw_accel_label_internal(info,win, y + ((height) ? ((height+info->button_height)/2 + 1) : info->button_height) - info->base_off, x+ButtonEndcap_Width(info), y, width-2*ButtonEndcap_Width(info), height, main_label,m_pos, qualifier_label,q_pos, mark_type,mark_pos, key_label,key_pos, state & ~OLGX_INACTIVE, 1); if (state & OLGX_INACTIVE) { olgx_stipple_rect(info, win, x, y, width, (height) ? height + 1 : Button_Height(info)); } } void olgx_draw_accel_choice_item(info, win, x, y, width, height, main_label, m_pos, qualifier_label, q_pos, mark_type, mark_pos, key_label, key_pos, background_pixmap, state) Graphics_info *info; Window win; int x, y, width, height; /* position and size of item */ void *main_label; /* item main label */ int m_pos; /* position of main label */ void *qualifier_label; /* qualifier or modifier label */ int q_pos; /* x position of qualifier in pixels */ int mark_type; /* OLGX_DIAMOND_MARK, MENU_MARK, etc. */ int mark_pos; /* x position of mark sym. in pixels */ void *key_label; /* usually a single character */ int key_pos; /* x position of key char in pixels */ void *background_pixmap;/* unsupported right now! */ int state; /* state of the actual object */ { int flag = 0; /* don't want to duplicate code, so draw a choice with a null label, no menu mark, and not inactive (will be done later) */ olgx_draw_choice_item(info,win,x,y,width,height,NULL, state&~OLGX_MENU_MARK&~OLGX_INACTIVE); /* * special case for choice invoked in drawing label where the * invoked state is changed to uninvoked and sent to the label * drawing routines */ if (state & OLGX_INVOKED) { state ^= OLGX_INVOKED; flag = 1; } olgx_draw_accel_label_internal(info,win, y + ((height) ? ((height+info->button_height)/2 + 1) : info->button_height) - info->base_off, x + ((info->button_height > 20) ? info->base_off + 2 : info->base_off), y, width - ((info->button_height > 20) ? info->base_off + 2 : info->base_off), height, main_label,m_pos, qualifier_label,q_pos, mark_type,mark_pos, key_label,key_pos, state & ~OLGX_INACTIVE, 1); if (state & OLGX_INACTIVE) { olgx_stipple_rect(info, win, x, y, width, height); } } #endif SVR4 xview-3.2p1.4/clients/olvwm-4.1/parse.l100644 1750 1750 4176 5515340514 15030 0ustar mbmb%{ /* * (c) Copyright 1991 Scott Oaks * See LEGAL_NOTICE file for terms of the license. */ #ifdef IDENT #ident "@(#)parse.l 1.5 olvwm version 07 Jan 1994" #endif %} %% Warp { yylval.ival = Warp; return WARP; } Open { yylval.ival = Open; return OPEN; } RaiseLower { yylval.ival = RaiseLower; return RAISELOWER; } Lower { yylval.ival = Lower; return LOWER; } Raise { yylval.ival = Raise; return RAISE; } Execute { yylval.ival = Execute; return EXECUTE; } Goto { yylval.ival = Goto; return GOTO; } Close { yylval.ival = Close; return CLOSE; } Quit { yylval.ival = Quit; return QUIT; } Geometry { yylval.ival = Geometry; return GEOMETRY; } Stick { yylval.ival = Stick; return STICK; } SetSize { yylval.ival = SetSize; return SETSIZE; } Focus { yylval.ival = Focus; return FOCUS; } Rebind { yylval.ival = Rebind; return REBIND; } IfElse { yylval.ival = IfElse; return IFELSE; } Shift { yylval.ival = XK_Shift_L; return MODIFIER; } "Shift Lock" { yylval.ival = XK_Shift_Lock; return MODIFIER; } "Caps Lock" { yylval.ival = XK_Caps_Lock; return MODIFIER; } Control { yylval.ival = XK_Control_L; return MODIFIER; } Ctrl { yylval.ival = XK_Control_L; return MODIFIER; } Ctl { yylval.ival = XK_Control_L; return MODIFIER; } Meta { yylval.ival = XK_Meta_L; return MODIFIER; } Alt { yylval.ival = XK_Alt_L; return MODIFIER; } Super { yylval.ival = XK_Super_L; return MODIFIER; } Hyper { yylval.ival = XK_Hyper_L; return MODIFIER; } Any { yylval.ival = yylval.ival = -1; return MODIFIER; } Screen { yylval.ival = SCREEN; return SCREEN; } WINMENU { yylval.ival = WINMENU; return WINMENU; } "+" { yylval.ival = PLUS; return PLUS; } "=" { yylval.ival = EQUALS; return EQUALS; } [0-9]+ { yylval.ival = atoi(yytext); return INT; } [A-Za-z_0-9-]+ { yylval.sval = strdup(yytext); return WORD; } \: { return COLON; } \, { return COMMA; } \{ { return OPENBRACE; } \} { return CLOSEBRACE; } \"[^"]*\" { if (yytext[yyleng - 1] == '\\') yymore(); else { yylval.sval = strdup(yytext); return WORD; } } \'[^']*\' { if (yytext[yyleng - 1] == '\\') yymore(); else { yylval.sval = strdup(yytext); return WORD; } } ^#.* ; [ \t\n] ; %% xview-3.2p1.4/clients/olvwm-4.1/olwm.c100644 1750 1750 47443 6331436646 14720 0ustar mbmb#ifdef IDENT #ident "@(#)olwm.c 1.5 olvwm version 07 Jan 1994" #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ /* * Based on #ident "@(#)olwm.c 26.66 93/06/28 SMI" */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "i18n.h" #include "ollocale.h" #include "events.h" #include "mem.h" #include "olwm.h" #include "win.h" #include "menu.h" #include "defaults.h" #include "resources.h" #include "globals.h" #include "group.h" #include "selection.h" #include "slots.h" #include "error.h" #include "dsdm.h" #include "patchlevel.h" typedef void (*VoidFunc)(); /* * Globals */ char *ProgramName; /* pointer to original argv[0] */ char *AppName; /* last component of ProgramName */ GlobalResourceVariables GRV; /* variables settable by rsrcs */ XrmDatabase OlwmDB; /* the main resource database */ Display *DefDpy; /* the display connection */ #ifdef DEBUG unsigned char ScratchBuffer[1024]; /* for use in the debugger */ #endif /* DEBUG */ /* * Global Quarks. "Top" refers to the root of the resource name/instance * hierarchy. */ XrmQuark TopClassQ; XrmQuark TopInstanceQ; XrmQuark OpenWinQ; /* * Quark for olwm instance -- we read resources with an instance name of * olwm for backwards compatibility */ XrmQuark OlwmQ; /* * Forward declarations. */ static void usage(); static Display *openDisplay(); static void parseCommandline(); static void sendSyncSignal(); static void initWinClasses(); /* * Command-line option table. Resources named here must be kept in sync with * the resources probed for in resources.c. */ static XrmOptionDescRec optionTable[] = { /* * Standard Options */ { "-display", ".display", XrmoptionSepArg, (caddr_t)NULL }, { "-name", ".name", XrmoptionSepArg, (caddr_t)NULL }, { "-xrm", NULL, XrmoptionResArg, (caddr_t)NULL }, { "-2d", ".use3D", XrmoptionNoArg, (caddr_t)"False" }, { "-3d", ".use3D", XrmoptionNoArg, (caddr_t)"True" }, { "-bd", "*BorderColor", XrmoptionSepArg, (caddr_t)NULL }, { "-bordercolor","*BorderColor",XrmoptionSepArg, (caddr_t)NULL }, { "-bg", "*Background", XrmoptionSepArg, (caddr_t)NULL }, { "-background","*Background", XrmoptionSepArg, (caddr_t)NULL }, { "-fg", "*Foreground", XrmoptionSepArg, (caddr_t)NULL }, { "-foreground","*Foreground", XrmoptionSepArg, (caddr_t)NULL }, { "-c", ".setInput", XrmoptionNoArg, (caddr_t)"select" }, { "-click", ".setInput", XrmoptionNoArg, (caddr_t)"select" }, { "-f", ".setInput", XrmoptionNoArg, (caddr_t)"follow" }, { "-follow", ".setInput", XrmoptionNoArg, (caddr_t)"follow" }, { "-fn", "*TitleFont", XrmoptionSepArg, (caddr_t)NULL }, { "-font", "*TitleFont", XrmoptionSepArg, (caddr_t)NULL }, { "-single", ".singleScreen",XrmoptionNoArg, (caddr_t)"True" }, { "-multi", ".singleScreen",XrmoptionNoArg, (caddr_t)"False" }, { "-syncpid", ".syncPid", XrmoptionSepArg, (caddr_t)NULL }, { "-syncsignal",".syncSignal", XrmoptionSepArg, (caddr_t)NULL }, { "-depth", "*depth", XrmoptionSepArg, (caddr_t)NULL }, { "-visual", "*visual", XrmoptionSepArg, (caddr_t)NULL }, { "-dsdm", ".startDSDM", XrmoptionNoArg, (caddr_t)"True" }, { "-nodsdm", ".startDSDM", XrmoptionNoArg, (caddr_t)"False" }, /* * Debugging Options */ { "-all", ".printAll", XrmoptionNoArg, (caddr_t)"True" }, { "-debug", ".printOrphans",XrmoptionNoArg, (caddr_t)"True" }, { "-orphans", ".printOrphans",XrmoptionNoArg, (caddr_t)"True" }, { "-synchronize",".synchronize", XrmoptionNoArg, (caddr_t)"True" }, #ifdef OW_I18N_L3 /* * Internationalization Options */ { "-basiclocale", "*basicLocale", XrmoptionSepArg, (caddr_t) NULL }, { "-displaylang", "*displayLang", XrmoptionSepArg, (caddr_t) NULL }, { "-inputlang", "*inputLang", XrmoptionSepArg, (caddr_t) NULL }, { "-numeric", "*numeric", XrmoptionSepArg, (caddr_t) NULL }, { "-dateformat", "*dateFormat", XrmoptionSepArg, (caddr_t) NULL }, #endif /* OW_I18N_L3 */ }; #define OPTION_TABLE_ENTRIES (sizeof(optionTable)/sizeof(XrmOptionDescRec)) /* Child Process Handling */ static Bool deadChildren = False; static void handleChildSignal(); static int slavePid; void ReapChildren(); /* public -- called from events.c */ #ifdef ALLPLANES Bool AllPlanesExists; /* server supports the ALLPLANES extension */ #endif #ifdef SHAPE Bool ShapeSupported; /* server supports the SHAPE extension */ int ShapeEventBase; int ShapeErrorBase; int ShapeRequestBase; #endif int numbuttons; /* number of buttons on the pointer */ /* REMIND: this shouldn't be global */ static char **argVec; /* * main -- parse arguments, perform initialization, call event-loop */ void main(argc, argv) int argc; char **argv; { int ExitOLWM(), RestartOLWM(); XrmDatabase commandlineDB = NULL; char *dpystr; #ifdef OW_I18N_L3 char *OpenWinHome; char locale_dir[MAXPATHLEN+1]; extern char *getenv(); #endif /* OW_I18N_L3 */ #ifdef MALLOCDEBUG malloc_debug(MALLOCDEBUG); #endif /* MALLOCDEBUG */ #ifdef GPROF_HOOKS moncontrol(0); #endif /* GPROF_HOOKS */ #ifdef OW_I18N_L3 /* * Even in the SUNDAE1.0 (first release) we might need the * dynamic locale change for window manager, since window * manager is usually never re-start again in one sesstion. * But leave static for now. */ /* * We are setting the locale (issuing the setlocale) by * EffectOLLC() function, but we need to call setlocale here * to handle command line argument with certain locale. * FIX_ME! But may not work well, because we did not touch the * Xlib function XrmParseCommand(). */ if (setlocale(LC_CTYPE, "") == NULL) { char *locale; locale = (locale = getenv("LC_CTYPE")) != NULL ? locale : (locale = getenv("LANG")) != NULL ? locale : "Unknown"; /* * In the following fprintf, it is point less to use * GetString, since we are saying using "C" locale instead. */ fprintf(stderr, "\ olvwm: Warning: '%s' is invalid locale for the LC_CTYPE category,\n\ using 'C' locale for the command line parsing.\n", locale); (void)setlocale(LC_CTYPE,"C"); } if ((OpenWinHome = getenv("OPENWINHOME")) != 0) (void)strcpy(locale_dir,OpenWinHome); else #ifdef OPENWINHOME_DEFAULT /* martin-2.buck@student.uni-ulm.de */ (void)strcpy(locale_dir,OPENWINHOME_DEFAULT); #else (void)strcpy(locale_dir,"/usr"); #endif (void)strcat(locale_dir,"/lib/locale"); #ifdef SVR4 bindtextdomain("olwm_messages",locale_dir); textdomain("olwm_messages"); #endif #endif /* OW_I18N_L3 */ ProgramName = argv[0]; argVec = argv; /* * Set up signal handlers. Clean up and exit on SIGHUP, SIGINT, and * SIGTERM; note child process changes on SIGCHLD. */ #ifdef SYSV sigset(SIGHUP, (VoidFunc)ExitOLWM); sigset(SIGINT, (VoidFunc)ExitOLWM); sigset(SIGTERM, (VoidFunc)ExitOLWM); sigset(SIGCHLD, handleChildSignal); sigset(SIGUSR1, (VoidFunc)RestartOLWM); #else signal(SIGHUP, (VoidFunc)ExitOLWM); signal(SIGINT, (VoidFunc)ExitOLWM); signal(SIGTERM, (VoidFunc)ExitOLWM); signal(SIGCHLD, handleChildSignal); signal(SIGUSR1, (VoidFunc)RestartOLWM); #endif XrmInitialize(); /* parse the command line arguments into local tmp DB */ parseCommandline(&argc, argv, &commandlineDB); DefDpy = openDisplay(commandlineDB); #ifdef ALLPLANES { int tmp; AllPlanesExists = XAllPlanesQueryExtension(DefDpy, &tmp, &tmp); } #endif /* ALLPLANES */ #ifdef SHAPE ShapeSupported = XQueryExtension(DefDpy, "SHAPE", &ShapeRequestBase, &ShapeEventBase, &ShapeErrorBase); #endif /* SHAPE */ /* * Determine the number of buttons on the pointer. Use 3 by default. */ numbuttons = XGetPointerMapping (DefDpy, (unsigned char *)0, 0); if (numbuttons < 1) numbuttons = 3; /* put all resources into global OlwmDB and set olwm variables */ GetDefaults(DefDpy, commandlineDB); /* Initialize the event handling system. */ InitEvents(DefDpy); InitBindings(DefDpy); XSetErrorHandler(ErrorHandler); if (GRV.Synchronize) XSynchronize(DefDpy, True); /* Initialize a variety of olwm subsystems. */ InitAtoms(DefDpy); WIInit(DefDpy); initWinClasses(DefDpy); InitClients(DefDpy); GroupInit(); /* * Ensure that the X display connection is closed when we exec a * program. */ if (fcntl(ConnectionNumber(DefDpy), F_SETFD, 1) == -1) { perror(GetString("olvwm: child cannot disinherit TCP fd")); exit(1); } /* Init the global menus -- No more global menus; done in InitScreens InitMenus(DefDpy); */ /* init region handling code */ InitRegions(); /* Init screen */ InitScreens(DefDpy); InitOlvwmRC(DefDpy, NULL); GrabKeys(DefDpy, True); GrabButtons(DefDpy, True); ReparentScreens(DefDpy); if (!GRV.FocusFollowsMouse) ClientFocusTopmost(DefDpy, GetFirstScrInfo(), CurrentTime); CreateAutoRootMenu(DefDpy); /* Initialize selections. */ SelectionInit(); /* Initialize (and then start, if desired) the DSDM function. */ DragDropInit(); if (GRV.StartDSDM) DragDropStartDSDM(DefDpy); /* Start olwmslave - using the same args we got. */ if (GRV.RunSlaveProcess) slavePid = SlaveStart(argVec); /* Beep to indicate that we're ready. */ if (GRV.Beep != BeepNever) XBell(DefDpy, 100); /* Inform anyone who's waiting that we're ready. */ sendSyncSignal(); EventLoop(DefDpy); /*NOTREACHED*/ } /* * parseCommandline - parse the command line arguments into a resource * database */ static void parseCommandline( argc, argv, tmpDB ) int *argc; char *argv[]; XrmDatabase *tmpDB; { char instName[MAX_NAME]; char namestr[MAX_NAME]; char *type, *p; XrmValue val; /* Extract trailing pathname component of argv[0] into AppName. */ AppName = strrchr(argv[0], '/'); if (AppName == NULL) AppName = argv[0]; else ++AppName; XrmParseCommand(tmpDB, optionTable, OPTION_TABLE_ENTRIES, AppName, argc, argv ); /* * Initialize root instance and class quarks. Create the instance * name by first looking up the "name" resource in the command line * database (for the -name option). If it's not present, use AppName * (the trailing pathname component of argv[0]). Then, scan it and * replace all illegal characters with underscores. Note: we don't * use the ctype functions here, because they are internationalized. * In some locales, isalpha() will return true for characters that are * not valid in resource component names. Thus, we must fall back to * standard character comparisions. * * REMIND: specifying the -name option changes the name with which * resources are looked up. But the command line options were put * into the database using AppName, which is based on argv[0]. Thus, * specifying -name causes all command-line args to be ignored, which * is wrong. */ (void) strcpy(namestr, AppName); (void) strcat(namestr, ".name"); if (XrmGetResource(*tmpDB, namestr, namestr, &type, &val)) { (void) strncpy(instName, (char *)val.addr, MAX_NAME); } else { (void) strncpy(instName, AppName, MAX_NAME); } instName[MAX_NAME-1] = '\0'; for (p=instName; *p != '\0'; ++p) { if (!(*p >= 'a' && *p <= 'z' || *p >= 'A' && *p <= 'Z' || *p >= '0' && *p <= '9' || *p == '_' || *p == '-')) { *p = '_'; } } TopInstanceQ = XrmStringToQuark(instName); TopClassQ = XrmStringToQuark("Olwm"); OpenWinQ = XrmStringToQuark("OpenWindows"); OlwmQ = XrmStringToQuark("olwm"); /* check to see if there are any arguments left unparsed */ if ( *argc != 1 ) { if (!strcmp(argv[1], "-allowSynthetic")) GRV.AllowSyntheticEvents = True; else { GRV.AllowSyntheticEvents = False; /* check to see if it's -help */ if ( argv[1][0] == '-' && argv[1][1] == 'h' ) { usage( GetString("Command line arguments accepted"), GetString("are:")); } else { usage( GetString("Unknown argument(s)"), GetString("encountered")); } } } } /* * openDisplay - open the connection to the X display. A probe is done into * the command-line resource database in order to pick up the '-display' * command-line argument. If it is found, its value is put into the * environment. */ static Display * openDisplay(rdb) XrmDatabase rdb; { char namebuf[MAX_NAME]; char *type; XrmValue value; char *dpystr = NULL; char *envstr; Display *dpy; (void) strcpy(namebuf, AppName); (void) strcat(namebuf, ".display"); if (XrmGetResource(rdb, namebuf, namebuf, &type, &value)) { dpystr = (char *)value.addr; envstr = (char *)MemAlloc(8+strlen(dpystr)+1); sprintf(envstr, "DISPLAY=%s", dpystr); putenv(envstr); } dpy = XOpenDisplay(dpystr); if (dpy == NULL) { if (dpystr == NULL) dpystr = GetString("(NULL DISPLAY)"); fprintf(stderr, GetString("%s: cannot connect to %s\n"), ProgramName, dpystr); exit(1); } return dpy; } /* * sendSyncSignal * * Send a signal to the process named on the command line (if any). Values * for the process id and signal to send are looked up in the resource * database; they are settable with command-line options. The resources are * looked up with the names * * .syncPid process id * .syncSignal signal to send (integer) * * where is the trailing pathname component of argv[0]. */ static void sendSyncSignal() { char *type; XrmValue value; int pid; int sig = SIGALRM; int tmp; char namebuf[100]; (void) strcpy(namebuf, AppName); (void) strcat(namebuf, ".syncPid"); if (!XrmGetResource(OlwmDB, namebuf, namebuf, &type, &value)) return; pid = atoi((char *)value.addr); if (pid <= 0 || pid > MAXPID) return; (void) strcpy(namebuf, AppName); (void) strcat(namebuf, ".syncSignal"); if (XrmGetResource(OlwmDB, namebuf, namebuf, &type, &value)) { tmp = atoi((char *)value.addr); if (tmp > 0 && tmp <= SIGUSR2) sig = tmp; } (void) kill(pid, sig); } /* * initWinClasses -- initialize all of olwm's class structures. */ static void initWinClasses(dpy) Display *dpy; { FrameInit(dpy); IconInit(dpy); ResizeInit(dpy); ColormapInit(dpy); ButtonInit(dpy); BusyInit(dpy); MenuInit(dpy); PinMenuInit(dpy); RootInit(dpy); NoFocusInit(dpy); PushPinInit(dpy); PaneInit(dpy); IconPaneInit(dpy); VirtualInit(dpy); } /* * Exit -- kill the slave process, kill all running applications, then exit. */ void Exit(dpy) Display *dpy; { extern void *ClientShutdown(); SlaveStop(); ListApply(ActiveClientList, ClientShutdown, (void *)0); XSync(dpy, True); exit(0); /*NOTREACHED*/ } /* * cleanup -- kill the slave process, destroy pinned menus, and restore all * client windows to the screen. Does not exit. */ static void cleanup() { extern void *UnparentClient(); /* * If DefDpy is NULL then we didn't get to the XOpenDisplay() * so basically there is nothing to clean up so return. */ if (DefDpy == NULL) return; /* * Stop olwmslave */ SlaveStop(); /* * destroy all pinned menus */ DestroyPinnedMenuClients(); /* * Clean up the virtual desktop -- if we aren't left in the upper * left corner, nothing will start in the right place */ VirtualCleanup(DefDpy); /* * Go through the list of windows. Unmap all icons that are on the * screen. Reparent all windows back to the root, suitably offset * according to their window-gravities. Also remap all non-withdrawn * windows, and remove all Withdrawn windows from the save-set (so * they don't get remapped. REMIND: We have to do this because * Withdrawn windows are still left reparented inside the frame; this * shouldn't be the case. */ ListApply(ActiveClientList,UnparentClient,NULL); /* Destroy the screens - which will restore input focus, colormap, * and background, etc. */ DestroyScreens(DefDpy); XSync(DefDpy, True); } /* RestartOLWM -- clean up and then re-exec argv. */ int RestartOLWM() { #ifndef SYSV int mask; mask = sigblock(SIGUSR1); sigsetmask(mask & ~(sigmask(SIGUSR1))); #else sigrelse(SIGUSR1); #endif cleanup(); execvp(argVec[0], argVec); ErrorGeneral("cannot restart"); /*NOTREACHED*/ return 1; } /* Clean up and then exit. */ int ExitOLWM() { cleanup(); exit(0); return 1; } /* * handleChildSignal - keep track of children that have died */ static void handleChildSignal() { #ifdef SYSV #ifndef SVR4 signal(SIGCHLD, handleChildSignal); #endif #endif deadChildren = True; } /* * ReapChildren - wait() for all dead child processes. Blocks SIGCHLD, reaps * children until there aren't any more that have died, then unblock SIGCHLD. */ void ReapChildren() { #ifdef SYSV pid_t pid; int status; #else int oldmask; int pid; union wait status; #endif if (!deadChildren) return; #ifdef SYSV sighold(SIGCHLD); #else oldmask = sigblock(sigmask(SIGCHLD)); #endif /* clean up children until there are no more to be cleaned up */ while (1) { #ifdef SYSV pid = waitpid(-1, &status, WNOHANG); #else pid = wait3(&status, WNOHANG, (struct rusage *)0); #endif if (pid == 0) break; if (pid == -1) { if (errno == EINTR) continue; if (errno != ECHILD) perror("olwm -- wait"); break; } /* if it's the slave process then stop its use */ if (pid == slavePid) SlaveStopped(); if (WIFSTOPPED(status)) kill(pid, SIGKILL); } deadChildren = False; #ifdef SYSV sigrelse(SIGCHLD); #else (void) sigsetmask(oldmask); #endif } /* * usage(s1, s2) -- print informative message regarding usage */ static void usage(s1, s2) char *s1, *s2; { fprintf(stderr, "%s %s\n", s1, s2); fprintf(stderr,GetString("usage: %s [options]\n"),ProgramName); /* STRING_EXTRACTION - do not translate the option (ie -2d, -display) * because those are the actual string names of the command line * option. Translate the option argument (ie ) and * the descriptive text. */ #define USAGE(msg) (void) fprintf(stderr,"%s\n",GetString(msg)) USAGE("Standard Options:"); USAGE(" -2d Use two-dimensional look"); USAGE(" -3d Use three-dimensional look"); USAGE(" -bd, -bordercolor Specify the border color"); USAGE(" -bg, -background Specify the background color"); USAGE(" -c, -click Use click-to-focus mode"); USAGE(" -depth Specify the depth of the visual to use"); USAGE(" -display Specify the display to manage"); USAGE(" -f, -follow Use focus-follows-mouse mode"); USAGE(" -fn, -font Set the font for window titles"); USAGE(" -fg, -foreground Specify the foreground color"); USAGE(" -multi Manage windows on all screens"); USAGE(" -name Specify resource name for resource db"); USAGE(" -single Manage windows for a single screen only"); USAGE(" -syncpid Synchronize with process-id"); USAGE(" -syncsignal Signal to send to syncpid"); USAGE(" -xrm Specify resources on commandline"); USAGE("Debugging Options:"); USAGE(" -all Print a message for all events received"); USAGE(" -debug Turn on all debugging options"); USAGE(" -orphans Print orphaned events"); USAGE(" -synchronize Run in synchronous mode"); ; USAGE("Internationalization Options:"); USAGE(" -basiclocale Specify the basic locale for all categories"); USAGE(" -displaylang Specify the language used for displaying text"); USAGE(" -numeric Specify the numeric format"); #undef USAGE exit(1); } xview-3.2p1.4/clients/olvwm-4.1/README100644 1750 1750 13205 5521040361 14424 0ustar mbmbVersion 4 Notes --------------- Version 4 of olvwm is based on the version of olwm which comes with the 3.2 version of xview. It requires that you have version 3.2 of the olgx library, though it can get by with version 3.0 of the olgx library. If you are compiling the olgx library yourself, make sure that you change the defines in the ol_button.*.c files so that you pick up the correct one (if you have a Sun and are using the OS-supplied olgx library, the correct file will be piced up automatically). Previous versions of this have been ported to many platforms, but I've probably broken all of that with version 4. Thus, I can only say for sure that this runs under Solaris 2.3. I've compiled and run it under other versions of Solaris (including 1.1.1 or SunOs 4.1.3), but I haven't extensively tested those version. Hopefully, others will again test/port the new sections of this code and I'll include patches for other platforms in a later release (in which release any new code will still probably not be completely portable; this is quite a logistical problem). A note about internationalization: I've compiled tested and run this for Internationalization level 3 in the C locale. I don't have other locales to test it in, so it probably will not work correctly in those locales. There is code here which supports level 4 (which all came from the olwm 3.2 release) which you can work with, but again, I can't say if it will work or not. KNOWN BUGS with Solaris 2.3: 1) Restarting olvwm often causes the server to crash. This is due to a bug in the server [Sun bugid 1147131]. 2) Display postscript applications will not work if you use a lot of colors in olvwm (usually only a problem if you use a X pixmap or GIF file with lots of colors for the VDM or a menu somewhere). This affects the answerbook docviewer as well as other things. As a workaround, you can use the MaxMapColors to reduce the number of colors allocated by olvwm, or you can start a DPS application before you start olvwm. [Sun bugid 1145502.] What Is OLVWM: ------------ Olvwm (OPEN LOOK virtual window manager) is an ICCCM compliant window manager supplied for use with the XView toolkit. It is derived from olwm, the OPEN LOOK window manager supplied with the XView release. This version of olvwm is based on version 3 of the XView release. This is a completely new source distribution; there is no patch file to get from version 2 of olvwm to version 3, as the patch file would have been significantly larger than the new source. You should archive your old source before proceeding. This program requires the following libraries, headers, fonts, etc. If you have version 3 of Sun's OpenWindows product, you will have everything you need. Otherwise, you'll need the following pieces of the XView3 release, which is currently available from export.lcs.mit.edu in /contrib/xview3: 1) Version 3 of the olgx library (libolgx.a or it's shared-library counterpart). This is available with the XView3 distribution on export.lcs.mit.edu in /contrib/xview3. You can also get just the olgx library in /pub/R5untarred/contrib/lib/xview3/lib/libolgx; though it will require some work to get this to compile without the rest of the xview3 source. This library will work on R4 as well as R5. 2) OPEN LOOK fonts; by default, these fonts are already included in the FCS X Version 11 Release 4 and Release 5 distribution. You will only need these fonts if you are using an older version of the server; they can be found in the contrib/toolkits/XView/fonts directory. 3) If you use the OPEN LOOK help mechanism, you will need the program called olwmslave. This is also in the XView3 distribution as well as in /pub/R5untarred/contrib/lib/xview3/clients/olwmslave. You do not *need* this program; if you don't have it then you will not be able to use the HELP key to get help about olvwm buttons, etc. In this case, you should make sure to set the RunSlaveProcess to False in your .Xdefaults file or you'll get annoying messages about olwmslave not being found. Two man page for olvwm, olvwm.man and olvwmrc.man, can be found in this directory. These man pages discuss only features of olvwm not present in olwm; the olwm man page (olwm.man) may also be found in this directory should you need it. Building OLVWM: -------------- If you have Sun's OPENWINDOWS Version 3.0, the simplest way to make the release is to use the Makefile.sunpro makefile. Simply typing % make -f Makefile.sunpro will compile olvwm; % make -f Makefile.sunpro install will install the binary and manual pages according to locations given at the top of Makefile.sunpro. If you prefer, you may use the Imakefile instead. The Imakefile depends upon the XView library configuration files being installed correctly. Check the top of Imakefile for some additional installation information. When compiling, you will get messages in usermenu.c and olvwmrc.c that a statement is not reached. You may safely ignore this message. Installation: ------------- The following files are installed via a make install: olvwm -- placed into DESTDIR (if you use imake) or INSTALLDIR (if you use Makefile.sunpro) olvwm.man, olvwmrc.man -- placed into MANPATH (if you use imake) or MAN1DIR and MAN5DIR respectively (if you use Makefile.sunpro) olvwm.info -- placed into HELPDIR See the desired Makefile for options on overriding this behaviour. Reporting Bugs: -------------- This code is not supported by Sun Microsystems in any way; please do not use the standard xview bug report form for reporting bugs on this code. Bugs may be reported to Scott Oaks (scott.oaks@East.Sun.COM), who will try to fix bugs whenever he can. xview-3.2p1.4/clients/olvwm-4.1/pixmap.c100644 1750 1750 45277 6331437104 15231 0ustar mbmb/* * (c) Copyright 1993 Scott Oaks. See LEGAL_NOTICE file for terms of the * license */ #ifdef IDENT #ident "@(#)pixmap.c 1.3 olvwm version 09 Feb 1994" #endif /* * Various pixmap support routines: given a filename, functions in this * file will create a 1 or n-bit pixmap from a bitmap, GIF, or XBM image. */ #include #include #include #include #include #include #ifdef XPM #ifndef NO_PIXEL_FIX /* The problem with xpm.h is that it includes to get * the typedef for Pixel. Intrinsic.h, however, also typedefs Boolean * (to char). This causes the compiler to fail on the Boolean typedef * in (which is, of course, also char). is * included within "win.h". * This kludge typedefs Pixel and defines _XtIntrinsic_h so that the * real Intrinsic.h does not get included. */ #define _XtIntrinsic_h typedef unsigned long Pixel; /* Index into colormap */ #endif /* NO_PIXEL_FIX */ #include #endif XPM #include "i18n.h" #include #include "olwm.h" #include "ollocale.h" #include "globals.h" #include "screen.h" #include "mem.h" _swaplong (bp, n) register char *bp; register unsigned n; { register char c; register char *ep = bp + n; register char *sp; while (bp < ep) { sp = bp + 3; c = *sp; *sp = *bp; *bp++ = c; sp = bp + 1; c = *sp; *sp = *bp; *bp++ = c; bp += 2; } } /* * GIF support */ unsigned ImageSize(image) XImage *image; { if (image->format != ZPixmap) return(image->bytes_per_line * image->height * image->depth); return((unsigned)image->bytes_per_line * image->height); } int readGifFile(dpy, drawable, fn, w, h, pPix, hotx, hoty, colormap, ncolors, colors) Display *dpy; Drawable drawable; char *fn; unsigned int *w, *h; Pixmap *pPix; int *hotx, *hoty; Colormap *colormap; int *ncolors; XColor **colors; { FILE *fin; int ret; int screen; XImage *in_image, *out_image, *ReadGIF(); XWDFileHeader header; XVisualInfo vinfo, *vinfos; XColor color; GC gc; XGCValues gc_val; if (fn && ((fin = fopen (fn, "r")) == NULL)) return BitmapOpenFailed; ret = BitmapFileInvalid; FreePixmapColors(dpy, *ncolors, *colors, colormap); if ((in_image = ReadGIF(dpy, fin, ncolors, colors)) != NULL) { screen = DefaultScreen(dpy); /* Get the color map */ /* Create the output image */ out_image = XCreateImage(dpy, DefaultVisual(dpy, screen), in_image->depth, in_image->format, in_image->xoffset, NULL, in_image->width, in_image->height, XBitmapPad(dpy), 0); out_image->data = (char *) MemAllocN(ImageSize(out_image)); doPseudo(dpy, colormap, *ncolors, *colors, in_image, out_image); MemFree (in_image->data); MemFree (in_image); if (out_image->depth == 1) { if (*ncolors && XAllocColor(dpy, *colormap, &(*colors)[1])) gc_val.foreground = (*colors)[1].pixel; else gc_val.foreground = BlackPixel (dpy, screen); if (*ncolors && XAllocColor(dpy, *colormap, &(*colors)[0])) gc_val.background = (*colors)[0].pixel; else gc_val.background = WhitePixel (dpy, screen); } else { gc_val.background = XGetPixel(out_image, 0, 0); gc_val.foreground = 0; } *pPix = XCreatePixmap (dpy, drawable, out_image->width, out_image->height, out_image->depth); if (gc = XCreateGC(dpy, *pPix, GCForeground|GCBackground, &gc_val)) { XPutImage(dpy, *pPix, gc, out_image, 0, 0, 0, 0, out_image->width, out_image->height); XFreeGC(dpy, gc); *w = out_image->width; *h = out_image->height; ret = BitmapSuccess; } else ret = BitmapNoMemory; XDestroyImage(out_image); } /* close the input file */ (void) fclose(fin); return ret; } FreePixmapColors(dpy, ncolors, colors, colormap) Display *dpy; int ncolors; XColor *colors; Colormap *colormap; { int i; if (ncolors) { for (i = 0; i < ncolors; i++) if (colors[i].flags) { XFreeColors (dpy, *colormap, &(colors[i].pixel), 1, 0); } MemFree (colors); } } doPseudo(dpy, colormap, ncolors, colors, in_image, out_image) Display *dpy; Colormap *colormap; int ncolors; XColor *colors; register XImage *in_image, *out_image; { register int i, x, y; register XColor *color; for (i = 0; i < ncolors; i++) colors[i].flags = 0; /* Re-map colors? */ if (GRV.MaxMapColors < ncolors) { XColor *badColor, *okColor, *theColor; double this, min; XColor *new_palette, *reduce(); /* Find a a good set of colors to use */ new_palette = reduce (in_image, ncolors, colors, GRV.MaxMapColors); /* Re-map all colors to the closest allowed colors */ /* Loop through the original colors */ for (y=0; yred) - (double) (badColor->red)) * ((double) (okColor->red) - (double) (badColor->red)) + ((double) (okColor->green) - (double) (badColor->green)) * ((double) (okColor->green) - (double) (badColor->green)) + ((double) (okColor->blue) - (double) (badColor->blue)) * ((double) (okColor->blue) - (double) (badColor->blue)); /* Closest so far? */ if (this < min) { min = this; theColor = okColor; } } /* OK, got the closest */ badColor->red = theColor->red; badColor->green = theColor->green; badColor->blue = theColor->blue; } MemFree (new_palette); } /* Now transform the pixel values to those allocated by the server */ for (y = 0; y < in_image->height; y++) { for (x = 0; x < in_image->width; x++) { color = &colors[XGetPixel(in_image, x, y)]; if (!color->flags) { color->flags = DoRed | DoGreen | DoBlue; if (!XAllocColor(dpy, *colormap, color)) { char buf[1024]; sprintf(buf, "%s\n%s\n%s", "Can't allocate enough colors for all the pixmaps", "Either use fewer color pixmaps or set", "OpenWindows.MaxMapColors to a smaller number"); ErrorGeneral(buf); #ifdef not /* This is no good -- then we have colormap flashing all * over the place. And it only sometimes works */ *colormap = XCopyColormapAndFree(dpy, *colormap); XAllocColor(dpy, *colormap, color); #endif } } XPutPixel(out_image, x, y, color->pixel); } } } /* * Sun Icon support (not presently working) * */ #ifdef SUNICON SunReadIconFile(dpy, drawable, filename, width, height, bitmap) Display *dpy; Window drawable; char *filename; int *width, *height; Pixmap *bitmap; { FILE *fp; char s[256]; int version = 0, depth = 0, iconbitsz = 0; char *data, *pd; int icon_word, xbm_bits, bit_loop, xbm_loop, xbm_bytes_per_icon_word; int xbm_byte_count, width_loop, height_loop, icon_words_per_line, c; Bool half_of_last; fp = fopen(filename, "r"); if (!fp) return False; fgets(s, 255, fp); sscanf(s, "/* Format_version=%d, Width=%d, Height=%d, Depth=%d, Valid_bits_per_item=%d", &version, width, height, &depth, &iconbitsz); if (version != 1 || depth != 1 || (iconbitsz != 16 && iconbitsz != 32)) { ErrorWarning(GetString("An invalid SunIcon file was named as a bitmap")); fclose(fp); return False; } if (*width % 16) { ErrorWarning(GetString("An SunIcon file with an invalid width was named as a bitmap")); fclose(fp); return False; } data = MemAlloc((*width / 8) * *height); pd = data; while ((c = getc(fp)) != EOF) { if (c == '*') { do { if (((c = getc(fp)) != EOF) ** (c == '/')) break; } while (c == '*'); if (c == '/') break; } } if (c == EOF) { ErrorWarning(GetString("An invalid SunIcon file was named as a bitmap")); fclose(fp); return False; } xbm_bytes_per_icon_word = iconbitsz / 8; icon_words_per_line = *width / iconbitsz; if ( (*width % iconbitsz) != 0 ) { /* a 32-bit icon image that only uses half of the last icon_word */ icon_words_per_line += 1; half_of_last = True; } else half_of_last = False; for (height_loop = *height; --height_loop >= 0; ) { for ( width_loop = icon_words_per_line ; --width_loop >= 0 ; ) { /* position on 0 of 0xFFFF */ while ( ((c = getc(fp)) != EOF) && (c != '0') ) { ; /* nothing else to do */ } /* endwhile */ c = fscanf(fp, "x%X", &icon_word); if ( (width_loop == 0) && half_of_last ) xbm_byte_count = xbm_bytes_per_icon_word / 2; else xbm_byte_count = xbm_bytes_per_icon_word; for (xbm_loop = xbm_byte_count ; --xbm_loop >= 0 ; ) { xbm_bits = 0; for (bit_loop = 1 ; bit_loop <= 8 ; ++bit_loop) { xbm_bits <<= 1; xbm_bits |= (icon_word & 0x0001); icon_word >>= 1; } *(pd + xbm_loop) = xbm_bits; } pd += xbm_bytes_per_icon_word; } } *bitmap = XCreateBitmapFromData(dpy, drawable, data, *width, *height); fclose(fp); if (!*bitmap) return False; return True; } #endif SUNICON #ifdef NOT /* * Bitmap support */ static Bool makePixmapFromBitmap(dpy, scrInfo, bitmapfile, pixmap) Display *dpy; ScreenInfo *scrInfo; char *bitmapfile; Pixmap *pixmap; /* RETURN */ { char *bmPath; Pixmap bitmap; unsigned int width,height; int x,y; int status = BitmapNoMemory; GC gc; XGCValues gcv; Bool freeBitmap = False; status = XReadBitmapFile(dpy,scrInfo->rootid,bmPath, &width,&height,&bitmap,&x,&y); if (!status) freeBitmap = True; /* * Create a screen depth pixmap from the bitmap */ gcv.foreground = scrInfo->colorInfo.workspaceBitmapFg; gcv.background = scrInfo->colorInfo.workspaceBitmapBg; gc = XCreateGC(dpy,scrInfo->rootid, GCForeground|GCBackground,&gcv); *pixmap = XCreatePixmap(dpy,scrInfo->rootid, width,height,scrInfo->depth); XCopyPlane(dpy,bitmap,*pixmap,gc,0,0,width,height,0,0,1); XFreeGC(dpy,gc); if (freeBitmap) XFreePixmap(dpy,bitmap); return True; } #endif typedef enum { BadFormat, XBitmapFormat, SunIconFormat, XPixmapFormat, GifFormat } ImageFormat; ImageFormat imageFileFormat(filename) char *filename; { FILE *fp; char s[256]; int dummy; if ((fp = fopen(filename, "r")) == NULL) return BadFormat; fgets(s, 255, fp); fclose(fp); #ifdef XPM if (strncmp(s, "/* XPM */", 9) == 0) /* XPM 3.x format */ return XPixmapFormat; if (strncmp(s, "! XPM", 5) == 0) /* XPM 2.x format */ return XPixmapFormat; #endif if (strncmp(s, "GIF", 3) == 0) return GifFormat; if (s[0] == '#') return XBitmapFormat; if (sscanf(s, "/* Format_version=%d", &dummy) < 1) return BadFormat; return SunIconFormat; } /* * Bitmap Search Path */ static char **bitmapSearchPath; /* bitmap search path */ /* * makeBitmapSearchPath * * Construct bitmap search path as follows: * $OPENWINHOME/etc/workspace/patterns * $OPENWINHOME/include/X11/include/bitmaps * /usr/X11/include/X11/include/bitmaps * * REMIND: this should be cleaned up so that it doesn't use a fixed-size * array. */ static void makeBitmapSearchPath() { char bmPath[MAXPATHLEN]; char *owHome; int i = 0;; if ((owHome = getenv("OPENWINHOME")) == NULL) #ifdef OPENWINHOME_DEFAULT /* martin-2.buck@student.uni-ulm.de */ owHome = OPENWINHOME_DEFAULT; #else owHome = "/usr/openwin"; #endif bitmapSearchPath = (char **)MemAlloc(4 * sizeof(char *)); (void)sprintf(bmPath, "%s/etc/workspace/patterns",owHome); bitmapSearchPath[i++] = MemNewString(bmPath); (void)sprintf(bmPath, "%s/include/X11/bitmaps",owHome); bitmapSearchPath[i++] = MemNewString(bmPath); bitmapSearchPath[i++] = MemNewString("/usr/X11/include/X11/bitmaps"); bitmapSearchPath[i] = (char *)NULL; } /* * findBitmapFile * Finds a bitmap file in the bitmap search path; * Returns a dynamically allocated string containing the * fullpath to the bitmap file. */ static char * findBitmapFile(fileName) char *fileName; { char **dir; char fullPath[MAXPATHLEN]; char *new, *ExpandPath(); int i; Bool freeFile = False; if (bitmapSearchPath == NULL) makeBitmapSearchPath(); if ((new = ExpandPath(fileName, False)) != NULL) { fileName = new; freeFile = True; } if (fileName[0] == '/' && (access(fileName, R_OK) == 0)) { new = MemNewString(fileName); if (freeFile) MemFree(fileName); return new; } for (dir = bitmapSearchPath; *dir; dir++) { (void)sprintf(fullPath,"%s/%s",*dir,fileName); if (access(fullPath, R_OK) == 0) { new = MemNewString(fullPath); if (freeFile) MemFree(fileName); return new; } } if (freeFile) MemFree(fileName); return (char *)NULL; } /* * Global Functions */ /* * MakePixmap * * Given a filename, return a pixmap. Currently only supports X11 bitmap * files, X11 pixmap files, and GIF files, but will someday support Sun * Icon files too * * REMIND: What about different screens and colors? */ Bool MakePixmap(dpy, scrInfo, filename, pixinfo) Display *dpy; ScreenInfo *scrInfo; char *filename; PixInfo *pixinfo; /* RETURN */ { Drawable drawable = scrInfo->rootid; int depth = scrInfo->depth; Pixmap bitmap; int xhot, yhot; XGCValues gcv; GC gc; int rval; char *newname; Bool freeFilename = False; #ifdef XPM XpmAttributes xpmAttr; #endif if ((newname = findBitmapFile(filename)) != NULL) { filename = newname; freeFilename = True; } rval = False; switch ( imageFileFormat(filename) ) { case XBitmapFormat: if (XReadBitmapFile(dpy, drawable, filename, (unsigned int *) &(pixinfo->width), (unsigned int *) &(pixinfo->height), &bitmap, &xhot, &yhot) != BitmapSuccess) { goto FAILURE; } pixinfo->pixmap = XCreatePixmap(dpy, drawable, pixinfo->width, pixinfo->height, depth); gcv.foreground = pixinfo->fg; gcv.background = pixinfo->bg; gc = XCreateGC(dpy, drawable, GCForeground|GCBackground, &gcv); XCopyPlane(dpy, bitmap, pixinfo->pixmap, gc, 0, 0, pixinfo->width, pixinfo->height, 0, 0, 1); XFreePixmap(dpy, bitmap); XFreeGC(dpy, gc); rval = True; break; #ifdef SUNICON case SunIconFormat: if (!SunReadIconFile(dpy, drawable, filename, &pixlabel->width, &pixlabel->height, &bitmap)) goto FAILURE; pixlabel->pixmap = XCreatePixmap(dpy, drawable, pixlabel->width, pixlabel->height, depth); XCopyPlane(dpy, bitmap, pixlabel->pixmap, scrInfo->gc[ROOT_GC], 0, 0, pixlabel->width, pixlabel->height, 0, 0, 1); XFreePixmap(dpy, bitmap); rval = True; break; #endif #ifdef XPM case XPixmapFormat: xpmAttr.valuemask = XpmVisual | XpmColormap | XpmDepth; xpmAttr.visual = scrInfo->visual; xpmAttr.colormap = scrInfo->colormap; xpmAttr.depth = depth; if ((rval = XpmReadFileToPixmap(dpy, drawable, filename, &(pixinfo->pixmap), (Pixmap *)0, /* ignore shape mask for now */ &xpmAttr)) != PixmapSuccess) { goto FAILURE; } pixinfo->width = xpmAttr.width; pixinfo->height = xpmAttr.height; break; #endif case GifFormat: if (readGifFile(dpy, drawable, filename, &pixinfo->width, &pixinfo->height, &bitmap, &xhot, &yhot, &scrInfo->colormap, &pixinfo->ncolors, &pixinfo->colors) != BitmapSuccess) goto FAILURE; pixinfo->pixmap = XCreatePixmap(dpy, scrInfo->rootid, pixinfo->width, pixinfo->height, scrInfo->depth); gcv.function = GXcopy; gcv.plane_mask = AllPlanes; gc = XCreateGC(dpy, scrInfo->rootid, GCFunction | GCPlaneMask, &gcv); XCopyArea(dpy, bitmap, pixinfo->pixmap, gc, 0, 0, pixinfo->width, pixinfo->height, 0, 0); XFreePixmap(dpy, bitmap); XFreeGC(dpy, gc); rval = True; break; default: goto FAILURE; } rval = True; FAILURE: if (freeFilename != NULL) MemFree(newname); return rval; } xview-3.2p1.4/clients/olvwm-4.1/properties.c100644 1750 1750 43333 5515337315 16124 0ustar mbmb#ifdef IDENT #ident "@(#)properties.c 26.15 93/06/28 SMI" #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ /* * properties.c */ #include #include #include #include #include #include #include "i18n.h" #include "olwm.h" #include "win.h" #include "mem.h" #include "properties.h" /*************************************************************************** * external data ***************************************************************************/ extern Atom AtomWMClass; extern Atom AtomWMState; extern Atom AtomWMName; extern Atom AtomWMIconName; extern Atom AtomWMNormalHints; extern Atom AtomWMHints; extern Atom AtomProtocols; extern Atom AtomWMTransientFor; extern Atom AtomColorMapWindows; extern Atom AtomDecorAdd; extern Atom AtomDecorClose; extern Atom AtomDecorDel; extern Atom AtomDecorFooter; extern Atom AtomDecorHeader; extern Atom AtomDecorIconName; extern Atom AtomDecorPin; extern Atom AtomDecorResize; extern Atom AtomDeleteWindow; extern Atom AtomPinIn; extern Atom AtomPinOut; extern Atom AtomSaveYourself; extern Atom AtomTakeFocus; extern Atom AtomWinAttr; extern Atom AtomSunWindowState; extern Atom AtomLeftFooter; extern Atom AtomRightFooter; #ifdef OW_I18N_L4 extern Atom AtomDecorIMStatus; extern Atom AtomLeftIMStatus; extern Atom AtomRightIMStatus; extern Atom AtomCompoundText; #endif /*************************************************************************** * GetWindowProperty ***************************************************************************/ /* * GetWindowProperty - wrapper around XGetWindowProperty() * Returns NULL on a variety of error states; no such property, * not requested type or format. * Returned memory should be free'd with XFree() since it * is allocated by XGetWindowProperty() internally. */ void * GetWindowProperty(dpy, w, property, long_offset, long_length, req_type, req_fmt, nitems, bytes_after) Display *dpy; Window w; Atom property; long long_offset, long_length; Atom req_type; int req_fmt; unsigned long *nitems; unsigned long *bytes_after; { int status; unsigned char *prop; Atom act_type; int act_format; status = XGetWindowProperty(dpy, w, property, long_offset, long_length, False, req_type, &act_type, &act_format, nitems, bytes_after, &prop); if ((status != Success) || (act_type != req_type)) { *nitems = 0; return NULL; } if ((req_fmt != 0) && (act_format != req_fmt)) { XFree((char *)prop); *nitems = 0; return NULL; } return (void *)prop; } /* * propGetTextProp - returns a display text property */ static Bool propGetTextProp(dpy,win,property,text) Display *dpy; Window win; Atom property; Text **text; /* RETURN */ { XTextProperty textProp; Bool ret = False; #ifdef OW_I18N_L4 wchar_t **list; int count; int status; #endif if (XGetTextProperty(dpy,win,&textProp,property) == 0) { *text = NULL; return False; } #ifdef OW_I18N_L4 if (textProp.format != 8) { *text = NULL; } else { status = XwcTextPropertyToTextList(dpy, &textProp, &list, &count); if (count >= 1 && status == Success) { *text = MemNewText(list[0]); XwcFreeStringList(list); ret = True; } else *text = NULL; } #else if (textProp.encoding == XA_STRING && textProp.format == 8) { *text = MemNewText(textProp.value); ret = True; } else { *text = NULL; ret = False; } XFree((char *)textProp.value); #endif return ret; } /*************************************************************************** * Property Filter Functions ***************************************************************************/ /* * PropListAvailable - returns a set of flags representing the properties * available on the passed window. */ long PropListAvailable(dpy,win) Display *dpy; Window win; { Atom *atomList; int i,count; long retFlags; if ((atomList = XListProperties(dpy,win,&count)) == NULL) return 0L; retFlags = 0L; for (i = 0; i < count; i++) { if (atomList[i] == AtomWMClass) retFlags |= WMClassAvail; else if (atomList[i] == AtomWMName) retFlags |= WMNameAvail; else if (atomList[i] == AtomWMIconName) retFlags |= WMIconNameAvail; else if (atomList[i] == AtomWMNormalHints) retFlags |= WMNormalHintsAvail; else if (atomList[i] == AtomWMHints) retFlags |= WMHintsAvail; else if (atomList[i] == AtomProtocols) retFlags |= WMProtocolsAvail; else if (atomList[i] == AtomWMTransientFor) retFlags |= WMTransientForAvail; else if (atomList[i] == AtomColorMapWindows) retFlags |= WMColormapWindowsAvail; else if (atomList[i] == AtomWMState) retFlags |= WMStateAvail; else if (atomList[i] == AtomWinAttr) retFlags |= OLWinAttrAvail; else if (atomList[i] == AtomDecorAdd) retFlags |= OLDecorAddAvail; else if (atomList[i] == AtomDecorDel) retFlags |= OLDecorDelAvail; else if (atomList[i] == AtomSunWindowState) retFlags |= OLWindowStateAvail; else if (atomList[i] == AtomLeftFooter) retFlags |= OLLeftFooterAvail; else if (atomList[i] == AtomRightFooter) retFlags |= OLRightFooterAvail; #ifdef OW_I18N_L4 else if (atomList[i] == AtomLeftIMStatus) retFlags |= OLLeftIMStatusAvail; else if (atomList[i] == AtomRightIMStatus) retFlags |= OLRightIMStatusAvail; #endif } XFree((char *)atomList); return retFlags; } /* * Property availability control */ static struct { Window win; long flags; } propAvailable; #define PropAvailable(w,f) ((propAvailable.win == None) || \ (propAvailable.win == (w) && \ (propAvailable.flags & (f)))) /* * PropSetAvailable - sets the property read filter for that window */ void PropSetAvailable(dpy,win) Display *dpy; Window win; { propAvailable.win = win; propAvailable.flags = PropListAvailable(dpy,win); } /* * PropClearAvailable - turns off the property read filter */ void PropClearAvailable() { propAvailable.win = None; propAvailable.flags = ~0; } /*************************************************************************** * Property Get Functions ***************************************************************************/ /* * PropGetWMName - gets the WM_NAME property */ Bool PropGetWMName(dpy,win,winName) Display *dpy; Window win; Text **winName; /* RETURN */ { Text *name; if (!PropAvailable(win,WMNameAvail)) return False; if (!propGetTextProp(dpy,win,AtomWMName,winName)) return False; return True; } /* * PropGetWMIconName - gets the WM_ICON_NAME property */ Bool PropGetWMIconName(dpy,win,iconName) Display *dpy; Window win; Text **iconName; /* RETURN */ { if (!PropAvailable(win,WMIconNameAvail)) return False; if (!propGetTextProp(dpy,win,AtomWMIconName,iconName)) return False; return True; } /* * PropGetWMClass - gets the WM_CLASS property with the class and instance * strings. */ Bool PropGetWMClass(dpy,win,class,instance) Display *dpy; Window win; char **class; /* RETURN */ char **instance; /* RETURN */ { XClassHint classHint; if (!PropAvailable(win,WMClassAvail)) return False; if (XGetClassHint(dpy,win,&classHint) == 0) return False; if (classHint.res_name) { *instance = MemNewString(classHint.res_name); XFree(classHint.res_name); } if (classHint.res_class) { *class = MemNewString(classHint.res_class); XFree(classHint.res_class); } return True; } /* * PropGetWMHints - get the WM_HINTS property */ Bool PropGetWMHints(dpy,win,wmHints) Display *dpy; Window win; XWMHints *wmHints; { XWMHints *prop; if (!PropAvailable(win,WMHintsAvail)) return False; if ((prop = XGetWMHints(dpy,win)) == (XWMHints *)NULL) return False; *wmHints = *prop; XFree((char *)prop); return True; } /* * PropGetWMNormalHints - get the WM_NORMAL_HINTS property. * * preICCCM is true if we got a short/old property as indicated * by a supplied flag of PWinGravity (added by ICCCM) */ Bool PropGetWMNormalHints(dpy,win,sizeHints,preICCCM) Display *dpy; Window win; XSizeHints *sizeHints; /* RETURN */ Bool *preICCCM; /* RETURN */ { long supplied; *preICCCM = False; if (!PropAvailable(win,WMNormalHintsAvail)) return False; if (XGetWMNormalHints(dpy,win,sizeHints,&supplied) == 0) return False; if (!(supplied & PWinGravity)) *preICCCM = True; if (!(sizeHints->flags & PWinGravity)) { sizeHints->win_gravity = NorthWestGravity; sizeHints->flags |= PWinGravity; } else if (sizeHints->win_gravity == 0) { sizeHints->win_gravity = NorthWestGravity; } if (sizeHints->flags & PResizeInc) { if (sizeHints->width_inc <= 0 || sizeHints->height_inc <= 0) sizeHints->flags ^= PResizeInc; } if (sizeHints->flags & PAspect) { if (sizeHints->min_aspect.x <= 0 || sizeHints->min_aspect.y <= 0 || sizeHints->max_aspect.x <= 0 || sizeHints->max_aspect.y <= 0) sizeHints->flags ^= PAspect; } return True; } /* * PropGetWMProtocols - get the protocols in which the client will participate. * Convert the individual atoms into protocol flags. */ Bool PropGetWMProtocols(dpy,win,protocols) Display *dpy; Window win; int *protocols; { Atom *atomList; int i,count; if (!PropAvailable(win,WMProtocolsAvail)) return False; if (XGetWMProtocols(dpy,win,&atomList,&count) == 0) return False; *protocols = 0; for (i = 0; i < count; i++) { if (atomList[i] == AtomTakeFocus) *protocols |= TAKE_FOCUS; else if (atomList[i] == AtomSaveYourself) *protocols |= SAVE_YOURSELF; else if (atomList[i] == AtomDeleteWindow) *protocols |= DELETE_WINDOW; } XFree((char *)atomList); return True; } /* * PropGetWMTransientFor * * Get the WM_TRANSIENT_FOR hint. If the property exists but has a * contents of zero, or the window itself, substitute the root's * window ID. This is because some (buggy) clients actually write * zero in the WM_TRANSIENT_FOR property, and we want to give them * transient window behavior. */ Bool PropGetWMTransientFor(dpy,win,root,transientFor) Display *dpy; Window win; Window root; Window *transientFor; /* RETURN */ { Window transient; if (!PropAvailable(win,WMTransientForAvail)) return False; if (XGetTransientForHint(dpy,win,&transient) == 0) return False; if (transient != 0 && transient != win) *transientFor = transient; else *transientFor = root; return True; } /* * PropGetWMColormapWindows - */ Bool PropGetWMColormapWindows(dpy,win,wins,count) Display *dpy; Window win; Window **wins; int *count; { if (!PropAvailable(win,WMColormapWindowsAvail)) return False; if (XGetWMColormapWindows(dpy,win,wins,count) == 0) return False; return True; } /* * PropGetWMState -- get the contents of the WM_STATE property. * The first datum is the state (NormalState/IconicState/WithdrawnState) * and the second is the icon window */ Bool PropGetWMState(dpy,win,state,iconwin) Display *dpy; Window win; int *state; /* RETURN */ Window *iconwin; /* RETURN */ { unsigned long nItems,remain; int *data; if (!PropAvailable(win,WMStateAvail)) return False; data = GetWindowProperty(dpy,win,AtomWMState,0L, LONG_LENGTH(int)+LONG_LENGTH(Window), AtomWMState,32,&nItems,&remain); if (data == NULL) { *state = NormalState; *iconwin = None; return False; } if ((int) nItems > 0) *state = data[0]; else *state = NormalState; if (nItems > 1) *iconwin = (Window)data[1]; else *iconwin = None; XFree((char *)data); return True; } /* * PropSetWMState - writes the WM_STATE property */ void PropSetWMState(dpy,win,state,iconwin) Display *dpy; Window win; int state; Window iconwin; { unsigned long data[2]; data[0] = state; data[1] = iconwin; XChangeProperty(dpy,win,AtomWMState,AtomWMState,32, PropModeReplace,(unsigned char *)data,2); } #define OL_WINDOW_STATE_LENGTH (sizeof(OLWindowState)/sizeof(unsigned long)) /* * PropGetOLWindowState - reads the _SUN_WINDOW_STATE property */ Bool PropGetOLWindowState(dpy,win,winState) Display *dpy; Window win; OLWindowState *winState; /* RETURN */ { OLWindowState *newState; unsigned long nItems,remain; if (!PropAvailable(win,OLWindowStateAvail)) return False; newState = GetWindowProperty(dpy,win,AtomSunWindowState, 0L,(long) OL_WINDOW_STATE_LENGTH,XA_INTEGER,32,&nItems,&remain); if (newState == NULL) return False; if (nItems != OL_WINDOW_STATE_LENGTH) { XFree((char *)newState); return False; } *winState = *newState; XFree((char *)newState); return True; } /* * Old OLWinAttr structure; used for compatability with existing * old clients; will convert into new structure. */ typedef struct { Atom win_type; Atom menu_type; unsigned long pin_initial_state; } oldOLWinAttr; #define OLDOLWINATTRLENGTH (sizeof(oldOLWinAttr)/sizeof(unsigned long)) /* * PropGetOLWinAttr */ Bool PropGetOLWinAttr(dpy,win,winAttr,oldVersion) Display *dpy; Window win; OLWinAttr *winAttr; /* RETURN */ Bool *oldVersion; { void *attrdata; unsigned long nItems,remain; *oldVersion = False; if (!PropAvailable(win,OLWinAttrAvail)) return False; attrdata = GetWindowProperty(dpy,win,AtomWinAttr,0L,ENTIRE_CONTENTS, AtomWinAttr,0,&nItems,&remain); /* * If it's not there */ if (attrdata == NULL) return False; /* * It's either old or new size. If old size then convert * it to new structure */ if (nItems == OLDOLWINATTRLENGTH) { *oldVersion = True; winAttr->flags = WA_WINTYPE | WA_MENUTYPE | WA_PINSTATE; winAttr->win_type = ((oldOLWinAttr *)attrdata)->win_type; winAttr->menu_type = ((oldOLWinAttr *)attrdata)->menu_type; winAttr->pin_initial_state = ((oldOLWinAttr *)attrdata)->pin_initial_state; } else if (nItems == OLWINATTRLENGTH) { *winAttr = *(OLWinAttr *)attrdata; } else { /* wrong size */ XFree((char *)attrdata); return False; } /* * Convert the pushpin's initial state. * * There's some backwards compatibility code here. * Older clients use the _OL_PIN_IN and _OL_PIN_OUT atoms * here, whereas the OLXCI specifies zero as out and one as * in. Convert old into new. */ if (winAttr->flags & WA_PINSTATE) { if (winAttr->pin_initial_state == AtomPinIn) winAttr->pin_initial_state = PIN_IN; else if (winAttr->pin_initial_state == AtomPinOut) winAttr->pin_initial_state = PIN_OUT; } XFree((char *)attrdata); return True; } /* * propGetOLDecor - gets either _OL_DECOR_ADD or _OL_DECOR_DEL list of * decoration atoms and converts it into a set of flags. */ static Bool propGetOLDecor(dpy,win,atom,decorFlags) Display *dpy; Window win; Atom atom; int *decorFlags; { Atom *atomList; unsigned long nItems,remain; int i; atomList = (Atom *)GetWindowProperty(dpy,win,atom, 0L,ENTIRE_CONTENTS,XA_ATOM,0,&nItems,&remain); if (!atomList || nItems == 0) { if (atomList) XFree((char *)atomList); return False; } *decorFlags = 0; for (i = 0; i < nItems; i++) { if (atomList[i] == AtomDecorClose) *decorFlags |= WMDecorationCloseButton; else if (atomList[i] == AtomDecorFooter) *decorFlags |= WMDecorationFooter; else if (atomList[i] == AtomDecorResize) *decorFlags |= WMDecorationResizeable; else if (atomList[i] == AtomDecorHeader) *decorFlags |= WMDecorationHeader; else if (atomList[i] == AtomDecorPin) *decorFlags |= WMDecorationPushPin; else if (atomList[i] == AtomDecorIconName) *decorFlags |= WMDecorationIconName; #ifdef OW_I18N_L4 else if (atomList[i] == AtomDecorIMStatus) *decorFlags |= WMDecorationIMStatus; #endif } XFree((char *)atomList); return True; } /* * PropGetOLDecorAdd - gets the _OL_DECOR_ADD property */ Bool PropGetOLDecorAdd(dpy,win,decorFlags) Display *dpy; Window win; int *decorFlags; { if (!PropAvailable(win,OLDecorAddAvail)) return False; if (!propGetOLDecor(dpy,win,AtomDecorAdd,decorFlags)) return False; return True; } /* * PropGetOLDecorDel - gets the _OL_DECOR_DEL property */ Bool PropGetOLDecorDel(dpy,win,decorFlags) Display *dpy; Window win; int *decorFlags; { if (!PropAvailable(win,OLDecorDelAvail)) return False; if (!propGetOLDecor(dpy,win,AtomDecorDel,decorFlags)) return False; return True; } #ifdef NOT /* * propGetOLFooter - get either left/right footer strings */ static Bool propGetOLFooter(dpy,win,atom,footer) Display *dpy; Window win; Atom atom; char **footer; /* RETURN */ { char *value; unsigned long nItems,remain; value = (char *)GetWindowProperty(dpy,win,atom, 0L,ENTIRE_CONTENTS,XA_STRING,0,&nItems,&remain); if (value == NULL) return False; *footer = MemNewString(value); XFree(value); return True; } #endif /* * PropGetOLLeftFooter - gets the left footer string */ Bool PropGetOLLeftFooter(dpy,win,footer) Display *dpy; Window win; Text **footer; /* RETURN */ { if (!PropAvailable(win,OLLeftFooterAvail)) return False; if (!propGetTextProp(dpy,win,AtomLeftFooter,footer)) return False; return True; } /* * PropGetOLRightFooter - gets the right footer string */ Bool PropGetOLRightFooter(dpy,win,footer) Display *dpy; Window win; Text **footer; /* RETURN */ { if (!PropAvailable(win,OLRightFooterAvail)) return False; if (!propGetTextProp(dpy,win,AtomRightFooter,footer)) return False; return True; } #ifdef OW_I18N_L4 /* * PropGetOLLeftIMStatus - gets the left IM status string */ Bool PropGetOLLeftIMStatus(dpy,win,status) Display *dpy; Window win; Text **status; /* RETURN */ { if (!PropAvailable(win,OLLeftIMStatusAvail)) return False; if (!propGetTextProp(dpy,win,AtomLeftIMStatus,status)) return False; return True; } /* * PropGetOLRightIMStatus - gets the right IM status string */ Bool PropGetOLRightIMStatus(dpy,win,status) Display *dpy; Window win; Text **status; /* RETURN */ { if (!PropAvailable(win,OLRightIMStatusAvail)) return False; if (!propGetTextProp(dpy,win,AtomRightIMStatus,status)) return False; return True; } #endif xview-3.2p1.4/clients/olvwm-4.1/reduce.c100644 1750 1750 17313 5515337315 15176 0ustar mbmb/* reduce.c - quantize the colors in a pixmap down to a specified number ** ** Copyright (C) 1989, 1991 by Jef Poskanzer. ** ** Permission to use, copy, modify, and distribute this software and its ** documentation for any purpose and without fee is hereby granted, provided ** that the above copyright notice appear in all copies and that both that ** copyright notice and this permission notice appear in supporting ** documentation. This software is provided "as is" without express or ** implied warranty. */ #include #include #include #include #include #include #include #include #include "mem.h" #define MAXCOLORS 32767 /* #define LARGE_NORM */ #define LARGE_LUM /* #define REP_CENTER_BOX */ /* #define REP_AVERAGE_COLORS */ #define REP_AVERAGE_PIXELS typedef struct box* box_vector; struct box { int ind; int colors; int sum; }; typedef struct { long value; XColor *color; } ColorHist; typedef ColorHist *colorhist_vector; int VDMPixCmp (el1, el2) ColorHist *el1, *el2; { /* Sort into DESCENDING order */ return (el2->value - el1->value); } colorhist_vector ComputeColorHist(image, maxcolors, pal, pNcolors) XImage *image; XColor *pal; int maxcolors, *pNcolors; { register int x, y, i; colorhist_vector hist; *pNcolors = 0; hist = (colorhist_vector) MemAllocN (sizeof(ColorHist) * maxcolors); /* Initialize histogram */ for (i=0; iheight; y++) for (x = 0; x < image->width; x++) { if (!hist[XGetPixel(image, x, y)].value++) (*pNcolors)++; } /* Sort the histogram so all occurring values come first */ qsort ((char*)hist, maxcolors, sizeof (hist[0]), VDMPixCmp); return hist; } static int redcompare( ch1, ch2 ) colorhist_vector ch1, ch2; { return (int) ch1->color->red - (int) ch2->color->red; } static int greencompare( ch1, ch2 ) colorhist_vector ch1, ch2; { return (int) ch1->color->green - (int) ch2->color->green; } static int bluecompare( ch1, ch2 ) colorhist_vector ch1, ch2; { return (int) ch1->color->blue - (int) ch2->color->blue; } static int sumcompare( b1, b2 ) box_vector b1, b2; { return b2->sum - b1->sum; } /* ** Here is the fun part, the median-cut colormap generator. This is based ** on Paul Heckbert's paper "Color Image Quantization for Frame Buffer ** Display", SIGGRAPH '82 Proceedings, page 297. */ #if __STDC__ static XColor* mediancut(colorhist_vector chv, int colors, int sum, unsigned short maxval, int newcolors ) #else /*__STDC__*/ static XColor* mediancut( chv, colors, sum, maxval, newcolors ) colorhist_vector chv; int colors, sum, newcolors; unsigned short maxval; #endif /*__STDC__*/ { XColor *colormap; box_vector bv; register int bi, i; int boxes; bv = (box_vector) MemAllocN( sizeof(struct box) * newcolors ); colormap = (XColor*) MemAlloc( sizeof(XColor) * newcolors ); /* ** Set up the initial box. */ bv[0].ind = 0; bv[0].colors = colors; bv[0].sum = sum; boxes = 1; /* ** Main loop: split boxes until we have enough. */ while ( boxes < newcolors ) { register int indx, clrs; int sm; register int minr, maxr, ming, maxg, minb, maxb, v; int halfsum, lowersum; /* ** Find the first splittable box. */ for ( bi = 0; bi < boxes; ++bi ) if ( bv[bi].colors >= 2 ) break; if ( bi == boxes ) break; /* ran out of colors! */ indx = bv[bi].ind; clrs = bv[bi].colors; sm = bv[bi].sum; /* ** Go through the box finding the minimum and maximum of each ** component - the boundaries of the box. */ minr = maxr = chv[indx].color->red; ming = maxg = chv[indx].color->green; minb = maxb = chv[indx].color->blue; for ( i = 1; i < clrs; ++i ) { v = chv[indx + i].color->red; if ( v < minr ) minr = v; if ( v > maxr ) maxr = v; v = chv[indx + i].color->green; if ( v < ming ) ming = v; if ( v > maxg ) maxg = v; v = chv[indx + i].color->blue; if ( v < minb ) minb = v; if ( v > maxb ) maxb = v; } /* ** Find the largest dimension, and sort by that component. I have ** included two methods for determining the "largest" dimension; ** first by simply comparing the range in RGB space, and second ** by transforming into luminosities before the comparison. You ** can switch which method is used by switching the commenting on ** the LARGE_ defines at the beginning of this source file. */ #ifdef LARGE_NORM if ( maxr - minr >= maxg - ming && maxr - minr >= maxb - minb ) qsort( (char*) &(chv[indx]), clrs, sizeof(ColorHist), redcompare ); else if ( maxg - ming >= maxb - minb ) qsort( (char*) &(chv[indx]), clrs, sizeof(ColorHist), greencompare ); else qsort( (char*) &(chv[indx]), clrs, sizeof(ColorHist), bluecompare ); #endif /*LARGE_NORM*/ #ifdef LARGE_LUM { float rl, gl, bl; rl = (maxr - minr) * 0.299; gl = (maxg - ming) * 0.587; bl = (maxb - minb) * 0.114; if ( rl >= gl && rl >= bl ) qsort( (char*) &(chv[indx]), clrs, sizeof(ColorHist), redcompare ); else if ( gl >= bl ) qsort( (char*) &(chv[indx]), clrs, sizeof(ColorHist), greencompare ); else qsort( (char*) &(chv[indx]), clrs, sizeof(ColorHist), bluecompare ); } #endif /*LARGE_LUM*/ /* ** Now find the median based on the counts, so that about half the ** pixels (not colors, pixels) are in each subdivision. */ lowersum = chv[indx].value; halfsum = sm / 2; for ( i = 1; i < clrs - 1; ++i ) { if ( lowersum >= halfsum ) break; lowersum += chv[indx + i].value; } /* ** Split the box, and sort to bring the biggest boxes to the top. */ bv[bi].colors = i; bv[bi].sum = lowersum; bv[boxes].ind = indx + i; bv[boxes].colors = clrs - i; bv[boxes].sum = sm - lowersum; ++boxes; qsort( (char*) bv, boxes, sizeof(struct box), sumcompare ); } /* ** Ok, we've got enough boxes. Now choose a representative color for ** each box. There are a number of possible ways to make this choice. ** One would be to choose the center of the box; this ignores any structure ** within the boxes. Another method would be to average all the colors in ** the box - this is the method specified in Heckbert's paper. A third ** method is to average all the pixels in the box. You can switch which ** method is used by switching the commenting on the REP_ defines at ** the beginning of this source file. */ for ( bi = 0; bi < boxes; ++bi ) { register int indx = bv[bi].ind; register int clrs = bv[bi].colors; register long r = 0, g = 0, b = 0, sum = 0; for ( i = 0; i < clrs; ++i ) { r += chv[indx + i].color->red * chv[indx + i].value; g += chv[indx + i].color->green * chv[indx + i].value; b += chv[indx + i].color->blue * chv[indx + i].value; sum += chv[indx + i].value; } r = r / sum; if ( r > (long)maxval ) r = maxval; /* avoid math errors */ g = g / sum; if ( g > (long)maxval ) g = maxval; b = b / sum; if ( b > (long)maxval ) b = maxval; colormap[bi].red = r; colormap[bi].green = g; colormap[bi].blue = b; } /* ** All done. */ MemFree (bv); return colormap; } XColor * reduce (image, ncolors, pal, n) XImage *image; int ncolors; XColor *pal; int n; { colorhist_vector chv; XColor *newpal; int colors, i; /* ** Step 1: attempt to make a histogram of the colors */ chv = ComputeColorHist(image, ncolors, pal, &colors ); /* ** Step 3: apply median-cut to histogram, making the new colormap. */ newpal = mediancut(chv, colors, image->width * image->height, 0xffff, n); MemFree (chv); return newpal; } xview-3.2p1.4/clients/olvwm-4.1/resources.c100644 1750 1750 205324 6332160434 15754 0ustar mbmb/* * (c) Copyright 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifdef IDENT #ident "@(#)resources.c 1.7 olvwm version 09 Feb 1994" #endif /* * Based on #ident "@(#)resources.c 26.75 93/06/28 SMI" * */ #ifdef SYSV #include #endif #include #include #include #include #include #include #include #include #include #include #include #include #include "i18n.h" #include #include "olwm.h" #include "ollocale.h" #include "defaults.h" #include "globals.h" #include "resources.h" #include "win.h" #include "olcursor.h" #include "events.h" #include "mem.h" #include "menu.h" #include "virtual.h" #include "error.h" /* static data */ static Bool updateWorkspaceBackground; static Bool forceKeyRegrab; void ReInitAllUserMenus(); /* converters */ static Bool cvtWorkspaceStyle(); static Bool cvtBeepStatus(); static Bool cvtBoolean(); static Bool cvtClickTimeout(); static Bool cvtCursorFont(); static Bool cvtFocusStyle(); static Bool cvtFont(); #ifdef OW_I18N_L4 static Bool cvtFontSet(); #endif static Bool cvtIconLocation(); static Bool cvtInteger(); static Bool cvtKey(); static Bool cvtMouseless(); static Bool cvtString(); #ifdef OW_I18N_L4 static Bool cvtWString(); #endif static Bool cvtStringList(); static Bool cvtGridEnum(); static Bool cvtImageType(); static Bool cvtSortType(); static Bool cvtNoop(); /* internationalization stuff */ #ifdef OW_I18N_L3 static void GRVLCInit(); static Bool cvtOLLC(); static void setOLLCPosix(); #endif /* OW_I18N_L3 */ /* updaters */ static void updButtonFont(); static void updCursors(); void UpdFocusStyle(); /* yes, this one's global */ static void updGlyphFont(); static void updIconFont(); static void updIconLocation(); static void updMenuAccelerators(); static void updMouseless(); static void updString(); static void updStringList(); static void updSync(); static void updTextFont(); static void updTitleFont(); static void updWindow(); static void updWindowCacheSize(); static void updWorkspaceStyle(); static void updWorkspace(); static void updForeground(); static void updBackground(); static void updBorder(); static void updVirtualDesktop(); static void updVirtualGeometry(); static void updVirtualFont(); static void updVirtualMap(); static void updVirtualMapColor(); static void updVirtualBgColor(); static void updVirtualFgColor(); static void updVirtualIconGeometry(); static void updVirtualFontColor(); static void updVirtualScale(); static void updVirtualGridColor(); static void updInputFocusColor(); static void updVirtualDrawSticky(); static void updIconSlots(); extern void SetScreenVirtualForegroundColor(); extern void SetScreenVirtualBackgroundColor(); extern void SetScreenVirtualFontColor(); extern void SetScreenVirtualGridColor(); extern void SetScreenInputFocusColor(); extern void UpdateScreenVirtualFont(); extern void UpdateScreenVirtualMap(); extern void UpdateScreenVirtualGeometry(); extern void UpdateScreenVirtualDesktop(); extern void UpdateScreenVirtualIconGeometry(); extern void UpdateScreenVirtualScale(); extern void UpdateScreenVirtualDrawSticky(); extern void SetScreenVirtualPixmapColor(); extern void SetScreenInputFocusColor(); /* resource table */ typedef struct _resourceitem { char *instance; char *class; char *defaultString; void *addr; Bool (*converter)(); void (*updater)(); unsigned long flags; XrmQuark instanceQ; XrmQuark classQ; } ResourceItem; /* values for flags field */ #define RI_IMMUTABLE (1<<0) /* cannot be updated once initialized */ #define RI_LOCALE_DEP (1<<1) /* is locale dependent */ #define RI_LAST_ITEM (1<<2) /* this is the last item in the table */ /* values for ScanResourceItemTable()'s flags argument */ #define SR_IMMUTABLE (1<<0) /* scan immutable items as well */ #define SR_USE_DEFAULT (1<<1) /* If probe missed, use default */ #define SR_UPDATING (1<<2) /* update resource DB */ /* * Locale Item Table. This table contains resource items pertaining to locale * information. It is separate from the Main Item Table (below), because * locale announcement may affect which files are read to obtain resources, * and also because some items in the main table may require an additional * locale-specific resource database probe. No items in the locale item * table should require such a probe, i.e. no items in this table should have * the RI_LOCALE_DEP flag set. */ ResourceItem LocaleItemTable[] = { #ifdef OW_I18N_L3 { "basicLocale", "BasicLocale", NULL, &(GRV.lc_basic), cvtOLLC, NULL, 0L }, { "displayLang", "DisplayLang", NULL, &(GRV.lc_dlang), cvtOLLC, NULL, 0L }, { "inputLang", "InputLang", NULL, &(GRV.lc_ilang), cvtOLLC, NULL, 0L }, { "numeric", "Numeric", NULL, &(GRV.lc_numeric), cvtOLLC, NULL, 0L }, { "dateFormat", "DateFormat", NULL, &(GRV.lc_datefmt), cvtOLLC, NULL, 0L }, #endif /* OW_I18N_L3 */ /* NOTE: the following item must always be the last. */ { NULL, NULL, NULL, NULL, NULL, NULL, RI_LAST_ITEM } }; /* * Main Item Table. Contains resource items corresponding to all global * variables, except those pertaining to locale information. */ ResourceItem MainItemTable[] = { { "titleFont", "TitleFont", "-b&h-lucida-bold-r-normal-sans-*-120-*-*-*-*-*-*", #ifdef OW_I18N_L4 &(GRV.TitleFontSetInfo), cvtFontSet, updTitleFont, #else &(GRV.TitleFontInfo), cvtFont, updTitleFont, #endif RI_LOCALE_DEP }, { "textFont", "TextFont", "-b&h-lucida-medium-r-normal-sans-*-120-*-*-*-*-*-*", #ifdef OW_I18N_L4 &(GRV.TextFontSetInfo), cvtFontSet, updTextFont, #else &(GRV.TextFontInfo), cvtFont, updTextFont, #endif RI_LOCALE_DEP }, { "buttonFont", "ButtonFont", "-b&h-lucida-medium-r-normal-sans-*-120-*-*-*-*-*-*", #ifdef OW_I18N_L4 &(GRV.ButtonFontSetInfo), cvtFontSet, updButtonFont, #else &(GRV.ButtonFontInfo), cvtFont, updButtonFont, #endif RI_LOCALE_DEP }, { "iconFont", "IconFont", "-b&h-lucida-medium-r-normal-sans-*-120-*-*-*-*-*-*", #ifdef OW_I18N_L4 &(GRV.IconFontSetInfo), cvtFontSet, updIconFont, #else &(GRV.IconFontInfo), cvtFont, updIconFont, #endif RI_LOCALE_DEP }, { "glyphFont", "GlyphFont", "-sun-open look glyph-*-*-*-*-*-120-*-*-*-*-*-*", &(GRV.GlyphFontInfo), cvtFont, updGlyphFont, RI_LOCALE_DEP }, { "cursorFont", "CursorFont", "-sun-open look cursor-*-*-*-*-*-120-*-*-*-*-*-*", &(GRV.BasicPointer), cvtCursorFont, NULL, 0L }, { "foreground", "Foreground", "#000000", &(GRV.ForegroundColor), cvtString, updForeground, 0L }, { "background", "Background", "#ffffff", &(GRV.BackgroundColor), cvtString, updBackground, 0L }, { "reverseVideo", "ReverseVideo", "False", &(GRV.ReverseVideo), cvtBoolean, NULL, 0L }, { "borderColor", "BorderColor", "#000000", &(GRV.BorderColor), cvtString, updBorder, 0L }, { "windowColor", "WindowColor", "#cccccc", &(GRV.WindowColor), cvtString, updWindow, 0L }, { "workspaceStyle", "WorkspaceStyle", "paintcolor", &(GRV.WorkspaceStyle), cvtWorkspaceStyle, updWorkspaceStyle, 0L }, { "workspaceColor", "WorkspaceColor", "#40a0c0", &(GRV.WorkspaceColor), cvtString, updWorkspace, 0L }, { "workspaceBitmapFile", "WorkspaceBitmapFile", "gray", &(GRV.WorkspaceBitmapFile), cvtString, updWorkspace, 0L }, { "workspaceBitmapFg", "WorkspaceBitmapFg", "#000000", &(GRV.WorkspaceBitmapFg), cvtString, updWorkspace, 0L }, { "workspaceBitmapBg", "WorkspaceBitmapBg", "#ffffff", &(GRV.WorkspaceBitmapBg), cvtString, updWorkspace, 0L }, { "paintWorkspace", "PaintWorkspace", "True", &(GRV.PaintWorkspace), cvtBoolean, NULL, 0L }, { "pointerWorkspace", "PointerWorkspace", "True", &(GRV.PointerWorkspace), cvtBoolean, NULL, 0L }, { "use3D", "Use3D", "True", &(GRV.F3dUsed), cvtBoolean, NULL, 0L }, { "setInput", "SetInput", "Select", &(GRV.FocusFollowsMouse), cvtFocusStyle, UpdFocusStyle, 0L }, { "defaultTitle", "DefaultTitle", "No Name", #ifdef OW_I18N_L4 &(GRV.DefaultWinName), cvtWString, updString, #else &(GRV.DefaultWinName), cvtString, updString, #endif 0L }, { "flashFrequency", "FlashFrequency", "100000", &(GRV.FlashTime), cvtInteger, NULL, 0L }, { "flashTime", "FlashTime", "100000", &(GRV.FlashTime), cvtInteger, NULL, 0L }, { "iconLocation", "IconLocation", "bottom", &(GRV.IconPlacement), cvtIconLocation, updIconLocation, 0L }, { "focusLenience", "FocusLenience", "False", &(GRV.FocusLenience), cvtBoolean, NULL, 0L }, { "dragWindow", "DragWindow", "False", &(GRV.DragWindow), cvtBoolean, NULL, 0L }, { "autoRaise", "AutoRaise", "False", &(GRV.AutoRaise), cvtBoolean, NULL, 0L }, { "autoRaiseDelay", "AutoRaiseDelay", "0", &(GRV.AutoRaiseDelay), cvtInteger, NULL, 0L }, { "dragRightDistance", "DragRightDistance", "100", &(GRV.DragRightDistance), cvtInteger, NULL, 0L }, { "moveThreshold", "MoveThreshold", "5", &(GRV.MoveThreshold), cvtInteger, NULL, 0L }, { "dragThreshold", "DragThreshold", "5", &(GRV.MoveThreshold), cvtInteger, NULL, 0L }, { "clickMoveThreshold", "ClickMoveThreshold", "5", &(GRV.ClickMoveThreshold), cvtInteger, NULL, 0L }, { "multiClickTimeout", "MultiClickTimeout", "5", &(GRV.DoubleClickTime), cvtClickTimeout, NULL, 0L }, { "frontKey", "FrontKey", "Any L5", &(GRV.FrontKey), cvtKey, NULL, 0L }, { "helpKey", "HelpKey", "Help", &(GRV.HelpKey), cvtKey, NULL, 0L }, { "openKey", "OpenKey", "Any L7", &(GRV.OpenKey), cvtKey, NULL, 0L }, { "confirmKey", "ConfirmKey", "Return", &(GRV.ConfirmKey), cvtKey, NULL, 0L }, { "printOrphans", "PrintOrphans", "False", &(GRV.PrintOrphans), cvtBoolean, NULL, 0L }, { "printAll", "PrintAll", "False", &(GRV.PrintAll), cvtBoolean, NULL, 0L }, { "synchronize", "Synchronize", "False", &(GRV.Synchronize), cvtBoolean, updSync, 0L }, { "snapToGrid", "SnapToGrid", "False", &(GRV.FSnapToGrid), cvtBoolean, NULL, 0L }, { "saveWorkspaceTimeout", "SaveWorkspaceTimeout", "30", &(GRV.SaveWorkspaceTimeout), cvtInteger, NULL, 0L }, { "saveWorkspaceCmd", "SaveWorkspaceCmd", "owplaces -silent -multi -local -script -tw -output $HOME/.openwin-init", &(GRV.SaveWorkspaceCmd), cvtString, NULL, 0L }, { "popupJumpCursor", "PopupJumpCursor", "True", &(GRV.PopupJumpCursor), cvtBoolean, NULL, 0L }, { "cancelKey", "CancelKey", "Escape", &(GRV.CancelKey), cvtKey, NULL, 0L }, { "colorLockKey", "ColorLockKey", "Control L2", &(GRV.ColorLockKey), cvtKey, NULL, 0L }, { "colorUnlockKey", "ColorUnlockKey", "Control L4", &(GRV.ColorUnlockKey), cvtKey, NULL, 0L }, { "colorFocusLocked", "ColorFocusLocked", "False", &(GRV.ColorLocked), cvtBoolean, NULL, 0L }, { "edgeMoveThreshold", "EdgeMoveThreshold", "10", &(GRV.EdgeThreshold), cvtInteger, NULL, 0L }, { "rubberBandThickness", "RubberBandThickness", "2", &(GRV.RubberBandThickness), cvtInteger, NULL, 0L }, { "beep", "Beep", "always", &(GRV.Beep), cvtBeepStatus, NULL, 0L }, { "pPositionCompat", "PPositionCompat", "false", &(GRV.PPositionCompat), cvtBoolean, NULL, 0L }, { "minimalDecor", "MinimalDecor", "", &(GRV.Minimals), cvtStringList, updStringList, 0L }, { "use3DFrames", "Use3DFrames", "False", &(GRV.F3dFrames), cvtBoolean, NULL, 0L }, { "use3DResize", "Use3DResize", "True", &(GRV.F3dResize), cvtBoolean, NULL, 0L }, { "refreshRecursively", "RefreshRecursively", "True", &(GRV.RefreshRecursively), cvtBoolean, NULL, 0L }, { "mouseChordTimeout", "MouseChordTimeout", "100", &(GRV.MouseChordTimeout), cvtInteger, NULL, 0L }, { "mouseChordMenu", "MouseChordMenu", "False", &(GRV.MouseChordMenu), cvtBoolean, NULL, 0L }, { "singleScreen", "SingleScreen", "False", &(GRV.SingleScreen), cvtBoolean, NULL, 0L }, { "autoReReadMenuFile", "AutoReReadMenuFile", "True", &(GRV.AutoReReadMenuFile), cvtBoolean, NULL, 0L }, { "keepTransientsAbove", "KeepTransientsAbove", "False", &(GRV.KeepTransientsAbove), cvtBoolean, NULL, 0L }, { "transientsSaveUnder", "TransientsSaveUnder", "True", &(GRV.TransientsSaveUnder), cvtBoolean, NULL, 0L }, { "transientsTitled", "TransientsTitled", "True", &(GRV.TransientsTitled), cvtBoolean, NULL, 0L }, { "selectWindows", "SelectWindows", "True", &(GRV.SelectWindows), cvtBoolean, NULL, 0L }, { "showMoveGeometry", "ShowMoveGeometry", "False", &(GRV.ShowMoveGeometry), cvtBoolean, NULL, 0L }, { "showResizeGeometry", "ShowResizeGeometry", "False", &(GRV.ShowResizeGeometry), cvtBoolean, NULL, 0L }, { "invertFocusHighlighting", "InvertFocusHighlighting", "False", &(GRV.InvertFocusHighlighting), cvtBoolean, NULL, 0L }, { "runSlaveProcess", "RunSlaveProcess", "True", &(GRV.RunSlaveProcess), cvtBoolean, NULL, 0L }, { "selectToggleStacking", "SelectToggleStacking","False", &(GRV.SelectToggleStacking),cvtBoolean, NULL, 0L }, { "flashCount", "FlashCount", "6", &(GRV.FlashCount), cvtInteger, NULL, 0L }, { "defaultIconImage", "DefaultIconImage", NULL, &(GRV.DefaultIconImage), cvtString, NULL, 0L }, { "defaultIconMask", "DefaultIconMask", NULL, &(GRV.DefaultIconMask), cvtString, NULL, 0L }, { "serverGrabs", "ServerGrabs", "True", &(GRV.ServerGrabs), cvtBoolean, NULL, 0L }, { "iconFlashCount", "IconFlashCount", "3", &(GRV.IconFlashCount), cvtInteger, NULL, 0L }, { "selectDisplaysMenu", "SelectDisplaysMenu", "False", &(GRV.SelectDisplaysMenu), cvtBoolean, NULL, 0L }, { "selectionFuzz", "SelectionFuzz", "1", &(GRV.SelectionFuzz), cvtInteger, NULL, 0L }, { "autoInputFocus", "AutoInputFocus", "False", &(GRV.AutoInputFocus), cvtBoolean, NULL, 0L }, { "autoColorFocus", "AutoColorFocus", "False", &(GRV.AutoColorFocus), cvtBoolean, NULL, 0L }, { "colorTracksInputFocus", "ColorTracksInputFocus","False", &(GRV.ColorTracksInputFocus),cvtBoolean, NULL, 0L }, { "iconFlashOnTime", "IconFlashOnTime", "20000", &(GRV.IconFlashOnTime), cvtInteger, NULL, 0L }, { "iconFlashOffTime", "IconFlashOffTime", "1", &(GRV.IconFlashOffTime), cvtInteger, NULL, 0L }, { "keyboardCommands", "KeyboardCommands", "Basic", &(GRV.Mouseless), cvtMouseless, updMouseless, 0L }, { "raiseOnActivate", "RaiseOnActivate", "True", &(GRV.RaiseOnActivate), cvtBoolean, NULL, 0L }, { "restackWhenWithdraw", "RestackWhenWithdraw", "True", &(GRV.RestackWhenWithdraw), cvtBoolean, NULL, 0L }, { "boldFontEmulation", "BoldFontEmulation", "False", &(GRV.BoldFontEmulation), cvtBoolean, NULL, RI_LOCALE_DEP }, { "raiseOnMove", "RaiseOnMove", "False", &(GRV.RaiseOnMove), cvtBoolean, NULL, 0L }, { "raiseOnResize", "RaiseOnResize", "False", &(GRV.RaiseOnResize), cvtBoolean, NULL, 0L }, { "startDSDM", "StartDSDM", "True", &(GRV.StartDSDM), cvtBoolean, NULL, 0L }, { "printWarnings", "PrintWarnings", "False", &(GRV.PrintWarnings), cvtBoolean, NULL, 0L }, { "windowCacheSize", "WindowCacheSize", "500", &(GRV.WindowCacheSize), cvtInteger, updWindowCacheSize, 0L }, { "menuAccelerators", "MenuAccelerators", "True", &(GRV.MenuAccelerators), cvtBoolean, updMenuAccelerators, 0L }, { "windowMenuAccelerators", "WindowMenuAccelerators", "True", &(GRV.WindowMenuAccelerators), cvtBoolean, updMenuAccelerators, 0L }, #ifdef OW_I18N_L3 { "characterSet", "CharacterSet", ISO_LATIN_1, &(GRV.CharacterSet), cvtString, NULL, RI_LOCALE_DEP }, #endif /* Resources for the virtual desktop */ { "virtualDesktop", "VirtualDesktop", "3x2", &(GRV.VirtualDesktop), cvtString, updVirtualDesktop, 0L }, { "pannerScale", "PannerScale", "16", &(GRV.VDMScale), cvtInteger, updVirtualScale, 0L }, { "allowMoveIntoDesktop", "AllowMoveIntoDesktop", "True", &(GRV.AllowMoveIntoDesktop),cvtBoolean, NULL, 0L }, { "allowArrowInRoot", "AllowArrowInRoot", "True", &(GRV.ArrowInRoot), cvtBoolean, NULL, 0L }, { "virtualGeometry", "VirtualGeometry", "", &(GRV.VirtualGeometry), cvtString, updVirtualGeometry, 0L }, { "virtualFont", "VirtualFont", "5x8", &(GRV.VirtualFontName), cvtString, updVirtualFont, 0L }, { "virtualBackgroundMap", "VirtualBackgroundMap", NULL, &(GRV.VirtualBackgroundMap),cvtString, updVirtualMap, 0L }, { "virtualBackgroundColor", "VirtualBackgroundColor", NULL, &(GRV.VirtualBackgroundColor),cvtString, updVirtualBgColor, 0L }, { "virtualPixmapColor", "VirtualPixmapColor", NULL, &(GRV.VirtualPixmapColor),cvtString, updVirtualMapColor, 0L }, { "virtualIconGeometry", "VirtualIconGeometry", "", &(GRV.VirtualIconGeometry),cvtString, updVirtualIconGeometry, 0L }, { "virtualForegroundColor", "VirtualForegroundColor", NULL, &(GRV.VirtualForegroundColor),cvtString, updVirtualFgColor, 0L }, { "virtualFontColor", "VirtualFontColor", NULL, &(GRV.VirtualFontColor), cvtString, updVirtualFontColor, 0L }, { "virtualIconic", "VirtualIconic", "False", &(GRV.VirtualIconic), cvtBoolean, NULL, RI_IMMUTABLE }, { "virtualSticky", "VirtualSticky", "", &(GRV.StickyList), cvtStringList, NULL, 0L }, { "relativePosition", "RelativePosition", "True", &(GRV.UseRelativePosition), cvtBoolean, NULL, 0L }, { "grabVirtualKeys", "GrabVirtualKeys", "True", &(GRV.GrabVirtualKeys), cvtBoolean, NULL, 0L }, { "virtualGrid", "VirtualGrid", "Visible", &(GRV.VirtualGrid), cvtGridEnum, NULL, 0L }, { "virtualGridColor", "VirtualGridColor", "Black", &(GRV.VirtualGridColor), cvtString, updVirtualGridColor, 0L }, { "virtualRaiseVDM", "VirtualRaiseVDM", "False", &(GRV.VirtualRaiseVDM), cvtBoolean, NULL, 0L }, { "stickyIcons", "StickyIcons", "False", &(GRV.StickyIcons), cvtBoolean, NULL, 0L }, { "stickyIconScreen", "StickyIconScreen", "False", &(GRV.StickyIconScreen), cvtBoolean, NULL, 0L }, { "virtualMoveGroup", "VirtualMoveGroup", "True", &(GRV.VirtualMoveGroups), cvtBoolean, NULL, 0L }, { "virtualReRead", "VirtualReRead", "True", &(GRV.VirtualReRead), cvtBoolean, NULL, 0L }, { "syntheticEvents", "SyntheticEvents", "False", &(GRV.SyntheticEvents), cvtBoolean, NULL, 0L }, { "allowSyntheticEvents", "AllowSyntheticEvents", "False", &(GRV.AllowSyntheticEvents),cvtBoolean, NULL, 0L }, { "noVirtualKey", "NoVirtualKey", "", &(GRV.NoVirtualKey), cvtStringList, NULL, 0L }, { "noVirtualLKey", "NoVirtualLKey", "", &(GRV.NoVirtualLKey), cvtStringList, NULL, 0L }, { "noVirtualFKey", "NoVirtualFKey", "", &(GRV.NoVirtualFKey), cvtStringList, NULL, 0L }, { "noVirtualRKey", "NoVirtualRKey", "", &(GRV.NoVirtualRKey), cvtStringList, NULL, 0L }, { "virtualDrawSticky", "VirtualDrawSticky", "True", &(GRV.VirtualDrawSticky), cvtBoolean, updVirtualDrawSticky, 0L }, { "parentScreenPopup", "ParentScreenPopup", "True", &(GRV.ParentScreenPopup), cvtBoolean, NULL, 0L }, { "autoShowRootMenu", "AutoShowRootMenu", "False", &(GRV.AutoShowRootMenu), cvtBoolean, NULL, RI_IMMUTABLE }, { "autoRootMenuX", "AutoRootMenuX", "0", &(GRV.AutoRootMenuX), cvtInteger, NULL, RI_IMMUTABLE }, { "autoRootMenuY", "AutoRootMenuY", "0", &(GRV.AutoRootMenuY), cvtInteger, NULL, RI_IMMUTABLE }, { "inputFocusColor", "InputFocusColor", NULL, &(GRV.InputFocusColor), cvtString, updInputFocusColor, 0L }, { "fullSizeZoomX", "FullSizeZoomX", "False", &(GRV.FullSizeZoomX), cvtBoolean, NULL, 0L }, { "noDecor", "NoDecor", "", &(GRV.NoDecors), cvtStringList, NULL, 0L }, { "resizeMoveGeometry", "ResizeMoveGeometry", "0+0", &(GRV.ResizePosition), cvtString, NULL, 0L }, { "useImages", "UseImages", "UseVDM", &(GRV.UseImageMenu), cvtImageType, NULL, 0L }, { "sortMenuType", "SortMenuType", "Alphabetic", &(GRV.VirtualMenuSort), cvtSortType, NULL, 0L }, { "sortDirType", "SortDirType", "Alphabetic", &(GRV.VirtualDirSort), cvtSortType, NULL, 0L }, { "freeIconSlots", "FreeIconSlots", "False", &(GRV.FreeIconSlots), cvtBoolean, NULL, 0L }, { "iconGridHeight", "IconGridHeight", "13", &(GRV.IconGridHeight), cvtInteger, updIconSlots, 0L }, { "iconGridWidth", "IconGridWidth", "13", &(GRV.IconGridWidth), cvtInteger, updIconSlots, 0L }, { "uniqueIconSlots", "UniqueIconSlots", "False", &(GRV.UniqueIconSlots), cvtBoolean, NULL, 0L }, { "cursorSpecialResize", "CursorSpecialResize", "False", &(GRV.SpecialResizePointerData),cvtString, updCursors, 0L }, { "cursorBasic", "CursorBasic", "OLC_basic", &(GRV.BasicPointerData), cvtString, updCursors, 0L }, { "cursorMove", "CursorMove", "OLC_basic", &(GRV.MovePointerData), cvtString, updCursors, 0L }, { "cursorBusy", "CursorBusy", "OLC_busy", &(GRV.BusyPointerData), cvtString, updCursors, 0L }, { "cursorIcon", "CursorIcon", "OLC_basic", &(GRV.IconPointerData), cvtString, updCursors, 0L }, { "cursorResize", "CursorResize", "OLC_beye", &(GRV.ResizePointerData), cvtString, updCursors, 0L }, { "cursorMenu", "CursorMenu", "OLC_basic", &(GRV.MenuPointerData), cvtString, updCursors, 0L }, { "cursorQuestion", "CursorQuestion", "OLC_basic", &(GRV.QuestionPointerData), cvtString, updCursors, 0L }, { "cursorTarget", "CursorTarget", "OLC_basic", &(GRV.TargetPointerData), cvtString, updCursors, 0L }, { "cursorPan", "CursorPan", "OLC_basic", &(GRV.PanPointerData), cvtString, updCursors, 0L }, { "cursorCloseUp", "CursorCloseUp", "OLC_basic", &(GRV.CloseUpPointerData), cvtString, updCursors, 0L }, { "cursorCloseDown", "CursorCloseDown", "OLC_basic", &(GRV.CloseDownPointerData),cvtString, updCursors, 0L }, { "maxMapColors", "MaxMapColors", "200", &(GRV.MaxMapColors), cvtInteger, NULL, 0L }, /* NOTE: the following item must always be the last. */ { NULL, NULL, NULL, NULL, NULL, NULL, RI_LAST_ITEM } }; /* ===== Utilities ======================================================== */ /* * Copy a string, converting it to lower case. */ void strnlower(dest, src, n) char *dest; char *src; int n; { char *p; strncpy(dest, src, n); dest[n-1] = '\0'; /* force null termination */ for (p = dest; *p; ++p) if (isupper(*p)) *p = tolower(*p); } #define BSIZE 100 /* * Determine whether value matches pattern, irrespective of case. * This routine is necessary because not all systems have strcasecmp(). */ Bool MatchString(value, pattern) char *value; char *pattern; { char buf[BSIZE]; strnlower(buf, value, BSIZE); return (0 == strcmp(buf, pattern)); } /* * Match any of the following booleans: yes, no, 1, 0, on, off, t, nil, * true, false. Pass back the boolean matched in ret, and return True. * Otherwise, return False. Matches are case-insensitive. */ Bool matchBool(value, ret) char *value; Bool *ret; { char buf[BSIZE]; strnlower(buf, value, BSIZE); if (0 == strcmp(buf, "yes") || 0 == strcmp(buf, "on") || 0 == strcmp(buf, "t") || 0 == strcmp(buf, "true") || 0 == strcmp(buf, "1")) { *ret = True; return True; } if (0 == strcmp(buf, "no") || 0 == strcmp(buf, "off") || 0 == strcmp(buf, "nil") || 0 == strcmp(buf, "false") || 0 == strcmp(buf, "0")) { *ret = False; return True; } return False; } /* * BoolString() - return Bool based on string, returning the default value if * the string can't be converted. */ Bool BoolString(s, dflt) char *s; Bool dflt; { Bool b; if (matchBool(s,&b)) return b; else return dflt; } /* * Match any of the WorkspaceStyle keywords: paintcolor, tilebitmap, none * Pass back the WorkspaceStyle value by reference, and return True, if * a match was found; otherwise return False and do not disturb the * passed value. */ static Bool matchWorkspaceStyle(value, ret) char *value; WorkspaceStyle *ret; { if (MatchString(value,"paintcolor")) { *ret = WkspColor; return True; } if (MatchString(value,"tilebitmap")) { *ret = WkspPixmap; return True; } if (MatchString(value,"default")) { *ret = WkspDefault; return True; } return False; } /* * Match any of the following input focus keywords: followmouse, follow, f, * select, s, click, clicktotype, c. Pass back True for focusfollows or * False for clicktotype in ret (since FocusFollowsMouse is the global * corresponding to this resource), and return True. * Otherwise, return False. */ static Bool matchFocusKeyword(value, ret) char *value; Bool *ret; { char buf[BSIZE]; strnlower(buf, value, BSIZE); if (0 == strcmp(buf, "followmouse") || 0 == strcmp(buf, "follow") || 0 == strcmp(buf, "f")) { *ret = True; return True; } if (0 == strcmp(buf, "select") || 0 == strcmp(buf, "click") || 0 == strcmp(buf, "clicktotype") || 0 == strcmp(buf, "c") || 0 == strcmp(buf, "s")) { *ret = False; return True; } return False; } /* * Match any of the three possible beep keywords: always, never, or notices. * Pass back the BeepStatus value by reference, and return True, if * a match was found; otherwise return False and do not disturb the * passed value. */ static Bool matchBeepKeyword(value, ret) char *value; BeepStatus *ret; { if (MatchString(value,"always")) { *ret = BeepAlways; return True; } if (MatchString(value,"never")) { *ret = BeepNever; return True; } if (MatchString(value,"notices")) { *ret = BeepNotices; return True; } return False; } /* * Match an icon placement keyword. Store matched value in ret and return * True, or return False if no match occurred. */ static Bool matchIconPlace( value, ret ) char *value; IconPreference *ret; { if (MatchString(value, "top")) { *ret = AlongTop; return True; } if (MatchString(value, "bottom")) { *ret = AlongBottom; return True; } if (MatchString(value, "right")) { *ret = AlongRight; return True; } if (MatchString(value, "left")) { *ret = AlongLeft; return True; } if (MatchString(value, "top-lr")) { *ret = AlongTop; return True; } if (MatchString(value, "top-rl")) { *ret = AlongTopRL; return True; } if (MatchString(value, "bottom-lr")) { *ret = AlongBottom; return True; } if (MatchString(value, "bottom-rl")) { *ret = AlongBottomRL; return True; } if (MatchString(value, "right-tb")) { *ret = AlongRight; return True; } if (MatchString(value, "right-bt")) { *ret = AlongRightBT; return True; } if (MatchString(value, "left-tb")) { *ret = AlongLeft; return True; } if (MatchString(value, "left-bt")) { *ret = AlongLeftBT; return True; } return False; } static Bool matchMouselessKeyword(str, ret) char *str; MouselessMode *ret; { if (0 == strcmp(str, "SunView1")) { *ret = KbdSunView; return True; } else if (0 == strcmp(str, "Basic")) { *ret = KbdBasic; return True; } else if (0 == strcmp(str, "Full")) { *ret = KbdFull; return True; } return False; } /* * Parse a key specification of the form * * [modifier ...] keysym * * For example, "Control Shift F7". Returns True if a valid keyspec was * parsed, otherwise False. The modifier mask is returned in modmask, and the * keycode is returned in keycode. */ static Bool parseKeySpec(dpy, str, modmask, keycode) Display *dpy; char *str; unsigned int *modmask; KeyCode *keycode; { char line[100]; char *word; int kc, m; int mask = 0; int code = 0; KeySym ks; strcpy(line, str); word = strtok(line, " \t"); if (word == NULL) return False; while (word != NULL) { ks = XStringToKeysym(word); if (ks == NoSymbol) { if (strcmp(word, "Any") == 0) { mask = AnyModifier; word = strtok(NULL, " \t"); continue; } else if (strcmp(word, "Shift") == 0) ks = XK_Shift_L; else if (strcmp(word, "Control") == 0) ks = XK_Control_L; else if (strcmp(word, "Meta") == 0) ks = XK_Meta_L; else if (strcmp(word, "Alt") == 0) ks = XK_Alt_L; else if (strcmp(word, "Super") == 0) ks = XK_Super_L; else if (strcmp(word, "Hyper") == 0) ks = XK_Hyper_L; else return False; } kc = XKeysymToKeycode(dpy, ks); if (kc == 0) return False; m = FindModifierMask(kc); if (m == 0) { code = kc; break; } mask |= m; word = strtok(NULL, " \t"); } if (code == 0) return False; *keycode = code; *modmask = mask; return True; } /* ===== Converters ======================================================= */ /* * static Bool cvtWhatever(dpy, item, string, addr) * * The job of the converter is to take a string and convert it into the value * appropriate for storage into a global variable. If the conversion is * successful, the value is stored at addr and True is returned. Otherwise, * False is returned. NOTE: the converted global variable shouldn't have any * pointers into the resource database. If it's necessary to keep a handle on * this data, the converter should allocate memory and make a copy. See also * the note about memory allocation in the comment at the top of the updaters * section, below. */ static Bool /* ARGSUSED */ cvtBoolean(dpy, item, string, addr) Display *dpy; ResourceItem *item; char *string; void *addr; { return matchBool(string, (Bool *)addr); } #ifdef OW_I18N_L4 static Bool cvtFontSet(dpy, item, string, addr) Display *dpy; ResourceItem *item; char *string; void *addr; { XFontSetInfo *dest = addr; XFontSet info; char *locale; XFontSet loadQueryFontSet(); XFontSetExtents *XExtentsOfFontSet(); /* XXX - is this right? the locale may not have been set up properly */ locale = setlocale(LC_CTYPE, NULL); info = loadQueryFontSet(dpy, string, locale); if (info == NULL) return False; dest->fs = info; dest->fsx = XExtentsOfFontSet(info); return True; } #endif static Bool /* ARGSUSED */ cvtFont(dpy, item, string, addr) Display *dpy; ResourceItem *item; char *string; void *addr; { XFontStruct **dest = addr; XFontStruct *info; info = XLoadQueryFont(dpy, string); if (info == NULL) return False; *dest = info; return True; } /* * cvtCursorFont -- set up ALL cursors from cursor font specified. * * NOTE that CursorColor and Bg1Color must be set before the cursors! * * Notice that six cursors are set up (and stored in six separate GRV * elements) from this single resource. REMIND: this is kind of bogus. * Ideally, all six cursors would have fonts and character indexes specifiable * independently. Further, addr isn't used; GRV is stored directly. * * REMIND: this appears to have a resource leak, in that cursorFont is loaded * but never unloaded. * * This function became obsolete in version 3.2 of olvwm, when all cursors * started to be defined in initCursor in cursor.c */ static Bool /* ARGSUSED */ cvtCursorFont(dpy, item, string, addr) Display *dpy; ResourceItem *item; char *string; void *addr; { #ifdef not Font cursorFont; int ii; Cursor *tmpVariable; unsigned int tmpFontIndex; unsigned int defaultIndex; XColor foreColor, backColor; cursorFont = XLoadFont(dpy, string); /* * REMIND: the following doesn't make any sense. XLoadFont() simply * allocates an ID, sends the LoadFont requst, and returns the ID. There * is no error indication in the return value from XLoadFont(). This * needs to be fixed. Perhaps using XLoadQueryFont() would be the right * thing. */ if (cursorFont == NULL) return False; /* * REMIND: in the future, we will probably want to set up some scheme for * customizing cursor colors. For now, use black and white. */ foreColor.red = foreColor.green = foreColor.blue = 0; /* black */ backColor.red = backColor.green = backColor.blue = 65535; /* white */ for (ii = 0; ii < NUM_CURSORS; ++ii) { switch (ii) { case BASICPTR: tmpVariable = &GRV.BasicPointer; tmpFontIndex = OLC_basic; defaultIndex = XC_left_ptr; break; case MOVEPTR: tmpVariable = &GRV.MovePointer; tmpFontIndex = OLC_basic; defaultIndex = XC_left_ptr; break; case BUSYPTR: tmpVariable = &GRV.BusyPointer; tmpFontIndex = OLC_busy; defaultIndex = XC_watch; break; case ICONPTR: tmpVariable = &GRV.IconPointer; tmpFontIndex = OLC_basic; defaultIndex = XC_left_ptr; break; case RESIZEPTR: tmpVariable = &GRV.ResizePointer; tmpFontIndex = OLC_beye; defaultIndex = XC_tcross; break; case MENUPTR: tmpVariable = &GRV.MenuPointer; tmpFontIndex = OLC_basic; defaultIndex = XC_sb_right_arrow; break; case QUESTIONPTR: tmpVariable = &GRV.QuestionPointer; tmpFontIndex = OLC_basic; defaultIndex = XC_question_arrow; break; case TARGETPTR: tmpVariable = &GRV.TargetPointer; tmpFontIndex = OLC_basic; defaultIndex = XC_circle; break; case PANPTR: tmpVariable = &GRV.PanPointer; tmpFontIndex = OLC_panning; defaultIndex = XC_sb_v_double_arrow; break; } if (cursorFont == 0 || 0 == (*tmpVariable = XCreateGlyphCursor(dpy, cursorFont, cursorFont, tmpFontIndex, tmpFontIndex+1, &foreColor, &backColor))) { /* use default */ *tmpVariable = XCreateFontCursor( dpy, defaultIndex ); #ifdef LATER XRecolorCursor(dpy, tmpVariable, &foreColor, &backColor); #endif } } #endif return True; } #ifdef OW_I18N_L4 /* * Converting a string simply means making a copy of it. */ static Bool cvtWString(dpy, item, string, addr) Display *dpy; ResourceItem *item; char *string; void *addr; { wchar_t **str = addr; if (string == NULL) return False; *str = mbstowcsdup(string); return True; } #endif /* * Converting a string simply means making a copy of it. */ static Bool /* ARGSUSED */ cvtString(dpy, item, string, addr) Display *dpy; ResourceItem *item; char *string; void *addr; { char **str = addr; if (string == NULL) return False; *str = MemNewString(string); return True; } #ifdef NOT static Bool /* ARGSUSED */ cvtFloat(dpy, item, string, addr) Display *dpy; ResourceItem *item; char *string; void *addr; { return (1 == sscanf(string, "%f", (float *)addr)); } #endif /* * Convert an integer. Note that %i converts from decimal, octal, and * hexadecimal representations. */ static Bool /* ARGSUSED */ cvtInteger(dpy, item, string, addr) Display *dpy; ResourceItem *item; char *string; void *addr; { return (1 == sscanf(string, "%i", (int *)addr)); } /* * Convert a string representing WorkspaceStyle */ static Bool cvtWorkspaceStyle(dpy, item, string, addr) Display *dpy; ResourceItem *item; char *string; void *addr; { return matchWorkspaceStyle(string, (WorkspaceStyle *)addr); } /* * Convert a string representing tenths of a second into milliseconds. */ static Bool /* ARGSUSED */ cvtClickTimeout(dpy, item, string, addr) Display *dpy; ResourceItem *item; char *string; void *addr; { int intval; int *dest = addr; if (1 != sscanf(string, "%d", &intval)) return False; intval *= 100; /* convert to milliseconds */ /* * It's nearly impossible for typical mouse hardware to generate two * clicks in less than 100ms. We special-case this and make the minimum * timeout value be 150ms. */ if (intval < 150) intval = 150; *dest = intval; return True; } static Bool /* ARGSUSED */ cvtFocusStyle(dpy, item, string, addr) Display *dpy; ResourceItem *item; char *string; void *addr; { return matchFocusKeyword(string, (Bool *)addr); } static Bool /* ARGSUSED */ cvtBeepStatus(dpy, item, string, addr) Display *dpy; ResourceItem *item; char *string; void *addr; { return matchBeepKeyword(string, (BeepStatus *)addr); } static Bool /* ARGSUSED */ cvtMouseless(dpy, item, string, addr) Display *dpy; ResourceItem *item; char *string; void *addr; { return matchMouselessKeyword(string, (MouselessMode *)addr); } static Bool /* ARGSUSED */ cvtIconLocation(dpy, item, string, addr) Display *dpy; ResourceItem *item; char *string; void *addr; { return matchIconPlace(string, (IconPreference *)addr); } /* * Convert a key specification. REMIND: this needs to be reconciled with the * key specification stuff in evbind.c. */ static Bool /* ARGSUSED */ cvtKey(dpy, item, string, addr) Display *dpy; ResourceItem *item; char *string; void *addr; { KeySpec *keyspec = addr; unsigned int modmask; KeyCode keycode; if (!parseKeySpec(dpy, string, &modmask, &keycode)) return False; keyspec->modmask = modmask; keyspec->keycode = keycode; return True; } /* * buildStringList -- parse a string into words and build a linked list of * them. */ static void buildStringList(str, pplist) char *str; List **pplist; { char *swork, *swork2; List *l = NULL_LIST; swork2 = swork = MemNewString(str); while ((swork2 = strtok(swork2, " \t")) != NULL) { l = ListCons(MemNewString(swork2),l); swork2 = NULL; } MemFree(swork); *pplist = l; } static void * /* ARGSUSED */ freeStringList(str,junk) char *str; void *junk; { MemFree(str); return NULL; } static Bool /* ARGSUSED */ cvtStringList(dpy, item, string, addr) Display *dpy; ResourceItem *item; char *string; void *addr; { List **dest = addr; List *newl = NULL_LIST; buildStringList(string, &newl); *dest = newl; return True; } #ifdef OW_I18N_L3 /* * REMIND: somewhat strange. This function always returns True, so the * default value in the Resource Table is never used. Further, this function * handles both the conversion and update functions itself. */ static Bool /* ARGSUSED */ cvtOLLC(dpy, item, string, addr) Display *dpy; ResourceItem *item; char *string; void *addr; { OLLCItem *ollcitem = addr; char *newlocale; #ifdef DEBUG fprintf(stderr, "cvtOLLC: locale#%d, newlocale %s, curlocale %s\n", ollcitem->posixCategory, string, ollcitem->locale ? ollcitem->locale : "(null)"); #endif /* don't need to do anything if the new locale is the same as the old */ if ((string == NULL && ollcitem->locale == NULL) || (string != NULL && ollcitem->locale != NULL && 0 == strcmp(string, ollcitem->locale))) { return True; } /* they differ; update the locale */ if (string == NULL) newlocale = NULL; else newlocale = MemNewString(string); if (ollcitem->locale != NULL) MemFree(ollcitem->locale); ollcitem->locale = newlocale; #ifdef DEBUG fprintf(stderr, "cvtOLLC: locale#%d -> %s\n", ollcitem->posixCategory, ollcitem->locale ? ollcitem->locale : "(null)"); #endif return True; } #endif /* OW_I18N_L3 */ #if defined (DEBUG) && defined (OW_I18N_L3) dump_locale() { fprintf(stderr, " -> %5.5s %5.5s %5.5s %5.5s %5.5s\n", "basic", "dlang", "ilang", "numeric", "date"); fprintf(stderr, " -> %5.5s %5.5s %5.5s %5.5s %5.5s\n", GRV.lc_basic.locale ? GRV.lc_basic.locale : "(null)", GRV.lc_dlang.locale ? GRV.lc_dlang.locale : "(null)", GRV.lc_ilang.locale ? GRV.lc_ilang.locale : "(null)", GRV.lc_numeric.locale ? GRV.lc_numeric.locale : "(null)", GRV.lc_datefmt.locale ? GRV.lc_datefmt.locale : "(null)"); #endif /* ===== Updaters ========================================================= */ /* * static void updWhatever(dpy, item, cur, new); * * The job of the updater is to compare the current value and newly converted * values, and update the current value if they differ. It is responsible * for all changes in global state, such as grabbing and ungrabbing keys. * NOTE: if the converter has allocated memory, the updater must free it * appropriately. Since the updater is called with old and new values, * exactly one of them should be freed by the updater, otherwise a memory leak * will result. */ static void /* ARGSUSED */ updString(dpy, item, cur, new) Display *dpy; ResourceItem *item; char **cur, **new; { MemFree(*cur); *cur = *new; } static void /* ARGSUSED */ updStringList(dpy, item, cur, new) Display *dpy; ResourceItem *item; List **cur, **new; { ListApply(*cur, freeStringList, NULL); ListDestroy(*cur); *cur = *new; } static void /* ARGSUSED */ updWorkspaceStyle(dpy, item, cur, new) Display *dpy; ResourceItem *item; WorkspaceStyle *cur, *new; { *cur = *new; updateWorkspaceBackground = True; } static void /* ARGSUSED */ updWorkspace(dpy, item, cur, new) Display *dpy; ResourceItem *item; char **cur, **new; { MemFree(*cur); *cur = *new; updateWorkspaceBackground = True; } static void /* ARGSUSED */ updWindow(dpy, item, cur, new) Display *dpy; ResourceItem *item; char **cur, **new; { MemFree(*cur); *cur = *new; SetWindowColor(dpy); } static void /* ARGSUSED */ updForeground(dpy, item, cur, new) Display *dpy; ResourceItem *item; char **cur, **new; { MemFree(*cur); *cur = *new; SetForegroundColor(dpy); } static void /* ARGSUSED */ updBackground(dpy, item, cur, new) Display *dpy; ResourceItem *item; char **cur, **new; { MemFree(*cur); *cur = *new; SetBackgroundColor(dpy); } static void /* ARGSUSED */ updBorder(dpy, item, cur, new) Display *dpy; ResourceItem *item; char **cur, **new; { MemFree(*cur); *cur = *new; SetBorderColor(dpy); } static void /* ARGSUSED */ updSync(dpy, item, cur, new) Display *dpy; ResourceItem *item; Bool *cur, *new; { if (*cur != *new) { (void) XSynchronize(dpy, *new); *cur = *new; } } static void /* ARGSUSED */ updTitleFont(dpy, item, cur, new) Display *dpy; ResourceItem *item; #ifdef OW_I18N_L4 XFontSetInfo *cur, *new; #else XFontStruct **cur, **new; #endif { #ifdef OW_I18N_L4 freeFontSet(dpy, cur->fs); #else XFree((char *) *cur); #endif *cur = *new; SetTitleFont(dpy); } static void /* ARGSUSED */ updTextFont(dpy, item, cur, new) Display *dpy; ResourceItem *item; #ifdef OW_I18N_L4 XFontSetInfo *cur, *new; #else XFontStruct **cur, **new; #endif { #ifdef OW_I18N_L4 freeFontSet(dpy, cur->fs); #else XFree((char *) *cur); #endif *cur = *new; SetTextFont(dpy); } static void /* ARGSUSED */ updButtonFont(dpy, item, cur, new) Display *dpy; ResourceItem *item; #ifdef OW_I18N_L4 XFontSetInfo *cur, *new; #else XFontStruct **cur, **new; #endif { #ifdef OW_I18N_L4 freeFontSet(dpy, cur->fs); #else XFree((char *) *cur); #endif *cur = *new; SetButtonFont(dpy); } static void /* ARGSUSED */ updIconFont(dpy, item, cur, new) Display *dpy; ResourceItem *item; #ifdef OW_I18N_L4 XFontSetInfo *cur, *new; #else XFontStruct **cur, **new; #endif { #ifdef OW_I18N_L4 freeFontSet(dpy, cur->fs); #else XFree((char *) *cur); #endif *cur = *new; SetIconFont(dpy); } static void /* ARGSUSED */ updGlyphFont(dpy, item, cur, new) Display *dpy; ResourceItem *item; XFontStruct **cur, **new; { XFree((char *) *cur); *cur = *new; SetGlyphFont(dpy); } static void /* ARGSUSED */ updIconLocation(dpy, item, cur, new) Display *dpy; ResourceItem *item; IconPreference *cur, *new; { if (*cur != *new) { *cur = *new; SetIconLocation(dpy); } } static void /* ARGSUSED */ updMouseless(dpy, item, cur, new) Display *dpy; ResourceItem *item; MouselessMode *cur, *new; { if (*cur != *new) { *cur = *new; forceKeyRegrab = True; } } static void updMenuAccelerators(dpy, item, cur, new) Display *dpy; ResourceItem *item; Bool *cur, *new; { if (*cur != *new) { *cur = *new; forceKeyRegrab = True; } } static void updWindowCacheSize(dpy, item, cur, new) Display *dpy; ResourceItem *item; int *cur, *new; { if (*cur != *new) { *cur = *new; ScreenUpdateWinCacheSize(dpy); } } /* * unconfigureFocus * * Tell a client to remove any grabs it may have set up according to the focus * mode. If this client is the focus, tell it to draw in its unfocused state. */ static void * unconfigureFocus(cli) Client *cli; { if (cli->framewin == NULL) return NULL; FrameSetupGrabs(cli, cli->framewin->core.self, False); if (cli->isFocus) { cli->isFocus = False; WinCallDraw((WinGeneric *)cli->framewin); cli->isFocus = True; } return NULL; } /* * reconfigureFocus * * Tell a client to restore any grabs it may need for the new focus mode. If * this client is the focus, tell it to draw using the proper highlighting for * the new focus mode. */ static void * reconfigureFocus(cli) Client *cli; { if (cli->framewin == NULL) return NULL; FrameSetupGrabs(cli, cli->framewin->core.self, True); if (cli->isFocus) { WinCallDraw((WinGeneric *)cli->framewin); } return NULL; } /* * UpdFocusStyle -- change the focus style on the fly * * If focus style needs updating, call unconfigureFocus on every client. This * will clear grabs and highlighting and such while the old focus mode is * still in effect. Update the global value, and then call reconfigureFocus * on every client to set up stuff for the new focus mode. * * REMIND: This function is global because it's called from FlipFocusFunc in * services.c. This call passes NULL for item. This needs to be cleaned up. */ void /* ARGSUSED */ UpdFocusStyle(dpy, item, cur, new) Display *dpy; ResourceItem *item; Bool *cur, *new; { if (*cur != *new) { ListApply(ActiveClientList, unconfigureFocus, 0); *cur = *new; ListApply(ActiveClientList, reconfigureFocus, 0); } } /* ===== Global Functions ================================================= */ /* * datum -- temporary destination for converted values. On resource updates, * values are converted into this area instead of directly into the global * variable. This allows the update function to compare the converted values * to see whether an update is really necessary. This union should be as * large as the largest field in GRV. */ static union { int intval; void *pointer; KeySpec keyspec; #ifdef OW_I18N_L3 OLLCItem ollcitem; #ifdef OW_I18N_L4 XFontSetInfo fontsetinfo; #endif #endif /* OW_I18N_L3 */ } datum; /* * ScanResourceItemTable. Scans a resource item table, probing the * resource database for each item. Ignores any immutable items in * the table. If SR_IMMUTABLE is True, a hit will cause the table * entry's immutable flag to be set. If the probe missed and * SR_USE_DEFAULT is True, the default value will be converted. * * If SR_UPDATING is True, then we are updating the resource database * instead of initializing it. This causes a couple of differences. * If an updater function is given for the item, conversions are done * into a piece of temporary storage and then the updater function is * called to update the real global variable from this temporary * storage. */ void ScanResourceItemTable(dpy, table, rdb, oldlocale, flags) Display *dpy; ResourceItem *table; XrmDatabase rdb; char *oldlocale; unsigned long flags; { XrmRepresentation type; XrmValue value; XrmValue oldvalue; XrmQuark classes[4]; XrmQuark instances[4]; ResourceItem *item; Bool hit; #ifdef OW_I18N_L3 XrmQuark localeQ; XrmQuark oldlocaleQ; if (GRV.lc_basic.locale != NULL) localeQ = XrmStringToQuark(GRV.lc_basic.locale); else localeQ = NULLQUARK; if (oldlocale != NULL) oldlocaleQ = XrmStringToQuark(oldlocale); #endif classes[0] = OpenWinQ; instances[0] = TopInstanceQ; for (item = table; !(item->flags & RI_LAST_ITEM); ++item) { /* never update an immutable item */ if ((item->flags & RI_IMMUTABLE) && (flags & SR_UPDATING)) continue; classes[1] = item->classQ; instances[1] = item->instanceQ; hit = False; #ifdef OW_I18N_L3 if (item->flags & RI_LOCALE_DEP) { classes[2] = instances[2] = localeQ; classes[3] = instances[3] = NULLQUARK; hit = XrmQGetResource(rdb, instances, classes, &type, &value); if (!hit) { classes[0] = OlwmQ; hit = XrmQGetResource(rdb, instances, classes, &type, &value); classes[0] = OpenWinQ; } } #endif if (!hit) { classes[2] = instances[2] = NULLQUARK; hit = XrmQGetResource(rdb, instances, classes, &type, &value); if (!hit) { classes[0] = OlwmQ; hit = XrmQGetResource(rdb, instances, classes, &type, &value); classes[0] = OpenWinQ; } } if (flags & SR_UPDATING) { /* ignore if not found */ if (!hit) continue; /* ignore if old and new values are the same */ #ifdef OW_I18N_L3 if ((item->flags & RI_LOCALE_DEP) && (oldlocale != NULL)) classes[2] = instances[2] = oldlocaleQ; #endif if (XrmQGetResource(OlwmDB, instances, classes, &type, &oldvalue) && 0 == strcmp((char *)value.addr, (char *)oldvalue.addr)) { continue; } #ifdef OW_I18N_L3 if ((item->flags & RI_LOCALE_DEP) && (oldlocale != NULL)) classes[2] = instances[2] = localeQ; #endif if (item->updater == NULL) { (void) (*item->converter)(dpy, item, (char *)value.addr, item->addr); } else { (void) memset((char *) &datum, 0, sizeof(datum)); if ((*item->converter)(dpy, item, (char *)value.addr, &datum)) (*item->updater)(dpy, item, item->addr, &datum); } } else { if (hit && (*item->converter)(dpy, item, value.addr, item->addr)) { if (flags & SR_IMMUTABLE) item->flags |= RI_IMMUTABLE; } else { if (flags & SR_USE_DEFAULT) (void) (*item->converter)(dpy, item, item->defaultString, item->addr); } } } } /* * InitGlobals. Zero out all global variables. Run through resource tables, * interning their quarks. Called once at startup time. Destroys cmdDB. */ void InitGlobals(dpy, cmdDB) Display *dpy; XrmDatabase cmdDB; { ResourceItem *item; XrmDatabase userDB; (void) memset((char *) &GRV, 0, sizeof(GRV)); /* Run through the tables and intern the quarks. */ for (item = LocaleItemTable; !(item->flags & RI_LAST_ITEM); ++item) { item->classQ = XrmStringToQuark(item->class); item->instanceQ = XrmStringToQuark(item->instance); } for (item = MainItemTable; !(item->flags & RI_LAST_ITEM); ++item) { item->classQ = XrmStringToQuark(item->class); item->instanceQ = XrmStringToQuark(item->instance); } #ifdef OW_I18N_L3 GRVLCInit(); #endif userDB = GetUserDefaults(dpy); ScanResourceItemTable(dpy, LocaleItemTable, cmdDB, (char *) NULL, (unsigned long) SR_IMMUTABLE); ScanResourceItemTable(dpy, LocaleItemTable, userDB, (char *) NULL, (unsigned long) 0); #ifdef OW_I18N_L3 setOLLCPosix(); EffectOLLC(dpy, True, NULL, NULL); #endif ScanResourceItemTable(dpy, MainItemTable, cmdDB, (char *) NULL, (unsigned long) SR_IMMUTABLE); OlwmDB = GetAppDefaults(); XrmMergeDatabases(userDB, &OlwmDB); XrmMergeDatabases(cmdDB, &OlwmDB); ScanResourceItemTable(dpy, MainItemTable, OlwmDB, (char *) NULL, (unsigned long) SR_USE_DEFAULT); /* * Special case for glyph font: if we couldn't find a valid glyph font, * it's a fatal error. */ if (GRV.GlyphFontInfo == NULL) ErrorGeneral(GetString("can't open glyph font")); /*NOTREACHED*/ } /* * UpdateGlobals -- handle updates to the server's resource database. Called * every time the server's RESOURCE_MANAGER property changes. Refetches the * user's database and the app-defaults database and merges them, and then * replaces the global database with this new one. This loses the resources * that corresponded to the command-line arguments, but that should be OK * since we should have set them to be immutable at startup time. */ void UpdateGlobals(dpy) Display *dpy; { XrmDatabase userDB; XrmDatabase newDB; Bool dlangChanged = False; #ifdef OW_I18N_L3 char oldBasicLocale[MAXNAMELEN + 1]; char oldDisplayLang[MAXNAMELEN + 1]; #endif updateWorkspaceBackground = False; forceKeyRegrab = False; userDB = GetUserDefaults(dpy); ScanResourceItemTable(dpy, LocaleItemTable, userDB, (char *) NULL, (unsigned long) SR_UPDATING); #ifdef OW_I18N_L3 EffectOLLC(dpy, False, oldBasicLocale, oldDisplayLang); #endif /* OW_I18N_L3 */ /* * This re-fetches the app-defaults file every time the user database * changes. This may be necessary if the locale changes. It may also be * necessary if a resource disappears from the user's database. In this * case, we will want the value to revert to a value in the app-defaults * file, a value that had been overridden before. */ newDB = GetAppDefaults(); XrmMergeDatabases(userDB, &newDB); #ifdef OW_I18N_L3 ScanResourceItemTable(dpy, MainItemTable, newDB, oldBasicLocale, (unsigned long) SR_UPDATING); if (strcmp(GRV.lc_dlang.locale, oldDisplayLang) != 0) dlangChanged = True; #else ScanResourceItemTable(dpy, MainItemTable, newDB, NULL, SR_UPDATING); #endif if (updateWorkspaceBackground) SetWorkspaceBackground(dpy); if (dlangChanged || UpdateBindings(dpy, newDB, forceKeyRegrab)) ReInitAllUserMenus(dpy); XrmDestroyDatabase(OlwmDB); OlwmDB = newDB; } /* ===== Internationalization ============================================= */ #ifdef OW_I18N_L3 /* * setOLLCPosix * * For each locale category setting that's NULL, fetch its current POSIX * setting and store it into GRV. */ static void setOLLCPosix() { OLLCItem *ollci; OLLCItem *last = &GRV.LC[OLLC_LC_MAX]; (void) setlocale(LC_ALL, ""); #ifdef DEBUG fprintf(stderr, "Just bfore OLLCPosix\n"); dump_locale(); #endif for (ollci = GRV.LC; ollci < last; ollci++) { if (ollci->locale == NULL && ollci->posixCategory >= 0) ollci->locale = MemNewString(setlocale(ollci->posixCategory, NULL)); } #ifdef DEBUG dump_locale(); #endif } /* * GRVLCInit * * For each OPEN LOOK locale category, fill in its corresponding POSIX locale * category identifier. Note: this is not intended to be a complete mapping. */ static void GRVLCInit() { GRV.lc_basic.posixCategory = LC_CTYPE; GRV.lc_basic.envName = "LC_CTYPE"; GRV.lc_dlang.posixCategory = LC_MESSAGES; GRV.lc_dlang.envName = "LC_MESSAGES"; GRV.lc_ilang.posixCategory = -1; GRV.lc_ilang.envName = NULL; GRV.lc_numeric.posixCategory = LC_NUMERIC; GRV.lc_numeric.envName = "LC_NUMERIC"; GRV.lc_datefmt.posixCategory = LC_TIME; GRV.lc_datefmt.envName = "LC_TIME"; } /* * EffectOLLC * * Apply restrictions to locale category combinations and then effect locale * changes as necessary (using setlocale()). Restrictions are as follows: * * + The basic locale can be changed from C to a non-C locale. However, once * in a non-C locale, it can never be changed again. If Olwm is in a non-C * locale, it can support only applications in that locale and applications in * the C locale. It cannot support applications in multiple non-C locales, as * that might require Olwm to switch between locales from window to window, * which it can't do. * * + If the first or initial time through, then ignore the above restriction. * This is because the locale may be set to a non-C locale in olwm.c/main() * using an environment variable. Here we're using the locale setting from * the resources which override the environment. So the first time through * set the locale using the resource setting. * * + If the basic locale is C, all other locale categories must be C. If the * basic locale is non-C, the other categories must either be C or must match * the basic locale. * * REMIND: need to check return values from setlocale(). */ void EffectOLLC(dpy, initial, oldBasicLocale, oldDisplayLang) Display *dpy; Bool initial; char *oldBasicLocale; char *oldDisplayLang; { OLLCItem *ollci; char *basic, *new, *cur; Bool basic_updated = False; Bool sticky_locale; #ifdef DEBUG fprintf(stderr, "Before calling EffectOLLC\n"); dump_locale(); #endif /* * Apply restrictions to the basic locale if current locale is not * sticky locale (sticky locale is defined to be locale which uses * none iso latin1 as characterset), updating if necessary. * Ensure that GRV.lc_basic matches reality. * * Note: update using LC_ALL in order to get the POSIX locale * categories that aren't covered by the OPEN LOOK locale * categories. This forces us to update all the other locale * categories, even if they otherwise wouldn't need to be updated. */ if (initial || strcmp(GRV.CharacterSet, ISO_LATIN_1) == 0) sticky_locale = False; else sticky_locale = True; basic = MemNewString(setlocale(LC_CTYPE, NULL)); if (oldBasicLocale != NULL) (void) strcpy(oldBasicLocale, basic); if (oldDisplayLang != NULL) (void) strcpy(oldDisplayLang, setlocale(LC_MESSAGES, NULL)); if (initial || ! sticky_locale || (strcmp(basic, "C") == 0 && strcmp(GRV.lc_basic.locale, "C") != 0) ) { #ifdef DEBUG fprintf(stderr, "Basic Locale -> %s\n", GRV.lc_basic.locale); #endif setlocale(LC_ALL, GRV.lc_basic.locale); basic_updated = True; #ifdef OW_I18N_L4 /* * Check with Xlib to see basiclocale/LC_CTYPE is supported or * not. */ if (! XSupportsLocale()) { /* * Assumption: "C" locale is always supported by the Xlib. */ (void) fprintf(stderr, "%s: Supplied locale (%s) is not supported by Xlib - defaulting to C\n", ProgramName, GRV.lc_basic.locale); (void) setlocale(LC_ALL, "C"); if (strcmp(basic, "C") == 0) basic_updated = False; MemFree(GRV.lc_basic.locale); GRV.lc_basic.locale = MemNewString("C"); MemFree(GRV.lc_dlang.locale); GRV.lc_dlang.locale = MemNewString("C"); } if (! XSetLocaleModifiers("")) (void) fprintf(stderr, "%s: Error in setting locale modifier to Xlib\n", ProgramName); #endif MemFree(basic); basic = MemNewString(GRV.lc_basic.locale); } else if (strcmp(basic, GRV.lc_basic.locale) != 0) { MemFree(GRV.lc_basic.locale); GRV.lc_basic.locale = MemNewString(basic); } /* * Run through the other locale categories, applying the restrictions, and * updating if necessary. Skip categories that have no corresponding * Posix locale category. As before, make sure the value in GRV matches * the actual current setting. */ for (ollci = GRV.LC + 1; ollci < &GRV.LC[OLLC_LC_MAX]; ++ollci) { if (ollci->posixCategory < 0) continue; if (sticky_locale) { if (strcmp(basic, "C") != 0 && strcmp(ollci->locale, "C") != 0) { new = basic; } else { new = "C"; } } else new = ollci->locale; cur = setlocale(ollci->posixCategory, NULL); if (basic_updated || strcmp(cur, new) != 0) { #ifdef DEBUG fprintf(stderr, "locale#%d -> %s\n", ollci->posixCategory, new); #endif setlocale(ollci->posixCategory, new); } if (strcmp(ollci->locale, new) != 0) { MemFree(ollci->locale); ollci->locale = MemNewString(new); } } MemFree(basic); #ifdef DEBUG dump_locale(); #endif } #endif /* OW_I18N_L3 */ /* * ReInitAllUserMenus -- Reinitalize the user menus for each screen */ void ReInitAllUserMenus(dpy) Display *dpy; { ScreenInfo *si; extern List *ScreenInfoList; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) ReInitUserMenu(dpy, si, True); } /* * setVirtualScreenAttribute - set the given attribute for each vdm */ static void setVirtualScreenAttribute(dpy, f) Display *dpy; FuncPtr f; { ScreenInfo *si; extern List *ScreenInfoList; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { (*f)(dpy,si); RedrawVDM(si->vdm); } } static void /* ARGSUSED */ updVirtualFgColor(dpy, item, cur, new) Display *dpy; ResourceItem *item; char **cur, **new; { MemFree(*cur); *cur = *new; setVirtualScreenAttribute(dpy, (FuncPtr) SetScreenVirtualForegroundColor); } static void /* ARGSUSED */ updVirtualBgColor(dpy, item, cur, new) Display *dpy; ResourceItem *item; char **cur, **new; { MemFree(*cur); *cur = *new; setVirtualScreenAttribute(dpy, (FuncPtr) SetScreenVirtualBackgroundColor); } static void /* ARGSUSED */ updVirtualFontColor(dpy, item, cur, new) Display *dpy; ResourceItem *item; char **cur, **new; { MemFree(*cur); *cur = *new; setVirtualScreenAttribute(dpy, (FuncPtr) SetScreenVirtualFontColor); } static void /* ARGSUSED */ updVirtualGridColor(dpy, item, cur, new) Display *dpy; ResourceItem *item; char **cur, **new; { MemFree(*cur); *cur = *new; setVirtualScreenAttribute(dpy, (FuncPtr) SetScreenVirtualGridColor); } static void /* ARGSUSED */ updInputFocusColor(dpy, item, cur, new) Display *dpy; ResourceItem *item; char **cur, **new; { MemFree(*cur); *cur = *new; setVirtualScreenAttribute(dpy, (FuncPtr) SetScreenInputFocusColor); } static void /* ARGSUSED */ updVirtualFont(dpy, item, cur, new) Display *dpy; ResourceItem *item; char **cur, **new; { MemFree(*cur); *cur = *new; setVirtualScreenAttribute(dpy, (FuncPtr) UpdateScreenVirtualFont); } static void /* ARGSUSED */ updVirtualGeometry(dpy, item, cur, new) Display *dpy; ResourceItem *item; char **cur, **new; { MemFree(*cur); *cur = *new; setVirtualScreenAttribute(dpy, (FuncPtr) UpdateScreenVirtualGeometry); } static void /* ARGSUSED */ updVirtualMap(dpy, item, cur, new) Display *dpy; ResourceItem *item; char **cur, **new; { MemFree(*cur); *cur = *new; setVirtualScreenAttribute(dpy, (FuncPtr) UpdateScreenVirtualMap); } static void /* ARGSUSED */ updVirtualMapColor(dpy, item, cur, new) Display *dpy; ResourceItem *item; char **cur, **new; { MemFree(*cur); *cur = *new; setVirtualScreenAttribute(dpy, (FuncPtr) SetScreenVirtualPixmapColor); } static void /* ARGSUSED */ updVirtualDesktop(dpy, item, cur, new) Display *dpy; ResourceItem *item; char **cur, **new; { MemFree(*cur); *cur = *new; setVirtualScreenAttribute(dpy, (FuncPtr) UpdateScreenVirtualDesktop); } static void /* ARGSUSED */ updVirtualIconGeometry(dpy, item, cur, new) Display *dpy; ResourceItem *item; char **cur, **new; { MemFree(*cur); *cur = *new; setVirtualScreenAttribute(dpy, (FuncPtr) UpdateScreenVirtualIconGeometry); } static void /* ARGSUSED */ updVirtualScale(dpy, item, cur, new) Display *dpy; ResourceItem *item; char **cur, **new; { *cur = *new; setVirtualScreenAttribute(dpy, (FuncPtr) UpdateScreenVirtualScale); } static void /* ARGSUSED */ updVirtualDrawSticky(dpy, item, cur, new) Display *dpy; ResourceItem *item; char **cur, **new; { *cur = *new; setVirtualScreenAttribute(dpy, (FuncPtr) UpdateScreenVirtualDrawSticky); } static Bool /* ARGSUSED */ cvtGridEnum(dpy, item, value, ret) Display *dpy; ResourceItem *item; char *value; VirtualGridType *ret; { if (MatchString(value,"none")) { *ret = GridNone; return True; } if (MatchString(value,"invisible")) { *ret = GridInvisible; return True; } if (MatchString(value,"visible")) { *ret = GridVisible; return True; } return False; } static Bool /* ARGSUSED */ cvtSortType(dpy, item, value, ret) Display *dpy; ResourceItem *item; char *value; SortType *ret; { if (MatchString(value,"alphabetic")) { *ret = SortAlpha; return True; } if (MatchString(value,"youngest")) { *ret = SortYounger; return True; } if (MatchString(value,"allalphabetic")) { *ret = SortAlphaAll; return True; } if (MatchString(value,"allyoungest")) { *ret = SortYoungerAll; return True; } return False; } static Bool /* ARGSUSED */ cvtImageType(dpy, item, value, ret) Display *dpy; ResourceItem *item; char *value; ImageType *ret; { if (MatchString(value,"useall")) { *ret = UseAll; return True; } if (MatchString(value,"usenone")) { *ret = UseNone; return True; } if (MatchString(value,"usevdm")) { *ret = UseVDM; return True; } return False; } #ifdef NOT static Bool /* ARGSUSED */ cvtNoop(dpy, item, value, ret) Display *dpy; ResourceItem *item; char *value; void *ret; { return False; } #endif static void /* ARGSUSED */ updCursors(dpy, item, cur, new) Display *dpy; ResourceItem *item; char **cur, **new; { /* free the new string, as the cursors never update */ MemFree(*new); } static void updIconSlots(dpy, item, cur, new) Display *dpy; ResourceItem *item; char **cur, **new; { ScreenInfo *si; extern List *ScreenInfoList; List *l = ScreenInfoList; *cur = *new; for (si = ListEnum(&l); si; si = ListEnum(&l)) { SlotSetLocations(dpy,si->iconGrid); } } xview-3.2p1.4/clients/olvwm-4.1/screen.c100644 1750 1750 242246 6331437206 15230 0ustar mbmb/* * (c) Copyright 1989, 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifdef IDENT #ident "@(#)screen.c 1.7 olvwm version 09 Feb 1994" #endif /* * Based on #ident "@(#)screen.c 26.46 93/06/28 SMI" * */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include "i18n.h" #include #include "ollocale.h" #include "mem.h" #include "olwm.h" #include "defaults.h" #include "globals.h" #include "resources.h" #include "environ.h" #include "win.h" #include "menu.h" #include "slots.h" #include "virtual.h" #include "cursors.h" #include "iconimage.h" #include "iconmask.h" /*------------------------------------------------------------------------- * Default Constants *-------------------------------------------------------------------------*/ #define DEFWORKSPACECOLOR "#40a0c0" #define DEFWINDOWCOLOR "#cccccc" #define DEFFOREGROUNDCOLOR "#000000" #define DEFBACKGROUNDCOLOR "#ffffff" #define DEFBORDERCOLOR "#000000" #define DEFVIRTUALFORECOLOR DEFWINDOWCOLOR #define DEFVIRTUALBACKCOLOR DEFWORKSPACECOLOR #define DEFVIRTUALFONTCOLOR DEFBACKGROUNDCOLOR #define DEFVIRTUALGRIDCOLOR DEFBACKGROUNDCOLOR #define DEFVIRTUALPIXMAPCOLOR DEFFOREGROUNDCOLOR /*------------------------------------------------------------------------- * Global Data *-------------------------------------------------------------------------*/ List *ScreenInfoList; /* List of managed screens */ extern Bool BoolString(); /*------------------------------------------------------------------------- * Local Data *-------------------------------------------------------------------------*/ #define gray50_width 8 /* background gray bitmap */ #define gray50_height 8 static unsigned char gray50_bits[] = { 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa }; #define busy_gray_width 8 /* frame busy bitmap */ #define busy_gray_height 8 static unsigned char busy_gray_bits[] = { 0x88, 0x00, 0x22, 0x00, 0x88, 0x00, 0x22, 0x00 }; static Bool usingDefaultRootStipple; /* * Set from GlyphFont; used in moveresize.c,winframe.c,winresize.c */ int Resize_height, Resize_width; /* * Quarks. The 'C' suffix indicates a class name, and the 'I' suffix * indicates an instance name. All are also suffixed with 'Q' to indicate * that they're quarks. Note that the "class" in the "visclass" variables * refers to the visual class, not the resource class. */ static XrmQuark screenClassQ; static XrmQuark visdepthCQ; static XrmQuark visdepthIQ; static XrmQuark visclassCQ; static XrmQuark visclassIQ; static XrmQuark visidCQ; static XrmQuark visidIQ; #ifdef NOT static XrmQuark cmapCQ; static XrmQuark cmapIQ; #endif static XrmQuark workspaceColorCQ; static XrmQuark workspaceColorIQ; static XrmQuark workspaceBitmapFileCQ; static XrmQuark workspaceBitmapFileIQ; static XrmQuark workspaceBitmapFgCQ; static XrmQuark workspaceBitmapFgIQ; static XrmQuark workspaceBitmapBgCQ; static XrmQuark workspaceBitmapBgIQ; static XrmQuark windowColorCQ; static XrmQuark windowColorIQ; static XrmQuark foregroundColorCQ; static XrmQuark foregroundColorIQ; static XrmQuark backgroundColorCQ; static XrmQuark backgroundColorIQ; static XrmQuark borderColorCQ; static XrmQuark borderColorIQ; static XrmQuark reverseVideoCQ; static XrmQuark reverseVideoIQ; static XrmQuark stippledRubberBandsCQ; static XrmQuark stippledRubberBandsIQ; static XrmQuark virtualForegroundColorCQ; static XrmQuark virtualForegroundColorIQ; static XrmQuark virtualBackgroundColorCQ; static XrmQuark virtualBackgroundColorIQ; static XrmQuark virtualFontColorCQ; static XrmQuark virtualFontColorIQ; static XrmQuark virtualGridColorCQ; static XrmQuark virtualGridColorIQ; static XrmQuark inputFocusColorCQ; static XrmQuark inputFocusColorIQ; static XrmQuark virtualMapNameCQ; static XrmQuark virtualMapNameIQ; static XrmQuark virtualGeometryCQ; static XrmQuark virtualGeometryIQ; static XrmQuark virtualFontCQ; static XrmQuark virtualFontIQ; static XrmQuark virtualDesktopCQ; static XrmQuark virtualDesktopIQ; static XrmQuark virtualIconGeometryCQ; static XrmQuark virtualIconGeometryIQ; static XrmQuark virtualScaleCQ; static XrmQuark virtualScaleIQ; static XrmQuark virtualGridCQ; static XrmQuark virtualGridIQ; static XrmQuark virtualPixmapColorCQ; static XrmQuark virtualPixmapColorIQ; /*------------------------------------------------------------------------- * Local Functions *-------------------------------------------------------------------------*/ /* * makeScreenQuarks -- set up quarks for screen resources */ static void makeScreenQuarks() { screenClassQ = XrmStringToQuark("Screen"); visdepthCQ = XrmStringToQuark("Depth"); visdepthIQ = XrmStringToQuark("depth"); visclassCQ = XrmStringToQuark("Visual"); visclassIQ = XrmStringToQuark("visual"); visidCQ = XrmStringToQuark("VisualID"); visidIQ = XrmStringToQuark("visualID"); #ifdef NOT cmapCQ = XrmStringToQuark("Colormap"); cmapIQ = XrmStringToQuark("colormap"); #endif workspaceColorCQ = XrmStringToQuark("WorkspaceColor"); workspaceColorIQ = XrmStringToQuark("workspaceColor"); workspaceColorCQ = XrmStringToQuark("WorkspaceColor"); workspaceColorIQ = XrmStringToQuark("workspaceColor"); workspaceBitmapFileCQ = XrmStringToQuark("WorkspaceBitmapFile"); workspaceBitmapFileIQ = XrmStringToQuark("workspaceBitmapFile"); workspaceBitmapFgCQ = XrmStringToQuark("WorkspaceBitmapFg"); workspaceBitmapFgIQ = XrmStringToQuark("workspaceBitmapFg"); workspaceBitmapBgCQ = XrmStringToQuark("WorkspaceBitmapBg"); workspaceBitmapBgIQ = XrmStringToQuark("workspaceBitmapBg"); windowColorCQ = XrmStringToQuark("WindowColor"); windowColorIQ = XrmStringToQuark("windowColor"); foregroundColorCQ = XrmStringToQuark("Foreground"); foregroundColorIQ = XrmStringToQuark("foreground"); backgroundColorCQ = XrmStringToQuark("Background"); backgroundColorIQ = XrmStringToQuark("background"); borderColorCQ = XrmStringToQuark("BorderColor"); borderColorIQ = XrmStringToQuark("borderColor"); foregroundColorIQ = XrmStringToQuark("foreground"); reverseVideoCQ = XrmStringToQuark("ReverseVideo"); reverseVideoIQ = XrmStringToQuark("reverseVideo"); stippledRubberBandsCQ = XrmStringToQuark("StippledRubberBands"); stippledRubberBandsIQ = XrmStringToQuark("stippledRubberBands"); virtualForegroundColorCQ = XrmStringToQuark("VirtualForegroundColor"); virtualForegroundColorIQ = XrmStringToQuark("virtualForegroundColor"); virtualBackgroundColorCQ = XrmStringToQuark("VirtualBackgroundColor"); virtualBackgroundColorIQ = XrmStringToQuark("virtualBackgroundColor"); virtualFontColorCQ = XrmStringToQuark("VirtualFontColor"); virtualFontColorIQ = XrmStringToQuark("virtualFontColor"); virtualGridColorCQ = XrmStringToQuark("VirtualGridColor"); virtualGridColorIQ = XrmStringToQuark("virtualGridColor"); inputFocusColorCQ = XrmStringToQuark("InputFocusColor"); inputFocusColorIQ = XrmStringToQuark("inputFocusColor"); virtualMapNameCQ = XrmStringToQuark("VirtualBackgroundMap"); virtualMapNameIQ = XrmStringToQuark("virtualBackgroundMap"); virtualGeometryCQ = XrmStringToQuark("VirtualGeometry"); virtualGeometryIQ = XrmStringToQuark("virtualGeometry"); virtualDesktopCQ = XrmStringToQuark("VirtualDesktop"); virtualDesktopIQ = XrmStringToQuark("virtualDesktop"); virtualIconGeometryCQ = XrmStringToQuark("VirtualIconGeometry"); virtualIconGeometryIQ = XrmStringToQuark("virtualIconGeometry"); virtualScaleCQ = XrmStringToQuark("VirtualScale"); virtualScaleIQ = XrmStringToQuark("virtualScale"); virtualGridCQ = XrmStringToQuark("VirtualGrid"); virtualGridIQ = XrmStringToQuark("virtualGrid"); virtualPixmapColorCQ = XrmStringToQuark("VirtualPixmapColor"); virtualPixmapColorIQ = XrmStringToQuark("virtualPixmapColor"); } /* * getResource -- gets the resource value for a given instance/class quark * * Probes are made into the resource database using the following instance and * class components: * * class: Olwm.Screen. * instance: .screen#. * * Returns NULL on failure */ static char * getResource(scrInfo,classQ,instanceQ) ScreenInfo *scrInfo; XrmQuark classQ; XrmQuark instanceQ; { XrmQuark classes[4]; XrmQuark instances[4]; XrmQuark type; XrmValue value; classes[0] = TopClassQ; classes[1] = screenClassQ; classes[2] = classQ; classes[3] = 0; instances[0] = TopInstanceQ; instances[1] = scrInfo->instanceQ; instances[2] = instanceQ; instances[3] = 0; if (!XrmQGetResource(OlwmDB, instances, classes, &type, &value)) { return (char *)NULL; } return (char *)value.addr; } /* * isColorScreen -- check to see if a screen supports color. */ static Bool isColorScreen(scrInfo,visInfo,nvisuals) ScreenInfo *scrInfo; XVisualInfo *visInfo; int nvisuals; { int screen = scrInfo->screen; int i; for (i=0; idepth; int visclass = scrInfo->visual->class; /* REMIND: this is illegal; visual is supposed to be opaque */ Bool result = True; /* * If 2d-look specified then use it no matter what the visual is */ if (!GRV.F3dUsed) return False; switch (visclass) { case StaticGray: case GrayScale: if (depth < 2) result = False; break; case DirectColor: case PseudoColor: if (depth < 4) result = False; break; case StaticColor: if (depth < 8) result = False; break; case TrueColor: if (depth < 6) result = False; break; } return result; } /* * initBasic - sets root/depth/visual/colormap basics */ static void initBasic(dpy,scrInfo,visInfo,nvis) Display *dpy; ScreenInfo *scrInfo; XVisualInfo *visInfo; int nvis; { char instance[MAX_NAME]; scrInfo->dpy = dpy; scrInfo->rootid = RootWindow(dpy,scrInfo->screen); scrInfo->iscolor = isColorScreen(scrInfo,visInfo,nvis); sprintf(instance, "screen%d", scrInfo->screen); scrInfo->instanceQ = (XrmQuark) XrmStringToQuark(instance); } /* * initVisual - initialize screen's visual information using * data obtained from the resource database. * */ static void initVisual(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { char *buf; XVisualInfo vtemplate; unsigned int vinfomask = 0; XVisualInfo *vinfo = NULL; int nitems; if ((buf = getResource(scrInfo,visdepthCQ,visdepthIQ)) != NULL) { /* atoi returns 0 on error, which is invalid anyway */ vtemplate.depth = atoi(buf); if (vtemplate.depth != 0) vinfomask |= VisualDepthMask; } if ((buf = getResource(scrInfo,visclassCQ,visclassIQ)) != NULL) { vinfomask |= VisualClassMask; if (0 == strcmp(buf, "StaticGray")) vtemplate.class = StaticGray; else if (0 == strcmp(buf, "GrayScale")) vtemplate.class = GrayScale; else if (0 == strcmp(buf, "StaticColor")) vtemplate.class = StaticColor; else if (0 == strcmp(buf, "PseudoColor")) vtemplate.class = PseudoColor; else if (0 == strcmp(buf, "TrueColor")) vtemplate.class = TrueColor; else if (0 == strcmp(buf, "DirectColor")) vtemplate.class = DirectColor; else vinfomask &= ~VisualClassMask; } if ((buf = getResource(scrInfo,visidCQ,visidIQ)) != NULL) { /* * Note: %i converts from hex (if leading "0x"), from octal (if * leading "0"), otherwise from decimal. */ if (1 == sscanf(buf, "%i", &vtemplate.visualid)) vinfomask |= VisualIDMask; } if (vinfomask != 0) { vinfomask |= VisualScreenMask; vtemplate.screen = scrInfo->screen; vinfo = XGetVisualInfo(dpy, vinfomask, &vtemplate, &nitems); } if (vinfo == NULL) { /* use default visual and depth */ scrInfo->visual = DefaultVisual(dpy, scrInfo->screen); scrInfo->depth = DefaultDepth(dpy,scrInfo->screen); } else { /* use the first visual found -- ignore the others */ scrInfo->visual = vinfo->visual; scrInfo->depth = vinfo->depth; XFree((char *)vinfo); } #ifdef DEBUG printf("screen #%d visual: 0x%08x, depth=%d, class=%d%s\n", scrInfo->screen, scrInfo->visual->visualid, scrInfo->depth, scrInfo->visual->class, (scrInfo->visual == DefaultVisual(dpy, scrInfo->screen)) ? " [default]" : ""); #endif /* DEBUG */ } /* * initColormap - initialize screen's colormap * * If this screen is using the default visual, simply use the default * colormap. Otherwise, search for a standard colormap and use it instead. * If one can't be found, we'll have to create one. */ static void initColormap(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { XStandardColormap *cmaps; int i, ncmaps; Colormap cm = 0; if (scrInfo->visual == DefaultVisual(dpy, scrInfo->screen)) { cm = DefaultColormap(dpy,scrInfo->screen); #ifdef DEBUG printf("using default colormap (0x%x) on screen %d\n", cm, scrInfo->screen); #endif /* DEBUG */ } else { if (XGetRGBColormaps(dpy, scrInfo->rootid, &cmaps, &ncmaps, XA_RGB_DEFAULT_MAP)) { for (i=0; ivisual->visualid) { cm = cmaps[i].colormap; #ifdef DEBUG printf("using rgb default map 0x%x for screen %d\n", cm, scrInfo->screen); #endif /* DEBUG */ break; } } XFree((char *) cmaps); } /* * We didn't find one in the property, or there wasn't a property at * all. We'll have to create our own colormap. */ if (cm == 0) { cm = XCreateColormap(dpy, scrInfo->rootid, scrInfo->visual, AllocNone); #ifdef DEBUG printf("creating colormap 0x%x for screen %d\n", cm, scrInfo->screen); #endif /* DEBUG */ } } scrInfo->colormap = cm; } /* * initWinCache - initialize the screen's window cache. * * Setting the cache size to zero effectively turns off window caching. */ static void initWinCache(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { scrInfo->winCacheCount = 0; scrInfo->winCacheSize = GRV.WindowCacheSize; if (GRV.WindowCacheSize == 0) scrInfo->winCache = NULL; else scrInfo->winCache = (Window *) MemCalloc(GRV.WindowCacheSize, sizeof(Window)); } /* * Bitmap Search Path */ static char **bitmapSearchPath; /* bitmap search path */ /* * makeBitmapSearchPath * * Construct bitmap search path as follows: * $OPENWINHOME/etc/workspace/patterns * $OPENWINHOME/include/X11/include/bitmaps * /usr/X11/include/X11/include/bitmaps * * REMIND: this should be cleaned up so that it doesn't use a fixed-size * array. */ static void makeBitmapSearchPath() { char bmPath[MAXPATHLEN]; char *owHome; int i = 0;; if ((owHome = getenv("OPENWINHOME")) == NULL) #ifdef OPENWINHOME_DEFAULT /* martin-2.buck@student.uni-ulm.de */ owHome = OPENWINHOME_DEFAULT; #else owHome = "/usr/openwin"; #endif bitmapSearchPath = (char **)MemAlloc(4 * sizeof(char *)); (void)sprintf(bmPath, "%s/etc/workspace/patterns",owHome); bitmapSearchPath[i++] = MemNewString(bmPath); (void)sprintf(bmPath, "%s/include/X11/bitmaps",owHome); bitmapSearchPath[i++] = MemNewString(bmPath); bitmapSearchPath[i++] = MemNewString("/usr/X11/include/X11/bitmaps"); bitmapSearchPath[i] = (char *)NULL; } /* * findBitmapFile * Finds a bitmap file in the bitmap search path; * Returns a dynamically allocated string containing the * fullpath to the bitmap file. */ static char * #if defined(__STDC__) findBitmapFile( char *fileName) #else findBitmapFile(fileName) char *fileName; #endif /* __STDC__ */ { char **dir; char fullPath[MAXPATHLEN]; if (bitmapSearchPath == NULL) makeBitmapSearchPath(); if (fileName[0] == '/' && (access(fileName, R_OK) == 0)) return MemNewString(fileName); for (dir = bitmapSearchPath; *dir; dir++) { (void)sprintf(fullPath,"%s/%s",*dir,fileName); if (access(fullPath, R_OK) == 0) return MemNewString(fullPath); } return (char *)NULL; } /* * makeColor - alloc a color using colorname or defaultcolor */ static Bool #if defined(__STDC__) makeColor( Display *dpy, ScreenInfo *scrInfo, char *colorname, char *defaultcolor, XColor *color) /* RETURN */ #else makeColor(dpy, scrInfo, colorname, defaultcolor, color) Display *dpy; ScreenInfo *scrInfo; char *colorname; char *defaultcolor; XColor *color; /* RETURN */ #endif /* __STDC__ */ { Colormap cmap = scrInfo->colormap; if (!scrInfo->iscolor) return False; if (!colorname) colorname = defaultcolor; if (!XParseColor(dpy,cmap,colorname,color)) { if (colorname == defaultcolor || !XParseColor(dpy,cmap,defaultcolor,color)) { return False; } } if (!XAllocColor(dpy,cmap,color)) return False; /* REMIND - should print error msg for above failures */ return True; } /* * makeRootColor - allocate a color for the root window * * This is necessary in addition to makeColor because olwm may be using a * visual other than the default visual. This routine allocates a color cell * both from the default colormap and from the colormap for olwm's visual. */ static Bool #if defined(__STDC__) makeRootColors( Display *dpy, ScreenInfo *scrInfo, char *colorname, char *defaultcolor, XColor *olwmcolor, XColor *rootcolor) #else makeRootColors(dpy, scrInfo, colorname, defaultcolor, olwmcolor, rootcolor) Display *dpy; ScreenInfo *scrInfo; char *colorname; char *defaultcolor; XColor *olwmcolor; XColor *rootcolor; #endif { if (!scrInfo->iscolor) return False; if (!XParseColor(dpy, scrInfo->colormap, colorname, olwmcolor)) { if (colorname == defaultcolor || !XParseColor(dpy,scrInfo->colormap,defaultcolor,olwmcolor)) { return False; } } *rootcolor = *olwmcolor; /* REMIND - should print error msg for failures below */ if (!XAllocColor(dpy, scrInfo->colormap, olwmcolor)) return False; if (!XAllocColor(dpy,DefaultColormap(dpy,scrInfo->screen),rootcolor)) { XFreeColors(dpy, scrInfo->colormap, &olwmcolor->pixel, 1, 0); return False; } scrInfo->colorInfo.workspaceColor = olwmcolor->pixel; scrInfo->colorInfo.workspaceRootPixel = rootcolor->pixel; return True; } /* * makeBitmapColors * Alloc the fg/bg pair of workspace bitmap colors out of * the default colormap -- suitable for the root window. * Returns True only if both colors were alloced */ static Bool #if defined(__STDC__) makeBitmapColors( Display *dpy, ScreenInfo *scrInfo, char *fgColorName, XColor *fgColor, char *bgColorName, XColor *bgColor) #else makeBitmapColors(dpy, scrInfo, fgColorName, fgColor, bgColorName, bgColor) Display *dpy; ScreenInfo *scrInfo; char *fgColorName; XColor *fgColor; char *bgColorName; XColor *bgColor; #endif /* __STDC__ */ { Colormap cmap = DefaultColormap(dpy,scrInfo->screen); if (!scrInfo->iscolor) return False; if (!XParseColor(dpy, cmap, fgColorName, fgColor)) return False; if (!XParseColor(dpy, cmap, bgColorName, bgColor)) return False; if (!XAllocColor(dpy, cmap, fgColor)) return False; if (!XAllocColor(dpy, cmap, bgColor)) { XFreeColors(dpy, cmap, &(fgColor->pixel), 1, 0); return False; } return True; } /* * setScreenWorkspaceColor - sets the workspace/root to be either * a color, a pixmap or none/default. */ static void #if defined(__STDC__) setScreenWorkspaceColor( Display *dpy, ScreenInfo *scrInfo ) #else setScreenWorkspaceColor(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; #endif { Bool update = False; XColor oColor; XColor rColor; char *colorname; char *defName = DEFWORKSPACECOLOR; if (scrInfo->colorInfo.flags & CIWorkspaceColorAlloced) { unsigned long pixels[2],i=0; pixels[i++] = scrInfo->colorInfo.workspaceColor; pixels[i++] = scrInfo->colorInfo.workspaceRootPixel; XFreeColors(dpy,scrInfo->colormap,pixels,i,0); scrInfo->colorInfo.flags ^= CIWorkspaceColorAlloced; update = True; } colorname = getResource(scrInfo,workspaceColorCQ,workspaceColorIQ); if (!colorname) colorname = GRV.WorkspaceColor; if (!colorname) colorname = DEFWORKSPACECOLOR; usingDefaultRootStipple = False; /* * If on color screen then make a workspace color * otherwise force use of workspace bitmap */ if (scrInfo->iscolor && makeRootColors(dpy,scrInfo,colorname,defName,&oColor,&rColor)) { scrInfo->colorInfo.workspaceColor = oColor.pixel; scrInfo->colorInfo.workspaceRootPixel = rColor.pixel; scrInfo->colorInfo.flags |= CIWorkspaceColorAlloced; } else { scrInfo->colorInfo.workspaceType = WkspPixmap; } if (update) updateScreenWorkspaceColor(dpy,scrInfo); } /* * setScreenWorkspaceBitmap */ static void #if defined(__STDC__) setScreenWorkspaceBitmap( Display *dpy, ScreenInfo *scrInfo) #else setScreenWorkspaceBitmap(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; #endif /* __STDC__ */ { XColor fgColor; XColor bgColor; char *fgName; char *bgName; char *bmFile; if (scrInfo->colorInfo.flags & CIWorkspaceBitmapColorsAlloced) { unsigned long pixels[2],i=0; pixels[i++] = scrInfo->colorInfo.workspaceBitmapFg; pixels[i++] = scrInfo->colorInfo.workspaceBitmapBg; XFreeColors(dpy,scrInfo->colormap,pixels,i,0); scrInfo->colorInfo.flags ^= CIWorkspaceBitmapColorsAlloced; } /* * Probe for screen or global resources for File, Fg & Bg */ bmFile = getResource(scrInfo, workspaceBitmapFileCQ,workspaceBitmapFileIQ); if (!bmFile) bmFile = GRV.WorkspaceBitmapFile; fgName = getResource(scrInfo, workspaceBitmapFgCQ,workspaceBitmapFgIQ); if (!fgName) fgName = GRV.WorkspaceBitmapFg; bgName = getResource(scrInfo, workspaceBitmapBgCQ,workspaceBitmapBgIQ); if (!bgName) bgName = GRV.WorkspaceBitmapBg; /* * Make bitmap colors or use default black/white */ if (scrInfo->iscolor && makeBitmapColors(dpy,scrInfo,fgName,&fgColor,bgName,&bgColor)) { scrInfo->colorInfo.workspaceBitmapFg = fgColor.pixel; scrInfo->colorInfo.workspaceBitmapBg = bgColor.pixel; scrInfo->colorInfo.flags |= CIWorkspaceBitmapColorsAlloced; } else { scrInfo->colorInfo.workspaceBitmapFg = scrInfo->colorInfo.black; scrInfo->colorInfo.workspaceBitmapBg = scrInfo->colorInfo.white; } scrInfo->pixInfo.fg = scrInfo->colorInfo.workspaceBitmapFg; scrInfo->pixInfo.bg = scrInfo->colorInfo.workspaceBitmapBg; /* * Make a workspace pixmap or None; set it */ if (!MakePixmap(dpy,scrInfo,bmFile,&scrInfo->pixInfo)) { Pixmap bitmap; int width, height; XGCValues gcv; GC gc; bitmap = scrInfo->pixmap[GRAY50_BITMAP]; width = gray50_width; height = gray50_height; usingDefaultRootStipple = GRV.PaintWorkspace; gcv.foreground = scrInfo->colorInfo.workspaceBitmapFg; gcv.background = scrInfo->colorInfo.workspaceBitmapBg; gc = XCreateGC(dpy,scrInfo->rootid, GCForeground|GCBackground,&gcv); scrInfo->pixInfo.pixmap = XCreatePixmap(dpy,scrInfo->rootid, width,height,scrInfo->depth); XCopyPlane(dpy,bitmap,scrInfo->pixInfo.pixmap,gc,0,0,width,height,0,0,1); XFreeGC(dpy,gc); } XSetWindowBackgroundPixmap(dpy,scrInfo->rootid,scrInfo->pixInfo.pixmap); XFreePixmap(dpy, scrInfo->pixInfo.pixmap); } /* * setScreenWorkspaceBackground */ static void #if defined(__STDC__) setScreenWorkspaceBackground( Display *dpy, ScreenInfo *scrInfo) #else setScreenWorkspaceBackground(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; #endif /* __STDC__ */ { scrInfo->colorInfo.workspaceType = GRV.WorkspaceStyle; /* * Always need the workspace color (for icon backgrounds) * even if not painting the workspace */ setScreenWorkspaceColor(dpy,scrInfo); /* * Set the root window background as appropriate * only if PaintWorkspace is True */ if (GRV.PaintWorkspace) { switch (scrInfo->colorInfo.workspaceType) { case WkspColor: /* background color */ XSetWindowBackground(dpy,scrInfo->rootid, scrInfo->colorInfo.workspaceRootPixel); break; case WkspPixmap: /* background pixmap */ setScreenWorkspaceBitmap(dpy,scrInfo); break; case WkspDefault: /* mimic xsetroot -def */ XSetWindowBackgroundPixmap(dpy,scrInfo->rootid, (Pixmap)None); break; } XClearWindow(dpy,scrInfo->rootid); } } /* * setScreenWindowColor - computes the various window * color(s) for a screen */ static void setScreenWindowColor(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { Bool update = False; XColor fg,bg0,bg1,bg2,bg3; char *colorname; if (scrInfo->colorInfo.flags & CIWindowColorAlloced) { unsigned long pixels[4],i=0; pixels[i++] = scrInfo->colorInfo.bg1Color; if (scrInfo->use3D) { pixels[i++] = scrInfo->colorInfo.bg2Color; pixels[i++] = scrInfo->colorInfo.bg3Color; pixels[i++] = scrInfo->colorInfo.bg0Color; } XFreeColors(dpy,scrInfo->colormap,pixels,i,0); scrInfo->colorInfo.flags ^= CIWindowColorAlloced; update = True; } colorname = getResource(scrInfo,windowColorCQ,windowColorIQ); if (!colorname) colorname = GRV.WindowColor; /* * If color screen and we can make a pixel from colorname * (or default) then use that pixel. */ if (scrInfo->iscolor && makeColor(dpy,scrInfo,colorname,DEFWINDOWCOLOR,&bg1)) { /* * If 3D mode then get all 4 bg colors */ if (scrInfo->use3D) { Colormap cmap = scrInfo->colormap; fg.pixel = scrInfo->colorInfo.fgColor; XQueryColor(dpy,cmap,&fg); olgx_calculate_3Dcolors(&fg,&bg1,&bg2,&bg3,&bg0); /* REMIND: check return values */ XAllocColor(dpy,cmap,&bg2); XAllocColor(dpy,cmap,&bg3); XAllocColor(dpy,cmap,&bg0); scrInfo->colorInfo.flags |= CIWindowColorAlloced; scrInfo->colorInfo.bg0Color = bg0.pixel; scrInfo->colorInfo.bg1Color = bg1.pixel; scrInfo->colorInfo.bg2Color = bg2.pixel; scrInfo->colorInfo.bg3Color = bg3.pixel; /* * Else if 2D mode then just use bg1 */ } else { scrInfo->colorInfo.flags |= CIWindowColorAlloced; scrInfo->colorInfo.bg0Color = scrInfo->colorInfo.bg1Color = scrInfo->colorInfo.bg2Color = scrInfo->colorInfo.bg3Color = bg1.pixel; } } else { scrInfo->colorInfo.bg0Color = scrInfo->colorInfo.bg1Color = scrInfo->colorInfo.bg2Color = scrInfo->colorInfo.bg3Color = scrInfo->colorInfo.white; } if (update) updateScreenWindowColor(dpy,scrInfo); } /* * setScreenForegroundColor - sets window foreground color for a screen */ static void setScreenForegroundColor(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { Bool update = False; XColor color; char *colorname; if (scrInfo->colorInfo.flags & CIForegroundColorAlloced) { unsigned long pixel[1]; pixel[0] = scrInfo->colorInfo.fgColor; XFreeColors(dpy,scrInfo->colormap,pixel,1,0); scrInfo->colorInfo.flags ^= CIForegroundColorAlloced; update = True; } colorname = getResource(scrInfo,foregroundColorCQ,foregroundColorIQ); if (!colorname) colorname = GRV.ForegroundColor; /* * If color screen and we can make a pixel * from colorname (or default) then use that pixel. * Otherwise just use black. */ if (scrInfo->iscolor && makeColor(dpy,scrInfo,colorname,DEFFOREGROUNDCOLOR,&color)) { scrInfo->colorInfo.flags |= CIForegroundColorAlloced; scrInfo->colorInfo.fgColor = color.pixel; } else { scrInfo->colorInfo.fgColor = scrInfo->colorInfo.black; } if (update) updateScreenForegroundColor(dpy,scrInfo); } /* * setScreenBackgroundColor - sets window Background color for a screen */ static void setScreenBackgroundColor(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { Bool update = False; XColor color; char *colorname; if (scrInfo->colorInfo.flags & CIBackgroundColorAlloced) { unsigned long pixel[1]; pixel[0] = scrInfo->colorInfo.bgColor; XFreeColors(dpy,scrInfo->colormap,pixel,1,0); scrInfo->colorInfo.flags ^= CIBackgroundColorAlloced; update = True; } colorname = getResource(scrInfo,backgroundColorCQ,backgroundColorIQ); if (!colorname) colorname = GRV.BackgroundColor; /* * If color screen and we can make a pixel * from colorname (or default) then use that pixel. * Otherwise just use white. */ if (scrInfo->iscolor && makeColor(dpy,scrInfo,colorname,DEFBACKGROUNDCOLOR,&color)) { scrInfo->colorInfo.flags |= CIBackgroundColorAlloced; scrInfo->colorInfo.bgColor = color.pixel; } else { scrInfo->colorInfo.bgColor = scrInfo->colorInfo.white; } if (update) updateScreenBackgroundColor(dpy,scrInfo); } /* * setScreenBorderColor - sets border color for a screen */ static void setScreenBorderColor(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { Bool update = False; XColor color; char *colorname; if (scrInfo->colorInfo.flags & CIBorderColorAlloced) { unsigned long pixel[1]; pixel[0] = scrInfo->colorInfo.borderColor; XFreeColors(dpy,scrInfo->colormap,pixel,1,0); scrInfo->colorInfo.flags ^= CIBorderColorAlloced; update = True; } colorname = getResource(scrInfo,borderColorCQ,borderColorIQ); if (!colorname) colorname = GRV.BorderColor; /* * If color screen and doing 3d and we can make a pixel * from colorname (or default) then use that pixel. * Otherwise just use black. */ if (scrInfo->iscolor && makeColor(dpy,scrInfo,colorname,DEFBORDERCOLOR,&color)) { scrInfo->colorInfo.flags |= CIBorderColorAlloced; scrInfo->colorInfo.borderColor = color.pixel; } else { scrInfo->colorInfo.borderColor = scrInfo->colorInfo.black; } if (update) updateScreenBorderColor(dpy,scrInfo); } /* * SetScreenVirtualForegroundColor - sets virtual window color for a screen */ void SetScreenVirtualForegroundColor(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { Bool update = False; XColor color; char *colorname; if (scrInfo->colorInfo.flags & CIVirtualForegroundColorAlloced) { unsigned long pixel[1]; pixel[0] = scrInfo->colorInfo.virtualFgColor; XFreeColors(dpy,scrInfo->colormap,pixel,1,0); scrInfo->colorInfo.flags ^= CIVirtualForegroundColorAlloced; update = True; } colorname = getResource(scrInfo, virtualForegroundColorCQ,virtualForegroundColorIQ); if (!colorname) colorname = GRV.VirtualForegroundColor; if (!colorname) { if (scrInfo->iscolor) scrInfo->colorInfo.virtualFgColor = scrInfo->colorInfo.bg1Color; else scrInfo->colorInfo.virtualFgColor = scrInfo->colorInfo.white; } else { /* * If color screen and doing 3d and we can make a pixel * from colorname (or default) then use that pixel. * Otherwise just use white. */ if (scrInfo->iscolor && makeColor(dpy,scrInfo,colorname,DEFVIRTUALFORECOLOR,&color)) { scrInfo->colorInfo.flags |= CIVirtualForegroundColorAlloced; scrInfo->colorInfo.virtualFgColor = color.pixel; } else { scrInfo->colorInfo.virtualFgColor = scrInfo->colorInfo.white; } } if (update) UpdateScreenVirtualForegroundColor(dpy,scrInfo); } /* * SetScreenVirtualBackgroundColor - sets virtual backgr color for a screen */ void SetScreenVirtualBackgroundColor(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { Bool update = False; XColor color; char *colorname; if (scrInfo->colorInfo.flags & CIVirtualBackgroundColorAlloced) { unsigned long pixel[1]; pixel[0] = scrInfo->colorInfo.virtualBgColor; XFreeColors(dpy,scrInfo->colormap,pixel,1,0); scrInfo->colorInfo.flags ^= CIVirtualBackgroundColorAlloced; update = True; } colorname = getResource(scrInfo, virtualBackgroundColorCQ,virtualBackgroundColorIQ); if (!colorname) colorname = GRV.VirtualBackgroundColor; if (!colorname) { if (scrInfo->iscolor) scrInfo->colorInfo.virtualBgColor = scrInfo->colorInfo.bg2Color; else scrInfo->colorInfo.virtualBgColor = scrInfo->colorInfo.black; } else { /* * If color screen and doing 3d and we can make a pixel * from colorname (or default) then use that pixel. * Otherwise just use white. */ if (scrInfo->iscolor && makeColor(dpy,scrInfo,colorname,DEFVIRTUALBACKCOLOR,&color)) { scrInfo->colorInfo.flags |= CIVirtualBackgroundColorAlloced; scrInfo->colorInfo.virtualBgColor = color.pixel; } else { scrInfo->colorInfo.virtualBgColor = scrInfo->colorInfo.black; } } if (update) UpdateScreenVirtualBackgroundColor(dpy,scrInfo); } /* * SetScreenVirtualPixmapColor - sets virtual Pixmap color for a screen */ void SetScreenVirtualPixmapColor(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { Bool update = False; XColor color; char *colorname; if (scrInfo->colorInfo.flags & CIVirtualPixmapColorAlloced) { unsigned long pixel[1]; pixel[0] = scrInfo->colorInfo.virtualPixmapColor; XFreeColors(dpy,scrInfo->colormap,pixel,1,0); scrInfo->colorInfo.flags ^= CIVirtualPixmapColorAlloced; update = True; } colorname = getResource(scrInfo, virtualPixmapColorCQ,virtualPixmapColorIQ); if (!colorname) colorname = GRV.VirtualPixmapColor; if (!colorname) { if (scrInfo->iscolor) scrInfo->colorInfo.virtualPixmapColor = scrInfo->colorInfo.virtualFgColor; } else { /* * If color screen and doing 3d and we can make a pixel * from colorname (or default) then use that pixel. * Otherwise just use VirtualBGcolor. */ if (scrInfo->iscolor && makeColor(dpy,scrInfo,colorname,DEFVIRTUALPIXMAPCOLOR,&color)) { scrInfo->colorInfo.flags |= CIVirtualPixmapColorAlloced; scrInfo->colorInfo.virtualPixmapColor = color.pixel; } else { scrInfo->colorInfo.virtualPixmapColor = scrInfo->colorInfo.virtualFgColor; } } if (scrInfo->vdm) { scrInfo->vdm->resources->pixInfo.fg = scrInfo->colorInfo.virtualPixmapColor; scrInfo->vdm->resources->pixInfo.bg = scrInfo->colorInfo.virtualBgColor; } if (update) UpdateScreenVirtualPixmapColor(dpy,scrInfo); } /* * SetScreenVirtualFontColor - sets virtual Font color for a screen */ void SetScreenVirtualFontColor(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { Bool update = False; XColor color; char *colorname; if (scrInfo->colorInfo.flags & CIVirtualFontColorAlloced) { unsigned long pixel[1]; pixel[0] = scrInfo->colorInfo.virtualFontColor; XFreeColors(dpy,scrInfo->colormap,pixel,1,0); scrInfo->colorInfo.flags ^= CIVirtualFontColorAlloced; update = True; } colorname = getResource(scrInfo, virtualFontColorCQ,virtualFontColorIQ); if (!colorname) colorname = GRV.VirtualFontColor; if (!colorname) { scrInfo->colorInfo.virtualFontColor = scrInfo->colorInfo.black; } else { /* * If color screen and doing 3d and we can make a pixel * from colorname (or default) then use that pixel. * Otherwise just use black. */ if (scrInfo->iscolor && makeColor(dpy,scrInfo,colorname,DEFVIRTUALFONTCOLOR,&color)) { scrInfo->colorInfo.flags |= CIVirtualFontColorAlloced; scrInfo->colorInfo.virtualFontColor = color.pixel; } else { scrInfo->colorInfo.virtualFontColor = scrInfo->colorInfo.black; } } if (update) UpdateScreenVirtualFontColor(dpy,scrInfo); } /* * SetScreenVirtualGridColor - sets virtual Grid color for a screen */ void SetScreenVirtualGridColor(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { Bool update = False; XColor color; char *colorname; if (scrInfo->colorInfo.flags & CIVirtualGridColorAlloced) { unsigned long pixel[1]; pixel[0] = scrInfo->colorInfo.virtualGridColor; XFreeColors(dpy,scrInfo->colormap,pixel,1,0); scrInfo->colorInfo.flags ^= CIVirtualGridColorAlloced; update = True; } colorname = getResource(scrInfo, virtualGridColorCQ,virtualGridColorIQ); if (!colorname) colorname = GRV.VirtualGridColor; if (!colorname) { if (scrInfo->iscolor) scrInfo->colorInfo.virtualGridColor = scrInfo->colorInfo.black; } else { /* * If color screen and doing 3d and we can make a pixel * from colorname (or default) then use that pixel. * Otherwise just use black. */ if (scrInfo->iscolor && makeColor(dpy,scrInfo,colorname,DEFVIRTUALGRIDCOLOR,&color)) { scrInfo->colorInfo.flags |= CIVirtualGridColorAlloced; scrInfo->colorInfo.virtualGridColor = color.pixel; } else { scrInfo->colorInfo.virtualGridColor = scrInfo->colorInfo.black; } } if (update) UpdateScreenVirtualGridColor(dpy,scrInfo); } void /* ARGSUSED */ SetScreenVirtualIconColor(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { char *colorname; colorname = getResource(scrInfo,backgroundColorCQ,backgroundColorIQ); if (!colorname) scrInfo->colorInfo.vIconColor = scrInfo->colorInfo.bg1Color; else scrInfo->colorInfo.vIconColor = scrInfo->colorInfo.bgColor; } /* * setScreenInputFocusColor - sets InputFocus color for a screen */ void SetScreenInputFocusColor(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { Bool update = False; XColor fg, bg0, bg1, bg2, bg3; char *colorname; if (scrInfo->colorInfo.flags & CIInputFocusColorAlloced) { unsigned long pixels[4], i = 0; pixels[i++] = scrInfo->colorInfo.inputBg0Color; if (scrInfo->use3D) { pixels[i++] = scrInfo->colorInfo.inputBg2Color; pixels[i++] = scrInfo->colorInfo.inputBg3Color; pixels[i++] = scrInfo->colorInfo.inputBg1Color; } XFreeColors(dpy,scrInfo->colormap,pixels,i,0); scrInfo->colorInfo.flags ^= CIInputFocusColorAlloced; update = True; } colorname = getResource(scrInfo, inputFocusColorCQ,inputFocusColorIQ); if (!colorname) colorname = GRV.InputFocusColor; if (!colorname) { scrInfo->colorInfo.inputBg0Color = scrInfo->colorInfo.bg0Color; scrInfo->colorInfo.inputBg1Color = scrInfo->colorInfo.bg1Color; scrInfo->colorInfo.inputBg2Color = scrInfo->colorInfo.bg2Color; scrInfo->colorInfo.inputBg3Color = scrInfo->colorInfo.bg3Color; scrInfo->colorInfo.virtualInputColor = scrInfo->colorInfo.virtualFgColor; } else { /* * If color screen and we can make a pixel from colornam * then use it. */ if (scrInfo->iscolor && makeColor(dpy,scrInfo,colorname,DEFWINDOWCOLOR,&bg1)) { /* * If 3D move then get all four colors */ if (scrInfo->use3D) { Colormap cmap = scrInfo->colormap; fg.pixel = scrInfo->colorInfo.virtualFgColor; XQueryColor(dpy, cmap, &fg); olgx_calculate_3Dcolors(&fg, &bg1, &bg2, &bg3, &bg0); /* REMIND: Check return values */ XAllocColor(dpy, cmap, &bg2); XAllocColor(dpy, cmap, &bg3); XAllocColor(dpy, cmap, &bg0); scrInfo->colorInfo.flags |= CIInputFocusColorAlloced; scrInfo->colorInfo.inputBg0Color = bg0.pixel; scrInfo->colorInfo.inputBg1Color = bg1.pixel; scrInfo->colorInfo.inputBg2Color = bg2.pixel; scrInfo->colorInfo.inputBg3Color = bg3.pixel; scrInfo->colorInfo.virtualInputColor = bg1.pixel; } else { /* * If in 2D mode just use bg1 */ scrInfo->colorInfo.flags |= CIInputFocusColorAlloced; scrInfo->colorInfo.inputBg0Color = scrInfo->colorInfo.inputBg1Color = scrInfo->colorInfo.inputBg2Color = scrInfo->colorInfo.inputBg3Color = bg1.pixel; scrInfo->colorInfo.virtualInputColor = bg1.pixel; } } else { scrInfo->colorInfo.inputBg0Color = scrInfo->colorInfo.bg0Color; scrInfo->colorInfo.inputBg1Color = scrInfo->colorInfo.bg1Color; scrInfo->colorInfo.inputBg2Color = scrInfo->colorInfo.bg2Color; scrInfo->colorInfo.inputBg3Color = scrInfo->colorInfo.bg3Color; scrInfo->colorInfo.virtualInputColor = scrInfo->colorInfo.virtualFgColor; } } if (update) updateScreenInputFocusColor(dpy,scrInfo); } /* * initColors - setups workspace/window/background colors */ static void initColors(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { XColor color; unsigned long black,white; char *resStr; if (scrInfo->visual == DefaultVisual(dpy, scrInfo->screen)) { black = BlackPixel(dpy,scrInfo->screen); white = WhitePixel(dpy,scrInfo->screen); } else { /* * Allocate black and white from this screen's colormap. * REMIND: check return values from XAllocColor. */ color.red = color.green = color.blue = 0; (void) XAllocColor(dpy, scrInfo->colormap, &color); black = color.pixel; color.red = color.green = color.blue = 65535; (void) XAllocColor(dpy, scrInfo->colormap, &color); white = color.pixel; } if ((resStr = getResource(scrInfo,reverseVideoCQ,reverseVideoIQ))) { scrInfo->colorInfo.reverseVideo = BoolString(resStr, False); } else { scrInfo->colorInfo.reverseVideo = GRV.ReverseVideo; } if (scrInfo->colorInfo.reverseVideo) { scrInfo->colorInfo.black = white; scrInfo->colorInfo.white = black; } else { scrInfo->colorInfo.black = black; scrInfo->colorInfo.white = white; } setScreenForegroundColor(dpy,scrInfo); setScreenBackgroundColor(dpy,scrInfo); setScreenBorderColor(dpy,scrInfo); setScreenWindowColor(dpy,scrInfo); scrInfo->pixInfo.colors = 0; scrInfo->pixInfo.ncolors = NULL; setScreenWorkspaceBackground(dpy,scrInfo); SetScreenVirtualForegroundColor(dpy,scrInfo); SetScreenVirtualBackgroundColor(dpy,scrInfo); SetScreenVirtualFontColor(dpy,scrInfo); SetScreenVirtualGridColor(dpy,scrInfo); SetScreenInputFocusColor(dpy,scrInfo); SetScreenVirtualPixmapColor(dpy, scrInfo); SetScreenVirtualIconColor(dpy, scrInfo); } /* * initPixmaps - inits the pixmaps */ static void initPixmaps(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { int junk; unsigned int width, height; PixInfo pm; Pixmap tempPixmap; scrInfo->pixmap[BUSY_STIPPLE] = XCreateBitmapFromData( dpy,scrInfo->rootid, (char *)busy_gray_bits,busy_gray_width,busy_gray_height); scrInfo->pixmap[ICON_BITMAP] = None; if (GRV.DefaultIconImage != NULL) { if (MakePixmap(dpy, scrInfo, GRV.DefaultIconImage, &pm)) { scrInfo->pixmap[ICON_BITMAP] = pm.pixmap; scrInfo->dfltIconWidth = pm.width; scrInfo->dfltIconHeight = pm.height; } } if (scrInfo->pixmap[ICON_BITMAP] == None) { scrInfo->pixmap[ICON_BITMAP] = XCreateBitmapFromData(dpy, scrInfo->rootid, (char *) iconimage_bits, iconimage_width, iconimage_height); scrInfo->dfltIconWidth = iconimage_width; scrInfo->dfltIconHeight = iconimage_height; } scrInfo->pixmap[ICON_MASK] = None; if (GRV.DefaultIconMask != NULL) { if (BitmapSuccess == XReadBitmapFile(dpy, scrInfo->rootid, GRV.DefaultIconMask, &width, &height, &tempPixmap, &junk, &junk)) { scrInfo->pixmap[ICON_MASK] = tempPixmap; } } if (scrInfo->pixmap[ICON_MASK] == None) { scrInfo->pixmap[ICON_MASK] = XCreateBitmapFromData(dpy, scrInfo->rootid, (char *) iconmask_bits, iconmask_width, iconmask_height); } scrInfo->pixmap[PROTO_DRAWABLE] = XCreatePixmap(dpy, scrInfo->rootid, 1, 1, scrInfo->depth); scrInfo->pixmap[GRAY50_BITMAP] = XCreateBitmapFromData( dpy, scrInfo->rootid, (char *)gray50_bits, gray50_width, gray50_height); } /* * initGCs - initialize all the GCs used by olwm on this screen. This must be * called after initPixmaps and initColors. */ static void initGCs(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { XGCValues values; static char dashList[2] = { 1, 1 }; Window rootwin = scrInfo->rootid; unsigned long valuemask; char *resString; #ifdef ALLPLANES extern Bool AllPlanesExists; #endif /* * Set up the GC for drawing rubber-band lines on the root window. If * we painted this screen's root with the default stipple pattern, * paint rubber-band lines with a stipple pattern so that they are * visible against the root stipple. This can be overridden with the * StippledRubberBands screen-specific resource. If we are doing * stippled, force allplanes off, because allplanes can't support * stippled graphics. */ #ifdef ALLPLANES scrInfo->useAllPlanes = AllPlanesExists; #endif resString = getResource(scrInfo, stippledRubberBandsCQ, stippledRubberBandsIQ); valuemask = GCFunction | GCForeground | GCSubwindowMode; if ((resString == NULL && usingDefaultRootStipple) || (resString != NULL && BoolString(resString, False))) { #ifdef ALLPLANES scrInfo->useAllPlanes = False; #endif valuemask |= GCTileStipXOrigin | GCFillStyle | GCStipple; } values.fill_style = FillStippled; values.foreground = ~0L; /* paint all bitplanes */ values.function = GXxor; values.stipple = scrInfo->pixmap[GRAY50_BITMAP]; values.subwindow_mode = IncludeInferiors; values.ts_x_origin = 1; scrInfo->gc[ROOT_GC] = XCreateGC(dpy, rootwin, valuemask, &values); /* * Create a GC for Foregound w/ TitleFont */ values.function = GXcopy; values.foreground = scrInfo->colorInfo.fgColor; #ifndef OW_I18N_L4 values.font = GRV.TitleFontInfo->fid; #endif values.graphics_exposures = False; scrInfo->gc[FOREGROUND_GC] = XCreateGC(dpy, scrInfo->pixmap[PROTO_DRAWABLE], #ifdef OW_I18N_L4 (GCFunction | GCForeground | GCGraphicsExposures), #else (GCFont | GCFunction | GCForeground | GCGraphicsExposures), #endif &values ); /* * Create a GC for drawing the icon name and pixmap when selected * (used only in 3D) and the frame border */ values.function = GXcopy; values.foreground = scrInfo->colorInfo.borderColor; values.graphics_exposures = False; scrInfo->gc[BORDER_GC] = XCreateGC( dpy, scrInfo->pixmap[PROTO_DRAWABLE], ( GCFunction | GCForeground | GCGraphicsExposures ), &values ); /* * Create a GC for drawing using the window color and title font */ values.function = GXcopy; values.foreground = scrInfo->colorInfo.bg1Color; #ifndef OW_I18N_L4 values.font = GRV.TitleFontInfo->fid; #endif values.graphics_exposures = False; scrInfo->gc[WINDOW_GC] = XCreateGC( dpy, scrInfo->pixmap[PROTO_DRAWABLE], #ifdef OW_I18N_L4 ( GCFunction | GCForeground | GCGraphicsExposures ), #else ( GCFunction | GCForeground | GCFont | GCGraphicsExposures ), #endif &values ); /* * Create a GC for drawing in the workspace color */ values.function = GXcopy; values.foreground = scrInfo->colorInfo.workspaceColor; values.line_width = 0; scrInfo->gc[WORKSPACE_GC] = XCreateGC(dpy, scrInfo->pixmap[PROTO_DRAWABLE], ( GCFunction | GCForeground | GCLineWidth ), &values); /* * Create a GC for busy stipple in foreground */ values.function = GXcopy; values.foreground = scrInfo->colorInfo.fgColor; values.fill_style = FillStippled; values.stipple = scrInfo->pixmap[BUSY_STIPPLE]; values.graphics_exposures = False; scrInfo->gc[BUSY_GC] = XCreateGC( dpy, scrInfo->pixmap[PROTO_DRAWABLE], ( GCFunction | GCForeground | GCGraphicsExposures | GCStipple | GCFillStyle), &values ); /* * Create a GC for drawing the icon name (just like FOREGROUND_GC, but * using IconFont). Is also used for the icon pixmap. Hence both * fg/bf are set for borderless icons (ie bg = workspace) */ values.function = GXcopy; values.foreground = scrInfo->colorInfo.fgColor; values.background = scrInfo->colorInfo.workspaceColor; #ifndef OW_I18N_L4 values.font = GRV.IconFontInfo->fid; #endif values.graphics_exposures = False; scrInfo->gc[ICON_NORMAL_GC] = XCreateGC( dpy, scrInfo->pixmap[PROTO_DRAWABLE], ( GCFunction | GCForeground | GCBackground | #ifdef OW_I18N_L4 GCGraphicsExposures ), #else GCFont | GCGraphicsExposures ), #endif &values ); /* * Create a GC for drawing the icon pixmap with a clip mask. * Used to XCopyPlane() icon_mask and icon_pixmap into background. */ values.function = GXcopy; values.foreground = scrInfo->colorInfo.fgColor; values.background = scrInfo->colorInfo.bgColor; values.graphics_exposures = False; scrInfo->gc[ICON_MASK_GC] = XCreateGC( dpy, scrInfo->pixmap[PROTO_DRAWABLE], ( GCFunction | GCForeground | GCBackground | GCGraphicsExposures ), &values ); /* * Create a GC for icon border w/ dashed lines */ values.function = GXcopy; values.foreground = scrInfo->colorInfo.borderColor; values.line_width = 0; values.line_style = LineOnOffDash; values.graphics_exposures = False; scrInfo->gc[ICON_BORDER_GC] = XCreateGC( dpy, scrInfo->pixmap[PROTO_DRAWABLE], ( GCFunction | GCForeground | GCGraphicsExposures | GCLineWidth | GCLineStyle ), &values ); XSetDashes( dpy, scrInfo->gc[ICON_BORDER_GC], 1, dashList, 2 ); /* * Create a GC for the Input Focus color option -- this is the * sames as BG1 if the Input Focus Color is not defined */ values.foreground = values.background = scrInfo->colorInfo.inputBg1Color; values.graphics_exposures = False; values.function = GXcopy; #ifndef OW_I18N_L4 values.font = GRV.TitleFontInfo->fid; #endif scrInfo->gc[INPUTFOCUS_GC] = XCreateGC(dpy, scrInfo->pixmap[PROTO_DRAWABLE], ( GCFunction | GCForeground | GCBackground | #ifdef OW_I18N_L4 GCGraphicsExposures ), #else GCGraphicsExposures | GCFont ), #endif &values); /* * Create a GC for drawing in normal mode on the VDM */ scrInfo->gc[VDM_GC] = XCreateGC(dpy, scrInfo->pixmap[PROTO_DRAWABLE], 0, NULL); XCopyGC(dpy, scrInfo->gc[ROOT_GC], GCFunction | GCPlaneMask | GCForeground | GCBackground | GCLineWidth | GCCapStyle | GCJoinStyle | #ifdef OW_I18N_L4 GCFillRule | GCFont, scrInfo->gc[VDM_GC]); #else GCFillRule, scrInfo->gc[VDM_GC]); #endif XSetFunction(dpy, scrInfo->gc[VDM_GC], GXcopy); dashList[0] = dashList[1] = 3; XSetDashes(dpy, scrInfo->gc[VDM_GC], 1, dashList, 2); XSetForeground(dpy, scrInfo->gc[VDM_GC], scrInfo->colorInfo.virtualFontColor); XSetBackground(dpy, scrInfo->gc[VDM_GC], scrInfo->colorInfo.virtualFgColor); dashList[0] = dashList[1] = 1; /* * Set a GC for drawing the Input Focus window in the VDM; * if we're not using the Input Focus Color option we can use * the VDM_GC, otherwise we can use the INPUT_FOCUS_GC */ scrInfo->gc[VDM_INPUT_GC] = XCreateGC(dpy, scrInfo->pixmap[PROTO_DRAWABLE], 0, NULL); XCopyGC(dpy, scrInfo->gc[VDM_GC], GCFunction | GCPlaneMask | GCForeground | GCLineWidth | GCLineStyle | GCCapStyle | GCJoinStyle | #ifdef OW_I18N_L4 GCFillRule | GCFont, scrInfo->gc[VDM_INPUT_GC]); #else GCFillRule, scrInfo->gc[VDM_INPUT_GC]); #endif XSetBackground(dpy, scrInfo->gc[VDM_INPUT_GC], scrInfo->colorInfo.virtualInputColor); } /* * initOLGX - initialize all the olgx Graphics_info structures used by olwm * * Creating all of these in one place will hopefully prevent the * creation of redundant gis variables. (There is some motivation for * creating olgx_gis* as they are needed, so they can also be better * managed, but so far it's resulted in more gis variables than really * needed. If we change back to that scheme, some Upd* routines for * dynamically changing resources will need to be reorganized.) */ static void initOLGX(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { unsigned long pixvals[5]; int dflag = scrInfo->use3D ? OLGX_3D_COLOR : OLGX_2D; /* * Common set of colors all GInfo's */ pixvals[OLGX_WHITE] = scrInfo->colorInfo.bg0Color; pixvals[OLGX_BG1] = scrInfo->colorInfo.bg1Color; pixvals[OLGX_BG2] = scrInfo->colorInfo.bg2Color; pixvals[OLGX_BG3] = scrInfo->colorInfo.bg3Color; pixvals[OLGX_BLACK] = scrInfo->colorInfo.fgColor; /* * Gis for drawing in window color with title font * most window objects and frame title */ scrInfo->gi[NORMAL_GINFO] = olgx_main_initialize(dpy, scrInfo->screen, scrInfo->depth, dflag, GRV.GlyphFontInfo, #ifdef OW_I18N_L4 GRV.TitleFontSetInfo.fs, #else GRV.TitleFontInfo, #endif pixvals,NULL); /* * Gis for drawing in window color with button font * notice buttons & menu buttons */ scrInfo->gi[BUTTON_GINFO] = olgx_main_initialize(dpy, scrInfo->screen, scrInfo->depth, dflag, GRV.GlyphFontInfo, #ifdef OW_I18N_L4 GRV.ButtonFontSetInfo.fs, #else GRV.ButtonFontInfo, #endif pixvals,NULL); /* * Gis for drawing in window color with text font * notice descriptive text and 2D resize corners * * NOTE: this is always in 2D, because the resize corners may be * painted in 2D even if everything else is in 3D. This relies * on the fact that notice text is never truncated, so it will * never require the 3D "more arrow". */ pixvals[OLGX_WHITE] = scrInfo->colorInfo.bg1Color; scrInfo->gi[TEXT_GINFO] = olgx_main_initialize(dpy, scrInfo->screen, scrInfo->depth, OLGX_2D, GRV.GlyphFontInfo, #ifdef OW_I18N_L4 GRV.TextFontSetInfo.fs, #else GRV.TextFontInfo, #endif pixvals,NULL); /* * Gis for drawing pushpin in reverse - useful only in 2D * swap fb/bg0 entries */ pixvals[OLGX_WHITE] = scrInfo->colorInfo.fgColor; pixvals[OLGX_BLACK] = scrInfo->colorInfo.bg0Color; scrInfo->gi[REVPIN_GINFO] = olgx_main_initialize(dpy, scrInfo->screen, scrInfo->depth, dflag, GRV.GlyphFontInfo, #ifdef OW_I18N_L4 GRV.TitleFontSetInfo.fs, #else GRV.TitleFontInfo, #endif pixvals,NULL); /* * Gis for drawing glyphs when the have the input focus and * the input focus color is specified */ pixvals[OLGX_WHITE] = scrInfo->colorInfo.inputBg0Color; pixvals[OLGX_BG1] = scrInfo->colorInfo.inputBg1Color; pixvals[OLGX_BG2] = scrInfo->colorInfo.inputBg2Color; pixvals[OLGX_BG3] = scrInfo->colorInfo.inputBg3Color; pixvals[OLGX_BLACK] = scrInfo->colorInfo.fgColor; scrInfo->gi[INPUTFOCUS_GINFO] = olgx_main_initialize(dpy, scrInfo->screen, scrInfo->depth, dflag, GRV.GlyphFontInfo, #ifdef OW_I18N_L4 GRV.TitleFontSetInfo.fs, #else GRV.TitleFontInfo, #endif pixvals, NULL); } /* * updateScreenWorkspaceColor -- change all GC/Ginfo's that use WorkspaceColor */ static updateScreenWorkspaceColor(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { XGCValues values; /* * Change GC's */ values.foreground = values.background = scrInfo->colorInfo.workspaceColor; XChangeGC(dpy,scrInfo->gc[ICON_NORMAL_GC],GCBackground,&values); XChangeGC(dpy,scrInfo->gc[WORKSPACE_GC],GCForeground,&values); /* no Ginfo's use workspaceColor */ } /* * updateScreenWindowColor -- change all GC/Ginfo's that use WindowColor */ static updateScreenWindowColor(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { XGCValues values; /* * Change GC's */ values.foreground = scrInfo->colorInfo.bg1Color; XChangeGC(dpy,scrInfo->gc[WINDOW_GC],GCForeground,&values); /* * Change Ginfo's */ olgx_set_single_color(scrInfo->gi[BUTTON_GINFO], OLGX_WHITE,scrInfo->colorInfo.bg0Color,OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[BUTTON_GINFO], OLGX_BG1,scrInfo->colorInfo.bg1Color,OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[BUTTON_GINFO], OLGX_BG2,scrInfo->colorInfo.bg2Color,OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[BUTTON_GINFO], OLGX_BG3,scrInfo->colorInfo.bg3Color,OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[TEXT_GINFO], OLGX_WHITE,scrInfo->colorInfo.bg0Color,OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[TEXT_GINFO], OLGX_BG1,scrInfo->colorInfo.bg1Color,OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[TEXT_GINFO], OLGX_BG2,scrInfo->colorInfo.bg2Color,OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[TEXT_GINFO], OLGX_BG3,scrInfo->colorInfo.bg3Color,OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[NORMAL_GINFO], OLGX_WHITE,scrInfo->colorInfo.bg0Color,OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[NORMAL_GINFO], OLGX_BG1,scrInfo->colorInfo.bg1Color,OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[NORMAL_GINFO], OLGX_BG2,scrInfo->colorInfo.bg2Color,OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[NORMAL_GINFO], OLGX_BG3,scrInfo->colorInfo.bg3Color,OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[REVPIN_GINFO], OLGX_BLACK,scrInfo->colorInfo.bg0Color,OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[REVPIN_GINFO], OLGX_BG1,scrInfo->colorInfo.bg1Color,OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[REVPIN_GINFO], OLGX_BG2,scrInfo->colorInfo.bg2Color,OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[REVPIN_GINFO], OLGX_BG3,scrInfo->colorInfo.bg3Color,OLGX_SPECIAL); } /* * updateScreenForegroundColor -- change all GC/Ginfo's that use Foreground */ static updateScreenForegroundColor(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { XGCValues values; /* * Change GC's */ values.foreground = scrInfo->colorInfo.fgColor; XChangeGC(dpy,scrInfo->gc[FOREGROUND_GC],GCForeground,&values); XChangeGC(dpy,scrInfo->gc[BUSY_GC],GCForeground,&values); XChangeGC(dpy,scrInfo->gc[ICON_NORMAL_GC],GCForeground,&values); XChangeGC(dpy,scrInfo->gc[ICON_MASK_GC],GCForeground,&values); /* * Change Ginfo's */ olgx_set_single_color(scrInfo->gi[BUTTON_GINFO], OLGX_BLACK,scrInfo->colorInfo.fgColor,OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[TEXT_GINFO], OLGX_BLACK,scrInfo->colorInfo.fgColor,OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[NORMAL_GINFO], OLGX_BLACK,scrInfo->colorInfo.fgColor,OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[REVPIN_GINFO], OLGX_WHITE,scrInfo->colorInfo.fgColor,OLGX_SPECIAL); } /* * updateScreenBackgroundColor -- change all GC/Ginfo's that use Background */ static updateScreenBackgroundColor(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { XGCValues values; values.background = scrInfo->colorInfo.bgColor; XChangeGC(dpy,scrInfo->gc[ICON_MASK_GC],GCBackground,&values); } /* * updateScreenBorderColor -- change all GC/Ginfo's that use Border */ static updateScreenBorderColor(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { XGCValues values; /* * Change GC's */ values.foreground = scrInfo->colorInfo.borderColor; XChangeGC(dpy,scrInfo->gc[BORDER_GC],GCForeground,&values); XChangeGC(dpy,scrInfo->gc[ICON_BORDER_GC],GCForeground,&values); } /* * UpdateScreenVirtualForegroundColor -- change all GC/Ginfo's that use vfg */ UpdateScreenVirtualForegroundColor(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { XGCValues values; /* * Change GC's */ values.background = scrInfo->colorInfo.virtualFgColor; XChangeGC(dpy,scrInfo->gc[VDM_GC],GCBackground,&values); VirtualUpdateVirtualWindows(scrInfo->vdm->client); } /* * UpdateScreenVirtualBackgroundColor -- change all GC/Ginfo's that use vfg */ UpdateScreenVirtualBackgroundColor(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { /* * No GC/Ginfo's to change */ XSetWindowBackground(dpy, PANEWINOFCLIENT(scrInfo->vdm->client), scrInfo->colorInfo.virtualBgColor); XClearWindow(dpy, PANEWINOFCLIENT(scrInfo->vdm->client)); } /* * UpdateScreenVirtualFontColor -- change all GC/Ginfo's that use vfg */ UpdateScreenVirtualFontColor(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { XGCValues values; /* * Change GC's */ values.foreground = scrInfo->colorInfo.virtualFontColor; XChangeGC(dpy,scrInfo->gc[VDM_GC],GCForeground,&values); XChangeGC(dpy,scrInfo->gc[VDM_INPUT_GC],GCForeground,&values); ClientRefresh(scrInfo->vdm->client); } /* * UpdateScreenVirtualGridColor -- change all GC/Ginfo's that use vfg */ /* ARGSUSED */ UpdateScreenVirtualGridColor(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { /* * Nothing to change ... */ } /* * updateScreenInputFocusColor -- change all GC/Ginfo's that use vfg */ /* ARGSUSED */ static updateScreenInputFocusColor(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { olgx_set_single_color(scrInfo->gi[INPUTFOCUS_GINFO], OLGX_BLACK, scrInfo->colorInfo.fgColor, OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[INPUTFOCUS_GINFO], OLGX_BG1, scrInfo->colorInfo.inputBg1Color, OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[INPUTFOCUS_GINFO], OLGX_BG2, scrInfo->colorInfo.inputBg2Color, OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[INPUTFOCUS_GINFO], OLGX_BG3, scrInfo->colorInfo.inputBg3Color, OLGX_SPECIAL); olgx_set_single_color(scrInfo->gi[INPUTFOCUS_GINFO], OLGX_WHITE, scrInfo->colorInfo.inputBg0Color, OLGX_SPECIAL); } /* ARGSUSED */ UpdateScreenVirtualDesktop(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { char *size; size = getResource(scrInfo, virtualDesktopCQ, virtualDesktopIQ); if (!size) size = GRV.VirtualDesktop; ResizeVDM(scrInfo->vdm, size); } /* ARGSUSED */ UpdateScreenVirtualIconGeometry(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { char *geometry; geometry = getResource(scrInfo,virtualIconGeometryCQ,virtualIconGeometryIQ); if (!geometry) geometry = GRV.VirtualIconGeometry; if (scrInfo->vdm->resources->iconGeometry) free(scrInfo->vdm->resources->iconGeometry); scrInfo->vdm->resources->iconGeometry = strdup(geometry); VirtualSetGeometry(scrInfo->vdm->client->iconwin, geometry); } /* ARGSUSED */ UpdateScreenVirtualDrawSticky(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { VirtualUpdateDrawSticky(scrInfo->vdm->client); } /* ARGSUSED */ UpdateScreenVirtualScale(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { char *scale; char temp[20]; scale = getResource(scrInfo, virtualScaleCQ, virtualScaleIQ); if (!scale) { sprintf(temp, "%d", GRV.VDMScale); scale = temp; } RescaleVDM(scrInfo->vdm, atoi(scale)); } /* * initFonts - init things that depend on the fonts */ static void initFonts(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { Resize_width = Resize_height = 0; updateScreenGlyphFont(dpy,scrInfo); } /* * updateScreenTitleFont -- change all GC/Ginfo's that use TitleFont */ static updateScreenTitleFont(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { #ifdef OW_I18N_L4 XFontSet fs = GRV.TitleFontSetInfo.fs; #else XFontStruct *font = GRV.TitleFontInfo; #endif #ifndef OW_I18N_L4 XGCValues values; values.font = font->fid; XChangeGC(dpy,scrInfo->gc[FOREGROUND_GC],GCFont,&values); XChangeGC(dpy,scrInfo->gc[WINDOW_GC],GCFont,&values); XChangeGC(dpy,scrInfo->gc[INPUTFOCUS_GC],GCFont,&values); olgx_set_text_font(scrInfo->gi[NORMAL_GINFO],font,OLGX_NORMAL); olgx_set_text_font(scrInfo->gi[INPUTFOCUS_GINFO],font,OLGX_NORMAL); olgx_set_text_font(scrInfo->gi[REVPIN_GINFO],font,OLGX_NORMAL); #endif #ifdef OW_I18N_L4 olgx_set_text_fontset(scrInfo->gi[NORMAL_GINFO],fs,OLGX_NORMAL); olgx_set_text_fontset(scrInfo->gi[REVPIN_GINFO],fs,OLGX_NORMAL); #else olgx_set_text_font(scrInfo->gi[NORMAL_GINFO],font,OLGX_NORMAL); olgx_set_text_font(scrInfo->gi[REVPIN_GINFO],font,OLGX_NORMAL); #endif } /* * updateScreenTextFont -- change all GC/Ginfo's that use TextFont */ static /* ARGSUSED */ updateScreenTextFont(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { #ifdef OW_I18N_L4 XFontSet fs = GRV.TextFontSetInfo.fs; olgx_set_text_fontset(scrInfo->gi[TEXT_GINFO],fs,OLGX_NORMAL); #else XFontStruct *font = GRV.TextFontInfo; olgx_set_text_font(scrInfo->gi[TEXT_GINFO],font,OLGX_NORMAL); #endif } /* * updateScreenButtonFont -- change all GC/Ginfo's that use ButtonFont */ static /* ARGSUSED */ updateScreenButtonFont(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { #ifdef OW_I18N_L4 XFontSet fs = GRV.ButtonFontSetInfo.fs; olgx_set_text_fontset(scrInfo->gi[BUTTON_GINFO],fs,OLGX_NORMAL); #else XFontStruct *font = GRV.ButtonFontInfo; olgx_set_text_font(scrInfo->gi[BUTTON_GINFO],font,OLGX_NORMAL); #endif } /* * updateScreenIconFont -- change all GC/Ginfo's that use IconFont */ static updateScreenIconFont(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { #ifndef OW_I18N_L4 XFontStruct *font = GRV.IconFontInfo; XGCValues values; values.font = font->fid; XChangeGC(dpy,scrInfo->gc[ICON_NORMAL_GC],GCFont,&values); #endif } /* * updateScreenGlyphFont -- change all GC/Ginfo's that use GlyphFont */ static /* ARGSUSED */ updateScreenGlyphFont(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { XFontStruct *font = GRV.GlyphFontInfo; olgx_set_glyph_font(scrInfo->gi[NORMAL_GINFO],font,OLGX_NORMAL); olgx_set_glyph_font(scrInfo->gi[REVPIN_GINFO],font,OLGX_NORMAL); olgx_set_glyph_font(scrInfo->gi[TEXT_GINFO],font,OLGX_NORMAL); olgx_set_glyph_font(scrInfo->gi[BUTTON_GINFO],font,OLGX_NORMAL); /* * w/h of resize corner glyph. Set if unset (ie 0) */ if (Resize_width == 0 && Resize_height == 0) { unsigned char s[2]; XCharStruct xcs; int i1,i2; /* US_RESIZE_OUTLINE is really unsigned char */ s[0]=UL_RESIZE_OUTLINE; s[1]='\0'; XTextExtents(GRV.GlyphFontInfo,(char *)s,1,&i1,&i2,&i2,&xcs); Resize_height = xcs.ascent + xcs.descent; Resize_width = xcs.width; } } /* * UpdateScreenVirtualFont -- change all GC/Ginfo's that use VirtualFont */ UpdateScreenVirtualFont(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { char *font; XGCValues values; XFontStruct *fid; font = getResource(scrInfo,virtualFontCQ,virtualFontIQ); if (!font) font = GRV.VirtualFontName; fid = XLoadQueryFont(dpy, font); if (!fid) fid = GRV.TitleFontInfo; /* * REMIND SDO: Need Internationalization here */ values.font = fid->fid; XChangeGC(dpy,scrInfo->gc[VDM_GC],GCFont,&values); XChangeGC(dpy,scrInfo->gc[VDM_INPUT_GC],GCFont,&values); scrInfo->vdm->max_ascent = fid->max_bounds.ascent; ClientRefresh(scrInfo->vdm->client); } /* */ /* ARGSUSED */ UpdateScreenVirtualGeometry(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { char *geom; geom = getResource(scrInfo,virtualGeometryCQ,virtualGeometryIQ); if (!geom) geom = GRV.VirtualGeometry; if (!geom || !*geom) return; if (scrInfo->vdm->resources->geometry) free(scrInfo->vdm->resources->geometry); scrInfo->vdm->resources->geometry = strdup(geom); VirtualSetGeometry(scrInfo->vdm->client->framewin, geom); } UpdateScreenVirtualMap(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { char *name; XSizeHints *sizeHints; PixInfo *pm; long sizeSet; name = getResource(scrInfo,virtualMapNameCQ,virtualMapNameIQ); if (!name) name = GRV.VirtualBackgroundMap; if (!name || !*name) return; if (scrInfo->vdm->resources->background) free(scrInfo->vdm->resources->background); scrInfo->vdm->resources->background = strdup(name); pm = &scrInfo->vdm->resources->pixInfo; if (MakePixmap(dpy, scrInfo, name, pm)) { XGetWMNormalHints(dpy, PANEWINOFCLIENT(scrInfo->vdm->client), sizeHints, &sizeSet); SetWName(dpy, scrInfo->vdm); sizeHints = XAllocSizeHints(); sizeHints->max_width = pm->width; sizeHints->max_height = pm->height; sizeHints->flags |= PMaxSize; XSetWMNormalHints(dpy, PANEWINOFCLIENT(scrInfo->vdm->client), sizeHints); XFree(sizeHints); XSetWindowBackgroundPixmap(dpy, PANEWINOFCLIENT(scrInfo->vdm->client), pm->pixmap); XClearWindow(dpy, PANEWINOFCLIENT(scrInfo->vdm->client)); XFreePixmap(dpy, pm->pixmap); } } UpdateScreenVirtualPixmapColor(dpy,scrInfo) Display *dpy; ScreenInfo *scrInfo; { if (!scrInfo->vdm->resources->background) return; UpdateScreenVirtualMap(dpy,scrInfo); } static void initVDM(dpy, scrInfo, client) Display *dpy; ScreenInfo *scrInfo; Client *client; { char *s; VirtualResources *resources; /* * Create VDM for screen */ resources = (VirtualResources *) MemAlloc(sizeof(VirtualResources)); s = getResource(scrInfo,virtualDesktopCQ,virtualDesktopIQ); if (!s) resources->size = strdup(GRV.VirtualDesktop); else resources->size = strdup(s); s = getResource(scrInfo,virtualGeometryCQ,virtualGeometryIQ); if (!s) resources->geometry = strdup(GRV.VirtualGeometry); else resources->geometry = strdup(s); s = getResource(scrInfo,virtualIconGeometryCQ,virtualIconGeometryIQ); if (!s) resources->iconGeometry = strdup(GRV.VirtualIconGeometry); else resources->iconGeometry = strdup(s); s = getResource(scrInfo,virtualScaleCQ,virtualScaleIQ); if (!s) resources->scale = GRV.VDMScale; else resources->scale = atoi(s); s = getResource(scrInfo,virtualGridCQ,virtualGridIQ); if (!s) resources->grid = GRV.VirtualGrid; else resources->grid = atoi(s); s = getResource(scrInfo,virtualMapNameCQ,virtualMapNameIQ); if (s) resources->background = strdup(s); else if (GRV.VirtualBackgroundMap) resources->background = strdup(GRV.VirtualBackgroundMap); else resources->background = NULL; MakeVDM(dpy, scrInfo, client, resources); /* * Need this to set the ascent value; there's probably a better * way REMIND SDO */ UpdateScreenVirtualFont(dpy,scrInfo); } /* * initScreenInfo - creates the ScreenInfo for a particular screen */ static void initScreenInfo(dpy,screenno,visInfo,nvis) Display *dpy; int screenno; XVisualInfo *visInfo; int nvis; { ScreenInfo *scrInfo; Client *client; /* * Create a new ScreenInfo and minimally initialize it */ scrInfo = MemNew(ScreenInfo); scrInfo->screen = screenno; initBasic(dpy,scrInfo,visInfo,nvis); initVisual(dpy,scrInfo); initColormap(dpy, scrInfo); initPixmaps(dpy,scrInfo); initWinCache(dpy, scrInfo); /* * Insert the proto ScreenInfo into the list so that * ClientCreate can find it and get the client for MakeRoot */ ScreenInfoList = ListCons(scrInfo,ScreenInfoList); if ((client = ClientCreate(dpy,scrInfo->screen)) == NULL) return; scrInfo->rootwin = MakeRoot(dpy,client); /* * Initialize the rest of the ScreenInfo fields */ scrInfo->use3D = use3D(scrInfo); initColors(dpy,scrInfo); initGCs(dpy,scrInfo); initOLGX(dpy,scrInfo); initFonts(dpy,scrInfo); InitCursors(dpy,scrInfo); /* * Initialize the screen dependent parts of menus */ InitMenus(dpy,scrInfo); scrInfo->menuCache = InitScreenMenus(dpy,scrInfo); /* REMIND: shouldn't this be in SlotInit? */ scrInfo->framepos = 0; /* * Initialize the icon slots for this screen */ scrInfo->iconGrid = SlotInit(dpy,screenno); /* * Make a new environment for this screen number */ scrInfo->environment = MakeEnviron(dpy,screenno); /* * Initalize the colormap focus for screen/root */ ColorFocusInit(dpy,scrInfo->rootwin); initVDM(dpy, scrInfo, client); /* * Set the cursor for that screen's root window */ if (GRV.PointerWorkspace) XDefineCursor(dpy,scrInfo->rootid,GRV.BasicPointer); } /*------------------------------------------------------------------------- * Global Functions *-------------------------------------------------------------------------*/ /* * InitScreens - inits all managed screens */ void InitScreens(dpy) Display *dpy; { XVisualInfo *visInfo; int scr,nvis; ScreenInfo *scrInfo; makeScreenQuarks(); /* * Get the visual info for all the screens */ visInfo = XGetVisualInfo(dpy,VisualNoMask,(XVisualInfo *)NULL,&nvis); /* * If only managing a single screen then use the defaultscreen */ if (GRV.SingleScreen) { scr = DefaultScreen(dpy); initScreenInfo(dpy,scr,visInfo,nvis); /* * Else manage all screens for this display */ } else { for (scr=0; scrvalue; MakeNoFocus(dpy,scrInfo->rootwin); /* * Initialize the screen Menu pixmaps */ } /* * DestroyScreens - shuts down all screens * * For each screen/root-window: destroy the WinRoot object, install the root * colormap, and reset the background to the default (if we had set it in the * first place). Then set the input focus back to PointerRoot. Note: we * install the server's notion of the default colormap, not the olwm's root * colormap. This is in case olwm is running in a visual other than the * default visual. */ void DestroyScreens(dpy) Display *dpy; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { XInstallColormap(dpy, DefaultColormap(dpy, si->screen)); if (GRV.PaintWorkspace) { XSetWindowBackgroundPixmap(dpy,si->rootid,None); } FreePixmapColors(dpy, si->pixInfo.ncolors, si->pixInfo.colors, &si->colormap); DestroyVDM(dpy, si->vdm, &si->colormap); XClearWindow(dpy,si->rootid); (*(WinFunc(si->rootwin,core.destroyfunc)))(dpy,si->rootwin); } XSetInputFocus(dpy,PointerRoot,RevertToPointerRoot,CurrentTime); } /* * GetScrInfoOfScreen - return the ScreenInfo for a particular screen no */ ScreenInfo * GetScrInfoOfScreen(screenno) int screenno; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { if (si->screen == screenno) return si; } return (ScreenInfo *)NULL; } /* * GetScrInfoOfRoot - return the ScreenInfo for a particular root win */ ScreenInfo * GetScrInfoOfRoot(root) Window root; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { if (si->rootid == root) return si; } return (ScreenInfo *)NULL; } /* * GetFirstScrInfo - return the ScreenInfo for the lowest-numbered screen */ ScreenInfo * GetFirstScrInfo() { ScreenInfo *si; ScreenInfo *lowestScrInfo; List *l = ScreenInfoList; int lowestScreen = 99999; /* REMIND */ for (si = ListEnum(&l); si; si = ListEnum(&l)) { if (si->screen < lowestScreen) { lowestScrInfo = si; lowestScreen = si->screen; } } return lowestScrInfo; } /* * SetWorkspaceColor - set workspace color for each screen */ void SetWorkspaceBackground(dpy) Display *dpy; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { setScreenWorkspaceBackground(dpy,si); } WinRedrawAllWindows(); } /* * SetWindowColor - set various window background colors for each screen */ void SetWindowColor(dpy) Display *dpy; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { setScreenWindowColor(dpy,si); } WinRedrawAllWindows(); } /* * SetForegroundColor - set the window foreground color for each screen */ void SetForegroundColor(dpy) Display *dpy; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { setScreenForegroundColor(dpy,si); } WinRedrawAllWindows(); } /* * SetBackgroundColor - set the background color for each screen */ void SetBackgroundColor(dpy) Display *dpy; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { setScreenBackgroundColor(dpy,si); } WinRedrawAllWindows(); } /* * SetBorderColor - set the border color for each screen */ void SetBorderColor(dpy) Display *dpy; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { setScreenBorderColor(dpy,si); } WinRedrawAllWindows(); } /* * SetTitleFont - set Title Font for each screen */ void SetTitleFont(dpy) Display *dpy; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { updateScreenTitleFont(dpy,si); } WinRedrawAllWindows(); } /* * SetTextFont - set Text Font for each screen */ void SetTextFont(dpy) Display *dpy; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { updateScreenTextFont(dpy,si); } /* affects notices only so don't redraw */ } /* * SetButtonFont - set Button Font for each screen */ void SetButtonFont(dpy) Display *dpy; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { updateScreenButtonFont(dpy,si); } WinRedrawAllWindows(); /* should be just pinned menus */ } /* * SetIconFont - set Icon Font for each screen */ void SetIconFont(dpy) Display *dpy; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { updateScreenIconFont(dpy,si); } WinRedrawAllWindows(); /* should be just icon windows */ } /* * SetGlyphFont - set Glyph Font for each screen */ void SetGlyphFont(dpy) Display *dpy; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { updateScreenGlyphFont(dpy,si); } WinRedrawAllWindows(); } /* * SetIconLocation - calls SlotSetLocations for each screen */ void SetIconLocation(dpy) Display *dpy; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { SlotSetLocations(dpy,si->iconGrid); } } /* * ReparentScreens - reparents each of the screens window trees */ int ReparentScreens(dpy) Display *dpy; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { ReparentTree(dpy,si->rootid); } } int CreateScreenWindowMenuInfo(dpy) Display *dpy; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { CreateWindowMenuInfo(dpy,si); } } int DestroyScreenWindowMenuInfo(dpy) Display *dpy; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { DestroyWindowMenuInfo(dpy,si); } } int CreateScreenUserMenuInfo(dpy) Display *dpy; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { CreateUserMenuInfo(dpy,si); } } int DestroyScreenUserMenuInfo(dpy) Display *dpy; { ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { DestroyUserMenuInfo(dpy,si); } } /* * ScreenCreateWindow * * Act like XCreateWindow(), except fetch a window from the cache if one is * available instead of creating one. The window cache is mainly intended for * fairly stylized use by decoration windows, so the full generality of * XCreateWindow() is not provided. In particular: * * - the border width is always zero; * - the depth and visual arguments are taken from the screen info; * - the class is always InputOutput. */ Window ScreenCreateWindow(scrInfo, parent, x, y, w, h, attrmask, attr) ScreenInfo *scrInfo; Window parent; int x, y, w, h; unsigned long attrmask; XSetWindowAttributes *attr; { Window win; if (scrInfo->winCacheCount > 0) { /* allocate out of the cache */ scrInfo->winCacheCount -= 1; win = scrInfo->winCache[scrInfo->winCacheCount]; XReparentWindow(scrInfo->dpy, win, parent, x, y); XResizeWindow(scrInfo->dpy, win, w, h); XChangeWindowAttributes(scrInfo->dpy, win, attrmask, attr); } else { /* really create a new window */ win = XCreateWindow(scrInfo->dpy, parent, x, y, w, h, 0, scrInfo->depth, InputOutput, scrInfo->visual, attrmask, attr); } assert(win != 0); return win; } /* * defaultAttributes * * This structure is an XSetWindowAttributes structure that contains all of * the default values that a window would have if it were freshly created. */ static XSetWindowAttributes defaultAttributes = { None, /* background_pixmap */ 0, /* background pixel (NOT USED) */ CopyFromParent, /* border_pixmap */ 0, /* border_pixel (NOT USED) */ ForgetGravity, /* bit_gravity */ NorthWestGravity, /* win_gravity */ NotUseful, /* backing_store */ ~0, /* backing_planes */ 0, /* backing_pixel */ False, /* save_under */ NoEventMask, /* event_mask */ NoEventMask, /* do_not_propagate_mask */ False, /* override_redirect */ CopyFromParent, /* colormap */ None /* cursor */ }; /* everything except CWBackPixel and CWBorderPixel */ #define DEFAULT_ATTR_MASK \ (CWBackPixmap | CWBorderPixmap | CWBitGravity | CWWinGravity | \ CWBackingStore | CWBackingPlanes | CWBackingPixel | CWSaveUnder | \ CWEventMask | CWDontPropagate | CWOverrideRedirect | \ CWColormap | CWCursor) /* * ScreenDestroyWindow * * Add a window to the screen's window cache for later re-use. If the cache * is full, just destroy the window. Before putting the window back into the * cache, reset most of its attributes to a reasonable state. */ void ScreenDestroyWindow(scrInfo, win) ScreenInfo *scrInfo; Window win; { Atom *proplist; int i, nprops; if (scrInfo->winCacheCount < scrInfo->winCacheSize) { /* add to the cache */ scrInfo->winCache[scrInfo->winCacheCount] = win; scrInfo->winCacheCount += 1; XUnmapWindow(scrInfo->dpy, win); XReparentWindow(scrInfo->dpy, win, scrInfo->rootid, -1, -1); XChangeWindowAttributes(scrInfo->dpy, win, DEFAULT_ATTR_MASK, &defaultAttributes); proplist = XListProperties(scrInfo->dpy, win, &nprops); if (proplist != NULL) { for (i = 0; i < nprops; ++i) XDeleteProperty(scrInfo->dpy, win, proplist[i]); XFree((char *)proplist); } } else { /* cache full; really destroy */ XDestroyWindow(scrInfo->dpy, win); } } /* * ScreenUpdateWinCacheSize * * Change each screen's window cache size to be the new size named in * GRV.WindowCacheSize. */ void ScreenUpdateWinCacheSize(dpy) Display *dpy; { List *l = ScreenInfoList; ScreenInfo *si; int newsize = GRV.WindowCacheSize; int i; for (si = ListEnum(&l); si; si = ListEnum(&l)) { if (newsize < si->winCacheCount) { for (i = newsize; i < si->winCacheCount; ++i) XDestroyWindow(dpy, si->winCache[i]); si->winCacheCount = newsize; } if (newsize == 0) { if (si->winCache != NULL) { MemFree(si->winCache); si->winCache = NULL; } } else { if (si->winCache == NULL) si->winCache = MemCalloc(newsize, sizeof(Window)); else si->winCache = MemRealloc(si->winCache, newsize * sizeof(Window)); } si->winCacheSize = newsize; } } void CreateAutoRootMenuScreen(dpy, si) Display *dpy; ScreenInfo *si; { MenuInfo *info; extern MenuInfo *FindMenuInfo(); info = FindMenuInfo(si->rootwin, si->menuTable[MENU_ROOT]); if (!info) return; info->menuX = GRV.AutoRootMenuX; info->menuY = GRV.AutoRootMenuY; (void) MakePinMenu(dpy, si->rootwin, info); } void CreateAutoRootMenu(dpy) Display *dpy; { ScreenInfo *si; List *l = ScreenInfoList; if (!GRV.AutoShowRootMenu) return; for (si = ListEnum(&l); si; si = ListEnum(&l)) { CreateAutoRootMenuScreen(dpy,si); } } xview-3.2p1.4/clients/olvwm-4.1/selection.c100644 1750 1750 27704 5515337321 15716 0ustar mbmb#ifdef IDENT #ident "@(#)selection.c 26.19 93/06/28 SMI" #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #include #include #include #include #include #include #include "i18n.h" #include "olwm.h" #include "win.h" #include "list.h" #include "mem.h" /* ===== global data ====================================================== */ Time SelectionTime; /* ===== private data ===================================================== */ typedef struct _selection_registry { Atom selection; Bool (*handler)(); } SelectionRegistry; /* * selectList is the list of selected clients; it's used for the PRIMARY * selection. */ static List *selectList = NULL_LIST; /* * selectionRegistry is the list of selections and their handler functions. */ static List *selectRegistry = NULL_LIST; /* ===== externals ======================================================== */ extern Atom AtomAtomPair; extern Atom AtomClientWindow; extern Atom AtomLength; extern Atom AtomListLength; extern Atom AtomName; extern Atom AtomMultiple; extern Atom AtomTargets; extern Atom AtomTimestamp; /* ===== private functions ================================================ */ /* * processPrimaryTarget * * Process the conversion of a single target for the PRIMARY selection. Used * for both single requests and for MULTIPLE requests. Returns True if the * conversion was successful, otherwise False. */ static Bool processPrimaryTarget(dpy, requestor, target, property) Display *dpy; Window requestor; Atom target; Atom property; { unsigned long data[10]; /* long enough for most things */ unsigned char *propdata = (unsigned char *) data; int format, nelements, i; Client *cli; Atom type; Bool freedata = False; Window *wp; if (target == AtomTargets) { data[0] = AtomTargets; data[1] = AtomTimestamp; data[2] = AtomListLength; data[3] = XA_DRAWABLE; data[4] = AtomLength; data[5] = AtomMultiple; data[6] = AtomName; data[7] = AtomClientWindow; nelements = 8; type = XA_ATOM; format = 32; } else if (target == AtomTimestamp) { data[0] = SelectionTime; nelements = 1; type = XA_INTEGER; format = 32; } else if (target == AtomListLength) { data[0] = ListCount(selectList); nelements = 1; type = XA_INTEGER; format = 32; } else if (target == AtomLength) { data[0] = ListCount(selectList)*sizeof(long); nelements = 1; type = XA_INTEGER; format = 32; } else if (target == XA_DRAWABLE) { nelements = ListCount(selectList); propdata = (unsigned char *) MemCalloc(nelements, sizeof(unsigned long)); freedata = True; wp = (Window *) propdata; i = 0; cli = NULL; while ((cli = EnumSelections(cli)) && (iframewin != NULL && cli->framewin->fcore.name != NULL) { wchar_t *wcs = cli->framewin->fcore.name; int n = wslen(wcs) * sizeof(wchar_t) + 1; tmp = (char*) MemAlloc(n); wcstombs(tmp, wcs, n); } #else if (cli->framewin != NULL && cli->framewin->fcore.name != NULL) tmp = cli->framewin->fcore.name; #endif else tmp = ""; tmplen = strlen(tmp) + 1; if (curlen + tmplen > maxlen) { maxlen += 100; propdata = MemRealloc(propdata, maxlen); } strcpy((char *) propdata+curlen, tmp); curlen += tmplen; } nelements = curlen; type = XA_STRING; format = 8; } else if (target == AtomClientWindow) { data[0] = NoFocusWin; nelements = 1; type = XA_WINDOW; format = 32; } else { return False; } XChangeProperty(dpy, requestor, property, type, format, PropModeReplace, (unsigned char *)propdata, nelements); if (freedata) MemFree(propdata); return True; } /* * handlePrimary * * Respond to a SelectionRequest or SelectionClear event on the PRIMARY * selection. */ static void handlePrimary(event) XEvent *event; { XSelectionRequestEvent *request; XSelectionEvent response; Atom *pairs; unsigned long nitems, remain; int i; Bool writeback = False; switch (event->type) { case SelectionClear: ClearSelections(event->xany.display); return; case SelectionRequest: /* use code below */ break; default: return; } request = (XSelectionRequestEvent *) event; /* * Fill in the response message. We fill in the property field with None * here. If the conversion fails, we just send this message. If a * conversion succeeds, the property field is filled in appropriately. */ response.type = SelectionNotify; response.serial = request->serial; response.requestor = request->requestor; response.selection = request->selection; response.time = request->time; response.target = request->target; response.property = None; if (request->target == AtomMultiple) { if (request->property != None) { pairs = GetWindowProperty(request->display, request->requestor, request->property, 0L, 100000L, AtomAtomPair, 32, &nitems, &remain); if (pairs != NULL) { /* * Process each pair of atoms (target, property). Watch out * for an odd last atom, and for property atoms of None. If * the conversion fails, replace it with None in the original * property. */ for (i = 0; i+1 < nitems; i += 2) { if (pairs[i+1] == None) continue; if (!processPrimaryTarget(request->display, request->requestor, pairs[i], pairs[i+1])) { pairs[i+1] = None; writeback = True; } } if (writeback) XChangeProperty(request->display, request->requestor, request->property, AtomAtomPair, 32, PropModeReplace, (unsigned char *) pairs, nitems); XFree((char *) pairs); response.property = request->property; } } } else { /* * Handle a single request. If its property field is None, the * requestor is using an obsolete draft of the ICCCM. Per the * suggestion in ICCCM section 2.2, use the target name as the * property name. */ if (request->property == None) request->property = request->target; if (processPrimaryTarget(request->display, request->requestor, request->target, request->property)) response.property = request->property; } XSendEvent(request->display, request->requestor, False, NoEventMask, (XEvent *)&response); } /* ===== public functions ================================================= */ /* * IsSelected * * Determine whether a client is selected. * * REMIND: is this really necessary? Why not just use cli->isSelected in open * code? */ Bool IsSelected(cli) Client *cli; { return cli->isSelected; } /* * AddSelection * * Add this client to the list of clients on the PRIMARY selection and mark * the client as being selected. Acquires the PRIMARY selection if necessary. */ int AddSelection(cli, timestamp) Client *cli; Time timestamp; { List *l = selectList; Client *tc; if (selectList == NULL_LIST) { /* * Since we don't have anything selected, we must acquire the * selection. If we don't actually get the selection, fail * silently. This may occur if the user selects something * else after selecting a window, but we are slow to respond. */ XSetSelectionOwner(cli->dpy, XA_PRIMARY, NoFocusWin, timestamp); if (NoFocusWin != XGetSelectionOwner(cli->dpy, XA_PRIMARY)) return; } else { /* First look to see if window is already listed. */ for(tc = ListEnum(&l); tc != NULL; tc = ListEnum(&l)) { if (tc == cli) return; } } /* If we get here the window wasn't already in the list. */ selectList = ListCons(cli,selectList); cli->isSelected = True; /* Tell the window it is selected. */ WinCallSelect(cli, True); SelectionTime = timestamp; } /* * RemoveSelection * * Remove a client from the PRIMARY selection list. Returns True if client * was deselected; false if the client was not already selected. */ Bool RemoveSelection(cli) Client *cli; { List **l; for (l = &selectList ; *l != NULL; l = &((*l)->next)) { if ((*l)->value == cli) { ListDestroyCell(l); cli->isSelected = False; WinCallSelect(cli,False); return True; } } return False; } /* * ToggleSelection * * Toggle a client's membership in the selection. Returns a boolean * indicating whether the client is a now member of the PRIMARY selection. */ Bool ToggleSelection(cli, timestamp) Client *cli; Time timestamp; { /* If already present, we want to deselect. */ if (RemoveSelection(cli)) { return False; } else { AddSelection(cli, timestamp); return True; } } /* * ClearSelections * * Clear the list of clients on the PRIMARY selection. This is called in * response to receiving a SelectionClear event or when olwm voluntarily gives * up the selection. Note that this function does not relinquish the PRIMARY * selection. If that is desired, it is the responsibility of the caller. */ /*ARGSUSED*/ void ClearSelections(dpy) Display *dpy; { List *l; Client *cli; l = selectList; for(cli = ListEnum(&l); cli != NULL; cli = ListEnum(&l)) { cli->isSelected = False; WinCallSelect(cli,False); } ListDestroy(selectList); selectList = NULL_LIST; } /* * EnumSelections * * Enumerate the selected client structures. Pass NULL to begin enumeration; * any non-NULL value thereafter will continue enumeration where it left off. * This function uses static data, so only one enumeration can happen at any * given time. Returns NULL when list is exhausted. */ Client * EnumSelections(foo) void *foo; { static List *l; Client *ct; if (foo == NULL) l = selectList; if (l != NULL) { ct = l->value; l = l->next; return ct; } return NULL; } /* * SelectionRegister * * Register a selection and its handler function. The handler function should * be declared as: * * Bool handler(selreqevent); * * Note that there is no way to unregister a selection. That function isn't * necessary at this time. */ void SelectionRegister(selection, handler) Atom selection; Bool (*handler)(); { SelectionRegistry *reg; reg = MemNew(SelectionRegistry); reg->selection = selection; reg->handler = handler; selectRegistry = ListCons(reg, selectRegistry); } /* * SelectionResponse * * Handle a selection event. Look up the selection in the selection registry * and call the appropriate handler. If there is match in the registry and * the event is a SelectionRequest event, refuse the request. */ void SelectionResponse(event) XEvent *event; { SelectionRegistry *reg; List *l = selectRegistry; Atom selection; XSelectionEvent refusal; switch (event->type) { case SelectionClear: selection = event->xselectionclear.selection; break; case SelectionRequest: selection = event->xselectionrequest.selection; break; default: return; } for (reg = ListEnum(&l); reg != NULL; reg = ListEnum(&l)) { if (reg->selection == selection) { (*(reg->handler))(event); return; } } /* * We received an event for an unregistered selection. Refuse any * requests, and ignore SelectionClear events. */ if (event->type == SelectionRequest) { refusal.type = SelectionNotify; refusal.requestor = event->xselectionrequest.requestor; refusal.selection = event->xselectionrequest.selection; refusal.time = event->xselectionrequest.time; refusal.target = event->xselectionrequest.target; refusal.property = None; XSendEvent(event->xany.display, refusal.requestor, False, NoEventMask, (XEvent *) &refusal); } } /* * SelectionInit * * Register the handler for the PRIMARY selection. */ void SelectionInit() { SelectionRegister(XA_PRIMARY, handlePrimary); } xview-3.2p1.4/clients/olvwm-4.1/services.c100644 1750 1750 46543 6331505042 15550 0ustar mbmb/* * (c) Copyright 1989, 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifdef IDENT #ident "@(#)services.c 1.5 olvwm version 07 Jan 1994" #endif /* * Based on #ident "@(#)services.c 26.53 93/06/28 SMI" * */ #include #include #include #include #include #include #include #include #include #include #define XK_MISCELLANY #include #include "i18n.h" #include "ollocale.h" #include "events.h" #include "olwm.h" #include "win.h" #include "menu.h" #include "notice.h" #include "globals.h" #include "group.h" #include "mem.h" #include "resources.h" #include "error.h" #include "dsdm.h" extern char *getenv(); extern unsigned int FindModifierMask(); extern void ReInitUserMenu(); extern void *ClientKill(); /* * Externals */ extern Atom AtomProtocols; extern Atom AtomSaveYourself; extern Window NoFocusWin; extern Bool UpdInputFocusStyle(); extern Time LastEventTime; /* * Execute a command by handing it to /bin/sh. */ int ExecCommand(env,cmd) char **env; char *cmd; { char *args[4]; int pid; args[0] = "/bin/sh"; args[1] = "-c"; args[2] = cmd; args[3] = NULL; pid = fork(); if (pid == -1) { perror("olvwm: fork"); return 1; } else if (pid == 0) { /* child */ #if defined(SYSV) || defined(__linux) setpgrp(); #else setpgrp(0, getpid()); #endif execve(args[0], args, env); perror("olvwm: exec"); exit(1); } return 0; } /*************************************************************************** * Exit from WM ****************************************************************************/ void ExitCallback(dpy,button) Display *dpy; int button; { /* If Exit button is selected, will return 0 */ if (button == 0) Exit(dpy); } /* * ExitFunc - Exit window with a confirmation notice */ /*ARGSUSED*/ int ExitFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { int screen; Text *buttons[2]; Text *msg; NoticeBox noticeBox; buttons[0] = GetText("Exit"); buttons[1] = GetText("Cancel"); msg = GetText("Please confirm exit from window system"); screen = winInfo->core.client->screen; /* set up noticeBox information */ noticeBox.numButtons = NOTICE_BUTTON_COUNT(buttons); noticeBox.defaultButton = 1; /* cancel is default */ noticeBox.buttonText = buttons; noticeBox.msgText = msg; noticeBox.boxX = -1; noticeBox.boxY = -1; UseNoticeBoxSync(dpy,screen,¬iceBox,ExitCallback); FreeText(buttons[0]); FreeText(buttons[1]); FreeText(msg); } /* * ExitNoConfirmFunc - Exit window w/o a confirmation notice */ int /*ARGSUSED*/ ExitNoConfirmFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { Exit(dpy); } /*************************************************************************** * Command execution ****************************************************************************/ /* * AppMenuFunc -- called when a command is listed as the item selected on * the olwm menu */ /*ARGSUSED*/ int AppMenuFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { return ExecCommand(winInfo->core.client->scrInfo->environment, menuInfo->menu->buttons[idx]->action.command); } /* * PshFunc -- called when the "POSTSCRIPT" keyword is present for the * item selected in the olwm menu * */ /*ARGSUSED*/ int PshFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { char *commArgv[2]; int pshPipe[2]; int pid; char *dir; char pshPath[100]; char **env = winInfo->core.client->scrInfo->environment; if ( (dir = getenv( "OPENWINHOME" )) == NULL ) #ifdef OPENWINHOME_DEFAULT { /* martin-2.buck@student.uni-ulm.de */ strcpy( pshPath, OPENWINHOME_DEFAULT ); strcat( pshPath, "/bin/psh" ); commArgv[0] = pshPath; } #else commArgv[0] = "/usr/bin/psh"; #endif else { strcpy( pshPath, dir ); strcat( pshPath, "/bin/psh" ); commArgv[0] = pshPath; } commArgv[1] = NULL; if ( pipe( pshPipe ) == -1 ) { perror( "olvwm: pipe" ); return( -1 ); } pid = fork(); if ( pid == -1 ) { perror("olvwm: fork"); return( -1 ); } else if ( pid == 0 ) { /* child reads from pipe and writes to stdout/err */ close( 0 ); /* close stdin */ dup( pshPipe[0] ); /* make stdin the read end */ close( pshPipe[0] ); /* don't need orig pipe fds */ close( pshPipe[1] ); close( 1 ); /* close stdout */ dup( 2 ); /* make olwm stderr = psh stdout */ #if defined(SYSV) || defined(__linux) setpgrp(); #else setpgrp(0, getpid()); #endif execve( commArgv[0], commArgv, env ); fprintf( stderr, GetString("olvwm: psh error: %d\n"), errno ); } else { /* parent writes user menu postscript code down pipe */ close( pshPipe[0] ); /* don't need to read pipe */ write( pshPipe[1], menuInfo->menu->buttons[idx]->action.command, strlen(menuInfo->menu->buttons[idx]->action.command)); close( pshPipe[1] ); } return 1; } /*************************************************************************** * Flip Drag ****************************************************************************/ /*ARGSUSED*/ int FlipDragFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { GRV.DragWindow = !GRV.DragWindow; return 0; } /*************************************************************************** * Flip Focus ****************************************************************************/ /*ARGSUSED*/ int FlipFocusFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { extern void UpdFocusStyle(); Bool temp = !GRV.FocusFollowsMouse; UpdFocusStyle(dpy, NULL, &GRV.FocusFollowsMouse, &temp); return 0; } /*************************************************************************** * No-Operation ****************************************************************************/ /* * NopFunc - a no-operation function, used as a placeholder for * the NOP service */ /*ARGSUSED*/ int NopFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { } /*************************************************************************** * Clipboard ****************************************************************************/ /*ARGSUSED*/ int ClipboardFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { NoticeBox noticeBox; Text *buttons[1]; Text *msg; buttons[0] = GetText("Ok"); msg = GetText("Sorry, the clipboard is not yet implemented."); /* set up noticeBox information */ noticeBox.numButtons = NOTICE_BUTTON_COUNT(buttons); noticeBox.defaultButton = 0; noticeBox.buttonText = buttons; noticeBox.msgText = msg; noticeBox.boxX = -1; noticeBox.boxY = -1; UseNoticeBox(dpy, winInfo->core.client->screen, ¬iceBox); FreeText(buttons[0]); FreeText(msg); } /*************************************************************************** * Print Screen ****************************************************************************/ /*ARGSUSED*/ int PrintScreenFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { NoticeBox noticeBox; Text *buttons[1]; Text *msg; buttons[0] = GetText("Ok"); msg = GetText("Sorry, Print Screen is not yet implemented."); /* set up noticeBox information */ noticeBox.numButtons = NOTICE_BUTTON_COUNT(buttons); noticeBox.defaultButton = 0; noticeBox.buttonText = buttons; noticeBox.msgText = msg; noticeBox.boxX = -1; noticeBox.boxY = -1; UseNoticeBox(dpy, winInfo->core.client->screen, ¬iceBox); FreeText(buttons[0]); FreeText(msg); } /*************************************************************************** * Refresh screen ****************************************************************************/ /* * RecursiveRefresh * * Recursively refresh an entire window tree, by walking the hierarchy and * sending Expose events to each window (via XClearWindow). Note that * XClearArea will generate a BadMatch error if called on InputOnly windows; * this error is suppressed in Error.c. */ void RecursiveRefresh(dpy, win) Display *dpy; Window win; { int i; unsigned int nchildren; Status s; Window root, parent; Window *childlist; XClearArea(dpy, win, 0, 0, 0, 0, True); s = XQueryTree(dpy, win, &root, &parent, &childlist, &nchildren); if (s == 0) return; for (i=0; i 0) XFree((char *)childlist); } /* * RefreshFunc -- called when the "Refresh Screen" item has been selected on * the olwm menu */ /*ARGSUSED*/ int RefreshFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { if (GRV.RefreshRecursively) { RecursiveRefresh(dpy, winInfo->core.client->scrInfo->rootid); } else { Window w; XSetWindowAttributes xswa; int screen = winInfo->core.client->screen; /* We create a window over the whole screen, map it, * then destroy it. */ xswa.override_redirect = True; w = ScreenCreateWindow(winInfo->core.client->scrInfo, WinRootID(winInfo), 0, 0, DisplayWidth(dpy,screen), DisplayHeight(dpy,screen), CWOverrideRedirect, &xswa); XMapRaised(dpy, w); ScreenDestroyWindow(winInfo->core.client->scrInfo, w); } } /*************************************************************************** * Properties ****************************************************************************/ #define WORKSPACEPROPS "props" /* * PropertiesFunc -- called when the "Properties ..." item has been selected * on the root menu. REMIND: this and AppMenuFunc should be merged. */ /*ARGSUSED*/ int PropertiesFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { return ExecCommand(winInfo->core.client->scrInfo->environment,WORKSPACEPROPS); } /*************************************************************************** * Save Workspace ****************************************************************************/ /* * SaveWorkspaceFunc - called when "Save Workspace" is selected * from the root menu. */ /*ARGSUSED*/ int SaveWorkspaceFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { Text *buttons[1]; Text *msg; int status; int screen = winInfo->core.client->screen; NoticeBox noticeBox; /* having either grab fail isn't fatal; issue warnings only */ VirtualSaveDesktops(dpy, 0, 0); if (XGrabPointer(dpy, NoFocusWin, False, ButtonPressMask, GrabModeAsync, GrabModeAsync, None, GRV.BusyPointer, CurrentTime) != GrabSuccess) { ErrorWarning(GetString("failed to grab pointer")); } if (XGrabKeyboard(dpy, NoFocusWin, False, GrabModeAsync, GrabModeAsync, CurrentTime) != GrabSuccess) { ErrorWarning(GetString("failed to grab keyboard")); } status = system(GRV.SaveWorkspaceCmd); XUngrabKeyboard(dpy,CurrentTime); XUngrabPointer(dpy,CurrentTime); VirtualRestoreDesktops(dpy); /* * owplaces was sucessful */ if (status == 0) { buttons[0] = GetText("Ok"); msg = GetText("Save Workspace complete."); noticeBox.numButtons = NOTICE_BUTTON_COUNT(buttons); noticeBox.defaultButton = 0; noticeBox.buttonText = buttons; noticeBox.boxX = noticeBox.boxY = -1; noticeBox.msgText = msg; UseNoticeBox(dpy,screen,¬iceBox); FreeText(buttons[0]); FreeText(msg); return True; } /* * owplaces failed with an error */ buttons[0] = GetText("Cancel"); switch (status>>8) { case 4: msg = GetText("Save Workspace could not be performed, because\nthere was an error writing the .openwin-init file."); break; case 5: msg = GetText("Save Workspace could not be performed,\nbecause some applications did not respond."); break; default: msg = GetText("Save Workspace could not be performed,\nbecause the owplaces(1) command failed."); break; } noticeBox.numButtons = NOTICE_BUTTON_COUNT(buttons); noticeBox.defaultButton = 0; noticeBox.buttonText = buttons; noticeBox.boxX = noticeBox.boxY = -1; noticeBox.msgText = msg; UseNoticeBox(dpy,screen,¬iceBox); FreeText(buttons[0]); FreeText(msg); return False; } /*************************************************************************** * ReReadUserMenu ****************************************************************************/ /* * ReReadUserMenuFunc */ /*ARGSUSED*/ int ReReadUserMenuFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { ReInitUserMenu(dpy,winInfo->core.client->scrInfo,True); } /*************************************************************************** * Window Menu Action Procs ****************************************************************************/ /* * WindowOpenCloseAction * Toggles Open/Close. */ /*ARGSUSED*/ int WindowOpenCloseAction(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { ClientOpenCloseToggle(winInfo->core.client,LastEventTime); } /* * WindowFullRestoreSizeAction * Toggles Full/Restore Size. */ /*ARGSUSED*/ int WindowFullRestoreSizeAction(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { ClientFullRestoreSizeToggle(winInfo->core.client,LastEventTime); } /* * WindowMoveAction * Moves the window with user interaction. */ /*ARGSUSED*/ int WindowMoveAction(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { ClientMove(winInfo->core.client,(XEvent *)NULL); } /* * WindowResizeAction * Resizes the window with user interaction. */ /*ARGSUSED*/ int WindowResizeAction(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { ClientResize(winInfo->core.client, NULL, keyevent, NULL, NULL); } /* * WindowPropsAction * This function is stubbed out because there is currently no definition * of what the WM is supposed to do when the "Props" item is hit. */ /*ARGSUSED*/ int WindowPropsAction(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { return 0; } /* * WindowBackAction * Pushes a window back in the window hierarchy. */ /*ARGSUSED*/ int WindowBackAction(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { ClientBack(winInfo->core.client); } /* * WindowRefreshAction * Refreshes the window */ /*ARGSUSED*/ int WindowRefreshAction(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { ClientRefresh(winInfo->core.client); } /* * WindowStickAction */ /*ARGSUSED*/ int WindowStickAction(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { ClientStickUnstickToggle(winInfo->core.client); } /* * WindowQuitAction * */ /*ARGSUSED*/ int WindowQuitAction(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { ClientKill(winInfo->core.client,True); } /* * WindowFlashOwnerAction * */ /*ARGSUSED*/ int WindowFlashOwnerAction(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { ClientFlashOwner(winInfo->core.client); } /* * WindowThisAction * Dismiss this window. */ /*ARGSUSED*/ int WindowDismissThisAction(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { ClientKill(winInfo->core.client, False); } /* * _dismissSiblingMenus - called from VisitPinnedMenuclients to * dismiss all pinned menus on a particular screen */ void _dismissSiblingMenus(cli, winInfo) Client *cli; WinGeneric *winInfo; { if (cli->screen == winInfo->core.client->screen) ClientKill(cli, False); } /* * WindowDismissAllAction * Dismiss all pop-ups in the group. */ /*ARGSUSED*/ int WindowDismissAllAction(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { Client *cli = winInfo->core.client; if (cli->framewin && cli->framewin->fcore.panewin && cli->framewin->fcore.panewin->core.kind == WIN_PINMENU) { VisitPinnedMenuClients(_dismissSiblingMenus, winInfo); } else { /* dismiss all followers in this window's group */ GroupApply(cli->groupid,ClientKill,(void *)False,GROUP_DEPENDENT); /* * If this window is not a dependent follower, make sure to dismiss * it too. */ if (cli->groupmask != GROUP_DEPENDENT) ClientKill(winInfo->core.client, False); } } /*************************************************************************** * Window controls functions ****************************************************************************/ /* * Window Control Functions: * Each function operates on the selected client list and * performs the necessary action on each client (if any). */ /* * OpenCloseSelnFunc * Toggles Open/Close on all selected clients */ /*ARGSUSED*/ int OpenCloseSelnFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { Client *cli = (Client *)NULL; while (cli = EnumSelections(cli)) { ClientOpenCloseToggle(cli,LastEventTime); } } /* * FullRestoreSizeSelnFunc * Toggles Full/Restore Size on all selected clients */ /*ARGSUSED*/ int FullRestoreSizeSelnFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { Client *cli = (Client *)NULL; while (cli = EnumSelections(cli)) { ClientFullRestoreSizeToggle(cli,LastEventTime); } } /* * BackSelnFunc * Lowers all selected clients/windows to that back of the * window hierarchy. */ /*ARGSUSED*/ int BackSelnFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { Client *cli = (Client *)NULL; while (cli = EnumSelections(cli)) { ClientBack(cli); } } /* * QuitSelnFunc * Quit's all selected clients. */ /*ARGSUSED*/ int QuitSelnFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { Client *cli = (Client *)NULL; while (cli = EnumSelections(cli)) { ClientKill(cli,True); } } /* * StickSelnFunc * Toggles the sticky bit on all selected clients */ /*ARGSUSED*/ int StickSelnFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { Client *cli = (Client *)NULL; while (cli = EnumSelections(cli)) { ClientStickUnstickToggle(cli); } } /*************************************************************************** * DSDM functions ****************************************************************************/ /*ARGSUSED*/ int StartDSDMFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { DragDropStartDSDM(dpy); return 0; } /*ARGSUSED*/ int StopDSDMFunc(dpy, winInfo, menuInfo, idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { DragDropStopDSDM(dpy); return 0; } xview-3.2p1.4/clients/olvwm-4.1/slave.c100644 1750 1750 7613 5515337322 15021 0ustar mbmb/* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ /* ---------------------------------------------------------------------- * slave.c * ---------------------------------------------------------------------*/ #ifdef IDENT #ident "@(#)slave.c 1.5 olvwm version 07 Jan 1994" #endif /* * Based on #ident "@(#)slave.c 26.13 93/06/28 SMI" * */ #include #include #include #include #include #include #include #include "cmdstream.h" #include "error.h" /* ---------------------------------------------------------------------- * Local Data * ---------------------------------------------------------------------*/ typedef struct { char *program; pid_t pid; } SlaveInfo; static SlaveInfo slaveInfo = { "olwmslave", 0 }; /* ---------------------------------------------------------------------- * Local Forward Declarations * ---------------------------------------------------------------------*/ static void SlaveFailure(); static int input[2],output[2]; /* ---------------------------------------------------------------------- * SlaveStart * ---------------------------------------------------------------------*/ pid_t SlaveStart(argv) char **argv; { struct rlimit rlimit; int fd,maxfd; if (pipe(input) == -1) { ErrorWarning("Couldn't create input pipe for olwmslave"); perror("pipe"); SlaveFailure(); return -1; } if (pipe(output) == -1) { ErrorWarning("Couldn't create output pipe for olwmslave"); perror("pipe"); SlaveFailure(); (void)close(input[0]); (void)close(input[1]); return -1; } slaveInfo.pid = fork(); switch (slaveInfo.pid) { case -1: /* error */ (void)close(input[0]); (void)close(input[1]); (void)close(output[0]); (void)close(output[1]); SlaveFailure(); break; case 0: /* Slave */ dup2(input[0],0); dup2(output[1],1); #ifdef RLIMIT_NOFILE if (getrlimit(RLIMIT_NOFILE,&rlimit) == -1) maxfd = 0; else maxfd = rlimit.rlim_cur; #else #if defined (ultrix) || defined (AIXV3) || defined (sun) maxfd = getdtablesize(); #else maxfd = NOFILE; #endif /* defined (ultrix) || defined (AIXV3) */ #endif /* RLIMIT_NOFILE */ for (fd=3; fd #include #include #include #include "i18n.h" #include "ollocale.h" #include "mem.h" #include "st.h" #include "olwm.h" #include "win.h" #include "globals.h" #include "list.h" #include "slots.h" #define PLUSINFINITY 0xfffffff /* REMIND fix this for architecture-independence */ /*************************************************************************** * Local functions ***************************************************************************/ #define ROUNDUP(n,d) (((n)+(d)-1)/(d)) /* #define ROUND(n,d) ((0.5+((float)(n)/(float)(d)))*(int)(d)) */ #define ROUND(n,d) (((((n)%(d))>((d)/2))?(((n)/(d))+1):((n)/(d)))*(d)) #define SLOTOFFSET(ig,ma,mi) (((ma))*(ig)->mislots+(mi)) #define AOCCUPANCY(ig,ma,mi) ((ig->occupancy+SLOTOFFSET((ig),(ma),(mi)))) #define OCCUPANCY(ig,ma,mi) (*(AOCCUPANCY((ig),(ma),(mi)))) #define ISVERT(so) (((so)==SOBottomToTop)||((so)==SOTopToBottom)) #define ISHORZ(so) (((so)==SOLeftToRight)||((so)==SORightToLeft)) #define ISDECREASING(so) (((so)==SORightToLeft)||((so)==SOBottomToTop)) #ifdef NOT static char * sotochar(so) SlotOrder so; { if (so == SOTopToBottom) return ("SOTopToBottom"); if (so == SOBottomToTop) return ("SOBottomToTop"); if (so == SOLeftToRight) return ("SOLeftToRight"); if (so == SORightToLeft) return ("SORightToLeft"); return("SOIllegal"); } #endif #ifdef DEBUG /* dumpocc -- print the occupancy count table to stderr */ static void dumpocc(iconGrid) IconGrid *iconGrid; { int ima, imi; fprintf(stderr,"dump of occupancy table:\n"); for (ima = 0; imamaslots; ima++) for (imi = 0; imimislots; imi++) if (OCCUPANCY(iconGrid,ima,imi)!=0) fprintf(stderr,"%x: occ[%d,%d]/[%d] = %d\n", AOCCUPANCY(iconGrid,ima,imi),ima,imi, SLOTOFFSET(iconGrid,ima,imi), OCCUPANCY(iconGrid,ima,imi)); fprintf(stderr,"end of dump of occupancy table\n"); } #endif /* setMajorMinor -- set two output variables from two input variables, * based on the major/minor settings. */ static void setMajorMinor(iconGrid,r,c,pma,pmi) IconGrid *iconGrid; int r, c, *pma, *pmi; { if (ISVERT(iconGrid->SOmajor)) { *pma = r; *pmi = c; } else { *pma = c; *pmi = r; } } #ifdef NOT /* setAbsolute -- set two output variables from two input variables, based * on major/minor settings; this is the inverse of setMajorMinor. */ static void setAbsolute(iconGrid,ma,mi,pr,pc) IconGrid *iconGrid; int ma, mi; int *pr, *pc; { if (ISVERT(iconGrid->SOmajor)) { *pr = ma; *pc = mi; } else { *pc = ma; *pr = mi; } } #endif /* incrRegion -- increment the occupancy count of a region */ static void incrRegion(iconGrid,slot,val) IconGrid *iconGrid; IconSlot *slot; int val; { int ii,jj; for (ii = slot->ma; (ii>=0)&&(iimaslots)&&(iima+slot->maw); ii++) for (jj = slot->mi; (jj>=0)&&(jjmislots)&&(jjmi+slot->miw); jj++) { if ((OCCUPANCY(iconGrid,ii,jj) += val) < iconGrid->minoccupancy) iconGrid->minoccupancy = OCCUPANCY(iconGrid,ii,jj); } } /* findMinMaxRgn -- find the minimum and maximum occupancies of a region */ static void findMinMaxRgn(iconGrid,ma, mi, nmajor, nminor, pminrgn, pmaxrgn) IconGrid *iconGrid; int ma, mi, nmajor, nminor, *pminrgn, *pmaxrgn; { int min, max; int ii, jj; int occ; min = PLUSINFINITY; max = -1; for (ii=ma; ii max) max = occ; } *pminrgn = min; *pmaxrgn = max; } static IconSlot * incrDynamicSlots(iconGrid,nmajor, nminor) IconGrid *iconGrid; int nmajor, nminor; { int minoccrgn; /* smallest occupancy found for a region of given size */ int minfound, minfoundrgn; /* smallest occupancy found for one slot * and a region respectively; used to reset * search values */ int ma, mi; /* indices in major and minor directions */ int maxrgn, minrgn; /* max and min occupancies in a region */ IconSlot *slot = MemNew(IconSlot); minoccrgn = iconGrid->minoccupancy; slot->positioned = False; for (;;) /* will actually only iterate twice */ { minfound = minfoundrgn = PLUSINFINITY; for (ma = 0; (ma <= iconGrid->maslots-nmajor); ma++) { for (mi = 0; (mi <= iconGrid->mislots-nminor); mi++) { findMinMaxRgn(iconGrid,ma,mi,nmajor,nminor,&minrgn,&maxrgn); if (minrgn < minfound) minfound = minrgn; if (maxrgn < minfoundrgn) minfoundrgn = maxrgn; if (maxrgn <= minoccrgn) { slot->ma = ma; slot->mi = mi; slot->maw = nmajor; slot->miw = nminor; incrRegion(iconGrid,slot,1); return slot; } } } /* no regions available with occupancy <= known minimum */ if (minfound > iconGrid->minoccupancy) /* increase slot minimum */ iconGrid->minoccupancy = minfound; minoccrgn = minfoundrgn; /* increase local region min */ } } /* setIconPos -- given a slot, position the icon frame window accordingly. */ static void setIconPos(win, slot) WinIconFrame *win; IconSlot *slot; { int x,y; IconGrid *iconGrid = win->core.client->scrInfo->iconGrid; if (iconGrid->SOmajor == SOTopToBottom) { y = ICON_GRID_HEIGHT*slot->ma; if (iconGrid->SOminor == SOLeftToRight) { x = ICON_GRID_WIDTH*slot->mi; } else { x = iconGrid->pixhoriz - slot->mi*ICON_GRID_WIDTH - win->core.width; } } else if (iconGrid->SOmajor == SOBottomToTop) { y = iconGrid->pixvert - ICON_GRID_HEIGHT*slot->ma - win->core.height; if (iconGrid->SOminor == SOLeftToRight) { x = ICON_GRID_WIDTH*slot->mi; } else { x = iconGrid->pixhoriz - slot->mi*ICON_GRID_WIDTH - win->core.width; } } else if (iconGrid->SOmajor == SOLeftToRight) { x = ICON_GRID_WIDTH*slot->ma; if (iconGrid->SOminor == SOTopToBottom) { y = ICON_GRID_HEIGHT*slot->mi; } else { y = iconGrid->pixvert - slot->mi*ICON_GRID_HEIGHT - win->core.height; } } else if (iconGrid->SOmajor == SORightToLeft) { x = iconGrid->pixhoriz - ICON_GRID_WIDTH*slot->ma - win->core.width; if (iconGrid->SOminor == SOTopToBottom) { y = ICON_GRID_HEIGHT*slot->mi; } else { y = iconGrid->pixvert - slot->mi*ICON_GRID_HEIGHT - win->core.height; } } (WinFunc(win,core.newposfunc))(win, x, y); } /* slotsIntersect -- check to see if the two slots intersect. */ static Bool slotsIntersect(slot1,slot2) IconSlot *slot1, *slot2; { if ((slot1->ma > (slot2->ma + slot2->maw)) || (slot1->mi > (slot2->mi + slot2->miw)) || (slot2->ma > (slot1->ma + slot1->maw)) || (slot2->mi > (slot1->mi + slot1->miw))) return False; else return True; } /* * bounceOverlappingIcons -- given an icon and its slot(s), move any icons that * in those slots to new positions. */ static void bounceOverlappingIcons(win, slot) WinIconFrame *win; IconSlot *slot; { IconGrid *iconGrid = win->core.client->scrInfo->iconGrid; List *l = iconGrid->iconList; List *move = NULL_LIST; WinIconFrame *w; /* First, make a list of the icons that need to move * Must do this in two steps, since the iconList will change when we * start moving icons */ for (w = ListEnum(&l); w != NULL; w = ListEnum(&l)) { /* if the slots overlap, move to new one */ if (w != win && slotsIntersect(w->iconslot, slot)) move = ListCons(w,move); } l = move; for (w = ListEnum(&l); w != NULL; w = ListEnum(&l)) { /* free its slot */ SlotFree(w); /* set this as auto-positioned now */ w->fManuallyPositioned = False; /* allocate a new slot for it */ SlotAlloc(w, False, GRV.FSnapToGrid); (WinFunc(w,core.setconfigfunc))(w->core.client->dpy, w); } ListDestroy(move); } /* incrPositionedSlots -- an icon has been explicitly positioned; create an * iconslot record and increment the occupancy count of the affected slots. */ static IconSlot * incrPositionedSlots(iconGrid,x,y,w,h,snaptogrid) IconGrid *iconGrid; int x,y,w,h; Bool snaptogrid; { IconSlot *slot = MemNew(IconSlot); #define ROUNDPOS(v,w) (snaptogrid?ROUND((v),(w)):(v)) #define ROUNDIF(v,w) (ROUNDPOS(v,w)/(w)) #define ROUNDDIM(p,s,w) (ROUNDUP(((ROUNDPOS(p,w))%(w))+(s),(w))) if (iconGrid->SOmajor == SOTopToBottom) { slot->ma = ROUNDIF(y,ICON_GRID_HEIGHT); slot->maw = ROUNDDIM(y,h,ICON_GRID_HEIGHT); if (iconGrid->SOminor == SOLeftToRight) { slot->mi = ROUNDIF(x,ICON_GRID_WIDTH); slot->miw = ROUNDDIM(x,w,ICON_GRID_WIDTH); } else { slot->mi = ROUNDIF(iconGrid->pixhoriz-(x+w),ICON_GRID_WIDTH); slot->miw = ROUNDDIM(iconGrid->pixhoriz-(x+w),w,ICON_GRID_WIDTH); } } else if (iconGrid->SOmajor == SOBottomToTop) { slot->ma = ROUNDIF(iconGrid->pixvert-(y+h),ICON_GRID_HEIGHT); slot->maw = ROUNDDIM(iconGrid->pixvert-(y+h),h,ICON_GRID_HEIGHT); slot->miw = w; if (iconGrid->SOminor == SOLeftToRight) { slot->mi = ROUNDIF(x,ICON_GRID_WIDTH); slot->miw = ROUNDDIM(x,w,ICON_GRID_WIDTH); } else { slot->mi = ROUNDIF(iconGrid->pixhoriz-(x+w),ICON_GRID_WIDTH); slot->miw = ROUNDDIM(iconGrid->pixhoriz-(x+w),w,ICON_GRID_WIDTH); } } else if (iconGrid->SOmajor == SOLeftToRight) { slot->ma = ROUNDIF(x,ICON_GRID_WIDTH); slot->maw = ROUNDDIM(x,w,ICON_GRID_WIDTH); if (iconGrid->SOminor == SOTopToBottom) { slot->mi = ROUNDIF(y,ICON_GRID_HEIGHT); slot->miw = ROUNDDIM(y,h,ICON_GRID_HEIGHT); } else { slot->mi = ROUNDIF(iconGrid->pixvert-(y+h),ICON_GRID_HEIGHT); slot->miw = ROUNDDIM(iconGrid->pixvert-(y+h),h,ICON_GRID_HEIGHT); } } else if (iconGrid->SOmajor == SORightToLeft) { slot->ma = ROUNDIF(iconGrid->pixhoriz-(x+w),ICON_GRID_WIDTH); slot->maw = ROUNDDIM(iconGrid->pixhoriz-(x+w),w,ICON_GRID_WIDTH); if (iconGrid->SOminor == SOTopToBottom) { slot->mi = ROUNDIF(y,ICON_GRID_HEIGHT); slot->miw = ROUNDDIM(y,h,ICON_GRID_HEIGHT); } else { slot->mi = ROUNDIF(iconGrid->pixvert-(y+h),ICON_GRID_HEIGHT); slot->miw = ROUNDDIM(iconGrid->pixvert-(y+h),h,ICON_GRID_HEIGHT); } } if (slot->ma < 0) slot->ma = 0; if (slot->ma >= iconGrid->maslots) slot->ma = iconGrid->maslots-1; if (slot->mi < 0) slot->mi = 0; if (slot->mi >= iconGrid->mislots) slot->mi = iconGrid->mislots-1; slot->positioned = True; incrRegion(iconGrid,slot,1); return slot; } /*************************************************************************** * Global functions ***************************************************************************/ /* * SlotInit -- */ IconGrid * SlotInit(dpy,screenno) Display *dpy; int screenno; { IconGrid *iconGrid; int occLen; iconGrid = MemNew(IconGrid); iconGrid->iconList = NULL_LIST; iconGrid->pixhoriz = DisplayWidth(dpy,screenno); iconGrid->pixvert = DisplayHeight(dpy,screenno); iconGrid->slotshoriz = iconGrid->pixhoriz/ICON_GRID_WIDTH; iconGrid->slotsvert = iconGrid->pixvert/ICON_GRID_HEIGHT; occLen = iconGrid->slotshoriz * iconGrid->slotsvert * sizeof(int); iconGrid->occupancy = MemAlloc(occLen); iconGrid->minoccupancy = 0; SlotSetLocations(dpy,iconGrid); return iconGrid; } /* SlotAlloc - given a sized and possibly positioned icon window, allocate * the appropriate slots for it. If the window is positioned, * True should be passed for the second parameter, and the x,y * position will be honoured. If the window is not positioned, it * will be positioned by this function to the appropriate slots(s). * If snaptogrid is true and positioned is true, the given position is * modified so that the upper left corner of the icon is at the closest * icon grid point. Modifies the icon structure to assign it the icon * slot. * Returns an IconSlot pointer if successful; NULL otherwise. * * If the window is not positioned, the x and y coordinates are used as * offsets to the position icon; this allows particular icons to be located` * in a particular logical screen within the virtual desktop. */ struct _iconSlot * SlotAlloc(winicon, positioned, snaptogrid) WinIconFrame *winicon; Bool positioned; Bool snaptogrid; { int nhoriz, nvert; /* number of slots occupied, horizontally & vertically */ int nmajor, nminor; /* number of slots occupied, in major & minor directions */ IconSlot *slot; IconGrid *iconGrid = winicon->core.client->scrInfo->iconGrid; int scr_x, scr_y; int dw, dh; dw = DisplayWidth(winicon->core.client->dpy, winicon->core.client->screen); dh = DisplayHeight(winicon->core.client->dpy, winicon->core.client->screen); scr_x = (winicon->core.x + ICON_HORZBORDER) / dw; scr_y = (winicon->core.y + ICON_VERTBORDER) / dh; if (winicon->core.x < -ICON_HORZBORDER) scr_x--; if (winicon->core.y < -ICON_VERTBORDER) scr_y--; winicon->core.x -= scr_x * dw; winicon->core.y -= scr_y * dh; iconGrid->iconList = ListCons(winicon, iconGrid->iconList); if (positioned) { slot = incrPositionedSlots(iconGrid, winicon->core.x, winicon->core.y, winicon->core.width, winicon->core.height, snaptogrid); winicon->iconslot = slot; if (snaptogrid) setIconPos(winicon, slot); else (WinFunc(winicon,core.newposfunc))(winicon,winicon->core.x, winicon->core.y); /* any icons that are covered by this icon shall be bounced to new, open icon slots. However, don't bother trying if there are no open spots! */ if (GRV.UniqueIconSlots && (iconGrid->minoccupancy == 0)) bounceOverlappingIcons(winicon, slot); } else { nhoriz = ROUNDUP(winicon->core.width, ICON_GRID_WIDTH); nvert = ROUNDUP(winicon->core.height, ICON_GRID_HEIGHT); setMajorMinor(iconGrid, nvert, nhoriz, &nmajor, &nminor); slot = incrDynamicSlots(iconGrid, nmajor, nminor); winicon->iconslot = slot; setIconPos(winicon,slot); } if (scr_x || scr_y) { (WinFunc(winicon,core.newposfunc))(winicon, winicon->core.x + scr_x * dw, winicon->core.y + scr_y * dh); } #ifdef DEBUG dumpocc(iconGrid); #endif return slot; } /* SlotFree -- An icon is going away, so its references to slots should also go * away. Returns True iff the free was successful. * Note that if this code is changed, the similar code in SlotSetLocations * may need to be changed also. */ SlotFree(winicon) WinIconFrame *winicon; { IconGrid *iconGrid = winicon->core.client->scrInfo->iconGrid; if (winicon->iconslot == NULL) { return; } incrRegion(iconGrid,winicon->iconslot,-1); MemFree(winicon->iconslot); winicon->iconslot = NULL; iconGrid->iconList = ListDestroyCellByValue(winicon, iconGrid->iconList); #ifdef DEBUG dumpocc(iconGrid); #endif } /* sets the order in which slots are allocated for icons which are * not explicitly positioned. The order is gotten from the global * resource vector. * For example, the AlongBottom order is expressed as * major BottomToTop, minor LeftToRight. The major and minor orders * cannot be both vertical or horizontal. Any icons which were * automatically positioned are repositioned to equivalent positions * in the new order. */ /*ARGSUSED*/ SlotSetLocations(dpy,iconGrid) Display *dpy; IconGrid *iconGrid; { List *lauto, *lpos; List **l; WinIconFrame *win; int ima, imi; /* set up the new order of things */ switch (GRV.IconPlacement) { case AlongTop: iconGrid->SOmajor = SOTopToBottom; iconGrid->SOminor = SOLeftToRight; break; case AlongTopRL: iconGrid->SOmajor = SOTopToBottom; iconGrid->SOminor = SORightToLeft; break; case AlongBottom: iconGrid->SOmajor = SOBottomToTop; iconGrid->SOminor = SOLeftToRight; break; case AlongBottomRL: iconGrid->SOmajor = SOBottomToTop; iconGrid->SOminor = SORightToLeft; break; case AlongLeft: iconGrid->SOmajor = SOLeftToRight; iconGrid->SOminor = SOTopToBottom; break; case AlongLeftBT: iconGrid->SOmajor = SOLeftToRight; iconGrid->SOminor = SOBottomToTop; break; case AlongRight: iconGrid->SOmajor = SORightToLeft; iconGrid->SOminor = SOTopToBottom; break; case AlongRightBT: iconGrid->SOmajor = SORightToLeft; iconGrid->SOminor = SOBottomToTop; break; } setMajorMinor(iconGrid,iconGrid->slotsvert,iconGrid->slotshoriz, &(iconGrid->maslots),&(iconGrid->mislots)); if (iconGrid->iconList == NULL_LIST) { for (ima = 0; imamaslots; ima++) for (imi = 0; imimislots; imi++) OCCUPANCY(iconGrid,ima,imi)=0; return; } /* partition existing icons */ lauto = NULL_LIST; lpos = NULL_LIST; for (l = &iconGrid->iconList; *l != NULL; l = &((*l)->next)) { win = (*l)->value; if (!win->iconslot->positioned) { lauto = ListCons(win,lauto); } else { lpos = ListCons(win,lpos); } /* this is the basics of a SlotFree */ MemFree(win->iconslot); win->iconslot = NULL; } ListDestroy(iconGrid->iconList); iconGrid->iconList = NULL_LIST; for (ima = 0; imamaslots; ima++) for (imi = 0; imimislots; imi++) OCCUPANCY(iconGrid,ima,imi)=0; /* place positioned icons */ for (l = &lpos; *l != NULL; l = &((*l)->next)) { win = (*l)->value; SlotAlloc(win,True,GRV.FSnapToGrid); (WinFunc(win,core.setconfigfunc))(win->core.client->dpy,win); } ListDestroy(lpos); /* place auto-positioned icons */ for (l = &lauto; *l != NULL; l = &((*l)->next)) { win = (*l)->value; /* only place iconified windows if FreeIconSlots is in effect */ if (win->core.client->wmState == IconicState || !GRV.FreeIconSlots){ SlotAlloc(win,False,GRV.FSnapToGrid); (WinFunc(win,core.setconfigfunc))(win->core.client->dpy,win); } } ListDestroy(lauto); } xview-3.2p1.4/clients/olvwm-4.1/st.c100644 1750 1750 20061 5515337322 14345 0ustar mbmb/* This is a general purpose hash table package written by Peter Moore @ UCB. */ #ifdef IDENT #ident "@(#)st.c 1.2 olvwm version 25 Nov 1992" #endif /* * Based on #ident "@(#)st.c 26.6 91/09/14 SMI" * */ #include #include "st.h" #include "mem.h" #define max(a,b) ((a) > (b) ? (a) : (b)) #define nil(type) ((type *) 0) #define alloc(type) (type *)MemAlloc((unsigned)sizeof(type)) #define Calloc(n,s) (char *)MemCalloc((n),(s)) /* * DEFAULT_MAX_DENSITY is the default for the largest we allow the * average number of items per bin before increasing the number of * bins * * DEFAULT_INIT_TABLE_SIZE is the default for the number of bins * allocated initially * * DEFAULT_GROW_FACTOR is the amount the hash table is expanded after * the density has reached max_density */ /*#define EQUAL(func, x, y) \ ((func == ST_NUMCMP) ? ((x) == (y)) : ((*func)((x), (y)) == 0))*/ #define EQUAL(func, x, y) \ ((*func)((x), (y)) == 0) #define do_hash(key, table) (*table->hash)(key, table->num_bins) /*#define do_hash(key, table)\ ((table->hash == ST_PTRHASH) ? (((int) (key) >> 2) % table->num_bins) :\ (table->hash == ST_NUMHASH) ? ((int) (key) % table->num_bins) :\ (*table->hash)((key), table->num_bins))*/ st_table *st_init_table_with_params(compare, hash, size, density, grow_factor, reorder_flag) int (*compare)(); int (*hash)(); int size; int density; double grow_factor; int reorder_flag; { st_table *new; new = alloc(st_table); new->compare = compare; new->hash = hash; new->num_entries = 0; new->max_density = density; new->grow_factor = grow_factor; new->reorder_flag = reorder_flag; new->num_bins = size; new->bins = (st_table_entry **) Calloc((unsigned)size, sizeof(st_table_entry *)); return new; } st_table *st_init_table(compare, hash) int (*compare)(); int (*hash)(); { return st_init_table_with_params(compare, hash, ST_DEFAULT_INIT_TABLE_SIZE, ST_DEFAULT_MAX_DENSITY, ST_DEFAULT_GROW_FACTOR, ST_DEFAULT_REORDER_FLAG); } st_free_table(table) st_table *table; { register st_table_entry *ptr, *next; int i; for(i = 0; i < table->num_bins ; i++) { ptr = table->bins[i]; while (ptr != nil(st_table_entry)) { next = ptr->next; free((char *) ptr); ptr = next; } } free((char *) table->bins); free((char *) table); } #define PTR_NOT_EQUAL(table, ptr, key)\ (ptr != nil(st_table_entry) && !EQUAL(table->compare, key, (ptr)->key)) #define FIND_ENTRY(table, ptr, hashval)\ ptr = (table)->bins[hashval];\ if (PTR_NOT_EQUAL(table, ptr, key)) {\ while (PTR_NOT_EQUAL(table, ptr->next, key)) {\ ptr = ptr->next;\ }\ if (ptr->next != nil(st_table_entry) && (table)->reorder_flag) {\ st_table_entry *_tmp = (ptr)->next;\ (ptr)->next = (ptr)->next->next;\ _tmp->next = (table)->bins[hashval];\ (table)->bins[hashval] = _tmp;\ ptr = _tmp;\ } else {\ ptr = ptr->next;\ }\ } st_lookup(table, key, value) st_table *table; register char *key; char **value; { int hash_val; register st_table_entry *ptr; hash_val = do_hash(key, table); FIND_ENTRY(table, ptr, hash_val); if (ptr == nil(st_table_entry)) { return 0; } else { if (value != nil(char *)) *value = ptr->record; return 1; } } #define ADD_DIRECT(table, key, value, hash_val, new)\ {\ if (table->num_entries/table->num_bins > table->max_density) {\ rehash(table);\ hash_val = do_hash(key,table);\ }\ \ new = alloc(st_table_entry);\ \ new->key = key;\ new->record = value;\ new->next = table->bins[hash_val];\ table->bins[hash_val] = new;\ table->num_entries++;\ } st_insert(table, key, value) register st_table *table; register char *key; char *value; { int hash_val; st_table_entry *new; register st_table_entry *ptr; hash_val = do_hash(key, table); FIND_ENTRY(table, ptr, hash_val); if (ptr == nil(st_table_entry)) { ADD_DIRECT(table,key,value,hash_val,new); return 0; } else { ptr->record = value; return 1; } } st_add_direct(table, key, value) st_table *table; char *key; char *value; { int hash_val; st_table_entry *new; hash_val = do_hash(key, table); ADD_DIRECT(table, key, value, hash_val, new); } st_find_or_add(table, key, slot) st_table *table; char *key; char ***slot; { int hash_val; st_table_entry *new, *ptr; hash_val = do_hash(key, table); FIND_ENTRY(table, ptr, hash_val); if (ptr == nil(st_table_entry)) { ADD_DIRECT(table, key, (char *)0, hash_val, new) if (slot != nil(char **)) *slot = &new->record; return 0; } else { if (slot != nil(char **)) *slot = &ptr->record; return 1; } } static rehash(table) register st_table *table; { register st_table_entry *ptr, *next, **old_bins = table->bins; int i, old_num_bins = table->num_bins, hash_val; table->num_bins = table->grow_factor*old_num_bins; if (table->num_bins%2 == 0) { table->num_bins += 1; } table->num_entries = 0; table->bins = (st_table_entry **) Calloc((unsigned) table->num_bins, sizeof(st_table_entry *)); for(i = 0; i < old_num_bins ; i++) { ptr = old_bins[i]; while (ptr != nil(st_table_entry)) { next = ptr->next; hash_val = do_hash(ptr->key, table); ptr->next = table->bins[hash_val]; table->bins[hash_val] = ptr; table->num_entries++; ptr = next; } } free((char *) old_bins); } st_table *st_copy(old_table) st_table *old_table; { st_table *new_table; st_table_entry *ptr, *new; int i, num_bins = old_table->num_bins; new_table = alloc(st_table); if (new_table == nil(st_table)) { return nil(st_table); } *new_table = *old_table; new_table->bins = (st_table_entry **) Calloc((unsigned) num_bins, sizeof(st_table_entry *)); if (new_table->bins == nil(st_table_entry *)) { free((char *) new_table); return nil(st_table); } for(i = 0; i < num_bins ; i++) { new_table->bins[i] = nil(st_table_entry); ptr = old_table->bins[i]; while (ptr != nil(st_table_entry)) { new = alloc(st_table_entry); if (new == nil(st_table_entry)) { free((char *) new_table->bins); free((char *) new_table); return nil(st_table); } *new = *ptr; new->next = new_table->bins[i]; new_table->bins[i] = new; ptr = ptr->next; } } return new_table; } st_delete(table, key, value) register st_table *table; register char **key; char **value; { int hash_val; st_table_entry *tmp; register st_table_entry *ptr; hash_val = do_hash(*key, table); ptr = table->bins[hash_val]; if (ptr == nil(st_table_entry)) { *value = nil(char); return 0; } if (EQUAL(table->compare, *key, ptr->key)) { table->bins[hash_val] = ptr->next; table->num_entries--; if (value != nil(char *)) *value = ptr->record; *key = ptr->key; free((char *) ptr); return 1; } for(; ptr->next != nil(st_table_entry); ptr = ptr->next) { if (EQUAL(table->compare, ptr->next->key, *key)) { tmp = ptr->next; ptr->next = ptr->next->next; if (value != nil(char *)) *value = tmp->record; *key = tmp->key; free((char *) tmp); return 1; } } return 0; } st_foreach(table, func, arg) st_table *table; enum st_retval (*func)(); char *arg; { st_table_entry *ptr, *last, *tmp; enum st_retval retval; int i; for(i = 0; i < table->num_bins; i++) { last = nil(st_table_entry); for(ptr = table->bins[i]; ptr != nil(st_table_entry);) { retval = (*func)(ptr->key, ptr->record, arg); switch (retval) { case ST_CONTINUE: last = ptr; ptr = ptr->next; break; case ST_STOP: return; case ST_DELETE: tmp = ptr; if (last == nil(st_table_entry)) { table->bins[i] = ptr->next; } else { last->next = ptr->next; } ptr = ptr->next; free((char *) tmp); } } } } st_strhash(string, modulus) register char *string; int modulus; { register int val = 0; register int c; while ((c = *string++) != '\0') { val = val*997 + c; } return ((val < 0) ? -val : val)%modulus; } xview-3.2p1.4/clients/olvwm-4.1/states.c100644 1750 1750 133225 6241361455 15252 0ustar mbmb/* (c) Copyright 1989, 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ /* states.c - functions relating to changes in client state * (Normal, Iconic, Withdrawn) */ #ifdef IDENT #ident "@(#)states.c 1.7 olvwm version 09 Feb 1994" #endif /* * Based on #ident "@(#)states.c 26.66 93/06/28 SMI" * */ #include #include #ifdef __STDC__ #include #endif #include #include #include #include #include #include "i18n.h" #include "ollocale.h" #include "mem.h" #include "olwm.h" #include "win.h" #include "group.h" #include "globals.h" #include "properties.h" #include "virtual.h" /*************************************************************************** * global data ***************************************************************************/ extern Atom AtomWMClass; extern Atom AtomDecorAdd; extern Atom AtomDecorClose; extern Atom AtomDecorDel; extern Atom AtomDecorFooter; extern Atom AtomDecorHeader; extern Atom AtomDecorIconName; #ifdef OW_I18N_L4 extern Atom AtomDecorIMStatus; #endif extern Atom AtomDecorPin; extern Atom AtomDecorResize; extern Atom AtomDeleteWindow; extern Atom AtomMenuFull; extern Atom AtomMenuLimited; extern Atom AtomNone; extern Atom AtomPinIn; extern Atom AtomPinOut; extern Atom AtomProtocols; extern Atom AtomSaveYourself; extern Atom AtomTakeFocus; extern Atom AtomWinAttr; extern Atom AtomWTBase; extern Atom AtomWTCmd; extern Atom AtomWTHelp; extern Atom AtomWTNotice; extern Atom AtomWTOther; extern int WinDrawFunc(); extern void IconPaneSetPixmap(); extern void IconPaneSetMask(); static void checkGroupBinding(); /*************************************************************************** * private data ***************************************************************************/ /* sanity checks for getting stuff out of hints */ #define IsCard16(x) ((x) == ((unsigned short)(x)) && (x) > 0 ) #define IsInt16(x) ((x) == ((short) (x))) static WMDecorations BaseWindow = { WMDecorationCloseButton | WMDecorationResizeable | WMDecorationHeader | WMDecorationIconName, MENU_FULL, 0, PIN_IN, 0 }; static WMDecorations CmdWindow = { WMDecorationPushPin | WMDecorationResizeable | WMDecorationHeader | WMDecorationIconName, MENU_LIMITED, 0, PIN_IN, 0 }; static WMDecorations NoticeWindow = { WMDecorationIconName, MENU_NONE, 0, PIN_IN, 0 }; static WMDecorations HelpWindow = { WMDecorationPushPin | WMDecorationHeader | WMDecorationIconName | WMDecorationWarpToPin, MENU_LIMITED, 0, PIN_IN, 0 }; static WMDecorations OtherWindow = { WMDecorationIconName, MENU_NONE, 0, PIN_IN, 0 }; static WMDecorations TransientWindow = { WMDecorationResizeable | WMDecorationIconName, MENU_LIMITED, 0, PIN_IN, 0 }; static WMDecorations MinimalWindow = { WMDecorationResizeable | WMDecorationIconName, MENU_FULL, 0, PIN_IN, 0 }; static WMDecorations NoDecors = { WMNoDecor, MENU_NONE, 0, PIN_OUT, 0 }; typedef struct { char *class, *instance, *name; } minimalclosure; /*************************************************************************** * private functions ***************************************************************************/ /* * Determine FocusMode from wmHints and protocols */ static FocusMode focusModeFromHintsProtocols(wmHints,protocols) XWMHints *wmHints; int protocols; { FocusMode focusMode; if (wmHints && wmHints->input) { if (protocols & TAKE_FOCUS) focusMode = LocallyActive; else focusMode = Passive; } else { /* wmHints->input == False */ if (protocols & TAKE_FOCUS) focusMode = GloballyActive; else focusMode = NoInput; } return focusMode; } /* matchInstClass -- run through the list of names to be minimally * decorated, and see if this window's class or instance match * any. * * In olvwm, we check the name as well as class/instance */ static Bool matchInstClass(str,mc) char *str; minimalclosure *mc; { if ((mc->class != NULL) && (!strcmp(str, mc->class))) return True; if ((mc->instance != NULL) && (!strcmp(str, mc->instance))) return True; if ((mc->name != NULL) && (!strncmp(str, mc->name, strlen(str)))) return True; return False; } /* * getOlWinDecors - given the window attributes and decoration add/delete * requests, determine what kind of window (according to the OpenLook * kinds of windows) the client represents, and determine what sort of * decorations are appropriate. */ WMDecorations * getOLWinDecors(dpy, win, transient, cli) Display *dpy; Window win; Bool transient; Client *cli; { WMDecorations *decors; minimalclosure mc; XWMHints *wmHints = cli->wmHints; OLWinAttr winAttrs; Bool oldVersion; int decorFlags; decors = MemNew(WMDecorations); /* * REMIND: there is no way for a program to * specify the default item, * so this always initialized to zero. */ decors->def_item = 0; mc.class = cli->wmClass; mc.instance = cli->wmInstance; if (!XFetchName(dpy, win, &mc.name)) mc.name = NULL; if (ListApply(GRV.NoDecors, matchInstClass, &mc) != NULL) { *decors = NoDecors; goto out; } #ifdef SHAPE if (cli->isShaped) { *decors = MinimalWindow; goto out; } #endif oldVersion = False; /* * If the _OL_WIN_ATTR property is not present then make the * window into a base window unless is a transient window. */ if (!PropGetOLWinAttr(dpy,win,&winAttrs,&oldVersion)) { if (transient) { *decors = TransientWindow; if (GRV.TransientsTitled) decors->flags |= WMDecorationHeader; } else { *decors = BaseWindow; } /* * Else we do have that property; so interpret it */ } else { /* * Choose the decor from win_type */ if ((winAttrs.flags & WA_WINTYPE) == 0) { *decors = BaseWindow; } else if (winAttrs.win_type == AtomWTBase) { *decors = BaseWindow; } else if (winAttrs.win_type == AtomWTCmd) { *decors = CmdWindow; } else if (winAttrs.win_type == AtomWTHelp) { *decors = HelpWindow; } else if (winAttrs.win_type == AtomWTNotice) { *decors = NoticeWindow; } else if (winAttrs.win_type == AtomWTOther) { *decors = OtherWindow; } /* * Override the decor/menu_type if specified */ if (winAttrs.flags & WA_MENUTYPE) { if (winAttrs.menu_type == AtomMenuFull) decors->menu_type = MENU_FULL; else if (winAttrs.menu_type == AtomMenuLimited) decors->menu_type = MENU_LIMITED; else if (winAttrs.menu_type == AtomNone) decors->menu_type = MENU_NONE; } /* * Backward compatibility. If we had a old/short attribute * property, and the client specified an icon window, we're * probably dealing with an old XView client. These clients * assume the window manager doesn't put the icon name in * the icon, so they paint it into the icon window itself. * Turn off the painting of the icon name for icons of * these windows. */ if (oldVersion && wmHints && (wmHints->flags & IconWindowHint)) decors->flags &= ~WMDecorationIconName; /* * Set cancel if something specified */ if (winAttrs.flags & WA_CANCEL) decors->cancel = (winAttrs.cancel != 0); /* * Set the pin state */ if (winAttrs.flags & WA_PINSTATE) { decors->pushpin_initial_state = winAttrs.pin_initial_state; } else { decors->pushpin_initial_state = PIN_OUT; } #ifdef OW_I18N_L4 /* check if need to decor the IM status */ if (oldVersion) { } #endif } /* * Apply DecorAdd flags */ if (PropGetOLDecorAdd(dpy,win,&decorFlags)) { decors->flags |= decorFlags; } /* * Apply DecorDel flags */ if (PropGetOLDecorDel(dpy,win,&decorFlags)) { decors->flags &= ~decorFlags; } /* if the instance or class strings match any of the names * listed for minimal decoration, only provide resize corners * and a menu. */ if (ListApply(GRV.Minimals,matchInstClass,&mc) != NULL) { decors->flags &= ~WMDecorationHeader; } /* * Below, apply constraints to ensure that decorations are * consistent. */ /* * If the window has no header it can't have any header * decorations; ie. pushpin or a close button. */ if (!(decors->flags & WMDecorationHeader)) { decors->flags &= ~(WMDecorationHeaderDeco); } /* * If the window wants both a pushpin and a close button it * only can have a pushpin. */ if ((decors->flags & WMDecorationCloseButton) && (decors->flags & WMDecorationPushPin)) decors->flags &= ~(WMDecorationCloseButton); /* * Don't warp to the pin if there's no pin. */ if (!(decors->flags & WMDecorationPushPin)) decors->flags &= ~WMDecorationWarpToPin; out: if (mc.name) XFree(mc.name); return decors; } int stateGetScreen(cli) Client *cli; { int xscreen, yscreen; xscreen = (-cli->scrInfo->vdm->offsetX / DisplayWidth(cli->dpy, cli->screen)); yscreen = (-cli->scrInfo->vdm->offsetY / DisplayHeight(cli->dpy, cli->screen)); return(xscreen + (yscreen * cli->scrInfo->vdm->columns) + 1); } /* * clientSpecifiedPosition * * Return an indication of whether the client has specified a position using * its hints. This is true in the typical case if either the USPosition or * PPosition flags are set. However, if the PPositionCompat option is on, the * PPosition flag is ignored if the specified position is at or above and to * the left of (1,1). * * The point of PPositionCompat is that many old clients (X11R3 and prior) * always set the PPosition flag, even when they had no useful position to * request. When this occurred, the requested position was almost always * (1,1) or thereabouts. */ static Bool clientSpecifiedPosition(normHints, paneAttr) XSizeHints *normHints; XWindowAttributes *paneAttr; { return (normHints->flags & USPosition) || ((normHints->flags & PPosition) && !(GRV.PPositionCompat && paneAttr->x <= 1 && paneAttr->y <= 1)); } /* * Return an indication of whether this frame would be visible on the screen * if it were mapped at the given location. Visibility is defined as having * at least one resize-corner width (or height) on the screen. */ static Bool frameOnScreen(winFrame, scrInfo, x, y) WinPaneFrame *winFrame; ScreenInfo *scrInfo; int x, y; { int dx, dy; int sw = DisplayWidth(scrInfo->dpy, scrInfo->screen); int sh = DisplayHeight(scrInfo->dpy, scrInfo->screen); /* REMIND */ extern int Resize_width, Resize_height; extern void FrameGetGravityOffset(); FrameGetGravityOffset(winFrame, &dx, &dy); x -= dx; y -= dy; return (x + Resize_width <= sw && y + Resize_height <= sh && x + (int) winFrame->core.width >= Resize_width && y + (int) winFrame->core.height >= Resize_height); } /* * calcPosition * * Calculate the next position to place a new window. This function places * all new windows on the diagonal and makes sure that there is enough room on * the screen for the new window's size passed in w and h. */ static void calcPosition(dpy, screen, attrs, frame) Display *dpy; int screen; XWindowAttributes *attrs; WinPaneFrame *frame; { int stepValue; ScreenInfo *scrInfo; if ((scrInfo = GetScrInfoOfScreen(screen)) == NULL) { attrs->x = attrs->y = 0; return; } /* if the height of the current window is too large ... */ if ((scrInfo->framepos + frame->core.height > DisplayHeight(dpy, screen)) || (scrInfo->framepos + frame->core.width > DisplayWidth(dpy, screen))) { scrInfo->framepos = 0; } /* REMIND this should really be based on the header height */ stepValue = 30; /* we will return the current position */ attrs->x = attrs->y = scrInfo->framepos; /* calculate the next return value */ scrInfo->framepos = scrInfo->framepos + stepValue; if ((scrInfo->framepos > DisplayWidth(dpy, screen)) || (scrInfo->framepos > DisplayHeight(dpy, screen))) { scrInfo->framepos = 0; } } /* * iconifyOne -- iconify one client to IconicState from NormalState */ static void * iconifyOne(cli, winIcon) Client *cli; WinGeneric *winIcon; { if (cli->groupmask == GROUP_DEPENDENT) RemoveSelection(cli); else DrawIconToWindowLines(cli->dpy, winIcon, cli->framewin); UnmapWindow(cli->framewin); XUnmapWindow(cli->dpy, PANEWINOFCLIENT(cli)); cli->framewin->fcore.panewin->pcore.pendingUnmaps++; ClientSetWMState(cli, IconicState); return NULL; } /* deiconifyOne -- deiconify one client to NormalState from IconicState */ static void * deiconifyOne(cli, winIcon, raise) Client *cli; WinGeneric *winIcon; Bool raise; { if (cli->groupmask != GROUP_DEPENDENT) DrawIconToWindowLines(cli->dpy, winIcon, cli->framewin); if (raise) RaiseWindow(cli->framewin); MapWindow(cli->framewin); XMapRaised(cli->dpy, PANEWINOFCLIENT(cli)); ClientSetWMState(cli,NormalState); return NULL; } /* * markFrame * * Marks a client's frame window with a given value. Suitable for calling by * ListApply or GroupApply. */ static void * markFrame(cli, value) Client *cli; int value; { if (cli->framewin != NULL) cli->framewin->core.tag = value; return NULL; } /* * unmarkAllFrames -- Clear the tag field of the frame window of every client. */ static void * unmarkAllFrames() { List *l = ActiveClientList; Client *tc; for (tc = ListEnum(&l); tc != NULL; tc = ListEnum(&l)) markFrame(tc, 0); return NULL; } #ifdef DEBUG static void printClientList() { List *l = ActiveClientList; Client *tc; for (tc = ListEnum(&l); tc != NULL; tc = ListEnum(&l)) printf("0x%x\n", (unsigned int) tc); fflush(stdout); } static void * printGroupMember(cli, value) Client *cli; int value; { printf("0x%x\n", (unsigned int) cli); return NULL; } static void printGroupList(id) unsigned long id; { GroupApply(id, printGroupMember, 0, GROUP_LEADER | GROUP_DEPENDENT | GROUP_INDEPENDENT); fflush(stdout); } #endif /* DEBUG */ /* * deiconifyGroup * * Deiconify a window group, preserving stacking order. Mark all the frames * that are to be deiconified, then query the server for all children-of-root. * Walk backward through this array (i.e. from top to bottom). For each group * member found, stack it just below the previous one (raise the first one to * the top) and deiconify it. Finally, unmark all the frames in the group. * Note: this algorithm depends on having the stacking order of windows * preserved when the group is iconified. */ static void deiconifyGroup(cli, winIcon) Client *cli; WinIconFrame* winIcon; { Window root, parent; Window *children; Window prev = None; unsigned int nchildren; int i; WinGeneric *wi; XWindowChanges xwc; unmarkAllFrames(); if (cli->groupmask == GROUP_LEADER) { GroupApply(cli->groupid, markFrame, 1, GROUP_LEADER | GROUP_DEPENDENT); } else if (cli->groupmask == GROUP_INDEPENDENT) { markFrame(cli, 1); GroupApply(PANEWINOFCLIENT(cli), markFrame, 1, GROUP_DEPENDENT); } (void) XQueryTree(cli->dpy, cli->scrInfo->rootid, &root, &parent, &children, &nchildren); xwc.stack_mode = Below; for (i=nchildren-1; i>=0; --i) { wi = WIGetInfo(children[i]); if (wi != NULL && wi->core.tag == 1) { if (prev == None) { RaiseWindow(wi); } else { xwc.sibling = prev; ConfigureWindow(cli->dpy, wi, CWSibling|CWStackMode, &xwc); } prev = children[i]; deiconifyOne(wi->core.client, (WinGeneric *) winIcon, False); } } unmarkAllFrames(); if (children != NULL) XFree((char *)children); } /* * promoteDependentFollowers -- called for a newly appearing dependent * followers. Promote all dependent followers of "window" to be dependent * followers of the leader of the new window "groupid". In other words, * suppose we have a group relationship of C->B->A, where "->" means "is a * dependent follower of", and B is a newly appearing window. For all such * windows C that are followers of B, make them followers of A. * * REMIND we don't update the group data structures while the GroupApply is in * progress. Doing so will corrupt the group data structure. */ static void * promoteDependentFollowers(window, groupid) Window window; Window groupid; { List *l = ActiveClientList; Client *cli; unmarkAllFrames(); GroupApply(window, markFrame, 1, GROUP_DEPENDENT); for (cli = ListEnum(&l); cli != NULL; cli = ListEnum(&l)) { if (cli->framewin && cli->framewin->core.tag) { GroupRemove(window, cli); GroupAdd(groupid, cli, GROUP_DEPENDENT); cli->groupid = groupid; } } unmarkAllFrames(); } /*************************************************************************** * global functions ***************************************************************************/ /* * StateNew -- A client is mapping a top-level window (either a new window * or a Withdrawn window). The window may become Iconic or Normal * depending on the hints. Check to see if this window needs to be mapped * and if so add the required adornments. * dpy -- display pointer * rootWin -- root window * if None will determine the root window * for the client window * window -- client's window * fexisting -- the window already exists and we * are starting olwm, so positioning should * be special-cased * ourWinInfo -- if is this one of our menu windows, this * will be its WinMenu structure; this window must * be a subclass of Pane * If this is a VDM, this will be a subclass of * VPane */ Client * StateNew(dpy, rootWin, window, fexisting, ourWinInfo) Display *dpy; Window rootWin; Window window; Bool fexisting; WinPane *ourWinInfo; { Client *cli; WinGeneric *winGeneric; WinPane *winPane; WinIconFrame *winIcon; WinPaneFrame *winFrame; WinIconPane *winIconPane; XSizeHints *normHints; Bool preICCCM; Bool transient = False; int status; int initstate; XWindowAttributes paneAttr; int screen; ScreenInfo *scrInfo; int winState; Window iconWin; minimalclosure mc; int icon_x, icon_y; /* * If the window is thought to be new (i.e. if ourWinInfo is null, as * it is always except for the case of pinned menus and the VDM) and * the window * has already been registered in the WinInfo database * and it's anything other than colormap window, then return. * * This is to head off (a) clients that might be mapping the olwm * frame, (b) clients that map their top-level window (pane) more than * once before olwm can reparent it to a frame, and (c) olwm's own * popup menus. */ if (!ourWinInfo && (winGeneric = WIGetInfo(window)) != NULL && winGeneric->core.kind != WIN_COLORMAP) { return NULL; } /* Find the screen the client window is on. * If ourWinInfo is valid, use it's screen * Else if know the root then use it's screen * Lastly QueryTree to find out from the server */ if (ourWinInfo) { scrInfo = ourWinInfo->core.client->scrInfo; } else if (rootWin != None) { if ((scrInfo = GetScrInfoOfRoot(rootWin)) == NULL) return NULL; } else { Window root, parent, *children; unsigned int nChild; Status result; result = XQueryTree(dpy, window, &root, &parent, &children, &nChild); if (result == 0 || parent != root) return NULL; if ((scrInfo = GetScrInfoOfRoot(root)) == NULL) return NULL; } screen = scrInfo->screen; /* * Select for events on the pane right now (including StructureNotify) * so that we are guaranteed to get a DestroyNotify if the window goes * away. If the window has already gone away, the call to * XGetWindowAttributes below will tell us without race conditions. */ if (!ourWinInfo) XSelectInput(dpy, window, PropertyChangeMask | StructureNotifyMask | ColormapChangeMask | EnterWindowMask); /* get all the info about the new pane */ status = XGetWindowAttributes(dpy, window, &paneAttr); if ( status == 0 ) { return NULL; } /* * If it's an override-redirect window, or if already exists but is * unmapped, ignore it after first removing our StructureNotify * interest. */ if (paneAttr.override_redirect || (fexisting && paneAttr.map_state != IsViewable)) { if (!ourWinInfo) XSelectInput(dpy, window, NoEventMask); return NULL; } /* Create the client structure so we can start hooking things to it */ if ((cli = ClientCreate(dpy,screen)) == NULL) { return NULL; } #ifdef SHAPE { Bool bshaped, cshaped; int bx, by, cx, cy; unsigned int bw, bh, cw, ch; if (ShapeSupported && 0 != XShapeQueryExtents(dpy, window, &bshaped, &bx, &by, &bw, &bh, &cshaped, &cx, &cy, &cw, &ch)) { XShapeSelectInput(dpy, window, ShapeNotifyMask); cli->isShaped = bshaped; } else { cli->isShaped = False; } } #endif /* SHAPE */ /* * Turn on prop read filtering with set of available properties */ PropSetAvailable(dpy,window); /* * Get the WM_TRANSIENT_FOR hint. If the property exists but has a * contents of zero, or the window itself, substitute the root's * window ID. This is because some (buggy) clients actually write * zero in the WM_TRANSIENT_FOR property, and we want to give them * transient window behavior. */ if (!PropGetWMTransientFor(dpy,window,cli->scrInfo->rootid, &(cli->transientFor))) { cli->transientFor = 0; transient = False; } else { transient = True; } /* * Get the WM_NORMAL_HINTS property. If it's short, then we have a * pre-ICCCM client on our hands, so we interpret some values * specially. */ normHints = MemNew(XSizeHints); if (!PropGetWMNormalHints(dpy,window,normHints,&preICCCM)) { normHints->win_gravity = NorthWestGravity; normHints->flags = PWinGravity; } /* * We got a short property. Assume that this is a pre-X11R4 * client who's using the short version of the property. Copy * the data into a correctly-sized structure. Then, depending * on the flags set, ignore the window's real geometry and use * the data in the hint (but only if it passes some sanity * checking). The sanity checking is necessary because early * versions of XView write a short property, but rely on the * window manager to look at the window's geometry instead of * at the values in the hint. */ if (preICCCM) { int maxDpyWidth = 2*DisplayWidth(dpy,screen); int maxDpyHeight = 2*DisplayHeight(dpy,screen); if (!fexisting && (normHints->flags & (USPosition|PPosition)) && IsInt16(normHints->x) && IsInt16(normHints->y) && normHints->x > -maxDpyWidth && normHints->y > -maxDpyHeight && normHints->x < maxDpyWidth && normHints->y < maxDpyHeight) { paneAttr.x = normHints->x; paneAttr.y = normHints->y; } if ((normHints->flags & (USSize|PSize)) && IsCard16(normHints->width) && IsCard16(normHints->height) && normHints->width >= MINSIZE && normHints->height >= MINSIZE && normHints->width < maxDpyWidth && normHints->height < maxDpyHeight) { paneAttr.width = normHints->width; paneAttr.height = normHints->height; } } cli->normHints = normHints; /* * Get the WM_HINTS */ cli->wmHints = MemNew(XWMHints); if (!PropGetWMHints(dpy,window,cli->wmHints)) { cli->wmHints->flags = 0L; } /* * Get the protocols in which the client will participate */ if (!PropGetWMProtocols(dpy,window,&(cli->protocols))) { cli->protocols = 0; } /* * Figure out what focus mode this window intends */ cli->focusMode = focusModeFromHintsProtocols(cli->wmHints, cli->protocols); /* * Get the window class and instance strings */ if (!PropGetWMClass(dpy,window,&(cli->wmClass),&(cli->wmInstance))) { cli->wmClass = cli->wmInstance = NULL; cli->wmClassQ = cli->wmInstanceQ = NULLQUARK; } cli->wmClassQ = XrmStringToQuark(cli->wmClass); cli->wmInstanceQ = XrmStringToQuark(cli->wmInstance); ClientSetInstanceVars(cli); /* * Get the OpenLook window type and associated decorations */ cli->wmDecors = getOLWinDecors(dpy, window, transient, cli); /* * Establish window groups. Policy: if the window is transient, this * takes priority over any window group specified in WM_HINTS. If * it's transient, make it be part of the window group of the window * it is transient for. Otherwise, use the group specified in * WM_HINTS. If no group is specified in WM_HINTS, consider the * window to be the leader of its own group. */ if (transient) { winGeneric = WIGetInfo(cli->transientFor); if (winGeneric != NULL && winGeneric->core.client->groupmask == GROUP_DEPENDENT) cli->groupid = winGeneric->core.client->groupid; else cli->groupid = cli->transientFor; } else if ((cli->wmHints) && (cli->wmHints->flags & WindowGroupHint)) { winGeneric = WIGetInfo(cli->wmHints->window_group); if (winGeneric != NULL && winGeneric->core.client->groupmask == GROUP_DEPENDENT) cli->groupid = winGeneric->core.client->groupid; else cli->groupid = cli->wmHints->window_group; } else { cli->groupid = window; } /* * Determine group role: leader, independent follower, or dependent * follower. Leader and independent followers can be iconified * themselves, while dependent followers iconify with their parent. * * A window is a dependent follower if it's a group follower and: * * - it's transient, or * - it's a popup window. * * A window is considered to be a popup window if: * * - it has a pin, or * - it has a limited menu. * * If this window is a dependent follower, its followers are * "promoted" to be followers of this window's leader. * * If a window is a group follower but doesn't satisfy any of these * criteria, it's considered an independent follower. */ if (cli->groupid == window) { cli->groupmask = GROUP_LEADER; } else { if (transient || ClientIsPopup(cli)) { cli->groupmask = GROUP_DEPENDENT; promoteDependentFollowers(window, cli->groupid); } else { cli->groupmask = GROUP_INDEPENDENT; } } GroupAdd(cli->groupid,cli,cli->groupmask); /* * Officially set up the frame */ winFrame = MakeFrame(cli,window,&paneAttr); /* * If a client-created window then create the pane for it. Otherwise, * call the creation callback function; this is used for pinned menus. */ if (ourWinInfo == NULL) { winPane = MakePane(cli,winFrame,window,&paneAttr); } else { winPane = ourWinInfo; (WinClass(winPane)->core.createcallback)(ourWinInfo,cli, winFrame); } /* * We use the window's position if: * * + it's an existing window, or * + the client has specified that its position be used and its * position leaves at least part of the frame on the screen. * * Otherwise, we calculate a position for the window and place it * there. * * REMIND : The stuff about on screen is good for olwm, but not * for olvwm -- but there should be a corresponding on desktop */ if (! (fexisting || clientSpecifiedPosition(normHints, &paneAttr) /* && frameOnScreen(winFrame, scrInfo, paneAttr.x, paneAttr.y)*/)) { calcPosition(dpy, screen, &paneAttr, winFrame); } else if (!fexisting && (normHints->flags & USPosition) && !GRV.UseRelativePosition) { paneAttr.x += cli->scrInfo->vdm->offsetX; paneAttr.y += cli->scrInfo->vdm->offsetY; } /* * See if the position needs to be constrained to a logical * screen due to entries in .olvwmrc */ if (!XFetchName(dpy, window, &mc.name)) mc.name = NULL; icon_x = icon_y = 0; if (cli->groupmask != GROUP_DEPENDENT || !GRV.ParentScreenPopup) { if (cli->wmHints) if (cli->wmHints->flags & IconPositionHint) SearchProgString(dpy, cli->scrInfo, mc.name, cli->wmInstance, cli->wmClass, &paneAttr.x, &paneAttr.y, &cli->wmHints->icon_x, &cli->wmHints->icon_y); else SearchProgString(dpy, cli->scrInfo, mc.name, cli->wmInstance, cli->wmClass, &paneAttr.x, &paneAttr.y, &icon_x, &icon_y); else SearchProgString(dpy, cli->scrInfo, mc.name, NULL, NULL, &paneAttr.x, &paneAttr.y, &icon_x, &icon_y); } else { /* * Map the popup on the same screen as the group leader */ Client *leader = GroupLeader(cli->groupid); int curScreen; int dw = DisplayWidth(dpy, screen); int dh = DisplayHeight(dpy, screen); if (leader != NULL) { curScreen = (leader->framewin->core.x + (int) (leader->framewin->core.width / 2)) / dw; if (leader->framewin->core.x + (int) (leader->framewin->core.width / 2) < 0) curScreen--; if (paneAttr.x + (int) paneAttr.width < 0) paneAttr.x = dw + (paneAttr.x % dw) + (curScreen * dw); else paneAttr.x = (paneAttr.x % dw) + (curScreen * dw); curScreen = (leader->framewin->core.y + (int) (leader->framewin->core.height / 2)) / dh; if (leader->framewin->core.y + (int) (leader->framewin->core.height / 2) < 0) curScreen--; if (paneAttr.y + (int) paneAttr.height < 0) paneAttr.y = dh + (paneAttr.y % dh) + (curScreen * dh); else paneAttr.y = (paneAttr.y % dh) + (curScreen * dh); } } /* * Officially set up the icon */ winIcon = MakeIcon(cli,window,&paneAttr); winIconPane = MakeIconPane(cli,winIcon,cli->wmHints,fexisting); /* * Keep track of any subwindows that need colormap installation */ TrackSubwindows(cli); /* * Size and generally configure the frame window tree */ FrameSetPosFromPane(winFrame,paneAttr.x,paneAttr.y); WinCallConfig(dpy, winPane, NULL); /* * Size and generally configure the icon window tree */ if (!fexisting && cli->wmHints && (cli->wmHints->flags & IconPositionHint) && !GRV.UseRelativePosition) { cli->wmHints->icon_x += cli->scrInfo->vdm->offsetX; cli->wmHints->icon_y += cli->scrInfo->vdm->offsetY; } WinCallConfig(dpy, winIconPane, NULL); if (cli->wmHints != NULL && (cli->wmHints->flags & IconPositionHint)) IconSetPos(winIcon,cli->wmHints->icon_x,cli->wmHints->icon_y); else IconSetPos(winIcon,icon_x,icon_y); WinCallConfig(dpy, winIcon, NULL); /* * We manually move the icon pane window, since all the configuration * has been done with the icon pane parented to root. * * No longer true, since we always have a parented icon frame * now; see winipane.c WinRootPos(winIconPane, &tmpx, &tmpy); XMoveWindow(dpy, winIconPane->core.self, tmpx, tmpy); */ /* * Set the sticky bit according to the sticky list. We check the * window's group below (stickyness is inherited by group). * sticky was set when the client was created; if this is a VDM * then sticky will be set to true in the callback */ mc.class = cli->wmClass; mc.instance = cli->wmInstance; if (ListApply(GRV.StickyList, matchInstClass, &mc) != NULL) cli->sticky = True; if (mc.name) XFree(mc.name); /* * Determine the proper initial state of the window. * If the window already exists and there is a WM_STATE property * then use the state that the last window manager left there, * otherwise use WM_HINTS. */ if (fexisting && PropGetWMState(dpy,winPane->core.self,&winState,&iconWin)) { if (winState == IconicState) initstate = IconicState; else initstate = NormalState; } else { /* For new windows, check the initial_state field of WM_HINTS. */ if (cli->wmHints && (cli->wmHints->flags & StateHint) && (cli->wmHints->initial_state == IconicState)) initstate = IconicState; else initstate = NormalState; } /* * Don't allow the popup into iconic state if its leader is in normal * state. * * Also set the sticky field of the client based on the leader */ if (cli->groupmask == GROUP_DEPENDENT) { Client *leader = GroupLeader(cli->groupid); if (leader != NULL) { if (leader->wmState == NormalState && initstate == IconicState) initstate = NormalState; cli->sticky = leader->sticky; } } if (cli->sticky) MakeSticky(cli, True); MakeVirtual(cli); ClientProcessDragDropInterest(cli, PropertyNewValue); /* * Put the window into the correct initial state */ /* REMIND - The call to ClientSetWMState() should be * here instead of directly assigning cli->wmState. * But if we did that clients would see a different * event order than it saw in earlier releases. * This way the client will see the MapNotify from * the XMapRaised() and then the PropertyNotify from * ClientSetWMState(). * In a future major release we should change this. */ cli->wmState = initstate; cli->restoreSticky = STICKY_NO_RESTORE; switch ( initstate ) { case NormalState: MapRaised(winFrame); XMapRaised(dpy, winPane->core.self); if (!fexisting) { FrameWarpPointer(cli); if (GRV.AutoInputFocus) ClientSetFocus(cli, True, CurrentTime); if (GRV.AutoColorFocus) LockColormap(dpy, cli, winPane); } break; case IconicState: /* unmap the window in case it was mapped originally */ XUnmapWindow(dpy, winPane->core.self); winPane->pcore.pendingUnmaps++; /* dependent group followers don't get their own icons */ if (cli->groupmask != GROUP_DEPENDENT) { if (!cli->sticky) { if (GRV.StickyIcons) { MakeSticky(cli, True); if (GRV.StickyIconScreen) cli->restoreSticky = stateGetScreen(cli); else cli->restoreSticky = STICKY_RESTORE_CURRENT; } } /* we won't end up allocating a slot above, so do it now that we've decided the window starts iconified. */ if (winIcon->iconslot == NULL) { SlotAlloc(winIcon, winIcon->fManuallyPositioned, GRV.FSnapToGrid); (WinFunc(winIcon,core.setconfigfunc))(cli->dpy, winIcon); } IconShow(cli, winIcon); } break; } ClientSetWMState(cli,initstate); /* * Get the window state */ ClientGetWindowState(cli); /* * Turn off prop read filtering */ PropClearAvailable(); return cli; } /* * ReparentTree -- called at start up, this routine queries the window * tree and reparents all the windows */ void ReparentTree(dpy,treeroot) Display *dpy; Window treeroot; { unsigned int numChildren; Window *children, root, parent, w; int ii; Client *cli; children = NULL; if (XQueryTree(dpy, treeroot, &root, &parent, &children, &numChildren)) { for (ii=0; iiframewin->fcore.panewin->pcore.pendingUnmaps++; /* unmap because of reparent */ } } } } if (children != NULL) XFree((char *)children); } /* * StateIconic - transition a window to IconicState */ void StateIconic(cli,timestamp) Client *cli; Time timestamp; { WinIconFrame *iconInfo = cli->iconwin; WinPaneFrame *frameInfo = cli->framewin; unsigned int groupApplyMask = 0; if (iconInfo == NULL || frameInfo == NULL || !ClientHasIcon(cli)) return; /* * Transition from the various states */ switch(cli->wmState) { case IconicState: /* If already iconic just return */ return; case NormalState: switch (cli->groupmask) { case GROUP_LEADER: case GROUP_INDEPENDENT: if (!cli->sticky) { if (GRV.StickyIcons) { MakeSticky(cli, True); if (GRV.StickyIconScreen) cli->restoreSticky = stateGetScreen(cli); else cli->restoreSticky = STICKY_RESTORE_CURRENT; } } if (iconInfo->iconslot == NULL) { SlotAlloc(iconInfo, iconInfo->fManuallyPositioned, GRV.FSnapToGrid); (WinFunc(iconInfo,core.setconfigfunc)) (iconInfo->core.client->dpy, iconInfo); } #ifdef NOT else { #endif IconShow(cli, iconInfo); ClientSetWMState(cli, IconicState); if (cli->groupmask == GROUP_LEADER) GroupApply(cli->groupid, iconifyOne, iconInfo, GROUP_LEADER|GROUP_DEPENDENT); else { iconifyOne(cli, (WinGeneric *) iconInfo); GroupApply(PANEWINOFCLIENT(cli), iconifyOne, iconInfo, GROUP_DEPENDENT); } #ifdef NOT } #endif break; case GROUP_DEPENDENT: return; } break; case InvisibleState: /* * Map the icon window and update the client wmState */ IconShow(cli, iconInfo); ClientSetWMState(cli, IconicState); break; } if (cli == CurrentClient && !GRV.FocusFollowsMouse) ClientSetFocus(cli, False, timestamp); } /* * StateNormal - transition a window to Normal State */ void StateNormal(cli,timestamp) Client *cli; Time timestamp; { WinIconFrame *iconInfo = cli->iconwin; WinPaneFrame *frameInfo = cli->framewin; Display *dpy = cli->dpy; if (iconInfo == NULL || frameInfo == NULL) return; if (cli->sticky && cli->restoreSticky != STICKY_NO_RESTORE) { if (cli->restoreSticky != STICKY_RESTORE_CURRENT) VDMGoto(cli->dpy, cli, cli->restoreSticky); MakeSticky(cli, False); cli->restoreSticky = STICKY_NO_RESTORE; } /* * Transition from the various states */ switch (cli->wmState) { case IconicState: /* * Unmap the icon. This must be done before mapping the * frame windows, so that we get LeaveNotify events (that * cause us to change focus) before the exposure events on * the frame. If we mapped the frames first, they'd be * painted with the focus highlight. */ IconHide(cli, iconInfo); /* free the autoallocated slots, so that icons will * pile up in the appropriate corner */ if (!iconInfo->fManuallyPositioned && GRV.FreeIconSlots) SlotFree(iconInfo); /* Map the frame window and any group followers. */ if (cli->groupmask == GROUP_LEADER) deiconifyGroup(cli, iconInfo); else deiconifyOne(cli, (WinGeneric *) iconInfo, True); break; case NormalState: /* If already in normal just return */ return; case InvisibleState: /* * Map frame and pane and update client's wmState */ XMapWindow(dpy, frameInfo->core.self); XMapRaised(dpy, PANEWINOFCLIENT(cli)); ClientSetWMState(cli,NormalState); break; } /* * Transfer the focus to the newly mapped frame, but only if we're in * click-to-type mode. */ if (cli == CurrentClient && !GRV.FocusFollowsMouse) ClientSetFocus(cli, True, timestamp); } /* * StateWithdrawn - a window is being withdrawn; tear down all related * structures; clear the client out of all lists it may be * on; reparent the pane window */ void /* ARGSUSED */ StateWithdrawn(cli,timestamp) Client *cli; Time timestamp; { WinIconFrame *iconInfo = cli->iconwin; WinPaneFrame *frameInfo = cli->framewin; Display *dpy = cli->dpy; if (iconInfo == NULL || frameInfo == NULL) return; /* Zero event mask to cut down on unneeded events */ XSelectInput(dpy,PANEWINOFCLIENT(cli),NoEventMask); /* * Transition from the various states */ switch (cli->wmState) { case IconicState: /* Unmap the icon */ IconHide(cli, iconInfo); break; case NormalState: /* Unmap the frame and pane. */ UnmapWindow(frameInfo); XUnmapWindow(dpy, PANEWINOFCLIENT(cli)); break; case InvisibleState: /* Both icon and frame are already unmapped so do nothing */ break; } /* Return the pointer if necessary */ FrameUnwarpPointer(cli); /* move the pane and unparent it */ FrameUnparentPane(cli, frameInfo, frameInfo->fcore.panewin); DestroyClient(cli); } /* * StateInvisible - transition a window to InvisibleState * Unmap either icon or frame windows and update wmState */ void StateInvisible(cli,timestamp) Client *cli; Time timestamp; { WinIconFrame *iconInfo = cli->iconwin; WinPaneFrame *frameInfo = cli->framewin; Display *dpy = cli->dpy; if (iconInfo == NULL || frameInfo == NULL) return; /* * Transition from the various states */ switch (cli->wmState) { case IconicState: /* Unmap the icon */ IconHide(cli, iconInfo); break; case NormalState: /* Unmap the frame and pane */ UnmapWindow(frameInfo); XUnmapWindow(dpy, PANEWINOFCLIENT(cli)); frameInfo->fcore.panewin->pcore.pendingUnmaps++; break; case InvisibleState: /* Already in InvisibleState */ return; } ClientSetWMState(cli,InvisibleState); } /************************************************************************ * Top-Level Window Property Update Functions ************************************************************************/ /* * Refresh SizeHints from WM_NORMAL_HINTS property. The new values * can simply be copied into the client's normHints. */ void StateUpdateWMNormalHints(cli,event) Client *cli; XPropertyEvent *event; { Window pane; XSizeHints sizeHints; Bool preICCCM; if (event->state != PropertyNewValue) return; pane = PANEWINOFCLIENT(cli); if (!PropGetWMNormalHints(cli->dpy,pane,&sizeHints,&preICCCM)) return; *(cli->normHints) = sizeHints; } /* * Reapply WMHints from the WM_HINTS property. Ignore everything but * InputHint and Icon{Pixmap/Mask}Hint. */ void StateUpdateWMHints(cli,event) Client *cli; XPropertyEvent *event; { Window pane; XWMHints wmHints; WinIconPane *iconPane; if (cli->framewin == NULL || cli->iconwin == NULL || event->state != PropertyNewValue) return; pane = PANEWINOFCLIENT(cli); iconPane = (WinIconPane *)cli->iconwin->fcore.panewin; if (!PropGetWMHints(cli->dpy,pane,&wmHints)) return; if (wmHints.flags & InputHint) { cli->focusMode = focusModeFromHintsProtocols(&wmHints,cli->protocols); } if (wmHints.flags & IconPixmapHint) IconPaneSetPixmap(cli->dpy,iconPane,wmHints.icon_pixmap); if (wmHints.flags & IconMaskHint) IconPaneSetMask(cli->dpy,iconPane,wmHints.icon_mask); if (wmHints.flags & IconPixmapHint || wmHints.flags & IconMaskHint) WinDrawFunc(iconPane); if (cli->wmHints == NULL) cli->wmHints = MemNew(XWMHints); *(cli->wmHints) = wmHints; } /* * Reset client protocols and focusMode from WM_PROTOCOLS */ void StateUpdateWMProtocols(cli,event) Client *cli; XPropertyEvent *event; { Window pane; int protocols; if (cli->framewin == NULL || event->state != PropertyNewValue) return; pane = PANEWINOFCLIENT(cli); if (!PropGetWMProtocols(cli->dpy,pane,&protocols)) return; if (cli->protocols == protocols) return; cli->focusMode = focusModeFromHintsProtocols(cli->wmHints,protocols); cli->protocols = protocols; } /* * StateUpdateWinAttr - reread the _OL_WIN_ATTR property. * For now just apply WA_PINSTATE. */ void StateUpdateWinAttr(cli,event) Client *cli; XPropertyEvent *event; { OLWinAttr winAttr; Bool old; Window pane; if (cli->framewin == NULL || event->state != PropertyNewValue) return; pane = PANEWINOFCLIENT(cli); if (!PropGetOLWinAttr(cli->dpy,pane,&winAttr,&old)) return; if ((winAttr.flags & WA_PINSTATE) && ClientIsPinnable(cli)) { WinPushPin *pushPin = (WinPushPin *)cli->framewin->winDeco; PushPinSetPinState(cli->dpy,pushPin, winAttr.pin_initial_state,False); } } /* * StateUpdateDecorAdd - read the DecorAdd property and reapply it */ void /* ARGSUSED*/ StateUpdateDecorAdd(cli,event) Client *cli; XPropertyEvent *event; { /* REMIND - this needs to be implemented */ } /* * StateUpdateDecorDel - read the DecorDel property and reapply it */ void /* ARGSUSED*/ StateUpdateDecorDel(cli,event) Client *cli; XPropertyEvent *event; { /* REMIND - this needs to be implemented */ } /* * Check to see if a given focus action requires any change to the * key bindings */ typedef struct { List **list; KeySym start_sym; KeySym end_sym; unsigned int modstate; Boolean state; char *desc; } FocusClosure; /* * Check the binding state for a given key group */ static void checkGroupBinding(dpy, mc, focus, fcl) Display *dpy; minimalclosure *mc; Boolean focus; FocusClosure *fcl; { List *list = *(fcl->list); Boolean newstate = fcl->state; newstate = focus ? (ListApply(list, matchInstClass, mc) != NULL) : False; if (newstate != fcl->state) { fcl->state = newstate; GrabVKeys(dpy, False, True); SetProgKeys(dpy, fcl->start_sym, fcl->end_sym, fcl->modstate, fcl->state); GrabVKeys(dpy, True, True); } } /* * Whenever the focus changes, see if we need to enable/disable certain * function keys */ void CheckBindingState(win, focus) WinGenericFrame *win; Boolean focus; { int i; minimalclosure mc; static FocusClosure fcl[] = { { &GRV.NoVirtualKey, NoSymbol, NoSymbol, 0L, False, "All" }, { &GRV.NoVirtualFKey, XK_F1, XK_F12, 0L, False, "F" }, { &GRV.NoVirtualLKey, XK_L1, XK_L10, 0L, False, "L" }, { &GRV.NoVirtualRKey, XK_R1, XK_R15, 0L, False, "R" } }; mc.name = win->fcore.name; mc.instance = win->core.client->wmInstance; mc.class = win->core.client->wmClass; for ( i = 0; i < sizeof(fcl) / sizeof(fcl[0]); i++) checkGroupBinding(win->core.client->dpy, &mc, focus, &fcl[i]); } xview-3.2p1.4/clients/olvwm-4.1/usermenu.c100644 1750 1750 165260 6332152272 15612 0ustar mbmb/* * (c) Copyright 1989, 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifdef IDENT #ident "@(#)usermenu.c 1.6 olvwm version 07 Jan 1994" #endif /* * Based on #ident "@(#)usermenu.c 26.62 93/06/28 SMI" * */ /* * This file contains all of the functions for manipulating the user menu * * Global Functions: * InitUserMenu -- load the user menu and initialise * ReInitUserMenu -- reload the user menu and re-initialise * RootMenuShow -- call MenuShow on the root menu * */ /* * Syntax of the user menu file should be identical to that used by * buildmenu (SunView style RootMenu files). * * NOTICE that SunView compatibility has resulted in old-style * olwm menus no longer being supported. * * There are two new reserved keywords: * * DEFAULT tags a default button * TITLE tags a title string for a menu (for titlebar) * * One syntax in sunview menus is not supported: * can not be used as a menu item * * Here are the common reserved keywords: * MENU and END are used to delimit a submenu * PIN (appearing after END) indicates the menu is pinnable * EXIT (built-in - olwm service) * REFRESH (built-in - olwm service) * POSTSCRIPT will invoke psh on the named command * * The file is line-oriented, however commands to be executed can * extend to the next line if the newline is escaped (\). * * Each line consists of up to three fields: a label (a string * corresponding to either the menu label or menu option label), * up to two tags (keywords), and a command to be executed * (or a file from which to read a submenu). Two tags are allowed * if one of them is "DEFAULT" or "END". * * The tag is used to indicate the start and end of menu definitions, * pinnability, built-in functions, and default options. * The label indicates the text which appears on the user's menu, * and the command describes what should be done when each item * is selected. * * Labels must be enclosed in double quotes if they contain * whitespace. Commands may be enclosed in double quotes (but * do not have to be). * * Comments can be embedded in a file by starting a line with a * pound sign (#). Comments may not be preserved as the file is * used. * * There are several functions which aren't invoked as programs; * rather, they are built in to window manager. These built-in * services are each denoted by a single keyword. The keywords are * listed in the svctokenlookup[] array initialization. * * example (will always have label: "Workspace Menu"): * * "Workspace Menu" TITLE * Programs MENU * "Helpful Programs" TITLE * "Command Tool" cmdtool * "Blue Xterm" DEFAULT xterm -fg white \ * -bg blue * Programs END PIN * Utilities MENU * "Refresh Screen" DEFAULT REFRESH * "Clipboard" CLIPBOARD * Utilities END */ #ifdef SYSV #include #include #endif #include #include #include #ifdef SYSV #include #else #include #endif #include #include #include /* for stat(2) */ #include #include #include #include #ifdef XPM #ifndef NO_PIXEL_FIX /* The problem with xpm.h is that it includes to get * the typedef for Pixel. Intrinsic.h, however, also typedefs Boolean * (to char). This causes the compiler to fail on the Boolean typedef * in (which is, of course, also char). is * included within "win.h". * This kludge typedefs Pixel and defines _XtIntrinsic_h so that the * real Intrinsic.h does not get included. */ #define _XtIntrinsic_h typedef unsigned long Pixel; /* Index into colormap */ #endif /* NO_PIXEL_FIX */ #include #endif XPM #include #include #include #include "i18n.h" #include "ollocale.h" #include "olwm.h" #include "globals.h" #include "list.h" #include "mem.h" #include "win.h" #include "menu.h" static char *menuFileName = "openwin-menu"; static char *workspaceHelpStub = "workspace"; static int menuRecursionCount; extern char *getenv(); #define TOKLEN 300 #define DEFAULT_WORKSPACE_TITLE "Workspace" #define DEFAULT_WORKSPACE_HELPSTR "workspace:DefaultMenu" /* parseMenu return values */ #define MENU_RECURSION -2 #define MENU_FATAL -1 #define MENU_NOTFOUND 0 #define MENU_OK 1 #define MENU_PINNABLE 2 typedef enum { UsrToken, MenuToken, EndToken, DefaultToken, PinToken, TitleToken, ServiceToken, PshToken } TokenType; /* locally useful macro */ #define APPEND_STRING(buf, str) ( strncat( buf, str, \ ( sizeof(buf) - strlen(buf) - 1 ) ) ) #define COUNT(x) (sizeof(x) / sizeof(x[0])) /* --------------------------------------------------------------------- * Externals * --------------------------------------------------------------------- */ extern int RefreshFunc(); extern int ClipboardFunc(); extern int PrintScreenFunc(); extern int ExitFunc(); extern int ExitNoConfirmFunc(); extern int PropertiesFunc(); extern int SaveWorkspaceFunc(); extern int FlipDragFunc(); extern int AppMenuFunc(); extern int PshFunc(); extern int NopFunc(); extern int WindowCtlFunc(); extern int RestartOLWM(); extern int FlipFocusFunc(); extern int ReReadUserMenuFunc(); extern int OpenCloseSelnFunc(); extern int FullRestoreSizeSelnFunc(); extern int BackSelnFunc(); extern int QuitSelnFunc(); extern int StartDSDMFunc(); extern int StopDSDMFunc(); extern int GenWinMenuFunc(); extern int GenDirMenuFunc(); extern int StickSelnFunc(); extern int MoveDesktopFunc(); /* --------------------------------------------------------------------- * local forward declarations * --------------------------------------------------------------------- */ static int menuFromFile(); static int parseMenu(); static void fillMenuStruct(); static TokenType lookupToken(); static Menu *buildFromSpec(); static void initMenu(); static void initButton(); static void freeButtonData(); static void freeMenuData(); static void freeUserMenu(); static Bool menuFileModified(); static void addToMenuInfo(); static void freeFileInfoList(); static int firstEnabledItem(); /* --------------------------------------------------------------------- * local data * --------------------------------------------------------------------- */ typedef struct { char *filename; /* menu file path */ dev_t device; /* device that the inode/file reside on */ ino_t inode; /* inode of menu file */ time_t mtime; /* modification time */ } FileInfo; typedef struct { char *topfilename; /* top-level menu file name */ List *fileinfoList; /* list of FileInfo's for each menu file */ } MenuFileInfo; MenuFileInfo menuFileInfo; typedef struct _buttondata { struct _buttondata *next; char *name; Bool isDefault; Bool isLast; FuncPtr func; char *exec; /* string to be executed, like "xterm" */ void *submenu; FuncPtr generate; char *generate_args; int screen; } buttondata; typedef struct { char *title; char *menulabel; int idefault; /* index of default button */ int nbuttons; Bool pinnable; buttondata *bfirst; int columns; /* number of desired columns */ } menudata; #ifdef NOT /* default Root menu should be quite minimal */ static Button xtermButton = { { { StringLabel, "Xterm", NULL}, }, {NULL, NULL}, 0, False, True, True, { AppMenuFunc, (void *) "xterm" }, }; static Button cmdtoolButton = { { {StringLabel, "Cmdtool", NULL}, }, {NULL, NULL}, 0, False, True, True, { AppMenuFunc, (void *) "cmdtool" }, }; static Button wsrefreshButton = { { {StringLabel, "Refresh", NULL}, }, {NULL, NULL}, 0, False, True, True, { RefreshFunc, NULL }, }; static Button wsrestartButton = { { {StringLabel, "Restart WM", NULL}, }, {NULL, NULL}, 0, False, True, True, { RestartOLWM, NULL }, }; static Button wsrereadButton = { { {StringLabel, "Reread Menu File", NULL}, }, {NULL, NULL}, 0, False, True, True, { ReReadUserMenuFunc, NULL }, }; static Button exitWMButton = { { {StringLabel, "Exit WM", NULL}, }, {NULL, NULL}, 0, False, True, True, { ExitOLWM, NULL }, }; static Button exitButton = { { {StringLabel, "Exit", NULL}, }, {NULL, NULL}, 0, False, True, True, { ExitFunc, NULL }, }; static Button separatorButton = { { { NoType, NULL, NULL }, { NoType, NULL, NULL } }, {NULL, NULL}, 0, False, False, True, { NULL, NULL }, }; static Button *rootButtons[] = { &xtermButton, &cmdtoolButton, &separatorButton, &wsrefreshButton, &wsrestartButton, &wsrereadButton, &separatorButton, &exitWMButton, &exitButton, }; #endif static menudata *makeRootMenu(); /* --------------------------------------------------------------------- * Global routines * --------------------------------------------------------------------- */ /********************************************************************************/ void SetWindowMenuLabels(); void WindowMenuCreate(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { SetWindowMenuLabels(); SetWindowMenuTitle(scrInfo); CreateScreenWindowMenuInfo(dpy); } void WindowMenuDestroy(dpy) Display *dpy; { DestroyScreenWindowMenuInfo(dpy); } /* * getUserMenu * * Returns a pointer to a menudata structure describing the menu that was * read. If no menu was read successfully, returns NULL. */ static menudata * getUserMenu() { menudata *userroot; char *path; /* try reading $OLWMMENU */ path = getenv("OLWMMENU"); if (path != NULL && (userroot = makeRootMenu(path)) != NULL) return userroot; /* try reading openwin-menu */ if ((userroot = makeRootMenu(menuFileName)) != NULL) return userroot; return NULL; } /* * createButton: allocate a new button structure, filled in based on the * parameters, and return it. */ static Button * createButton(label0, label1, helpstr0, helpstr1, which, has_submenu, enabled, visible, callback, action) Text *label0; Text *label1; char *helpstr0; char *helpstr1; int which; Bool has_submenu; Bool enabled; Bool visible; FuncPtr callback; void *action; { Button *b = (Button *) MemNew(Button); #if 1 /* martin-2.buck@student.uni-ulm.de */ b->label[0].kind = label0 ? StringLabel : NoType; #endif b->label[0].string = label0; #if 1 b->label[1].kind = label1 ? StringLabel : NoType; #endif b->label[1].string = label1; b->helpstring[0] = helpstr0; b->helpstring[1] = helpstr1; b->which = which; b->has_submenu = has_submenu; b->enabled = enabled; b->visible = visible; b->callback = callback; b->action.other = action; return b; } /* * createSeparatorButton: create and return a menu separator "button". */ static Button * createSeparatorButton() { return createButton((Text *) NULL, (Text *) NULL, (char *) NULL, (char *) NULL, 0, False, False, True, (FuncPtr) NULL, NULL); } /* * createSimpleButton: create a simple button, with no alternate label, * with no submenu, always enabled and visible. */ static Button * createSimpleButton(label, helpstr, callback, action) Text *label; char *helpstr; FuncPtr callback; void *action; { return createButton(label, (Text *) NULL, helpstr, (char *) NULL, 0, False, True, True, callback, action); } /* * getBuiltinMenu * * Create the built-in default menu. This menu is used only if no menu file * can be found. It is intended to have a very minimal set of buttons. * * N.B. All of the constant strings in this function must be copied into * dynamically allocated storage, e.g. with GetNewText() or MemNewString(). * This is because these string pointers are put directly into the menu * structure, which is assumed to be entirely on the heap. * * N.B. If you add a new button to the built-in menu, you *must* change the * NBUTTONS macro to reflect the new number of buttons. We would prefer to * use a static, initialized array of strings (letting the compiler determine * the size), but the string extraction routines require that the argument to * GetString() be a string constant, not the address of a string. This forces * us to code the string constants in-line, thus requiring us to use an * atrocity like NBUTTONS. */ #define NBUTTONS 9 /* number of buttons in the built-in menu */ static Menu * getBuiltinMenu() { Button **buttons; int b; buttons = (Button **) MemAlloc(NBUTTONS * sizeof(Button *)); b = 0; buttons[b++] = createSimpleButton(GetNewText("Command Tool..."), NULL, AppMenuFunc, MemNewString("cmdtool")); buttons[b++] = createSimpleButton(GetNewText("xterm..."), NULL, AppMenuFunc, MemNewString("xterm")); buttons[b++] = createSeparatorButton(); buttons[b++] = createSimpleButton(GetNewText("Refresh"), NULL, RefreshFunc, (void *) NULL); buttons[b++] = createSimpleButton(GetNewText("Restart WM"), NULL, RestartOLWM, NULL); buttons[b++] = createSimpleButton(GetNewText("Reread Menu File"), NULL, ReReadUserMenuFunc, NULL); buttons[b++] = createSeparatorButton(); buttons[b++] = createSimpleButton(GetNewText("Exit WM"), NULL, ExitOLWM, NULL); buttons[b++] = createSimpleButton(GetNewText("Exit..."), NULL, ExitFunc, NULL); assert(b == NBUTTONS); return CreateMenu(GetNewText(DEFAULT_WORKSPACE_TITLE), buttons, NBUTTONS, True, MemNewString(DEFAULT_WORKSPACE_HELPSTR)); } /* * InitUserMenu -- load the user menu from a file using menuFromFile() * and then create the actual RootMenu using buildFromSpec(). * * The file to be read is either in the directory specified by * OLWMPATH or HOME, or OPENWINHOME/lib, and should be called * MENUFILE. If none of those three files exist, * use the default menu. * */ void InitUserMenu(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { menudata *userroot; static Bool internalMenuTestMode = False; menuFileInfo.fileinfoList = NULL; menuFileInfo.topfilename = NULL; if (internalMenuTestMode) userroot = NULL; else userroot = getUserMenu(); if (userroot == NULL) { scrInfo->menuTable[MENU_ROOT] = getBuiltinMenu(); } else { /* we read a menu from a file; now build it */ scrInfo->menuTable[MENU_ROOT] = buildFromSpec(dpy, scrInfo, userroot, userroot->title); } } /* * ReInitUserMenu - Re reads the user menu if changed. * If the menu file has been modified since last looked at * or if reRead is True, the attempt to create a new menu * from the file. If the new file is ok and a menu is created * then use it, otherwise use the original. */ void ReInitUserMenu(dpy, scrInfo, forceReRead) Display *dpy; ScreenInfo *scrInfo; Bool forceReRead; { menudata *userroot; if (forceReRead || menuFileModified()) { freeFileInfoList(&menuFileInfo.fileinfoList); DestroyPinnedMenuClients(); DestroyScreenUserMenuInfo(dpy); if (menuFileInfo.topfilename != NULL) freeUserMenu(scrInfo->menuTable[MENU_ROOT]); else if (scrInfo->menuTable[MENU_ROOT] != NULL) { /* default menu, most of it is just static data */ MemFree(scrInfo->menuTable[MENU_ROOT]->buttons); MemFree(scrInfo->menuTable[MENU_ROOT]); } scrInfo->menuTable[MENU_ROOT] = NULL; if (! forceReRead && menuFileInfo.topfilename != NULL) { userroot = makeRootMenu(menuFileInfo.topfilename); } else { MemFree(menuFileInfo.topfilename); menuFileInfo.topfilename = NULL; userroot = getUserMenu(); } if (userroot == NULL) { MemFree(menuFileInfo.topfilename); menuFileInfo.topfilename = NULL; scrInfo->menuTable[MENU_ROOT] = getBuiltinMenu(); } else scrInfo->menuTable[MENU_ROOT] = buildFromSpec(dpy, scrInfo, userroot, userroot->title); CreateScreenUserMenuInfo(dpy); } } /* * RootMenuShow - makes sure the user root menu is up to date and * then calls MenuShow on the root menu to bring it up on the display. */ void RootMenuShow(dpy, winInfo, pEvent) Display *dpy; WinGeneric *winInfo; XEvent *pEvent; { ReInitUserMenu(dpy, winInfo->core.client->scrInfo, False); MenuShowSync(dpy, winInfo, winInfo->core.client->scrInfo->menuTable[MENU_ROOT], pEvent, NULL, NULL, False, False); } /* * ReInitAllMenus * * Re-initialize all menus. */ void ReInitAllMenus(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { WindowMenuDestroy(dpy); WindowMenuCreate(dpy, scrInfo); ReInitUserMenu(dpy, scrInfo, True); } /* --------------------------------------------------------------------- * Local routines * --------------------------------------------------------------------- */ /* * expandPath - expand any environment variables in a path. * returns a dynamically alloacted string with * the expanded path. * Actually, this will also expand things of the nature: * $(OPENWINHOME)/include:${MUBMEL}/include:$FOOBLES/include */ char * ExpandPath(pin, messages) char *pin; Bool messages; { char pathname[MAXPATHLEN]; int haveslash; char envbuff[MAXPATHLEN]; char *pend; char *penv; char *pstart; char *p; int len; struct passwd *ppw; char c; char *orig; if (pin == NULL) return NULL; orig = pin; *pathname = NULL; len = strlen(pin); if (pin[len] == '/') --len; haveslash = False; for (p = pathname; len > 0;) { switch (*pin) { case '~': /*overrides everything back to last :*/ ++pin; --len; if (len <= 1 || *pin == '/') { penv = getenv("HOME"); } else { int tmp; pend = strchr(pin, '/'); if (pend == NULL) { pend = strchr(pin, ':'); if (pend == NULL) pend = pin + strlen(pin); } tmp = pend - pin; memcpy(envbuff, pin, tmp); envbuff[tmp] = NULL; pin = pend; len -= tmp; ppw = getpwnam(envbuff); if (ppw == NULL && messages) fprintf(stderr, GetString("olvwm: couldn't find user \"%s\" in \"%s\"\n"), envbuff, orig); penv = (char *) (ppw? ppw->pw_dir : NULL); } if (penv) { for (pstart = p; pstart > pathname; pstart--) if (*pstart == ':') { ++pstart; break; } strcpy(pstart, penv); p = pstart + strlen(penv); } haveslash = False; continue; case '$': if ((c = *(pin+1)) == '(' || c == '{') { int tmp; pin += 2; pend = strpbrk(pin, "})"); if (pend == NULL) { if (messages) fprintf(stderr, GetString("olvwm: no match for '%c' in pathname \"%s\"\n"), c, orig); return NULL; } else { if (*pend == '}' && c != '{') { if (messages) fprintf(stderr, GetString("olvwm: found a '}' before a ')' in \"%s\"\n"), orig); return NULL; } else if (*pend == ')' && c != '(') { if (messages) fprintf(stderr, GetString("olvwm: found a ')' before a '}' in \"%s\"\n"), orig); return NULL; } } tmp = pend - pin; memcpy(envbuff, pin, tmp); envbuff[tmp] = NULL; len -= (2 + tmp + 1); pin = pend+1; } else { --len; pend = strchr(++pin, '/'); if (pend) { int tmp = pend - pin; memcpy(envbuff, pin, tmp); envbuff[tmp] = NULL; len -= tmp; pin = pend; } else { memcpy(envbuff, pin, len); envbuff[len] = NULL; len = 0; } } penv = getenv(envbuff); #ifdef OPENWINHOME_DEFAULT if (!penv && !strcmp(envbuff, "OPENWINHOME")) { penv = OPENWINHOME_DEFAULT; } #endif if (penv) { int tmp = strlen(penv); if (haveslash && *penv == '/') { /*if he put /usr//home, turn it into /home*/ /*/mumble:/usr//home -> /mumble:/home*/ for (; p > pathname; p--) if (*p == ':') { ++p; break; } } memcpy(p, penv, tmp); p += tmp; haveslash = len > 0 && *(p-1) == '/'; } if (len <= 0) break; /*FALL THROUGH*/ default: if (*pin != '/') haveslash = False; else { if (!haveslash) haveslash = True; else { ++pin; --len; continue; } } *p++ = *pin++; --len; } } *p = NULL; if (haveslash) pathname[strlen(pathname)-1] = NULL; return MemNewString(pathname); } /* * Menu Search Path */ #define NUM_SEARCH_PATH 7 static char **menuSearchPath; /* * makeMenuSearchPath */ static char ** makeMenuSearchPath() { char buf[MAXPATHLEN]; char *home; char *owHome; int i = 0; if ((home = getenv("HOME")) == NULL) home = "."; if ((owHome = getenv("OPENWINHOME")) == NULL) #ifdef OPENWINHOME_DEFAULT owHome = OPENWINHOME_DEFAULT; #else owHome = "/usr/openwin"; #endif menuSearchPath = (char **)MemAlloc(NUM_SEARCH_PATH*sizeof(char *)); #ifdef SVR4 #ifdef OW_I18N_L3 /* $HOME/.. */ sprintf(buf, "%s/.%%1$s.%%2$s", home); menuSearchPath[i++] = MemNewString(buf); #endif #endif /* $HOME/. */ sprintf(buf, "%s/.%%s", home); menuSearchPath[i++] = MemNewString(buf); #ifdef OW_I18N_L3 /* $OPENWINHOME/share/locale//olwm/ */ sprintf(buf, "%s/share/locale/%%2$s/olwm/%%1$s", owHome); menuSearchPath[i++] = MemNewString(buf); /* $OPENWINHOME/lib/. */ sprintf(buf, "%s/lib/%%1$s.%%2$s", owHome); menuSearchPath[i++] = MemNewString(buf); #endif /* $OPENWINHOME/lib/ */ sprintf(buf, "%s/lib/%%s", owHome); menuSearchPath[i++] = MemNewString(buf); /* /usr/openwin/lib/ */ menuSearchPath[i++] = MemNewString("/usr/openwin/lib/%s"); menuSearchPath[i] = (char *)NULL; return menuSearchPath; } #ifdef NOT /* * checkFile - check to see that a file (composed of named file and dir) * is readable */ static Bool checkFile(location, file, path) char *location, *file, *path; { char *dir; if ((dir = getenv(location)) == NULL) return False; strcpy(path, dir); strcat(path, file); return (access(path, R_OK) == 0); } #endif /* * menuFromFileSearch */ static int #if defined(__STDC__) menuFromFileSearch( char *file, menudata *menu, Bool messages) #else menuFromFileSearch(file, menu, messages) char *file; menudata *menu; Bool messages; #endif /* __STDC__ */ { char **pFmt; char fullPath[MAXPATHLEN]; char *locale = GRV.lc_dlang.locale; int rval; if (file[0] == '/') return menuFromFile(file, menu, messages); if (menuSearchPath == NULL) makeMenuSearchPath(); for (pFmt = menuSearchPath; *pFmt; pFmt++) { (void)sprintf(fullPath, *pFmt, file, locale); #ifdef DEBUG fprintf(stderr,"menuFromFileSearch: trying '%s'\n",fullPath); #endif if (access(fullPath, R_OK) == 0) { rval = menuFromFile(fullPath, menu, messages); if (rval >= MENU_OK) return rval; } } return MENU_NOTFOUND; } /* * menuFromFile - read a menu description from a file * * Return values: same as parseMenu, with the addition of * MENU_NOTFOUND = couldn't read submenu file */ static int menuFromFile(file, menu, messages) char *file; menudata *menu; Bool messages; { char *new; FILE *stream; int lineno = 1; /* Needed for recursion */ int rval; if (++menuRecursionCount > 25) { fprintf(stderr, GetString("olvwm: maximum menu filedepth exceeded\n")); menuRecursionCount = 0; return MENU_RECURSION; } /* expand any environment vars in path */ if ((new = ExpandPath(file, messages)) != NULL) file = new; if (file[0] != '/') return menuFromFileSearch(file, menu, messages); if ((stream = fopen(file, "r")) == NULL) { if (messages) fprintf(stderr, GetString("olvwm: can't open menu file %s\n"), file); freeMenuData(menu); rval = MENU_NOTFOUND; goto end; } rval = parseMenu(file, stream, menu, &lineno); fclose(stream); if (rval >= MENU_OK) { addToMenuInfo(file); fillMenuStruct(menu); } end: if (new) MemFree(new); return (rval); } /* * makeRootMenu - attempts to create a root menu from a given file. * Returns NULL on failure, and assumes that the caller will free * returned menudata. */ static menudata * makeRootMenu(file) char *file; { menudata *userroot; initMenu(&userroot); userroot->pinnable = True; menuRecursionCount = 0; if (menuFromFileSearch(file, userroot, False) >= MENU_OK) { if (!menuFileInfo.topfilename) menuFileInfo.topfilename = MemNewString(file); return userroot; } else { freeMenuData(userroot); freeFileInfoList(&menuFileInfo.fileinfoList); return (menudata *) NULL; } } /* * parseMenu -- read the user menu from the given stream and * parse the stream into the menu structures defined locally. * These structures (which are local to this module) are later * used to build real menu structures. * * Note that fillMenuStruct() needs to be called after parseMenu() * is called (to finish filling out the menudata structure). * If parseMenu() returns < 0, then freeMenuData() needs to be * called instead, to free up unused memory. * * Return values: * MENU_OK = an unpinnable menu was read successfully * MENU_PINNABLE = a pinnable menu was read successfully * MENU_FATAL = a fatal error was encountered * * This is based heavily on buildmenu's getmenu() parsing routine. * */ static int parseMenu(filename, stream, parent, lineno) char *filename; FILE *stream; menudata *parent; int *lineno; { menudata *currentMenu, *saveMenu; buttondata *currentButton; char line[TOKLEN]; char label[TOKLEN]; char prog[TOKLEN]; char args[TOKLEN]; static char localBuf[1024]; char *nqformat = "%[^ \t\n]%*[ \t]%[^ \t\n]%*[ \t]%[^\n]\n"; char *qformat = "\"%[^\"]\"%*[ \t]%[^ \t\n]%*[ \t]%[^\n]\n"; char *format; register char *p; int continuation; Bool done; currentMenu = parent; initButton((buttondata **) & (currentMenu->bfirst)); currentButton = currentMenu->bfirst; continuation = 0; for (; fgets(line, sizeof(line), stream); (*lineno)++) { if (line[0] == '#') continue; for (p = line; isspace(*p); p++) /* EMPTY */ ; if (*p == '\0') continue; /* * if we're already on a continuation line (the previous line ended in * '\') then just copy the input through to the output until we get a * line that doesn't end in '\' (nuke the vi backslash). */ if (continuation) { /* fgets includes the newline in the string read */ while (line[strlen(line) - 2] == '\\') { /* get rid of backslash */ line[strlen(line) - 2] = '\0'; APPEND_STRING(localBuf, " "); APPEND_STRING(localBuf, p); if (!fgets(line, sizeof(line), stream)) break; (*lineno)++; for (p = line; isspace(*p); p++) /* EMPTY */ ; } /* last line of continuation - replace \n with \0 */ line[strlen(line) - 1] = '\0'; APPEND_STRING(localBuf, " "); APPEND_STRING(localBuf, p); /* save it permanently in the buttondata structure */ currentButton->exec = MemNewString(localBuf); localBuf[0] = '\0'; continuation = 0; initButton((buttondata **) & (currentButton->next)); currentButton = currentButton->next; continue; } /* * if the line ends in '\' remember that continuation has started. */ if (line[strlen(line) - 2] == '\\') { continuation = 1; line[strlen(line) - 2] = '\0'; } args[0] = '\0'; format = (*p == '"') ? qformat : nqformat; if (sscanf(p, format, label, prog, args) < 2) { /* seperator keyword appears alone on a line */ if (strcmp(label, "SEPARATOR") == 0) { currentButton->name = NULL; currentButton->isDefault = False; currentButton->func = NULL; currentButton->exec = NULL; currentButton->submenu = NULL; initButton((buttondata **) & (currentButton->next)); currentButton = currentButton->next; continue; } /*otherwise...*/ fprintf(stderr, GetString("olvwm: syntax error in menu file %s, line %d\n"), filename, *lineno); return (MENU_FATAL); } if (strcmp(prog, "END") == 0) { /* currently allocated button is last for this menu */ currentButton->isLast = True; if (currentMenu->menulabel != NULL && strcmp(label, currentMenu->menulabel) != 0) { fprintf(stderr, GetString("olvwm: menu label mismatch in file %s, line %d\n"), filename, *lineno); return (MENU_FATAL); } /* compare PIN as # chars; args may have extra space */ if (strncmp(args, "PIN", 3) == 0) return (MENU_PINNABLE); else return (MENU_OK); } if (strcmp(prog, "TITLE") == 0) { currentMenu->title = MemNewString(label); if (strncmp(args, "PIN", 3) == 0) currentMenu->pinnable = True; /* * we don't need to set up the next button, since the TITLE line * didn't use up a button */ continue; } currentButton->name = MemNewString(label); if (strcmp(prog, "DEFAULT") == 0) { char *t; char *u; currentButton->isDefault = True; /* * Pull the first token from args into prog. */ t = strtok(args, " \t"); if (t == NULL) { fprintf(stderr, GetString("olvwm: error in menu file %s, line %d\n"), filename, *lineno); /* * STRING_EXTRACTION - Since DEFAULT is keyword, do not * translate. */ fputs(GetString("missing item after DEFAULT keyword.\n"), stderr); return (MENU_FATAL); } strcpy(prog, t); t = strtok(NULL, ""); /* get remainder of args */ if (t == NULL) args[0] = '\0'; else { u = args; /* can't use strcpy because they overlap */ while (*u++ = *t++) /* EMPTY */ ; } } if (strcmp(prog, "INCLUDE") == 0) { int rval; initMenu((menudata **) & (currentButton->submenu)); saveMenu = currentMenu; currentMenu = (menudata *) currentButton->submenu; currentMenu->menulabel = MemNewString(label); if (args != NULL) { rval = menuFromFile(args, currentMenu, False); switch (rval) { case MENU_PINNABLE: currentMenu->pinnable = True; /* FALL THRU */ case MENU_OK: currentMenu = saveMenu; break; default: /* bad menu file */ initMenu((menudata **) & (currentButton->submenu)); break; } } } if (strcmp(prog, "MENU") == 0) { int rval; initMenu((menudata **) & (currentButton->submenu)); saveMenu = currentMenu; currentMenu = (menudata *) currentButton->submenu; currentMenu->menulabel = MemNewString(label); if (args[0] == '\0') { /* * we haven't incremented lineno for this read loop yet, so we * need to do it now. when END is read, parseMenu returns * without incrementing lineno, so the count will be ok when * this loop increments it before reading the next line of the * file. */ (*lineno)++; if ((rval = parseMenu(filename, stream, currentMenu, lineno)) < 0) { freeMenuData(currentMenu); currentButton->submenu = NULL; return (MENU_FATAL); } else fillMenuStruct(currentMenu); } else { rval = menuFromFile(args, currentMenu, True); if (rval <= MENU_NOTFOUND) { currentButton->submenu = NULL; return (MENU_FATAL); } } if (rval == MENU_PINNABLE) currentMenu->pinnable = True; currentMenu = saveMenu; /* if submenu not found, reuse button */ if (rval != MENU_NOTFOUND) { initButton((buttondata **) & (currentButton->next)); currentButton = currentButton->next; } continue; } else if (strcmp(prog, "WINMENU") == 0) { initMenu((menudata **)&(currentButton->submenu)); saveMenu = currentMenu; currentMenu = (menudata *) currentButton->submenu; currentMenu->menulabel = MemNewString(label); currentButton->generate = GenWinMenuFunc; currentButton->generate_args = NULL; currentMenu->columns = atoi(args); currentMenu->idefault = NOBUTTON; initButton((buttondata **)&(currentButton->next)); currentButton = currentButton->next; currentMenu = saveMenu; continue; } else if (strcmp(prog, "DIRMENU") == 0) { initMenu((menudata **)&(currentButton->submenu)); saveMenu = currentMenu; currentMenu = (menudata *) currentButton->submenu; currentMenu->menulabel = MemNewString(label); currentButton->generate = GenDirMenuFunc; currentButton->generate_args = MemNewString(args); currentMenu->columns = 0; currentMenu->idefault = NOBUTTON; initButton((buttondata **)&(currentButton->next)); currentButton = currentButton->next; currentMenu = saveMenu; continue; } else if (strcmp(prog, "MOVE_DESKTOP") == 0) { int n, x, y; n = sscanf(args, "%d%d", &x, &y); if (!n) { fprintf(stderr, GetString("olvwm: error in menu file %s, line %d\n"), filename, *lineno); fprintf(stderr, GetString("Missing parameters after MOVE_DESKTOP\n")); return (MENU_FATAL); } currentButton->generate_args = MemNewString(args); currentButton->name = MemNewString(label); currentButton->func = MoveDesktopFunc; currentButton->exec = NULL; initButton((buttondata **) &(currentButton->next)); currentButton = currentButton->next; continue; } else if (strcmp(prog, "COLUMNS") == 0) { char *t; t = strtok(args, " \t"); if (t == NULL) { fprintf(stderr, GetString("olvwm: error in menu file %s, line %d\n"), filename, *lineno); fputs(GetString("missing item after COLUMNS keyword.\n"), stderr); return (MENU_FATAL); } currentMenu->columns = atoi(t); continue; } done = False; while (!done) { switch (lookupToken(prog, &(currentButton->func))) { case UsrToken: /* * if UsrToken, that means that "prog" was just the first word * of the command to be executed, */ strcpy(localBuf, prog); APPEND_STRING(localBuf, " "); APPEND_STRING(localBuf, args); /* * copy current contents of localBuf back into args array so * that PshToken code can be used */ strcpy(args, localBuf); localBuf[0] = '\0'; /* fall through */ case PshToken: if (continuation) strcpy(localBuf, args); else currentButton->exec = MemNewString(args); done = True; break; case PinToken: fprintf(stderr, GetString("olvwm: format error in menu file %s, line %d\n"), filename, *lineno); fputs(GetString("menu title and END required before PIN keyword.\n"), stderr); return (MENU_FATAL); /* NOTREACHED */ break; default: /* some other valid token found and returned */ done = True; break; } } if (!continuation) { initButton((buttondata **) & (currentButton->next)); currentButton = currentButton->next; } } /* never used the last button created */ currentButton->isLast = True; return (MENU_OK); } /* * fillMenuStruct - Once the menu structures have been filled out using * information in the menu description file (via parseMenu()), the * nbuttons and idefault elements need to be set. */ static void fillMenuStruct(mptr) menudata *mptr; { buttondata *bptr; int buttonIndex = 0; bptr = mptr->bfirst; if (bptr->isLast == True) { MemFree(bptr); bptr = mptr->bfirst = NULL; } for (; bptr != NULL && bptr->isLast == False; bptr = bptr->next) { if (bptr->isDefault == True) mptr->idefault = buttonIndex; if ((bptr->next)->isLast == True) { MemFree(bptr->next); bptr->next = NULL; } buttonIndex++; } /* buttonIndex is one past end, but started at 0, so = number buttons */ mptr->nbuttons = buttonIndex; } /* * Allowed menu keywords ("Token") */ struct _svctoken { char *token; FuncPtr func; TokenType toktype; } svctokenlookup[] = { { "REFRESH", RefreshFunc, ServiceToken }, { "CLIPBOARD", ClipboardFunc, ServiceToken }, { "PRINT_SCREEN", PrintScreenFunc, ServiceToken }, { "EXIT", ExitFunc, ServiceToken }, { "EXIT_NO_CONFIRM", ExitNoConfirmFunc, ServiceToken }, { "WMEXIT", ExitOLWM, ServiceToken }, { "PROPERTIES", PropertiesFunc, ServiceToken }, { "NOP", NopFunc, ServiceToken }, { "DEFAULT", NULL, DefaultToken }, { "MENU", NULL, MenuToken }, { "END", NULL, EndToken }, { "PIN", NULL, PinToken }, { "TITLE", NULL, TitleToken }, { "FLIPDRAG", FlipDragFunc, ServiceToken }, { "SAVE_WORKSPACE", SaveWorkspaceFunc, ServiceToken }, { "POSTSCRIPT", PshFunc, PshToken }, { "RESTART", RestartOLWM, ServiceToken }, { "FLIPFOCUS", FlipFocusFunc, ServiceToken }, { "REREAD_MENU_FILE", ReReadUserMenuFunc, ServiceToken }, { "OPEN_CLOSE_SELN", OpenCloseSelnFunc, ServiceToken }, { "FULL_RESTORE_SIZE_SELN", FullRestoreSizeSelnFunc, ServiceToken }, { "BACK_SELN", BackSelnFunc, ServiceToken }, { "QUIT_SELN", QuitSelnFunc, ServiceToken }, { "START_DSDM", StartDSDMFunc, ServiceToken }, { "STOP_DSDM", StopDSDMFunc, ServiceToken }, { "STICK_UNSTICK_SELN",StickSelnFunc, ServiceToken }, { "MOVE_DESKTOP", MoveDesktopFunc, ServiceToken } }; #define NSERVICES COUNT(svctokenlookup) /* lookupToken -- look up a token in the list of tokens * given a supposed keyword or service name. If the name doesn't * match any existing token, return the user-defined token. */ static TokenType lookupToken(nm, ppf) char *nm; FuncPtr *ppf; { int ii; for (ii = 0; ii < NSERVICES; ii++) { if (strcmp(nm, svctokenlookup[ii].token) == 0) { if (ppf != (FuncPtr *) 0) *ppf = svctokenlookup[ii].func; return svctokenlookup[ii].toktype; } } if (ppf != (FuncPtr *) 0) *ppf = AppMenuFunc; return UsrToken; } /* buildFromSpec -- build the real menu structures, and create the * associated menus, from the specifications parsed from * the menu layout. Free up the specifications as we go * along. */ static Menu * buildFromSpec(dpy, scrInfo, pmenu, deftitle) Display *dpy; ScreenInfo *scrInfo; menudata *pmenu; char *deftitle; { Menu *m; Button *b; int ii; buttondata *bdata, *bsave; Bool flpin; char *tit; char *menuHelp; char helpbuff[255]; PixInfo pixInfo; if (pmenu->pinnable) { flpin = True; if (pmenu->title == NULL) { if (deftitle == NULL) tit = MemNewString(GetString(DEFAULT_WORKSPACE_TITLE)); else tit = MemNewString(deftitle); } else tit = MemNewString(pmenu->title); } else { flpin = False; /* non-pinnable menus only get titles if they ask for them */ /* m->title must be NULL if pmenu->title is NULL */ if (pmenu->title == NULL) tit = pmenu->title; else tit = MemNewString(pmenu->title); } menuHelp = NULL; if (tit != NULL) { sprintf(helpbuff, "%s:%s", workspaceHelpStub, tit); menuHelp = MemNewString(helpbuff); } if (menuHelp == NULL && deftitle != NULL) { sprintf(helpbuff, "%s:%s", workspaceHelpStub, deftitle); menuHelp = MemNewString(helpbuff); } if (menuHelp != NULL) ReplaceChars(menuHelp, " \t", '_'); #ifdef OW_I18N_L4 if (tit == NULL) { m = NewNamedMenu(NULL, flpin, menuHelp); } else { wchar_t *wtit = mbstowcsdup(tit); MemFree(tit); m = NewNamedMenu(wtit, flpin, menuHelp); } #else m = NewNamedMenu(tit, flpin, menuHelp); #endif m->prefColSize = pmenu->columns; /* * If no default has been specified, set the first button in the menu to be * the default button. REMIND: The OL spec wants the pin, if one exists, to * be the default in such a cse. Fix this. */ for (ii = 0, bdata = pmenu->bfirst; ii < pmenu->nbuttons; ii++) { b = (Button *) MemNew(Button); if ((bdata->name) && (bdata->name[0] == '<') && (bdata->name[strlen(bdata->name) - 1] == '>')) { /* Bitmap file */ b->label[0].kind = ImageLabel; bdata->name[strlen(bdata->name) - 1] = '\0'; b->label[0].string = MemNewString(bdata->name + 1); b->label[0].pixlabel = MemNew(Pixlabel); pixInfo.bg = scrInfo->colorInfo.workspaceColor; pixInfo.fg = scrInfo->colorInfo.fgColor; pixInfo.ncolors = 0; pixInfo.colors = NULL; if (!MakePixmap(dpy, scrInfo, b->label[0].string, &pixInfo)) { b->label[0].kind = StringLabel; MemFree(b->label[0].pixlabel); } b->label[0].pixlabel->pixmap = pixInfo.pixmap; b->label[0].pixlabel->width = pixInfo.width; b->label[0].pixlabel->height = pixInfo.height; } else if (bdata->name) { b->label[0].kind = StringLabel; #ifdef OW_I18N_L4 b->label[0].string = mbstowcsdup(bdata->name); #else b->label[0].string = bdata->name; #endif } else { b->label[0].kind = NoType; b->label[0].string = NULL; } /*right now, usermenus cannot have alternate items*/ b->label[1].kind = NoType; b->label[1].string = NULL; b->which = 0; b->has_submenu = (bdata->submenu != NULL); b->enabled = (bdata->name != NULL); b->visible = True; b->callback = bdata->func; b->generate_func = bdata->generate; b->generate_args = bdata->generate_args; if (! b->has_submenu) /* multi-purpose */ b->action.command = (void *) bdata->exec; else { b->action.submenu = (void *) buildFromSpec(dpy, scrInfo, (menudata *) (bdata->submenu), bdata->name); if (b->action.submenu->buttonCount < 1 && !b->generate_func) b->enabled = False; } bsave = bdata; bdata = bdata->next; MemFree(bsave); AppendMenuItem(m, b); } if (pmenu->idefault == NOBUTTON) SetMenuDefault(m, firstEnabledItem(m)); else SetMenuDefault(m, pmenu->idefault); MemFree(pmenu->menulabel); MemFree(pmenu); return (m); } /* * initMenu - */ static void initMenu(newmenu) menudata **newmenu; { *newmenu = MemNew(menudata); (*newmenu)->title = NULL; (*newmenu)->menulabel = NULL; (*newmenu)->idefault = NOBUTTON; (*newmenu)->nbuttons = 0; (*newmenu)->pinnable = False; (*newmenu)->bfirst = (buttondata *) 0; } /* * initButton - */ static void initButton(newButton) buttondata **newButton; { *newButton = MemNew(buttondata); (*newButton)->next = NULL; (*newButton)->name = NULL; (*newButton)->isDefault = False; (*newButton)->isLast = False; (*newButton)->func = (FuncPtr) 0; (*newButton)->exec = NULL; (*newButton)->submenu = NULL; (*newButton)->generate = (FuncPtr) 0; (*newButton)->generate_args = NULL; } /* * freeMenuData - free any possibly allocated memory for this menudata * structure (and its buttons), since it's not going to be used */ static void freeMenuData(unusedMenu) menudata *unusedMenu; { buttondata *unusedButton; /* isLast probably isn't set, since this menu had an error */ if ((unusedButton = unusedMenu->bfirst) != (buttondata *) 0) freeButtonData(unusedButton); MemFree(unusedMenu->title); MemFree(unusedMenu->menulabel); MemFree(unusedMenu); } /* * freeButtonData - free any possibly allocated memory for this buttondata * structure, since it's not going to be used */ static void freeButtonData(unusedButton) buttondata *unusedButton; { if (unusedButton->next != NULL) freeButtonData(unusedButton->next); MemFree(unusedButton->name); MemFree(unusedButton->exec); if (unusedButton->submenu != NULL) freeMenuData(unusedButton->submenu); MemFree(unusedButton); } /* * freeUserMenu - free's a dynamically allocated menu and its buttons * This assumes that all components of the menu structure are * unique and dynamically allocated. */ static void freeUserMenu(menu) Menu *menu; { int i; if (menu == NULL) return; for (i = 0; i < menu->buttonCount; i++) { /* free the submenu or the command string */ if (menu->buttons[i]->has_submenu) freeUserMenu(menu->buttons[i]->action.submenu); else MemFree(menu->buttons[i]->action.command); /* * REMIND: user menus cannot yet have alternates, * nor specify help on a per item basis */ MemFree(menu->buttons[i]->label[0].string); MemFree(menu->buttons[i]); } MemFree(menu->buttons); MemFree(menu->title); MemFree(menu->helpstring); MemFree(menu); } /* * menuFileModified - check to see if any of the menu files have * been changed. Modifed is defined as any change in either * the inode or modification time of the file. A change in the * device/inode indicates a change in a symbolic link while a change * in the modification time indicates that the file has be edited. * Only true if the AutoReReadMenuFile resource is also true. */ static Bool menuFileModified() { FileInfo *fi; List *lp; struct stat statbuf; if (!GRV.AutoReReadMenuFile) return False; lp = menuFileInfo.fileinfoList; for (fi = ListEnum(&lp); fi != NULL; fi = ListEnum(&lp)) { if (stat(fi->filename, &statbuf) < 0) { return False; } if (statbuf.st_mtime != fi->mtime || statbuf.st_dev != fi->device || statbuf.st_ino != fi->inode) { return True; } } return False; } /* * addToMenuInfo - adds file and it's stat info onto the list * of FileInfo in menuFileInfo. */ static void addToMenuInfo(file) char *file; { FileInfo *fi; struct stat statbuf; if (stat(file, &statbuf) < 0) { return; } fi = MemNew(FileInfo); fi->filename = MemNewString(file); fi->device = statbuf.st_dev; fi->inode = statbuf.st_ino; fi->mtime = statbuf.st_mtime; menuFileInfo.fileinfoList = ListCons(fi, menuFileInfo.fileinfoList); } /* * freeFileInfoList - free's all the FileInfo structs in a list * and frees the list itself. */ static void freeFileInfoList(plist) List **plist; { FileInfo *fi; List *lp; List *list = *plist; if (!list) return; lp = list; for (fi = ListEnum(&lp); fi != NULL; fi = ListEnum(&lp)) { MemFree(fi->filename); MemFree(fi); } ListDestroy(list); *plist = NULL; } /********************************************************************************/ /* * Table of menus -- now located in the scrInfo structures Menu *MenuTable[NUM_MENUS]; */ /* * Title and help strings */ static char *windowTitle = "Window"; static char *frameHelpString = "window:WindowMenu"; extern Button *MakeOpenButton(), *MakeOwnerButton(), *MakeFullSizeButton(), *MakePropertiesButton(), *MakeBackButton(), *MakeDismissThisButton(), *MakeRefreshButton(), *MakeDismissButton(), *MakeResizeButton(), *MakeQuitButton(), *MakeMoveButton(), *MakeStickyButton(), *MakeDismissAllButton(); extern Button openButton, fullSizeButton, moveButton, resizeButton, propertiesButton, backButton, refreshButton, stickyButton, quitButton, dismissButton, dismissAllButton, dismissThisButton, ownerButton, moveRightButton, moveLeftButton, moveUpButton, moveDownButton, moveUpRightButton, moveDownRightButton, moveUpLeftButton, moveDownLeftButton, moveHomeButton; /* * =========================================================================== */ void SetWindowMenuLabels() { if (windowTitle) FreeText(windowTitle); windowTitle = GetText("Window"); if (openButton.label[0].string) FreeText(openButton.label[0].string); openButton.label[0].string = GetText("Open"); if (openButton.label[1].string) FreeText(openButton.label[1].string); openButton.label[1].string = GetText("Close"); if (fullSizeButton.label[0].string) FreeText(fullSizeButton.label[0].string); fullSizeButton.label[0].string = GetText("Full Size"); if (fullSizeButton.label[1].string) FreeText(fullSizeButton.label[1].string); fullSizeButton.label[1].string = GetText("Restore Size"); if (stickyButton.label[0].string) FreeText(stickyButton.label[0].string); stickyButton.label[0].string = GetText("Stick"); if (stickyButton.label[1].string) FreeText(stickyButton.label[1].string); stickyButton.label[1].string = GetText("Unstick"); if (moveButton.label[0].string) FreeText(moveButton.label[0].string); moveButton.label[0].string = GetText("Move"); if (resizeButton.label[0].string) FreeText(resizeButton.label[0].string); resizeButton.label[0].string = GetText("Resize"); if (propertiesButton.label[0].string) FreeText(propertiesButton.label[0].string); propertiesButton.label[0].string = GetText("Properties"); if (backButton.label[0].string) FreeText(backButton.label[0].string); backButton.label[0].string = GetText("Back"); if (refreshButton.label[0].string) FreeText(refreshButton.label[0].string); refreshButton.label[0].string = GetText("Refresh"); if (quitButton.label[0].string) FreeText(quitButton.label[0].string); quitButton.label[0].string = GetText("Quit"); if (dismissButton.label[0].string) FreeText(dismissButton.label[0].string); dismissButton.label[0].string = GetText("Dismiss"); if (dismissButton.label[1].string) FreeText(dismissButton.label[1].string); dismissButton.label[1].string = GetText("Cancel"); if (dismissAllButton.label[0].string) FreeText(dismissAllButton.label[0].string); dismissAllButton.label[0].string = GetText("All Pop-ups"); if (dismissThisButton.label[0].string) FreeText(dismissThisButton.label[0].string); dismissThisButton.label[0].string = GetText("This Window"); if (ownerButton.label[0].string) FreeText(ownerButton.label[0].string); ownerButton.label[0].string = GetText("Owner?"); if (moveRightButton.label[0].string) FreeText(moveRightButton.label[0].string); moveRightButton.label[0].string = GetText("Move East"); if (moveLeftButton.label[0].string) FreeText(moveLeftButton.label[0].string); moveLeftButton.label[0].string = GetText("Move West"); if (moveUpButton.label[0].string) FreeText(moveUpButton.label[0].string); moveUpButton.label[0].string = GetText("Move North"); if (moveDownButton.label[0].string) FreeText(moveDownButton.label[0].string); moveDownButton.label[0].string = GetText("Move South"); if (moveUpRightButton.label[0].string) FreeText(moveUpRightButton.label[0].string); moveUpRightButton.label[0].string = GetText("Move NorthEast"); if (moveDownRightButton.label[0].string) FreeText(moveDownRightButton.label[0].string); moveDownRightButton.label[0].string = GetText("Move SouthEast"); if (moveUpLeftButton.label[0].string) FreeText(moveUpLeftButton.label[0].string); moveUpLeftButton.label[0].string = GetText("Move NorthWest"); if (moveDownLeftButton.label[0].string) FreeText(moveDownLeftButton.label[0].string); moveDownLeftButton.label[0].string = GetText("Move SouthWest"); if (moveHomeButton.label[0].string) FreeText(moveHomeButton.label[0].string); moveHomeButton.label[0].string = GetText("Move Home"); } SetWindowMenuTitle(scrInfo) ScreenInfo *scrInfo; { scrInfo->menuTable[MENU_FULL]->title = windowTitle; scrInfo->menuTable[MENU_LIMITED]->title = windowTitle; scrInfo->menuTable[MENU_LIMITED]->buttons[0]->action.submenu->title = windowTitle; } void initMenuButtons(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { scrInfo->menuButtons.frameFullButtons = (Button **) MemAlloc(9 * sizeof(Button *)); scrInfo->menuButtons.frameFullButtonsCount = 9; scrInfo->menuButtons.frameFullButtons[0] = MakeOpenButton(dpy, scrInfo); scrInfo->menuButtons.frameFullButtons[1] = MakeFullSizeButton(dpy, scrInfo); scrInfo->menuButtons.frameFullButtons[2] = MakeMoveButton(dpy, scrInfo); scrInfo->menuButtons.frameFullButtons[3] = MakeResizeButton(dpy, scrInfo); scrInfo->menuButtons.frameFullButtons[4] = MakePropertiesButton(dpy, scrInfo); scrInfo->menuButtons.frameFullButtons[5] = MakeBackButton(dpy, scrInfo); scrInfo->menuButtons.frameFullButtons[6] = MakeRefreshButton(dpy, scrInfo); scrInfo->menuButtons.frameFullButtons[7] = MakeStickyButton(dpy, scrInfo); scrInfo->menuButtons.frameFullButtons[8] = MakeQuitButton(dpy, scrInfo); scrInfo->menuButtons.frameDismissButtons = (Button **) MemAlloc(2 * sizeof(Button *)); scrInfo->menuButtons.frameDismissButtonsCount = 2; scrInfo->menuButtons.frameDismissButtons[0] = MakeDismissThisButton(dpy, scrInfo); scrInfo->menuButtons.frameDismissButtons[1] = MakeDismissAllButton(dpy, scrInfo); scrInfo->menuButtons.frameLimitedButtons = (Button **) MemAlloc(6 * sizeof(Button *)); scrInfo->menuButtons.frameLimitedButtonsCount = 6; scrInfo->menuButtons.frameLimitedButtons[0] = MakeDismissButton(dpy, scrInfo); scrInfo->menuButtons.frameLimitedButtons[1] = MakeMoveButton(dpy, scrInfo); scrInfo->menuButtons.frameLimitedButtons[2] = MakeResizeButton(dpy, scrInfo); scrInfo->menuButtons.frameLimitedButtons[3] = MakeBackButton(dpy, scrInfo); scrInfo->menuButtons.frameLimitedButtons[4] = MakeRefreshButton(dpy, scrInfo); scrInfo->menuButtons.frameLimitedButtons[5] = MakeOwnerButton(dpy, scrInfo); } /* * InitMenus -- Creates the built-in screen-independent menus * * No longer screen independent since they can contain bitmaps */ void InitMenus(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { SetWindowMenuLabels(); initMenuButtons(dpy, scrInfo); scrInfo->menuTable[MENU_FULL] = CreateMenu(windowTitle, scrInfo->menuButtons.frameFullButtons, scrInfo->menuButtons.frameFullButtonsCount, False, frameHelpString); scrInfo->menuTable[MENU_LIMITED] = CreateMenu(windowTitle, scrInfo->menuButtons.frameLimitedButtons, scrInfo->menuButtons.frameLimitedButtonsCount, False, frameHelpString); SetMenuHier(scrInfo->menuTable[MENU_LIMITED], popup_dismissitem, CreateMenu(windowTitle, scrInfo->menuButtons.frameDismissButtons, scrInfo->menuButtons.frameDismissButtonsCount, False, frameHelpString)); InitVDMMenu(dpy, scrInfo); /* this sets ROOT_MENU */ InitUserMenu(dpy, scrInfo); } /* * Assumes that Destroy called before Create. * Assumes that the window menus will take up the first 6 slots */ void /* ARGSUSED */ CreateWindowMenuInfo(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { int origNextSlot = scrInfo->menuCache->nextSlot; scrInfo->menuCache->nextSlot = 0; (void) MenuInfoCreate(scrInfo->menuCache, scrInfo->rootwin, scrInfo->menuTable[MENU_FULL], 1, MENU_NEWSLOT); (void) MenuInfoCreate(scrInfo->menuCache, scrInfo->rootwin, scrInfo->menuTable[MENU_LIMITED], 1, MENU_NEWSLOT); scrInfo->menuCache->nextSlot = origNextSlot; } /* * firstEnabledItem -- returns the index of the first button of a menu that is * both enabled and visible. */ static int firstEnabledItem(menu) Menu *menu; { int i; for (i = 0; i < menu->buttonCount; i++) if (menu->buttons[i]->enabled && menu->buttons[i]->visible) return i; if (menu->hasPushPin) return PINBUTTON; return NOBUTTON; /*can't do anything else...*/ } Menu * GetEnabledMenu(cli, flfull, flnotitle, flsticky) Client *cli; Bool flfull; Bool flnotitle; Bool flsticky; { WMDecorations *decor = cli->wmDecors; Menu *menu; static Bool lastmouseless = True; Bool flmouseless = !(GRV.Mouseless == KbdSunView || mouselessSuspended); Bool flicon = cli->wmState != NormalState; Bool flresizable = decor->flags & WMDecorationResizeable; Bool flcancel = decor->cancel; ScreenInfo *scrInfo = cli->scrInfo; if (flmouseless != lastmouseless) { scrInfo->menuTable[MENU_FULL]->buttons[basewin_moveitem]->visible = scrInfo->menuTable[MENU_FULL]->buttons[basewin_resizeitem]->visible = scrInfo->menuTable[MENU_LIMITED]->buttons[popup_moveitem]->visible = scrInfo->menuTable[MENU_LIMITED]->buttons[popup_resizeitem]->visible = flmouseless; DirtyMenu(scrInfo->menuTable[MENU_FULL]); DirtyMenu(scrInfo->menuTable[MENU_LIMITED]); lastmouseless = flmouseless; } switch (decor->menu_type) { case MENU_FULL: menu = scrInfo->menuTable[MENU_FULL]; ToggleEnabled(menu, basewin_resizeitem, flresizable && ! flicon); ToggleEnabled(menu, basewin_zoomitem, flresizable); ToggleItem(menu, basewin_openitem, ! flicon); ToggleItem(menu, basewin_zoomitem, flfull); ToggleItem(menu, basewin_stickyitem, flsticky); break; case MENU_LIMITED: menu = scrInfo->menuTable[MENU_LIMITED]; ToggleEnabled(menu, popup_resizeitem, flresizable && ! flicon); ToggleItem(menu, popup_dismissitem, flcancel); break; default: menu = NULL; break; } if (menu) { if (cli->menuAccelerators != menu->wantAccelerators) { menu->wantAccelerators = cli->menuAccelerators; DirtyMenu(menu); } if (menu->buttons[decor->def_item]->visible) menu->buttonDefault = decor->def_item; else menu->buttonDefault = firstEnabledItem(menu); if (flnotitle) SetMenuTitle(menu, NULL); else SetMenuTitle(menu, windowTitle); } return menu; } struct _setdefinfo { WinGenericFrame *win; Menu *menu; void (*proc)(); void *data; #ifdef DEBUG Bool flinuse; #endif }; static void setFrameDefault(sdi) struct _setdefinfo *sdi; { sdi->win->core.client->wmDecors->def_item = sdi->menu->buttonDefault; if (sdi->proc) { (*sdi->proc)(SYNC_DONE, 0, sdi->data); SetClickCallback(NULL, NULL); } #ifdef DEBUG sdi->flinuse = False; #endif } static void doClickCallback(clickmode, sdi) MenuTrackMode clickmode; struct _setdefinfo *sdi; { (*sdi->proc)(SYNC_CHANGECLICK, clickmode, sdi->data); } /* * assemble a menu and show it from one of the base types * if the menu came by hitting MENU on a button, pass flbutton */ void ShowStandardMenuSync(win, eve, flbutton, proc, data) WinGenericFrame *win; XEvent *eve; Bool flbutton; void (*proc)(); void *data; { static struct _setdefinfo sdi; #ifdef DEBUG if (sdi.flinuse) fprintf(stderr, "showstandardmenusync: stranding defitem!\n"); sdi.flinuse = True; #endif sdi.menu = GetEnabledMenu(win->core.client, win->fcore.fullsize, flbutton, win->core.client->sticky); sdi.win = win; sdi.proc = proc; sdi.data = data; if (proc != NULL) { SetClickCallback(doClickCallback, &sdi); } MenuShowSync(win->core.client->dpy, win, sdi.menu, eve, setFrameDefault, &sdi, (eve->type == KeyPress) || (eve->type == KeyRelease), flbutton); } void ShowStandardMenu(win, eve, flbutton) WinGenericFrame *win; XEvent *eve; Bool flbutton; { ShowStandardMenuSync(win, eve, flbutton, NULL, NULL); } xview-3.2p1.4/clients/olvwm-4.1/usleep.c100644 1750 1750 3573 5515337325 15210 0ustar mbmb/* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifdef IDENT #ident "@(#)usleep.c 1.2 olvwm version 25 Nov 1992" #endif /* * Based on @(#)usleep.c 26.8 91/09/14 SMI * usleep() compatibility function * * Under System V, implements usleep() using the interval timer. Otherwise, * simply calls the library's usleep(). To use this implementation instead of * the library's, you must define SYSV. If you want to this implementation * to use BSD-style signals, you must define SYS *and* USE_BSD_SIGNALS, even * if you're not on System V. */ #include #include #include void olwm_do_nothing() { } int olwm_usleep(usec) unsigned int usec; { #ifdef SYSV struct itimerval new, old; #ifdef USE_BSD_SIGNALS struct sigvec new_vec, old_vec; int old_mask; #else struct sigaction new_vec, old_vec; #endif if (usec == 0) return 0; new.it_interval.tv_sec = 0; new.it_interval.tv_usec = 0; /* We only want one tick */ new.it_value.tv_sec = usec / 1000000; new.it_value.tv_usec = usec % 1000000; #ifdef USE_BSD_SIGNALS new_vec.sv_handler = olwm_do_nothing; new_vec.sv_mask= 0; new_vec.sv_flags = 0; old_mask = sigblock(sigmask(SIGALRM)); sigvec(SIGALRM, &new_vec, &old_vec); #else new_vec.sa_handler = olwm_do_nothing; sigemptyset(&new_vec.sa_mask); new_vec.sa_flags = 0; sighold(SIGALRM); sigaction(SIGALRM, &new_vec, &old_vec); #endif setitimer(ITIMER_REAL, &new, &old); #ifdef USE_BSD_SIGNALS sigpause(0); sigvec(SIGALRM, &old_vec, (struct sigvec *)0); sigsetmask(old_mask); #else sigpause(SIGALRM); sigaction(SIGALRM, &old_vec, (struct sigaction *)0); sigrelse(SIGALRM); #endif setitimer(ITIMER_REAL, &old, (struct itimerval *)0); return 0; #else SYSV return usleep(usec); #endif /* SYSV */ } xview-3.2p1.4/clients/olvwm-4.1/virtual.c100644 1750 1750 163156 5515337326 15446 0ustar mbmb/* * (c) Copyright 1991 Scott Oaks. See LEGAL_NOTICE file for terms of the * license */ #include #include #include #include #include #include #include #include #include #include #include #include "i18n.h" #include "ollocale.h" #include "mem.h" #include "olwm.h" #include "st.h" #include "globals.h" #include "win.h" #include "menu.h" #include "math.h" #include "virtual.h" #include "patchlevel.h" #include "vdm.icon" #include "vdm.mask" #define INIT register char *sp = instring; #define GETC() (*sp++) #define PEEKC() (*sp) #define UNGETC(c) (--sp) #define RETURN(c) return; #define ERROR(val) regerr(val) #define TRUE 1 #define FALSE 0 #include #ifdef REGEXP regexp *expbuf; #endif #ifdef IDENT #ident "@(#)virtual.c 1.6 olvwm version 07 Jan 1994" #endif /* Class Function Vector; a virtual pane is the VDM window in which all * the little virtual windows appear (and to which said windows are * parented) */ static ClassVirtualPane classVirtualPane; /* * Last select time in the VDM. This is technically different for each * VDM, but who can click in a VDM, move between screens, and then click * again? */ static int lastSelectTime; extern List *ScreenInfoList; extern Button *MakeUpLeftButton(),*MakeLeftButton(),*MakeDownLeftButton(), *MakeUpButton(),*MakeHomeButton(),*MakeDownButton(), *MakeUpRightButton(),*MakeRightButton(),*MakeDownRightButton(); extern char *ExpandPath(); /* * Semantic action associated with each of the buttons above. These must * be in the same order as the button array; it would be better if the Button * structure had an opaque entry for this purpose. */ static SemanticAction vdmButtonActions[] = { ACTION_UPLEFT, ACTION_LEFT, ACTION_DOWNLEFT, ACTION_UP, ACTION_HOME, ACTION_DOWN, ACTION_UPRIGHT, ACTION_RIGHT, ACTION_DOWNRIGHT, }; static unsigned char pixdata[] = { 0xaa, 0x55 }; #define VDMSelectMask (ButtonPressMask | ButtonReleaseMask | \ ButtonMotionMask | ExposureMask ) #define CEIL(a,b) (((a)+(b)-1)/(b)) /* * ========================================================================== * * VDM Utility/Drawing/Moving Functions * */ /* * Draw the dotted lines on the VDM background */ static void drawVDMGrid(dpy, vdm) Display *dpy; VirtualDesktop *vdm; { int i; XPoint pts[5]; int dh = DisplayHeight(dpy, vdm->client->screen); int dw = DisplayWidth(dpy, vdm->client->screen); ScreenInfo *scrInfo = vdm->client->scrInfo; XClearArea(dpy, PANEWINOFCLIENT(vdm->client), 0, 0, 0, 0, 0); XSetForeground(dpy, scrInfo->gc[VDM_GC], scrInfo->colorInfo.virtualGridColor); if (vdm->resources->grid == GridVisible) { XSetLineAttributes(dpy, scrInfo->gc[VDM_GC], 0, LineOnOffDash, CapNotLast, JoinMiter); pts[0].y = 0; pts[1].y = vdm->height; for (i = dw; i < vdm->absoluteWidth; i += dw) { pts[0].x = pts[1].x = i / vdm->resources->scale; XDrawLines(dpy, PANEWINOFCLIENT(vdm->client), scrInfo->gc[VDM_GC], pts, 2, CoordModeOrigin); } pts[0].x = 0; pts[1].x = vdm->width; for (i = dh; i < vdm->absoluteHeight; i+= dh) { pts[0].y = pts[1].y = i / vdm->resources->scale; XDrawLines(dpy, PANEWINOFCLIENT(vdm->client), scrInfo->gc[VDM_GC], pts, 2, CoordModeOrigin); } XSetLineAttributes(dpy, scrInfo->gc[VDM_GC], 0, LineSolid, CapNotLast, JoinMiter); } pts[0].x = pts[4].x = -vdm->offsetX / vdm->resources->scale; pts[0].y = pts[4].y = -vdm->offsetY / vdm->resources->scale; pts[1].x = (dw - vdm->offsetX) / vdm->resources->scale; pts[1].y = pts[0].y; pts[2].x = pts[1].x; pts[2].y = (dh - vdm->offsetY) / vdm->resources->scale; pts[3].x = pts[0].x; pts[3].y = pts[2].y; XDrawLines(dpy, PANEWINOFCLIENT(vdm->client), scrInfo->gc[VDM_GC], pts, 5, CoordModeOrigin); XSetForeground(dpy, scrInfo->gc[VDM_GC], scrInfo->colorInfo.virtualFontColor); } /* * Function for re-placing (not replacing!) all windows when the view into * the desktop is changed */ typedef struct _replacestickyinfo { struct deltas *deltas; int screen; } replaceStickyInfo; static void * replaceSticky(cli, c) Client *cli; replaceStickyInfo *c; { WinGenericFrame *win; if (cli->screen != c->screen) return NULL; if (cli->wmInstance && !strcmp(cli->wmInstance, "OI_TRANSIENT")) return NULL; if (cli->wmClass && !strcmp(cli->wmClass, "OI_TRANSIENT")) return NULL; if (cli && !cli->sticky) { win = (WinGenericFrame *) cli->framewin; if (win) GFrameSetConfig(win, (int) (win->core.x - c->deltas->delta_x), (int) (win->core.y - c->deltas->delta_y), win->core.width, win->core.height); win = (WinGenericFrame *) cli->iconwin; if (win) GFrameSetConfig(win, (int) (win->core.x - c->deltas->delta_x), (int) (win->core.y - c->deltas->delta_y), win->core.width, win->core.height); } else if (cli) { /* * client is sticky; its real window stays where it is but its * virtual window must move */ if (cli->framewin) XMoveWindow(cli->dpy, cli->framewin->core.virtual, (cli->framewin->core.x) / cli->scrInfo->vdm->resources->scale + cli->scrInfo->vdm->screenX, (cli->framewin->core.y) / cli->scrInfo->vdm->resources->scale + cli->scrInfo->vdm->screenY); if (cli->iconwin) XMoveWindow(cli->dpy, cli->iconwin->core.virtual, (cli->iconwin->core.x) / cli->scrInfo->vdm->resources->scale + cli->scrInfo->vdm->screenX, (cli->iconwin->core.y) / cli->scrInfo->vdm->resources->scale + cli->scrInfo->vdm->screenY); } return NULL; } static void moveDesktop(dpy, deltas, vdm) Display *dpy; struct deltas *deltas; VirtualDesktop *vdm; { extern List *ActiveClientList; replaceStickyInfo info; vdm->offsetX -= deltas->delta_x; vdm->offsetY -= deltas->delta_y; vdm->screenX = -vdm->offsetX / vdm->resources->scale; vdm->screenY = -vdm->offsetY / vdm->resources->scale; info.screen = vdm->client->screen; info.deltas = deltas; ListApply(ActiveClientList, replaceSticky, &info); drawVDMGrid(dpy, vdm); } /* * Make sure the given deltas don't move off the screen */ static void constrainDeltas(dpy, vdm, deltas) Display *dpy; VirtualDesktop *vdm; struct deltas *deltas; { int dw = DisplayWidth(dpy, vdm->client->screen); int dh = DisplayHeight(dpy, vdm->client->screen); if (vdm->offsetX - deltas->delta_x < dw - vdm->absoluteWidth) deltas->delta_x = vdm->offsetX + vdm->absoluteWidth - dw; else if (vdm->offsetX - deltas->delta_x > 0) deltas->delta_x = vdm->offsetX; if (vdm->offsetY - deltas->delta_y < dh - vdm->absoluteHeight) deltas->delta_y = vdm->offsetY + vdm->absoluteHeight - dh; else if (vdm->offsetY - deltas->delta_y > 0) deltas->delta_y = vdm->offsetY; } static Bool vdmPerformAction(dpy, vdm, a) Display *dpy; VirtualDesktop *vdm; SemanticAction a; { struct deltas deltas; int dh = DisplayHeight(dpy, vdm->client->screen); int dw = DisplayWidth(dpy, vdm->client->screen); deltas.delta_x = deltas.delta_y = 0; switch(a) { case ACTION_UP: case ACTION_UP_V: deltas.delta_y = -dh; break; case ACTION_JUMP_UP: deltas.delta_y = -dh * 20; break; case ACTION_HALF_UP: deltas.delta_y = -dh * .5; break; case ACTION_DOWN: case ACTION_DOWN_V: deltas.delta_y = dh; break; case ACTION_JUMP_DOWN: deltas.delta_y = dh * 20; break; case ACTION_HALF_DOWN: deltas.delta_y = dh * .5; break; case ACTION_LEFT: case ACTION_LEFT_V: deltas.delta_x = -dw; break; case ACTION_JUMP_LEFT: deltas.delta_x = -dw * 20; break; case ACTION_HALF_LEFT: deltas.delta_x = -dw * .5; break; case ACTION_RIGHT: case ACTION_RIGHT_V: deltas.delta_x = dw; break; case ACTION_JUMP_RIGHT: deltas.delta_x = dw * 20; break; case ACTION_HALF_RIGHT: deltas.delta_x = dw * .5; break; case ACTION_UPLEFT: case ACTION_UPLEFT_V: deltas.delta_x = -dw; deltas.delta_y = -dh; break; case ACTION_JUMP_UPLEFT: deltas.delta_x = -dw * 20; deltas.delta_y = -dh * 20; break; case ACTION_HALF_UPLEFT: deltas.delta_x = -dw * .5; deltas.delta_y = -dh * .5; break; case ACTION_UPRIGHT: case ACTION_UPRIGHT_V: deltas.delta_x = dw; deltas.delta_y = -dh; break; case ACTION_JUMP_UPRIGHT: deltas.delta_x = dw * 20; deltas.delta_y = -dh * 20; break; case ACTION_HALF_UPRIGHT: deltas.delta_x = dw * .5; deltas.delta_y = -dh * .5; break; case ACTION_HOME: case ACTION_HOME_V: deltas.delta_x = vdm->offsetX; deltas.delta_y = vdm->offsetY; break; case ACTION_DOWNLEFT: case ACTION_DOWNLEFT_V: deltas.delta_x = -dw; deltas.delta_y = dh; break; case ACTION_JUMP_DOWNLEFT: deltas.delta_x = -dw * 20; deltas.delta_y = dh * 20; break; case ACTION_HALF_DOWNLEFT: deltas.delta_x = -dw * .5; deltas.delta_y = dh * .5; break; case ACTION_DOWNRIGHT: case ACTION_DOWNRIGHT_V: deltas.delta_x = dw; deltas.delta_y = dh; break; case ACTION_JUMP_DOWNRIGHT: deltas.delta_x = dw * 20; deltas.delta_y = dh * 20; break; case ACTION_HALF_DOWNRIGHT: deltas.delta_x = dw * .5; deltas.delta_y = dh * .5; break; case ACTION_GOTO_1: case ACTION_GOTO_2: case ACTION_GOTO_3: case ACTION_GOTO_4: case ACTION_GOTO_5: case ACTION_GOTO_6: case ACTION_GOTO_7: case ACTION_GOTO_8: case ACTION_GOTO_9: case ACTION_GOTO_10: deltas.delta_x = vdm->offsetX + ((int) (a - ACTION_GOTO_1) % vdm->columns) * dw; deltas.delta_y = vdm->offsetY + ((int) (a - ACTION_GOTO_1) / vdm->columns) * dh; break; default: return False; } constrainDeltas(dpy, vdm, &deltas); if (fabs(deltas.delta_x) < 0.1 && fabs(deltas.delta_y) < 0.1) return False; moveDesktop(dpy, &deltas, vdm); return True; } /* * Given root and logical coordinates relative to the VDM, turn them into * absolute screen coordinates */ static void translateVirtualCoords(vdm, root_x, root_y, x, y) VirtualDesktop *vdm; int *root_x, *root_y, *x, *y; { int tx, ty; unsigned int tw, th, bw, d; Window root; if (x) *x *= vdm->resources->scale; if (y) *y *= vdm->resources->scale; if (!root_x || !root_y) return; XGetGeometry(vdm->client->dpy, vdm->client->framewin->core.self, &root, &tx, &ty, &tw, &th, &bw, &d); *root_x -= tx; *root_y -= ty; XGetGeometry(vdm->client->dpy, vdm->client->framewin->fcore.panewin->core.self, &root, &tx, &ty, &tw, &th, &bw, &d); *root_x -= tx; *root_y -= ty; *root_x *= vdm->resources->scale; *root_x += vdm->offsetX; *root_y *= vdm->resources->scale; *root_y += vdm->offsetY; } void calculateVirtualDesktopSize(dpy, screen, v) Display *dpy; int screen; VirtualDesktop *v; { int width, height; int dw = DisplayWidth(dpy, screen); int dh = DisplayHeight(dpy, screen); sscanf(v->resources->size, "%dx%d", &width, &height); if (width < dw) v->columns = width; else v->columns = CEIL(width, dw); if (height < dh) v->rows = height; else v->rows = CEIL(height, dh); v->absoluteWidth = v->columns * dw; v->absoluteHeight = v->rows * dh; v->screenWidth = dw / v->resources->scale; v->screenHeight = dh / v->resources->scale; if (v->resources->grid) { v->width = v->columns * v->screenWidth; v->height = v->rows * v->screenHeight; } else { v->width = v->absoluteWidth / v->resources->scale; v->height = v->absoluteHeight / v->resources->scale; } } /* * Allocate a virtual desktop for the given screen. * See virtual.h for a definition of all the fields in the returned structure. * * This doesn't deal with the window stuff, just with the fields. The * window is actually created and the colors set etc. below in MakeVDM * */ static VirtualDesktop * allocVirtualDesktop(dpy, screen, rsc) Display *dpy; int screen; VirtualResources *rsc; { VirtualDesktop *v; v = (VirtualDesktop *) MemAlloc(sizeof(VirtualDesktop)); v->resources = rsc; v->offsetX = 0; v->offsetY = 0; v->screenX = 0; v->screenY = 0; calculateVirtualDesktopSize(dpy, screen, v); return v; } static void constrainOutline(dpy, stuff, x, y, snap) Display *dpy; VDMstuff *stuff; int x, y, snap; { int dw = DisplayWidth(dpy, stuff->vdm->client->screen); int dh = DisplayHeight(dpy, stuff->vdm->client->screen); if (snap) { stuff->vdm->screenX = (((x * stuff->vdm->resources->scale) / dw) * dw) / stuff->vdm->resources->scale; stuff->vdm->screenY = (((y * stuff->vdm->resources->scale) / dh) * dh) / stuff->vdm->resources->scale; } else { stuff->vdm->screenX = x - stuff->pointerX + stuff->initX; stuff->vdm->screenY = y - stuff->pointerY + stuff->initY; } if (stuff->vdm->screenX < 0) stuff->vdm->screenX = 0; else if (stuff->vdm->screenX + stuff->vdm->screenWidth > stuff->vdm->width + stuff->vdm->resources->scale) stuff->vdm->screenX = (stuff->vdm->absoluteWidth - dw) / stuff->vdm->resources->scale; if (stuff->vdm->screenY < 0) stuff->vdm->screenY = 0; else if (stuff->vdm->screenY + stuff->vdm->screenHeight > stuff->vdm->height + stuff->vdm->resources->scale) stuff->vdm->screenY = (stuff->vdm->absoluteHeight - dh) / stuff->vdm->resources->scale; } /* * ========================================================================== * Interposition functions for mouse dragging */ static void vdmMoveUpdate(ev, stuff) XEvent *ev; VDMstuff *stuff; { XDrawRectangle(stuff->vdm->client->dpy, PANEWINOFCLIENT(stuff->vdm->client), stuff->gc, stuff->vdm->screenX, stuff->vdm->screenY, stuff->vdm->screenWidth + 1, stuff->vdm->screenHeight); constrainOutline(stuff->vdm->client->dpy, stuff, ev->xmotion.x, ev->xmotion.y, (stuff->vdm->resources->grid) ? !(ev->xbutton.state & ControlMask) : (ev->xbutton.state & ControlMask)); XDrawRectangle(stuff->vdm->client->dpy, PANEWINOFCLIENT(stuff->vdm->client), stuff->gc, stuff->vdm->screenX, stuff->vdm->screenY, stuff->vdm->screenWidth + 1, stuff->vdm->screenHeight); stuff->numMoves++; } static void vdmMoveDone(ev, stuff) XEvent *ev; VDMstuff *stuff; { struct deltas deltas; int dw = DisplayWidth(stuff->vdm->client->dpy, stuff->vdm->client->screen); int dh = DisplayHeight(stuff->vdm->client->dpy, stuff->vdm->client->screen); UninstallInterposer(); XDrawRectangle(stuff->vdm->client->dpy, PANEWINOFCLIENT(stuff->vdm->client), stuff->gc, stuff->vdm->screenX, stuff->vdm->screenY, stuff->vdm->screenWidth + 1, stuff->vdm->screenHeight); if (ev->xbutton.time - lastSelectTime <= GRV.DoubleClickTime) { translateVirtualCoords(stuff->vdm, &ev->xbutton.x_root, &ev->xbutton.y_root, &ev->xbutton.x, &ev->xbutton.y); VDMMoveTo(stuff->vdm->client->dpy, stuff->vdm->client, ev->xbutton.x_root, ev->xbutton.y_root); return; } lastSelectTime = ev->xbutton.time; if (!stuff->numMoves) return; constrainOutline(stuff->vdm->client->dpy, stuff, ev->xmotion.x, ev->xmotion.y, (stuff->vdm->resources->grid) ? !(ev->xbutton.state & ControlMask) : (ev->xbutton.state & ControlMask)); drawVDMGrid(stuff->vdm->client->dpy, stuff->vdm); deltas.delta_x = (stuff->vdm->screenX - stuff->initX) * stuff->vdm->resources->scale + stuff->vdm->resources->scale; deltas.delta_y = (stuff->vdm->screenY - stuff->initY) * stuff->vdm->resources->scale + stuff->vdm->resources->scale; if ((stuff->vdm->resources->grid && !(ev->xbutton.state & ControlMask)) || (!stuff->vdm->resources->grid && (ev->xbutton.state & ControlMask))) { deltas.delta_x = (((int) (deltas.delta_x - stuff->vdm->offsetX) / dw) * dw) + stuff->vdm->offsetX; deltas.delta_y = (((int) (deltas.delta_y - stuff->vdm->offsetY) / dh) * dh) + stuff->vdm->offsetY; } moveDesktop(stuff->vdm->client->dpy, &deltas, stuff->vdm); } static Bool /* ARGSUSED */ vdmInterposer(dpy, event, w, stuff) Display *dpy; XEvent *event; WinGeneric *w; VDMstuff *stuff; { XEvent nextevent; SemanticAction action; switch(event->type) { case ButtonRelease: if (AllButtonsUp(event)) { vdmMoveDone(event, stuff); } break; case MotionNotify: if (!event->xmotion.same_screen) break; if ((XEventsQueued(dpy, QueuedAfterReading) > 0) && (XPeekEvent(dpy, &nextevent), nextevent.type == MotionNotify)) /* Ignore this event, there's another one coming */ break; vdmMoveUpdate(event, stuff); break; case Expose: return DISPOSE_DISPATCH; case KeyPress: action = FindKeyboardAction(dpy, event); if (action == ACTION_STOP) { event->xany.type = ButtonRelease; event->xbutton.time = 0; stuff->numMoves = 0; vdmMoveDone(event, stuff); } else return DISPOSE_DEFER; break; default: return DISPOSE_DEFER; } return DISPOSE_USED; } /* * =========================================================================== * * Event functions for the VDM */ static vdmExpose(dpy, event, winInfo) Display *dpy; XEvent *event; WinGeneric *winInfo; { XEvent dummy; if (event->xexpose.count) return; drawVDMGrid(dpy, winInfo->core.client->scrInfo->vdm); while (XCheckTypedWindowEvent(dpy, event->xany.window, Expose, &dummy)) ; /* empty */ } static vdmKeyPress(dpy, ev, winInfo) Display *dpy; XEvent *ev; WinGeneric *winInfo; { if (!KeyMoveVDM(dpy, ev)) if (GRV.Beep == BeepAlways) NoFocusEventBeep(dpy, ev, winInfo); } static vdmConfigure(dpy, event, winInfo) Display *dpy; XConfigureEvent *event; WinVirtual *winInfo; { VirtualDesktop *vdm; int dw, dh; Bool doit; struct deltas deltas; vdm = winInfo->core.client->scrInfo->vdm; dw = DisplayWidth(dpy, winInfo->core.client->screen); dh = DisplayHeight(dpy, winInfo->core.client->screen); vdm->width = event->width; vdm->height = event->height; if (vdm->resources->grid) { vdm->absoluteHeight = (vdm->height - 3) * vdm->resources->scale; vdm->absoluteHeight = ((vdm->absoluteHeight - 1) / dh + 1) * dh; vdm->absoluteWidth = (vdm->width - 3) * vdm->resources->scale; vdm->absoluteWidth = ((vdm->absoluteWidth - 1) / dw + 1) * dw; vdm->rows = CEIL(vdm->absoluteHeight, dh); vdm->columns = CEIL(vdm->absoluteWidth, dw); } else { vdm->absoluteHeight = vdm->height * vdm->resources->scale; vdm->absoluteWidth = vdm->width * vdm->resources->scale; vdm->rows = CEIL(vdm->absoluteHeight, dh); vdm->columns = CEIL(vdm->absoluteWidth, dw); } doit = False; deltas.delta_x = deltas.delta_y = 0; if (vdm->screenX + vdm->screenWidth > vdm->width) { doit = True; deltas.delta_x = (vdm->width - vdm->screenWidth - vdm->screenX) * vdm->resources->scale; } if (vdm->screenY + vdm->screenHeight > vdm->height) { doit = True; deltas.delta_y = (vdm->height - vdm->screenHeight - vdm->screenY) * vdm->resources->scale; } if (doit) { if (deltas.delta_x < 0) deltas.delta_x = ((int) (deltas.delta_x - vdm->resources->scale) / dw) * dw; else deltas.delta_x = ((int) (deltas.delta_x + vdm->resources->scale) / dw) * dw; if (deltas.delta_y < 0) deltas.delta_y = ((int) (deltas.delta_y - vdm->resources->scale) / dh) * dh; else deltas.delta_y = ((int) (deltas.delta_y + vdm->resources->scale) / dh) * dh; moveDesktop(dpy, &deltas, vdm); } } static vdmNewConfigure(winInfo, pxcre) WinVirtual *winInfo; XConfigureRequestEvent *pxcre; { int oldWidth, oldHeight, oldX, oldY; Client *cli = winInfo->core.client; WinPaneFrame *winFrame = cli->framewin; if (!pxcre) return winInfo->core.dirtyconfig; WinRootPos(winInfo, &oldX, &oldY); oldWidth = winInfo->core.width; oldHeight = winInfo->core.height; if ((pxcre->value_mask & CWHeight) && (pxcre->height != oldHeight)) { winInfo->core.height = pxcre->height; winInfo->core.dirtyconfig |= CWHeight; } if ((pxcre->value_mask & CWWidth) && (pxcre->width != oldWidth)) { winInfo->core.width = pxcre->width; winInfo->core.dirtyconfig |= CWWidth; } /*if (pxcre->value_mask & CWBorderWidth) winFrame->pcore.oldBorderWidth = pxcre->border_width;*/ if (pxcre->value_mask & (CWX|CWY)) FrameSetPosAbsolute(winFrame, (pxcre->value_mask & CWX) ? (pxcre->x) : oldX, (pxcre->value_mask & CWY) ? (pxcre->y) : oldY); if (pxcre->value_mask & (CWStackMode | CWSibling)) GFrameSetStack(winFrame, pxcre->value_mask, pxcre->detail, pxcre->above); return winInfo->core.dirtyconfig; } static vdmButtonPress(dpy, event, winInfo) Display *dpy; XEvent *event; WinGeneric *winInfo; { static VDMstuff stuff; SemanticAction a; ScreenInfo *scrInfo = winInfo->core.client->scrInfo; a = ResolveMouseBinding(dpy, event, ModMaskMap[MOD_CONSTRAIN] | ModMaskMap[MOD_INVERT] | ModMaskMap[MOD_REDUCE]); switch(a) { case ACTION_SELECT: stuff.vdm = scrInfo->vdm; stuff.pointerX = event->xbutton.x; stuff.pointerY = event->xbutton.y; stuff.gc = scrInfo->gc[ROOT_GC]; stuff.initX = scrInfo->vdm->screenX; stuff.initY = scrInfo->vdm->screenY; stuff.numMoves = 0; XDrawRectangle(stuff.vdm->client->dpy, PANEWINOFCLIENT(stuff.vdm->client), stuff.gc, stuff.vdm->screenX, stuff.vdm->screenY, stuff.vdm->screenWidth + 1, stuff.vdm->screenHeight); InstallInterposer(vdmInterposer, &stuff); break; case ACTION_MENU: MenuShowSync(dpy, winInfo, scrInfo->menuTable[MENU_VDM], event, NULL, NULL, False, False); break; } } static /* ARGSUSED */ vdmRedraw(dpy, win) Display *dpy; WinGeneric *win; { drawVDMGrid(win->core.client->dpy, win->core.client->scrInfo->vdm); } static vdmExit() { fprintf(stderr, "VDM destroy\n"); } static vdmButtonRelease() { /* * Need this for middle button presses */ } static vdmSetConfigure(dpy, winInfo) Display *dpy; WinVirtual *winInfo; { XConfigureEvent ce; XWindowChanges xwc; if (winInfo->core.dirtyconfig) { xwc.x = winInfo->core.x; xwc.y = winInfo->core.y; xwc.width = winInfo->core.width; xwc.height = winInfo->core.height; ConfigureWindow(dpy, winInfo, winInfo->core.dirtyconfig, &xwc); winInfo->core.dirtyconfig &= ~(CWX|CWY|CWWidth|CWHeight); } ce.type = ConfigureNotify; ce.serial = 0L; ce.event = winInfo->core.self; ce.window = winInfo->core.self; WinRootPos(winInfo, &ce.x, &ce.y); ce.width = winInfo->core.width; ce.height = winInfo->core.height; ce.border_width = 0; ce.above = None; ce.override_redirect = False; /* * Elsewhere, we send a configure event to the client, but since the * client is us, let's just call that function directly . . . */ vdmConfigure(dpy, &ce, winInfo); } static vdmButtonMotion() { /* * Need this for middle button presses */ } static vdmNewpos(win, x, y) WinVirtual *win; int x, y; { if (win->core.x != x) { win->core.x = x; win->core.dirtyconfig |= CWX; } if (win->core.y != y) { win->core.y = y; win->core.dirtyconfig |= CWY; } return win->core.dirtyconfig; } static vdmSelect() { } /* * setsizePane - set the pane to a particular size, and initiate a reconfigure */ static int vdmSetSize(win,w,h) WinVirtual *win; int w, h; { if (win->core.width != w) { win->core.width = w; win->core.dirtyconfig |= CWWidth; } if (win->core.height != h) { win->core.height = h; win->core.dirtyconfig |= CWHeight; } } /* * Callback function when VDM frame is mapped */ static vdmSetupFrame(win, cli, frame) WinGeneric *win; Client *cli; WinGenericFrame *frame; { frame->fcore.panewin = (WinGenericPane *) win; cli->scrInfo->vdm->client = cli; cli->sticky = True; cli->flags |= CLOlwmOwned; win->core.parent = (WinGeneric *) frame; WinAddChild(frame, win); XReparentWindow(cli->dpy, win->core.self, frame->core.self, win->core.x, win->core.y); cli->wmHints->icon_pixmap = XCreateBitmapFromData(cli->dpy, RootWindow(cli->dpy, cli->screen), (char *) vdm_bits, vdm_width, vdm_height); cli->wmHints->icon_mask = XCreateBitmapFromData(cli->dpy, RootWindow(cli->dpy, cli->screen), (char *) vdmmask_bits, vdmmask_width, vdmmask_height); } static /* ARGSUSED */ vdmComputeWidth(dpy, event, winInfo) Display *dpy; XEvent *event; WinGeneric *winInfo; { } static /* ARGSUSED */ vdmComputeHeight(dpy, event, winInfo) Display *dpy; XEvent *event; WinGeneric *winInfo; { } static vdmProperty(dpy, event, winInfo) Display *dpy; XPropertyEvent *event; WinVirtual *winInfo; { Window pane; XSizeHints sizeHints; Bool preICCCM; Client *cli = winInfo->core.client->scrInfo->vdm->client; switch(event->atom) { case XA_WM_NORMAL_HINTS: StateUpdateWMNormalHints(cli, event); break; case XA_WM_NAME: FrameUpdateHeader(cli, event); break; } } /* * ======================================================================= * VDM Service Functions */ static XTextProperty * MakeWTitle(rsc) VirtualResources *rsc; { static XTextProperty newName; newName.value = (unsigned char *) strrchr(rsc->background, '/'); if (!newName.value) newName.value = (unsigned char *) rsc->background; else newName.value++; newName.encoding = XA_STRING; newName.format = 8; newName.nitems = strlen((char*) newName.value); return &newName; } void SetWName(dpy, vdm) Display *dpy; VirtualDesktop *vdm; { XSetWMName(dpy, PANEWINOFCLIENT(vdm->client), MakeWTitle(vdm->resources)); } void RedrawVDM(vdm) VirtualDesktop *vdm; { drawVDMGrid(vdm->client->dpy, vdm); } /* ARGSUSED */ void VirtualInit(dpy) Display *dpy; { classVirtualPane.core.kind = WIN_VIRTUAL; classVirtualPane.core.xevents[KeyPress] = vdmKeyPress; classVirtualPane.core.xevents[ButtonPress] = vdmButtonPress; classVirtualPane.core.xevents[ButtonRelease] = vdmButtonRelease; classVirtualPane.core.xevents[MotionNotify] = vdmButtonMotion; classVirtualPane.core.xevents[ConfigureNotify] = vdmConfigure; classVirtualPane.core.xevents[Expose] = vdmExpose; classVirtualPane.core.xevents[PropertyNotify] = vdmProperty; classVirtualPane.core.focusfunc = NULL; classVirtualPane.core.drawfunc = vdmRedraw; classVirtualPane.core.destroyfunc = vdmExit; classVirtualPane.core.selectfunc = vdmSelect; classVirtualPane.core.newconfigfunc = vdmNewConfigure; classVirtualPane.core.newposfunc = vdmNewpos; classVirtualPane.core.setconfigfunc = vdmSetConfigure; classVirtualPane.core.createcallback = vdmSetupFrame; classVirtualPane.core.heightfunc = vdmComputeHeight; classVirtualPane.core.widthfunc = vdmComputeWidth; classVirtualPane.pcore.setsizefunc = vdmSetSize; } /* * Create an instance of the VDM -- this creates the logical virtual desktop * and then creates the VDM representation of it. */ void MakeVDM(dpy, scrInfo, client, rsc) Display *dpy; ScreenInfo *scrInfo; Client *client; VirtualResources *rsc; { static XTextProperty wName = {(unsigned char *) "Virtual Desktop", XA_STRING, 8, 15 }; static XTextProperty iName = {(unsigned char *) "Desktop", XA_STRING, 8, 7 }; XTextProperty *wTitle; XSetWindowAttributes attr; XSizeHints *sizeHints; XWMHints *wmHints; XClassHint *classHints; unsigned attrMask; WinVirtual *w; VirtualDesktop *v; v = allocVirtualDesktop(dpy, scrInfo->screen, rsc); w = MemNew(WinVirtual); sizeHints = XAllocSizeHints(); sizeHints->flags = PBaseSize; sizeHints->base_width = v->width; sizeHints->base_height = v->height; sizeHints->min_width = v->screenWidth; sizeHints->min_height = v->screenHeight; if (rsc->grid) { sizeHints->flags = PMinSize | PResizeInc; sizeHints->width_inc = v->screenWidth; sizeHints->height_inc = v->screenHeight; } else sizeHints->flags = PMinSize; /* REMIND Add an icon file attrbute */ wmHints = XAllocWMHints(); if (GRV.VirtualIconic) wmHints->initial_state = IconicState; else wmHints->initial_state = NormalState; wmHints->flags = StateHint | InputHint | IconWindowHint; wmHints->input = False; wmHints->icon_window = XCreateSimpleWindow(dpy, RootWindow(dpy, scrInfo->screen), 0, 0, vdm_width, vdm_height, 0, 0, scrInfo->colorInfo.workspaceRootPixel); classHints = XAllocClassHint(); classHints->res_name = "virtualDesktop"; classHints->res_class = "olvwm"; attrMask = CWEventMask; if ((DefaultDepth(dpy, scrInfo->screen) == 1) && !rsc->background) { attrMask |= CWBackPixmap; attr.background_pixmap = XCreatePixmapFromBitmapData(dpy, RootWindow(dpy, scrInfo->screen), (char *) pixdata, 8, 2, scrInfo->colorInfo.fgColor, scrInfo->colorInfo.bgColor, 1); } else if (!rsc->background) { attrMask |= CWBackPixel; attr.background_pixel = scrInfo->colorInfo.virtualBgColor; } else { attrMask |= CWBackPixmap; rsc->pixInfo.ncolors = 0; rsc->pixInfo.colors = NULL; rsc->pixInfo.fg = scrInfo->colorInfo.virtualFgColor; rsc->pixInfo.bg = scrInfo->colorInfo.virtualBgColor; if (MakePixmap(dpy, scrInfo, rsc->background, &rsc->pixInfo)) { attr.background_pixmap = rsc->pixInfo.pixmap; sizeHints->flags |= PMaxSize; sizeHints->max_width = rsc->pixInfo.width; sizeHints->max_height = rsc->pixInfo.height; } else { attr.background_pixmap = XCreatePixmapFromBitmapData(dpy, RootWindow(dpy, scrInfo->screen), (char *) pixdata, 8, 2, scrInfo->colorInfo.fgColor, scrInfo->colorInfo.bgColor, DefaultDepth(dpy, scrInfo->screen)); } } attr.event_mask = ExposureMask | ButtonPressMask | ButtonReleaseMask | ButtonMotionMask | KeyPressMask | PropertyChangeMask; w->class = &classVirtualPane; w->core.kind = WIN_VIRTUAL; w->core.children = NULL; w->core.client = client; w->core.x = sizeHints->x; w->core.y = sizeHints->y; w->core.width = sizeHints->base_width; w->core.height = sizeHints->base_height; w->core.dirtyconfig = CWX | CWY | CWWidth | CWHeight; w->core.exposures = NULL; w->core.helpstring = "olvwm:VDM"; w->core.colormap = NULL; /* initialized in callback */ w->core.self = XCreateWindow(dpy, RootWindow(dpy, scrInfo->screen), sizeHints->x, sizeHints->y, sizeHints->base_width, sizeHints->base_height, 0, /* REMIND olwm visual affects this? */ DefaultDepth(dpy, scrInfo->screen), InputOutput, CopyFromParent, attrMask, &attr); wTitle = &wName; if (rsc->pixInfo.pixmap != None) { wTitle = MakeWTitle(rsc); XFreePixmap(dpy, rsc->pixInfo.pixmap); } XSetWMProperties(dpy, w->core.self, wTitle, &iName, NULL, 0, sizeHints, wmHints, classHints); WIInstallInfo((WinGeneric *)w); scrInfo->vdm = v; v->client = StateNew(dpy, RootWindow(dpy, scrInfo->screen), w->core.self, False, w); /* * Sigh -- the call back was called before the icon frame was created * so we can't do this there like we'd like to. And it was called * after StateNew processes the wmHints . . . */ ((WinIconPane *) v->client->iconwin->fcore.panewin)->iconPixmap = v->client->wmHints->icon_pixmap; ((WinIconPane *) v->client->iconwin->fcore.panewin)->iconMask = v->client->wmHints->icon_mask; VirtualSetGeometry(v->client->framewin, v->client->scrInfo->vdm->resources->geometry); VirtualSetGeometry(v->client->iconwin, v->client->scrInfo->vdm->resources->iconGeometry); XFree((char *) sizeHints); XFree((char *) wmHints); XFree((char *) classHints); } void DestroyVDM(dpy, vdm, cm) Display *dpy; VirtualDesktop *vdm; Colormap *cm; { FreePixmapColors(dpy, vdm->resources->pixInfo.ncolors, vdm->resources->pixInfo.colors, cm); MemFree(vdm->resources); MemFree(vdm); } void InitVDMMenu(dpy, scrInfo) Display *dpy; ScreenInfo *scrInfo; { char title[20]; Button *vdmButtons[9]; /* * Make the VDMs menu */ sprintf(title, "OLVWM 4.%0d", PATCHLEVELv4); vdmButtons[0] = MakeUpLeftButton(dpy, scrInfo); vdmButtons[1] = MakeLeftButton(dpy, scrInfo); vdmButtons[2] = MakeDownLeftButton(dpy, scrInfo); vdmButtons[3] = MakeUpButton(dpy, scrInfo); vdmButtons[4] = MakeHomeButton(dpy, scrInfo); vdmButtons[5] = MakeDownButton(dpy, scrInfo); vdmButtons[6] = MakeUpRightButton(dpy, scrInfo); vdmButtons[7] = MakeRightButton(dpy, scrInfo); vdmButtons[8] = MakeDownRightButton(dpy, scrInfo); scrInfo->menuTable[MENU_VDM] = CreateMenu(strdup(title), vdmButtons, sizeof(vdmButtons)/sizeof(vdmButtons[0]), True, "olvwm:MotionMenu"); scrInfo->menuTable[MENU_VDM]->prefColSize = 3; scrInfo->menuTable[MENU_VDM]->buttonDefault = 4; } /* * Create the virtual representation of the client's frame and icon */ void MakeVirtual(cli) Client *cli; { int width, height; int x, y; Window virtual; /* * Subtract 1 for those window borders */ width = cli->framewin->core.width / cli->scrInfo->vdm->resources->scale - 1; height = cli->framewin->core.height / cli->scrInfo->vdm->resources->scale-1; x = cli->framewin->core.x / cli->scrInfo->vdm->resources->scale + cli->scrInfo->vdm->screenX; y = cli->framewin->core.y / cli->scrInfo->vdm->resources->scale + cli->scrInfo->vdm->screenY; if (width <= 0) width = 1; if (height <= 0) height = 1; virtual = XCreateSimpleWindow(cli->dpy, PANEWINOFCLIENT(cli->scrInfo->vdm->client), x, y, width, height, 1, cli->scrInfo->colorInfo.borderColor, cli->scrInfo->colorInfo.virtualFgColor); if (PANEWINOFCLIENT(cli) != PANEWINOFCLIENT(cli->scrInfo->vdm->client)) XSelectInput(cli->dpy, virtual, VDMSelectMask); else XSelectInput(cli->dpy, virtual, ExposureMask); cli->framewin->core.virtual = virtual; VInstallInfo(cli->framewin); MakeVirtualIcon(cli); } MakeVirtualIcon(cli) Client *cli; { int width, height; int x, y; width = cli->iconwin->core.width / cli->scrInfo->vdm->resources->scale; height = cli->iconwin->core.height / cli->scrInfo->vdm->resources->scale; x = cli->iconwin->core.x / cli->scrInfo->vdm->resources->scale + cli->scrInfo->vdm->screenX; y = cli->iconwin->core.y / cli->scrInfo->vdm->resources->scale + cli->scrInfo->vdm->screenY; if (width <= 0) width = 1; if (height <= 0) height = 1; cli->iconwin->core.virtual = XCreateSimpleWindow(cli->dpy, PANEWINOFCLIENT(cli->scrInfo->vdm->client), x, y, width, height, 1, cli->scrInfo->colorInfo.borderColor, cli->scrInfo->colorInfo.virtualFgColor); XSelectInput(cli->dpy, cli->iconwin->core.virtual, VDMSelectMask); VInstallInfo(cli->iconwin); } /* * Call to set/unset the focus of the given window */ void VirtualChangeFocus(win, focus) WinGenericFrame *win; Bool focus; { int length; switch(win->core.kind) { case WIN_ICON: length = ((WinIconFrame *) win)->nameLength; break; case WIN_FRAME: length = ((WinPaneFrame *) win)->nameLength; break; default: return; } if (focus) XSetWindowBackground(win->core.client->dpy, win->core.virtual, win->core.client->scrInfo->colorInfo.virtualInputColor); else XSetWindowBackground(win->core.client->dpy, win->core.virtual, win->core.client->scrInfo->colorInfo.virtualFgColor); PaintVirtualWindow(win); CheckBindingState(win, focus); } /* * Refresh the window's virtual representation */ int PaintVirtualWindow(win) WinGenericFrame *win; { Client *cli = win->core.client; int length; switch(win->core.kind) { case WIN_ICON: length = ((WinIconFrame *) win)->nameLength; break; case WIN_FRAME: length = ((WinPaneFrame *) win)->nameLength; break; default: return; } XClearArea(cli->dpy, win->core.virtual, 0, 0, 0, 0, False); if (cli->isBusy) XFillRectangle(cli->dpy, win->core.virtual, WinGC(win,BUSY_GC), 0, 0, win->core.width, win->core.height); XDrawImageString(cli->dpy, win->core.virtual, (cli->isFocus) ? cli->scrInfo->gc[VDM_INPUT_GC] : cli->scrInfo->gc[VDM_GC], 1, cli->scrInfo->vdm->max_ascent + 1, win->fcore.name, length); } /* * Dispatch the event to its virtual window if it belongs to a virtual window */ DispatchVirtual(dpy, event) Display *dpy; XEvent *event; { WinGeneric *win, *VGetInfo(); static SemanticAction currentVDMAction; unsigned int ignoremask; if (event->xany.type == KeymapNotify || event->xany.type == MappingNotify) return False; win = VGetInfo(event->xany.window); if (!win) return False; switch(event->xany.type) { case Expose: PaintVirtualWindow(win); break; /* * For mouse events, we generally try to pretend that the mouse event * happened on the frame instead of on the virtual window. * We pretend that adjust and select events occured on the frame * and just pass them to the frame's routine (after translating * the root coordinates). But we don't translate root coordinates * for menus because we want the menu to come up where the mouse * was */ case ButtonPress: ignoremask = ModMaskMap[MOD_CONSTRAIN] | ModMaskMap[MOD_INVERT] | ModMaskMap[MOD_REDUCE]; currentVDMAction = ResolveMouseBinding(dpy, event, ignoremask); if (currentVDMAction == ACTION_NONE) return True; if ((currentVDMAction == ACTION_SELECT) && (event->xbutton.time - lastSelectTime <= GRV.DoubleClickTime)) { /* * We have a double click in the VDM. This is an exception to * the above rule: if we pass this to the frame, then the * frame will go full size, which is not very interesting. * So for this one we pretend it's a double click in the * VDM itself */ translateVirtualCoords(win->core.client->scrInfo->vdm, &event->xmotion.x_root, &event->xmotion.y_root, &event->xmotion.x, &event->xmotion.y); VDMMoveTo(win->core.client->dpy, win->core.client, event->xbutton.x_root, event->xbutton.y_root); return True; } if (currentVDMAction == ACTION_MENU) translateVirtualCoords(win->core.client->scrInfo->vdm, NULL, NULL, &event->xmotion.x, &event->xmotion.y); else translateVirtualCoords(win->core.client->scrInfo->vdm, &event->xmotion.x_root, &event->xmotion.y_root, &event->xmotion.x, &event->xmotion.y); GFrameEventButtonPress(dpy, event, win); break; case MotionNotify: translateVirtualCoords(win->core.client->scrInfo->vdm, &event->xmotion.x_root, &event->xmotion.y_root, &event->xmotion.x, &event->xmotion.y); GFrameEventMotionNotify(dpy, event, win); break; case ButtonRelease: if (currentVDMAction == ACTION_NONE) return True; if (currentVDMAction == ACTION_MENU) translateVirtualCoords(win->core.client->scrInfo->vdm, NULL, NULL, &event->xmotion.x, &event->xmotion.y); else translateVirtualCoords(win->core.client->scrInfo->vdm, &event->xmotion.x_root, &event->xmotion.y_root, &event->xmotion.x, &event->xmotion.y); GFrameEventButtonRelease(dpy, event, win); if (currentVDMAction == ACTION_SELECT) lastSelectTime = event->xbutton.time; currentVDMAction = ACTION_NONE; break; default: fprintf(stderr, "unwanted %d event\n", event->xany.type); break; } return True; } MakeSticky(cli, sticky) Client *cli; Bool sticky; { int x, y; /* * Can't unstick the VDM */ if (cli->groupid == PANEWINOFCLIENT(cli->scrInfo->vdm->client) && !sticky) { if (GRV.Beep == BeepAlways) XBell(cli->dpy, 100); return !NULL; } cli->sticky = sticky; if (sticky && !GRV.VirtualDrawSticky) XUnmapWindow(cli->dpy, (cli->wmState == IconicState) ? cli->iconwin->core.virtual : cli->framewin->core.virtual); else XMapWindow(cli->dpy, (cli->wmState == IconicState) ? cli->iconwin->core.virtual : cli->framewin->core.virtual); if (cli->sticky) { x = cli->framewin->core.x; y = cli->framewin->core.y; cli->framewin->core.dirtyconfig |= CWX; GFrameSetConfig(cli->framewin, x, y, cli->framewin->core.width, cli->framewin->core.height); x = cli->iconwin->core.x; y = cli->iconwin->core.y; cli->iconwin->core.dirtyconfig |= CWX; IconSetPos(cli->iconwin, x + ICON_HORZBORDER, y + ICON_VERTBORDER); WinCallConfig(cli->dpy, cli->iconwin, NULL); } return NULL; } /* * Return true if the given key action should affect the VDM */ KeyMoveVDM(dpy, ev) Display *dpy; XEvent *ev; { VirtualDesktop *vdm; WinGeneric *root; SemanticAction a; if (ev->xany.type != KeyPress) /* Root window uses same function for Up and Down events */ return False; root = WIGetInfo(ev->xkey.root); if (!root) { /* root is not managed by this wm, running in -single mode */ return False; } if (!root->core.client) { return False; } if (!root->core.client->scrInfo) { return False; } vdm = root->core.client->scrInfo->vdm; a = FindNewKeyboardAction(dpy, ev); if (a == ACTION_NONE) return False; if (a == ACTION_VIRTUAL) return CheckForKeyProg(dpy, ev); return vdmPerformAction(dpy, vdm, a); } /* * Update the selection state of the given window's virtual representation */ VirtualSelect(win, sel) WinGeneric *win; Bool sel; { if (win->core.virtual) XSetWindowBorderWidth(win->core.client->dpy, win->core.virtual, (sel) ? 2 : 1); } /* * Move to point x, y and save the desktop; we do this when save workspace * is called so that all the coordinates will be correct for startup * position */ VirtualSaveDesktops(dpy, x, y) Display *dpy; int x, y; { struct deltas deltas; ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { si->vdm->saveX = si->vdm->offsetX; si->vdm->saveY = si->vdm->offsetY; deltas.delta_x = si->vdm->offsetX - x; deltas.delta_y = si->vdm->offsetY - y; moveDesktop(dpy, &deltas, si->vdm); } } VirtualRestoreDesktops(dpy) Display *dpy; { struct deltas deltas; ScreenInfo *si; List *l = ScreenInfoList; for (si = ListEnum(&l); si; si = ListEnum(&l)) { deltas.delta_x = -si->vdm->saveX; deltas.delta_y = -si->vdm->saveY; moveDesktop(dpy, &deltas, si->vdm); } } VirtualCleanup(dpy) Display *dpy; { VirtualSaveDesktops(dpy, 0, 0); } ResizeVDM(vdm, size) VirtualDesktop *vdm; char *size; { WinGenericFrame *win; win = (WinGenericFrame *) vdm->client->framewin; if (vdm->resources->size) free(vdm->resources->size); vdm->resources->size = strdup(size); calculateVirtualDesktopSize(vdm->client->dpy, vdm->client->screen, vdm); GFrameSetConfig(win, win->core.x, win->core.y, vdm->width + (WinFunc(win,fcore.widthleft))(win) + (WinFunc(win,fcore.widthright))(win), vdm->height + (WinFunc(win,fcore.heighttop))(win) + (WinFunc(win,fcore.heightbottom))(win)); } /* *============================================================================ * * Functions to reflect resources changes */ static void * remakeVirtual(cli) Client *cli; { Display *dpy = cli->dpy; if (cli->framewin) { VUninstallInfo(cli->framewin->core.virtual); VUninstallInfo(cli->iconwin->core.virtual); XDestroyWindow(dpy, cli->framewin->core.virtual); XDestroyWindow(dpy, cli->iconwin->core.virtual); MakeVirtual(cli); if (!cli->sticky || GRV.VirtualDrawSticky) XMapWindow(dpy, (cli->wmState == IconicState) ? cli->iconwin->core.virtual : cli->framewin->core.virtual); } return NULL; } static void * restickVirtual(cli) Client *cli; { if (!cli->iconwin || !cli->framewin) return NULL; if (cli->sticky && !GRV.VirtualDrawSticky) XUnmapWindow(cli->dpy, (cli->wmState == IconicState) ? cli->iconwin->core.virtual : cli->framewin->core.virtual); else XMapWindow(cli->dpy, (cli->wmState == IconicState) ? cli->iconwin->core.virtual : cli->framewin->core.virtual); return NULL; } static void updateVirtualWindow(cli) Client *cli; { Display *dpy = cli->dpy; if (cli->framewin) { XSetWindowBackground(dpy, cli->framewin->core.virtual, cli->scrInfo->colorInfo.virtualFgColor); XSetWindowBackground(dpy, cli->iconwin->core.virtual, cli->scrInfo->colorInfo.virtualFgColor); } } /* * Resize the VDM with the new scale */ RescaleVDM(vdm, scale) VirtualDesktop *vdm; int scale; { int orig_scale; WinGenericFrame *win; orig_scale = vdm->resources->scale; vdm->resources->scale = scale; calculateVirtualDesktopSize(vdm->client->dpy, vdm->client->screen, vdm); vdm->screenX = (vdm->screenX * orig_scale) / scale; vdm->screenY = (vdm->screenY * orig_scale) / scale; vdm->client->normHints->width_inc = vdm->screenWidth; vdm->client->normHints->height_inc = vdm->screenHeight; win = (WinGenericFrame *) vdm->client->framewin; GFrameSetConfig(win, win->core.x, win->core.y, vdm->width + (WinFunc(win,fcore.widthleft))(win) + (WinFunc(win,fcore.widthright))(win), vdm->height + (WinFunc(win,fcore.heighttop))(win) + (WinFunc(win,fcore.heightbottom))(win)); ListApply(ActiveClientList, remakeVirtual, 0); } VirtualUpdateVirtualWindows(cli) Client *cli; { ListApply(ActiveClientList, updateVirtualWindow, 0); ClientRefresh(cli); } VirtualUpdateDrawSticky(cli) Client *cli; { ListApply(ActiveClientList, restickVirtual, 0); ClientRefresh(cli); } /* * Size the VDM with the new geometry */ VirtualSetGeometry(win, geom) WinGeneric *win; char *geom; { int changed; int newx, newy, x, y; unsigned int w, h; Display *dpy = win->core.client->dpy; ScreenInfo *scrInfo = win->core.client->scrInfo; changed = XParseGeometry(geom, &x, &y, &w, &h); if (changed & (XValue | YValue)) { if (changed & XValue) if (changed & XNegative) newx = DisplayWidth(dpy, scrInfo->screen) + x - win->core.width; else newx = x; else newx = win->core.x; w = win->core.width; if (newx > DisplayWidth(dpy, scrInfo->screen) - w) newx = DisplayWidth(dpy, scrInfo->screen) - w; if (changed & YValue) if (changed & YNegative) newy = DisplayHeight(dpy, scrInfo->screen) + y - win->core.height; else newy = y; else newy = win->core.y; h = win->core.height; if (newy > DisplayHeight(dpy, scrInfo->screen) - h) newy = DisplayHeight(dpy, scrInfo->screen) - h; GFrameSetConfig(win, newx, newy, win->core.width, win->core.height); } } /* * Perform an action from the VDM menu */ int /* ARGSUSED */ VDMMenuAction(dpy, winInfo, menuInfo, btn) Display *dpy; WinPinMenu *winInfo; MenuInfo *menuInfo; int btn; { if (!vdmPerformAction(dpy, winInfo->core.client->scrInfo->vdm, vdmButtonActions[btn]) && GRV.Beep == BeepAlways) XBell(dpy, 100); } /* * Move to the logical screen on the desktop containing point x, y * * This move is constrained to a logical screen, even if the grid is * off. */ VDMMoveTo(dpy, client, x, y) Display *dpy; Client *client; int x, y; { int dw, dh; struct deltas deltas; dw = DisplayWidth(dpy, client->screen); dh = DisplayHeight(dpy, client->screen); deltas.delta_x = ((x - client->scrInfo->vdm->offsetX) / dw) * dw + client->scrInfo->vdm->offsetX; deltas.delta_y = ((y - client->scrInfo->vdm->offsetY) / dh) * dh + client->scrInfo->vdm->offsetY; constrainDeltas(dpy, client->scrInfo->vdm, &deltas); moveDesktop(dpy, &deltas, client->scrInfo->vdm); } /* * Goto logical screen passed */ VDMGoto(dpy, client, screen) Display *dpy; Client *client; int screen; { int dw, dh; screen--; dw = DisplayWidth(dpy, client->screen); dh = DisplayHeight(dpy, client->screen); VDMMoveTo(dpy, client, dw * (screen % client->scrInfo->vdm->columns) + client->scrInfo->vdm->offsetX, dh * (screen / client->scrInfo->vdm->columns) + client->scrInfo->vdm->offsetY); } MoveDesktopFunc(dpy, wininfo, menuinfo, btn) Display *dpy; WinGeneric *wininfo; MenuInfo *menuinfo; int btn; { int n, x, y; n = sscanf(menuinfo->menu->buttons[btn]->generate_args, "%d%d", &x, &y); switch(n) { default: VDMMoveTo(dpy, wininfo->core.client, x, y); break; case 1: VDMGoto(dpy, wininfo->core.client, x); break; case 0: fprintf(stderr, gettext("olvwm: Bad movedesktop switch\n")); break; } } /* *========================================================================== * * Utility functions to replace window mapping, configuring, etc.; these * functions work just like their X counterparts but affect both the * X window and its virtual representation. */ MapWindow(win) WinGeneric *win; { XSetWindowBorderWidth(win->core.client->dpy, win->core.virtual, (win->core.client->isSelected) ? 2 : 1); XMapWindow(win->core.client->dpy, win->core.self); if (GRV.VirtualDrawSticky || !win->core.client->sticky) XMapWindow(win->core.client->dpy, win->core.virtual); if (GRV.VirtualRaiseVDM && win->core.client->scrInfo->vdm->client) RaiseWindow(win->core.client->scrInfo->vdm->client->framewin); } UnmapWindow(win) WinGeneric *win; { XUnmapWindow(win->core.client->dpy, win->core.self); if (GRV.VirtualDrawSticky || !win->core.client->sticky) XUnmapWindow(win->core.client->dpy, win->core.virtual); } MapRaised(win) WinGeneric *win; { XSetWindowBorderWidth(win->core.client->dpy, win->core.virtual, (win->core.client->isSelected) ? 2 : 1); XMapRaised(win->core.client->dpy, win->core.self); if (GRV.VirtualDrawSticky || !win->core.client->sticky) XMapRaised(win->core.client->dpy, win->core.virtual); if (GRV.VirtualRaiseVDM && win->core.client->scrInfo->vdm->client) RaiseWindow(win->core.client->scrInfo->vdm->client->framewin); } RaiseWindow(win) WinGeneric *win; { XRaiseWindow(win->core.client->dpy, win->core.self); XRaiseWindow(win->core.client->dpy, win->core.virtual); if (GRV.VirtualRaiseVDM && win->core.client->scrInfo->vdm->client && win->core.client->scrInfo->vdm->client && win->core.self != win->core.client->scrInfo->vdm->client->framewin->core.self) RaiseWindow(win->core.client->scrInfo->vdm->client->framewin); } LowerWindow(win) WinGeneric *win; { XLowerWindow(win->core.client->dpy, win->core.self); XLowerWindow(win->core.client->dpy, win->core.virtual); if (GRV.VirtualRaiseVDM) RaiseWindow(win->core.client->scrInfo->vdm->client->framewin); } DestroyWindow(win) WinGeneric *win; { XDestroyWindow(win->core.client->dpy, win->core.self); WIUninstallInfo(win->core.self); if (win->core.virtual) XDestroyWindow(win->core.client->dpy, win->core.virtual); } DeleteProperty(dpy, win, atom) Display *dpy; WinGenericFrame *win; Atom atom; { XDeleteProperty(dpy, win->core.self, atom); if (win->core.virtual) XDeleteProperty(dpy, win->core.virtual, atom); } ChangeProperty(dpy, win, property, type, format, mode, data, nelements) Display *dpy; WinGenericFrame *win; Atom property, type; int format; int mode; unsigned char *data; int nelements; { XChangeProperty(dpy, win->core.self, property, type, format, mode, data, nelements); if (win->core.virtual) XChangeProperty(dpy, win->core.virtual, property, type, format, mode, data, nelements); } ConfigureWindow(dpy, win, mask, values) Display *dpy; WinGeneric *win; int mask; XWindowChanges *values; { int scale; WinGeneric *tmp; VirtualDesktop *vdm; vdm = win->core.client->scrInfo->vdm; /* * Make sure the window is somewhere on the visible desktop */ if (win->core.x + (int) win->core.width < vdm->offsetX) { win->core.x = vdm->offsetX; win->core.dirtyconfig |= CWX; } else if (win->core.x > vdm->absoluteWidth + vdm->offsetX) { win->core.x = vdm->absoluteWidth + vdm->offsetX - win->core.width; win->core.dirtyconfig |= CWX; } if (win->core.y + (int) win->core.height < vdm->offsetY) { win->core.y = vdm->offsetY; win->core.dirtyconfig |= CWY; } else if (win->core.y > vdm->absoluteHeight + vdm->offsetY) { win->core.y = vdm->absoluteHeight + vdm->offsetY - win->core.height; win->core.dirtyconfig |= CWY; } scale = vdm->resources->scale; XConfigureWindow(dpy, win->core.self, mask, values); if (mask & CWX) values->x = (win->core.x - vdm->offsetX) / scale; if (mask & CWY) values->y = (win->core.y - vdm->offsetY) / scale; if (mask & CWWidth) values->width = win->core.width / scale; if (mask & CWHeight) values->height = win->core.height / scale; if (mask & CWSibling) { tmp = WIGetInfo(values->sibling); if (tmp) { values->sibling = tmp->core.virtual; } else { mask |= ~(CWSibling|CWStackMode); } } XConfigureWindow(dpy, win->core.virtual, mask, values); if (GRV.VirtualRaiseVDM) RaiseWindow(vdm->client->framewin); } /* * There's another cmpButton in olvwmrc.y, but that comparison checks for * the icon flag and is case insensitive. We need a simple case sensitive * check here */ static int cmpButton(b1, b2) Button **b1, **b2; { return strcmp(gettext((*b1)->label[0].string), gettext((*b2)->label[0].string)); } /* * Menu generation function for DIRMENU * */ /* ARGSUSED */ GenDirMenuFunc(dpy, menuInfo, bindex, cache, winInfo, depth) Display *dpy; MenuInfo *menuInfo; int bindex; MenuCache *cache; WinGeneric *winInfo; int depth; { struct _menu *menu; DIR *dir; struct dirent *ent; Button *b; char s[MAXNAMLEN], dirname[MAXPATHLEN - MAXNAMLEN], *newname, *ExpandPath(); char pattern[MAXNAMLEN]; extern int AppMenuFunc(); MenuCache *menuCache; int slot; menuCache = winInfo->core.client->scrInfo->menuCache; for (slot = 0; slot < menuCache->nextSlot; slot++) if (menuInfo->buttons[bindex].subMenu == menuCache->menuInfoList[slot]) break; if (slot == menuCache->nextSlot) slot = MENU_NEWSLOT; MenuInfoDestroy(menuInfo->buttons[bindex].subMenu); menu = (Menu *) MemAlloc(sizeof(Menu)); menu->buttons = NULL; menu->buttonCount = 0; menu->buttonDefault = NOBUTTON; menu->hasPushPin = False; menu->menudirty = True; menu->btnPerCol = 0; menu->maxLabWidth = 0; menu->prefColSize = 0; pattern[0] = '\0'; if ((newname = ExpandPath(menuInfo->menu->buttons[bindex]->generate_args, True)) == NULL) strcpy(dirname, (char *) menuInfo->menu->buttons[bindex]->generate_args); else { strcpy(dirname, newname); MemFree(newname); } if ((dir = opendir(dirname)) == NULL) { if (newname = strrchr(dirname, '/')) { strcpy(pattern, newname + 1); dirname[strlen(dirname) - strlen(pattern) - 1] = '\0'; rexInit(pattern); } if ((newname == NULL) || ((dir = opendir(dirname)) == NULL)) { ErrorWarning(gettext("An invalid directory was named for DIRMENU")); menuInfo->buttons[bindex].subMenu = MenuInfoCreate(cache, winInfo, menu, depth, slot); return; } } while (ent = readdir(dir)) { if (ent->d_name[0] == '.') continue; if (pattern[0] && !rexMatch(ent->d_name)) continue; b = (Button *) MemAlloc(sizeof(Button)); if (!menu->buttonCount++) menu->buttons = (Button **) MemAlloc(sizeof(Button *)); else menu->buttons = (Button **) MemRealloc(menu->buttons, menu->buttonCount * sizeof(Button *)); menu->buttons[menu->buttonCount - 1] = b; b->label[0].kind = StringLabel; b->label[1].kind = NoType; sprintf(s, "exec %s/%s", dirname, ent->d_name); b->label[0].string = MemNewString(ent->d_name); b->label[1].string = NULL; b->helpstring[0] = b->helpstring[1] = NULL; b->which = 0; b->has_submenu = False; b->enabled = True; b->visible = True; b->callback = AppMenuFunc; b->action.submenu = (void *) MemNewString(s); b->generate_func = NULL; } closedir(dir); if (GRV.VirtualDirSort == SortAlpha || GRV.VirtualDirSort == SortAlphaAll) qsort(menu->buttons, menu->buttonCount, sizeof(Button *), cmpButton); menuInfo->buttons[bindex].subMenu = MenuInfoCreate(cache, winInfo, menu, depth, slot); } static regerr(val) int val; { switch(val) { case 11: ErrorWarning(gettext("DIRMENU: Range endpoint too large.\n")); break; case 16: ErrorWarning(gettext("DIRMENU: Bad number.\n")); break; case 25: ErrorWarning(gettext("DIRMENU: ``\\ digit'' out of range.\n")); break; case 36: ErrorWarning(gettext("DIRMENU: Illegal or missing delimiter.\n")); break; case 41: ErrorWarning(gettext("DIRMENU: No remembered search string.\n")); break; case 42: ErrorWarning(gettext("DIRMENU: \\( \\) imbalance.\n")); break; case 43: ErrorWarning(gettext("DIRMENU: Too many \\(.\n")); break; case 44: ErrorWarning(gettext("DIRMENU: More than 2 numbers given in \\{ \\}.\n")); break; case 45: /* { gratutitous brace to match next line for vi */ ErrorWarning(gettext("DIRMENU: } expected after \\.\n")); break; case 46: ErrorWarning(gettext("DIRMENU: First number exceeds second in \\{ \\}.\n")); break; case 49: ErrorWarning(gettext("DIRMENU: [] imbalance.\n")); break; case 50: ErrorWarning(gettext("DIRMENU: Regular expression too long.\n")); break; default: ErrorWarning(gettext("DIRMENU: Unexpected Error Code\n")); break; } } static char expbuf[256]; static rexMatch(string) char *string; { #ifdef REGEXP return regexec(expbuf, string); #else return step(string,expbuf); #endif } static rexInit(pattern) char *pattern; { int i, j, n; char newPattern[256]; strcpy(newPattern,""); n = strlen(pattern); newPattern[0] = '^'; for(i = 0, j = 1; i < n; i++) { switch(pattern[i]) { case '?': newPattern[j++] = '.'; break; case '*': if (i == 0) newPattern[j++] = '.'; newPattern[j++] = '*'; break; case '.': newPattern[j++] = '\\'; newPattern[j++] = '.'; break; default: newPattern[j++] = pattern[i]; } } newPattern[j++] = '$'; newPattern[j++] = '\0'; #ifdef REGEXP expbuf = regcomp(newPattern); #else compile(newPattern, expbuf, &expbuf[256], '\0'); #endif } xview-3.2p1.4/clients/olvwm-4.1/win.c100644 1750 1750 25251 5515337327 14527 0ustar mbmb/* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifdef IDENT #ident "@(#)win.c 1.4 olvwm version 07 Jan 1994" #endif /* * Based on #ident "@(#)win.c 26.16 93/06/28 SMI" * */ #include #include #include #include #include #include #include "i18n.h" #include "olwm.h" #include "win.h" #include "mem.h" #include "st.h" #include "notice.h" /*************************************************************************** * local functions ***************************************************************************/ /*ARGSUSED*/ static enum st_retval doRedrawOneWindow(w,win,c) Window w; WinGeneric *win; void *c; { if ((WinFunc(win,core.drawfunc) != NULL) && (win->core.client != NULL)) (WinFunc(win,core.drawfunc))(win->core.client->dpy,win); return ST_CONTINUE; } static void callSelectTree(dpy,win,sel) Display *dpy; WinGeneric *win; Bool sel; { List *l = win->core.children; if (WinFunc(win,core.selectfunc) != NULL) { (*(WinFunc(win,core.selectfunc)))(dpy,win,sel); VirtualSelect(win, sel); } for (win = ListEnum(&l); win != NULL; win = ListEnum(&l)) callSelectTree(dpy, win, sel); } /* Destroying a window tree: walk the trees associated with a client, * invoking the destroyfuncs on each. The order that the windows are * destroyed is significant; it works from the root upwards. The * client structure is not affected; it is assumed that this function * is only called from routines which take responsibility for removing * the client structure as well. */ static void callDestroyTree(dpy,win) Display *dpy; WinGeneric *win; { List *l; WinGeneric *cwin; if (win == NULL) return; l = win->core.children; for (cwin = ListEnum(&l); cwin != NULL; cwin = ListEnum(&l)) callDestroyTree(dpy, cwin); if (WinFunc(win,core.destroyfunc) != NULL) (*(WinFunc(win,core.destroyfunc)))(dpy,win); } static void setTreeConfig(dpy,win) Display *dpy; WinGeneric *win; { List *l = win->core.children; WinGeneric *wc; (*(WinFunc(win,core.setconfigfunc)))(dpy,win); for (wc = ListEnum(&l); wc != NULL; wc = ListEnum(&l)) { setTreeConfig(dpy,wc); } } static void callFocusTree(win, focus) WinGeneric *win; Bool focus; { List *l; WinGeneric *cwin; if (win == NULL) return; if (WinFunc(win,core.focusfunc) != NULL) { (WinFunc(win,core.focusfunc))(win->core.client->dpy,win,focus); } l = win->core.children; for (cwin = ListEnum(&l); cwin != NULL; cwin = ListEnum(&l)) callFocusTree(cwin, focus); } static void callDrawTree(win) WinGeneric *win; { List *l; WinGeneric *cwin; if (WinFunc(win,core.drawfunc) != NULL) (WinFunc(win,core.drawfunc))(win->core.client->dpy,win); l = win->core.children; for (cwin = ListEnum(&l); cwin != NULL; cwin = ListEnum(&l)) callDrawTree(cwin); } /*************************************************************************** * global functions ***************************************************************************/ /* WinCallSelect - call a client's select functions for either the icon or * frame trees, depending on which is visible. Passes along sel, * which is True iff the client is being selected. */ void WinCallSelect(cli, sel) Client *cli; Bool sel; { if (cli->wmState == NormalState) callSelectTree(cli->dpy, cli->framewin, sel); else if (cli->wmState == IconicState) callSelectTree(cli->dpy, cli->iconwin, sel); } /* WinCallFocus - call a client's focus functions for the frame tree. * Passes along focus, which is True iff the client is gaining focus */ void WinCallFocus(win,focus) WinGeneric *win; Bool focus; { if (win == NULL) return; win->core.client->isFocus = focus; callFocusTree(win, focus); VirtualChangeFocus(win, focus); } /* WinCallDestroy - call a client's destroy functions for both the icon and * frame trees */ void WinCallDestroy(cli) Client *cli; { Display *dpy = cli->dpy; WinPaneFrame *framewin = cli->framewin; WinIconFrame *iconwin = cli->iconwin; callDestroyTree(dpy, framewin); callDestroyTree(dpy, iconwin); } /* WinCallConfig - initiate a configuration change, starting at some * particular window. * Configuration change works as follows: a window is the initiator * of the change. If the children of this window need to be sized, * then they are called to do so; then the window sizes itself and * sets the position of each of its children. This process is * repeated on the parent of the initiating window, and so on up * to the top window in the hierarchy (presumably a frame). * A second pass then occurs, doing a depth-first preorder * traversal of the window tree, performing the window's set * configuration function to make the computed change. * In the first pass, any window which changes its configuration * should return this fact to be propagated back to this routine; * if no window has changed configuration then the second pass * won't be performed. * The initiator window is passed (in some cases) the configure * request event which cause the action to begin. */ void WinCallConfig(dpy,win,pxcre) Display *dpy; WinGeneric *win; XConfigureRequestEvent *pxcre; { Bool fDirty = False; WinGeneric *w; do { fDirty = (WinFunc(win,core.newconfigfunc))(win,pxcre) || fDirty; pxcre = NULL; w = win; } while ((win = win->core.parent) != NULL); if (fDirty) { setTreeConfig(dpy,w); } } /* * WinCallDraw * Call all child windows' draw functions. */ void WinCallDraw(win) WinGeneric *win; { callDrawTree(win); } /* WinAddChild -- add a child to a parent's list of children */ void WinAddChild(parent,child) WinGeneric *parent; WinGeneric *child; { parent->core.children = ListCons(child,parent->core.children); child->core.parent = parent; } /* WinRemoveChild -- remove a child from a parent's list of children */ void WinRemoveChild(parent,child) WinGeneric *parent; WinGeneric *child; { List **l; for (l = &(parent->core.children); *l != NULL; l = &((*l)->next)) { if ((WinGeneric *)((*l)->value) == child) { ListDestroyCell(l); return; } } #ifdef DEBUG printf("Warning: tried to remove child %x from parent %x, but it wasn't there\n",child,parent); #endif } /* WinRootPos -- figure the root coordinates of a window's position */ void WinRootPos(win,px,py) WinGeneric *win; int *px, *py; { *px = 0; *py = 0; for ( ; win != NULL; win = win->core.parent) { *px += win->core.x; *py += win->core.y; } } /* WinRedrawAllWindows -- call every window's draw function (if provided) */ void WinRedrawAllWindows() { WIApply(doRedrawOneWindow, NULL); } /* WinShowHelp -- show help for that window if available */ Bool WinShowHelp(dpy,win,mousex,mousey) Display *dpy; WinGeneric *win; int mousex,mousey; { int screen; Text *buttons[1]; Text *msg; NoticeBox noticeBox; if (win->core.helpstring) { if (win->core.client) screen = win->core.client->screen; else screen = DefaultScreen(dpy); if (!ShowHelpWindow(screen,mousex,mousey, win->core.helpstring)) { buttons[0] = GetText("Ok"); msg = GetText("Couldn't write to olwmslave\nNo Help Available for olwm"); noticeBox.numButtons = NOTICE_BUTTON_COUNT(buttons); noticeBox.defaultButton = 0; noticeBox.buttonText = buttons; noticeBox.msgText = msg; noticeBox.boxX = -1; /* centered */ noticeBox.boxY = -1; UseNoticeBox(dpy,screen,¬iceBox); FreeText(buttons[0]); FreeText(msg); return False; } return True; } return False; } /*************************************************************************** * general event/class functions ***************************************************************************/ int WinDrawFunc(win) WinGeneric *win; { if ((WinFunc(win,core.drawfunc) != NULL) && (win->core.client != NULL)) (WinFunc(win,core.drawfunc))(win->core.client->dpy,win); } int WinEventExpose(dpy, event, win) Display *dpy; XEvent *event; WinGeneric *win; { if (event->xexpose.count == 0) (WinFunc(win,core.drawfunc))(dpy, win); } int WinNewPosFunc(win,x,y) WinGeneric *win; int x,y; { if (x != win->core.x) { win->core.x = x; win->core.dirtyconfig |= CWX; } if (y != win->core.y) { win->core.y = y; win->core.dirtyconfig |= CWY; } return win->core.dirtyconfig; } int WinNewConfigFunc(win, pxcre) WinGeneric *win; XConfigureRequestEvent *pxcre; { int neww = WinFunc(win,core.widthfunc)(win, pxcre); int newh = WinFunc(win,core.heightfunc)(win, pxcre); if (neww != win->core.width) { win->core.width = neww; win->core.dirtyconfig |= CWWidth; } if (newh != win->core.height) { win->core.height = newh; win->core.dirtyconfig |= CWHeight; } return win->core.dirtyconfig; } int WinSetConfigFunc(dpy, win) Display *dpy; WinGeneric *win; { XWindowChanges xwc; int dw = DisplayWidth(win->core.client->dpy, win->core.client->screen); int dh = DisplayHeight(win->core.client->dpy, win->core.client->screen); if (win->core.dirtyconfig) { if (win->core.client->sticky) { if (win->core.x + (int) win->core.width < 0) { win->core.x = dw + (win->core.x % dw); win->core.dirtyconfig |= CWX; } else if (win->core.x >= dw) { win->core.x = win->core.x % dw; win->core.dirtyconfig |= CWX; } if (win->core.y + (int) win->core.height < 0) { win->core.y = dh + (win->core.y % dh); win->core.dirtyconfig |= CWY; } else if (win->core.y >= dh) { win->core.y = win->core.y % dh; win->core.dirtyconfig |= CWY; } } xwc.x = win->core.x; xwc.y = win->core.y; xwc.width = win->core.width; xwc.height = win->core.height; /* generic windows never change border or stacking */ ConfigureWindow(dpy,win,win->core.dirtyconfig,&xwc); } win->core.dirtyconfig &= ~(CWX|CWY|CWWidth|CWHeight); } /* * WinAddColorClient * * Add cli to this win's list of colormap clients. Assumes that cli isn't * already in the list. */ void WinAddColorClient(win, cli) WinGeneric *win; Client *cli; { win->core.colormapClients = ListCons(cli, win->core.colormapClients); } /* * WinRemoveColorClient * * Remove cli from this win's list of colormap clients. If there are no more * clients, and this window is a WIN_COLORMAP, destroy the window. Assumes * that cli appears in win's list zero or one times. */ void WinRemoveColorClient(dpy, win, cli) Display *dpy; WinGeneric *win; Client *cli; { List **l; l = &win->core.colormapClients; while (*l != NULL) { if ((*l)->value == cli) { ListDestroyCell(l); break; } l = &((*l)->next); } if (win->core.colormapClients == NULL_LIST && win->core.kind == WIN_COLORMAP) (WinFunc(win, core.destroyfunc))(dpy, win); } xview-3.2p1.4/clients/olvwm-4.1/winbusy.c100644 1750 1750 13304 5515337327 15426 0ustar mbmb/* * (c) Copyright 1989, 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifdef IDENT #ident "@(#)winbusy.c 1.3 olvwm version 07 Jan 1994" #endif /* * Based on #ident "@(#)winbusy.c 26.12 93/06/28 SMI" * */ #include #include #include #include #include #include #include "i18n.h" #include #include "ollocale.h" #include "mem.h" #include "olwm.h" #include "win.h" #include "globals.h" /*************************************************************************** * global data ***************************************************************************/ /*************************************************************************** * private data ***************************************************************************/ static ClassBusy classBusy; static Bool busyDisabled = True; /*************************************************************************** * private functions ***************************************************************************/ /* * DestroyBusy -- destroy the busy window resources and free any allocated * data. */ static int destroyBusy(dpy, winInfo) Display *dpy; WinBusy *winInfo; { /* free our data and throw away window */ XUndefineCursor(dpy, winInfo->core.self); WinRemoveChild(winInfo->core.parent,winInfo); ScreenDestroyWindow(winInfo->core.client->scrInfo, winInfo->core.self); WIUninstallInfo(winInfo->core.self); PaintVirtualWindow(winInfo->core.parent); MemFree(winInfo); } /* * widthfuncBusy - recomputes the height of the busy window */ int /* ARGSUSED */ widthfuncBusy(win, pxcre) WinBusy *win; XConfigureRequestEvent *pxcre; { WinGenericFrame *frame = (WinGenericFrame *)win->core.parent; return frame->fcore.panewin->core.width; } /* * heightfuncBusy - recomputes the height of the busy window */ int /* ARGSUSED */ heightfuncBusy(win, pxcre) WinBusy *win; XConfigureRequestEvent *pxcre; { WinGenericFrame *frame = (WinGenericFrame *)win->core.parent; return frame->fcore.panewin->core.height; } /* * * REMIND * * Busy windows are effectively "turned off" by the static Bool busyDisabled. * The reason for this is that having a busy window on the screen over the * application's window will prevent that application from receiving drag-n- * drop messages properly. When busyDisabled is set, the following newconfig, * newpos, and setconfig functions prevent the busy window from changing from * its initial state. The initial state is set in MakeBusy, which makes the * busy window very small and above the upper left corner of the frame window. */ static int newConfigBusy(winInfo, pxcre) WinBusy *winInfo; XConfigureRequestEvent *pxcre; { if (busyDisabled) return 0; else return WinNewConfigFunc(winInfo, pxcre); } static int newPosBusy(winInfo, x, y) WinBusy *winInfo; int x, y; { if (busyDisabled) return 0; else return WinNewPosFunc(winInfo, x, y); } static int setConfigBusy(dpy, winInfo) Display *dpy; WinBusy *winInfo; { if (busyDisabled) return 0; else { WinSetConfigFunc(dpy, winInfo); return 1; } } /*************************************************************************** * global functions ***************************************************************************/ /* * MakeBusy -- create the busy window. The Busy window is exactly the * same size as its parent and gets all keyboard and pointer events * for the frame. The parent is assumed to be a frame. */ WinBusy * MakeBusy(dpy, par) Display *dpy; WinGenericFrame *par; { WinBusy *w; Window win; unsigned long valuemask; XSetWindowAttributes attributes; /* create the associated structure */ w = MemNew(WinBusy); w->core.kind = WIN_BUSY; w->class = &classBusy; WinAddChild(par,w); w->core.children = NULL; w->core.client = par->core.client; if (busyDisabled) { w->core.x = -10; w->core.y = -10; w->core.width = 1; w->core.height = 1; } else { w->core.x = par->fcore.panewin->core.x; w->core.y = par->fcore.panewin->core.y; w->core.width = par->fcore.panewin->core.width; w->core.height = par->fcore.panewin->core.height; } w->core.dirtyconfig = CWX | CWY | CWWidth | CWHeight; w->core.exposures = NULL; w->isFocus = False; /* inheirit help from the parent frame */ w->core.helpstring = par->core.helpstring; /* create the window */ attributes.event_mask = ButtonReleaseMask | ButtonPressMask | KeyPressMask; attributes.cursor = GRV.BusyPointer; valuemask = CWEventMask | CWCursor; win = ScreenCreateWindow(par->core.client->scrInfo, par->core.self, w->core.x, w->core.y, w->core.width, w->core.height, valuemask, &attributes); /* fill out remaining fields */ w->core.self = win; WIInstallInfo(w); MapRaised(w); PaintVirtualWindow(par); return w; } void /* ARGSUSED */ BusyInit(dpy) Display *dpy; { classBusy.core.kind = WIN_BUSY; classBusy.core.xevents[ButtonPress] = NoFocusEventBeep; classBusy.core.xevents[ButtonRelease] = NoFocusEventBeep; classBusy.core.xevents[KeyPress] = NoFocusEventBeep; classBusy.core.xevents[KeyRelease] = NoFocusEventBeep; classBusy.core.focusfunc = NULL; classBusy.core.drawfunc = NULL; classBusy.core.destroyfunc = destroyBusy; classBusy.core.selectfunc = NULL; classBusy.core.newconfigfunc = newConfigBusy; classBusy.core.newposfunc = newPosBusy; classBusy.core.setconfigfunc = setConfigBusy; classBusy.core.createcallback = NULL; classBusy.core.heightfunc = heightfuncBusy; classBusy.core.widthfunc = widthfuncBusy; } xview-3.2p1.4/clients/olvwm-4.1/winbutton.c100644 1750 1750 26671 5515337327 15772 0ustar mbmb/* * (c) Copyright 1989, 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifdef IDENT #ident "@(#)winbutton.c 1.5 olvwm version 07 Jan 1994" #endif /* * Based on #ident "@(#)winbutton.c 26.31 93/06/28 SMI" * */ #include #include #include #include #include #include #include "i18n.h" #include #include "ollocale.h" #include "mem.h" #include "olwm.h" #include "win.h" #include "globals.h" #include "menu.h" #include "events.h" extern void FrameAllowEvents(); extern Bool DoDefaultMenuAction(); extern Atom AtomChangeState; /*************************************************************************** * private data ***************************************************************************/ #define in_windowmark(win,x,y) \ ( (x) >= 0 && (y) >= 0 && \ (x) <= Abbrev_MenuButton_Width(WinGI((win),NORMAL_GINFO)) && \ (y) <= Abbrev_MenuButton_Height(WinGI((win),NORMAL_GINFO)) \ ) static Bool buttonActive = False; static ClassButton classButton; static SemanticAction currentAction = ACTION_NONE; /*************************************************************************** * private functions ***************************************************************************/ static int drawButton(); static void doUnhilite(act, mode, winInfo) int act; MenuTrackMode mode; WinButton *winInfo; { Graphics_info *gis; long flags; gis = (winInfo->core.client->isFocus) ? WinGI(winInfo, INPUTFOCUS_GINFO) : WinGI(winInfo, NORMAL_GINFO); if (act != SYNC_CHANGECLICK) flags = OLGX_NORMAL | OLGX_ERASE; else if (mode == MODE_CLICK) flags = OLGX_BUSY | OLGX_ERASE | OLGX_NORMAL; else { /* don't do this; it's unsettling to press it in when you drag again */ return; } olgx_draw_abbrev_button(gis, winInfo->core.self, 0, 0, flags); } /* * eventButtonPress - handle button press events on the close button window. */ static int eventButtonPress(dpy, event, winInfo) Display *dpy; XEvent *event; WinButton *winInfo; { Client *cli = winInfo->core.client; WinPaneFrame *winFrame = cli->framewin; SemanticAction a; Graphics_info *gis; if (cli->isFocus) gis = WinGI(winInfo, INPUTFOCUS_GINFO); else gis = WinGI(winInfo,NORMAL_GINFO); a = MenuMouseAction(dpy, event, ModMaskMap[MOD_CONSTRAIN]); if (winInfo->ignore) { FrameAllowEvents(cli, event->xbutton.time); return; } switch (a) { case ACTION_SELECT: olgx_draw_abbrev_button(gis, winInfo->core.self, 0, 0, OLGX_INVOKED); /* * REMIND: bad style. This is grabbing the pointer after * the fact. We should set up a passive grab instead. */ XGrabPointer(dpy, winInfo->core.self, False, (ButtonReleaseMask | ButtonPressMask | PointerMotionMask), GrabModeAsync, GrabModeAsync, None, GRV.CloseDownPointer, CurrentTime); buttonActive = True; currentAction = a; break; case ACTION_MENU: olgx_draw_abbrev_button(gis, winInfo->core.self, 0, 0, OLGX_INVOKED); if (winFrame->core.client->wmDecors->menu_type != MENU_NONE) ShowStandardMenuSync(winFrame, event, True, doUnhilite, winInfo); break; default: FrameAllowEvents(cli, event->xbutton.time); return; } } /* * eventButtonRelease - handle button release events on the close button * window. When we handle an event, start ignoring mouse events on the button * and send a ClientMessage to ourself. When we receive the ClientMessage, * stop ignore events. This is so that double-clicking on the button doesn't * close and then reopen the window (or perform the default action twice). */ static int eventButtonRelease(dpy, event, winInfo) Display *dpy; XEvent *event; WinButton *winInfo; { Client *cli = winInfo->core.client; int x,y; XClientMessageEvent ce; FrameAllowEvents(cli, event->xbutton.time); if (!AllButtonsUp(event)) return; XUngrabPointer(dpy, CurrentTime); x = event->xbutton.x; y = event->xbutton.y; if (buttonActive) { drawButton(dpy, winInfo); buttonActive = False; } if (!in_windowmark(winInfo,x,y) || currentAction != ACTION_SELECT) { return; } if (! winInfo->ignore) { if (!DoDefaultMenuAction(cli->framewin)) { ClientOpenCloseToggle(cli,event->xbutton.time); } ce.type = ClientMessage; ce.window = winInfo->core.self; ce.message_type = AtomChangeState; ce.format = 32; XSendEvent(dpy, winInfo->core.self, False, NoEventMask, (XEvent *) &ce); winInfo->ignore = True; } currentAction = ACTION_NONE; } /* * eventMotionNotify - handle motion notify events on the close button window. */ static int eventMotionNotify(dpy, event, winInfo) Display *dpy; XEvent *event; WinButton *winInfo; { int x,y; Client *cli = winInfo->core.client; Graphics_info *gis; if (cli->isFocus) gis = WinGI(winInfo, INPUTFOCUS_GINFO); else gis = WinGI(winInfo,NORMAL_GINFO); if (!event->xmotion.same_screen || currentAction != ACTION_SELECT) return; x = event->xmotion.x; y = event->xmotion.y; if ( buttonActive && !in_windowmark(winInfo,x,y) ) { drawButton(dpy, winInfo); buttonActive = False; } else if ( !buttonActive && in_windowmark(winInfo,x,y) ) { olgx_draw_abbrev_button(gis, winInfo->core.self, 0, 0, OLGX_INVOKED); buttonActive = True; } } /* * eventClientMessage - handle ClientMessage events sent to the button. In * eventButtonRelease, we send a ClientMessage to ourself. When we receive * it, stop ignoring button press events. */ static int eventClientMessage(dpy, ce, winInfo) Display *dpy; XClientMessageEvent *ce; WinButton *winInfo; { if (ce->message_type == AtomChangeState) winInfo->ignore = False; return 0; } /* * drawButton -- draw the window button */ /*ARGSUSED*/ static int drawButton(dpy, winInfo) Display *dpy; WinButton *winInfo; { Client *cli = winInfo->core.client; GC windowGC = WinGC(winInfo,WINDOW_GC); XGCValues gcv; int focusLines = (GRV.FocusFollowsMouse ? 1 : 0) ^ (GRV.InvertFocusHighlighting ? 1 : 0); Graphics_info *gis; if (cli->isFocus) gis = WinGI(winInfo, INPUTFOCUS_GINFO); else gis = WinGI(winInfo,NORMAL_GINFO); /* * Erase the background first. Unfortunately, we can't depend on * OLGX_ERASE to do the right thing, because it (a) erases only in BG1, * and (b) erases only in 2D mode. We need to erase a background color * that depends on the state of the frame. If we're in click-focus and we * have the focus, draw in BG2; otherwise, draw in BG1. */ /* Temporarily set background to BG2 if click-to-type */ if (!focusLines && winInfo->core.client->isFocus && Win3D(winInfo)) { XGetGCValues(dpy,windowGC,GCBackground,&gcv); XSetBackground(dpy,windowGC,cli->scrInfo->colorInfo.bg2Color); } XFillRectangle(dpy, winInfo->core.self, windowGC, 0, 0, Abbrev_MenuButton_Width(gis), Abbrev_MenuButton_Height(gis)); /* Restore background back to BG1 */ if (!focusLines && winInfo->core.client->isFocus && Win3D(winInfo)) { XSetBackground(dpy,windowGC,gcv.background); } olgx_draw_abbrev_button(gis, winInfo->core.self, 0, 0, OLGX_NORMAL | OLGX_ERASE); /* * REMIND: hack for working around OLGX deficiency. OLGX erases the * "ears" at each corner of the window button to the background color. * They should really be filled in with the foreground color. */ if (!focusLines && winInfo->core.client->isFocus && !Win3D(winInfo)) { XDrawRectangle(dpy, winInfo->core.self, WinGC(winInfo,FOREGROUND_GC), 0, 0, Abbrev_MenuButton_Width(gis)-1, Abbrev_MenuButton_Height(gis)-1); XDrawPoint(dpy, winInfo->core.self, WinGC(winInfo,FOREGROUND_GC), Abbrev_MenuButton_Width(gis)-1, Abbrev_MenuButton_Height(gis)-1); } } /* * DestroyButton -- destroy the close button window resources and free any allocated * data. */ static int /* ARGSUSED */ destroyButton(dpy, winInfo) Display *dpy; WinButton *winInfo; { /* free our data and throw away window */ ScreenDestroyWindow(winInfo->core.client->scrInfo, winInfo->core.self); WIUninstallInfo(winInfo->core.self); MemFree(winInfo); } /* * focusButton - the focus or selection state has changed */ static int /* ARGSUSED */ focusButton(dpy, winInfo, selected) Display *dpy; WinButton *winInfo; Bool selected; { (WinFunc(winInfo,core.drawfunc))(dpy, winInfo); } /* * heightfuncButton - recomputes the height of the close button window */ static int /* ARGSUSED */ heightfuncButton(win, pxcre) WinButton *win; XConfigureRequestEvent *pxcre; { return Abbrev_MenuButton_Width(WinGI(win,NORMAL_GINFO)); } /* * widthfuncButton - recomputes the width of the close button window */ static int /* ARGSUSED */ widthfuncButton(win, pxcre) WinButton *win; XConfigureRequestEvent *pxcre; { return Abbrev_MenuButton_Height(WinGI(win,NORMAL_GINFO)); } /*************************************************************************** * global functions ***************************************************************************/ /* * MakeButton -- create the close button window. Return a WinGeneric structure. */ WinButton * MakeButton(dpy, par, x, y) Display *dpy; WinGeneric *par; int x,y; { WinButton *w; Window win; unsigned long valuemask; XSetWindowAttributes attributes; Graphics_info *gisNormal = WinGI(par,NORMAL_GINFO); attributes.event_mask = ButtonReleaseMask | ButtonPressMask | ExposureMask; attributes.cursor = GRV.CloseUpPointer; valuemask = CWEventMask | CWCursor; win = ScreenCreateWindow(par->core.client->scrInfo, par->core.self, x, y, Abbrev_MenuButton_Width(gisNormal), Abbrev_MenuButton_Height(gisNormal), valuemask, &attributes); /* create the associated structure */ w = MemNew(WinButton); w->core.self = win; w->class = &classButton; w->core.kind = WIN_WINBUTTON; WinAddChild(par,w); w->core.children = NULL; w->core.client = par->core.client; w->core.x = x; w->core.y = y; w->core.width = Abbrev_MenuButton_Width(gisNormal); w->core.height = Abbrev_MenuButton_Height(gisNormal); w->core.dirtyconfig = 0; w->core.exposures = NULL; w->core.helpstring = "olwm:CloseButton"; w->ignore = False; /* register the window */ WIInstallInfo(w); MapWindow(w); return w; } void /* ARGSUSED */ ButtonInit(dpy) Display *dpy; { classButton.core.kind = WIN_WINBUTTON; classButton.core.xevents[ButtonPress] = eventButtonPress; classButton.core.xevents[ButtonRelease] = eventButtonRelease; classButton.core.xevents[MotionNotify] = eventMotionNotify; classButton.core.xevents[Expose] = WinEventExpose; classButton.core.xevents[ClientMessage] = eventClientMessage; classButton.core.focusfunc = focusButton; classButton.core.drawfunc = drawButton; classButton.core.destroyfunc = destroyButton; classButton.core.selectfunc = NULL; classButton.core.newconfigfunc = WinNewConfigFunc; classButton.core.newposfunc = WinNewPosFunc; classButton.core.setconfigfunc = WinSetConfigFunc; classButton.core.createcallback = NULL; classButton.core.heightfunc = heightfuncButton; classButton.core.widthfunc = widthfuncButton; } xview-3.2p1.4/clients/olvwm-4.1/wincolor.c100644 1750 1750 54117 5515337330 15563 0ustar mbmb#ifdef IDENT #ident "@(#)wincolor.c 26.24 93/06/28 SMI" #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #include #include #include #include #include #include #ifdef OW_I18N_L4 #include "i18n.h" #endif #include #include "i18n.h" #include "ollocale.h" #include "mem.h" #include "olwm.h" #include "win.h" #include "globals.h" /*************************************************************************** * global data ***************************************************************************/ extern Atom AtomColorMapWindows; /* * ColorFocusLocked indicates the color focus mode. If it is false, we are in * "color-follows-mouse" mode. In this mode, colormaps are installed based on * the location of the mouse. The WM_COLORMAP_WINDOWS property determines the * list of windows that are eligible to have their colormaps installed, but * changes to this property do not necessarily cause colormap installation. * If ColorFocusLocked is true, we are in "color-locked" mode. In this mode, * a particular colormap is locked into the hardware, and colormaps do not * track the pointer location. If a particular client has the focus, this * client will be named by ColorFocusClient, and changes to its * WM_COLORMAP_WINDOWS property will cause colormap changes. If no client has * the focus (e.g. the colormap window is the root) then only user action can * cause the colormap to change. In this case the colorFocusClient will be * NULL. */ /* * colorFocusWindow indicates the window that currently has the color focus. * This is updated regardless of the color focus mode. */ extern void WinAddColorClient(); extern void WinRemoveColorClient(); extern Bool PropGetWMColormapWindows(); void InstallDefaultColormap(); void ColormapChange(); /*************************************************************************** * private data ***************************************************************************/ static ClassColormap classColormap; /*************************************************************************** * private functions ***************************************************************************/ /* * eventDestroy - handle destroy events on the colormap window */ static int eventDestroy(dpy, event, winInfo) Display *dpy; XEvent *event; WinColormap *winInfo; { Client *cli; List *cli_list = winInfo->core.colormapClients; List **win_list; WinGeneric *newfocuswin; /* * For every client in this window's client list, search that client's * window list and remove this window from it. */ for (cli = ListEnum(&cli_list); cli != NULL; cli = ListEnum(&cli_list)) { win_list = &(cli->colormapWins); while (*win_list != NULL) { if ((*win_list)->value == winInfo) { ListDestroyCell(win_list); break; } win_list = &((*win_list)->next); } if (ColorFocusLocked(winInfo) && ColorFocusWindow(winInfo) == winInfo && ColorFocusClient(winInfo) == cli) { if (cli->colormapWins) newfocuswin = cli->colormapWins->value; else newfocuswin = (WinGeneric *) PANEOFCLIENT(cli); InstallColormap(dpy, newfocuswin); } } ListDestroy(winInfo->core.colormapClients); winInfo->core.colormapClients = NULL_LIST; (WinFunc(winInfo,core.destroyfunc))(dpy, winInfo); } /* * eventEnterLeaveNotify - handle enter/leave notify events on the colormap window */ static int eventEnterLeaveNotify(dpy, event, winInfo) Display *dpy; XEvent *event; WinColormap *winInfo; { if (event->xany.type == EnterNotify) ColorWindowCrossing(dpy, event, winInfo); } /* * eventUnmapNotify - handle the unmapping of a colormap window */ static int eventUnmapNotify(dpy, event, winInfo) Display *dpy; XEvent *event; WinColormap *winInfo; { /* * If this is the window with the color focus, and the color focus is not * locked, then we must install the colormap of the window that is now * under the pointer. REMIND: there's a race condition here, because * calling InstallPointerColormap with an arg of None ends up calling * QueryPointer to find the pointer's location. */ if (ColorFocusWindow(winInfo) == (WinGeneric *)winInfo && !ColorFocusLocked(winInfo) ) { InstallPointerColormap(dpy, None, 0, 0, False); } } /* * eventColormapNotify * * Handle changes to this window's colormap attribute. If this window had the * colormap focus, install the new colormap. */ static int eventColormapNotify(dpy, event, winInfo) Display *dpy; XEvent *event; WinColormap *winInfo; { ColormapChange(dpy, event, (WinGeneric *)winInfo); } /* * destroyColormap -- destroy the colormap window resources and * free any allocated data. */ static int destroyColormap(dpy, winInfo) Display *dpy; WinGeneric *winInfo; { #ifdef DEBUG if (winInfo->core.colormapClients != NULL_LIST) puts("warning: destroying cmap window with non-null client list"); #endif /* DEBUG */ /* free our data and throw away window */ /* REMIND this test is here to avoid problems with changing * a colourmap window into a pane */ if (WIGetInfo(winInfo->core.self) == winInfo) WIUninstallInfo(winInfo->core.self); MemFree(winInfo); } /*************************************************************************** * global functions ***************************************************************************/ /* * Colormap Installation Inhibition. * * When colormap installation is inhibited, information about colormap * installation is stored in the ColormapInhibitRecord structure. If multiple * installations are requested while installation is inhibited, information * only from the last request is stored. When installation is uninhibited, * this information is used to install the colormap for real. Inhibiting * colormap installation prevents unnecessary colormap installation, thereby * reducing flashing. * * The window's client pointer is also stored, so that the entry may be * removed if the client is destroyed before colormap installation is * uninhibited. */ static struct ColormapInhibitRecord { Bool inhibited; Client *cli; WinGeneric *winInfo; } cir; /* * ColormapInhibit -- inhibit or uninhibit colormap installation. */ void ColormapInhibit(inhibit) Bool inhibit; { if (inhibit) { cir.inhibited = True; cir.winInfo = NULL; cir.cli = NULL; } else { if (cir.winInfo != NULL) { InstallColormap(cir.cli->dpy, cir.winInfo); } cir.inhibited = False; cir.winInfo = NULL; cir.cli = NULL; } } /* * Preen the colormap inhibition information. This is called when a client is * destroyed. If the client owns the information in the colormap inhibition * structure, it is cleaned up. */ void PreenColormapInhibit(cli) Client *cli; { if (cir.cli == cli) { cir.inhibited = False; cir.cli = NULL; cir.winInfo = NULL; } } /* * InstallColormap * * Install the colormap for the given window. If the window's colormap * attribute is None, install the default screen colormap instead. * This can occur if a client creates a window, sets its colormap * attribute to a particular colormap, and then destroys that colormap. */ void InstallColormap(dpy, winInfo) Display *dpy; WinGeneric *winInfo; { Colormap cmap = winInfo->core.colormap; if (cmap == None) { cmap = winInfo->core.client->scrInfo->colormap; } if (cir.inhibited) { cir.cli = winInfo->core.client; cir.winInfo = winInfo; } else { XInstallColormap(dpy, cmap); ColorFocusWindow(winInfo) = winInfo; } } /* * InstallDefaultColormap * * Install the default colormap for the screen on which this window resides. * If `lock' is true, lock it in place as well as installing it. */ void InstallDefaultColormap(dpy,winInfo,lock) Display *dpy; WinGeneric *winInfo; Bool lock; { WinRoot *rootwin = winInfo->core.client->scrInfo->rootwin; InstallColormap(dpy, rootwin); if (lock) { ColorFocusClient(rootwin) = rootwin->core.client; ColorFocusLocked(rootwin) = True; } } /* * Give this client the colormap focus, and lock the colormap of winInfo into * the hardware. Doesn't actually check if winInfo is one of cli's colormap * windows. Note: cli can be NULL. */ void LockColormap(dpy, cli, winInfo) Display *dpy; Client *cli; WinGeneric *winInfo; { InstallColormap(dpy, winInfo); ColorFocusClient(winInfo) = cli; ColorFocusLocked(winInfo) = True; } /* * InstallPointerColormap * * Install the colormap for the leafmost window that we know about that * encloses the pointer. The boolean setfocusclient indicates whether to set * the colormap focus client to this window's client. * * If root is None, we do a QueryPointer to find out where the pointer is * instead of using the rootx and rooty values. */ void InstallPointerColormap(dpy, root, rootx, rooty, setfocusclient) Display *dpy; Window root; int rootx, rooty; Bool setfocusclient; { Window src; Window dest; Window child; int srcx; int srcy; int destx, desty; WinGeneric *wi = NULL; WinGeneric *t; Client *cli; if (root == None) { Window wjunk; int junk; unsigned int uijunk; /* We want only the root, rootx, and rooty; we throw the rest away */ (void) XQueryPointer(dpy, DefaultRootWindow(dpy), &root, &wjunk, &rootx, &rooty, &junk, &junk, &uijunk); } src = root; dest = root; srcx = rootx; srcy = rooty; /* * Walk down the window hierarchy from the root toward the leaf, looking * up windows along the way. Stop when the child returned is None, * indicating that there are no more windows under this location. Set * child to None before calling XTranslateCoordinates() in case it fails * with an X error. This might happen if, for instance, the window is * destroyed while we're doing this. */ while (1) { t = WIGetInfo(dest); if (t != NULL) wi = t; child = None; /* in case TranslateCoordinates gets an X error */ (void) XTranslateCoordinates(dpy, src, dest, srcx, srcy, &destx, &desty, &child); if (child == None) break; src = dest; dest = child; srcx = destx; srcy = desty; } /* * At this point, dest contains the leafmost window that encloses the * pointer, and wi points to the window structure of the leafmost known * window that encloses the pointer. * * If we didn't find a window we know about, use the root instead. */ if (wi == NULL) { wi = WIGetInfo(root); if (wi == NULL) return; } /* * If we are over a frame, its window button, or its resize corners, * use the head of the pane's colormap window list, or the pane itself if * it has no list. */ switch (wi->core.kind) { case WIN_FRAME: case WIN_RESIZE: case WIN_PUSHPIN: case WIN_WINBUTTON: if (wi->core.client->colormapWins) wi = wi->core.client->colormapWins->value; else wi = (WinGeneric *) PANEOFCLIENT(wi->core.client); break; default: break; } if (setfocusclient) { if (wi->core.colormapClients) cli = (Client *) wi->core.colormapClients->value; else if (wi->core.client) cli = wi->core.client; else cli = NULL; LockColormap(dpy, cli, wi); } else { InstallColormap(dpy, wi); } } /* * UnlockColormap * * Turn off colormap-locked mode. */ void UnlockColormap(dpy, root, rootx, rooty) Display *dpy; { WinGeneric *rootinfo = WIGetInfo(root); /* REMIND: assert rootinfo != NULL */ ColorFocusClient(rootinfo) = NULL; ColorFocusLocked(rootinfo) = False; InstallPointerColormap(dpy, root, rootx, rooty, False); } /* * ColormapChange * * Handle a change to a window's colormap attribute. */ void ColormapChange(dpy, event, winInfo) Display *dpy; XEvent *event; WinGeneric *winInfo; { if (event->xcolormap.new) { winInfo->core.colormap = event->xcolormap.colormap; if (winInfo == ColorFocusWindow(winInfo)) InstallColormap(dpy, winInfo); } } /* * ColorWindowCrossing * * Handle colormap installation on crossing events. If we are not in * colormap-locked mode, install the window's colormap. */ void ColorWindowCrossing(dpy, event, winInfo) Display *dpy; XEvent *event; WinGeneric *winInfo; { if (!ColorFocusLocked(winInfo)) InstallColormap(dpy, winInfo); } /* values for tag field */ #define TAG_NEITHER 0 #define TAG_OLDLIST 1 #define TAG_NEWLIST 2 /* * TrackSubwindows -- check for the WM_COLORMAP_WINDOWS prop * on a pane, if it exists, track the subwindows. */ void TrackSubwindows(cli) Client *cli; { Display *dpy = cli->dpy; Window pane = PANEWINOFCLIENT(cli); unsigned long nItems, remain; Window *cmapwindata; List **last; List *oldlist; List *l; WinGeneric *cmwi; int i; WinGenericPane *paneinfo = PANEOFCLIENT(cli); if (!PropGetWMColormapWindows(dpy,pane,&cmapwindata,&nItems)) return; /* * Register all the windows on the new list, taking care to not touch any * window that was on the old list, while getting rid of windows not on * the new list, and ensuring that the new list has no duplicates. This * is a five-step process. (Note: the tag field is initialized to TAG_ * NEITHER during window creation.) * * (1) Mark all windows on the old list as TAG_OLDLIST. * * (2) Run through the WM_COLORMAP_WINDOWS property. For each window ID * in this property, there are four cases: (a) we've never seen this * window ID before; (b) we've seen this ID before but it is on neither * list; (c) this ID is on the old list; (d) this ID already on the new * list. For case (a), a record for the window is created and this case * is subsumed by case (b). * * Cases (a) and (b) correspond to TAG_NEITHER. Add this window to the * new list, add this client to the window's client list, and mark the * window as TAG_NEWLIST. Case (c) corresponds to TAG_OLDLIST. Add this * window to the new list and mark it as TAG_NEWLIST. This client is * already on the window's client list. Case (d) corresponds to * TAG_NEWLIST. This window is already on the new list, so nothing more * need be done. * * (3) If we haven't encountered the pane window in the new property, add * it to the front of the list and mark it as TAG_NEWLIST (per ICCCM * section 4.1.8). * * (4) Run through the old list. Each window marked TAG_OLDLIST is no * longer on the new list, so remove this client from the window's client * list. Windows marked TAG_NEWLIST are already on the new list, so * nothing need be done. Reclaim the old list. * * (5) Reset tags of all windows on the new list to TAG_NEITHER. */ oldlist = cli->colormapWins; cli->colormapWins = NULL_LIST; /* step (1) */ l = oldlist; for (cmwi = ListEnum(&l); cmwi != NULL; cmwi = ListEnum(&l)) cmwi->core.tag = TAG_OLDLIST; /* step (2) */ last = &cli->colormapWins; for (i=0; icore.tag) { case TAG_NEITHER: /* case (b) */ WinAddColorClient(cmwi, cli); /* FALL THRU */ case TAG_OLDLIST: /* case (c) */ (*last) = ListCons(cmwi, NULL_LIST); last = &((*last)->next); cmwi->core.tag = TAG_NEWLIST; break; case TAG_NEWLIST: /* case (d) */ break; } } XFree((char *)cmapwindata); /* step (3) */ switch (paneinfo->core.tag) { case TAG_NEITHER: WinAddColorClient(paneinfo, cli); /* FALL THRU */ case TAG_OLDLIST: cli->colormapWins = ListCons(paneinfo, cli->colormapWins); paneinfo->core.tag = TAG_NEWLIST; break; case TAG_NEWLIST: /* it's on the new list, do nothing */ break; } /* step (4) */ l = oldlist; for (cmwi = ListEnum(&l); cmwi != NULL; cmwi = ListEnum(&l)) { if (cmwi->core.tag == TAG_OLDLIST) WinRemoveColorClient(dpy, cmwi, cli); cmwi->core.tag = TAG_NEITHER; } ListDestroy(oldlist); /* step (5) */ l = cli->colormapWins; for (cmwi = ListEnum(&l); cmwi != NULL; cmwi = ListEnum(&l)) cmwi->core.tag = TAG_NEITHER; /* install colormaps as necessary */ if (!ColorFocusLocked(paneinfo)) { InstallPointerColormap(dpy, None, 0, 0, False); } else if (ColorFocusClient(paneinfo) == cli) { if (cli->colormapWins) InstallColormap(dpy, (WinGeneric *)cli->colormapWins->value); else InstallColormap(dpy, paneinfo); } } /* * UnTrackSubwindows -- stop tracking all subwindows. The Bool destroyed * indicates that this client is being destroyed. If so, this client loses * the colormap focus. If not, the color focus window is transferred to this * client's pane. */ void UnTrackSubwindows(cli, destroyed) Client *cli; Bool destroyed; { WinGeneric *wi; List *l; WinGenericPane *paneinfo = PANEOFCLIENT(cli); l = cli->colormapWins; for (wi = ListEnum(&l); wi != NULL; wi = ListEnum(&l)) WinRemoveColorClient(cli->dpy, wi, cli); ListDestroy(cli->colormapWins); cli->colormapWins = NULL_LIST; if (ColorFocusClient(paneinfo) == cli) { if (destroyed) { ColorFocusClient(paneinfo) = NULL; if (GRV.ColorLocked) { /* lock in the root's colormap */ InstallColormap(cli->dpy,cli->scrInfo->rootwin); } else { /* revert to follow-mouse */ ColorFocusLocked(paneinfo) = False; InstallPointerColormap(cli->dpy, None, 0, 0, False); } } else { InstallColormap(cli->dpy,paneinfo); } } } /* * ColorUpdateColorMapWindows - handle the PropertyNotify on WM_COLORMAP_WINDOWS */ void ColorUpdateColorMapWindows(cli,event) Client *cli; XPropertyEvent *event; { if (event->state == PropertyNewValue) { TrackSubwindows(cli); } else { UnTrackSubwindows(cli,False); } } /* * MakeColormap -- create the colormap window. Return a WinGeneric structure. */ WinColormap * MakeColormap(cli,win) Client *cli; Window win; { WinColormap *w; XWindowAttributes winAttr; /* * Select input before getting window attributes in order to avoid * race conditions with destruction and colormap changes. */ XSelectInput(cli->dpy, win, EnterWindowMask | ColormapChangeMask | StructureNotifyMask); if (XGetWindowAttributes(cli->dpy, win, &winAttr) == 0) return NULL; /* create the associated structure */ w = MemNew(WinColormap); w->class = &classColormap; w->core.self = win; w->core.kind = WIN_COLORMAP; w->core.client = cli; w->core.colormap = winAttr.colormap; w->core.colormapClients = NULL_LIST; w->core.helpstring = (char *)NULL; /* no help for colormaps */ /* register the window */ WIInstallInfo(w); return w; } void ColormapInit(dpy) Display *dpy; { classColormap.core.kind = WIN_COLORMAP; classColormap.core.xevents[DestroyNotify] = eventDestroy; classColormap.core.xevents[EnterNotify] = eventEnterLeaveNotify; classColormap.core.xevents[LeaveNotify] = eventEnterLeaveNotify; classColormap.core.xevents[UnmapNotify] = eventUnmapNotify; classColormap.core.xevents[ColormapNotify] = eventColormapNotify; classColormap.core.focusfunc = NULL; classColormap.core.drawfunc = NULL; classColormap.core.destroyfunc = destroyColormap; classColormap.core.selectfunc = NULL; classColormap.core.newconfigfunc = NULL; classColormap.core.newposfunc = NULL; classColormap.core.setconfigfunc = NULL; classColormap.core.createcallback = NULL; classColormap.core.heightfunc = NULL; classColormap.core.widthfunc = NULL; } void ColorFocusInit(dpy, root) Display *dpy; WinGeneric *root; { InstallColormap(dpy, root); ColorFocusClient(root) = (Client *)NULL; ColorFocusLocked(root) = GRV.ColorLocked; } /* The following two functions are used when a pane is being mapped, to * handle the possibility that a pane has already been named as a * colourmap window before it was mapped. */ /* ColormapUnhook -- Given a window, if exists as a colourmap * window, remove it from the event dispatching lookup table * and return a pointer to the window structure. */ WinColormap * ColormapUnhook(w) Window w; { WinColormap *win; win = WIGetInfo(w); if (win != NULL) { if (win->core.kind == WIN_COLORMAP) { WIUninstallInfo(w); } else { win = NULL; } } return win; } /* ColormapTransmogrify -- Take a previously-saved colourmap window * structure, which has been superceded by a pane window structure, * and patch up client-to-window references to point to the * pane window structure. When done, destroy the colourmap * window structure. */ void ColormapTransmogrify(winc, winp) WinColormap *winc; WinPane *winp; { Client *cli; List *cli_list; List *win_list; if (winc == NULL) return; /* * For every client in the colourmap window's client list, search that * client's window list and change the reference. */ cli_list = winc->core.colormapClients; for (cli = ListEnum(&cli_list); cli != NULL; cli = ListEnum(&cli_list)) { win_list = cli->colormapWins; while (win_list != NULL) { if (win_list->value == winc) { win_list->value = winp; break; } win_list = win_list->next; } } /* patch up other pointers */ if (ColorFocusWindow(winc) == winc) ColorFocusWindow(winc) = (WinGeneric *)winp; #ifdef NOTDEF /* REMIND check that this next statement is correct */ if (ColorFocusClient(winc) == winc->core.client) ColorFocusClient(winc) = winp->core.client; #endif winp->core.colormapClients = winc->core.colormapClients; winc->core.colormapClients = NULL_LIST; /* the colourmap window can now be destroyed since all references * to it have been removed. */ (WinFunc(winc,core.destroyfunc))(winc->core.client->dpy, winc); } xview-3.2p1.4/clients/olvwm-4.1/winframe.c100644 1750 1750 203132 5515337331 15551 0ustar mbmb/* * (c) Copyright 1989, 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifdef IDENT #ident "@(#)winframe.c 1.6 olvwm version 07 Jan 1994" #endif /* * Based on #ident "@(#)winframe.c 26.77 93/06/28 SMI" * */ #include #include #include #include #include #include #include #include "i18n.h" #include #include "ollocale.h" #include "mem.h" #include "olwm.h" #include "win.h" #include "menu.h" #include "group.h" #include "globals.h" #include "error.h" /*************************************************************************** * global data ***************************************************************************/ extern Atom AtomLeftFooter; extern Atom AtomRightFooter; extern Atom AtomTakeFocus; extern Atom AtomDfltBtn; #ifdef OW_I18N_L4 extern Atom AtomLeftIMStatus; extern Atom AtomRightIMStatus; #endif /* REMIND - figure out how to get rid of this */ extern int Resize_height, Resize_width; extern Time TimeFresh(); /*************************************************************************** * private data ***************************************************************************/ #define FRAME_EVENT_MASK (ButtonPressMask | ButtonReleaseMask | \ ExposureMask | ButtonMotionMask | \ EnterWindowMask | LeaveWindowMask | \ SubstructureRedirectMask | \ FocusChangeMask | PropertyChangeMask) #define FRAME_EVENT_ND_MASK ( ExposureMask | EnterWindowMask | \ LeaveWindowMask | SubstructureRedirectMask | \ FocusChangeMask | PropertyChangeMask ) /* REMIND rework this stuff so it can handle different point sizes */ #define FRAME_OUTLINE_WIDTH 2 #define FRAME_SELECTED_WIDTH 3 static ClassPaneFrame classPaneFrame; /*************************************************************************** * forward-declared functions ***************************************************************************/ void FrameSetupGrabs(); static void setTitleText(); static void setFooterText(); void FrameUpdateShape(); #ifdef OW_I18N_L4 static void setIMStatusText(); #endif static void updateResizePositions(); /*************************************************************************** * sizing and decoration positioning functions ***************************************************************************/ /* decoration positioning */ /* ptSize - determine the point size we're working with. * REMIND this function is a hack which should be replaced with a * glyph font property. */ static int ptSize(gis) Graphics_info *gis; { #ifdef OBSOLETE switch (Resize_height) { case 10: return 10; case 11: return 12; case 12: return 14; case 14: return 19; default: return 10+((int)(0.5 * Resize_height)); } #endif return Pointsize_Glyph(gis); } static int xposCloseButton(gis) Graphics_info *gis; { return ptSize(gis)+FRAME_OUTLINE_WIDTH; } static int yposCloseButton(cli,gis) Client *cli; Graphics_info *gis; { if (Abbrev_MenuButton_Height(gis) < headerHeight(cli,gis)) return(ResizeArm_Height(gis)+(headerHeight(cli,gis)-Abbrev_MenuButton_Height(gis))/2); else return ResizeArm_Height(gis)+(ptSize(gis)>>4+2); } static int xposPushPin(gis) Graphics_info *gis; { return xposCloseButton(gis); } static int yposPushPin(cli,gis) Client *cli; Graphics_info *gis; { if (PushPinOut_Height(gis) < headerHeight(cli,gis)) return(ResizeArm_Height(gis)+(headerHeight(cli,gis)-PushPinOut_Height(gis))/2); else return ResizeArm_Height(gis)+(ptSize(gis)>>4); } static int decoToTitle(gis) Graphics_info *gis; { #ifdef NOTDEF return (2*xposCloseButton(gis))/3; #endif return (ptSize(gis)>>2); } /* REMIND change this function to use olgx macros to extract * font size */ static int /* ARGSUSED */ headerHeight(cli,gis) Client *cli; Graphics_info *gis; { return MAX(Abbrev_MenuButton_Height(gis),FontHeight(TitleFont)+2); } /* REMIND this function should also be changed to use olgx macros */ static int /* ARGSUSED */ footerHeight(cli,gis) Client *cli; Graphics_info *gis; { return FontHeight(TitleFont) + ResizeArm_Height(gis); } #ifdef OW_I18N_L4 static int IMstatusHeight(cli,gis) Client *cli; Graphics_info *gis; { return FontHeight(TitleFont); } #endif /* height/width functions */ static int heightTopFrame(win) WinPaneFrame *win; { Client *cli = win->core.client; Graphics_info *gisNormal = WinGI(win,NORMAL_GINFO); if (cli->wmDecors->flags & WMDecorationHeader) return headerHeight(cli,gisNormal) + 2*ResizeArm_Height(gisNormal); else if (cli->wmDecors->flags & WMNoDecor) return 0; else return ResizeArm_Height(gisNormal); } static int heightBottomFrame(win) WinPaneFrame *win; { register int result; Client *cli = win->core.client; Graphics_info *gisNormal = WinGI(win,NORMAL_GINFO); if (cli->wmDecors->flags & WMNoDecor) return 0; result = ResizeArm_Height(gisNormal); if (cli->wmDecors->flags & WMDecorationFooter) result += footerHeight(cli,gisNormal); #ifdef OW_I18N_L4 if (cli->wmDecors->flags & WMDecorationIMStatus) result += IMstatusHeight(cli, gisNormal); #endif return result; } static int widthRightFrame(win) WinPaneFrame *win; { Client *cli = win->core.client; if (cli->wmDecors->flags & WMNoDecor) return 0; return ResizeArm_Width(WinGI(win,NORMAL_GINFO)); } static int widthLeftFrame(win) WinPaneFrame *win; { Client *cli = win->core.client; if (cli->wmDecors->flags & WMNoDecor) return 0; return ResizeArm_Width(WinGI(win,NORMAL_GINFO)); } /*************************************************************************** * event-handling functions ***************************************************************************/ /* * handle events for the frame * * The reader should be aware of the fact that both the titlebar * window and the frame window are affected when the window's * focus and select state is changed. The window manager was * being written before the OpenLook spec. was completed so it is * not the most efficient design and is rather awkward in places. * * The way focusing is handled deserves some attention. For a * detailed description of how focusing should be handled see * the Inter-Client Communication Conventions Manual. I'll give * a rough overview below. * * A client can use one of four input models: No Input, Passive, * Locally Active, Globally Active. When OLWM is in focus-follows- * mouse mode, focus is handled in a fairly straightforward manner. * When the cursor enters a window, signaled by the frame getting * an EnterNotify event, OLWM sets the focus like this: * * No Input - Do nothing. * Passive - Set the focus using XSetInputFocus. * Locally Active - Set the focus using XSetInputFocus. * Globally Active - Set the focus by sending a message * to the client. * * When OLWM is in click-to-focus mode, focus is a bit more complicated. * This is due to the fact that the user can press down in the decoration * around the client window and drag the window, and NOT set the focus. * If the user just clicks, without moving, in the decoration then we * set the focus. So, we don't know whether to set the focus until * the button release event. But, if the user presses down in the * client window we must set the focus immediately. This is so the user * can go to an xterm which does not have the focus, press down, (which * sets the focus), move the cursor, and release the button to select * some text, for example. If the client is Passive or Locally Active, * we have a passive grab on the SELECT button. This is how we handle * setting the focus upon button press and release for the four input * modes: * * ButtonPress * No Input - Do Nothing. * Passive - If the press was in the client, * set the focus * Locally Active - If the press was in the client, * set the focus * Globally Active - Do Nothing. * * ButtonRelease * No Input - Do Nothing. * Passive - Set the focus. We only get here * if the button press was NOT in * the client. * Locally Active - Set the focus. We only get here * if the button press was NOT in * the client. * Globally Active - Send a message to the client. */ /* * eventMapRequest -- the pane is go from iconic to normal states */ static int /* ARGSUSED */ eventMapRequest(dpy, event, frameInfo) Display *dpy; XEvent *event; WinPaneFrame *frameInfo; { Client *cli = frameInfo->core.client; /* transition from Iconic or Withdrawn */ if (cli->wmState == IconicState ) { StateNormal(cli,TimeFresh()); } #ifdef DEBUG else { ErrorWarning("ignoring MapRequest event on frame."); } #endif /* DEBUG */ } /* * eventConfigureRequest -- the pane is trying to change configuration */ static int /* ARGSUSED */ eventConfigureRequest(dpy, event, frameInfo) Display *dpy; XEvent *event; WinPaneFrame *frameInfo; { Client *cli = frameInfo->core.client; WinPane *winPane = (WinPane*)frameInfo->fcore.panewin; ClientConfigure(cli,winPane,event); } /* * selectClickFrame -- the select button has been clicked */ static int /* ARGSUSED */ selectClickFrame(dpy, event, frameInfo) Display *dpy; XEvent *event; WinPaneFrame *frameInfo; { Client *cli = frameInfo->core.client; if (!GRV.FocusFollowsMouse) { ClientSetFocus(cli,True,event->xbutton.time); } } /* * selectDoubleClickFrame -- the select button has been double-clicked */ static int /* ARGSUSED */ selectDoubleClickFrame(dpy, event, frameInfo) Display *dpy; XEvent *event; WinPaneFrame *frameInfo; { if (GRV.SelectToggleStacking) ClientBack(frameInfo->core.client); else ClientFullRestoreSizeToggle(frameInfo->core.client,event->xbutton.time); } /* * selectDragFrame -- the select button has been pressed and moved enough * to trigger a drag. */ static int /* ARGSUSED */ selectDragFrame(dpy, event, frameInfo, lastpress) Display *dpy; XEvent *event; WinPaneFrame *frameInfo; XButtonEvent *lastpress; { ClientMove(frameInfo->core.client,lastpress); } /* * menuPressFrame -- the menu button has been pressed */ static int /* ARGSUSED */ menuPressFrame(dpy,event,frameInfo) Display *dpy; XEvent *event; WinPaneFrame *frameInfo; { if (frameInfo->core.client->wmDecors->menu_type != MENU_NONE) ShowStandardMenu(frameInfo, event, False); } /* * selectPressFrame -- the select or adjust button has been pressed */ static int /* ARGSUSED */ selectAdjustPressFrame(dpy, event, frameInfo) Display *dpy; XEvent *event; WinPaneFrame *frameInfo; { Client *cli = frameInfo->core.client; /* If the button press was in the * client, set the input focus. */ ClientSetFocus(cli,False,event->xbutton.time); } /* * adjustClickFrame -- the adjust button has been pressed */ static int /* ARGSUSED */ adjustClickFrame(dpy, event, frameInfo) Display *dpy; XEvent *event; WinPaneFrame *frameInfo; { Client *cli = frameInfo->core.client; ToggleSelection(cli, event->xbutton.time); if (!GRV.FocusFollowsMouse) { ClientSetFocus(cli,True,event->xbutton.time); } } /* * eventEnterNotify * * If the pointer enters from the pane, turn off the warp-back flag. Do this * in addition to all the normal frame stuff done by GFrameEventEnterNotify. */ static int eventEnterNotify(dpy, event, frameInfo) Display *dpy; XEvent *event; WinPaneFrame *frameInfo; { if (event->xcrossing.detail == NotifyInferior) frameInfo->pointerIsWarped = False; GFrameEventEnterNotify(dpy, event, frameInfo); } /* * eventLeaveNotify * * If we really left the window, the detail will be something other than * NotifyInferior. If we are in focus-follows-mouse mode, this window loses * the focus. Also, unset the warp-back flag if the pointer has gone outside * the frame. */ static int /* ARGSUSED */ eventLeaveNotify(dpy, event, frameInfo) Display *dpy; XEvent *event; WinPaneFrame *frameInfo; { /* ignore events caused by grabs */ if (event->xcrossing.mode != NotifyNormal) return; if (event->xcrossing.detail != NotifyInferior) frameInfo->pointerIsWarped = False; } /* * drawHeaderBusy3D - draw header in busy state (3D mode) */ static void /* ARGSUSED */ drawHeaderBusy3D(dpy, win, cli, sel) Display *dpy; WinPaneFrame *win; Client *cli; Bool sel; { Window self = win->core.self; int w = win->core.width; int armh; int armw; GC gc; Graphics_info *gis; if (cli->isFocus) { gc = WinGC(win, INPUTFOCUS_GC); gis = WinGI(win, INPUTFOCUS_GINFO); } else { gc = WinGC(win, WINDOW_GC); gis = WinGI(win, NORMAL_GINFO); } armh = ResizeArm_Height(gis); armw = ResizeArm_Width(gis); XFillRectangle(dpy, self, gc, armw, armh, w-2*armw, heightTopFrame(win)-armh); XFillRectangle(dpy, self, WinGC(win,BUSY_GC), armw, armh, w-2*armw, heightTopFrame(win)-armh); olgx_draw_text(gis, self, win->fcore.name, win->titlex, win->titley, 0, OLGX_NORMAL | TextOLGX); if (GRV.BoldFontEmulation) olgx_draw_text(gis, self, win->fcore.name, win->titlex+1, win->titley, 0, OLGX_NORMAL | TextOLGX); } /* * drawHeaderBusy2D - draw header in busy state (2D mode) */ static void /* ARGSUSED */ drawHeaderBusy2D(dpy, win, cli, sel) Display *dpy; WinPaneFrame *win; Client *cli; Bool sel; { Window self = win->core.self; int w = win->core.width; int armh; int armw; GC gc; Graphics_info *gis; if (cli->isFocus) { gc = WinGC(win, INPUTFOCUS_GC); gis = WinGI(win, INPUTFOCUS_GINFO); } else { gc = WinGC(win, WINDOW_GC); gis = WinGI(win, NORMAL_GINFO); } armh = ResizeArm_Height(gis); armw = ResizeArm_Width(gis); /* fill in frame-colored area below titlebar */ XFillRectangle(dpy, self, gc, armw, armh, w-2*armw, heightTopFrame(win)-armh); XFillRectangle(dpy, self, WinGC(win,BUSY_GC), armw, armh, w-2*armw, heightTopFrame(win)-armh); /* fill in window name in titlebar */ DrawText(dpy, self, TitleFont, WinGC(win,FOREGROUND_GC), win->titlex, win->titley, win->fcore.name, win->nameLength); /* emulate bold font */ if (GRV.BoldFontEmulation) { DrawText(dpy,self,TitleFont,WinGC(win,FOREGROUND_GC), win->titlex + 1, win->titley, win->fcore.name, win->nameLength); } } /* * drawHeaderBar3D - draw the header, with indented focus bar (3D mode) */ static void /* ARGSUSED */ drawHeaderBar3D(dpy, win, cli, sel) Display *dpy; WinPaneFrame *win; Client *cli; Bool sel; { Window self = win->core.self; int w = win->core.width; GC gc; Graphics_info *gis; int armh; if (cli->isFocus) { gc = WinGC(win, INPUTFOCUS_GC); gis = WinGI(win, INPUTFOCUS_GINFO); } else { gc = WinGC(win, WINDOW_GC); gis = WinGI(win, NORMAL_GINFO); } armh = ResizeArm_Height(gis); XFillRectangle(dpy, self, gc, widthLeftFrame(win), heightTopFrame(win)-armh, w-widthLeftFrame(win)-widthRightFrame(win), armh); olgx_draw_box(gis, self, widthLeftFrame(win), armh, w-widthLeftFrame(win)-widthRightFrame(win), heightTopFrame(win)-(2*armh), OLGX_INVOKED, True); olgx_draw_text(gis, self, win->fcore.name, win->titlex, win->titley, 0, OLGX_INVOKED | TextOLGX); if (GRV.BoldFontEmulation) olgx_draw_text(gis, self, win->fcore.name, win->titlex+1, win->titley, 0, OLGX_NORMAL | TextOLGX); } /* * drawHeaderLines3D - draw the header, with two focus lines (3D mode) */ static void drawHeaderLines3D(dpy, win, cli, sel) Display *dpy; WinPaneFrame *win; Client *cli; Bool sel; { Window self = win->core.self; int outlinewidth = sel?FRAME_SELECTED_WIDTH:FRAME_OUTLINE_WIDTH; int w = win->core.width; int lineleft, linelen; static Bool chiseledFocusLines = False; GC gc; Graphics_info *gis; int armh; int armw; if (cli->isFocus) { gc = WinGC(win, INPUTFOCUS_GC); gis = WinGI(win, INPUTFOCUS_GINFO); } else { gc = WinGC(win, WINDOW_GC); gis = WinGI(win, NORMAL_GINFO); } armh = ResizeArm_Height(gis); armw = ResizeArm_Width(gis); XFillRectangle(dpy, self, gc, armw, armh, w-2*armw, heightTopFrame(win)-armh); olgx_draw_text(gis, self, win->fcore.name, win->titlex, win->titley, 0, OLGX_NORMAL | TextOLGX); if (GRV.BoldFontEmulation) olgx_draw_text(gis, self, win->fcore.name, win->titlex+1, win->titley, 0, OLGX_NORMAL | TextOLGX); if (cli->wmDecors->flags & WMDecorationResizeable) { lineleft = Resize_width + 1; linelen = w - (2*Resize_width) - 2; } else { lineleft = widthLeftFrame(win); linelen = w - widthLeftFrame(win) - widthRightFrame(win); } if (chiseledFocusLines) { olgx_draw_box(gis, self, lineleft, outlinewidth+1, linelen, 2, OLGX_INVOKED, 0); olgx_draw_box(gis, self, widthLeftFrame(win), heightTopFrame(win)-4, w-widthLeftFrame(win)-widthRightFrame(win), 2, OLGX_INVOKED, 0); } else { olgx_draw_text_ledge(gis, self, lineleft, outlinewidth+1, linelen); olgx_draw_text_ledge(gis, self, widthLeftFrame(win), heightTopFrame(win)-3, w-widthLeftFrame(win)-widthRightFrame(win)); } } /* * drawHeaderNoFocus3D - draw the header, without focus (3D mode) */ static void /* ARGSUSED */ drawHeaderNoFocus3D(dpy, win, cli, sel) Display *dpy; WinPaneFrame *win; Client *cli; Bool sel; { Window self = win->core.self; int w = win->core.width; Graphics_info *gisNormal = WinGI(win,NORMAL_GINFO); int armh = ResizeArm_Height(gisNormal); int armw = ResizeArm_Width(gisNormal); XFillRectangle(dpy, self, WinGC(win,WINDOW_GC), armw, armh, w-2*armw, heightTopFrame(win)-armh); olgx_draw_text(gisNormal, self, win->fcore.name, win->titlex, win->titley, 0, OLGX_NORMAL | TextOLGX); if (GRV.BoldFontEmulation) olgx_draw_text(gisNormal, self, win->fcore.name, win->titlex+1, win->titley, 0, OLGX_NORMAL | TextOLGX); } /* * drawHeaderBar2D - draw the header, with inverted focus bar (2D mode) */ static void /* ARGSUSED */ drawHeaderBar2D(dpy, win, cli, sel) Display *dpy; WinPaneFrame *win; Client *cli; Bool sel; { Window self = win->core.self; int w = win->core.width; GC gc; Graphics_info *gis; int armh; if (cli->isFocus) { gc = WinGC(win, INPUTFOCUS_GC); gis = WinGI(win, INPUTFOCUS_GINFO); } else { gc = WinGC(win, WINDOW_GC); gis = WinGI(win, NORMAL_GINFO); } armh = ResizeArm_Height(gis); /* draw frame-colored rectangle below titlebar box */ XFillRectangle(dpy, self, gc, widthLeftFrame(win), heightTopFrame(win)-armh, w-widthLeftFrame(win)-widthRightFrame(win), armh); /* draw black titlebar to indicate 2d focus (XFillRectangle uses * foreground color for fill) */ XFillRectangle(dpy, self, WinGC(win,FOREGROUND_GC), widthLeftFrame(win), armh-1, w-widthLeftFrame(win)-widthRightFrame(win), heightTopFrame(win)-(2*armh)+1); /* fill in window name */ DrawText(dpy, self, TitleFont, gc, win->titlex, win->titley, win->fcore.name, win->nameLength); /* emulate bold font */ if (GRV.BoldFontEmulation) { DrawText(dpy, self, TitleFont, gc, win->titlex + 1, win->titley, win->fcore.name, win->nameLength); } } /* * drawHeaderLines2D - draw the header, with focus lines (2D mode) */ static void drawHeaderLines2D(dpy, win, cli, sel) Display *dpy; WinPaneFrame *win; Client *cli; Bool sel; { Window self = win->core.self; int outlinewidth = sel?FRAME_SELECTED_WIDTH:FRAME_OUTLINE_WIDTH; int w = win->core.width; GC gc; Graphics_info *gis; int armh; int armw; if (cli->isFocus) { gc = WinGC(win, INPUTFOCUS_GC); gis = WinGI(win, INPUTFOCUS_GINFO); } else { gc = WinGC(win, FOREGROUND_GC); gis = WinGI(win, NORMAL_GINFO); } armh = ResizeArm_Height(gis); armw = ResizeArm_Width(gis); /* fill in frame-colored area below titlebar area */ XFillRectangle(dpy, self, gc, armw, armh, w-2*armw, heightTopFrame(win)-armh); /* fill in window name */ DrawText(dpy, self, TitleFont, WinGC(win,FOREGROUND_GC), win->titlex, win->titley, win->fcore.name, win->nameLength); /* emulate bold font */ if (GRV.BoldFontEmulation) { DrawText(dpy, self, TitleFont, WinGC(win,FOREGROUND_GC), win->titlex + 1, win->titley, win->fcore.name, win->nameLength); } /* draw 2 pixel tall black focus indicator line above titlebar area * (without overwriting the resize corners) */ if (cli->wmDecors->flags & WMDecorationResizeable) XFillRectangle(dpy, self, WinGC(win,FOREGROUND_GC), Resize_width+1, outlinewidth+1, w-(2*Resize_width)-2, 2); else XFillRectangle(dpy, self, WinGC(win,FOREGROUND_GC), widthLeftFrame(win), outlinewidth+1, w-widthLeftFrame(win)-widthRightFrame(win), 2); /* draw 2 pixel tall black focus indicator line below titlebar area */ XFillRectangle(dpy, self, WinGC(win,FOREGROUND_GC), widthLeftFrame(win), heightTopFrame(win)-3, w-widthLeftFrame(win)-widthRightFrame(win), 2); } /* * drawHeaderNoFocus2D - draw the header, without focus (2D mode) */ static void /* ARGSUSED */ drawHeaderNoFocus2D(dpy, win, cli, sel) Display *dpy; WinPaneFrame *win; Client *cli; Bool sel; { Window self = win->core.self; int w = win->core.width; int armh = ResizeArm_Height(WinGI(win,NORMAL_GINFO)); int armw = ResizeArm_Width(WinGI(win,NORMAL_GINFO)); /* fill in frame-colored area below titlebar */ XFillRectangle(dpy, self, WinGC(win,WINDOW_GC), armw, armh, w-2*armw, heightTopFrame(win)-armh); /* fill in window name in titlebar */ DrawText(dpy, self, TitleFont, WinGC(win,FOREGROUND_GC), win->titlex, win->titley, win->fcore.name, win->nameLength); /* emulate bold font */ if (GRV.BoldFontEmulation) { DrawText(dpy,self,TitleFont,WinGC(win,FOREGROUND_GC), win->titlex + 1, win->titley, win->fcore.name, win->nameLength); } } /* drawFooter - draw the footer */ static void drawFooter(dpy, win, cli) Display *dpy; WinPaneFrame *win; Client *cli; { Window self = win->core.self; int w = win->core.width; int h = win->core.height; int fy = h-heightBottomFrame(win); int baseline; int margin; int footwidth; int qfootwidth; int gutter; int rstart, lmaxwidth, rmaxwidth; Graphics_info *gis; GC gc; if (cli->isFocus) { gc = WinGC(win, INPUTFOCUS_GC); gis = WinGI(win, INPUTFOCUS_GINFO); } else { gc = WinGC(win, WINDOW_GC); gis = WinGI(win, NORMAL_GINFO); } #ifdef OW_I18N_L4 if (cli->wmDecors->flags & WMDecorationIMStatus) fy += IMstatusHeight(cli,gisNormal); #endif /* fill in frame-colored area above footer */ baseline = fy + FontAscent(TitleFont) + ResizeArm_Height(gis); gutter = ptSize(gis); margin = FRAME_OUTLINE_WIDTH + ptSize(gis); footwidth = w - 2*margin; qfootwidth = footwidth / 4; XFillRectangle(dpy, self, gc, widthLeftFrame(win), fy, w - widthLeftFrame(win) - widthRightFrame(win), footerHeight(cli, gis)); /* REMIND we don't paint the "more arrow" if text is truncated */ if ((win->leftFooter.width + win->rightFooter.width + gutter) <= footwidth) { /* room for both: no clipping */ lmaxwidth = win->leftFooter.width; rmaxwidth = win->rightFooter.width; } else if (win->rightFooter.width < qfootwidth) { /* right footer takes less than 1/4 of the footer */ rmaxwidth = win->rightFooter.width; lmaxwidth = footwidth - rmaxwidth - gutter; } else if ((win->leftFooter.width) < (footwidth - qfootwidth - gutter)) { /* left footer takes less than 3/4 of the footer */ lmaxwidth = win->leftFooter.width; rmaxwidth = footwidth - lmaxwidth - gutter; } else { /* must truncate both */ rmaxwidth = qfootwidth; lmaxwidth = footwidth - qfootwidth - gutter; } rstart = w - margin - rmaxwidth; if (win->leftFooter.string) olgx_draw_text(gis, self, win->leftFooter.string, margin, baseline, lmaxwidth, OLGX_NORMAL | TextOLGX); if (win->rightFooter.string) olgx_draw_text(gis, self, win->rightFooter.string, rstart, baseline, rmaxwidth, OLGX_NORMAL | TextOLGX); } #ifdef OW_I18N_L4 /* * drawIMStatus - draw the IMStatus, IMStatus window position is NOT * reflected by footer exsitence or not, but footer postion will * affect by IMStatus existance (this is bad assumption). */ static void drawIMStatus(dpy, win, cli) Display *dpy; WinPaneFrame *win; Client *cli; { Window self; int w; int h; int armh; int fy; int baseline; int margin; int statuswidth; int qstatuswidth; int gutter; int rstart, lmaxwidth, rmaxwidth; Graphics_info *gisNormal = WinGI(win,NORMAL_GINFO); self = win->core.self; w = win->core.width; h = win->core.height; armh = ResizeArm_Height(gisNormal); fy = h - heightBottomFrame(win); baseline = fy - GRV.TitleFontSetInfo.fsx->max_logical_extent.y + ResizeArm_Height(gisNormal); margin = FRAME_OUTLINE_WIDTH + ptSize(gisNormal); statuswidth = w - 2*margin; qstatuswidth = statuswidth / 4; gutter = ptSize(gisNormal); /* fill in frame-colored area above IMStatus */ XFillRectangle(dpy, self, WinGC(win,WINDOW_GC), widthLeftFrame(win), fy, w - widthLeftFrame(win) - widthRightFrame(win), IMstatusHeight(cli, gisNormal)); /* REMIND we don't paint the "more arrow" if text is truncated */ if ((win->leftIMStatus.width + win->rightIMStatus.width + gutter) <= statuswidth) { /* room for both: no clipping */ lmaxwidth = win->leftIMStatus.width; rmaxwidth = win->rightIMStatus.width; } else if (win->leftIMStatus.width < qstatuswidth) { /* left IMStatus takes less than 1/4 of the status */ lmaxwidth = win->leftIMStatus.width; rmaxwidth = statuswidth - lmaxwidth - gutter; } else if ((win->rightIMStatus.width) < (statuswidth-qstatuswidth-gutter)) { /* right IMStatus takes less than 3/4 of the IMStatus */ rmaxwidth = win->rightIMStatus.width; lmaxwidth = statuswidth - rmaxwidth - gutter; } else { /* must truncate both */ lmaxwidth = qstatuswidth; rmaxwidth = statuswidth - qstatuswidth - gutter; } rstart = w - margin - rmaxwidth; if (win->leftIMStatus.string) { olgx_draw_text(gisNormal, self, win->leftIMStatus.string, margin, baseline, lmaxwidth, OLGX_NORMAL | TextOLGX); if (GRV.BoldFontEmulation == True) olgx_draw_text(gisNormal, self, win->leftIMStatus.string, margin + 1, baseline, lmaxwidth, OLGX_NORMAL | TextOLGX); } if (win->rightIMStatus.string) { olgx_draw_text(gisNormal, self, win->rightIMStatus.string, rstart, baseline, rmaxwidth, OLGX_NORMAL | TextOLGX); if (GRV.BoldFontEmulation) olgx_draw_text(gisNormal, self, win->rightIMStatus.string, rstart + 1, baseline, rmaxwidth, OLGX_NORMAL | TextOLGX); } } #endif OW_I18N_L4 /* drawBase2D - draw the outer border of the window (2D mode) */ static void drawBase2D(dpy, win, cli, sel) Display *dpy; WinPaneFrame *win; Client *cli; Bool sel; { Window self = win->core.self; int lwidth = sel ? FRAME_SELECTED_WIDTH : FRAME_OUTLINE_WIDTH; int w = win->core.width; int h = win->core.height; GC borderGC = WinGC(win,BORDER_GC); GC gc; if (cli->isFocus) gc = WinGC(win,INPUTFOCUS_GC); else gc = WinGC(win,WINDOW_GC); /* fill background with window color */ XFillRectangle(dpy, self, gc, lwidth, lwidth, w-(2*lwidth), h-(2*lwidth)); /* draw frame outline: top, bottom, left, right */ XFillRectangle(dpy,self,borderGC,0,0,w,lwidth); XFillRectangle(dpy,self,borderGC,0,h-lwidth,w,lwidth); XFillRectangle(dpy,self,borderGC,0,lwidth,lwidth,h-(2*lwidth)); XFillRectangle(dpy,self,borderGC,w-lwidth,lwidth,lwidth,h-(2*lwidth)); } /* drawBase3D - draw the outer border of the window (3D mode) */ static void /* ARGSUSED */ drawBase3D(dpy, win, cli, sel) Display *dpy; WinPaneFrame *win; Client *cli; Bool sel; { Graphics_info *gis; if (cli->isFocus) gis = WinGI(win,INPUTFOCUS_GINFO); else gis = WinGI(win,NORMAL_GINFO); olgx_draw_box(gis, win->core.self, 0, 0, win->core.width, win->core.height, OLGX_NORMAL, True); if (sel) { olgx_draw_box(gis, win->core.self, 1, 1, win->core.width-2, win->core.height-2, OLGX_NORMAL, False); } } /* * drawHeader - draw header appropriately, taking into consideration the 2D/3D * style, busy state, selected state, and focus state. */ static void drawHeader(dpy, winInfo, cli, sel) Display *dpy; WinPaneFrame *winInfo; Client *cli; Bool sel; { void (*func)(); if (cli->isBusy) { func = Win3D(winInfo) ? drawHeaderBusy3D : drawHeaderBusy2D; } else if (cli->isFocus) { /* * Switch based on a value whose 1-bit indicates focus bar (if * zero) or focus lines (if one), and whose 2-bit indicates 2D (if * zero) or 3D (if one). */ switch (((GRV.FocusFollowsMouse ? 1 : 0) ^ (GRV.InvertFocusHighlighting ? 1 : 0)) | (Win3D(winInfo) ? 2 : 0)) { case 0: func = drawHeaderBar2D; break; case 1: func = drawHeaderLines2D; break; case 2: func = drawHeaderBar3D; break; case 3: func = drawHeaderLines3D; break; } } else { func = Win3D(winInfo) ? drawHeaderNoFocus3D : drawHeaderNoFocus2D; } (*func)(dpy, winInfo, cli, sel); } /* * drawFrame -- draw the frame window */ /*ARGSUSED*/ /* dpy arg will be used when multiple Displays supported */ static int drawFrame(dpy, winInfo) Display *dpy; WinPaneFrame *winInfo; { Client *cli = winInfo->core.client; if (Win3D(winInfo) && GRV.F3dFrames) drawBase3D(dpy, winInfo, cli, cli->isSelected); else drawBase2D(dpy, winInfo, cli, cli->isSelected); if (cli->wmDecors->flags & WMDecorationHeader) drawHeader(dpy, winInfo, cli, cli->isSelected); if (cli->wmDecors->flags & WMDecorationFooter) drawFooter(dpy, winInfo, cli); /* no difference between 2D and 3D */ #ifdef OW_I18N_L4 if (cli->wmDecors->flags & WMDecorationIMStatus) drawIMStatus(dpy, winInfo, cli); /* no difference between 2D and 3D */ #endif } /* * focusFrame - call global focus handler and redraw frame */ static int focusFrame(dpy,winInfo,focus) Display *dpy; WinPaneFrame *winInfo; Bool focus; { GFrameFocus(dpy,winInfo,focus); (WinFunc(winInfo,core.drawfunc))(dpy,winInfo); } /* * DestroyFrame -- destroy the frame window resources and free any allocated * data. */ static int destroyFrame(dpy, winInfo) Display *dpy; WinPaneFrame *winInfo; { Client *cli = winInfo->core.client; /* free our data and throw away window */ ListDestroy(winInfo->core.children); MemFree(winInfo->fcore.name); if (winInfo->leftFooter.string) MemFree(winInfo->leftFooter.string); if (winInfo->rightFooter.string) MemFree(winInfo->rightFooter.string); #ifdef OW_I18N_L4 if (winInfo->leftIMStatus.string) MemFree(winInfo->leftIMStatus.string); if (winInfo->leftIMStatus.string) MemFree(winInfo->rightIMStatus.string); #endif /* * REMIND: we need to remove grabs and shapes from this window, * because it may be stored on a cache and re-used. If we were to * really destroy the window, we wouldn't need to remove them. */ FrameSetupGrabs(cli, winInfo->core.self, False); #ifdef SHAPE if (cli->isShaped) { cli->isShaped = False; FrameUpdateShape(cli, winInfo); } #endif /* SHAPE */ ScreenDestroyWindow(winInfo->core.client->scrInfo, winInfo->core.self); if (winInfo->core.virtual) XDestroyWindow(winInfo->core.client->dpy, winInfo->core.virtual); WIUninstallInfo(winInfo->core.self); #ifdef DEBUG memset((char *) winInfo, 0, sizeof(WinPaneFrame)); #endif /* DEBUG */ MemFree(winInfo); } /* * newconfigFrame -- compute a new configuration of frame window */ static int /* ARGSUSED */ newconfigFrame(winInfo, pxcre) WinPaneFrame *winInfo; XConfigureRequestEvent *pxcre; { Client *cli = winInfo->core.client; Display *dpy = cli->dpy; WinPane *winPane = (WinPane *)winInfo->fcore.panewin; int neww; int newh; WinGeneric *winDeco; Graphics_info *gisNormal = WinGI(winPane,NORMAL_GINFO); neww = winInfo->fcore.panewin->core.width + widthLeftFrame(winInfo) + widthRightFrame(winInfo); newh = winInfo->fcore.panewin->core.height + heightTopFrame(winInfo) + heightBottomFrame(winInfo); if (neww != winInfo->core.width) { winInfo->core.width = neww; winInfo->core.dirtyconfig |= CWWidth; setTitleText(dpy,winInfo,winPane->core.self); setFooterText(dpy,winInfo,winPane->core.self); #ifdef OW_I18N_L4 setIMStatusText(dpy,winInfo,winPane->core.self); #endif } if (newh != winInfo->core.height) { winInfo->core.height = newh; winInfo->core.dirtyconfig |= CWHeight; } if (winInfo->core.dirtyconfig) { (WinFunc(winPane,core.newposfunc))(winPane, widthLeftFrame(winInfo), heightTopFrame(winInfo)); winDeco = winInfo->winDeco; if (cli->wmDecors->flags & WMDecorationPushPin) { (WinFunc(winDeco,core.newposfunc))(winDeco, xposPushPin(gisNormal), yposPushPin(cli,gisNormal)); } if (cli->wmDecors->flags & WMDecorationCloseButton) { (WinFunc(winDeco,core.newposfunc))(winDeco, xposCloseButton(gisNormal), yposCloseButton(cli,gisNormal)); } if (cli->isBusy && winInfo->winBusy != NULL) (WinFunc(winInfo->winBusy,core.newposfunc))(winInfo->winBusy, widthLeftFrame(winInfo), heightTopFrame(winInfo)); if (cli->wmDecors->flags & WMDecorationResizeable) updateResizePositions(winInfo); } return winInfo->core.dirtyconfig; } /* * setconfigFrame -- set new configuration for frame window */ static int setconfigFrame(dpy, winInfo) Display *dpy; WinPaneFrame *winInfo; { Client *cli = winInfo->core.client; #ifdef SHAPE if (cli->isShaped && (winInfo->core.dirtyconfig & (CWWidth | CWHeight))) { FrameUpdateShape(cli, winInfo); } #endif /* SHAPE */ GFrameSetConfigFunc(dpy, winInfo); } static int selectFrame(dpy, winInfo, selected) Display *dpy; WinPaneFrame *winInfo; Bool selected; { #ifdef SHAPE Client *cli = winInfo->core.client; if (cli->isShaped) FrameUpdateShape(cli, winInfo); #endif /* SHAPE */ GFrameSelect(dpy, winInfo, selected); } /* * updateResizePositions -- update the position fields of the resize corners. * This is necessary because the resize corners are positioned automatically * by the protocol's window gravity feature, instead of being positioned * through the normal window configuration scheme. */ static void updateResizePositions(frame) WinPaneFrame *frame; { WinResize *resize; int i; for (i = 0; i < 4; ++i) { resize = frame->resizeCorner[i]; if (resize == NULL) continue; switch (resize->which) { case upleft: resize->core.x = 0; resize->core.y = 0; break; case upright: resize->core.x = frame->core.width - Resize_width; resize->core.y = 0; break; case lowleft: resize->core.x = 0; resize->core.y = frame->core.height - Resize_height; break; case lowright: resize->core.x = frame->core.width - Resize_width; resize->core.y = frame->core.height - Resize_height; break; } } } /* * makeSpecials -- make any special mark windows (pushpin, close button) */ static void makeSpecials(cli,dpy,wf,panewin,wid,high) Client *cli; Display *dpy; WinPaneFrame *wf; Window panewin; int wid,high; { int decorWidth = 0; Graphics_info *gisNormal = WinGI(wf,NORMAL_GINFO); /* Make resize children */ if (cli->wmDecors->flags & WMDecorationResizeable) { wf->resizeCorner[upleft] = MakeResize(dpy, wf, upleft, 0, 0); wf->resizeCorner[upright] = MakeResize(dpy, wf, upright, wid - Resize_width, 0); wf->resizeCorner[lowleft] = MakeResize(dpy, wf, lowleft, 0, high - Resize_height); wf->resizeCorner[lowright] = MakeResize(dpy, wf, lowright, wid - Resize_width, high - Resize_height); } /* Here we figure out, among other things, how much space * the decorations will take up in the title bar. Also, we * set the leftmost point at which the title string can be * drawn without interfering with the decoration, if any, * on the left hand side of the title bar. 'frame->titleOff' * * A window cannot have both a close button and a pushpin. So, if * they ask for both, they only get the pushpin. This mutual * exclusion was taken care of in GetOLWinDecors in states.c */ if (cli->wmDecors->flags & WMDecorationPushPin) { wf->winDeco = (WinGeneric *) MakePushPin(dpy,wf,panewin,xposPushPin(gisNormal), yposPushPin(cli,gisNormal)); decorWidth = xposPushPin(gisNormal) + PushPinOut_Width(gisNormal); } if (cli->wmDecors->flags & WMDecorationCloseButton) { wf->winDeco = (WinGeneric *) MakeButton(dpy,wf,xposCloseButton(gisNormal), yposCloseButton(cli,gisNormal)); decorWidth = xposCloseButton(gisNormal) + Abbrev_MenuButton_Width(gisNormal) ; } wf->titleOff = decorWidth + decoToTitle(gisNormal); } /* * setVTitleText - extract the name of the window only for the use of the * virtual window */ static void setVTitleText(dpy, w, panewin) Display *dpy; WinPaneFrame *w; Window panewin; { char *tmp; if (w->fcore.name) MemFree(w->fcore.name); if (XFetchName(dpy, panewin, &tmp) == 0 || tmp == NULL) w->fcore.name = MemNewText(GRV.DefaultWinName); else { w->fcore.name = MemNewText(tmp); XFree(tmp); } w->nameLength = strlen(w->fcore.name); w->nameWidth = XTextWidth(GRV.TitleFontInfo, w->fcore.name, w->nameLength); } /* setTitleText - extract the name of the window and set up the titlebar * area */ static void setTitleText(dpy,w,panewin) Display *dpy; WinPaneFrame *w; Window panewin; { int availwidth; char *ptr,*tmp; /* * Get window name */ if (w->fcore.name) MemFree(w->fcore.name); if (!PropGetWMName(dpy,panewin,&(w->fcore.name))) { w->fcore.name = MemNewText(GRV.DefaultWinName); } w->nameLength = TextLen(w->fcore.name); w->nameWidth = FontWidth(TitleFont, w->fcore.name, w->nameLength); availwidth = w->core.width - widthRightFrame(w) - w->titleOff; availwidth = MAX(0,availwidth); if (availwidth < w->nameWidth) { /* Must truncate the title. * First we see if there is a colon and truncate * all the chars up to the colon. */ if (ptr = TextChr(w->fcore.name, ':')) { ptr++; /* after ':' */ w->nameLength -= ptr - w->fcore.name; tmp = w->fcore.name; w->fcore.name = MemNewText(ptr); MemFree(tmp); w->nameWidth = FontWidth(TitleFont, w->fcore.name, w->nameLength); } } while (availwidth < w->nameWidth) { /* Truncate the title from the right. */ w->fcore.name[TextLen(w->fcore.name) - 1] = '\0'; w->nameLength--; w->nameWidth = FontWidth(TitleFont, w->fcore.name, w->nameLength); } /* Center that title. */ w->titlex = w->titleOff + (availwidth - w->nameWidth)/2; w->titley = FontAscent(TitleFont) + ResizeArm_Height(WinGI(w,NORMAL_GINFO)); } /* * calcFooterSize - figure footer size from string */ static void calcFooterSize(footer) Footer *footer; { if (footer->string == NULL) { footer->width = footer->length = 0; } else { footer->length = TextLen(footer->string); footer->width = FontWidth(TitleFont, footer->string,footer->length); } } /* * setLeftFooter - sets the left footer from the AtomLeftFooter property */ static void setLeftFooter(dpy,winInfo,panewin) Display *dpy; WinPaneFrame *winInfo; Window panewin; { if (winInfo->leftFooter.string) MemFree(winInfo->leftFooter.string); if (!PropGetOLLeftFooter(dpy,panewin,&(winInfo->leftFooter.string))) winInfo->leftFooter.string = NULL; calcFooterSize(&(winInfo->leftFooter)); } /* * setRightFooter - sets the left footer from the AtomRightFooter property */ static void setRightFooter(dpy,winInfo,panewin) Display *dpy; WinPaneFrame *winInfo; Window panewin; { if (winInfo->rightFooter.string) MemFree(winInfo->rightFooter.string); if (!PropGetOLRightFooter(dpy,panewin,&(winInfo->rightFooter.string))) winInfo->rightFooter.string = NULL; calcFooterSize(&(winInfo->rightFooter)); } /* * setFooterText - set both left and right footers */ static void setFooterText(dpy,w,panewin) Display *dpy; WinPaneFrame *w; Window panewin; { setLeftFooter(dpy,w,panewin); setRightFooter(dpy,w,panewin); } #ifdef OW_I18N_L4 /* * setLeftIMStatus - sets the left IMStatus from the AtomLeftIMStatus property */ static void setLeftIMStatus(dpy,winInfo,panewin) Display *dpy; WinPaneFrame *winInfo; Window panewin; { if (winInfo->leftIMStatus.string) MemFree(winInfo->leftIMStatus.string); if (!PropGetOLLeftIMStatus(dpy,panewin,&(winInfo->leftIMStatus.string))) winInfo->leftIMStatus.string = NULL; calcFooterSize(&(winInfo->leftIMStatus)); } /* * setRightIMStatus - sets the left IMStatus from the AtomRightIMStatus property */ static void setRightIMStatus(dpy,winInfo,panewin) Display *dpy; WinPaneFrame *winInfo; Window panewin; { if (winInfo->rightIMStatus.string) MemFree(winInfo->rightIMStatus.string); if (!PropGetOLRightIMStatus(dpy,panewin,&(winInfo->rightIMStatus.string))) winInfo->rightIMStatus.string = NULL; calcFooterSize(&(winInfo->rightIMStatus)); } /* * setIMStatusText - set both left and right IMStatus text */ static void setIMStatusText(dpy,w,panewin) Display *dpy; WinPaneFrame *w; Window panewin; { setLeftIMStatus(dpy,w,panewin); setRightIMStatus(dpy,w,panewin); } #endif /* * fullrestoreFrame */ static int /* ARGSUSED */ fullrestoreFrame(client,timestamp) Client *client; Time timestamp; { WinPaneFrame *frameInfo = client->framewin; WinPane *paneInfo = (WinPane *)frameInfo->fcore.panewin; int width,height; int maxwidth; if (frameInfo->fcore.fullsize) { /* going to restore/normal */ /* restore from saved values */ frameInfo->core.y = frameInfo->restoreY; frameInfo->core.x = frameInfo->restoreX; frameInfo->core.dirtyconfig |= CWY | CWX; frameInfo->restoreSet = False; width = frameInfo->restoreWidth; height = frameInfo->restoreHeight; } else { /* going to fullsize */ /* save current size attributes */ if (!frameInfo->restoreSet) { frameInfo->restoreWidth = paneInfo->core.width; frameInfo->restoreHeight = paneInfo->core.height; frameInfo->restoreY = frameInfo->core.y; frameInfo->restoreX = frameInfo->core.x; frameInfo->restoreSet = True; } /* move to the top of the screen */ frameInfo->core.y = 0; frameInfo->core.dirtyconfig |= CWY; if (GRV.FullSizeZoomX) { frameInfo->core.x = 0; frameInfo->core.dirtyconfig |= CWX; maxwidth = DisplayWidth(client->dpy, client->screen) - widthLeftFrame(frameInfo) - widthRightFrame(frameInfo); } else maxwidth = paneInfo->core.width; /* if has specified a max size then use it */ if ((client->normHints) && (client->normHints->flags & PMaxSize)) { width = client->normHints->max_width; height = client->normHints->max_height; /* else if has specified a resize increment then use it */ } else if ((client->normHints) && (client->normHints->flags & PResizeInc)) { int availHt,incrH,incrHt,baseHt; int availWt,incrW,incrWt,baseWt; if (client->normHints->flags & PBaseSize) { baseHt = client->normHints->base_height; baseWt = client->normHints->base_width; } else { baseHt = 0; baseWt = 0; } incrHt = client->normHints->height_inc; incrWt = client->normHints->width_inc; availHt = DisplayHeight(client->dpy,client->screen) - heightTopFrame(frameInfo) - heightBottomFrame(frameInfo) - baseHt; availWt = DisplayWidth(client->dpy,client->screen) - widthLeftFrame(frameInfo) - widthRightFrame(frameInfo) - baseWt; incrH = availHt / incrHt; incrW = availWt / incrWt; if (GRV.FullSizeZoomX) width = baseWt + (incrW * incrWt); else width = paneInfo->core.width; height = baseHt + ( incrH * incrHt); /* else make it full screen height */ } else { width = maxwidth; height = DisplayHeight(client->dpy,client->screen) - heightTopFrame(frameInfo) - heightBottomFrame(frameInfo); } } /* Set the new pos/height */ (WinFunc(paneInfo,pcore.setsizefunc))(paneInfo,width,height); WinCallConfig(client->dpy,paneInfo,NULL); frameInfo->fcore.fullsize = !frameInfo->fcore.fullsize; } /*************************************************************************** * global functions ***************************************************************************/ /* * FrameSetupGrabs * * Set up any pointer grabs for this window, as appropriate for the focus mode * (follow-mouse or click) and for the focus model (Passive, Globally Active, * etc.) of this window. This is important for ClickFocus mode for Passive * and Locally Active clients. If the user clicks over the pane window, we * get the event, set the focus, and replay the event, thus passing the event * through. * * The buttons are grabbed with owner-events True so that olwm's own * subwindows (e.g. window buttons, resize corners) will get the event instead * of the frame. * * REMIND we need to remove explicit reference to Buttons 1 and 2. */ void FrameSetupGrabs(cli, win, activate) Client *cli; Window win; Bool activate; { if (!GRV.FocusFollowsMouse) { switch (cli->focusMode) { case Passive: case LocallyActive: if (activate) { XGrabButton(cli->dpy, Button1, AnyModifier, win, True, ButtonPressMask | ButtonReleaseMask | ButtonMotionMask, GrabModeSync, GrabModeSync, None, None); XGrabButton(cli->dpy, Button2, AnyModifier, win, True, ButtonPressMask | ButtonReleaseMask | ButtonMotionMask, GrabModeSync, GrabModeSync, None, None); } else { XUngrabButton(cli->dpy, Button1, AnyModifier, win); XUngrabButton(cli->dpy, Button2, AnyModifier, win); } break; } } } /* * FrameAllowEvents * * Issue an AllowEvents request if necessary. If the client is Passive or * Locally Active, and the focus mode is click-to-type, there is a passive, * synchronous grab on the frame window. If a subwindow receives an event but * wants to ignore it, it must call this function in order to unfreeze the * devices. */ void FrameAllowEvents(cli, time) Client *cli; Time time; { if (!GRV.FocusFollowsMouse) { switch (cli->focusMode) { case Passive: case LocallyActive: XAllowEvents(cli->dpy, AsyncBoth, time); break; } } } /* * MakeFrame -- create the frame window. Return a WinPaneFrame structure. * Note that unlike most Make functions, frames are not mapped right * away. */ WinPaneFrame * MakeFrame(cli,panewin,paneattrs) Client *cli; Window panewin; XWindowAttributes *paneattrs; { Display *dpy = cli->dpy; WinPaneFrame *w; Window win; XSetWindowAttributes attributes; unsigned long valuemask; int wid, high; /* create the frame window */ if (cli->wmDecors->flags & WMNoDecor) attributes.event_mask = FRAME_EVENT_ND_MASK; else attributes.event_mask = FRAME_EVENT_MASK; attributes.save_under = paneattrs->save_under || (cli->transientFor != 0 && GRV.TransientsSaveUnder); attributes.background_pixmap = None; attributes.cursor = GRV.TargetPointer; attributes.border_pixel = 0; attributes.colormap = cli->scrInfo->colormap; if (!GRV.PointerWorkspace) valuemask = CWEventMask | CWSaveUnder | CWBackPixmap | CWBorderPixel | CWColormap; else valuemask = CWEventMask | CWSaveUnder | CWBackPixmap | CWCursor | CWBorderPixel | CWColormap; win = ScreenCreateWindow(cli->scrInfo, cli->scrInfo->rootid, 0, 0, 1, 1, valuemask, &attributes); /* create the associated structure */ w = MemNew(WinPaneFrame); w->class = &classPaneFrame; w->core.self = win; w->core.kind = WIN_FRAME; w->core.parent = NULL; w->core.children = NULL; w->core.client = cli; /* x and y set later */ /* compute size of frame from pane */ wid = paneattrs->width + widthLeftFrame(w) + widthRightFrame(w); high = paneattrs->height + heightTopFrame(w) + heightBottomFrame(w); w->core.width = wid; /* these get fixed up at config time */ w->core.height = high; w->core.stack_mode = Above; w->core.dirtyconfig = CWX | CWY | CWHeight | CWWidth | CWStackMode; w->core.colormap = None; w->core.exposures = NULL; w->core.helpstring = "olwm:Frame"; cli->framewin = w; /* register the window */ WIInstallInfo(w); /* if there's any special marks, make them */ makeSpecials(cli,dpy,w,panewin,wid,high); /* set up the titlebar */ if (cli->wmDecors->flags & WMDecorationHeader) setTitleText(dpy,w,panewin); else setVTitleText(dpy, w, panewin); /* set up the footer */ if (cli->wmDecors->flags & WMDecorationFooter) setFooterText(dpy,w,panewin); #ifdef OW_I18N_L4 /* set up the status */ if (cli->wmDecors->flags & WMDecorationIMStatus) setIMStatusText(dpy,w,panewin); #endif OW_I18N_L4 /* Determine which menu should come up when menus are requested * for this frame. */ FrameSetupGrabs(cli, win, True); /* set the full/normal size to transition to full size * on first activation */ w->fcore.fullsize = False;; w->restoreSet = False; return w; } void /* ARGSUSED */ FrameInit(dpy) Display *dpy; { classPaneFrame.core.kind = WIN_FRAME; classPaneFrame.core.xevents[MapRequest] = eventMapRequest; classPaneFrame.core.xevents[ConfigureRequest] = eventConfigureRequest; classPaneFrame.core.xevents[Expose] = WinEventExpose; classPaneFrame.core.xevents[ButtonRelease] = GFrameEventButtonRelease; classPaneFrame.core.xevents[MotionNotify] = GFrameEventMotionNotify; classPaneFrame.core.xevents[ButtonPress] = GFrameEventButtonPress; classPaneFrame.core.xevents[EnterNotify] = eventEnterNotify; classPaneFrame.core.xevents[LeaveNotify] = eventLeaveNotify; classPaneFrame.core.xevents[FocusIn] = GFrameEventFocus; classPaneFrame.core.xevents[FocusOut] = GFrameEventFocus; classPaneFrame.core.focusfunc = focusFrame; classPaneFrame.core.drawfunc = drawFrame; classPaneFrame.core.destroyfunc = destroyFrame; classPaneFrame.core.selectfunc = selectFrame; classPaneFrame.core.newconfigfunc = newconfigFrame; classPaneFrame.core.newposfunc = WinNewPosFunc; classPaneFrame.core.setconfigfunc = setconfigFrame; classPaneFrame.core.createcallback = NULL; classPaneFrame.core.heightfunc = NULL; classPaneFrame.core.widthfunc = NULL; classPaneFrame.fcore.heighttop = heightTopFrame; classPaneFrame.fcore.heightbottom = heightBottomFrame; classPaneFrame.fcore.widthleft = widthRightFrame; classPaneFrame.fcore.widthright = widthLeftFrame; classPaneFrame.fcore.menuPress = menuPressFrame; classPaneFrame.fcore.adjustPress = selectAdjustPressFrame; classPaneFrame.fcore.adjustClick = adjustClickFrame; classPaneFrame.fcore.selectPress = selectAdjustPressFrame; classPaneFrame.fcore.selectClick = selectClickFrame; classPaneFrame.fcore.selectDoubleClick = selectDoubleClickFrame; classPaneFrame.fcore.selectDrag = selectDragFrame; classPaneFrame.fcore.fullrestoreToggle = fullrestoreFrame; } /* * FrameGetGravityOffset -- calculate the offset due to window-gravity and * fill the values into dx and dy. */ void FrameGetGravityOffset(frame, dx, dy) WinPaneFrame *frame; int *dx; int *dy; { int decorw = widthLeftFrame(frame) + widthRightFrame(frame); int decorh = heightTopFrame(frame) + heightBottomFrame(frame); int bw = frame->fcore.panewin->pcore.oldBorderWidth; switch (frame->core.client->normHints->win_gravity) { default: case NorthWestGravity: *dx = 0; *dy = 0; break; case NorthGravity: *dx = decorw/2 - bw; *dy = 0; break; case NorthEastGravity: *dx = decorw - 2*bw; *dy = 0; break; case WestGravity: *dx = 0; *dy = decorh/2 - bw; break; case CenterGravity: *dx = decorw/2 - bw; *dy = decorh/2 - bw; break; case EastGravity: *dx = decorw - 2*bw; *dy = decorh/2 - bw; break; case SouthWestGravity: *dx = 0; *dy = decorh - 2*bw; break; case SouthGravity: *dx = decorw/2 - bw; *dy = decorh - 2*bw; break; case SouthEastGravity: *dx = decorw - 2*bw; *dy = decorh - 2*bw; break; case StaticGravity: *dx = widthLeftFrame(frame) - bw; *dy = heightTopFrame(frame) - bw; break; } } /* FrameMoveRelative * Moves a frame by a delta in x and y */ void FrameMoveRelative(win,dx,dy) WinPaneFrame *win; int dx,dy; { (WinFunc(win,core.newposfunc))(win,win->core.x+dx,win->core.y+dy); } /* * FrameSetPosAbsolute * The client is moving the pane to an absolute location on the screen, so we * must move the frame accordingly. */ void FrameSetPosAbsolute(win, x, y) WinPaneFrame *win; int x, y; { int fx, fy; WinGenericPane *pane = win->fcore.panewin; int panebord = (pane == NULL)?(0):(pane->pcore.oldBorderWidth); fx = x - widthLeftFrame(win)+panebord; fy = y - heightTopFrame(win)+panebord; (WinFunc(win,core.newposfunc))(win, fx, fy); } /* FrameSetPosFromPane -- the client has specified a position for the pane. * Using the window gravity, the frame's position should be adjusted * so that the point on the frame named by the window gravity is at the * corresponding point in the requested pane. * REMIND we aren't accounting for the window's border width here */ void FrameSetPosFromPane(win,x,y) WinPaneFrame *win; int x,y; { int dx, dy; FrameGetGravityOffset(win, &dx, &dy); x -= dx; y -= dy; (WinFunc(win,core.newposfunc))(win, x, y); } /* FrameUnparentPane * * Reparent the pane back to the root, moving the pane's position according to * the window gravity. Also, restack the pane so that it has the same * stacking order as the frame had. This is important, so that windows on top * remain on top after exiting the window manager. */ void FrameUnparentPane(cli, winFrame, winPane) Client *cli; WinPaneFrame *winFrame; WinPane *winPane; { int x = winFrame->core.x; int y = winFrame->core.y; int dx, dy; XWindowChanges xwc; unsigned int xwc_mask; xwc.sibling = winFrame->core.self; xwc.stack_mode = Above; xwc_mask = CWSibling|CWStackMode; if (winFrame->restoreSet) { y = winFrame->restoreY; xwc.width = winFrame->restoreWidth; xwc.height = winFrame->restoreHeight; xwc_mask |= CWWidth|CWHeight; } FrameGetGravityOffset(winFrame, &dx, &dy); x += dx; y += dy; XSetWindowBorderWidth(cli->dpy,winPane->core.self, winPane->pcore.oldBorderWidth); if (winPane->pcore.oldSaveUnder) { XSetWindowAttributes xwa; xwa.save_under = True; XChangeWindowAttributes(cli->dpy,winPane->core.self, CWSaveUnder,&xwa); } if (winPane->core.kind != WIN_MENU) { XReparentWindow(cli->dpy, winPane->core.self, cli->scrInfo->rootid, x, y); XChangeSaveSet(cli->dpy, winPane->core.self, SetModeDelete); /* * REMIND - RestackWhenWithdraw is a misnomer - since * we may also be configuring width and height */ if (GRV.RestackWhenWithdraw) { XConfigureWindow(cli->dpy, winPane->core.self, xwc_mask, &xwc); } } } /* * FrameUpdateHeader -- the header text has changed; update as appropriate */ /* ARGSUSED */ void FrameUpdateHeader(cli,event) Client *cli; XPropertyEvent *event; { setTitleText(cli->dpy,cli->framewin,PANEWINOFCLIENT(cli)); PaintVirtualWindow(cli->framewin); (WinFunc(cli->framewin,core.drawfunc))(cli->dpy, cli->framewin); } /* * FrameUpdateFooter -- the footer text has changed */ void FrameUpdateFooter(cli,event) Client *cli; XPropertyEvent *event; { if (event->atom == AtomLeftFooter) { setLeftFooter(cli->dpy,cli->framewin,PANEWINOFCLIENT(cli)); } else if (event->atom == AtomRightFooter) { setRightFooter(cli->dpy,cli->framewin,PANEWINOFCLIENT(cli)); } (WinFunc(cli->framewin,core.drawfunc))(cli->dpy, cli->framewin); } #ifdef OW_I18N_L4 /* * FrameUpdateIMStatus -- the IMStatus text has changed */ void FrameUpdateIMStatus(cli,event) Client *cli; XPropertyEvent *event; { if (event->atom == AtomLeftIMStatus) { setLeftIMStatus(cli->dpy,cli->framewin,PANEWINOFCLIENT(cli)); } else if (event->atom == AtomRightIMStatus) { setRightIMStatus(cli->dpy,cli->framewin,PANEWINOFCLIENT(cli)); } (WinFunc(cli->framewin,core.drawfunc))(cli->dpy, cli->framewin); } #endif /* * FrameFlashTitleBar -- flash the title bar */ void FrameFlashTitleBar(winInfo) WinPaneFrame *winInfo; { Client *cli = winInfo->core.client; Display *dpy = cli->dpy; int ii; void (*draw)(), (*undraw)(); /* if no header, don't draw anything */ if ((cli->wmDecors->flags & WMDecorationHeader) == 0) return; /* set up draw/undraw procs */ if (Win3D(winInfo)) { undraw = drawHeaderNoFocus3D; draw = drawHeaderBar3D; } else { undraw = drawHeaderNoFocus2D; draw = drawHeaderBar2D; } (*undraw)(dpy, winInfo, cli, cli->isSelected); for (ii=0; iiisSelected); XFlush(dpy); olwm_usleep((unsigned)(GRV.FlashTime)); (*undraw)(dpy, winInfo, cli, cli->isSelected); XFlush(dpy); olwm_usleep((unsigned)(GRV.FlashTime)); } /* now redraw the header */ drawHeader(dpy, winInfo, cli, cli->isSelected); } /* FrameSetBusy - change the frame's busy state. The client's overall * indication has already been set; create a busy window and manipulate * the focus (if necessary). */ void FrameSetBusy(win, newBusy) WinPaneFrame *win; Bool newBusy; { if (newBusy) { win->winBusy = MakeBusy(win->core.client->dpy, win); } else { (WinFunc(win->winBusy,core.destroyfunc))(win->core.client->dpy, win->winBusy); } WinCallDraw(win); } /* * FrameWarpPointer - warp to pane windows' default button position if a * property is given; otherwise, if the window has a pushpin, warp it there. * This function can only be called AFTER the frame & pane are mapped. */ #define WARPINFO_LEN 6 void FrameWarpPointer(cli) Client *cli; { WinPaneFrame *frameInfo = cli->framewin; WinPane *paneInfo = (WinPane *) frameInfo->fcore.panewin; int *warpParam; unsigned long nItems, remain; Window root, child, dest; int root_x, root_y, win_x; unsigned int keys_buttons; int offsetX, offsetY; Graphics_info *gis = WinGI(frameInfo, NORMAL_GINFO); extern Client *CurrentClient; frameInfo->pointerIsWarped = False; if (!GRV.PopupJumpCursor) { return; } /* see if window pane has any warp info */ warpParam = GetWindowProperty(cli->dpy, paneInfo->core.self, AtomDfltBtn, 0L, WARPINFO_LEN, XA_INTEGER, 0, &nItems, &remain); if (warpParam != NULL && nItems != WARPINFO_LEN) { XFree((char *) warpParam); warpParam = NULL; } /* * Warp to pin if warpParam non-NULL or WarpToPin is set. */ if (warpParam == NULL && !(cli->wmDecors->flags & WMDecorationWarpToPin)) { return; } if (warpParam == NULL) { WinRootPos(frameInfo, &offsetX, &offsetY); /* warp to the pushpin */ cli->warpInfo.dflButtonX = xposPushPin(gis); cli->warpInfo.dflButtonY = yposPushPin(cli, gis); cli->warpInfo.dflButtonW = PushPinOut_Width(gis); cli->warpInfo.dflButtonH = PushPinOut_Height(gis); cli->warpInfo.warpToX = cli->warpInfo.dflButtonX + PushPinOut_Width(gis) / 2; cli->warpInfo.warpToY = cli->warpInfo.dflButtonY + PushPinOut_Height(gis) / 2; dest = frameInfo->core.self; } else { WinRootPos(paneInfo, &offsetX, &offsetY); /* save warp destination information */ cli->warpInfo.warpToX = warpParam[0]; cli->warpInfo.warpToY = warpParam[1]; cli->warpInfo.dflButtonX = warpParam[2]; cli->warpInfo.dflButtonY = warpParam[3]; cli->warpInfo.dflButtonW = warpParam[4]; cli->warpInfo.dflButtonH = warpParam[5]; XFree((char *)warpParam); dest = paneInfo->core.self; } /* translate to root coordinates */ cli->warpInfo.dflButtonX += offsetX; cli->warpInfo.dflButtonY += offsetY; /* save warp return information */ if (!XQueryPointer(cli->dpy, dest, &root, &child, &root_x, &root_y, &win_x, &win_x, &keys_buttons)) { /* refuse to warp off the screen */ return; } cli->warpInfo.warpBackClient = CurrentClient; cli->warpInfo.warpBackX = root_x; cli->warpInfo.warpBackY = root_y; /* warp the pointer */ XWarpPointer(cli->dpy, None, dest, 0, 0, 0, 0, cli->warpInfo.warpToX, cli->warpInfo.warpToY); frameInfo->pointerIsWarped = True; /* finally, set the focus if necessary */ if (!GRV.AutoInputFocus) ClientSetFocus(cli, True, CurrentTime); } /* * FrameUnwarpPointer - called when a pane is unmapping, and the pointer * needs to be restored to its original position (if it was warped when the * window was initially mapped). */ void FrameUnwarpPointer(cli) Client *cli; { WinPaneFrame *frameInfo = cli->framewin; if (frameInfo->pointerIsWarped) { XWarpPointer(cli->dpy, cli->scrInfo->rootid, cli->scrInfo->rootid, cli->warpInfo.dflButtonX, cli->warpInfo.dflButtonY, cli->warpInfo.dflButtonW, cli->warpInfo.dflButtonH, cli->warpInfo.warpBackX, cli->warpInfo.warpBackY); if (cli->warpInfo.warpBackClient != NULL) { /* * REMIND: set current client in order to prevent * DestroyClient from setting focus again. Should we use * ClientActivate instead? */ Client *warpcli = cli->warpInfo.warpBackClient; if (warpcli->framewin != NULL) { ClientSetCurrent(cli->warpInfo.warpBackClient); ClientSetFocus(cli->warpInfo.warpBackClient, True, CurrentTime); } } /* invalidate the pointer warp info */ frameInfo->pointerIsWarped = False; } } /* * Update the frame's bounding shape, based on the client's bounding shape and * (if the window is selected) the resize corners. */ void FrameUpdateShape(cli, winInfo) Client *cli; WinPaneFrame *winInfo; { #ifdef SHAPE if (cli->isShaped) { XShapeCombineShape(cli->dpy, winInfo->core.self, ShapeBounding, widthLeftFrame(winInfo), heightTopFrame(winInfo), winInfo->fcore.panewin->core.self, ShapeBounding, ShapeSet); if (cli->isSelected && (cli->wmDecors->flags & WMDecorationResizeable)) { XRectangle rects[8]; Graphics_info *gi = WinGI(winInfo, NORMAL_GINFO); int tw = Resize_width; /* total width & height */ int th = Resize_height; int aw = ResizeArm_Width(gi); /* arm width & height */ int ah = ResizeArm_Height(gi); /* Add in shapes for the resize corners, two rectangles each. */ /* upper left */ rects[0].x = 0; rects[0].y = 0; rects[0].width = tw; rects[0].height = ah; rects[1].x = 0; rects[1].y = ah; rects[1].width = aw; rects[1].height = th - ah; /* upper right */ rects[2].x = winInfo->core.width - tw; rects[2].y = 0; rects[2].width = tw; rects[2].height = ah; rects[3].x = winInfo->core.width - aw; rects[3].y = ah; rects[3].width = aw; rects[3].height = th - ah; /* lower left */ rects[4].x = 0; rects[4].y = winInfo->core.height - th; rects[4].width = aw; rects[4].height = th - ah; rects[5].x = 0; rects[5].y = winInfo->core.height - ah; rects[5].width = tw; rects[5].height = ah; /* lower right */ rects[6].x = winInfo->core.width - aw; rects[6].y = winInfo->core.height - th; rects[6].width = aw; rects[6].height = th - ah; rects[7].x = winInfo->core.width - tw; rects[7].y = winInfo->core.height - ah; rects[7].width = tw; rects[7].height = ah; XShapeCombineRectangles(cli->dpy, winInfo->core.self, ShapeBounding, 0, 0, rects, 8, ShapeUnion, Unsorted); } } else { /* remove the shape from the frame */ XShapeCombineMask(cli->dpy, winInfo->core.self, ShapeBounding, 0, 0, None, ShapeSet); } #endif } /* * Return the minimum width and height of this frame. */ void FrameMinSize(frame, width, height) WinPaneFrame *frame; int *width; /* RETURN */ int *height; /* RETURN */ { int decors = frame->core.client->wmDecors->flags; Graphics_info *gi = WinGI(frame, NORMAL_GINFO); int temp; /* calculate minimum height */ temp = 2*ResizeArm_Height(gi); if (decors & WMDecorationResizeable) temp = MAX(temp, 2*Resize_height); if (decors & WMDecorationHeader) temp = MAX(temp, heightTopFrame(frame) + heightBottomFrame(frame)); *height = temp; /* calculate minimum width */ temp = 2*ResizeArm_Width(gi); if (decors & WMDecorationResizeable) temp = MAX(temp, 2*Resize_width); if (decors & WMDecorationCloseButton) temp = MAX(temp, 2*xposCloseButton(gi) + Abbrev_MenuButton_Width(gi)); if (decors & WMDecorationPushPin) temp = MAX(temp, 2*xposPushPin(gi) + PushPinOut_Width(gi)); *width = temp; } xview-3.2p1.4/clients/olvwm-4.1/wingframe.c100644 1750 1750 36527 5515337331 15714 0ustar mbmb/* * (c) Copyright 1989, 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ /* * wingframe.c -- generic frame window routines */ #ifdef IDENT #ident "@(#)wingframe.c 1.3 olvwm version 12/7/92" #endif /* * Based on #ident "@(#)wingframe.c 26.27 91/09/14 SMI" * */ #include #include #include #include #include #include #include #include #include "i18n.h" #include #include "ollocale.h" #include "mem.h" #include "olwm.h" #include "win.h" #include "globals.h" #include "events.h" #include "virtual.h" /*************************************************************************** * private data ***************************************************************************/ /* * REMIND * The hadSelect variable is necessary because we sometimes receive * MotionNotify events with all buttons up, even though we ask for only * ButtonMotionMask. We set hadSelect only on receipt of an event that is * bound to the Select action, and we ignore motion events that occur if * hadSelect isn't set. */ static Bool hadSelect = False; static Time timeOfLastButPress = 0; static int buttonPressX; static int buttonPressY; static XButtonEvent lastSelectRelease; static XButtonEvent lastSelectPress; static Time lastDoubleClickTime; static SemanticAction currentAction = ACTION_NONE; /*************************************************************************** * forward-declared functions ***************************************************************************/ extern void ClientSetCurrent(); /*************************************************************************** * static functions ***************************************************************************/ void autoRaise(frame) WinGenericFrame *frame; { Bool samescreen; Window root, child; int rootx, rooty, winx, winy; unsigned int state; Client *cli; /* Frame may have gone away */ if (frame == NULL || (frame->core.kind != WIN_FRAME && frame->core.kind != WIN_ICON)) { return; } cli = frame->core.client; if (cli->isFocus) { if (GRV.FocusFollowsMouse) { samescreen = XQueryPointer(cli->dpy, WinRootID(frame), &root, &child, &rootx, &rooty, &winx, &winy, &state); if (samescreen && child == frame->core.self) ClientFront(cli); } else { ClientFront(cli); } } } /*************************************************************************** * global functions ***************************************************************************/ /* * GFrameSelect -- handle selection state change */ /*ARGSUSED*/ /* dpy arg will be used when multiple Displays supported */ int GFrameSelect(dpy, winInfo, selected) Display *dpy; WinGeneric *winInfo; Bool selected; { (WinFunc(winInfo,core.drawfunc))(dpy, winInfo); } /* * GFrameFocus -- handle focus changes * * If we're in auto-raise mode, raise the window. But if we're in focus- * follows-mouse, we query the pointer to make sure we're still in the same * window before we do this raise. This is to avoid restacking loops. * * If colormap installation is tracking the input focus, get the first entry * in the client's WM_COLORMAP_WINDOWS list and install its colormap; * otherwise, install the pane's colormap. */ /*ARGSUSED*/ int GFrameFocus(dpy, winInfo, focus) Display *dpy; WinGenericFrame *winInfo; Bool focus; { WinGeneric *cmwi; if (focus) { ClientSetCurrent(winInfo->core.client); ClientSetWindowState(winInfo->core.client); if (GRV.ColorTracksInputFocus) { if (winInfo->core.client->colormapWins) cmwi = winInfo->core.client->colormapWins->value; else cmwi = (WinGeneric *) winInfo->fcore.panewin; LockColormap(dpy, winInfo->core.client, cmwi); } if (GRV.AutoRaise) { if (GRV.AutoRaiseDelay > 0) { TimeoutCancel(); TimeoutRequest(GRV.AutoRaiseDelay, autoRaise, winInfo); } else { autoRaise(winInfo); } } } } /* * GFrameSetConfigFunc -- change configuration of frame window * REMIND: ensure that transient windows are treated properly. */ int GFrameSetConfigFunc(dpy, win) Display *dpy; WinGenericFrame *win; { XWindowChanges xwc; int dw, dh; Client *cli = win->core.client; if (win->core.dirtyconfig) { if (cli->sticky) { dw = DisplayWidth(win->core.client->dpy, win->core.client->screen); dh = DisplayHeight(win->core.client->dpy, win->core.client->screen); if (win->core.x + (int) win->core.width < 0) { win->core.x = (dw + (win->core.x % dw)) % dw; win->core.dirtyconfig |= CWX; } else if (win->core.x >= dw) { win->core.x = win->core.x % dw; win->core.dirtyconfig |= CWX; } if (win->core.y + (int) win->core.height < 0) { win->core.y = (dh + (win->core.y % dh)) % dh; win->core.dirtyconfig |= CWY; } else if (win->core.y >= dh) { win->core.y = win->core.y % dh; win->core.dirtyconfig |= CWY; } } xwc.x = win->core.x; xwc.y = win->core.y; xwc.width = win->core.width; xwc.height = win->core.height; xwc.sibling = win->core.stack_sib; xwc.stack_mode = win->core.stack_mode; if ((win->core.dirtyconfig & CWSibling) && !(win->core.dirtyconfig &CWStackMode)) win->core.dirtyconfig &= ~CWSibling; ConfigureWindow(dpy,win,win->core.dirtyconfig,&xwc); win->core.dirtyconfig &= ~(CWX|CWY|CWWidth|CWHeight|CWSibling|CWStackMode); } } /* GFrameSetStack -- set the frame's stacking position. Does not initiate * a configuration change. */ void GFrameSetStack(win, mask, mode, sib) WinGenericFrame *win; int mask; int mode; Window sib; { WinGeneric *wsib; if ((mask & CWSibling) && (mask & CWStackMode)) { wsib = WIGetInfo(sib); if (wsib != NULL) { win->core.stack_sib = wsib->core.client->framewin->core.self; win->core.dirtyconfig |= CWSibling; } } if (mask & CWStackMode) { win->core.stack_mode = mode; win->core.dirtyconfig |= CWStackMode; } } /* GFrameSetConfig - set the frame's size and position -- generally used in * resizing or moving the window. We position the frame and resize the pane. * If the pane has refused resizing we skip that part. */ void GFrameSetConfig(win,x,y,w,h) WinGenericFrame *win; int x,y,w,h; { WinPane *pane = (WinPane *)win->fcore.panewin; (WinFunc(win,core.newposfunc))(win,x,y); if (pane != NULL) { if (WinFunc(pane,pcore.setsizefunc) != NULL) (WinFunc(pane,pcore.setsizefunc))(pane, w-(WinFunc(win,fcore.widthleft))(win)-(WinFunc(win,fcore.widthright))(win), h-(WinFunc(win,fcore.heighttop))(win)-(WinFunc(win,fcore.heightbottom))(win)); WinCallConfig(win->core.client->dpy, pane, NULL); } else { WinCallConfig(win->core.client->dpy, win, NULL); } } /*************************************************************************** * global event functions ***************************************************************************/ /* * GFrameEventButtonRelease -- a button has been released * */ int GFrameEventButtonRelease(dpy, event, frameInfo) Display *dpy; XEvent *event; WinGenericFrame *frameInfo; { WinGenericPane *winPane = (WinGenericPane*)frameInfo->fcore.panewin; Client *cli = frameInfo->core.client; if (!AllButtonsUp(event)) return; #define bevent (event->xbutton) switch (currentAction) { case ACTION_SELECT: if (GRV.SelectWindows) { ClearSelections(dpy); AddSelection(cli, event->xbutton.time); } ClientSetCurrent(cli); ClientFront(cli); hadSelect = False; if (WinFunc(frameInfo,fcore.selectClick) != NULL) { (WinFunc(frameInfo,fcore.selectClick))(dpy,event,frameInfo); } /* If the click happened in the decoration windows, * (i.e. not in the pane), check for a double click. * Check last click time to see if we are in double * click land. Also check that the user hasn't just * hit the button 3 times very rapidly. This would * cause a cycle of the window changing size. * REMIND this is more nasty than it should be because * not all frames are yet required to have panes. * Once all panes have frames the subwindow test gets * easier. */ if ((WinFunc(frameInfo,fcore.selectDoubleClick) != NULL) && ((winPane == NULL) || (bevent.subwindow != winPane->core.self)) && ((bevent.time-lastSelectRelease.time) <= GRV.DoubleClickTime) && ((bevent.time-lastDoubleClickTime) > GRV.DoubleClickTime)) { /* we have a double click */ (WinFunc(frameInfo,fcore.selectDoubleClick))(dpy,event,frameInfo); lastDoubleClickTime = bevent.time; } lastSelectRelease = event->xbutton; currentAction = ACTION_NONE; break; /* out of ACTION_SELECT case */ case ACTION_ADJUST: if (WinFunc(frameInfo,fcore.adjustClick) != NULL) { (WinFunc(frameInfo,fcore.adjustClick))(dpy,event,frameInfo); } currentAction = ACTION_NONE; break; } } /* * GFrameEventMotionNotify -- a button is down and the pointer is moving */ int GFrameEventMotionNotify(dpy, event, frameInfo) Display *dpy; XEvent *event; WinGenericFrame *frameInfo; { /* We get this only after a Select press */ if (hadSelect == False) /* watch for erroneous motions */ { return; } if (!event->xmotion.same_screen) return; /* See if we have moved more than the threshold amount. */ if ((ABS(event->xmotion.x - buttonPressX) < GRV.MoveThreshold) && (ABS(event->xmotion.y - buttonPressY) < GRV.MoveThreshold)) return; (WinFunc(frameInfo,fcore.selectDrag))(dpy, event, frameInfo, &lastSelectPress); /* * UserMoveWindows() will grab the pointer and handle events * using an interposer, so we can clear the hadSelect flag. */ hadSelect = False; } /* * GFrameEventButtonPress -- a mouse button has gone down. */ int GFrameEventButtonPress(dpy, event, frameInfo) Display *dpy; XEvent *event; WinGenericFrame *frameInfo; { WinPane *winPane = (WinPane*)frameInfo->fcore.panewin; Window panewindow = winPane->core.self; SemanticAction a; unsigned int ignoremask; ignoremask = ModMaskMap[MOD_CONSTRAIN] | ModMaskMap[MOD_INVERT] | ModMaskMap[MOD_REDUCE]; a = ResolveMouseBinding(dpy, event, ignoremask); switch (a) { case ACTION_SELECT: currentAction = a; /* * Save the location where the button went down so we * can see if the user moves the mouse more than * GRV.MoveThreshold, and wants to move the window. */ buttonPressX = event->xbutton.x; buttonPressY = event->xbutton.y; if (!GRV.FocusFollowsMouse && (WinFunc(frameInfo,fcore.selectPress) != NULL)) { /* It is possible for us to replay the event and * have the window, (decoration window, e.g. the * resize corner, the titlebar), in which the * button press happened to ignore it. * In this case we would get the event * again. For example, the user could button press * in the title bar, (which doesn't select this event), * and have this EventFrame routine get the same event * twice. So, we check that the time stamp of this * button press is different than the last. */ if (event->xbutton.time == timeOfLastButPress) /* We already dealt with this event. */ break; timeOfLastButPress = event->xbutton.time; if (event->xbutton.subwindow == panewindow) { (WinFunc(frameInfo,fcore.selectPress))(dpy,event,frameInfo); } /* Let the button press through * if we had grabbed it. */ XAllowEvents(dpy, ReplayPointer, CurrentTime); } /* End if not GRV.FocusFollowsMouse */ lastSelectPress = event->xbutton; hadSelect = True; break; /* Break case ACTION_SELECT */ case ACTION_ADJUST: currentAction = a; if (!GRV.FocusFollowsMouse) { if (event->xbutton.time == timeOfLastButPress) break; timeOfLastButPress = event->xbutton.time; if (event->xbutton.subwindow == panewindow && WinFunc(frameInfo,fcore.adjustPress) != NULL) { (WinFunc(frameInfo,fcore.adjustPress)) (dpy,event,frameInfo); } XAllowEvents(dpy, ReplayPointer, CurrentTime); } break; case ACTION_MENU: currentAction = a; if (WinFunc(frameInfo,fcore.menuPress) != NULL) (WinFunc(frameInfo,fcore.menuPress))(dpy, event, frameInfo); break; } /* End switch on button pressed */ } /* * GFrameEventEnterNotify * * If we entered from outside and we're in follows-mouse mode, set the focus. * If we enter the frame from the pane or directly from elsewhere (i.e. * nonlinearly) install the appropriate colormap. */ int GFrameEventEnterNotify(dpy, event, frameInfo) Display *dpy; XEvent *event; WinGenericFrame *frameInfo; { Client *cli = frameInfo->core.client; if (GRV.FocusFollowsMouse && event->xcrossing.detail != NotifyInferior) ClientSetFocus(cli,True,event->xcrossing.time); switch (event->xcrossing.detail) { case NotifyInferior: case NotifyNonlinear: ColorWindowCrossing(dpy, event, cli->scrInfo->rootwin); break; } } /* * GFrameEventFocus * * If the focus changed normally (i.e. not as the result of a keyboard grab or * ungrab), call the focus functions. */ int /* ARGSUSED */ GFrameEventFocus(dpy, event, frameInfo) Display *dpy; XEvent *event; WinGenericFrame *frameInfo; { switch (event->xfocus.mode) { case NotifyNormal: case NotifyWhileGrabbed: if (event->xfocus.detail <= NotifyNonlinearVirtual) { if (event->type == FocusIn) WinCallFocus(frameInfo, True); else { Client *cli; cli = frameInfo->core.client; /* * When we lose focus, * we have to WinCallFocus on both the Icon and the regular * Frame: if we double click on an icon, it gets input * focus and when it loses it, it must redraw the frame. * Otherwise, the newly opened frame gets drawn as if it * had input focus * * We can't do this when getting focus, since it confuses * autoraise. There's got to be a better way . . . */ if (cli->framewin) WinCallFocus(cli->framewin, False); if (cli->iconwin) WinCallFocus(cli->iconwin, False); } } break; } } xview-3.2p1.4/clients/olvwm-4.1/winicon.c100644 1750 1750 57217 5515337332 15403 0ustar mbmb/* * (c) Copyright 1989, 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifdef IDENT #ident "@(#)winicon.c 1.5 olvwm version 07 Jan 1994" #endif /* * Based on #ident "@(#)winicon.c 26.42 93/06/28 SMI" * */ #include #include #include #include #include #include #include #include "i18n.h" #include #include "ollocale.h" #include "mem.h" #include "olwm.h" #include "win.h" #include "menu.h" #include "globals.h" #include "slots.h" #include "group.h" extern Bool PropGetWMName(); extern Bool PropGetWMIconName(); /*************************************************************************** * private data ***************************************************************************/ /* events in the icon window that are interesting */ #define ICON_EVENT_MASK (ButtonPressMask | ButtonReleaseMask | \ ExposureMask | ButtonMotionMask | \ EnterWindowMask | FocusChangeMask) /* Class function vector */ static ClassIconFrame classIconFrame; /*************************************************************************** * forward-declared functions ***************************************************************************/ /*************************************************************************** * private event functions ***************************************************************************/ static int /* ARGSUSED */ menuPressIcon(dpy,event,iconInfo) Display *dpy; XEvent *event; WinIconFrame *iconInfo; { if (iconInfo->core.client->wmDecors->menu_type != MENU_NONE) ShowStandardMenu(iconInfo, event, False); } static int /* ARGSUSED */ selectDoubleClickIcon(dpy,event,iconInfo) Display *dpy; XEvent *event; WinIconFrame *iconInfo; { StateNormal(iconInfo->core.client, event->xbutton.time); } static int /* ARGSUSED */ adjustClickIcon(dpy,event,iconInfo) Display *dpy; XEvent *event; WinIconFrame *iconInfo; { ToggleSelection(iconInfo->core.client, event->xbutton.time); } /*************************************************************************** * private functions ***************************************************************************/ /* * iconCalcName - calc position/size of icon name */ static void /* ARGSUSED */ iconCalcName(winIcon,pane) WinIconFrame *winIcon; Window pane; { winIcon->nameLength = TextLen(winIcon->fcore.name); winIcon->nameWidth = FontWidth(IconFont, winIcon->fcore.name, winIcon->nameLength); winIcon->nameX = (winIcon->core.width - winIcon->nameWidth)/2; /* * Position the text one pixel above the ICON_VERTBORDER and * the descent of the font */ winIcon->nameY = winIcon->core.height - ICON_VERTBORDER - 1 - FontDescent(IconFont); } /* * iconSetName -- set the icon name and possibly redraw */ static void iconSetName(winIcon,pane) WinIconFrame *winIcon; Window pane; { Display *dpy = winIcon->core.client->dpy; if (winIcon->fcore.name) MemFree(winIcon->fcore.name); if (!PropGetWMIconName(dpy,pane,&(winIcon->fcore.name)) && !PropGetWMName(dpy,pane,&(winIcon->fcore.name))) { winIcon->fcore.name = MemNewText(GRV.DefaultWinName); } iconCalcName(winIcon,pane); if (!winIcon->core.dirtyconfig) (WinFunc(winIcon,core.drawfunc))(dpy,winIcon); } /* selectDragIcon -- the user has held the select button down long enough * to initiate a drag. Unpin the icon slot and start a window-move. */ static int /* ARGSUSED */ selectDragIcon(dpy, ev, iframe, lastpress) Display *dpy; XEvent *ev; WinIconFrame *iframe; XButtonEvent *lastpress; { SlotFree(iframe); iframe->fManuallyPositioned = True; ClientMove(iframe->core.client,lastpress); } /* * newconfigIcon -- compute a new configuration of icon window */ static int /* ARGSUSED */ newconfigIcon(winInfo, pxcre) WinIconFrame *winInfo; XConfigureRequestEvent *pxcre; { Client *cli = winInfo->core.client; WinPane *winPane = (WinPane *)winInfo->fcore.panewin; int neww,newh; neww = winInfo->fcore.panewin->core.width + 2*widthBothIcon(winInfo); newh = winInfo->fcore.panewin->core.height + heightTopIcon(winInfo) + heightBottomIcon(winInfo); if (neww != winInfo->core.width) { winInfo->core.width = neww; winInfo->core.dirtyconfig |= CWWidth; } if (newh != winInfo->core.height) { winInfo->core.height = newh; winInfo->core.dirtyconfig |= CWHeight; } if (winInfo->core.dirtyconfig) { (WinFunc(winPane,core.newposfunc))(winPane, widthBothIcon(winInfo), heightTopIcon(winInfo)); } if (winInfo->core.dirtyconfig & (CWWidth | CWHeight)) { iconCalcName(winInfo,PANEWINOFCLIENT(cli)); } return winInfo->core.dirtyconfig; } /* * The icon is being moved to a new (x,y) location. If the icon slot has not * yet been allocated, do so if appropriate. Otherwise, blindly accept the * (x,y) position. */ static int newposIcon(winInfo,x,y) WinIconFrame *winInfo; int x,y; { Client *cli = winInfo->core.client; WinNewPosFunc(winInfo,x,y); if (winInfo->iconslot == NULL && !ClientIsPinnable(winInfo->core.client) && (!(GRV.FreeIconSlots) || winInfo->fManuallyPositioned || winInfo->core.client->wmState == IconicState) && (ClientHasIcon(cli))) { SlotAlloc(winInfo, winInfo->fManuallyPositioned, GRV.FSnapToGrid); } return winInfo->core.dirtyconfig; } static void drawDashedRect(dpy, winInfo, win, x, y, w, h) Display *dpy; WinIconFrame *winInfo; Window win; int x, y, w, h; { XPoint pts[5]; pts[0].x = x; pts[0].y = y; pts[1].x = x; pts[1].y = y + h; pts[2].x = x + w; pts[2].y = y + h; pts[3].x = x + w; pts[3].y = y; pts[4].x = x; pts[4].y = y; /* * The following is necessary because IconBorderGC uses the LineOnOffDash * line-style, which is faster than LineDoubleDash on some servers. */ XDrawLines(dpy, win, WinGC(winInfo,WORKSPACE_GC), pts, 5, CoordModeOrigin); XDrawLines(dpy, win, WinGC(winInfo,ICON_BORDER_GC), pts, 5, CoordModeOrigin); } /* * drawIconBorder -- based on the value of select, draw the border for an icon */ static void drawIconBorder(dpy, winInfo, select) Display *dpy; WinIconFrame *winInfo; Bool select; { int x, y; /* values for use with */ unsigned int width, height; /* rectangle drawn for border */ Window w = winInfo->core.self; GC borderGC = WinGC(winInfo,BORDER_GC); GC workspaceGC = WinGC(winInfo,WORKSPACE_GC); x = y = 0; width = winInfo->core.width - 1; height = winInfo->core.height - 1; /* * If 3D is used, give "borderless" icons. Otherwise, give black and * white borders. */ if (select) { XDrawRectangle(dpy, w, borderGC, x, y, width, height ); XDrawRectangle(dpy, w, borderGC, x+1, y+1, width-2, height-2 ); XDrawRectangle(dpy, w, borderGC, x+2, y+2, width-4, height-4 ); } else { XDrawRectangle(dpy, w, workspaceGC, x, y, width, height); if (Win3D(winInfo)) { XDrawRectangle(dpy, w, workspaceGC, x+1, y+1, width-2, height-2); } else { #ifdef notdef XDrawRectangle(dpy, w, IconBorderGC, x+1, y+1, width-2, height-2); #endif /* notdef */ drawDashedRect(dpy, winInfo, w, x+1, y+1, width-2, height-2); } XDrawRectangle(dpy, w, workspaceGC, x+2, y+2, width-4, height-4); } #ifdef notdef /* * This stuff was used for the attempt at 3D-look icons. * It has been abandoned in favor of the "borderless" icon look. */ /* initial values for first rectangle */ x = 0; y = 0; /* need to subtract one, based on how XDrawRectangle works */ width = winInfo->core.width - 1; height = winInfo->core.height - 1; /* draw three rectangles for border */ for ( rectangle = 0 ; rectangle < 3 ; rectangle++ ) { switch( rectangle ) { case 0: /* outermost rectangle */ if (Win3D(winInfo)) { if ( select ) olgxState = OLGX_INVOKED; else olgxState = OLGX_NORMAL; olgx_draw_box( olgx_gisnormal, winInfo->core.self, x, y, width+1, height+1, olgxState, 0 ); drawRectangle = False; } else { highlightGC = select ? DrawSelectedGC : DrawBackgroundGC; drawRectangle = True; } break; case 1: /* middle rectangle */ if ( select ) highlightGC = DrawSelectedGC; else if (Win3D(winInfo)) highlightGC = DrawBackgroundGC; else /* REMIND eventually need to handle * IconBorder resource when 2d & ColorDisplay */ highlightGC = IconBorderGC; drawRectangle = True; break; case 2: /* innermost rectangle */ default: highlightGC = select ? DrawSelectedGC : DrawBackgroundGC; drawRectangle = True; break; } if ( drawRectangle ) XDrawRectangle( dpy, winInfo->core.self, highlightGC, x, y, width, height ); x++; y++; width -= 2; height -= 2; } #endif /* notdef */ } /* * drawIcon -- draw the icon window */ /*ARGSUSED*/ /* dpy arg will be used when multiple Displays supported */ static int drawIcon(dpy, winInfo) Display *dpy; WinIconFrame *winInfo; { Window frameWin = winInfo->core.self; XFillRectangle(dpy, frameWin, WinGC(winInfo,WORKSPACE_GC), 0, 0, winInfo->core.width, winInfo->core.height); /* draw icon name */ if (winInfo->core.client->wmDecors->flags & WMDecorationIconName) DrawText(dpy, frameWin, IconFont, WinGC(winInfo,ICON_NORMAL_GC), winInfo->nameX, winInfo->nameY, winInfo->fcore.name, winInfo->nameLength); /* draw border */ drawIconBorder(dpy, winInfo, winInfo->core.client->isSelected); } /* * DestroyIcon -- destroy the icon window resources and free any allocated * data. */ static int destroyIcon(dpy, winInfo) Display *dpy; WinIconFrame *winInfo; { /* * Free our data and throw away window */ SlotFree(winInfo); ListDestroy(winInfo->core.children); MemFree(winInfo->fcore.name); ScreenDestroyWindow(winInfo->core.client->scrInfo, winInfo->core.self); WIUninstallInfo(winInfo->core.self); MemFree(winInfo); } /* * heightIconName - returns the height of the icon name portion of * the total icon height. */ static int heightIconName(win) WinIconFrame *win; { if (win->core.client->wmDecors->flags & WMDecorationIconName) { return (FontHeight(IconFont) + ICON_VERTBORDER); } else { return 0; } } /* * heightTopIcon - returns the height of the top portion of the icon window. * If the IconPane (image/window) is too small then increase the * the top height to bring total height to the minimal icon * window size of ICON_WIN_HEIGHT. Otherwise use the default * border size. */ static int heightTopIcon(win) WinIconFrame *win; { WinIconPane *winPane = (WinIconPane *)(win->fcore.panewin); int availHeight; availHeight = ICON_WIN_HEIGHT - heightIconName(win); if (winPane->core.height < availHeight) { return (availHeight-winPane->core.height)/2; } else { return ICON_VERTBORDER; } } /* * heightBottomIcon - returns the height of the bottom portion of * the icon window - which includes the icon name string (if any). * If the IconPane (image/window) is too small then increase the * the bottom height to bring total height to the minimal icon * window size of ICON_WIN_HEIGHT. Otherwise use the default * border size. */ static int heightBottomIcon(win) WinIconFrame *win; { WinIconPane *winPane = (WinIconPane *)(win->fcore.panewin); int nameHeight,availHeight; nameHeight = heightIconName(win); availHeight = ICON_WIN_HEIGHT - nameHeight; if (winPane->core.height < availHeight) { return (availHeight - winPane->core.height)/2 + nameHeight; } else { return nameHeight + ICON_VERTBORDER; } } /* The icon pane has the same border width on either side, so this function * is used to calculate both border widths. */ static int widthBothIcon(win) WinIconFrame *win; { WinIconPane *winPane = (WinIconPane *)(win->fcore.panewin); if (winPane->iconClientWindow) { return ICON_HORZBORDER; } else { if (winPane->core.width < ICON_WIN_WIDTH - 2*ICON_HORZBORDER) { return (ICON_WIN_WIDTH-winPane->core.width)/2; } else return ICON_HORZBORDER; } } /* * fullrestoreIcon * Switch icon menus and if this client is iconic then * open it. */ static int fullrestoreIcon(client,timestamp) Client *client; Time timestamp; { WinIconFrame *iconInfo = client->iconwin; if (client->wmState == IconicState) StateNormal(client, timestamp); iconInfo->fcore.fullsize = !iconInfo->fcore.fullsize; } /* * eventConfigureRequest -- handle ConfigureRequest events on the icon frame. * * Clients aren't supposed to configure their icon windows, so this routine * simply issues a synthetic ConfigureNotify event that indicates the request * has been refused. */ static int eventConfigureRequest(dpy, req, iconInfo) Display *dpy; XConfigureRequestEvent *req; WinIconFrame *iconInfo; { XConfigureEvent notify; WinIconPane *pane = (WinIconPane *) iconInfo->fcore.panewin; notify.type = ConfigureNotify; notify.window = notify.event = req->window; notify.x = pane->core.x; notify.y = pane->core.y; notify.width = pane->core.width; notify.height = pane->core.height; notify.above = None; notify.override_redirect = False; /* REMIND: should be NORMAL_BORDERWIDTH from winipane.c */ notify.border_width = 0; (void) XSendEvent(dpy, req->window, False, StructureNotifyMask, (XEvent *) ¬ify); #ifdef DEBUG ErrorWarning("ignoring ConfigureRequest event on icon."); #endif /* DEBUG */ } /*************************************************************************** * global functions ***************************************************************************/ /* * MakeIcon -- create the icon window. Return a WinIconFrame structure. * Note that unlike most Make functions, icons are not mapped right * away. */ WinIconFrame * /* ARGSUSED */ MakeIcon(cli,panewin,paneattrs) Client *cli; Window panewin; XWindowAttributes *paneattrs; { Display *dpy = cli->dpy; WinIconFrame *w; XSetWindowAttributes attributes; unsigned long valuemask; XWMHints *wmHints = cli->wmHints; Screen *screen = ScreenOfDisplay(dpy, cli->scrInfo->screen); /* create the window structure */ w = MemNew(WinIconFrame); w->core.kind = WIN_ICON; w->class = &classIconFrame; w->core.parent = NULL; w->core.children = NULL; w->core.client = cli; w->core.width = ICON_WIN_WIDTH; w->core.height = ICON_WIN_HEIGHT; /* fill out the associated structure */ w->core.dirtyconfig = CWX|CWY|CWWidth|CWHeight; w->core.colormap = None; w->core.exposures = NULL; w->core.helpstring = "olwm:Icon"; /* create the icon frame */ attributes.border_pixel = 0; attributes.colormap = cli->scrInfo->colormap; attributes.event_mask = ICON_EVENT_MASK; valuemask = CWBorderPixel | CWColormap | CWEventMask; w->core.self = ScreenCreateWindow(cli->scrInfo, cli->scrInfo->rootid, w->core.x, w->core.y, 1, 1, valuemask, &attributes); /* install icon frame in client */ cli->iconwin = w; /* REMIND: should be called cli->iconframe */ /* * Use the icon position in the hints if that position is valid. The * notion of validity is somewhat asymmetrical, as we don't have the * icon's size yet. We constrain the position to be in the rectangle * bounded by (0,0) and (screen_width - ICON_HORZBORDER, * screen_height - ICON_VERTBORDER). This has the effect of * constraining icons to be fully onscreen at the left and top but * merely lapping on a few pixels at the bottom and right. * * If the position isn't specified in the hints, or it is specified * but is invalid, set the position to zero and mark the icon to be * positioned automatically. * * REMIND: Not valid in olvwm; need desktop calculation */ if (wmHints != NULL && (wmHints->flags & IconPositionHint) /* && wmHints->icon_x >= 0 && wmHints->icon_y >= 0 && wmHints->icon_x <= (WidthOfScreen(screen) - ICON_HORZBORDER) && wmHints->icon_y <= (HeightOfScreen(screen) - ICON_VERTBORDER)*/) { w->core.x = wmHints->icon_x; w->core.y = wmHints->icon_y; w->fManuallyPositioned = True; } else { /* to be fixed up at config time */ w->core.x = w->core.y = 0; w->fManuallyPositioned = False; } /* register the window */ WIInstallInfo(w); /* set cursor for frame */ XDefineCursor( dpy, w->core.self, GRV.IconPointer ); iconSetName(w,panewin); w->fcore.fullsize = False; return w; } void /* ARGSUSED */ IconInit(dpy) Display *dpy; { classIconFrame.core.kind = WIN_ICON; classIconFrame.core.xevents[Expose] = WinEventExpose; classIconFrame.core.xevents[ButtonRelease] = GFrameEventButtonRelease; classIconFrame.core.xevents[MotionNotify] = GFrameEventMotionNotify; classIconFrame.core.xevents[ButtonPress] = GFrameEventButtonPress; classIconFrame.core.xevents[EnterNotify] = GFrameEventEnterNotify; classIconFrame.core.xevents[FocusIn] = GFrameEventFocus; classIconFrame.core.xevents[FocusOut] = GFrameEventFocus; classIconFrame.core.xevents[ConfigureRequest] = eventConfigureRequest; classIconFrame.core.focusfunc = GFrameFocus; classIconFrame.core.drawfunc = drawIcon; classIconFrame.core.destroyfunc = destroyIcon; classIconFrame.core.selectfunc = GFrameSelect; classIconFrame.core.newconfigfunc = newconfigIcon; classIconFrame.core.newposfunc = newposIcon; classIconFrame.core.setconfigfunc = GFrameSetConfigFunc; classIconFrame.core.createcallback = NULL; classIconFrame.core.heightfunc = NULL; classIconFrame.core.widthfunc = NULL; classIconFrame.fcore.heighttop = heightTopIcon; classIconFrame.fcore.heightbottom = heightBottomIcon; classIconFrame.fcore.widthleft = widthBothIcon; classIconFrame.fcore.widthright = widthBothIcon; classIconFrame.fcore.menuPress = menuPressIcon; classIconFrame.fcore.adjustPress = NULL; classIconFrame.fcore.adjustClick = adjustClickIcon; classIconFrame.fcore.selectPress = NULL; classIconFrame.fcore.selectClick = NULL; classIconFrame.fcore.selectDoubleClick = selectDoubleClickIcon; classIconFrame.fcore.selectDrag = selectDragIcon; classIconFrame.fcore.fullrestoreToggle = fullrestoreIcon; } /* * DrawIconToWindowLines -- draw the "zoom" lines when a window is * opening or closing. The lines are drawn from the corners of the icon to * the corners of the window frame. */ #define NSEGS 4 void DrawIconToWindowLines(dpy, iconInfo, winInfo) Display *dpy; WinPaneFrame *winInfo; WinIconFrame *iconInfo; { int ii; GC rootGC; Window root; XSegment segs[NSEGS]; #ifdef ALLPLANES Bool allplanes = winInfo->core.client->scrInfo->useAllPlanes; #endif if (GRV.IconFlashCount <= 0) return; rootGC = WinGC(winInfo, ROOT_GC); root = WinRootID(winInfo); XGrabServer(dpy); segs[0].x1 = iconInfo->core.x; segs[0].y1 = iconInfo->core.y; segs[0].x2 = winInfo->core.x; segs[0].y2 = winInfo->core.y; segs[1].x1 = iconInfo->core.x; segs[1].y1 = iconInfo->core.y + iconInfo->core.height; segs[1].x2 = winInfo->core.x; segs[1].y2 = winInfo->core.y + winInfo->core.height; segs[2].x1 = iconInfo->core.x + iconInfo->core.width; segs[2].y1 = iconInfo->core.y; segs[2].x2 = winInfo->core.x + winInfo->core.width; segs[2].y2 = winInfo->core.y; segs[3].x1 = iconInfo->core.x + iconInfo->core.width; segs[3].y1 = iconInfo->core.y + iconInfo->core.height; segs[3].x2 = winInfo->core.x + winInfo->core.width; segs[3].y2 = winInfo->core.y + winInfo->core.height; for(ii=0; ii < GRV.IconFlashCount ; ii++) { /* draw */ #ifdef ALLPLANES if (allplanes) XAllPlanesDrawSegments(dpy, root, segs, NSEGS); else #endif /* ALLPLANES */ XDrawSegments(dpy, root, rootGC, segs, NSEGS); XFlush(dpy); olwm_usleep((unsigned) GRV.IconFlashOnTime); /* erase */ #ifdef ALLPLANES if (allplanes) XAllPlanesDrawSegments(dpy, root, segs, NSEGS); else #endif /* ALLPLANES */ XDrawSegments(dpy, root, rootGC, segs, NSEGS); XFlush(dpy); olwm_usleep((unsigned) GRV.IconFlashOffTime); } XUngrabServer(dpy); } #undef NSEGS /* * IconUpdateName -- the icon name property has been changed */ void /* ARGSUSED */ IconUpdateName(cli,event) Client *cli; XPropertyEvent *event; { iconSetName(cli->iconwin,PANEWINOFCLIENT(cli)); } /* * Set the icon's (x,y) location explicitly. This information is typically * taken from the WM_HINTS structure. Since the coordinates specify the * absolute position of the icon pane, we must subtract the icon border to get * the position if the icon frame. */ void IconSetPos(win,x,y) WinIconFrame *win; int x,y; { (WinFunc(win,core.newposfunc))(win,x-ICON_HORZBORDER,y-ICON_VERTBORDER); } /* * IconShow -- map an icon onto the screen, handling reparenting and * save-sets for icon panes. In click-to-type, if this is the current * client, select the icon to ensure that it's clear that this icon has the * input focus. */ void IconShow(cli, winIcon) Client *cli; WinIconFrame *winIcon; { WinIconPane *pane = (WinIconPane *)winIcon->fcore.panewin; extern Client *CurrentClient; if (! GRV.FocusFollowsMouse && cli == CurrentClient) { ClearSelections(cli->dpy); AddSelection(cli, LastEventTime); } #ifdef notdef /* see winipane.c */ XReparentWindow(cli->dpy, pane->core.self, winIcon->core.self, pane->core.x, pane->core.y); see winipane.c if (pane->iconClientWindow && !(cli->flags & CLOlwmOwned)) XChangeSaveSet(cli->dpy, pane->core.self, SetModeInsert); #endif XMapWindow(cli->dpy, pane->core.self); MapWindow(winIcon); } /* * IconHide -- remove an icon from the screen, handling reparenting and * save-sets for icon panes. */ void IconHide(cli, winIcon) Client *cli; WinIconFrame *winIcon; { WinIconPane *pane = (WinIconPane *)winIcon->fcore.panewin; UnmapWindow(winIcon); XUnmapWindow(cli->dpy, pane->core.self); #ifdef notdef /* see winipane.c */ XReparentWindow(cli->dpy, pane->core.self, cli->scrInfo->rootid, winIcon->core.x + pane->core.x, winIcon->core.y + pane->core.y); if (pane->iconClientWindow && !(cli->flags & CLOlwmOwned)) XChangeSaveSet(cli->dpy, pane->core.self, SetModeDelete); #endif } void IconUnparent(cli, winIcon) Client *cli; WinIconFrame *winIcon; { WinIconPane *pane = (WinIconPane *)winIcon->fcore.panewin; XUnmapWindow(cli->dpy, pane->core.self); XReparentWindow(cli->dpy, pane->core.self, cli->scrInfo->rootid, winIcon->core.x + pane->core.x, winIcon->core.y + pane->core.y); if (pane->iconClientWindow && !(cli->flags & CLOlwmOwned)) XChangeSaveSet(cli->dpy, pane->core.self, SetModeDelete); } xview-3.2p1.4/clients/olvwm-4.1/winipane.c100644 1750 1750 34067 5515337332 15545 0ustar mbmb/* * (c) Copyright 1989, 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifdef IDENT #ident "@(#)winipane.c 1.6 olvwm version 07 Jan 1994" #endif /* * Based on #ident "@(#)winipane.c 26.33 93/06/28 SMI" * */ #include #include #include #include #include #include #include "i18n.h" #include #include "ollocale.h" #include "mem.h" #include "olwm.h" #include "win.h" #include "menu.h" #include "globals.h" #include "events.h" #include "error.h" /*************************************************************************** * global data ***************************************************************************/ extern Atom AtomChangeState; extern Atom AtomColorMapWindows; extern Window NoFocusWin; extern Time TimeFresh(); /*************************************************************************** * private data ***************************************************************************/ /* border width for reparented windows */ #define NORMAL_BORDERWIDTH 0 /* This event maks if for wm-created icon panes. */ #define ICON_EVENT_MASK (ButtonPressMask | ButtonReleaseMask | \ ButtonMotionMask | ExposureMask | \ EnterWindowMask) /* This event mask is for clients who handle their own icons. */ #define ICON_EVENT_MASK_2 (ButtonPressMask | ButtonReleaseMask | \ ButtonMotionMask | EnterWindowMask) static ClassPane classIconPane; #define IPANE_DEFAULT_PIXMAP(w) (w)->core.client->scrInfo->pixmap[ICON_BITMAP] #define IPANE_DEFAULT_MASK(w) (w)->core.client->scrInfo->pixmap[ICON_MASK] /*************************************************************************** * private functions ***************************************************************************/ /* * drawIPane -- draw the pane window */ /*ARGSUSED*/ /* dpy arg will be used when multiple Displays supported */ static int drawIPane(dpy, winInfo) Display *dpy; WinIconPane *winInfo; { Window pane = winInfo->core.self; GC gc; if (winInfo->iconClientWindow) { if (winInfo->core.client->flags & CLOlwmOwned) { XFillRectangle(dpy, pane, WinGC(winInfo, WORKSPACE_GC), 0, 0, winInfo->core.width, winInfo->core.height); gc = WinGC(winInfo, ICON_MASK_GC); XSetClipMask(dpy, gc, winInfo->iconMask); XSetBackground(dpy, gc, winInfo->core.client->scrInfo->colorInfo.vIconColor); XCopyPlane(dpy, winInfo->iconPixmap, pane, gc, 0, 0, winInfo->core.width, winInfo->core.height, 0, 0, (unsigned long)1L); XSetClipMask(dpy, gc, None); XSetBackground(dpy, gc, winInfo->core.client->scrInfo->colorInfo.bgColor); } return; } XFillRectangle(dpy, pane, WinGC(winInfo,WORKSPACE_GC), 0, 0, winInfo->core.width, winInfo->core.height); /* * REMIND: (1) Need to error-check icon pixmap and mask for being the * proper depth. (2) Need to handle color changes better. Should we use * a different GC? */ gc = WinGC(winInfo,ICON_NORMAL_GC); if (winInfo->iconMask != None) { gc = WinGC(winInfo,ICON_MASK_GC); XSetClipMask(dpy, gc, winInfo->iconMask); } #ifdef NOT XCopyPlane(dpy, winInfo->iconPixmap, pane, gc, 0, 0, winInfo->core.width, winInfo->core.height, 0, 0, (unsigned long)1L); #else switch(winInfo->iconDepth) { case 8: XCopyArea(dpy, winInfo->iconPixmap, pane, gc, 0, 0, winInfo->core.width, winInfo->core.height, 0, 0); break; case 1: XCopyPlane(dpy, winInfo->iconPixmap, pane, gc, 0, 0, winInfo->core.width, winInfo->core.height, 0, 0, (unsigned long)1L); break; default: ErrorWarning(GetString("Unsupported icon pixmap depth")); break; } #endif if (winInfo->iconMask != None) { XSetClipMask(dpy, gc, None); } } /* * focusIPane -- handle focus change */ static int /* ARGSUSED */ focusIPane(dpy, winInfo, focus) Display *dpy; WinGeneric *winInfo; Bool focus; { /* REMIND: change background pixel of pane window */ } /* * destroyIPane -- destroy the pane window resources and free any allocated * data. */ static int /* ARGSUSED */ destroyIPane(dpy, winInfo) Display *dpy; WinIconPane *winInfo; { /* free our data and throw away window */ WIUninstallInfo(winInfo->core.self); if (!winInfo->iconClientWindow) { /* REMIND there may be other resources to be freed */ ScreenDestroyWindow(winInfo->core.client->scrInfo, winInfo->core.self); } MemFree(winInfo); } /* * setconfigIPane -- change configuration of pane window */ /*ARGSUSED*/ /* dpy arg will be used when multiple Displays supported */ static int setconfigIPane(dpy, winInfo) Display *dpy; WinIconPane *winInfo; { XWindowChanges xwc; if (winInfo->core.dirtyconfig) { xwc.x = winInfo->core.x; xwc.y = winInfo->core.y; xwc.width = winInfo->core.width; xwc.height = winInfo->core.height; ConfigureWindow(dpy, winInfo, winInfo->core.dirtyconfig&(CWX|CWY|CWWidth|CWHeight), &xwc); winInfo->core.dirtyconfig &= ~(CWX|CWY|CWWidth|CWHeight); } } /* * newconfigIPane - compute a new configuration given an event * Note: this function must *always* be called with a configure request * event. */ static int newconfigIPane(win, pxcre) WinIconPane *win; XConfigureRequestEvent *pxcre; { int oldWidth, oldHeight; int oldX, oldY; WinIconFrame *winFrame = (WinIconFrame *)(win->core.parent); if (pxcre == NULL) return win->core.dirtyconfig; oldX = win->core.x; oldY = win->core.y; oldWidth = win->core.width; oldHeight = win->core.height; if ((pxcre->value_mask & CWHeight) && (pxcre->height != oldHeight)) { win->core.height = pxcre->height; win->core.dirtyconfig |= CWHeight; } if ((pxcre->value_mask & CWWidth) && (pxcre->width != oldWidth)) { win->core.width = pxcre->width; win->core.dirtyconfig |= CWWidth; } if (pxcre->value_mask & CWBorderWidth) { win->pcore.oldBorderWidth = pxcre->border_width; } if (pxcre->value_mask & (CWX | CWY)) { FrameSetPosFromPane(winFrame, (pxcre->value_mask & CWX)?(pxcre->x):oldX, (pxcre->value_mask & CWY)?(pxcre->y):oldY); } if (pxcre->value_mask & (CWStackMode | CWSibling)) { GFrameSetStack(winFrame, pxcre->value_mask, pxcre->detail, pxcre->above); } return win->core.dirtyconfig; } /* * newposIPane - move to a given position (relative to parent) */ static int newposIPane(win,x,y) WinIconPane *win; int x, y; { if (win->core.x != x) { win->core.x = x; win->core.dirtyconfig |= CWX; } if (win->core.y != y) { win->core.y = y; win->core.dirtyconfig |= CWY; } return win->core.dirtyconfig; } /* * setsizeIPane - set the pane to a particular size, and initiate a reconfigure */ static int setsizeIPane(win,w,h) WinIconPane *win; int w, h; { if (win->core.width != w) { win->core.width = w; win->core.dirtyconfig |= CWWidth; } if (win->core.height != h) { win->core.height = h; win->core.dirtyconfig |= CWHeight; } } static int eventEnterNotify(dpy, event, winInfo) Display *dpy; XEvent *event; WinIconPane *winInfo; { if (event->xany.type == EnterNotify) ColorWindowCrossing(dpy, event, winInfo); } /*************************************************************************** * global functions ***************************************************************************/ /* * MakeIconPane -- create the pane window. Return a WinGeneric structure. */ WinIconPane * /* ARGSUSED */ MakeIconPane(cli,par,wmHints,fexisting) Client *cli; WinGeneric *par; XWMHints *wmHints; Bool fexisting; { WinIconPane *w; WinIconFrame *frame = (WinIconFrame *)par; XSetWindowAttributes xswa; XWindowAttributes attr; long valuemask; Window iconPane; Window winRoot; unsigned int borderWidth, depthReturn; Display *dpy = cli->dpy; Status status; WinGeneric *info; Window dummy_r; unsigned int dummy_w, dummy_h, dummy_bw, depth; int dummy_x, dummy_y; /* create the associated structure */ w = MemNew(WinIconPane); w->class = &classIconPane; w->core.kind = WIN_ICONPANE; WinAddChild(par,w); w->core.children = NULL; w->core.client = cli; w->core.x = 0; w->core.y = 0; w->core.colormap = cli->scrInfo->colormap; w->core.dirtyconfig = CWX|CWY|CWWidth|CWHeight; w->core.exposures = NULL; w->core.helpstring = "olwm:Icon"; w->iconClientWindow = False; w->iconPixmap = None; w->iconMask = None; frame->fcore.panewin = (WinGenericPane *)w; /* first try the client's icon window hint */ if (wmHints && (wmHints->flags & IconWindowHint)) { iconPane = wmHints->icon_window; info = WIGetInfo(iconPane); if (info != NULL && info->core.kind != WIN_PANE) { ErrorWarning(GetString( "An existing window was named as an icon window.")); } else { if (info != NULL) StateWithdrawn(info->core.client, TimeFresh()); status = XGetWindowAttributes(dpy, iconPane, &attr); if (status) { w->core.x = attr.x; w->core.y = attr.y; w->core.width = MIN(attr.width,ICON_MAX_WIDTH); w->core.height = MIN(attr.height,ICON_MAX_HEIGHT); w->core.colormap = attr.colormap; w->iconClientWindow = True; w->iconDepth = -1; /* Dont care */ if (cli->flags & CLOlwmOwned) XSelectInput(dpy, iconPane, ICON_EVENT_MASK); else XSelectInput(dpy, iconPane, ICON_EVENT_MASK_2); if (attr.border_width != NORMAL_BORDERWIDTH) XSetWindowBorderWidth(dpy, iconPane, NORMAL_BORDERWIDTH); goto goodicon; } ErrorWarning(GetString( "An invalid window was named as an icon window.")); } } /* try the client's icon pixmap hint */ if (wmHints && (wmHints->flags & IconPixmapHint)) { status = XGetGeometry(dpy, wmHints->icon_pixmap, &winRoot, &(w->core.x), &(w->core.y), &(w->core.width), &(w->core.height), &borderWidth, &depthReturn); if (status && depthReturn > 0) { /* build icon pixmap window */ xswa.border_pixel = 0; xswa.colormap = cli->scrInfo->colormap; xswa.event_mask = ICON_EVENT_MASK; valuemask = CWBorderPixel | CWColormap | CWEventMask; w->core.width = MIN(w->core.width, ICON_MAX_WIDTH); w->core.height = MIN(w->core.height, ICON_MAX_HEIGHT); iconPane = ScreenCreateWindow(cli->scrInfo,WinRootID(par), 0, 0, w->core.width, w->core.height, valuemask, &xswa); w->iconPixmap = wmHints->icon_pixmap; /* check for the icon mask */ if (wmHints->flags & IconMaskHint) { int junkx, junky; unsigned int junkw, junkh; status = XGetGeometry(dpy, wmHints->icon_mask, &winRoot, &junkx, &junky, &junkw, &junkh, &borderWidth, &depthReturn); if (status && depthReturn == 1) w->iconMask = wmHints->icon_mask; else ErrorWarning(GetString( "An invalid pixmap was named as an icon mask")); } goto goodicon; } else { ErrorWarning(GetString( "An invalid pixmap was named as an icon pixmap")); } } /* use the default icon */ w->iconClientWindow = False; w->iconPixmap = IPANE_DEFAULT_PIXMAP(w); w->iconMask = IPANE_DEFAULT_MASK(w); w->core.x = w->core.y = 0; w->core.width = cli->scrInfo->dfltIconWidth; w->core.height = cli->scrInfo->dfltIconHeight; xswa.border_pixel = 0; xswa.colormap = cli->scrInfo->colormap; xswa.event_mask = ICON_EVENT_MASK; valuemask = CWBorderPixel | CWColormap | CWEventMask; iconPane = ScreenCreateWindow(cli->scrInfo, WinRootID(par), 0, 0, w->core.width, w->core.height, valuemask, &xswa); goodicon: if (w->iconPixmap) if (!XGetGeometry(dpy, w->iconPixmap, &dummy_r, &dummy_x, &dummy_y, &dummy_w, &dummy_h, &dummy_bw, &depth)) w->iconDepth = 1; /* Bitmap */ else w->iconDepth = depth; w->core.self = iconPane; /* set up icon cursor */ XDefineCursor(dpy, w->core.self, GRV.IconPointer); /* register the window */ WIInstallInfo(w); /* Reparent the pane. olwm didn't do this; since it never moved the * icon while it was in StateNorm, it could afford to unparent the * icon everytime it went to StateNorm. We can't do that, or the * icon misses ConfigureNotify events when its not visible */ XReparentWindow(cli->dpy, iconPane, par->core.self, w->core.x, w->core.y); if (w->iconClientWindow && !(cli->flags & CLOlwmOwned)) XChangeSaveSet(cli->dpy, w->core.self, SetModeInsert); return w; } /* * IconPaneInit -- initialise the IconPane class function vector */ void /* ARGSUSED */ IconPaneInit(dpy) Display *dpy; { classIconPane.core.kind = WIN_ICONPANE; classIconPane.core.xevents[Expose] = WinEventExpose; classIconPane.core.xevents[ButtonRelease] = PropagateEventToParent; classIconPane.core.xevents[MotionNotify] = PropagateEventToParent; classIconPane.core.xevents[ButtonPress] = PropagateEventToParent; classIconPane.core.xevents[EnterNotify] = eventEnterNotify; classIconPane.core.focusfunc = focusIPane; classIconPane.core.drawfunc = drawIPane; /* NULL */ classIconPane.core.destroyfunc = destroyIPane; classIconPane.core.selectfunc = drawIPane; /* NULL */ classIconPane.core.newconfigfunc = newconfigIPane; classIconPane.core.newposfunc = newposIPane; classIconPane.core.setconfigfunc = setconfigIPane; classIconPane.core.createcallback = NULL; classIconPane.core.heightfunc = NULL; classIconPane.core.widthfunc = NULL; classIconPane.pcore.setsizefunc = setsizeIPane; } /* * Set the icon pane's pixmap. */ void /* ARGSUSED */ IconPaneSetPixmap(dpy,winInfo,pixmap) Display *dpy; WinIconPane *winInfo; Pixmap pixmap; { if (winInfo->iconClientWindow) return; if (pixmap == None || pixmap == winInfo->iconPixmap) return; if (winInfo->iconMask == IPANE_DEFAULT_MASK(winInfo)) winInfo->iconMask = None; winInfo->iconPixmap = pixmap; } /* * Set the icon pane's mask. */ void /* ARGSUSED */ IconPaneSetMask(dpy,winInfo,mask) Display *dpy; WinIconPane *winInfo; Pixmap mask; { if (winInfo->iconClientWindow) return; if (mask == None || mask == winInfo->iconMask) return; if (winInfo->iconPixmap == IPANE_DEFAULT_PIXMAP(winInfo)) winInfo->iconPixmap = None; winInfo->iconMask = mask; } xview-3.2p1.4/clients/olvwm-4.1/winmenu.c100644 1750 1750 16400 5515337332 15404 0ustar mbmb/* * (c) Copyright 1989, 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifdef IDENT #ident "@(#)winmenu.c 1.4 olvwm version 12/7/92" #endif /* * Based on #ident "@(#)winmenu.c 26.14 91/09/14 SMI" * */ #include #include #include #include #include #include #include "i18n.h" #include #include "ollocale.h" #include "mem.h" #include "olwm.h" #include "win.h" #include "menu.h" #include "globals.h" /*************************************************************************** * private data ***************************************************************************/ /* function vector for menu windows */ static ClassMenu classMenu; #define MENU_EVENT_MASK (PropertyChangeMask|SubstructureNotifyMask) #define MENU_ATTR_EVENT_MASK (ButtonPressMask|ExposureMask) #define MENU_SHADOW_OFFSET (10) /*************************************************************************** * private functions ***************************************************************************/ /* REMIND - none yet */ /*************************************************************************** * private event functions ***************************************************************************/ /* * eventButtonPress - a button has gone down. */ static int /* ARGSUSED */ eventButtonPress(dpy, event, winInfo) Display *dpy; XEvent *event; WinMenu *winInfo; { /* REMIND - placeholder for future */ } /* * eventButtonRelease - a button has gone up */ static int /* ARGSUSED */ eventButtonRelease(dpy, event, winInfo) Display *dpy; XEvent *event; WinMenu *winInfo; { /* REMIND - placeholder for future */ } /* * eventKeyPress - a key has gone down */ static int /* ARGSUSED */ eventKeyPress(dpy, event, winInfo) Display *dpy; XEvent *event; WinMenu *winInfo; { /* REMIND - mouseless operation */ } /* * eventKeyRelease - a key has gone up */ static int /* ARGSUSED */ eventKeyRelease(dpy, event, winInfo) Display *dpy; XEvent *event; WinMenu *winInfo; { /* REMIND - mouseless operation */ } /* * eventMotionNotify - mouse moved */ static int /* ARGSUSED */ eventMotionNotify(dpy, event, winInfo) Display *dpy; XEvent *event; WinMenu *winInfo; { /* REMIND - placeholder for future */ } /* * destroyMenu -- destroy the menu window resources and free any allocated * data. */ static int destroyMenu(dpy, winInfo) Display *dpy; WinMenu *winInfo; { XUndefineCursor(dpy, winInfo->core.self); XDestroyWindow(dpy, winInfo->core.self); #ifdef SHADOW XDestroyWindow(dpy, winInfo->menu.shadow); #endif /* SHADOW */ MemFree(winInfo); } /*************************************************************************** * global functions ***************************************************************************/ /* * MakeMenu -- create the WinMenu structure and windows but does not * map them. */ WinMenu * MakeMenu(dpy, winInfo) Display *dpy; WinGeneric *winInfo; { WinMenu *w; Window win; unsigned long valuemask; XSetWindowAttributes attributes; Client *cli = winInfo->core.client; /* create the associated structure */ w = MemNew(WinMenu); w->class = &classMenu; w->core.kind = WIN_MENU; w->core.children = NULL; w->core.client = cli; w->core.x = 0; w->core.y = 0; w->core.width = 1; w->core.height = 1; /* REMIND - is dirtyconfig necessary??? */ w->core.dirtyconfig = CWX|CWY|CWWidth|CWHeight; w->core.exposures = NULL; w->core.helpstring = (char *)0; /* Menu window. */ attributes.event_mask = MENU_ATTR_EVENT_MASK; attributes.save_under = DoesSaveUnders( ScreenOfDisplay(dpy,cli->screen)); attributes.border_pixel = 0; attributes.colormap = cli->scrInfo->colormap; valuemask = CWEventMask | CWSaveUnder | CWBorderPixel | CWColormap; win = XCreateWindow(dpy, WinRootID(winInfo), w->core.x, w->core.y, w->core.width, w->core.height, 0, WinDepth(winInfo), InputOutput, WinVisual(winInfo), valuemask, &attributes); w->core.self = win; WIInstallInfo(w); #ifdef SHADOW /* REMIND - there is no pixmapGray - what to use really??? */ attributes.background_pixmap = pixmapGray; attributes.save_under = DoesSaveUnders(cli->screen); w->shadow = XCreateWindow(dpy, WinRootID(winInfo), 0, 0, 1, 1, 0, WinDepth(winInfo), InputOutput, WinVisual(winInfo), CWBackPixmap | CWSaveUnder, &attributes); #endif /* SHADOW */ XDefineCursor( dpy, win, GRV.MenuPointer ); return w; } /* * MapMenuWindow - Configures (sizes) and maps the WinMenu windows */ void MapMenuWindow(dpy,winInfo,menuInfo) Display *dpy; WinMenu *winInfo; MenuInfo *menuInfo; { XWindowChanges changes; /* position, size and map menu window */ winInfo->core.x = menuInfo->menuX; winInfo->core.y = menuInfo->menuY; winInfo->core.width = menuInfo->menuWidth; winInfo->core.height = menuInfo->menuHeight; changes.x = winInfo->core.x; changes.y = winInfo->core.y; changes.width = winInfo->core.width; changes.height = winInfo->core.height; ConfigureWindow(dpy,winInfo, CWX|CWY|CWWidth|CWHeight,&changes); MapRaised(winInfo); #ifdef SHADOW /* map shadow below menu window */ changes.x = menuInfo.menuX + MENU_SHADOW_OFFSET; changes.y = menuInfo.menuY + MENU_SHADOW_OFFSET; changes.sibling = winInfo->core.self; change.stack_mode = Below; ConfigureWindow(dpy,winInfo, CWX|CWY|CWWidth|CWHeight|CWStackMode|CWSibling,&changes); #endif /* SHADOW */ /* save the menuinfo */ winInfo->menuInfo = menuInfo; DrawMenu(dpy,menuInfo); } /* * UnmapMenuWindow - take down WinMenu windows */ void /* ARGSUSED */ UnmapMenuWindow(dpy,winInfo) Display *dpy; WinMenu *winInfo; { UnmapWindow(winInfo); #ifdef SHADOW XUnmapWindow(dpy,winInfo->shadow); #endif /* SHADOW */ winInfo->menuInfo = (MenuInfo *)NULL; } int MenuEventExpose(dpy, event, winInfo) Display *dpy; XEvent *event; WinGeneric *winInfo; { MenuInfo *mInfo = NULL; if (winInfo->core.kind == WIN_MENU) mInfo = ((WinMenu *) winInfo)->menuInfo; else mInfo = ((WinPinMenu *) winInfo)->menuInfo; if (mInfo == NULL) /*not yet reparented*/ WinEventExpose(dpy, event, winInfo); else { SetMenuRedrawHints(dpy, event, mInfo); if (event->xexpose.count == 0) DrawMenuWithHints(dpy, mInfo); } } /* * drawMenu -- draw the menu window */ int MenuEventDrawMenu(dpy, winInfo) Display *dpy; WinGeneric *winInfo; { MenuInfo *mInfo = NULL; if (winInfo->core.kind == WIN_MENU) mInfo = ((WinMenu *) winInfo)->menuInfo; else mInfo = ((WinPinMenu *) winInfo)->menuInfo; if (mInfo) DrawMenu(dpy, mInfo); } /* * MenuInit - initialize WinMenu class functions */ /*ARGSUSED*/ void MenuInit(dpy) Display *dpy; { classMenu.core.kind = WIN_MENU; classMenu.core.xevents[ButtonPress] = eventButtonPress; classMenu.core.xevents[ButtonRelease] = eventButtonRelease; classMenu.core.xevents[MotionNotify] = eventMotionNotify; classMenu.core.xevents[KeyPress] = eventKeyPress; classMenu.core.xevents[KeyRelease] = eventKeyRelease; classMenu.core.xevents[Expose] = MenuEventExpose; classMenu.core.drawfunc = MenuEventDrawMenu; classMenu.core.destroyfunc = destroyMenu; classMenu.core.heightfunc = NULL; classMenu.core.widthfunc = NULL; } xview-3.2p1.4/clients/olvwm-4.1/winnofoc.c100644 1750 1750 16337 5515337333 15556 0ustar mbmb/* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifdef IDENT #ident "@(#)winnofoc.c 1.4 olvwm version 07 Jan 1994" #endif /* * Based on #ident "@(#)winnofoc.c 26.22 91/09/14 SMI" * */ #include #include #include #include #include #include #include "i18n.h" #include #include "ollocale.h" #include "mem.h" #include "olwm.h" #include "win.h" #include "globals.h" #include "selection.h" extern unsigned int FindModifierMask(); extern Atom AtomOlwmNoFocusWin; extern Atom AtomProtocols; extern Atom AtomTakeFocus; extern void ClientSetCurrent(); /*************************************************************************** * global data ***************************************************************************/ Window NoFocusWin = NULL; WinNoFocus *NoFocusWinInfo; /*************************************************************************** * private data ***************************************************************************/ static ClassNoFocus classNoFocus; /*************************************************************************** * private functions ***************************************************************************/ /* * DestroyNoFocus -- destroy the no-focus window and free any allocated * data. */ static int /* ARGSUSED */ destroyNoFocus(dpy, winInfo) Display *dpy; WinGeneric *winInfo; { /* free our data and throw away window */ DestroyWindow(winInfo); MemFree(winInfo); } /* * eventClientMessage - handle WM_TAKE_FOCUS messages. This is a vestige of a * previous focus-handling scheme. However, it remains, in case it becomes * useful at some time for the no-focus window to respond to WM_TAKE_FOCUS * messages. */ static int eventClientMessage(dpy, event, winInfo) Display *dpy; XEvent *event; WinNoFocus *winInfo; { if (event->xclient.message_type == AtomProtocols && event->xclient.data.l[0] == AtomTakeFocus && event->xclient.format == 32) { NoFocusTakeFocus(dpy, event->xclient.data.l[1], winInfo->core.client->scrInfo); } } /* * eventSelection * * Handle a SelectionRequest of SelectionClear event. */ static int /* ARGSUSED */ eventSelection(dpy, pEvent, winInfo) Display *dpy; XEvent *pEvent; WinNoFocus *winInfo; { SelectionResponse(pEvent); } /*************************************************************************** * global functions ***************************************************************************/ /* * MakeNoFocus -- create the no-focus windows to a window. Return a * WinGeneric structure. */ WinGeneric * MakeNoFocus(dpy, par) Display *dpy; WinGeneric *par; { XSetWindowAttributes attributes; WinNoFocus *w; /* create the window */ attributes.event_mask = KeyPressMask | PropertyChangeMask; attributes.override_redirect = True; NoFocusWin = XCreateWindow(dpy, par->core.self, -10, -10, 10, 10 , 0, 0, InputOnly, CopyFromParent, CWEventMask | CWOverrideRedirect, &attributes); XMapWindow(dpy, NoFocusWin); /* create the associated structure */ w = MemNew(WinNoFocus); w->core.self = NoFocusWin; w->core.kind = WIN_NOFOCUS; w->class = &classNoFocus; w->core.parent = par; w->core.children = NULL; w->core.client = par->core.client; w->core.x = -10; w->core.y = -10; w->core.width = 10; w->core.height = 10; w->core.dirtyconfig = False; w->core.exposures = NULL; w->core.helpstring = (char *)NULL; /* no help */ /* register the window */ WIInstallInfo(w); /* set the focus to the NoFocusWin */ NoFocusWinInfo = w; /* * Call TimeFresh to leave a property on the window so that it's * identifiable with `xprop'. */ (void) TimeFresh(); return w; } /* * Handle a key press in the no focus window. If its a standard Virtual * Desktop function -- up, down, etc. -- then execute it, otherwise beep */ static int NoFocusKey(dpy, event, winInfo) Display *dpy; XEvent *event; WinGeneric *winInfo; { if (!GRV.ArrowInRoot || !KeyMoveVDM(dpy, event)) NoFocusEventBeep(dpy, event, winInfo); } void /* ARGSUSED */ NoFocusInit(dpy) Display *dpy; { classNoFocus.core.kind = WIN_NOFOCUS; classNoFocus.core.xevents[ButtonPress] = NoFocusEventBeep; classNoFocus.core.xevents[ButtonRelease] = NoFocusEventBeep; classNoFocus.core.xevents[KeyPress] = NoFocusKey; /*NoFocusEventBeep; classNoFocus.core.xevents[KeyRelease] = NoFocusEventBeep; */ classNoFocus.core.xevents[ClientMessage] = eventClientMessage; classNoFocus.core.xevents[SelectionRequest] = eventSelection; classNoFocus.core.xevents[SelectionClear] = eventSelection; classNoFocus.core.focusfunc = NULL; classNoFocus.core.drawfunc = NULL; classNoFocus.core.destroyfunc = destroyNoFocus; classNoFocus.core.selectfunc = NULL; classNoFocus.core.newconfigfunc = NULL; classNoFocus.core.newposfunc = NULL; classNoFocus.core.setconfigfunc = NULL; classNoFocus.core.createcallback = NULL; classNoFocus.core.heightfunc = NULL; classNoFocus.core.widthfunc = NULL; } /* * Set the focus to the NoFocus window. If colormap installation is tracking * the focus, install and lock the default colormap for this screen. */ void NoFocusTakeFocus(dpy,evtime,scrInfo) Display *dpy; Time evtime; ScreenInfo *scrInfo; { XSetInputFocus(dpy, NoFocusWin, RevertToParent, evtime); ClientSetCurrent(NoFocusWinInfo->core.client); ClientDefaultWindowState(dpy); if (scrInfo != NULL && GRV.ColorTracksInputFocus) InstallDefaultColormap(dpy, scrInfo->rootwin, True); } /* * NoFocusEventBeep -- beep on keyboard/mouse events for the no-focus window * Also used by busy windows */ int NoFocusEventBeep(dpy, event, winInfo) Display *dpy; XEvent *event; WinGeneric *winInfo; { XEvent dummy; if (FindModifierMask(event->xkey.keycode) != 0) return; XSync(dpy,0); /* * Discard pending keyboard and mouse events on this * window, and then beep once. */ while (XCheckTypedWindowEvent(dpy,winInfo->core.self, KeyPress,&dummy)) /*EMPTY*/ ; while (XCheckTypedWindowEvent(dpy,winInfo->core.self, KeyRelease,&dummy)) /*EMPTY*/ ; while (XCheckTypedWindowEvent(dpy,winInfo->core.self, ButtonPress,&dummy)) /*EMPTY*/ ; while (XCheckTypedWindowEvent(dpy,winInfo->core.self, ButtonRelease,&dummy)) /*EMPTY*/ ; KeyBeep(dpy,event); } /* * TimeFresh * * Get a fresh timestamp from the server. This is accomplished by writing a * zero-length property on the no-focus window and getting the timestamp out * of the resulting PropertyNotify event. */ Time TimeFresh() { XEvent e; Time timestamp; XChangeProperty(NoFocusWinInfo->core.client->dpy, NoFocusWin, AtomOlwmNoFocusWin, XA_INTEGER, 32, PropModeReplace, (unsigned char *)NoFocusWinInfo, 0); XSync(NoFocusWinInfo->core.client->dpy, False); if (XCheckTypedWindowEvent(NoFocusWinInfo->core.client->dpy, NoFocusWin, PropertyNotify, &e)) timestamp = e.xproperty.time; else timestamp = CurrentTime; return timestamp; } xview-3.2p1.4/clients/olvwm-4.1/winpane.c100644 1750 1750 31576 5515337333 15377 0ustar mbmb/* * (c) Copyright 1989, 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifdef IDENT #ident "@(#)winpane.c 1.4 olvwm version 07 Jan 1994" #endif /* * Based on #ident "@(#)winpane.c 26.22 93/06/28 SMI" * */ #include #include #include #include #include #include #include "i18n.h" #include #include "ollocale.h" #include "mem.h" #include "olwm.h" #include "win.h" #include "globals.h" /*************************************************************************** * global data ***************************************************************************/ extern Atom AtomChangeState; extern Atom AtomColorMapWindows; extern Window NoFocusWin; extern void ColormapChange(); extern Time TimeFresh(); extern void FrameGetGravityOffset(); /*************************************************************************** * private data ***************************************************************************/ /* border width for reparented windows */ #define NORMAL_BORDERWIDTH 0 static ClassPane classPane; static Bool disallowMappedRepositioning = False; /*************************************************************************** * private functions ***************************************************************************/ /* * eventEnterLeaveNotify - The pointer has entered or left the window */ static int eventEnterLeaveNotify(dpy, event, winInfo) Display *dpy; XEvent *event; WinPane *winInfo; { if (event->xany.type == EnterNotify) ColorWindowCrossing(dpy, event, winInfo); } /* * eventColormapNotify * * Handle changes to this window's colormap attribute. */ static int eventColormapNotify(dpy, event, winInfo) Display *dpy; XEvent *event; WinPane *winInfo; { ColormapChange(dpy, event, (WinGeneric *)winInfo); } /* * eventUnmapNotify - the client is transitioning to withrdrawn */ static int /* ARGSUSED */ eventUnmapNotify(dpy, event, winInfo) Display *dpy; XEvent *event; WinPane *winInfo; { if (winInfo->pcore.pendingUnmaps > 0) { --winInfo->pcore.pendingUnmaps; } else { /* Mark current state */ StateWithdrawn(winInfo->core.client, TimeFresh()); } } /* * eventDestroyNotify - the pane window has disappeared * This function can get called either during new state processing, * or while app is iconic */ static int /* ARGSUSED */ eventDestroyNotify(dpy, event, winInfo) Display *dpy; XEvent *event; WinPane *winInfo; { StateWithdrawn(winInfo->core.client, TimeFresh()); } /* * eventPropertyNotify - handle client messages, in particular iconic requests */ static int /* ARGSUSED */ eventPropertyNotify(dpy, event, winInfo) Display *dpy; XEvent *event; WinPane *winInfo; { ClientDistributeProperty(winInfo->core.client,event); } /* * eventClientMessage - handle client messages, in particular iconic requests */ static int /* ARGSUSED */ eventClientMessage(dpy, event, winInfo) Display *dpy; XEvent *event; WinPane *winInfo; { Client *cli = winInfo->core.client; if (event->xclient.message_type == AtomChangeState) { if (event->xclient.data.l[0] == IconicState) StateIconic(cli, TimeFresh()); } } /* * eventExtension - handle extension events */ static int /* ARGSUSED */ eventExtension(dpy, event, winInfo) Display *dpy; XEvent *event; WinPane *winInfo; { #ifdef SHAPE XShapeEvent *se; Client *cli; if (event->xany.type == ShapeEventBase) { /* it's a ShapeNotify event */ se = (XShapeEvent *) event; if (se->kind != ShapeBounding) return; cli = winInfo->core.client; cli->isShaped = se->shaped; FrameUpdateShape(cli, cli->framewin); } #endif /* SHAPE */ } /* * drawPane -- draw the pane window */ /*ARGSUSED*/ /* dpy arg will be used when multiple Displays supported */ static int drawPane(dpy, winInfo) Display *dpy; WinGeneric *winInfo; { } /* * focusPane -- handle focus change */ static int /* ARGSUSED */ focusPane(dpy, winInfo, focus) Display *dpy; WinGeneric *winInfo; Bool focus; { } /* * DestroyPane -- destroy the pane window resources and free any allocated * data. */ static int /* ARGSUSED */ destroyPane(dpy, winInfo) Display *dpy; WinGeneric *winInfo; { /* free our data and throw away window */ WIUninstallInfo(winInfo->core.self); MemFree(winInfo); } /* * setconfigPane -- change configuration of pane window */ /*ARGSUSED*/ /* dpy arg will be used when multiple Displays supported */ static int setconfigPane(dpy, winInfo) Display *dpy; WinPane *winInfo; { XConfigureEvent ce; XWindowChanges xwc; if (winInfo->core.dirtyconfig) { xwc.x = winInfo->core.x; xwc.y = winInfo->core.y; xwc.width = winInfo->core.width; xwc.height = winInfo->core.height; ConfigureWindow(dpy, winInfo, winInfo->core.dirtyconfig, &xwc); winInfo->core.dirtyconfig &= ~(CWX|CWY|CWWidth|CWHeight); } /* send synthetic configure notify in root coordinates */ ce.type = ConfigureNotify; ce.serial = 0L; ce.event = winInfo->core.self; ce.window = winInfo->core.self; WinRootPos(winInfo,&ce.x,&ce.y); ce.x -= winInfo->pcore.oldBorderWidth; ce.y -= winInfo->pcore.oldBorderWidth; ce.width = winInfo->core.width; ce.height = winInfo->core.height; ce.border_width = winInfo->pcore.oldBorderWidth; ce.above = None; ce.override_redirect = False; XSendEvent(dpy, winInfo->core.self, False, StructureNotifyMask, (XEvent *)&ce); } /* * newconfigPane - compute a new configuration given an event * Note: this function must *always* be called with a configure request * event. */ static int newconfigPane(win, pxcre) WinPane *win; XConfigureRequestEvent *pxcre; { int oldWidth, oldHeight; Client *cli = win->core.client; int oldX, oldY; WinPaneFrame *winFrame = cli->framewin; void FrameMoveRelative(); int dwidth, dheight; int dx, dy; if (pxcre == NULL) return win->core.dirtyconfig; WinRootPos(winFrame, &oldX, &oldY); FrameGetGravityOffset(winFrame, &dx, &dy); oldX += dx; oldY += dy; oldWidth = win->core.width; oldHeight = win->core.height; if ((pxcre->value_mask & CWHeight) && (pxcre->height != oldHeight)) { win->core.height = pxcre->height; win->core.dirtyconfig |= CWHeight; } if ((pxcre->value_mask & CWWidth) && (pxcre->width != oldWidth)) { win->core.width = pxcre->width; win->core.dirtyconfig |= CWWidth; } if (pxcre->value_mask & CWBorderWidth) { win->pcore.oldBorderWidth = pxcre->border_width; } if (disallowMappedRepositioning) pxcre->value_mask &= ~(CWX | CWY); if (pxcre->value_mask & (CWX | CWY)) { FrameSetPosFromPane(winFrame, (pxcre->value_mask & CWX)?(pxcre->x):oldX, (pxcre->value_mask & CWY)?(pxcre->y):oldY); } else { dwidth = oldWidth - win->core.width; dheight = oldHeight - win->core.height; if ((dwidth != 0) || (dheight!=0)) { switch (cli->normHints->win_gravity) { case StaticGravity: case NorthWestGravity: break; case NorthGravity: FrameMoveRelative(winFrame,dwidth/2,0); break; case NorthEastGravity: FrameMoveRelative(winFrame,dwidth,0); break; case WestGravity: FrameMoveRelative(winFrame,0,dheight/2); break; case CenterGravity: FrameMoveRelative(winFrame,dwidth/2,dheight/2); break; case EastGravity: FrameMoveRelative(winFrame,dwidth,dheight/2); break; case SouthWestGravity: FrameMoveRelative(winFrame,0,dheight); break; case SouthGravity: FrameMoveRelative(winFrame,dwidth/2,dheight); break; case SouthEastGravity: FrameMoveRelative(winFrame,dwidth,dheight); break; } } } if (pxcre->value_mask & (CWStackMode | CWSibling)) { GFrameSetStack(winFrame, pxcre->value_mask, pxcre->detail, pxcre->above); } return win->core.dirtyconfig; } /* * newposPane - move to a given position (relative to parent) */ static int newposPane(win,x,y) WinPane *win; int x, y; { if (win->core.x != x) { win->core.x = x; win->core.dirtyconfig |= CWX; } if (win->core.y != y) { win->core.y = y; win->core.dirtyconfig |= CWY; } return win->core.dirtyconfig; } /* * setsizePane - set the pane to a particular size, and initiate a reconfigure */ static int setsizePane(win,w,h) WinPane *win; int w, h; { if (win->core.width != w) { win->core.width = w; win->core.dirtyconfig |= CWWidth; } if (win->core.height != h) { win->core.height = h; win->core.dirtyconfig |= CWHeight; } } /*************************************************************************** * global functions ***************************************************************************/ /* * MakePane -- create the pane window. Return a WinGeneric structure. */ WinPane * MakePane(cli,par,win,paneattrs) Client *cli; WinGeneric *par; Window win; XWindowAttributes *paneattrs; { WinPane *w; XSetWindowAttributes attributes; WinColormap *colorwin; /* this window may already be mentioned as a colourmap window. * grab its colourmap window structure, and unhook it from the * event dispatching table so we can register a new structure * for the window. We will call another function at the end * of pane processing to re-establish the relation between this * window and other structures in the system. */ colorwin = ColormapUnhook(win); /* create the associated structure */ w = MemNew(WinPane); w->core.self = win; w->class = &classPane; w->core.kind = WIN_PANE; WinAddChild(par,w); w->core.children = NULL; w->core.client = cli; w->core.x = 0; /* gets fixed up later */ w->core.y = 0; /* gets fixed up later */ w->core.width = paneattrs->width; w->core.height = paneattrs->height; w->core.colormap = paneattrs->colormap; w->core.dirtyconfig = CWX|CWY|CWWidth|CWHeight; w->core.exposures = NULL; w->pcore.oldBorderWidth = paneattrs->border_width; w->pcore.oldSaveUnder = paneattrs->save_under; w->core.helpstring = (char *)NULL; /* no help */ cli->framewin->fcore.panewin = (WinGenericPane *)w; /* register the window */ WIInstallInfo(w); /* Put the window in the save set so it doesn't go away */ XChangeSaveSet(cli->dpy,win,SetModeInsert); /* * Since the pane is reparented, save-unders are not useful. * In the code above the save-under attribute is propogated to * the frame, so it is safe to remove it here. But don't do this for * InputOnly windows. */ if (paneattrs->class == InputOutput) { attributes.save_under = False; XChangeWindowAttributes(cli->dpy, win, (unsigned long) CWSaveUnder, &attributes); /* * Change the border width if necessary. The border width of * InputOnly windows is zero by definition. */ if (paneattrs->border_width != NORMAL_BORDERWIDTH) XSetWindowBorderWidth(cli->dpy, win, NORMAL_BORDERWIDTH); } /* * Focus Lenience. Be lenient about enforcing the requirement that * clients set the input hint in WM_HINTS before they can get keyboard * input. If this flag is set, and if the focus mode is NoInput, then * force the mode to be passive. This way, if a client either fails * to set the WM_HINTS.input field, or fails to write WM_HINTS at all, * it can still get keyboard input. * * REMIND This kind of flag should be implemented on a * client-by-client basis, not on a global basis. */ if (GRV.FocusLenience && cli->focusMode == NoInput ) { cli->focusMode = Passive; } /* Reparent the pane */ XReparentWindow(cli->dpy, win, par->core.self, w->core.x, w->core.y); /* we may have saved colourmap manipulation information at * the beginning. Re-establish the connection between this window * and other structures based on the old structure. */ ColormapTransmogrify(colorwin, w); return w; } /* * PaneInit -- initialise the Pane class function vector */ void /* ARGSUSED */ PaneInit(dpy) Display *dpy; { classPane.core.kind = WIN_PANE; classPane.core.xevents[EnterNotify] = eventEnterLeaveNotify; classPane.core.xevents[LeaveNotify] = eventEnterLeaveNotify; classPane.core.xevents[ColormapNotify] = eventColormapNotify; classPane.core.xevents[UnmapNotify] = eventUnmapNotify; classPane.core.xevents[DestroyNotify] = eventDestroyNotify; classPane.core.xevents[PropertyNotify] = eventPropertyNotify; classPane.core.xevents[ClientMessage] = eventClientMessage; classPane.core.extEventHdlr = eventExtension; classPane.core.focusfunc = focusPane; classPane.core.drawfunc = NULL; classPane.core.destroyfunc = destroyPane; classPane.core.selectfunc = NULL; classPane.core.newconfigfunc = newconfigPane; classPane.core.newposfunc = newposPane; classPane.core.setconfigfunc = setconfigPane; classPane.core.createcallback = NULL; classPane.core.heightfunc = NULL; classPane.core.widthfunc = NULL; classPane.pcore.setsizefunc = setsizePane; } xview-3.2p1.4/clients/olvwm-4.1/winpinmenu.c100644 1750 1750 26123 5515337334 16120 0ustar mbmb/* * (c) Copyright 1989, 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifdef IDENT #ident "@(#)winpinmenu.c 1.4 olvwm version 07 Jan 1994" #endif /* * Based on #ident "@(#)winpinmenu.c 26.31 93/06/28 SMI" * */ #include #include #include #include #include #include #include "i18n.h" #include #include "ollocale.h" #include "mem.h" #include "olwm.h" #include "win.h" #include "menu.h" #include "globals.h" /*************************************************************************** * global data ***************************************************************************/ extern Atom AtomDecorAdd; extern Atom AtomDecorHeader; extern Atom AtomDecorPin; extern Atom AtomDeleteWindow; extern Atom AtomMenuLimited; extern Atom AtomProtocols; extern Atom AtomPushpinState; extern Atom AtomWinAttr; extern Atom AtomWTOther; #ifdef OW_I18N_L4 extern Atom AtomCompoundText; #endif /*************************************************************************** * private data ***************************************************************************/ /* function vector for menu windows */ static ClassPinMenu classPinMenu; /*************************************************************************** * private functions ***************************************************************************/ /* * afterMenuShow - called after MenuShowSync has finished showing * and possibly executing the menu. */ static void afterMenuShow(win) WinPinMenu *win; { MenuInfo *mInfo = win->menuInfo; Display *dpy = win->core.client->dpy; if (BUTTON_INDEX_OK(mInfo, mInfo->litButton)) { DrawLocCursor(dpy, mInfo, mInfo->litButton, False); SetButton(dpy, mInfo, mInfo->litButton, False, False); } SetButton(dpy, mInfo, mInfo->menu->buttonDefault, True, True); } /*************************************************************************** * private event functions ***************************************************************************/ /* * eventButtonPress - a button has gone down. */ static int eventButtonPress(dpy, event, winInfo) Display *dpy; XEvent *event; WinPinMenu *winInfo; { if (! StartMenuGrabs(dpy, winInfo)) return; MenuMakeFirst(winInfo->menuInfo, afterMenuShow, winInfo); MenuTrack(dpy, event, winInfo, winInfo); } static int eventKeyEvent(dpy, event, winInfo) Display *dpy; XEvent *event; WinPinMenu *winInfo; { MenuMakeFirst(winInfo->menuInfo, afterMenuShow, winInfo); if (MenuHandleKeyEvent(dpy, event, winInfo, winInfo)) { if (! StartMenuGrabs(dpy, winInfo)) return; } } /* * eventClientMessage - handle a DELETE_WINDOW message. */ /*ARGSUSED*/ static int eventClientMessage(dpy, event, winInfo) Display *dpy; XEvent *event; WinPinMenu *winInfo; { if ((event->xclient.message_type == AtomProtocols) && (event->xclient.data.l[0] == AtomDeleteWindow)) { DestroyClient(winInfo->core.client); } } static int eventEnterNotify(dpy, event, winInfo) Display *dpy; XEvent *event; WinPinMenu *winInfo; { if (event->xany.type == EnterNotify) ColorWindowCrossing(dpy, event, winInfo); } static int focusMenuFunc(dpy, winInfo, focus) Display *dpy; WinPinMenu *winInfo; Bool focus; { MenuInfo *mInfo = winInfo->menuInfo; if (mInfo->litButton != NOBUTTON && focus) { SetButton(dpy, mInfo, mInfo->menu->buttonDefault, False, True); SetButton(dpy, mInfo, mInfo->litButton, True, False); DrawLocCursor(dpy, mInfo, mInfo->litButton, True); } else if (! focus) { if (BUTTON_INDEX_OK(mInfo, mInfo->litButton)) { DrawLocCursor(dpy, mInfo, mInfo->litButton, False); SetButton(dpy, mInfo, mInfo->litButton, False, False); } SetButton(dpy, mInfo, mInfo->menu->buttonDefault, True, True); } } /* * destroyMenu -- destroy the menu window resources and free any allocated * data. */ static int destroyMenu(dpy, winInfo) Display *dpy; WinPinMenu *winInfo; { MenuInfo *menuInfo = (MenuInfo *)(winInfo->menuInfo); /* tell the original menu that we're gone */ menuInfo->origmenuInfo->pinnedBrother = NULL; /* remove window */ ScreenDestroyWindow(winInfo->core.client->scrInfo, winInfo->core.self); WIUninstallInfo(winInfo->core.self); /* free memory */ MemFree(menuInfo); MemFree(winInfo); } /* * newconfigMenu - recomputes the size of the menu window * Note that menus don't change size, so this is a no-op. */ /*ARGSUSED*/ static int newconfigMenu(win, pxcre) WinPinMenu *win; XConfigureRequestEvent *pxcre; { return win->core.dirtyconfig; } /* menuSetParent -- callback during creation. Since menus are internally- * created windows we must fix up certain fields that are only available * after the window is mapped. */ static int menuSetParent(winInfo,cli,par) WinGeneric *winInfo; Client *cli; WinGenericFrame *par; { MenuInfo *mInfo; /* mark this client as owned by olwm itself */ cli->flags = CLOlwmOwned; winInfo->core.client = cli; WinAddChild((WinGeneric *)par, winInfo); XReparentWindow(cli->dpy, winInfo->core.self, par->core.self, winInfo->core.x, winInfo->core.y); par->fcore.panewin = (WinGenericPane *)winInfo; mInfo = ((WinPinMenu *) winInfo)->menuInfo; winInfo->core.helpstring = mInfo->menu->helpstring; par->core.helpstring = mInfo->menu->helpstring; } /*************************************************************************** * global functions ***************************************************************************/ /* * MakePinMenu -- create the pinned menu's menu window (around which we'll put * a frame). The window is mapped during the transition to normal * state. */ WinPinMenu * MakePinMenu(dpy, winInfo, origMenuInfo) Display *dpy; WinGeneric *winInfo; MenuInfo *origMenuInfo; { WinPinMenu *w; Window win; Window rootWin; unsigned long valuemask; XSetWindowAttributes attributes; Atom atomList[3]; XSizeHints sizeHints; XWMHints wmHints; MenuInfo *newMenuInfo; #ifdef OW_I18N_L4 XTextProperty textProps; #endif /* Make a copy of the original MenuInfo * the main difference is that a pinned menu does not have a title * in itself since the frame takes care of the title for us. * Also adjust our height to remove the title height */ newMenuInfo = MemNew(MenuInfo); *newMenuInfo = *origMenuInfo; newMenuInfo->menu = origMenuInfo->menu; newMenuInfo->titleWidth = 0; newMenuInfo->titleHeight = 0; newMenuInfo->menuHeight = origMenuInfo->menuHeight - origMenuInfo->titleHeight; newMenuInfo->buttonOffset = newMenuInfo->notitleOffset; newMenuInfo->childActive = False; newMenuInfo->pinIn = False; newMenuInfo->litButton = NOBUTTON; newMenuInfo->ringedButton = newMenuInfo->menu->buttonDefault; /* save a back pointer to the original and mark it pinned */ newMenuInfo->origmenuInfo = origMenuInfo; newMenuInfo->pinnedBrother = NULL; origMenuInfo->pinnedBrother = newMenuInfo; /* create the associated structure */ w = MemNew(WinPinMenu); w->class = &classPinMenu; w->core.kind = WIN_PINMENU; w->core.children = NULL; w->core.client = winInfo->core.client; w->core.x = newMenuInfo->menuX; w->core.y = newMenuInfo->menuY; w->core.width = newMenuInfo->menuWidth; w->core.height = newMenuInfo->menuHeight; w->core.dirtyconfig = CWX|CWY|CWWidth|CWHeight; w->core.exposures = NULL; w->core.helpstring = (char *)0; w->core.colormap = winInfo->core.client->scrInfo->colormap; /* create the actual window */ attributes.event_mask = ButtonReleaseMask | ButtonPressMask | ExposureMask | PropertyChangeMask | ButtonMotionMask | KeyPressMask | KeyReleaseMask | EnterWindowMask; attributes.background_pixel = winInfo->core.client->scrInfo->colorInfo.bg1Color; attributes.border_pixel = 0; attributes.colormap = w->core.colormap; attributes.cursor = GRV.MenuPointer; valuemask = CWEventMask | CWBackPixel | CWBorderPixel | CWColormap | CWCursor; win = ScreenCreateWindow(winInfo->core.client->scrInfo, WinRootID(winInfo), w->core.x, w->core.y, w->core.width, w->core.height, valuemask, &attributes); w->core.self = win; /* register the window */ WIInstallInfo((WinGeneric *)w); /* first we set the properties defining what kind of OpenLook window it is */ atomList[0] = AtomWTOther; atomList[1] = AtomMenuLimited; atomList[2] = (Atom) PIN_IN; XChangeProperty(dpy, win, AtomWinAttr, AtomWinAttr, 32, PropModeReplace, (unsigned char *)atomList, 3); /* add a push-pin */ atomList[0] = AtomDecorPin; atomList[1] = AtomDecorHeader; XChangeProperty(dpy, win, AtomDecorAdd, XA_ATOM, 32, PropModeReplace, (unsigned char *)atomList, 2); /* set protocols */ atomList[0] = AtomDeleteWindow; XChangeProperty(dpy, win, AtomProtocols, XA_ATOM, 32, PropModeReplace, (unsigned char *)atomList, 1); /* now set the size hints */ sizeHints.flags = USPosition | USSize; XChangeProperty(dpy, win, XA_WM_NORMAL_HINTS, XA_WM_SIZE_HINTS, 32, PropModeReplace, (unsigned char *)&sizeHints, sizeof(XSizeHints)/sizeof(long)); /* and the wmHints */ wmHints.flags = InputHint | StateHint; wmHints.initial_state = NormalState; wmHints.input = True; if (winInfo->core.kind == WIN_VIRTUAL) { wmHints.flags |= WindowGroupHint; wmHints.window_group = winInfo->core.self; } XChangeProperty(dpy, win, XA_WM_HINTS, XA_WM_HINTS, 32, PropModeReplace, (unsigned char *)&wmHints, sizeof(XWMHints)/sizeof(long)); /* put the title into the header */ #ifdef OW_I18N_L4 /* * Should be using XStdICCTextStyle, but uses * XCompoundTextStyle for workaround for bug 1100305. */ if (XwcTextListToTextProperty(dpy, &newMenuInfo->menu->title, 1, XCompoundTextStyle, &textProps) == Success) { XSetWMName(dpy, win, &textProps); XFree((char *)textProps.value); } #else XStoreName(dpy, win, newMenuInfo->menu->title); #endif newMenuInfo->menuWin = (WinGeneric *)w; w->menuInfo = newMenuInfo; rootWin = w->core.client->scrInfo->rootid; StateNew(dpy, rootWin, win, False, (WinPane *)w); return w; } /* * PinMenuInit - initializes class functions */ /*ARGSUSED*/ int PinMenuInit(dpy) Display *dpy; { classPinMenu.core.kind = WIN_PINMENU; classPinMenu.core.xevents[ButtonPress] = eventButtonPress; classPinMenu.core.xevents[ClientMessage] = eventClientMessage; classPinMenu.core.xevents[KeyPress] = eventKeyEvent; classPinMenu.core.xevents[KeyRelease] = eventKeyEvent; classPinMenu.core.xevents[EnterNotify] = eventEnterNotify; classPinMenu.core.xevents[Expose] = MenuEventExpose; classPinMenu.core.focusfunc = focusMenuFunc; classPinMenu.core.drawfunc = MenuEventDrawMenu; classPinMenu.core.destroyfunc = destroyMenu; classPinMenu.core.selectfunc = NULL; classPinMenu.core.newconfigfunc = newconfigMenu; classPinMenu.core.newposfunc = WinNewPosFunc; classPinMenu.core.setconfigfunc = WinSetConfigFunc; classPinMenu.core.createcallback = menuSetParent; classPinMenu.core.heightfunc = NULL; classPinMenu.core.widthfunc = NULL; classPinMenu.pcore.setsizefunc = NULL; } xview-3.2p1.4/clients/olvwm-4.1/winpush.c100644 1750 1750 25431 5515337334 15425 0ustar mbmb/* * (c) Copyright 1989, 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifdef IDENT #ident "@(#)winpush.c 1.3 olvwm version 07 Jan 1994" #endif /* * Based on #ident "@(#)winpush.c 26.23 93/06/28 SMI" * */ #include #include #include #include #include #include #include "i18n.h" #include #include "ollocale.h" #include "mem.h" #include "olwm.h" #include "win.h" #include "globals.h" /*************************************************************************** * global data ***************************************************************************/ extern Atom AtomDeleteWindow; extern Atom AtomPushpinState; extern void FrameAllowEvents(); /*************************************************************************** * private data ***************************************************************************/ static ClassPushPin classPushPin; static Bool pushpinStateAfterPress; /* State of the pushpin * after the user pressed * the mouse button. */ static SemanticAction currentAction = ACTION_NONE; void PushPinChangePinState(); /*************************************************************************** * private functions ***************************************************************************/ /* locallyChangePushPinState -- temporarily change the pushpin state, * while tracking a button press over the pin. The permanent change * will be made later. */ static void locallyChangePushPinState(dpy,winInfo,newState) Display *dpy; WinPushPin *winInfo; Bool newState; { if (winInfo->pushpinin != newState) { winInfo->pushpinin = newState; (WinFunc(winInfo,core.drawfunc))(dpy, winInfo); } } /* * eventButtonPress - handle button press events on the pushpin window */ static int eventButtonPress(dpy, event, winInfo) Display *dpy; XEvent *event; WinPushPin *winInfo; { SemanticAction a = ResolveMouseBinding(dpy, event, 0L); FrameAllowEvents(winInfo->core.client, event->xbutton.time); switch (a) { case ACTION_SELECT: case ACTION_ADJUST: locallyChangePushPinState(dpy, winInfo, !(winInfo->pushpinin)); pushpinStateAfterPress = winInfo->pushpinin; currentAction = a; break; } } /* * eventButtonRelease - handle button release events on the pushpin window */ static int eventButtonRelease(dpy, event, winInfo) Display *dpy; XEvent *event; WinPushPin *winInfo; { FrameAllowEvents(winInfo->core.client, event->xbutton.time); if (!AllButtonsUp(event)) return; /* * If pushpinStateAfterPress equals the current pin state, we know * that the user really wants to change the pin state. If they are * not equal, the user has released the button outside the pin, so * there should be no change of state. */ if (pushpinStateAfterPress == winInfo->pushpinin) { PushPinChangePinState(dpy, winInfo, currentAction == ACTION_SELECT); } currentAction = ACTION_NONE; } /* * eventMotionNotify - handle pointer moves */ static int eventMotionNotify(dpy, event, winInfo) Display *dpy; XEvent *event; WinPushPin *winInfo; { Bool fInWindow; Graphics_info *gisNormal = WinGI(winInfo,NORMAL_GINFO); if (!event->xmotion.same_screen) return; if (currentAction != ACTION_SELECT && currentAction != ACTION_ADJUST) return; /* When the user moves the cursor off the pushpin * while s/he has the button down we should pull * the button out. If the user moves back onto the * pushpin put the pin back in. So, * * if (cursor is off the pushpin) and (pin is in) * OR * (cursor is on the pushpin) and (pin is out) * then * change the state of the pushpin. */ fInWindow = !((event->xmotion.x < 0) || (event->xmotion.y < 0) || (event->xmotion.x >= PushPinOut_Width(gisNormal)) || (event->xmotion.y >= PushPinOut_Height(gisNormal))); locallyChangePushPinState(dpy, winInfo, fInWindow?pushpinStateAfterPress:!pushpinStateAfterPress); } /* * drawPushPin -- draw the pushpin window */ /*ARGSUSED*/ static int drawPushPin(dpy, winInfo) Display *dpy; WinPushPin *winInfo; { Client *cli = winInfo->core.client; Graphics_info *gis; int focusLines = (GRV.FocusFollowsMouse ? 1 : 0) ^ (GRV.InvertFocusHighlighting ? 1 : 0); if (cli->isFocus) gis = WinGI(winInfo, INPUTFOCUS_GINFO); else gis = WinGI(winInfo,NORMAL_GINFO); /* If the titlebar is in reverse video we need to * draw the pushpin in reverse video also. */ if (Win3D(winInfo)) { /* * REMIND * We need to erase the background here to BG2. We can't use * OLGX_ERASE because olgx erases only in BG1. So, we draw an * filled, invoked box that is just larger than the pin * window, so that the border doesn't show. */ olgx_draw_box(gis, winInfo->core.self, -1, -1, winInfo->core.width+2, winInfo->core.height+2, ((cli->isFocus) && !focusLines) ? OLGX_INVOKED : OLGX_NORMAL, True); } else { GC gc; if (cli->isFocus && !focusLines) { gc = WinGC(winInfo, FOREGROUND_GC); gis = WinGI(winInfo, REVPIN_GINFO); } else { gc = WinGC(winInfo, WINDOW_GC); } XFillRectangle(dpy, winInfo->core.self, gc, 0, 0, winInfo->core.width, winInfo->core.height); } if (winInfo->core.client->isBusy) { XFillRectangle(dpy, winInfo->core.self, WinGC(winInfo,BUSY_GC), 0, 0, winInfo->core.width, winInfo->core.height); } olgx_draw_pushpin(gis, winInfo->core.self, 0, 0, ((winInfo->pushpinin) ? OLGX_PUSHPIN_IN : OLGX_PUSHPIN_OUT)); } /* * DestroyPushPin -- destroy the pushpin window resources and free any allocated * data. */ static int /* ARGSUSED */ destroyPushPin(dpy, winInfo) Display *dpy; WinPushPin *winInfo; { /* free our data and throw away window */ ScreenDestroyWindow(winInfo->core.client->scrInfo, winInfo->core.self); WIUninstallInfo(winInfo->core.self); MemFree(winInfo); } /* * focusselectPushPin - the focus or selection state has changed */ static int /* ARGSUSED */ focusselectPushPin(dpy, winInfo, selected) Display *dpy; WinPushPin *winInfo; Bool selected; { (WinFunc(winInfo,core.drawfunc))(dpy, winInfo); } /* * heightfuncPushPin - recomputes the correct height of the window */ static int /* ARGSUSED */ heightfuncPushPin(win, pxcre) WinPushPin *win; XConfigureRequestEvent *pxcre; { return PushPinOut_Width(WinGI(win,NORMAL_GINFO)); } /* * widthfuncPushPin - recomputes the correct width of the window */ static int /* ARGSUSED */ widthfuncPushPin(win, pxcre) WinPushPin *win; XConfigureRequestEvent *pxcre; { return PushPinOut_Height(WinGI(win,NORMAL_GINFO)); } /*************************************************************************** * global functions ***************************************************************************/ /* * MakePushPin -- create the pushpin window. Return a WinGeneric structure. */ WinPushPin * MakePushPin(dpy, par, pane, x, y) Display *dpy; WinGeneric *par; Window pane; int x,y; { WinPushPin *w; Window win; unsigned long valuemask; XSetWindowAttributes attributes; Graphics_info *gisNormal = WinGI(par,NORMAL_GINFO); attributes.event_mask = ButtonMotionMask | ButtonReleaseMask | ButtonPressMask | ExposureMask; attributes.win_gravity = NorthWestGravity; valuemask = CWEventMask | CWWinGravity; win = ScreenCreateWindow(par->core.client->scrInfo, par->core.self, x, y, PushPinOut_Width(gisNormal), PushPinOut_Height(gisNormal), valuemask, &attributes); /* create the associated structure */ w = MemNew(WinPushPin); w->core.self = win; w->class = &classPushPin; w->core.kind = WIN_PUSHPIN; WinAddChild(par,w); w->core.children = NULL; w->core.client = par->core.client; w->core.x = x; w->core.y = y; w->core.width = PushPinOut_Width(gisNormal); w->core.height = PushPinOut_Height(gisNormal); w->core.dirtyconfig = CWX | CWY | CWWidth | CWHeight; w->core.exposures = NULL; w->core.helpstring = "olwm:PushPin"; /* Determine initial state of push pin. */ w->pushpinin = (par->core.client->wmDecors->pushpin_initial_state == PIN_IN); /* Register the push-pin state. */ XChangeProperty(dpy, pane, AtomPushpinState, XA_INTEGER, 32, PropModeReplace, (unsigned char *)&(w->pushpinin), 1); /* register the window */ WIInstallInfo(w); MapRaised(w); return w; } void /* ARGSUSED */ PushPinInit(dpy) Display *dpy; { classPushPin.core.kind = WIN_PUSHPIN; classPushPin.core.xevents[Expose] = WinEventExpose; classPushPin.core.xevents[ButtonPress] = eventButtonPress; classPushPin.core.xevents[ButtonRelease] = eventButtonRelease; classPushPin.core.xevents[MotionNotify] = eventMotionNotify; classPushPin.core.focusfunc = focusselectPushPin; classPushPin.core.drawfunc = drawPushPin; classPushPin.core.destroyfunc = destroyPushPin; classPushPin.core.selectfunc = focusselectPushPin; classPushPin.core.newconfigfunc = WinNewConfigFunc; classPushPin.core.newposfunc = WinNewPosFunc; classPushPin.core.setconfigfunc = WinSetConfigFunc; classPushPin.core.createcallback = NULL; classPushPin.core.heightfunc = heightfuncPushPin; classPushPin.core.widthfunc = widthfuncPushPin; } /* * Permanently change the push pin state. */ void PushPinChangePinState(dpy, winInfo, sendDelete) Display *dpy; WinPushPin *winInfo; Bool sendDelete; { Client *cli = winInfo->core.client; (WinFunc(winInfo,core.drawfunc))(dpy, winInfo); /* Tell the client that the state of its push-pin has changed. */ XChangeProperty(dpy, PANEWINOFCLIENT(cli), AtomPushpinState, XA_INTEGER, 32, PropModeReplace, (unsigned char *)&(winInfo->pushpinin), 1); if (!winInfo->pushpinin && sendDelete) ClientKill(winInfo->core.client,False); } /* * Sets the pin state to a new state (if different that current state) */ void PushPinSetPinState(dpy,winInfo,newState,sendDelete) Display *dpy; WinPushPin *winInfo; int newState; Bool sendDelete; { if (newState == winInfo->pushpinin) return; winInfo->pushpinin = newState; PushPinChangePinState(dpy,winInfo,sendDelete); } /* * Toggles the pin state */ void PushPinTogglePinState(dpy,winInfo,sendDelete) Display *dpy; WinPushPin *winInfo; Bool sendDelete; { winInfo->pushpinin = !winInfo->pushpinin; PushPinChangePinState(dpy,winInfo,sendDelete); } xview-3.2p1.4/clients/olvwm-4.1/winresize.c100644 1750 1750 22430 5515337334 15743 0ustar mbmb/* * (c) Copyright 1989, 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifdef IDENT #ident "@(#)winresize.c 1.4 olvwm version 07 Jan 1994" #endif /* * Based on #ident "@(#)winresize.c 26.27 93/06/28 SMI" * */ #include #include #include #include #include #include #include #include "i18n.h" #include #include "ollocale.h" #include "mem.h" #include "olwm.h" #include "win.h" #include "globals.h" #include "events.h" /*************************************************************************** * global data ***************************************************************************/ extern int Resize_width, Resize_height; extern void FrameAllowEvents(); /*************************************************************************** * private data ***************************************************************************/ static int whicholgx[] = {OLGX_UPPER_LEFT, OLGX_UPPER_RIGHT, OLGX_LOWER_LEFT, OLGX_LOWER_RIGHT}; static int whichgrav[] = {NorthWestGravity, NorthEastGravity, SouthWestGravity, SouthEastGravity}; static ClassResize classResize; /*************************************************************************** * private functions ***************************************************************************/ /* * resizeCallback - restore the resize corner to its normal state */ static void resizeCallback(dpy, winInfo) Display *dpy; WinResize *winInfo; { winInfo->depressed = False; (WinFunc(winInfo,core.drawfunc))(dpy,winInfo); } /* * eventButtonPress - handle button press events on the resize window */ static int eventButtonPress(dpy, event, winInfo) Display *dpy; XEvent *event; WinResize *winInfo; { unsigned int ignoremask = ModMaskMap[MOD_CONSTRAIN] | ModMaskMap[MOD_INVERT]; if (ResolveMouseBinding(dpy, event, ignoremask) != ACTION_SELECT) { FrameAllowEvents(winInfo->core.client, event->xbutton.time); return; } /* draw depressed corner */ winInfo->depressed = True; (WinFunc(winInfo,core.drawfunc))(dpy,winInfo); /* resize function will eat button release */ ClientResize(winInfo->core.client,event,winInfo->which, resizeCallback,winInfo); } /* * drawResize -- draw the resize window */ /*ARGSUSED*/ static int drawResize(dpy, winInfo) Display *dpy; WinResize *winInfo; { WhichResize which = winInfo->which; GC drawWindowGC = WinGC(winInfo,WINDOW_GC); GC drawBusyGC = WinGC(winInfo,BUSY_GC); Graphics_info *gis = WinGI(winInfo,NORMAL_GINFO); int focusLines; /* two lines or solid bar */ if (winInfo->core.client->isFocus) { drawWindowGC = WinGC(winInfo, INPUTFOCUS_GC); gis = WinGI(winInfo, INPUTFOCUS_GINFO); } focusLines = (GRV.FocusFollowsMouse ? 1 : 0) ^ (GRV.InvertFocusHighlighting ? 1 : 0); if ((which == upright) || (which == upleft)) { if (winInfo->core.client->isBusy) { if (which == upleft) { XFillRectangle(dpy, winInfo->core.self, drawWindowGC, ResizeArm_Width(gis), ResizeArm_Height(gis), winInfo->core.width - ResizeArm_Width(gis), winInfo->core.height - ResizeArm_Height(gis)); XFillRectangle(dpy, winInfo->core.self, drawBusyGC, ResizeArm_Width(gis), ResizeArm_Height(gis), winInfo->core.width - ResizeArm_Width(gis), winInfo->core.height - ResizeArm_Height(gis)); } else { /* upper right */ XFillRectangle(dpy, winInfo->core.self, drawWindowGC, 0, ResizeArm_Height(gis), winInfo->core.width - ResizeArm_Width(gis), winInfo->core.height - ResizeArm_Height(gis)); /* * Update the tile/stipple origin to be the origin of the * frame window. This is necessary to make the stipple * fragment painted here match the stipple painted in the * title bar. Reset the tile/stipple origin when done. */ XSetTSOrigin(dpy, drawBusyGC, - winInfo->core.x, - winInfo->core.y); XFillRectangle(dpy,winInfo->core.self, drawBusyGC, 0, ResizeArm_Height(gis), winInfo->core.width - ResizeArm_Width(gis), winInfo->core.height - ResizeArm_Height(gis)); XSetTSOrigin(dpy, drawBusyGC, 0, 0); } } else if ((winInfo->core.client->isFocus) && !focusLines) { if (Win3D(winInfo)) { olgx_draw_box(gis, winInfo->core.self, (which==upleft)?(ResizeArm_Width(gis)):(-2), ResizeArm_Height(gis), winInfo->core.width-ResizeArm_Width(gis)+2, winInfo->core.height-ResizeArm_Height(gis)+2, OLGX_INVOKED, True); } else { XFillRectangle(dpy,winInfo->core.self, WinGC(winInfo,INPUTFOCUS_GC), (which==upleft)?(ResizeArm_Width(gis)):(0), ResizeArm_Height(gis), winInfo->core.width-ResizeArm_Width(gis), winInfo->core.height-ResizeArm_Height(gis)); } } else { XFillRectangle(dpy,winInfo->core.self,drawWindowGC, (which==upleft)?(ResizeArm_Width(gis)):(0), ResizeArm_Height(gis), winInfo->core.width-ResizeArm_Width(gis), winInfo->core.height-ResizeArm_Height(gis)); } } else { /* lowleft or lowright */ XFillRectangle(dpy, winInfo->core.self, drawWindowGC, (which==lowleft) ? (ResizeArm_Width(gis)) : 0, 0, winInfo->core.width-ResizeArm_Width(gis), winInfo->core.height-ResizeArm_Height(gis)); } if (!Win3D(winInfo) || !GRV.F3dResize) gis = WinGI(winInfo, TEXT_GINFO); olgx_draw_resize_corner(gis, winInfo->core.self, 0, 0, whicholgx[winInfo->which], (winInfo->depressed)?(OLGX_INVOKED):(OLGX_NORMAL)); } /* * DestroyResize -- destroy the resize window resources and free any allocated * data. */ static int destroyResize(dpy, winInfo) Display *dpy; WinGeneric *winInfo; { /* free our data and throw away window */ ScreenDestroyWindow(winInfo->core.client->scrInfo, winInfo->core.self); WIUninstallInfo(winInfo->core.self); MemFree(winInfo); } /* * focusselectResize - the focus or selection state has changed */ static int /* ARGSUSED */ focusResize(dpy, winInfo, selected) Display *dpy; WinResize *winInfo; Bool selected; { (WinFunc(winInfo,core.drawfunc))(dpy, winInfo); } /* * widthfuncResize - recomputes the width of the resize window */ static int /* ARGSUSED */ widthfuncResize(win, pxcre) WinResize *win; XConfigureRequestEvent *pxcre; { return Resize_width; } /* * heightfuncResize - recomputes the width of the resize window */ static int /* ARGSUSED */ heightfuncResize(win, pxcre) WinResize *win; XConfigureRequestEvent *pxcre; { return Resize_height; } /*************************************************************************** * global functions ***************************************************************************/ /* * MakeResize -- create the resize window. Return a WinGeneric structure. */ WinResize * MakeResize(dpy, par, which, x, y) Display *dpy; WinGeneric *par; WhichResize which; int x,y; { WinResize *w; Window win; unsigned long valuemask; XSetWindowAttributes attributes; attributes.event_mask = ButtonPressMask | ButtonMotionMask | ButtonReleaseMask | ExposureMask | OwnerGrabButtonMask; attributes.win_gravity = whichgrav[which]; if (GRV.SpecialResizePointers) attributes.cursor = GRV.CornerPointers[which]; else attributes.cursor = GRV.ResizePointer; valuemask = CWEventMask | CWWinGravity | CWCursor; win = ScreenCreateWindow(par->core.client->scrInfo, par->core.self, x, y, Resize_width, Resize_height, valuemask, &attributes); /* create the associated structure */ w = MemNew(WinResize); w->core.self = win; w->class = &classResize; w->core.kind = WIN_RESIZE; WinAddChild(par,w); w->core.children = NULL; w->core.client = par->core.client; w->core.x = x; w->core.y = y; w->core.width = Resize_width; w->core.height = Resize_height; w->core.dirtyconfig = CWX | CWY | CWWidth | CWHeight; w->core.exposures = NULL; w->which = which; w->core.helpstring = "olwm:ResizeCorner"; /* register the window */ WIInstallInfo(w); MapRaised(w); return w; } /* ResizeInit -- initialise values for the resize class */ void /* ARGSUSED */ ResizeInit(dpy) Display *dpy; { classResize.core.kind = WIN_RESIZE; classResize.core.xevents[Expose] = WinEventExpose; classResize.core.xevents[ButtonPress] = eventButtonPress; classResize.core.focusfunc= focusResize; classResize.core.drawfunc= drawResize; classResize.core.destroyfunc = destroyResize; classResize.core.selectfunc = NULL; classResize.core.newconfigfunc = WinNewConfigFunc; classResize.core.newposfunc = WinNewPosFunc; classResize.core.setconfigfunc = WinSetConfigFunc; classResize.core.createcallback = NULL; classResize.core.heightfunc = heightfuncResize; classResize.core.widthfunc = widthfuncResize; } xview-3.2p1.4/clients/olvwm-4.1/winroot.c100644 1750 1750 41746 5515337335 15441 0ustar mbmb/* * (c) Copyright 1989, 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifdef IDENT #ident "@(#)winroot.c 1.4 olvwm version 07 Jan 1994" #endif /* * Based on #ident "@(#)winroot.c 26.60 93/06/28 SMI" * */ #include #include #include #include #include #include #include "i18n.h" #include #include "ollocale.h" #include "mem.h" #include "olwm.h" #include "win.h" #include "menu.h" #include "globals.h" #include "group.h" #include "events.h" #include "virtual.h" #include "error.h" /*************************************************************************** * global data ***************************************************************************/ extern Time SelectionTime; extern Atom AtomSunReReadMenuFile; extern Atom AtomSunWMProtocols; extern Atom AtomSunWindowState; extern Atom AtomSunOLWinAttr5; extern Bool DoingWindowState; /*************************************************************************** * private data ***************************************************************************/ static ClassRoot classRoot; /*************************************************************************** * private functions ***************************************************************************/ static Window findLeafWindow(dpy,win,srcx,srcy,dstx,dsty) Display *dpy; Window win; int srcx,srcy; int *dstx,*dsty; { Window childwin,dstwin,srcwin; srcwin = dstwin = win; while (1) { XTranslateCoordinates(dpy,srcwin,dstwin,srcx,srcy, dstx,dsty,&childwin); if (childwin == None) break; srcx = *dstx; srcy = *dsty; srcwin = dstwin; dstwin = childwin; } return dstwin; } static void redistributeKeystroke(dpy,key,dstwin,dstx,dsty ) Display *dpy; XKeyEvent *key; Window dstwin; int dstx,dsty; { static Bool pressreceived = False; static XKeyEvent pressevent; Window childwin; if (key->type == KeyPress) { if (pressreceived == False) { pressevent = *key; pressevent.x = dstx; pressevent.y = dsty; pressevent.window = dstwin; pressevent.subwindow = None; XSendEvent( dpy, pressevent.window, True, KeyPressMask, (XEvent *)&pressevent ); pressreceived = True; } } else { if (key->window != pressevent.window) { XTranslateCoordinates(dpy,key->window,pressevent.window, key->x,key->y,&dstx,&dsty,&childwin ); key->window = pressevent.window; key->x = dstx; key->y = dsty; } key->subwindow = None; XSendEvent(dpy,pressevent.window,True, KeyPressMask,(XEvent *)key); if (key->type == KeyRelease) pressreceived = False; } } /* * HandleHelpKey - Figure out what window should really get the Help key. * If it's not an olwm window or a pane window then send the key event * onto that window. If it's an olwm window then bring up the help * info window with the window kind specific help. If it is a * WIN_ROOT window we need to use key->root since it is the root * window that the pointer was on when the event happened while * key->window is the window that the grab was made on. */ void HandleHelpKey(dpy, pEvent) Display *dpy; XEvent *pEvent; { static WinGeneric *olwmWin = (WinGeneric *)0; XKeyEvent *key = (XKeyEvent *)pEvent; static Window dstwin = None; int dstx,dsty; if (key->type == KeyPress) { dstwin = findLeafWindow(dpy,key->window, key->x_root,key->y_root,&dstx,&dsty); olwmWin = WIGetInfo(dstwin); if (!olwmWin) { olwmWin = VGetInfo(dstwin); if (olwmWin && olwmWin->core.client) olwmWin = (WinGeneric *) olwmWin->core.client->scrInfo->vdm->client->framewin->fcore.panewin; } /* send the help key to the client window */ if (olwmWin == NULL || olwmWin->core.helpstring == NULL) { redistributeKeystroke(dpy,key,dstwin,dstx,dsty); olwmWin = (WinGeneric *)0; /* find out which root window is really happened on */ } else if (olwmWin->core.kind == WIN_ROOT) { if (dstwin != key->root) olwmWin = WIGetInfo(key->root); WinShowHelp(dpy,olwmWin,key->x_root,key->y_root); /* it belongs to a decoration window (frame/resize/whatever) */ } else { WinShowHelp(dpy,olwmWin,key->x_root,key->y_root); } } else { /* if KeyRelease */ if (olwmWin == NULL && dstwin != None) redistributeKeystroke(dpy,key,dstwin,0,0); dstwin = None; } } static Bool matchKeystrokeToSpec(event,spec) XEvent *event; KeySpec *spec; { return (spec->keycode == event->xkey.keycode && (spec->modmask == AnyModifier || spec->modmask == event->xkey.state)); } /*************************************************************************** * event functions ***************************************************************************/ /* * eventEnterNotify - the pointer has entered the root window * Ignore events whose detail is NonlinearVirtual, because the pointer has * crossed through the root window into a child window, and we will get the * EnterNotify for that child window. */ static int eventEnterNotify(dpy, pEvent, winInfo) Display *dpy; XEvent *pEvent; WinRoot *winInfo; { if (pEvent->xcrossing.detail == NotifyNonlinearVirtual) return; ColorWindowCrossing(dpy, pEvent, winInfo); if (GRV.FocusFollowsMouse) NoFocusTakeFocus(dpy, pEvent->xcrossing.time, winInfo->core.client->scrInfo); } /* * eventConfigureRequest - a client wants to change configuration */ static int /* ARGSUSED */ eventConfigureRequest(dpy, pEvent, winInfo) Display *dpy; XEvent *pEvent; WinRoot *winInfo; { WinGeneric *clientInfo; #define ConfEvent (pEvent->xconfigurerequest) if ((clientInfo = WIGetInfo(ConfEvent.window)) == NULL) { /* we don't know about this window, so let it go */ ClientConfigure(NULL,NULL,pEvent); } else /* OBSOLETE: if (ConfEvent.value_mask & (CWX | CWY | CWWidth | CWHeight)) */ { /* configure the window and its frame */ ClientConfigure(clientInfo->core.client,clientInfo,pEvent); } /* REMIND doesn't handle stacking or border width yet */ } /* * eventMapRequest - a new client is mapping */ static int eventMapRequest(dpy, pEvent, winInfo) Display *dpy; XEvent *pEvent; WinRoot *winInfo; { #ifdef GPROF_HOOKS moncontrol(1); #endif /* GPROF_HOOKS */ StateNew(dpy,winInfo->core.self,pEvent->xmaprequest.window,False,NULL); #ifdef GPROF_HOOKS moncontrol(0); #endif /* GPROF_HOOKS */ } static void selectInBox(dpy, winInfo, boxX, boxY, boxW, boxH, timestamp, closure) Display *dpy; WinRoot *winInfo; int boxX, boxY; unsigned int boxW, boxH; Time timestamp; void *closure; { ClientInBoxClosure cibclosure; int fuzz = GRV.SelectionFuzz; /* * Apply selectFunc to all clients in the box. * Widen the box slightly to make selections easier. */ cibclosure.dpy = dpy; cibclosure.screen = WinScreen(winInfo); cibclosure.func = (int (*)()) closure; cibclosure.bx = boxX - fuzz; cibclosure.by = boxY - fuzz; cibclosure.bw = boxW + 2 * fuzz; cibclosure.bh = boxH + 2 * fuzz; cibclosure.timestamp = timestamp; ListApply(ActiveClientList, ClientInBox, &cibclosure); } /* * eventMotionNotify - the pointer is moving */ static int eventMotionNotify(dpy, pEvent, winInfo) Display *dpy; XEvent *pEvent; WinRoot *winInfo; { int (*selectFunc)(); if (!pEvent->xmotion.same_screen) return; /* If the user hasn't moved more than the threshold * amount, break out of here. REMIND Also, if we get a * MotionNotify event with no buttons down, we ignore it. * Ideally this shouldn't happen, but some areas of the code * still leave the pointer grabbed even after all the buttons * have gone up. */ if ((ABS(pEvent->xmotion.x - winInfo->buttonPressEvent.xbutton.x) < GRV.MoveThreshold) && (ABS(pEvent->xmotion.y - winInfo->buttonPressEvent.xbutton.y) < GRV.MoveThreshold)) return; if (pEvent->xmotion.state == 0) return; /* * On Select: Clear existing selected clients and add new ones * On Adjust: Toggle selections on/off */ switch(winInfo->currentAction) { case ACTION_SELECT: ClearSelections(dpy); selectFunc = AddSelection; break; case ACTION_ADJUST: selectFunc = ToggleSelection; break; default: selectFunc = NULL; break; } if (selectFunc) TraceRootBox(dpy, winInfo, &(winInfo->buttonPressEvent), selectInBox, selectFunc); } /* * eventButtonRelease - handle a click in the root. * * If the user clicks in the window, the focus is set to the no-focus window, * and the PRIMARY and SECONDARY selections are acquired and nulled. */ static int eventButtonRelease(dpy, pEvent, winInfo) Display *dpy; XEvent *pEvent; WinRoot *winInfo; { if (!AllButtonsUp(pEvent)) return; /* * This only happens if we did NOT get a motion notify * after the last button press. */ if (winInfo->currentAction == ACTION_SELECT) { NoFocusTakeFocus(dpy,pEvent->xbutton.time, winInfo->core.client->scrInfo); ClearSelections(dpy); XSetSelectionOwner(dpy, XA_PRIMARY, None, pEvent->xbutton.time); XSetSelectionOwner(dpy, XA_SECONDARY, None, pEvent->xbutton.time); SelectionTime = pEvent->xbutton.time; } winInfo->currentAction = ACTION_NONE; } /* * eventButtonPress - handle a button press. If the WMGRAB modifier is down, * we've received this event by virtue of a passive, synchronous button grab * on the root. We need to (1) propagate the event to the window underneath, * if it's a frame or an icon, (2) unfreeze the pointer either by regrabbing * or by issuing an AllowEvents request, and (3) ungrab the pointer if the * child's handler didn't issue a grab of its own. */ static int eventButtonPress(dpy, pEvent, winInfo) Display *dpy; XEvent *pEvent; WinRoot *winInfo; { SemanticAction a; WinGeneric *child; if (pEvent->xbutton.state & ModMaskMap[MOD_WMGRAB]) { /* redistribute to child */ if (pEvent->xbutton.subwindow != NULL && (child = WIGetInfo(pEvent->xbutton.subwindow)) != NULL && (child->core.kind == WIN_FRAME || child->core.kind == WIN_ICON) && (GrabSuccess == XGrabPointer(dpy, child->core.self, False, ButtonPressMask | ButtonMotionMask | ButtonReleaseMask, GrabModeAsync, GrabModeAsync, None, None, pEvent->xbutton.time))) { PropagatePressEventToChild(dpy, pEvent, child); return; } /* * If the window under the pointer isn't a frame or icon, or if we * failed to grab the pointer, simply unfreeze the pointer and try * to process the event normally. */ XAllowEvents(dpy, AsyncBoth, pEvent->xbutton.time); } a = ResolveMouseBinding(dpy, pEvent, ModMaskMap[MOD_CONSTRAIN]); winInfo->buttonPressEvent = *pEvent; switch (a) { case ACTION_MENU: RootMenuShow(dpy, winInfo, pEvent); /* FALL THRU */ case ACTION_SELECT: case ACTION_ADJUST: winInfo->currentAction = a; break; } } /* * eventKeyPressRelease - a keystroke has happened in the root window */ static int /* ARGSUSED */ eventKeyPressRelease(dpy, pEvent, winInfo) Display *dpy; XEvent *pEvent; WinRoot *winInfo; { extern Bool ExecuteKeyboardFunction(); Bool isbound; isbound = ExecuteKeyboardFunction(dpy, pEvent); if (!isbound && GRV.ArrowInRoot) isbound = KeyMoveVDM(dpy, pEvent); if (!isbound && pEvent->type == KeyPress) KeyBeep(dpy,pEvent); } /* * eventPropertyNotify - a root property has changed */ static int /* ARGSUSED */ eventPropertyNotify(dpy, pEvent, winInfo) Display *dpy; XEvent *pEvent; WinRoot *winInfo; { unsigned long nitems, remain; char *resourceString; /* make sure that the property was the one we care about and * changed (as opposed to deleted) */ if ((pEvent->xproperty.atom != XA_RESOURCE_MANAGER) || (pEvent->xproperty.state != PropertyNewValue)) return; UpdateGlobals(dpy); } /* * eventClientMessage - a client message has been sent to the root window */ static int eventClientMessage(dpy, pEvent, winInfo) Display *dpy; XEvent *pEvent; WinRoot *winInfo; { if (pEvent->xclient.message_type == AtomSunReReadMenuFile) { ReInitAllUserMenus(dpy); } } /* * eventUnmapNotify - an unreparented pane is going away */ static int /* ARGSUSED */ eventUnmapNotify(dpy, pEvent, winInfo) Display *dpy; XEvent *pEvent; WinRoot *winInfo; { WinGeneric *wg; extern Time TimeFresh(); wg = WIGetInfo(pEvent->xunmap.window); if (wg != NULL) { StateWithdrawn(wg->core.client, TimeFresh()); } } /* * destroyRoot -- destroy the root window resources and free any allocated * data. */ static int destroyRoot(dpy, winInfo) Display *dpy; WinRoot *winInfo; { /* delete the _SUN_WM_PROTOCOLS property */ XDeleteProperty(dpy,winInfo->core.self,AtomSunWMProtocols); /* delete the WM_ICON_SIZE property */ XDeleteProperty(dpy,winInfo->core.self,XA_WM_ICON_SIZE); /* free our data and throw away window */ WIUninstallInfo(winInfo->core.self); MemFree(winInfo); } /* * writeProtocols - write the _SUN_WM_PROTOCOLS property on the root win, * which advertises the capabilities of the window manager. */ static void writeProtocols(dpy,rootwin) Display *dpy; Window rootwin; { unsigned int data[10]; int nitems = 0; /* conditionally support the _SUN_WINDOW_STATE protocol */ if (DoingWindowState) data[nitems++] = AtomSunWindowState; /* support 5-word-long _OL_WIN_ATTR property */ data[nitems++] = AtomSunOLWinAttr5; if (nitems == 0) return; XChangeProperty(dpy,rootwin,AtomSunWMProtocols,XA_ATOM,32, PropModeReplace,(unsigned char *)data,nitems); } /* * writeIconSize - write the WM_ICON_SIZE property on the root window. */ static void writeIconSize(dpy,rootwin) Display *dpy; Window rootwin; { XIconSize iconSize; iconSize.min_width = ICON_MIN_WIDTH; iconSize.min_height = ICON_MIN_HEIGHT; iconSize.max_width = ICON_MAX_WIDTH; iconSize.max_height = ICON_MAX_HEIGHT; iconSize.width_inc = ICON_WIDTH_INC; iconSize.height_inc = ICON_HEIGHT_INC; XSetIconSizes(dpy,rootwin,&iconSize,1); } /*************************************************************************** * global functions ***************************************************************************/ /* * MakeRoot -- create the root window. Return a WinGeneric structure. */ WinRoot * MakeRoot(dpy, cli) Display *dpy; Client *cli; { XWindowAttributes attr; WinRoot *w; Window win; win = cli->scrInfo->rootid; /* * Tell the server we need to get mapping requests. * ErrorSensitive will force an exit if this fails * (ie another window manager is running). * * REMIND: instead of exiting, MakeRoot should probably just * return NULL, and callers to MakeRoot should check the return * value. */ ErrorSensitive( GetString("Perhaps there is another window manager running?")); XSelectInput(dpy,win, KeyPressMask | SubstructureRedirectMask | ButtonPressMask | ButtonReleaseMask | ButtonMotionMask | EnterWindowMask | PropertyChangeMask | OwnerGrabButtonMask); XSync(dpy, False); ErrorInsensitive(dpy); if (XGetWindowAttributes(dpy, win, &attr) == 0) { ErrorGeneral(GetString("Could not get attributes of root window")); /*NOTREACHED*/ } /* mark the client as olwm owned */ cli->flags = CLOlwmOwned; /* create the associated structure */ w = MemNew(WinRoot); w->core.self = win; w->class = &classRoot; w->core.kind = WIN_ROOT; w->core.parent = NULL; w->core.children = NULL; w->core.client = cli; w->core.x = 0; w->core.y = 0; w->core.width = attr.width; w->core.height = attr.height; w->core.dirtyconfig = False; w->core.colormap = cli->scrInfo->colormap; w->core.exposures = NULL; w->core.helpstring = "olwm:Workspace"; w->currentAction = ACTION_NONE; /* Write properties on the root window */ writeProtocols(dpy,win); writeIconSize(dpy,win); /* register the window */ WIInstallInfo((WinGeneric *)w); return w; } /* * RootInit - init the WinRoot class function vector */ void /* ARGSUSED */ RootInit(dpy) Display *dpy; { classRoot.core.kind = WIN_ROOT; classRoot.core.xevents[ClientMessage] = eventClientMessage; classRoot.core.xevents[ConfigureRequest] = eventConfigureRequest; classRoot.core.xevents[EnterNotify] = eventEnterNotify; classRoot.core.xevents[MapRequest] = eventMapRequest; classRoot.core.xevents[MotionNotify] = eventMotionNotify; classRoot.core.xevents[ButtonRelease] = eventButtonRelease; classRoot.core.xevents[ButtonPress] = eventButtonPress; classRoot.core.xevents[KeyPress] = eventKeyPressRelease; classRoot.core.xevents[KeyRelease] = eventKeyPressRelease; classRoot.core.xevents[PropertyNotify] = eventPropertyNotify; classRoot.core.xevents[UnmapNotify] = eventUnmapNotify; classRoot.core.focusfunc = NULL; classRoot.core.drawfunc = NULL; classRoot.core.destroyfunc = destroyRoot; classRoot.core.selectfunc = NULL; classRoot.core.newconfigfunc = NULL; classRoot.core.newposfunc = NULL; classRoot.core.setconfigfunc = NULL; classRoot.core.createcallback = NULL; classRoot.core.heightfunc = NULL; classRoot.core.widthfunc = NULL; } xview-3.2p1.4/clients/olvwm-4.1/cmdstream.h100644 1750 1750 2456 5515337656 15705 0ustar mbmb#ifdef IDENT #ident "@(#)cmdstream.h 26.9 93/06/28 SMI" #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_CMDSTREAM_H #define _OLWM_CMDSTREAM_H #ifndef TRUE #define TRUE 1 #endif #ifndef FALSE #define FALSE 0 #endif /* ---------------------------------------------------------------------- * Command Data Structures * ---------------------------------------------------------------------*/ typedef enum _AttrType { INT, FLOAT, STRING } AttrType; typedef union _AttrValue { int ival; float fval; char *sval; } AttrValue; typedef struct _CmdAttr { char *name; AttrType type; AttrValue value; } CmdAttr; typedef struct _Command { char *keyword; void (*callback)(); int attrLen; CmdAttr *attrList; } Command; /* ---------------------------------------------------------------------- * Function Definitions * ---------------------------------------------------------------------*/ extern void SetCmdStream(/* FILE *instream, FILE * outstream */); extern int SendCmd(/* Command* cmd */); extern void RegisterCmd(/* Command *cmd */); extern int GetCmd(); extern int ParseCmd(/* char *line */); #endif /* _OLWM_CMDSTREAM_H */ xview-3.2p1.4/clients/olvwm-4.1/cursors.h100644 1750 1750 374 5515337657 15404 0ustar mbmb#ifndef _OLWM_LBL_CURSORS_H #define _OLWM_LBL_CURSORS_H #ifdef IDENT #ident "@(#)cursors.h 1.2 olvwm version 25 Nov 1992" #endif extern void InitCursors( /* Display *, ScreenInfo * */ ); extern void updateCursors( /* Display *, char * */ ); #endif xview-3.2p1.4/clients/olvwm-4.1/debug.h100644 1750 1750 576 5515337657 14776 0ustar mbmb#ifdef IDENT #ident "@(#)debug.h 1.4 93/06/28 SMI" #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_DEBUG_H #define _OLWM_DEBUG_H extern void DebugEvent(); extern void DebugWindow(); #endif /* _OLWM_DEBUG_H */ xview-3.2p1.4/clients/olvwm-4.1/defaults.h100644 1750 1750 670 5515337657 15512 0ustar mbmb#ifdef IDENT #ident "@(#)defaults.h 26.16 93/06/28 SMI" #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_DEFAULTS_H #define _OLWM_DEFAULTS_H extern void GetDefaults(); extern XrmDatabase GetUserDefaults(); extern XrmDatabase GetAppDefaults(); #endif /* _OLWM_DEFAULTS_H */ xview-3.2p1.4/clients/olvwm-4.1/dsdm.h100644 1750 1750 1112 5515337657 14642 0ustar mbmb#ifdef IDENT #ident "@(#)dsdm.h 1.3 93/06/28" #endif /* * (c) Copyright 1992 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_DSDM_H #define _OLWM_DSDM_H /* constants */ #define DND_VERSION 0 #define DND_INTEREST_RECT 0 #define DND_INTEREST_WINDOW 1 #define DND_SITE_DEFAULT (1<<2) #define DND_SITE_FORWARD (1<<3) /* public functions */ extern void DragDropStartDSDM(); extern void DragDropStopDSDM(); extern void DragDropInit(); #endif /* _OLWM_DSDM_H */ xview-3.2p1.4/clients/olvwm-4.1/environ.h100644 1750 1750 602 5515337657 15356 0ustar mbmb#ifdef IDENT #ident "@(#)environ.h 1.8 93/06/28 SMI" #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_ENVIRON_H #define _OLWM_ENVIRON_H extern char **MakeEnviron(/* ScreenInfo *scrInfo */); #endif /* _OLWM_ENVIRON_H */ xview-3.2p1.4/clients/olvwm-4.1/error.h100644 1750 1750 1347 5515337660 15050 0ustar mbmb#ifdef IDENT #ident "@(#)error.h 1.4 93/06/28 SMI" #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_ERROR_H #define _OLWM_ERROR_H #include #ifdef __STDC__ extern void ErrorSensitive(char *s); extern void ErrorInsensitive(Display *dpy); extern int ErrorHandler(Display *dpy, XErrorEvent *event); extern void ErrorGeneral(char *txt); extern void ErrorWarning(char *txt); #else extern void ErrorSensitive(); extern void ErrorInsensitive(); extern int ErrorHandler(); extern void ErrorGeneral(); extern void ErrorWarning(); #endif #endif /* _OLWM_ERROR_H */ xview-3.2p1.4/clients/olvwm-4.1/events.h100644 1750 1750 12434 5515337660 15242 0ustar mbmb/* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifndef _OLWM_EVENT_H #define _OLWM_EVENT_H #ifdef IDENT #ident "@(#)events.h 1.4 olvwm version 07 Jan 1994" #endif /* * Based on #ident "@(#)events.h 26.19 93/06/28 SMI" * */ /* * Define InterposerFunc to be a pointer to an interposer function. */ typedef int (*InterposerFunc)(); /* global functions */ extern void EventLoop(); extern int PropagateEventToParent(); extern void PropagatePressEventToChild(); extern Time LastEventTime; extern Bool AwaitEvents(); extern void GrabKeys(); extern void RefreshKeyGrabs(); extern void GrabButtons(); extern void RefreshButtonGrabs(); extern Bool UpdateBindings(); extern void InitEvents(); extern void InitBindings(); /* interposition */ extern void InstallInterposer(); extern void UninstallInterposer(); extern InterposerFunc InterposerInstalled(); extern void EnableInterposerDelegation(); enum { DISPOSE_DISPATCH, DISPOSE_USED, DISPOSE_DEFER }; /* keyboard mapping */ extern KeySym *KbdMap; extern int MinKeyCode; extern int MaxKeyCode; extern int KeySymsPerKeyCode; /* modifiers and modifier masks */ enum { MOD_CONSTRAIN, MOD_WMGRAB, MOD_REDUCE, MOD_INVERT, MOD_SETDEFAULT, MOD_IGNORE, MOD_MASK_COUNT /* must be last */ }; extern unsigned int ModMaskMap[MOD_MASK_COUNT]; extern unsigned int FindModifierMask(); /* mouse binding match states */ typedef enum { MATCH_NONE, /* no binding matches at all */ MATCH_INCOMPLETE, /* partial match */ MATCH_AMBIG, /* more than one exact match */ MATCH_PREFIX, /* exact match, but also a prefix for another */ MATCH_EXACT /* exact match, not a prefix */ } MouseMatchState; /* semantic actions */ typedef enum { ACTION_NONE, ACTION_SELECT, ACTION_ADJUST, ACTION_MENU, ACTION_HELP, ACTION_STOP, ACTION_FRONT, ACTION_OPEN, ACTION_EXEC_DEFAULT, ACTION_FOCUS_HELP, ACTION_SET_DEFAULT, ACTION_UP, ACTION_DOWN, ACTION_LEFT, ACTION_RIGHT, ACTION_JUMP_UP, ACTION_JUMP_DOWN, ACTION_JUMP_LEFT, ACTION_JUMP_RIGHT, ACTION_ROW_START, ACTION_ROW_END, ACTION_DATA_START, ACTION_DATA_END, ACTION_FIRST_CONTROL, ACTION_LAST_CONTROL, ACTION_TOGGLE_PIN, ACTION_CANCEL, /* REMIND does this differ from STOP? */ ACTION_NEXT_ELEMENT, ACTION_PREVIOUS_ELEMENT, /* actions for menu accelerators */ ACTION_REFRESH, ACTION_BACK, ACTION_OPEN_CLOSE, ACTION_FULL_RESTORE, ACTION_QUIT, ACTION_OWNER, ACTION_MOVE, ACTION_RESIZE, ACTION_PROPS, /* actions for virtual desktop */ ACTION_UP_V, ACTION_DOWN_V, ACTION_LEFT_V, ACTION_RIGHT_V, ACTION_UPLEFT_V, ACTION_UPRIGHT_V, ACTION_DOWNLEFT_V, ACTION_DOWNRIGHT_V, ACTION_HOME_V, ACTION_UPLEFT, ACTION_UPRIGHT, ACTION_DOWNLEFT, ACTION_DOWNRIGHT, ACTION_HOME, ACTION_JUMP_UPLEFT, ACTION_JUMP_UPRIGHT, ACTION_JUMP_DOWNLEFT, ACTION_JUMP_DOWNRIGHT, ACTION_HALF_UP, ACTION_HALF_DOWN, ACTION_HALF_LEFT, ACTION_HALF_RIGHT, ACTION_HALF_UPLEFT, ACTION_HALF_UPRIGHT, ACTION_HALF_DOWNLEFT, ACTION_HALF_DOWNRIGHT, ACTION_GOTO_1, ACTION_GOTO_2, ACTION_GOTO_3, ACTION_GOTO_4, ACTION_GOTO_5, ACTION_GOTO_6, ACTION_GOTO_7, ACTION_GOTO_8, ACTION_GOTO_9, ACTION_GOTO_10, ACTION_VIRTUAL, ACTION_STICK } SemanticAction; /* key bindings */ typedef struct { char *rsrc_name; char *dflt_binding; void (*function)(); SemanticAction action; unsigned long flags; } KeyDescriptor; /* values for KeyDescriptor flags */ #define KD_IMMUNE (1<<0) /* immune to suspension */ #define KD_SUNVIEW (1<<1) /* active if mouseless == SunView */ #define KD_BASIC (1<<2) /* active if mouseless == basic */ #define KD_FULL (1<<3) /* active if mouseless == full */ #define KD_MENU_ACCEL (1<<4) /* is a menu accelerator */ #define KD_VIRTUAL (1<<5) /* active if VirtualGrabKeys == True */ #define KD_BASIC_FULL (KD_BASIC | KD_FULL) #define KD_ALWAYS (KD_SUNVIEW | KD_BASIC_FULL) typedef struct _keyBinding { unsigned int modstate; KeyCode keycode; KeyDescriptor *desc; } KeyBinding; extern KeyBinding *LookupKeyBinding(/* SemanticAction */); extern KeySym ModifierToKeysym(); /* convert a button number to a button mask */ #define ButtonToMask(b) (1<<(b+7)) #define AnyButtonMask \ (Button1Mask|Button2Mask|Button3Mask|Button4Mask|Button5Mask) /* given a ButtonRelease event, determines whether all buttons are now up. */ #define AllButtonsUp(e) \ (!((e)->xbutton.state & ~ButtonToMask((e)->xbutton.button) & AnyButtonMask)) /* given a ButtonPress event, determine whether it's the first button down. */ #define FirstButtonDown(e) \ (((e)->xbutton.state & AnyButtonMask) == 0) /* timeouts */ typedef void (*TimeoutFunc)(); extern void TimeoutRequest(); /* int time, TimeoutFunc f, void *closure */ extern void TimeoutCancel(); /* no params */ /* * declared in evbind.c */ extern Bool mouselessSuspended; #endif /* _OLWM_EVENT_H */ xview-3.2p1.4/clients/olvwm-4.1/gettext.h100644 1750 1750 2745 5515337660 15406 0ustar mbmb#ifdef IDENT #ident "@(#)gettext.h 1.7 93/06/28 SMI" #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_GETTEXT_H #define _OLWM_GETTEXT_H #define DEFAULT_DOMAIN "default" #define DEFAULT_BINDING "/usr/lib/locale\n" #define COOKIE 0xFF #define BINDINGLISTDELIM '\n' #define MAX_VALUE_LEN 2047 #define MAX_DOMAIN_LENGTH 255 #define LC_NAMELEN 255 #include #include #include #include #include #include struct domain_binding { char *domain_name; char *binding; struct domain_binding *nextdomain; }; #include #include #include #include #define MAX_MSG 64 struct struct_mo_info { int message_mid; int message_count; int string_count_msgid; int string_count_msg; int message_struct_size; } ; struct message_struct { int less; int more; int msgid_offset; int msg_offset; }; struct message_so { char *message_so_path; /* name of message shared object */ int fd; /* file descriptor */ struct struct_mo_info *mess_file_info; /* information of message file */ struct message_struct *message_list;/* message list */ char *msg_ids; /* actual message ids */ char *msgs; /* actual messages */ }; #endif /* _OLWM_GETTEXT_H */ xview-3.2p1.4/clients/olvwm-4.1/globals.h100644 1750 1750 14446 5515337660 15366 0ustar mbmb#ifndef _OLWM_GLOBALS_H #define _OLWM_GLOBALS_H /* * (c) Copyright 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifdef IDENT #ident "@(#)globals.h 1.6 olvwm version 07 Jan 1994" #endif /* * Based on #ident "@(#)globals.h 26.45 93/06/28 SMI" * */ #include "list.h" typedef struct { unsigned int modmask; KeyCode keycode; } KeySpec; typedef enum { BeepAlways, BeepNever, BeepNotices } BeepStatus; typedef enum { KbdSunView, KbdBasic, KbdFull } MouselessMode; typedef enum { GridNone, GridInvisible, GridVisible } VirtualGridType; typedef enum { UseNone, UseVDM, UseAll } ImageType; typedef enum { SortYounger, SortAlpha, SortYoungerAll, SortAlphaAll } SortType; typedef struct _globalResourceVariables { char *WindowColor; char *ForegroundColor; char *BackgroundColor; char *BorderColor; WorkspaceStyle WorkspaceStyle; char *WorkspaceColor; char *WorkspaceBitmapFile; char *WorkspaceBitmapFg; char *WorkspaceBitmapBg; Bool ReverseVideo; Bool PaintWorkspace; Bool PointerWorkspace; Bool F3dUsed; Bool F3dFrames; Bool F3dResize; #ifdef OW_I18N_L4 XFontSetInfo TitleFontSetInfo; XFontSetInfo TextFontSetInfo; XFontSetInfo ButtonFontSetInfo; XFontSetInfo IconFontSetInfo; #else XFontStruct *TitleFontInfo; XFontStruct *TextFontInfo; XFontStruct *ButtonFontInfo; XFontStruct *IconFontInfo; #endif XFontStruct *GlyphFontInfo; Cursor BasicPointer; Cursor MovePointer; Cursor BusyPointer; Cursor IconPointer; Cursor ResizePointer; Cursor MenuPointer; Cursor QuestionPointer; Cursor TargetPointer; Cursor PanPointer; Bool FocusFollowsMouse; Text *DefaultWinName; int SaveWorkspaceTimeout; char *SaveWorkspaceCmd; int FlashTime; Bool FShowMenuButtons; /* XXX */ Bool FShowPinnedMenuButtons; /* XXX */ IconPreference IconPlacement; Bool FSnapToGrid; Bool FocusLenience; Bool DragWindow; Bool AutoRaise; int AutoRaiseDelay; Bool PopupJumpCursor; Bool ColorLocked; Bool PPositionCompat; Bool RefreshRecursively; BeepStatus Beep; int EdgeThreshold; int DragRightDistance; int MoveThreshold; int ClickMoveThreshold; int DoubleClickTime; int RubberBandThickness; KeySpec FrontKey; KeySpec HelpKey; KeySpec OpenKey; KeySpec ConfirmKey; KeySpec CancelKey; KeySpec ColorLockKey; KeySpec ColorUnlockKey; List *Minimals; Bool MouseChordMenu; int MouseChordTimeout; Bool SingleScreen; Bool AutoReReadMenuFile; Bool KeepTransientsAbove; Bool TransientsSaveUnder; Bool TransientsTitled; Bool SelectWindows; Bool ShowMoveGeometry; Bool ShowResizeGeometry; Bool InvertFocusHighlighting; Bool RunSlaveProcess; Bool SelectToggleStacking; int FlashCount; char *DefaultIconImage; char *DefaultIconMask; Bool ServerGrabs; int IconFlashCount; Bool SelectDisplaysMenu; int SelectionFuzz; Bool AutoInputFocus; Bool AutoColorFocus; Bool ColorTracksInputFocus; int IconFlashOnTime; int IconFlashOffTime; MouselessMode Mouseless; Bool RaiseOnActivate; Bool RestackWhenWithdraw; Bool BoldFontEmulation; Bool RaiseOnMove; Bool RaiseOnResize; Bool StartDSDM; int WindowCacheSize; Bool MenuAccelerators; Bool WindowMenuAccelerators; #ifdef OW_I18N_L3 OLLCItem LC[OLLC_LC_MAX]; char *CharacterSet; #endif /* OW_I18N_L3 */ /* Following are three entries are strictly for debugging purposes and * are not mentioned in the usage message or doc. * Orphaned events are events that are associated with a window or frame * has no entry in the frame hash table, or events that are not handled by the * various event handlers. * 'PrintAll' is useful for when verification of an events existance is needed. */ Bool PrintOrphans; Bool PrintAll; Bool Synchronize; Bool PrintWarnings; /* * Following are entries for the Virtual Desktop. */ char *VirtualDesktop; int VDMScale; Bool AllowMoveIntoDesktop; Bool ArrowInRoot; char *VirtualGeometry; char *VirtualFontName; char *VirtualBackgroundMap; char *VirtualBackgroundColor; int MaxMapColors; char *VirtualPixmapColor; char *VirtualIconGeometry; char *VirtualForegroundColor; char *VirtualFontColor; Bool VirtualIconic; List *StickyList; Bool UseRelativePosition; Bool GrabVirtualKeys; VirtualGridType VirtualGrid; char *VirtualGridColor; Bool VirtualRaiseVDM; Bool StickyIcons; Bool StickyIconScreen; Bool VirtualMoveGroups; Bool VirtualReRead; Bool AllowSyntheticEvents; Bool SyntheticEvents; List *NoVirtualKey; List *NoVirtualLKey; List *NoVirtualFKey; List *NoVirtualRKey; Bool VirtualDrawSticky; Bool ParentScreenPopup; /* * Following are entries added with olvwm but which aren't strictly * dependent on the virtual nature of olvwm */ Bool AutoShowRootMenu; int AutoRootMenuX; int AutoRootMenuY; char *InputFocusColor; Bool FullSizeZoomX; List *NoDecors; char *ResizePosition; ImageType UseImageMenu; SortType VirtualMenuSort; SortType VirtualDirSort; Bool FreeIconSlots; int IconGridHeight; int IconGridWidth; Bool UniqueIconSlots; /* Special resize cursors */ char *SpecialResizePointerData; Bool SpecialResizePointers; Cursor CornerPointers[4]; Cursor ResizePointers[4]; /* Other Cursors */ Cursor CloseUpPointer; Cursor CloseDownPointer; char *BasicPointerData; char *MovePointerData; char *BusyPointerData; char *IconPointerData; char *ResizePointerData; char *MenuPointerData; char *QuestionPointerData; char *TargetPointerData; char *PanPointerData; char *CloseUpPointerData; char *CloseDownPointerData; } GlobalResourceVariables; extern GlobalResourceVariables GRV; #ifdef OW_I18N_L3 /* shortcuts for getting at locale category items */ #define lc_basic LC[OLLC_LC_BASIC_LOCALE] #define lc_dlang LC[OLLC_LC_DISPLAY_LANG] #define lc_ilang LC[OLLC_LC_INPUT_LANG] #define lc_numeric LC[OLLC_LC_NUMERIC] #define lc_datefmt LC[OLLC_LC_DATE_FORMAT] #endif #endif /* _OLWM_GLOBALS_H */ xview-3.2p1.4/clients/olvwm-4.1/group.h100644 1750 1750 3415 5515337661 15052 0ustar mbmb/* * (c) Copyright 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifndef _OLWM_GROUP_H #define _OLWM_GROUP_H #ifdef IDENT #ident "@(#)group.h 26.6 91/09/14 SMI" #endif typedef Window GroupID; typedef void *(*GroupFunc)(/* Client *, void * */); typedef struct _group { GroupID groupid; Client *leader; List *dependents; /* List of Client * */ List *independents; /* List of Client * */ } Group; #define GROUP_LEADER 0x01 #define GROUP_DEPENDENT 0x02 #define GROUP_INDEPENDENT 0x04 extern void GroupInit(); /* initialises the Group package; should be called only once * at startup. */ extern void *GroupApply(); /* GroupID, GroupFunc, void *, mask */ /* applies a function to each part of the group identified in the * mask; as with any apply function, when the function returns * a non-NULL value application stops and that value is returned. */ extern Group *GroupLookup(); /* GroupID */ /* given a GroupID, returns the associated group structure, or NULL * if there is none. */ extern Bool GroupAdd(); /* GroupID, Client *, mask */ /* adds a client to the named group, creating the group if need be. * The kind of client is specified in the mask field. Returns True * if the client was successfully added. */ extern Bool GroupRemove(); /* GroupID, Client * */ /* removes a client from the group. If the group becomes empty * it is deleted. Returns True if the client was successfully deleted. */ extern Bool GroupIsLeader(); /* GroupID, Client * */ /* returns whether a particular client is the leader of * a group */ extern Client *GroupLeader(); /* GroupID */ /* returns the leader of a group */ #endif /* _OLWM_GROUP_H */ xview-3.2p1.4/clients/olvwm-4.1/helpcmd.h100644 1750 1750 1510 5515337661 15324 0ustar mbmb#ifndef _OLWM_HELPCMD_H #define _OLWM_HELPCMD_H /* * (c) Copyright 1989, 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ /* ---------------------------------------------------------------------- * helpcmd.h * ---------------------------------------------------------------------*/ #ifdef IDENT #ident "@(#)helpcmd.h 26.6 91/09/14 SMI" #endif #include "cmdstream.h" #define HW_SCREEN_NO 0 #define HW_MOUSE_X 1 #define HW_MOUSE_Y 2 #define HW_HELPKEY 3 #define HW_ATTR_COUNT 4 static CmdAttr helpCmdAttr[] = { { "SCREEN_NO", INT }, { "MOUSE_X", INT }, { "MOUSE_Y", INT }, { "HELPKEY", STRING } }; static Command helpCommand = { "SHOWHELP", 0, HW_ATTR_COUNT, helpCmdAttr }; #endif /* _OLWM_HELPCMD_H */ xview-3.2p1.4/clients/olvwm-4.1/i18n.h100644 1750 1750 10531 5515337661 14512 0ustar mbmb#ifdef IDENT #ident "@(#)i18n.h 1.26 93/06/28 SMI" #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_I18N_H #define _OLWM_I18N_H #include #include #ifdef OW_I18N_L4 #include #include #include #include #if XlibSpecificationRelease < 5 #include #endif /* XlibSpecificationRelease < 5 */ typedef struct { XFontSet fs; XFontSetExtents *fsx; } XFontSetInfo; extern wchar_t *mbstowcsdup(); #endif /* OW_I18N_L4 */ /* * String/Text - To better handle non-i18n, Level3 and Level4 * we introduce two 'types'; string and text. * * String - really char * - which may be a multibyte string in L4. * - used in printf output * - ie. printf(GetString("msg")); * * Text - Text * type - either char * in L3 or wchar_t * in L4. * - used in output to display via DrawText() or olgx functions * - in L4 entails an allocation of memory for conversion from * multibyte to widechar, so there must be a deallocation * when done with the Text. * - ie: * Text * txt = GetText("msg"); * DrawText(...,txt,TextLen(txt)); * FreeText(txt); * - In non-i18n and L3, FreeText() is a no-op since GetText() * does not allocate memory */ /* * Text Convenience Functions */ #ifdef OW_I18N_L4 typedef wchar_t Text; #define TextCat(t1, t2) wscat((t1), (t2)) #define TextChr(t,c) wschr((t),(wchar_t)(c)) #define TextCmp(t1, t2) wscmp((t1), (t2)) #define TextCpy(t) wscpy((t1),(t2)) #define TextLen(t) wslen((t)) #define TextSPrintf wsprintf #define TextTok(t,s) wstok((t),(s)) #define TextTolower(t) towlower((t)) #else typedef char Text; #define TextCat(t1, t2) strcat((t1), (t2)) #define TextChr(t,c) strchr((t),(c)) #define TextCmp(t1, t2) strcmp((t1), (t2)) #define TextCpy(t) strcpy((t1),(t2)) #define TextLen(t) strlen((t)) #define TextSPrintf sprintf #define TextTok(t,s) strtok((t),(s)) #define TextTolower(t) tolower((t)) #endif /* OW_I18N_L4 */ /* * Font Info and Text Draw Functions */ typedef enum { TitleFont, TextFont, ButtonFont, IconFont } DisplayFont; typedef enum { FontWidthOp, FontHeightOp, FontAscentOp, FontDescentOp } FontInfoOp; extern void DrawText(); extern int FontInfo(); #define FontWidth(font,text,len) FontInfo(font,FontWidthOp,text,len) #define FontHeight(font) FontInfo(font,FontHeightOp,(Text*)0,0) #define FontAscent(font) FontInfo(font,FontAscentOp,(Text*)0,0) #define FontDescent(font) FontInfo(font,FontDescentOp,(Text*)0,0) /* * String/Text Messaging Convenience Functions * * char *GetString(char *) * Returns an internationalized string (perhaps multi-byte). This * string is suitable for printf output. This string must not be * modified or freed. * * Text *GetText(char *) * Returns an internationalized piece of text (perhaps composed of wide * chars). This text is suitable for window system display (e.g. for use * with XDrawText(). This string must be disposed of with FreeText(). * This string should never be hooked into a persistent data structure or * freed with MemFree(). * * void FreeText(Text *) * Frees a string. This string must have come from GetText(). * * Text *GetNewText(char *) * Returns a piece of internationalized text suitable for window system * display. This text is guaranteed to have been allocated from the * heap, and it must be freed eventually with MemFree(). It is thus * suitable for use in persistent data structures. */ #ifdef OW_I18N_L4 extern char *gettext(); #define GetString(s) gettext(s) #define GetText(s) mbstowcsdup(gettext(s)) #define FreeText(s) MemFree(s) #define GetNewText(s) mbstowcsdup(gettext(s)) #elif defined OW_I18N_L3 #ifdef SVR4 extern char *gettext(); #else #define gettext(s) s #endif #define GetString(s) gettext(s) #define GetText(s) gettext(s) #define FreeText(s) #define GetNewText(s) MemNewString(gettext(s)) #else #define GetString(s) s #define GetText(s) s #define FreeText(s) #define GetNewText(s) MemNewString(s) #endif /* * OLGX macros */ #ifdef OW_I18N_L4 #define olgx_main_initialize olgx_i18n_initialize #define TextOLGX OLGX_LABEL_IS_WCS #else #define TextOLGX (0) #endif #endif /* _OLWM_I18N_H */ xview-3.2p1.4/clients/olvwm-4.1/iconimage.h100644 1750 1750 5416 5515337661 15654 0ustar mbmb#ifndef _OLWM_ICONIMAGE_H #define _OLWM_ICONIMAGE_H /* * (c) Copyright 1991 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifdef IDENT #ident "@(#)iconimage.h 26.9 91/09/14 SMI" #endif #define iconimage_width 64 #define iconimage_height 48 static unsigned char iconimage_bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb9, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x5c, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xae, 0x4e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x17, 0x9d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0xab, 0x3a, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x45, 0x94, 0x03, 0x00, 0x00, 0x00, 0x00, 0x64, 0xaa, 0xca, 0x04, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x14, 0xe5, 0x09, 0x00, 0x00, 0x00, 0x00, 0xb9, 0xa9, 0xb2, 0x13, 0x00, 0x00, 0x00, 0x80, 0x5c, 0x53, 0x59, 0x27, 0x00, 0x00, 0x00, 0x40, 0xae, 0xa6, 0xac, 0x4e, 0x00, 0x00, 0x00, 0x20, 0x17, 0x4d, 0x56, 0x9d, 0x00, 0x00, 0x00, 0x90, 0xab, 0x1a, 0xab, 0x3a, 0x01, 0x00, 0x00, 0xc8, 0x45, 0x94, 0x55, 0x75, 0x06, 0x00, 0x00, 0x98, 0xaa, 0xca, 0xaa, 0x2a, 0x09, 0x00, 0x00, 0x30, 0x15, 0xe5, 0x54, 0x95, 0x18, 0x00, 0x00, 0x60, 0xaa, 0xb2, 0xa9, 0x4a, 0x0c, 0x00, 0x00, 0xc0, 0x54, 0x59, 0x53, 0x25, 0x06, 0x00, 0x00, 0x80, 0xa9, 0xac, 0xa6, 0x12, 0x03, 0x00, 0x00, 0x00, 0x53, 0x56, 0x4d, 0x89, 0x01, 0x00, 0x00, 0x00, 0x26, 0xab, 0x9a, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x8c, 0x55, 0x35, 0x62, 0x00, 0x00, 0x00, 0x00, 0xd8, 0xaa, 0x2a, 0x31, 0x00, 0x00, 0x00, 0x00, 0x70, 0x55, 0x95, 0x18, 0x00, 0x00, 0x00, 0x00, 0x60, 0xaa, 0x4a, 0x0c, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x54, 0x25, 0x06, 0x00, 0x00, 0x00, 0x00, 0x80, 0xa9, 0x12, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x53, 0x89, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; #endif /* _OLWM_ICONIMAGE_H */ xview-3.2p1.4/clients/olvwm-4.1/iconmask.h100644 1750 1750 5406 5515337662 15525 0ustar mbmb#ifndef _OLWM_ICONMASK_H #define _OLWM_ICONMASK_H /* * (c) Copyright 1991 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifdef IDENT #ident "@(#)iconmask.h 1.4 91/09/14 SMI" #endif #define iconmask_width 64 #define iconmask_height 48 static unsigned char iconmask_bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; #endif /* _OLWM_ICONMASK_H */ xview-3.2p1.4/clients/olvwm-4.1/kbdfuncs.h100644 1750 1750 3070 5515337662 15513 0ustar mbmb/* * (c) Copyright 1989, 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifndef _OLWM_KBDFUNCS_H #define _OLWM_KBDFUNCS_H #ifdef IDENT #ident "@(#)kbdfuncs.h 1.5 olvwm version 07 Jan 1994" #endif /* * Based on #ident "@(#)kbdfuncs.h 1.8 93/06/28 SMI" * */ extern void KeyBackFocus(); extern void KeyBeep(); extern void KeyFocusToPointer(); extern void KeyRaiseLowerPointer(); extern void KeyFrontFocus(); extern void KeyFullRestore(); extern void KeyLockColormap(); extern void KeyMove(); extern void KeyNextApp(); extern void KeyNextWindow(); extern void KeyOpenClosePointer(); extern void KeyOpenCloseFocus(); extern void KeyOwner(); extern void KeyPrevApp(); extern void KeyPrevWindow(); extern void KeyProperties(); extern void KeyQuit(); extern void KeyRefresh(); extern void KeyResize(); extern void KeyToggleInput(); extern void KeyTogglePin(); extern void KeyUnlockColormap(); extern void KeyWindowMenu(); extern void KeyWorkspaceMenu(); extern void KeyMakeInvisiblePointer(); extern void KeyMakeInvisibleFocus(); extern void KeyMakeVisibleAll(); extern void KeyToggleFullSizeZoomX(); /* Toggle resource FullSizeZoomX. */ extern void KeyToggleDragWindow(); /* Toggle resource DragWindow. */ extern void KeyToggleMoveGroups(); /* Toggle resource VirtualMoveGroups. */ extern void KeyToggleSticky(); /* Toggle Sticky State */ extern void KeySaveWorkspace(); extern void KeyMoveVDM(); extern void AddKeyBinding(); #endif /* _OLWM_KBDFUNCS_H */ xview-3.2p1.4/clients/olvwm-4.1/list.h100644 1750 1750 3307 5515337662 14672 0ustar mbmb/* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifndef _OLWM_LIST_H #define _OLWM_LIST_H #ifdef IDENT #ident "@(#)list.h 26.6 91/09/14 SMI" #endif typedef struct _List { void *value; struct _List *next; } List; #define NULL_LIST ((List *)0) extern void ListInit(); /* initialises the List package; should be called only once * at startup. */ extern List *ListCons(); /* void *val, List *next */ extern int ListCount(); /* List *l */ /* returns number of items in a list */ extern void ListDestroy(); /* List *l */ /* destroys all list cells in a list; does not affect list values */ extern void ListDestroyCell(); /* List **l */ /* deletes one cell from a list; modifies the List* passed by * reference to point to the next cell. */ extern List *ListDestroyCellByValue(); /* void *val, List *l */ /* deletes the given cell from the list and passes back the * (possibly modified) new list */ extern void *ListApply(); /* List *l, (void *)(*f)(), void *c */ /* iteratively calls the function f with list values and the * closure, until it returns a non-NULL value. Returns this non-Null * value, or NULL if hte end of the list is reached. */ extern void *ListEnum(); /* List **l */ /* used for enumerating a list in a loop. Returns the value of the * cell, and modifies the cell pointer to point to the next cell. */ extern Bool ListIsAMebmer(); /* void *val, List *l */ /* used for determining if val is in the given list */ extern void ListReverse(); /* List **l */ /* Reverses the order of items in a list */ #endif /* _OLWM_LIST_H */ xview-3.2p1.4/clients/olvwm-4.1/mem.h100644 1750 1750 2565 5515337662 14502 0ustar mbmb#ifdef IDENT #ident "@(#)mem.h 26.15 93/06/28 SMI" #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_MEM_H #define _OLWM_MEM_H extern void *MemAlloc(); /* malloc frontend */ extern void *MemAllocN(); /* malloc frontend */ extern void *MemCalloc(); /* calloc frontend */ extern void MemFree(); /* free frontend */ extern void *MemRealloc(); /* realloc frontend */ #ifdef MEMDEBUG extern void *d_MemAlloc(); extern void d_MemFree(); extern void *d_MemRealloc(); extern void *d_MemCalloc(); #define MemAlloc(s) d_MemAlloc((s), __FILE__, __LINE__, NULL) #define MemCalloc(n,s) d_MemCalloc((n),(s), __FILE__, __LINE__) #define MemFree(p) d_MemFree(p) #define MemRealloc(p,s) d_MemRealloc((p),(s)) #define MemNew(X) d_MemAlloc(sizeof(X), __FILE__, __LINE__, #X) #define MemNewString(s) (strcpy(d_MemAlloc(strlen(s)+1,__FILE__,__LINE__,"(string)"),s)) extern int MemAcct; extern int AcctTag; #else #define MemNew(t) ((t *)MemAlloc((unsigned int)sizeof(t))) #define MemNewString(s) (strcpy((char *)MemAlloc(strlen(s)+1),s)) #endif MEMDEBUG #ifdef OW_I18N_L4 #define MemNewText(s) wscpy((wchar_t *)MemAlloc((wslen(s)+1)*sizeof(wchar_t)),s) #else #define MemNewText(s) MemNewString((char *)s) #endif OW_I18N_L4 #endif _OLWM_MEM_H xview-3.2p1.4/clients/olvwm-4.1/menu.h100644 1750 1750 22426 6241361454 14677 0ustar mbmb/* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifndef _OLWM_MENU_H #define _OLWM_MENU_H #ifdef IDENT #ident "@(#)menu.h 1.5 olvwm version 09 Feb 1994" #endif /* * Based on #ident "@(#)menu.h 26.35 93/06/28 SMI" * */ #include "events.h" /* constants */ #define NOBUTTON -1 /* no button is active */ #define PINBUTTON -2 /* the pin is active */ #define MENU_NEWSLOT (-1) /* types */ typedef int (*FuncPtr) (); /* * Button Label: a Label may be either a string or a pixmap or both * Items which don't have a type are not active (like the 2nd choice * of a non-toggle item) */ typedef enum {NoType, StringLabel, ImageLabel, ComboLabel} ButtonLabelKind; typedef struct _buttonlabel { ButtonLabelKind kind; Text *string; Pixlabel *pixlabel; } ButtonLabel; /* * Button: describes a single button in a menu. */ typedef struct _button { ButtonLabel label[2]; /* displayed label, alternate label */ char *helpstring[2]; /* help for that button, alternate help */ int which; /* which label to display */ Bool has_submenu; /* tells whether this button has a submenu */ Bool enabled; /* Enabled/Disabled */ Bool visible; /* is this item visible at all? */ FuncPtr callback; /* function to call when item hit */ /* NULL if button has pullright */ SemanticAction semantic; /* semantic action for window menu items */ FuncPtr generate_func; /* If !NULL, called when this button is * hilighted to re-initialize action.submenu */ char *generate_args; /* args for generate function */ union { struct _menu *submenu; /* pointer to the submenu, if has_submenu */ char *command; /* command, if callback is AppMenuFunc */ void *other; /* unspecified */ } action; } Button; /* * Menu: describes a single popup menu. Contains title, pin, list of buttons. */ typedef struct _menu { Text *title; /* the menu's title, NULL if no title */ Button **buttons; /* array of buttons owned by this menu */ int buttonCount; /* size of button array */ int buttonDefault; /* index of dflt button into buttons array */ Bool hasPushPin; Bool menudirty; /* needs size recalced */ char *helpstring; Bool wantAccelerators; /* whether the object on which this menu */ /* appears wants the accelerators */ int btnPerCol; /* Number buttons per column */ int maxLabWidth; /* Maximum label width */ int maxLabHeight; /* Maximum button/label height */ int prefColSize; /* # of preferred columns */ } Menu; #define basewin_openitem 0 #define basewin_zoomitem (basewin_openitem + 1) #define basewin_moveitem (basewin_zoomitem + 1) #define basewin_resizeitem (basewin_moveitem + 1) #define basewin_propsitem (basewin_resizeitem + 1) #define basewin_backitem (basewin_propsitem + 1) #define basewin_refreshitem (basewin_backitem + 1) #define basewin_stickyitem (basewin_refreshitem + 1) #define basewin_quititem (basewin_stickyitem + 1) #define basewin_ctbuttons (basewin_quititem + 1) #define popup_dismissitem 0 #define popup_moveitem (popup_dismissitem + 1) #define popup_resizeitem (popup_moveitem + 1) #define popup_backitem (popup_resizeitem + 1) #define popup_refreshitem (popup_backitem + 1) #define popup_quititem (popup_refreshitem + 1) #define popup_ctbuttons (popup_quititem + 1) #define limit_dismissthisitem 0 #define limit_dismissallitem (limit_dismissthisitem + 1) #define limit_ctbuttons (limit_dismissallitem + 1) /* * Global array of menus * * We need screen specific menus to get pixmaps in them, so this table * has been moved to screen.h extern Menu *MenuTable[NUM_MENUS]; */ extern Bool flDoSetDefault; /*is the ctrl key down (only used in winpinmenu.c)*/ /* * constants used by ShowStandardMenuSync() */ #define SYNC_DONE 0 #define SYNC_CHANGECLICK (SYNC_DONE + 1) /* * The ButtonInfo and MenuInfo structures are created in parallel with the * Button and Menu structures. The info structures have geometry information, * which depends on the fonts currently in use. */ typedef struct _buttonInfo { Button *button; int buttonX, buttonY; int buttonHeight; Bool flDirty; /*damaged*/ Bool framed; /* True if button should be framed */ struct _menuInfo *subMenu; Bool has_accel; /* whether this button shows an accelerator */ Bool has_meta_mark; /* whether accelerator has a diamond mark */ Text *accel_modifier; /* accelerator modifier text */ Text *accel_key; /* the actual accelerator key name */ } ButtonInfo; typedef struct _menuInfo { int depth; Menu *menu; ButtonInfo *buttons; int notitleOffset, buttonOffset; int menuX, menuY, menuWidth, menuHeight; int titleX, titleY, titleHeight, titleWidth; int pushPinX, pushPinY; int maxbuttonWidth; int labelPos, accModPos, buttonMarkPos, accKeyPos; struct _wingeneric *menuWin; struct _menuInfo *origmenuInfo; struct _menuInfo *pinnedBrother; Bool childActive; Bool pinIn; int litButton; Bool ignoreNextExpose; SemanticAction action; int ringedButton; Bool hasAccelerators; int numColumns; Bool hasImages; } MenuInfo; /* * MenuCache: a per-screen cache of menu information. */ typedef struct _menuCache { MenuInfo **menuInfoList; /* dynamic */ int nextSlot; int maxSlots; /* how big is menuInfoList */ struct _winmenu **menuWinList; int maxDepth; } MenuCache; typedef enum _menuTrackMode { MODE_DRAG, /* Press-Drag-Release */ MODE_CLICK /* Click-Move-Click */ } MenuTrackMode; typedef enum _menuLocation { ML_BUTTON, /* On a button */ ML_PIN, /* On the pin */ ML_MENU, /* Elsewhere on the menu */ ML_OFFMENU, /* Outside the menu entirely */ ML_BUTTONDISABLED /*on a disabled button*/ } MenuLocation; #define BUTTON_INDEX_OK(mi,idx) ((idx)>=0 && (idx)<(mi)->menu->buttonCount) #ifdef notdef /* * Default button list */ typedef struct _defaults { char Name[80]; int DefaultButton; MenuInfo *mInfo; struct _defaults *next; } Defaults, *DefaultsP; #endif /* * External functions */ void SetMenuDefault(); Menu *NewNamedMenu(); Bool AppendMenuItem(); Menu *CreateMenu(); Menu *GetEnabledMenu(); MenuInfo *MenuInfoCreate(); void ShowStandardMenu(); void ShowStandardMenuSync(); void SetClickCallback(); extern void InitMenus(); extern MenuCache *InitScreenMenus( /* Display *dpy, ScreenInfo *scrInfo */ ); extern void MenuCreate( /* dpy, menu */ ); extern void MenuShow( /* dpy, WinGeneric, menu, event */ ); extern void SetButton( /* dpy, menu, bindex, Bool */ ); extern void ExecButtonAction( /* dpy, winInfo, menu, btn, Bool */ ); extern void DrawMenu( /* dpy, menu */ ); extern int PointInRect( /* x, y, rx, ry, rw, rh */ ); /* * generically useful region code that happens to live in menu.c */ void InitRegions(); void EmptyRegion(); void RectRegion(); void AppendExposeDamage(); void MakeExposeDamage(); /* * WinMenu Functions (from winmenu.c) */ extern struct _winmenu * MakeMenu( /* Display *dpy, WinRoot *winInfo */ ); extern void MapMenuWindow(/* Display *dpy, WinMenu *winInfo, MenuInfo *menuInfo */ ); extern void UnmapMenuWindow(/* Display *dpy, WinMenu *winInfo, MenuInfo *menuInfo */ ); int MenuEventExpose(); int MenuEventDrawMenu(); SemanticAction MenuMouseAction(/*Display *dpy, XEvent *pevent, long mask*/ ); /* * WinPinMenu Functions (from winpinmenu.c) */ extern struct _winpinmenu * MakePinMenu(/* Display *dpy, WinRoot *winInfo, MenuInfo *menuInfo */ ); /* * macros for setting menu items */ #define DirtyMenu(pmenu) (pmenu)->menudirty = True #define _menuset(p,i,q,x) do { \ Button *pb = p->buttons[i]; \ if (pb->q != (x)) { \ DirtyMenu(p); \ pb->q = (x); \ } \ } while(0) #define ToggleVisible(p,i,x) _menuset(p,i,visible,(x)) #define ToggleItem(p,i,x) _menuset(p,i,which,(((x) == 0)? False : True)) #define ToggleEnabled(p,i,x) _menuset(p,i,enabled,(x)) #define SetMenuTitle(m,t) do { \ if (m->title != t) { \ m->title = t; \ DirtyMenu(m); \ } \ } while (0) /* * This stuff really belongs in the olgx library (in olgx.h, in fact). * But I don't want to ship that whole library, so I put it here and * included only ol_button.c from olgx */ #define OLGX_LABEL_IS_COMB 0x0400 /* Label ix pixmap/string combination */ typedef struct _comblabel { Pixlabel pixlabel; char *strlabel; } Comblabel; /* * eventX, eventY, eventTime * * Extract the xroot, yroot, or timestamp fields from an event, assuming it's * a MotionNotify, ButtonPress, or ButtonRelease. */ #define eventX(e) ((e)->type == MotionNotify ? (e)->xmotion.x_root \ : (e)->xbutton.x_root ) #define eventY(e) ((e)->type == MotionNotify ? (e)->xmotion.y_root \ : (e)->xbutton.y_root ) #define eventTime(e) ((e)->type == MotionNotify ? (e)->xmotion.time \ : (e)->xbutton.time ) #endif xview-3.2p1.4/clients/olvwm-4.1/notice.h100644 1750 1750 1434 5515337663 15200 0ustar mbmb#ifdef IDENT #ident "@(#)notice.h 26.12 93/06/28 SMI" #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_NOTICE_H #define _OLWM_NOTICE_H #define NOTICE_CANCEL (-1) #define NOTICE_BUTTON_COUNT(b) sizeof((b))/sizeof(char *) typedef struct _noticeBox { int numButtons; /* number of buttons */ int defaultButton; /* index into buttonText array */ Text **buttonText; /* array of strings for button text */ Text *msgText; int boxX; /* box origin (-1 =use default/centered) */ int boxY; /* box origin (-1 =use default/centered) */ } NoticeBox; /* function declarations */ extern int UseNoticeBox(); #endif /* _OLWM_NOTICE_H */ xview-3.2p1.4/clients/olvwm-4.1/olcursor.h100644 1750 1750 1156 5515337663 15570 0ustar mbmb#ifdef IDENT #ident "@(#)olcursor.h 26.7 93/06/28 SMI" #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_OLCURSOR_H #define _OLWM_OLCURSOR_H #define OLC_basic 0 #define OLC_move 2 #define OLC_copy 4 #define OLC_busy 6 #define OLC_stop 8 #define OLC_panning 10 #define OLC_target 12 #define OLC_nouse 14 #define OLC_ptr 16 #define OLC_beye 18 #define OLC_rtarr 20 #define OLC_xhair 22 #define OLC_xcurs 24 #define OLC_hourg 26 #endif /* _OLWM_OLCURSOR_H */ xview-3.2p1.4/clients/olvwm-4.1/olgx_impl.h100644 1750 1750 5347 5515337663 15720 0ustar mbmb#ifdef IDENT #ident "@(#)olgx_impl.h 1.14 91/04/09 SMI" #endif /* * Copyright 1990 Sun Microsystems */ /* * OPEN LOOK object drawing package */ #ifndef OL_PRIVATE_DEFINED #define OL_PRIVATE_DEFINED #ifdef OW_I18N /* * I18N_Portability: May need to change the following #include to * pickup the wchar_t and X11R5(-ish) Xlib functions definitions. */ #include #include #endif #include #define STRING_SIZE 128 /* max size of a glyph font string */ #define VARHEIGHT_BUTTON_CORNER_DIMEN 7 #define False 0 #define True 1 /* * OPEN LOOK constant definitions */ /* * Macro definitions */ #define VARIABLE_LENGTH_MACRO(start_pos, offset) \ for (i = 0; i < num_add; i++) { \ string[start_pos+i] = offset + add_ins[i]; \ } typedef struct _per_disp_res_rec { Display * dpy; int screen; GC_rec * gc_list_ptr; Pixmap busy_stipple; Pixmap grey_stipple; struct _per_disp_res_rec * next; } per_disp_res_rec, *per_disp_res_ptr; /* * Definitions used by the color calculation code */ #define XRGB 0xffff #define MAXRGB 0xff #define MAXH 360 #define MAXSV 1000 #define VMUL 12 /* brighten by 20% (12 = 1.2*10) */ #define SDIV 2 /* unsaturate by 50% (divide by 2) */ #define VMIN 400 /* minimum highlight brightness of 40% */ typedef struct { int r, g, b; } RGB; typedef struct { int h, s, v; } HSV; /* * Private function declarations */ int calc_add_ins(); char * olgx_malloc(); void olgx_update_horizontal_slider(); void olgx_update_vertical_slider(); void olgx_update_vertical_gauge(); void olgx_update_horiz_gauge(); void olgx_free(); void olgx_destroy_gcrec(); void olgx_total_gcs(); void olgx_initialise_gcrec(); void olgx_draw_elevator(); void olgx_error(); void olgx_draw_pixmap_label(); void olgx_draw_varheight_button(); Pixmap olgx_get_busy_stipple(); Pixmap olgx_get_grey_stipple(); int gc_matches(); int olgx_cmp_fonts(); GC_rec * olgx_get_gcrec(); GC_rec * olgx_gcrec_available(); GC_rec * olgx_set_color_smart(); Graphics_info * olgx_create_ginfo(); per_disp_res_ptr olgx_get_perdisplay_list(); /* ol_color.c */ void hsv_to_rgb(); void rgb_to_hsv(); void rgb_to_xcolor(); void hsv_to_xcolor(); void xcolor_to_hsv(); void olgx_hsv_to_3D(); #endif !OL_PRIVATE_DEFINED xview-3.2p1.4/clients/olvwm-4.1/ollocale.h100644 1750 1750 2145 5515337664 15512 0ustar mbmb#ifdef IDENT #ident "@(#)ollocale.h 1.10 93/06/28 SMI" #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLLOCALE_H #define _OLLOCALE_H #ifdef OW_I18N_L3 #include /* * OPEN LOOK Locale Categories. Basic Locale must be first item * (least number). */ #define OLLC_LC_BASIC_LOCALE 0 #define OLLC_LC_DISPLAY_LANG 1 #define OLLC_LC_INPUT_LANG 2 #define OLLC_LC_NUMERIC 3 #define OLLC_LC_DATE_FORMAT 4 #define OLLC_LC_MAX 5 /* * The "ISO_LATIN_1" is default character set value * (GRV.CharacterSet), we could choose some other namings (such as * "latin1"), however choose to stay with the XLFD's charset and * encoding. This way we may find other way to utilize this value in * the future. */ #define ISO_LATIN_1 "iso8859-1" typedef struct _OLLCItem { char *locale; int posixCategory; /* Will initialize in GRVLCInit() */ char *envName; /* Will initialize in GRVLCInit() */ } OLLCItem; #endif /* OW_I18N_L3 */ #endif /* _OLLOCALE_H */ xview-3.2p1.4/clients/olvwm-4.1/olwm.h100644 1750 1750 12527 5515337664 14723 0ustar mbmb/* * (c) Copyright 1989, 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifndef _OLWM_OLWM_H #define _OLWM_OLWM_H #ifdef IDENT #ident "@(#)olwm.h 1.5 olvwm version 07 Jan 1994" #endif /* * Based on #ident "@(#)olwm.h 26.27 93/06/28 SMI" * */ #ifndef ABS #define ABS(a) (((a) < 0) ? -(a) : (a)) #endif #ifndef MAX #define MAX(a,b) (((a) > (b)) ? (a) : (b)) #endif #ifndef MIN #define MIN(a,b) ((a) < (b) ? (a) : (b)) #endif /* * path and file name lengths -- if not defined already */ #ifndef MAXPATHLEN #define MAXPATHLEN 1024 #endif #ifndef MAXNAMELEN #define MAXNAMELEN 256 #endif /* Determine the size of an object type in 32bit multiples. * Rounds up to make sure the result is large enough to hold the object. */ #define LONG_LENGTH(a) ((long)(( sizeof(a) + 3 ) / 4)) #define FOOTLEN 50L /* protocols bits */ #define TAKE_FOCUS (1<<0) #define SAVE_YOURSELF (1<<1) #define DELETE_WINDOW (1<<2) /* Workspace Background Styles */ typedef enum { WkspDefault, WkspColor, WkspPixmap } WorkspaceStyle; /* Icon positioning modes */ typedef enum { AlongTop, AlongBottom, AlongRight, AlongLeft, AlongTopRL, AlongBottomRL, AlongRightBT, AlongLeftBT } IconPreference; /* size of icon window */ #define ICON_WIN_WIDTH 60 #define ICON_WIN_HEIGHT 60 #define ICON_GRID_WIDTH (GRV.IconGridWidth) #define ICON_GRID_HEIGHT (GRV.IconGridHeight) /* min/max/inc icon sizes */ #define ICON_MIN_WIDTH 1 #define ICON_MIN_HEIGHT 1 #define ICON_MAX_WIDTH 160 #define ICON_MAX_HEIGHT 160 #define ICON_WIDTH_INC 1 #define ICON_HEIGHT_INC 1 /* minimum window size */ #define MINSIZE 5 /* Globals */ extern char *ProgramName; /* adornment pixmaps */ extern Pixmap pixIcon; extern Pixmap pixmapGray; extern Pixmap pixGray; /* miscellaneous functions */ extern int ExitOLWM(); extern void *GetWindowProperty(); #ifdef OW_I18N_L4 extern void parseApplicationLocaleDefaults(); #endif /* state functions */ extern struct _client *StateNew(); extern void ReparentTree(); extern void StateNormIcon(); extern void StateIconNorm(); extern void StateWithdrawn(); /* root window functions */ extern struct _winroot *MakeRoot(); /* no-focus window information and functions */ extern Window NoFocusWin; extern struct _wingeneric *NoFocusWinInfo; extern struct _wingeneric *MakeNoFocus(); extern void NoFocusTakeFocus(); extern void NoFocusInit(); extern int NoFocusEventBeep(); /* client information and functions */ extern struct _List *ActiveClientList; extern struct _client *ClientCreate(); extern Window ClientPane(); typedef struct _clientinboxclose { Display *dpy; int screen; int (*func)(); short bx, by, bw, bh; Time timestamp; } ClientInBoxClosure; extern void *ClientInBox(); extern void ClientInhibitFocus(); extern void ClientSetFocus(); extern void ClientSetCurrent(); extern struct _client *ClientGetLastCurrent(); extern void ClientActivate(); extern void ClientFocusTopmost(); /* frame functions */ extern struct _winpaneframe *MakeFrame(); extern void FrameSetPosFromPane(); extern void FrameFullSize(); extern void FrameNormSize(); extern void FrameNewFooter(); extern void FrameNewHeader(); extern void FrameSetBusy(); extern void FrameWarpPointer(); extern void FrameUnwarpPointer(); /* generic frame functions */ extern int GFrameFocus(); extern int GFrameSelect(); extern int GFrameSetConfigFunc(); extern void GFrameSetStack(); extern void GFrameSetConfig(); extern int GFrameEventButtonPress(); extern int GFrameEventMotionNotify(); extern int GFrameEventButtonRelease(); extern int GFrameEventFocus(); extern int GFrameEventEnterNotify(); /* icon functions */ extern void IconInit(); extern struct _winiconframe *MakeIcon(); extern void IconChangeName(); extern void DrawIconToWindowLines(); extern void IconShow(); extern void IconHide(); extern void IconSetPos(); extern void IconUnparent(); /* icon pane functions */ extern struct _winiconpane *MakeIconPane(); /* pane functions */ extern struct _winpane *MakePane(); /* pinned menu functions */ extern struct _winmenu *MakeMenu(); /* colormap functions */ extern struct _wingeneric *MakeColormap(); extern void TrackSubwindows(); extern void UnTrackSubwindows(); extern void ColormapInhibit(); extern void InstallColormap(); extern void InstallPointerColormap(); extern void UnlockColormap(); extern void ColorWindowCrossing(); extern struct _wingeneric *ColormapUnhook(); extern void ColormapTransmogrify(); /* selection functions */ extern Bool IsSelected(); extern struct _client *EnumSelections(); extern Time TimeFresh(); extern int AddSelection(); extern Bool RemoveSelection(); extern Bool ToggleSelection(); extern void ClearSelections(); extern void SelectionResponse(); /* decoration window functions */ extern struct _winpushpin *MakePushPin(); extern struct _winbutton *MakeButton(); extern struct _winresize *MakeResize(); /* general window functions */ extern void WinCallFocus(); extern void WinRedrawAllWindows(); extern Bool WinShowHelp(); /* general window event functions */ extern int WinEventExpose(); extern int WinNewPosFunc(); extern int WinNewConfigFunc(); extern int WinSetConfigFunc(); /* rubber-banding functions */ extern void UserMoveWindows(); extern void UserResizeWin(); extern void TraceRootBox(); /* busy windows */ extern struct _winbusy *MakeBusy(); #endif /* _OLWM_OLWM_H */ xview-3.2p1.4/clients/olvwm-4.1/patchlevel.h100644 1750 1750 27 6241361454 15773 0ustar mbmb#define PATCHLEVELv4 1 xview-3.2p1.4/clients/olvwm-4.1/properties.h100644 1750 1750 4272 5515337664 16117 0ustar mbmb#ifdef IDENT #ident "@(#)properties.h 26.8 93/06/28 SMI" #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_PROPERTIES_H #define _OLWM_PROPERTIES_H /* * Open Look Window Attribute structure */ typedef struct { unsigned long flags; Atom win_type; Atom menu_type; unsigned long pin_initial_state; unsigned long cancel; } OLWinAttr; #define OLWINATTRLENGTH (sizeof(OLWinAttr)/sizeof(unsigned long)) /* * Values for flags in OLWinAttr */ #define WA_WINTYPE (1<<0) #define WA_MENUTYPE (1<<1) #define WA_PINSTATE (1<<2) #define WA_CANCEL (1<<3) /* * Values for flags of available top-level window-management properties */ #define WMClassAvail (1<<0) #define WMNameAvail (1<<1) #define WMIconNameAvail (1<<2) #define WMNormalHintsAvail (1<<3) #define WMHintsAvail (1<<4) #define WMTransientForAvail (1<<5) #define WMProtocolsAvail (1<<6) #define WMColormapWindowsAvail (1<<7) #define WMStateAvail (1<<8) #define OLWinAttrAvail (1<<9) #define OLDecorAddAvail (1<<10) #define OLDecorDelAvail (1<<11) #define OLWindowStateAvail (1<<12) #define OLLeftFooterAvail (1<<13) #define OLRightFooterAvail (1<<14) #ifdef OW_I18N_L4 #define OLLeftIMStatusAvail (1<<15) #define OLRightIMStatusAvail (1<<16) #endif #define ENTIRE_CONTENTS (10000000L) extern void *GetWindowProperty(); extern long PropListAvailable(); extern void PropSetAvailable(); extern void PropClearAvailable(); extern Bool PropGetWMName(); extern Bool PropGetWMIconName(); extern Bool PropGetWMClass(); extern Bool PropGetWMNormalHints(); extern Bool PropGetWMHints(); extern Bool PropGetWMProtocols(); extern Bool PropGetWMTransientFor(); extern Bool PropGetWMState(); extern void PropSetWMState(); extern Bool PropGetOLWindowState(); extern Bool PropGetOLWinAttr(); extern Bool PropGetOLDecorAdd(); extern Bool PropGetOLDecorDel(); extern Bool PropGetOLLeftFooter(); extern Bool PropGetOLRightFooter(); extern Bool PropGetOLWindowState(); #ifdef OW_I18N_L4 extern Bool PropGetOLLeftIMStatus(); extern Bool PropGetOLRightIMStatus(); #endif #endif /* _OLWM_PROPERTIES_H */ xview-3.2p1.4/clients/olvwm-4.1/resources.h100644 1750 1750 2050 5515337664 15725 0ustar mbmb/* * (c) Copyright 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifdef IDENT #ident "@(#)resources.h 1.3 olvwm version 25 Nov 1992" #endif /* * Based on #ident "@(#)resources.h 26.16 91/09/14 SMI" * */ #ifndef _OLWM_RESOURCES_H #define _OLWM_RESOURCES_H #include /* maximum length of fully-specified instance/class name */ #define MAX_NAME 100 #define MAX_CLASS 100 #define BASICPTR 0 #define MOVEPTR 1 #define BUSYPTR 2 #define ICONPTR 3 #define RESIZEPTR 4 #define MENUPTR 5 #define QUESTIONPTR 6 #define TARGETPTR 7 #define PANPTR 8 #define NUM_CURSORS 9 /* number of pointers supported */ extern XrmQuark TopClassQ; extern XrmQuark TopInstanceQ; extern XrmQuark OpenWinQ; extern XrmQuark OlwmQ; extern XrmDatabase OlwmDB; extern void InitGlobals(); extern void UpdateGlobals(); extern Bool matchBool(); #ifdef OW_I18N_L3 extern void EffectOLLC(); #endif /* OW_I18N_L3 */ #endif /* _OLWM_RESOURCES_H */ xview-3.2p1.4/clients/olvwm-4.1/screen.h100644 1750 1750 13665 5515337665 15231 0ustar mbmb/* * (c) Copyright 1989, 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifdef IDENT #ident "@(#)screen.h 1.4 olvwm version 07 Jan 1994" #endif /* * Based on #ident "@(#)screen.h 26.24 93/06/28 SMI" * */ #ifndef _OLWM_SCREEN_H #define _OLWM_SCREEN_H #ifdef OW_I18N_L4 #include "i18n.h" #endif #include #include "win.h" /* * Index's into GC array of ScreenInfo struct */ typedef enum { ROOT_GC, FOREGROUND_GC, BORDER_GC, WINDOW_GC, WORKSPACE_GC, BUSY_GC, ICON_NORMAL_GC, ICON_MASK_GC, ICON_BORDER_GC, INPUTFOCUS_GC, VDM_GC, VDM_INPUT_GC, NUM_GCS } ScreenGCIndex; /* * Index's into Graphics_info array of ScreenInfo struct */ typedef enum { NORMAL_GINFO, BUTTON_GINFO, TEXT_GINFO, REVPIN_GINFO, INPUTFOCUS_GINFO, NUM_GINFOS } ScreenGinfoIndex; /* * Index's into Pixmap array of ScreenInfo struct */ typedef enum { BUSY_STIPPLE, ICON_BITMAP, ICON_MASK, PROTO_DRAWABLE, GRAY50_BITMAP, NUM_PIXMAPS } ScreenPixmapIndex; /* * ColorMapFocus - client/window which has colormap focus */ typedef struct _colormapfocus { struct _client *client; struct _wingeneric *window; Bool locked; } ColorMapFocus; /* * ColorInfo - window/workspace/etc colors */ typedef struct _colorinfo { unsigned long flags; Bool reverseVideo; unsigned long black, white; unsigned long fgColor, bgColor; unsigned long bg0Color,bg1Color,bg2Color,bg3Color; unsigned long borderColor; WorkspaceStyle workspaceType; unsigned long workspaceColor; unsigned long workspaceRootPixel; unsigned long workspaceBitmapFg; unsigned long workspaceBitmapBg; unsigned long virtualFgColor, virtualBgColor; unsigned long virtualGridColor, virtualFontColor; unsigned long virtualPixmapColor; unsigned long virtualInputColor; unsigned long inputBg0Color,inputBg1Color, inputBg2Color,inputBg3Color; unsigned long vIconColor; } ColorInfo; #define CIWorkspaceColorAlloced (1L<<0) #define CIWorkspaceBitmapColorsAlloced (1L<<1) #define CIWindowColorAlloced (1L<<2) #define CIForegroundColorAlloced (1L<<3) #define CIBackgroundColorAlloced (1L<<4) #define CIBorderColorAlloced (1L<<5) #define CIVirtualForegroundColorAlloced (1L<<6) #define CIVirtualBackgroundColorAlloced (1L<<7) #define CIVirtualFontColorAlloced (1L<<8) #define CIVirtualGridColorAlloced (1L<<9) #define CIInputFocusColorAlloced (1L<<10) #define CIVirtualPixmapColorAlloced (1L<<11) typedef struct _pixinfo { int width, height; Pixmap pixmap; unsigned long fg, bg; int ncolors; XColor *colors; } PixInfo; /* * ScreenInfo - Per screen info */ typedef struct _screeninfo { Display *dpy; int screen; Window rootid; struct _winroot *rootwin; int depth; Visual *visual; Colormap colormap; Bool iscolor; Bool use3D; ColorInfo colorInfo; GC gc[NUM_GCS]; Graphics_info *gi[NUM_GINFOS]; Pixmap pixmap[NUM_PIXMAPS]; PixInfo pixInfo; /* GIF/Pixmap bg info */ struct _menuCache *menuCache; ColorMapFocus cmapfocus; int framepos; struct _iconGrid *iconGrid; char **environment; int instanceQ; /* quark for this screen's instance name */ int dfltIconWidth, dfltIconHeight; #ifdef ALLPLANES Bool useAllPlanes; #endif Window *winCache; /* array of window IDs */ int winCacheSize; /* size of the array */ int winCacheCount; /* first free element */ struct _virtualdesktop *vdm; struct _menu *menuTable[NUM_MENUS]; struct { struct _button **frameFullButtons; int frameFullButtonsCount; struct _button **frameDismissButtons; int frameDismissButtonsCount; struct _button **frameLimitedButtons; int frameLimitedButtonsCount; } menuButtons; } ScreenInfo; /* * Global functions from screen.c */ #if defined(__STDC__) extern void InitScreens(Display *dpy); extern void DestroyScreens(Display *dpy); extern ScreenInfo *GetFirstScrInfo(void); extern ScreenInfo *GetScrInfoOfScreen(int screen); extern ScreenInfo *GetScrInfoOfRoot(Window root); extern void SetWorkspaceBackground(Display *dpy); extern void SetWindowColor(Display *dpy); extern void SetForegroundColor(Display *dpy); extern void SetBackgroundColor(Display *dpy); extern void SetBorderColor(Display *dpy); extern void SetTitleFont(Display *dpy); extern void SetTextFont(Display *dpy); extern void SetButtonFont(Display *dpy); extern void SetIconFont(Display *dpy); extern void SetGlyphFont(Display *dpy); extern void SetIconLocation(Display *dpy); extern Window ScreenCreateWindow(ScreenInfo*, Window, int, int, int, int, unsigned long, XSetWindowAttributes*); extern void ScreenDestroyWindow(ScreenInfo*, Window); extern void ScreenUpdateWinCacheSize(Display *dpy); #else extern void InitScreens(); extern void DestroyScreens(); extern ScreenInfo *GetFirstScrInfo(); extern ScreenInfo *GetScrInfoOfScreen(); extern ScreenInfo *GetScrInfoOfRoot(); extern void SetWorkspaceBackground(); extern void SetWindowColor(); extern void SetForegroundColor(); extern void SetBackgroundColor(); extern void SetBorderColor(); extern void SetTitleFont(); extern void SetTextFont(); extern void SetButtonFont(); extern void SetIconFont(); extern void SetGlyphFont(); extern void SetIconLocation(); extern Window ScreenCreateWindow(); extern void ScreenDestroyWindow(); extern void ScreenUpdateWinCacheSize(); #endif /* STDC */ #endif /* _OLWM_SCREEN_H */ xview-3.2p1.4/clients/olvwm-4.1/selection.h100644 1750 1750 1367 5515337665 15713 0ustar mbmb#ifdef IDENT #ident "@(#)selection.h 1.3 93/06/28 SMI" #endif /* * (c) Copyright 1992 Sun Microsystems, Inc. */ /* * Sun design patents pending in the U.S. and foreign countries. See * LEGAL_NOTICE file for terms of the license. */ #ifndef _OLWM_SELECTION_H #define _OLWM_SELECTION_H extern Time SelectionTime; extern Bool IsSelected(/* client */); extern int AddSelection(/* client, time */); extern Bool RemoveSelection(/* client */); extern Bool ToggleSelection(/* client, time */); extern void ClearSelections(/* dpy */); extern Client* EnumSelections(/* void* */); extern void SelectionInit(); extern void SelectionRegister(/* seln, handler */); extern void SelectionResponse(/* event */); #endif /* _OLWM_SELECTION_H */ xview-3.2p1.4/clients/olvwm-4.1/slots.h100644 1750 1750 3706 5515337665 15071 0ustar mbmb/* * (c) Copyright 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifdef IDENT #ident "@(#)slots.h 26.7 91/09/14 SMI" #endif #ifndef _OLWM_SLOT_H #define _OLWM_SLOT_H typedef enum {SOTopToBottom, SOBottomToTop, SOLeftToRight, SORightToLeft} SlotOrder; typedef struct _iconSlot { int ma, mi, maw, miw; Bool positioned; int off_x, off_y; } IconSlot; typedef struct _iconGrid { SlotOrder SOmajor,SOminor; int *occupancy; int minoccupancy; List *iconList; int maslots,mislots; int slotshoriz,slotsvert; int pixhoriz,pixvert; } IconGrid; extern IconGrid *SlotInit(); /* Display *dpy, int screeno */ /* initialises the Slots package; should be called for * each screen */ extern struct _iconSlot *SlotAlloc(); /* WinIcon *, Bool, Bool */ /* given a sized and possibly positioned icon window, allocate * the appropriate slots for it. If the window is positioned, * True should be passed for the second parameter, and the x,y * position will be honoured. If the window is not positioned, it * will be positioned by this function to the appropriate slots(s). * If the icon is being manually positioned and should be positioned * according to the icon grid, True should be passed for the third * parameter; False should be passed otherwise. */ extern Bool SlotFree(); /* WinIcon * */ /* An icon is going away, so its references to slots should also go * away. */ extern Bool SlotSetLocations(); /* Display *dpy */ /* sets the order in which slots are allocated for icons which are * not explicitly positioned. The new order is obtained from the * global resource vector. * For example, the AlongBottom order is expressed as * major BottomToTop, minor LeftToRight. Any icons which were * automatically positioned are repositioned to equivalent positions * in the new order. */ #endif /* _OLWM_SLOT_H */ xview-3.2p1.4/clients/olvwm-4.1/st.h100644 1750 1750 2522 5515337665 14346 0ustar mbmb /* This is a general purpose hash table package written by Peter Moore @ UCB. */ #ifdef IDENT #ident "@(#)st.h 1.2 olvwm version 25 Nov 1992" #endif /* * Based on #ident "@(#)st.h 26.5 91/09/14 SMI" * */ #ifndef ST_INCLUDED #define ST_INCLUDED typedef struct st_table_entry st_table_entry; struct st_table_entry { char *key; char *record; st_table_entry *next; }; typedef struct st_table st_table; struct st_table { int (*compare)(); int (*hash)(); int num_bins; int num_entries; int max_density; int reorder_flag; double grow_factor; st_table_entry **bins; }; #define st_is_member(table,key) st_lookup(table,key,(char **) 0) enum st_retval {ST_CONTINUE, ST_STOP, ST_DELETE}; int st_delete(), st_insert(), st_foreach(), st_free_table(); int st_lookup(), st_find_or_add(), st_add_direct(); st_table *st_init_table(), *st_init_table_with_params(); #ifdef NOT #define ST_NUMCMP ((int (*)()) 0) #define ST_NUMHASH ((int (*)()) -2) #define ST_PTRCMP ((int (*)()) 0) #define ST_PTRHASH ((int (*)()) -1) #define st_numcmp ST_NUMCMP #define st_numhash ST_NUMHASH #define st_ptrcmp ST_PTRCMP #define st_ptrhash ST_PTRHASH #endif #define ST_DEFAULT_MAX_DENSITY 5 #define ST_DEFAULT_INIT_TABLE_SIZE 11 #define ST_DEFAULT_GROW_FACTOR 2.0 #define ST_DEFAULT_REORDER_FLAG 0 int st_strhash(); #endif ST_INCLUDED xview-3.2p1.4/clients/olvwm-4.1/virtual.h100644 1750 1750 10543 5515337666 15431 0ustar mbmb/* * (c) Copyright 1991 Scott Oaks * See LEGAL_NOTICE file for terms of the license. */ #ifdef IDENT #ident "@(#)virtual.h 1.3 olvwm version 07 Jan 1994" #endif #ifndef _OLWM_VIRTUAL_H #define _OLWM_VIRTUAL_H /* * The virtual desktop exists as a logical abstraction only; there is no * actual X window called the virtual desktop to which the frames are * reparented (unlike other virtual managers). Frames are still reparented * to the root. * * Moving the virtual desktop then means that we have to move each window; * windows which no longer appear on the screen have coordinates outside * of [(0,0);(1152,900)] (or whatever the size of your screen is). This * means that windows on the screen still map to (0,0);(1152,900). * * Moving each window doesn't really entail much overhead, since even if * we had a virtual root and shifted it, we'd still have to send synthetic * configure events to each window. * * * The Virtual Desktop is the logical abstraction and is several screens * large. The VDM is the X window which displays this abstraction and * is a small X window on the display. The VDM will have a frame and look * like any other base window, but it may never be unstuck. <- absoluteWidth -> |-----------------------------------------------------| ^ | | | | | a | | b | ->offsetX, offsetY (negative from up/left| s | | | o | ******************* | l | * * | u | * * | t | * * | e | * * | H | * * | e | ******************* | i | | g | | h | | t |-----------------------------------------------------| */ typedef struct _virtualresources { char *size; char *geometry; char *iconGeometry; int scale; VirtualGridType grid; char *background; PixInfo pixInfo; } VirtualResources; typedef struct _virtualdesktop { struct _client *client; /* Handle to client structure; this * leads to a recursive pointer trail */ int offsetX; /* Position of the upper/left corner */ int offsetY; /* of the current screen on the VDM * These will always be <= 0, since it * should be added to a windows coord * to determine where on the virtual * desktop the window is */ int absoluteWidth; /* Width of virtual desktop in pixels */ int absoluteHeight; /* Height of virtual desk in pixels */ int columns; /* Number of logical screens across */ int rows; /* Number of logical screens down */ int height; /* height of the VDM in pixels */ int width; /* width of the VDM in pixels */ int screenWidth; /* Width of logical screen within VDM */ int screenHeight; /* Height of logical screen within VDM*/ int screenX; /* X position of current screen in VDM*/ int screenY; /* Y position of current screen in VDM*/ int max_ascent; /* max ascent of font in VDM */ int saveX; /* for save/restore, last position */ int saveY; /* for save/restore, last position */ VirtualResources *resources; /* Screen-specific virtual resources */ } VirtualDesktop; /* * Structure to bundle the information needed to perform a drag/move within * the VDM */ typedef struct _vdmstuff { VirtualDesktop *vdm; /* Virtual Desktop involved in move */ int initX, initY; /* Initial location of screenX */ int pointerX, /* Initial press of button in move */ pointerY; int numMoves; /* number of times we got a motion ev */ GC gc; /* gc to draw with (use root gc */ } VDMstuff; /* * Structure to bundle amount a view into the desktop has moved */ struct deltas { double delta_x, delta_y; }; #endif /* _OLWM_VIRTUAL_H */ xview-3.2p1.4/clients/olvwm-4.1/win.h100644 1750 1750 41436 5515337666 14545 0ustar mbmb/* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifndef _OLWM_WIN_H #define _OLWM_WIN_H #ifdef IDENT #ident "@(#)win.h 1.5 olvwm version 07 Jan 1994" #endif /* * Based on #ident "@(#)win.h 26.43 93/06/28 SMI" * */ #include #include "list.h" #include "events.h" /* Need this in screen.h */ typedef enum { MENU_FULL, /* Close, Zoom, Props, Scale, Back, Refresh, Quit */ MENU_LIMITED, /* Dismiss, Scale, Refresh */ MENU_NONE, MENU_VDM, /* used in virtual.c */ MENU_ROOT, /* used only by usermenu.c */ /* because of rereading menu file, MENU_ROOT must be last * since it has to clear out all menu caches after it */ NUM_MENUS } MenuIndex; #include "screen.h" #ifdef SHAPE #include #endif /*************************************************************************** * Client state structures ***************************************************************************/ /* a type for the four possible focus modes */ typedef enum { Passive, NoInput, LocallyActive, GloballyActive } FocusMode; typedef struct { long flags; MenuIndex menu_type; int def_item; /* default menu item */ int pushpin_initial_state; int cancel; /* 1 means Cancel instead of Dismiss */ /* numbers assigned as per OLXCI 3/20/89 */ } WMDecorations; /* pin states numbers, as per OLXCI 3/20/89 */ #define PIN_OUT 0 #define PIN_IN 1 /* value for flags */ #define WMDecorationHeader (1L<<0) #define WMDecorationFooter (1L<<1) #define WMDecorationPushPin (1L<<2) #define WMDecorationCloseButton (1L<<3) #define WMDecorationHeaderDeco (WMDecorationPushPin | WMDecorationCloseButton) #define WMDecorationResizeable (1L<<4) #define WMDecorationIconName (1L<<5) #define WMDecorationWarpToPin (1L<<6) #ifdef OW_I18N_L4 #define WMDecorationIMStatus (1L<<7) #endif #define WMNoDecor (1L<<8) /* * Window Manager State * Uses state codes in Xutil.h; * WithdrawnState, NormalState, IconicState * and a special olwm-private InvisibleState */ typedef int WMState; #define InvisibleState 5469550 /* olwm-private WMState value */ /* * Pointer warp state */ typedef struct { int warpToX, warpToY; /* where pointer goes on warp */ int dflButtonX, dflButtonY; /* location of default button */ int dflButtonW, dflButtonH; /* size of default button */ struct _client *warpBackClient; /* where to return focus */ int warpBackX, warpBackY; /* where to put it back */ } WarpInfo; /* * Semantic window state */ typedef struct _windowstate { unsigned long flags; unsigned long state; } OLWindowState; /* value for OLWindowState flags */ #define WSSemanticState (1L<<0) /* value for OLWindowState state */ #define WSSemanticCompose (1L<<0) #define WSSemanticCapsLock (1L<<1) #define WSSemanticNumLock (1L<<2) #define WSSemanticScrollLock (1L<<3) /* client flags */ #define CLOlwmOwned (1L<<0) #define CLMoved (1L<<1) /*************************************************************************** * Client structures ***************************************************************************/ /* a top-level client window */ typedef struct _client { int flags; WMDecorations *wmDecors; WMState wmState; XSizeHints *normHints; /* WM_NORMAL_HINTS */ XWMHints *wmHints; /* WM_HINTS */ char *wmInstance; /* WM_CLASS instance name */ char *wmClass; /* WM_CLASS class name */ XrmQuark wmInstanceQ; /* quarks for WM_CLASS instance */ XrmQuark wmClassQ; /* and class */ int protocols; FocusMode focusMode; Bool isFocus; Bool isSelected; Bool isBusy; Display *dpy; int screen; struct _winpaneframe *framewin; struct _winiconframe *iconwin; WarpInfo warpInfo; Window groupid; /* Actually GroupID */ unsigned int groupmask; /* role that client is playing in group */ long busyState; List *colormapWins; struct _screeninfo *scrInfo; OLWindowState *windowState; Window transientFor; #ifdef SHAPE Bool isShaped; #endif Bool menuAccelerators; /* * Fields for the virtual window manager */ int sticky; int restoreSticky; #define STICKY_NO_RESTORE (-1) #define STICKY_RESTORE_CURRENT (-2) } Client; /* * A popup window (in contrast to a base window) is one that has either a * pushpin or a limited menu. */ #define ClientIsPopup(cli) \ ((cli)->wmDecors->flags & WMDecorationPushPin || \ (cli)->wmDecors->menu_type == MENU_LIMITED) #define ClientHasIcon(cli) \ (! ((cli)->groupmask == GROUP_DEPENDENT || ClientIsPopup(cli))) #define ClientIsPinnable(cli) \ ((cli)->wmDecors->flags & WMDecorationPushPin) #define ClientIsResizeable(cli) \ ((cli)->wmDecors->flags & WMDecorationResizeable) /*************************************************************************** * Window class structures ***************************************************************************/ /* classes of window which we can deal with */ typedef enum { WIN_FRAME, WIN_ICON, WIN_RESIZE, WIN_PUSHPIN, WIN_WINBUTTON, WIN_PANE, WIN_ICONPANE, WIN_COLORMAP, WIN_MENU, WIN_PINMENU, WIN_NOFOCUS, WIN_ROOT, WIN_BUSY, WIN_VIRTUAL } WinKind; typedef int (*EvFunc)(); typedef int (*IntFunc)(); typedef struct _genericclasscore { WinKind kind; EvFunc xevents[LASTEvent]; /* function for each X event */ EvFunc extEventHdlr; /* handler for extension events */ EvFunc focusfunc; /* focus state has changed */ EvFunc drawfunc; /* draw window */ EvFunc destroyfunc; /* destroy window and structures */ EvFunc selectfunc; /* selecte state has changed */ EvFunc newconfigfunc; /* compute configuration */ EvFunc newposfunc; /* set position */ EvFunc setconfigfunc; /* set configuration */ EvFunc createcallback; /* used in menu creation */ IntFunc heightfunc; /* compute correct height */ IntFunc widthfunc; /* compute correct width */ } GenericClassCore; typedef struct _classgeneric { GenericClassCore core; } ClassGeneric; typedef struct _genericframeclasscore { IntFunc heighttop, heightbottom, widthleft, widthright; IntFunc menuPress; IntFunc adjustPress, adjustClick; IntFunc selectPress, selectClick, selectDoubleClick, selectDrag; IntFunc fullrestoreToggle; } GenericFrameClassCore; typedef struct _classgenericframe { GenericClassCore core; GenericFrameClassCore fcore; } ClassGenericFrame; typedef struct _genericpaneclasscore { EvFunc setsizefunc; } GenericPaneClassCore; typedef struct _classpane { GenericClassCore core; GenericPaneClassCore pcore; } ClassGenericPane; typedef struct _classvirtual { GenericClassCore core; GenericPaneClassCore pcore; } ClassVirtualPane; typedef ClassGenericFrame ClassPaneFrame; typedef ClassGenericFrame ClassIconFrame; typedef ClassGeneric ClassPushPin; typedef ClassGenericPane ClassPane; typedef ClassGeneric ClassMenu; typedef ClassGenericPane ClassPinMenu; typedef ClassGeneric ClassResize; typedef ClassGeneric ClassButton; typedef ClassGeneric ClassBusy; typedef ClassGenericPane ClassIconPane; typedef ClassGeneric ClassRoot; typedef ClassGeneric ClassNoFocus; typedef ClassGeneric ClassColormap; /* Core functions: * * destroyfunc - int (*destroyfunc)(Display *dpy, WinGeneric *win) * Called when the window is being destroyed; should destroy any private * resources associated with the window (including possibly destroying * the X window) and destroy the window information structure. * * selectfunc - int (*selectfunc)(Display *dpy, WinGeneric *win, Bool selected) * Called whenever the window is selected/deselected. The window should * update its private state -- most particularly, its screen appearance -- * to match the new state. This function is only called when the selection * state has changed. * * focusfunc - int (*focusfunc)(Display *dpy, WinGeneric *win, Bool focus) * Called whenever the window gains/loses focus. The window should update * its private state -- most particularly, its screen appearance -- * to match the new state. The window does _not_ need to take focus if * it is active; this has already been taken care of. This function is * only called when the focus has changed. * * newconfigfunc - int (*newconfigfunc)(WinGeneric *win, * XConfigureRequestEvent *xcre) * Called when the configuration of a window should be recomputed. It * can be assumed that all child windows will have already computed their * sizes. This function should compute the size of this window, and call * the newposfunc of each child that needs to be moved. If the configuration * of the window is changed by this function, the dirtyconfig flag should be * set. The xcre parameter will be be set to a configure request event * structure only if a configure request was received for this * particular window; otherwise the parameter will be null. * Returns True if any dirtyconfig flag has been set. * * newposfunc - int (*newposfunc)(WinGeneric *win, int x, y) * Instructs a child window to move to a position (x,y). If this position * is different from the old position, then the dirtyconfig flag * should be set. Returns True if any dirtyconfig flag has been set. * * setconfigfunc - int (*setconfigfunc)(Display *dpy, WinGeneric *win) * The window's configuration may have changed; if so, call XConfigureWindow * to make the changes. Clear the dirtyconfig bits in the process. * The pane window will need to send a synthetic configure notify for * any configuration call. * * createcallback - int (*createcallback)(WinGeneric *self, Client *cli, * WinGeneric *parent) * For internally-created panes, the client and parent are filled out * when the StateNew process would normally create a pane. * * heightfunc - int (*heightfunc)(WinGeneric *self, XConfigureRequestEvent *pxcre) * should return the window's correct height, given a configure request * event and the current environment. Used to see if a window needs to * be resized. * * widthfunc - same as heightfunc, except that it returns correct width */ /*************************************************************************** * Window instance structures ***************************************************************************/ /* * The wincore structure contains common information about each window. * * stack_mode, stack_sib, and dirtyconfig contain information pending window * configuration changes that have not yet been sent to the server. * * exposures is a list of exposed rectangles that have not yet been repainted. * * colormapClients is a list of clients that have this window in their * colormapWins list. tag is used only while processing changes to a client's * colormapWins list. */ typedef struct _wincore { Window self; WinKind kind; struct _wingeneric *parent; List *children; Client *client; int x, y; unsigned int width, height; int stack_mode; Window stack_sib; unsigned int dirtyconfig; Colormap colormap; List *exposures; List *colormapClients; Bool tag; char *helpstring; /* * For the virtual window manager */ Window virtual; } WinCore; /* REMIND maybe add: cursor */ /* macros associated with a window core */ #define WinIsKind(w,k) ((w)->core.kind == (k)) #define WinClass(w) ((w)->class) #define WinFunc(w,f) ((w)->class->f) #define WinScreen(w) ((w)->core.client->screen); #define WinRootID(w) ((w)->core.client->scrInfo->rootid) #define WinDepth(w) ((w)->core.client->scrInfo->depth) #define WinVisual(w) ((w)->core.client->scrInfo->visual) #define WinGI(w,idx) ((w)->core.client->scrInfo->gi[(idx)]) #define WinGC(w,idx) ((w)->core.client->scrInfo->gc[(idx)]) #define Win3D(w) ((w)->core.client->scrInfo->use3D) /* * These macros access the fields of the ColorMapFocus struct inside * the ScreenInfo struct of a Client. */ #define ColorFocusWindow(win) ((win)->core.client->scrInfo->cmapfocus.window) #define ColorFocusClient(win) ((win)->core.client->scrInfo->cmapfocus.client) #define ColorFocusLocked(win) ((win)->core.client->scrInfo->cmapfocus.locked) /* FrameCore defines fields common to all types of frame */ typedef struct _winframecore { struct _wingenericpane *panewin;/* pane inside frame */ Text *name; /* name to be displayed on frame */ Bool fullsize; /* if frame is full size */ } WinFrameCore; /* PaneCore defines fields common to all types of panes */ typedef struct _winpanecore { int oldBorderWidth; int oldSaveUnder; int pendingUnmaps; } WinPaneCore; /* Specific window types */ typedef struct _wingeneric { ClassGeneric *class; WinCore core; } WinGeneric; typedef struct _winroot { ClassGeneric *class; WinCore core; SemanticAction currentAction; XEvent buttonPressEvent; } WinRoot; typedef struct _wingenericframe { ClassGenericFrame *class; WinCore core; WinFrameCore fcore; } WinGenericFrame; /* macros for generic frames */ #define FrameHeightTop(w) (WinFunc((w),fcore.heighttop))((w)) #define FrameHeightBottom(w) (WinFunc((w),fcore.heightbottom))((w)) #define FrameWidthLeft(w) (WinFunc((w),fcore.widthleft))((w)) #define FrameWidthRight(w) (WinFunc((w),fcore.widthright))((w)) typedef struct _wingenericpane { ClassGenericPane *class; WinCore core; WinPaneCore pcore; } WinGenericPane; typedef struct { Text *string; int length,width; } Footer; typedef struct _winpaneframe { ClassPaneFrame *class; WinCore core; WinFrameCore fcore; /* resize corners */ struct _winresize *resizeCorner[4]; /* footers */ Footer leftFooter; Footer rightFooter; #ifdef OW_I18N_L4 /* input method status footers */ Footer leftIMStatus; Footer rightIMStatus; #endif /* title fields */ int titleOff; /* x offset of title area in pix */ int nameLength; /* length of name in chars */ int nameWidth; /* width of name in pix */ int titlex, titley; /* title position */ /* pointer warp status */ Bool pointerIsWarped; /* sizing functions */ void (*normfullsizefunc)(); /* normal/full size function */ Bool restoreSet; /* True => restore values valid */ int restoreX, restoreY, restoreWidth, restoreHeight; /* context for full/norm size * note that x/y is frame; w/h are pane */ /* other decorations */ WinGeneric *winDeco; /* window button or pushpin */ struct _winbusy *winBusy; /* special window when busy */ } WinPaneFrame; typedef struct _winiconframe { ClassIconFrame *class; WinCore core; WinFrameCore fcore; struct _iconSlot *iconslot; Bool fManuallyPositioned; int nameX, nameY; /* name of icon */ int nameWidth; int nameLength; } WinIconFrame; typedef struct _winiconpane { ClassIconPane *class; WinCore core; WinPaneCore pcore; Bool iconClientWindow; /* true iff client owns pane */ Pixmap iconPixmap; /* None if icon has client window */ Pixmap iconMask; int iconDepth; } WinIconPane; /* icon border sizes, in pixels */ #define ICON_HORZBORDER 3 #define ICON_VERTBORDER 3 typedef struct _winpushpin { ClassPushPin *class; WinCore core; Bool pushpinin; } WinPushPin; typedef struct _winpane { ClassPane *class; WinCore core; WinPaneCore pcore; } WinPane; typedef struct _winmenu { ClassMenu *class; WinCore core; struct _menuInfo *menuInfo; Bool ignoreNextExpose; } WinMenu; typedef struct _winpinmenu { /* pinned menus are a subclass of panes */ ClassPinMenu *class; WinCore core; WinPaneCore pcore; struct _menuInfo *menuInfo; } WinPinMenu; typedef struct _winvirtual { ClassVirtualPane *class; WinCore core; WinPaneCore pcore; } WinVirtual; typedef enum {upleft, upright, lowleft, lowright, keyevent} WhichResize; typedef struct _winresize { ClassResize *class; WinCore core; WhichResize which; Bool depressed; } WinResize; typedef struct _winbutton { ClassButton *class; WinCore core; Bool ignore; } WinButton; typedef struct _winbusy { ClassBusy *class; WinCore core; Bool isFocus; } WinBusy; typedef WinGeneric WinNoFocus; /* colormap windows aren't linked into the ordinary window tree since they * are presumed under client control. We create info structures for them * only so appropriate events can be dispatched on them. Colormap windows * are in a list on the client structure. */ typedef WinGeneric WinColormap; /* functions mapping windows to infos */ extern void WIInstallInfo(); extern Bool WIUninstallInfo(); extern WinGeneric *WIGetInfo(); extern WinGeneric *VGetInfo(); extern void WIApply(); /* window functions */ extern void WinAddChild(); extern void WinRemoveChild(); /* Useful client macros */ #define PANEOFCLIENT(cli) ((cli)->framewin->fcore.panewin) #define PANEWINOFCLIENT(cli) (PANEOFCLIENT(cli)->core.self) /* globals */ #ifdef SHAPE extern Bool ShapeSupported; extern int ShapeEventBase; extern int ShapeErrorBase; #endif extern Client *CurrentClient; #endif /* _OLWM_WIN_H */ xview-3.2p1.4/clients/olvwm-4.1/CHANGES100644 1750 1750 50355 6241361454 14557 0ustar mbmbVersion 4.1 fixes: 1) Fixed compilation problems with /usr/ucb/cc on SunOS 4.1.3 2) Fixed problems with AutoRaise 3) Fixed problems with FreeIconSlots 4) Now include olvwm.info and LEGAL_NOTICE Version 4.0 fixes and enhancements: 1) Now based on version 3.2 of olwm; this adds a lot of features defined in the 3.2 olwm man page: menu accelerators, patterned backgrounds, etc. 2) Busy windows are now displayed as busy in the VDM 3) Changing the title bar font correctly updates the font for windows with input focus. 4) olvwmrc keys now work correctly over the root 5) New IfElse olvwmrc key word. IfElse takes a specification and executes a branch depending on whether a window matching the specification exists, e.g. R7+Alt { IfElse: guide { Raise: guide Warp: guide } { Execute: /opt/guide/bin/guide } } 6) Support for GIF images and better pixmap support: In general, anywhere you may specify a pixmap file the file can be in the following formats: X Bitmap, version 2 or 3 XPM Pixmap, or GIF. Version 3.3 fixes and enhancements: 1) If you don't have a .olvwmrc file, using the function keys (and the L keys) is no longer slow no matter what VirtualReRead is set too. Also, since the default is not to have a .olvwmrc file, the default for VirtualReRead has been set to false. 2) New compilation flags -DSOLARIS2.0 to get SVR4 compatabile code 3) New resource VirtualDrawSticky: If true (default) sticky windows will be drawn in the VDM. If false, they won't be. 4) Some manual typos have been fixed. 5) Regular expressions like [a-z]* for DIRMENU fixed 6) New menu token MOVE_DESKTOP which takes either a single parameter to move to a particular logical screen or a two parameters to move to a logical screen containing a particular point 7) Invalid pixmaps for the VDM now default to a better background 8) Invalid cursor font names no longer cause olvwm to exit 9) Close button displays with the correct input focus color in click-to-type 10) Moving icons between screens when DragWindow is true and VirtualMoveGroups is true now works 11) Annonying warnings when compiling with gcc fixed 12) Support for XPM pixmaps as icons and menu images. Requires Version 3.1 or higher of XPM to compile with the -DXPM flag and supports XPM image format 2 and 3. For menus, just list the XPM file in the menu file like a bitmap. For the default icon, set the DefaultIconImage resource to the pixmap file and the DefaultIconMask to some appropriate 1-bit mask image. Application icons are application dependent; in particular, there's no way to get a Sun Deskset application to accept an XPM image file for its icon. 13) Negative geometry values are fixed 14) Icon Positioning when RelativePosition is False is fixed 15) No longer core dumps if a default font isn't found (but all it does is complain and exit cleanly; it doesn't choose another default font). 17) Support for AIX-3.1.6 (and probably AIX-3.2): check the Imakefile to set up the correct defines. The patch was done using "bsdcc" as the compiler, as defined in the /usr/lpp/bos/bsdport document. It assumes that "AIXV3" and "SYSV" are defined, and it used the XView port for the RS/6000. 18) Fix getrlimit calls when system has no RLIMIT_NOFILE 19) Lots of changes to olvwmrc: key bindings can be any combination of keys, 5 new keywords (Rebind, SetSize, Stick, Geometry, Focus), and variable key/keyword substitution. 20) New Resources: StickyIcons, if true, will make all icons sticky (but will not affect the sticky-ness of the base frame). If StickyIcons is set, opening an icon will place the executable into the current screen, unless StickyIconScreen is set, in which case you'll warp to the screen where you closed the application from. Both are False by default 21) New Resource: ParentScreenPopup, true by default. If false, then popup windows will always appear in the current screen; otherwise they appear on the screen with their parent. 22) Yet more memory problems fixed; especially affecting use of WINMENU at destroying icons. 23) Multiple USR1 signals now work properly Version 3.2 fixes and enhancements: 1) Yet more window placement problems (esp. with mailtool) fixed: windows now try to keep their mid-points on the same virtual screen rather than their left points; this allows windows to be slightly off the monitor but still on the same screen. 2) The AllowMoveIntoDesktop resource now permits you to move windows within the VDM instead of always mapping them to the current screen 3) The boolean sense of PointerWorkspace has been changed so that it follows the same semantics of PaintWorkspace: when PointerWorkspace is True (now the default) olvwm will set the pointer. 4) (Some) Typos in the man page fixed 5) Internationalization problems fixed 6) The VDM menu no longer gets destroyed when the root menu is re-read 7) Programs which start with multiple windows (e.g. ftptool) now start in the correct screen. 8) More consistent keypad namings: RowStart, DataStart, and RowEnd mappings no longer affect VDM movement; there are two new keybindings (UpLeft and DownLeft) which achieve that functionality in the VDM. 9) (Some) BadWindow warnings and errors are fixed. 10) Icons which are off the upper-left screen will be saved properly by the SAVE_WORKSPACE command. 11) Using Makefile.sunpro defaults correctly installs the olvwm.info file 12) olvwm now beeps in response to an attempt to unstick the VDM 13) New resource SortMenuType: If set to Alphabetic (default) then the WINMENU will show windows sorted alphabetically If set to Youngest (previous behaviour) then the WINMENU will show windows from youngest to oldest 14) WINMENU now shows only the windows for the current display 15) New DIRMENU features: Output is sorted alphabetically Environment variables in the directory path are expanded correctly Can specify a regular expression as the filename to display (but not as the directory) 16) A USR1 signal now restart olvwm 17) SuspendMouseless and QuoteNextKey keyboard commands are no longer grabbed in basic and sunview1 keyboard mode 18) Icon positioning when SnapToGrid is on is fixed 19) Popups now map to the same screen as the midpoint of their base frame; if a frame straddles the grid (including if its larger than the physical screen), its popups will now map to whichever virtual screen contains the midpoint of the base frame. 20) New resource GrabVirtualKeys: If this is false (its True by default) then olvwm will not grab all the keys which move you around the VDM; this means the, e.g., VirtualUpLeft will never be active, but UpLeft will still work when the root or the VDM window has the input focus. 21) It's now possible to set a myriad of cursors (even in color) for different feedback on the root, frames, buttons, icons, etc. See the olvwm man page for details on the new cursor resources. 22) NoDecor windows no longer respond (as advertised) to front/back, open/close, etc. commands. 23) Resize feedback now appears in the correct place in the VDM 24) Raise and RaiseLower are now valid actions in olvwmrc 25) New Keybindings: ToggleDragWindows, ToggleMoveGroups, ToggleSizeFullZoomX, and ToggleSticky to toggle the state of the corresponding resource. 26) Repainting the root on exit now depends on the PaintWorkspace resource 27) olvwmrc is now re-read whenever it has changed AND olvwm receives a function key keystroke (either normally or through a key it has grabbed). This option can be disabled by setting VirtualReRead to false (true by default). 28) Four new resources: NoVirtualKey, NoVirtualFKey, NoVirtualRKey, and NoVirtualLKey. Each of these is a list of windows (like the VirtualSticky resource) in which the corresponding keys (F, R, L, or all) will not be grabbed when that window has focus. However, this applies only to keys metioned in the .olvwmrc file; all the normal virtual key interfaces (meta-arrow, e.g.) will still function. It's an interface only a Wall Street trader could love. 29) New Keybinding SaveWorkspace for a key to save the workspace. 30) Synthetic events can now be received by olvwm: in order to do so, you must start olvwm with the -allowSynthetic option and you must set the SyntheticEvents resource to True. The SyntheticEvents resource can be toggled to allow/disallow events, but it olvwm only pays attention to it if the -allowSynthetic option is given. 31) Some memory problems fixed 32) 2d titles in Click-to-Type or InvertFocusMode are now drawn correctly Version 3.1 fixes: 1) Windows/popups/icons should all stay on the same screen better 2) New Resource (PointerWorkspace) to prevent setting the pointer on the root window and frames so that an alternate pointer can be set (functions like PaintWorkspace) 3) New Resource (SaveWorkspaceCmd) to specify an alternate to owplaces when SAVE_WORKSPACE is selected 4) If you pin the Root Menu automatically, you can no longer pin up a second copy. 5) Moving selected non-sticky clients into the VDM now works 6) The Warp action now effects all screens olvwm is managing 7) The GoTo command on the second screen now works 8) Help is now a valid key identifier in .olvwmrc 9) Menus without defaults no longer display the circle around the first entry 10) Goto calculation now works (as advertised) by columns instead of rows 11) multi-depth icon pixmaps now work 12) JumpUpLeft/JumpDownLeft keybinds fixed 13) Debugging code for window types fixed 14) New Makefile variable VERSION to determine if version.o is included 15) No longer need math library to compile olvwm 3.0 notes: INCOMPATIBILITIES WITH VERSION 2: 1) The Shift-Arrow and Control-Arrow methods of moving in the desktop have had their functionality reversed: shift-arrow now moves by half-desktops and control arrow now moves by many desktops. This is for consistency with the new mouseless commands which interpret ctrl-arrow as move ten items. 2) Double clicking anywhere within the VDM now moves to that location rather than zooming a window which may have been clicked on. This is either a bug fix or a new feature, depending on your perspective. 3) Pinned Root menus are by default no longer sticky; they must be stuck via the sticky list in .Xdefaults NEW FEATURES IN VERSION 3: Most of the changes in this version of olvwm are inherited from changes made to the 3.0 olwm and are not listed here. See the olwm man page for details. MENU CHANGES: 1) There is a new menu token WINMENU. Specifying this token creates an entry in your root menu containing a pull-right menu; the pull-right menu is a menu containing the titles of all active windows on the desktop (windows which are iconic will be listed with a preceeding graphic symbol). Selecting a window from this list will cause a user-specifiable action. These actions may be specified in the .olvwmrc file (see below); in the absence of any specifications, the default action will be to warp to the location on the desktop where the selected window is located, to open that window if it is iconic, and to raise that window to the top of the stacking order. 2) There is a new menu token DIRMENU. Specifying this token creates an entry containing a pull-right menu; the pull-right menu is a menu containing every file in the given directory. Selecting an entry off this menu (attempts to) execute the given file. 3) There is a new menu token STICK_UNSTICK_SELN which works to toggle the stickyness of the selected clients. 4) There is a new menu token COLUMNS which specifies how many columns a menu should have. It must appear after the start but before the end of a menu, e.g. "Shells" MENU "Shells" COLUMNS 2 "Shelltool..." exec shelltool ... "Shells" END 5) You can now specify an X bitmap file instead of a name for a menu item; enclose the bitmap file in <>: exec xfd -fn lucidasans NEW RESOURCES: 1) ResizeMoveGeometry: controls the placement of the olwm 3.0 moveresize feedback box. It's a standard X Geometry string, but you may specify the string center if you want it centered regardless of display resolution. 2) UseImages: If UseImages is set to UseNone, you'll get what you always got. If it's set to UseVDM, you'll get a bitmap-based VDM menu (this is the default). If it's set to UseAll you'll get bitmap-based window menus. 3) FullSizeZoomX: When this attribute is set to True, selecting "Full Size" from the window menu will cause the window to zoom horizontally as well as vertically. 4) InputFocusColor: When this attribute is set to a color specification, then the frame which has the Input Focus will be drawn in that color, as will the virtual window representing that frame. 5) NoDecor: This is a list attribute, similar to MinimalDecor. Windows whose Name, Instance, or Class match an entry in this list will be ignored by the window manager; though they will have a corresponding virtual window drawn in the VDM, they will be sticky or non-sticky depending on the appropriate entry in the VirtualSticky list, and they will be affected by the new Window Menu and Warp options described below. This is unlike windows which have the override_redirect flag set, for which absolutely no window manager actions have any effect. 6) VirtualMoveGroups: If this is True (default), then whenever you move a window from one logical screen to another, all of the window's followers (popups, menus, and icon) will follow it. Setting this to false gives the olvwm 2.0 behaviour where only the selected window moved. 7) RaiseOnMove: If this is True, then whenever a window is moved it will be raised to the top of the stacking order. This helps to avoid windows getting lost when dragging them out of the VDM (but the default is false). 8) VirtualRaiseVDM: If this is True, the VDM will always appear on the top of the stacking order. NEW RC FILE CHANGES: olvwm now reads an rc file to control usage in three areas: hot keys (desktop actions when a certain key is pressed), screen bindings (always map certain applications to specified logical screens), and WINMENU actions. See the olvwmrc.man page for details. MISC FUNCTIONAL CHANGES: 1) Popups will always appear on the same screen as their leader, even if that screen isn't visible. 2) You can now drop something into a virtual window. 3) The keymappings for the VDM can all be set via resources; see the man page for details. 4) There is a new VDM icon. BUGS FIXED IN VERSION 3 1) Switching between screens will correctly set the arrow-key input focus. 2) Menus which are taller than the screen are now split into columns; menu titles are centered 3) Sticky windows now always map to the current screen. 4) Several off-by-one grid errors have been fixed. 5) Changes to a tool's title are now reflected immediately in the VDM. 6) Override_redirect windows can no longer be affected by the L keys. 7) Exiting olvwm and starting another wm now correctly positions the windows 8) Miscellaneous fixes in the documentation ---Changes in Version 2.2---------------------------------------- FUNCTIONAL CHANGES: 1) New ways to move the desktop, including: A) If a motion key is shifted, motion amount is doubled B) If a motion key is pressed with the CTRL key, motion amount is halved C) If a motion key is pressed with SHIFT/CTRL, motion amount is multiplied by 20, which should take it to the nearest edge D) The function keys 1-10 can be used to move to a specific screen: screens are number across and then down from 1 to 10. E) If a motion key is pressed with the META key, then it will work no matter where the keyboard focus is. F) The MENU button within the VDM brings up a (pinnable) menu allowing motions. 2) Virtual Windows now react to mouse events and Front/Open keystrokes like any other window; they can be grouped, their frame menu displayed, etc. 3) New RelativePosition attribute added In past versions, by default, when the user specified a window placement, that position was used in absolute co-ordinates, and when a program specified a window placement, that position was used in relative co-ordinates. Some programs (frame and mailtool, for example) save some window states somewhere (frame does it in the document, mailtool in the .mailtool-init file) and then brings up these windows with user-specified co-ordinates. This means that if you start these programs in another part of the Virtual Desktop, some frames will come up in the wrong area of the screen -- they will come up where they last were rather than where you are now. Setting the RelativePosition attribute to True (its default) will make all window placement strings be relative to the current screen. The only time this setting should be a problem is if you are any place other than the upper-left corner and you want to bring up a window in absolute co-ordinates. But since absolute co-ordinates are normally only useful for things brought up in your .xinitrc/.openwin-init file, that shouldn't normally be a problem. 4) You can now specify sticky applications by the first word in their WM_NAME attribute as well as their WM_CLASS/WM_INSTANCE attribute. For some tools (eg Mailtool), the WM_NAME is multi-word: Mail Tool - /var/spool/mail/sdo for example; use only the first word (Mail) in the list as xrdb is incapable of imbedding spaces in the list. This allows (most) XView applications and pinned menus to be sticky. Note that the XView clock has by default no WM_NAME either; but it (and all XView applications) can set their name on the command line with -Wl . 5) The VDM now displays a grid (by default, but it can be turned off by setting VirtualGrid to None) for screen sizes. When the grid is on, dragging the mouse to move the desktop is constrained to move between whole screen regions (unless the CTRL button is pressed while dragging the mouse, in which case arbitrary positioning of the desktop is enabled). If the grid is off, you can move the desktop by arbitrary amounts unless the CTRL button is pressed, in which case movement will be constrained to full screens. BUG FIXES 6) Windows which don't register with the Window manager and are raised by the "Front" key no longer core dump. 7) The Save Workspace command now correctly saves non-Xview applications. 8) When olvwm is in MinimalDecor, it will resize correctly. 9) Clients like xterm can now receive input focus if click-to-type is in effect and the inside of the window is clicked. 10) Icons can now be moved into the VDM when SnapToGrid is in effect. 11) Applications which start sticky can be unstuck. 12) Moving multiple windows into the VDM no longer collapses the windows onto each other. 13) The root now correctly inherits keyboard events when shells exit. 14) Menus can now have embedded environmental variables 15) Sub-frames now inherit the stickyness of their parent. Note that in the OPEN LOOK paradigm, this means that command frames and pinned menus will inherit the stickyness of their parent but any other base frames (e.g. the compose window from mailtool) will not. 16) olvwm now avoids the OW2.0 server bug for small windows on CG3 displays which used to cause the server to crash. 17) Windows can no longer be dropped into obscured portions of the VDM SOURCE FIXES 18) Imakefile now lists resources1.o [Okay, I said I was no Imake user . . .] 19) Imakefile no longer tries to install openwin-menu 20) Imakefile correctly installs man page 21) New Imakefile for those without MIT XView but with OpenWindows xview-3.2p1.4/clients/olvwm-4.1/olvwmrc.y100644 1750 1750 104773 5515340515 15471 0ustar mbmb/* * (c) Copyright 1991 Scott Oaks * See LEGAL_NOTICE file for terms of the license. */ %{ #ifdef IDENT #ident "@(#)olvwmrc.y 1.6 olvwm version 07 Jan 1994" #endif #include #include #include #include #include #include #include #include #include #include #include "i18n.h" #include "olwm.h" #include "ollocale.h" #include "list.h" #include "mem.h" #include "win.h" #include "menu.h" #include "kbdfuncs.h" #include "globals.h" #include "virtual.h" #define OLVWM_USE_SELECTION "OLVWM_USE_SELECTION" extern CheckForKeyProg(); char *LookupToken(); char *FindOlvwmRC(); void resetKeys(); char *strexpand(); typedef struct progscreen { char *target; int screen; } ProgScreen; typedef struct assignment { char *name; char *value; } Variable; static Variable *varMatch(); typedef enum { Warp, Open, Raise, Execute, Goto, Close, Quit, RaiseLower, Lower, Geometry, Rebind, Stick, SetSize, Focus, IfElse } Action; typedef struct progkeynode { Action action; char *parameter; } ProgKeyNode; typedef struct progkey { int modmask; KeyCode keycode; List *todo; } ProgKey; typedef struct ifelsestruct { char *identifier; List *doIf, *doElse; } IfElseStruct; typedef struct winmenuactions { char *key; List *actions; } WinMenuActions; List *ProgScreenList = NULL; List *VariableList = NULL; List *ProgKeyList = NULL; List *WinMenuActionsList = NULL; static Display *dpy; %} %start file %union { int ival; void *sval; } %token WARP %token OPEN %token RAISE %token CLOSE %token QUIT %token EXECUTE %token GOTO %token MODIFIER %token WORD %token COLON %token OPENBRACE %token CLOSEBRACE %token COMMA %token SCREEN %token INT %token STARTSQUOTE %token STARTDQUOTE %token ENDSQUOTE %token ENDDQUOTE %token WINMENU %token PLUS %token RAISELOWER %token LOWER %token GEOMETRY %token REBIND %token STICK %token SETSIZE %token FOCUS %token EQUALS %token IFELSE %type List %type Modifier %type Actions %type KeySpec %type WarpAction %type OpenAction %type RaiseAction %type RaiseLowerAction %type LowerAction %type GotoAction %type ExecuteAction %type CloseAction %type QuitAction %type ScreenStart %type String %type WinMenuActions %type Key %type GeometryAction %type RebindAction %type StickAction %type SetSizeAction %type FocusAction %type IfElseAction %% /* Rules */ file : /* empty */ | file KeyProg | file ScreenProg | file WinMenuProg | file Assignment | error CLOSEBRACE Assignment : WORD EQUALS String { Variable *v; v = ListApply(VariableList, varMatch, $1); if (v != NULL) { MemFree(v->value); v->value = strdup($3); } else { v = (Variable *) MemAlloc(sizeof(*v)); v->name = strdup($1); v->value = strdup($3); VariableList = ListCons(v, VariableList); } } KeyProg : KeySpec OPENBRACE Actions CLOSEBRACE { ProgKey *p; int ret; KeyDescriptor *d; p = $1; p->todo = $3; d = (KeyDescriptor *) MemAlloc(sizeof(*d)); d->rsrc_name = NULL; d->dflt_binding = NULL; d->function = (void (*)()) CheckForKeyProg; d->action = ACTION_VIRTUAL; d->flags = KD_IMMUNE; AddKeyBinding(p->keycode, p->modmask, d); ProgKeyList = ListCons($1, ProgKeyList); } ScreenProg : ScreenStart List CLOSEBRACE { ProgScreen *p; p = (ProgScreen *) MemAlloc(sizeof(ProgScreen)); p->screen = $1 - 1; /* count internally from 0 */ p->target = $2; ProgScreenList = ListCons(p, ProgScreenList); } WinMenuProg : WINMENU OPENBRACE WinMenuActions CLOSEBRACE { static int DoneWinMenuActions = False; if (DoneWinMenuActions) { ErrorWarning(gettext("Duplicate WINMENU entry in .olvwmrc")); YYERROR; } WinMenuActionsList = $3; } WinMenuActions : /* empty */ { $$ = NULL; } | WinMenuActions String OPENBRACE Actions CLOSEBRACE { WinMenuActions *p; p = (WinMenuActions *) MemAlloc(sizeof(WinMenuActions)); p->key = strdup($2); p->actions = $4; $$ = ListCons(p, $1); } Actions : /* empty */ { $$ = NULL; } | Actions WarpAction { $$ = ListCons($2, $1); } | Actions OpenAction { $$ = ListCons($2, $1); } | Actions RaiseAction { $$ = ListCons($2, $1); } | Actions ExecuteAction { $$ = ListCons($2, $1); } | Actions GotoAction { $$ = ListCons($2, $1); } | Actions CloseAction { $$ = ListCons($2, $1); } | Actions QuitAction { $$ = ListCons($2, $1); } | Actions RaiseLowerAction { $$ = ListCons($2, $1); } | Actions LowerAction { $$ = ListCons($2, $1); } | Actions GeometryAction { $$ = ListCons($2, $1); } | Actions RebindAction { $$ = ListCons($2, $1); } | Actions StickAction { $$ = ListCons($2, $1); } | Actions SetSizeAction { $$ = ListCons($2, $1); } | Actions FocusAction { $$ = ListCons($2, $1); } | Actions IfElseAction { $$ = ListCons($2, $1); } WarpAction : WARP COLON String { ProgKeyNode *p; p = (ProgKeyNode *) MemAlloc(sizeof(ProgKeyNode)); p->action = Warp; p->parameter = strdup($3); $$ = p; } CloseAction: CLOSE COLON List { ProgKeyNode *p; p = (ProgKeyNode *) MemAlloc(sizeof(ProgKeyNode)); p->action = Close; p->parameter = $3; $$ = p; } QuitAction: QUIT COLON List { ProgKeyNode *p; p = (ProgKeyNode *) MemAlloc(sizeof(ProgKeyNode)); p->action = Quit; p->parameter = $3; $$ = p; } OpenAction: OPEN COLON List { ProgKeyNode *p; p = (ProgKeyNode *) MemAlloc(sizeof(ProgKeyNode)); p->action = Open; p->parameter = $3; $$ = p; } RaiseLowerAction: RAISELOWER COLON List { ProgKeyNode *p; p = (ProgKeyNode *) MemAlloc(sizeof(ProgKeyNode)); p->action = RaiseLower; p->parameter = $3; $$ = p; } LowerAction: LOWER COLON List { ProgKeyNode *p; p = (ProgKeyNode *) MemAlloc(sizeof(ProgKeyNode)); p->action = Lower; p->parameter = $3; $$ = p; } RaiseAction: RAISE COLON List { ProgKeyNode *p; p = (ProgKeyNode *) MemAlloc(sizeof(ProgKeyNode)); p->action = Raise; p->parameter = $3; $$ = p; } ExecuteAction: EXECUTE COLON List { ProgKeyNode *p; p = (ProgKeyNode *) MemAlloc(sizeof(ProgKeyNode)); p->action = Execute; p->parameter = $3; $$ = p; } GotoAction: GOTO COLON String { ProgKeyNode *p; p = (ProgKeyNode *) MemAlloc(sizeof(ProgKeyNode)); p->action = Goto; p->parameter = strdup($3); $$ = p; } | GOTO COLON INT { ProgKeyNode *p; char s[80]; p = (ProgKeyNode *) MemAlloc(sizeof(ProgKeyNode)); p->action = Goto; sprintf(s, "%d", $3); p->parameter = strdup(s); $$ = p; } GeometryAction : GEOMETRY COLON String { ProgKeyNode *p; p = (ProgKeyNode *) MemAlloc(sizeof(ProgKeyNode)); p->action = Geometry; p->parameter = strdup($3); $$ = p; } RebindAction : REBIND COLON { ProgKeyNode *p; p = (ProgKeyNode *) MemAlloc(sizeof(ProgKeyNode)); p->action = Rebind; p->parameter = NULL; $$ = p; } | REBIND COLON String { ProgKeyNode *p; p = (ProgKeyNode *) MemAlloc(sizeof(ProgKeyNode)); p->action = Rebind; p->parameter = strdup($3); $$ = p; } StickAction : STICK COLON String { ProgKeyNode *p; p = (ProgKeyNode *) MemAlloc(sizeof(ProgKeyNode)); p->action = Stick; p->parameter = strdup($3); $$ = p; } SetSizeAction : SETSIZE COLON String { ProgKeyNode *p; p = (ProgKeyNode *) MemAlloc(sizeof(ProgKeyNode)); p->action = SetSize; p->parameter = strdup($3); $$ = p; } FocusAction : FOCUS COLON String { ProgKeyNode *p; p = (ProgKeyNode *) MemAlloc(sizeof(ProgKeyNode)); p->action = Focus; p->parameter = strdup($3); $$ = p; } IfElseAction: IFELSE COLON String OPENBRACE Actions CLOSEBRACE OPENBRACE Actions CLOSEBRACE { ProgKeyNode *p; IfElseStruct *s; p = (ProgKeyNode *) MemAlloc(sizeof(ProgKeyNode)); s = (IfElseStruct *) MemAlloc(sizeof(IfElseStruct)); p->action = IfElse; p->parameter = (char *) s; s->identifier = strdup($3); s->doIf = $5; s->doElse = $8; $$ = p; } KeySpec : Key Modifier { KeySym ks; KeyCode kc; ProgKey *p; char msg[80]; ks = XStringToKeysym($1); if (ks == NoSymbol) { sprintf(msg, gettext("Unknown keysymbol %s in .olvwmrc"), $1); ErrorWarning(msg); YYERROR; } kc = XKeysymToKeycode(dpy, ks); if (kc == 0) { sprintf(msg, gettext("Unknown keysymbol %s in .olvwmrc"), $1); ErrorWarning(msg); YYERROR; } p = (ProgKey *) MemAlloc(sizeof(ProgKey)); p->keycode = kc; p->modmask = $2; $$ = p; free($1); } Key : String { $$ = strdup($1); } Modifier : /* empty */ { $$ = 0; } | Modifier PLUS MODIFIER { KeyCode kc; char msg[80]; if ($3 == -1) $$ = AnyModifier; else { kc = XKeysymToKeycode(dpy, $3); if (kc == 0) { sprintf(msg, gettext("Unknown modifer %d\n in .olvwmrc"), $2); ErrorWarning(msg); YYERROR; } } $$ |= FindModifierMask(kc); } List : String { $$ = $1; } | List COMMA String { char *s; s = MemAlloc(strlen($1) + strlen($3) + 2); sprintf(s, "%s,%s", $1, $3); free($1); free($3); $$ = s; } ScreenStart : SCREEN INT OPENBRACE { $$ = $2; } String : WORD { char *t; t = $1; if (*t == '\"' || *t == '\'') { /* word in quotes; get rid of them */ t++; t[strlen(t) - 1] = '\0'; } $$ = strexpand(t); free($1); } %% /* Programs */ #define YYDEBUG 1 #include "parse.c" extern List *ActiveClientList; extern Client *CurrentClient; yyerror(s) char *s; { char msg[256]; sprintf(msg, gettext("Syntax error near %s in .olvwmrc -- entry ignored\n"), yytext); ErrorWarning(msg); } static int getname(s, name) char **s; char name[]; { int i = 0; char look = '\0'; if (**s == '{') { (*s)++; look = '}'; } while (**s && (isalnum(**s) || **s == '_')) { name[i++] = **s; (*s)++; } name[i] = '\0'; if (**s != look) { (*s)--; } if (look && (**s != look)) { char msg[256]; sprintf(msg, gettext("Unterminated variable reference for '%s'.\n"), name); ErrorWarning(msg); return(False); } return(True); } static char * strexpand(s) char *s; { int length = 0; char *c; char *t; char *string; char name[256]; char msg[256]; /* * Calculate length of fully expanded string. */ for (t = s; *t; t++) { if (*t == '%') { t++; if (*t == '%') length++; else { Variable *v; if (getname(&t, name)) { v = ListApply(VariableList, varMatch, name); if (v == NULL) { sprintf(msg, gettext("Reference to undefined variable '%s' ignored.\n"), name); ErrorWarning(msg); } else { length += strlen(v->value); } } } } else if (*t == '$') { t++; if (*t == '$') { length++; } else { char *v; if (getname(&t, name)) { v = getenv(name); if (v != NULL) { length += strlen(v); } } } } else { length++; } } /* * Allocate and construct fully expanded string. */ c = string = MemAlloc(length + 1); for (t = s; *t; t++) { if (*t == '%') { t++; if (*t == '%') { *c = *t; c++; } else { Variable *v; if (getname(&t, name)) { v = ListApply(VariableList, varMatch, name); if (v == NULL) { sprintf(msg, gettext("Reference to undefined variable '%s' ignored.\n"), name); ErrorWarning(msg); } else { strcpy(c, v->value); c += strlen(v->value); } } } } else if (*t == '$') { t++; if (*t == '$') { *c = *t; c++; } else { char *v; if (getname(&t, name)) { v = getenv(name); if (v != NULL) { strcpy(c, v); c += strlen(v); } } } } else { *c = *t; c++; } } *c = '\0'; return(string); } static Variable * varMatch(var, name) Variable *var; char *name; { if (strcmp(var->name, name) == 0) return(var); return((Variable *) NULL); } static ProgKey * matchProgKey(p, ev) ProgKey *p; XEvent *ev; { if (p->keycode == ev->xkey.keycode && (p->modmask == AnyModifier || p->modmask == ev->xkey.state)) return p; return NULL; } static ProgScreen * matchProgString(p, s) ProgScreen *p; char *s; { char *t, *t1; if (!s) return NULL; t1= strdup(p->target); t = LookupToken(t1, ","); while (t) { if (!strncmp(t, s, strlen(t))) { free(t1); return p; } t = LookupToken(NULL, ","); } free(t1); return NULL; } static int findClient_rootid; static Client * findClient(c, s) Client *c; char *s; { if (findClient_rootid && findClient_rootid != c->scrInfo->rootid) return NULL; if (c->framewin && c->framewin->fcore.name) if (!strncmp(c->framewin->fcore.name, s, strlen(s))) return c; if (c->wmClass) if (!strcmp(c->wmClass, s)) return c; if (c->wmInstance) if (!strcmp(c->wmInstance, s)) return c; return NULL; } static int applyIsKey = False; static int rebind = False; static char *rebindFile = NULL; static WinGeneric *CurrentScreenClient = NULL; static Client *FocusClient = NULL; static void clientWarp(); static void clientSaveFocus(); static void clientRestoreFocus(); static int applyAction(p, cli) ProgKeyNode *p; Client *cli; { Client *c; char *s, *t; char **env; List *l; struct stat statbuf; switch(p->action) { case Warp: /* * We only allow one lookup per warp, but we can't use p.parameter * directly, since it may contain special characters which * LookupToken will remove */ s = strdup(p->parameter); t = LookupToken(s, ","); if (!strcmp(t, OLVWM_USE_SELECTION)) { if (cli && cli->framewin) clientWarp(cli); } else { extern List *ScreenInfoList; List *l = ScreenInfoList; ScreenInfo *scr; /* allow one warp per screen */ for (scr = ListEnum(&l); scr != NULL; scr = ListEnum(&l)) { findClient_rootid = scr->rootid; c = (Client *) ListApply(ActiveClientList, findClient, t); if (c) clientWarp(c); } findClient_rootid = 0; } free(s); break; case Open: s = strdup(p->parameter); t = LookupToken(s, ","); while (t) { if (!strcmp(t, OLVWM_USE_SELECTION)) { if (cli && cli->framewin) StateNormal(cli, TimeFresh()); } else { l = ActiveClientList; for (c = ListEnum(&l); c != NULL; c = ListEnum(&l)) if (findClient(c, t) && c->wmState != NormalState) StateNormal(c, TimeFresh()); } t = LookupToken(NULL, ","); } free(s); break; case Close: s = strdup(p->parameter); t = LookupToken(s, ","); while (t) { if (!strcmp(t, OLVWM_USE_SELECTION)) { if (cli && cli->framewin) StateIconic(cli, TimeFresh()); } else { l = ActiveClientList; for (c = ListEnum(&l); c != NULL; c = ListEnum(&l)) if (findClient(c, t) && c->wmState != IconicState) StateIconic(c, TimeFresh()); } t = LookupToken(NULL, ","); } free(s); break; case Quit: s = strdup(p->parameter); t = LookupToken(s, ","); while (t) { if (!strcmp(t, OLVWM_USE_SELECTION)) { if (cli && cli->framewin) ClientKill(cli, True); } else { l = ActiveClientList; for (c = ListEnum(&l); c != NULL; c = ListEnum(&l)) if (findClient(c, t)) ClientKill(c, True); } t = LookupToken(NULL, ","); } free(s); break; case Raise: s = strdup(p->parameter); t = LookupToken(s, ","); while (t) { if (!strcmp(t, OLVWM_USE_SELECTION)) { if (cli && cli->framewin) { if (cli->wmState == IconicState) RaiseWindow(cli->iconwin); else if (cli->wmState == NormalState) RaiseWindow(cli->framewin); } } else { l = ActiveClientList; for (c = ListEnum(&l); c != NULL; c = ListEnum(&l)) if (findClient(c, t)) if (c->wmState == IconicState) RaiseWindow(c->iconwin); else if (c->wmState == NormalState) RaiseWindow(c->framewin); } t = LookupToken(NULL, ","); } free(s); break; case RaiseLower: s = strdup(p->parameter); t = LookupToken(s, ","); while (t) { if (!strcmp(t, OLVWM_USE_SELECTION)) { if (cli && cli->framewin) ClientToggleStacking(cli); } else { l = ActiveClientList; for (c = ListEnum(&l); c != NULL; c = ListEnum(&l)) if (findClient(c, t)) ClientToggleStacking(c); } t = LookupToken(NULL, ","); } free(s); break; case Lower: s = strdup(p->parameter); t = LookupToken(s, ","); while (t) { if (!strcmp(t, OLVWM_USE_SELECTION)) { if (cli && cli->framewin) { if (cli->wmState == IconicState) LowerWindow(cli->iconwin); else if (cli->wmState == NormalState) LowerWindow(cli->framewin); } } else { l = ActiveClientList; for (c = ListEnum(&l); c != NULL; c = ListEnum(&l)) if (findClient(c, t)) if (c->wmState == IconicState) LowerWindow(c->iconwin); else if (c->wmState == NormalState) LowerWindow(c->framewin); } t = LookupToken(NULL, ","); } free(s); break; case Execute: s = strdup(p->parameter); t = LookupToken(s, ","); while (t) { if (cli && cli->scrInfo) ExecCommand(cli->scrInfo->environment, t); else ExecCommand(NULL, t); t = LookupToken(NULL, ","); } free(s); break; case Goto: if (cli && cli->scrInfo) VDMGoto(dpy, cli, atoi(p->parameter)); break; case Geometry: /* * If there is a client & it is resizable. */ if (cli && cli->wmDecors && (cli->wmDecors->flags & WMDecorationResizeable)) { int r; int x, y; unsigned int w, h; ScreenInfo *scrInfo = cli->scrInfo; clientSaveFocus(cli); r = XParseGeometry(p->parameter, &x, &y, &w, &h); /* * Adjust dimensions by border size. */ if (r & WidthValue) { w += 2 * cli->framewin->fcore.panewin->core.x; } else w = cli->framewin->core.width; if (r & HeightValue) { h += cli->framewin->fcore.panewin->core.y + cli->framewin->fcore.panewin->core.x; } else h = cli->framewin->core.height; if (r & XNegative) x = DisplayWidth(cli->dpy, scrInfo->screen) + x - w + cli->framewin->fcore.panewin->core.x; else if (!(r & XValue)) x = cli->framewin->core.x; if (r & YNegative) y = DisplayHeight(cli->dpy, scrInfo->screen) + y - h + cli->framewin->fcore.panewin->core.x; else if (!(r & YValue)) y = cli->framewin->core.y; GFrameSetConfig(cli->framewin, x, y, w, h); clientRestoreFocus(); } break; case Rebind: rebindFile = p->parameter; rebind = True; /* * Don't rebind if a bindings file was specified & doesn't exist. */ if ((p->parameter != NULL) && (stat(p->parameter, &statbuf) != 0)) { rebind = False; } break; case Stick: if (!p->parameter) { if (cli && cli->framewin) { MakeSticky(cli, ! cli->sticky); } } else { if (!strcmp(p->parameter, "on")) { if (cli && cli->framewin) { MakeSticky(cli, True); } } else if (!strcmp(p->parameter, "off")) { if (cli && cli->framewin) { MakeSticky(cli, False); } } else if (!strcmp(p->parameter, "toggle")) { if (cli && cli->framewin) { MakeSticky(cli, ! cli->sticky); } } else { s = strdup(p->parameter); t = LookupToken(s, ","); while (t) { l = ActiveClientList; if (!strcmp(t, OLVWM_USE_SELECTION)) { if (cli && cli->framewin) { MakeSticky(cli, ! cli->sticky); } } else for (c = ListEnum(&l); c != NULL; c = ListEnum(&l)) if (findClient(c, t)) MakeSticky(c, ! c->sticky); t = LookupToken(NULL, ","); } free(s); } } break; case SetSize: if (! p->parameter) { if (cli && cli->framewin) { ClientFullRestoreSizeToggle(cli, TimeFresh()); } } else { if (!strcmp(p->parameter, "full")) { if (cli && cli->framewin && ! cli->framewin->fcore.fullsize) ClientFullRestoreSizeToggle(cli, TimeFresh()); } else if (!strcmp(p->parameter, "save") || !strcmp(p->parameter, "store")) { if (cli && cli->framewin && (!strcmp(p->parameter, "store") || !cli->framewin->fcore.fullsize)) { WinPaneFrame *frameInfo = cli->framewin; frameInfo->restoreWidth = frameInfo->core.width - (2 * frameInfo->fcore.panewin->core.x); frameInfo->restoreHeight = frameInfo->core.height - (frameInfo->fcore.panewin->core.y + cli->framewin->fcore.panewin->core.x); frameInfo->restoreY = frameInfo->core.y; frameInfo->restoreX = frameInfo->core.x; /* * Make sure Restore/Full size menu item is correct * for SetSize: store operation. */ if (!strcmp(p->parameter, "store")) { frameInfo->restoreSet = False; cli->framewin->fcore.fullsize = False; } else { frameInfo->restoreSet = True; cli->framewin->fcore.fullsize = True; } cli->framewin->fcore.fullsize = True; } } else if (!strcmp(p->parameter, "restore")) { if (cli && cli->framewin && cli->framewin->fcore.fullsize) ClientFullRestoreSizeToggle(cli, TimeFresh()); } else if (cli && cli->framewin && !strcmp(p->parameter, "toggle")) { ClientFullRestoreSizeToggle(cli, TimeFresh()); } else { s = strdup(p->parameter); t = LookupToken(s, ","); while (t) { l = ActiveClientList; if (!strcmp(t, OLVWM_USE_SELECTION)) { if (cli && cli->framewin) { ClientFullRestoreSizeToggle(cli, TimeFresh()); } } else for (c = ListEnum(&l); c != NULL; c = ListEnum(&l)) if (findClient(c, t)) ClientFullRestoreSizeToggle(c, TimeFresh()); t = LookupToken(NULL, ","); } free(s); } } break; case Focus: if (!strcmp(p->parameter, "save")) { clientSaveFocus(cli); } else if (!strcmp(p->parameter, "restore")) { clientRestoreFocus(); } break; case IfElse: { IfElseStruct *ie; ie = (IfElseStruct *) p->parameter; l = ActiveClientList; for (c = ListEnum(&l); c != NULL; c = ListEnum(&l)) { if (findClient(c, ie->identifier)) { ListApply(ie->doIf, applyAction, c); return; } } ListApply(ie->doElse, applyAction, cli); } } return False; } static void clientWarp(c) Client *c; { int rootX, rootY, winX, winY; unsigned int keys; Window root, child; VDMMoveTo(dpy, c, c->framewin->core.x, c->framewin->core.y); /* * If we got here via a key, move the mouse to the window and * give it focus */ if (applyIsKey) { XWarpPointer(dpy, None, c->framewin->core.self, 0, 0, 0, 0, c->framewin->core.width / 2, c->framewin->core.height / 2); } if (!GRV.FocusFollowsMouse) ClientSetFocus(c, True, CurrentTime); } static void clientSaveFocus(cli) Client *cli; { if (cli) { FocusClient = cli; } } static void clientRestoreFocus() { if (FocusClient) { /* * Set focus to FocusClient, notify client of focus, * set current client to FocusClient, reset FocusClient. */ ClientSetFocus(FocusClient, True, CurrentTime); ClientSetCurrent(FocusClient); FocusClient = NULL; } } char * FindOlvwmRC(buf) struct stat *buf; { char *path; static char s[256]; extern char *getenv(); struct stat tmp; if (buf == NULL) buf = &tmp; /* try reading OLVWMRC */ path = getenv("OLVWMRC"); if (path && stat(path, buf) == 0) return path; /* try reading current directory */ sprintf(s, ".olvwmrc"); if (stat(s, buf) == 0) return s; if ((path = getenv("HOME")) != NULL) { sprintf(s, "%s/.olvwmrc", getenv("HOME")); if (stat(s, buf) == 0) return s; } return NULL; } static struct stat olvwmBuf; static struct stat olvwmOldBuf; InitOlvwmRC(ldpy, path) Display *ldpy; char *path; { if (path == NULL) path = FindOlvwmRC(&olvwmBuf); if (path == NULL || (yyin = fopen(path, "r")) == NULL) return; olvwmOldBuf = olvwmBuf; dpy = ldpy; yyparse(); #ifdef DEBUG DumpProgKeyList(); DumpScreenList(); DumpWinMenuList(); #endif fclose(yyin); } /* * Check to see if olvwmrc has been changed since we last read it */ CheckOlvwmRC(dpy) Display *dpy; { char *p = FindOlvwmRC(&olvwmBuf); extern XrmDatabase OlwmDB; if (!p) return; if (olvwmBuf.st_mtime != olvwmOldBuf.st_mtime || olvwmBuf.st_size != olvwmOldBuf.st_size || olvwmBuf.st_dev != olvwmOldBuf.st_dev || olvwmBuf.st_ino != olvwmOldBuf.st_ino) { RefreshKeyGrabs(dpy, OlwmDB); olvwmOldBuf = olvwmBuf; } } DestroyVariable(p) Variable *p; { MemFree(p->name); MemFree(p->value); return False; } DestroyProgScreen(p) ProgScreen *p; { MemFree(p->target); return False; } DestroyProgKeyNode(p) ProgKeyNode *p; { if (p->action == IfElse) { IfElseStruct *ie; ie = (IfElseStruct *) p->parameter; MemFree(ie->identifier); ListApply(ie->doIf, DestroyProgKeyNode, 0); ListApply(ie->doElse, DestroyProgKeyNode, 0); } else MemFree(p->parameter); return False; } DestroyProgKey(p) ProgKey *p; { ListApply(p->todo, DestroyProgKeyNode, 0); ListDestroy(p->todo); return False; } DestroyWinMenuActions(p) WinMenuActions *p; { ListApply(p->actions, DestroyProgKeyNode, 0); ListDestroy(p->actions); return False; } ReInitOlvwmRC(ldpy, path) Display *ldpy; char *path; { ListApply(ProgScreenList, DestroyProgScreen, 0); ListDestroy(ProgScreenList); ListApply(ProgKeyList, DestroyProgKey, 0); ListDestroy(ProgKeyList); ListApply(WinMenuActionsList, DestroyWinMenuActions, 0); ListDestroy(WinMenuActionsList); ListApply(VariableList, DestroyVariable, 0); ListDestroy(VariableList); ProgScreenList = NULL; ProgKeyList = NULL; WinMenuActionsList = NULL; VariableList = NULL; InitOlvwmRC(ldpy, path); } SearchProgString(dpy, scrInfo, name, inst, wm_class, frame_x, frame_y, icon_x, icon_y) Display *dpy; ScreenInfo *scrInfo; char *name, *inst, *wm_class; int *frame_x, *frame_y, *icon_x, *icon_y; { ProgScreen *p = NULL; int dw = DisplayWidth(dpy, scrInfo->screen); int dh = DisplayHeight(dpy, scrInfo->screen); if (name) p = (ProgScreen *) ListApply(ProgScreenList, matchProgString, name); if (!p && inst) p = (ProgScreen *) ListApply(ProgScreenList, matchProgString, inst); if (!p && wm_class) p = (ProgScreen *) ListApply(ProgScreenList, matchProgString, wm_class); if (p) { *frame_x = (*frame_x % dw) + dw * (p->screen % scrInfo->vdm->columns) + scrInfo->vdm->offsetX; *icon_x = (*icon_x % dw) + dw * (p->screen % scrInfo->vdm->columns) + scrInfo->vdm->offsetX; *frame_y = (*frame_y % dh) + dh * (p->screen / scrInfo->vdm->columns) + scrInfo->vdm->offsetY; *icon_y = (*icon_y % dh) + dh * (p->screen / scrInfo->vdm->columns) + scrInfo->vdm->offsetY; } } /* ARGSUSED */ CheckForKeyProg(dpy, ev) Display *dpy; XEvent *ev; { ProgKey *p; WinGeneric *win; extern XrmDatabase OlwmDB; p = (ProgKey *) ListApply(ProgKeyList, matchProgKey, ev); if (!p) return False; if (ev->xkey.type != KeyPress) return False; applyIsKey = True; ListApply(p->todo, applyAction, CurrentClient); if (rebind) { RefreshKeyGrabsFile(dpy, OlwmDB, rebindFile); rebind = False; rebindFile = NULL; } return True; } DumpProgKeyNode(n) ProgKeyNode *n; { printf(gettext("Action %d parameter %s\n"), n->action, n->parameter); return False; } DumpProgKey(p) ProgKey *p; { printf(gettext("Actions for key %d mask %x\n"), p->keycode, p->modmask); ListApply(p->todo, DumpProgKeyNode, 0); return False; } DumpProgKeyList() { ListApply(ProgKeyList, DumpProgKey, 0); } DumpProgScreen(p) ProgScreen *p; { printf(gettext("Screen %d: %s\n"), p->screen, p->target); return False; } DumpWinMenu(p) WinMenuActions *p; { printf(gettext("Menu key %s\n"), p->key); ListApply(p->actions, DumpProgKeyNode, 0); return False; } DumpScreenList() { ListApply(ProgScreenList, DumpProgScreen, 0); } DumpWinMenuList() { ListApply(WinMenuActionsList, DumpWinMenu, 0); } char * LookupToken(src, delim) char *src; char *delim; { static char last[128], *next, *final; char *s; int idx = 0; if (src) { next = src; final = src + strlen(src); } if (next > final) return NULL; s = next; while (*s && !strchr(delim, *s)) { if (*s == '\\') s++; else if (*s == '\"') { last[idx++] = *s++; while (*s && *s != '\"') last[idx++] = *s++; } else if (*s == '\'') { last[idx++] = *s++; while (*++s && *s != '\'') last[idx++] = *s++; } last[idx++] = *s++; } *s = '\0'; last[idx] = '\0'; next = s + 1; return last; } /* ARGSUSED */ MenuOfWindowsAction(dpy,winInfo,menuInfo,idx) Display *dpy; WinGeneric *winInfo; MenuInfo *menuInfo; int idx; { Client *cli; List *l; cli = (Client *) menuInfo->menu->buttons[idx]->action.submenu; l = (List *) ListApply(WinMenuActionsList, matchProgString, cli->framewin->fcore.name); if (!l) l = (List *) ListApply(WinMenuActionsList, matchProgString, cli->wmInstance); if (!l) l = (List *) ListApply(WinMenuActionsList, matchProgString, cli->wmClass); if (l) { applyIsKey = False; ListApply(l, applyAction, cli); } else { /* Warp */ VDMMoveTo(dpy, cli, cli->framewin->core.x, cli->framewin->core.y); /* Open */ if (cli && cli->wmState != NormalState) StateNormal(cli, TimeFresh()); /* Raise */ RaiseWindow(cli->framewin); } } static void * addButton(cli, menu) Client *cli; Menu *menu; { Button *b; int len; #define MENU_LENGTH (32) if (!cli->framewin) return NULL; if (GRV.VirtualMenuSort == SortYounger || GRV.VirtualMenuSort == SortAlpha) if (findClient_rootid != cli->screen) return NULL; if (!menu->buttonCount++) menu->buttons = (Button **) MemAlloc(sizeof(Button *)); else menu->buttons = (Button **) MemRealloc(menu->buttons, menu->buttonCount * sizeof(Button *)); b = (Button *) MemAlloc(sizeof(Button)); menu->buttons[menu->buttonCount - 1] = b; len = strlen(cli->framewin->fcore.name); if (len > MENU_LENGTH) len = MENU_LENGTH; b->label[0].kind = StringLabel; b->label[1].kind = NoType; b->label[0].string = MemAlloc(len + 4); b->label[0].string[0] = '\0'; if (cli->wmState == IconicState) strcat(b->label[0].string, "\244"); else strcat(b->label[0].string, " "); strcat(b->label[0].string, " "); strncat(b->label[0].string, cli->framewin->fcore.name, MENU_LENGTH); b->label[1].string = NULL; b->helpstring[0] = b->helpstring[1] = NULL; b->which = 0; b->has_submenu = False; b->enabled = True; b->visible = True; b->callback = MenuOfWindowsAction; b->action.submenu = (Menu *) cli; b->generate_func = NULL; return NULL; } static int cmpButton(a1, a2) #ifdef SVR4 const void *a1, *a2; #else void *a1, *a2; #endif { Button **b1 = (Button **) a1; Button **b2 = (Button **) a2; int type; char buf1[256], buf2[256]; type = ((*b1)->label[0].string[0] == '\244') | (((*b2)->label[0].string[0] == '\244') << 1); switch(type) { default: case 0: return strcmp(gettext((*b1)->label[0].string), gettext((*b2)->label[0].string)); case 1: return 1; case 2: return -1; case 3: strnlower(buf1, gettext((*b1)->label[0].string + 1), strlen(gettext((*b1)->label[0].string + 1))); strnlower(buf2, gettext((*b2)->label[0].string + 1), strlen(gettext((*b2)->label[0].string + 1))); return strcmp(buf1, buf2); } } /* ARGSUSED */ GenWinMenuFunc(dpy, menuInfo, bindex, cache, winInfo, depth) Display *dpy; MenuInfo *menuInfo; int bindex; MenuCache *cache; WinGeneric *winInfo; int depth; { Menu *menu; int columns, slot; MenuCache *menuCache; extern MenuInfo *MenuInfoCreate(); menuCache = winInfo->core.client->scrInfo->menuCache; for (slot = 0; slot < menuCache->nextSlot; slot++) if (menuInfo->buttons[bindex].subMenu == menuCache->menuInfoList[slot]) break; if (slot == menuCache->nextSlot) slot = MENU_NEWSLOT; columns = menuInfo->buttons[bindex].subMenu->menu->prefColSize; MenuInfoDestroy(menuInfo->buttons[bindex].subMenu); menu = (Menu *) MemAlloc(sizeof(Menu)); menu->buttons = NULL; menu->buttonCount = 0; menu->buttonDefault = NOBUTTON; menu->hasPushPin = False; menu->menudirty = True; menu->helpstring = "olvwm:WinMenu"; menu->btnPerCol = 0; menu->maxLabWidth = 0; menu->prefColSize = columns; findClient_rootid = winInfo->core.client->screen; ListApply(ActiveClientList, addButton, menu); if (GRV.VirtualMenuSort == SortAlpha || GRV.VirtualMenuSort == SortAlphaAll) qsort(menu->buttons, menu->buttonCount, sizeof(Button *), cmpButton); menuInfo->buttons[bindex].subMenu = MenuInfoCreate(cache, winInfo, menu, depth, slot); } xview-3.2p1.4/clients/olvwm-4.1/vdm.icon100644 1750 1750 3721 5515341514 15175 0ustar mbmb#ifdef IDENT #ident "@(#)vdm.icon 1.2 olvwm version 25 Nov 1992" #endif #define vdm_width 64 #define vdm_height 45 static unsigned char vdm_bits[] = { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x03, 0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x0e, 0x71,0x00,0x00,0x00,0x00,0x00,0xc0,0xe1,0x86,0x01,0x00,0x00,0x00,0x00,0x38, 0x1c,0x38,0x0e,0x00,0x00,0x00,0x00,0x07,0x03,0xc0,0x30,0x00,0x00,0x00,0xe0, 0x70,0x1c,0x00,0xc7,0x01,0x00,0x00,0x1c,0x8e,0x61,0x00,0x18,0x06,0x00,0x80, 0xc3,0x01,0x8e,0x03,0x07,0x18,0x00,0x70,0x20,0x00,0x10,0xec,0x00,0x17,0x00, 0x0e,0x20,0x1c,0x10,0x10,0xe0,0x18,0xc0,0x01,0xc0,0x63,0x0e,0x00,0x1c,0x17, 0x30,0x00,0x30,0x80,0x03,0x80,0xe3,0x10,0xd0,0x00,0x08,0x00,0x04,0x70,0x1c, 0x10,0x10,0x07,0x08,0x00,0x04,0x8e,0x03,0x10,0x10,0x18,0x70,0x80,0xc3,0x71, 0x01,0x10,0x10,0xe0,0x80,0x71,0x38,0x0e,0x01,0x18,0x10,0x00,0x03,0x0e,0xc7, 0x01,0x01,0x17,0x10,0x00,0x1c,0xe0,0x38,0x00,0xe1,0x10,0x10,0x06,0x60,0x1c, 0x07,0x00,0x1d,0x10,0x10,0x06,0x80,0xe3,0x00,0x00,0x03,0x10,0x10,0x06,0x00, 0x1d,0x00,0x00,0x01,0x10,0x10,0x04,0x06,0x13,0x00,0x00,0x01,0x18,0x10,0x0c, 0x06,0x11,0x00,0x00,0x01,0x17,0x10,0x0c,0x06,0x39,0x00,0x00,0xe1,0x10,0x10, 0x08,0x02,0xc7,0x00,0x00,0x1d,0x10,0x10,0x18,0x03,0x01,0x07,0x00,0x03,0x10, 0x10,0x18,0x03,0x01,0x18,0x00,0x01,0x10,0x10,0x98,0x01,0x01,0xe0,0x00,0x01, 0x1c,0x10,0xb0,0x01,0x01,0x00,0x03,0x81,0x03,0x10,0xb0,0x01,0x01,0x00,0x1c, 0x61,0x00,0x10,0xe0,0x00,0x01,0x00,0x60,0x1d,0x00,0x30,0x60,0x00,0x01,0x00, 0x80,0x03,0x00,0xc0,0x40,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x01, 0x00,0x00,0x00,0x00,0x00,0x1c,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x60,0x00, 0x01,0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00, 0x0c,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x01,0x00,0x00,0x00,0x00,0x00, 0x00,0xc0,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; xview-3.2p1.4/clients/olvwm-4.1/vdm.mask100644 1750 1750 3735 5515341514 15205 0ustar mbmb#ifdef IDENT #ident "@(#)vdm.mask 1.2 olvwm version 25 Nov 1992" #endif #define vdmmask_width 64 #define vdmmask_height 45 static unsigned char vdmmask_bits[] = { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x03, 0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x0e, 0x71,0x00,0x00,0x00,0x00,0x00,0xc0,0xe1,0x87,0x01,0x00,0x00,0x00,0x00,0x38, 0xfc,0x3f,0x0e,0x00,0x00,0x00,0x00,0x07,0xff,0xff,0x30,0x00,0x00,0x00,0xe0, 0x70,0xfc,0xff,0xc7,0x01,0x00,0x00,0x1c,0xfe,0xe1,0xff,0x1f,0x06,0x00,0x80, 0xc3,0xff,0x8f,0xff,0x07,0x18,0x00,0x70,0xe0,0xff,0x1f,0xfc,0x00,0x1f,0x00, 0x0e,0xe0,0xff,0x1f,0x10,0xe0,0x1f,0xc0,0x01,0xc0,0xff,0x0f,0x00,0xfc,0x1f, 0x30,0x00,0xf0,0xff,0x03,0x80,0xff,0x1f,0xf0,0x00,0xf8,0xff,0x07,0xf0,0xff, 0x1f,0xf0,0x07,0xf8,0xff,0x07,0xfe,0xff,0x1f,0xf0,0x1f,0xf0,0xff,0xc3,0xff, 0xff,0x1f,0xf0,0xff,0x80,0x7f,0xf8,0xff,0xff,0x1f,0xf0,0xff,0x03,0x0e,0xff, 0xff,0xff,0x1f,0xf0,0xff,0x1f,0xe0,0xff,0xff,0xff,0x1f,0xf0,0xff,0x7f,0xfc, 0xff,0xff,0xff,0x1f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xf0,0xff,0xff, 0xff,0xff,0xff,0xff,0x1f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xf0,0xff, 0xff,0xff,0xff,0xff,0xff,0x1f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0xf0, 0xff,0xff,0xc7,0xff,0xff,0xff,0x1f,0xf0,0xff,0xff,0x01,0xff,0xff,0xff,0x1f, 0xf0,0xff,0xff,0x01,0xf8,0xff,0xff,0x1f,0xf0,0xff,0xff,0x01,0xe0,0xff,0xff, 0x1f,0xf0,0xff,0xff,0x01,0x00,0xff,0xff,0x03,0xf0,0xff,0xff,0x01,0x00,0xfc, 0x7f,0x00,0xf0,0xff,0xff,0x01,0x00,0xe0,0x1f,0x00,0xf0,0xff,0xff,0x01,0x00, 0x80,0x03,0x00,0xc0,0xff,0xff,0x01,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x01, 0x00,0x00,0x00,0x00,0x00,0xfc,0xff,0x01,0x00,0x00,0x00,0x00,0x00,0xe0,0xff, 0x01,0x00,0x00,0x00,0x00,0x00,0x80,0xff,0x01,0x00,0x00,0x00,0x00,0x00,0x00, 0xfc,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x01,0x00,0x00,0x00,0x00,0x00, 0x00,0xc0,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; xview-3.2p1.4/clients/olvwm-4.1/Imakefile100644 1750 1750 14615 6350627670 15402 0ustar mbmb/**/# If you want to install the help files for olvwm, set HasInfoFiles to YES #define HasInfoFiles YES /**/# If you haven't installed olwm from xview3 or from Sun's OpenWindows, /**/# and you want to install the olwm man page (which discusses most of the /**/# window operations), defind NeedOlwmManPage to YES #define NeedOlwmManPage NO /**/# /**/# Set MORECCFLAGS to any options you want to pass to the compiler. These /**/# include and defines, and debugging and/or optimization flags, and the like. /**/# Also, if you have headers for things like the XPM library in a non-standard /**/# place, include the appropriate -I flag here. /**/# /**/# There are a bunch of defines, and I can't honestly say I've used or even /**/# tested all of them (since much of this code came from the xview 3.2 release) /**/# and certainly I haven't used all combinations of them. See below for /**/# suggested settings: /**/# /**/# Here's a set of possible defines: /**/# -DALLPLANES Support the AllPlanes extension (valid in SunOs/Solaris) /**/# -DDEBUG Include some debugging code /**/# -DIDENT Include ident directives for the compiler /**/# -DMAXPID=32768 For 386BSD /**/# -DMEMDEBUG To debug the memory allocation /**/# -DOW_I18N_L3 Include support for Level 3 internationalization /**/# (Note: I haven't tested without this, and I can't /**/# test it in any locale but C, so include it, but /**/# take it with a grain of salt -- the original olwm /**/# code will work, but the olvwm extensions may not /**/# support the correctinternationalization) /**/# -DOW_I18N_L4 Include support for Level 4 internationalization /**/# (Note: This is not yet supported, but it may work) /**/# -DREGEXP Support for the 386 BSD regular expression library /**/# -DRLIMIT_NOFILE Support for the 386BSD/Ultrix RLIMIT calls /**/# -DSHAPE Support the shapes extension (valid in SunOS/Solaris) /**/# -DSYSV Support for System V (Release 3 or 4) /**/# -DSVR4 Support for System V Release 4 (you must also include /**/# -DSYSV) /**/# -DXPM Support the XPM color pixmaps -- requires that you /**/# have the xpm library (version 3.0) somewhere /**/# If your xpm header isn't in /usr/openwin/include /**/# make sure to add the appropriate -I flag to # MORECCFLAGS. Also remember to add the /**/# library name to LDFLAGS. /**/# /**/# I haven't tested this on Solaris 1.x, but I'd suggest /**/#MORECCFLAGS=-DOW_I18N_L3 -DSHAPE -DIDENT /**/# For a generic Solaris 2.x system, I'd suggest /**/#MORECCFLAGS=-DOW_I18N_L3 -DSHAPE -DSVR4 -DSYSV -DIDENT -x O4 /**/# Linux/ELF MORECCFLAGS=-DOW_I18N_L3 -DSHAPE -DXPM -DXVIEW32 -DMAXPID=32768 -I/usr/include/bsd -include /usr/include/bsd/bsd.h -I$(INCROOT)/X11 /**/# /**/# Set MORELDFLAGS to any link options you want. Be sure to add -lxpm if you /**/# want to include XPM support. For a generic Solaris 1.x /**/# system, I'd suggest /**/#MORELDFLAGS=-L${OPENWINHOME}/lib /**/# /**/# For Solaris 2.x, I'd suggest /**/#MORELDFLAGS=-L${OPENWINHOME}/lib -R ${OPENWINHOME}/lib -lintl /**/#SYS_LIBRARIES = -ll -lm /**/# Linux/ELF MORELDFLAGS=-lbsd -lXpm SYS_LIBRARIES = -lfl -lm /**/# No more changes needed #include /**/######################################################################### /**/# @(#)Imakefile 1.5 10/4/91 SMI /**/# Imakefile for olwm release 3.0. DEFINES = $(MORECCFLAGS) INCLUDES = -I$(HEADER_DEST) -I$(TOP) $(XPMINCDIR) DEPLIBS = LOCAL_LIBRARIES = $(MORELDFLAGS) $(OLGXLIB) $(XLIB) HEADERS = cmdstream.h cursors.h debug.h defaults.h dsdm.h environ.h error.h \ events.h gettext.h globals.h group.h helpcmd.h i18n.h iconimage.h \ iconmask.h kbdfuncs.h list.h mem.h menu.h notice.h olcursor.h \ olgx_impl.h ollocale.h olwm.h patchlevel.h properties.h resources.h \ screen.h selection.h slots.h st.h virtual.h win.h INFOFILES = olvwm.info #if NeedOlwmManPage MANPAGES = olwm.man olvwmrc.man #else MANPAGES = olvwmrc.man #endif BITMAPS = iconbitmap.h SCRIPTS = MISC = openwin-menu SRCS = atom.c client.c cmdstream.c cursors.c debug.c defaults.c dsdm.c \ environ.c error.c evbind.c events.c fontset.c gettext.c gif.c group.c \ helpsend.c i18n.c images.c info.c kbdfuncs.c list.c mem.c menu.c \ moveresize.c notice.c ol_button.413.c ol_button.svr4.c olvwmrc.c \ olwm.c pixmap.c properties.c reduce.c resources.c screen.c \ selection.c services.c slave.c slots.c st.c states.c usermenu.c \ usleep.c virtual.c win.c winbusy.c winbutton.c wincolor.c winframe.c \ wingframe.c winicon.c winipane.c winmenu.c winnofoc.c winpane.c \ winpinmenu.c winpush.c winresize.c winroot.c OBJS = atom.o client.o cmdstream.o cursors.o debug.o defaults.o dsdm.o \ environ.o error.o evbind.o events.o fontset.o gettext.o gif.o group.o \ helpsend.o i18n.o images.o info.o kbdfuncs.o list.o mem.o menu.o \ moveresize.o notice.o ol_button.413.o ol_button.svr4.o olvwmrc.o \ olwm.o pixmap.o properties.o reduce.o resources.o screen.o \ selection.o services.o slave.o slots.o st.o states.o usermenu.o \ usleep.o virtual.o win.o winbusy.o winbutton.o wincolor.o winframe.o \ wingframe.o winicon.o winipane.o winmenu.o winnofoc.o winpane.o \ winpinmenu.o winpush.o winresize.o winroot.o ALLFILES = \ ${HEADERS} ${BITMAPS} ${SRCS} \ ${MISC} ${INFOFILES} ${MANPAGES} ${SCRIPTS} ComplexProgramTarget(olvwm) #if NeedMenuFile InstallNonExecList($(MISC),$(LIBRARY_DEST)) #endif parse.c: parse.l lex -t parse.l > parse.c olvwmrc.c: olvwmrc.y yacc olvwmrc.y mv y.tab.c olvwmrc.c olvwmrc.o: parse.c olvwmrc.c version.c: ${SRCS} ${HEADERS} @echo '#ident "@(#)olvwm version compiled '`date`'"' > version.c clean:: /bin/rm -f parse.c olvwmrc.c version.c install.man:: $(MANPAGES) @if [ -d $(DESTDIR)$(MANDIR) ]; then set +x; \ else (set -x; $(MKDIRHIER) $(DESTDIR)$(MANDIR)); fi @for i in $(MANPAGES) ;\ do \ echo "installing $$i"; \ $(INSTALL) -c $(INSTMANFLAGS) $$i $(DESTDIR)$(MANDIR)/`basename $$i .man`.$(MANSUFFIX) ; \ done #include xview-3.2p1.4/clients/olvwm-4.1/olvwm.man100644 1750 1750 120636 5521044451 15440 0ustar mbmb.\" @(#)olvwm.man 1.5 olvwm version 07 Jan 1994 .TH OLVWM 1 "30 November 1992" .SH NAME olvwm \- OPEN LOOK virtual window manager for X11 and OpenWindows .SH SYNOPSIS .B olvwm [ .I options ] .\" ======================================================================== .SH DESCRIPTION .LP .B olvwm is a virtual window manager for the X Window System that implements parts of the OPEN LOOK graphical user interface. .B olvwm differs from .B olwm in that olvwm manages a virtual desktop which is larger than the actual screen. However, .B olvwm is equivalent in all other respects to, and supports all the features of .B olwm. This manual page discusses only the changes between .B olvwm and .B olwm, most of which deal specifically with the virtual desktop. For details on how .B olwm operates, including its host of options, see .B olwm(1). .\" ======================================================================== .SH OPTIONS .LP There is one new option to .B olvwm. .TP -allowSynthetic Allow the receipt of synthetic events. Note that this argument only permits synthetic events to be enabled; whether or not synthetic events are delivered is controlled via the SyntheticEvents resource variable. .\" ======================================================================== .SH TERMINOLOGY Throughout this manual, the following terms are used: .IP \fBScreen\fP: This refers to a specific monitor; essentially, there is one screen for every monitor run by your workstation. Each monitor has a view into a particular desktop. In X terminology, this is the screen component of a particular display. .IP \fBDesktop\fP: This refers to the entire area in which windows can reside on a given screen. In non-virtual window managers, a desktop and a screen are the same size. In a virtual window manager, though, a desktop is larger than the screen. .IP \fBVDM\fP or \fBVirtual Desktop Manager\fP is the window which represents visually the entire desktop: it provides a scaled-down version of the entire desktop. .IP \fBLogical\ Screen\fP: If the desktop is running in default mode, it will display a grid, each square of which maps to the size of the monitor. Each square is termed a logical screen. .IP \fBCurrent\ View\fP: is that part of the desktop which is currently displayed on the screen; this will usually (but need not always) correspond to a logical screen. .IP \fBVirtual\ Window\fP: is a small rectangle displayed in the VDM; every window on the desktop has a corresponding Virtual Window in the VDM. .\" ======================================================================== .SH VIRTUAL DESKTOP MANAGER .LP When it is started, .B olvwm displays a virtual desktop manager window. The VDM is a reduced display of all windows active on the desktop at any time. The current view is outlined in the virtual desktop manager. The VDM always appears on the screen. .LP By default, the VDM (and hence the desktop) is divided into a grid; each square of the grid represents a screen size. The dividing lines between each logical screen are represented by dashed lines in the VDM. This division into logical screens is purely informational: if you like, windows can straddle these boundaries, the current view into the desktop can straddle these boundaries, and window can be moved at will between these boundaries. However, by default, most actions in the VDM will keep the current view along these boundary lines. .\" ======================================================================== .SH EVENTS IN THE VDM .LP The processing of events within the VDM depends on whether the mouse is pointing to the background area of the VDM or to a particular virtual window within the VDM. .SH EVENTS ON VIRTUAL WINDOWS .LP Events which occur in a particular virtual window behave just as if they were delivered to the corresponding application's frame. Thus, pressing the MENU button over a virtual window will bring up the frame menu and allow the real (and virtual) windows to be opened, closed, resized, etc. Pressing the SELECT button will select that real (and virtual) window; pressing the ADJUST button will add (or subtract) that window from the selection list. Pressing the FRONT or OPEN keys will raise/lower or open/close the real (and virtual) window. .LP SELECTing and dragging one or more virtual windows will move the real and virtual windows (just as in \fBolwm\fP). Note that if you drag the mouse outside of the VDM, the window can be moved onto to the screen. Conversely, when dragging a window on the screen, if the mouse moves into the VDM, the window will then be moved to the location on the displayed within the VDM. However, if part of the VDM is obscured, you cannot move a window into that part of the VDM. .LP Note that events are delivered ONLY to the real application's frame. Thus, typing characters or the COPY/CUT/PASTE keys has no effect. .LP It is possible to drop something onto a virtual window as if it were dropped onto the corresponding application; this allows you to, for example, drag a file from the mailtool on the screen to a file manager on another part of the desktop. .SH EVENTS ON THE VDM BACKGROUND .LP Events on the VDM background all work to change the current view, bringing windows which were formerly outside of the current view onto the screen (and moving windows which were on the screen outside of the current view). Keyboard events are described given the default Sun Type-4 keyboard mappings, but you can use xmodmap to set up your particular keyboard. .IP \fBKeyboard\ Events:\fP The arrow keys (and other keys) can be used to shift the current view in the direction specified. See the section on ADDITIONAL KEY BINDINGS below. Keyboard events are also active if they occur on the root window in addition to the VDM background. .IP \fBSELECT\fP mouse events: SELECTing on the VDM background allows you to drag the current view within the VDM. If the VirtualGrid resource is set to Visible or Invisible, movement of the visible region will be constrained to logical screen boundaries unless the CTRL button is pressed before and held while dragging the mouse. If the VirtualGrid resource is set to None, movement of the visible region will be unconstrained unless the CTRL button is pressed before and held while dragging the mouse. .IP \fBDOUBLE\ CLICK\fP SELECT events: Double clicking the SELECT button on an area in the VDM background will move the current view to the logical screen containing the point where the mouse was double-clicked. .IP \fBMENU\fP mouse events: The MENU button brings up a (pinnable) menu which will allow movement based on full screen sizes in the direction indicated. .\" ======================================================================== .SH RESIZING THE VIRTUAL DESKTOP .LP You can use the resize corners on the VDM to resize the virtual desktop at will. If you make the virtual desktop smaller, windows which might be off the new virtual desktop will NOT be moved (though they will not be lost, either, and you can get them back by resizing the desktop again). Space added or subtracted is always done so from the right and bottom of the desktop (regardless of which resize corner you used). .\" ======================================================================== .SH STICKY WINDOWS .LP You'll notice that the virtual desktop manager never moves on your screen if you change views into the desktop. That's because the VDM is permanently "sticky." .LP Windows which are "sticky" never move position on the screen when you change your view into the desktop. To set a particular window as sticky, simply select "Stick" in its frame menu. You may similarly unstick the window via its menu. .LP [Note: Only base frames--those which can be iconified, as opposed to those which have a pushpin--are eligible to become sticky; other frames inherit the stickyness of their base frames. Thus, for most applications, either all windows are sticky or none of them are. The exception to this is applications which create two or more base frames; all base frames will be originally created as "unsticky" (but see the VirtualSticky resource below).] .\" ======================================================================== .SH CHANGES TO THE WINDOW MENU .LP The window menu of all windows has all the tools defined in .B olwm. In addition, the menu of base windows has the following command .TP .B Stick/Unstick Affect the stickyness of the particular window. Windows which are sticky will always appear in the same place on the screen no matter which part of the virtual desktop you're looking at. Windows which are not sticky (by default, all windows except the VDM) will move when you change the current view on the virtual desktop. .\" ======================================================================== .SH CHANGES TO ROOT MENU .LP The following additional keywords can be used in the command field of a root menu menu item: .IP COLUMNS This specifies the number of columns you'd like the menu to have. Each column within a menu will be filled in order of the items in the menu. The menu name must appear before this keyword, and the keyword itself must appear before the end of the menu. .IP STICK_UNSTICK_SELN This specifies that the sticky state of the selected windows should be toggled. .IP WINMENU brings up a pull-right menu containing the name of every window on the current monitor (if .B olvwm is managing multiple monitors, only windows on the current monitor will be shown). Windows which are iconified are preceded with a graphic symbol. Selecting one of these windows causes the view into the desktop to shift so that the selected window is visible; the selected window will be opened if iconic and raised to the top of the stacking order. This behavior can be altered; see .I olvwmrc(5) for more details. You may specify the number of columns in the pull-right menu by using a number after the WINMENU keyword. By default, the order of the menu is alphabetic; see the SortMenuType resource below for more options. .IP DIRMENU brings up a pull-right menu containing the name of every file given in the named directory. This allows you to use a local programs directory for a tool repository; whenever tools are added to the directory, users will see the new choices. The directory name may contain environmental variables (e.g. $OPENWINHOME). You may also specify a regular expression as the file part of DIRMENU; e.g. $OPENWINHOME/bin/x* would display only those programs in the openwindows bin directory which begin with an x. Regular expressions do not apply to the directory name; $OPENWINHOME/b*/x* is an invalid DIRMENU entry. .IP X11\ Bitmaps\ and\ Pixmaps can be specified in the menu by specifying a filename enclosed in <> brackets. The filename specified must be in X11 bitmap form, XPM2 form (produced by IconEdit), XPM3 form, or Gif format. You can mix bitmap and string entries within a menu, though perhaps menus look better if you do not. .IP MOVE_DESKTOP specifies that .B olvwm should move the view to either the logical screen specified after the MOVE_DESKTOP entry (e.g. MOVE_DESKTOP 3 moves to the third logical screen) or to the logical screen containing the point specified after the MOVE_DESKTOP entry (e.g. MOVE_DESKTOP 2304 0 also moves to the third logical screen in a default configuration). .LP Here is a version of the example .I olwm root menu specification: the programs menu will have 2 columns; there will be a way to find particular windows off the "Find" submenu (and that menu will have 3 columns); whatever local tools are available can be found in /usr/local; and the cmdtool option will be displayed as an icon: .nf "My Custom Menu" TITLE .sp Programs MENU Programs COLUMNS 2 DEFAULT cmdtool "Text Editor" textedit Mail mailtool "File Manager" filemgr Other MENU "Other Tools" TITLE "Shell Tool" shelltool "Icon Editor" iconedit Clock clock "Perf Meter" DEFAULT perfmeter Other END "Local Tools" DIRMENU /usr/local Programs END PIN .sp "Repaint Screen" REFRESH .sp "Properties ..." PROPERTIES .sp "Find" WINMENU 3 .sp Exit EXIT .fi .\" ======================================================================== .SH MISCELLANEOUS NEW FEATURES .LP This section describes miscellaneous window manager features which are not directly related to the virtual nature of .B olvwm. .LP Upon receiving a USR1 signal, .B olvwm will execute a RESTART function just like the restart function available from the root menu. .LP The root workspace will not be repainted on exit if the PaintWorkspace resource is False. .LP The .B olwm resource DefaultIconImage will now accept either an X11 Bitmap file, a version 2 or 3 XPM image file or a GIF file. If you use an image file, remember that the DefaultIconMask must still be a X11 Bitmap; generally you will want to create a full mask in that case. .LP The .B olwm resource WorkspaceBitmap will accept X11 Bitmap files, version 2 or 3 XPM image files, or GIF files. The MaxMapColors resource can restrict the number of colors .B olvwm uses for each GIF file to help with colormap problems, but in general, specifying more than 1 GIF file will lead to colormap problems. .\" ========================================================================== .SH RESOURCES TO CONTROL THE VIRTUAL DESKTOP See the man page for .B olwm for a complete description of resources. All resources of class OpenWindows and olwm described there are supported by .B olvwm. In addition, for .B olvwm only, resources of instance "olvwm" are also read. You can thus name the following resources as olvwm., olwm., or as OpenWindows. depending on your naming preference. .LP Resources marked with an * may be specified on a screen-by-screen basis; e.g. olvwm.screen0.resource and olvwm.screen1.resource, following the pattern in .B olwm. .TP .BI VirtualDesktop " (string)" * Specifies the size of the virtual desktop. You can specify this in terms of screen sizes, so that a virtual desktop of 3 screens across and 2 screens high would appear as the string 3x2. You may also specify this in terms of absolute pixel sizes, e.g. 3800x1800, as long as the pixel size is greater than the size of your framebuffer. .I Default value: 3x2 .P .TP .BI PannerScale " (int)" * Sets the scale in which the virtual desktop manager will be drawn. .I Default value: 15. .P .TP .BI VirtualGeometry " (string)" * Specifies the geometry string of the desktop manager in standard X11 format (wxh+x+y). The width and height, if specified, are ignored, but the x and y can be used to specify the initial location of the desktop manager. .I Default value: +0+0 .TP .BI VirtualIconGeometry " (string)" * Specifies the geometry string of the desktop manager icon in standard X11 format (wxh+x+y). The width and height are ignored, but the x and y can be used to specify the initial location of the desktop manager icon. .I Default value: +0+0 .P .TP .BI VirtualIconic " (Boolean)" * If true, the virtual desk manager will come up iconic. .I Default value: False .P .TP .BI AllowMoveIntoDesktop " (Boolean)" If true, allows windows to be moved from the screen into the VDM and vice versa. Otherwise, moving a window on the screen will only allow it to be placed in the visible screen; and moving a window in the desktop manager will not let it be dragged onto the screen. .I Default value: True .P .TP .BI AllowArrowInRoot " (Boolean)" If true, then key events in the root window will affect the VDM and thus move the view into the desktop (if the appropriate key is pressed). Otherwise, only key events when the VDM has the input event focus will have an effect. .I Default value: True .P .TP .BI VirtualFont " (string)" * The font name used to display title of windows within the virtual desktop manager. .I Default value: 5x8 .P .TP .BI VirtualFontColor " (color specification)" * The color of the title within the virtual windows of the virtual desktop manager. .I Default value: Black .P .TP .BI VirtualBackgroundColor " (color specification)" * The color of the background of the virtual desktop manager. .I Default value: Based on the frame color of your desktop. .P .TP .BI VirtualForegroundColor " (color specification)" * The color of the virtual windows in the virtual desktop manager. .I Default value: The frame color of your desktop. .P .TP .BI VirtualBackgroundMap " (Pixmap filename)" * The name of a file containing a pixmap to use as the background of the virtual desktop manager. This will be drawn with the VirtualBackgroundColor as its background color and the VirtualPixmapColor as its foreground color. The file can be either an X bitmap file, a Z Pixmap file, or a Gif file. Color reduction can be carried out on these images by specifying the MaxMapColors resource. If the file is NOT a bitmap file the virtual desktop window title is changed to be the filename part of the file and the Maximum Size window hint is set to the dimensions of the pixmap. .I Default value: unused .P .TP .BI MaxMapColors " (number of colors)" * This integer value specifies the maximum number of colors that olvwm will try and allocate for the VirtualBackgroundMap. If the actual number of colors in the pixmap is greater, the colors are remapped to this number using a 'best match' algorithm (Heckbert Median Cut). .I Default value: 200 .P .TP .BI VirtualPixmapColor " (color specification)" * See above; this value only applies when the VirtualBackgroundMap has depth 1. .I Default value: white .P .TP .BI VirtualSticky " (list of strings)" The list of windows which should be sticky by default. Like the olwm MinimalDecor, this should be the list windows which should be sticky when they are created. The matching of these strings is done by the first word of the window's WM_NAME (string in its title bar), or by its WM_CLASS class/instance variables. .I Default value: Null .P .TP .BI RelativePosition " (Boolean)" If true, then user-specified window co-ordinates are assumed to be relative to the current view into the desktop; otherwise they are absolute with respect to the desktop. Setting to true will not allow you to bring up windows outside your current view (unless you specify very large or negative numbers), and setting to false will break some programs which save window states in an odd manner. You can defeat this variable on startup of applications by specifying which screen they should start on; see .I olvwmrc(5). .I Default value: True .P .TP .BI VirtualGrid " (Visible, Invisible, or None)" * This controls two aspects of the VDM: If it's visible or invisible, the grid is on (but it's only drawn if it's visible). If it's None, the grid is off. If the grid is on, the VDM may only be resized in logical screen-sized increments. Otherwise, it may resized to arbitrary sizes. If the grid is on, SELECT/dragging the mouse within the VDM will constrain the move to logical screens (unless the CTRL button is held down); if the grid is off, moving the visible screen region with SELECT/drag will be unconstrained (unless the CTRL button is held down). .I Default value: Visible .TP .BI VirtualGridColor " (color specification)" If the VirtualGrid is Visible, it will be drawn in this color. .I Default value: Same as VirtualFontColor .P .TP .BI VirtualRaiseVDM " (Boolean)" If this is true, the VDM will always appear on top of the stacking order, never to be obscured by other windows. .I Default value: False .P .TP .BI VirtualMoveGroup " (Boolean)" If true, then whenever a window is moved to a different logical screen, then all followers of that window will also be moved a similar amount: this affects the window's icon and popups. In this way, icons and popups will always appear on the same logical screen as their corresponding base frame. Otherwise, only the selected windows will move when you move them, and related windows could possibly appear on different logical screens in the desktop. The trigger for changing between logical screens is the window's mid-point; all windows in the group will appear on the same logical screen as the mid-point of the moved window. .I Default value: True .P .TP .BI UseImages " (UseNone, UseVDM, or UseAll)" If set to UseNone, then window frame menus and the VDM motion menu will be text-based. If set to UseVDM, the window frame menus will be text-based, but the VDM motion menu will be a graphic menu. If set to UseAll, the window frame menus will be text- and image-based, and the VDM motion menu will be image-based. .I Default value: UseVDM .P .TP .BI SortMenuType " (Enum)" This option controls how windows appearing in the WINMENU command are sorted. If it is set to Alphabetic, then windows will be sorted alphabetically by name. If it is set to Youngest, then windows will be sorted from youngest to oldest. .I Default value: Alphabetic .P .TP .BI VirtualDrawSticky " (True)" If this option is set, sticky windows will have their virtual windows drawn in the VDM just like any other window. If it is false, then sticky windows will not have their virtual windows drawn in the VDM. .I Default value: True .P .TP .BI StickyIcons " (Boolean)" When set, StickyIcons will cause all non-sticky windows to become sticky when iconified. This makes all icons visible on every screen. All windows made sticky when iconified will become unsticky when reopened. .I Default value: False .P .TP .BI StickyIconScreen " (Boolean)" StickyIconScreen, when used in conjunction with StickyIcons, will cause all iconified windows that are made sticky to remember the screen on which they were closed. When one of these windows is reopened the user will be warped back to the screen from which the window was closed and the window is made unsticky. .I Default value: False .P .TP .BI FreeIconSlots " (Boolean)" By default, when an icon is created, it has that icon position forever (unless it is moved manually), even when the window is not iconified. This results in potentially large gaps in the icon area when lots of little programs are run (clocks, load averages, etc) which are rarely iconified. When this resource is true and a window is opened, if the icon position what not set manually the slots are freed. The effect is that iconified windows pack together in the corner specified by IconPlacement. If you move an icon manually, it maintains that position. .I Default value: False .P .TP .BI UniqueIconSlots " (Boolean)" This resource, when set to true, prevents icons from overlapping. If you move an icon into icon grid slot(s) occupied by other icons, those icons move. If those other icons were positioned manually, they are no longer viewed as manually placed (unless, of course, they are subsequently manually placed) .I Default value: False .P .TP .BI IconGridHeight " (Integer)" .BI IconGridWidth " (Integer)" Previously the size of the icon grid was fixed. An icon takes up a number of grid slots, depending on it's size, and is aligned with the lower left corner of its lower left grid slot. Changing the size of the grid changes how icons arrange themselves. .I Default value: 13 for each .\" ======================================================================== .SH ADDITIONAL MISCELLANEOUS RESOURCES .LP These resources are not related specifically to the VDM, but are included as new features within .B olvwm. .TP .BI InputFocusColor " (color specification)" * Specifying this attribute means that the frame of the window which currently has the input focus should be drawn in the color specified instead of in the normal frame color. The appearance of the title bar (with lines or indentation, depending on your input focus mode) will remain unchanged. .I Default value: None (Use standard frame color) .P .TP .BI RaiseOnMove " (Boolean)" If this is True, then whenever a window is moved, it is also raised to the top of the stacking order. .I Default value: False .TP .BI AutoShowRootMenu " (Boolean)" If true, the root menu will come up pinned at start up. .I Default value: False .P .TP .BI AutoRootMenuX " (int)" If AutoShowRootMenu is true, this is the X location where the menu will come up. .I Default value: 0 .P .TP .BI AutoRootMenuY " (int)" If AutoShowRootMenu is true, this is the Y location where the menu will come up. .I Default value: 0 .P .TP .BI FullSizeZoomX " (Boolean)" If this is set to True, then selecting Full Size from the window menu will zoom the window horizontally as well as vertically. .I Default value: False .P .TP .BI NoDecor " (list of strings)" Like Minimal Decor, this attribute takes a list of windows on which to operate; these windows should not be decorated at all. There is a slight difference between this attribute and setting the override_redirect flag on a window: the latter causes .I olvwm to ignore completely the window, while this attribute does not adorn the window or give it a menu, but still allows it to be manipulated via the WINMENU and Hot Key actions. Normal olwm keys are ignored by these windows, however. .P .TP .BI ResizeMoveGeometry " (X geometry string or the word center)" This resource only has an effect if ShowMoveGeometry and/or ShowResizeGeometry is set to True. This string specifies the location of the geometry box when it is displayed; it should be given as an X geometry string (wxh+x+y) although the width and height are ignored if specified. If you want the box to be centered regardless of your monitor resolution, use the string center instead of a geometry string. .I Default value: +0+0 .P .TP .BI PaintWorkspace " (Boolean)" If true, .B olvwm will paint the root workspace with the color of the WorkspaceColor resource. If False, .B olvwm will not change root workspace. .I Default value: True .P .TP .BI PointerWorkspace " (Boolean)" If true, .B olvwm will change the cursor when it is over window frames and other olvwm-owned windows. If False, .B olvwm will not change the cursor. This is useful in conjunction with \fIxsetroot -cursor\fP if you want the specified cursor to be active over frames. .I Default value: True .P .TP .BI SaveWorkspaceCmd " (String)" If set, this is the command that will be run when the SAVE_WORKSPACE command is selected off the main menu. Otherwise, the default command is run. .I Default value: owplaces -silent -multi -script -tw -output $HOME/.openwin-init .P .TP .BI SyntheticEvents " (boolean)" This resource controls the delivery of synthetic events. This resource is only valid if the -allowSynthetic argument was given to olvwm on startup; if that argument was present and this resource is set to True, then olvwm will process synthetic events. Otherwise, synthetic events are ignored. .I Default value: False .P .TP .BI ParentScreenPopup " (Boolean)" If true the popups are placed on the same screen as their parent even if the parent is not currently visible. Otherwise popups always appear on the current screen. A suggested method is to place the following lines at the end of your .xinitrc file (before the final wait command): .nf xrdb -merge <<'EOF' olvwm.ParentScreenPopup: False EOF .fi In this way, your session will initialize with all popups with their parents but subsequenct popups will appear on the current screen. .I Default value: True .P .\" ======================================================================== .SH CURSOR RESOURCES .LP These set of resources change the default cursors the window manager gives certain classes it creates, such as resize buttons, close buttons, frames, icons, etc. The is described as follows: .IP [ []] .LP where options enclosed in []'s are optional. If the is left out, the default back color (which, in this version of OLVWM, is white) is used. If the is left out, then the default cursor (foreground) color is used, which is black by default, unless set by the cursorColor resource (see below). Note that to supply the , you must supply the . Also, if the color name you provide is invalid, OLVWM will return to the default colors, as described above. As per usual with resources, no errors are reported. The cursor font is assumed to be encoded so that the valid mask for the cursor follows the cursor index in the font; this is the usual behavior for font files. .LP There is an alternate form of : .IP [ []] .LP where is either the name of the X cursor as defined in cursorfont.h (eg: XC_X_cursor, XC_cross, etc.), or the name of an OPEN LOOK cursor as defined in olcursor.h (e.g.: OLC_basic, OLC_busy). .LP The valid s are: .TP .BI CursorBasic "" Specify the root window cursor. .I Default: Basic Pointer (arrow pointing NW) .P .TP .BI CursorMove "" Specify the cursor when a window is moved. .I Default: Basic Pointer .P .TP .BI CursorBusy "" Specify the cursor for when a window is "busy". .I Default: Busy Pointer (pocket watch) .P .TP .BI CursorIcon "" Specify cursor for the icon windows. .I Default: Basic Pointer .P .TP .BI CursorResize "" Specify cursor for the resize buttons and when window is being "rubber-band" resized. .I Default: Bull's Eye .P .TP .BI CursorMenu "" Specify cursor for menu windows. .I Default: Basic Pointer .P .TP .BI CursorTarget "" Specify cursor for window frames. .I Default: Basic Pointer .P .TP .BI CursorCloseUp "" Specify cursor for close button, when NOT pressed (the button is UP). .I Default: Basic Pointer .P .TP .BI CursorCloseDown "" Specify cursor for close button, when pressed (the button is DOWN). .I Default: Basic Pointer .P .TP .BI CursorSpecialResize " [ ]" This is a special Cursor resource which turns on specialized resize cursors. If is false, then the cursor for the resize button decorations and the "rubber-band" window are all specified by "Cursor.Resize" as discussed above. If is true, then the following modifications are turned on: When the cursor is within the resize button decorations on a frame, the cursor becomes a corner of the appropriate orientation. When the button is selected and the window is being "rubber-band" resized, the cursor becomes the appropriate corner with an appropriately oriented arrow. The colors that you can specify are limited to prevent an obscene number of resources. You can specify the colors (foreground and background) of the cursors when placed in the resize decoration without the mouse button down (described above as and ), and you can specify the colors of the cursors when the mouse button is down the window is being resized (described above as and ). Note that you must specify either all four colors or no colors. .\" ======================================================================== .SH ADDITIONAL KEY BINDINGS .LP Like .B olwm, olvwm uses key bindings for certain actions: all actions specified in .B olwm as well as an additional set of actions to control the view into the desktop. In the following list, the key mentioned in parentheses is the default binding for the given action; items marked with a plus sign '+' are items which exist in .B olwm; they are included here to describe what action they have when they occur on the root window or within the VDM. All other bindings are specific to .B olvwm; those items marked with an asterisk '*' involve keyboard grabs. Bindings which involve a keyboard grab (those with an asterisk) are always active, no matter where the input focus is; otherwise the action occurs only if the root window or the VDM has the input focus. .LP It's possible to change each of these bindings, see the .B olwm man page for more details. .TP GrabVirtualKeys " (Boolean)" This resource controls whether the keys below marked as involving grabs will be active or not. If this resource is set to False, then none of the bindings marked below with an asterisk will ever be active. .I Default value: True .TP Up \fI(up-arrow)\fP + Move the view up one screen. .TP JumpUp \fI(up-arrow+Ctrl)\fP + Move the view up ten screens. .TP HalfUp \fI(up-arrow+Shift)\fP Move the view up one-half screen. .TP VirtualUp \fI(up-arrow+Meta)\fP * Move the view up one screen. .TP VirtualJumpUp \fI(up-arrow+Ctrl+Meta)\fP * Move the view up ten screens. .TP VirtualHalfUp \fI(up-arrow+Shift+Meta)\fP * Move the view up one-half screen. .TP Down \fI(down-arrow)\fP + Move the view down one screen. .TP JumpDown \fI(down-arrow+Ctrl)\fP + Move the view down ten screens. .TP HalfDown \fI(down-arrow+Shift)\fP Move the view down one-half screen. .TP VirtualDown \fI(down-arrow+Meta)\fP * Move the view down one screen. .TP VirtualJumpDown \fI(down-arrow+Ctrl+Meta)\fP * Move the view down ten screens. .TP VirtualHalfDown \fI(down-arrow+Shift+Meta)\fP * Move the view down one-half screen. .TP Left \fI(left-arrow)\fP + Move the view left one screen. .TP JumpLeft \fI(left-arrow+Ctrl)\fP + Move the view left ten screens. .TP HalfLeft \fI(left-arrow+Shift)\fP Move the view left one-half screen. .TP VirtualLeft \fI(left-arrow+Meta)\fP * Move the view left one screen. .TP VirtualJumpLeft \fI(left-arrow+Ctrl+Meta)\fP * Move the view left ten screens. .TP VirtualHalfLeft \fI(left-arrow+Shift+Meta)\fP * Move the view left one-half screen. .TP Right \fI(right-arrow)\fP + Move the view right one screen. .TP JumpRight \fI(right-arrow+Ctrl)\fP + Move the view right ten screens. .TP HalfRight \fI(right-arrow+Shift)\fP Move the view right one-half screen. .TP VirtualRight \fI(right-arrow+Meta)\fP * Move the view right one screen. .TP VirtualJumpRight \fI(right-arrow+Ctrl+Meta)\fP * Move the view right ten screens. .TP VirtualHalfRight \fI(right-arrow+Shift+Meta)\fP * Move the view right one-half screen. .TP GoHome \fI(R11)\fP Move the view to the upper left corner. .TP VirtualHome \fI(R11+Meta)\fP * Move the view to the upper left corner. .TP UpLeft \fI(Home, R7)\fP + Move the view NorthWest one screen. .TP JumpUpLeft \fI(R7+Ctrl)\fP + Move the view NorthWest ten screens. .TP HalfUpLeft \fI(R7+Shift)\fP Move the view NorthWest one-half screen. .TP VirtualUpLeft \fI(R7+Meta)\fP * Move the view NorthWest one screen. .TP VirtualJumpUpLeft \fI(R7+Ctrl+Meta)\fP * Move the view NorthWest ten screens. .TP VirtualHalfUpLeft \fI(R7+Shift+Meta)\fP * Move the view NorthWest one-half screen. .TP DownLeft \fI(End, R13)\fP + Move the view SouthWest one screen. .TP JumpDownLeft \fI(R13+Ctrl)\fP + Move the view SouthWest ten screens. .TP HalfDownLeft \fI(R13+Shift)\fP Move the view SouthWest one-half screen. .TP VirtualDownLeft \fI(R13+Meta)\fP * Move the view SouthWest one screen. .TP VirtualJumpDownLeft \fI(R13+Ctrl+Meta)\fP * Move the view SouthWest ten screens. .TP VirtualHalfDownLeft \fI(R13+Shift+Meta)\fP * Move the view SouthWest one-half screen. .TP UpRight \fI(R9)\fP Move the view NorthEast one screen. .TP JumpUpRight \fI(R9+Ctrl)\fP Move the view NorthEast ten screens. .TP HalfUpRight \fI(R9+Shift)\fP Move the view NorthEast one-half screen. .TP VirtualUpRight \fI(R9+Meta)\fP * Move the view NorthEast one screen. .TP VirtualJumpUpRight \fI(R9+Ctrl+Meta)\fP * Move the view NorthEast ten screens. .TP VirtualHalfUpRight \fI(R9+Shift+Meta)\fP * Move the view NorthEast one-half screen. .TP DownRight \fI(R15, PgDn)\fP Move the view SouthEast one screen. .TP JumpDownRight \fI(R15+Ctrl)\fP Move the view SouthEast ten screens. .TP HalfDownRight \fI(R15+Shift)\fP Move the view SouthEast one-half screen. .TP VirtualDownRight \fI(R15+Meta)\fP * Move the view SouthEast one screen. .TP VirtualJumpDownRight \fI(R15+Ctrl+Meta)\fP * Move the view SouthEast ten screens. .TP VirtualHalfDownRight \fI(R15+Shift+Meta)\fP * Move the view SouthEast one-half screen. .TP Screen1 \fI(F1)\fP Move to the first logical screen in the desktop. .TP VirtualScreen1 \fI(F1+Meta)\fP * Move to the first logical screen in the desktop. .TP Screen2 \fI(F2)\fP Move to the second logical screen in the desktop. .TP VirtualScreen2 \fI(F2+Meta)\fP * Move to the second logical screen in the desktop. .TP Screen3 \fI(F3)\fP Move to the third logical screen in the desktop. .TP VirtualScreen3 \fI(F3+Meta)\fP * Move to the third logical screen in the desktop. .TP Screen4 \fI(F4)\fP Move to the fourth logical screen in the desktop. .TP VirtualScreen4 \fI(F4+Meta)\fP * Move to the fourth logical screen in the desktop. .TP Screen5 \fI(F5)\fP Move to the fifth logical screen in the desktop. .TP VirtualScreen5 \fI(F5+Meta)\fP * Move to the fifth logical screen in the desktop. .TP Screen6 \fI(F6)\fP Move to the sixth logical screen in the desktop. .TP VirtualScreen6 \fI(F6+Meta)\fP * Move to the sixth logical screen in the desktop. .TP Screen7 \fI(F7)\fP Move to the seventh logical screen in the desktop. .TP VirtualScreen7 \fI(F7+Meta)\fP * Move to the seventh logical screen in the desktop. .TP Screen8 \fI(F8)\fP Move to the eighth logical screen in the desktop. .TP VirtualScreen8 \fI(F8+Meta)\fP * Move to the eighth logical screen in the desktop. .TP Screen9 \fI(F9)\fP Move to the ninth logical screen in the desktop. .TP VirtualScreen9 \fI(F9+Meta)\fP * Move to the ninth logical screen in the desktop. .TP Screen10 \fI(F10)\fP Move to the tenth logical screen in the desktop. .TP VirtualScreen10 \fI(F10+Meta)\fP * Move to the tenth logical screen in the desktop. .TP SaveWorkspace \fI(F10+Meta+Alt+Shift)\fP * Execute a Save Workspace command .TP ToggleDragWindows \fI(F6+Alt+Shift)\fP * Toggles the setting of the DragWindow resource .TP ToggleMoveGroups \fI(g+Alt)\fP * Toggles the setting of the VirtualMoveGroup resource .TP ToggleSizeFullZoomX \fI(F3+Alt+Shift)\fP * Toggles the setting of the FullSizeZoomX resource .TP ToggleSticky \fI(s+Alt)\fP * Toggles the sticky state of the window with input focus. .\" ======================================================================== .SH ADVANCED USAGE .I olvwm will read a resource file ($HOME/.olvwmrc) for special customizations. These customizations allow the following: .IP HOT\ KEYS You can specify that when a certain key (or, more likely, key in combination with modifiers) is pressed that certain actions are performed: you can warp to a particular application, open, raise, or close applications, execute applications, and quit applications. .IP SCREEN\ BINDINGS You can specify that certain applications will always start on a particular logical screen. .IP MENU\ OPTIONS You can alter the behaviour of WINMENU selections on a particular window. .LP Please see .I olvwmrc(5) for details of these options. .\" ======================================================================== .SH COPYRIGHTS .LP The X Window system is a trademark of the Massachusetts Institute of Technology. .br OPEN LOOK is a trademark of AT&T. .br OpenWindows is a trademark of Sun Microsystems, Inc. .br Portions (c) Copyright 1989-1991 Sun Microsystems, Inc. Sun design patents pending in the U.S. and foreign countries. OPEN LOOK is a trademark of AT&T. Used by written permission of the owners. .br Portions (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered trademark of Bigelow & Holmes. Permission to use the Lucida trademark is hereby granted only in association with the images and fonts described in this file. .br Portions may be (c) 1990 Solbourne Computers. .br Portions not covered under the above copyrights are (c) 1991 Scott Oaks. .br Please see the LEGAL_NOTICES file for full disclosure of copyright information. .\" ======================================================================= .SH CREDITS .LP Most of the code in this application comes from release 3.0 of olwm, authored at Sun Microsystems and distributed in the contrib section of MIT's X11R5. [Note that nothing in xview3 or release 3.0 requires R5; they will happily run on R4 and exist in R5 simply because that's when they were released.] .br The virtual desktop section was authored by Scott Oaks, who is responsible for its maintenance. Please direct any comments to scott.oaks@sun.com. This code is not supported by Sun Microsystems in any way. .br Notwithstanding the above, the staff at Sun Microsystems, and especially Stuart Marks, deserve credit as original author of olwm for most of the work contained in this application. .br Innumerable people have made fixes and enhancements to olvwm, and I'm very bad at listing them all (but drop me a note and I'll do better in a future release :-)). Thus, the following list is by no means comprehensive, but these people have all provided something to olvwm: Tor Arntsen, Paul Andrews, Rich Berlin, David Boyd, David Chase, John Durand, Alexander Dupuy, Paul Eggert, Eric Fifer, Duane Gibson, Jimmy Guggemos, Orest Jarosiewicz, Russel Kegley, Murray Laing, Tom McConnell, Blair MacIntyre, Chuck Musciano, Matthias Pfuetzner, David Plotkin, Harry Protoolis, Nir Samburski, Andreas Stolcke, Hinrich Tobaben, Larry Virden, Ken West, and Ron Winacott. xview-3.2p1.4/clients/olvwm-4.1/olvwmrc.man100644 1750 1750 36072 5521044451 15745 0ustar mbmb.\" @(#)olvwmrc.man 1.3 olvwm version 25 Nov 1992 .TH OLVWMRC 5 "30 November 1992" .SH NAME olvwmrc \- Resource file for the OPEN LOOK Virtual Window Manager .SH SYNOPSIS $HOME/.olvwmrc .SH DESCRIPTION .olvwmrc is a file which controls advanced keybinding and menu features for the OPEN LOOK Window Manager .I olvwm. Four features of .I olvwm are controlled by entries in this file: .IP "\fBLocal Variables\fP" which can be used in key or screen bindings .IP "\fBKey Bindings\fP" which can map specific actions to function keys .IP "\fBScreen Bindings\fP" which can control where certain applications are started .IP \fBWINMENU\fP entries which can control the behavior of items selected from the .I olvwm WINMENU menu. .LP The syntax for each of these entries is given below. Common to all syntax entries is the notion of an ``identifier'': this is a string which somehow specifies which window(s) the given entry applies to. When determining if a particular window is affected by a particular rule in .I .olvwmrc, .I olvwm first checks a window's WM_NAME to see if it matches the identifier listed in the rule. This match is done only for the length of the identifier, so that the identifier .I Mail will match all windows which begin with the 4 letters Mail in their WM_NAME. If this does not match, .I olvwm next checks the instance and then the class fields of the window's WM_CLASS attribute to check for a possible match. If a match is found for any of these fields, the window is affected by the given rule. Case is significant in checking all matches. .LP Identifiers may contain any alpha-numeric characters; any other characters must be enclosed within quotes (single or double). Thus, .I Mail is a valid identifier, as is "\fIMail Tool\fP" but .I Mail Tool is not. Similarly, strings which are to be executed should be enclosed in quotes if they contain non alpha-numeric characters. Quotes may be nested in strings, so that to start a clock with the label .I foo bar, you would specify \fI 'clock -label "foo bar"'\fP. Finally, single quotes may be escaped with a backslash, so that the full WM_NAME of DevGuide, for example, should appear as \fI"OpenWindows Developer\\'s Guide"\fP. .LP All whitespace in this file is ignored; and lines beginning with a # are considered comments (but only if the # is in column 1). .SH Variables The .I .olvwmrc file may define local variables by assigning a value to a legal variable name. Variable names must be made up of alphanumeric charcaters or the '_' character. Variable names may begin with a number and assignments may contain spaces either before of after the '=' operator. .LP Variable names are referenced by using .I %VariableName or \fI%{VariableName}\fP; %% will yield a single %. Variable references may appear as part of the definition of any key or screen binding. Variable references may also appear in assignment statements. .LP In addition to .I olvwm variables, environment variables may be used in the same contexts using the familiar .I $NAME or .I ${NAME} syntax; again, $$ will yield a single $. .LP The following example illustrates the use of variables: .br .nf # # Define screen size. # Xsize = '1136' Ysize = '798' WholeScreenSize = '%{Xsize}x%{Ysize}+3+3' # # Define file names. # FileName = '.olvwmrc' PathName = '$HOME/%FileName' .SH Key/Action Bindings .I olvwm can be made to perform a series of actions when a specific key is pressed. The key can be any valid X keysym name and may be specified by itself or with any one or more of the following modifiers: Shift, Control, Alt, Meta, Hyper, Super, Shift Lock, or Caps Lock, in which case the key must be pressed with the given modifiers. .LP The functionality for a key specified in a binding in .I .olvwmrc takes precedence over any other functions that key might perform. Thus, if you bind the L5 key to an action in .I .olvwmrc, you will not be able to use the L5 key to bring windows to the front; if you bind the R8 key, you will not be able to scroll up on the desktop using that key. Since the unmodified versions of 29 of the possible 35 standard function keys on a type-4 keyboard (L1-L10, F1-F10, and R1-R15) already have a meaning within .I olvwm, it is recommended that at least one modifier be used for keys in this manner so as not to conflict with other key meanings. .LP There are thirteen valid actions which can be associated with a key: .IP \fBWarp\fR This action requires a single identifier. The youngest window matching this identifier will be located, and the view into the desktop will be warped so that the found window is displayed on the screen. The window itself will not change position relative to the other windows; merely the view into the desktop will be changed. If no matching window is found, the view is unchanged. The mouse is moved into the matching window, and that window is given input focus. .IP \fBOpen\fR This action requires a list of identifiers separated by commas. Each iconified window will be matched against this list and those which match any identifier in the list will be opened. .IP \fBClose\fR This action requires a list of identifiers separated by commas. Each non-iconified window will be matched against this list and those which match any identifier in the list will be closed. .IP \fBRaise\fR This action requires a list of identifiers separated by commas. Each window will be matched against this list and those which match any identifier in the list will be raised. Windows will be raised youngest first, so that the oldest windows in the list will end up on top. .IP \fBLower\fR This action requires a list of identifiers separated by commas. Each window will be matched against this list and those which match any identifier in the list will be lowered. Windows will be lowered youngest first, so that the oldest windows in the list will end up on the bottom. .IP \fBRaiseLower\fR This action requires a list of identifiers separated by commas. Each window will be matched against this list and those which match any identifier in the list will be raised to the top of the stack if they are partially obscured or lowered to the bottom of the stack if they are on top. .IP \fBExecute\fR This action requires a list of commands separated by commas. Each command will be executed via a Bourne-shell in the same manner as commands given in the .I olvwm menu file [except that multiple commands may be listed in this case.] .IP \fBGoto\fR This action requires a single integer parameter, which is the logical screen to which the desktop should warp when the given key(s) are pressed. .IP \fBQuit\fR This action requires a list of identifiers separated by commas. Each window will be matched against this list and those which match any identifier in the list will be killed. .IP \fBGeometry\fR This action requires a single identifier. The identifier must be a valid X geometry string but may be partially specified (may only specify position or size). This geometry will be applied to the current window. If there is no current window this action will have no effect. .IP \fBRebind\fR This action optionally takes a filename parameter. If no parameter is specified the normal search is performed to find the correct version of the .I .olvwmrc file (as at startup). If a parameter is given it is used as the .I .olvwmrc file. All current key bindings are discarded and the .I .olvwmrc file is read. If the .I .olvwmrc files does not exist the current key bindings are not discarded. .IP \fBStick\fR This action requires a single parameter which must be one of the following: \fIOLVWM_USE_SELECTION\fR, \fIon\fR, \fIoff\fR, \fItoggle\fR, or a list of window names. If the parameter is either \fIOLVWM_USE_SELECTION\fR or \fItoggle\fR, the sticky attribute of the current window will be toggled. Similarly, if the parameter is a list of window names then those window's sticky attributes will be toggled. The values \fIon\fR and \fIoff\fR can be used to explicitly set the current window's sticky attribute. .IP \fBSetSize\fR This action requires a single parameter which must be one of the following: \fIOLVWM_USE_SELECTION\fR, \fIfull\fR, \fIsave\fR, \fIstore\fR, \fIrestore\fR, \fItoggle\fR, or a list of window names. If the parameter is \fIOLVWM_USE_SELECTION\fR or \fItoggle\fR, either the window's current geometry will be saved and its size will be set to full size or its saved geometry will be restored, depending on the window's current state. Similarly, if the parameter is a list of window names then the same action will be performed for those windows. The parameter \fIsave\fR can be used to preserve the current window's geometry such that a restore size (or \fItoggle\fR) will restore the windows position and size. Note that \fIsave\fR will only store the windows geometry if it has not already been saved. The parameter \fIstore\fR will always save a windows geometry (possibly overwriting the currently saved geometry). The \fIrestore\fR parameter will simply restore the current window's saved geometry (if it has one). .IP \fBFocus\fR This action requires a single parameter which must be either \fIsave\fR or \fIrestore\fR. The \fIsave\fR parameter will cause the window with focus to be remembered such that a \fIrestore\fR will restore focus to that window. .LP These actions may appear in any order and will be performed in the reverse of the order specified. Commands may be listed multiple times; this is useful in case you want a different stacking order than that obtained by using a single raise command. To do this, list separate raise commands for each window and put the raise command for the window you want to be on top first. .LP The full syntax for a Key/Action binding is .IP .I KeyName { Actions } .LP A Key Name is a valid key (L1-L10, F1-F10, or R1-R15) followed by plus signs and the modifiers desired. .LP For example, given the following entry: .br .nf L2 + Shift { Warp: "OpenWindows Developer\\'s Guide" Execute: '$OPENWINHOME/bin/xview/clock -label "foo bar"', "$OPENWINHOME/bin/xview/iconedit" Raise: xterm, shelltool } .SH Then when Shift L2 is pressed, the following will occur: .IP 1) The view will shift so that the youngest copy of DevGuide is on the screen. .IP 2) A clock will be started; its namestripe will contain foo bar. The IconEditor will also be started. .IP 3) All xterms and shelltools will be raised to the front of the stacking order. .SH Screen Bindings .I olvwm can arrange to begin any application relative to a particular logical screen. A ``logical screen'' is the area on the virtual desktop which maps to the size of your monitor; in the VDM, each logical screen is outlined in dashed lines (unless you've turned this feature off). Screens are numbered by row starting with 1. Note that the position of a logical screen will vary depending on the size of a desktop: in the default (2x3) configuration, screen 4 is in the bottom left-hand corner of the VDM but in a smaller (2x2) configuration, it is in the bottom right-hand corner. .LP The syntax for specifying a screen binding is .IP .I Screen # { Identifiers } .LP where .I # is the logical number of the screen and .I Identifiers is a list of comma-separated window identifiers for windows which should always start on that screen. Note that it is always possible to move the window to another screen later. .LP For example, the following entry will ensure that the windows started by Sun's AnswerBook (windows with names Navigator and Viewer) will always start on screen 6: .br .nf Screen 6 { Navigator, Viewer } .SH WINMENU Actions When a window is selected in the WINMENU menu, .I olvwm will perform certain actions. The possible actions are the same as those listed above for Key Actions, except that the mouse position will not change on a warp. By default, windows behave as if a warp, raise, and open were performed on the selected window. .LP To effect a different action list for a particular window, you can specify .IP Identifier { Actions } .LP Each of these is a MenuGroup; one or more of these can appear in the following syntax: .IP WINMENU { MenuGroups } .LP For example, here is a possible entry: .nf WINMENU { "File Manager" { Warp: "Mail Tool" Open: OLVWM_USE_SELECTION } xterm { } "Virtual Desktop" { Open: OLVWM_USE_SELECTION Execute: "$OPENWINHOME/bin/props" } } .SH .LP If you select the File Manager from your WINMENU, then the view will warp to your Mail Tool instead of your file manager, and your file manager, if closed, will be opened. [This isn't that contrived an example: pretend your file manager is sticky and your mail tool isn't, and you anticipate that you'll need to drag between the two.] .LP If you select an xterm from your WINMENU, absolutely nothing will happen. This implements a No-Op for that window. .LP If you select the VDM from your WINMENU, it will be opened and the properties application will be started. .LP Note that this Identifier list can contain the special entry .I OLVWM_USE_SELECTION which, as you might expect, operates on the single window corresponding to the one you selected. A subtle distinction exists here: given the MenuGroup .IP xterm { Raise: xterm } .LP then ALL xterms will be raised when any xterm is selected via the WINMENU. However, the entry .IP xterm { Raise: OLVWM_USE_SELECTION } .LP will raise only the xterm corresponding to the one selected via the WINMENU. .SH RESOURCES AND KEY BINDINGS .LP There are a few resources which are particular to the operation of olvwmrc. .P .TP .BI VirtualReRead " (boolean)" When this resource is True, .B olvwm will re-read the .I .olvwmrc file whenever it receives a Function Key event. This will happen whenever a function key is pressed in the VDM or on the root window, or whenever a function key grabbed by .B olvwm is pressed. .I Default value: True .P .TP .BI NoVirtualKey " (list of windows)" This resource disables the virtual keys set up in .I .olvwmrc for a particular window. The list of windows follows the same syntax as other resource lists like MinimalDecor and VirtualSticky. When a window in this list has the input focus and the user executes a key sequence which is mentioned in .I .olvwmrc, that key sequence will be passed to the application rather than initiating the olvwmrc action. Note that this disabling applies only to bindings established via entries in .I .olvwmrc; normal .B olvwm and .B olwm bindings are not affected. .I Default value: None .P .TP .BI NoVirtualFKey " (list of windows)" This resource is like NoVirtualKey, but only the Function keys F1 to F10 will be disabled for the given window. .I Default value: None .P .TP .BI NoVirtualLKey " (list of windows)" This resource is like NoVirtualKey, but only the keys L1 to L10 (which map to F11-F20 on non-Sun keyboards) will be disabled for the given window. .I Default value: None .P .TP .BI NoVirtualRKey " (list of windows)" This resource is like NoVirtualKey, but only the keys R1 to R15 will be disabled for the given window. .I Default value: None .SH SEE ALSO .LP olvwm(1), olwm(1) .SH NOTES .LP Please see the LEGAL_NOTICES file for full disclosure of copyright information and olvwm(1) for acknowledgments. .SH BUGS .LP The multiple interfaces for NoVirtualKeys is something only a Wall Street trader could appreciate. xview-3.2p1.4/clients/olvwm-4.1/olwm.man100644 1750 1750 173470 5521044453 15260 0ustar mbmb.\" @(#)olwm.man 1.1 10/4/91 SMI .TH olwm 1 "6 August 1991" .SH NAME olwm \- OPEN LOOK window manager for OpenWindows .SH SYNOPSIS .B olwm [ .I options ] .\" ======================================================================== .SH DESCRIPTION .LP .B olwm is a window manager for the X Window System that implements parts of the OPEN LOOK graphical user interface. It is the standard window manager for Sun's OpenWindows product, but it will work properly with any X11 system. .\" ======================================================================== .SH OPTIONS .LP Most command-line options have counterparts in the resource database. A command-line option will override any setting from the resource database. .TP .B \-2d Use two-dimensional look. This is the default for monochrome systems. .TP .B \-3d Use three-dimensional look. This is the default for color systems. This option is ignored for monochrome systems. .TP .BR \-bd ",\ \ " \-bordercolor Specifies the border color. See the description of the .B BorderColor resource. .TP .BR \-bg ",\ \ " \-background Specifies the background color. See the description of the .B Background resource. .TP .BR \-c ",\ \ " \-click Use click-to-focus mode. This is the default focus mode. .TP .BI "\-depth " depth Specifies the depth of the visual in which .B olwm is to run. See the discussion in the Screen Resources section. .TP .BI "\-display " display-string Specify the name of the display to manage. Overrides the DISPLAY environment variable, if any. In addition, the display string is exported to .BR olwm 's environment, so processes forked from .B olwm will inherit this value. .TP .BR \-f ",\ \ " \-follow Use focus-follows-mouse mode. Default mode is click-to-focus. .TP \fB\-fn\fP\ \fIfont-name,\fP\ \ \fB\-font\fP\ \ \fIfont-name\fP Set the font for window titles. .TP .BR \-fg ",\ \ " \-foreground Specifies the foreground color. See the description of the .B ForegroundColor resource. .TP .BI "\-multi" Manage windows on all screens that a display supports. This is the default. .TP .BI "\-name " resource-name Use .I resource-name to look up resources in the resource database. .TP .BI "\-xrm " resource-string Specify resources on the command-line. Resources specified here will override resources found in resource files. .TP .BI "\-single" Manage windows for a single screen only, using the default screen for the specified display. Overrides the .B \-multi option. .TP .BI "\-syncpid " process-id When .B olwm has completed its initialization, it will send a signal (SIGALRM by default) to .I process-id. The signal will be sent only if this option is present. This is useful for running .B olwm from shell scripts (such as .xinitrc) in such a way that the script waits for .B olwm to finish its initialization, while leaving .B olwm as a child process of the shell script. This can be done using the following .BR sh (1) construct: .nf .sp sleep 15 & pid=$! olwm \-syncpid $pid & wait $pid .sp .fi .TP .BI "\-syncsignal " signal Specifies the signal to send instead of SIGALRM. The signal is specified as a number, not symbolically. .TP .BI "\-visual " visual-class Specifies the class of the visual in which .B olwm is to run. See the discussion in the Screen Resources section. .\" ======================================================================== .SH DEBUGGING OPTIONS .LP The following options are strictly for debugging. They are not recommended for general use. Don't use them unless you know what you are doing. .TP .B \-all Print a message for every event received. .TP .B \-debug Equivalent to turning on all debugging options. .TP .B \-orphans Print orphaned events. Orphaned events are events that are associated with a window or frame that has no entry in the frame hash table, or events that are not handled by the various event handlers. .TP .B \-synchronize Run the window manager in synchronous mode. .\" ======================================================================== .SH INTERNATIONALIZATION OPTIONS .TP .BI "\-basiclocale " locale-name Specify the basic OPEN LOOK locale category setting. This category will be the base for other locale categories, therefore there are certain restrictions applied to other locale categories (see the following locale handling sections). .TP .BI "\-displaylang " locale-name Specify the display language OPEN LOOK locale category. This category affects the contents of workspace menu, window menu and notice messages. .TP .BI "\-numeric " locale-name Specify the numeric format OPEN LOOK locale category. This category affects the numeric format displayed in any message that contains numerics. .\" ======================================================================== .SH LOCALE HANDLING .PP .I Locale is the language and cultural conventions used in the program. Locale will control the language-dependent part of .BR olwm 's behavior. The OPEN LOOK international extensions have defined several OPEN LOOK locale categories as follows: .TP .B "Basic Locale" This is the basic setting for the entire locale mechanism. This category specifies internal character handling behavior. .TP .B "Display Language" This category specifies the language used for displaying menus, notice messages and error messages. .TP .B "Input Language" This category specifies the language used for text input. This category has no affect on .BR olwm , because it does not accept text input from the keyboard. .TP .B "Date Format" This category specifies the format of date and time. This category has no affect on .BR olwm , because it does not display any date and time information. .TP .B "Numeric Format" This category specifies the format of displayed numeric data. .PP Since the Basic Locale setting defines the character handling of .BR olwm , certain restrictions have been placed on combining the locale category settings. .IP 1. 3 If basic setting is set to other than "C" locale, then all other locale categories must be the same as basic setting or "C". .IP 2. If basic setting is set to "C" locale, then all other locale categories must be in "C" locale. .PP The following methods are available to inform .BR olwm , the locale settings, and they are listed in order of priority: .IP 1. 3 Command line options (such as .BR \-basiclocale). .IP 2. by resource database. .IP 3. .BR setlocale (3) function defaults (for example: LANG environment variable). .PP If command line options are not used to specify locale settings, .B olwm will pick up the new locale settings from workspace property (per changes to the resource database); and change the locale settings dynamically (for example, to change the language of workspace and window menus). All pinned workspace menus will be unpinned during this locale switching operation. .\" ======================================================================== .SH INPUT FOCUS The .I input focus .P is the window that will receive keystrokes. .B olwm has two different input focus modes, which are different ways of transferring the input focus from one window to another. By default, .B olwm uses "click-to-focus" (also known as "click-to-type") mode. This means that you must click on the window in order to get the focus to it. While a window has the input focus, the mouse can be anywhere on the screen; the keyboard events will still go to that window. You can set the input focus to a window and simultaneously raise it to the top by clicking the left mouse button in the window's title bar or border. .LP .B olwm has another focus mode called "focus-follows-mouse." In this mode, whatever window the mouse is pointing to will receive the input focus. To switch the input focus from one window to another, you simply move the mouse to the other window; you don't have to click at all. Note, however, that to transfer the focus amongst subwindows of a single top-level window, you must click in the subwindow, or you must use focus transfer function keys (if available from the application). .LP The input focus mode can be controlled with command-line options or by entries in the resource database. Neither focus mode has inherent advantages. Which one you choose is a matter of personal preference. .\" ======================================================================== .SH MOUSE BUTTONS OPEN LOOK defines three mouse button functions: SELECT, ADJUST, and MENU. These functions are mapped to mouse buttons 1, 2, and 3, respectively. On systems with only two mouse buttons, the MENU function can be obtained by pressing buttons 1 and 2 simultaneously. This technique is referred to as mouse button .I chording. The exact behavior of each of these functions depends on what object is under the pointer. .\" ======================================================================== .SH MANIPULATING WINDOWS AND ICONS .I Window Title Bar and Borders. .P Clicking SELECT selects the window, raises it above other windows, and deselects any other objects. In click-focus mode, the focus is also transferred to this window. Pressing and holding SELECT and then dragging the mouse will move windows without raising them or setting the focus. If this window is selected, it and all other selected windows are moved simultaneously. Otherwise, just this window is moved, and it is not selected. If you hold down the Control key while you are moving a window, motion is constrained to be either vertical or horizontal, depending on whether you've moved farther in a vertical or horizontal direction. Double-clicking SELECT on the window is the same as selecting the Full Size (or Restore Size) menu item. Clicking ADJUST will toggle the selected state of this window. If other windows or icons are already selected, they remain selected. ADJUST is useful for selecting several windows and icons. Pressing MENU will bring up the window menu. See the Window Menu section for further details. If the .B Alt key is held down, the mouse button functions become accessible anywhere over the window, not just over the title bar and borders. The modifier used can be changed; see the description of the .B WMGrab resource in the section on Modifier Customization. .LP .I Resize Corners. .P You can resize a window by pressing the left mouse button over any of the resize corners and dragging it to the new location. Releasing the mouse button will set the new size of the window. If you hold down the Control key while you are dragging, the resize operation is contrained to resize vertically or horizontally, depending on whether you've moved the mouse farther in the horizontal or vertical direction. .LP .I Window Button. .P The Window Button is the small box with a downward-pointing triangle near the left end of the title bar. Pressing MENU over the window button will bring up the Window Menu. Clicking SELECT over the left mouse button on the Window Button will execute the window menu's default action. This will usually close the window into an icon. You can change the window menu's default action by holding down the Control key while manipulating the window menu. .LP .I Pushpin. .P OPEN LOOK pop-up windows have a pushpin instead of a window button. If the pushpin is out of its hole, pressing a command button within the window will cause the window to be taken down ("dismissed") after the command is executed. If you click SELECT on the pushpin, it will move into its hole. In this state, pressing a command button will execute the command without dismissing the window. Clicking SELECT over the pin will pull it out of the hold. This will dismiss the window without executing any commands. Some windows come up with the pin already in the hole. .LP .I Icons. .P An icon represents a closed window. You can still do most of the same operations as with an open window. Moving and selecting icons with SELECT and ADJUST is exactly the same as for open windows. A similar version of the Window Menu is available on an icon by pressing MENU. Double-clicking SELECT will open the icon. Icons cannot be resized. .\" ======================================================================== .SH NONRECTANGULAR WINDOWS The X11 Non-Rectangular Window Shape Extension (commonly referred to simply as the Shape extension) allows windows to have arbitrary shapes. .B Olwm will handle these windows by giving them no decoration whatsoever. Shaped windows can be manipulated by using the WMGrab modifier (Alt by default) with the mouse buttons. (See the section on Modifier Customization for further details.) Shaped windows can be moved, resized, closed, opened, etc. like ordinary windows. The selection feedback for shaped windows is the presence of resize corners floating at the corners of the bounding rectangle of the window's shape. .\" ======================================================================== .SH SELECTIONS ON THE WORKSPACE .LP You can select a group of windows and icons by using the left or middle mouse buttons over the Workspace (the area of the screen outside of all windows and icons, commonly known as the "root window"). Pressing either SELECT or ADJUST and dragging the mouse will define a rubber-band rectangle. When you release the mouse button, the set of windows and icons enclosed by this rectangle will be operated on. If you created the rectangle using SELECT, the windows and icons within will be selected, and all other objects will be deselected. If you used ADJUST, the objects within will have their selected state toggled, and any other windows and icons already selected will remain selected. .\" ======================================================================== .SH WORKSPACE MENU .LP Pressing MENU over the workspace brings up the Workspace Menu. This menu is customizable, but it typically contains at least the following items. (The items may appear in a different language depending on the current locale setting.) .TP .B Programs This button has a sub-menu that allows you to invoke applications. The default Programs sub-menu contains all of the programs in the OpenWindows DeskSet. However, users typically customize this menu to contain many more programs and to contain nested submenus. See the section on Menu Customization for further information. .TP .B Utilities This button has a sub-menu that contains several utility functions for the workspace, including Refresh (redisplay all windows on the screen), Lock Screen, and Save Workspace. .TP .B Properties... This item brings up the Workspace Properties window, which allows you to view and customize settings of the OpenWindows environment. .TP .B Help... Brings up the table of contents of the Help Handbooks. .TP .B "Desktop Intro..." Brings up a tutorial introduction to the Sun Desktop. .TP .B Exit Shuts down all applications and exits the window system. A confirmation notice is popped up first to give you a chance to cancel the operation. .\" ======================================================================== .SH WINDOW MENU .LP The window menu of most windows has the following items. (The items may appear in a different language depending on the current locale setting.) .TP .B Close Close the window to an icon. Any OPEN LOOK pop-up windows are closed into this icon as well. They will reappear when the icon is opened. This item is "Open" if you bring up the menu on an icon. .TP .B Full Size Expand the window to the full height of the screen. If this has already done, the button is Normal Size instead of Full Size. Normal Size restores the window to the size it was before you did the Full Size operation. If the application has specified a maximum size for the window, this size is used for Full Size instead of the full screen height. .TP .B Move Starts the keyboard-based form of moving the window. Appears only if OPEN LOOK Mouseless Mode is enabled. .TP .B Resize Starts the keyboard-based form of resizing the window. Appears only if OPEN LOOK Mouseless Mode is enabled. .TP .B Back Move the window behind all other windows. .TP .B Refresh Clear and redisplay the window. .TP .B Quit Kill the program running in the window and remove the window. If the application has elected to participate in the WM_DELETE_WINDOW protocol, .B olwm sends a WM_DELETE_WINDOW ClientMessage instead of killing that window. .LP OPEN LOOK pop-up windows (as opposed to base windows) have a smaller window menu. It lacks the Close, Full Size, and Quit items, but it has two new items: .TP .B Dismiss Causes the window to be dismissed. This button has a submenu with two items: This Window, which dismisses just this window, and All Pop-ups, which dismisses all pop-up windows owned by this application. .TP .B Owner? Raises and flashes the title bar of the base window that "owns" this pop-up window. .\" ======================================================================== .SH MENU CUSTOMIZATION FILES .LP You can customize .BR olwm 's Workspace Menu by putting a menu description into a file that .B olwm will read. When it starts up, .B olwm will first look for a file named by the OLWMMENU environment variable. If this variable does not exist, or if the file is not readable, .B olwm will then look in the file named ".openwin-menu" in your home directory. If this file is not present or is unreadable, .B olwm will fall back on the system default menu file. If, for some reason, the system default menu file cannot be found, .B olwm will use a minimal, built-in menu. The menu file that is read can also be modified by the display language locale setting. The locale name is used as a suffix for the filename. If a localized menu file is found, it is used in preference to the non-localized menu file. For example, if the display language local is "japanese", the file ".openwin-menu.japanese" will take precedence over the file ".openwin-menu". .LP .B Olwm will automatically re-read its menu file whenever the menu file changes. This lets you make many small changes to a menu file, trying out the modified menu after each change. The automatic re-reading can be controlled with the .B AutoReReadMenuFile resource. .LP If .B olwm encounters a syntax error during the reading of any menu file, a message is printed to the standard error, and the reading of this menu file is considered to have failed. .B Olwm will then attempt to read the next file in the sequence as described above. .\" ======================================================================== .SH MENU SPECIFICATION SYNTAX The menu specification language has a number of keywords, all of which are in all upper case letters. The keywords are .I not translated into the language specified by the the locale category settings. Keywords are always in English. .LP Each line typically specifies one menu button. There are three fields on each line: a label, the optional keyword "DEFAULT", and a command. The label is either a single word or a string enclosed in double quotes. This is the label that appears in the menu button. If the optional keyword "DEFAULT" appears next, this menu item becomes the default item for this menu. The rest of the line (excluding leading whitespace) is considered to be a command. It is executed by sending it to .BR sh (1). Any shell metacharacters will be passed through to the shell unchanged. A line containing only the keyword "SEPARATOR" will add extra space before the next item. .LP A sub-menu is specified using the special keyword "MENU" in place of a command. A button is added to the current menu, and clicking or pulling right on this button will bring up the sub-menu. Subsequent lines in the menu file define buttons for the sub-menu, until a line that has the special keyword "END" in the command field is encountered. The label of the MENU line must match the label on the END line, otherwise an error is signaled. Sub-menus can be nested arbitrarily, bracketed by MENU and END lines with matching labels. To make a sub-menu pinnable, add the special keyword "PIN" after the END keyword on the line that ends the sub-menu definition. .LP A sub-menu can be specified in a different file by putting the pathname of the file after the MENU keyword. In this case, the file so named is assumed to contain lines that specify menu buttons. The sub-menu file need not have any MENU or END lines (unless it has sub-menus itself). The current file need not have a matching END line if the sub-menu is read from another file. .LP By default, the label in a menu button is used as the title of the submenu. This can be overridden by specifying a line that has the special keyword TITLE in the command field. The label from this line will be used as the sub-menu's title. This line can appear anywhere in the sub-menu definition. It does not add an item to the menu. .LP The following keywords can be used in the command field of a menu item. They specify functions that are internal to .B olwm, that are not invoked by running a shell. .TP BACK_SELN Move the selected windows and icons behind other windows. .TP EXIT .br Kills all applications and exits the window manager after getting confirmation from the user. This is useful for exiting the entire window system. .TP EXIT_NO_CONFIRM Like EXIT but skips the confirmation notice. .TP FLIPDRAG Toggle the state of the DragWindow resource. .TP FLIPFOCUS Toggle the state of the SetInput resource. .TP FULL_RESTORE_SIZE_SELN Toggle the full-sized/normal-sized states of the selected windows and icons. .TP NOP .br No operation; don't do anything. .TP OPEN_CLOSE_SELN Toggle the opened/closed states of the selected windows and icons. .TP QUIT_SELN Quit the selected windows and icons. .TP POSTSCRIPT Open up a connection to Ne\h'-0.2n'WS using .BR psh (1) and send the rest of the line to it. .TP PROPERTIES Bring up Workspace Properties. .TP REFRESH Refresh causes all windows on the screen to be repainted. .TP REREAD_MENU_FILE Force an immediate rereading of the workspace menu customization file. .B Olwm will start a complete search for a menu file (as described in the .I Menu Customization section) and use the first valid file it finds. .TP RESTART Restart the window manager by issuing an .BR exec (2) on .B argv. This shouldn't affect any running applications, nor should it cause the server to shut down. .TP SAVE_WORKSPACE .br Take a snapshot of the set of currently running applications, and put the command lines so obtained into the file ".openwin-init" in the user's home directory. This runs the command .br "owplaces -silent -multi -script -output $HOME/.openwin-init". .TP WMEXIT Exit the window manager without killing any applications. .LP Here is an example root menu specification. .LP .nf "My Custom Menu" TITLE .sp Programs MENU "Command Tool" DEFAULT cmdtool "Text Editor" textedit Mail mailtool "File Manager" filemgr Other MENU "Other Tools" TITLE "Shell Tool" shelltool "Icon Editor" iconedit Clock clock "Perf Meter" DEFAULT perfmeter Other END Programs END PIN .sp "Repaint Screen" REFRESH .sp "Properties ..." PROPERTIES .sp Exit EXIT .fi .\" ======================================================================== .SH COLORMAP INSTALLATION .LP .B Olwm will handle colormap installation for windows that have colormaps other than the default colormap. There are two colormap focus modes: "color-follows-mouse" and "color-locked". They are roughly analogous to the corresponding modes for input focus. However, colormap focus mode can be completely independent of input focus. The mode in which the system starts up is determined by the ColorFocusLocked resource (see the Resources section below). .LP .B Olwm keeps track of a set of windows that are eligible to have their colormaps installed. This set includes all top-level windows of clients. If any clients have specified other windows in a WM_COLORMAP_WINDOWS property, these windows are included in the set as well. .LP In color-follows-mouse mode, .B olwm keeps track of the location of the pointer and always keeps installed the colormap of the eligible window underneath the pointer. Thus, you can install the colormap of a particular window simply by sliding the pointer into it. The default colormap will be restored if you move the pointer back out into a window frame or into the workspace. In this mode, the WM_COLORMAP_WINDOWS properties are tracked for changes, but only to change the set of eligible windows. Changes to these properties only cause colormaps to be installed if the eligible window under the pointer has changed as a result of the set of eligible windows changing. In this mode, no window is considered to have the colormap focus; colormap installation entirely is under control of the user. .LP In color-locked mode, colormaps are not installed based on pointer motion. Instead, a particular window is considered to have the colormap focus. When a window has the colormap focus, colormaps will not be installed and uninstalled based on pointer motion. If a client program changes the contents of the WM_COLORMAP_WINDOWS property on the top-level window with the colormap focus, .B olwm will respond by installing the colormap of the first window named in this property. In this way, the application whose window has the colormap focus can control colormap installation by altering the contents of the WM_COLORMAP_WINDOWS property. .LP Note that, according to the ICCCM, if WM_COLORMAP_WINDOWS does not include the top-level window, it is assumed to occur first in the list. If you want your program to request colormap installation via changes to WM_COLORMAP_WINDOWS, you must make sure that the top-level window appears somewhere in this property. Otherwise, .B olwm will always install the colormap of the top-level window. .LP The colormap focus may be given to a window in one of several ways. The user can assign the colormap focus to a window by pressing the Color-Lock key while the pointer is over the window. If the AutoColorFocus resource is set, new windows will be given the colormap focus automatically. If the ColorTracksInputFocus resource is set, the colormap focus will always be given to the window that has the input focus. .LP In addition to setting the colormap focus, the Color-Lock key has some additional effects. When you press the Color-Lock key, if the pointer is within a subwindow named in the WM_COLORMAP_WINDOWS property, that subwindow's colormap will be installed. If the pointer isn't within a window named in the WM_COLORMAP_WINDOWS property, or if the pointer is over the window title bar or border, the colormap of the first entry of the WM_COLORMAP_WINDOWS property will be installed. You can use the Color-Lock key to install the colormap of a particular subwindow no matter where it resides in the WM_COLORMAP_WINDOWS list. If there is no WM_COLORMAP_WINDOWS property, pressing the Color-Lock key will simply install the colormap of the top-level window. .LP If you press the Color-Lock key over the workspace, the default colormap will be installed, and any window with the colormap focus will lose it. The root window will have the colormap focus. .LP At any time, you can revert to color-follows-mouse mode by pressing the Color-Unlock key. Any window with the colormap focus will lose it. .\" ======================================================================== .SH SPOT HELP .LP .B Olwm provides spot help for frames, icons, the Workspace and Window menus, window buttons, resize corners, pushpins, and the Workspace itself. This is done via a separate slave program, .BR olwmslave (1) . The slave program is forked automatically when .B olwm starts up. The forking of the slave program can be controlled by the .B RunSlaveProcess resource. .\" ======================================================================== .SH MULTIPLE SCREENS .LP By default, .B olwm will manage windows on all screens of the display server. Most operations are unchanged from single screen operation. A window exists on a particular screen for its entire lifetime. The window cannot be moved from one screen to another, nor can it be resized to cross a screen boundary. Windows invoked from the Workspace menu will appear on the same screen as the menu. Spot help will appear on the same screen as the pointer when the Help key is pressed. .LP Previous releases required modifications to the user's .xinitrc script to start multiple instances of .B olwm, one for each screen. These modifications are no longer necessary. The default Xinitrc (which contains a single invocation of .BR olwm ) works for both single and multiple screen situations. .\" ======================================================================== .SH GLOBAL RESOURCES .LP Global resources in .B olwm consist of two resource components. The first component in the resource name is taken from the trailing pathname component of .BR argv[0] . This value is typically `olwm'. This name can be altered by using the .B \-name command-line argument. The second resource component names the global attribute being set. It should be one of the names from the following list. Thus, to set the AutoColorFocus attribute, one would use "olwm.AutoColorFocus" as the resource specification. .LP Some resources are also interpreted by XView (see .BR XView (7)) and are set by the Workspace Properties program (see .BR props (1)). For these resources, .B olwm will also accept the string `OpenWindows' as the first resource component. These resources are marked with an asterisk `*'. .LP Colors can be specified using the formats parsed by the Xlib XParseColor() function. Common formats are color names (see .BR showrgb (1)) and explicit red, green, and blue values in hexadecimal, preceded by a `#'. For example, a bright magenta would be specified with "#ff00ff". .LP Boolean values can be specified with the words "true", "false", "on", "off", "yes", "no", "1", "0", "t", and "nil". .TP .BI AutoColorFocus " (boolean)" Indicates whether newly appearing windows are to be given the colormap focus automatically. See the section on Colormap Installation for further details. .I Default value: false. .P .TP .BI AutoInputFocus " (boolean)" Indicates whether newly appearing windows are to be given the input focus automatically. .I Default value: false. .P .TP .BI AutoRaise " (boolean)" Raise windows automatically when they receive the focus. This is useful in click-to-focus if you always like to type into the topmost window. This is useful in focus-follow-mouse when the .B AutoRaiseDelay resource is set to a reasonable value. .I Default value: false. .P .TP .BI AutoRaiseDelay " (integer)" Amount of time to delay, in microseconds, between a window receiving the focus and raising it above other windows. Effective only when the value of the .B AutoRaise resource is true. .I Default value: 0. .P .TP .BI AutoReReadMenuFile " (boolean)" Specifies whether the menu file is to be re-read whenever it changes. .I Default value: true. .P .TP .BI Background " (color)" Specifies the background color. This is used for the background of masked icons. Note: it is not used for the backgrounds of icon windows such as those used by XView (see .BR XView (7)). This resource is also distinct from the .B WindowColor resource. .I Default value: white. .P .TP .BI BasicLocale " (locale name)" Specifies the basic OPEN LOOK locale category setting. See the section on Locale Handling for more details. .TP .BI Beep " (enumeration) " * Specifies the circumstances under which .B olwm should beep. Permissible values are the strings "always", "never", and "notices". The string "never" means that .B olwm should never beep, "notices" means that .B olwm should beep only when a notice appears, and "always" means that .B olwm will beep whenever it is appropriate. .I Default value: always. .P .TP .BI BorderColor " (color)" Specifies the color used for window and icon borders. .I Default value: black. .P .TP .BI ButtonFont " (font name)" Font to be used for buttons in menus and notices. .I Default value: Lucida-Sans. .P .TP .BI ClickMoveThreshold " (integer)" This value is used when bringing up a menu. If the mouse moves more than this amount while the menu button is down, the menu is considered to be in press-drag-release mode. Otherwise, the menu is in click-move-click mode. .I Default value: 5. .P .TP .BI ColorTracksInputFocus " (boolean)" If true, indicates that the colormap focus is to be set automatically to any window that receives the input focus. See the section on Colormap Installation for further details. .I Default value: false. .P .TP .BI ColorFocusLocked " (boolean)" Specifies the initial state of the colormap focus policy. If true, the default colormap is locked into the hardware. If false, the colormap of the window under the mouse is kept installed. See the section on Colormap Installation for further details. .I Default value: false. .P .TP .BI CursorFont " (font name)" Specifies the font to be used for cursors. It is probably not useful to change this unless you have an alternate cursor font with the same encoding as the OPEN LOOK cursor font. .I Default value: \-sun\-open look cursor\-*\-*\-*\-*\-*\-120\-*\-*\-*\-*\-*\-*. .TP .BI DefaultIconImage " (filename)" Specifies a file containing a bitmap to be used as the default icon image. .TP .BI DefaultIconMask " (filename)" Specifies a file containing a bitmap to be used as the default icon mask. .TP .BI DefaultTitle " (string)" Specifies the string to be used in the title bar of windows that have not provided a string in the WM_NAME property. .I Default value: No Name. .P .TP .BI DisplayLang " (locale name)" Specifies the display language OPEN LOOK locale category. See the section on Locale Handling for more details. .TP .BI DragRightDistance " (integer) " * The number of pixels you must drag the mouse to the right in a menu item to bring up a submenu. The submenu always comes up when you move over the menu mark (the right-pointing triangle), regardless of the drag-right distance. .I Default value: 100. .P .TP .BI DragThreshold " (integer) " * This is the number of pixels the mouse must move while a mouse button is down in order to have the action be considered a drag. If the mouse moves fewer than this number of pixels while the button is down, it is considered to be click instead of a drag. .I Default value: 5. .P .TP .BI DragWindow " (boolean)" If true, drags the entire image of the window when you move it. Otherwise, just drags the window outline. .I Default value: false. .P .TP .BI EdgeMoveThreshold " (integer)" Specifies the amount of "hysteresis" provided when moving windows past the edge of the screen. When you move a window or an icon, it will pause when it touches the edge of the screen. This is to allow you to easily position windows right up against the edge of the screen. If you move farther, the window or icon will continue to move past the edge. You can prevent windows from ever lapping off the screen by setting an extremely large value (say, 10000) for this resource, and you can disable this feature entirely by specifying a value of zero. .I Default value: 10. .P .TP .BI FlashCount " (integer)" Number of times the title bar is flashed when the "Owners?" menu item is activated. .I Default value: 6. .P .TP .BI FlashTime " (integer)" Amount of time, in microseconds, for which the title bar is flashed when the "Owner?" menu item is activated. .I Default value: 100000. .P .TP .BI FocusLenience " (boolean)" If this is set to true, .B olwm will not enforce the ICCCM requirement that windows must have the input hint set in order to receive the input focus. This option is useful if you run clients that aren't ICCCM-compliant, like many X11R3-based clients. .I Default value: false. .P .TP .BI Foreground " (color)" Specifies the foreground color. This color is used mainly for the text of window and icon titles and in menus. .I Default value: black. .P .TP .BI GlyphFont " (font name)" Glyph font used for drawing OPEN LOOK graphics. Changing this font is mainly useful for changing its size. Specifying a different font, such as a text font, will result in undesirable behavior. .I Default value: \-sun\-open look glyph\-*\-*\-*\-*\-*\-120\-*\-*\-*\-*\-*\-*. .P .TP .BI IconFlashCount " (integer)" Number of times to flash the open/close "zoom" lines. .I Default value: 3. .P .TP .BI IconFlashOffTime " (integer)" Amount of time to pause while open/close "zoom" lines are not visible. .I Default value: 1. .TP .BI IconFlashOnTime " (integer)" Amount of time to pause while open/close "zoom" lines are visible. .I Default value: 20000. .TP .BI IconFont " (font name)" Font used for icon names. .I Default: Lucida-Sans. .P .TP .BI IconLocation " (enumeration) " * One of the words "top-lr", "top-rl", "bottom-lr", "bottom-rl", "left-tb", "left-bt", "right-tb", or "right-bt". These specify that icons should be arranged along a particular edge of the screen, ordered from left to right or top to bottom as appropriate. The words "top", "bottom", "left", and "right" are synonyms for "top-lr", "bottom-lr", "left-tb", and "right-tb", respectively. .I Default value: top. .P .TP .BI InvertFocusHighlighting " (boolean)" In click-to-focus, the input focus is normally indicated by a solid rectangle in the title bar. In focus-follows-mouse, focus is normally indicated with two lines in the title bar. If this resource is true, the style of highlighting is inverted with respect to the focus style. This results in two lines for click-to-focus and a solid bar for focus-follows-mouse. .I Default value: false. .P .TP .BI KeepTransientsAbove " (boolean)" Specifies whether .B olwm should attempt to keep transient windows above their owner window. .I Default value: true. .P .TP .BI KeyboardCommands " (enumeration) " * Permissible values for this resource are .B "SunView1, Basic," and .B Full. Values are case-sensitive. In .B Full mode, all OPEN LOOK Mouseless commands implemented by the window manager are active. See the section on Key Binding for further information. In .B Basic mode, the keys active are Open, Front, Help, and the colormap keys. In .B SunView1 mode, the only keys active are Open and Front. .I Default value: Basic. .P .TP .BI MinimalDecor " (list of strings)" Specifies a list of windows that are to be decorated minimally. Decoration on such windows includes only a thin border and resize corners, with no title bar or window button. The value should be a whitespace-separated list of strings. Each string should specify an applications class or instance name, as passed in the WM_CLASS property. Most applications set this property based on the name of the executable (i.e. argv[0]). For example, to specify that the clock and the calculator should be decorated minimally, you would use the following resource: .nf .sp olwm.MinimalDecor: calctool clock .sp .fi Many applications will allow you to override the value of the WM_CLASS property using the .B \-name option on the command line. .I Default value: (null). .P .TP .BI MouseChordTimeout " (integer)" Specifies the amount of time, in milliseconds, that .B olwm is to wait for subsequent events to disambiguate chorded mouse button event sequences. .TP .BI MultiClickTimeout " (integer) " * The time, in tenths of a second, that differentiates a double-click from two single clicks. .I Default value: 5. .P .TP .BI Numeric " (locale name)" Specifies the numeric format OPEN LOOK locale category. See the section on Locale Handling for more details. .TP .BI PaintWorkspace " (boolean)" If true, .B olwm will use the .B WorkspaceColor resource to set the workspace (root window) background color. If false, .B olwm will not change the root window background. This is useful If you prefer to set your own workspace color using .BR xsetroot (1) or a similar program. .I Default value: true. .P .TP .BI PPositionCompat " (boolean)" Turns on backward compatibility for older applications that have a habit of always setting the PPosition flag in the WM_NORMAL_HINTS property, even when they haven't set a position. This most often occurs with X11R3-based clients. Without backward compatibility, these windows will always appear in the upper-left corner of the screen. With backward compatibility, these windows will be positioned according to the default OPEN LOOK window placement policy, along the diagonal of the screen. This option will not affect windows that have a geometry specified on the command line. .I Default value: false. .P .TP .BI PopupJumpCursor " (boolean) " * Specifies whether to warp the cursor to popup windows. .I Default value: true. .P .TP .BI RaiseOnActivate " (boolean)" Specifies whether a window is to be raised when it is activated via a Mouseless command. .I Default value: true. .P .TP .BI RefreshRecursively " (boolean)" Determines how the Refresh menu items on the window and workspace menus operate. If the value is true, .B olwm will walk the window hierarchy and send exposure events to every window. This is useful for refreshing windows that have backing store. If the value is false, .B olwm will map a window and then unmap it, causing all windows underneath that do not have backing store get get exposures. When this feature is on, the Refresh operation generates a large amount of client-server traffic. It may be useful to turn this feature off if the connection transport has low bandwidth or long latency. .I Default value: true. .P .TP .BI ReverseVideo " (boolean)" If true, reverses the sense of black and white on monochrome screens. Ignored for color screens. .I Default value: false. .P .TP .BI RubberBandThickness " (integer)" Specifies the thickness of the "rubber-band" line that is drawn when a window is resized, when a group of windows is selected by dragging a rectangle on the root, and when a window is moved and the value of the .B DragWindow resource is false. .TP .BI RunSlaveProcess " (boolean)" If false, disables the running of .BR olwmslave (1) at startup time. If the slave process is not running, Spot Help will not be available on objects owned by .B olwm such as pushpins and resize corners. .I Default value: true. .P .TP .BI SaveWorkspaceTimeout " (integer)" Number of seconds to wait while the Save Workspace operation is in progress. If all applications haven't responded with this amount of time, the operation is considered to have failed. .I Default value: 30. .P .TP .BI SelectDisplaysMenu " (boolean) " * If true, pressing the SELECT mouse button will bring up a menu item's submenu (if any) instead of executing the submenu's default action. .I Default value: false. .P .TP .BI SelectionFuzz " (integer)" Number of pixels of "fuzz" to be applied when selecting windows and icons by dragging a rectangle on the workspace. Consider an object that lies almost entirely within the selection rectangle, but that laps outside the rectangle by a few pixels. The object will be considered to be within the selection rectangle if it laps outside by fewer than or equal to "fuzz" pixels. .I Default value: 1. .P .TP .BI SelectToggleStacking " (boolean)" If true, double-clicking on a window will push it to the back instead of zooming it to its full size. .I Default value: false. .P .TP .BI SelectWindows " (boolean)" If false, the SELECT mouse button will not select windows and icons. Its other functions are unaffected. The ADJUST mouse button can still be used to select windows and icons. .I Default value: true. .P .TP .BI ServerGrabs " (boolean)" Controls whether .B olwm grabs the server while menus and notices are up. .I Default value: true. .P .TP .BI SetInput " (enumeration) " * This controls the input focus mode. If the value is "select", it means click-to-focus. If the value is "followmouse", it means focus-follows-mouse. .I Default value: select. .P .TP .BI ShowMoveGeometry " (boolean)" Indicates whether the geometry box should be shown while moving windows and icons. .I Default value: false. .P .TP .BI ShowResizeGeometry " (boolean)" Indicates whether the geometry box should be shown while resizing windows. .I Default value: false. .P .TP .BI SnapToGrid " (boolean)" Determines whether icons will snap to a grid when they are moved. .I Default value: false. .P .TP .BI TextFont " (font name)" Font used in the text of notices. .I Default: Lucida-Sans. .if 0 \{ .TP .BI timeFormat " (locale name)" Specify the time format OPEN LOOK locale category. See the section on Locale Handling for more details. \} .TP .BI TitleFont " (font name)" Font used in title bars atop windows and menus. .I Default: Lucida-Sans Bold. .P .TP .BI TransientsSaveUnder " (boolean)" Specifies whether the save-under attribute of transient windows is to be forced on. .I Default value: true. .P .TP .BI TransientsTitled " (boolean)" Specifies whether transient windows should have title bars. Normally, transient windows have a title bar and resize corners, but no window button or pushpin. Setting this resource to false will remove the title bar from transient windows. .I Default value: true. .P .TP .BI Use3D " (boolean)" Specifies whether to use 3D OPEN LOOK when possible. If false, 3D look is never used. If true, 3D is used unless the display hardware cannot support it. .I Default value: true. .P .TP .BI Use3DFrames " (boolean)" Specifies whether to use a 3D look for the frame borders. If true, the frames will be given a 3D look; otherwise, they have the same thick border as in 2D look. Some people prefer the look of 3D frames, but it is more difficult to distinguish selected from unselected windows with this option turned on. .I Default value: false. .P .TP .BI Use3DResize " (boolean)" Specifies whether the window resize corners are to be in the 2D or 3D look. .I Default value: false. .P .TP .BI WindowColor " (color) " * Specify the color of windows. This is the "BG1" color for 3D OPEN LOOK. It is used for the backgrounds of windows, menus, and notices. Other the 3D effect is achieved by using highlight and shadow colors derived from this color. .I Default value: #ccc. .P This specifies a 20% gray value. .TP .BI WorkspaceColor " (color) " * Specify the color for the workspace (root window). On startup, .B olwm will set the root window's background color to the color specified by this resource, and it will restore the deafult background on shutdown. To turn off this behavior, see the description of the .B PaintWorkspace resource. .I Default value: #40a0c0. .P .\" ======================================================================== .SH SCREEN RESOURCES .LP In addition to the global resources described above, .B olwm also uses screen-specific resources. The first component of the resource specification is the trailing pathname component of .BR argv[0] . The second component is the screen number appended to the string `screen'. The third component of the resource name is the name of the resource itself. For example, .nf .sp olwm.screen1.ReverseVideo: true .sp .fi enables reverse video on screen number 1 for .B olwm. To affect all screens, you can use resource wildcarding. For example, `olwm*ReverseVideo: true' will set reverse video for all screens .B olwm manages. .LP The following resources are available both globally and on a per-screen basis. A screen-specific resource overrides the corresopnding global setting for that screen. Note that screen specific settings for WorkspaceColor and WindowColor will only affect .BR olwm ; this may cause clashes with XView clients which only use the global setting. .nf .sp Background BorderColor Foreground ReverseVideo WindowColor WorkspaceColor .sp .fi .LP The following resources allow the selection of visuals other than the screen's default. Available visuals may be listed with the .BR xdpyinfo (1) command. .TP .BI Depth " (integer)" Specify the visual depth to be used when searching for visuals. .I Default value: none. .TP .BI Visual " (enumeration)" Specify the visual class to be used when searching for visuals. Valid visual classes are .BR StaticGray , .BR GrayScale , .BR StaticColor , .BR PseudoColor , .BR TrueColor , and .BR DirectColor . Names are case-sensitive. .I Default value: none. .TP .BI VisualID " (id)" Specify the visual ID to be used. Note: specifying a visual by its ID is not portable, as IDs may vary from server to server and even from one invocation of a server to the next. .I Default value: none. .\" ======================================================================== .SH MOUSELESS OPERATION .B Olwm implements OPEN LOOK Mouseless operation. This is a set of functions bound to keys that enable one to use the window system entirely without a pointing device. Some Mouseless functions are also useful for "cross-over" users, who may want to use them as accelerators for mouse-based operations. .LP One can navigate from window to window using the Next Application, Previous Application, Next Window, and Previous Window functions, bound by default to Alt-n, Alt-Shift-n, Alt-w, and Alt-Shift-w, respectively. (See the section on Key Binding for more detailed information.) You can bring up both the window and the workspace menu using Alt-m and Alt-Shift-m, respectively. Once a menu is up, you can navigate through it by using the arrow keys or by pressing the first letter of the menu item you want to go to. You can execute the current item by pressing Return, or you can cancel the menu using Stop or Escape. .LP You can also move and resize windows use Mouseless functions. This can be accomplished by selecting the Move or Resize items on the window menu. (Keyboard acclerators for these items are Alt-F6 and Alt-F7, respectively.) In Move mode, you can use the arrow keys to move the window in the desired direction. You can also hold down the Control key to "jump" the window by a larger distance each time you press an arrow key. In Resize mode, the first arrow key selects the edge you are moving, and subsequent arrow keys move that edge. For example, to shrink a window from the right (that is, to move it right edge to the left) you would first enter resize mode using Alt-F7, press the right arrow key to select the right edge, and then press the left arrow key to move the edge to the left. As in move mode, you can hold down Control to "jump" the edge by a greater increment. You can press Return to accept the new size or location, and you can press Escape or Stop to abort the move or resize operation. .\" ======================================================================== .SH KEY BINDING Key bindings are specified using resources. There is one resource per function, and the value of the resources are the keys to which the function is bound. The resource value consists of a comma-separated list of key specifications. Each key specification consists of a keysym optionally followed by modifier keysyms; the modifier keysyms are separated by `+' signs. For example, to bind a function to F2, control-F3, and alt-shift-F4, one would use the value: .nf .sp F2,F3+Control,F4+Shift+Alt .sp .fi .LP Any keysym whose key is in the modifier mapping may be used as a modifier. The following can also be used as aliases for common modifier keysyms: .BR Shift , .BR Lock , .BR Control , .BR Ctrl , .BR Ctl , .BR Meta , .BR Alt , .BR Super , and .B Hyper. .LP Resource names are prefixed with the trailing pathname component of .BR argv[0] , followed by .B KeyboardCommand (note that this is singular, not to be confused with the .B KeyboardCommands resource), followed by a resource from the following list. For example, the resource specification for setting the Stop function would typically be: .nf .sp olwm.KeyboardCommand.Stop .sp .fi .LP Each item in this list is followed by its default keyboard binding and a description of what the function does. Items marked with an asterisk `*' involve keyboard grabs. Other items are active only while .B olwm is in a mode, such as when a menu is up. Note: most of the functions that require grabs are active only when the .B KeyboardCommands resource is set to .B Full. See the description of this resource in the section on Global Resources. .TP Stop \fI(L1, Escape)\fP Abort the current mode or action. .TP DefaultAction \fI(Return, Meta-Return, Enter)\fP Execute the default action for the current menu or notice. .TP Select \fI(space)\fP Select the current button. .TP Adjust \fI(Alt-Insert)\fP Toggle the selected state of the current object. .TP Menu \fI(Alt-space)\fP Bring up a menu on the current object. .TP InputFocusHelp \fI(?, Control-?)\fP Bring up Help on the object with the input focus. .TP Up \fI(up-arrow)\fP Move up one item. .TP Down \fI(down-arrow)\fP Move down one item. .TP Left \fI(left-arrow)\fP Move left one item. .TP Right \fI(right-arrow)\fP Move right one item. .TP JumpUp \fI(Control up-arrow)\fP Move up ten items. .TP JumpDown \fI(Control down-arrow)\fP Move down ten items. .TP JumpLeft \fI(Control left-arrow)\fP Move left ten items. .TP JumpRight \fI(Control right-arrow)\fP Move right ten items. .TP RowStart \fI(Home, R7)\fP Move to the start of the current row. .TP RowEnd \fI(End, R13)\fP Move to the end of the current row. .TP DataStart \fI(Control-Home)\fP Move to the start of the data. .TP DataEnd \fI(Control-End)\fP Move to the end of the data. .TP FirstControl \fI(Control-[)\fP Move to the first item. .TP LastControl \fI(Control-])\fP Move to the last item. .TP NextElement \fI(Tab, Control-Tab)\fP Move to the next item. .TP PreviousElement \fI(Shift-Tab, Control-Shift-Tab)\fP Move to the previous item. .TP Open \fI(Alt-L7)\fP * Open the object with the input focus. .TP Help \fI(Help)\fP * Bring up Spot Help on the object under the pointer. .TP LockColormap \fI(Control-L2)\fP * Install the colormap of the subwindow under the pointer, and give the colormap focus to the top-level window containing the pointer. See .I Colormap Installation .P for further details. .TP UnlockColormap \fI(Control-L4)\fP * Revert to color-follows-mouse mode, and unset colormap focus. See .I Colormap Installation .P for further details. .TP Front \fI(Alt-L5)\fP * Bring the object with the input focus to the front. .TP FocusToPointer \fI(Alt-Shift-j)\fP * Set the focus to the window under the pointer. .TP NextApp \fI(Alt-n)\fP * Move the focus to the next base window. Windows are ordered clockwise starting at the top. Icons come after all windows, also in a clockwise fashion. Order proceeds from the last icon on a screen to the first window of the next screen. After the last screen, the order wraps back around to the first screen. .TP PreviousApp \fI(Alt-Shift-n)\fP * Move the focus to the previous base window. See .B NextApp for details about the window traversal order. .TP ToggleInput \fI(Alt-t)\fP * Move the input focus to the previous window that had the input focus. .TP NextWindow \fI(Alt-w)\fP * Move to the next window in the family of windows consisting of a base window and a set of popups. Windows are ordered clockwise, starting at the top of the screen. .TP PreviousWindow \fI(Alt-Shift-w)\fP * Move to the previous window in the family of windows consisting of a base window and a set of popups. Windows are ordered clockwise, starting at the top of the screen. .TP TogglePin \fI(Meta-Insert)\fP * Toggle the state of the pin of the window with the input focus. .TP SuspendMouseless \fI(Alt-z)\fP * Temporarily suspend all key grabs associated with Mouseless operation. .TP ResumeMouseless \fI(Alt-Shift-z)\fP * Resume grabs after temporary suspension. .TP QuoteNextKey \fI(Alt-q)\fP * Pass the next key sequence to the application with the focus, ignoring any grabs. .TP Refresh \fI(Alt-F8)\fP * Repaint the window with the focus. .TP Back \fI(Alt-F5)\fP * Move the focus window behind other windows. .TP OpenClose \fI(Alt-F2)\fP * Toggle the open/clos state of the window with the focus. .TP FullRestore \fI(Alt-F3)\fP * Toggle the full-sized/normal-sized state of the window with the focus. .TP Quit \fI(Alt-F9)\fP * Quit the window with the focus. .TP Owner \fI(Alt-F10)\fP * Flash the owner of the popup window with the focus. .TP WorkspaceMenu \fI(Alt-Shift-m)\fP * Bring up the workspace menu. .TP WindowMenu \fI(Alt-m)\fP * Bring up the window menu on the window with the focus. .TP Move \fI(Alt-F6)\fP * Move the window with the focus. .TP Resize \fI(Alt-F7)\fP * Resize the window with the focus. .TP OpenClosePointer \fI(L7)\fP * Toggle the open/close state of the window or icon under the pointer. .TP RaiseLower \fI(L5)\fP * Raise the window under the pointer if obscured by other windows. Otherwise, lower the window if it obscures other windows. .\" ======================================================================== .SH MODIFIER CUSTOMIZATION .B Olwm will alter the operation of certain mouse-based functions based on the state of the modifier keys. The relationship between the alteration and the associated modifier keys is controlled by a set of resources. Resource names are prefixed with the trailing pathname component of .BR argv[0] , followed by .B Modifier, followed by a resource from the list below. For example, the resource specification to bind the Reduce modifier would typically be .nf .sp olwm.Modifier.Reduce .sp .fi The value of each resource is a comma-separated list of modifier keysyms. Each item in this list is followed by its default modifier and a description of what it does. .TP Constrain \fI(Control)\fP Constrain a move or resize operation to be only on a horizontal or vertical direction. .TP Ignore \fI(Lock, NumLock, mod5, Mode_switch)\fP The set of modifiers to be ignored when processing mouse events. This resource should contain the set of locking modifiers, so that mouse actions are still interpreted properly even while locking modifiers are in effect. .TP Invert \fI(Shift)\fP When moving windows, temporarily invert the sense of the .B DragWindow resource. When resizing a window, temporarily move the window as long as this modifier is held down. Return to resizing when the modifier is released. .TP Reduce \fI(Meta)\fP When moving windows, reduce the amount of mouse motion by a factor of ten. .TP SetDefault \fI(Control)\fP Sets the default item for a menu. .TP WMGrab \fI(Alt)\fP Using the WMGrab modifier allows access to the mouse button functions anywhere over the window, not just over the window's title bar and border. .\" ======================================================================== .SH ENVIRONMENT .TP DISPLAY Specifies the X11 server to which to connect. .TP LANG, LC_CTYPE, LC_MESSAGE, LC_TIME These variables specify which locale to use when other methods of locale announcement are not available. (See the section on Locale Handling for more details.) .TP OLWMMENU Specifies a file to use for the Workspace Menu. .\" ======================================================================== .SH FILES .TP $HOME/.openwin-menu\fI.localename\fP .TP $HOME/.openwin-menu Contains the user-customized Workspace Menu specification. .TP $OPENWINHOME/lib/openwin-menu\fI.localename\fP .TP $OPENWINHOME/lib/openwin-menu Contains the default Workspace Menu specification. .TP $HOME/.openwin-init Stores the command lines obtained during the Save Workspace operation. .\" ======================================================================== .SH TRADEMARKS .LP OPEN LOOK is a trademark of AT&T. .br The X Window system is a trademark of the Massachusetts Institute of Technology. .br OpenWindows is a trademark of Sun Microsystems, Inc. .\" ======================================================================== .SH REFERENCES .LP Rosenthal, David S.H. .I Inter-Client Communication Conventions Manual for X11. Copyright 1989 by the Massachusetts Institute of Technology. This document is commonly known as the ICCCM. It is an X Consortium Standard that specifies conventions to which all X11 clients must adhere. .LP OPEN LOOK Graphical User Interface Functional Specification. Copyright 1989 by Sun Microsystems, Inc. Addison-Wesley Publishing Company, Inc. ISBN 0-201-52365-5. .LP OPEN LOOK Graphical User Interface International Extensions Functional Specification. Draft 1.1 (May 10, 1990). Copyright 1990 by Unix International. .LP .BR setlocale (3) . .\" ======================================================================== .SH BUGS .LP The resource names do not follow any classing structure. There is no general way to specify resources on a per-client basis. .LP There is no way to reconfigure the mouse buttons. This makes it impossible to use .B olwm on a system that has a one-button mouse with no provision for simulating a second or third mouse button. (It is possible to use .B olwm with a two-button mouse. See the section on Mouse Buttons.) .LP The Exit menu item on the Workspace Menu doesn't really shut down the server. It kills off all clients being managed by the window manager, and then it exits the window manager itself. This works properly if some outside agent such as .BR xinit (1) or .BR xdm (1) is waiting for the window manager or a client to exit. The outside agent will take care of shutting down the server or reinitializing it. If you've started up the server a different way, this option may not work. Instead, the server will be left running with no clients and no window manager running, and you will have to login from elsewhere to kill the server. An alternative for users of X11/NeWS is to add the following entry to the root menu: .nf .sp Exit POSTSCRIPT shutdownserver sp .fi This will shut down the server immediately, with no confirmation whatsoever. .LP .B Olwm is fairly simplistic about how it manages its keyboard bindings. For example, if you bind a function to control-F2, .B olwm will grab F2 with the Control modifier and with all combinations of the Lock and NumLock modifiers. If another locking modifier is in effect, .BR olwm 's passive grab will not be activated, and thus the function will not work. .LP .B Olwm cannot manage multiple locales at one time, therefore all clients should be running in the same locale. The "C" locale is the exception. Applications using the "C" locale (such as non-internationalized applications) can be mixed with applications using one other locale. .LP .B Olwm does not handle different sizes of the glyph fonts well. Each locale can define a different size for the default font (for example, the default glyph font size is 12 for the "C" locale and is 14 for the "japanese" locale). .B Olwm does not re-position the window decorations after switching locale, therefore the window decorations may appear to be wrong. To remedy this problem partially, .B olwm will not change the font when locale is switching from non-"C" locale to the "C" locale (fonts for non-"C" locales are always supersets of the font for "C" locale). .LP There is no input focus feedback for nonrectangular windows. The title string of nonrectangular windows cannot be displayed. .LP .B Olwm will not dynamically track screen-specific resources. Only changes to global resources are applied. .LP The interaction of the .BR AutoColorFocus , .BR ColorFocusLocked , and .B ColorTracksInputFocus resources and the color locking and unlocking keys is overly complex. xview-3.2p1.4/clients/olvwm-4.1/LEGAL_NOTICE100644 1750 1750 5370 6241361454 15351 0ustar mbmb NOTICE TO USER: The source code, including the glyphs or icons forming a par of the OPEN LOOK TM Graphic User Interface, on this tape and in these files is copyrighted under U.S. and international laws. Sun Microsystems, Inc. of Mountain View, California owns the copyright and has design patents pending on many of the icons. AT&T is the owner of the OPEN LOOK trademark associated with the materials on this tape. Users and possessors of this source code are hereby granted a nonexclusive, royalty-free copyright and design patent license to use this code in individual and commercial software. A royalty-free, nonexclusive trademark license to refer to the code and output as "OPEN LOOK" compatible is available from AT&T if, and only if, the appearance of the icons or glyphs is not changed in any manner except as absolutely necessary to accommodate the standard resolution of the screen or other output device, the code and output is not changed except as authorized herein, and the code and output is validated by AT&T. Bigelow & Holmes is the owner of the Lucida (R) trademark for the fonts and bit-mapped images associated with the materials on this tape. Users are granted a royalty-free, nonexclusive license to use the trademark only to identify the fonts and bit-mapped images if, and only if, the fonts and bit-mapped images are not modified in any way by the user. Any use of this source code must include, in the user documentation and internal comments to the code, notices to the end user as follows: (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents pending in the U.S. and foreign countries. OPEN LOOK is a trademark of AT&T. Used by written permission of the owners. (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered trademark of Bigelow & Holmes. Permission to use the Lucida trademark is hereby granted only in association with the images and fonts described in this file. SUN MICROSYSTEMS, INC., AT&T, AND BIGELOW & HOLMES MAKE NO REPRESENTATIONS ABOUT THE SUITABILITY OF THIS SOURCE CODE FOR ANY PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND. SUN MICROSYSTEMS, INC., AT&T AND BIGELOW & HOLMES, SEVERALLY AND INDIVIDUALLY, DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOURCE CODE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SUN MICROSYSTEMS, INC., AT&T OR BIGELOW & HOLMES BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOURCE CODE. xview-3.2p1.4/clients/olvwm-4.1/olvwm.info100644 1750 1750 3372 6241361455 15563 0ustar mbmb# ----------------------------------------------- # olvwm.info 31 October 1991 # # OpenWindows Version 3 # ----------------------------------------------- # @(#)olvwm.info 1.2 25 Nov 1992 ##########################50###################### :VDM: Virtual Desktop Manager The Virtual Desktop Manager (VDM) allows you to have 1 or more logical desktops one of which may be viewed at any time. Each desktop is represented by a region surrounded with a dashed line. The background of the VDM represents the logical desktops which you currently have; you can increase or reduce this number simply by resizing the VDM. If you make the VDM smaller, the rightmost and bottommost desktops will "go away" and you will not be able to access any windows in that desktop. The windows themselves are still active, though, and will appear if you again make the VDM larger. The desktop boundaries are not physical boundaries; a window can straddle a boundary and you can view portions of more that one desktop at a time (whatever amount that will fit on your screen). Usually, though, you will see a logical boundary between desktops. To move to another desktop, you can use the arrow keys or you can double-click the SELECT button inside the VDM at the location you want to go to. Pressing MENU in the VDM brings up a menu which also allows you to move to a different desktop. The small windows in the desktop represent each frame as it appears on your screen. In terms of window manager actions, they mimic the frame they represent: you can select and move them with the SELECT button, you can bring up their window menu with the MENU button, you can drop items from other tools into them, etc. All actions performed on one of these little windows affects the frame the window represents. xview-3.2p1.4/clients/textedit/ 40755 1750 1750 0 6354605713 13631 5ustar mbmbxview-3.2p1.4/clients/textedit/Imakefile100644 1750 1750 1115 5745131566 15540 0ustar mbmb#include /**/########################################################################## /**/# @(#)Imakefile 1.6 90/07/17 SMI /**/# Imakefile for textedit DEFINES = -DSTANDALONE INCLUDES = -I/usr/openwin/include -I$(HEADER_DEST) -I$(TOP) SYS_LIBRARIES = DEPLIBS = XViewClientDepLibs LOCAL_LIBRARIES = XViewClientLibs HEADERS = INFOFILES = textedit.info MANPAGES = textedit.man ICONS = textedit.icon textedit.mask.icon SRCS = textedit.c OBJS = textedit.o ALLFILES = ${HEADERS} ${INFOFILES} ${MANPAGES} ${ICONS} ${SRCS} ComplexProgramTarget(textedit) #include xview-3.2p1.4/clients/textedit/textedit.c100644 1750 1750 65624 6332163425 15754 0ustar mbmb#ifndef lint static char sccsid[] = "@(#)textedit.c 15.50 90/05/22"; #endif /* * Copyright (c) 1986, 1987, 1988 by Sun Microsystems, Inc. */ /* * This textedit is the envelope that binds various text display and * editing facilities together. */ #include /* MAXPATHLEN (include types.h if removed) */ #include /* MAXNAMLEN */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef ecd.help #include #endif /* * The presence of this line caused textedit not to be built * The function is already defined in the XView libraries long textsw_store_file(); */ char *getwd(); #ifndef __linux char *sprintf(); #endif void frame_cmdline_help(); static int off(); static Notify_value mysigproc(); /* extern Notify_value textedit_event_proc(); */ static Frame base_frame; static char current_filename[MAXNAMLEN]; static char current_directory[MAXPATHLEN]; static int handling_signal; static Textsw textsw; static char *cmd_name; static int user_label; static int caps_lock_on; static int edited; static int read_only; static char cmdline_args[1024]; int PANEL_ITEM_DATA; static short edit_ic_image[256]={ #include "textedit.icon" }; static short edit_mask_image[256]={ #include "textedit.mask.icon" }; /* * The textedit command line options. */ static char *option_names[] = { "auto_indent", "Ei", "okay_to_overwrite", "Eo", "lower_context", "EL", "margin", "Em", "multi_click_space", "ES", "multi_click_timeout", "ET", "number_of_lines", "En", "read_only", "Er", "scratch_window", "Es", "tab_width", "Et", "history_limit", "Eu", "upper_context", "EU", "checkpoint", "Ec", "num_cols", "EC", #ifdef DEBUG "malloc_debug_level", "Ed", #endif 0 /* Terminator! */ }; #define OPTION_AUTO_INDENT (1<<0) #define OPTION_ALWAYS_OVERWRITE (1<<1) #define OPTION_LOWER_CONTEXT (1<<2) #define OPTION_MARGIN (1<<3) #define OPTION_MULTI_CLICK_SPACE (1<<4) #define OPTION_MULTI_CLICK_TIMEOUT (1<<5) #define OPTION_NUMBER_OF_LINES (1<<6) #define OPTION_READ_ONLY (1<<7) #define OPTION_SCRATCH_WINDOW (1<<8) #define OPTION_TAB_WIDTH (1<<9) #define OPTION_UNDO_HISTORY (1<<10) #define OPTION_UPPER_CONTEXT (1<<11) #define OPTION_CHECKPOINT_FREQUENCY (1<<12) #define OPTION_NUM_COLS (1<<13) #ifdef DEBUG #define OPTION_MALLOC_DEBUG_LEVEL (1<<14) #define OPTION_EDIT_LOG_WRAPS_AT (1<<15) #endif #ifdef TEXTEDIT_HELP_STRING static char *help_msg() /* * This routine is required because the help_msg is too big for the * compiler to accept as a single string token. */ { extern char *calloc(); char *result = calloc(1, 5000); (void)sprintf(result, "\n\t\tHelp for %s\n%s\n%s\n%s\n", xv_get(base_frame, FRAME_LABEL), "Mouse buttons: left is point, middle is adjust, right is menu.\n\ Multi-click is only implemented for point.\n\ Adjust-at-end-char is char-adjust.\n\ CONTROL-select is pending-delete select, e.g. CONTROL-GET is MOVE.\n\ Function keys:", " L1 STOP L2 is AGAIN\n\ L3 (unused) L4 is UNDO\n\ L5 TOP L6 is PUT\n\ L7 OPEN L8 is GET\n\ L9 (or ^F) is FIND L10 (or ^D) is DELETE\n\ ^P is an accelerator for the 'Put, then Get' menu item.\n\ GET with no secondary selection (or ^G) is GET from SHELF.\n\ SHIFTs:", " SHIFT-back_char/word/line is forward_char/word/line.\n\ SHIFT-TOP is BOTTOM; SHIFT-OPEN is CLOSE.\n\ Menu item notes: Save leaves old file as %\n\ Store writes to selected name, and then edits it.\n\ Startup: \"Text Editor \" is supported.\n\ Options are [where (E) indicates a short alternative]:\n\ okay_to_overwrite (Eo) [on]\n\ auto_indent (Ei) [off] read_only (Er) [on]\n\ lower_context (EL) scratch_window (Es) \n\ margin (Em) tab_width (Et) \n\ multi_click_space (ES) history_limit (Eu) \n\ multi_click_timeout (ET) upper_context (EU) \n\ number_of_lines (En) \n\ Use defaultsedit to permanently set all of the above (and additional)\n\ options for all text subwindows.\n\ Saving your edits in case of disaster:\n\ If the Text Editor runs wild, send it a SIGHUP to force a Store." ); return(result); } #endif /* * Return pointer to longest suffix not beginning with '/' */ static char * base_name(full_name) char *full_name; { extern char *rindex(); register char *temp; if ((temp = rindex(full_name, '/')) == NULL) return(full_name); else return(temp+1); } Notify_value textedit_load_event_proc(window, event, arg, type) Xv_opaque window; Event *event; Notify_arg arg; Notify_event_type type; { char document_name[4096]; int alert_result; char *s_p; if (event_action(event) == ACTION_DRAG_LOAD) { if (xv_decode_drop(event, document_name, 4096) == -1) return(NOTIFY_DONE); /* display an alert here, asking if the user wants to have any edits discarded. If they don't, then abort the load. */ if (edited) alert_result = (int) notice_prompt(base_frame, &event, NOTICE_MESSAGE_STRINGS, "Your file has been edited.", "Do you wish to discard these edits?", 0, NOTICE_BUTTON_NO, "Cancel", NOTICE_BUTTON_YES, "Confirm", 0); if (!edited || (alert_result == NOTICE_YES)) { /* clip out any files after the first one. We don't take multiple file names in textedit. */ s_p = document_name; while (*s_p && (*s_p != '\t')) s_p++; *s_p = NULL; xv_set(textsw, TEXTSW_FILE, document_name, TEXTSW_FIRST, 0, TEXTSW_INSERTION_POINT, 0, 0); xv_set(base_frame, FRAME_CLOSED, FALSE, 0); } return(NOTIFY_DONE); } return notify_next_event_func(window, event, arg, type); } static set_name_frame(textsw_local, attributes) Textsw textsw_local; Attr_avlist attributes; { char frame_label[50+MAXNAMLEN+MAXPATHLEN]; Icon edit_icon; char icon_text[sizeof(frame_label)]; char *ptr; int len, pass_on = 0, repaint = 0; int was_read_only = read_only; Attr_avlist attrs; char *attr_string; if (handling_signal) return; icon_text[0] = '\0'; ptr = icon_text; for (attrs = attributes; *attrs; attrs = attr_next(attrs)) { repaint++; /* Assume this attribute needs a repaint. */ switch ((Textsw_action)(*attrs)) { case TEXTSW_ACTION_CAPS_LOCK: caps_lock_on = (int)attrs[1]; ATTR_CONSUME(*attrs); break; case TEXTSW_ACTION_CHANGED_DIRECTORY: attr_string = (char *)attrs[1]; switch (attr_string[0]) { case '/': (void)strcpy(current_directory, attrs[1]); break; case '.': if (attr_string[1] != '\0') (void) getwd(current_directory); break; case '\0': break; default: (void)strcat(current_directory, "/"); (void)strcat(current_directory, attrs[1]); break; } ATTR_CONSUME(*attrs); break; case TEXTSW_ACTION_USING_MEMORY: (void)strcpy(current_filename, "(NONE)"); (void)strcpy(icon_text, "NO FILE"); edited = read_only = 0; ATTR_CONSUME(*attrs); break; case TEXTSW_ACTION_LOADED_FILE: (void)strcpy(current_filename, attrs[1]); edited = read_only = 0; goto Update_icon_text; case TEXTSW_ACTION_EDITED_FILE: edited = 1; *ptr++ = '>'; Update_icon_text: len = (strlen(attrs[1]) > sizeof(icon_text) - 2) ? sizeof(icon_text) - 2 : strlen(attrs[1]); /* need 1 char for edit/not, 1 for null */ (void)strncpy(ptr, attrs[1], len); ptr[len] = '\0'; (void)strcpy(ptr, base_name(ptr)); /* strip path */ ATTR_CONSUME(*attrs); break; default: pass_on = 1; repaint--; /* Above assumption was wrong. */ break; } } if (pass_on) (void)textsw_default_notify(textsw_local, attributes); if (repaint) { (void)sprintf(frame_label, "%s Text Editor - %s%s, dir; %s", (caps_lock_on) ? "[CAPS] " : "", current_filename, (was_read_only) ? " (read only)" : (edited) ? " (edited)" : "", current_directory); (void)xv_set(base_frame, FRAME_LABEL, frame_label, 0); if (icon_text[0] != '\0') { struct rect text_rect, *icon_rect; struct pixfont *font; edit_icon = xv_get(base_frame, FRAME_ICON); icon_rect = (Rect *) (icon_get(edit_icon, ICON_IMAGE_RECT)); font = (struct pixfont *) (icon_get(edit_icon, ICON_FONT)); ptr = (user_label) ? (char *) xv_get(edit_icon, XV_LABEL) : icon_text; /* adjust icon text top/height to match font height */ text_rect.r_height = xv_get(font, FONT_DEFAULT_CHAR_HEIGHT); text_rect.r_top = icon_rect->r_height - (text_rect.r_height + 2); /* center the icon text */ text_rect.r_width = strlen(ptr)*(xv_get(font, FONT_DEFAULT_CHAR_WIDTH)); if (text_rect.r_width > icon_rect->r_width) text_rect.r_width = icon_rect->r_width; text_rect.r_left = (icon_rect->r_width-text_rect.r_width)/2; (void)xv_set(edit_icon, XV_LABEL, ptr, ICON_LABEL_RECT, &text_rect, 0); /* xv_set actually makes a copy of all the icon fields */ (void)xv_set(base_frame, FRAME_ICON, edit_icon, 0); } } } static void button_notify_proc(item, event) Panel_item item; Event *event; { Textsw textsw = (Textsw)xv_get(item, XV_KEY_DATA, PANEL_ITEM_DATA); Menu menu = (Menu)xv_get(item, PANEL_ITEM_MENU); Panel p_menu = (Panel)xv_get(menu, MENU_PIN_WINDOW); Menu_item menu_item; Menu pullr_menu; int num_items, i; xv_set(menu, XV_KEY_DATA, TEXTSW_MENU_DATA_KEY, textsw, 0); if (p_menu) { num_items = (int)xv_get(menu, MENU_NITEMS); for (i = 1; i<= num_items; i++) { menu_item = (Menu_item)xv_get(menu, MENU_NTH_ITEM, i); if (menu_item) { pullr_menu = (Menu)xv_get(menu_item, MENU_PULLRIGHT); if (pullr_menu) { xv_set(pullr_menu, XV_KEY_DATA, TEXTSW_MENU_DATA_KEY, textsw, 0); } } } } } static textsw_split_proc(origview, newview, pos) Xv_Window origview; Xv_Window newview; int pos; { notify_interpose_event_func(newview, textedit_load_event_proc, NOTIFY_SAFE); } static void my_frame_help(name) char *name; { frame_cmdline_help(name); #ifdef TEXTEDIT_HELP_STRING (void)fprintf(stderr, "\nFor further information, use the switch -text_help.\n"); #endif } #if (defined(STANDALONE) || defined(DEBUG) || defined(GPROF)) main(argc, argv) int argc; char **argv; { #ifdef GPROF if (argc > 1 && strcmp(argv[argc-1], "-gprof") == 0) { moncontrol(1); /* Pull the -gprof out of argc/v */ argc--; argv[argc] = (char *)0; } else { moncontrol(0); } #endif GPROF textedit_main(argc, argv); } #endif (defined(STANDALONE) || defined(DEBUG) || defined(GPROF)) textedit_main(argc, argv) int argc; char **argv; { #define GET_INT_ATTR_VAL(var) \ if (argc > 0) {var = (caddr_t) atoi(argv[1]); argc--, argv++;} extern struct pixfont *pw_pfsysopen(); Icon edit_icon; Textsw_status status; int checkpoint = 0; int margin; int textswwidth; int number_of_lines = 0; int optioncount = sizeof(option_names)/sizeof(option_names[0]); struct stat stb; caddr_t textsw_attrs[ATTR_STANDARD_SIZE]; int attrc = 0; char *file_to_edit = NULL; Panel panel; Panel_item file_panel_item, edit_panel_item, display_panel_item, find_panel_item; Menu file_panel_menu, edit_panel_menu, display_panel_menu, find_panel_menu; #ifdef DEBUG caddr_t edit_log_wraps_at = (caddr_t)TEXTSW_INFINITY; #endif Menu_item menu_item; int num_cols = 0; int user_set_size = FALSE; char **argscanner = argv; Server_image icon_image; Server_image mask_image; #define STDERR 2 /* * Init data * Implicitely zeroed: caps_lock_on, handling_signal, * read_only, edited */ while (*argscanner) { if (!strcmp(*argscanner, "-Ws") || !strcmp(*argscanner, "-Ww") || !strcmp(*argscanner, "-Wh")) { user_set_size = TRUE; break; } argscanner++; } xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, 0); icon_image = xv_create(0, SERVER_IMAGE, SERVER_IMAGE_BITS, edit_ic_image, SERVER_IMAGE_DEPTH, 1, XV_WIDTH, 64, XV_HEIGHT, 64, 0); mask_image = xv_create(0, SERVER_IMAGE, SERVER_IMAGE_BITS, edit_mask_image, SERVER_IMAGE_DEPTH, 1, XV_WIDTH, 64, XV_HEIGHT, 64, 0); edit_icon= xv_create(0, ICON, ICON_IMAGE, icon_image, ICON_MASK_IMAGE, mask_image, ICON_TRANSPARENT, TRUE, 0); xv_set(edit_icon, WIN_CONSUME_EVENTS, LOC_WINENTER, LOC_WINEXIT, LOC_DRAG, 0, 0); cmd_name = *argv; /* Must be BEFORE calls on die() */ current_filename[0] = '\0'; (void) getwd(current_directory); /* Error message is placed into current_directory by getwd */ checkpoint = defaults_get_integer_check("text.checkpointFrequency", "Text.CheckpointFrequency", 0, 0, (int)TEXTSW_INFINITY); base_frame = xv_create((Xv_window)NULL, FRAME, FRAME_NO_CONFIRM, TRUE, FRAME_ICON, edit_icon, FRAME_LABEL, "Text Editor", FRAME_SHOW_LABEL, TRUE, FRAME_CMDLINE_HELP_PROC, my_frame_help, #ifdef ecd.help HELP_DATA, "sunview:textedit", #endif 0); /* * Set icon's font to system font [if user hasn't set icon font], * but AFTER xv_create has a chance to change it from the * built-in font. * If the user supplies a label, use it and don't override * with our's later. * Note that we get the icon from the Frame in case user * over-rides via argc, argv! */ edit_icon = xv_get(base_frame, FRAME_ICON); user_label = (int)xv_get(edit_icon, XV_LABEL); if (!icon_get(edit_icon, ICON_FONT)) { (void)icon_set(edit_icon, ICON_FONT, pw_pfsysopen(), 0); if (!icon_get(edit_icon, ICON_FONT)) die("Cannot get default font.\n", (char *)NULL, (char *)NULL); (void)xv_set(base_frame, FRAME_ICON, edit_icon, 0); } /* * Pick up command line arguments to modify textsw behavior. * Notes: FRAME_ARGC_PTR_ARGV above has stripped window flags. * case OPTION_MARGIN is used to compute WIN_WIDTH. */ #ifndef lint margin = (int)textsw_get_from_defaults(TEXTSW_LEFT_MARGIN); #endif argc--; argv++; /* Skip the cmd name */ while ((argc--) && (attrc < ATTR_STANDARD_SIZE)) { strcat(cmdline_args, argv[0]); strcat(cmdline_args, " "); if (argv[0][0] == '-') { extern int match_in_table(); int option = match_in_table(&(argv[0][1]), option_names); if (option < 0 || option >= optioncount) { die(argv[0], " is not a valid option.\n", (char *)NULL); } switch (1<<(option/2)) { case OPTION_NUMBER_OF_LINES: if (argc > 0) { number_of_lines = atoi(argv[1]); strcat(cmdline_args, argv[1]); strcat(cmdline_args, " "); argc--, argv++; } break; case OPTION_READ_ONLY: read_only = 1; if ((argc > 0) && (argv[1][0] != '-')) { strcat(cmdline_args, argv[1]); strcat(cmdline_args, " "); argc--, argv++; read_only = !off(argv[0]); file_to_edit = argv[0]; } break; case OPTION_AUTO_INDENT: textsw_attrs[attrc++] = (caddr_t) TEXTSW_AUTO_INDENT; textsw_attrs[attrc] = (caddr_t) 1; if ((argc > 0) && (argv[1][0] != '-')) { strcat(cmdline_args, argv[1]); strcat(cmdline_args, " "); argc--, argv++; textsw_attrs[attrc] = (caddr_t) !off(argv[0]); } attrc++; break; case OPTION_ALWAYS_OVERWRITE: textsw_attrs[attrc++] = (caddr_t) TEXTSW_CONFIRM_OVERWRITE; textsw_attrs[attrc] = (caddr_t) 0; if ((argc > 0) && (argv[1][0] != '-')) { strcat(cmdline_args, argv[1]); strcat(cmdline_args, " "); argc--, argv++; textsw_attrs[attrc] = (caddr_t) off(argv[0]); } attrc++; break; #ifdef DEBUG case OPTION_EDIT_LOG_WRAPS_AT: GET_INT_ATTR_VAL(edit_log_wraps_at) break; #endif case OPTION_LOWER_CONTEXT: textsw_attrs[attrc++] = (caddr_t) TEXTSW_LOWER_CONTEXT; GET_INT_ATTR_VAL(textsw_attrs[attrc++]) break; #ifdef DEBUG case OPTION_MALLOC_DEBUG_LEVEL: textsw_attrs[attrc++] = (caddr_t) TEXTSW_MALLOC_DEBUG_LEVEL; GET_INT_ATTR_VAL(textsw_attrs[attrc++]) break; #endif case OPTION_MARGIN: textsw_attrs[attrc++] = (caddr_t) TEXTSW_LEFT_MARGIN; margin = atoi(argv[1]); GET_INT_ATTR_VAL(textsw_attrs[attrc++]) break; case OPTION_MULTI_CLICK_SPACE: textsw_attrs[attrc++] = (caddr_t) TEXTSW_MULTI_CLICK_SPACE; GET_INT_ATTR_VAL(textsw_attrs[attrc++]) break; case OPTION_MULTI_CLICK_TIMEOUT: textsw_attrs[attrc++] = (caddr_t) TEXTSW_MULTI_CLICK_TIMEOUT; GET_INT_ATTR_VAL(textsw_attrs[attrc++]) break; case OPTION_TAB_WIDTH: textsw_attrs[attrc++] = (caddr_t) TEXTSW_TAB_WIDTH; GET_INT_ATTR_VAL(textsw_attrs[attrc++]) break; case OPTION_UNDO_HISTORY: textsw_attrs[attrc++] = (caddr_t) TEXTSW_HISTORY_LIMIT; GET_INT_ATTR_VAL(textsw_attrs[attrc++]) break; case OPTION_UPPER_CONTEXT: textsw_attrs[attrc++] = (caddr_t) TEXTSW_UPPER_CONTEXT; GET_INT_ATTR_VAL(textsw_attrs[attrc++]) break; case OPTION_CHECKPOINT_FREQUENCY: if (argc > 0) { strcat(cmdline_args, argv[1]); strcat(cmdline_args, " "); checkpoint = atoi(argv[1]); argc--, argv++; } break; case OPTION_NUM_COLS: if (argc > 0) { num_cols = atoi(argv[1]); strcat(cmdline_args, argv[1]); strcat(cmdline_args, " "); argc--, argv++; } break; default: die("Unrecognized command line option.", (char *)NULL, (char *)NULL); break; } } else if (file_to_edit == NULL) { file_to_edit = argv[0]; } else { die("Too many files specified.", (char *)NULL, (char *)NULL); } argv++; } textsw_attrs[attrc] = 0; /* A-V list terminator */ xv_set(base_frame, WIN_CMD_LINE, cmdline_args, 0); read_only = (read_only & (file_to_edit != NULL)); #ifdef DEBUG if (edit_log_wraps_at != (caddr_t)TEXTSW_INFINITY) { textsw_attrs[attrc++] = (caddr_t) TEXTSW_WRAPAROUND_SIZE; textsw_attrs[attrc++] = edit_log_wraps_at; textsw_attrs[attrc] = 0; } #endif if ((file_to_edit != NULL) && (stat(file_to_edit, &stb) < 0)) { char buf[256]; int fd; int alert_result; Event event; sprintf(buf, "The file '%s' does not exist", file_to_edit); alert_result = (int) notice_prompt(base_frame, &event, NOTICE_MESSAGE_STRINGS, buf, "Please confirm creation of new", "file for textedit.", 0, NOTICE_BUTTON_NO, "Cancel", NOTICE_BUTTON_YES, "Confirm", 0); if (alert_result == NOTICE_YES) if ((fd = creat(file_to_edit, 0777)) == -1) die("Could not create new file.", (char *)NULL, (char *)NULL); else close(fd); else exit(0); } else if ((file_to_edit != NULL) && (stat(file_to_edit, &stb) == 0)) { char buf[256]; int fd; int alert_result; Event event; /* see if it was a regular file */ if (!(stb.st_mode & S_IFREG)) { sprintf(buf, "The file '%s' is not a regular file", file_to_edit); alert_result = (int) notice_prompt(base_frame, &event, NOTICE_MESSAGE_STRINGS, buf, "Please confirm creation of new", "file for textedit.", 0, NOTICE_BUTTON_YES, "Continue", NOTICE_BUTTON_NO, "Cancel", 0); if (alert_result == NOTICE_YES) file_to_edit = NULL; else die("no file to edit", NULL, NULL); } } /* * Create subwindows */ panel = xv_create(base_frame, PANEL, PANEL_LAYOUT, PANEL_HORIZONTAL, XV_HELP_DATA, "textedit:Panel", 0); textsw = (Textsw)xv_create(base_frame, TEXTSW, ATTR_LIST, textsw_attrs, WIN_IS_CLIENT_PANE, TEXTSW_STATUS, &status, TEXTSW_READ_ONLY, read_only, TEXTSW_FILE, file_to_edit, TEXTSW_NOTIFY_PROC, set_name_frame, TEXTSW_CHECKPOINT_FREQUENCY, checkpoint, XV_HELP_DATA, "textedit:Textsw", OPENWIN_SPLIT, OPENWIN_SPLIT_INIT_PROC, textsw_split_proc, NULL, 0); if (!user_set_size) { xv_set(textsw, WIN_ROWS, (number_of_lines) ? number_of_lines : 45, WIN_COLUMNS, (num_cols) ? num_cols : 80, 0); } /* force the panel to be some reasonable size, so that the buttons lay out reasonably. */ xv_set(panel, WIN_WIDTH, 800, 0); /* Panel item and fitting height here is for performance reason */ /* This way the textsw will not require to readjust the rect */ file_panel_menu = (Menu)xv_get(textsw, TEXTSW_SUBMENU_FILE); file_panel_item = xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "File", PANEL_ITEM_MENU, file_panel_menu, XV_HELP_DATA, "textedit:File", PANEL_NOTIFY_PROC, button_notify_proc, 0); textswwidth = (int)xv_get(textsw, WIN_WIDTH); (void)window_fit_height(panel); xv_set(textsw, WIN_BELOW, panel, 0); switch (status) { case TEXTSW_STATUS_CANNOT_OPEN_INPUT: die("Cannot open file '", file_to_edit, "', exiting!\n"); case TEXTSW_STATUS_OKAY: if (textsw) break; /* else fall through */ default: die("Cannot create textsw, exiting!\n", (char *)NULL, (char *)NULL); } /* * Setup signal handlers. */ (void)notify_set_signal_func(base_frame, mysigproc, SIGINT, NOTIFY_ASYNC); #if !defined(__linux) || defined(SIGXCPU) (void)notify_set_signal_func(base_frame, mysigproc, SIGXCPU, NOTIFY_ASYNC); #endif #if !defined(__linux) || defined(SIGBUS) (void)notify_set_signal_func(base_frame, mysigproc, SIGBUS, NOTIFY_ASYNC); #endif (void)notify_set_signal_func(base_frame, mysigproc, SIGHUP, NOTIFY_ASYNC); (void)notify_set_signal_func(base_frame, mysigproc, SIGILL, NOTIFY_ASYNC); (void)notify_set_signal_func(base_frame, mysigproc, SIGSEGV, NOTIFY_ASYNC); (void)notify_set_signal_func(base_frame, mysigproc, SIGFPE, NOTIFY_ASYNC); /* * Install us in tree of windows */ PANEL_ITEM_DATA = xv_unique_key(); display_panel_menu = (Menu)xv_get(textsw, TEXTSW_SUBMENU_VIEW); edit_panel_menu = (Menu)xv_get(textsw, TEXTSW_SUBMENU_EDIT); find_panel_menu = (Menu)xv_get(textsw, TEXTSW_SUBMENU_FIND); /* This set has to be done before the other panel items are created */ xv_set(file_panel_item, XV_KEY_DATA, PANEL_ITEM_DATA, textsw, 0); display_panel_item = xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "View", PANEL_NOTIFY_PROC, button_notify_proc, PANEL_ITEM_MENU, display_panel_menu, XV_HELP_DATA, "textedit:View", XV_KEY_DATA, PANEL_ITEM_DATA, textsw, 0); edit_panel_item = xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Edit", PANEL_NOTIFY_PROC, button_notify_proc, PANEL_ITEM_MENU, edit_panel_menu, XV_HELP_DATA, "textedit:Edit", XV_KEY_DATA, PANEL_ITEM_DATA, textsw, 0); find_panel_item = xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Find", PANEL_NOTIFY_PROC, button_notify_proc, PANEL_ITEM_MENU, find_panel_menu, XV_HELP_DATA, "textedit:Find", XV_KEY_DATA, PANEL_ITEM_DATA, textsw, 0); if (!user_set_size) { xv_set(panel, WIN_WIDTH, textswwidth, 0); (void)window_fit(base_frame); } else { /* restore the panel width before coming up */ xv_set(panel, WIN_WIDTH, WIN_EXTEND_TO_EDGE, 0); } /* set up to catch load events */ notify_interpose_event_func(textsw_first(textsw), textedit_load_event_proc, NOTIFY_SAFE); notify_interpose_event_func(edit_icon, textedit_load_event_proc, NOTIFY_SAFE); if (!user_label && file_to_edit) { xv_set(edit_icon, XV_LABEL, file_to_edit, 0); xv_set(base_frame, FRAME_ICON, edit_icon, 0); } xv_main_loop(base_frame); exit(0); } /* * SIGNAL handlers */ /* ARGSUSED */ static Notify_value mysigproc(me, sig, when) Notify_client me; int sig; Notify_signal_mode when; { char name_to_use[MAXNAMLEN]; int pid = getpid(); int was_SIGILL = (sig == SIGILL); #ifndef __linux struct sigvec vec; #else struct sigaction vec; #endif if (handling_signal == 2) _exit(3); if (handling_signal++ == 1) { (void)fprintf(stderr, "Signal catcher called recursively: "); goto Die; } if (sig == SIGINT) { if (xv_get((Xv_window)(textsw), TEXTSW_MODIFIED)) { (void)xv_destroy(base_frame); /* It will be vetoed */ handling_signal = 0; } else { /* Skip more user confirmation - just die (but cleanly)! */ (void) notify_post_destroy(base_frame, DESTROY_PROCESS_DEATH, NOTIFY_IMMEDIATE); (void) notify_stop(); } return(NOTIFY_DONE); } (void)sprintf(name_to_use, "textedit.%d", pid); (void)fprintf(stderr, "attempting Store to %s ... ", name_to_use); (void)fflush(stderr); if (textsw_store_file(textsw, name_to_use, 0, 0) == 0) goto Done; (void)sprintf(name_to_use, "/usr/tmp/textedit.%d", pid); (void)fprintf(stderr, "failed!\nAttempting Store to %s ... ", name_to_use); (void)fflush(stderr); if (textsw_store_file(textsw, name_to_use, 0, 0) == 0) goto Done; (void)sprintf(name_to_use, "/tmp/textedit.%d", pid); (void)fprintf(stderr, "failed!\nAttempting Store to %s ... ", name_to_use); (void)fflush(stderr); if (textsw_store_file(textsw, name_to_use, 0, 0) == 0) goto Done; (void)fprintf(stderr, "failed!\nSorry, cannot save your edits: "); goto Die; Done: (void)fprintf(stderr, "finished; "); Die: (void)fprintf(stderr, "aborting for post-mortem ...\n"); (void)fflush(stderr); (void)sigsetmask(0); /* Make sure signals get through */ if (was_SIGILL) { #ifndef lint char dummy, *bad_ptr = 0; /* (void)signal(SIGSEGV, SIG_DFL); /* Make sure 0 deref dumps. */ #ifndef __linux vec.sv_handler = SIG_DFL; vec.sv_mask = vec.sv_onstack = 0; sigvec(SIGSEGV, &vec, 0); #else vec.sa_handler = SIG_DFL; vec.sa_mask = 0; vec.sa_flags = 0; vec.sa_restorer = NULL; sigaction(SIGSEGV, &vec, (struct sigaction *)0); #endif dummy = *bad_ptr; #endif } else { /* (void)signal(SIGILL, SIG_DFL); /* Make sure abort() dumps. */ #ifndef __linux vec.sv_handler = SIG_DFL; vec.sv_mask = vec.sv_onstack = 0; sigvec(SIGILL, &vec, 0); #else vec.sa_handler = SIG_DFL; vec.sa_mask = 0; vec.sa_flags = 0; vec.sa_restorer = NULL; sigaction(SIGILL, &vec, (struct sigaction *)0); #endif abort(); } return(NOTIFY_DONE); } /* * Misc. utilities */ static die(msg1, msg2, msg3) char *msg1, *msg2, *msg3; { char *dummy = ""; (void)fprintf(stderr, "%s: %s%s%s\n", cmd_name, msg1, (msg2?msg2:dummy), (msg3?msg3:dummy)); exit(4); } static int off(str) char *str; { return ((strcmp(str, "off") == 0) || (strcmp(str, "Off") == 0) || (strcmp(str, "OFF") == 0) ); } xview-3.2p1.4/clients/textedit/textedit.icon100644 1750 1750 3715 5745131567 16444 0ustar mbmb/* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16 */ 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x003F,0xFFFE,0x0000, 0x0000,0x003F,0xFFFE,0x0000, 0x0000,0x03F0,0x0006,0x0000, 0x0000,0x03FF,0xFFF6,0x0000, 0x0000,0x3F00,0x0016,0x0000, 0x0000,0x3FFF,0xE016,0x0000, 0x0000,0x2000,0x3016,0x0000, 0x0000,0x2000,0x2816,0x0000, 0x0000,0x2000,0x2416,0x0000, 0x0000,0x2000,0x2216,0x0000, 0x0000,0x2000,0x2116,0x0000, 0x0000,0x2000,0x2096,0x0000, 0x0000,0x2000,0x3FD6,0x0000, 0x0000,0x2000,0x0056,0x0000, 0x0000,0x2000,0x4056,0x0000, 0x0000,0x2000,0xC056,0x0000, 0x0000,0x2001,0x8056,0x0000, 0x0000,0x2003,0x0056,0x0000, 0x0000,0x2006,0x0056,0x0000, 0x0000,0x200C,0x0056,0x0000, 0x0000,0x2018,0x0056,0x0000, 0x0000,0x2030,0x0056,0x0000, 0x0000,0x2060,0x0056,0x0000, 0x0000,0x20C0,0x0056,0x0000, 0x0000,0x2180,0x0056,0x0000, 0x0000,0x2300,0x0056,0x0000, 0x0000,0x2600,0x0056,0x0000, 0x0000,0x2C00,0x0056,0x0000, 0x0000,0x3800,0x0056,0x0000, 0x0000,0x7000,0x005E,0x0000, 0x0000,0xE000,0x005E,0x0000, 0x0001,0xE000,0x0058,0x0000, 0x0003,0xA000,0x0078,0x0000, 0x0007,0x2000,0x0078,0x0000, 0x000E,0x2000,0x0060,0x0000, 0x000E,0x3FFF,0xFFE0,0x0000, 0x000C,0x3FFF,0xFFE0,0x0000, 0x007F,0x0000,0x0000,0x0000, 0x007F,0x0000,0x0000,0x0000, 0x01FF,0xC000,0x0000,0x0000, 0x03FF,0xE000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000 xview-3.2p1.4/clients/textedit/textedit.man100644 1750 1750 34020 5745131567 16300 0ustar mbmb.\" @(#)textedit.1 1.29 90/02/26 SMI; .\" Updated 6/8/90 .TH TEXTEDIT 1 "11 June 1990" .SH NAME textedit \- XView window- and mouse-based text editor .SH SYNOPSIS .B textedit [ .I generic-tool-arguments ] [ .B "\-Ea on\|" |\| off ] [ .B \-adjust_is_pending_delete ] [ .B "\-Ei on\|" |\| off ] .if t .ti +0.5i [ .B \-auto_indent ] [ .B "\-Eo on\|" |\| off ] [ .B \-okay_to_overwrite ] [ .B "\-Er on\|" |\| off ] [ .B \-read_only ] .if t .ti +0.5i [ .BI \-Ec " N" ] [ .BI \-checkpoint " count" ] [ .BI \-\s-1EL\s0 " lines" ] [ .BI \-lower_context " lines" ] [ .BI \-Em " pixels" ] .if t .ti +0.5i [ .BI \-margin " pixels" ] [ .BI \-En " N" ] [ .BI \-number_of_lines " lines" ] [ .BI \-\s-1ES\s0 " N" ] .if t .ti +0.5i [ .BI \-multi_click_space " radius" ] [ .BI \-Et " N" ] [ .BI \-tab_width " tabstop" ] [ .BI \-\s-1ET\s0 " N" ] .if t .ti +0.5i [ .BI \-multi_click_timeout " intrvl" ] [ .BI \-Eu " N" ] [ .BI \-history_limit " max" ] [ .BI \-\s-1EU\s0 " N" ] .if t .ti +0.5i [ .BI \-upper_context " lines" ] .I filename .SH AVAILABILITY This command is available with the OpenWindows environment. For information about installing OpenWindows, refer to the .I OpenWindows Installation and Start-Up Guide. .SH DESCRIPTION .IX tools textedit "" "\fLtextedit\fR" .LP .B textedit is a window-based \s-1XV\s0iew application that provides both mouse and pointer operations and keyboard accelerators for the editing of text. In general, text editing throughout the OpenWindows user environment uses .B textedit conventions, both in text display areas such as mail message windows and command panel text fields. .LP .B textedit operates via a set of command panel buttons and text fields and a set of menus and submenus accessible from the main editing window. .SH OPTIONS .LP .TP .I generic-tool-arguments .B textedit accepts the \s-1XV\s0iew generic tool arguments described in the .I XView Reference Manual. .LP .TP .BR "\-Ea on" \||\| off .PD 0 .TP .B \-adjust_is_pending_delete .PD Choose whether or not an adjustment to a selection makes the selection \(lqpending-delete.\(rq The default is off. This option corresponds to, and overrides, the .B adjust_is_pending_delete Text defaults entry. .TP .PD 0 .BR "\-Ei on" \||\| off .TP .B \-auto_indent .PD Choose whether or not to automatically indent newly-opened lines. The default is off. Corresponds to the .BR auto_indent Text default. .TP .BR "\-Eo on" \||\| off .PD 0 .TP .B \-okay_to_overwrite .PD Set behavior to the .B "Store as New File" menu item. If .B on a .B "Store as New File" to the current file is treated as a .BR "Save Current File" . If .B off (the standard default), .B "Store as New File" operations using the current filename results in an error message. Corresponds to .BR Store_self_is_save . .TP .PD 0 .BR "\-Er on" \||\| off .TP .B \-read_only .PD Turn read-only mode on or off. When on, text cannot be modified. .TP .BI \-Ec " N" .PD 0 .TP .BI \-checkpoint " count" .PD Checkpoint after every .I count editing operation. If .I count is 0 (the standard default), no checkpointing takes place. Each character typed, each .BR Paste , and each .B Cut counts as an editing operation. Corresponds to .BR checkpoint_frequency . .TP .BI \-EL " lines" .PD 0 .TP .BI \-lower_context lines .PD Specify the minimum number of lines to keep between the caret and the bottom of the text subwindow. The default is 2. Corresponds to .BR lower_context . .TP .BI \-Em " pixels" .PD 0 .TP .BI \-margin " pixels" .PD Set the scrollbar margin width in pixels. The default is 4. Corresponds to .BR left_margin . .TP .BI \-En " N" .PD 0 .TP .BI \-number_of_lines " lines" .PD Set the number of lines in the bottom subwindow. The default is 45. .TP .BI \-ES " N" .PD 0 .TP .BI \-multi_click_space " radius" .PD Set the radius in pixels, within which clicks must occur to be treated as a multi-click selection. The default is 3 pixels. Corresponds to .BR multi_click_space . .TP .BI \-Et " N" .PD 0 .TP .BI \-tab_width " tabstop" .PD Set the number of .SM SPACE characters displayed per .SM TAB stop. The default is 8. This option has no effect on the characters in the file. Corresponds to .BR tab_width . .TP .BI \-ET " N" .PD 0 .TP .BI \-multi_click_timeout " intrvl" .PD Set the interval, in milliseconds, within which any two clicks must occur to be treated as a multi-click selection. The default is 390 milliseconds. Corresponds to .BR multi_click_timeout . .TP .BI \-Eu " N" .PD 0 .TP .BI \-history_limit " max" .PD Set the maximum number of editing operations that can be undone or replayed. The default is 50. Corresponds to .BR history_limit . .TP .B \-EU " N" .PD 0 .TP .BI \-upper_context " lines" .PD Set the minimum number of lines to keep between the caret and the top of the text subwindow. The default is 2. Corresponds to .BR upper_context . .SH USAGE .B textedit is part of the OpenWindows user environment. For a descriptions of the basic concepts of OpenWindows, see the .I OpenWindows User's Guide. .SS Signal Processing .LP If .B textedit hangs, for whatever reason, you can send a .B \s-1SIGHUP\as0 signal to its process .SM ID, which forces it to write any changes (if possible): .IP .BI "kill \-\s-1HUP\s0 " pid .LP The edits are written to the file .BI textedit. pid in its working directory. If that fails, .B textedit successively tries to write to a file by that name in .BR /var/tmp , and then .BR /tmp . In addition, whenever .B textedit catches a fatal signal, such as .BR \s-1SIGILL\s0 , it tries to write out the edits before aborting. .SS Defaults Options .LP You can specify a number of defaults using the .B .Xdefaults file that affect the behavior of the text-based facilities. See .BR xview (1) for more detailed information. .SS Selections .LP Selections in .B textedit are defined as selected portions of text to which editing operations can be applied. For example, a selection can be .I deleted, moved, copied, etc. .LP .B textedit provides two types of selections: primary and secondary. Primary selections allow you to select a set of text on which to perform an editing function. Secondary selections allow you to define a .I second block of text without undefining your primary text selection or repositioning your cursor. Being able to define two sets of text at once allows you to take advantage of the advanced editing functions described below in the section called .B Function Keys. .bp .TP 10 .B Using a Mouse and Pointer: .RS Single characters can be selected using the .SM SELECT. .sp .5 Blocks of text can be selected by selecting a starting point with the .SM SELECT and selecting an ending point with .SM ADJUST. .sp .5 Or blocks of text can be selected using OPEN LOOK's .I wipe through feature by pointing at a beginning character and depressing the .B select button while moving the pointer to the end of a block of text. .sp .5 Selections can also be made by sing .I clicking (rapidly pressing) the select button. Click once to select a single letter; click twice to select a word; click three times to select a complete line of text; click four times to select the entire document being edited. .RE .TP .B Visual Feedback .RS All primary selections are indicated visually by inverse video of the text selected and are .I pending delete. Pending delete selections are replaced if you type or paste while the text is selected. .sp .5 Secondary selections that are not .I pending delete are indicated by underlining of the text. .sp .5 Secondary selections pending delete are indicated by underlining of the text and strike through of the individual characters. .RE .SS Secondary Selections .RS Secondary selections are made using any of the selection methods described above in addition to holding down one of the four function keys corresponding to the commands .BR Cut , .BR Find , .BR Paste , or .BR Copy . .LP Secondary selections are made pending delete by holding the .SM CTRL key when making the secondary selection. If a secondary selection is pending-delete, it is deleted when the function key is released, except in the case of the .BR Find , which deselects the secondary selection. .LP You can make adjusted selections switch to pending-delete using the .B adjust_is_pending_delete defaults entry, or the .B \-Ea option. In this case, \s-1CTRL\s0-Middle makes the selection .I not pending-delete. .LP Commands that operate on the primary selection do so even if the primary selection is not in the window that issued the command. .RE .SS "Inserting Text and Command Characters" .LP For the most part, typing any of the standard keys either inserts the corresponding character at the insertion point, or erases characters. However, certain key combinations are treated as commands. Some of the most useful are: .LP .ta 20n 40n .nf .B Command Character Description .sp \fBCut-Primary\fR \s-1META\s0-X Erases, and moves to the Clipboard, the primary selection. \fBFind-Primary\fR \s-1META\s0-F Searches the text for the pattern specified by the primary selection or by the Clipboard, if there is no primary selection. \fBCopy-to-Clipboard\fR \s-1META\s0-C Copies the primary selection to the Clipboard. \fBPaste-Clipboard\fR \s-1META\s0-V Inserts the Clipboard contents at the insertion point. \fBCopy-then-Paste\fR \s-1META\s0-P Copies the primary selection to the insertion point (through the Clipboard). \fBGo-to-\s-1EOF\s0\fR \s-1CTRL\s0-\s-1RETURN\s0 Moves the insertion point to the end of the text, positioning the text so that the insertion point is visible. .fi .br .ne 8 .SS Function Keys .LP The commands indicated by use of the function keys are: .LP .ta 20n 40n .nf \fBCommand\fP \fBSun-2\||\|3 Key\fP \fBDescription\fP .sp \fBStop\fR L1 Aborts the current command. \fBAgain\fR L2 Repeats the previous editing sequence since a primary selection was made. \fBUndo\fR L4 Undoes a prior editing sequence. \fBFront\fR L5 Makes the window completely visible (or hides it, if it is already exposed). \fBCopy\fR L6 Copies the primary selection, either to the Clipboard or at the closest end of the secondary selection. \fBOpen\fR L7 Makes the window iconic (or normal, if it is already iconic). \fBPaste\fR L8 Copies either the secondary selection or the Clipboard at the insertion point. \fBFind\fR L9 Searches for the pattern specified by, in order, the secondary selection, the primary selection, or the Clipboard. \fBCut\fR L10 Erases, and moves to the Clipboard, either the primary or the secondary selection. \fB\s-1Help\s0\fR F1 Produces help text. .fi .LP .B Find usually searches the text forwards, towards the end. Holding down the .SM SHIFT key while invoking .B Find searches backward through the text, towards the beginning. If the pattern is not found before the search encounters either extreme, it \(lqwraps around\(rq and continues from the other extreme. .B Find starts the search at the appropriate end of the primary selection, if the primary selection is in the subwindow that the search is made in; otherwise it starts at the insertion point, unless the subwindow cannot be edited, in which case it starts at the beginning of the text. .LP \s-1CTRL\s0-Find invokes the .B Find and Replace pop-up frame. .LP .br .ne 10 .SS Menu Items .LP .TP 10 .B File A pull-right menu item for file operations. .TP .B Edit A pull-right menu item equivalent of the editing function keys. The .B Edit submenu provides .BR Again , .BR Undo , .BR Copy , .BR Paste , and .B Cut (same as function keys L2, L4, L6, L8, and L10). .TP .B Display A pull-right menu item for controlling the way text is displayed and line display format. .TP .B Find A pull-right menu item for find and delimiter matching operations. .TP .B Extras A user definable pull-right menu item. The .B Extras standard submenu is controlled by .BR /usr/lib/.text_extras_menu , which has the same format as .B \&.rootmenu file. This can be overridden in two ways: .RS 15 1) Change the value of the .Xdefaults parameter .B text.extrasMenuFilename to the correct file path. .br 2) Set the environment variable .B \s-1EXTRASMENU\s0 to the file desired. .br Note that option 1 overrides option 2 if both are used. .br For more information see the .I "DeskSet Environment Reference Guide". See also .BR xview (1). .RE .LP Only those items that are active appear as normal text in the menu; inactive items (which are inappropriate at the time) are \(lqgrayed out\(rq. .bp .SS User Defined Commands .LP The file .B /usr/lib/text_extras_menu specifies filter programs that are included in the text subwindow .B Extras pull-right menu item. The file .B ~/.textswrc specifies filter programs that are assigned to (available) function keys. These filters are applied to the contents of the primary selection. Their output is entered at the caret. .LP The file .B /usr/lib/textswrc is a sample containing a set of useful filters. It is not read automatically. .SH FILES .PD 0 .TP 25 .B ~/.textswrc Specifies bindings of filters to function keys .TP .B /usr/lib/text_extras_menu Specifies bindings of filters for the extras menu pull-right items .TP .B /usr/bin Contains useful filters, including \fBshift_lines\fP and \fBcapitalize\fP. .TP .IB filename % Prior version of .I filename is available here after a .B Save Current File menu operation .TP .BI textedit. pid Edited version of .IR filename ; generated in response to fatal internal errors .TP .B /tmp/Text* Editing session logs .PD .SH "SEE ALSO" .BR kill (1) .LP .I Introduction to the OpenWindows User Environment .SH DIAGNOSTICS .TP 35 .B "Cannot open file '\fIfilename\fP', aborting!" .I filename does not exist or cannot be read. .LP .B textedit produces the following exit status codes: .LP .PD 0 .RS .TP 0 normal termination .TP 1 standard OpenWindows help message was printed .TP 2 help message was requested and printed .TP 3 abnormal termination in response to a signal, usually due to an internal error .TP 4 abnormal termination during initialization, usually due to a missing file or running out of swap space .PD .RE .SH BUGS Multi-click to change the current selection does not work for .BR "Adjust Selection" . .LP Handling of long lines is incorrect in certain scrolling situations. .LP There is no way to replay any editing sequence except the most recent. .LP xview-3.2p1.4/clients/textedit/textedit.mask.icon100644 1750 1750 3715 5745131567 17376 0ustar mbmb/* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16 */ 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x003F,0xFFFE,0x0000, 0x0000,0x003F,0xFFFE,0x0000, 0x0000,0x03FF,0xFFFE,0x0000, 0x0000,0x03FF,0xFFFE,0x0000, 0x0000,0x3FFF,0xFFFE,0x0000, 0x0000,0x3FFF,0xFFFE,0x0000, 0x0000,0x3FFF,0xFFFE,0x0000, 0x0000,0x3FFF,0xFFFE,0x0000, 0x0000,0x3FFF,0xFFFE,0x0000, 0x0000,0x3FFF,0xFFFE,0x0000, 0x0000,0x3FFF,0xFFFE,0x0000, 0x0000,0x3FFF,0xFFFE,0x0000, 0x0000,0x3FFF,0xFFFE,0x0000, 0x0000,0x3FFF,0xFFFE,0x0000, 0x0000,0x3FFF,0xFFFE,0x0000, 0x0000,0x3FFF,0xFFFE,0x0000, 0x0000,0x3FFF,0xFFFE,0x0000, 0x0000,0x3FFF,0xFFFE,0x0000, 0x0000,0x3FFF,0xFFFE,0x0000, 0x0000,0x3FFF,0xFFFE,0x0000, 0x0000,0x3FFF,0xFFFE,0x0000, 0x0000,0x3FFF,0xFFFE,0x0000, 0x0000,0x3FFF,0xFFFE,0x0000, 0x0000,0x3FFF,0xFFFE,0x0000, 0x0000,0x3FFF,0xFFFE,0x0000, 0x0000,0x3FFF,0xFFFE,0x0000, 0x0000,0x3FFF,0xFFFE,0x0000, 0x0000,0x3FFF,0xFFFE,0x0000, 0x0000,0x3FFF,0xFFFE,0x0000, 0x0000,0x7FFF,0xFFFE,0x0000, 0x0000,0xFFFF,0xFFFE,0x0000, 0x0001,0xFFFF,0xFFF8,0x0000, 0x0003,0xBFFF,0xFFF8,0x0000, 0x0007,0x3FFF,0xFFF8,0x0000, 0x000E,0x3FFF,0xFFE0,0x0000, 0x000E,0x3FFF,0xFFE0,0x0000, 0x000C,0x3FFF,0xFFE0,0x0000, 0x007F,0x0000,0x0000,0x0000, 0x007F,0x0000,0x0000,0x0000, 0x01FF,0xC000,0x0000,0x0000, 0x03FF,0xE000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000 xview-3.2p1.4/clients/props/ 40755 1750 1750 0 6354605713 13142 5ustar mbmbxview-3.2p1.4/clients/props/Imakefile100644 1750 1750 1402 5745131563 15045 0ustar mbmb#include /**/######################################################################### /**/# @(#)Imakefile 1.3 10/4/91 SMI /**/# Imakefile for props #define HasInfoFiles YES DEFINES = -DSTANDALONE INCLUDES = -I/usr/openwin/include -I$(HEADER_DEST) -I$(TOP) SYS_LIBRARIES = DEPLIBS = XViewClientDepLibs LOCAL_LIBRARIES = XViewClientLibs HEADERS = props.h color.h image.h l10n_props.h INFOFILES = props.info MANPAGES = SRCS = props.c color_props.c color.c l10n_props.c l10n_read.c OBJS = props.o color_props.o color.o l10n_props.o l10n_read.o ALLFILES = ${HEADERS} ${INFOFILES} ${MANPAGES} ${SRCS} AllTarget(props) NormalProgramTarget(props,$(OBJS),$(DEPLIBS),$(LOCAL_LIBRARIES),$(SYS_LIBRARIES)) InstallProgram(props,$(BINDIR)) #include xview-3.2p1.4/clients/props/color.c100644 1750 1750 10133 5745131563 14537 0ustar mbmb#ifndef lint static char *sccsid = "@(#)color.c 1.3 91/09/14"; #endif /* * Copyright (c) 1990 by Sun Microsystems, Inc. */ /* * Referernce: * Hearn/Baker, "Computer Graphics", Prentice Hall, Section 14-4. */ #include #include "color.h" static int max3(x, y, z) register int x, y, z; { if (y > x) x = y; if (z > x) x = z; return x; } static int min3(x, y, z) register int x, y, z; { if (y < x) x = y; if (z < x) x = z; return x; } void hsv_to_rgb(hsv, rgb) HSV *hsv; RGB *rgb; { int h = hsv->h; int s = hsv->s; int v = hsv->v; int r, g, b; int i, f; int p, q, t; s = (s * MAXRGB) / MAXSV; v = (v * MAXRGB) / MAXSV; if (h == 360) h = 0; if (s == 0) { h = 0; r = g = b = v; } i = h / 60; f = h % 60; p = v * (MAXRGB - s) / MAXRGB; q = v * (MAXRGB - s * f / 60) / MAXRGB; t = v * (MAXRGB - s * (60 - f) / 60) / MAXRGB; switch (i) { case 0: r = v, g = t, b = p; break; case 1: r = q, g = v, b = p; break; case 2: r = p, g = v, b = t; break; case 3: r = p, g = q, b = v; break; case 4: r = t, g = p, b = v; break; case 5: r = v, g = p, b = q; break; } rgb->r = r; rgb->g = g; rgb->b = b; } void rgb_to_hsv(rgb, hsv) RGB *rgb; HSV *hsv; { int r = rgb->r; int g = rgb->g; int b = rgb->b; register int maxv = max3(r, g, b); register int minv = min3(r, g, b); int h; int s; int v; v = maxv; if (maxv) { s = (maxv - minv) * MAXRGB / maxv; } else { s = 0; } if (s == 0) { h = 0; } else { int rc; int gc; int bc; int hex; rc = (maxv - r) * MAXRGB / (maxv - minv); gc = (maxv - g) * MAXRGB / (maxv - minv); bc = (maxv - b) * MAXRGB / (maxv - minv); if (r == maxv) { h = bc - gc, hex = 0; } else if (g == maxv) { h = rc - bc, hex = 2; } else if (b == maxv) { h = gc - rc, hex = 4; } h = hex * 60 + (h * 60 / MAXRGB); if (h < 0) h += 360; } hsv->h = h; hsv->s = (s * MAXSV) / MAXRGB; hsv->v = (v * MAXSV) / MAXRGB; } /* * Load an XColor with an RGB. */ void rgb_to_xcolor(r, x) RGB *r; XColor *x; { x->red = (unsigned short) r->r << 8; x->green = (unsigned short) r->g << 8; x->blue = (unsigned short) r->b << 8; x->flags = DoRed | DoGreen | DoBlue; } /* * Load an XColor with an HSV. */ void hsv_to_xcolor(h, x) HSV *h; XColor *x; { RGB r; hsv_to_rgb(h, &r); rgb_to_xcolor(&r, x); } /* * Load an HSV with an XColor. */ void xcolor_to_hsv(x, h) XColor *x; HSV *h; { RGB r; r.r = (int) x->red >> 8; r.g = (int) x->green >> 8; r.b = (int) x->blue >> 8; rgb_to_hsv(&r, h); } /* * Take an HSV and generate the 3 OpenLook 3D colors into XColor structures. */ void olgx_hsv_to_3D(bg1, bg2, bg3, white) HSV *bg1; XColor *bg2, *bg3, *white; { HSV hsv; int h = bg1->h; int s = bg1->s; int v = bg1->v; v = (v * VMUL) / 10; if (v > MAXSV) { s /= SDIV; v = MAXSV; } if (v < VMIN) v = VMIN; hsv.h = h; hsv.s = s; hsv.v = v; hsv_to_xcolor(&hsv, white); hsv.h = bg1->h; hsv.s = bg1->s; hsv.v = (bg1->v * 9) / 10; /* 90% */ hsv_to_xcolor(&hsv, bg2); hsv.h = bg1->h; hsv.s = bg1->s; hsv.v = bg1->v >> 1; /* 50% */ hsv_to_xcolor(&hsv, bg3); } /* * Take an XColor (BG1) and generate the 3 OpenLook 3D colors into XColor structures. */ void olgx_calculate_3Dcolors(fg, bg1, bg2, bg3, white) XColor *fg; XColor *bg1, *bg2, *bg3, *white; { HSV base; xcolor_to_hsv(bg1, &base); olgx_hsv_to_3D(&base, bg2, bg3, white); } xview-3.2p1.4/clients/props/color.h100644 1750 1750 1240 5745131563 14523 0ustar mbmb/* * @(#)color.h 1.4 91/09/14 */ /* * Copyright (c) 1990 by Sun Microsystems, Inc. */ #define MAXRGB 0xff #define MAXH 360 #define MAXSV MAXRGB #define VMUL 12 /* brighten by 20% (12 = 1.2*10) */ #define SDIV 2 /* unsaturate by 50% (divide by 2) */ #define VMIN ((4*MAXSV)/10) /* highlight brightness 40% minimum */ typedef struct { int r, g, b; } RGB; typedef struct { int h, s, v; } HSV; void hsv_to_rgb(); void rgb_to_hsv(); void rgb_to_xcolor(); void hsv_to_xcolor(); void xcolor_to_hsv(); void olgx_hsv_to_3D(); void olgx_calculate_3Dcolors(); xview-3.2p1.4/clients/props/color_props.c100644 1750 1750 43751 5745131563 15776 0ustar mbmb#ifndef lint static char sccsid[] = "@(#)color_props.c 1.11 91/09/14"; #endif /* * color_props.c - Color property sheet for the OpenWindows Properties program. */ #include #include #include #include "props.h" #include "color.h" #include "image.h" #include #include #define WORKSPACE_STRING "Workspace" #define WINDOW_STRING "Windows" #define PALETTE_STRING "Palette" #define CUSTOM_STRING "Custom" #define WORKSPACE_CLASS_RES "OpenWindows.WorkspaceColor" #define WORKSPACE_RES "openwindows.workspacecolor" #define WORKSPACE_DEFAULT "#40a0c0" #define WINDOW_CLASS_RES "OpenWindows.WindowColor" #define WINDOW_RES "openwindows.windowcolor" #define WINDOW_DEFAULT "#cccccc" #define BACK_CLASS_RES "Window.Color.Background" #define BACK_RES "window.color.background" #define BACK_DEFAULT "#ffffff" #define FRAME_STYLE_CLASS_RES "OpenWindows.Use3DFrames" #define FRAME_STYLE_RES "OpenWindows.use3dframes" static int hues[] = {0, 43, 63, 135, 180, 225, 280, 315}; /* 0 - 360 */ static int saturations[] = {200, 400, 600, 800}; /* 0 - 1000 */ static int brightnesses[] = {750, 900}; /* 0 - 1000 */ static int grays[] = {300, 400, 500, 600, 700, 800}; /* 0 - 1000 */ #define NUM_BRIGHTNESSES (sizeof(brightnesses)/sizeof(int)) #define NUM_HUES (sizeof(hues)/sizeof(int)) #define NUM_SATURATIONS (sizeof(saturations)/sizeof(int)) #define NUM_GRAYS (sizeof(grays)/sizeof(int)) #define NUM_COLUMNS (NUM_HUES+1) #define NUM_CUSTOM 2 #define COLOR_CHOICES (NUM_HUES*NUM_SATURATIONS*NUM_BRIGHTNESSES+NUM_GRAYS+NUM_CUSTOM) #define NUM_RWCOLORS (BlackIndex + 1) #define COLORMAP_SIZE (COLOR_CHOICES + NUM_RWCOLORS) #define CUSTOM_INDEX 0 #define WORK_INDEX 0 #define WIN_INDEX 1 static XColor xcolors[COLORMAP_SIZE]; static HSV colors[COLOR_CHOICES]; static Cms cms = XV_NULL; static char *image_string; static Panel_item h_slider; static Panel_item s_slider; static Panel_item v_slider; static Panel_item h_ticks; static Panel_item s_ticks; static Panel_item v_ticks; static Panel_item palette; static Panel_item which; static Panel_item custom; static int palette_x; static int backup_work_index; static int backup_win_index; static HSV backup_xact_win; static HSV backup_xact_work; static int slidermode; /* palette == 0, sliders == 1 */ static int windowmode; /* workspace == 0, window == 1 */ static int work_index; static int win_index; static HSV xact_win; static HSV xact_work; static HSV xact_slider; #define CHIP_HEIGHT 16 #define CHIP_WIDTH 16 static unsigned short chip_data[] = { 0x7FFE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x7FFE }; static Server_image color_chip; #define IMAGE_WIDTH 64 #define IMAGE_HEIGHT 64 static char image_data[IMAGE_WIDTH * IMAGE_HEIGHT]; #define FIRST_SLIDER_Y 40 #define SLIDER_GAP 40 #define SLIDER_TICK_GAP 4 #define SLIDER_WIDTH (NUM_COLUMNS*(CHIP_WIDTH+8)) #define SLIDER_MAX MAXSV #define SLIDER_MAX_H MAXH #define SIMAGE_WIDTH (SLIDER_WIDTH - 44) #define SIMAGE_HEIGHT 16 static char hue_data[SIMAGE_WIDTH * SIMAGE_HEIGHT]; static char sat_data[SIMAGE_WIDTH * SIMAGE_HEIGHT]; static char val_data[SIMAGE_WIDTH * SIMAGE_HEIGHT]; static Server_image preview; static Server_image hue_image; static Server_image sat_image; static Server_image val_image; static int huepix[NUM_HUES]; static int satpix[NUM_SATURATIONS]; static int valpix[NUM_GRAYS]; /* * string_to_xcolor() * string may be: * color name: "Blue", "Pink", etc. * hex color: #a0bf1e * sunview decimal color: 100 220 255 * * if it is not one of these formats (or if the name cannot be found), * then string_to_xcolor() returns 1, otherwise it returns 0. */ static int string_to_xcolor(s, xcolor) char *s; XColor *xcolor; { if (!XParseColor(dsp, DefaultColormap(dsp, 0), s, xcolor)) { int red, green, blue; if (sscanf(s, "%d %d %d", &red, &green, &blue) == 3) { xcolor->red = red << 8; xcolor->green = green << 8; xcolor->blue = blue << 8; xcolor->flags = DoRed | DoGreen | DoBlue; } else return 1; } /* * XParseColor may not have multiplied by 257... */ xcolor->red &= 0xff00; xcolor->green &= 0xff00; xcolor->blue &= 0xff00; return 0; } static void update_colors() { XColor xcolors[5]; hsv_to_xcolor(&xact_win, &xcolors[BG1Index]); olgx_hsv_to_3D(&xact_win, &xcolors[BG2Index], &xcolors[BG3Index], &xcolors[WhiteIndex]); hsv_to_xcolor(&xact_work, &xcolors[WorkspaceIndex]); xv_set(cms, CMS_COLOR_COUNT, 5, CMS_INDEX, CMS_CONTROL_COLORS + COLOR_CHOICES, CMS_X_COLORS, xcolors, NULL); } static void update_choices() { if (slidermode) { if (windowmode) { xact_slider = xact_win; } else { xact_slider = xact_work; } xv_set(h_slider, PANEL_VALUE, xact_slider.h, NULL); xv_set(s_slider, PANEL_VALUE, xact_slider.s, NULL); xv_set(v_slider, PANEL_VALUE, xact_slider.v, NULL); } else { int the_index; the_index = (windowmode) ? win_index : work_index; xv_set(palette, PANEL_VALUE, the_index, NULL); } } static char * hsv_to_string(hsv) HSV *hsv; { XColor xcolor; static char s[8]; hsv_to_xcolor(hsv, &xcolor); sprintf(s, "#%02x%02x%02x", xcolor.red >> 8, xcolor.green >> 8, xcolor.blue >> 8); return strdup(s); } static void store_custom_colors() { if (work_index == WORK_INDEX) { colors[WORK_INDEX] = xact_work; hsv_to_xcolor(&xact_work, &xcolors[WORK_INDEX]); } if (win_index == WIN_INDEX) { colors[WIN_INDEX] = xact_win; hsv_to_xcolor(&xact_win, &xcolors[WIN_INDEX]); } xv_set(cms, CMS_COLOR_COUNT, NUM_CUSTOM, CMS_INDEX, CMS_CONTROL_COLORS + CUSTOM_INDEX, CMS_X_COLORS, xcolors, NULL); } static void backup_colors() { backup_work_index = work_index; backup_win_index = win_index; backup_xact_win = xact_win; backup_xact_work = xact_work; } static void restore_colors() { work_index = backup_work_index; win_index = backup_win_index; xact_win = backup_xact_win; xact_work = backup_xact_work; } void apply_colors() { defaults_set_string(WORKSPACE_CLASS_RES, hsv_to_string(&xact_work)); defaults_set_string(WINDOW_CLASS_RES, hsv_to_string(&xact_win)); backup_colors(); store_custom_colors(); } void reset_colors() { restore_colors(); update_choices(); update_colors(); } static void which_notify(panel_item, choice, event) Panel_item panel_item; int choice; Event *event; { windowmode = choice; update_choices(); } static void color_notify(panel_item, choice, event) Panel_item panel_item; int choice; Event *event; { if (windowmode) { win_index = choice; xact_win = colors[win_index]; } else { work_index = choice; xact_work = colors[work_index]; } update_colors(); } static void slider_notify(panel_item, value, event) Panel_item panel_item; int value; Event *event; { switch (xv_get(panel_item, PANEL_CLIENT_DATA)) { case 1: xact_slider.h = value; break; case 2: xact_slider.s = value; break; case 3: xact_slider.v = value; break; } if (windowmode) { xact_win = xact_slider; win_index = WIN_INDEX; } else { xact_work = xact_slider; work_index = WORK_INDEX; } update_colors(); } static void switch_modes() { if (slidermode) { xv_set(palette, XV_SHOW, FALSE, NULL); update_choices(); xv_set(h_slider, XV_SHOW, TRUE, NULL); xv_set(s_slider, XV_SHOW, TRUE, NULL); xv_set(v_slider, XV_SHOW, TRUE, NULL); xv_set(h_ticks, XV_SHOW, TRUE, NULL); xv_set(s_ticks, XV_SHOW, TRUE, NULL); xv_set(v_ticks, XV_SHOW, TRUE, NULL); } else { xv_set(h_slider, XV_SHOW, FALSE, NULL); xv_set(s_slider, XV_SHOW, FALSE, NULL); xv_set(v_slider, XV_SHOW, FALSE, NULL); xv_set(h_ticks, XV_SHOW, FALSE, NULL); xv_set(s_ticks, XV_SHOW, FALSE, NULL); xv_set(v_ticks, XV_SHOW, FALSE, NULL); update_choices(); xv_set(palette, XV_SHOW, TRUE, NULL); } } static void custom_notify(panel_item, choice, event) Panel_item panel_item; int choice; Event *event; { if (slidermode && !choice) { store_custom_colors(); } slidermode = choice; switch_modes(); } Cms create_palette() { int i, h, s, v; XColor winxcolor; XColor workxcolor; HSV background; i = NUM_CUSTOM; /* leave room for the user's current defaults */ /* make the gray ramp. */ for (v = 0; v < NUM_GRAYS; v++) { valpix[v] = i; colors[i].h = 0; colors[i].s = 0; colors[i].v = grays[v] * MAXSV / 1000; hsv_to_xcolor(&colors[i], &xcolors[i]); i++; } /* make the color cube. */ for (h = 0; h < NUM_HUES; h++) { for (v = 0; v < NUM_BRIGHTNESSES; v++) { for (s = 0; s < NUM_SATURATIONS; s++) { if (v == 1 && h == 6) satpix[s] = i; if (v == 1 && s == 1) huepix[h] = i; colors[i].h = hues[h]; colors[i].s = saturations[s] * MAXSV / 1000; colors[i].v = brightnesses[v] * MAXSV / 1000; hsv_to_xcolor(&colors[i], &xcolors[i]); i++; } } } /* Create black. */ xcolors[COLOR_CHOICES + BlackIndex].red = 0; xcolors[COLOR_CHOICES + BlackIndex].green = 0; xcolors[COLOR_CHOICES + BlackIndex].blue = 0; xcolors[COLOR_CHOICES + BlackIndex].flags = DoRed | DoGreen | DoBlue; /* The default custom colors will be the OpenLook default colors. */ string_to_xcolor(WORKSPACE_DEFAULT, &xcolors[WORK_INDEX]); xcolor_to_hsv(&xcolors[WORK_INDEX], &colors[WORK_INDEX]); string_to_xcolor(WINDOW_DEFAULT, &xcolors[WIN_INDEX]); xcolor_to_hsv(&xcolors[WIN_INDEX], &colors[WIN_INDEX]); /* Create background (window.color.background) of cmdtool preview... */ string_to_xcolor(defaults_get_string(BACK_RES, BACK_CLASS_RES, BACK_DEFAULT), &xcolors[COLOR_CHOICES + BackIndex]); cms = xv_create(0, CMS, XV_VISUAL, xv_get(frame, XV_VISUAL), CMS_TYPE, XV_DYNAMIC_CMS, CMS_CONTROL_CMS, TRUE, CMS_NAME, "palette", CMS_SIZE, CMS_CONTROL_COLORS + COLORMAP_SIZE, CMS_X_COLORS, xcolors, NULL); /* look in resources for window and workspace defaults */ string_to_xcolor(defaults_get_string(WORKSPACE_RES, WORKSPACE_CLASS_RES, WORKSPACE_DEFAULT), &workxcolor); xcolor_to_hsv(&workxcolor, &xact_work); string_to_xcolor(defaults_get_string(WINDOW_RES, WINDOW_CLASS_RES, WINDOW_DEFAULT), &winxcolor); xcolor_to_hsv(&winxcolor, &xact_win); /* find out if any palette entries match the resource colors exactly */ #ifdef DEBUG printf("workcolor is %04x %04x %04x\n", workxcolor.red, workxcolor.green, workxcolor.blue); printf("wincolor is %04x %04x %04x\n", winxcolor.red, winxcolor.green, winxcolor.blue); #endif work_index = WORK_INDEX; win_index = WIN_INDEX; for (i = NUM_CUSTOM; i < COLOR_CHOICES; i++) { int r = xcolors[i].red & 0xff00; int g = xcolors[i].green & 0xff00; int b = xcolors[i].blue & 0xff00; if (workxcolor.red == r && workxcolor.green == g && workxcolor.blue == b) work_index = i; if (winxcolor.red == r && winxcolor.green == g && winxcolor.blue == b) win_index = i; } store_custom_colors(); return cms; } void create_color_panel() { char *colorstr; int i, j; /* build the preview image... */ if (defaults_get_boolean(FRAME_STYLE_RES, FRAME_STYLE_CLASS_RES, FALSE)) image_string = image_string_3dframes; else image_string = image_string_2dframes; for (i = 0; i < IMAGE_WIDTH * IMAGE_HEIGHT; i++) { j = image_string[i] - '0'; /* less than 7 is one of my colors, 7 & 8 are CMS_CONTROL colors */ switch (j) { case 7: j = 2; /* shadow color */ break; case 8: j = 3; /* hilight color */ break; default: j += CMS_CONTROL_COLORS + COLOR_CHOICES; break; } image_data[i] = j; } preview = xv_create(panel_group[COLOR_PANEL], PANEL_MESSAGE, PANEL_LABEL_IMAGE, xv_create(XV_NULL, SERVER_IMAGE, SERVER_IMAGE_COLORMAP, "palette", XV_WIDTH, IMAGE_WIDTH, XV_HEIGHT, IMAGE_HEIGHT, SERVER_IMAGE_DEPTH, 8, SERVER_IMAGE_X_BITS, image_data, NULL), XV_Y, 20, XV_HELP_DATA, "props:AppImageInfo", NULL); which = xv_create(panel_group[COLOR_PANEL], PANEL_CHOICE, PANEL_CHOICE_STRINGS, LOCALIZE(WORKSPACE_STRING), LOCALIZE(WINDOW_STRING), NULL, PANEL_NOTIFY_PROC, which_notify, PANEL_NEXT_ROW, -1, PANEL_CHOICE_NCOLS, 1, PANEL_VALUE, 0, XV_HELP_DATA, "props:ColorChoiceInfo", NULL); custom = xv_create(panel_group[COLOR_PANEL], PANEL_CHOICE, PANEL_CHOICE_STRINGS, LOCALIZE(PALETTE_STRING), LOCALIZE(CUSTOM_STRING), NULL, PANEL_NOTIFY_PROC, custom_notify, PANEL_NEXT_ROW, -1, PANEL_CHOICE_NCOLS, 1, PANEL_VALUE, 0, XV_HELP_DATA, "props:CustomColorInfo", NULL); { int a,b,c; a = xv_get(preview, XV_WIDTH); b = xv_get(which, XV_WIDTH); c = xv_get(custom, XV_WIDTH); palette_x = MAX_VALUE(MAX_VALUE(a,b),c) + 40; } xv_set(preview, XV_X, (palette_x - IMAGE_WIDTH) / 2, NULL); xv_set(which, XV_X, (palette_x - xv_get(which, XV_WIDTH)) / 2, NULL); xv_set(custom, XV_X, (palette_x - xv_get(custom, XV_WIDTH)) / 2, NULL); palette = xv_create(panel_group[COLOR_PANEL], PANEL_CHOICE, XV_SHOW, FALSE, PANEL_CHOICE_NCOLS, NUM_COLUMNS, PANEL_LAYOUT, PANEL_VERTICAL, PANEL_NOTIFY_LEVEL, PANEL_ALL, PANEL_NOTIFY_PROC, color_notify, XV_HELP_DATA, "props:PaletteInfo", XV_X, palette_x, XV_Y, 10, NULL); h_slider = xv_create(panel_group[COLOR_PANEL], PANEL_SLIDER, XV_SHOW, FALSE, PANEL_LABEL_STRING, LOCALIZE("Hue:"), PANEL_CLIENT_DATA, 1, PANEL_NOTIFY_LEVEL, PANEL_ALL, PANEL_SHOW_RANGE, FALSE, PANEL_SHOW_VALUE, FALSE, PANEL_VALUE, 0, PANEL_MIN_VALUE, 0, PANEL_MAX_VALUE, SLIDER_MAX_H, PANEL_NOTIFY_PROC, slider_notify, XV_HELP_DATA, "props:HueSlider", NULL); for (j = 0; j < SIMAGE_HEIGHT; j++) for (i = 0; i < SIMAGE_WIDTH; i++) hue_data[j * SIMAGE_WIDTH + i] = CMS_CONTROL_COLORS + huepix[i * NUM_HUES / SIMAGE_WIDTH]; hue_image = xv_create(XV_NULL, SERVER_IMAGE, SERVER_IMAGE_COLORMAP, "palette", XV_WIDTH, SIMAGE_WIDTH, XV_HEIGHT, SIMAGE_HEIGHT, SERVER_IMAGE_DEPTH, 8, SERVER_IMAGE_X_BITS, hue_data, NULL); h_ticks = xv_create(panel_group[COLOR_PANEL], PANEL_MESSAGE, PANEL_LABEL_IMAGE, hue_image, NULL); s_slider = xv_create(panel_group[COLOR_PANEL], PANEL_SLIDER, XV_SHOW, FALSE, PANEL_LABEL_STRING, LOCALIZE("Saturation:"), PANEL_CLIENT_DATA, 2, PANEL_NOTIFY_LEVEL, PANEL_ALL, PANEL_SHOW_RANGE, FALSE, PANEL_SHOW_VALUE, FALSE, PANEL_VALUE, 0, PANEL_MIN_VALUE, 0, PANEL_MAX_VALUE, SLIDER_MAX, PANEL_NOTIFY_PROC, slider_notify, XV_HELP_DATA, "props:SaturationSlider", NULL); for (j = 0; j < SIMAGE_HEIGHT; j++) for (i = 0; i < SIMAGE_WIDTH; i++) sat_data[j * SIMAGE_WIDTH + i] = CMS_CONTROL_COLORS + satpix[i * NUM_SATURATIONS / SIMAGE_WIDTH]; sat_image = xv_create(XV_NULL, SERVER_IMAGE, SERVER_IMAGE_COLORMAP, "palette", XV_WIDTH, SIMAGE_WIDTH, XV_HEIGHT, SIMAGE_HEIGHT, SERVER_IMAGE_DEPTH, 8, SERVER_IMAGE_X_BITS, sat_data, NULL); s_ticks = xv_create(panel_group[COLOR_PANEL], PANEL_MESSAGE, PANEL_LABEL_IMAGE, sat_image, NULL); v_slider = xv_create(panel_group[COLOR_PANEL], PANEL_SLIDER, XV_SHOW, FALSE, PANEL_LABEL_STRING, LOCALIZE("Brightness:"), PANEL_CLIENT_DATA, 3, PANEL_NOTIFY_LEVEL, PANEL_ALL, PANEL_SHOW_RANGE, FALSE, PANEL_SHOW_VALUE, FALSE, PANEL_VALUE, 0, PANEL_MIN_VALUE, 0, PANEL_MAX_VALUE, SLIDER_MAX, PANEL_NOTIFY_PROC, slider_notify, XV_HELP_DATA, "props:BrightnessSlider", NULL); for (j = 0; j < SIMAGE_HEIGHT; j++) for (i = 0; i < SIMAGE_WIDTH; i++) val_data[j * SIMAGE_WIDTH + i] = CMS_CONTROL_COLORS + valpix[i * NUM_GRAYS / SIMAGE_WIDTH]; val_image = xv_create(XV_NULL, SERVER_IMAGE, SERVER_IMAGE_COLORMAP, "palette", XV_WIDTH, SIMAGE_WIDTH, XV_HEIGHT, SIMAGE_HEIGHT, SERVER_IMAGE_DEPTH, 8, SERVER_IMAGE_X_BITS, val_data, NULL); v_ticks = xv_create(panel_group[COLOR_PANEL], PANEL_MESSAGE, PANEL_LABEL_IMAGE, val_image, NULL); { int a,b,c; a = xv_get(h_slider, PANEL_LABEL_WIDTH); b = xv_get(s_slider, PANEL_LABEL_WIDTH); c = xv_get(v_slider, PANEL_LABEL_WIDTH); i = MAX_VALUE(MAX_VALUE(a,b),c); } j = SLIDER_GAP + xv_get(h_slider, XV_HEIGHT); xv_set(h_slider, PANEL_VALUE_X, palette_x + i, PANEL_VALUE_Y, FIRST_SLIDER_Y, PANEL_SLIDER_WIDTH, SLIDER_WIDTH - j, NULL); xv_set(s_slider, PANEL_VALUE_X, palette_x + i, PANEL_VALUE_Y, xv_get(h_slider, PANEL_VALUE_Y) + j, PANEL_SLIDER_WIDTH, SLIDER_WIDTH - j, NULL); xv_set(v_slider, PANEL_VALUE_X, palette_x + i, PANEL_VALUE_Y, xv_get(s_slider, PANEL_VALUE_Y) + j, PANEL_SLIDER_WIDTH, SLIDER_WIDTH - j, NULL); xv_set(h_ticks, XV_X, palette_x + i, XV_Y, xv_get(h_slider, PANEL_VALUE_Y) + xv_get(h_slider, XV_HEIGHT) + SLIDER_TICK_GAP, NULL); xv_set(s_ticks, XV_X, palette_x + i, XV_Y, xv_get(h_ticks, XV_Y) + j, NULL); xv_set(v_ticks, XV_X, palette_x + i, XV_Y, xv_get(s_ticks, XV_Y) + j, NULL); color_chip = xv_create(XV_NULL, SERVER_IMAGE, XV_WIDTH, CHIP_WIDTH, XV_HEIGHT, CHIP_HEIGHT, SERVER_IMAGE_DEPTH, 1, SERVER_IMAGE_BITS, chip_data, NULL); for (i = 0; i < COLOR_CHOICES; i++) xv_set(palette, PANEL_CHOICE_IMAGE, i, color_chip, PANEL_CHOICE_COLOR, i, CMS_CONTROL_COLORS + i, NULL); xv_set(custom, PANEL_VALUE, slidermode, NULL); update_colors(); switch_modes(); backup_colors(); window_fit_width(panel_group[COLOR_PANEL]); } xview-3.2p1.4/clients/props/image.h100644 1750 1750 22074 5745131564 14520 0ustar mbmb/* * @(#)image.h 1.3 91/09/14 */ /* * image.h - 3D preview window for Color Properties. */ /* * 0 = WorkspaceColor Desktop Selected by user * 1 = WindowColor BG1 Selected by user * 2 = IndentColor BG2 90% of BG1 * 3 = ShadowColor BG3 50% of BG1 * 4 = HighLightColor White 120% of BG1 * 5 = BackgroundColor This is used in the preview window ttysw. * 6 = Black Black * 7 = shadow in cms control segment * 8 = hilight in cms control segment */ #define WorkspaceIndex 0 #define BG1Index 1 #define BG2Index 2 #define BG3Index 3 #define WhiteIndex 4 #define BackIndex 5 #define BlackIndex 6 /* Black has to be last since XView CMS_CONTROL_COLORS does not include * black, it expects the last color in a cms to be black... yuck! */ char *image_string_3dframes = "\ 7777777777777777777777777777777777777777777777777777777777777777\ 7777777777777777777777777777777777777777777777777777777777777778\ 7700000000000000000000000000000000000000000000000000000000000088\ 7700000000000000000000000000000000000000000000000000000000000088\ 7700000000000000000000000000000000000000000000000000000000000088\ 7700000000000000000000000000000000000000000000000000000000000088\ 7700000000000000000000000000000000000000000000000000000000000088\ 7700000000000000000000000000000000000000000000000000000000000088\ 7700000000000000000000000000000000000000000000000000000000000088\ 7700000000000000000000000000000000000000000000000000000000000088\ 7700000000000000000000000000000000000000000000000000000000000088\ 7700000000000000000000000000000000000000000000000000000000000088\ 7700000000000000000000000000000000000000000000000000000000000088\ 7700000000000000000000000000000000000000000000000000000000000088\ 7700000000000000000000000000000000000000000000000000000000000088\ 7700000000000000000000000000000000000000000000000000000000000088\ 7700000000000000000000000000000000000000000000000000000000000088\ 7700000000444444444444444444444444444444444444444444444444444488\ 7700000000411111111131111111111111111111111111111111111111111188\ 7700000000411111111131111111111111111111111111111111111111111188\ 7700000000411111111131111111111111111111111111111111111111111188\ 7700000000411133333331111111111111111111111111111111111111111188\ 7700000000411133333333332444444444444442333333333333333333333388\ 7700000000411133222222224111111111111113222222222222222222222288\ 7700000000411133222222224111111111111113222222222222222222222288\ 7700000000411133222222224111111111111113222222222222222222222288\ 7700000000411133222222224111666666611113222222222222222222222288\ 7700000000433333222222224111622222411113222222222222222222222288\ 7700000000411113222222224111162224111113222222222222222222222288\ 7700000000411113222222224111162224111113222222222222222222222288\ 7700000000411113222222224111116241111113222222222222222222222288\ 7700000000411113222222224111116241111113222222222222222222222288\ 7700000000411113222222224111111411111113222222222222222222222288\ 7700000000411113222222224111111111111113222222222222222222222288\ 7700000000411113222222224111111111111113222222222222222222222288\ 7700000000411113222222224111111111111113222222222222222222222288\ 7700000000411113222222222333333333333332222222222222222222222288\ 7700000000411113444444444444444444444444444444444444444444444488\ 7700000000411111111111111111111111111111111111111111111111111188\ 7700000000411111111111111111111111111111111111111111111111111188\ 7700000000411111111111111111111111111111111111111111111111111188\ 7700000000411111111111111111111111111111111111111111111111111188\ 7700000000411111111111111111111111111111111111111111111111111188\ 7700000000411111144444444444443111666666666666666666666666666688\ 7700000000411111141111111111113111655555555555555555555555555588\ 7700000000411111141111111111113111655555555555555555555555555588\ 7700000000411111141111111111113111655555555665555555555555555588\ 7700000000411111141111111111113111655555556556556555555555555588\ 7700000000411111143333333333333111655555556556565555555555555588\ 7700000000411111111111111111111111655555555665655555555555555588\ 7700000000411111111111111111111111655555555556555555555555555588\ 7700000000411111111111113111111111655555555565665555555555555588\ 7700000000411111111111131311111111655555555656556555555555555588\ 7700000000411111111111113111111111655555556556556555555555555588\ 7700000000411111111111131311111111655555555555665555555565555588\ 7700000000411111111111113111111111655555555555555555555666555588\ 7700000000411111111111131311111111655555555555555555555666555588\ 7700000000411111111111113111111111655555555555555555556666655588\ 7700000000411111111111131311111111655555555555555555556666655588\ 7700000000411111111111113111111111655555555555555555566666665588\ 7700000000411111111111131311111111655555555555555555566666665588\ 7700000000411111111111113111111111655555555555555555555555555588\ 7888888888888888888888888888888888888888888888888888888888888888\ 8888888888888888888888888888888888888888888888888888888888888888\ "; char *image_string_2dframes = "\ 7777777777777777777777777777777777777777777777777777777777777777\ 7777777777777777777777777777777777777777777777777777777777777778\ 7700000000000000000000000000000000000000000000000000000000000088\ 7700000000000000000000000000000000000000000000000000000000000088\ 7700000000000000000000000000000000000000000000000000000000000088\ 7700000000000000000000000000000000000000000000000000000000000088\ 7700000000000000000000000000000000000000000000000000000000000088\ 7700000000000000000000000000000000000000000000000000000000000088\ 7700000000000000000000000000000000000000000000000000000000000088\ 7700000000000000000000000000000000000000000000000000000000000088\ 7700000000000000000000000000000000000000000000000000000000000088\ 7700000000000000000000000000000000000000000000000000000000000088\ 7700000000000000000000000000000000000000000000000000000000000088\ 7700000000000000000000000000000000000000000000000000000000000088\ 7700000000000000000000000000000000000000000000000000000000000088\ 7700000000000000000000000000000000000000000000000000000000000088\ 7700000000000000000000000000000000000000000000000000000000000088\ 7700000000444444444446666666666666666666666666666666666666666688\ 7700000000411111111136666666666666666666666666666666666666666688\ 7700000000411111111131111111111111111111111111111111111111111188\ 7700000000411111111131111111111111111111111111111111111111111188\ 7700000000411133333331111111111111111111111111111111111111111188\ 7700000000411133333333332444444444444442333333333333333333333388\ 7700000000411133222222224111111111111113222222222222222222222288\ 7700000000411133222222224111111111111113222222222222222222222288\ 7700000000411133222222224111111111111113222222222222222222222288\ 7700000000411133222222224111666666611113222222222222222222222288\ 7700000000433333222222224111622222411113222222222222222222222288\ 7700000000661113222222224111162224111113222222222222222222222288\ 7700000000661113222222224111162224111113222222222222222222222288\ 7700000000661113222222224111116241111113222222222222222222222288\ 7700000000661113222222224111116241111113222222222222222222222288\ 7700000000661113222222224111111411111113222222222222222222222288\ 7700000000661113222222224111111111111113222222222222222222222288\ 7700000000661113222222224111111111111113222222222222222222222288\ 7700000000661113222222224111111111111113222222222222222222222288\ 7700000000661113222222222333333333333332222222222222222222222288\ 7700000000661113444444444444444444444444444444444444444444444488\ 7700000000661111111111111111111111111111111111111111111111111188\ 7700000000661111111111111111111111111111111111111111111111111188\ 7700000000661111111111111111111111111111111111111111111111111188\ 7700000000661111111111111111111111111111111111111111111111111188\ 7700000000661111111111111111111111111111111111111111111111111188\ 7700000000661111144444444444443111666666666666666666666666666688\ 7700000000661111141111111111113111655555555555555555555555555588\ 7700000000661111141111111111113111655555555555555555555555555588\ 7700000000661111141111111111113111655555555665555555555555555588\ 7700000000661111141111111111113111655555556556556555555555555588\ 7700000000661111143333333333333111655555556556565555555555555588\ 7700000000661111111111111111111111655555555665655555555555555588\ 7700000000661111111111111111111111655555555556555555555555555588\ 7700000000661111111111113111111111655555555565665555555555555588\ 7700000000661111111111131311111111655555555656556555555555555588\ 7700000000661111111111113111111111655555556556556555555555555588\ 7700000000661111111111131311111111655555555555665555555565555588\ 7700000000661111111111113111111111655555555555555555555666555588\ 7700000000661111111111131311111111655555555555555555555666555588\ 7700000000661111111111113111111111655555555555555555556666655588\ 7700000000661111111111131311111111655555555555555555556666655588\ 7700000000661111111111113111111111655555555555555555566666665588\ 7700000000661111111111131311111111655555555555555555566666665588\ 7700000000661111111111113111111111655555555555555555555555555588\ 7888888888888888888888888888888888888888888888888888888888888888\ 8888888888888888888888888888888888888888888888888888888888888888\ "; xview-3.2p1.4/clients/props/l10n_props.c100644 1750 1750 40731 5745131564 15426 0ustar mbmb#ifndef lint static char *sccsid = "@(#)l10n_props.c 1.6 91/09/14"; #endif /* * l10n_props.c - Localization property sheet for the OpenWindows Workspace * Properties program. */ #include #ifdef OW_I18N #include #endif #include #include #include #include #include "props.h" #include "l10n_props.h" #ifdef SYSV #define bcopy(a,b,c) memmove(b,a,c) #endif #if defined linux && !defined LC_MESSAGES #define LC_MESSAGES LC_RESPONSE #endif #ifdef OW_I18N #ifdef notdef static wchar_t *l10n_time_convert(); #endif /* * Wide char constant table (this trick necessary until we can get the * ANSI/C compiler. */ static wchar_t _wcs_basic_setting[] = {'b', 'a', 's', 'i', 'c', '_', 's', 'e', 't', 't', 'i', 'n', 'g', 0}; static wchar_t _wcs_input_language[] = {'i', 'n', 'p', 'u', 't', '_', 'l', 'a', 'n', 'g', 'u', 'a', 'g', 'e', 0}; static wchar_t _wcs_display_language[] = {'d', 'i', 's', 'p', 'l', 'a', 'y', '_', 'l', 'a', 'n', 'g', 'u', 'a', 'g', 'e', 0}; static wchar_t _wcs_time_format[] = {'t', 'i', 'm', 'e', '_', 'f', 'o', 'r', 'm', 'a', 't', 0}; static wchar_t _wcs_numeric_format[] = {'n', 'u', 'm', 'e', 'r', 'i', 'c', '_', 'f', 'o', 'r', 'm', 'a', 't', 0}; #define CLASS_NAME_LEN 20 l10n_config_list_t l10n_config_basic_setting[] = { #define BASIC_SETTING 0 {_wcs_basic_setting, "basicLocale", D_string, NULL}, {0}, }; l10n_config_list_t l10n_config_initial_specific_setting[] = { #define INPUT_LANGUAGE 0 {_wcs_input_language, "inputLang", D_string, NULL}, #define DISPLAY_LANGUAGE 1 {_wcs_display_language, "displayLang", D_string, NULL}, #define TIME_FORMAT 2 {_wcs_time_format, "timeFormat", D_string, NULL}, #define NUMERIC_FORMAT 3 {_wcs_numeric_format, "numeric", D_string, NULL}, #define SS_CATEGORY 4 {0} }; #else #define CLASS_NAME_LEN 20 l10n_config_list_t l10n_config_basic_setting[] = { #define BASIC_SETTING 0 {"basic_setting", "basicLocale", D_string, NULL}, {0}, }; l10n_config_list_t l10n_config_initial_specific_setting[] = { #define INPUT_LANGUAGE 0 {"input_language", "inputLang", D_string, NULL}, #define DISPLAY_LANGUAGE 1 {"display_language", "displayLang", D_string, NULL}, #define TIME_FORMAT 2 {"time_format", "timeFormat", D_string, NULL}, #define NUMERIC_FORMAT 3 {"numeric_format", "numeric", D_string, NULL}, #define SS_CATEGORY 4 {0} }; #endif OW_I18N l10n_config_sss_t *l10n_config_sss = NULL; static l10n_config_sss_t *l10n_config_sss_cur = NULL; l10n_config_sss_t *sss, *sss_past; static char lc_messages[LOCALE_NAME_LEN]; static l10n_config_list_item_t *l10n_config_slot2ptr(); static int l10n_ss_setup(); static l10n_set_choice(); Panel_item l10n_bs, l10n_ss, l10n_ss_display_language, l10n_ss_input_language, l10n_ss_time_format, l10n_ss_numeric_format, l10n_ss_il_supplement; static l10n_config_list_item_t * l10n_config_slot2ptr(list, slotno) l10n_config_list_t *list; register int slotno; { register l10n_config_list_item_t *item; for (item = list->items; item != NULL; item = item->next) if (slotno-- <= 0) break; if (item == NULL) printf("internal error slotno#%d is not there\n", slotno); return item; } static int l10n_ss_setup(locale) char *locale; { for (sss = l10n_config_sss; sss != NULL; sss_past = sss, sss = sss->next) if (strcmp(sss->locale, locale) == 0) break; if (sss != NULL) goto display; sss = (l10n_config_sss_t *) calloc(1, sizeof(l10n_config_sss_t)); if (l10n_config_sss == NULL) l10n_config_sss = sss; else sss_past->next = sss; sss->locale = strdup(locale); sss->list = (l10n_config_list_t *) malloc(sizeof(l10n_config_initial_specific_setting)); bcopy(l10n_config_initial_specific_setting, sss->list, sizeof(l10n_config_initial_specific_setting)); /* * Retrieve Specific Settings from configuration files. */ strcpy(lc_messages, setlocale(LC_MESSAGES, NULL)); if (l10n_config_read(lc_messages, locale, sss->list) == -1) { fprintf(stderr, (char *)LOCALIZE("Invalid Specific Settings for Category: Localization.\n")); return (-1); } display: l10n_config_sss_cur = sss; return(1); } static l10n_set_choice(pi, list, xrdb_default) Panel_item pi; l10n_config_list_t *list; int xrdb_default; { register l10n_config_list_item_t *item; register int count; char *texts[MAX_CHOICES]; int i; for (count = 0, item = list->items; item != NULL; item = item->next) { if (count >= MAX_CHOICES) { fprintf(stderr, (char *)LOCALIZE("Maximum # of choices in item is [%d] in Category: Localization\n"), MAX_CHOICES); break; } #ifdef OW_I18N /* Convert mbs to wchar */ if (item->mbs_label == NULL) { item->mbs_label = malloc(wslen(item->label) * sizeof(wchar_t) + 1); wstostr(item->mbs_label, item->label); } #else if (item->mbs_label == NULL) { item->mbs_label = malloc(strlen(item->label) * sizeof(char) + 1); strcpy(item->mbs_label, item->label); } #endif texts[count] = item->mbs_label; count++; } xv_set(pi, PANEL_CHOICE_STRINGS, LOCALIZE("Choice"), 0, 0); for (i=0; i< count; i++) xv_set(pi, PANEL_CHOICE_STRING, i, (char *)texts[i], NULL); if (xrdb_default) xv_set(pi, PANEL_VALUE, list->current_value, PANEL_DEFAULT_VALUE, list->default_value, NULL); else xv_set(pi, PANEL_VALUE, list->default_value, PANEL_DEFAULT_VALUE, list->default_value, NULL); } reset_localization() { l10n_config_list_item_t *l_item = NULL; Panel_item msg_item = 0; Description *id; if (!(id = (Description *)xv_get(l10n_bs, PANEL_CLIENT_DATA))) { printf("Bad client data for Basic Setting\n"); } else { char *value; int i = 0; char *options_copy; char *scanner; value = defaults_get_string(id->name, id->class, id->default_value); options_copy = (char *) strdup(id->misc); scanner = strtok(options_copy, ":"); while (scanner != NULL && strcmp(scanner, value)) { i++; scanner = strtok(NULL, ":"); } if (!scanner) i = 0; free(options_copy); xv_set(id->panel_item, PANEL_VALUE, i, NULL); } l_item = l10n_config_slot2ptr( &l10n_config_basic_setting[BASIC_SETTING], xv_get(l10n_bs, PANEL_VALUE)); if (l_item != NULL) l10n_ss_setup(l_item->value); /* *Reset Specific Settings based on Basic Setting */ l10n_set_choice(l10n_ss_input_language, &sss->list[INPUT_LANGUAGE], TRUE); l10n_set_client_data(l10n_ss_input_language, &sss->list[INPUT_LANGUAGE], msg_item, (Description *)xv_get(l10n_ss_input_language, PANEL_CLIENT_DATA)); l10n_set_choice(l10n_ss_display_language, &sss->list[DISPLAY_LANGUAGE], TRUE); l10n_set_client_data(l10n_ss_display_language, &sss->list[DISPLAY_LANGUAGE], msg_item, (Description *)xv_get(l10n_ss_display_language, PANEL_CLIENT_DATA)); l10n_set_choice(l10n_ss_time_format, &sss->list[TIME_FORMAT], TRUE); l10n_set_client_data(l10n_ss_time_format, &sss->list[TIME_FORMAT], msg_item, (Description *)xv_get(l10n_ss_time_format, PANEL_CLIENT_DATA)); l10n_set_choice(l10n_ss_numeric_format, &sss->list[NUMERIC_FORMAT], TRUE); l10n_set_client_data(l10n_ss_numeric_format, &sss->list[NUMERIC_FORMAT], msg_item, (Description *)xv_get(l10n_ss_numeric_format, PANEL_CLIENT_DATA)); } /* * Notify callback function for `l10n_bs'. */ void l10n_bs_notify(item, value, event) Panel_item item; int value; Event *event; { l10n_config_list_item_t *l_item; Panel_item msg_item = 0; l10n_config_basic_setting[BASIC_SETTING].current_value = value; l_item = l10n_config_slot2ptr( &l10n_config_basic_setting[BASIC_SETTING], value); l10n_ss_setup(l_item->value); /* *Reset Specific Settings based on Basic Setting */ l10n_set_choice(l10n_ss_input_language, &sss->list[INPUT_LANGUAGE], FALSE); l10n_set_client_data(l10n_ss_input_language, &sss->list[INPUT_LANGUAGE], msg_item, (Description *)xv_get(l10n_ss_input_language, PANEL_CLIENT_DATA)); l10n_set_choice(l10n_ss_display_language, &sss->list[DISPLAY_LANGUAGE], FALSE); l10n_set_client_data(l10n_ss_display_language, &sss->list[DISPLAY_LANGUAGE], msg_item, (Description *)xv_get(l10n_ss_display_language, PANEL_CLIENT_DATA)); l10n_set_choice(l10n_ss_time_format, &sss->list[TIME_FORMAT], FALSE); l10n_set_client_data(l10n_ss_time_format, &sss->list[TIME_FORMAT], msg_item, (Description *)xv_get(l10n_ss_time_format, PANEL_CLIENT_DATA)); l10n_set_choice(l10n_ss_numeric_format, &sss->list[NUMERIC_FORMAT], FALSE); l10n_set_client_data(l10n_ss_numeric_format, &sss->list[NUMERIC_FORMAT], msg_item, (Description *)xv_get(l10n_ss_numeric_format, PANEL_CLIENT_DATA)); add_change_bar(item, event); } /* * Notify callback function for `l10n_ss_il_supplement'. */ void l10n_ss_il_supplement_notify(item, event) Panel_item item; Event *event; { } l10n_set_client_data(p_item, l10n_list, msg_item, client_data) Panel_item p_item; l10n_config_list_t *l10n_list; Panel_item msg_item; Description *client_data; { register l10n_config_list_item_t *item; register int slotno; char client_choices[256]; /* LOCALE_NAME_LEN*MAX_CHOICES + MAX_CHOICES */ char choice[LOCALE_NAME_LEN]; /* 20 in l1on_props.h */ char resource_name[DEFAULTS_MAX_VALUE_SIZE]; /* 128 in xview/defaults.h */ for (slotno = 0, item = l10n_list->items; item != NULL; slotno++, item = item->next) { if (slotno) { sprintf(choice, ":%s", item->value); strcat(client_choices, choice); } else sprintf(client_choices, "%s", item->value); } sprintf(resource_name, "*%s", l10n_list->class); if (client_data == NULL) { xv_set(p_item, PANEL_CLIENT_DATA, allocate_desc_struct(resource_name, l10n_list->class, l10n_list->class_type, l10n_list->items->value, client_choices, p_item, msg_item), NULL); } else { client_data->misc = strdup(client_choices); } } void create_localization_panel() { Panel l10n_area; Panel_item msg_item[5]; char locale[LOCALE_NAME_LEN]; int i; register l10n_config_list_t *bs; l10n_config_list_item_t *l_item = NULL; l10n_area = panel_group[LOCALIZATION_PANEL + color]; xv_set(l10n_area, XV_HELP_DATA, "props:LocalizationPanelInfo", NULL); /* * Create Basic Setting */ msg_item[0] = xv_create(l10n_area, PANEL_MESSAGE, PANEL_LABEL_STRING, LOCALIZE(" "), NULL); l10n_bs = xv_create(l10n_area, PANEL_CHOICE, PANEL_LABEL_STRING, LOCALIZE("Basic Setting:"), PANEL_DISPLAY_LEVEL, PANEL_CURRENT, PANEL_LAYOUT, PANEL_HORIZONTAL, PANEL_CHOICE_NCOLS, 1, PANEL_NOTIFY_PROC, l10n_bs_notify, PANEL_CHOICE_STRING, 0, LOCALIZE("Choice"), XV_HELP_DATA, "props:BasicSetting", NULL); bs = l10n_config_basic_setting; strcpy(locale, setlocale(LC_MESSAGES, NULL)); /* * Retrieve basic setting from l10n configuration file. */ if (l10n_config_read(locale, "basic_setting", bs) == -1) { fprintf(stderr, (char *)LOCALIZE("Invalid Basic Setting for Category: Localization.\n")); xv_set(l10n_bs, PANEL_INACTIVE, TRUE, 0); } else { l10n_set_choice(l10n_bs, &bs[BASIC_SETTING], TRUE); l10n_set_client_data(l10n_bs, bs, msg_item[0], NULL); l_item = l10n_config_slot2ptr(&l10n_config_basic_setting[BASIC_SETTING], (int)xv_get(l10n_bs, PANEL_VALUE)); } /* * Create Specific Settings */ /* * Create Specific Setting item */ l10n_ss = xv_create(l10n_area, PANEL_MESSAGE, PANEL_LABEL_STRING, LOCALIZE("Specific Setting:"), PANEL_LABEL_BOLD, TRUE, PANEL_NEXT_ROW, -1, XV_HELP_DATA, "props:SpecificSetting", NULL); { int a,b; a = xv_get(l10n_bs, PANEL_LABEL_WIDTH); b = xv_get(l10n_ss, PANEL_LABEL_WIDTH); i = MAX(a,b) + xv_get(msg_item[0], PANEL_LABEL_WIDTH) + DEFAULT_X_GAP; } xv_set(l10n_bs, PANEL_VALUE_X, i, NULL); xv_set(l10n_ss, PANEL_VALUE_X, i, NULL); /* * Create display language item */ msg_item[1] = xv_create(l10n_area, PANEL_MESSAGE, PANEL_LABEL_STRING, LOCALIZE(" "), PANEL_NEXT_ROW, -1, NULL); l10n_ss_display_language = xv_create(l10n_area, PANEL_CHOICE, PANEL_DISPLAY_LEVEL, PANEL_CURRENT, PANEL_LAYOUT, PANEL_HORIZONTAL, PANEL_CHOICE_NCOLS, 1, PANEL_LABEL_STRING, LOCALIZE("Display Language:"), PANEL_NOTIFY_PROC, add_change_bar, PANEL_CHOICE_STRING, 0, LOCALIZE("Choice"), XV_HELP_DATA, "props:DisplayLanguage", NULL); /* * Create input language item */ msg_item[2] = xv_create(l10n_area, PANEL_MESSAGE, PANEL_LABEL_STRING, LOCALIZE(" "), PANEL_NEXT_ROW, -1, NULL); l10n_ss_input_language = xv_create(l10n_area, PANEL_CHOICE, PANEL_DISPLAY_LEVEL, PANEL_CURRENT, PANEL_LABEL_STRING, LOCALIZE("Input Language:"), PANEL_LAYOUT, PANEL_HORIZONTAL, PANEL_CHOICE_NCOLS, 1, PANEL_NOTIFY_PROC, add_change_bar, PANEL_CHOICE_STRING, 0, LOCALIZE("Choice"), XV_HELP_DATA, "props:InputLanguage", NULL); /* * Create supplementary item */ l10n_ss_il_supplement = xv_create(l10n_area, PANEL_BUTTON, XV_X, 340, PANEL_LABEL_STRING, LOCALIZE("Supplementary..."), /*PANEL_NOTIFY_PROC, l10n_ss_il_supplement_notify,*/ XV_HELP_DATA, "props:SupplementarySetting", NULL); /* "Supplement" is not supported yet. */ xv_set(l10n_ss_il_supplement, PANEL_INACTIVE, TRUE, NULL); /* * Create time format item */ msg_item[3] = xv_create(l10n_area, PANEL_MESSAGE, PANEL_LABEL_STRING, LOCALIZE(" "), PANEL_NEXT_ROW, -1, NULL); l10n_ss_time_format = xv_create(l10n_area, PANEL_CHOICE, PANEL_LABEL_STRING, LOCALIZE("Time Format:"), PANEL_DISPLAY_LEVEL, PANEL_CURRENT, PANEL_LAYOUT, PANEL_HORIZONTAL, PANEL_CHOICE_NCOLS, 1, PANEL_NOTIFY_PROC, add_change_bar, PANEL_CHOICE_STRING, 0, LOCALIZE("Choice"), XV_HELP_DATA, "props:TimeFormat", NULL); /* * Create numeric format item */ msg_item[4] = xv_create(l10n_area, PANEL_MESSAGE, PANEL_LABEL_STRING, LOCALIZE(" "), PANEL_NEXT_ROW, -1, NULL); l10n_ss_numeric_format = xv_create(l10n_area, PANEL_CHOICE, PANEL_LABEL_STRING, LOCALIZE("Numeric Format:"), PANEL_DISPLAY_LEVEL, PANEL_CURRENT, PANEL_LAYOUT, PANEL_HORIZONTAL, PANEL_CHOICE_NCOLS, 1, PANEL_NOTIFY_PROC, add_change_bar, PANEL_CHOICE_STRING, 0, LOCALIZE("Choice"), XV_HELP_DATA, "props:NumericFormat", NULL); /* * Retrieve Specific Settings from configuration file. */ if (l_item == NULL || l10n_ss_setup(l_item->value) == -1) { fprintf(stderr, (char *)LOCALIZE("Invalid Specific Setting for Category: Localization.\n")); xv_set(l10n_ss, PANEL_INACTIVE, TRUE, 0); xv_set(l10n_ss_display_language, PANEL_INACTIVE, TRUE, 0); xv_set(l10n_ss_input_language, PANEL_INACTIVE, TRUE, 0); xv_set(l10n_ss_time_format, PANEL_INACTIVE, TRUE, 0); xv_set(l10n_ss_numeric_format, PANEL_INACTIVE, TRUE, 0); } else { l10n_set_choice(l10n_ss_display_language, &sss->list[DISPLAY_LANGUAGE], TRUE); l10n_set_client_data(l10n_ss_display_language, &sss->list[DISPLAY_LANGUAGE], msg_item[1], NULL); l10n_set_choice(l10n_ss_input_language, &sss->list[INPUT_LANGUAGE], TRUE); l10n_set_client_data(l10n_ss_input_language, &sss->list[INPUT_LANGUAGE], msg_item[2], NULL); l10n_set_choice(l10n_ss_time_format, &sss->list[TIME_FORMAT], TRUE); l10n_set_client_data(l10n_ss_time_format, &sss->list[TIME_FORMAT], msg_item[3], NULL); l10n_set_choice(l10n_ss_numeric_format, &sss->list[NUMERIC_FORMAT], TRUE); l10n_set_client_data(l10n_ss_numeric_format, &sss->list[NUMERIC_FORMAT], msg_item[4], NULL); } { int a,b,c,d; a = xv_get(l10n_ss_display_language, PANEL_LABEL_WIDTH); b = xv_get(l10n_ss_input_language, PANEL_LABEL_WIDTH); c = xv_get(l10n_ss_time_format, PANEL_LABEL_WIDTH); d = xv_get(l10n_ss_numeric_format, PANEL_LABEL_WIDTH); i = MAX(a,b) + xv_get(msg_item[0], PANEL_LABEL_WIDTH) + (3 * DEFAULT_X_GAP); } xv_set(l10n_ss_display_language, PANEL_VALUE_X, i, NULL); xv_set(l10n_ss_input_language, PANEL_VALUE_X, i, NULL); xv_set(l10n_ss_time_format, PANEL_VALUE_X, i, NULL); xv_set(l10n_ss_numeric_format, PANEL_VALUE_X, i, NULL); xv_set(l10n_ss_il_supplement, XV_X, i+175, NULL); window_fit_width(l10n_area); } xview-3.2p1.4/clients/props/l10n_props.h100644 1750 1750 3236 5745131564 15412 0ustar mbmb/* * @(#)l10n_props.h 1.1 90/12/14 */ /* * Maximum number of choices per choice item (choices read from config file) */ #define MAX_CHOICES 12 /* * This should be defined by some of the /usr/include files, but not * (yet?). */ #define LOCALE_NAME_LEN 20 typedef struct _l10n_config_list_item { /* * value is locale name, and locale name has to be in ASCII. */ char *value; #ifdef OW_I18N /* * label could be locale depended any characters. */ wchar_t *label; #else char *label; #endif /* * the following is a copy of "label", this is temporary until * *_WCS attr become available. */ char *mbs_label; struct _l10n_config_list_item *next; } l10n_config_list_item_t; typedef struct l10n_config_list { #ifdef OW_I18N /* * name is should be in ASCII, but from performance point of * view, better to be in the wide char here. */ wchar_t *name; #else char *name; #endif /* * Class name for defaults database(Xrm). Has to be char * (portable character only). */ char *class; /* * Class type for defaults -- D_string, D_boolean, etc. */ Deftype class_type; #ifdef OW_I18N /* * When reading from file, the label will converted by this * function. This is usefull for data like time format which * actually generated by strftime function (file contains * format for strftime, not string itself). */ wchar_t *(*convert_label)(); #endif OW_I18N int default_value; int initial_value; int current_value; l10n_config_list_item_t *items; } l10n_config_list_t; typedef struct _l10n_config_sss { char *locale; l10n_config_list_t *list; struct _l10n_config_sss *next; } l10n_config_sss_t; xview-3.2p1.4/clients/props/l10n_read.c100644 1750 1750 14530 6331437726 15175 0ustar mbmb#ifndef lint static char *sccsid = "@(#)l10n_read.c 1.6 92/03/10"; #endif /* * l10n_read.c - Reader for l10n configuration file(s) */ #include #include #include #ifdef OW_I18N #include #endif #include #include #include "props.h" #include "l10n_props.h" #define MAX_LINE_LENGTH 256 #define NAME_SEPARATOR '=' #define FIELD_SEPARATOR '|' #define ITEM_SEPARATOR ';' #ifndef __linux #ifndef ultrix extern char *malloc(); #endif extern char *calloc(); #endif /* * FIX_ME! This routine must be sophisticated enough to allow more * flexible syntax in file. Such as allow the white space between * each token. */ int l10n_config_read(locale, file_name, a_list) char *locale; char *file_name; l10n_config_list_t *a_list; { #ifdef OW_I18N register wchar_t *p1, *p2; #else register char *p1, *p2; #endif register l10n_config_list_t *list; register l10n_config_list_item_t *item; l10n_config_list_item_t *item_new; register FILE *config_file; int i; #ifdef OW_I18N wchar_t *dft; #else char *dft; #endif char *mbs; int lineno; int slotno; char fullpath[MAXPATHLEN]; #ifdef OW_I18N wchar_t line[MAX_LINE_LENGTH+1]; #else char line[MAX_LINE_LENGTH+1]; #endif int rcode = -1; /* * Find path for localization configuration files under * $OPENWINHOME/share/locale//props */ #if 1 /* martin-2.buck@student.uni-ulm.de */ if (getenv("OPENWINHOME")) { sprintf(fullpath, "%s/share/locale/%s/props/%s", getenv("OPENWINHOME"), locale, file_name); } else { #ifdef OPENWINHOME_DEFAULT sprintf(fullpath, "%s/share/locale/%s/props/%s", OPENWINHOME_DEFAULT, locale, file_name); #else sprintf(fullpath, "%s/share/locale/%s/props/%s", "/usr/openwin", locale, file_name); #endif } #else sprintf(fullpath, "%s/share/locale/%s/props/%s", getenv("OPENWINHOME"), locale, file_name); #endif if ((config_file = fopen(fullpath, "r")) == NULL) { perror(fullpath); goto ret; } /* * Parse configuration file. */ #ifdef OW_I18N for (lineno = 1; fgetws(line, MAX_LINE_LENGTH, config_file) != NULL; lineno++) #else for (lineno = 1; fgets(line, MAX_LINE_LENGTH, config_file) != NULL; lineno++) #endif { p1 = line; if (*p1 == '#' || *p1 == '\n') continue; /* * Pickup the category name. */ #ifdef OW_I18N if ((p2 = wschr(p1, NAME_SEPARATOR)) == NULL) #else if ((p2 = strchr(p1, NAME_SEPARATOR)) == NULL) #endif { fprintf(stderr, (char *)LOCALIZE("Bad format in %s (line#%d): missing name separator '%c')\n"), fullpath, lineno, NAME_SEPARATOR); goto ret; } /* * Looking for the category name in list... */ *p2 = 0; /* Overwrite '=' with string terminator */ for (list = a_list; list->name != NULL; list++) #ifdef OW_I18N if (wscmp(list->name, p1) == 0) #else if (strcmp(list->name, p1) == 0) #endif break; if (list->name == NULL) { #ifdef OW_I18N fprintf(stderr, (char *)LOCALIZE("Bad format in %s (line#%d): Unknown category name [%ws]\n"), fullpath, lineno, p1); #else fprintf(stderr, (char *)LOCALIZE("Bad format in %s (line#%d): Unknown category name [%s]\n"), fullpath, lineno, p1); #endif goto ret; } p1 = ++p2; /* * Picking up the default value. */ #ifdef OW_I18N if ((p2 = wschr(p1, ITEM_SEPARATOR)) == NULL) #else if ((p2 = strchr(p1, ITEM_SEPARATOR)) == NULL) #endif { fprintf(stderr, (char *)LOCALIZE("Bad format in %s (line#%d): no default value\n"), fullpath, lineno); goto ret; } *p2++ = 0; dft = p1; /* Keep it for now */ p1 = p2; /* * Picking up the items. */ item = NULL; for (slotno = 0; *p1 != '\n' && *p1 != 0; slotno++) { /* * Allocate new space. */ item_new = (l10n_config_list_item_t *) calloc(1, sizeof (l10n_config_list_item_t)); if (item == NULL) list->items = item_new; else item->next = item_new; item = item_new; /* * Picking up the "value". */ #ifdef OW_I18N if ((p2 = wschr(p1, FIELD_SEPARATOR)) == NULL) #else if ((p2 = strchr(p1, FIELD_SEPARATOR)) == NULL) #endif { fprintf(stderr, (char *)LOCALIZE("Bad format in %s (line#%d): missing field separator '%c'\n"), fullpath, lineno, FIELD_SEPARATOR); goto ret; } *p2++ = 0; #ifdef OW_I18N item->value = malloc(wslen(p1) * sizeof(wchar_t) + 1); wstostr(item->value, p1); #else item->value = malloc(strlen(p1) * sizeof(char) + 1); strcpy(item->value, p1); #endif #ifdef OW_I18N if (dft != NULL && wscmp(p1, dft) == 0) #else if (dft != NULL && strcmp(p1, dft) == 0) #endif { list->default_value = slotno; dft = NULL; } p1 = p2; /* * Picking up the label. */ #ifdef OW_I18N if ((p2 = wschr(p1, ITEM_SEPARATOR)) != NULL || (p2 = wschr(p1, '\n')) != NULL) #else if ((p2 = strchr(p1, ITEM_SEPARATOR)) != NULL || (p2 = strchr(p1, '\n')) != NULL) #endif { if (*p2 != ITEM_SEPARATOR) slotno = -1; *p2++ = 0; } #ifdef OW_I18N if (list->convert_label != NULL) item->label = (*(list->convert_label)) (item->value, p1); else item->label = wsdup(p1); #else item->label = strdup(p1); #endif if (slotno < 0) break; p1 = p2; } if (dft != NULL) { #ifdef OW_I18N fprintf(stderr, LOCALIZE("Invalid default value in %s (line#%d): [%ws]\n"), fullpath, lineno, dft); #else fprintf(stderr, (char *)LOCALIZE("Invalid default value in %s (line#%d): [%s]\n"), fullpath, lineno, dft); #endif goto ret; } if (defaults_exists(list->class, list->class) == TRUE) { mbs = defaults_get_string(list->class, list->class, ""); for (i = 0, item = list->items; item != NULL; i++, item = item->next) if (strcmp(item->value, mbs) == 0) { list->current_value = i; break; } if (item == NULL) { #ifdef notdef /* * This could happen all the time, if * you switch the "Basic Setting" from * English to Japanese. So, I'm * decided do it silently. */ fprintf(stderr, LOCALIZE("Bad configuration: %s should not be %s for basic setting %s\n"), list->class, mbs, file_name); #endif list->current_value = list->default_value; } } else list->current_value = list->default_value; list->initial_value = list->current_value; } if (lineno > 1) /* Make sure null-file returns failure */ rcode = 0; ret: (void) fclose(config_file); return rcode; } xview-3.2p1.4/clients/props/props.c100644 1750 1750 60335 6331440111 14555 0ustar mbmb#ifndef lint static char sccsid[] = "@(#)props.c 1.64 91/09/14"; #endif #include #include #include #include "props.h" #include #include #include #include #include #include #include #ifdef OW_I18N #include #include #endif /* OW_I18N */ #define MONO_PROPS LOCALIZE("Icons"), LOCALIZE("Menus"), LOCALIZE("Miscellaneous"), LOCALIZE("Mouse Settings"), LOCALIZE("Localization"), NULL #define COLOR_PROPS LOCALIZE("Color"), MONO_PROPS Frame frame; Panel flavor_panel; Panel_item flavor_choice; Panel panel_group[TOTAL_PANELS + 1]; Panel current_panel; Panel_item apply_button[TOTAL_PANELS + 1]; Panel_item reset_button[TOTAL_PANELS + 1]; int showing_factory; static char saved_defaults[20]; static char user_defaults[256]; int color = FALSE; Display *dsp; Description * allocate_desc_struct(name, class, type, default_value, misc, item, msg_item) char *name; char *class; Deftype type; caddr_t default_value; caddr_t misc; Panel_item item; Panel_item msg_item; { Description *new_struct; new_struct = (Description *) malloc(sizeof(Description)); if (new_struct) { new_struct->name = (char *) strdup(name); new_struct->class = (char *) strdup(class); new_struct->type = type; if ((type == D_number) || (type == D_boolean)) new_struct->default_value = default_value; else new_struct->default_value = (char *) strdup(default_value); if ((type == D_string) && misc) new_struct->misc = (caddr_t) strdup(misc); else new_struct->misc = misc; new_struct->change_mark = FALSE; new_struct->change_mark_item = msg_item; new_struct->panel_item = item; } return (new_struct); } Panel_setting add_change_bar(panel_item, event) Panel_item panel_item; Event *event; { Description *id; id = (Description *) xv_get(panel_item, PANEL_CLIENT_DATA); if (!id->change_mark) { xv_set(id->change_mark_item, PANEL_LABEL_STRING, LOCALIZE("|"), NULL); id->change_mark = TRUE; } if ((Panel_item_type) xv_get(panel_item, PANEL_ITEM_CLASS) == PANEL_TEXT_ITEM) return (panel_text_notify(panel_item, event)); return PANEL_NONE; /* return value is ignored */ } static void destroy_change_bars() { int i; Panel_item local_item; Description *id; for (i = color; i < TOTAL_PANELS + color; i++) { PANEL_EACH_ITEM(panel_group[i], local_item) { id = (Description *) xv_get(local_item, PANEL_CLIENT_DATA); #ifdef OW_I18N if (!id && ((Panel_item_type) xv_get(local_item, PANEL_ITEM_CLASS) == PANEL_MESSAGE_ITEM) && (wscmp((wchar_t *)xv_get(local_item, PANEL_LABEL_STRING_WCS), mbstowcsdup(LOCALIZE("|")))) == 0) #else if (!id && ((Panel_item_type) xv_get(local_item, PANEL_ITEM_CLASS) == PANEL_MESSAGE_ITEM) && (strcmp((char *)xv_get(local_item, PANEL_LABEL_STRING), "|") == 0)) #endif /* Remove change bar from message item */ xv_set(local_item, PANEL_LABEL_STRING, LOCALIZE(" "), NULL); else if (id && ((int) id->type < D_nop)) id->change_mark = FALSE; } PANEL_END_EACH } } static void apply_props_proc(panel_item, event) Panel_item panel_item; Event *event; { int i; Panel_item local_item; Description *id; int result; Event ie; if (panel_item) { result = notice_prompt(frame, &ie, NOTICE_MESSAGE_STRINGS, LOCALIZE(" Applying your changes will modify\n your ~/.Xdefaults file. All comments\n in your file will be lost. Do you\n want to do this?"), NULL, NOTICE_BUTTON_YES, LOCALIZE("Yes"), NOTICE_BUTTON_NO, LOCALIZE("No"), NULL); if (result == NOTICE_NO) { xv_set(panel_item, PANEL_NOTIFY_STATUS, XV_ERROR, NULL); return; } } if (color) apply_colors(); for (i = color; i < TOTAL_PANELS + color; i++) { PANEL_EACH_ITEM(panel_group[i], local_item) { if (id = (Description *) xv_get(local_item, PANEL_CLIENT_DATA)) { switch (id->type) { case D_number: if ((Panel_item_type) xv_get(id->panel_item, PANEL_ITEM_CLASS) == PANEL_TEXT_ITEM) defaults_set_integer(id->name, atoi(xv_get(id->panel_item, PANEL_VALUE))); else defaults_set_integer(id->name, xv_get(id->panel_item, PANEL_VALUE)); break; case D_string: if ((Panel_item_type) xv_get(id->panel_item, PANEL_ITEM_CLASS) == PANEL_TEXT_ITEM) defaults_set_string(id->name, xv_get(id->panel_item, PANEL_VALUE)); else { int index; int i; char *options_copy; char *scanner; index = (int) xv_get(id->panel_item, PANEL_VALUE); options_copy = (char *) strdup(id->misc); scanner = (char *) strtok(options_copy, ":"); for (i = 0; i < index; i++) scanner = strtok(NULL, ":"); defaults_set_string(id->name, scanner); free(options_copy); } break; case D_boolean: defaults_set_boolean(id->name, xv_get(id->panel_item, PANEL_VALUE)); break; } } } PANEL_END_EACH; } if (panel_item) { unlink(user_defaults); defaults_store_db(user_defaults); destroy_change_bars(); xv_set(panel_item, PANEL_NOTIFY_STATUS, XV_ERROR, NULL); } } static void set_props_values(panel_item, event) Panel_item panel_item; Event *event; { int i, tmp; Panel_item local_item; Description *id; char number_string[20]; for (i = color; i < TOTAL_PANELS + color; i++) { PANEL_EACH_ITEM(panel_group[i], local_item) { if (!(id = (Description *) xv_get(local_item, PANEL_CLIENT_DATA))) continue; switch (id->type) { case D_number: tmp = defaults_get_integer(id->name, id->class, id->default_value); if ((Panel_item_type) xv_get(id->panel_item, PANEL_ITEM_CLASS) == PANEL_TEXT_ITEM) { sprintf(number_string, "%d", tmp); xv_set(id->panel_item, PANEL_VALUE, number_string, NULL); } else xv_set(id->panel_item, PANEL_VALUE, tmp, NULL); break; case D_string: if ((Panel_item_type) xv_get(id->panel_item, PANEL_ITEM_CLASS) == PANEL_TEXT_ITEM) { xv_set(id->panel_item, PANEL_VALUE, defaults_get_string(id->name, id->class, id->default_value), NULL); } else { char *value; int i = 0; char *options_copy; char *scanner; value = defaults_get_string(id->name, id->class, id->default_value); options_copy = (char *) strdup(id->misc); scanner = strtok(options_copy, ":"); while (scanner != NULL && strcmp(scanner, value)) { i++; scanner = strtok(NULL, ":"); } if (!scanner) i = 0; free(options_copy); xv_set(id->panel_item, PANEL_VALUE, i, NULL); } break; case D_boolean: xv_set(id->panel_item, PANEL_VALUE, defaults_get_boolean(id->name, id->class, id->default_value), NULL); break; default: break; } } PANEL_END_EACH; } } static void reset_props_proc(panel_item, event) Panel_item panel_item; Event *event; { extern Panel_item l10n_bs; defaults_init_db(); defaults_load_db(NULL); defaults_load_db(user_defaults); /* * Localization values for Specific Settings based on * Basic Setting. reset_localization() added since * set_props_values() does not understand this dependency. */ if (!xv_get(l10n_bs, PANEL_INACTIVE)) reset_localization(); set_props_values(panel_item, event); /* Remove all of the change bars that were inserted */ destroy_change_bars(); if (color) reset_colors(); xv_set(panel_item, PANEL_NOTIFY_STATUS, XV_ERROR, NULL); } create_icon_panel() { Panel_item choice_item; Panel_item msg_item; xv_set(panel_group[ICON_PANEL + color], XV_HELP_DATA, "props:IconPanelInfo", NULL); msg_item = xv_create(panel_group[ICON_PANEL + color], PANEL_MESSAGE, PANEL_LABEL_STRING, LOCALIZE(" "), NULL); choice_item = xv_create(panel_group[ICON_PANEL + color], PANEL_CHOICE, PANEL_LABEL_STRING, LOCALIZE("Location:"), PANEL_CHOICE_STRINGS, LOCALIZE("Top"), LOCALIZE("Bottom"), LOCALIZE("Left"), LOCALIZE("Right"), NULL, PANEL_NOTIFY_PROC, add_change_bar, XV_HELP_DATA, "props:IconLocationInfo", NULL); xv_set(choice_item, PANEL_CLIENT_DATA, allocate_desc_struct("OpenWindows.IconLocation", "OpenWindows.IconLocation", D_string, "bottom", "top:bottom:left:right", choice_item, msg_item), NULL); window_fit_width(panel_group[ICON_PANEL + color]); } create_menu_panel() { Panel_item dr_item, mp_item; Panel_item msg_item; int i; xv_set(panel_group[MENU_PANEL + color], XV_HELP_DATA, "props:MenuPanelInfo", NULL); msg_item = xv_create(panel_group[MENU_PANEL + color], PANEL_MESSAGE, PANEL_LABEL_STRING, LOCALIZE(" "), NULL); dr_item = xv_create(panel_group[MENU_PANEL + color], PANEL_TEXT, PANEL_LABEL_STRING, LOCALIZE("Drag-Right distance (pixels):"), PANEL_VALUE_DISPLAY_LENGTH, 2, PANEL_NOTIFY_PROC, add_change_bar, PANEL_NOTIFY_LEVEL, PANEL_ALL, XV_HELP_DATA, "props:MenuDragRightInfo", NULL); xv_set(dr_item, PANEL_CLIENT_DATA, allocate_desc_struct("OpenWindows.DragRightDistance", "OpenWindows.DragRightDistance", D_number, (caddr_t) 100, (caddr_t) 0, dr_item, msg_item), NULL); /* * The PANEL_VALUE of "Selects Default" is 0 == FALSE. The PANEL_VALUE of * "Displays Menu" is 1 == TRUE. So, the name of the boolean resource is * "SelectDisplaysMenu". */ msg_item = xv_create(panel_group[MENU_PANEL + color], PANEL_MESSAGE, PANEL_LABEL_STRING, LOCALIZE(" "), PANEL_NEXT_ROW, -1, NULL); mp_item = xv_create(panel_group[MENU_PANEL + color], PANEL_CHOICE, PANEL_LABEL_STRING, LOCALIZE("SELECT Mouse Press:"), PANEL_CHOICE_STRINGS, LOCALIZE("Selects Default"), LOCALIZE("Displays Menu"), 0, PANEL_NOTIFY_PROC, add_change_bar, XV_HELP_DATA, "props:SelectMousePressInfo", NULL); xv_set(mp_item, PANEL_CLIENT_DATA, allocate_desc_struct("OpenWindows.SelectDisplaysMenu", "OpenWindows.SelectDisplaysMenu", D_boolean, (caddr_t) FALSE, (caddr_t) 0, mp_item, msg_item), NULL); { int a,b; a = xv_get(dr_item, PANEL_LABEL_WIDTH); b = xv_get(mp_item, PANEL_LABEL_WIDTH); i = MAX_VALUE(a,b) + xv_get(msg_item, PANEL_LABEL_WIDTH) + DEFAULT_X_GAP; } xv_set(dr_item, PANEL_VALUE_X, i, NULL); xv_set(mp_item, PANEL_VALUE_X, i, NULL); window_fit_width(panel_group[MENU_PANEL + color]); } create_misc_panel() { Panel misc_panel = panel_group[MISC_PANEL + color]; Panel_item msg_item; Panel_item bp_item, scl_item, ia_item, sbp_item; int i; xv_set(misc_panel, XV_HELP_DATA, "props:MiscPanelInfo", NULL); msg_item = xv_create(misc_panel, PANEL_MESSAGE, PANEL_LABEL_STRING, LOCALIZE(" "), NULL); bp_item = xv_create(misc_panel, PANEL_CHOICE, PANEL_LABEL_STRING, LOCALIZE("Beep:"), PANEL_CHOICE_STRINGS, LOCALIZE("Always"), LOCALIZE("Notices Only"), LOCALIZE("Never"), 0, PANEL_NOTIFY_PROC, add_change_bar, XV_HELP_DATA, "props:Beep", NULL); xv_set(bp_item, PANEL_CLIENT_DATA, allocate_desc_struct("OpenWindows.Beep", "OpenWindows.Beep", D_string, "always", "always:notices:never", bp_item, msg_item), NULL); #ifdef RESCALE_ENTRY msg_item = xv_create(misc_panel, PANEL_MESSAGE, PANEL_LABEL_STRING, LOCALIZE(" "), PANEL_NEXT_ROW, -1, NULL); scl_item = xv_create(misc_panel, PANEL_CHOICE, PANEL_LABEL_STRING, LOCALIZE("Scale at Startup:"), PANEL_CHOICE_STRINGS, LOCALIZE("Small"), LOCALIZE("Medium"), LOCALIZE("Large"), LOCALIZE("Extra Large"), 0, PANEL_NOTIFY_PROC, add_change_bar, XV_HELP_DATA, "props:InitialScaleInfo", NULL); xv_set(scl_item, PANEL_CLIENT_DATA, allocate_desc_struct("Window.Scale", "Window.Scale", D_string, "medium", "small:medium:large:extra_large", scl_item, msg_item), NULL); #endif /* RESCALE_ENTRY */ msg_item = xv_create(misc_panel, PANEL_MESSAGE, PANEL_LABEL_STRING, LOCALIZE(" "), PANEL_NEXT_ROW, -1, NULL); ia_item = xv_create(misc_panel, PANEL_CHOICE, PANEL_LABEL_STRING, LOCALIZE("Set Input Area:"), PANEL_CHOICE_STRINGS, LOCALIZE("Click SELECT"), LOCALIZE("Move Pointer"), 0, PANEL_NOTIFY_PROC, add_change_bar, XV_HELP_DATA, "props:InputFocusInfo", NULL); xv_set(ia_item, PANEL_CLIENT_DATA, allocate_desc_struct("OpenWindows.SetInput", "OpenWindows.SetInput", D_string, "select", "select:followmouse", ia_item, msg_item), NULL); msg_item = xv_create(misc_panel, PANEL_MESSAGE, PANEL_LABEL_STRING, LOCALIZE(" "), PANEL_NEXT_ROW, -1, NULL); sbp_item = xv_create(misc_panel, PANEL_CHOICE, PANEL_LABEL_STRING, LOCALIZE("Scrollbar Placement:"), PANEL_CHOICE_STRINGS, LOCALIZE("Left"), LOCALIZE("Right"), 0, PANEL_NOTIFY_PROC, add_change_bar, XV_HELP_DATA, "props:ScrollbarPlacementInfo", NULL); xv_set(sbp_item, PANEL_CLIENT_DATA, allocate_desc_struct("OpenWindows.ScrollbarPlacement", "OpenWindows.ScrollbarPlacement", D_string, "right", "left:right", sbp_item, msg_item), NULL); /* * tmp_item = xv_create(misc_panel, PANEL_MESSAGE, PANEL_LABEL_STRING, * "SELECT Always Brings", PANEL_LABEL_BOLD, TRUE, NULL); xv_set(tmp_item, * XV_Y, xv_row(misc_panel, 3), XV_X, 225 - (int) xv_get(tmp_item, * XV_WIDTH, NULL), NULL); * * tmp_item = xv_create(misc_panel, PANEL_CHECK_BOX, PANEL_LABEL_STRING, * "Window Forward:", PANEL_NOTIFY_PROC, add_change_bar, PANEL_VALUE_X, * 225, XV_Y, xv_row(misc_panel, 4), XV_HELP_DATA, "props:InputFocusInfo", * NULL); * * xv_set(tmp_item, PANEL_CLIENT_DATA, * allocate_desc_struct("OpenWindows.AutoRaise", D_boolean, (caddr_t) * FALSE, (caddr_t) 0, tmp_item), NULL); */ { int a,b,c,d; a = xv_get(bp_item, PANEL_LABEL_WIDTH); #ifdef RESCALE_ENTRY b = xv_get(scl_item, PANEL_LABEL_WIDTH); #endif c = xv_get(ia_item, PANEL_LABEL_WIDTH); d = xv_get(sbp_item, PANEL_LABEL_WIDTH); #ifdef RESCALE_ENTRY i = MAX_VALUE(a,MAX_VALUE(b,MAX_VALUE(c,d))) + xv_get(msg_item, PANEL_LABEL_WIDTH) + DEFAULT_X_GAP; #else i = MAX_VALUE(a,MAX_VALUE(c,d)) + xv_get(msg_item, PANEL_LABEL_WIDTH) + DEFAULT_X_GAP; #endif } xv_set(bp_item, PANEL_VALUE_X, i, NULL); #ifdef RESCALE_ENTRY xv_set(scl_item, PANEL_VALUE_X, i, NULL); #endif xv_set(ia_item, PANEL_VALUE_X, i, NULL); xv_set(sbp_item, PANEL_VALUE_X, i, NULL); window_fit_width(panel_group[MISC_PANEL + color]); } create_mouse_set_panel() { Panel_item msg_item; Panel mouse_set_panel; Panel_item sbj_item, ppj_item, mct_item; int i; mouse_set_panel = panel_group[MOUSE_SET_PANEL + color]; xv_set(mouse_set_panel, XV_HELP_DATA, "props:MouseSetPanelInfo", NULL); msg_item = xv_create(mouse_set_panel, PANEL_MESSAGE, PANEL_LABEL_STRING, LOCALIZE(" "), NULL); sbj_item = xv_create(mouse_set_panel, PANEL_CHECK_BOX, PANEL_LABEL_STRING, LOCALIZE("Scrollbar Pointer Jumping:"), PANEL_NOTIFY_PROC, add_change_bar, XV_HELP_DATA, "props:ScrollbarPointerJumpInfo", NULL); xv_set(sbj_item, PANEL_CLIENT_DATA, allocate_desc_struct("Scrollbar.JumpCursor", "Scrollbar.JumpCursor", D_boolean, (caddr_t) TRUE, (caddr_t) 0, sbj_item, msg_item), NULL); msg_item = xv_create(mouse_set_panel, PANEL_MESSAGE, PANEL_LABEL_STRING, LOCALIZE(" "), PANEL_NEXT_ROW, -1, NULL); ppj_item = xv_create(mouse_set_panel, PANEL_CHECK_BOX, PANEL_LABEL_STRING, LOCALIZE("Pop-up Pointer Jumping:"), PANEL_NOTIFY_PROC, add_change_bar, XV_HELP_DATA, "props:PopupPointerJumpInfo", NULL); xv_set(ppj_item, PANEL_CLIENT_DATA, allocate_desc_struct("OpenWindows.PopupJumpCursor", "OpenWindows.PopupJumpCursor", D_boolean, (caddr_t) TRUE, (caddr_t) 0, ppj_item, msg_item), NULL); msg_item = xv_create(mouse_set_panel, PANEL_MESSAGE, PANEL_LABEL_STRING, LOCALIZE(" "), PANEL_NEXT_ROW, -1, NULL); mct_item = xv_create(mouse_set_panel, PANEL_SLIDER, PANEL_LABEL_STRING, LOCALIZE("Multi-click Timeout (sec/10) :"), PANEL_MIN_VALUE, 2, PANEL_MAX_VALUE, 10, PANEL_SHOW_RANGE, TRUE, PANEL_NOTIFY_PROC, add_change_bar, XV_HELP_DATA, "props:MultiClickInfo", NULL); xv_set(mct_item, PANEL_CLIENT_DATA, allocate_desc_struct("OpenWindows.MultiClickTimeout", "OpenWindows.MultiClickTimeout", D_number, (caddr_t) 4, (caddr_t) 0, mct_item, msg_item), NULL); { int a,b,c,d; a = xv_get(sbj_item, PANEL_LABEL_WIDTH); b = xv_get(ppj_item, PANEL_LABEL_WIDTH); c = xv_get(mct_item, PANEL_LABEL_WIDTH); i = MAX_VALUE(a,MAX_VALUE(b,c)) + xv_get(msg_item, PANEL_LABEL_WIDTH) + DEFAULT_X_GAP; } xv_set(sbj_item, PANEL_VALUE_X, i, NULL); xv_set(ppj_item, PANEL_VALUE_X, i, NULL); xv_set(mct_item, PANEL_VALUE_X, i, NULL); window_fit_width(mouse_set_panel); } add_buttons() { Font_string_dims apply_size; Font font; int i; Font_string_dims reset_size; int width; #ifdef OW_I18N XFontSet font_set; wchar_t *ws; Display *dpy; XRectangle overall_ink_extents, overall_logical_extents; font = xv_get(flavor_panel, WIN_FONT); dpy = (Display *)xv_get(flavor_panel, XV_DISPLAY); font_set= (XFontSet)xv_get(font, FONT_SET_ID); ws = (wchar_t *)mbstowcsdup(LOCALIZE("Apply")); XwcTextExtents(font_set, ws, wslen(ws), &overall_ink_extents, &overall_logical_extents); apply_size.width = overall_logical_extents.width; ws = (wchar_t *)mbstowcsdup(LOCALIZE("Reset")); XwcTextExtents(font_set, ws, wslen(ws), &overall_ink_extents, &overall_logical_extents); reset_size.width = overall_logical_extents.width; #else font = xv_get(flavor_panel, WIN_FONT); xv_get(font, FONT_STRING_DIMS, LOCALIZE("Apply"), &apply_size); xv_get(font, FONT_STRING_DIMS, LOCALIZE("Reset"), &reset_size); #endif for (i = 0; i < TOTAL_PANELS + color; i++) { width = (int) xv_get(panel_group[i], XV_WIDTH); xv_create(panel_group[i], PANEL_BUTTON, PANEL_LABEL_STRING, LOCALIZE("Apply"), PANEL_NOTIFY_PROC, apply_props_proc, PANEL_NEXT_ROW, -1, XV_X, (width / 4) - (apply_size.width / 2), XV_HELP_DATA, "props:ApplyInfo", NULL); xv_create(panel_group[i], PANEL_BUTTON, PANEL_LABEL_STRING, LOCALIZE("Reset"), PANEL_NOTIFY_PROC, reset_props_proc, XV_X, (3 * width) / 4 - (reset_size.width / 2), XV_HELP_DATA, "props:ResetInfo", NULL); window_fit(panel_group[i]); } } create_panels() { int i; for (i = 0; i < TOTAL_PANELS + color; i++) panel_group[i] = xv_create(frame, PANEL, WIN_BORDER, TRUE, WIN_BELOW, flavor_panel, XV_X, 0, #ifdef OW_I18N WIN_USE_IM, FALSE, #endif XV_SHOW, FALSE, NULL); if (color) create_color_panel(); create_icon_panel(); create_menu_panel(); create_misc_panel(); create_mouse_set_panel(); create_localization_panel(); xv_set(panel_group[0], XV_SHOW, TRUE, NULL); } /* ARGSUSED */ factory_choice(panel_item, event) Panel_item panel_item; Event *event; { int factory = !(int) xv_get(panel_item, PANEL_VALUE); if (factory == showing_factory) return; if (factory) { if (!saved_defaults[0]) { strcpy(saved_defaults, "/tmp/.XtempXXXXXX"); mktemp(saved_defaults); } else unlink(saved_defaults); apply_props_proc(NULL, NULL); defaults_store_db(saved_defaults); defaults_init_db(); defaults_load_db(NULL); showing_factory = TRUE; } else { defaults_load_db(saved_defaults); showing_factory = FALSE; } set_props_values(NULL, NULL); } /* ARGSUSED */ show_props_category(panel_item, which_panel, event) Panel_item panel_item; int which_panel; Event *event; { int height; int width; if (panel_group[which_panel] == current_panel) return; /* Show requested panel */ xv_set(current_panel, XV_SHOW, FALSE, NULL); current_panel = panel_group[which_panel]; #ifndef XV_SHOW_FIXED height = (int) xv_get(current_panel, XV_HEIGHT); width = (int) xv_get(current_panel, XV_WIDTH); #endif xv_set(current_panel, XV_SHOW, TRUE, NULL); #ifndef XV_SHOW_FIXED xv_set(current_panel, XV_HEIGHT, height, XV_WIDTH, width, NULL); #endif /* Resize frame around new panel */ width = (int) xv_get(current_panel, XV_WIDTH) + 2 * BORDER_WIDTH; xv_set(flavor_panel, XV_WIDTH, width, NULL); height = (int) xv_get(flavor_panel, XV_HEIGHT) + xv_get(current_panel, XV_HEIGHT) + 2 * BORDER_WIDTH; xv_set(frame, XV_HEIGHT, height, XV_WIDTH, width, NULL); } Notify_value frame_unmap_proc(frame, event, arg, type) Frame frame; Event *event; Notify_arg arg; Notify_event_type type; { if (event_action(event) == ACTION_CLOSE) { exit(0); } return (notify_next_event_func(frame, event, arg, type)); } main(argc, argv) int argc; char *argv[]; { int visual_class; int depth; char *openwin_dir; char localepath[MAXPATHLEN]; Cms cms; xv_init(XV_USE_LOCALE, TRUE, XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); if ((openwin_dir = (char *)getenv("OPENWINHOME")) == NULL) { #ifdef OPENWINHOME_DEFAULT /* martin-2.buck@student.uni-ulm.de */ openwin_dir = OPENWINHOME_DEFAULT; #else fprintf(stderr, LOCALIZE("%s: $OPENWINHOME has not been set\n"), argv[0]); #endif } #ifndef OPENWINHOME_DEFAULT else #endif { strcpy(localepath, openwin_dir); strcat(localepath, "/lib/locale/"); bindtextdomain("props", localepath); } frame = xv_create(NULL, FRAME_CMD, XV_VISUAL_CLASS, PseudoColor, XV_DEPTH, 8, WIN_INHERIT_COLORS, TRUE, XV_X, 0, XV_Y, 0, XV_LABEL, LOCALIZE("Workspace Properties"), FRAME_NO_CONFIRM, TRUE, FRAME_CMD_PUSHPIN_IN, TRUE, #ifdef OW_I18N WIN_USE_IM, FALSE, #endif NULL); dsp = (Display *) xv_get(frame, XV_DISPLAY); visual_class = (int)xv_get(frame, XV_VISUAL_CLASS); depth = (int)xv_get(frame, XV_DEPTH); /* Note: We should probably handle a 4-bit color visual with a * smaller color palette, but we don't have the time to * do this for V3. Therefore we are treating a 4 bit visual * like monochrome, and thus shut off the color palette. */ color = ((depth >= 8) && (visual_class % 2)); sprintf(user_defaults, "%s/.Xdefaults", getenv("HOME")); if ( color ) { cms = create_palette(); xv_set(frame, WIN_CMS, cms, NULL); } /* * Might not get the colors set up right, so don't use FRAME_CMD_PANEL. * We must create a new one. */ xv_set((Panel)xv_get(frame, FRAME_CMD_PANEL) , XV_SHOW, FALSE, 0); flavor_panel = xv_create(frame, PANEL, XV_X, 0, XV_Y, 0, #ifdef OW_I18N WIN_USE_IM, FALSE, #endif NULL); notify_interpose_event_func(frame, frame_unmap_proc, NOTIFY_SAFE); flavor_choice = xv_create(flavor_panel, PANEL_CHOICE, PANEL_DISPLAY_LEVEL, PANEL_CURRENT, PANEL_LAYOUT, PANEL_HORIZONTAL, PANEL_CHOICE_NCOLS, 1, PANEL_LABEL_STRING, LOCALIZE("Category:"), PANEL_NOTIFY_PROC, show_props_category, XV_HELP_DATA, "props:CategoryInfo", NULL); if (color) xv_set(flavor_choice, PANEL_CHOICE_STRINGS, COLOR_PROPS, NULL); else xv_set(flavor_choice, PANEL_CHOICE_STRINGS, MONO_PROPS, NULL); window_fit_height(flavor_panel); create_panels(); current_panel = panel_group[0]; set_props_values(NULL, NULL); add_buttons(); xv_set(flavor_panel, XV_WIDTH, xv_get(current_panel, XV_WIDTH) + 2 * BORDER_WIDTH, NULL); window_fit(frame); xv_set(frame, XV_SHOW, TRUE, NULL); xv_main_loop(frame); unlink(saved_defaults); } xview-3.2p1.4/clients/props/props.h100644 1750 1750 2450 5745131566 14557 0ustar mbmb/* * @(#)props.h 1.5 91/09/14 */ /* * props.h - declarations for external interfaces to the props program. */ #include #include #include #define BORDER_WIDTH 1 #define COLOR_PANEL 0 #define ICON_PANEL 0 #define MENU_PANEL 1 #define MISC_PANEL 2 #define MOUSE_SET_PANEL 3 #define LOCALIZATION_PANEL 4 #define TOTAL_PANELS 5 /* or 6 if color terminal */ typedef enum { D_number, D_string, D_boolean, D_nop } Deftype; typedef struct { char *name; char *class; Deftype type; caddr_t default_value; caddr_t misc; int change_mark; /* TRUE or FALSE */ Panel_message_item change_mark_item; Panel_item panel_item; } Description; extern Frame frame; extern Panel flavor_panel; extern Panel_item flavor_choice; extern Panel panel_group[TOTAL_PANELS + 1]; extern Panel current_panel; extern Panel_item apply_button[TOTAL_PANELS + 1]; extern Panel_item reset_button[TOTAL_PANELS + 1]; extern int showing_factory; extern Display *dsp; extern char *strtok(); extern int color; extern Description *allocate_desc_struct(); extern Panel_setting add_change_bar(); #define LOCALIZE(s) dgettext("props",s) #define MAX_VALUE(x,y) (((x) > (y)) ? (x) : (y)) #define DEFAULT_X_GAP 20 xview-3.2p1.4/clients/props/props.info100644 1750 1750 30554 5745131566 15311 0ustar mbmb################################################## # props.info 3 July 1991, rev'd by James Brook # new helpopen path 11 July 1991 # # This help text is for the workspace properties. # # Open Windows Version 3 FCS # # @(#)props.info 1.16 91/09/14 # ################################################## #######################50######################### :CategoryInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Category Press MENU to choose a category and display the Workspace properties you can change: Color Workspace and window color (for color systems only) Icons Location of icons on Workspace Menus Drag-Right distance for pointer SELECT Mouse Press Miscellaneous Beep Set Input Area Scrollbar Placement Mouse Scrollbar Pointer Jumping Pop-up Pointer Jumping Multi-click Timeout Localization Language- and culture-related settings # :ApplyInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Apply Click SELECT on Apply to make the new settings take effect and dismiss the Properties window. Some properties take effect immediately, while others take effect the next time you start an application. # #######################50######################### :ResetInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Reset Click SELECT on Reset to return the properties to their original settings and remove any change bars. # ######################################## # Color Category ###################################### # :ColorPanelInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Color Category Choose options in this window to change the color of the Workspace or windows. You can preview your color choices before applying them. Click SELECT on Apply to apply your changes. #######################50######################### :ColorChoiceInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Workspace/Windows Click SELECT on Workspace to edit Workspace color. Click SELECT on Windows to edit Window color. #######################50######################### :CustomColorInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Custom/Palette Click SELECT on Custom to display the Color properties window. This is where you create a custom color, using the Hue, Saturation, and Brightness sliders. Click SELECT on Palette to return to the color palette. :PaletteInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Palette Grid This grid contains a variety of predetermined colors that are ideal for windows and the Workspace. There are eight hues, each with four saturations, and two brightness levels. On the right are eight levels of gray scale. Click SELECT on a color to choose it. When you choose a a new color for Windows, look in the upper left corner of the pane to see a preview. #######################50######################### :AppImageInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Preview Area This is the preview of your current color selections. #######################50######################### :HueSlider:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Hue Slider Press SELECT and drag the slider to set the hue. :SaturationSlider:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Saturation Slider Press SELECT and drag the slider to set the saturation. Moving this slider all the way to the left makes all colors look gray and effectively disables the Hue slider. :BrightnessSlider:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Brightness Slider Press SELECT and drag the slider to set the saturation. Moving this slider all the way to the left turns all colors black and effectively disables the Hue and Saturation sliders. #######################50######################### # ####################################### # Icons Category ###################################### # :IconPanelInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Icon Category Choose options in this window to change the location of icons on the Workspace. #######################50######################### :IconLocationInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Icon Location Choose where on the screen new icons will be displayed: Top First icon appears in the upper left corner. Subsequent icons appear to the right of the first icon. Bottom First icon appears in the lower left corner. Subsequent icons appear to the right of the first icon. Left First icon appears in the upper left corner. Subsequent icons appear below the first icon. Right First icon appears in the upper right corner. Subsequent icons appear below the first icon. Click SELECT on Apply to apply the location setting. When you start a new application, its icon will use the new location setting. Icons already displayed will not change location. #######################50######################### # ####################################### # Menus Category ###################################### # #######################50######################### :MenuPanelInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Menus Category Choose options in this window to change settings affecting how you choose from menus. :MenuDragRightInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Drag-Right distance (pixels): Specifies how far you must drag the pointer before it displays a submenu. The smaller the number, the faster the submenu appears. Enter the number of pixels you want to drag the pointer before it displays the submenu. Default = 5 pixels This setting takes effect as soon as you click SELECT on Apply. # #######################50######################### :SelectMousePressInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook SELECT Mouse Press: Determines what happens when you use the SELECT mouse button on a menu button. Selects Default Shows the default setting for the menu when you press SELECT. Executes the default when you release SELECT. Displays Menu Displays the menu. Click SELECT on Apply to apply the setting. New applications will use the new setting. The setting will not change for applications that are already running. # #######################50######################### ####################################### # Miscellaneous ###################################### # :MiscPanelInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Miscellaneous Category Choose options in this window to change settings for beep, input area, and scrollbar placement. # #######################50######################### :Beep:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Beep: Choose when your system will beep: Always Beeps for all applications. Notices Only Only beeps when a Notice is displayed. Never Never beeps. Click SELECT on Apply to apply the setting. New applications will use the new setting. The setting will not change for applications that are already running. #######################50######################### # :InputFocusInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Set Input Area: Choose how you activate the input caret to type in a window or text field: Click SELECT Move the pointer into a window and click SELECT. Move Pointer Move the pointer into a window. This setting takes effect as soon as you click SELECT on Apply. With either setting, you can set a new insert point by clicking SELECT in a text field or pane. # #######################50######################### :ScrollbarPlacementInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Scrollbar Placement: Choose where the scrollbar is placed in a pane: Left or Right. This setting applies to all applications on the Workspace. Click SELECT on Apply to apply the setting. New applications will use the new setting. The setting will not change for applications that are already running. # ####################################### # Mouse Settings ###################################### # #######################50######################### :MouseSetPanelInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Mouse Settings Category Choose options in this window to change mouse-related settings. # #######################50######################### :ScrollbarPointerJumpInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Scrollbar Pointer Jumping: Sets the pointer so it follows the moves of the scrollbar elevator. Click SELECT on the check box to set the pointer. To undo the setting, click on the check box again. Click SELECT on Apply to apply the setting. New applications will use the new setting. The setting will not change for applications that are already running. # #######################50######################### :PopupPointerJumpInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Pop-up Pointer Jumping: Sets the pointer so it jumps into a pop-up window when you open it. Click SELECT on the check box to set the pointer. To undo the setting, click on the check box again. Click SELECT on Apply to apply the setting. New applications will use the new setting. The setting will not change for applications that are already running. # #######################50######################### :MultiClickInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Multi-click Timeout (sec/10): Specifies in 10ths of a second the length of time between clicks for multi-click operations. If the time between clicks is longer than the number in the setting, each click is treated as a separate event. For example, with a setting of 4/10, if you double-click on a icon with clicks that are 5/10 of a second apart, you select the icon instead of opening it. You can type a number from 2 to 10 or use the slider to set the time. Click SELECT on Apply to apply the setting. New applications will use the new setting. The setting will not change for applications that are already running. # ####################################### # Localization Settings ###################################### # #######################50######################### :LocalizationPanelInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Localization Category In this window, you can change language- and culture-related Workspace properties. Changes will apply when you start a new application, and will not affect applications that are already running. # #######################50######################### :BasicSetting:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Basic Setting: Press MENU on the menu button to choose the language or culture area to be used in the Workspace. Choice of a basic setting determines the choices and defaults available for Specific Setting entries. # #######################50######################### :SpecificSetting:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Specific Setting: These entries are essential to each localized environment. They include Display Language, Input Language, Time Format, and Numeric Format settings. Choices and defaults for Specific Setting entries vary according to the Basic Setting. # #######################50######################### :DisplayLanguage:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Display Language: Specifies the language in which messages, labels, menu items, titles, and help text are shown. Press MENU on the menu button to choose a new setting. New applications will use the new setting. The setting will not change for applications that are already running. # :InputLanguage:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Input Language: Specifies the language used for input. Press MENU on the menu button to choose a new setting. New applications will use the new setting. The setting will not change for applications that are already running. # #######################50######################### :TimeFormat:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Time Format: Specifies the format for time and date display. Press MENU on the menu button to choose a new setting. New applications will use the new setting. The setting will not change for applications that are already running. # :NumericFormat:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Numeric Format: Specifies the format for numeric display. Press MENU on the menu button to choose a new setting. New applications will use the new setting. The setting will not change for applications that are already running. # :SupplementarySetting:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Supplementary This setting is not currently available. xview-3.2p1.4/fonts/ 40755 1750 1750 0 6352310723 11457 5ustar mbmbxview-3.2p1.4/fonts/bdf/ 40755 1750 1750 0 6303177047 12220 5ustar mbmbxview-3.2p1.4/fonts/bdf/75dpi/ 40755 1750 1750 0 6303177047 13150 5ustar mbmbxview-3.2p1.4/fonts/bdf/75dpi/Imakefile100644 1750 1750 7615 5413747460 15072 0ustar mbmb#include /**/##################################################################### /**/# @(#)Imakefile 1.10 28 Jun 1993 SMI /**/# Imakefile for text fonts. SRCS = \ luBIS08.bdf luBIS10.bdf luBIS12.bdf luBIS14.bdf luBIS18.bdf \ luBIS24.bdf luBS08.bdf luBS10.bdf luBS12.bdf luBS14.bdf \ luBS18.bdf luBS24.bdf luIS08.bdf luIS10.bdf luIS12.bdf \ luIS14.bdf luIS18.bdf luIS24.bdf luRS08.bdf luRS10.bdf \ luRS12.bdf luRS14.bdf luRS18.bdf luRS24.bdf lubB08.bdf \ lubB10.bdf lubB12.bdf lubB14.bdf lubB18.bdf lubB24.bdf \ lubBI08.bdf lubBI10.bdf lubBI12.bdf lubBI14.bdf lubBI18.bdf \ lubBI24.bdf lubI08.bdf lubI10.bdf lubI12.bdf lubI14.bdf \ lubI18.bdf lubI24.bdf lubR08.bdf lubR10.bdf lubR12.bdf \ lubR14.bdf lubR18.bdf lubR24.bdf lutBS08.bdf lutBS10.bdf \ lutBS12.bdf lutBS14.bdf lutBS18.bdf lutBS24.bdf lutRS08.bdf \ lutRS10.bdf lutRS12.bdf lutRS14.bdf lutRS18.bdf lutRS24.bdf \ luBIS19.bdf luBS19.bdf luIS19.bdf luRS19.bdf lubB19.bdf \ lubBI19.bdf lubI19.bdf lubR19.bdf lutBS19.bdf lutRS19.bdf OBJS = \ FontObj(luBIS08) FontObj(luBIS10) FontObj(luBIS12) FontObj(luBIS14) \ FontObj(luBIS18) FontObj(luBIS24) FontObj(luBS08) FontObj(luBS10) \ FontObj(luBS12) FontObj(luBS14) FontObj(luBS18) FontObj(luBS24) \ FontObj(luIS08) FontObj(luIS10) FontObj(luIS12) FontObj(luIS14) \ FontObj(luIS18) FontObj(luIS24) FontObj(luRS08) FontObj(luRS10) \ FontObj(luRS12) FontObj(luRS14) FontObj(luRS18) FontObj(luRS24) \ FontObj(lubB08) FontObj(lubB10) FontObj(lubB12) FontObj(lubB14) \ FontObj(lubB18) FontObj(lubB24) FontObj(lubBI08) FontObj(lubBI10) \ FontObj(lubBI12) FontObj(lubBI14) FontObj(lubBI18) FontObj(lubBI24) \ FontObj(lubI08) FontObj(lubI10) FontObj(lubI12) FontObj(lubI14) \ FontObj(lubI18) FontObj(lubI24) FontObj(lubR08) FontObj(lubR10) \ FontObj(lubR12) FontObj(lubR14) FontObj(lubR18) FontObj(lubR24) \ FontObj(lutBS08) FontObj(lutBS10) FontObj(lutBS12) FontObj(lutBS14) \ FontObj(lutBS18) FontObj(lutBS24) FontObj(lutRS08) FontObj(lutRS10) \ FontObj(lutRS12) FontObj(lutRS14) FontObj(lutRS18) FontObj(lutRS24) \ FontObj(luBIS19) FontObj(luBS19) FontObj(luIS19) FontObj(luRS19) \ FontObj(lubB19) FontObj(lubBI19) FontObj(lubI19) FontObj(lubR19) \ FontObj(lutBS19) FontObj(lutRS19) ALLFILES = $(SRCS) fonts.alias MakeFonts() FontTarget(luBIS08) FontTarget(luBIS10) FontTarget(luBIS12) FontTarget(luBIS14) FontTarget(luBIS18) FontTarget(luBIS24) FontTarget(luBS08) FontTarget(luBS10) FontTarget(luBS12) FontTarget(luBS14) FontTarget(luBS18) FontTarget(luBS24) FontTarget(luIS08) FontTarget(luIS10) FontTarget(luIS12) FontTarget(luIS14) FontTarget(luIS18) FontTarget(luIS24) FontTarget(luRS08) FontTarget(luRS10) FontTarget(luRS12) FontTarget(luRS14) FontTarget(luRS18) FontTarget(luRS24) FontTarget(lubB08) FontTarget(lubB10) FontTarget(lubB12) FontTarget(lubB14) FontTarget(lubB18) FontTarget(lubB24) FontTarget(lubBI08) FontTarget(lubBI10) FontTarget(lubBI12) FontTarget(lubBI14) FontTarget(lubBI18) FontTarget(lubBI24) FontTarget(lubI08) FontTarget(lubI10) FontTarget(lubI12) FontTarget(lubI14) FontTarget(lubI18) FontTarget(lubI24) FontTarget(lubR08) FontTarget(lubR10) FontTarget(lubR12) FontTarget(lubR14) FontTarget(lubR18) FontTarget(lubR24) FontTarget(lutBS08) FontTarget(lutBS10) FontTarget(lutBS12) FontTarget(lutBS14) FontTarget(lutBS18) FontTarget(lutBS24) FontTarget(lutRS08) FontTarget(lutRS10) FontTarget(lutRS12) FontTarget(lutRS14) FontTarget(lutRS18) FontTarget(lutRS24) FontTarget(luBIS19) FontTarget(luBS19) FontTarget(luIS19) FontTarget(luRS19) FontTarget(lubB19) FontTarget(lubBI19) FontTarget(lubI19) FontTarget(lubR19) FontTarget(lutBS19) FontTarget(lutRS19) /**/##################################################################### /**/# In order to install these fonts, InstallOpenLookFonts must be /**/# YES in either your site.def or XView.cf file. InstallFonts($(TEXTFONT_FONTINSTDIR)/ol75dpi) InstallFontAliases($(TEXTFONT_FONTINSTDIR)/ol75dpi) PopulateSCCSTree(h,$(ALLFILES)) depend:: clean:: xview-3.2p1.4/fonts/bdf/75dpi/fonts.alias100644 1750 1750 7001 5413747460 15412 0ustar mbmb lucidasans-bolditalic-8 -b&h-lucida-bold-i-normal-sans-8-80-75-75-p-49-iso8859-1 lucidasans-bolditalic-10 -b&h-lucida-bold-i-normal-sans-10-100-75-75-p-67-iso8859-1 lucidasans-bolditalic-12 -b&h-lucida-bold-i-normal-sans-12-120-75-75-p-79-iso8859-1 lucidasans-bolditalic-14 -b&h-lucida-bold-i-normal-sans-14-140-75-75-p-92-iso8859-1 lucidasans-bolditalic-18 -b&h-lucida-bold-i-normal-sans-18-180-75-75-p-119-iso8859-1 lucidasans-bolditalic-19 -b&h-lucida-bold-i-normal-sans-19-190-75-75-P-122-iso8859-1 lucidasans-bolditalic-24 -b&h-lucida-bold-i-normal-sans-24-240-75-75-p-151-iso8859-1 lucidasans-bold-8 -b&h-lucida-bold-r-normal-sans-8-80-75-75-p-50-iso8859-1 lucidasans-bold-10 -b&h-lucida-bold-r-normal-sans-10-100-75-75-p-66-iso8859-1 lucidasans-bold-12 -b&h-lucida-bold-r-normal-sans-12-120-75-75-p-79-iso8859-1 lucidasans-bold-14 -b&h-lucida-bold-r-normal-sans-14-140-75-75-p-92-iso8859-1 lucidasans-bold-18 -b&h-lucida-bold-r-normal-sans-18-180-75-75-p-120-iso8859-1 lucidasans-bold-19 -b&h-lucida-bold-r-normal-sans-19-190-75-75-P-122-ISO8859-1 lucidasans-bold-24 -b&h-lucida-bold-r-normal-sans-24-240-75-75-p-152-iso8859-1 lucidasans-italic-8 -b&h-lucida-medium-i-normal-sans-8-80-75-75-p-45-iso8859-1 lucidasans-italic-10 -b&h-lucida-medium-i-normal-sans-10-100-75-75-p-59-iso8859-1 lucidasans-italic-12 -b&h-lucida-medium-i-normal-sans-12-120-75-75-p-71-iso8859-1 lucidasans-italic-14 -b&h-lucida-medium-i-normal-sans-14-140-75-75-p-82-iso8859-1 lucidasans-italic-18 -b&h-lucida-medium-i-normal-sans-18-180-75-75-p-105-iso8859-1 lucidasans-italic-19 -b&h-lucida-medium-i-normal-sans-19-190-75-75-P-108-iso8859-1 lucidasans-italic-24 -b&h-lucida-medium-i-normal-sans-24-240-75-75-p-136-iso8859-1 lucidasans-8 -b&h-lucida-medium-r-normal-sans-8-80-75-75-p-45-iso8859-1 lucidasans-10 -b&h-lucida-medium-r-normal-sans-10-100-75-75-p-58-iso8859-1 lucidasans-12 -b&h-lucida-medium-r-normal-sans-12-120-75-75-p-71-iso8859-1 lucidasans-14 -b&h-lucida-medium-r-normal-sans-14-140-75-75-p-81-iso8859-1 lucidasans-18 -b&h-lucida-medium-r-normal-sans-18-180-75-75-p-106-iso8859-1 lucidasans-19 -b&h-lucida-medium-r-normal-sans-19-190-75-75-P-108-iso8859-1 lucidasans-24 -b&h-lucida-medium-r-normal-sans-24-240-75-75-p-136-iso8859-1 lucidasanstypewriter-bold-8 -b&h-lucidatypewriter-bold-r-normal-sans-8-80-75-75-m-50-iso8859-1 lucidasanstypewriter-bold-10 -b&h-lucidatypewriter-bold-r-normal-sans-10-100-75-75-m-60-iso8859-1 lucidasanstypewriter-bold-12 -b&h-lucidatypewriter-bold-r-normal-sans-12-120-75-75-m-70-iso8859-1 lucidasanstypewriter-bold-14 -b&h-lucidatypewriter-bold-r-normal-sans-14-140-75-75-m-90-iso8859-1 lucidasanstypewriter-bold-18 -b&h-lucidatypewriter-bold-r-normal-sans-18-180-75-75-m-110-iso8859-1 lucidasanstypewriter-bold-19 -b&h-lucidatypewriter-bold-r-normal-sans-19-190-75-75-m-110-iso8859-1 lucidasanstypewriter-bold-24 -b&h-lucidatypewriter-bold-r-normal-sans-24-240-75-75-m-140-iso8859-1 lucidasanstypewriter-8 -b&h-lucidatypewriter-medium-r-normal-sans-8-80-75-75-m-50-iso8859-1 lucidasanstypewriter-10 -b&h-lucidatypewriter-medium-r-normal-sans-10-100-75-75-m-60-iso8859-1 lucidasanstypewriter-12 -b&h-lucidatypewriter-medium-r-normal-sans-12-120-75-75-m-70-iso8859-1 lucidasanstypewriter-14 -b&h-lucidatypewriter-medium-r-normal-sans-14-140-75-75-m-90-iso8859-1 lucidasanstypewriter-18 -b&h-lucidatypewriter-medium-r-normal-sans-18-180-75-75-m-110-iso8859-1 lucidasanstypewriter-19 -b&h-lucidatypewriter-medium-r-normal-sans-19-190-75-75-m-110-iso8859-1 lucidasanstypewriter-24 -b&h-lucidatypewriter-medium-r-normal-sans-24-240-75-75-m-140-iso8859-1 xview-3.2p1.4/fonts/bdf/75dpi/luBIS08.bdf100644 1750 1750 54073 5413747461 15105 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Bold-I-Normal-Sans-8-80-75-75-P-49-ISO8859-1 SIZE 8 72 72 FONTBOUNDINGBOX 17 10 -6 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Bold" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 8 POINT_SIZE 80 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 49 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 7 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 3 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 0 0 BITMAP 60 60 40 40 00 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 4 0 BBX 4 2 1 4 BITMAP 90 90 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 38 28 F8 50 F8 E0 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 5 0 BBX 5 9 1 -2 BITMAP 10 38 60 60 30 30 F0 40 40 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 1 0 BITMAP 46 A8 B0 E0 46 8E ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 38 28 74 94 98 78 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 2 0 BBX 2 3 1 3 BITMAP C0 C0 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 1 -2 BITMAP 20 40 C0 80 80 80 80 80 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 0 -2 BITMAP 40 20 20 20 60 40 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 4 0 BBX 3 3 1 3 BITMAP 40 A0 E0 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 0 BITMAP 10 10 F8 40 40 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 0 -2 BITMAP C0 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 5 0 BBX 5 1 1 2 BITMAP F8 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 3 0 BBX 2 1 1 0 BITMAP C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 5 0 BBX 6 8 0 -2 BITMAP 04 08 10 10 20 20 40 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 70 50 90 90 B0 60 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 2 0 BITMAP E0 60 40 40 C0 C0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 78 08 18 20 40 F0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 78 08 70 10 18 F0 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 18 38 50 F8 10 30 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 78 40 60 10 10 E0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 38 40 F0 88 90 70 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP F8 10 20 60 40 80 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 38 48 70 D8 88 F0 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 70 48 88 78 10 E0 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 1 0 BITMAP C0 00 00 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 0 -2 BITMAP 60 00 00 C0 40 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 08 30 C0 60 10 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 5 0 BBX 5 3 1 1 BITMAP F8 00 F8 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 5 0 BBX 6 5 1 0 BITMAP 20 38 04 78 80 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 1 0 BITMAP F0 10 20 C0 00 C0 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 0 BITMAP 38 C8 F8 B8 F8 70 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 18 28 28 3C 4C 8C ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 78 48 70 D0 C8 F0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP 3C 40 80 80 C0 78 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 7C 64 44 C4 C8 F0 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 78 40 70 C0 C0 F0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 78 40 40 F0 C0 C0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP 3C 40 80 88 98 78 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 6C 4C 7C C8 C8 D8 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 1 0 BITMAP 60 60 40 40 C0 C0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 4 0 BBX 5 8 0 -2 BITMAP 18 18 18 10 30 30 30 E0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 58 50 60 E0 D0 98 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 40 40 40 C0 C0 F0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 8 0 BBX 7 6 1 0 BITMAP 66 66 6E F4 B4 A4 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP 44 64 6C D8 98 88 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 0 BITMAP 38 48 88 88 98 70 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 78 48 48 F0 C0 C0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 -2 BITMAP 38 48 88 88 98 70 18 0C ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 78 48 50 E0 D0 90 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 38 40 60 10 18 F0 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP FC 30 20 20 60 60 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP 4C 4C C8 88 98 70 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP C4 C8 D8 50 60 60 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 8 0 BBX 7 6 2 0 BITMAP 96 B4 94 98 D0 90 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 -1 BITMAP 6C 28 30 30 50 58 80 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 98 50 60 60 40 40 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 5 0 BBX 6 6 0 0 BITMAP 7C 08 10 20 40 F8 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 3 0 BBX 4 8 0 -2 BITMAP 30 60 60 40 40 40 C0 E0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 5 0 BBX 3 8 1 -2 BITMAP 80 80 40 40 40 40 20 20 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 3 0 BBX 4 8 0 -2 BITMAP 70 30 20 20 20 60 60 C0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 1 BITMAP 30 30 50 C8 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 4 0 BBX 4 1 0 -2 BITMAP F0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 2 0 BBX 2 3 1 3 BITMAP 40 C0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 1 0 BITMAP 78 D8 B0 D0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 60 60 78 E8 F8 F0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 1 0 BITMAP 70 80 80 E0 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 18 18 78 D0 B0 F0 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 1 0 BITMAP 70 E0 D0 F0 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 4 0 BBX 5 8 0 -2 BITMAP 38 60 F0 60 40 40 C0 C0 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 -2 BITMAP 38 58 90 F0 90 E0 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 60 60 58 78 D0 D0 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 0 0 BITMAP 60 00 60 40 C0 C0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 3 0 BBX 5 8 0 -2 BITMAP 18 00 10 10 10 30 20 E0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 60 40 48 D0 F0 D0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 0 0 BITMAP 60 60 40 40 C0 C0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 8 0 BBX 7 4 1 0 BITMAP 76 7A DC B4 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 1 0 BITMAP 58 78 D0 D0 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 1 0 BITMAP 70 90 90 E0 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 -2 BITMAP 78 68 58 F0 C0 C0 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 -2 BITMAP 78 D8 B8 D0 10 30 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 1 0 BITMAP 70 C0 C0 80 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 0 0 BITMAP 70 40 30 E0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 1 0 BITMAP 40 40 E0 C0 80 E0 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 1 0 BITMAP 58 58 F0 D0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 1 0 BITMAP D8 D0 60 60 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 7 0 BBX 7 4 1 0 BITMAP BA AC AC C8 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 0 BITMAP 78 30 70 F0 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 5 0 BBX 6 6 0 -2 BITMAP 44 68 68 70 20 C0 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 0 BITMAP 78 10 40 F8 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 1 -2 BITMAP 60 40 40 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 2 0 BBX 2 8 1 -2 BITMAP 40 40 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 0 -2 BITMAP 60 60 60 60 60 40 40 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 5 0 BBX 5 2 1 1 BITMAP E8 B8 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 0 -2 BITMAP 60 00 40 40 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 20 70 80 80 F0 40 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 38 20 70 60 40 F0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 5 0 BBX 6 6 0 0 BITMAP 44 24 78 48 78 88 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP D8 50 60 F0 E0 40 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 2 0 BBX 2 8 1 -2 BITMAP 40 40 40 00 00 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 1 -2 BITMAP 38 60 70 58 70 70 10 F0 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 2 5 BITMAP A0 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 78 BC C4 C4 B4 78 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 4 0 BBX 4 3 1 3 BITMAP 70 B0 E0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 1 0 BITMAP 28 50 F0 50 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 5 0 BBX 5 3 1 1 BITMAP F8 08 08 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 2 0 BBX 2 1 1 2 BITMAP C0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 3 2 BITMAP 70 B0 B0 70 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 2 5 BITMAP E0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 2 0 BBX 1 2 3 4 BITMAP 80 80 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 0 BITMAP 10 F8 20 20 F8 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 3 0 BBX 3 3 -5 3 BITMAP 60 60 E0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 3 0 BBX 3 3 -5 3 BITMAP 60 40 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 5 0 BBX 2 1 3 5 BITMAP C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 -2 BITMAP 58 58 70 D0 C0 C0 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 1 -2 BITMAP F0 D0 D0 60 60 60 60 A0 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 3 2 BITMAP 80 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 5 0 BBX 2 2 2 -2 BITMAP C0 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 -6 3 BITMAP C0 40 80 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 4 0 BBX 4 3 1 3 BITMAP 70 90 E0 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 0 BITMAP 50 78 50 A0 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 8 0 BBX 7 6 3 0 BITMAP C6 4C 98 36 6E C4 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 8 0 BBX 7 6 3 0 BITMAP C6 4C 98 36 66 CE ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 8 0 BBX 7 6 3 0 BITMAP 66 4C F8 36 6E C4 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 0 -2 BITMAP 30 00 30 40 80 F0 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 18 18 28 28 3C 4C 8C ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 0C 18 28 28 3C 4C 8C ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 1C 18 28 28 3C 4C 8C ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 1C 18 28 28 3C 4C 8C ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 14 18 28 28 3C 4C 8C ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP 08 14 18 28 28 3C 4C 8C ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 8 0 BBX 9 6 0 0 BITMAP 0F80 1C00 3F00 3C00 4C00 CF00 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 -2 BITMAP 3C 40 80 80 C0 78 40 60 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 1 0 BITMAP 10 78 40 70 C0 C0 F0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 1 0 BITMAP 20 78 40 70 C0 C0 F0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 1 0 BITMAP 18 78 40 70 C0 C0 F0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 1 0 BITMAP 28 78 40 70 C0 C0 F0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 3 0 BBX 3 7 1 0 BITMAP 60 60 60 40 40 C0 C0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 3 0 BBX 3 7 1 0 BITMAP 60 60 60 40 40 C0 C0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 3 0 BBX 4 7 1 0 BITMAP 70 60 60 40 40 C0 C0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 3 0 BBX 4 7 1 0 BITMAP 50 60 60 40 40 C0 C0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP 7E 62 FA 42 44 F8 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 1 0 BITMAP 38 44 64 6C D8 98 88 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 10 38 48 88 88 98 70 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 10 38 48 88 88 98 70 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 18 38 48 88 88 98 70 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 38 38 48 88 88 98 70 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 28 38 48 88 88 98 70 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 0 BITMAP 48 30 20 60 90 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 2 0 BITMAP 1E 24 54 64 4C B8 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 1 0 BITMAP 30 4C 4C C8 88 98 70 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 1 0 BITMAP 18 4C 4C C8 88 98 70 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 1 0 BITMAP 38 4C 4C C8 88 98 70 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 1 0 BITMAP 28 4C 4C C8 88 98 70 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 1 0 BITMAP 30 98 50 60 60 40 40 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 60 78 48 C8 F0 C0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 -2 BITMAP 38 78 50 58 48 F8 C0 C0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 0 BITMAP 10 78 D8 B0 D0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 0 BITMAP 10 78 D8 B0 D0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 0 BITMAP 18 78 D8 B0 D0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 0 BITMAP 38 78 D8 B0 D0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 0 BITMAP 28 78 D8 B0 D0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 10 28 78 D8 B0 D0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 8 0 BBX 7 4 1 0 BITMAP 7E DA BC DE ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 1 -2 BITMAP 70 80 80 E0 80 C0 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 10 70 E0 D0 F0 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 20 70 E0 D0 F0 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 30 70 E0 D0 F0 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 50 70 E0 D0 F0 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 3 0 BBX 3 5 1 0 BITMAP 60 40 C0 C0 80 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 3 0 BBX 3 5 1 0 BITMAP 60 40 C0 C0 80 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 3 0 BBX 3 5 1 0 BITMAP E0 40 C0 C0 80 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 3 0 BBX 3 5 1 0 BITMAP A0 40 C0 C0 80 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 0 BITMAP 20 60 70 70 90 90 E0 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 0 BITMAP 38 58 78 D0 D0 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 10 70 90 90 E0 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 20 70 90 90 E0 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 30 70 90 90 E0 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 70 70 90 90 E0 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 50 70 90 90 E0 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 0 BITMAP 30 00 F8 00 60 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 5 0 BBX 6 4 2 0 BITMAP 3C 58 68 F0 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 0 BITMAP 30 58 58 F0 D0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 0 BITMAP 30 58 58 F0 D0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 0 BITMAP 38 58 58 F0 D0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 0 BITMAP 28 58 58 F0 D0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 5 0 BBX 6 7 0 -2 BITMAP 18 44 68 68 70 20 C0 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 0 -2 BITMAP 60 60 78 68 48 F0 C0 C0 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 5 0 BBX 6 7 0 -2 BITMAP 28 44 68 68 70 20 C0 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 -2 BITMAP 3C 6C F8 68 58 58 C0 C0 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 1 0 2 BITMAP F0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 1 -2 BITMAP 20 60 F0 40 40 40 40 C0 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 6 7 0 0 BITMAP 30 7C 08 10 20 40 F8 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 4 1 0 BITMAP 7E 9A BC FE ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 1 0 BITMAP 50 98 50 60 60 40 40 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 1 0 BITMAP 40 C0 C0 80 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 4 6 0 0 BITMAP 20 60 70 E0 40 C0 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 20 60 70 E0 C0 F8 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 1 -2 BITMAP 30 30 F8 20 20 F8 60 60 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 -2 BITMAP 30 60 F8 58 50 D0 C0 C0 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 4 0 0 BITMAP 40 60 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 6 1 0 BITMAP 3F80 4C00 8F00 8C00 9C00 7F00 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 1 0 2 BITMAP FF ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 2 5 BITMAP E0 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 2 1 2 -2 BITMAP C0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 3 5 BITMAP E0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 4 1 0 BITMAP 20 40 C0 40 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 3 5 BITMAP 80 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 2 5 BITMAP E0 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 3 1 1 BITMAP 70 F0 E0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 2 5 BITMAP E0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 2 5 BITMAP E0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 3 1 3 BITMAP 50 A0 F0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 2 3 1 3 BITMAP C0 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 5 5 0 0 BITMAP 38 70 40 30 E0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 4 4 BITMAP 40 A0 40 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 2 3 0 -2 BITMAP C0 40 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 1 -2 BITMAP 38 60 60 F0 40 40 C0 C0 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 3 1 3 BITMAP FE 5E DE ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 7 6 -2 0 BITMAP 06 0C 18 30 60 C0 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 2 1 3 5 BITMAP C0 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 6 1 0 BITMAP 4400 A800 B800 E000 4EC0 8DC0 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 1 1 0 BITMAP B4 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 3 1 3 BITMAP F0 50 A0 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 1 0 BITMAP 38 38 40 60 10 18 F0 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 3 0 -2 BITMAP F0 50 A0 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 30 78 10 40 F8 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/luBIS10.bdf100644 1750 1750 56421 5413747461 15075 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. COMMENT GRID 0010 0010 0200 0200 FONT -B&H-Lucida-Bold-I-Normal-Sans-10-100-75-75-P-67-ISO8859-1 SIZE 10 72 72 FONTBOUNDINGBOX 14 11 -1 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Bold" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 10 POINT_SIZE 100 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 67 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 9 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 3 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 4 0 BBX 4 7 1 0 BITMAP 30 30 60 60 00 C0 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 2 5 BITMAP A0 A0 A0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 7 0 BBX 8 7 0 0 BITMAP 1A 1A 7B 34 F6 68 68 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 1 -1 BITMAP 08 3E 68 78 38 3C 2C F8 20 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 1 0 BITMAP 62 B6 6C 18 36 6B 46 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 1 0 BITMAP 38 6C 38 73 DA CC 76 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 3 0 BBX 3 3 1 5 BITMAP 60 60 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 4 0 BBX 5 9 1 -1 BITMAP 18 30 60 60 C0 C0 C0 C0 60 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 4 0 BBX 5 9 0 -1 BITMAP 30 18 18 18 18 30 30 60 C0 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 5 0 BBX 6 3 0 4 BITMAP 6C 30 D8 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 7 0 BBX 6 5 1 1 BITMAP 10 10 FC 20 20 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 3 0 BBX 3 3 0 -1 BITMAP 60 60 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 1 3 BITMAP FC ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 3 0 BBX 2 2 1 0 BITMAP C0 C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 -1 BITMAP 0C 0C 18 18 30 60 60 C0 C0 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 38 6C 4C CC C8 D8 70 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 7 0 BBX 4 7 2 0 BITMAP 30 F0 30 70 60 60 60 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 38 4C 0C 18 60 F8 F8 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 38 4C 0C 38 18 98 70 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 18 38 58 98 FC 30 30 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 3C 7C 40 70 18 98 70 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 1C 32 60 78 CC CC 78 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 2 0 BITMAP 7C 7C 08 30 60 C0 C0 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 3C 66 66 7C CC CC 78 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 3C 66 66 3C 0C 98 70 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 1 0 BITMAP 60 60 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 4 0 BBX 4 7 0 -1 BITMAP 30 30 00 00 60 60 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 7 0 BBX 6 5 1 1 BITMAP 1C 70 C0 60 30 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 7 0 BBX 6 3 1 2 BITMAP 7C 00 F8 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 7 0 BBX 6 5 1 1 BITMAP 30 18 0C 38 E0 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 2 0 BITMAP 70 98 18 70 00 C0 C0 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 1 0 BITMAP 1E 63 4F 96 9B 80 7C ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP 0C 1C 2C 6C 7C CC CC ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 78 6C 6C F8 CC CC F8 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 1C 70 60 C0 C0 E0 78 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 7C 66 66 E6 CC CC F0 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 7C 60 60 F8 C0 C0 F8 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 1 0 BITMAP 7C 60 60 F8 C0 C0 C0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 1E 70 60 CC CC EC 78 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 66 66 66 FE CC CC CC ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 4 0 BBX 3 7 1 0 BITMAP 60 60 60 E0 C0 C0 C0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 0 -1 BITMAP 18 18 18 38 30 30 70 E0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 66 6C 78 F0 D8 CC C6 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 60 60 60 E0 C0 C0 F8 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 10 0 BBX 9 7 1 0 BITMAP 6180 7380 7D80 D980 9B00 9300 8300 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 62 72 72 5C DC 8C 8C ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 1 0 BITMAP 1E 73 63 C3 C6 CE 78 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 7C 66 66 F8 C0 C0 C0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 -2 BITMAP 1E 73 63 C3 C6 CE 78 0E 03 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 7C 66 66 FC D8 CC CC ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 3C 60 60 30 18 18 F0 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 2 0 BITMAP FC 30 30 70 60 60 60 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 66 66 66 CC CC C8 70 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 2 0 BITMAP CC CC C8 D8 D0 E0 C0 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 11 0 BBX 10 7 2 0 BITMAP C0C0 CCC0 CC80 DD80 DD00 EE00 CC00 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 7 0 BBX 8 7 0 0 BITMAP 33 36 3C 18 3C 6C CC ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 2 0 BITMAP CC CC D8 70 60 60 60 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 7C 1C 18 30 60 E0 F8 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 4 0 BBX 5 9 0 -1 BITMAP 38 30 30 60 60 60 C0 C0 E0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 -1 BITMAP C0 C0 C0 60 60 60 30 30 30 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 4 0 BBX 5 9 0 -1 BITMAP 38 18 18 30 30 30 60 60 E0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 7 0 BBX 6 5 1 1 BITMAP 0C 1C 2C 4C 8C ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 8 0 BBX 6 1 1 -1 BITMAP FC ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 3 0 BBX 3 3 1 5 BITMAP 60 C0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 3C 6C CC D8 F8 D8 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 30 30 2C 7C 6C CC D8 F0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 38 60 C0 C0 C0 70 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 0 BITMAP 06 06 3C 6C CC D8 F8 D8 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 38 58 D8 F0 C0 70 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 6 0 BBX 6 10 1 -2 BITMAP 1C 30 7C 30 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 -2 BITMAP 3C 6C CC D8 F8 D8 18 F0 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 30 30 6C 7C 6C C8 D8 D8 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 4 0 BBX 4 8 1 0 BITMAP 30 00 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 4 0 BBX 6 10 -1 -2 BITMAP 0C 00 18 18 18 30 30 30 60 E0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 0 BITMAP 30 30 66 6C 78 F0 D8 CC ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 4 0 BBX 4 8 1 0 BITMAP 30 30 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 10 0 BBX 9 6 1 0 BITMAP 6D80 7F80 6D80 C900 DB00 DB00 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 6C 7C 6C C8 D8 D8 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 38 6C CC CC D8 70 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 -2 BITMAP 36 3E 36 66 6C 78 C0 C0 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 -2 BITMAP 3C 6C CC D8 F8 D8 30 30 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 68 78 60 C0 C0 C0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 3C 60 70 38 18 F0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 1 0 BITMAP 30 F8 60 60 C0 C0 E0 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 6C 6C 4C D8 F8 D8 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 2 0 BITMAP CC CC D8 D0 E0 C0 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 9 0 BBX 8 6 1 0 BITMAP C3 DB DB DA FC D8 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 6C 6C 38 70 D8 D8 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 -2 BITMAP 66 66 66 6C 68 70 60 C0 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 7C 0C 38 70 C0 F8 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 4 0 BBX 6 9 0 -1 BITMAP 0C 18 30 30 C0 20 60 60 30 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 1 -1 BITMAP 30 30 20 60 60 60 40 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 4 0 BBX 6 9 0 -1 BITMAP 30 18 18 10 0C 30 30 60 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 7 0 BBX 6 2 1 3 BITMAP 74 B8 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 4 0 BBX 4 8 0 -2 BITMAP 30 30 00 60 60 C0 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 -1 BITMAP 08 08 3C 60 C0 C0 78 20 20 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 1C 30 30 F8 60 60 FC ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 7 0 BBX 8 8 0 -1 BITMAP 41 63 3E 66 66 7C C6 82 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 66 66 64 38 FC 30 30 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 1 -1 BITMAP 30 30 20 00 00 00 40 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 -1 BITMAP 1E 30 38 4C 64 38 18 F0 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 3 7 BITMAP 90 90 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 2 0 BITMAP 38 44 BA A2 BA 44 38 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 6 0 BBX 6 5 1 2 BITMAP 3C 4C D8 F8 D8 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 7 0 BBX 7 5 0 1 BITMAP 36 6C D8 6C 24 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 7 0 BBX 6 3 1 1 BITMAP FC 04 04 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 3 0 BBX 2 1 1 3 BITMAP C0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 0 BITMAP 38 44 BA B2 AA 44 38 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 7 0 BBX 3 1 3 7 BITMAP E0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 3 0 BBX 4 3 0 5 BITMAP 60 B0 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP 08 08 7E 10 10 FC ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 2 BITMAP 70 18 30 C0 F0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 2 BITMAP 70 18 60 30 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 7 0 BBX 3 2 4 7 BITMAP 60 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 -2 BITMAP 36 36 26 6C 7C 6C C0 C0 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 -1 BITMAP 7C F4 E8 68 28 50 50 50 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 3 2 BITMAP C0 C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 7 0 BBX 3 2 1 -2 BITMAP 20 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 6 0 BBX 3 5 2 2 BITMAP E0 60 40 C0 C0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 6 0 BBX 6 5 1 2 BITMAP 38 4C CC C8 70 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 7 0 BBX 7 5 0 1 BITMAP 48 6C 36 6C D8 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 11 0 BBX 10 7 1 0 BITMAP E300 6600 6C00 1980 3580 6FC0 C300 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 11 0 BBX 10 7 1 0 BITMAP E300 6600 6C00 1B80 31C0 6300 C780 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 12 0 BBX 11 7 1 0 BITMAP F180 6300 3600 ECC0 1AC0 37E0 6180 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 -2 BITMAP 0C 0C 00 08 78 C0 C8 70 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 18 0C 00 1C 2C 6C 7C CC CC ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 0C 18 00 1C 2C 6C 7C CC CC ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 18 2C 00 1C 2C 6C 7C CC CC ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 1A 2C 00 1C 2C 6C 7C CC CC ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 24 24 00 1C 2C 6C 7C CC CC ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 0C 16 0C 1C 2C 6C 7C CC CC ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 11 0 BBX 10 7 1 0 BITMAP 0FC0 1600 2600 6780 7C00 CC00 CF80 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 -2 BITMAP 1C 70 60 C0 C0 E0 78 20 C0 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 30 18 00 7C 60 F8 C0 C0 F8 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 0C 18 00 7C 60 F8 C0 C0 F8 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 18 2C 00 7C 60 F8 C0 C0 F8 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 24 24 00 7C 60 F8 C0 C0 F8 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 4 0 BBX 3 9 1 0 BITMAP C0 60 00 60 60 E0 C0 C0 C0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 1 0 BITMAP 30 60 00 60 60 E0 C0 C0 C0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 1 0 BITMAP 60 B0 00 60 60 E0 C0 C0 C0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 1 0 BITMAP 90 90 00 60 60 E0 C0 C0 C0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 0 0 BITMAP 3E 33 33 FB 66 66 78 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 1A 2C 00 62 72 54 DC 8C 8C ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 18 0C 00 3E 63 C3 C3 C6 7C ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 06 0C 00 3E 63 C3 C3 C6 7C ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 0C 16 00 3E 63 C3 C3 C6 7C ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 1A 2C 00 3E 63 C3 C3 C6 7C ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 12 12 00 3E 63 C3 C3 C6 7C ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 7 0 BBX 6 5 1 1 BITMAP 44 28 30 50 88 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 -1 BITMAP 01 1E 77 6B CB D6 EE 78 80 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 18 0C 00 66 66 CC CC C8 70 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 0C 18 00 66 66 CC CC C8 70 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 18 2C 00 66 66 CC CC C8 70 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 24 24 00 66 66 CC CC C8 70 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 2 0 BITMAP 30 58 00 CC CC D8 70 60 60 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 60 7C 66 C6 FC C0 C0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 7 0 BBX 8 10 0 -2 BITMAP 0E 13 33 34 66 66 66 6C C0 C0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 30 18 00 3C 6C CC D8 F8 D8 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 0C 18 00 3C 6C CC D8 F8 D8 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 18 2C 00 3C 6C CC D8 F8 D8 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 34 58 00 3C 6C CC D8 F8 D8 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 24 24 00 3C 6C CC D8 F8 D8 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 18 2C 18 3C 6C CC D8 F8 D8 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 10 0 BBX 9 6 1 0 BITMAP 7B80 0D80 7D80 CF00 DC00 6700 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 -2 BITMAP 38 60 C0 C0 C0 70 20 C0 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 60 30 00 38 58 D8 F0 C0 70 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 18 30 00 38 58 D8 F0 C0 70 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 30 58 00 38 58 D8 F0 C0 70 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 48 48 00 38 58 D8 F0 C0 70 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 4 0 BBX 3 9 1 0 BITMAP C0 60 00 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 1 0 BITMAP 30 60 00 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 1 0 BITMAP 60 B0 00 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 1 0 BITMAP 90 90 00 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 0 BITMAP 08 1E 0C 7C CC CC D8 70 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 34 58 00 6C 7C 6C C8 D8 D8 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 30 18 00 38 6C CC CC D8 70 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 0C 18 00 38 6C CC CC D8 70 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 18 2C 00 38 6C CC CC D8 70 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 34 58 00 38 6C CC CC D8 70 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 48 48 00 38 6C CC CC D8 70 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 7 0 BBX 6 5 1 1 BITMAP 10 00 FC 00 20 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 7 0 BBX 8 8 0 -1 BITMAP 01 1E 36 6E 76 6C 78 80 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 30 18 00 6C 6C 4C D8 F8 D8 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 0C 18 00 6C 6C 4C D8 F8 D8 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 18 2C 00 6C 6C 4C D8 F8 D8 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 24 24 00 6C 6C 4C D8 F8 D8 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 7 0 BBX 7 11 0 -2 BITMAP 0C 18 00 66 66 66 6C 68 70 60 C0 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 -2 BITMAP 30 36 3E 66 66 6C 78 C0 C0 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 7 0 BBX 7 11 0 -2 BITMAP 24 24 00 66 66 66 6C 68 70 60 C0 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 -2 BITMAP 1F 33 7E 36 66 6C 6C EC C0 C0 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 1 1 3 BITMAP F0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 2 -1 BITMAP 30 30 F8 60 60 C0 C0 C0 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 2C 18 00 7C 18 30 60 C0 F8 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 6 1 0 BITMAP 3B80 6D80 CD80 CF00 DC00 7700 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 2 0 BITMAP 48 48 00 CC CC D8 70 60 60 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 1 0 BITMAP 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 6 8 0 0 BITMAP 18 18 30 3C F0 20 60 60 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 30 30 3C F0 60 60 7C ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 -1 BITMAP 18 18 7C 30 30 F8 60 60 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 -2 BITMAP 1E 30 7E 36 66 6C 6C CC C0 C0 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 0 1 BITMAP 40 60 30 60 C0 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 7 1 0 BITMAP 1FC0 6600 6600 C780 CC00 CC00 7F80 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 1 1 3 BITMAP FF80 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 3 7 BITMAP B0 60 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 2 2 -2 BITMAP 80 60 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 2 2 7 BITMAP D8 90 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 0 1 BITMAP 30 60 C0 60 20 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 4 7 BITMAP C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 3 7 BITMAP 90 60 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 3 2 2 BITMAP E0 E0 E0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 2 2 7 BITMAP 68 B0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 3 7 BITMAP 60 B0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 3 1 5 BITMAP 6C D8 D8 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 1 3 2 5 BITMAP 80 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP 2C 18 00 3C 60 70 38 18 F0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 3 3 6 BITMAP 60 B0 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 3 0 -1 BITMAP 60 60 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 -1 BITMAP 1C 30 60 F8 60 60 C0 C0 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 3 1 4 BITMAP FB 5F 55 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 6 7 0 0 BITMAP 0C 18 18 30 60 60 C0 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 2 4 7 BITMAP C0 60 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 12 7 1 0 BITMAP 6200 B600 6C00 1800 3660 6BB0 4660 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 2 1 0 BITMAP 88 88 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 3 1 5 BITMAP 6C 6C D8 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 2C 18 00 3C 60 70 38 18 F0 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 3 0 -1 BITMAP 6C 6C D8 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 2C 18 00 7C 0C 38 70 C0 F8 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/luBIS12.bdf100644 1750 1750 61545 5413747461 15102 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. COMMENT GRID 0012 0012 0200 0200 FONT -B&H-Lucida-Bold-I-Normal-Sans-12-120-75-75-P-79-ISO8859-1 SIZE 12 72 72 FONTBOUNDINGBOX 17 13 -1 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Bold" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 12 POINT_SIZE 120 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 79 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 11 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 4 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 1 0 BITMAP 30 30 30 60 60 60 00 C0 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 7 0 BBX 5 4 2 6 BITMAP D8 D8 90 90 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 8 0 BBX 9 9 0 0 BITMAP 1B00 1B00 7F80 3600 3600 3600 FF00 6C00 6C00 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 1 -1 BITMAP 08 3E 68 68 78 38 3C 2C 2C F8 20 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 11 0 BBX 9 9 1 0 BITMAP 7180 DB00 DA00 7400 0800 1700 2D80 6D80 C700 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 3C00 6600 6600 3400 7980 D980 CD00 CE00 7B00 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 3 0 BBX 3 4 1 5 BITMAP 60 60 40 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 5 0 BBX 5 11 1 -1 BITMAP 18 30 60 60 C0 C0 C0 C0 C0 C0 60 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 5 0 BBX 5 11 0 -1 BITMAP 30 18 18 18 18 18 18 30 30 60 C0 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 6 0 BBX 6 5 0 4 BITMAP 10 94 78 A4 20 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 1 1 BITMAP 08 08 08 FF 10 10 10 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 3 0 BBX 3 4 0 -2 BITMAP 60 60 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 9 0 BBX 7 1 2 4 BITMAP FE ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 3 0 BBX 2 2 1 0 BITMAP C0 C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 7 0 BBX 7 11 0 -1 BITMAP 06 06 0C 0C 18 38 30 60 60 C0 C0 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 3C 66 66 66 C6 CC CC CC 78 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 8 0 BBX 4 9 2 0 BITMAP 30 F0 30 30 70 60 60 60 60 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 3C 66 06 0E 1C 30 40 FC FC ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 3C 66 06 0C 38 0C 0C CC 78 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 0C 1C 2C 4C 8C FE 18 18 18 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 3E 3E 40 78 1C 0C 0C D8 70 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 1C 36 60 60 78 CC CC CC 78 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 7E 7E 06 0C 18 30 60 E0 C0 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 3C 66 66 34 38 4C CC CC 78 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 3C 66 66 66 3C 0C 0C D8 70 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 4 0 BBX 3 7 1 0 BITMAP 60 60 00 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 0 -2 BITMAP 30 30 00 00 00 60 60 40 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP 06 0C 38 60 C0 60 38 0C ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 9 0 BBX 8 3 1 3 BITMAP 7F 00 FE ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP 60 38 0C 06 0C 38 60 C0 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 78 0C 0C 38 60 60 00 C0 C0 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 0F00 3180 6780 4980 DB00 DB00 CD00 6000 3E00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 0 0 BITMAP 03 07 0F 1B 33 3F 63 C3 C3 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 7C 66 66 6C FC C6 C6 CC F8 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 0E 3B 60 60 C0 C0 C0 E2 7C ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 7F00 6380 6180 6180 E180 C300 C300 CE00 F800 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 7E 60 60 60 F8 C0 C0 C0 FC ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 1 0 BITMAP 7E 60 60 60 FC C0 C0 C0 C0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 0E 3B 60 60 C0 C6 C6 E6 7E ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 10 0 BBX 8 9 1 0 BITMAP 63 63 63 63 FF C6 C6 C6 C6 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 5 0 BBX 3 9 1 0 BITMAP 60 60 60 60 E0 C0 C0 C0 C0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 6 0 BBX 6 11 -1 -2 BITMAP 0C 0C 0C 0C 1C 18 18 18 18 38 F0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 63 66 6C 78 F0 D8 CC CC C6 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 2 0 BITMAP 60 60 60 60 E0 C0 C0 C0 FC ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 12 0 BBX 10 9 1 0 BITMAP 79C0 79C0 6AC0 6EC0 6CC0 CD80 C980 C180 C180 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 10 0 BBX 8 9 1 0 BITMAP 61 71 71 7B 5A CE 8E 86 86 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 11 0 BBX 9 9 1 0 BITMAP 0F00 3380 6180 6180 C180 C300 C300 E600 7800 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 7C 66 66 66 CC F8 C0 C0 C0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 11 0 BBX 9 11 1 -2 BITMAP 0F00 3380 6180 6180 C180 C300 C300 E600 7800 0E00 0380 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 7C 66 66 6C F8 D8 CC CE C6 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 3C 66 60 70 38 1C 0C CC 78 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP FF 18 18 18 38 30 30 30 30 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 63 63 63 63 E6 C6 C6 EC 78 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 2 0 BITMAP C6 C6 C6 CC CC D8 D0 E0 C0 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 12 0 BBX 10 9 2 0 BITMAP C0C0 CCC0 CCC0 CC80 DD80 DD00 ED00 EE00 CC00 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 0 0 BITMAP 7180 3180 3B00 1A00 1C00 2C00 6E00 C600 C700 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 2 0 BITMAP C6 C6 CC CC D8 70 60 60 60 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 0 0 BITMAP 3F80 0380 0700 0E00 1C00 3800 7000 E000 FE00 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 5 0 BBX 6 11 0 -1 BITMAP 3C 30 30 60 60 60 60 C0 C0 C0 F0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 -1 BITMAP C0 C0 60 60 60 30 30 30 18 18 18 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 5 0 BBX 6 11 0 -1 BITMAP 3C 0C 0C 18 18 18 18 30 30 30 F0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 1 BITMAP 06 0E 16 26 66 C6 86 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 9 0 BBX 7 1 1 -1 BITMAP FE ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 3 0 BBX 3 4 1 6 BITMAP 20 40 C0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 3E 66 66 C6 CC DC EC ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 30 30 30 6E 76 66 C6 CC CC F8 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 38 6C C0 C0 C0 C0 78 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 0 BITMAP 03 03 03 3E 66 66 C6 CC DC 6C ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 3C 66 CE F8 C0 CC 78 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 6 0 BBX 7 12 1 -2 BITMAP 0E 18 18 7E 30 30 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 -2 BITMAP 1F 33 33 66 6E 76 06 CC 78 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 30 30 30 6E 76 66 66 CC CC CC ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 1 0 BITMAP 30 30 00 60 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 5 0 BBX 6 12 -1 -2 BITMAP 0C 0C 00 18 18 18 18 18 30 30 30 E0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 30 30 30 66 6C 78 70 D8 CC C6 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 1 0 BITMAP 30 30 30 60 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 12 0 BBX 11 7 1 0 BITMAP 6EE0 7760 6660 6660 CCC0 CCC0 CCC0 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 6E 76 66 66 CC CC CC ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 3C 66 C6 C6 C6 CC 78 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 -2 BITMAP 36 3B 33 63 66 66 7C C0 C0 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 -2 BITMAP 3E 66 66 C6 CC DC 6C 18 18 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 6C 7C 60 E0 C0 C0 C0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 0 BITMAP 3C 66 70 38 1C CC 78 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 30 30 F8 60 60 C0 C0 C0 F0 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 66 66 66 CC CC DC 6C ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 2 0 BITMAP CC CC C8 D8 D0 E0 C0 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 11 0 BBX 9 7 2 0 BITMAP C180 C980 C980 D900 DB00 EE00 CC00 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 8 0 BBX 9 7 0 0 BITMAP 3180 3900 1A00 1C00 2C00 4E00 C600 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 -2 BITMAP 33 33 32 36 34 38 30 60 C0 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 7E 0E 1C 38 70 E0 FC ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 5 0 BBX 5 11 0 -1 BITMAP 18 30 60 60 30 E0 30 60 C0 C0 60 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 5 0 BBX 4 11 1 -1 BITMAP 30 30 30 60 60 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 5 0 BBX 5 11 0 -1 BITMAP 30 18 18 30 60 38 60 30 30 60 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 9 0 BBX 7 3 1 3 BITMAP 72 FE 9C ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 5 0 BBX 4 9 1 -2 BITMAP 30 30 00 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 1 -1 BITMAP 08 08 3C 66 C0 C0 C0 CC 78 20 20 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 1 0 BITMAP 1E 33 30 30 FC 60 60 60 FE ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 8 0 BBX 10 9 0 0 BITMAP 30C0 1080 1F00 3300 3300 3300 3E00 4200 C300 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 1 0 BITMAP 63 63 66 6C FE 30 FE 30 30 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 1 -1 BITMAP 30 30 30 30 00 00 00 C0 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 -1 BITMAP 1C 36 30 78 4C 64 3C 18 D8 70 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 8 0 BBX 4 2 3 8 BITMAP 90 90 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 1C00 6300 4D00 9480 9080 9080 4D00 6300 1C00 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 7 0 BBX 6 5 1 4 BITMAP 3C 6C CC D8 68 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 8 0 BBX 8 5 0 1 BITMAP 11 77 CC 66 22 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 9 0 BBX 7 3 1 2 BITMAP FE 02 02 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 4 0 BBX 3 1 1 4 BITMAP E0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 2 BITMAP 38 44 BA B2 AA 44 38 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 8 0 BBX 4 1 3 8 BITMAP F0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 3 0 BBX 4 3 0 6 BITMAP 60 B0 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 1 BITMAP 08 08 7E 10 10 00 FC ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 7 0 BBX 6 5 1 4 BITMAP 38 4C 18 60 F8 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 7 0 BBX 6 5 1 4 BITMAP 78 0C 70 18 F0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 8 0 BBX 3 2 3 8 BITMAP 60 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 -2 BITMAP 33 33 33 66 66 6E F6 C0 C0 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 -1 BITMAP 7E F2 F2 76 24 24 6C 48 48 48 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 8 0 BBX 2 2 4 3 BITMAP C0 C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 8 0 BBX 4 2 1 -2 BITMAP 30 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 7 0 BBX 3 5 3 4 BITMAP E0 60 60 C0 C0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 7 0 BBX 6 5 1 4 BITMAP 38 6C CC D8 70 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 8 0 BBX 8 5 0 1 BITMAP 44 66 33 EE 88 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 14 0 BBX 13 9 1 0 BITMAP E180 6300 6600 C600 CC70 18B0 1930 33F8 6060 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 14 0 BBX 11 9 2 0 BITMAP E180 6300 6600 CC00 DDC0 1A60 30E0 6180 C3E0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 14 0 BBX 14 9 0 0 BITMAP 7860 0CC0 3980 1980 F338 0658 0698 0DFC 1830 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 -2 BITMAP 0C 0C 00 18 18 70 C0 C0 78 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 0 0 BITMAP 06 03 00 07 0F 1B 33 3F 63 C3 C3 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 0 0 BITMAP 03 06 00 07 0F 1B 33 3F 63 C3 C3 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 9 0 BBX 9 11 0 0 BITMAP 0300 0580 0000 0700 0F00 1B00 3300 3F00 6300 C300 C300 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 9 0 BBX 9 11 0 0 BITMAP 0680 0B00 0000 0700 0F00 1B00 3300 3F00 6300 C300 C300 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 0 0 BITMAP 09 09 00 07 0F 1B 33 3F 63 C3 C3 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 9 0 BBX 9 11 0 0 BITMAP 0300 0580 0300 0700 0F00 1B00 3300 3F00 6300 C300 C300 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 12 0 BBX 12 9 1 0 BITMAP 07F0 0B00 1B00 1300 33E0 7E00 6600 C600 C7E0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 -2 BITMAP 0E 3B 60 60 C0 C0 C0 E2 7C 18 70 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 1 0 BITMAP 18 0C 00 7E 60 60 F8 C0 C0 C0 FC ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 1 0 BITMAP 0C 18 00 7E 60 60 F8 C0 C0 C0 FC ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 1 0 BITMAP 18 2C 00 7E 60 60 F8 C0 C0 C0 FC ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 1 0 BITMAP 24 24 00 7E 60 60 F8 C0 C0 C0 FC ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 5 0 BBX 3 11 1 0 BITMAP C0 60 00 60 60 60 E0 C0 C0 C0 C0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 5 0 BBX 4 11 1 0 BITMAP 30 60 00 60 60 60 E0 C0 C0 C0 C0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 5 0 BBX 4 11 1 0 BITMAP 60 B0 00 60 60 60 E0 C0 C0 C0 C0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 5 0 BBX 4 11 1 0 BITMAP 90 90 00 60 60 60 E0 C0 C0 C0 C0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 0 0 BITMAP 3F80 31C0 30C0 30C0 FCC0 6180 6180 6700 7C00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 1A 2C 00 61 71 71 5B DE 8E 86 86 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 11 0 BBX 9 11 1 0 BITMAP 0C00 0600 0000 0F00 3380 6180 6180 C300 C300 E600 7800 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 11 0 BBX 9 11 1 0 BITMAP 0300 0600 0000 0F00 3380 6180 6180 C300 C300 E600 7800 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 11 0 BBX 9 11 1 0 BITMAP 0600 0B00 0000 0F00 3380 6180 6180 C300 C300 E600 7800 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 11 0 BBX 9 11 1 0 BITMAP 0300 0600 0000 0F00 3380 6180 6180 C300 C300 E600 7800 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 11 0 BBX 9 11 1 0 BITMAP 0900 0900 0000 0F00 3380 6180 6180 C300 C300 E600 7800 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 1 1 BITMAP 63 36 3C 18 3C 6C C6 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 11 0 BBX 9 11 1 -1 BITMAP 0080 0F00 3B80 6380 6580 C980 D300 E300 EE00 7800 8000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 18 0C 00 63 63 63 E6 C6 C6 EC 78 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 06 0C 00 63 63 63 E6 C6 C6 EC 78 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 0C 16 00 63 63 63 E6 C6 C6 EC 78 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 12 12 00 63 63 63 E6 C6 C6 EC 78 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 2 0 BITMAP 0C 18 00 C6 C6 CC D8 70 60 60 60 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 60 60 7C 66 C6 CE FC C0 C0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 -1 BITMAP 1E 33 33 66 6C 66 66 C6 C6 DC C0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 18 0C 00 3E 66 66 C6 CC DC EC ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 0C 18 00 3E 66 66 C6 CC DC EC ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 0C 16 00 3E 66 66 C6 CC DC EC ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 1A 2C 00 3E 66 66 C6 CC DC EC ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 12 12 00 3E 66 66 C6 CC DC EC ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 0C 16 0C 3E 66 66 C6 CC DC EC ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 12 0 BBX 11 7 1 0 BITMAP 3BC0 6E60 0CE0 7F80 CC00 DCC0 7780 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 -2 BITMAP 38 6C C0 C0 C0 C0 78 30 E0 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 18 0C 00 3C 66 CE F8 C0 CC 78 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 0C 18 00 3C 66 CE F8 C0 CC 78 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 18 2C 00 3C 66 CE F8 C0 CC 78 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 24 24 00 3C 66 CE F8 C0 CC 78 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 1 0 BITMAP C0 60 00 60 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 1 0 BITMAP 30 60 00 60 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 1 0 BITMAP 60 B0 00 60 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 1 0 BITMAP 90 90 00 60 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 0 BITMAP 3B 0C 36 06 3E 66 C6 C6 CC 78 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 1A 2C 00 6E 76 66 66 CC CC CC ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 18 0C 00 3C 66 C6 C6 C6 CC 78 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 0C 18 00 3C 66 C6 C6 C6 CC 78 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 38 6C 00 3C 66 C6 C6 C6 CC 78 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 1A 2C 00 3C 66 C6 C6 C6 CC 78 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 24 24 00 3C 66 C6 C6 C6 CC 78 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 1 BITMAP 18 18 00 FE 00 30 30 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 8 0 BBX 9 9 0 -1 BITMAP 0080 1F00 3300 6700 6B00 7300 6600 7C00 8000 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 18 0C 00 66 66 66 CC CC DC 6C ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 0C 18 00 66 66 66 CC CC DC 6C ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 18 2C 00 66 66 66 CC CC DC 6C ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 24 24 00 66 66 66 CC CC DC 6C ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 0 -2 BITMAP 06 0C 00 33 33 32 36 34 38 30 60 C0 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 8 0 BBX 8 11 0 -2 BITMAP 30 30 36 3B 73 63 66 66 7C C0 C0 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 0 -2 BITMAP 12 12 00 33 33 32 36 34 38 30 60 C0 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 1 -2 BITMAP 0F80 1980 1980 7F00 3300 3300 6300 6600 6600 C600 C000 C000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 1 1 4 BITMAP F8 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 -1 BITMAP 18 18 18 FE 30 30 30 60 60 60 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 11 0 0 BITMAP 0B00 0600 0000 3F80 0380 0700 1E00 3C00 7000 E000 FF00 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 7 1 0 BITMAP 3BC0 6E60 CCE0 CF80 CC00 DCC0 7780 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 2 0 BITMAP 24 24 00 C6 C6 CC D8 70 60 60 60 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 7 1 0 BITMAP 60 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 6 10 0 0 BITMAP 18 18 18 30 3C F0 30 60 60 60 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 18 18 18 1E 38 F0 30 30 3F ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 -1 BITMAP 0C 0C 0C 7F 18 18 FE 30 30 30 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 -2 BITMAP 0F 18 18 7F 33 33 63 66 66 C6 C0 C0 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 1 BITMAP 40 60 30 E0 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 13 9 1 0 BITMAP 0FF8 3980 6180 6180 C3F0 C300 C300 E300 7FF0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 12 1 1 4 BITMAP FFF0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 4 2 3 8 BITMAP B0 60 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 4 2 2 -2 BITMAP C0 70 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 2 3 8 BITMAP D8 90 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 1 BITMAP 10 70 C0 60 20 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 2 2 4 8 BITMAP C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 2 3 8 BITMAP 88 70 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 3 3 3 3 BITMAP E0 E0 E0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 2 2 8 BITMAP 68 B0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 4 2 3 8 BITMAP 60 B0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 4 1 6 BITMAP 24 48 D8 D8 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 2 6 BITMAP C0 C0 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 0 0 BITMAP 2C 18 00 3C 66 70 38 1C CC 78 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 4 3 3 7 BITMAP 60 B0 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 4 0 -2 BITMAP 60 60 40 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 -1 BITMAP 1C 36 30 30 FC 60 60 C0 C0 C0 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 3 1 6 BITMAP FDC0 6AC0 6AC0 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 7 9 0 0 BITMAP 06 06 0C 18 18 30 60 C0 C0 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 3 2 3 8 BITMAP C0 60 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 15 9 1 0 BITMAP 70C0 D980 DB00 7600 0C00 1B9C 36F6 66F6 C39C ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 2 1 0 BITMAP CC CC ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 4 1 6 BITMAP 6C 6C 48 90 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 1 0 BITMAP 2C 18 00 3C 66 60 78 3C 0C CC 78 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 4 0 -2 BITMAP 6C 6C 48 90 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 2C 18 00 7E 0E 1C 38 70 E0 FC ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/luBIS14.bdf100644 1750 1750 64700 5413747462 15101 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. COMMENT GRID 0014 0014 0200 0200 FONT -B&H-Lucida-Bold-I-Normal-Sans-14-140-75-75-P-92-ISO8859-1 SIZE 14 72 72 FONTBOUNDINGBOX 18 15 -1 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Bold" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 14 POINT_SIZE 140 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 92 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 13 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 4 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 0 0 BITMAP 30 30 30 60 60 60 40 00 C0 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 8 0 BBX 6 4 2 7 BITMAP 6C 6C D8 D8 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 0 BITMAP 1B00 1B00 1B00 7F80 3600 3600 FF00 6C00 6C00 6C00 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 -1 BITMAP 08 3E 6B 68 70 38 1C 0E 16 D6 7C 10 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP 30C0 D980 DB00 6200 0400 0800 1180 36C0 66C0 C300 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 1E00 3300 3300 1600 3800 5980 CD80 CD00 E600 7B00 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 1 7 BITMAP 60 60 40 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 6 0 BBX 5 12 1 -1 BITMAP 18 30 60 60 C0 C0 C0 C0 C0 C0 60 30 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 6 0 BBX 5 12 0 -1 BITMAP 60 30 18 18 18 18 18 18 30 30 60 C0 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 4 BITMAP 10 54 38 70 A8 20 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 10 0 BBX 7 7 1 1 BITMAP 08 08 10 FE 10 20 20 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 0 -2 BITMAP 60 60 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 9 0 BBX 7 1 1 4 BITMAP FE ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 4 0 BBX 2 2 1 0 BITMAP C0 C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 0 -1 BITMAP 0180 0300 0300 0600 0C00 0C00 1800 1800 3000 6000 6000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 1E 33 63 63 63 C6 C6 C6 CC 78 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 10 0 BBX 4 10 3 0 BITMAP 30 F0 30 30 30 60 60 60 60 60 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 3E 43 03 03 06 1C 30 C0 FE FE ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 3E 43 03 06 3C 06 06 06 8C 78 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 0E 16 26 46 86 8C FF 0C 0C 0C ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 3F 3F 20 40 7C 0E 06 06 8C 78 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 1E 33 60 60 7C C6 C6 C6 CC 78 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 7F 7F 03 06 0C 18 30 60 C0 C0 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 3E 63 63 73 3A 5C CE C6 C6 7C ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 1E 33 63 63 63 3E 06 06 CC 78 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 4 0 BBX 3 7 0 0 BITMAP 60 60 00 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 -1 -2 BITMAP 30 30 00 00 00 60 60 40 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 10 0 BBX 7 7 1 1 BITMAP 06 1C 70 C0 60 30 18 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 10 0 BBX 7 3 1 3 BITMAP 7E 00 FC ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 10 0 BBX 7 7 1 1 BITMAP 30 18 0C 06 1C 70 C0 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 78 CC 0C 1C 38 60 40 00 C0 C0 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 13 0 BBX 10 10 1 0 BITMAP 0F00 3080 40C0 47C0 8CC0 9980 9980 8EC0 4000 3F00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 0 0 BITMAP 0180 0380 0780 0D80 1980 3180 3F80 6180 C180 C180 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 0 BITMAP 7F00 6180 6180 6300 7E00 C300 C300 C300 C600 FC00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 0F80 30C0 6000 6000 C000 C000 C000 C000 E300 7E00 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP 7F80 61C0 60C0 60C0 60C0 C0C0 C180 C180 C300 FE00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 7F 60 60 60 7E C0 C0 C0 C0 FE ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 7F 60 60 60 7E C0 C0 C0 C0 C0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 0F80 30C0 6000 6000 C000 C000 C180 C180 E300 7F00 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP 60C0 60C0 60C0 60C0 7FC0 C180 C180 C180 C180 C180 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 5 0 BBX 3 10 1 0 BITMAP 60 60 60 60 60 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 7 0 BBX 6 12 0 -2 BITMAP 0C 0C 0C 0C 0C 18 18 18 18 18 30 E0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 6180 6300 6600 6C00 7800 D800 CC00 C600 C300 C180 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 60 60 60 60 60 C0 C0 C0 C0 FE ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 14 0 BBX 12 10 1 0 BITMAP 78F0 58B0 58B0 5930 4D30 8E60 8E60 8C60 8C60 8060 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 7080 7080 5880 5880 5880 8D00 8D00 8D00 8700 8700 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP 0F80 31C0 60C0 60C0 C0C0 C0C0 C180 C180 E300 7C00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 7E 63 63 63 62 FC C0 C0 C0 C0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 1 -2 BITMAP 0F80 31C0 60C0 60C0 C0C0 C0C0 C180 C180 E300 7C00 0600 0300 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 0 BITMAP 7E00 6300 6300 6300 6600 FC00 C600 C600 C300 C380 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 3E 63 60 70 38 1C 0E 06 C6 7C ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 0 BITMAP FF80 1800 1800 1800 1800 3000 3000 3000 3000 3000 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 6180 6180 6180 6180 C300 C300 C300 C300 6600 3C00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 2 0 BITMAP C180 C180 C300 C300 C600 CC00 D800 F000 E000 C000 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 15 0 BBX 13 10 2 0 BITMAP C018 C618 C630 C630 CE60 CE60 D6C0 D680 E700 C600 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 0 BITMAP 30C0 30C0 1980 1B00 0C00 0C00 3600 6600 C300 C300 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 2 0 BITMAP C3 C3 C6 CC D0 60 60 60 60 60 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP 3F80 0380 0700 0E00 0C00 1800 3800 7000 E000 FE00 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 6 0 BBX 6 12 0 -1 BITMAP 3C 30 30 30 60 60 60 60 C0 C0 C0 F0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 8 0 BBX 4 12 2 -1 BITMAP C0 C0 C0 C0 60 60 60 60 30 30 30 30 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 6 0 BBX 6 12 0 -1 BITMAP 3C 0C 0C 0C 18 18 18 18 30 30 30 F0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 10 0 BBX 6 7 2 3 BITMAP 0C 1C 34 24 64 C4 84 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 11 0 BBX 9 1 1 -1 BITMAP FF80 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 1 7 BITMAP 20 40 C0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 10 0 BBX 8 8 1 0 BITMAP 1F 63 63 C3 C6 CE D6 66 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 30 30 30 66 6B 73 63 C3 C6 C6 F8 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 0 BITMAP 1E 60 60 C0 C0 C0 C4 78 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 10 0 BBX 9 11 1 0 BITMAP 0180 0180 0180 1F00 6300 6300 C300 C600 CE00 D600 6600 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP 1C 66 46 CC F0 C0 C4 78 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 7 0 BBX 7 13 1 -2 BITMAP 1E 30 30 FC 60 60 60 60 60 C0 C0 C0 C0 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 0 -2 BITMAP 0F80 3180 3180 6180 6300 6700 3B00 0300 C600 7C00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 30 30 30 6E 73 63 63 C6 C6 C6 C6 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 5 0 BBX 4 11 1 0 BITMAP 30 60 00 60 60 60 60 C0 C0 C0 C0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 5 0 BBX 6 13 -1 -2 BITMAP 0C 18 00 18 18 18 18 30 30 30 30 30 E0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 30 30 30 63 66 6C 70 D8 CC C6 C3 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 5 0 BBX 4 11 1 0 BITMAP 30 30 30 60 60 60 60 C0 C0 C0 C0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 15 0 BBX 13 8 1 0 BITMAP 6E70 7398 6318 6318 C630 C630 C630 C630 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 10 0 BBX 8 8 1 0 BITMAP 6E 73 63 63 C6 C6 C6 C6 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 10 0 BBX 8 8 1 0 BITMAP 1E 63 63 C3 C3 C6 C6 78 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 0 -2 BITMAP 3700 3980 3180 3180 6180 6300 6300 7C00 C000 C000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 -2 BITMAP 3F 63 63 C3 C6 CE D6 66 0C 0C ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 6C 6C 70 60 C0 C0 C0 C0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 8 0 BBX 6 8 1 0 BITMAP 3C 60 60 70 38 18 18 F0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 6 0 BBX 6 10 1 0 BITMAP 10 30 FC 60 60 60 C0 C0 C0 70 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 10 0 BBX 8 8 1 0 BITMAP 63 63 63 63 C6 CE D6 66 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 0 BITMAP C6 C6 C6 C4 C8 D0 E0 C0 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 12 0 BBX 11 8 1 0 BITMAP C060 C660 C660 CE60 D640 D680 E700 C600 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 0 0 BITMAP 33 33 32 1C 38 4C CC CC ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 8 0 BBX 9 10 -1 -2 BITMAP 3180 3180 3180 3100 3200 3400 3800 3000 6000 C000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 0 0 BITMAP 7F 06 0C 18 30 60 C0 FE ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 6 0 BBX 6 12 0 -1 BITMAP 0C 18 30 30 30 10 60 10 60 C0 C0 60 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 4 0 BBX 4 12 0 -1 BITMAP 30 30 30 30 60 60 60 60 C0 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 6 0 BBX 6 12 0 -1 BITMAP 18 0C 0C 18 20 18 20 30 30 30 60 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 10 0 BBX 8 3 1 3 BITMAP 31 7E 8C ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 0 -2 BITMAP 30 30 00 20 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 2 -1 BITMAP 04 04 1E 6B 68 C8 D0 D0 D2 7C 20 20 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 0E 19 18 18 7E 30 30 30 60 FE ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 10 0 BBX 11 10 -1 0 BITMAP 6060 30C0 1F80 1980 3180 3180 3300 3F00 6180 C0C0 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 0 BITMAP 6180 6180 6300 6200 6400 EE00 3000 FC00 3000 3000 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 4 0 BBX 4 12 0 -1 BITMAP 30 30 30 30 30 00 00 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 -1 BITMAP 1E 31 38 1C 6E 66 76 38 1C 8C 78 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 10 0 BBX 4 2 4 9 BITMAP 90 90 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP 1E00 6180 4C80 9240 9040 9040 9240 4C80 6180 1E00 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 8 0 BBX 5 6 2 4 BITMAP 38 58 D8 D8 F8 D8 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 9 0 BBX 9 5 0 2 BITMAP 0880 3300 CC00 6600 2200 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 10 0 BBX 7 4 1 1 BITMAP FE 02 02 02 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 5 0 BBX 4 1 1 4 BITMAP F0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 10 0 BBX 8 8 1 2 BITMAP 3C 42 99 95 99 95 42 3C ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 10 0 BBX 4 1 4 9 BITMAP F0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 4 0 BBX 4 3 0 7 BITMAP 60 90 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 10 0 BBX 7 7 1 1 BITMAP 08 08 7E 10 10 00 FE ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 8 0 BBX 5 6 1 4 BITMAP 70 18 18 30 60 F8 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 8 0 BBX 6 6 1 4 BITMAP 78 0C 30 18 18 F0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 10 0 BBX 5 2 3 9 BITMAP 38 E0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 0 -2 BITMAP 3180 3180 3180 3180 6300 6700 6B00 7300 C000 C000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 10 0 BBX 6 11 2 -1 BITMAP 7C F4 F4 F4 68 28 28 28 50 50 50 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 10 0 BBX 2 2 4 3 BITMAP C0 C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 10 0 BBX 3 2 2 -2 BITMAP 20 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 8 0 BBX 4 6 2 4 BITMAP 30 F0 30 60 60 60 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 8 0 BBX 6 6 1 4 BITMAP 38 4C CC CC C8 70 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 9 0 BBX 9 5 0 2 BITMAP 2200 3300 1980 6600 8800 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 15 0 BBX 12 10 2 0 BITMAP 6300 E200 6600 C400 C8E0 C960 1260 33F0 20C0 60C0 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 15 0 BBX 11 10 2 0 BITMAP 6300 E200 6600 C400 C9C0 CAE0 10C0 3300 27C0 67C0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 15 0 BBX 13 10 1 0 BITMAP 7180 1900 7300 3200 3470 E4B0 0930 19F8 1060 3060 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 0 -2 BITMAP 0C 0C 00 08 18 70 E0 C0 CC 78 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 0 0 BITMAP 0700 01C0 0000 0180 0380 0780 0D80 1980 3180 3F80 6180 C180 C180 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 0 0 BITMAP 01C0 0700 0000 0180 0380 0780 0D80 1980 3180 3F80 6180 C180 C180 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 0 0 BITMAP 0180 02C0 0000 0180 0380 0780 0D80 1980 3180 3F80 6180 C180 C180 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 0 0 BITMAP 0340 0580 0000 0180 0380 0780 0D80 1980 3180 3F80 6180 C180 C180 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 0 0 BITMAP 0440 0440 0000 0180 0380 0780 0D80 1980 3180 3F80 6180 C180 C180 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 0 0 BITMAP 0180 0240 0180 0180 0380 0780 0D80 1980 3180 3F80 6180 C180 C180 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 15 0 BBX 15 10 0 0 BITMAP 01FE 02C0 06C0 0CC0 18FC 3180 3F80 6180 C180 C1FC ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 1 -2 BITMAP 0F80 30C0 6000 6000 C000 C000 C000 C000 E300 7E00 0800 3000 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 0 BITMAP 38 0E 00 7F 60 60 60 7E C0 C0 C0 C0 FE ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 0 BITMAP 07 1C 00 7F 60 60 60 7E C0 C0 C0 C0 FE ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 0 BITMAP 0C 16 00 7F 60 60 60 7E C0 C0 C0 C0 FE ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 0 BITMAP 12 12 00 7F 60 60 60 7E C0 C0 C0 C0 FE ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 5 0 BBX 4 13 1 0 BITMAP E0 30 00 60 60 60 60 60 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 5 0 BBX 4 13 1 0 BITMAP 70 C0 00 60 60 60 60 60 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 5 0 BBX 4 13 1 0 BITMAP 60 B0 00 60 60 60 60 60 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 5 0 BBX 4 13 1 0 BITMAP 90 90 00 60 60 60 60 60 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 0 0 BITMAP 3FC0 30E0 3060 3060 FC60 6060 60C0 60C0 6180 7F00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 0D00 1600 0000 7080 7080 5880 5880 5880 8D00 8D00 8D00 8700 8700 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 1C00 0700 0000 0F80 31C0 60C0 60C0 C0C0 C0C0 C180 C180 E300 7C00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 0380 0E00 0000 0F80 31C0 60C0 60C0 C0C0 C0C0 C180 C180 E300 7C00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 0600 0B00 0000 0F80 31C0 60C0 60C0 C0C0 C0C0 C180 C180 E300 7C00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 0680 0B00 0000 0F80 31C0 60C0 60C0 C0C0 C0C0 C180 C180 E300 7C00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 0900 0900 0000 0F80 31C0 60C0 60C0 C0C0 C0C0 C180 C180 E300 7C00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 10 0 BBX 7 7 2 1 BITMAP 22 24 18 10 30 48 88 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 12 0 BBX 12 12 0 -1 BITMAP 0010 07E0 18E0 3160 3160 6260 6460 68C0 68C0 7180 7E00 8000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 3800 0E00 0000 6180 6180 6180 6180 C180 C300 C300 C300 6600 3C00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 0700 1C00 0000 6180 6180 6180 6180 C180 C300 C300 C300 6600 3C00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 0C00 1600 0000 6180 6180 6180 6180 C180 C300 C300 C300 6600 3C00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 1200 1200 0000 6180 6180 6180 6180 C180 C300 C300 C300 6600 3C00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 2 0 BITMAP 0E 38 00 C3 C3 C6 C4 C8 D0 60 60 60 60 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 60 60 7E 63 E3 C3 C6 F8 C0 C0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 -1 BITMAP 0E 13 33 32 34 62 63 63 63 C2 CC C0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 38 0E 00 1F 63 63 C3 C6 CE D6 66 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 07 1C 00 1F 63 63 C3 C6 CE D6 66 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 0C 16 00 1F 63 63 C3 C6 CE D6 66 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 0D 16 00 1F 63 63 C3 C6 CE D6 66 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 12 12 00 1F 63 63 C3 C6 CE D6 66 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 06 09 06 1F 63 63 C3 C6 CE D6 66 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 13 0 BBX 11 8 1 0 BITMAP 3DC0 6660 0460 7CC0 CF00 CC00 DC40 6780 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 -2 BITMAP 1E 60 60 C0 C0 C0 C4 78 10 60 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 70 1C 00 1C 66 46 CC F0 C0 C4 78 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 0E 38 00 1C 66 46 CC F0 C0 C4 78 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 18 2C 00 1C 66 46 CC F0 C0 C4 78 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 24 24 00 1C 66 46 CC F0 C0 C4 78 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 5 0 BBX 4 11 1 0 BITMAP E0 30 00 60 60 60 60 C0 C0 C0 C0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 5 0 BBX 5 11 1 0 BITMAP 38 60 00 60 60 60 60 C0 C0 C0 C0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 5 0 BBX 4 11 1 0 BITMAP 60 B0 00 60 60 60 60 C0 C0 C0 C0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 5 0 BBX 4 11 1 0 BITMAP 90 90 00 60 60 60 60 C0 C0 C0 C0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 18 0F 1E 06 3F 63 C3 C3 C6 C6 78 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 1A 2C 00 6E 73 63 63 C6 C6 C6 C6 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 38 0E 00 1E 63 63 C3 C3 C6 C6 78 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 0E 38 00 1E 63 63 C3 C3 C6 C6 78 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 0C 16 00 1E 63 63 C3 C3 C6 C6 78 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 1A 2C 00 1E 63 63 C3 C3 C6 C6 78 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 12 12 00 1E 63 63 C3 C3 C6 C6 78 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 10 0 BBX 8 7 1 1 BITMAP 04 04 00 FF 00 10 10 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 -1 BITMAP 0040 0F40 3180 3380 6580 6980 7300 6300 BC00 8000 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 38 0E 00 63 63 63 63 C6 CE D6 66 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 0E 38 00 63 63 63 63 C6 CE D6 66 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 0C 16 00 63 63 63 63 C6 CE D6 66 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 22 22 00 63 63 63 63 C6 CE D6 66 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 8 0 BBX 9 13 -1 -2 BITMAP 0380 0E00 0000 3180 3180 3180 3100 3200 3400 3800 3000 6000 C000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 0 -2 BITMAP 1800 1800 1800 3300 3580 3980 3180 6180 6300 6300 7C00 C000 C000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 8 0 BBX 9 13 -1 -2 BITMAP 1100 1100 0000 3180 3180 3180 3100 3200 3400 3800 3000 6000 C000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 -2 BITMAP 1F80 3180 3180 FB00 6300 6300 6300 6600 6600 C600 C600 C000 C000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 1 1 4 BITMAP FC ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 7 11 2 -1 BITMAP 18 18 18 FE 30 30 30 60 60 60 60 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 13 0 0 BITMAP 0B00 0600 0000 3F80 0380 0700 0E00 0C00 1800 3800 7000 E000 FE00 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 12 8 1 0 BITMAP 1CE0 6330 6230 C660 C780 C600 C620 7BC0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 2 0 BITMAP 24 24 00 C3 C3 C6 C4 C8 D0 60 60 60 60 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 8 1 0 BITMAP 60 60 60 60 C0 C0 C0 C0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 6 11 0 0 BITMAP 18 18 18 30 3C F0 30 60 60 60 60 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP 18 18 18 18 1E F0 30 30 30 3F ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 -1 BITMAP 0C 0C 0C 7F 18 18 18 FE 30 30 30 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 -2 BITMAP 1D80 3300 3000 FF00 6300 6300 6300 6600 6600 C600 C600 C000 C000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 2 BITMAP 20 30 18 60 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 14 10 1 0 BITMAP 0FFC 3180 6180 6180 C1F8 C300 C300 C300 E300 7FF8 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 13 1 1 4 BITMAP FFF8 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 4 2 4 9 BITMAP B0 60 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 3 2 4 -2 BITMAP 80 60 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 5 2 3 9 BITMAP D8 90 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 0 2 BITMAP 08 30 C0 60 20 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 2 2 5 9 BITMAP C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 5 2 3 9 BITMAP 88 70 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 4 4 3 2 BITMAP F0 F0 F0 F0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 5 2 3 9 BITMAP 68 B0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 4 2 4 9 BITMAP 60 B0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 4 1 7 BITMAP 24 48 D8 D8 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 1 7 BITMAP 60 60 C0 C0 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 0 BITMAP 2C 18 00 3C 60 60 70 38 18 18 F0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 4 3 4 8 BITMAP 60 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 0 -2 BITMAP 60 60 40 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 2 -1 BITMAP 1E 33 30 30 FC 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 9 4 2 6 BITMAP ED80 4A80 9500 9500 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 0 0 BITMAP 30 30 30 60 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 5 2 4 9 BITMAP E0 38 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 16 10 1 0 BITMAP 30C0 D980 DB00 6200 0400 0800 1186 36DB 66DB C30C ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 2 2 0 BITMAP CC CC ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 4 1 7 BITMAP 6C 6C 48 90 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 16 0C 00 3E 63 60 70 38 1C 0E 06 C6 7C ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 4 0 -2 BITMAP 6C 6C 48 90 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 11 0 0 BITMAP 16 0C 00 7F 06 0C 18 30 60 C0 FE ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/luBIS18.bdf100644 1750 1750 76205 5413747462 15110 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. COMMENT GRID 0018 0018 0200 0200 FONT -B&H-Lucida-Bold-I-Normal-Sans-18-180-75-75-P-119-ISO8859-1 SIZE 18 72 72 FONTBOUNDINGBOX 27 19 -2 -3 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Bold" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 18 POINT_SIZE 180 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 119 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 16 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 5 0 BBX 5 13 1 0 BITMAP 38 38 38 38 70 70 70 60 60 00 00 E0 E0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 10 0 BBX 6 4 3 10 BITMAP CC CC CC 88 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 1 0 BITMAP 0660 0660 0660 7FF0 7FF0 1980 1980 1980 FFE0 FFE0 6600 6600 6600 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 13 0 BBX 11 15 2 -1 BITMAP 0100 0FC0 1FE0 3960 3B00 3A00 3E00 1F00 0F80 0B80 1B80 D380 FF00 7E00 1000 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 17 0 BBX 16 13 1 0 BITMAP 3C06 7E0C EE18 C630 EE60 FCC0 799E 033F 0677 0C63 1877 307E 603C ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 2 0 BITMAP 0F80 1FC0 39C0 39C0 3F80 1F00 3E38 7F38 E7B0 E3E0 F3C0 FFF0 7C70 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 2 10 BITMAP 70 70 60 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 7 0 BBX 7 16 2 -2 BITMAP 0E 1C 38 30 70 70 E0 E0 E0 E0 E0 E0 E0 E0 70 38 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 7 0 BBX 7 16 0 -2 BITMAP 38 1C 0E 0E 0E 0E 0E 0E 0E 0E 1C 1C 18 38 70 E0 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 1 6 BITMAP 18 18 DB E7 18 EC EC ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 13 0 BBX 12 12 1 0 BITMAP 0300 0300 0300 0600 0600 FFF0 FFF0 0600 0600 0C00 0C00 0C00 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 -2 BITMAP 70 70 60 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 13 0 BBX 11 2 2 5 BITMAP FFE0 FFE0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 5 0 BBX 3 2 1 0 BITMAP E0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 11 0 BBX 11 16 0 -2 BITMAP 0060 00E0 01C0 0180 0380 0700 0600 0E00 0C00 1C00 3800 3000 7000 6000 E000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 2 0 BITMAP 0780 1FC0 39E0 70E0 70E0 E0E0 E0E0 E0E0 E1C0 E1C0 F380 7F00 3C00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 13 0 BBX 6 13 4 0 BITMAP 1C FC FC 1C 1C 38 38 38 38 70 70 70 70 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 13 0 BBX 10 13 2 0 BITMAP 1F80 3FC0 31C0 01C0 03C0 0780 0F00 1E00 3800 7000 FF80 FF80 FF80 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 13 0 BBX 10 13 2 0 BITMAP 1F80 3FC0 31C0 01C0 0380 1F00 1E00 0700 0380 0380 C780 FF00 7C00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 13 0 BBX 10 13 2 0 BITMAP 01C0 03C0 07C0 0DC0 19C0 3380 6380 FFC0 FFC0 0700 0700 0700 0700 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 2 0 BITMAP 1FE0 1FE0 1FE0 3000 3000 3E00 3F00 0780 0380 0380 C780 FF00 7C00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 2 0 BITMAP 07C0 1FE0 3C60 7000 7000 EF00 FF80 F1C0 E1C0 E1C0 E380 7F80 3E00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 13 0 BBX 10 13 3 0 BITMAP 7FC0 7FC0 7FC0 0180 0300 0600 0C00 1C00 3800 7000 7000 E000 E000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 2 0 BITMAP 07C0 1FE0 38E0 38E0 3DC0 1F00 0F80 3F80 73C0 E1C0 F1C0 FF80 7E00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 13 0 BBX 10 13 2 0 BITMAP 1F00 7F80 71C0 E1C0 E1C0 E3C0 7FC0 3DC0 0380 0380 C700 FE00 7800 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 5 0 BBX 5 10 1 0 BITMAP 38 38 00 00 00 00 00 00 E0 E0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 5 0 BBX 6 12 0 -2 BITMAP 1C 1C 00 00 00 00 00 00 70 70 60 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 13 0 BBX 11 9 2 2 BITMAP 00E0 03C0 0F00 3C00 F000 F000 3C00 0F00 0380 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 13 0 BBX 12 6 1 3 BITMAP 7FF0 7FF0 0000 0000 FFE0 FFE0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 13 0 BBX 11 9 1 2 BITMAP 3800 1E00 0780 01E0 01E0 0780 1E00 7800 E000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 2 0 BITMAP 7E FF C7 07 0E 1C 38 70 60 00 00 E0 E0 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 16 0 BBX 16 13 1 0 BITMAP 07F0 1FFE 3806 71F3 67F3 C673 CE63 CEE6 CFFC C678 6000 7FC0 0FC0 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 1 0 BITMAP 01C0 03C0 03C0 06E0 0CE0 0CE0 18E0 18E0 3FF0 7FF0 6070 E070 E070 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 2 0 BITMAP 3FC0 3FE0 38E0 38E0 71C0 7F80 7F00 7380 E1C0 E1C0 E3C0 FF80 FE00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 2 0 BITMAP 07E0 1FF8 3C38 7000 7000 E000 E000 E000 E000 E000 7060 7FE0 1F80 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 2 0 BITMAP 3FC0 3FF0 3870 3838 7038 7038 7038 7038 E070 E070 E1E0 FFC0 FF00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 2 0 BITMAP 3FC0 3FC0 3800 3800 7000 7F00 7F00 7000 E000 E000 E000 FF00 FF00 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 2 0 BITMAP 3FE0 3FE0 3800 3800 7000 7F80 7F80 7000 7000 E000 E000 E000 E000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 2 0 BITMAP 07E0 1FF8 3C38 7000 7000 E000 E000 E070 E070 E070 70E0 7FE0 1FE0 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 2 0 BITMAP 3838 3838 3838 3838 7070 7FF0 7FF0 7070 E0E0 E0E0 E0E0 E0E0 E0E0 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 7 0 BBX 5 13 2 0 BITMAP 38 38 38 38 70 70 70 70 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 9 0 BBX 10 15 -1 -2 BITMAP 01C0 01C0 01C0 01C0 0380 0380 0380 0380 0380 0700 0700 0700 CE00 FE00 7800 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 2 0 BITMAP 3870 38E0 39C0 3980 7300 7600 7C00 7E00 EF00 E780 E3C0 E1E0 E0E0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 2 0 BITMAP 3800 3800 3800 3800 7000 7000 7000 7000 E000 E000 E000 FF80 FF80 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 18 0 BBX 16 13 2 0 BITMAP 3E0F 3E1F 3E1F 3737 3766 676E 67CE 678E 678E C71C C71C C01C C01C ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 2 0 BITMAP 3818 3C18 3C18 3E18 3E18 6730 6730 63B0 63F0 C1E0 C1E0 C0E0 C0E0 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 16 0 BBX 14 13 2 0 BITMAP 07E0 1FF8 3C38 701C 701C E01C E01C E01C E038 E038 70F0 7FE0 1F80 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 2 0 BITMAP 3FC0 3FE0 38E0 38E0 70E0 71C0 7F80 7E00 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 15 0 BBX 14 16 1 -3 BITMAP 07E0 1FF8 3C38 701C 701C E01C E01C E01C E038 E038 70F0 7FE0 1F80 01E0 00FC 0038 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 2 0 BITMAP 3FC0 3FE0 38E0 38E0 71C0 7F80 7E00 7700 E700 E380 E380 E1C0 E1C0 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 1 0 BITMAP 07C0 1FE0 3C60 3800 3C00 1E00 0F00 0780 0380 0380 C780 FF00 7C00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 2 0 BITMAP FFF8 FFF8 0700 0700 0E00 0E00 0E00 0E00 1C00 1C00 1C00 1C00 1C00 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 2 0 BITMAP 3818 3818 3818 3818 7030 7030 7030 7060 E060 E0E0 F1C0 7F80 3E00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 14 0 BBX 11 13 4 0 BITMAP E0E0 E0E0 E0C0 E1C0 E180 E380 7300 7700 7600 7600 7C00 3800 3800 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 18 0 BBX 16 13 3 0 BITMAP E1C7 E1C7 E3C7 E3C6 E7CE E7CC EDD8 E9D8 F9F0 F1E0 F1E0 E1C0 E1C0 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 1 0 BITMAP 1C38 1C38 1C70 0E60 0EC0 0F80 0700 0F00 1B80 3380 71C0 E1C0 E1C0 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 3 0 BITMAP E0E0 E0E0 E1C0 F380 7300 7600 3C00 3800 3800 7000 7000 7000 7000 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 1 0 BITMAP 3FF0 3FF0 00F0 01E0 03C0 0780 0F00 1E00 3C00 7800 F000 FFC0 FFC0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 7 0 BBX 8 16 1 -2 BITMAP 1F 1F 1C 1C 38 38 38 38 70 70 70 70 E0 E0 F8 F8 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 10 0 BBX 9 16 1 -2 BITMAP E000 E000 7000 7000 3800 3800 1800 1C00 1C00 0E00 0E00 0600 0700 0700 0380 0380 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 7 0 BBX 8 16 0 -2 BITMAP 1F 1F 07 07 0E 0E 0E 0E 1C 1C 1C 1C 38 38 F8 F8 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 13 0 BBX 9 10 2 2 BITMAP 0180 0380 0780 0D80 1980 3180 6180 6180 C180 C180 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 14 0 BBX 12 2 1 -2 BITMAP FFF0 FFF0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 3 10 BITMAP 30 60 E0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 13 0 BBX 12 10 1 0 BITMAP 07F0 1FF0 3870 70E0 70E0 E1E0 E3C0 E7C0 FDC0 79C0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 1 0 BITMAP 1C00 1C00 1C00 1C00 39E0 3BF0 3E70 7C70 7870 70E0 70E0 E1C0 FF80 FE00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 0780 1FC0 38C0 7000 7000 E000 E000 E180 FF80 7E00 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 13 0 BBX 13 14 1 0 BITMAP 0038 0038 0038 0038 07F0 1FF0 3870 70E0 70E0 E1E0 E3C0 E7C0 FDC0 79C0 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 0780 1FC0 39C0 71C0 7F80 FE00 E000 E180 FF80 7E00 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 10 0 BBX 12 17 1 -3 BITMAP 03E0 07F0 0E30 0E00 3FC0 3FC0 1C00 1C00 3800 3800 3800 7000 7000 7000 E000 E000 E000 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 0 -3 BITMAP 03F8 0FF8 1C38 3870 3870 70F0 71F0 7F60 3CE0 00E0 E1C0 FFC0 3F00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 1 0 BITMAP 1C00 1C00 1C00 1C00 39E0 3BF0 3E70 7C70 78E0 70E0 70E0 E1C0 E1C0 E1C0 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 6 0 BBX 7 14 1 0 BITMAP 0E 1C 00 00 38 38 38 70 70 70 70 E0 E0 E0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 7 0 BBX 11 17 -2 -3 BITMAP 00E0 01C0 0000 0000 0380 0380 0380 0700 0700 0700 0700 0E00 0E00 0E00 DC00 FC00 7000 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 1C00 1C00 1C00 1C00 38E0 38E0 39C0 7300 7E00 7E00 7700 E780 E3C0 E1C0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 6 0 BBX 6 14 1 0 BITMAP 1C 1C 1C 1C 38 38 38 70 70 70 70 E0 E0 E0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 18 0 BBX 17 10 1 0 BITMAP 39C700 3BEF80 3EFB80 7CF380 79E700 71C700 71C700 E38E00 E38E00 E38E00 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 13 0 BBX 12 10 1 0 BITMAP 39E0 3BF0 3E70 3C70 78E0 70E0 70E0 E1C0 E1C0 E1C0 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 1 0 BITMAP 07C0 1FE0 38E0 70E0 70E0 E1C0 E1C0 E380 FF00 7C00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 0 -3 BITMAP 1CF0 1DF8 1F38 1E38 3C38 3870 3870 70E0 7FC0 7F00 E000 E000 E000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 1 -3 BITMAP 07F0 1FF0 3870 70E0 70E0 E1E0 E3E0 E6C0 FDC0 79C0 0380 0380 0380 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 0 BITMAP 3980 3B80 3F80 7C00 7800 7000 7000 E000 E000 E000 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 1F80 3FC0 70C0 7800 3E00 1F00 0780 C380 FF00 7E00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 8 0 BBX 7 12 2 0 BITMAP 18 38 FE FE 70 70 70 E0 E0 E0 F8 78 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 13 0 BBX 12 10 1 0 BITMAP 3870 3870 3870 70E0 70E0 71E0 E3C0 E7C0 FDC0 79C0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 3 0 BITMAP E1C0 E1C0 E380 E300 E700 E600 EC00 F800 F000 E000 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 16 0 BBX 15 10 2 0 BITMAP E00E E38E E38E E79C E798 EFB0 FBE0 F3C0 E380 C300 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 0 0 BITMAP 1CE0 1CE0 1CC0 0F80 0F00 1F00 3700 6380 E380 E380 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 12 0 BBX 13 13 0 -3 BITMAP 1C38 1C38 1C70 1C60 1CE0 1CC0 1D80 1F00 1E00 1C00 3800 F000 E000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 1 0 BITMAP 7FE0 7FE0 03C0 0780 0F00 1E00 3C00 7800 FFC0 FFC0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 7 0 BBX 8 16 1 -2 BITMAP 07 0F 1C 1C 1C 1C 18 F0 E0 30 70 70 E0 E0 F0 70 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 7 0 BBX 5 16 2 -2 BITMAP 38 38 38 38 30 70 70 70 70 70 70 60 E0 E0 E0 E0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 7 0 BBX 8 16 0 -2 BITMAP 0E 0F 07 07 0E 0E 0C 07 0F 18 38 38 38 38 F0 E0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 13 0 BBX 10 3 2 5 BITMAP 78C0 FFC0 C780 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 6 0 BBX 5 13 1 -3 BITMAP 38 38 00 30 30 70 70 70 70 E0 E0 E0 E0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 13 0 BBX 9 13 3 -1 BITMAP 0200 0200 0F00 3F80 7180 6000 E000 E000 E300 FF00 7C00 1000 1000 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 2 0 BITMAP 03C0 0FE0 1C60 1C00 3800 FF00 FF00 3800 3800 7000 7000 FFC0 FFC0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 13 0 BBX 14 12 1 0 BITMAP 300C 1818 0FE0 1FF0 1C70 3870 3870 38E0 3FE0 1FC0 6060 C030 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 2 0 BITMAP 70E0 70E0 70C0 38C0 3980 3B00 1E00 FF80 1C00 FF80 1C00 3800 3800 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 5 0 BBX 5 16 1 -2 BITMAP 38 38 38 38 30 30 00 00 00 00 60 60 E0 E0 E0 E0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 13 0 BBX 10 15 2 -2 BITMAP 0780 1FC0 38C0 3800 3C00 6E00 6700 7380 3980 1D80 0F00 0700 C700 FE00 7800 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 12 0 BBX 6 2 4 11 BITMAP CC CC ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 16 0 BBX 14 13 2 0 BITMAP 0FC0 3FF0 7038 6398 C6CC CC0C CC0C CC0C CE8C 6718 7038 3FF0 0FC0 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 10 0 BBX 9 7 1 6 BITMAP 1F80 7F80 7380 E700 EF00 F700 E700 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 12 0 BBX 11 8 1 2 BITMAP 0840 1CE0 39C0 7380 E700 7380 39C0 1080 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 13 0 BBX 11 6 1 2 BITMAP FFE0 FFE0 0060 0060 0060 0060 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 6 0 BBX 5 2 1 4 BITMAP F8 F8 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 13 0 BBX 10 10 2 3 BITMAP 1E00 7F80 6180 DEC0 DAC0 DCC0 DAC0 6180 7F80 1E00 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 12 0 BBX 4 2 6 11 BITMAP F0 F0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 5 0 BBX 5 3 1 10 BITMAP 70 D8 70 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 13 0 BBX 11 12 1 0 BITMAP 0300 0300 0300 0600 7FE0 7FE0 0600 0C00 0C00 0000 FFE0 FFE0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 10 0 BBX 8 8 2 5 BITMAP 7E 7F 07 1F 7E F0 FE FE ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 10 0 BBX 8 8 2 5 BITMAP 7E 7F 07 3C 3E 0E FE F8 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 12 0 BBX 5 2 6 11 BITMAP 78 E0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 0 -3 BITMAP 1C38 1C38 1C38 3870 3870 38F0 71E0 73E0 7EE0 7CE0 E000 E000 E000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 13 0 BBX 9 15 3 -2 BITMAP 3F80 7C80 FD80 FD80 F900 F900 7B00 1B00 1200 1200 3600 3600 2400 2400 2400 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 13 0 BBX 3 3 6 4 BITMAP E0 E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 12 0 BBX 5 3 2 -3 BITMAP 70 38 F0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 10 0 BBX 5 8 3 5 BITMAP 38 F8 F8 38 38 70 70 70 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 10 0 BBX 9 7 1 6 BITMAP 1F00 7F80 7380 E380 E700 FF00 7C00 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 12 0 BBX 11 8 1 2 BITMAP 2100 7380 39C0 1CE0 39C0 7380 E700 4200 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 20 0 BBX 18 13 1 0 BITMAP 380700 F80E00 381C00 383800 707000 70E000 71C780 038B80 071380 0E3FC0 1C3FC0 380700 700700 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 20 0 BBX 18 13 2 0 BITMAP 701C00 F03800 707000 70E000 E1C000 E38000 E30F80 063FC0 0E33C0 1C0780 381C00 707F80 E07F80 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 21 0 BBX 19 13 1 0 BITMAP 3E0380 7F0700 0E0E00 3C1C00 0E3800 FE7000 7CE3C0 01C5C0 0389C0 071FE0 0E1FE0 1C0380 380380 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 -3 BITMAP 07 07 00 00 06 0E 1C 38 70 E0 E3 FF 7E ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 14 0 BBX 12 16 1 0 BITMAP 0780 01C0 0000 01C0 03C0 03C0 06E0 0CE0 0CE0 18E0 18E0 3FF0 7FF0 6070 E070 E070 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 14 0 BBX 12 16 1 0 BITMAP 01E0 0380 0000 01C0 03C0 03C0 06E0 0CE0 0CE0 18E0 18E0 3FF0 7FF0 6070 E070 E070 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 14 0 BBX 12 16 1 0 BITMAP 01C0 0360 0000 01C0 03C0 03C0 06E0 0CE0 0CE0 18E0 18E0 3FF0 7FF0 6070 E070 E070 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 14 0 BBX 12 16 1 0 BITMAP 03A0 05C0 0000 01C0 03C0 03C0 06E0 0CE0 0CE0 18E0 18E0 3FF0 7FF0 6070 E070 E070 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 14 0 BBX 12 16 1 0 BITMAP 0660 0660 0000 01C0 03C0 03C0 06E0 0CE0 0CE0 18E0 18E0 3FF0 7FF0 6070 E070 E070 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 14 0 BBX 12 16 1 0 BITMAP 01C0 0360 01C0 01C0 03C0 03C0 06E0 0CE0 0CE0 18E0 18E0 3FF0 7FF0 6070 E070 E070 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 18 0 BBX 17 13 1 0 BITMAP 00FF80 01FF80 037000 067000 0CE000 1CFE00 18FE00 30E000 7FC000 7FC000 E1C000 E1FE00 E1FE00 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 14 0 BBX 13 16 2 -3 BITMAP 07E0 1FF8 3C38 7000 7000 E000 E000 E000 E000 E000 7060 7FE0 1F80 1C00 0E00 3C00 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 12 0 BBX 10 16 2 0 BITMAP 0F00 0380 0000 3FC0 3FC0 3800 3800 7000 7F00 7F00 7000 E000 E000 E000 FF00 FF00 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 12 0 BBX 10 16 2 0 BITMAP 0780 0E00 0000 3FC0 3FC0 3800 3800 7000 7F00 7F00 7000 E000 E000 E000 FF00 FF00 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 12 0 BBX 10 16 2 0 BITMAP 0700 0D80 0000 3FC0 3FC0 3800 3800 7000 7F00 7F00 7000 E000 E000 E000 FF00 FF00 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 12 0 BBX 10 16 2 0 BITMAP 1980 1980 0000 3FC0 3FC0 3800 3800 7000 7F00 7F00 7000 E000 E000 E000 FF00 FF00 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 7 0 BBX 5 16 2 0 BITMAP F0 38 00 38 38 38 38 70 70 70 70 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 7 0 BBX 7 16 2 0 BITMAP 1E 38 00 38 38 38 38 70 70 70 70 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 7 0 BBX 6 16 2 0 BITMAP 38 6C 00 38 38 38 38 70 70 70 70 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 7 0 BBX 6 16 2 0 BITMAP CC CC 00 38 38 38 38 70 70 70 70 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 15 0 BBX 14 13 1 0 BITMAP 1FE0 1FF8 1C38 1C1C 381C FF9C FF9C 381C 7038 7038 70F0 7FE0 7F80 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 15 0 BBX 13 16 2 0 BITMAP 03A0 05C0 0000 3818 3C18 3C18 3E18 3E18 6730 6730 63B0 63F0 C1E0 C1E0 C0E0 C0E0 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 16 0 BBX 14 16 2 0 BITMAP 0780 01C0 0000 07E0 1FF8 3C38 701C 701C E01C E01C E01C E038 E038 70F0 7FE0 1F80 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 16 0 BBX 14 16 2 0 BITMAP 01E0 0380 0000 07E0 1FF8 3C38 701C 701C E01C E01C E01C E038 E038 70F0 7FE0 1F80 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 16 0 BBX 14 16 2 0 BITMAP 01C0 0360 0000 07E0 1FF8 3C38 701C 701C E01C E01C E01C E038 E038 70F0 7FE0 1F80 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 16 0 BBX 14 16 2 0 BITMAP 03A0 05C0 0000 07E0 1FF8 3C38 701C 701C E01C E01C E01C E038 E038 70F0 7FE0 1F80 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 16 0 BBX 14 16 2 0 BITMAP 0660 0660 0000 07E0 1FF8 3C38 701C 701C E01C E01C E01C E038 E038 70F0 7FE0 1F80 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 13 0 BBX 10 10 2 1 BITMAP 30C0 30C0 1980 1F00 0E00 1E00 3700 6300 C180 C180 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 16 0 BBX 14 13 2 0 BITMAP 07EC 1FFC 3C38 707C 70DC E19C E31C E61C EC38 F838 70F0 FFE0 DF80 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 14 0 BBX 13 16 2 0 BITMAP 0780 01C0 0000 3818 3818 3818 3818 7030 7030 7030 7060 E060 E0E0 F1C0 7F80 3E00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 14 0 BBX 13 16 2 0 BITMAP 01E0 0380 0000 3818 3818 3818 3818 7030 7030 7030 7060 E060 E0E0 F1C0 7F80 3E00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 14 0 BBX 13 16 2 0 BITMAP 01C0 0360 0000 3818 3818 3818 3818 7030 7030 7030 7060 E060 E0E0 F1C0 7F80 3E00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 14 0 BBX 13 16 2 0 BITMAP 0660 0660 0000 3818 3818 3818 3818 7030 7030 7030 7060 E060 E0E0 F1C0 7F80 3E00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 12 0 BBX 11 16 3 0 BITMAP 0780 0E00 0000 E0E0 E0E0 E1C0 F380 7300 7600 3C00 3800 3800 7000 7000 7000 7000 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 2 0 BITMAP 3800 3800 3800 3FC0 7FE0 70E0 70E0 71E0 FFC0 FF00 E000 E000 E000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 0 -3 BITMAP 01F0 07F8 0738 0E38 0E30 1C60 1DC0 1DE0 38F0 3870 3870 7070 73E0 73C0 E000 E000 E000 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 1 0 BITMAP 03C0 00E0 0000 07F0 1FF0 3870 70E0 70E0 E1E0 E3C0 E7C0 FDC0 79C0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 1 0 BITMAP 01E0 0380 0000 07F0 1FF0 3870 70E0 70E0 E1E0 E3C0 E7C0 FDC0 79C0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 1 0 BITMAP 0380 06C0 0000 07F0 1FF0 3870 70E0 70E0 E1E0 E3C0 E7C0 FDC0 79C0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 1 0 BITMAP 03A0 05C0 0000 07F0 1FF0 3870 70E0 70E0 E1E0 E3C0 E7C0 FDC0 79C0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 1 0 BITMAP 0660 0660 0000 07F0 1FF0 3870 70E0 70E0 E1E0 E3C0 E7C0 FDC0 79C0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 1 0 BITMAP 01C0 0360 01C0 0000 07F0 1FF0 3870 70E0 70E0 E1E0 E3C0 E7C0 FDC0 79C0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 18 0 BBX 17 10 1 0 BITMAP 07DF00 1FFF80 386380 70E380 71FF00 E3FC00 E7C000 EDC300 F9FF00 70FE00 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 -3 BITMAP 0780 1FC0 38C0 7000 7000 E000 E000 E180 FF80 7E00 3800 1C00 7800 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0F00 0380 0000 0780 1FC0 39C0 71C0 7F80 FE00 E000 E180 FF80 7E00 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 03C0 0700 0000 0780 1FC0 39C0 71C0 7F80 FE00 E000 E180 FF80 7E00 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0700 0D80 0000 0780 1FC0 39C0 71C0 7F80 FE00 E000 E180 FF80 7E00 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 1980 1980 0000 0780 1FC0 39C0 71C0 7F80 FE00 E000 E180 FF80 7E00 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 6 0 BBX 5 13 1 0 BITMAP F0 38 00 38 38 38 70 70 70 70 E0 E0 E0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 6 0 BBX 7 13 1 0 BITMAP 1E 38 00 38 38 38 70 70 70 70 E0 E0 E0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 6 0 BBX 6 13 1 0 BITMAP 38 6C 00 38 38 38 70 70 70 70 E0 E0 E0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 6 0 BBX 6 13 1 0 BITMAP CC CC 00 38 38 38 70 70 70 70 E0 E0 E0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 1 0 BITMAP 0700 07F0 01C0 07E0 00E0 0FE0 3FE0 70E0 70E0 E1C0 E1C0 E380 FF00 7C00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 1 0 BITMAP 03A0 05C0 0000 39E0 3BF0 3E70 3C70 78E0 70E0 70E0 E1C0 E1C0 E1C0 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 1 0 BITMAP 0F00 0380 0000 07C0 1FE0 38E0 70E0 70E0 E1C0 E1C0 E380 FF00 7C00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 1 0 BITMAP 03C0 0700 0000 07C0 1FE0 38E0 70E0 70E0 E1C0 E1C0 E380 FF00 7C00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 1 0 BITMAP 0380 06C0 0000 07C0 1FE0 38E0 70E0 70E0 E1C0 E1C0 E380 FF00 7C00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 1 0 BITMAP 0740 0B80 0000 07C0 1FE0 38E0 70E0 70E0 E1C0 E1C0 E380 FF00 7C00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 1 0 BITMAP 0CC0 0CC0 0000 07C0 1FE0 38E0 70E0 70E0 E1C0 E1C0 E380 FF00 7C00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 13 0 BBX 10 12 2 0 BITMAP 0600 0600 0600 0000 0000 FFC0 FFC0 0000 0000 1800 1800 1800 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 12 0 BBX 13 12 0 -1 BITMAP 0018 03F8 0FF0 1C70 38F0 3B70 76E0 78E0 71C0 7F80 FE00 C000 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 1 0 BITMAP 0780 01C0 0000 3870 3870 3870 70E0 70E0 71E0 E3C0 E7C0 FDC0 79C0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 1 0 BITMAP 01E0 0380 0000 3870 3870 3870 70E0 70E0 71E0 E3C0 E7C0 FDC0 79C0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 1 0 BITMAP 0380 06C0 0000 3870 3870 3870 70E0 70E0 71E0 E3C0 E7C0 FDC0 79C0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 1 0 BITMAP 0CC0 0CC0 0000 3870 3870 3870 70E0 70E0 71E0 E3C0 E7C0 FDC0 79C0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 12 0 BBX 13 16 0 -3 BITMAP 00F0 01C0 0000 1C38 1C38 1C70 1C60 1CE0 1CC0 1D80 1F00 1E00 1C00 3800 F000 E000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 13 0 BBX 13 16 0 -3 BITMAP 1C00 1C00 1C00 1CF0 19F8 3B38 3E38 3C38 3870 7870 70E0 7FC0 7F00 E000 E000 E000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 12 0 BBX 13 16 0 -3 BITMAP 0660 0660 0000 1C38 1C38 1C70 1C60 1CE0 1CC0 1D80 1F00 1E00 1C00 3800 F000 E000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 14 17 0 -3 BITMAP 03FC 07FC 0E1C 0E1C 3FB8 3FB8 1C38 1C70 3870 3870 3870 70E0 70E0 70E0 E000 E000 E000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 2 1 4 BITMAP FF80 FF80 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 10 15 2 -2 BITMAP 0E00 0E00 0E00 0E00 FFC0 FFC0 1C00 1C00 3800 3800 3800 7800 7000 7000 7000 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 12 16 1 0 BITMAP 06C0 0380 0000 3FF0 3FF0 00F0 01E0 03C0 0780 0F00 1E00 3C00 7800 F000 FFC0 FFC0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 17 10 1 0 BITMAP 079F00 1FFF80 38E380 70E380 70FF00 E1FC00 E1C000 E3C300 FFFF00 7CFE00 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 16 3 0 BITMAP 1980 1980 0000 E0E0 E0E0 E1C0 F380 7300 7600 3C00 3800 3800 7000 7000 7000 7000 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 10 1 0 BITMAP 38 38 38 70 70 70 70 E0 E0 E0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 8 14 0 0 BITMAP 0E 0E 0E 0E 1C 1F FF F8 38 38 38 70 70 70 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 1 0 BITMAP 0E00 0E00 0E00 0E00 1D80 1F80 FC00 D800 3800 3800 3800 3FE0 3FE0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 11 15 2 -2 BITMAP 0700 0700 0700 0E00 7FE0 7FE0 0E00 1C00 1C00 FFC0 FFC0 1C00 3800 3800 3800 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 0 -3 BITMAP 03E0 07F8 0E38 0E00 3FF8 3FF8 1C38 1C70 3870 3870 3870 70E0 70E0 70E0 E000 E000 E000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 2 BITMAP 20 70 38 1C 38 70 E0 40 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 18 13 2 0 BITMAP 07FFC0 1FFFC0 3C3800 703800 707000 E07F00 E07F00 E07000 E0E000 E0E000 70E000 7FFF00 1FFF00 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 18 2 1 4 BITMAP FFFFC0 FFFFC0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 5 2 5 11 BITMAP D8 70 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 5 3 2 -3 BITMAP 70 E0 78 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 5 3 6 11 BITMAP 48 D8 90 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 2 BITMAP 08 1C 38 70 E0 70 38 10 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 3 2 7 11 BITMAP E0 E0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 5 3 5 11 BITMAP 88 F8 70 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 6 6 4 2 BITMAP FC FC FC FC FC FC ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 6 2 5 11 BITMAP 74 B8 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 5 2 5 11 BITMAP 70 D8 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 4 3 10 BITMAP 33 66 EE EE ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 2 4 3 10 BITMAP C0 C0 C0 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 1B00 0E00 0000 1F80 3FC0 70C0 7800 3E00 1F00 0780 C380 FF00 7E00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 5 3 6 11 BITMAP 70 D8 70 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 -2 BITMAP 70 70 60 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 2 -2 BITMAP 01E0 07F0 0E30 0E00 1C00 FFC0 FFC0 3800 3800 7000 7000 7000 E000 E000 E000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 15 6 2 7 BITMAP FDC6 FDCE 31FE 6376 636C 630C ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 10 13 -1 0 BITMAP 00C0 01C0 0180 0380 0700 0600 0C00 1C00 3800 3000 7000 E000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 5 2 5 11 BITMAP F0 38 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 25 0 BBX 24 13 1 0 BITMAP 3C0600 7E0C00 EE1800 C63000 EE6000 FCC000 799E1E 033F3F 067777 0C6363 187777 307F7E 603C3C ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 8 2 3 0 BITMAP C3 C3 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 4 2 10 BITMAP 77 77 66 CC ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 16 1 0 BITMAP 06C0 0380 0000 07C0 1FE0 3C60 3800 3C00 1E00 0F00 0780 0380 0380 C780 FF00 7C00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 4 1 -2 BITMAP 77 77 66 CC ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 1 0 BITMAP 0D80 0700 0000 7FE0 7FE0 03C0 0780 0F00 1E00 3C00 7800 FFC0 FFC0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/luBIS19.bdf100644 1750 1750 77242 5413747463 15114 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Bold-I-Normal-Sans-19-190-75-75-P-122-ISO8859-1 SIZE 19 72 72 FONTBOUNDINGBOX 39 21 -13 -4 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Bold" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 19 POINT_SIZE 190 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH "122" CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." FONT_ASCENT 17 FONT_DESCENT 4 DEFAULT_CHAR 0 ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 6 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 7 0 BBX 6 14 2 0 BITMAP 3C 3C 3C 38 38 38 30 30 70 70 00 00 00 F0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 10 0 BBX 9 5 3 9 BITMAP E380 C180 C180 4100 4100 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 2 0 BITMAP 0130 0220 0260 0440 7FF0 0880 0880 1100 1100 FFE0 2200 6400 4400 C800 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 13 0 BBX 11 20 2 -3 BITMAP 0180 0100 0700 0FE0 1FE0 3960 3300 3E00 1E00 0F00 0780 07C0 0DC0 08C0 C980 FF80 FF00 1C00 1800 1800 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 17 0 BBX 16 14 2 0 BITMAP 3802 6C04 C408 C410 CC20 CC40 CC80 7100 021E 0433 0833 1023 2026 401C ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 2 0 BITMAP 03C0 0E20 0C30 0C30 0CE0 0FC0 1F8C 7F0C F318 E398 C1B0 E0E0 71E0 3FF8 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 2 8 BITMAP 78 78 78 30 30 E0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 7 0 BBX 7 18 2 -4 BITMAP 06 0C 1C 18 30 70 60 60 E0 E0 C0 C0 C0 E0 60 60 20 20 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 7 0 BBX 7 18 1 -4 BITMAP 10 18 1C 0C 0C 0C 0C 0E 0C 0C 1C 1C 18 38 30 60 C0 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 9 0 BBX 7 6 3 8 BITMAP 1C 5A EE 38 EC 48 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 13 0 BBX 11 12 2 0 BITMAP 0300 0200 0200 0200 0200 FFE0 0800 0800 0800 0800 0800 1800 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 -3 BITMAP 78 78 78 70 30 70 E0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 13 0 BBX 11 1 2 6 BITMAP FFE0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 7 0 BBX 4 3 2 0 BITMAP 70 F0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 11 0 BBX 12 17 -1 -3 BITMAP 0010 0020 0060 0040 0080 0180 0100 0200 0600 0400 0800 1800 1000 2000 6000 4000 8000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 13 0 BBX 10 14 3 0 BITMAP 0F00 1980 31C0 71C0 71C0 61C0 E1C0 E1C0 E1C0 E180 E380 E300 6600 3C00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 13 0 BBX 6 14 5 0 BITMAP FC 3C 3C 38 38 78 78 78 70 70 70 F0 F0 E0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 2 0 BITMAP 1FC0 3060 0070 0070 0070 0060 00C0 0300 0600 0C00 1800 7800 F000 FFC0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 3 0 BITMAP 1F80 20E0 00E0 00E0 00C0 0380 3F00 0380 01C0 01C0 01C0 01C0 C380 FE00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 1 0 BITMAP 0070 00F0 01E0 02E0 04E0 0CE0 19E0 31E0 61C0 FFF0 03C0 0380 0380 0380 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 2 0 BITMAP 1FF0 1000 3000 3000 3E00 0780 01C0 01C0 00C0 00E0 01C0 01C0 C380 FE00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 2 0 BITMAP 07F0 1C30 3C00 3800 7800 7F80 F1C0 E0E0 E060 E060 E0E0 60C0 7180 1F00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 4 0 BITMAP FFE0 00C0 0180 0180 0300 0600 0C00 0C00 1800 3000 3000 6000 E000 E000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 2 0 BITMAP 07C0 1870 1030 3830 3CF0 1FE0 0F80 3FE0 73E0 E0E0 C060 C060 60C0 3F00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 2 0 BITMAP 0F80 18E0 3060 7070 6070 6070 7070 38F0 1FE0 01E0 01C0 03C0 C380 FE00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 3C 3C 78 00 00 00 00 78 F0 F0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 7 0 BBX 6 13 1 -3 BITMAP 3C 3C 38 00 00 00 78 78 70 70 30 70 E0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 13 0 BBX 11 10 1 1 BITMAP 0060 01C0 0700 1C00 F000 6000 1000 0C00 0300 0180 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 13 0 BBX 12 7 2 2 BITMAP 7FF0 0000 0000 0000 0000 0000 FFE0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 13 0 BBX 11 10 1 1 BITMAP 3000 1800 0600 0300 00C0 01E0 0700 1C00 7000 C000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 10 0 BBX 9 14 3 0 BITMAP FE00 8380 0380 0380 0700 0E00 1C00 3800 7800 7000 0000 0000 0000 F000 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 16 0 BBX 13 14 3 0 BITMAP 07C0 1820 2010 2008 47C8 49C8 91C8 A388 A398 A3A0 9FE0 8000 6100 1F80 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 15 0 BBX 13 14 -1 0 BITMAP 01C0 01E0 03E0 07E0 05E0 0CE0 08F0 18F0 10F0 30F0 3FF0 6078 4078 8078 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 1 0 BITMAP 1FE0 3C70 3C70 3C70 3860 3840 7880 78C0 7FE0 78E0 7060 F060 F0C0 FF80 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 14 0 BBX 14 14 2 0 BITMAP 03FC 0E0C 1800 3800 7000 6000 E000 E000 E000 E000 E000 7000 7830 1FF0 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 16 0 BBX 15 14 2 0 BITMAP 1FF8 3E1C 3E0E 3C0E 3C0E 3C0E 7C0E 780E 781C 781C 7838 F030 F0E0 FF80 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 2 0 BITMAP 1FF0 3C00 3C00 3C00 3800 3800 7FC0 7800 7800 7800 7000 F000 F000 FFC0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 2 0 BITMAP 1FF0 3C00 3C00 3C00 3800 3800 7FC0 7800 7800 7000 7000 F000 F000 F000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 14 0 BBX 14 14 2 0 BITMAP 03FC 0E0C 1800 3800 7000 6000 E000 E000 E000 E078 E0F0 70F0 79F0 1FE0 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 15 0 BBX 15 14 2 0 BITMAP 1C1E 3C1E 3C1E 3C1C 3C1C 383C 7FFC 783C 7838 7078 7078 F078 F078 F070 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 7 0 BBX 6 14 2 0 BITMAP 3C 3C 3C 38 38 38 78 78 70 70 70 F0 F0 F0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 10 0 BBX 11 17 0 -3 BITMAP 01E0 01E0 01E0 01C0 03C0 03C0 03C0 03C0 0380 0380 0780 0780 0780 0700 0700 8E00 FC00 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 14 0 BBX 12 14 2 0 BITMAP 1C30 3C20 3C40 3CC0 3D80 3900 7B00 7F00 7B80 79C0 71C0 F0E0 F0E0 F070 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP 1C00 3C00 3C00 3C00 3800 3800 7800 7800 7800 7800 7000 F000 F000 FFC0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 18 0 BBX 17 14 2 0 BITMAP 1E0780 3E0780 3F0F80 3F0F00 3F1700 371700 772700 776F00 774E00 77CE00 678E00 E70E00 E31E00 E01C00 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 2 0 BITMAP 181C 3C1C 3C1C 3E18 3E38 3738 7738 73B8 73B0 71F0 61F0 E0F0 E0F0 E060 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 16 0 BBX 13 14 3 0 BITMAP 07C0 0C70 1838 3038 7038 6038 E038 E038 E038 E070 E060 60E0 71C0 1F00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 2 0 BITMAP 1FE0 3C70 3870 3870 3870 3860 79C0 7F00 7000 7000 7000 F000 F000 E000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 3 -4 BITMAP 07C0 0C70 1838 3038 7038 6038 E038 E038 E038 E070 E070 60E0 71C0 1F80 01E0 00F0 0078 003C ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 2 0 BITMAP 1FE0 3870 3870 3870 3870 38E0 7FC0 7F80 7300 7380 7180 F1C0 F1C0 E0E0 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 2 0 BITMAP 07E0 1860 3000 3800 3C00 3F00 3F80 1FC0 0FC0 03C0 01C0 0180 C100 FE00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 14 0 BBX 14 14 3 0 BITMAP FFFC 0700 0700 0700 0F00 0F00 0F00 0E00 0E00 1E00 1E00 1E00 1E00 1C00 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 3 0 BITMAP 3838 7838 7878 7070 7070 7070 F070 E070 E0E0 E0E0 E0E0 E0C0 7180 3F00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 15 0 BBX 12 14 3 0 BITMAP F010 F030 F020 7060 7040 7080 7880 7900 7900 3A00 3A00 3C00 3C00 3800 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 19 0 BBX 16 14 4 0 BITMAP C181 C382 C382 C384 C584 E588 ED98 E990 E9B0 F9A0 F1E0 71E0 61C0 61C0 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 13 0 BBX 13 14 -1 0 BITMAP 1C18 1C10 0C20 0E40 0E80 0780 0700 0700 0F80 1B80 1180 21C0 61C0 C0E0 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 13 0 BBX 10 14 2 0 BITMAP C040 E080 E100 6300 7200 7400 3C00 3800 3800 7800 7800 7800 7000 F000 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 13 0 BBX 13 14 1 0 BITMAP 1FF8 0070 00F0 00E0 01C0 0380 0700 0700 0E00 1C00 3800 3800 7000 FFE0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 7 0 BBX 8 17 1 -3 BITMAP 1F 1C 1C 18 38 38 38 38 38 70 70 70 70 70 E0 F8 F8 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 11 0 BBX 5 17 2 -3 BITMAP 80 80 80 40 40 40 40 20 20 20 30 10 10 10 08 08 08 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 7 0 BBX 8 17 1 -3 BITMAP 1F 1F 07 0E 0E 0E 0E 0E 1C 1C 1C 1C 1C 18 38 38 F8 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 13 0 BBX 9 11 1 2 BITMAP 0200 0200 0600 0E00 0900 1100 3100 2100 4080 4080 8080 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 10 0 BBX 8 1 1 -3 BITMAP FF ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 2 8 BITMAP 38 60 70 F0 F0 F0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 13 0 BBX 12 10 2 0 BITMAP 07F0 18F0 30E0 71E0 61E0 E3E0 EDE0 FDC0 F9C0 73C0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 1 0 BITMAP 1F00 1E00 3E00 3E00 3E60 3CF0 3DF0 7F70 7E70 7C60 7C60 78C0 F180 FE00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 2 0 BITMAP 0F80 1880 3000 6000 E000 E000 E100 E100 E300 3C00 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 13 0 BBX 13 14 1 0 BITMAP 0078 0078 0070 0070 07F0 18F0 30F0 71E0 61E0 E3E0 EDE0 FDE0 F9C0 73C0 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 2 0 BITMAP 0780 1DC0 38C0 71C0 F180 F300 FE00 F040 70C0 3F00 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 9 0 BBX 11 18 1 -4 BITMAP 03E0 0E20 1E00 1C00 7F80 3C00 3C00 3800 3800 3800 7800 7800 7800 7000 7000 F000 F000 F000 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 1 -4 BITMAP 07F0 08E0 18E0 30E0 71E0 63E0 64C0 7CC0 78C0 71C0 01C0 0180 C300 FE00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 1 0 BITMAP 1E00 1C00 3C00 3C00 3CE0 3DF0 3BF0 7AE0 7CE0 78E0 78E0 70C0 F1C0 F1C0 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 7 0 BBX 7 14 1 0 BITMAP 3E 00 00 00 3C 3C 3C 78 78 78 78 70 F0 F0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 8 0 BBX 11 18 -1 -4 BITMAP 01E0 0000 0000 0000 01C0 0180 0380 0380 0380 0380 0300 0300 0700 0700 0600 0600 8C00 F800 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 2 0 BITMAP 1C00 1C00 3C00 3C00 3C60 3840 3880 7900 7B00 7F00 7380 7380 F1C0 F1C0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 7 0 BBX 7 14 1 0 BITMAP 1E 1E 1C 3C 3C 3C 3C 78 78 78 78 70 F0 F0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 19 0 BBX 18 10 1 0 BITMAP 3CE380 39E7C0 3BEF80 7EEB80 7CF180 79E380 71E380 71C300 F1C300 F3C700 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 13 0 BBX 12 10 1 0 BITMAP 3CE0 39F0 3BE0 7EE0 7CE0 78E0 78E0 70C0 F1C0 F1C0 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 13 0 BBX 10 10 2 0 BITMAP 0F00 3380 71C0 61C0 E1C0 E180 E380 E300 E600 3C00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 13 0 BBX 13 14 1 -4 BITMAP 1E70 1CF8 3DF8 3D38 3A38 3C30 3870 7860 78C0 7F00 7000 7000 F000 F000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 2 -4 BITMAP 07F0 18F0 30F0 61E0 61E0 E3E0 EDE0 FDE0 F9C0 73C0 03C0 03C0 03C0 0380 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 2 0 BITMAP 38C0 3980 7A80 7C00 7800 7000 7000 F000 F000 F000 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 1 0 BITMAP 0FC0 1C40 3C00 3E00 3F00 1F80 0F80 0780 C700 FE00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 2 0 BITMAP 1C 38 38 FE 78 70 70 70 E0 E0 E0 FC 78 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 13 0 BBX 12 10 2 0 BITMAP 38F0 38F0 30E0 71E0 71E0 73E0 75E0 7DC0 F9C0 73C0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 2 0 BITMAP F020 F040 F040 7880 7900 7900 7A00 7E00 3C00 3800 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 17 0 BBX 15 10 3 0 BITMAP C1C2 C1C4 C2C4 C2CC C4C8 C4D8 E8D0 F0F0 F0E0 E0E0 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 -1 0 BITMAP 78C0 3C80 3D00 1E00 1E00 1E00 1F00 2F00 4700 C780 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 0 -4 BITMAP 7020 7040 78C0 7880 7900 3B00 3A00 3C00 3C00 3800 3000 3000 6000 C000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 12 0 BBX 12 10 1 0 BITMAP 3FF0 00E0 01C0 0380 0700 0E00 1C00 3800 7000 FFE0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 7 0 BBX 7 17 2 -3 BITMAP 0E 1E 3C 3C 1C 1C 18 78 E0 F0 70 70 70 F0 F0 F0 70 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 5 0 BBX 6 17 1 -3 BITMAP 04 04 08 08 08 10 10 10 30 20 20 20 40 40 40 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 7 0 BBX 7 17 1 -3 BITMAP 1C 1E 1E 1E 1C 3C 1C 1E 0E 3C 30 70 70 78 78 F0 E0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 13 0 BBX 12 5 2 3 BITMAP 3830 4C30 4620 8360 81C0 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 7 0 BBX 6 14 1 -4 BITMAP 3C 00 00 00 38 30 30 30 70 70 70 F0 F0 E0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 13 0 BBX 10 14 3 0 BITMAP 0300 0300 0FC0 3F80 3080 7000 E000 E000 E000 E080 E300 7F00 1800 1000 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 2 0 BITMAP 03F0 0710 0700 0F00 0E00 0E00 1E00 3F80 1E00 1C00 1C00 3800 3000 FFC0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 13 0 BBX 15 14 0 0 BITMAP 0002 3006 1008 09D0 0E60 0C20 1830 1830 0820 0860 1CE0 27B0 C018 8000 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 3 0 BITMAP 6020 7040 3080 3980 3B00 1A00 1C00 7F80 3C00 FF00 3C00 3800 3800 3800 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 5 0 BBX 6 17 1 -3 BITMAP 04 04 08 08 08 08 18 00 00 00 60 40 40 40 40 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 13 0 BBX 12 18 2 -4 BITMAP 07F0 1C30 1C00 3F00 3F80 1FC0 1FE0 13E0 2060 3060 7E40 3F80 3FC0 0FC0 07C0 03C0 C380 FE00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 13 0 BBX 7 1 6 13 BITMAP EE ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 16 0 BBX 12 14 3 0 BITMAP 0F00 3080 4040 47E0 8850 9010 9010 A010 B010 9010 4FA0 4040 3080 0F00 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 10 0 BBX 9 8 3 6 BITMAP 1F80 2780 6780 CF00 DF00 FF00 F700 6F00 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 12 0 BBX 11 8 2 1 BITMAP 0420 0C60 1080 2300 F700 7380 3980 11C0 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 13 0 BBX 11 7 3 2 BITMAP FFE0 0060 0060 0040 0040 0040 0040 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 5 0 BBX 5 1 1 6 BITMAP F8 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 13 0 BBX 8 10 4 4 BITMAP 3C 42 BF BB B3 BD A5 A5 42 3C ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 13 0 BBX 7 1 6 13 BITMAP FE ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 5 0 BBX 1 3 4 11 BITMAP 80 80 80 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 13 0 BBX 13 12 1 0 BITMAP 0080 0080 0080 0100 7FF8 0100 0200 0200 0200 0400 0000 FFF0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 -12 6 BITMAP 7C 06 06 0C 18 20 60 FC ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 -12 6 BITMAP 7C 06 0E 78 0C 0C 0C F8 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 13 0 BBX 6 1 7 13 BITMAP FC ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 1 -3 BITMAP 1C78 3C78 3C70 3CF0 38F0 39F0 7AF0 7EE0 7CE0 79E0 7000 F000 F000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 13 0 BBX 9 17 3 -3 BITMAP 7F80 FD80 F900 FB00 FB00 FB00 7300 1200 1200 3200 2200 2600 2400 2400 4400 4400 4400 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 13 0 BBX 3 1 6 6 BITMAP E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 13 0 BBX 4 4 4 -4 BITMAP 30 60 10 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 8 0 BBX 4 8 -13 6 BITMAP F0 70 60 60 60 60 E0 C0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 10 0 BBX 10 8 2 6 BITMAP 0F80 31C0 60C0 60C0 C180 C180 E300 7C00 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 12 0 BBX 11 8 1 1 BITMAP 7100 3380 39C0 1DE0 1880 2100 C600 8400 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 18 0 BBX 15 14 7 0 BITMAP F00C 7018 6030 6020 6040 6080 E106 C20E 0414 082C 106C 30FE 600C C018 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 18 0 BBX 15 14 7 0 BITMAP F00C 7018 6030 6020 6040 6080 E17C C206 0406 080C 1018 3020 6060 C0FC ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 18 0 BBX 17 14 9 0 BITMAP 7C0300 060600 0E0C00 780800 0C1000 0C2000 0C4180 F88380 010500 020B00 041B00 0C3F80 180300 300600 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 10 0 BBX 9 14 0 -4 BITMAP 0780 0000 0000 0000 0000 0F00 0E00 1C00 3800 7000 E000 E000 E080 3F80 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 15 0 BBX 13 16 -1 0 BITMAP 01E0 0000 01C0 01E0 03E0 07E0 05E0 0CE0 08F0 18F0 10F0 30F0 3FF0 6078 4078 8078 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 15 0 BBX 13 16 -1 0 BITMAP 01F8 0000 01C0 01E0 03E0 07E0 05E0 0CE0 08F0 18F0 10F0 30F0 3FF0 6078 4078 8078 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 15 0 BBX 13 16 -1 0 BITMAP 07F0 0000 01C0 01E0 03E0 07E0 05E0 0CE0 08F0 18F0 10F0 30F0 3FF0 6078 4078 8078 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 15 0 BBX 13 16 -1 0 BITMAP 03F8 0000 01C0 01E0 03E0 07E0 05E0 0CE0 08F0 18F0 10F0 30F0 3FF0 6078 4078 8078 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 15 0 BBX 13 16 -1 0 BITMAP 03B8 0000 01C0 01E0 03E0 07E0 05E0 0CE0 08F0 18F0 10F0 30F0 3FF0 6078 4078 8078 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 15 0 BBX 13 16 -1 0 BITMAP 00E0 0000 01C0 01E0 03E0 07E0 05E0 0CE0 08F0 18F0 10F0 30F0 3FF0 6078 4078 8078 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 19 0 BBX 19 14 -1 0 BITMAP 003FE0 007800 00F800 01F800 017800 027000 04FF80 0CF000 0FF000 10F000 30F000 61E000 61E000 C1FF80 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 2 -4 BITMAP 03FC 0E0C 1800 3800 7000 6000 E000 E000 E000 E000 E000 7000 7830 1FF0 0400 0C00 0200 1C00 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 12 0 BBX 12 16 2 0 BITMAP 0780 0000 1FF0 3C00 3C00 3C00 3800 3800 7FC0 7800 7800 7800 7000 F000 F000 FFC0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 12 0 BBX 12 16 2 0 BITMAP 07E0 0000 1FF0 3C00 3C00 3C00 3800 3800 7FC0 7800 7800 7800 7000 F000 F000 FFC0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 12 0 BBX 12 16 2 0 BITMAP 0FE0 0000 1FF0 3C00 3C00 3C00 3800 3800 7FC0 7800 7800 7800 7000 F000 F000 FFC0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 12 0 BBX 12 16 2 0 BITMAP 0EE0 0000 1FF0 3C00 3C00 3C00 3800 3800 7FC0 7800 7800 7800 7000 F000 F000 FFC0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 7 0 BBX 7 16 2 0 BITMAP 1E 00 3C 3C 3C 38 38 38 78 78 70 70 70 F0 F0 F0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 7 0 BBX 8 16 2 0 BITMAP 3F 00 3C 3C 3C 38 38 38 78 78 70 70 70 F0 F0 F0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 7 0 BBX 8 16 2 0 BITMAP 7F 00 3C 3C 3C 38 38 38 78 78 70 70 70 F0 F0 F0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 7 0 BBX 8 16 2 0 BITMAP 77 00 3C 3C 3C 38 38 38 78 78 70 70 70 F0 F0 F0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 16 0 BBX 16 14 1 0 BITMAP 1FFC 1F0E 1F07 1F07 1E07 3E07 FFC7 3C07 3C0E 780E 781C 7838 7870 7FC0 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 15 0 BBX 14 16 2 0 BITMAP 07F0 0000 181C 3C1C 3C1C 3E18 3E38 3738 7738 73B8 73B0 71F0 61F0 E0F0 E0F0 E060 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 16 0 BBX 13 16 3 0 BITMAP 03C0 0000 07C0 0C70 1838 3038 7038 6038 E038 E038 E038 E070 E060 60E0 71C0 1F00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 16 0 BBX 13 16 3 0 BITMAP 03F0 0000 07C0 0C70 1838 3038 7038 6038 E038 E038 E038 E070 E060 60E0 71C0 1F00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 16 0 BBX 13 16 3 0 BITMAP 07F0 0000 07C0 0C70 1838 3038 7038 6038 E038 E038 E038 E070 E060 60E0 71C0 1F00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 16 0 BBX 13 16 3 0 BITMAP 07F0 0000 07C0 0C70 1838 3038 7038 6038 E038 E038 E038 E070 E060 60E0 71C0 1F00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 16 0 BBX 13 16 3 0 BITMAP 0770 0000 07C0 0C70 1838 3038 7038 6038 E038 E038 E038 E070 E060 60E0 71C0 1F00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 13 0 BBX 13 12 1 0 BITMAP 1008 3018 1020 0840 0580 0700 0700 0D00 1080 2040 C060 8040 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 16 0 BBX 16 14 4 0 BITMAP 03E3 063E 0C1C 181C 383C 307C 709C 711C 761C 7C38 7830 3070 78E0 CF80 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 14 0 BBX 13 16 3 0 BITMAP 03C0 0000 3838 7838 7878 7070 7070 7070 F070 E070 E0E0 E0E0 E0E0 E0C0 7180 3F00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 14 0 BBX 13 16 3 0 BITMAP 07E0 0000 3838 7838 7878 7070 7070 7070 F070 E070 E0E0 E0E0 E0E0 E0C0 7180 3F00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 14 0 BBX 13 16 3 0 BITMAP 0FE0 0000 3838 7838 7878 7070 7070 7070 F070 E070 E0E0 E0E0 E0E0 E0C0 7180 3F00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 14 0 BBX 13 16 3 0 BITMAP 0EE0 0000 3838 7838 7878 7070 7070 7070 F070 E070 E0E0 E0E0 E0E0 E0C0 7180 3F00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 13 0 BBX 10 16 2 0 BITMAP 1F80 0000 C040 E080 E100 6300 7200 7400 3C00 3800 3800 7800 7800 7800 7000 F000 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 1 0 BITMAP 1C00 1C00 3C00 3FE0 3870 3870 3870 7870 78E0 79C0 7F00 7000 F000 F000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 13 0 BBX 13 18 1 -4 BITMAP 03E0 0E70 0E70 1E70 1CE0 1DC0 1DC0 3DE0 3DF0 38F8 3878 7A38 7A30 7BE0 7000 7000 F000 F000 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 13 0 BBX 12 12 2 0 BITMAP 03C0 0000 07F0 18F0 30E0 71E0 61E0 E3E0 EDE0 FDC0 F9C0 73C0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 13 0 BBX 12 12 2 0 BITMAP 07E0 0000 07F0 18F0 30E0 71E0 61E0 E3E0 EDE0 FDC0 F9C0 73C0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 13 0 BBX 12 12 2 0 BITMAP 0FE0 0000 07F0 18F0 30E0 71E0 61E0 E3E0 EDE0 FDC0 F9C0 73C0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 13 0 BBX 12 12 2 0 BITMAP 07F0 0000 07F0 18F0 30E0 71E0 61E0 E3E0 EDE0 FDC0 F9C0 73C0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 13 0 BBX 12 12 2 0 BITMAP 0EE0 0000 07F0 18F0 30E0 71E0 61E0 E3E0 EDE0 FDC0 F9C0 73C0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 13 0 BBX 12 12 2 0 BITMAP 01C0 0000 07F0 18F0 30E0 71E0 61E0 E3E0 EDE0 FDC0 F9C0 73C0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 19 0 BBX 17 10 2 0 BITMAP 07FF00 18FB80 30F180 71E300 61E700 E3FC00 E5E080 FDE080 F8E380 70FE00 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 10 0 BBX 9 14 2 -4 BITMAP 0F80 1880 3000 6000 E000 E000 E100 E100 E300 3C00 1000 3000 0800 7000 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 2 0 BITMAP 0780 0000 0780 1DC0 38C0 71C0 F180 F300 FE00 F040 70C0 3F00 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 2 0 BITMAP 07E0 0000 0780 1DC0 38C0 71C0 F180 F300 FE00 F040 70C0 3F00 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 2 0 BITMAP 0FE0 0000 0780 1DC0 38C0 71C0 F180 F300 FE00 F040 70C0 3F00 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 2 0 BITMAP 0EE0 0000 0780 1DC0 38C0 71C0 F180 F300 FE00 F040 70C0 3F00 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 7 0 BBX 7 12 1 0 BITMAP 1E 00 3C 3C 38 78 78 78 78 70 F0 F0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 7 0 BBX 9 12 1 0 BITMAP 1F80 0000 3C00 3C00 3800 7800 7800 7800 7800 7000 F000 F000 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 7 0 BBX 8 12 1 0 BITMAP 7F 00 3C 3C 38 78 78 78 78 70 F0 F0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 7 0 BBX 9 12 1 0 BITMAP 3B80 0000 3C00 3C00 3800 7800 7800 7800 7800 7000 F000 F000 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 13 0 BBX 9 17 2 0 BITMAP 0100 0300 0200 3E00 1F00 0F00 1380 2380 2F80 3380 7180 6180 E180 E380 E300 E600 3C00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 13 0 BBX 12 12 1 0 BITMAP 07F0 0000 3CE0 39F0 3BE0 7EE0 7CE0 78E0 78E0 70C0 F1C0 F1C0 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 13 0 BBX 10 12 2 0 BITMAP 0780 0000 0F00 3380 71C0 61C0 E1C0 E180 E380 E300 E600 3C00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 13 0 BBX 10 12 2 0 BITMAP 0FC0 0000 0F00 3380 71C0 61C0 E1C0 E180 E380 E300 E600 3C00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 13 0 BBX 10 12 2 0 BITMAP 1FC0 0000 0F00 3380 71C0 61C0 E1C0 E180 E380 E300 E600 3C00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 13 0 BBX 10 12 2 0 BITMAP 1FC0 0000 0F00 3380 71C0 61C0 E1C0 E180 E380 E300 E600 3C00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 13 0 BBX 10 12 2 0 BITMAP 1DC0 0000 0F00 3380 71C0 61C0 E1C0 E180 E380 E300 E600 3C00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 13 0 BBX 11 12 2 0 BITMAP 0700 0000 0000 0000 0000 FFE0 0000 0000 0000 0000 0000 1C00 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 13 0 BBX 11 10 2 0 BITMAP 0F60 33C0 71C0 63C0 E7C0 ED80 FB80 F300 E600 FC00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 13 0 BBX 12 12 2 0 BITMAP 03C0 0000 38F0 38F0 30E0 71E0 71E0 73E0 75E0 7DC0 F9C0 73C0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 13 0 BBX 12 12 2 0 BITMAP 07E0 0000 38F0 38F0 30E0 71E0 71E0 73E0 75E0 7DC0 F9C0 73C0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 13 0 BBX 12 12 2 0 BITMAP 0FE0 0000 38F0 38F0 30E0 71E0 71E0 73E0 75E0 7DC0 F9C0 73C0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 13 0 BBX 12 12 2 0 BITMAP 0EE0 0000 38F0 38F0 30E0 71E0 71E0 73E0 75E0 7DC0 F9C0 73C0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 12 0 BBX 11 16 0 -4 BITMAP 07E0 0000 7020 7040 78C0 7880 7900 3B00 3A00 3C00 3C00 3800 3000 3000 6000 C000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 13 0 BBX 13 18 1 -4 BITMAP 1F00 1F00 1F00 1F00 1E30 3E78 3EF8 3EB8 3F38 3E30 7E30 7C60 7CC0 7F00 7000 F000 F000 F000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 12 0 BBX 11 16 0 -4 BITMAP 0EE0 0000 7020 7040 78C0 7880 7900 3B00 3A00 3C00 3C00 3800 3000 3000 6000 C000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 14 18 1 -4 BITMAP 03FC 0E3C 0E38 1E78 7F78 3C78 3C78 3C70 38F0 38F0 78F0 78F0 78E0 79E0 7000 F000 F000 F000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 1 1 6 BITMAP FF80 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 10 17 3 -3 BITMAP 0F00 0F00 0E00 0E00 0E00 FFC0 1C00 1C00 1C00 1C00 3C00 3C00 3800 3800 3800 7800 7800 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 13 16 1 0 BITMAP 07F0 0000 1FF8 0070 00F0 00E0 01C0 0380 0700 0700 0E00 1C00 3800 3800 7000 FFE0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 18 10 1 0 BITMAP 0FFF80 13F9C0 31F0C0 61F180 E1F300 E1FE00 E1E040 E3E040 67F1C0 3F7E00 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 10 16 2 0 BITMAP 3B80 0000 C040 E080 E100 6300 7200 7400 3C00 3800 3800 7800 7800 7800 7000 F000 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 3C 3C 38 78 78 78 78 70 F0 F0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 9 14 0 0 BITMAP 0F00 0E00 0E00 1E80 1F80 1F80 1E00 FC00 FC00 BC00 3C00 3800 7800 7800 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP 0F00 0F00 0E00 1E00 1E80 1F80 1F80 3E00 7C00 FC00 FC00 BC00 3C00 7FF0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 11 17 2 -3 BITMAP 0780 0780 0700 0700 0700 7FE0 0E00 0E00 0E00 0E00 FFC0 1C00 1C00 1C00 1C00 3C00 3C00 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 13 18 1 -4 BITMAP 03E0 0E20 0E00 1E00 7FF8 3C78 3C70 3CF0 38F0 38F0 78F0 78E0 78E0 79E0 7000 F000 F000 F000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 1 BITMAP 60 30 38 3C 10 20 C0 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 21 14 2 0 BITMAP 03FFF8 0C7E00 187E00 303C00 707C00 607C00 E07FE0 E07C00 E07800 E07800 E0F800 60F800 71F800 1FFFE0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 18 1 2 5 BITMAP FFFFC0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 7 1 6 13 BITMAP FE ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 4 1 4 -3 BITMAP F0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 8 1 6 13 BITMAP FF ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 2 1 BITMAP 04 0C 10 20 F0 70 30 18 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 3 1 8 13 BITMAP E0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 7 1 6 13 BITMAP FE ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 9 6 3 3 BITMAP 7F80 7F80 7F00 7F00 FF00 FF00 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 7 1 6 13 BITMAP FE ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 7 1 5 13 BITMAP FE ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 6 2 8 BITMAP 39C0 6300 7380 F380 F780 F780 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 3 8 BITMAP F0 E0 E0 60 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 11 12 1 0 BITMAP 0FE0 0000 0FC0 1C40 3C00 3E00 3F00 1F80 0F80 0780 C700 FE00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 3 1 8 13 BITMAP E0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 -3 BITMAP 78 78 78 70 30 70 E0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 11 17 4 -3 BITMAP 03E0 0E20 1C00 1C00 3C00 FF00 3800 3800 7800 7800 7800 7800 7000 7000 F000 F000 F000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 17 8 2 6 BITMAP FFF780 38F780 38F780 38FF00 38F700 79B700 79B700 718F00 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 14 14 -6 0 BITMAP 000C 0018 0030 0020 0040 0080 0100 0200 0400 0800 1000 3000 6000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 4 1 7 13 BITMAP F0 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 25 0 BBX 24 14 2 0 BITMAP 380600 6C0400 C40800 C41000 CC2000 CC4000 CC8000 710000 023E1E 046333 084333 10C323 204636 407C1C ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 15 1 2 0 BITMAP E38E ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 6 2 8 BITMAP 7BC0 7BC0 73C0 7380 3180 E700 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 16 2 0 BITMAP 0FE0 0000 07E0 1860 3000 3800 3C00 3F00 3F80 1FC0 0FC0 03C0 01C0 0180 C100 FE00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 7 0 -3 BITMAP 7BC0 7BC0 7BC0 7380 3180 7380 E700 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 12 1 0 BITMAP 07F0 0000 3FF0 00E0 01C0 0380 0700 0E00 1C00 3800 7000 FFE0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/luBIS24.bdf100644 1750 1750 113667 5413747464 15133 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Bold-I-Normal-Sans-24-240-75-75-P-151-ISO8859-1 SIZE 24 72 72 FONTBOUNDINGBOX 82 27 -17 -5 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Bold" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 24 POINT_SIZE 240 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 151 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 22 FONT_DESCENT 5 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 8 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 8 0 BBX 8 17 2 0 BITMAP 1F 1F 1F 1E 1E 1E 3C 3C 3C 38 38 38 00 00 78 F8 F8 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 13 0 BBX 11 8 4 10 BITMAP FBE0 F1E0 F1E0 F1E0 71C0 71C0 71C0 71C0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 2 0 BITMAP 00CE 01CC 019C 0318 3FFE 7FFE 0670 0C60 0C60 1CC0 FFFC FFF8 3180 3300 6300 6700 C600 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 16 0 BBX 14 23 3 -3 BITMAP 00E0 00E0 00E0 07FC 0FFC 1FFC 1EC8 1EC0 1E80 1F80 0FC0 07E0 03F0 03F0 02F8 0670 46F0 FFF0 FFE0 FF80 0E00 0E00 0E00 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 22 0 BBX 20 17 3 0 BITMAP 1F00F0 7F81C0 7F8380 F38780 F38F00 FF9E00 FF3C00 3C7800 00F3C0 01EFE0 03DFF0 079EF0 0F1CF0 1E1CF0 1C1FE0 381FC0 F00F80 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 20 0 BBX 18 17 2 0 BITMAP 00F800 03FE00 07FE00 078E00 079E00 07FC00 07F000 0FE1C0 1DE3C0 79F380 70F380 F0FF00 F87E00 FC7C00 FFFC00 7FFE00 1F9F00 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 3 10 BITMAP 7C 7C 7C 78 78 38 F0 E0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 9 0 BBX 10 23 2 -5 BITMAP 00C0 0180 0380 0700 0F00 1E00 3C00 3C00 7C00 7800 F800 F800 F800 F800 F000 F000 F000 7800 7800 7800 3C00 1800 0800 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 9 0 BBX 10 23 1 -5 BITMAP 0800 0E00 0E00 0F00 0780 0780 0780 0780 0780 07C0 0780 0780 0F80 0F80 0F00 0F00 1E00 1E00 3C00 7800 F000 E000 8000 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 11 0 BBX 9 9 4 8 BITMAP 0E00 0C00 6D80 7380 E380 1400 F600 6700 2400 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 3 0 BITMAP 01C0 0180 0380 0380 0380 FFFC FFFC FFFC 0700 0700 0700 0600 0600 0E00 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 -4 BITMAP 7C 7C 7C 78 78 38 38 F0 E0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 16 0 BBX 14 3 3 6 BITMAP FFFC FFFC FFFC ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 8 0 BBX 6 5 2 0 BITMAP 7C 7C FC F8 F8 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 14 0 BBX 18 22 0 -4 BITMAP 0003C0 000780 000700 000F00 001E00 001C00 003C00 007800 007000 00F000 00E000 01C000 03C000 038000 070000 0F0000 0E0000 1E0000 3C0000 380000 780000 F00000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 2 0 BITMAP 01F0 07FC 0FFC 1F3E 3E1E 7C1E 7C1E 783E F83E F83E F83E F87C F878 F8F8 7FF0 3FE0 1F80 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 16 0 BBX 8 17 6 0 BITMAP 7F 7F FE 1E 1E 3E 3E 3C 3C 3C 7C 7C 78 78 78 F8 F8 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 2 0 BITMAP 07F0 0FFC 1FFE 107E 003E 003E 007C 00FC 01F0 07E0 0F80 1F00 3C00 7800 7FF8 FFF8 FFF8 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 3 0 BITMAP 0FF0 1FF8 1FFC 107C 007C 0078 00F0 1FC0 1FE0 1FF0 01F8 00F8 00F8 C1F0 FFF0 FFE0 7F80 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 1 0 BITMAP 003E 007E 00FC 01FC 03FC 07BC 0F7C 1E78 3C78 7878 7FFE FFFE FFFC 00F0 00F0 00F0 01E0 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 3 0 BITMAP 0FFE 1FFE 1FFC 1C00 1800 1800 3F00 3FE0 3FF0 03F8 00F8 00F8 00F8 C1F8 FFF0 FFE0 FF80 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 3 0 BITMAP 01FE 07FE 1FFE 1F06 3E00 7C00 7FE0 FFF8 FFF8 FC7C F87C F87C F878 78F8 7FF0 3FE0 0F80 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 5 0 BITMAP 7FFC 7FFC FFF8 0078 00F0 01E0 03C0 07C0 0F80 0F00 1E00 3E00 3C00 7C00 7800 F800 F800 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 2 0 BITMAP 01F8 07FC 0FFE 1E1E 1E1E 1E1C 1FF8 0FF0 1FF8 3DFC 787C F03C F03C F87C FFF8 7FF0 1FC0 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 2 0 BITMAP 03E0 0FF8 1FFC 3E3C 3C3E 7C3E 7C3E 7C7E 3FFE 3FFE 0FFC 007C 00F8 C1F0 FFF0 FFC0 FF00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 2 0 BITMAP 3E 3E 3E 3C 3C 00 00 00 78 78 F8 F8 F8 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 8 0 BBX 8 17 1 -4 BITMAP 1F 1F 1F 1E 3E 00 00 00 3C 7C 7C 7C 7C 38 38 F0 E0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 16 0 BBX 15 14 3 0 BITMAP 0002 000E 003E 01FC 07F0 1F80 FE00 7C00 1F00 0FC0 03E0 00F8 0038 0010 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 16 0 BBX 15 9 2 2 BITMAP 3FFE 7FFE 7FFE 0000 0000 0000 FFFC FFFC FFF8 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 16 0 BBX 15 14 1 0 BITMAP 1000 3800 3E00 0F80 07E0 01F0 007C 00FE 03F0 1FC0 7F00 F800 E000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 13 0 BBX 12 17 3 0 BITMAP 3FC0 7FE0 FFF0 C3F0 01F0 01E0 03C0 0780 0F00 1E00 3C00 7C00 0000 0000 7800 F800 F800 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 20 0 BBX 19 17 2 0 BITMAP 00FC00 03FF00 0F0380 1C00C0 38FCE0 73FC60 671C60 C61860 CC3860 CC58C0 CFD9C0 CFBF80 C63E00 600000 382000 1FF000 07C000 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 18 0 BBX 17 17 1 0 BITMAP 007C00 00FC00 00FC00 01FC00 01FE00 03FE00 039E00 079E00 071E00 0E1F00 0FFF00 1FFF00 3FFF00 380F00 780F80 700F80 F00780 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 2 0 BITMAP 1FF8 1FFE 1FFE 1E3E 1E3E 3C7C 3FF8 3FF0 3FE0 3CF8 7C7C 787C 787C 787C 7FFC FFF8 FFE0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 18 0 BBX 17 17 2 0 BITMAP 00FF00 03FF80 0FFF80 1F8100 3F0000 3E0000 7C0000 780000 F80000 F80000 F80000 F80000 FC0000 7E0600 7FFC00 3FFC00 0FF000 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 20 0 BBX 19 17 2 0 BITMAP 1FFF00 1FFF80 1FFFC0 1F0FE0 1E03E0 3E03E0 3E03E0 3E03E0 3C03E0 3C03E0 7C07C0 7C0FC0 7C1F80 783F00 7FFE00 FFFC00 FFE000 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 15 0 BBX 15 17 2 0 BITMAP 1FFE 1FFE 1FFE 1E00 1E00 3E00 3E00 3FF0 3FF0 3FF0 7C00 7C00 7800 7800 7FF8 FFF0 FFF0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 15 0 BBX 15 17 2 0 BITMAP 1FFE 1FFE 1FFC 1E00 1E00 3E00 3E00 3FF0 3FF0 3FF0 7C00 7C00 7800 7800 7800 F800 F800 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 18 0 BBX 17 17 2 0 BITMAP 00FF00 03FF80 0FFF80 1F8100 3E0000 3E0000 7C0000 780000 F81E00 F81E00 F81E00 F81E00 FC3E00 7E3C00 7FFC00 3FFC00 0FF800 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 20 0 BBX 19 17 2 0 BITMAP 1F03E0 1F03E0 1F03C0 1E03C0 1E07C0 3E07C0 3E07C0 3FFF80 3FFF80 3FFF80 7C0F80 7C0F80 7C0F00 780F00 781F00 F81F00 F81F00 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 9 0 BBX 8 17 2 0 BITMAP 1F 1F 1E 1E 1E 3E 3E 3C 3C 3C 7C 7C 78 78 78 F8 F8 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 12 0 BBX 14 21 0 -4 BITMAP 007C 007C 0078 0078 00F8 00F8 00F8 00F0 00F0 01F0 01F0 01F0 01E0 01E0 03E0 03E0 03E0 47C0 FFC0 FF80 FE00 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 18 0 BBX 16 17 2 0 BITMAP 1F0F 1F1E 1E3C 1E38 3E78 3EF0 3FE0 3DC0 3FE0 7FE0 7DF0 7DF0 78F8 78FC F87C F83E F83F ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 2 0 BITMAP 1F00 1F00 1E00 1E00 1E00 3E00 3E00 3C00 3C00 3C00 7C00 7C00 7800 7800 7FF8 FFF8 FFF8 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 23 0 BBX 22 17 2 0 BITMAP 1F807C 1FC0FC 1FC1F8 1FC1F8 1FC3F8 3FC3F8 3FC7F8 3BCEF0 3BCEF0 39DCF0 79FCF0 79F9F0 71F9E0 71F1E0 71E1E0 F1E1E0 F003E0 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 19 0 BBX 18 17 2 0 BITMAP 1E03C0 1F03C0 1F03C0 1F8380 3F8380 3FC780 3FC780 3BE780 39E700 79F700 78FF00 78FF00 707F00 707E00 F03E00 F03E00 F01E00 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 21 0 BBX 19 17 2 0 BITMAP 00FE00 03FF80 0FFFC0 1F87E0 3E03E0 3C03E0 7C03E0 7803E0 F803E0 F803E0 F807C0 F807C0 F80F80 7C3F00 7FFE00 3FF800 0FE000 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 15 0 BBX 15 17 2 0 BITMAP 1FF8 1FFE 1FFE 1E3E 3E3E 3E3E 3C3C 3C7C 3FF8 7FF0 7FC0 7800 7800 7800 F800 F800 F000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 21 0 BBX 20 21 2 -4 BITMAP 00FE00 03FF80 0FFFC0 1F87E0 3E03E0 3C03E0 7C03E0 7803E0 F803E0 F803E0 F807C0 F807C0 F80F80 7C3F00 7FFE00 3FF800 0FF800 003F80 001FF0 0007C0 000180 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 17 0 BBX 16 17 2 0 BITMAP 1FFC 1FFF 1FFF 1E1F 1E1F 3E1E 3E3E 3CFC 3FF8 3FF0 7CF0 7CF0 78F8 7878 787C F87C F83E ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 2 0 BITMAP 03F8 0FFC 1FFC 1E0C 3E00 3E00 3F00 1FC0 0FE0 07F0 01F8 00F8 00F8 41F0 FFF0 FFE0 FF00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 18 0 BBX 18 17 3 0 BITMAP FFFFC0 FFFFC0 FFFFC0 03E000 03E000 03C000 03C000 07C000 07C000 07C000 078000 078000 0F8000 0F8000 0F8000 0F0000 1F0000 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 18 0 BBX 17 17 3 0 BITMAP 3E0780 3E0780 3C0F80 3C0F00 7C0F00 7C0F00 7C0F00 781F00 781E00 F81E00 F81E00 F81E00 F83C00 FC7C00 7FF800 3FF000 0FC000 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 18 0 BBX 17 17 4 0 BITMAP F80780 F80700 F80F00 780E00 781E00 7C1C00 7C3800 7C7800 7C7000 3CF000 3CE000 3FE000 3FC000 3FC000 1F8000 1F0000 1F0000 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 24 0 BBX 22 17 4 0 BITMAP F0781C F07838 F07838 F0F870 F0F870 F1F8E0 F9F8E0 FBF9C0 FBF9C0 FB7B80 7F7B80 7F7F80 7E7F00 7E7F00 7C7E00 7C7E00 787C00 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 17 0 BBX 19 17 0 0 BITMAP 0F81E0 0F83C0 07C780 07CF00 03FE00 03FC00 03F800 01F800 01F000 03F800 03F800 077800 0F7C00 1E7C00 3C3E00 783E00 F03F00 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 4 0 BITMAP F81E F83C 7878 7C70 3CF0 3FE0 3FC0 1F80 1F80 1F00 1F00 1E00 1E00 1E00 3E00 3E00 3C00 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 16 0 BBX 17 17 1 0 BITMAP 0FFF80 0FFF80 0FFF80 003F00 007E00 00FC00 01F800 01F000 03E000 07E000 0FC000 1F8000 3F0000 7E0000 7FFC00 FFFC00 FFFC00 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 9 0 BBX 11 22 1 -4 BITMAP 07E0 0FE0 0FC0 0F00 0F00 1F00 1E00 1E00 1E00 1E00 3C00 3C00 3C00 3C00 3C00 7800 7800 7800 7800 7E00 FE00 FC00 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 14 0 BBX 9 22 4 -4 BITMAP E000 F000 7000 7000 7000 7800 3800 3800 3800 1C00 1C00 1C00 1C00 0E00 0E00 0E00 0F00 0700 0700 0700 0780 0380 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 9 0 BBX 11 22 0 -4 BITMAP 0FE0 0FE0 0FC0 03C0 03C0 03C0 03C0 0780 0780 0780 0780 0780 0F00 0F00 0F00 0F00 1F00 1E00 1E00 FE00 FE00 FC00 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 2 3 BITMAP 0040 0040 00C0 01E0 01E0 03E0 0770 0770 0E30 1C38 3C38 3818 701C F01C ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 12 0 BBX 11 3 0 -3 BITMAP FFE0 FFE0 FFE0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 3 10 BITMAP 0C 3C 3C 70 78 78 F8 F8 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 16 0 BBX 15 13 2 0 BITMAP 03FE 07FE 1FFE 3E3C 3C3C 7C7C 787C F8FC F9F8 FB78 FE78 FCF8 78F8 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 2 0 BITMAP 0F00 1F00 1F00 1E00 1E00 1E3C 3E7E 3CFE 3DFE 3D3E 3E3E 7C3C 7C7C 7878 78F8 7FF0 FFC0 FF80 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 2 0 BITMAP 03F0 0FF8 1FF0 3E10 7C00 7C00 F800 F800 F800 F820 FFE0 7FE0 3F80 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 16 0 BBX 16 18 2 0 BITMAP 001F 001F 001E 001E 003E 03FE 07FE 1FFC 3E3C 3C3C 7C7C 78FC F8F8 F978 FB78 FEF8 FCF8 78F0 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 2 0 BITMAP 03E0 0FF0 1FF8 3C78 78F0 7FF0 FFC0 FF00 F808 F838 FFF8 7FF0 1F80 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 11 0 BBX 14 23 1 -5 BITMAP 00F8 03FC 07FC 0F84 0F00 3FE0 3FE0 7FE0 1E00 1E00 3E00 3E00 3E00 3C00 3C00 7C00 7C00 7C00 7C00 7800 F800 F800 F800 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 16 0 BBX 16 18 1 -5 BITMAP 01FF 07FF 0FFF 1F1E 3E3E 3C3E 7C7E 78FE 79BC 7FBC 7F7C 7E7C 3C7C 80F8 E0F8 FFF0 7FE0 7F80 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 2 0 BITMAP 0F00 1F00 1F00 1F00 1F00 1E1C 3E7E 3EFE 3EFE 3DBE 3F3C 7E3C 7C7C 7C7C 787C 7878 F878 F8F8 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 8 0 BBX 8 18 2 0 BITMAP 1F 1F 1F 1E 00 3E 3E 3C 3C 3C 7C 7C 78 78 78 F8 F8 F8 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 10 0 BBX 14 23 -1 -5 BITMAP 007C 007C 007C 0078 0000 00F8 00F8 00F0 00F0 01F0 01F0 01F0 01E0 01E0 03E0 03E0 03E0 03C0 07C0 C780 FF80 FF00 7C00 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 2 0 BITMAP 1F00 1F00 1F00 1E00 1E00 3E1E 3E3C 3E78 3C70 3CE0 7DC0 7FE0 7FE0 79E0 79F0 F8F0 F8F8 F8FC ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 8 0 BBX 8 18 2 0 BITMAP 1F 1F 1F 1E 1E 3E 3E 3E 3C 3C 7C 7C 7C 78 78 F8 F8 F8 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 24 0 BBX 22 13 2 0 BITMAP 3E3878 3CFCFC 3DFDFC 3DFFFC 3F7F7C 7F7F7C 7E7E78 7C7C78 7C7C78 7878F8 F8F8F8 F8F0F0 F0F0F0 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 16 0 BBX 15 13 2 0 BITMAP 1E1C 3E7E 3EFE 3DFE 3DBE 3F3C 7E3C 7C7C 7C7C 787C 7878 F878 F8F8 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 16 0 BBX 15 13 2 0 BITMAP 03F0 0FFC 1FFC 3E7E 7C3E 783E F83C F83C F878 F8F8 FFF0 7FE0 1F00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 16 0 BBX 16 18 1 -5 BITMAP 1F1E 1F3F 1E7F 1EDF 1F9F 3F1F 3E1E 3E3E 3C3C 3C7C 7FF8 7FE0 7FC0 7800 7800 F800 F800 F800 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 2 -5 BITMAP 03FE 07FE 1FFE 3E3C 3C3C 7C7C 78FC F8FC F978 FF78 FE78 FCF8 78F8 00F0 00F0 01F0 01F0 01F0 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 2 0 BITMAP 3E38 3E70 3EF0 3DF0 3D80 7F00 7E00 7C00 7C00 7800 F800 F800 F800 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 1 0 BITMAP 07F0 1FF0 1FE0 3E00 1E00 1F00 0F80 07C0 03E0 43E0 FFC0 FFC0 7F00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 10 0 BBX 9 16 3 0 BITMAP 0E00 3E00 3E00 FF80 FF80 FF80 7C00 7C00 7C00 7800 7800 F800 F800 FF00 FE00 7E00 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 16 0 BBX 15 13 2 0 BITMAP 3E3E 3C3E 3C3C 7C3C 7C7C 7C7C 78FC 79F8 FB78 FE78 FEF8 FCF8 70F0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 15 0 BBX 15 13 3 0 BITMAP F81E F81C F83C 7878 7C70 7CF0 7CE0 7DE0 3FC0 3F80 3F80 3F00 3F00 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 21 0 BBX 20 13 3 0 BITMAP F0F0F0 F0F0E0 F1F1E0 F1F1C0 F3FBC0 F3FB80 F77F80 F77F00 FE7F00 FE7E00 FC7E00 FC7C00 F87C00 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 14 0 BBX 15 13 0 0 BITMAP 1F1E 1F3C 0F78 0FF0 07E0 07E0 07C0 0FC0 0FE0 1FE0 3DF0 79F0 F0F8 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 15 0 BBX 17 18 1 -5 BITMAP 3E0780 3E0700 3E0E00 1E1E00 1F1C00 1F3800 1F7800 1F7000 0FE000 0FE000 0FC000 0F8000 0F8000 0F0000 1E0000 3E0000 7C0000 F80000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 15 0 BBX 15 13 1 0 BITMAP 1FFE 1FFE 3FFC 00FC 01F0 03E0 07C0 0F80 1F00 7E00 7FFC FFF8 FFF8 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 9 0 BBX 9 22 2 -4 BITMAP 0780 0F80 1F80 1E00 1E00 1E00 1E00 1E00 1E00 3C00 7800 F000 7800 3C00 3C00 7C00 7800 F800 F800 F800 7800 3800 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 6 0 BBX 7 22 1 -4 BITMAP 0E 0E 0E 0C 1C 1C 1C 1C 18 38 38 38 38 30 70 70 70 70 60 E0 E0 E0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 9 0 BBX 9 22 1 -4 BITMAP 0E00 0F00 0F80 0F80 0F80 0F00 1F00 1E00 1E00 0F00 0F80 0F00 1E00 3C00 3C00 3C00 3C00 3C00 7C00 FC00 F800 F000 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 16 0 BBX 15 6 2 4 BITMAP 3C06 7F0E 7F8C E3FC E1FC C078 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 8 0 BBX 8 18 1 -5 BITMAP 1F 1F 1E 00 00 1C 1C 1C 3C 3C 3C 3C 78 78 78 F8 F8 F8 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 16 0 BBX 13 17 4 0 BITMAP 0060 00E0 01F8 0FF8 1F38 3C08 7C00 7800 F800 F800 F800 FFF0 7FF0 7FF0 0F00 0700 0700 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 3 0 BITMAP 00FC 01FE 03FE 07C2 0780 0780 0F80 3FE0 3FE0 3FE0 0F00 1F00 1E00 3800 7FF8 FFF0 FFF0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 16 0 BBX 19 17 0 0 BITMAP 080040 1C00E0 1C03C0 0EF780 07FF00 07FE00 079E00 0F1E00 0F1E00 0F1E00 0F3C00 0FFC00 1FFC00 3DEE00 780700 E00700 400200 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 16 0 BBX 16 17 4 0 BITMAP F80F 7C1E 7C3C 3E78 3EF0 1FE0 1FC0 0F80 7FE0 7FE0 1F00 FFE0 FFC0 1F00 1E00 3E00 3E00 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 6 0 BBX 7 22 1 -4 BITMAP 0E 0E 0C 0C 0C 1C 1C 18 18 00 00 00 00 30 30 70 70 70 60 60 E0 E0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 16 0 BBX 15 22 2 -5 BITMAP 03FC 0FFE 1FFE 1F06 1F00 1F80 0FE0 0FF0 1FF8 3CFC 383C 3C3C 3F38 3FF8 1FF0 07F0 01F8 00F8 41F8 FFF0 FFE0 7F80 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 16 0 BBX 8 3 8 14 BITMAP E7 E7 E7 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 20 0 BBX 18 17 3 0 BITMAP 03F000 0FFC00 1C0E00 380300 61F980 63FD80 C704C0 CE00C0 CC00C0 CC00C0 CE00C0 67F180 63F180 380300 1C0E00 0FFC00 03F000 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 13 0 BBX 12 9 3 8 BITMAP 0FF0 1FF0 39E0 71E0 F3E0 F7E0 FDE0 FBC0 73C0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 15 0 BBX 14 11 2 1 BITMAP 0208 0F3C 1F7C 3EF8 7DF0 FBE0 79E0 79E0 3CF0 1C70 0820 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 16 0 BBX 14 9 3 2 BITMAP FFFC FFFC FFFC 0018 0018 0038 0038 0038 0038 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 7 0 BBX 6 3 2 6 BITMAP FC FC FC ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 16 0 BBX 12 12 4 5 BITMAP 0F80 3FC0 70E0 67B0 CFF0 CC90 CF10 CD30 7DB0 70E0 3FC0 0F80 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 16 0 BBX 8 3 8 14 BITMAP FF FF FF ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 6 0 BBX 4 4 4 13 BITMAP 60 90 90 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 16 0 BBX 16 14 1 0 BITMAP 00E0 00E0 00C0 3FFF 3FFF 3FFF 01C0 01C0 0180 0380 0000 FFFC FFFC FFFC ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 -14 7 BITMAP 1F00 3F80 2380 0380 0700 1E00 3800 7000 FF00 FF00 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 -15 7 BITMAP 3F00 3F80 0380 0300 3C00 3F00 0300 8700 FF00 FC00 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 16 0 BBX 7 3 9 15 BITMAP 1E 38 E0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 16 0 BBX 16 17 1 -4 BITMAP 1F1F 1F1F 1E1E 1E1E 3E3E 3E3E 3E7E 3CFC 3DBC 7FBC 7F7C 7E7C 7E78 7800 F800 F800 F800 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 16 0 BBX 11 21 4 -4 BITMAP 3FE0 7FE0 FEE0 FEC0 FEC0 FCC0 FDC0 7DC0 1D80 1D80 1980 1B80 1B80 3B00 3B00 3300 3700 3700 7600 7600 6600 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 16 0 BBX 4 3 8 6 BITMAP 70 F0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 16 0 BBX 5 5 5 -5 BITMAP 38 70 38 18 F0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 10 0 BBX 5 10 -17 7 BITMAP F8 F8 30 70 70 70 70 60 E0 E0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 13 0 BBX 12 9 3 8 BITMAP 07C0 1FF0 3FF0 78F0 F0F0 F0E0 F1C0 FF80 3E00 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 15 0 BBX 14 11 1 1 BITMAP 1040 38E0 3CF0 1E78 1E78 1F7C 3EF8 7DF0 79E0 F3C0 4100 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 23 0 BBX 20 17 9 0 BITMAP F800F0 F801E0 3003C0 700780 700F00 701E00 703C00 607870 E0F0F0 E1E1E0 03C360 0784E0 0F0FF0 1E1FF0 3C00C0 7800C0 F001C0 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 23 0 BBX 20 17 9 0 BITMAP F800F0 F801E0 3003C0 700780 700F00 701E00 703C00 607BE0 E0F7F0 E1E470 03C070 0780E0 0F03C0 1E0700 3C0E00 781FE0 F01FE0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 23 0 BBX 21 17 10 0 BITMAP 3F0078 3F80F0 0381E0 0303C0 3C0780 3F0F00 031E00 873C38 FF7878 FCF0F0 01E1B0 03C270 0787F8 0F0FF8 1E0060 3C0060 7800E0 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 13 0 BBX 12 18 0 -5 BITMAP 01F0 01F0 01E0 0000 0000 03E0 03C0 07C0 0F80 1F00 3C00 7800 F800 F800 FC30 FFF0 7FE0 1FC0 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 18 0 BBX 17 21 1 0 BITMAP 007800 001C00 000E00 000000 007C00 00FC00 00FC00 01FC00 01FE00 03FE00 039E00 079E00 071E00 0E1F00 0FFF00 1FFF00 3FFF00 380F00 780F80 700F80 F00780 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 18 0 BBX 17 21 1 0 BITMAP 000780 000E00 003800 000000 007C00 00FC00 00FC00 01FC00 01FE00 03FE00 039E00 079E00 071E00 0E1F00 0FFF00 1FFF00 3FFF00 380F00 780F80 700F80 F00780 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 18 0 BBX 17 21 1 0 BITMAP 001E00 003F00 00E380 000000 007C00 00FC00 00FC00 01FC00 01FE00 03FE00 039E00 079E00 071E00 0E1F00 0FFF00 1FFF00 3FFF00 380F00 780F80 700F80 F00780 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 18 0 BBX 17 21 1 0 BITMAP 003B80 007F00 00EF00 000000 007C00 00FC00 00FC00 01FC00 01FE00 03FE00 039E00 079E00 071E00 0E1F00 0FFF00 1FFF00 3FFF00 380F00 780F80 700F80 F00780 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 18 0 BBX 17 21 1 0 BITMAP 00E700 00E700 00E700 000000 007C00 00FC00 00FC00 01FC00 01FE00 03FE00 039E00 079E00 071E00 0E1F00 0FFF00 1FFF00 3FFF00 380F00 780F80 700F80 F00780 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 18 0 BBX 17 22 1 0 BITMAP 000C00 001200 001200 000C00 000000 007C00 00FC00 00FC00 01FC00 01FE00 03FE00 039E00 079E00 071E00 0E1F00 0FFF00 1FFF00 3FFF00 380F00 780F80 700F80 F00780 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 24 0 BBX 26 17 0 0 BITMAP 0007FFC0 000FFFC0 000FFF80 001FC000 003FC000 007FC000 00F78000 00E7FE00 01EFFE00 03CFFE00 078F8000 0FFF0000 0FFF0000 1FFF0000 3C1FFF00 781FFE00 E01FFE00 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 18 0 BBX 17 22 2 -5 BITMAP 00FF00 03FF80 0FFF80 1F8100 3F0000 3E0000 7C0000 780000 F80000 F80000 F80000 F80000 FC0000 7E0600 7FFC00 3FFC00 0FF000 060000 0E0000 070000 030000 1E0000 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 15 0 BBX 15 21 2 0 BITMAP 03C0 00E0 0070 0000 1FFE 1FFE 1FFE 1E00 1E00 3E00 3E00 3FF0 3FF0 3FF0 7C00 7C00 7800 7800 7FF8 FFF0 FFF0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 15 0 BBX 15 21 2 0 BITMAP 003C 0070 01C0 0000 1FFE 1FFE 1FFE 1E00 1E00 3E00 3E00 3FF0 3FF0 3FF0 7C00 7C00 7800 7800 7FF8 FFF0 FFF0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 15 0 BBX 15 21 2 0 BITMAP 00F0 01F8 071C 0000 1FFE 1FFE 1FFE 1E00 1E00 3E00 3E00 3FF0 3FF0 3FF0 7C00 7C00 7800 7800 7FF8 FFF0 FFF0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 15 0 BBX 15 21 2 0 BITMAP 0738 0738 0738 0000 1FFE 1FFE 1FFE 1E00 1E00 3E00 3E00 3FF0 3FF0 3FF0 7C00 7C00 7800 7800 7FF8 FFF0 FFF0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 9 0 BBX 9 21 2 0 BITMAP 1E00 0700 0380 0000 1F00 1F00 1E00 1E00 1E00 3E00 3E00 3C00 3C00 3C00 7C00 7C00 7800 7800 7800 F800 F800 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 9 0 BBX 10 21 2 0 BITMAP 03C0 0700 1C00 0000 1F00 1F00 1E00 1E00 1E00 3E00 3E00 3C00 3C00 3C00 7C00 7C00 7800 7800 7800 F800 F800 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 9 0 BBX 10 21 2 0 BITMAP 0F00 1F80 71C0 0000 1F00 1F00 1E00 1E00 1E00 3E00 3E00 3C00 3C00 3C00 7C00 7C00 7800 7800 7800 F800 F800 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 9 0 BBX 10 21 2 0 BITMAP 39C0 39C0 39C0 0000 1F00 1F00 1E00 1E00 1E00 3E00 3E00 3C00 3C00 3C00 7C00 7C00 7800 7800 7800 F800 F800 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 20 0 BBX 20 17 1 0 BITMAP 0FFF80 0FFFC0 0FFFE0 0F07F0 1F01F0 1F01F0 1F01F0 FFE1F0 FFE1F0 FFE1E0 3E03E0 3E07E0 3C0FC0 3C1F80 7FFF00 7FFE00 7FF000 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 19 0 BBX 18 21 2 0 BITMAP 007700 00FE00 01DE00 000000 1E03C0 1F03C0 1F03C0 1F8380 3F8380 3FC780 3FC780 3BE780 39E700 79F700 78FF00 78FF00 707F00 707E00 F03E00 F03E00 F01E00 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 21 0 BBX 19 21 2 0 BITMAP 007800 001C00 000E00 000000 00FE00 03FF80 0FFFC0 1F87E0 3E03E0 3C03E0 7C03E0 7803E0 F803E0 F803E0 F807C0 F807C0 F80F80 7C3F00 7FFE00 3FF800 0FE000 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 21 0 BBX 19 21 2 0 BITMAP 000F00 001C00 007000 000000 00FE00 03FF80 0FFFC0 1F87E0 3E03E0 3C03E0 7C03E0 7803E0 F803E0 F803E0 F807C0 F807C0 F80F80 7C3F00 7FFE00 3FF800 0FE000 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 21 0 BBX 19 21 2 0 BITMAP 003C00 007E00 01C700 000000 00FE00 03FF80 0FFFC0 1F87E0 3E03E0 3C03E0 7C03E0 7803E0 F803E0 F803E0 F807C0 F807C0 F80F80 7C3F00 7FFE00 3FF800 0FE000 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 21 0 BBX 19 21 2 0 BITMAP 007700 00FE00 01DE00 000000 00FE00 03FF80 0FFFC0 1F87E0 3E03E0 3C03E0 7C03E0 7803E0 F803E0 F803E0 F807C0 F807C0 F80F80 7C3F00 7FFE00 3FF800 0FE000 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 21 0 BBX 19 21 2 0 BITMAP 00E700 00E700 00E700 000000 00FE00 03FF80 0FFFC0 1F87E0 3E03E0 3C03E0 7C03E0 7803E0 F803E0 F803E0 F807C0 F807C0 F80F80 7C3F00 7FFE00 3FF800 0FE000 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 16 0 BBX 16 14 2 0 BITMAP 1002 3807 1C1E 0E3C 0F78 07F0 03E0 07C0 0FE0 1EF0 3C70 7838 E01C 4008 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 21 0 BBX 22 17 3 0 BITMAP 007F7C 01FFF8 07FFE0 0FC3F0 1F07F0 1E0FF0 3E1FF0 3C3DF0 7C79F0 7CF1F0 7DE3E0 7FC3E0 7F87C0 3F1F80 3FFF00 7FFC00 FFF000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 18 0 BBX 17 21 3 0 BITMAP 01E000 007000 003800 000000 3E0780 3E0780 3C0F80 3C0F00 7C0F00 7C0F00 7C0F00 781F00 781E00 F81E00 F81E00 F81E00 F83C00 FC7C00 7FF800 3FF000 0FC000 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 18 0 BBX 17 21 3 0 BITMAP 003C00 007000 01C000 000000 3E0780 3E0780 3C0F80 3C0F00 7C0F00 7C0F00 7C0F00 781F00 781E00 F81E00 F81E00 F81E00 F83C00 FC7C00 7FF800 3FF000 0FC000 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 18 0 BBX 17 21 3 0 BITMAP 00F000 01F800 071C00 000000 3E0780 3E0780 3C0F80 3C0F00 7C0F00 7C0F00 7C0F00 781F00 781E00 F81E00 F81E00 F81E00 F83C00 FC7C00 7FF800 3FF000 0FC000 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 18 0 BBX 17 21 3 0 BITMAP 039C00 039C00 039C00 000000 3E0780 3E0780 3C0F80 3C0F00 7C0F00 7C0F00 7C0F00 781F00 781E00 F81E00 F81E00 F81E00 F83C00 FC7C00 7FF800 3FF000 0FC000 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 16 0 BBX 15 21 4 0 BITMAP 00F0 01C0 0700 0000 F81E F83C 7878 7C70 3CF0 3FE0 3FC0 1F80 1F80 1F00 1F00 1E00 1E00 1E00 3E00 3E00 3C00 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 15 0 BBX 15 17 2 0 BITMAP 1F00 1F00 1E00 1FF8 1FFC 3FFE 3E3E 3C3E 3C3E 3C3C 7C7C 7FF8 7FF0 7FC0 7800 F800 F800 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 17 0 BBX 16 23 1 -5 BITMAP 00FC 03FE 07FE 0F9E 0F1C 0F1C 1F38 1F70 1F78 1E7C 1E7C 3E3E 3E1F 3E0F 3C0F 3CFF 7DFE 7DFC 7800 7800 7800 F800 F800 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 2 0 BITMAP 01E0 0070 0038 0000 03FE 07FE 1FFE 3E3C 3C3C 7C7C 787C F8FC F9F8 FB78 FE78 FCF8 78F8 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 2 0 BITMAP 003C 0070 01C0 0000 03FE 07FE 1FFE 3E3C 3C3C 7C7C 787C F8FC F9F8 FB78 FE78 FCF8 78F8 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 2 0 BITMAP 00F0 01F8 071C 0000 03FE 07FE 1FFE 3E3C 3C3C 7C7C 787C F8FC F9F8 FB78 FE78 FCF8 78F8 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 2 0 BITMAP 00EE 01FC 03BC 0000 03FE 07FE 1FFE 3E3C 3C3C 7C7C 787C F8FC F9F8 FB78 FE78 FCF8 78F8 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 2 0 BITMAP 039C 039C 039C 0000 03FE 07FE 1FFE 3E3C 3C3C 7C7C 787C F8FC F9F8 FB78 FE78 FCF8 78F8 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 2 0 BITMAP 0060 0090 0090 0060 0000 03FE 07FE 1FFE 3E3C 3C3C 7C7C 787C F8FC F9F8 FB78 FE78 FCF8 78F8 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 24 0 BBX 22 13 2 0 BITMAP 03FEF0 07FFF8 1FFFFC 1E3E3C 3C3C78 787FF8 787FE0 F8FF80 FB7C04 FF7C1C FE3FFC FC3FF8 781FC0 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 13 0 BBX 13 18 2 -5 BITMAP 03F0 0FF8 1FF0 3E10 7C00 7C00 F800 F800 F800 F820 FFE0 7FE0 3F80 0C00 1C00 0E00 0600 3C00 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 2 0 BITMAP 03C0 00E0 0070 0000 03E0 0FF0 1FF8 3C78 78F0 7FF0 FFC0 FF00 F808 F838 FFF8 7FF0 1F80 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 2 0 BITMAP 003C 0070 01C0 0000 03E0 0FF0 1FF8 3C78 78F0 7FF0 FFC0 FF00 F808 F838 FFF8 7FF0 1F80 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 2 0 BITMAP 00F0 01F8 071C 0000 03E0 0FF0 1FF8 3C78 78F0 7FF0 FFC0 FF00 F808 F838 FFF8 7FF0 1F80 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 2 0 BITMAP 0738 0738 0738 0000 03E0 0FF0 1FF8 3C78 78F0 7FF0 FFC0 FF00 F808 F838 FFF8 7FF0 1F80 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 8 0 BBX 9 17 2 0 BITMAP 1E00 0700 0380 0000 3E00 3E00 3E00 3C00 3C00 7C00 7C00 7C00 7800 7800 F800 F800 F800 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 8 0 BBX 10 17 2 0 BITMAP 03C0 0700 1C00 0000 3E00 3E00 3E00 3C00 3C00 7C00 7C00 7C00 7800 7800 F800 F800 F800 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 8 0 BBX 10 17 2 0 BITMAP 0F00 1F80 71C0 0000 3E00 3E00 3E00 3C00 3C00 7C00 7C00 7C00 7800 7800 F800 F800 F800 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 8 0 BBX 10 17 2 0 BITMAP 39C0 39C0 39C0 0000 3E00 3E00 3E00 3C00 3C00 7C00 7C00 7C00 7800 7800 F800 F800 F800 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 16 0 BBX 15 21 2 0 BITMAP 0020 0070 00F8 1DE0 1FE0 3FF0 07F8 0EF8 1C7C 0BFC 0FFC 1FFC 3E7E 7C3C 783C F83C F878 F8F0 FFF0 7FC0 1F00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 2 0 BITMAP 00EE 01FC 03BC 0000 1E1C 3E7E 3EFE 3DFE 3DBE 3F3C 7E3C 7C7C 7C7C 787C 7878 F878 F8F8 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 2 0 BITMAP 01E0 0070 0038 0000 03F0 0FFC 1FFC 3E7E 7C3E 783E F83C F83C F878 F8F8 FFF0 7FE0 1F00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 2 0 BITMAP 003C 0070 01C0 0000 03F0 0FFC 1FFC 3E7E 7C3E 783E F83C F83C F878 F8F8 FFF0 7FE0 1F00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 2 0 BITMAP 00F0 01F8 071C 0000 03F0 0FFC 1FFC 3E7E 7C3E 783E F83C F83C F878 F8F8 FFF0 7FE0 1F00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 2 0 BITMAP 01DC 03F8 0778 0000 03F0 0FFC 1FFC 3E7E 7C3E 783E F83C F83C F878 F8F8 FFF0 7FE0 1F00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 2 0 BITMAP 039C 039C 039C 0000 03F0 0FFC 1FFC 3E7E 7C3E 783E F83C F83C F878 F8F8 FFF0 7FE0 1F00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 3 0 BITMAP 01C0 03C0 0380 0000 0000 FFFC FFFC FFFC 0000 0000 0000 0700 0F00 0E00 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 16 0 BBX 17 13 3 0 BITMAP 01FF80 07FE00 0FFE00 1F3F00 3E7F00 3CFF00 7DDE00 7F9E00 7F3C00 7E7C00 7FF800 3FF000 FF8000 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 2 0 BITMAP 01E0 0070 0038 0000 3E3E 3C3E 3C3C 7C3C 7C7C 7C7C 78FC 79F8 FB78 FE78 FEF8 FCF8 70F0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 2 0 BITMAP 003C 0070 01C0 0000 3E3E 3C3E 3C3C 7C3C 7C7C 7C7C 78FC 79F8 FB78 FE78 FEF8 FCF8 70F0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 2 0 BITMAP 00F0 01F8 071C 0000 3E3E 3C3E 3C3C 7C3C 7C7C 7C7C 78FC 79F8 FB78 FE78 FEF8 FCF8 70F0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 2 0 BITMAP 039C 039C 039C 0000 3E3E 3C3E 3C3C 7C3C 7C7C 7C7C 78FC 79F8 FB78 FE78 FEF8 FCF8 70F0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 15 0 BBX 17 22 1 -5 BITMAP 001E00 003800 00E000 000000 3E0780 3E0700 3E0E00 1E1E00 1F1C00 1F3800 1F7800 1F7000 0FE000 0FE000 0FC000 0F8000 0F8000 0F0000 1E0000 3E0000 7C0000 F80000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 16 0 BBX 16 22 1 -5 BITMAP 0F80 0F00 0F00 0F00 1F1E 1F3F 1E7F 1EFF 1F9F 3F1F 3E1E 3E3E 3C3C 3C7C 7FF8 7FE0 7FC0 7800 7800 F800 F800 F800 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 15 0 BBX 17 22 1 -5 BITMAP 01CE00 01CE00 01CE00 000000 3E0780 3E0700 3E0E00 1E1E00 1F1C00 1F3800 1F7800 1F7000 0FE000 0FE000 0FC000 0F8000 0F8000 0F0000 1E0000 3E0000 7C0000 F80000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 17 23 1 -5 BITMAP 00FF80 03FF80 07FF00 0F8F00 0F0F00 3FDF00 3FDF00 7FDE00 1E1E00 1E1E00 3E3E00 3E3E00 3E3C00 3C3C00 3C3C00 7C7C00 7C7C00 7C7800 780000 780000 F80000 F80000 F80000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 3 2 6 BITMAP FFE0 FFE0 FFE0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 13 21 4 -4 BITMAP 07C0 07C0 07C0 0780 0780 0780 7FF8 FFF8 FFF0 0F00 0F00 0F00 1F00 1E00 1E00 1E00 3E00 3E00 3E00 3C00 7C00 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 17 21 1 0 BITMAP 01C700 00FC00 007800 000000 0FFF80 0FFF80 0FFF80 003F00 007E00 00FC00 01F800 01F000 03E000 07E000 0FC000 1F8000 3F0000 7E0000 7FFC00 FFFC00 FFFC00 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 24 0 BBX 22 13 2 0 BITMAP 03F0F0 0FFBF8 1FFFFC 3E7E3C 7C3C78 783FF8 F83FE0 F87FC0 F87C04 F8FE1C FFFFFC 7FDFF8 1F0FC0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 15 21 4 0 BITMAP 0E70 0E70 0E70 0000 F81E F83C 7878 7C70 3CF0 3FE0 3FC0 1F80 1F80 1F00 1F00 1E00 1E00 1E00 3E00 3E00 3C00 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 2 0 BITMAP 3E 3E 3E 3C 3C 7C 7C 7C 78 78 F8 F8 F8 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 11 18 1 0 BITMAP 07C0 0780 0F80 0F80 0FA0 0FE0 0FC0 1FC0 1F00 7F00 FE00 DE00 BE00 3E00 3E00 3C00 3C00 7C00 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 15 17 0 0 BITMAP 07C0 07C0 0F80 0F80 0FA0 0FE0 0FE0 1FC0 3F00 7F00 FF00 DE00 3E00 3E00 3FFE 3FFE 7FFE ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 14 21 3 -4 BITMAP 01E0 01E0 03E0 03C0 03C0 3FFC 3FFC 7FF8 0780 0780 0780 0780 7FF8 FFF0 FFF0 0F00 0F00 1F00 1F00 1E00 1E00 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 16 23 1 -5 BITMAP 00F8 03FC 07FC 0F88 0F00 3FFF 3FFF 7FFF 1E1E 1E1E 3E3E 3E3E 3E3E 3C3C 3C3C 7C7C 7C7C 7C7C 7800 7800 F800 F800 F800 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 2 1 BITMAP 10 38 3C 1E 1E 1F 3E 7C F8 F0 40 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 26 0 BBX 26 17 2 0 BITMAP 00FFFFC0 03FFFFC0 0FFFFF80 1F8FC000 3E07C000 3C07C000 7C078000 7807FE00 F80FFE00 F80FFE00 F80F8000 F80F8000 F81F0000 7C1F0000 7FFFFF00 3FFFFE00 0FFFFE00 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 24 0 BBX 23 2 2 6 BITMAP FFFFFE FFFFFE ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 9 3 7 15 BITMAP E380 7E00 3C00 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 5 3 5 -4 BITMAP 70 E0 F8 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 10 3 8 15 BITMAP 1DC0 3300 EE00 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 2 1 BITMAP 02 0F 1F 3E 7C F8 78 78 3C 1C 08 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 4 3 10 15 BITMAP 70 F0 E0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 9 3 7 15 BITMAP E380 FF00 7C00 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 11 9 4 3 BITMAP 3FE0 3FE0 7FC0 7FC0 7FC0 7FC0 7FC0 FF80 FF80 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 9 3 7 15 BITMAP 3B80 7F00 EF00 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 9 3 7 15 BITMAP 1E00 3F00 E380 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 13 8 3 10 BITMAP 0418 1C78 3CF8 70E0 7DF0 79F0 F9F0 F9E0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 4 10 BITMAP F8 F8 F8 F0 70 70 70 70 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 14 17 1 0 BITMAP 071C 03F0 01E0 0000 07F0 1FF0 1FE0 3E00 1E00 1F00 0F80 07C0 03E0 43E0 FFC0 FFC0 7F00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 4 4 10 14 BITMAP 60 90 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 -4 BITMAP 7C 7C 7C 78 78 38 38 F0 E0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 14 21 4 -4 BITMAP 00FC 03FC 07FC 0F84 0F00 1F00 1F00 7FC0 7FC0 7F80 3E00 3E00 3E00 3C00 7C00 7C00 7C00 7800 7800 F800 F800 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 22 0 BBX 21 9 3 8 BITMAP FFFCF8 FFBCF8 FFBFF8 3C3FF0 3C3FF0 3C7FF0 3C7EF0 3C7EF0 7861E0 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 20 17 -6 0 BITMAP 0000F0 0001E0 0003C0 000780 000F00 001E00 003C00 007800 00F000 01E000 03C000 078000 0F0000 1E0000 3C0000 780000 F00000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 6 3 8 15 BITMAP F0 38 1C ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 32 0 BBX 30 17 3 0 BITMAP 1F00F000 7F81C000 7F838000 F3870000 F78E0000 FF9C0000 FF380000 3C700000 00F7C0F0 01EFE3F8 03DFF7FC 079EF7BC 0F1CF73C 1E1CE73C 3C1FE7F8 381FC7F0 F00F83E0 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 24 0 BBX 19 3 3 0 BITMAP E0E0E0 E0E0E0 E0E0E0 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 13 8 3 10 BITMAP 3CF8 7CF8 7CF8 7DF0 3870 3870 F1E0 E1C0 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 14 21 2 0 BITMAP 071C 03F0 01E0 0000 03F8 0FFC 1FFC 1E0C 3E00 3E00 3F00 1FC0 0FE0 07F0 01F8 00F8 00F8 41F0 FFF0 FFE0 FF00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 13 9 0 -4 BITMAP 3CF8 7CF8 7CF8 7CF0 7DF0 3870 38E0 F1E0 E180 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 15 17 1 0 BITMAP 038E 01F8 00F0 0000 1FFE 1FFE 3FFC 00FC 01F0 03E0 07C0 0F80 1F00 7E00 7FFC FFF8 FFF8 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/luBS08.bdf100644 1750 1750 54017 5413747464 14775 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Bold-R-Normal-Sans-8-80-75-75-P-50-ISO8859-1 SIZE 8 72 72 FONTBOUNDINGBOX 16 10 -6 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Bold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 8 POINT_SIZE 80 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 50 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 7 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 3 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 3 0 BBX 1 6 1 0 BITMAP 80 80 80 80 00 80 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 4 0 BBX 4 2 0 4 BITMAP D0 90 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 38 30 F8 50 F8 E0 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 5 0 BBX 5 9 0 -2 BITMAP 20 78 E0 60 38 28 F0 20 20 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP 44 A8 B8 70 2E 4E ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 78 48 74 B4 98 7C ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 2 0 BBX 2 3 0 3 BITMAP C0 C0 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 3 0 BBX 2 8 0 -2 BITMAP 40 40 80 80 80 80 40 40 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 3 0 BBX 2 8 1 -2 BITMAP 80 80 40 40 40 40 80 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 4 0 BBX 3 2 0 4 BITMAP E0 A0 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 20 20 F8 20 20 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 0 -2 BITMAP C0 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 5 0 BBX 5 1 0 2 BITMAP F8 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 3 0 BBX 2 1 0 0 BITMAP C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 0 -2 BITMAP 08 10 10 20 20 40 40 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 70 88 88 88 88 70 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 5 0 BBX 2 6 1 0 BITMAP C0 40 40 40 40 40 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP E0 10 10 20 C0 F0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP E0 10 60 10 10 E0 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 30 70 D0 F8 10 10 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP F0 80 E0 10 10 E0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 78 80 F0 88 88 70 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP F0 30 20 40 40 C0 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 70 88 70 98 88 70 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 70 88 88 78 08 F0 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 3 0 BBX 1 4 1 0 BITMAP 80 00 00 80 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 3 0 BBX 1 6 1 -2 BITMAP 80 00 00 80 80 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 08 30 C0 30 08 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 5 0 BBX 5 3 0 1 BITMAP F8 00 F8 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 80 60 18 60 80 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP F0 10 10 60 00 40 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP 3C 4E 9A B2 AC 70 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 30 30 58 78 C8 8C ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP F0 90 E0 B0 90 F0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP 78 C0 80 80 C0 78 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP F8 8C 84 84 84 F8 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP F0 80 E0 80 80 F0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP E0 80 80 E0 80 80 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP 78 C0 80 88 C8 78 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 0 BITMAP 88 88 F8 88 88 88 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 3 0 BBX 1 6 1 0 BITMAP 80 80 80 80 80 80 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 4 0 BBX 3 8 0 -2 BITMAP 20 20 20 20 20 20 20 E0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 98 A0 C0 A0 A0 98 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 80 80 80 80 80 F0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 8 0 BBX 6 6 1 0 BITMAP CC CC EC B4 B4 94 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 88 C8 A8 A8 98 88 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP 78 CC 84 84 CC 78 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP F0 90 90 E0 80 80 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 -2 BITMAP 78 CC 84 84 CC 78 0E 04 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP F0 90 90 E0 A0 98 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 70 C0 C0 30 10 E0 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP F8 20 20 20 20 20 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 88 88 88 88 88 70 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP C4 48 48 28 30 30 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 8 0 BBX 7 6 0 0 BITMAP 92 52 5C 6C 6C 6C ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP D8 50 20 60 50 98 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP C8 50 30 20 20 20 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP F0 30 20 40 C0 F0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 3 0 BBX 2 8 1 -2 BITMAP C0 80 80 80 80 80 80 C0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 0 -2 BITMAP 80 40 40 20 20 10 10 08 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 3 0 BBX 2 8 0 -2 BITMAP C0 40 40 40 40 40 40 C0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 1 BITMAP 20 20 50 50 88 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 4 0 BBX 4 1 0 -2 BITMAP F0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 2 0 BBX 2 3 0 3 BITMAP 40 C0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP F0 10 F0 F0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP 80 80 F0 88 88 F0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 1 0 BITMAP 60 80 80 60 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP 08 08 78 88 88 78 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP 70 F0 C0 70 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 0 0 BITMAP 60 40 E0 40 40 40 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 -2 BITMAP 78 88 88 78 18 F0 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 0 BITMAP 80 80 F0 90 90 90 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 3 0 BBX 1 6 1 0 BITMAP 80 00 80 80 80 80 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 3 0 BBX 2 8 0 -2 BITMAP 40 00 40 40 40 40 40 C0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 80 80 B0 E0 E0 B0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 3 0 BBX 1 6 1 0 BITMAP 80 80 80 80 80 80 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 8 0 BBX 7 4 1 0 BITMAP FE 92 92 92 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 6 0 BBX 4 4 1 0 BITMAP F0 90 90 90 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 0 BITMAP 70 88 88 70 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 -2 BITMAP F0 88 88 F0 80 80 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 -2 BITMAP 78 88 88 78 08 08 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 1 0 BITMAP E0 80 80 80 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 1 0 BITMAP F0 C0 30 F0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 3 0 BBX 2 6 1 0 BITMAP 80 80 C0 80 80 C0 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 6 0 BBX 4 4 1 0 BITMAP 90 90 90 F0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 0 BITMAP C8 50 50 30 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 7 0 BBX 7 4 0 0 BITMAP 9A 5E 6C 6C ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP D0 60 60 B0 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 -2 BITMAP C8 50 50 20 20 40 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP F0 20 40 F0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 3 0 BBX 2 8 1 -2 BITMAP 40 40 40 40 C0 40 40 40 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 2 0 BBX 1 8 1 -2 BITMAP 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 3 0 BBX 2 8 1 -2 BITMAP 80 80 80 80 C0 80 80 80 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 5 0 BBX 5 2 0 1 BITMAP E8 B8 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 3 0 BBX 1 6 1 -2 BITMAP 80 00 80 80 80 80 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP 40 E0 80 80 E0 40 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 70 40 E0 40 40 F0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 88 D8 70 50 70 88 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP C8 50 30 70 70 20 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 2 0 BBX 1 8 1 -2 BITMAP 80 80 80 00 00 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 1 -2 BITMAP F0 80 E0 90 D0 70 10 E0 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 1 5 BITMAP A0 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP 38 5C A2 A2 5C 38 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 4 0 BBX 4 3 0 3 BITMAP F0 10 F0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP 50 F0 E0 50 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 5 0 BBX 5 3 0 1 BITMAP F8 08 08 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 2 0 BBX 2 1 0 2 BITMAP C0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 1 BITMAP 60 90 90 F0 60 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 1 5 BITMAP E0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 2 0 BBX 1 2 0 4 BITMAP 80 80 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 20 F8 20 20 F8 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 3 0 BBX 3 3 -5 3 BITMAP E0 60 E0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 3 0 BBX 3 3 -5 3 BITMAP E0 C0 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 5 0 BBX 2 1 2 5 BITMAP C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 -2 BITMAP 90 90 90 F0 80 80 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 5 0 BBX 3 8 1 -2 BITMAP E0 E0 E0 60 60 60 60 60 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 2 2 BITMAP 80 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 5 0 BBX 2 2 2 -2 BITMAP C0 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 3 0 BBX 1 3 -6 3 BITMAP 80 80 80 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 4 0 BBX 4 3 0 3 BITMAP 60 90 60 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP A0 70 F0 A0 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 2 0 BITMAP 4C 48 50 26 4E C2 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 2 0 BITMAP 4C 48 50 2E 46 CE ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 2 0 BITMAP EC C8 F0 26 4E C2 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 -2 BITMAP 20 00 60 80 80 F0 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 30 30 30 58 78 C8 8C ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 30 30 30 58 78 C8 8C ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 38 30 30 58 78 C8 8C ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 38 30 30 58 78 C8 8C ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 28 30 30 58 78 C8 8C ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP 10 28 30 30 58 78 C8 8C ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 8 0 BBX 8 6 0 0 BITMAP 1F 38 2E 78 48 CF ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 -2 BITMAP 78 C0 80 80 C0 78 20 30 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 0 BITMAP 20 F0 80 E0 80 80 F0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 0 BITMAP 40 F0 80 E0 80 80 F0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 0 BITMAP A0 F0 80 E0 80 80 F0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 0 BITMAP A0 F0 80 E0 80 80 F0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 3 0 BBX 2 7 2 0 BITMAP C0 40 40 40 40 40 40 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 3 0 BBX 2 7 1 0 BITMAP C0 80 80 80 80 80 80 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 3 0 BBX 3 7 2 0 BITMAP E0 40 40 40 40 40 40 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 3 0 BBX 3 7 2 0 BITMAP A0 40 40 40 40 40 40 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP 7C 46 E2 42 42 7C ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 70 88 C8 A8 A8 98 88 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 10 78 CC 84 84 CC 78 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 20 78 CC 84 84 CC 78 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 28 78 CC 84 84 CC 78 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 38 78 CC 84 84 CC 78 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 28 78 CC 84 84 CC 78 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 88 50 20 50 88 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP 7C CC 94 A4 CC F8 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 60 88 88 88 88 88 70 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 30 88 88 88 88 88 70 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 70 88 88 88 88 88 70 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 50 88 88 88 88 88 70 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 0 0 BITMAP 30 C8 50 30 20 20 20 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 80 F0 90 90 E0 80 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 70 B0 E0 B0 88 B8 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 20 F0 10 F0 F0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 40 F0 10 F0 F0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 50 F0 10 F0 F0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 70 F0 10 F0 F0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 50 F0 10 F0 F0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 40 A0 F0 10 F0 F0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 7 0 BBX 7 4 0 0 BITMAP EC 12 FE FE ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 1 -2 BITMAP 60 80 80 60 60 60 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 20 70 F0 C0 70 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 40 70 F0 C0 70 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 70 70 F0 C0 70 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 50 70 F0 C0 70 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 3 0 BBX 2 5 2 0 BITMAP C0 40 40 40 40 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 3 0 BBX 2 5 1 0 BITMAP C0 80 80 80 80 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 3 0 BBX 3 5 2 0 BITMAP E0 40 40 40 40 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 3 0 BBX 3 5 2 0 BITMAP A0 40 40 40 40 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 10 F0 F0 88 88 88 70 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 6 0 BBX 4 5 1 0 BITMAP 70 F0 90 90 90 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 20 70 88 88 70 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 20 70 88 88 70 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 70 70 88 88 70 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 70 70 88 88 70 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 50 70 88 88 70 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 20 00 F8 00 20 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 0 BITMAP 78 B8 E8 F0 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 6 0 BBX 4 5 1 0 BITMAP 60 90 90 90 F0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 6 0 BBX 4 5 1 0 BITMAP 60 90 90 90 F0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 6 0 BBX 4 5 1 0 BITMAP 70 90 90 90 F0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 6 0 BBX 4 5 1 0 BITMAP 50 90 90 90 F0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 -2 BITMAP 30 C8 50 50 20 20 40 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 -2 BITMAP 80 80 F0 88 88 F0 80 80 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 -2 BITMAP 50 C8 50 50 20 20 40 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP 78 48 F8 48 48 48 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 1 1 2 BITMAP E0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 8 1 -2 BITMAP 40 40 E0 40 40 40 40 40 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 0 BITMAP 70 F0 30 20 40 C0 F0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 4 0 0 BITMAP 7C 92 9E 7E ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 0 0 BITMAP 50 C8 50 30 20 20 20 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 1 4 1 0 BITMAP 80 80 80 80 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 0 0 BITMAP 40 40 60 C0 40 40 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 40 40 60 C0 40 78 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 8 1 -2 BITMAP 40 40 E0 40 40 E0 40 40 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP 70 40 F8 48 48 48 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 0 0 BITMAP 80 C0 C0 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 6 0 0 BITMAP 3F80 C400 8700 8400 C400 3F80 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 1 0 2 BITMAP FF ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 1 5 BITMAP E0 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 2 1 2 -2 BITMAP C0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 2 5 BITMAP E0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 0 0 BITMAP 40 C0 C0 40 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 2 5 BITMAP 80 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 1 5 BITMAP E0 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 2 1 2 BITMAP E0 E0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 1 5 BITMAP E0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 1 5 BITMAP E0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 3 0 3 BITMAP 90 90 90 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 2 3 0 3 BITMAP C0 C0 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 70 F0 C0 30 F0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 3 4 BITMAP 40 A0 40 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 2 3 0 -2 BITMAP C0 40 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 1 -2 BITMAP 30 40 40 E0 40 C0 C0 C0 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 3 0 3 BITMAP FE 5E 5E ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 6 6 -2 0 BITMAP 0C 08 10 20 40 C0 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 2 1 1 5 BITMAP C0 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 6 0 0 BITMAP 4400 A800 B000 7000 2FC0 4FC0 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 1 1 0 BITMAP 94 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 3 0 3 BITMAP 90 90 90 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 0 0 BITMAP 70 70 C0 C0 30 10 E0 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 3 0 -2 BITMAP 90 90 90 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 70 F0 20 40 F0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/luBS10.bdf100644 1750 1750 56334 5413747464 14772 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. COMMENT GRID 0010 0010 0200 0200 FONT -B&H-Lucida-Bold-R-Normal-Sans-10-100-75-75-P-66-ISO8859-1 SIZE 10 72 72 FONTBOUNDINGBOX 14 11 -1 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Bold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 10 POINT_SIZE 100 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 66 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 9 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 3 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 4 0 BBX 2 7 1 0 BITMAP C0 C0 C0 40 00 C0 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 4 BITMAP D8 D8 90 90 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 68 68 EC 68 EC 68 68 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 -1 BITMAP 10 7C D0 D0 78 2C 2C F8 20 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 9 0 BBX 9 7 0 0 BITMAP 6200 B600 6400 0800 1300 3580 2300 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP 70 D8 70 74 D8 CC 74 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 1 4 BITMAP C0 C0 40 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 4 0 BBX 3 9 1 -1 BITMAP 20 60 C0 C0 C0 C0 C0 60 20 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 4 0 BBX 3 9 0 -1 BITMAP 80 C0 60 60 60 60 60 C0 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 5 0 BBX 5 3 0 4 BITMAP D8 60 D8 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 7 0 BBX 5 5 1 1 BITMAP 20 20 F8 20 20 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 1 -2 BITMAP C0 C0 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 7 0 BBX 5 1 1 3 BITMAP F8 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 3 0 BBX 2 2 1 0 BITMAP C0 C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 -1 BITMAP 0C 0C 18 18 30 60 60 C0 C0 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 78 CC CC CC CC CC 78 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 7 0 BBX 4 7 1 0 BITMAP 30 F0 30 30 30 30 30 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 78 CC 0C 38 60 C0 FC ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 78 CC 0C 38 0C CC 78 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 18 38 58 98 FC 18 18 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP FC C0 C0 F8 0C CC 78 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 78 CC C0 F8 CC CC 78 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP FC FC 0C 18 30 60 60 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 78 CC CC 78 CC CC 78 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 78 CC CC 7C 0C CC 78 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 3 0 BBX 2 6 1 0 BITMAP C0 C0 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 3 0 BBX 2 8 1 -2 BITMAP C0 C0 00 00 C0 C0 40 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 7 0 BBX 5 5 1 1 BITMAP 18 60 C0 60 18 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 7 0 BBX 5 3 1 2 BITMAP F8 00 F8 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 7 0 BBX 5 5 1 1 BITMAP C0 30 18 30 C0 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP F0 18 18 70 00 60 60 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 0 BITMAP 78 CC 9C AC 9E C0 7C ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP 30 30 58 58 FC 8C 8C ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP F0 D8 D8 F0 D8 D8 F0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP 3C 60 C0 C0 C0 60 3C ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP F0 D8 CC CC CC D8 F0 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP F8 C0 C0 F0 C0 C0 F8 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP F8 C0 C0 F0 C0 C0 C0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP 3C 60 C0 CC CC 6C 3C ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP CC CC CC FC CC CC CC ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 4 0 BBX 2 7 1 0 BITMAP C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 5 0 BBX 4 9 0 -2 BITMAP 30 30 30 30 30 30 30 30 E0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP CC D8 D0 F0 D8 CC C6 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP C0 C0 C0 C0 C0 C0 F8 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 10 0 BBX 8 7 1 0 BITMAP C3 E7 F7 BB 93 93 83 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP C4 E4 F4 BC 9C 8C 84 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 0 BITMAP 38 6C C6 C6 C6 6C 38 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP F0 D8 D8 F0 C0 C0 C0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 -2 BITMAP 38 6C C6 C6 C6 6C 38 0C 06 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP F0 D8 D8 F0 D8 D8 CC ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 78 C0 E0 70 38 18 F0 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP FC 30 30 30 30 30 30 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP CC CC CC CC CC CC 78 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP CC CC CC 68 78 30 30 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 10 0 BBX 9 7 1 0 BITMAP C180 C980 C980 6D00 6D00 3600 3600 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP D8 D8 70 20 70 D8 D8 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP CC CC 68 30 30 30 30 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP F8 18 30 70 60 C0 F8 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 4 0 BBX 3 9 1 -1 BITMAP E0 C0 C0 C0 C0 C0 C0 C0 E0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 -1 BITMAP C0 C0 60 60 30 18 18 0C 0C ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 4 0 BBX 3 9 0 -1 BITMAP E0 60 60 60 60 60 60 60 E0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 1 BITMAP 30 30 58 58 8C 8C ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 8 0 BBX 6 1 1 -1 BITMAP FC ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 0 4 BITMAP 40 80 C0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 70 18 78 D8 D8 6C ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP C0 C0 F0 D8 D8 D8 D8 F0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 0 BITMAP 70 C0 C0 C0 C0 70 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 18 18 78 D8 D8 D8 D8 68 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 0 BITMAP 70 D8 D8 F8 C0 78 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 0 0 BITMAP 38 60 F8 60 60 60 60 60 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 -2 BITMAP 78 D8 D8 D8 D8 78 18 F0 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP C0 C0 D0 F8 D8 D8 D8 D8 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 4 0 BBX 2 8 1 0 BITMAP C0 00 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 -1 -2 BITMAP 30 00 30 30 30 30 30 30 30 E0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP C0 C0 C8 D0 E0 F0 D8 CC ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 4 0 BBX 2 8 1 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 10 0 BBX 8 6 1 0 BITMAP B6 DB DB DB DB DB ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 0 BITMAP B0 D8 D8 D8 D8 D8 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 0 BITMAP 70 D8 D8 D8 D8 70 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 -2 BITMAP B0 D8 D8 D8 D8 F0 C0 C0 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 -2 BITMAP 78 D8 D8 D8 D8 78 18 18 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP D0 F0 C0 C0 C0 C0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 0 BITMAP 70 C0 E0 70 30 E0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 0 0 BITMAP 60 F0 60 60 60 60 30 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 0 BITMAP D8 D8 D8 D8 D8 68 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 8 0 BBX 6 6 1 0 BITMAP CC CC 68 68 30 30 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 9 0 BBX 7 6 1 0 BITMAP C2 DA DA DA 6C 6C ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 0 BITMAP D0 D0 60 60 B0 B0 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 -2 BITMAP CC CC 68 68 30 30 60 60 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 0 BITMAP F0 30 60 60 C0 F0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 0 -1 BITMAP 30 60 60 20 C0 20 60 60 30 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 4 0 BBX 2 9 1 -1 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 0 -1 BITMAP C0 60 60 40 30 40 60 60 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 7 0 BBX 6 2 1 3 BITMAP 74 B8 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 4 0 BBX 2 7 1 -1 BITMAP C0 C0 00 80 C0 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 -1 BITMAP 10 78 CC C0 C0 CC 78 10 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 38 60 60 F8 60 60 FC ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 0 BITMAP 82 7C 6C 6C 6C 7C 82 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP CC CC 68 30 FC 30 30 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 4 0 BBX 2 9 1 -1 BITMAP C0 C0 C0 C0 00 C0 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 -1 BITMAP 78 C0 F0 98 C8 78 18 F0 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 2 7 BITMAP 90 90 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 0 BITMAP 38 44 9A A2 9A 44 38 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 2 BITMAP 70 18 78 D8 68 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 7 0 BBX 6 5 0 1 BITMAP 24 6C D8 6C 24 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 7 0 BBX 5 3 1 1 BITMAP F8 08 08 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 3 0 BBX 2 1 1 3 BITMAP C0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 0 BITMAP 38 44 BA B2 AA 44 38 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 7 0 BBX 3 1 2 7 BITMAP E0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 3 0 BBX 3 3 0 4 BITMAP 40 A0 40 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 20 20 F8 20 20 00 F8 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 6 0 BBX 4 5 1 2 BITMAP E0 30 60 C0 F0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 6 0 BBX 4 5 1 2 BITMAP E0 30 E0 30 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 7 0 BBX 3 2 2 7 BITMAP 60 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 -2 BITMAP D8 D8 D8 D8 D8 E8 C0 C0 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 -1 BITMAP 7C F4 F4 74 14 14 14 14 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 3 2 BITMAP C0 C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 7 0 BBX 3 2 1 -2 BITMAP 20 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 6 0 BBX 3 5 1 2 BITMAP 60 E0 60 60 60 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 2 BITMAP 70 D8 D8 D8 70 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 7 0 BBX 6 5 1 1 BITMAP 90 D8 6C D8 90 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 11 0 BBX 10 7 1 0 BITMAP E300 6600 6400 6980 1380 37C0 6180 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 11 0 BBX 10 7 1 0 BITMAP E300 6600 6400 6B80 10C0 3180 63C0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 11 0 BBX 11 7 0 0 BITMAP F180 6300 7200 E4C0 09C0 1BE0 30C0 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 -1 BITMAP 30 30 00 70 C0 C0 78 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 60 30 00 30 58 58 FC 8C 8C ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 18 30 00 30 58 58 FC 8C 8C ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 30 58 00 30 58 58 FC 8C 8C ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 68 B0 00 30 58 58 FC 8C 8C ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 48 48 00 30 58 58 FC 8C 8C ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 30 58 30 30 58 58 FC 8C 8C ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 10 0 BBX 8 7 1 0 BITMAP 3F 38 58 5E F8 98 9F ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 -2 BITMAP 3C 60 C0 C0 C0 60 3C 10 60 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 60 30 00 F8 C0 F0 C0 C0 F8 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 30 60 00 F8 C0 F0 C0 C0 F8 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 30 58 00 F8 C0 F0 C0 C0 F8 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 48 48 00 F8 C0 F0 C0 C0 F8 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 4 0 BBX 3 9 0 0 BITMAP C0 60 00 60 60 60 60 60 60 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 4 0 BBX 3 9 1 0 BITMAP 60 C0 00 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 0 0 BITMAP 60 B0 00 60 60 60 60 60 60 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 0 0 BITMAP 90 90 00 60 60 60 60 60 60 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 0 0 BITMAP 78 6C 66 F6 66 6C 78 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 34 58 00 C4 E4 B4 9C 8C 84 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 30 18 00 38 6C C6 C6 6C 38 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 18 30 00 38 6C C6 C6 6C 38 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 18 2C 00 38 6C C6 C6 6C 38 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 34 58 00 38 6C C6 C6 6C 38 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 48 48 00 38 6C C6 C6 6C 38 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 7 0 BBX 6 5 1 1 BITMAP C4 68 30 58 8C ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 -1 BITMAP 02 3A 64 CE D6 E6 4C B8 80 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 60 30 00 CC CC CC CC CC 78 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 18 30 00 CC CC CC CC CC 78 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 30 58 00 CC CC CC CC CC 78 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 48 48 00 CC CC CC CC CC 78 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 30 58 00 CC CC 68 30 30 30 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP C0 F0 D8 D8 F0 C0 C0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 8 0 BBX 6 8 1 0 BITMAP 70 D8 D8 D0 C8 CC CC D8 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP 60 30 00 70 18 78 D8 D8 6C ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP 18 30 00 70 18 78 D8 D8 6C ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP 30 58 00 70 18 78 D8 D8 6C ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP 68 B0 00 70 18 78 D8 D8 6C ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP 48 48 00 70 18 78 D8 D8 6C ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP 30 58 30 70 18 78 D8 D8 6C ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 10 0 BBX 8 6 1 0 BITMAP 7E 1B 7B DF D8 6F ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 -2 BITMAP 70 C0 C0 C0 C0 70 20 C0 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 60 30 00 70 D8 D8 F8 C0 78 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 30 60 00 70 D8 D8 F8 C0 78 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 30 58 00 70 D8 D8 F8 C0 78 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 48 48 00 70 D8 D8 F8 C0 78 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 4 0 BBX 3 9 0 0 BITMAP C0 60 00 60 60 60 60 60 60 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 4 0 BBX 3 9 1 0 BITMAP 60 C0 00 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 0 0 BITMAP 60 B0 00 60 60 60 60 60 60 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 0 0 BITMAP 90 90 00 60 60 60 60 60 60 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 10 7C 18 78 D8 D8 D8 70 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 68 B0 00 B0 D8 D8 D8 D8 D8 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 60 30 00 70 D8 D8 D8 D8 70 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 30 60 00 70 D8 D8 D8 D8 70 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 30 58 00 70 D8 D8 D8 D8 70 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 68 B0 00 70 D8 D8 D8 D8 70 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 48 48 00 70 D8 D8 D8 D8 70 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 7 0 BBX 5 5 1 1 BITMAP 20 00 F8 00 20 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 -1 BITMAP 02 3A 6C 7C 6C 6C B8 80 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 60 30 00 D8 D8 D8 D8 D8 68 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 30 60 00 D8 D8 D8 D8 D8 68 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 30 58 00 D8 D8 D8 D8 D8 68 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 48 48 00 D8 D8 D8 D8 D8 68 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 -2 BITMAP 18 30 00 CC CC 68 68 30 30 60 60 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 -2 BITMAP C0 F0 D8 D8 D8 D8 F0 C0 C0 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 -2 BITMAP 48 48 00 CC CC 68 68 30 30 60 60 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 0 0 BITMAP 3E 66 F6 66 66 66 66 66 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 1 1 3 BITMAP F0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 -1 BITMAP 30 30 FC 30 30 30 30 30 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 58 30 00 F8 18 30 60 C0 F8 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 6 1 0 BITMAP 7E DB DB DF D8 7F ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 48 48 00 CC CC 68 30 30 30 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 2 6 1 0 BITMAP C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP 30 30 3C F0 30 30 30 30 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 0 BITMAP 30 30 3C F0 30 30 3E ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 -1 BITMAP 30 30 FC 30 30 FC 30 30 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 0 0 BITMAP 3C 60 FE 66 66 66 66 66 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 1 1 BITMAP 80 C0 60 C0 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 7 1 0 BITMAP 3FC0 6600 C600 C780 C600 6600 3FC0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 1 1 3 BITMAP FF80 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 2 7 BITMAP B0 60 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 2 3 -2 BITMAP 80 60 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 2 1 7 BITMAP D8 90 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 0 1 BITMAP 20 60 C0 60 20 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 3 7 BITMAP C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 2 1 7 BITMAP 88 70 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 3 2 2 BITMAP E0 E0 E0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 2 1 7 BITMAP 68 B0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 2 7 BITMAP 60 B0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 4 0 4 BITMAP 48 90 D8 D8 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 1 4 BITMAP C0 C0 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP B0 60 00 70 C0 E0 70 30 E0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 3 2 6 BITMAP 60 B0 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 0 -2 BITMAP C0 C0 40 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 -1 BITMAP 38 60 60 F8 60 60 C0 C0 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 3 1 4 BITMAP FB 55 55 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 5 7 0 0 BITMAP 18 10 30 20 60 40 C0 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 2 2 7 BITMAP C0 60 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 12 8 1 0 BITMAP 0100 6300 B200 6400 0800 1360 35B0 2360 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 2 1 0 BITMAP 88 88 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 4 1 4 BITMAP D8 D8 48 90 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 58 30 00 78 C0 F0 78 18 F0 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 4 0 -2 BITMAP D8 D8 48 90 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP B0 60 00 F0 30 60 60 C0 F0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/luBS12.bdf100644 1750 1750 60601 5413747465 14765 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. COMMENT GRID 0012 0012 0200 0200 FONT -B&H-Lucida-Bold-R-Normal-Sans-12-120-75-75-P-79-ISO8859-1 SIZE 12 72 72 FONTBOUNDINGBOX 16 13 0 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Bold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 12 POINT_SIZE 120 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 79 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 11 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 4 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 4 0 BBX 2 9 1 0 BITMAP C0 C0 C0 C0 C0 40 00 C0 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 6 0 BBX 5 4 1 6 BITMAP D8 D8 90 90 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 6C 6C FE 6C 6C FE 6C 6C 6C ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 -1 BITMAP 10 78 D4 D0 F0 78 3C 2C AC 78 20 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 11 0 BBX 11 9 0 0 BITMAP 7080 D980 DB00 7600 0400 0DC0 1B60 3360 21C0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 10 0 BBX 8 9 2 0 BITMAP 78 CC CC 68 33 5A CC C6 7B ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 1 6 BITMAP C0 C0 40 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 5 0 BBX 4 11 1 -1 BITMAP 30 60 60 C0 C0 C0 C0 C0 60 60 30 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 5 0 BBX 4 11 0 -1 BITMAP C0 60 60 30 30 30 30 30 60 60 C0 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 4 BITMAP 20 A8 70 A8 20 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 1 BITMAP 10 10 10 FE 10 10 10 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 1 -2 BITMAP C0 C0 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 8 0 BBX 7 1 1 4 BITMAP FE ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 3 0 BBX 2 2 1 0 BITMAP C0 C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 7 0 BBX 7 11 0 -1 BITMAP 06 06 0C 0C 18 38 30 60 60 C0 C0 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 78 CC CC CC CC CC CC CC 78 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 8 0 BBX 4 9 1 0 BITMAP 30 F0 30 30 30 30 30 30 30 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 78 CC 0C 0C 18 30 60 FC FC ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 78 CC 0C 0C 38 0C 0C CC 78 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 0C 1C 2C 4C 8C FE FE 0C 0C ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 7C 7C 40 40 78 0C 0C CC 78 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 78 CC C0 C0 F8 CC CC CC 78 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP FC FC 0C 18 18 30 30 60 60 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 78 CC CC EC 78 DC CC CC 78 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 78 CC CC CC 7C 0C 0C CC 78 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 3 0 BBX 2 7 1 0 BITMAP C0 C0 00 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 3 0 BBX 2 9 1 -2 BITMAP C0 C0 00 00 00 C0 C0 40 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 1 BITMAP 0C 38 60 C0 60 38 0C ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 8 0 BBX 6 3 1 3 BITMAP FC 00 FC ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 1 BITMAP C0 70 18 0C 18 70 C0 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 70 98 18 30 60 60 00 60 60 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 3E00 6300 CF00 DB00 DB00 DB00 CD80 6000 3F00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 18 18 2C 2C 4C 7E C6 C6 C6 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 9 0 BBX 6 9 2 0 BITMAP F8 CC CC C8 F0 C8 CC CC F8 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 2 0 BITMAP 3C 66 C0 C0 C0 C0 C0 62 3C ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 10 0 BBX 7 9 2 0 BITMAP F8 CC C6 C6 C6 C6 C6 CC F8 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 2 0 BITMAP FC C0 C0 C0 F8 C0 C0 C0 FC ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 2 0 BITMAP FC C0 C0 C0 F8 C0 C0 C0 C0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 3C 66 C0 C0 C0 C6 C6 66 3E ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 10 0 BBX 7 9 2 0 BITMAP C6 C6 C6 C6 FE C6 C6 C6 C6 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 5 0 BBX 2 9 2 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 6 0 BBX 4 10 1 -1 BITMAP 30 30 30 30 30 30 30 30 30 E0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 2 0 BITMAP C6 CC C8 D0 F0 D8 DC CC C6 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 2 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 FC ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 12 0 BBX 9 9 2 0 BITMAP E380 E380 E380 B580 B580 B580 9980 9980 8180 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 10 0 BBX 7 9 2 0 BITMAP E2 E2 B2 B2 BA 9A 8E 8E 86 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 11 0 BBX 8 9 2 0 BITMAP 3C 66 C3 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 2 0 BITMAP F8 CC CC CC C8 F0 C0 C0 C0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 11 0 BBX 8 11 2 -2 BITMAP 3C 66 C3 C3 C3 C3 C3 66 3C 06 03 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 2 0 BITMAP F8 CC CC C8 F0 D8 D8 CC CE ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 78 CC C0 E0 78 1C 0C CC 78 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP FF 18 18 18 18 18 18 18 18 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 10 0 BBX 7 9 2 0 BITMAP C6 C6 C6 C6 C6 C6 C6 6C 38 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP C3 C3 C3 62 66 34 3C 18 18 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 12 0 BBX 10 9 1 0 BITMAP C0C0 CCC0 CCC0 6D80 6D80 7F80 3300 3300 3300 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP C6 C6 6C 78 38 6C 6C C6 C6 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP C3 C3 62 66 34 18 18 18 18 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP FC 0C 18 38 30 60 60 C0 FC ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 5 0 BBX 4 11 1 -1 BITMAP F0 C0 C0 C0 C0 C0 C0 C0 C0 C0 F0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 7 0 BBX 7 11 0 -1 BITMAP C0 C0 60 60 30 38 18 0C 0C 06 06 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 5 0 BBX 4 11 0 -1 BITMAP F0 30 30 30 30 30 30 30 30 30 F0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 2 BITMAP 10 38 28 6C 44 C6 82 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 9 0 BBX 7 1 1 -1 BITMAP FE ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 1 6 BITMAP 40 80 C0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 78 CC 0C 7C CC CC 76 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP C0 C0 C0 D8 EC CC CC CC CC F8 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 78 CC C0 C0 C0 C4 78 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 0C 0C 0C 7C CC CC CC CC DC 6C ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP 78 CC CC FC C0 C4 78 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 6 0 BBX 5 10 1 0 BITMAP 38 60 60 F8 60 60 60 60 60 60 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 -2 BITMAP 7C CC CC CC DC 6C 0C CC 78 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP C0 C0 C0 D8 EC CC CC CC CC CC ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 5 0 BBX 2 10 2 0 BITMAP C0 C0 00 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 5 0 BBX 4 12 0 -2 BITMAP 30 30 00 30 30 30 30 30 30 30 30 E0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 2 0 BITMAP C0 C0 C0 CC C8 D0 F0 D8 CC CC ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 5 0 BBX 2 10 2 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 13 0 BBX 10 7 2 0 BITMAP D980 EEC0 CCC0 CCC0 CCC0 CCC0 CCC0 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 9 0 BBX 6 7 2 0 BITMAP D8 EC CC CC CC CC CC ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP 78 CC CC CC CC CC 78 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 9 0 BBX 6 9 2 -2 BITMAP D8 EC CC CC CC CC F8 C0 C0 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 -2 BITMAP 7C CC CC CC CC DC 6C 0C 0C ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP D8 D8 E0 C0 C0 C0 C0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP 7C C0 E0 78 1C 0C F8 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 5 0 BBX 5 9 0 0 BITMAP 20 60 F8 60 60 60 60 60 38 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 9 0 BBX 6 7 2 0 BITMAP CC CC CC CC CC DC 6C ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP CC CC CC 68 68 30 30 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 11 0 BBX 10 7 1 0 BITMAP C0C0 CCC0 6D80 6D80 7F80 3300 3300 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP CC CC 68 30 58 CC CC ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 -2 BITMAP C6 C6 C4 6C 68 38 30 60 60 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP F8 18 30 70 60 C0 F8 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 5 0 BBX 4 11 1 -1 BITMAP 70 C0 C0 60 20 C0 20 60 C0 C0 70 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 4 0 BBX 2 11 1 -1 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 5 0 BBX 4 11 0 -1 BITMAP E0 30 30 60 40 30 40 60 30 30 E0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 8 0 BBX 6 2 1 4 BITMAP 74 B8 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 4 0 BBX 2 9 1 -2 BITMAP C0 C0 00 80 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 10 78 CC C0 C0 C0 CC 78 10 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 38 64 60 60 F8 60 60 60 FC ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 81 C3 3C 66 66 66 3C C3 81 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP C3 C3 66 34 7E 18 7E 18 18 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 4 0 BBX 2 11 1 -1 BITMAP C0 C0 C0 C0 00 00 00 C0 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 -1 BITMAP 78 CC E0 78 9C E4 78 1C CC 78 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 8 0 BBX 4 2 2 8 BITMAP 90 90 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 3E00 4100 9C80 B480 B080 B080 9C80 4100 3E00 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 7 0 BBX 6 5 1 4 BITMAP 70 18 78 D8 6C ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 8 0 BBX 7 5 0 1 BITMAP 36 6C D8 6C 36 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 8 0 BBX 7 3 1 2 BITMAP FE 02 02 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 4 0 BBX 3 1 1 4 BITMAP E0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 2 BITMAP 38 44 BA B2 AA 44 38 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 8 0 BBX 4 2 2 8 BITMAP F0 F0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 3 0 BBX 4 3 0 6 BITMAP 60 90 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 1 BITMAP 10 10 FE 10 10 00 FE ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 7 0 BBX 5 5 1 4 BITMAP F0 18 30 C0 F8 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 7 0 BBX 5 5 1 4 BITMAP F0 18 70 18 F0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 8 0 BBX 3 2 3 8 BITMAP 60 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 9 0 BBX 6 9 2 -2 BITMAP CC CC CC CC CC DC EC C0 C0 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 -1 BITMAP 7C F4 F4 F4 74 14 14 14 14 14 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 8 0 BBX 2 2 3 3 BITMAP C0 C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 8 0 BBX 4 2 1 -2 BITMAP 30 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 7 0 BBX 4 5 1 4 BITMAP 30 F0 30 30 30 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 4 BITMAP 70 D8 D8 D8 70 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 8 0 BBX 7 5 1 1 BITMAP D8 6C 36 6C D8 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 13 0 BBX 12 9 1 0 BITMAP E0C0 6180 6300 6600 6CE0 1960 3260 63F0 C060 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 13 0 BBX 12 9 1 0 BITMAP E0C0 6180 6300 6600 64E0 0D30 1870 30C0 61F0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 14 0 BBX 14 9 0 0 BITMAP F030 1860 70C0 1980 F338 0658 0C98 18FC 3018 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 2 -2 BITMAP 30 30 00 30 30 60 C0 C8 70 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 30 18 00 18 2C 2C 4C 7E C6 C6 C6 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 0C 18 00 18 2C 2C 4C 7E C6 C6 C6 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 18 2C 00 18 2C 2C 4C 7E C6 C6 C6 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 34 58 00 18 2C 2C 4C 7E C6 C6 C6 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 24 24 00 18 2C 2C 4C 7E C6 C6 C6 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 18 2C 18 18 2C 2C 4C 7E C6 C6 C6 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 12 0 BBX 10 9 1 0 BITMAP 0FC0 1600 1600 2600 6780 7E00 C600 C600 C7C0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 2 -2 BITMAP 3C 66 C0 C0 C0 C0 C0 62 3C 18 70 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 2 0 BITMAP 60 30 00 FC C0 C0 F8 C0 C0 C0 FC ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 2 0 BITMAP 18 30 00 FC C0 C0 F8 C0 C0 C0 FC ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 2 0 BITMAP 30 58 00 FC C0 C0 F8 C0 C0 C0 FC ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 2 0 BITMAP 48 48 00 FC C0 C0 F8 C0 C0 C0 FC ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 5 0 BBX 3 11 1 0 BITMAP C0 60 00 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 5 0 BBX 3 11 2 0 BITMAP 60 C0 00 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 5 0 BBX 4 11 1 0 BITMAP 60 B0 00 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 5 0 BBX 4 11 1 0 BITMAP 90 90 00 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 10 0 BBX 8 9 1 0 BITMAP 7C 66 63 63 FB 63 63 66 7C ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 10 0 BBX 7 11 2 0 BITMAP 34 58 00 C2 E2 F2 B2 9A 9E 8E 86 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 11 0 BBX 8 11 2 0 BITMAP 30 18 00 3C 66 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 11 0 BBX 8 11 2 0 BITMAP 0C 18 00 3C 66 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 11 0 BBX 8 11 2 0 BITMAP 18 2C 00 3C 66 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 11 0 BBX 8 11 2 0 BITMAP 1A 2C 00 3C 66 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 11 0 BBX 8 11 2 0 BITMAP 24 24 00 3C 66 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 8 0 BBX 7 6 1 1 BITMAP C6 6C 38 38 6C C6 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 11 0 BBX 8 11 2 -1 BITMAP 01 3D 66 C7 CB CB D3 E3 66 BC 80 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 10 0 BBX 7 11 2 0 BITMAP 30 18 00 C6 C6 C6 C6 C6 C6 6C 38 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 10 0 BBX 7 11 2 0 BITMAP 18 30 00 C6 C6 C6 C6 C6 C6 6C 38 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 10 0 BBX 7 11 2 0 BITMAP 18 2C 00 C6 C6 C6 C6 C6 C6 6C 38 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 10 0 BBX 7 11 2 0 BITMAP 48 48 00 C6 C6 C6 C6 C6 C6 6C 38 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 0C 18 00 C3 C3 66 3C 18 18 18 18 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 2 0 BITMAP C0 C0 F8 CC CC CC F8 C0 C0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP 70 D8 D8 D8 D0 C8 CC CC CC D8 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 60 30 00 78 CC 0C 7C CC CC 76 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 18 30 00 78 CC 0C 7C CC CC 76 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 30 58 00 78 CC 0C 7C CC CC 76 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 68 B0 00 78 CC 0C 7C CC CC 76 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 48 48 00 78 CC 0C 7C CC CC 76 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 1 0 BITMAP 30 58 30 00 78 CC 0C 7C CC CC 76 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 11 0 BBX 10 7 1 0 BITMAP 7780 CCC0 0CC0 7FC0 CC00 CC40 7780 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 -2 BITMAP 78 CC C0 C0 C0 C4 78 30 E0 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 60 30 00 78 CC CC FC C0 C4 78 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 18 30 00 78 CC CC FC C0 C4 78 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 30 58 00 78 CC CC FC C0 C4 78 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 48 48 00 78 CC CC FC C0 C4 78 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 5 0 BBX 3 10 1 0 BITMAP C0 60 00 60 60 60 60 60 60 60 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 5 0 BBX 3 10 2 0 BITMAP 60 C0 00 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 5 0 BBX 4 10 1 0 BITMAP 60 B0 00 60 60 60 60 60 60 60 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 5 0 BBX 4 10 1 0 BITMAP 90 90 00 60 60 60 60 60 60 60 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 70 1E 78 0C 7C CC CC CC CC 78 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP 34 58 00 D8 EC CC CC CC CC CC ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 60 30 00 78 CC CC CC CC CC 78 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 18 30 00 78 CC CC CC CC CC 78 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 30 58 00 78 CC CC CC CC CC 78 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 34 58 00 78 CC CC CC CC CC 78 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 48 48 00 78 CC CC CC CC CC 78 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 1 BITMAP 10 10 00 FE 00 10 10 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 -1 BITMAP 04 7C CC DC CC EC CC F8 80 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP 60 30 00 CC CC CC CC CC DC 6C ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP 18 30 00 CC CC CC CC CC DC 6C ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP 30 58 00 CC CC CC CC CC DC 6C ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP 48 48 00 CC CC CC CC CC DC 6C ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 8 0 BBX 7 12 1 -2 BITMAP 18 30 00 C6 C6 C4 6C 68 38 30 60 60 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 9 0 BBX 6 11 2 -2 BITMAP C0 C0 D8 EC CC CC CC CC F8 C0 C0 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 8 0 BBX 7 12 1 -2 BITMAP 24 24 00 C6 C6 C4 6C 68 38 30 60 60 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 3E 66 66 FE 66 66 66 66 66 66 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 1 1 4 BITMAP F0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 -1 BITMAP 30 30 30 FC 30 30 30 30 30 30 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 0 BITMAP 58 30 00 FC 0C 18 38 70 60 C0 FC ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 7 1 0 BITMAP 7780 CCC0 CCC0 CFC0 CC00 CC40 7780 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 24 24 00 C3 C3 66 3C 18 18 18 18 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 2 7 2 0 BITMAP C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 10 0 0 BITMAP 30 30 30 3C F0 30 30 30 30 30 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 30 30 30 3C F0 30 30 30 3F ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 -1 BITMAP 30 30 30 FC 30 30 FC 30 30 30 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 3E 66 60 FE 66 66 66 66 66 66 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 1 BITMAP C0 60 30 60 C0 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 11 9 1 0 BITMAP 3BE0 6700 C300 C300 C3C0 C300 C300 6700 3BE0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 11 1 1 4 BITMAP FFE0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 4 2 2 8 BITMAP B0 60 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 4 2 3 -2 BITMAP C0 70 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 2 2 8 BITMAP D8 90 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 1 BITMAP 30 60 C0 60 30 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 2 2 3 8 BITMAP C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 2 1 8 BITMAP 88 70 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 4 4 2 2 BITMAP F0 F0 F0 F0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 2 2 8 BITMAP 68 B0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 4 2 2 8 BITMAP 60 B0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 4 1 6 BITMAP 48 90 D8 D8 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 1 6 BITMAP C0 C0 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 58 30 00 7C C0 E0 78 1C 0C F8 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 4 3 2 8 BITMAP 60 B0 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 1 -2 BITMAP C0 C0 40 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 -1 BITMAP 1C 32 30 30 F8 60 60 C0 C0 C0 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 4 2 5 BITMAP FB 55 55 51 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP 0C 0C 18 18 30 60 60 C0 C0 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 3 2 2 8 BITMAP C0 60 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 16 9 0 0 BITMAP 70C0 D980 DB00 7600 0400 0DCE 1B7B 337B 61CE ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 2 2 0 BITMAP CC CC ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 4 1 6 BITMAP D8 D8 48 90 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 0 BITMAP 58 30 00 78 CC C0 F8 7C 0C CC 78 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 4 1 -2 BITMAP D8 D8 48 90 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP 58 30 00 F8 18 30 70 60 C0 F8 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/luBS14.bdf100644 1750 1750 63306 5413747465 14774 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. COMMENT GRID 0014 0014 0200 0200 FONT -B&H-Lucida-Bold-R-Normal-Sans-14-140-75-75-P-92-ISO8859-1 SIZE 14 72 72 FONTBOUNDINGBOX 18 15 -1 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Bold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 14 POINT_SIZE 140 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 92 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 13 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 4 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 4 0 BBX 2 10 1 0 BITMAP C0 C0 C0 C0 C0 80 80 00 C0 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 7 0 BBX 5 4 1 7 BITMAP D8 D8 90 90 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 0 0 BITMAP 1B00 1B00 1B00 7F80 3600 3600 FF80 6C00 6C00 6C00 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 10 0 BBX 7 12 1 -1 BITMAP 10 7C D6 D0 F0 70 1C 1E 16 D6 7C 10 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP 7000 D980 DB00 7200 0400 0800 1380 36C0 66C0 0380 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 3C00 6600 6600 6400 3980 5980 CD00 C600 E700 7980 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 4 0 BBX 2 4 1 7 BITMAP C0 C0 40 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 6 0 BBX 4 12 1 -1 BITMAP 30 60 60 C0 C0 C0 C0 C0 C0 60 60 30 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 6 0 BBX 4 12 1 -1 BITMAP C0 60 60 30 30 30 30 30 30 60 60 C0 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 7 0 BBX 5 5 1 5 BITMAP 20 A8 70 A8 20 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 10 0 BBX 7 7 1 1 BITMAP 10 10 10 FE 10 10 10 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 4 0 BBX 2 4 1 -2 BITMAP C0 C0 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 10 0 BBX 7 1 1 4 BITMAP FE ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 4 0 BBX 2 2 1 0 BITMAP C0 C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 0 -1 BITMAP 03 06 06 0C 0C 18 18 30 30 60 60 C0 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 3C 66 C3 C3 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 10 0 BBX 5 10 2 0 BITMAP 18 F8 18 18 18 18 18 18 18 18 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 7E C7 03 03 06 0C 18 60 FF FF ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 7E C7 03 06 3C 06 03 03 C7 7E ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 0C 1C 2C 4C 8C FF FF 0C 0C 0C ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 10 0 BBX 7 10 2 0 BITMAP FC FC 80 80 FC 0E 06 06 CC 78 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 3E 63 C0 DC E6 C3 C3 C3 66 3C ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP FF FF 06 0C 18 30 30 60 60 60 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 7E C7 C3 72 3C 4E C7 C3 E3 7E ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 3C 66 C3 C3 C3 67 1B 03 C6 7C ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 4 0 BBX 2 7 1 0 BITMAP C0 C0 00 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 4 0 BBX 2 9 1 -2 BITMAP C0 C0 00 00 00 C0 C0 40 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 10 0 BBX 6 7 2 1 BITMAP 0C 38 60 C0 60 38 0C ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 10 0 BBX 7 3 1 3 BITMAP FE 00 FE ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 10 0 BBX 6 7 2 1 BITMAP C0 70 18 0C 18 70 C0 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 78 CC 0C 0C 18 30 30 00 30 30 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP 1E00 6100 4180 8F80 9980 9980 9980 4EC0 6000 1F00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 1C00 1C00 2600 2600 6300 4300 FF00 C180 C180 C180 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 10 0 BBX 7 10 2 0 BITMAP FC C6 C6 CC F0 CC C6 C6 C6 FC ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 11 0 BBX 8 10 2 0 BITMAP 3E 63 C0 C0 C0 C0 C0 C0 63 3E ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 12 0 BBX 9 10 2 0 BITMAP FE00 C300 C180 C180 C180 C180 C180 C180 C300 FE00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP FC C0 C0 C0 F8 C0 C0 C0 C0 FC ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP FC C0 C0 C0 F8 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 11 0 BBX 8 10 2 0 BITMAP 3E 63 C0 C0 C0 C3 C3 C3 63 3F ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 12 0 BBX 8 10 2 0 BITMAP C3 C3 C3 C3 FF C3 C3 C3 C3 C3 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 6 0 BBX 2 10 2 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 6 0 BBX 4 12 0 -2 BITMAP 30 30 30 30 30 30 30 30 30 30 30 E0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 11 0 BBX 8 10 2 0 BITMAP C3 C6 CC D8 F0 D8 CC C6 C3 C3 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 FC ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 15 0 BBX 11 10 2 0 BITMAP E0E0 E0E0 B160 B160 B160 9A60 9A60 8C60 8C60 8060 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 12 0 BBX 8 10 2 0 BITMAP E1 E1 B1 B1 99 99 8D 8D 87 87 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP 3F00 6180 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 6180 3F00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP F8 CC CC CC CC F8 C0 C0 C0 C0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 1 -2 BITMAP 3F00 6180 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 6180 3F00 0300 0180 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 11 0 BBX 8 10 2 0 BITMAP FC C6 C6 C4 CC F8 CC C6 C3 C3 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 7C C6 C0 E0 78 3C 0E 06 C6 7C ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP FF 18 18 18 18 18 18 18 18 18 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 12 0 BBX 8 10 2 0 BITMAP C3 C3 C3 C3 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP C180 C180 C180 6100 6300 6300 3200 3600 1C00 1C00 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 13 0 BBX 11 10 1 0 BITMAP C060 C060 C660 C660 6640 6B40 6B40 7BC0 3180 3180 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP C6 C6 6C 6C 38 38 6C 6C C6 C6 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP C3 C3 62 66 34 18 18 18 18 18 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP FE 06 0C 1C 18 30 70 60 C0 FE ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 6 0 BBX 4 12 1 -1 BITMAP F0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 F0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 0 -1 BITMAP C0 60 60 30 30 18 18 0C 0C 06 06 03 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 6 0 BBX 4 12 1 -1 BITMAP F0 30 30 30 30 30 30 30 30 30 30 F0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 10 0 BBX 6 7 2 3 BITMAP 30 30 78 48 CC 84 84 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 11 0 BBX 9 1 1 -1 BITMAP FF80 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 4 0 BBX 2 4 1 7 BITMAP 40 80 C0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 1 0 BITMAP 7C 06 06 7E C6 C6 CE 77 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP C0 C0 C0 DC E6 C3 C3 C3 C3 C6 FC ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP 3C 66 C0 C0 C0 C0 62 3C ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 03 03 03 3F 63 C3 C3 C3 C3 67 3B ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP 3C 66 C6 FE C0 C0 62 3C ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 7 0 BBX 7 11 0 0 BITMAP 1E 30 30 FE 30 30 30 30 30 30 30 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 -2 BITMAP 3F 63 C3 C3 C3 67 3B 03 C6 7C ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP C0 C0 C0 DE E7 C3 C3 C3 C3 C3 C3 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 4 0 BBX 2 11 1 0 BITMAP C0 C0 00 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 5 0 BBX 4 13 0 -2 BITMAP 30 30 00 30 30 30 30 30 30 30 30 30 E0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP C0 C0 C0 C6 CC D8 F0 D8 CC C6 C7 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 4 0 BBX 2 11 1 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 14 0 BBX 12 8 1 0 BITMAP DDE0 EF70 C630 C630 C630 C630 C630 C630 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 10 0 BBX 8 8 1 0 BITMAP DE E7 C3 C3 C3 C3 C3 C3 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 10 0 BBX 8 8 1 0 BITMAP 3C 66 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 -2 BITMAP DC E6 C3 C3 C3 C3 C6 FC C0 C0 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 -2 BITMAP 3F 63 C3 C3 C3 C3 67 3B 03 03 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 8 0 BBX 5 8 2 0 BITMAP D8 D8 E0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 8 0 BBX 6 8 1 0 BITMAP 7C C0 C0 F0 3C 0C 0C F8 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP 60 60 F8 60 60 60 60 60 60 38 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 10 0 BBX 8 8 1 0 BITMAP C3 C3 C3 C3 C3 C3 E7 7B ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP C6 C6 C6 C6 64 68 38 38 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 13 0 BBX 11 8 1 0 BITMAP C060 C460 C460 6EC0 6AC0 7B80 3180 3180 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP C6 C6 64 38 38 4C C6 C6 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 -2 BITMAP C6 C6 C6 C6 6C 68 38 30 60 E0 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP FE 06 0C 18 30 60 C0 FE ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 6 0 BBX 4 12 1 -1 BITMAP 70 C0 C0 60 20 C0 20 60 C0 C0 C0 70 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 4 0 BBX 2 12 1 -1 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 6 0 BBX 4 12 1 -1 BITMAP E0 30 30 60 40 30 40 60 30 30 30 E0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 9 0 BBX 7 3 1 3 BITMAP 72 BA 9C ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 4 0 BBX 2 10 1 -2 BITMAP C0 C0 00 40 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 10 0 BBX 7 12 1 -1 BITMAP 08 08 3E 6A C8 C8 C8 C8 68 3E 08 08 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 10 0 BBX 7 10 1 0 BITMAP 1C 32 30 30 FC 30 30 30 60 FE ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 0 0 BITMAP 8080 4100 3E00 6300 6300 6300 6300 3E00 4100 8080 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP C3 C3 62 66 34 7E 18 7E 18 18 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 4 0 BBX 2 12 1 -1 BITMAP C0 C0 C0 C0 C0 00 00 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 10 0 BBX 6 11 2 -1 BITMAP 78 CC C0 70 D8 CC 6C 38 0C CC 78 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 10 0 BBX 4 2 3 9 BITMAP 90 90 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP 1E00 6180 4080 8E40 9840 9840 8E40 4080 6180 1E00 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 8 0 BBX 6 6 1 4 BITMAP 70 18 78 D8 D8 6C ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 9 0 BBX 8 5 0 2 BITMAP 33 66 CC 66 33 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 10 0 BBX 7 4 1 1 BITMAP FE 02 02 02 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 1 4 BITMAP E0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 10 0 BBX 7 7 1 3 BITMAP 38 44 BA B2 AA 44 38 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 10 0 BBX 4 1 3 9 BITMAP F0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 4 0 BBX 4 3 0 7 BITMAP 60 90 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 10 0 BBX 7 7 1 1 BITMAP 10 10 FE 10 10 00 FE ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 4 BITMAP F0 18 18 60 C0 F8 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 4 BITMAP F0 18 70 18 18 F0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 10 0 BBX 5 2 3 9 BITMAP 38 E0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 -2 BITMAP C3 C3 C3 C3 C3 C3 E7 FB C0 C0 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 10 0 BBX 6 11 2 -1 BITMAP 7C F4 F4 F4 F4 74 14 14 14 14 14 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 10 0 BBX 2 2 4 3 BITMAP C0 C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 10 0 BBX 3 2 3 -2 BITMAP 20 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 7 0 BBX 4 6 1 4 BITMAP 30 F0 30 30 30 30 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 8 0 BBX 6 6 1 4 BITMAP 78 CC CC CC CC 78 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 9 0 BBX 8 5 1 2 BITMAP CC 66 33 66 CC ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 14 0 BBX 12 10 1 0 BITMAP 6100 E100 6200 6200 64E0 6560 0A60 0BF0 1060 1060 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 14 0 BBX 12 10 1 0 BITMAP 6100 E100 6200 6200 64E0 6530 0870 08E0 1180 11F0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 15 0 BBX 13 10 1 0 BITMAP 7080 9880 3100 1A00 9A70 74B0 0530 09F8 1030 1030 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 -2 BITMAP 30 30 00 30 30 60 C0 C0 CC 78 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 7000 1C00 0000 1C00 1C00 2600 2600 6300 4300 FF00 C180 C180 C180 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 0700 1C00 0000 1C00 1C00 2600 2600 6300 4300 FF00 C180 C180 C180 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 1C00 2600 0000 1C00 1C00 2600 2600 6300 4300 FF00 C180 C180 C180 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 1A00 2C00 0000 1C00 1C00 2600 2600 6300 4300 FF00 C180 C180 C180 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 24 24 00 18 18 2C 2C 66 46 FE C3 C3 C3 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 1C00 2600 1C00 1C00 1C00 2600 2600 6300 4300 FF00 C180 C180 C180 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 13 0 BBX 11 10 1 0 BITMAP 1FE0 1600 2600 2600 67C0 4600 7E00 C600 C600 C7E0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 11 0 BBX 8 12 2 -2 BITMAP 3E 63 C0 C0 C0 C0 C0 C0 63 3E 08 30 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 2 0 BITMAP 70 1C 00 FC C0 C0 C0 F8 C0 C0 C0 C0 FC ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 2 0 BITMAP 1C 70 00 FC C0 C0 C0 F8 C0 C0 C0 C0 FC ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 2 0 BITMAP 30 58 00 FC C0 C0 C0 F8 C0 C0 C0 C0 FC ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 2 0 BITMAP 48 48 00 FC C0 C0 C0 F8 C0 C0 C0 C0 FC ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 6 0 BBX 4 13 1 0 BITMAP E0 30 00 60 60 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 6 0 BBX 4 13 1 0 BITMAP 70 C0 00 60 60 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 6 0 BBX 4 13 1 0 BITMAP 60 B0 00 60 60 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 6 0 BBX 4 13 1 0 BITMAP 90 90 00 60 60 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 0 0 BITMAP 3F80 30C0 3060 3060 FC60 3060 3060 3060 30C0 3F80 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 12 0 BBX 8 13 2 0 BITMAP 1A 2C 00 E1 E1 B1 B1 99 99 8D 8D 87 87 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 3800 0E00 0000 3F00 6180 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 6180 3F00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 0700 1C00 0000 3F00 6180 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 6180 3F00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 0C00 1600 0000 3F00 6180 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 6180 3F00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 0D00 1600 0000 3F00 6180 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 6180 3F00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 2100 2100 0000 3F00 6180 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 6180 3F00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 10 0 BBX 5 5 2 2 BITMAP C8 70 20 70 98 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 1 -1 BITMAP 0040 3F40 6180 C2C0 C2C0 C4C0 C8C0 D0C0 D0C0 6180 BF00 8000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 12 0 BBX 8 13 2 0 BITMAP 70 1C 00 C3 C3 C3 C3 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 12 0 BBX 8 13 2 0 BITMAP 0E 38 00 C3 C3 C3 C3 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 12 0 BBX 8 13 2 0 BITMAP 18 2C 00 C3 C3 C3 C3 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 12 0 BBX 8 13 2 0 BITMAP 24 24 00 C3 C3 C3 C3 C3 C3 C3 C3 64 3C ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 0E 38 00 C3 C3 62 66 34 18 18 18 18 18 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP C0 C0 F8 CC CC CC CC F8 C0 C0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 7C C6 C6 C4 CC C6 C3 C3 C3 C3 CE ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 70 1C 00 7C 06 06 7E C6 C6 CE 77 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 0E 38 00 7C 06 06 7E C6 C6 CE 77 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 18 2C 00 7C 06 06 7E C6 C6 CE 77 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 34 58 00 7C 06 06 7E C6 C6 CE 77 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 24 24 00 7C 06 06 7E C6 C6 CE 77 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 18 2C 18 7C 06 06 7E C6 C6 CE 77 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 14 0 BBX 12 8 1 0 BITMAP 7DE0 0730 0630 7FF0 C600 C600 C710 79E0 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 -2 BITMAP 3C 66 C0 C0 C0 C0 62 3C 10 60 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 70 1C 00 3C 66 C6 FE C0 C0 62 3C ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 0E 38 00 3C 66 C6 FE C0 C0 62 3C ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 18 2C 00 3C 66 C6 FE C0 C0 62 3C ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 44 44 00 3C 66 C6 FE C0 C0 62 3C ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 0 0 BITMAP E0 30 00 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 0 0 BITMAP 70 C0 00 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 0 0 BITMAP 60 B0 00 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 0 0 BITMAP 90 90 00 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 10 3E 0C 3E 66 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 1A 2C 00 DE E7 C3 C3 C3 C3 C3 C3 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 70 1C 00 3C 66 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 0E 38 00 3C 66 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 18 2C 00 3C 66 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 34 58 00 3C 66 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 24 24 00 3C 66 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 10 0 BBX 7 7 1 1 BITMAP 10 10 00 FE 00 10 10 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 -1 BITMAP 01 3D 66 CB CB D3 D3 66 BC 80 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 70 1C 00 C3 C3 C3 C3 C3 C3 E7 7B ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 1C 70 00 C3 C3 C3 C3 C3 C3 E7 7B ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 18 2C 00 C3 C3 C3 C3 C3 C3 E7 7B ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 24 24 00 C3 C3 C3 C3 C3 C3 E7 7B ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 -2 BITMAP 1C 70 00 C6 C6 C6 C6 6C 68 38 30 60 E0 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 -2 BITMAP C0 C0 DC E6 C3 C3 C3 C3 C6 FC C0 C0 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 -2 BITMAP 44 44 00 C6 C6 C6 C6 6C 68 38 30 60 E0 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 11 0 0 BITMAP 1F80 3180 3180 FD80 3180 3180 3180 3180 3180 3180 3180 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 1 1 4 BITMAP F8 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 11 2 -1 BITMAP 30 30 30 FC 30 30 30 30 30 30 30 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP 2C 18 00 FE 06 0C 1C 18 30 70 60 C0 FE ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 13 8 1 0 BITMAP 3CF0 6398 C318 C3F8 C300 C300 6388 3CF0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 24 24 00 C3 C3 62 66 34 18 18 18 18 18 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 2 8 1 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 11 0 0 BITMAP 30 30 30 30 3C F0 30 30 30 30 30 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP 30 30 30 30 3C F0 30 30 30 3F ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 11 2 -1 BITMAP 30 30 30 FC 30 30 30 FC 30 30 30 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 11 0 0 BITMAP 1D80 3180 3000 FF80 3180 3180 3180 3180 3180 3180 3180 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 2 BITMAP C0 60 30 60 C0 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 13 10 1 0 BITMAP 3DF8 6380 C180 C180 C1F0 C180 C180 C180 6380 3DF8 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 13 1 1 4 BITMAP FFF8 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 4 2 3 9 BITMAP B0 60 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 3 2 5 -2 BITMAP 80 60 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 5 2 3 9 BITMAP D8 90 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 2 BITMAP 30 60 C0 60 30 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 2 2 4 9 BITMAP C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 2 2 9 BITMAP 84 78 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 4 4 3 2 BITMAP F0 F0 F0 F0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 5 2 3 9 BITMAP 68 B0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 4 2 3 9 BITMAP 60 B0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 4 1 7 BITMAP 48 90 D8 D8 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 2 4 1 7 BITMAP C0 C0 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 0 BITMAP 58 30 00 7C C0 C0 F0 3C 0C 0C F8 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 4 3 3 8 BITMAP 60 B0 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 2 4 1 -2 BITMAP C0 C0 40 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 7 11 2 -1 BITMAP 1C 32 30 30 FC 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 10 5 1 5 BITMAP FEC0 2540 2540 2540 2440 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 6 10 -1 0 BITMAP 0C 0C 18 18 30 30 60 60 C0 C0 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 5 2 2 9 BITMAP E0 38 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 16 10 1 0 BITMAP 7000 D980 DB00 7200 0400 0800 138E 36DB 66DB 038E ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 2 2 0 BITMAP CC CC ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 4 1 7 BITMAP D8 D8 48 90 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP 2C 18 00 7C C6 C0 E0 78 3C 0E 06 C6 7C ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 4 1 -2 BITMAP D8 D8 48 90 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 2C 18 00 FE 06 0C 18 30 60 C0 FE ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/luBS18.bdf100644 1750 1750 75621 5413747465 15003 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. COMMENT GRID 0018 0018 0200 0200 FONT -B&H-Lucida-Bold-R-Normal-Sans-18-180-75-75-P-120-ISO8859-1 SIZE 18 72 72 FONTBOUNDINGBOX 26 19 -1 -3 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Bold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 18 POINT_SIZE 180 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 120 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 16 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 5 0 BBX 3 13 1 0 BITMAP E0 E0 E0 E0 E0 60 40 40 00 00 E0 E0 E0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 10 0 BBX 8 5 1 9 BITMAP E7 E7 C6 C6 84 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 13 0 BBX 10 13 2 0 BITMAP 1980 1980 1980 7FC0 7FC0 3300 3300 FF80 FF80 6600 6600 6600 6600 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 13 0 BBX 9 17 2 -2 BITMAP 0C00 0C00 3F00 7F80 E580 E400 F400 7C00 3E00 1F00 1780 1380 D380 FF00 7E00 1800 1800 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 17 0 BBX 16 13 1 0 BITMAP 3806 7C0C EE18 C630 EE60 7CC0 399C 033E 0677 0C63 1877 303E 601C ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 1 0 BITMAP 0F00 1F80 39C0 39C0 1D80 1F18 7E18 E738 E3B0 E3E0 F1E0 7FF8 1F78 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 9 BITMAP E0 E0 E0 60 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 7 0 BBX 5 16 2 -2 BITMAP 18 38 30 70 60 E0 E0 E0 E0 E0 E0 60 70 30 38 18 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 7 0 BBX 5 16 0 -2 BITMAP C0 E0 60 70 30 38 38 38 38 38 38 30 70 60 E0 C0 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 1 6 BITMAP 18 18 DB E7 18 66 66 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 13 0 BBX 10 10 2 1 BITMAP 0C00 0C00 0C00 0C00 FFC0 FFC0 0C00 0C00 0C00 0C00 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 -2 BITMAP E0 E0 E0 60 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 13 0 BBX 10 2 2 5 BITMAP FFC0 FFC0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 1 0 BITMAP E0 E0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 11 0 BBX 11 16 0 -2 BITMAP 00E0 00E0 01C0 01C0 0380 0700 0700 0E00 0E00 1C00 1C00 3800 7000 7000 E000 E000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 1 0 BITMAP 1F00 7FC0 71C0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 71C0 7FC0 1F00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 13 0 BBX 5 13 3 0 BITMAP 18 F8 F8 38 38 38 38 38 38 38 38 38 38 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 13 0 BBX 9 13 2 0 BITMAP 7E00 FF00 C380 0380 0380 0700 1E00 3C00 7000 E000 FF80 FF80 FF80 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 13 0 BBX 9 13 2 0 BITMAP 7E00 FF00 C380 0380 0700 3C00 3E00 0700 0380 0380 C780 FF00 7C00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 1 0 BITMAP 0380 0780 0F80 1B80 3380 6380 C380 FFE0 FFE0 0380 0380 0380 0380 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 13 0 BBX 9 13 2 0 BITMAP FF80 FF80 FF80 C000 C000 FC00 FF00 0F80 0380 0380 C380 FF00 7C00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 13 0 BBX 10 13 2 0 BITMAP 1F00 7F80 6180 E000 EF00 FF80 F3C0 E1C0 E1C0 E1C0 71C0 7F80 1F00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 13 0 BBX 10 13 2 0 BITMAP FFC0 FFC0 FFC0 01C0 0380 0700 0E00 1C00 3800 3800 7000 7000 7000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 13 0 BBX 10 13 2 0 BITMAP 3F00 7F80 E1C0 E1C0 F180 7E00 3F00 6F80 E3C0 E1C0 E1C0 7F80 3F00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 13 0 BBX 10 13 2 0 BITMAP 3E00 7F80 E380 E1C0 E1C0 E1C0 F3C0 7FC0 3DC0 01C0 6180 7F80 3E00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 5 0 BBX 3 10 1 0 BITMAP E0 E0 E0 00 00 00 00 E0 E0 E0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 5 0 BBX 3 12 1 -2 BITMAP E0 E0 E0 00 00 00 00 E0 E0 E0 60 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 13 0 BBX 10 10 1 1 BITMAP 00C0 03C0 0F00 3C00 F000 F000 3C00 0F00 03C0 00C0 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 13 0 BBX 10 6 2 3 BITMAP FFC0 FFC0 0000 0000 FFC0 FFC0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 13 0 BBX 10 10 2 1 BITMAP C000 F000 3C00 0F00 03C0 03C0 0F00 3C00 F000 C000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 7E00 FF00 C380 0380 0700 1E00 3800 3000 0000 0000 3800 3800 3800 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 16 0 BBX 14 13 1 0 BITMAP 0FE0 3FF8 7018 67CC CCCC D8CC D98C DB8C DD98 C9F0 6000 7FC0 1F80 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 1 0 BITMAP 0700 0700 0F80 0F80 19C0 19C0 30E0 3FE0 7FF0 7070 6070 E038 E038 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 13 0 BBX 10 13 2 0 BITMAP FF00 FF80 E380 E380 E300 FE00 FF00 E380 E1C0 E1C0 E3C0 FF80 FE00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 1 0 BITMAP 0FE0 3FF0 7830 7000 E000 E000 E000 E000 F000 7000 7C30 3FF0 0FC0 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 15 0 BBX 12 13 2 0 BITMAP FF00 FFC0 E1E0 E0E0 E070 E070 E070 E070 E070 E0E0 E1E0 FFC0 FF00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 12 0 BBX 9 13 2 0 BITMAP FF80 FF80 E000 E000 E000 FF00 FF00 E000 E000 E000 E000 FF80 FF80 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 2 0 BITMAP FF80 FF80 E000 E000 E000 FF00 FF00 E000 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 1 0 BITMAP 0FE0 3FF0 7830 7000 E000 E000 E000 E070 F070 7070 7C70 3FF0 0FF0 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 15 0 BBX 11 13 2 0 BITMAP E0E0 E0E0 E0E0 E0E0 E0E0 FFE0 FFE0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 7 0 BBX 3 13 2 0 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 9 0 BBX 7 15 0 -2 BITMAP 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 1C FC F0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 14 0 BBX 11 13 2 0 BITMAP E0C0 E1C0 E380 E700 EE00 F800 F800 FC00 EF00 E780 E3C0 E1E0 E0E0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 2 0 BITMAP E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 FF80 FF80 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 18 0 BBX 14 13 2 0 BITMAP E01C F03C F03C F87C F87C DCDC DCDC DC9C CF9C CF9C C71C C71C C01C ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 14 0 BBX 10 13 2 0 BITMAP E0C0 E0C0 F0C0 F8C0 F8C0 DCC0 CEC0 CEC0 C7C0 C3C0 C3C0 C1C0 C0C0 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 16 0 BBX 14 13 1 0 BITMAP 0FC0 3FF0 7878 7038 E01C E01C E01C E01C E01C 7038 7878 3FF0 0FC0 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 13 0 BBX 10 13 2 0 BITMAP FF00 FF80 E3C0 E1C0 E1C0 E380 FF80 FE00 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 16 0 BBX 15 15 1 -2 BITMAP 0FC0 3FF0 7878 7038 E01C E01C E01C E01C E01C 7038 7878 3FF0 0FC0 00FE 003E ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 13 0 BBX 10 13 2 0 BITMAP FF00 FF80 E3C0 E1C0 E1C0 E380 FE00 FF00 E700 E380 E3C0 E1C0 E1C0 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 3F00 7F80 E180 E000 F800 FE00 7F00 1F80 0780 0380 C380 FF00 7E00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 1 0 BITMAP FFF8 FFF8 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 15 0 BBX 11 13 2 0 BITMAP E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 71C0 7FC0 1F00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 1 0 BITMAP E038 E038 7030 7070 7060 3860 38E0 1CC0 1CC0 0F80 0F80 0700 0700 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 18 0 BBX 16 13 1 0 BITMAP E007 E187 E187 E187 E1C7 73C6 73C6 73EE 366C 3E7C 3E7C 1C38 1C38 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 1 0 BITMAP E060 F0E0 71C0 7980 3B80 1F00 1E00 1F00 3F80 7380 63C0 E1E0 C0E0 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 1 0 BITMAP E0E0 E0E0 70C0 71C0 3980 3980 1F00 0E00 0E00 0E00 0E00 0E00 0E00 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP FFC0 FFC0 03C0 0780 0F00 0F00 1E00 3C00 3C00 7800 F000 FFC0 FFC0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 7 0 BBX 5 16 2 -2 BITMAP F8 F8 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 F8 F8 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 11 0 BBX 11 16 0 -2 BITMAP E000 E000 7000 7000 3800 1C00 1C00 0E00 0E00 0700 0700 0380 01C0 01C0 00E0 00E0 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 7 0 BBX 5 16 0 -2 BITMAP F8 F8 38 38 38 38 38 38 38 38 38 38 38 38 F8 F8 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 13 0 BBX 9 10 2 2 BITMAP 0800 1C00 1C00 3600 3600 6300 6300 C180 C180 C180 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 14 0 BBX 12 2 1 -2 BITMAP FFF0 FFF0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 9 BITMAP 60 C0 E0 E0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP 3E00 7F00 6380 0380 1F80 7F80 E380 E380 FFC0 79C0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 13 0 BBX 10 14 2 0 BITMAP E000 E000 E000 E000 EF00 FF80 F3C0 E1C0 E1C0 E1C0 E1C0 E380 FF80 DE00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 1F00 7F80 7180 E000 E000 E000 E000 F180 7F80 1E00 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 13 0 BBX 10 14 1 0 BITMAP 01C0 01C0 01C0 01C0 1DC0 7FC0 71C0 E1C0 E1C0 E1C0 E1C0 F3C0 7FC0 3CC0 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 1E00 7F00 7380 E380 FF80 FF80 E000 F180 7F80 1F00 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 8 0 BBX 7 14 1 0 BITMAP 1E 3E 70 70 FE FE 70 70 70 70 70 70 70 70 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 13 0 BBX 10 13 1 -3 BITMAP 1DC0 7FC0 71C0 E1C0 E1C0 E1C0 F3C0 7FC0 3DC0 01C0 61C0 7F80 3F00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 13 0 BBX 9 14 2 0 BITMAP E000 E000 E000 E000 EF00 FF80 F380 E380 E380 E380 E380 E380 E380 E380 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 7 0 BBX 3 14 2 0 BITMAP E0 E0 00 00 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 7 0 BBX 5 17 0 -3 BITMAP 38 38 00 00 38 38 38 38 38 38 38 38 38 38 30 F0 C0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 13 0 BBX 10 14 2 0 BITMAP E000 E000 E000 E000 E180 E380 E700 EE00 FC00 FE00 EF00 E780 E3C0 E1C0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 7 0 BBX 3 14 2 0 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 19 0 BBX 15 10 2 0 BITMAP CF3C FFFE F3CE E38E E38E E38E E38E E38E E38E E38E ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 13 0 BBX 9 10 2 0 BITMAP CF00 FF80 F380 E380 E380 E380 E380 E380 E380 E380 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 13 0 BBX 11 10 1 0 BITMAP 1F00 7FC0 71C0 E0E0 E0E0 E0E0 E0E0 71C0 7FC0 1F00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 13 0 BBX 10 13 2 -3 BITMAP CF00 FF80 F3C0 E1C0 E1C0 E1C0 E1C0 E380 FF80 EE00 E000 E000 E000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 13 0 BBX 10 13 1 -3 BITMAP 1DC0 7FC0 71C0 E1C0 E1C0 E1C0 E1C0 F3C0 7FC0 3DC0 01C0 01C0 01C0 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 2 0 BITMAP E6 EE FE F0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 3F00 7F80 E180 F000 7C00 1F00 0780 C380 FF00 7E00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 1 0 BITMAP 30 30 70 FE FE 70 70 70 70 70 70 3E 1E ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 13 0 BBX 9 10 2 0 BITMAP E380 E380 E380 E380 E380 E380 E380 E780 FF80 7980 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP E0C0 E0C0 E1C0 F180 7380 7B00 3F00 3E00 1C00 1C00 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 16 0 BBX 14 10 1 0 BITMAP E00C E38C E38C E38C F7D8 75D8 7DF0 7CF0 38E0 38E0 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP E180 E380 7300 7600 3C00 3E00 7700 6700 E380 C380 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 -3 BITMAP E0C0 E0C0 E1C0 7180 7380 3B00 3F00 1E00 1E00 0C00 1C00 3800 3800 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP FF80 FF80 0780 0F00 1E00 3C00 7800 F000 FF80 FF80 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 7 0 BBX 5 16 2 -2 BITMAP 78 F8 E0 E0 70 30 30 E0 F0 30 30 60 E0 E0 F8 78 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 6 0 BBX 2 16 2 -2 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 7 0 BBX 5 16 0 -2 BITMAP F0 F8 38 38 70 60 60 38 78 60 60 30 38 38 F8 F0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 13 0 BBX 10 3 2 5 BITMAP 7CC0 FFC0 CF80 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 5 0 BBX 3 13 1 -3 BITMAP E0 E0 E0 00 40 40 C0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 13 0 BBX 10 13 2 0 BITMAP 0600 0600 1F80 7FC0 70C0 E000 E000 E000 F000 7FC0 1FC0 0600 0600 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 13 0 BBX 10 13 2 0 BITMAP 0F80 1FC0 38C0 3800 3800 FF00 FF00 3800 3800 3000 6000 FFC0 FFC0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 13 0 BBX 12 11 1 1 BITMAP C030 6060 1F80 3FC0 39C0 39C0 39C0 3FC0 1F80 6060 C030 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 1 0 BITMAP E0E0 E0E0 70C0 71C0 3980 3B80 1F00 0E00 3F80 0E00 3F80 0E00 0E00 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 6 0 BBX 2 16 2 -2 BITMAP C0 C0 C0 C0 C0 C0 00 00 00 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 13 0 BBX 9 15 2 -2 BITMAP 3F00 7F80 E180 F000 7C00 DF00 C780 E380 F180 7D80 1F00 0780 C380 FF00 7E00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 13 0 BBX 6 2 4 11 BITMAP CC CC ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 1 0 BITMAP 0F80 3FE0 7070 6730 CC98 CC18 CC18 CC18 CC98 6730 7070 3FE0 0F80 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 10 0 BBX 8 8 1 5 BITMAP 7C FE 0E 7E EE EE FF 77 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 11 0 BBX 10 8 0 1 BITMAP 1080 39C0 7380 E700 E700 7380 39C0 1080 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 13 0 BBX 10 5 2 2 BITMAP FFC0 FFC0 00C0 00C0 00C0 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 5 0 BBX 4 2 1 5 BITMAP F0 F0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 13 0 BBX 10 10 2 3 BITMAP 1E00 7F80 6180 DEC0 DAC0 DCC0 DAC0 6180 7F80 1E00 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 13 0 BBX 5 2 4 11 BITMAP F8 F8 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 9 BITMAP 70 D8 D8 70 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 13 0 BBX 10 11 2 1 BITMAP 0C00 0C00 0C00 FFC0 FFC0 0C00 0C00 0C00 0000 FFC0 FFC0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 10 0 BBX 7 8 2 5 BITMAP 7C FE 0E 1E 7C E0 FE FE ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 10 0 BBX 7 8 2 5 BITMAP FC FE 0E 7C 7E 0E FE FC ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 13 0 BBX 5 2 4 11 BITMAP 78 E0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 13 0 BBX 9 13 2 -3 BITMAP E380 E380 E380 E380 E380 E380 E380 F780 FF80 F980 E000 E000 E000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 13 0 BBX 9 15 2 -2 BITMAP 7F80 FD80 FD80 FD80 FD80 7D80 3D80 0D80 0D80 0D80 0D80 0D80 0D80 0D80 0D80 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 13 0 BBX 3 3 5 4 BITMAP E0 E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 13 0 BBX 4 3 5 -3 BITMAP 60 30 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 10 0 BBX 5 8 2 5 BITMAP 38 F8 F8 38 38 38 38 38 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 10 0 BBX 8 8 1 5 BITMAP 3C 7E E7 E7 E7 E7 7E 3C ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 11 0 BBX 10 8 1 1 BITMAP 4200 E700 7380 39C0 39C0 7380 E700 4200 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 20 0 BBX 19 13 0 0 BITMAP 380700 F80E00 F81C00 383800 387000 38E000 38C3C0 01C7C0 0389C0 071FE0 0E1FE0 1C01C0 3801C0 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 20 0 BBX 19 13 0 0 BITMAP 380E00 F81C00 F83800 383000 387000 38E000 39CFC0 039FE0 0718E0 0601C0 0E0700 1C1FE0 381FE0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 21 0 BBX 19 13 0 0 BITMAP 7C0700 FE0E00 0E1C00 3C3800 0E7000 FEE000 7CC3C0 01C7C0 0389C0 071FE0 0E1FE0 1C01C0 3801C0 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 -3 BITMAP 0700 0700 0700 0000 0000 0600 0E00 3C00 7000 E000 E180 7F80 3F00 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 14 0 BBX 13 16 1 0 BITMAP 0F00 0380 0000 0700 0700 0F80 0F80 19C0 19C0 30E0 3FE0 7FF0 7070 6070 E038 E038 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 14 0 BBX 13 16 1 0 BITMAP 0780 0E00 0000 0700 0700 0F80 0F80 19C0 19C0 30E0 3FE0 7FF0 7070 6070 E038 E038 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 14 0 BBX 13 16 1 0 BITMAP 0700 0D80 0000 0700 0700 0F80 0F80 19C0 19C0 30E0 3FE0 7FF0 7070 6070 E038 E038 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 14 0 BBX 13 16 1 0 BITMAP 0E80 1700 0000 0700 0700 0F80 0F80 19C0 19C0 30E0 3FE0 7FF0 7070 6070 E038 E038 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 14 0 BBX 13 16 1 0 BITMAP 1980 1980 0000 0700 0700 0F80 0F80 19C0 19C0 30E0 3FE0 7FF0 7070 6070 E038 E038 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 14 0 BBX 13 16 1 0 BITMAP 0700 0980 0700 0700 0700 0F80 0F80 19C0 19C0 30E0 3FE0 7FF0 7070 6070 E038 E038 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 18 0 BBX 16 13 1 0 BITMAP 03FF 03FF 06E0 0CE0 0CE0 18FE 38FE 3FE0 7FE0 60E0 E0E0 E0FF E0FF ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 14 0 BBX 12 16 1 -3 BITMAP 0FE0 3FF0 7830 7000 E000 E000 E000 E000 F000 7000 7C30 3FF0 0FC0 0700 0380 0F00 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 12 0 BBX 9 16 2 0 BITMAP 3C00 0E00 0000 FF80 FF80 E000 E000 E000 FF00 FF00 E000 E000 E000 E000 FF80 FF80 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 12 0 BBX 9 16 2 0 BITMAP 0F00 1C00 0000 FF80 FF80 E000 E000 E000 FF00 FF00 E000 E000 E000 E000 FF80 FF80 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 12 0 BBX 9 16 2 0 BITMAP 1C00 3600 0000 FF80 FF80 E000 E000 E000 FF00 FF00 E000 E000 E000 E000 FF80 FF80 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 12 0 BBX 9 16 2 0 BITMAP 3300 3300 0000 FF80 FF80 E000 E000 E000 FF00 FF00 E000 E000 E000 E000 FF80 FF80 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 7 0 BBX 5 16 1 0 BITMAP F0 38 00 70 70 70 70 70 70 70 70 70 70 70 70 70 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 7 0 BBX 5 16 1 0 BITMAP 78 E0 00 70 70 70 70 70 70 70 70 70 70 70 70 70 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 7 0 BBX 5 16 1 0 BITMAP 70 D8 00 70 70 70 70 70 70 70 70 70 70 70 70 70 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 7 0 BBX 6 16 0 0 BITMAP CC CC 00 38 38 38 38 38 38 38 38 38 38 38 38 38 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 15 0 BBX 14 13 0 0 BITMAP 3FC0 3FF0 3878 3838 381C FF9C FF9C 381C 381C 3838 3878 3FF0 3FC0 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 14 0 BBX 10 16 2 0 BITMAP 1D00 2E00 0000 E0C0 E0C0 F0C0 F8C0 F8C0 DCC0 CEC0 CEC0 C7C0 C3C0 C3C0 C1C0 C0C0 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 16 0 BBX 14 16 1 0 BITMAP 0F00 0380 0000 0FC0 3FF0 7878 7038 E01C E01C E01C E01C E01C 7038 7878 3FF0 0FC0 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 16 0 BBX 14 16 1 0 BITMAP 03C0 0700 0000 0FC0 3FF0 7878 7038 E01C E01C E01C E01C E01C 7038 7878 3FF0 0FC0 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 16 0 BBX 14 16 1 0 BITMAP 0380 06C0 0000 0FC0 3FF0 7878 7038 E01C E01C E01C E01C E01C 7038 7878 3FF0 0FC0 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 16 0 BBX 14 16 1 0 BITMAP 0740 0B80 0000 0FC0 3FF0 7878 7038 E01C E01C E01C E01C E01C 7038 7878 3FF0 0FC0 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 16 0 BBX 14 16 1 0 BITMAP 0CC0 0CC0 0000 0FC0 3FF0 7878 7038 E01C E01C E01C E01C E01C 7038 7878 3FF0 0FC0 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 13 0 BBX 10 10 2 1 BITMAP 4080 E1C0 7380 3B00 0E00 1C00 3700 7380 E1C0 4080 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 16 0 BBX 14 15 1 -1 BITMAP 000C 0FDC 3FF8 7838 7078 E0DC E19C E31C E61C EC1C 7838 7078 7FF0 EFC0 C000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 15 0 BBX 11 16 2 0 BITMAP 1E00 0700 0000 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 71C0 7FC0 1F00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 15 0 BBX 11 16 2 0 BITMAP 0780 0E00 0000 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 71C0 7FC0 1F00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 15 0 BBX 11 16 2 0 BITMAP 0E00 1B00 0000 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 71C0 7FC0 1F00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 15 0 BBX 11 16 2 0 BITMAP 1980 1980 0000 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 71C0 7FC0 1F00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 13 0 BBX 11 16 1 0 BITMAP 0780 0E00 0000 E0E0 E0E0 70C0 71C0 3980 3980 1F00 0E00 0E00 0E00 0E00 0E00 0E00 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 13 0 BBX 10 13 2 0 BITMAP E000 E000 E000 FF00 FF80 E1C0 E1C0 E1C0 FF80 FF00 E000 E000 E000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 13 0 BBX 10 14 2 0 BITMAP 1E00 7F00 E380 E380 E700 EE00 EE00 EF00 E780 E3C0 E1C0 E1C0 E7C0 E780 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 3C00 0E00 0000 3E00 7F00 6380 0380 1F80 7F80 E380 E380 FFC0 79C0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 0F00 1C00 0000 3E00 7F00 6380 0380 1F80 7F80 E380 E380 FFC0 79C0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 1C00 3600 0000 3E00 7F00 6380 0380 1F80 7F80 E380 E380 FFC0 79C0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 1D00 2E00 0000 3E00 7F00 6380 0380 1F80 7F80 E380 E380 FFC0 79C0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 3300 3300 0000 3E00 7F00 6380 0380 1F80 7F80 E380 E380 FFC0 79C0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 0E00 1300 0E00 3E00 7F00 6380 0380 1F80 7F80 E380 E380 FFC0 79C0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 17 0 BBX 15 10 1 0 BITMAP 3E78 7FFC 63CE 038E 1FFE 7FFE E380 E3C6 FFFE 7C7C ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 -3 BITMAP 1F00 7F80 7180 E000 E000 E000 E000 F180 7F80 1E00 0C00 0600 1C00 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 3C00 0E00 0000 1E00 7F00 7380 E380 FF80 FF80 E000 F180 7F80 1F00 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 0F00 1C00 0000 1E00 7F00 7380 E380 FF80 FF80 E000 F180 7F80 1F00 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 1C00 3600 0000 1E00 7F00 7380 E380 FF80 FF80 E000 F180 7F80 1F00 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 3300 3300 0000 1E00 7F00 7380 E380 FF80 FF80 E000 F180 7F80 1F00 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 7 0 BBX 5 13 0 0 BITMAP F0 38 00 38 38 38 38 38 38 38 38 38 38 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 7 0 BBX 5 13 1 0 BITMAP 78 E0 00 70 70 70 70 70 70 70 70 70 70 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 7 0 BBX 5 13 1 0 BITMAP 70 D8 00 70 70 70 70 70 70 70 70 70 70 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 7 0 BBX 6 13 0 0 BITMAP CC CC 00 38 38 38 38 38 38 38 38 38 38 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 1 0 BITMAP 1E00 1FB0 03F0 0FC0 01C0 1FE0 7FE0 70E0 E0E0 E0E0 E0E0 71C0 7FC0 1F00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 13 0 BBX 9 13 2 0 BITMAP 1D00 2E00 0000 CF00 FF80 F380 E380 E380 E380 E380 E380 E380 E380 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 1 0 BITMAP 3C00 0E00 0000 1F00 7FC0 71C0 E0E0 E0E0 E0E0 E0E0 71C0 7FC0 1F00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 1 0 BITMAP 0780 0E00 0000 1F00 7FC0 71C0 E0E0 E0E0 E0E0 E0E0 71C0 7FC0 1F00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 1 0 BITMAP 0E00 1B00 0000 1F00 7FC0 71C0 E0E0 E0E0 E0E0 E0E0 71C0 7FC0 1F00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 1 0 BITMAP 0E80 1700 0000 1F00 7FC0 71C0 E0E0 E0E0 E0E0 E0E0 71C0 7FC0 1F00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 1 0 BITMAP 1980 1980 0000 1F00 7FC0 71C0 E0E0 E0E0 E0E0 E0E0 71C0 7FC0 1F00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 13 0 BBX 10 10 2 1 BITMAP 0C00 0C00 0000 0000 FFC0 FFC0 0000 0000 0C00 0C00 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 13 0 BBX 11 10 1 0 BITMAP 1F60 7FE0 71C0 E2E0 E6E0 ECE0 E8E0 71C0 FFC0 DF00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 13 0 BBX 9 13 2 0 BITMAP 3C00 0E00 0000 E380 E380 E380 E380 E380 E380 E380 E780 FF80 7980 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 13 0 BBX 9 13 2 0 BITMAP 0F00 1C00 0000 E380 E380 E380 E380 E380 E380 E380 E780 FF80 7980 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 13 0 BBX 9 13 2 0 BITMAP 1C00 3600 0000 E380 E380 E380 E380 E380 E380 E380 E780 FF80 7980 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 13 0 BBX 9 13 2 0 BITMAP 3300 3300 0000 E380 E380 E380 E380 E380 E380 E380 E780 FF80 7980 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 12 0 BBX 10 16 1 -3 BITMAP 0F00 1C00 0000 E0C0 E0C0 E1C0 7180 7380 3B00 3F00 1E00 1E00 0C00 1C00 3800 3800 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 13 0 BBX 10 16 2 -3 BITMAP E000 E000 E000 EF00 FF80 F3C0 E1C0 E1C0 E1C0 E1C0 E380 FF80 EE00 E000 E000 E000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 12 0 BBX 10 16 1 -3 BITMAP 3300 3300 0000 E0C0 E0C0 E1C0 7180 7380 3B00 3F00 1E00 1E00 0C00 1C00 3800 3800 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 11 14 1 0 BITMAP 1FE0 3FE0 70E0 70E0 FEE0 FEE0 70E0 70E0 70E0 70E0 70E0 70E0 70E0 70E0 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 2 1 5 BITMAP FF FF ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 9 15 2 -2 BITMAP 1C00 1C00 1C00 1C00 FF80 FF80 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 16 1 0 BITMAP 1B00 0E00 0000 FFC0 FFC0 03C0 0780 0F00 0F00 1E00 3C00 3C00 7800 F000 FFC0 FFC0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 17 10 1 0 BITMAP 1F1E00 7FFF00 71F380 E0E380 E0FF80 E0FF80 E0E000 71F180 7FFF80 1F1F00 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 11 16 1 0 BITMAP 1980 1980 0000 E0E0 E0E0 70C0 71C0 3980 3980 1F00 0E00 0E00 0E00 0E00 0E00 0E00 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 10 2 0 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 14 0 0 BITMAP 38 38 38 38 3E 3E F8 F8 38 38 38 38 38 38 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 0 0 BITMAP 1C00 1C00 1C00 1D80 1F80 3E00 FC00 DC00 1C00 1C00 1C00 1FF0 1FF0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 9 15 2 -2 BITMAP 1C00 1C00 1C00 1C00 FF80 FF80 1C00 1C00 1C00 FF80 FF80 1C00 1C00 1C00 1C00 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 11 14 1 0 BITMAP 1EE0 3EE0 7000 7000 FFE0 FFE0 70E0 70E0 70E0 70E0 70E0 70E0 70E0 70E0 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 1 BITMAP 40 E0 70 38 38 70 E0 40 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 19 13 1 0 BITMAP 0F9FE0 3FFFE0 787800 703800 E03800 E03FC0 E03FC0 E03800 E03800 703800 787800 3FFFE0 0F9FE0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 17 2 1 5 BITMAP FFFF80 FFFF80 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 5 2 4 11 BITMAP D8 70 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 4 3 5 -3 BITMAP 60 C0 70 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 5 3 4 11 BITMAP 48 D8 90 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 1 BITMAP 10 38 70 E0 E0 70 38 10 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 3 2 5 11 BITMAP E0 E0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 6 3 3 11 BITMAP 84 FC 78 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 6 6 4 2 BITMAP FC FC FC FC FC FC ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 6 2 4 11 BITMAP 74 B8 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 5 2 4 11 BITMAP 70 D8 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 7 5 1 9 BITMAP 66 CC EE EE EE ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 9 BITMAP E0 E0 C0 C0 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 3600 1C00 0000 3F00 7F80 E180 F000 7C00 1F00 0780 C380 FF00 7E00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 5 3 4 11 BITMAP 70 98 70 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 -2 BITMAP E0 E0 E0 60 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 11 15 1 -2 BITMAP 03C0 07E0 0E60 1C00 1C00 FF80 FF80 3800 3800 3800 3800 7000 7000 7000 7000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 15 6 1 7 BITMAP FDC6 31EE 31EE 31B6 31B6 3186 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 9 13 -1 0 BITMAP 0380 0380 0700 0700 0E00 0C00 1C00 1800 3800 7000 7000 E000 E000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 5 2 4 11 BITMAP F0 38 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 25 0 BBX 24 13 1 0 BITMAP 380600 7C0C00 EE1800 C63000 EE6000 7CC000 399C1C 033E3E 067777 0C6363 187777 303E3E 601C1C ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 3 2 0 BITMAP E380 E380 E380 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 7 5 2 9 BITMAP EE EE EE 66 CC ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 16 1 0 BITMAP 3600 1C00 0000 3F00 7F80 E180 E000 F800 FE00 7F00 1F80 0780 0380 C380 FF00 7E00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 7 5 2 -2 BITMAP EE EE EE 66 CC ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 3600 1C00 0000 FF80 FF80 0780 0F00 1E00 3C00 7800 F000 FF80 FF80 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/luBS19.bdf100644 1750 1750 77332 5413747466 15006 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Bold-R-Normal-Sans-19-190-75-75-P-122-ISO8859-1 SIZE 19 72 72 FONTBOUNDINGBOX 37 21 -13 -4 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Bold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 19 POINT_SIZE 190 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH "122" CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." FONT_ASCENT 17 FONT_DESCENT 4 DEFAULT_CHAR 0 ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 6 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 7 0 BBX 3 14 2 0 BITMAP E0 E0 E0 E0 E0 E0 60 60 60 60 00 00 E0 E0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 10 0 BBX 9 5 1 9 BITMAP F380 F380 E380 6300 6300 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 1 0 BITMAP 0660 0CC0 0CC0 0CC0 7FF0 7FF0 1980 1980 1980 FFE0 FFE0 3300 3300 6700 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 13 0 BBX 10 20 2 -3 BITMAP 0C00 0C00 0C00 3F80 7F80 7480 F400 FC00 7C00 3F00 1F80 0F80 0BC0 09C0 CBC0 FF80 FF00 0C00 0C00 0C00 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 17 0 BBX 16 14 1 0 BITMAP 780E 7818 CC38 CC70 CC60 CCC0 79C0 7B80 031E 063F 0E33 1C33 183F 701E ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 1 0 BITMAP 0F80 3FC0 3860 3860 1DE0 1F80 3F0C 771C E79C E3F8 E1F0 F0E0 7FF0 1F78 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 8 BITMAP F0 F0 F0 70 60 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 7 0 BBX 5 18 1 -4 BITMAP 08 18 38 70 70 60 E0 E0 E0 E0 E0 E0 60 70 70 38 18 08 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 7 0 BBX 5 18 1 -4 BITMAP 80 C0 E0 70 70 30 38 38 38 38 38 38 30 70 70 E0 C0 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 9 0 BBX 7 6 1 8 BITMAP 38 54 EE 28 6C 28 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 13 0 BBX 10 12 2 0 BITMAP 0C00 0C00 0C00 0C00 0C00 FFC0 FFC0 0C00 0C00 0C00 0C00 0C00 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 7 0 BBX 4 8 1 -4 BITMAP F0 F0 F0 F0 70 70 60 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 13 0 BBX 11 2 1 5 BITMAP FFE0 FFE0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 7 0 BBX 4 3 1 0 BITMAP F0 F0 F0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 11 0 BBX 11 18 0 -4 BITMAP 00E0 00C0 01C0 0180 0380 0300 0300 0600 0600 0C00 0C00 1800 1800 3800 3000 7000 6000 E000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 1 0 BITMAP 0F00 3FC0 70E0 6060 E070 E070 E070 E070 E070 E070 6060 70E0 3FC0 0F00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 13 0 BBX 5 14 3 0 BITMAP F8 F8 38 38 38 38 38 38 38 38 38 38 38 38 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 13 0 BBX 10 14 1 0 BITMAP 7F00 FF80 C3C0 01C0 01C0 01C0 0380 0700 0E00 3C00 7800 F000 FFC0 FFC0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 13 0 BBX 10 14 2 0 BITMAP 7F00 FF80 83C0 01C0 01C0 0380 7E00 7F00 0380 01C0 01C0 83C0 FF80 FF00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 1 0 BITMAP 03C0 03C0 07C0 0DC0 1DC0 39C0 71C0 E1C0 FFE0 FFE0 01C0 01C0 01C0 01C0 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 13 0 BBX 9 14 3 0 BITMAP FF80 FF80 C000 C000 C000 FC00 FF00 0F00 0380 0380 0380 8780 FF00 FC00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 1 0 BITMAP 0FC0 3FC0 7840 7000 E000 EF80 FFC0 F1E0 E0E0 E0E0 60E0 71C0 3FC0 1F00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 13 0 BBX 10 14 2 0 BITMAP FFC0 FFC0 01C0 0380 0300 0700 0E00 1C00 1C00 3800 3800 7800 7000 F000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 1 0 BITMAP 1F00 3F80 71C0 71C0 79C0 3F80 1F80 7FC0 63E0 E0E0 E0E0 F1E0 7FC0 3F00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 1 0 BITMAP 1F00 7F80 71C0 E0C0 E0E0 E0E0 F1E0 7FE0 3EE0 00E0 01C0 43C0 7F80 7E00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 7 0 BBX 3 10 2 0 BITMAP E0 E0 E0 00 00 00 00 E0 E0 E0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 7 0 BBX 3 14 2 -4 BITMAP E0 E0 E0 00 00 00 E0 E0 E0 E0 60 60 40 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 13 0 BBX 11 12 1 0 BITMAP 0020 00E0 01E0 0780 1E00 F800 7800 1E00 0780 01E0 00E0 0020 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 13 0 BBX 11 7 1 2 BITMAP FFE0 FFE0 0000 0000 0000 FFE0 FFE0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 13 0 BBX 11 12 1 0 BITMAP 8000 E000 F000 3C00 0F00 03C0 03E0 0F00 3C00 F000 E000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP FE00 FF00 8780 0380 0380 0700 0C00 1C00 3800 3800 0000 0000 3800 3800 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 16 0 BBX 15 14 2 0 BITMAP 03F0 0C18 1004 2006 43F2 4462 8C62 98C2 99C4 9F4C 8CF0 4000 3080 0FC0 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 0 0 BITMAP 0780 0780 0FC0 0DC0 0DC0 19E0 18E0 38E0 3FF0 3FF0 7078 6038 6038 C03C ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 13 0 BBX 10 14 2 0 BITMAP FF00 FF00 E380 E380 E380 E700 FC00 FF00 E3C0 E1C0 E1C0 E1C0 FF80 FF00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 0 0 BITMAP 07F8 1FF8 7C18 7000 F000 E000 E000 E000 E000 F000 7000 7C08 1FF8 0FF0 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 16 0 BBX 13 14 2 0 BITMAP FF80 FFE0 E1F0 E070 E078 E038 E038 E038 E038 E038 E070 E0F0 FFE0 FF80 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 0 BITMAP FF80 FF80 E000 E000 E000 E000 FF00 FF00 E000 E000 E000 E000 FF80 FF80 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 2 0 BITMAP FF80 FF80 E000 E000 E000 E000 FF00 FF00 E000 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 14 0 BBX 12 14 1 0 BITMAP 0FF0 3FF0 7810 7000 F000 E000 E000 E070 E070 E070 7070 7C70 3FF0 0FE0 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 15 0 BBX 12 14 2 0 BITMAP E070 E070 E070 E070 E070 E070 FFF0 FFF0 E070 E070 E070 E070 E070 E070 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 7 0 BBX 3 14 2 0 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 10 0 BBX 7 18 1 -4 BITMAP 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 8E FC F8 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 14 0 BBX 12 14 2 0 BITMAP E0E0 E1C0 E380 E300 E600 EE00 FC00 FE00 EF00 E700 E780 E3C0 E1E0 E1F0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 0 BITMAP E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 FF80 FF80 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 18 0 BBX 15 14 1 0 BITMAP F81E F83E F83E FC3E DC7E DC6E DE6E CEEE CECE CFCE C78E C78E C38E C00E ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 15 0 BBX 12 14 1 0 BITMAP E030 F030 F030 F830 FC30 DE30 CE30 C730 C7B0 C3F0 C1F0 C0F0 C0F0 C070 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 16 0 BBX 15 14 1 0 BITMAP 0FE0 3FF0 783C 701C F01E E00E E00E E00E E00E F01E 701C 783C 3FF0 0FE0 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP FF00 FFC0 E3C0 E1C0 E1C0 E1C0 E380 FF80 FE00 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 16 0 BBX 17 18 1 -4 BITMAP 0FE000 3FF000 783C00 701C00 F01E00 E00E00 E00E00 E00E00 E00E00 F01E00 701C00 783C00 3FF800 0FF000 007F80 003F00 001F00 000600 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 14 0 BBX 12 14 2 0 BITMAP FF00 FF80 E1C0 E1C0 E1C0 E380 FF80 FE00 E700 E700 E380 E3C0 E1E0 E1F0 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 3F80 7F80 F080 F000 F000 FC00 7F00 1F80 07C0 01C0 01C0 83C0 FF80 FE00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 0 0 BITMAP FFF8 FFF8 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 15 0 BBX 12 14 1 0 BITMAP E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 70E0 7FE0 1F80 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 14 0 BBX 14 14 0 0 BITMAP F00C 7018 7818 3838 3830 3C30 1C60 1C60 0E60 0EC0 0EC0 07C0 0780 0780 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 18 0 BBX 17 14 0 0 BITMAP E0C180 71E180 71E300 71E300 71E300 7BF300 3B7600 3B7600 3B7600 3B7600 1E3C00 1E3C00 1E3C00 1E3C00 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 1 0 BITMAP 7070 78E0 38C0 3D80 1D80 1F00 0F00 0F00 0F80 1B80 3BC0 31C0 61E0 E0F0 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 1 0 BITMAP F038 7830 3860 3CE0 1CC0 0FC0 0F80 0700 0700 0700 0700 0700 0700 0700 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 1 0 BITMAP FFE0 FFE0 01C0 03C0 0780 0700 0F00 1E00 1C00 3C00 7800 7000 FFE0 FFE0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 7 0 BBX 5 18 1 -4 BITMAP F8 F8 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 F8 F8 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 11 0 BBX 11 18 0 -4 BITMAP E000 6000 7000 3000 3800 1800 1800 0C00 0C00 0600 0600 0300 0300 0380 0180 01C0 00C0 00E0 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 7 0 BBX 5 18 1 -4 BITMAP F8 F8 38 38 38 38 38 38 38 38 38 38 38 38 38 38 F8 F8 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 13 0 BBX 11 12 1 2 BITMAP 0400 0400 0E00 0E00 1F00 1B00 1B00 3180 3180 60C0 60C0 C060 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 10 0 BBX 8 2 1 -3 BITMAP FF FF ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 8 BITMAP 30 60 F0 F0 F0 F0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP 7E00 7F80 4380 0380 3F80 FF80 E380 E380 FFC0 7BC0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 2 0 BITMAP E000 E000 E000 E000 EF80 FFC0 F1E0 E0E0 E0E0 E0E0 E0E0 F1E0 FFC0 EF80 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 1F 7F 71 E0 E0 E0 E0 70 7F 1F ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 1 0 BITMAP 00E0 00E0 00E0 00E0 3EE0 7FE0 71E0 E0E0 E0E0 E0E0 E0E0 F1E0 7FE0 3EE0 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP 1F00 7F80 71C0 E1C0 FFC0 FFC0 F000 7040 7FC0 1FC0 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 9 0 BBX 8 14 1 0 BITMAP 3F 7F 70 70 FE FE 70 70 70 70 70 70 70 70 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 1 -4 BITMAP 3EE0 7FE0 71E0 E0E0 E0E0 E0E0 E0E0 F1E0 7FE0 3CE0 00E0 41E0 7FC0 3F00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 13 0 BBX 10 14 2 0 BITMAP E000 E000 E000 E000 EF80 FFC0 F1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 7 0 BBX 3 14 2 0 BITMAP E0 E0 00 00 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 7 0 BBX 6 18 0 -4 BITMAP 1C 1C 00 00 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 9C FC F8 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 13 0 BBX 10 14 2 0 BITMAP E000 E000 E000 E000 E380 E700 E600 EC00 EC00 FE00 EE00 EF00 E780 E3C0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 7 0 BBX 3 14 2 0 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 19 0 BBX 17 10 1 0 BITMAP E79F00 FFFF80 F1E380 E1C380 E1C380 E1C380 E1C380 E1C380 E1C380 E1C380 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 13 0 BBX 10 10 2 0 BITMAP EF80 FFC0 F1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 13 0 BBX 11 10 1 0 BITMAP 1F00 7FC0 71C0 E0E0 E0E0 E0E0 E0E0 71C0 7FC0 1F00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 2 -4 BITMAP EF80 FFC0 F1E0 E0E0 E0E0 E0E0 E0E0 F1C0 FFC0 EF80 E000 E000 E000 E000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 1 -4 BITMAP 3EE0 7FE0 F1E0 E0E0 E0E0 E0E0 E0E0 F1E0 7FE0 3EE0 00E0 00E0 00E0 00E0 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 2 0 BITMAP EE FE FE F0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 12 0 BBX 9 10 2 0 BITMAP 7F00 FF00 F100 F000 FE00 3F80 0F80 8780 FF00 FE00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 8 0 BBX 6 13 1 0 BITMAP 30 70 70 FC FC 70 70 70 70 70 70 7C 3C ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 13 0 BBX 10 10 2 0 BITMAP E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E3C0 FFC0 7DC0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 13 0 BBX 12 10 0 0 BITMAP F070 7060 7860 38C0 3CC0 1DC0 1D80 0F80 0F00 0F00 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 17 0 BBX 16 10 0 0 BITMAP E1C3 73C6 73E6 73E6 73EE 3EEC 3E7C 3E7C 3C78 1C78 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP F1C0 7B80 3F00 3F00 1E00 1E00 3F00 3780 7780 E3C0 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 -4 BITMAP F070 7060 78E0 38C0 39C0 1D80 1F80 1F00 0F00 0E00 0E00 1C00 3C00 7800 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP FFC0 FFC0 0780 0F00 1E00 3E00 7C00 7800 FFC0 FFC0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 7 0 BBX 5 18 1 -4 BITMAP 38 78 70 70 70 38 38 30 E0 E0 30 38 38 78 70 70 78 38 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 5 0 BBX 2 18 2 -4 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 7 0 BBX 5 18 1 -4 BITMAP C0 E0 E0 E0 E0 E0 E0 60 38 38 60 E0 E0 E0 E0 E0 E0 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 13 0 BBX 11 5 1 3 BITMAP 7860 7C60 CE60 C7C0 C3C0 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 7 0 BBX 3 14 2 -4 BITMAP E0 E0 00 00 60 60 60 60 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 13 0 BBX 9 14 2 0 BITMAP 0C00 0C00 3F80 7F80 F000 E000 E000 E000 E000 F000 7F80 3F80 0C00 0C00 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 13 0 BBX 9 14 2 0 BITMAP 0F80 1F80 3800 3800 3800 3800 FE00 FE00 3800 3800 3000 7000 FF80 FF80 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 13 0 BBX 13 14 0 0 BITMAP 4010 E038 6030 3760 1FC0 38E0 3060 3060 3060 18C0 3FE0 7770 E038 4010 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 1 0 BITMAP F070 7860 38C0 3DC0 1F80 0F00 3FC0 3FC0 0E00 3FC0 3FC0 0E00 0E00 0E00 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 5 0 BBX 2 18 2 -4 BITMAP C0 C0 C0 C0 C0 C0 C0 00 00 00 00 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 13 0 BBX 10 18 2 -4 BITMAP 3F80 7F80 F080 F000 F800 7F00 7F80 C7C0 C1C0 E0C0 FC80 7F80 1F80 07C0 03C0 C3C0 FF80 FF00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 13 0 BBX 6 2 3 12 BITMAP CC CC ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 16 0 BBX 15 14 0 0 BITMAP 07C0 1830 2008 47E4 4C24 9802 9802 9802 9802 4C04 47E4 2008 1830 07C0 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 10 0 BBX 9 8 1 6 BITMAP 7E00 FF00 8700 0700 7F00 E700 FF80 7380 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 12 0 BBX 11 8 0 1 BITMAP 0840 1CE0 39C0 F780 7380 39C0 18C0 0C60 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 13 0 BBX 11 7 1 2 BITMAP FFE0 FFE0 0060 0060 0060 0060 0060 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 5 0 BBX 4 2 1 5 BITMAP F0 F0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 13 0 BBX 10 10 2 4 BITMAP 1E00 2100 4080 8040 9F40 9F40 9E40 5B80 6180 1E00 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 13 0 BBX 6 2 3 12 BITMAP FC FC ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 5 0 BBX 3 4 1 10 BITMAP 40 A0 A0 40 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 13 0 BBX 10 12 2 0 BITMAP 0C00 0C00 0C00 FFC0 FFC0 0C00 0C00 0C00 0C00 0000 FFC0 FFC0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 8 0 BBX 6 8 -12 6 BITMAP F8 8C 0C 0C 18 20 E0 FC ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 8 0 BBX 6 8 -12 6 BITMAP F8 0C 0C 78 18 0C 0C F8 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 13 0 BBX 5 2 4 12 BITMAP 38 E0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 13 0 BBX 10 14 2 -4 BITMAP E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E3C0 FFC0 FDC0 E000 E000 E000 E000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 13 0 BBX 8 18 2 -4 BITMAP 7F FB FB FB FB FB 7B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B 1B ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 13 0 BBX 3 2 5 5 BITMAP E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 13 0 BBX 4 4 5 -4 BITMAP E0 60 30 F0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 8 0 BBX 3 8 -13 6 BITMAP E0 60 60 60 60 60 60 60 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 10 0 BBX 9 8 1 6 BITMAP 3E00 7F00 F780 E380 E380 F780 7F00 3E00 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 12 0 BBX 11 8 0 1 BITMAP C600 6300 7380 39C0 3DE0 7380 E700 4200 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 17 0 BBX 15 14 4 0 BITMAP E038 6070 6060 60C0 61C0 6380 630C 661C 0E2C 1C6C 18CC 30FE 700C E00C ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 17 0 BBX 14 14 4 0 BITMAP E038 6070 6060 60C0 61C0 6380 63F8 668C 0E0C 1C0C 1818 3020 70E0 E0FC ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 17 0 BBX 16 14 5 0 BITMAP F81C 0C38 0C30 7860 18E0 0DC0 0D86 FB0E 0716 0E36 0C66 187F 3806 7006 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 -4 BITMAP 0E00 0E00 0000 0000 0E00 0E00 1C00 3800 7000 E000 E000 F080 7F80 3F80 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 0 0 BITMAP 0E00 0380 0000 0780 0780 0FC0 0DC0 0DC0 19E0 18E0 38E0 3FF0 3FF0 7078 6038 6038 C03C ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 0 0 BITMAP 01C0 0700 0000 0780 0780 0FC0 0DC0 0DC0 19E0 18E0 38E0 3FF0 3FF0 7078 6038 6038 C03C ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 0 0 BITMAP 0380 0EE0 0000 0780 0780 0FC0 0DC0 0DC0 19E0 18E0 38E0 3FF0 3FF0 7078 6038 6038 C03C ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 0 0 BITMAP 07E0 0FC0 0000 0780 0780 0FC0 0DC0 0DC0 19E0 18E0 38E0 3FF0 3FF0 7078 6038 6038 C03C ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 0 0 BITMAP 0CC0 0CC0 0000 0780 0780 0FC0 0DC0 0DC0 19E0 18E0 38E0 3FF0 3FF0 7078 6038 6038 C03C ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 0 0 BITMAP 0380 0380 0000 0780 0780 0FC0 0DC0 0DC0 19E0 18E0 38E0 3FF0 3FF0 7078 6038 6038 C03C ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 19 0 BBX 17 14 -1 0 BITMAP 01FF80 03FF80 03E000 07E000 06E000 0EE000 0CFE00 18FE00 18E000 3FE000 7FE000 60E000 C0FF80 C0FF80 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 0 -4 BITMAP 07F8 1FF8 7C18 7000 F000 E000 E000 E000 E000 F000 7000 7C08 1FF8 0FF0 0300 0300 0180 0780 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 12 0 BBX 9 17 2 0 BITMAP 7000 1C00 0000 FF80 FF80 E000 E000 E000 E000 FF00 FF00 E000 E000 E000 E000 FF80 FF80 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 12 0 BBX 9 17 2 0 BITMAP 0700 1C00 0000 FF80 FF80 E000 E000 E000 E000 FF00 FF00 E000 E000 E000 E000 FF80 FF80 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 12 0 BBX 9 17 2 0 BITMAP 1C00 7700 0000 FF80 FF80 E000 E000 E000 E000 FF00 FF00 E000 E000 E000 E000 FF80 FF80 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 12 0 BBX 9 17 2 0 BITMAP 6600 6600 0000 FF80 FF80 E000 E000 E000 E000 FF00 FF00 E000 E000 E000 E000 FF80 FF80 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 7 0 BBX 5 17 3 0 BITMAP E0 38 00 70 70 70 70 70 70 70 70 70 70 70 70 70 70 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 7 0 BBX 5 17 2 0 BITMAP 38 E0 00 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 7 0 BBX 7 17 4 0 BITMAP 38 EE 00 38 38 38 38 38 38 38 38 38 38 38 38 38 38 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 7 0 BBX 6 17 3 0 BITMAP CC CC 00 70 70 70 70 70 70 70 70 70 70 70 70 70 70 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 16 0 BBX 15 14 0 0 BITMAP 3FE0 3FF8 387C 381C 381E 380E FF0E FF0E 380E 380E 381C 383C 3FF8 3FE0 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 1 0 BITMAP 0FC0 1F80 0000 E030 F030 F030 F830 FC30 DE30 CE30 C730 C7B0 C3F0 C1F0 C0F0 C0F0 C070 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 1 0 BITMAP 0700 01C0 0000 0FE0 3FF0 783C 701C F01E E00E E00E E00E E00E F01E 701C 783C 3FF0 0FE0 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 1 0 BITMAP 00E0 0380 0000 0FE0 3FF0 783C 701C F01E E00E E00E E00E E00E F01E 701C 783C 3FF0 0FE0 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 1 0 BITMAP 0380 0EE0 0000 0FE0 3FF0 783C 701C F01E E00E E00E E00E E00E F01E 701C 783C 3FF0 0FE0 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 1 0 BITMAP 07E0 0FC0 0000 0FE0 3FF0 783C 701C F01E E00E E00E E00E E00E F01E 701C 783C 3FF0 0FE0 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 1 0 BITMAP 0660 0660 0000 0FE0 3FF0 783C 701C F01E E00E E00E E00E E00E F01E 701C 783C 3FF0 0FE0 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 13 0 BBX 11 12 1 0 BITMAP 4040 E0E0 71C0 3B80 1F00 0E00 0E00 1F00 3B80 71C0 E0E0 4040 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 16 0 BBX 15 14 1 0 BITMAP 0FEE 3FFC 783C 707C F0FE E1CE E18E E30E E70E FE1E 7C1C 783C 7FF0 EFE0 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 1 0 BITMAP 1C00 0700 0000 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 70E0 7FE0 1F80 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 1 0 BITMAP 0380 0E00 0000 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 70E0 7FE0 1F80 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 1 0 BITMAP 0700 1DC0 0000 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 70E0 7FE0 1F80 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 1 0 BITMAP 1980 1980 0000 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 70E0 7FE0 1F80 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 1 0 BITMAP 01C0 0700 0000 F038 7830 3860 3CE0 1CC0 0FC0 0F80 0700 0700 0700 0700 0700 0700 0700 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP E000 E000 E000 FF00 FFC0 E3C0 E1C0 E1C0 E3C0 FF80 FE00 E000 E000 E000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 14 0 BBX 12 14 2 0 BITMAP 3F00 7F80 E380 E380 E700 E600 EE00 EF80 E7E0 E1F0 E0F0 E070 EFE0 EFC0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 3800 0E00 0000 7E00 7F80 4380 0380 3F80 FF80 E380 E380 FFC0 7BC0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 0700 1C00 0000 7E00 7F80 4380 0380 3F80 FF80 E380 E380 FFC0 7BC0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 0E00 3B80 0000 7E00 7F80 4380 0380 3F80 FF80 E380 E380 FFC0 7BC0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 1F80 3F00 0000 7E00 7F80 4380 0380 3F80 FF80 E380 E380 FFC0 7BC0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 3300 3300 0000 7E00 7F80 4380 0380 3F80 FF80 E380 E380 FFC0 7BC0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 1C00 1C00 0000 7E00 7F80 4380 0380 3F80 FF80 E380 E380 FFC0 7BC0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 17 0 BBX 16 10 1 0 BITMAP 3E7C 7FFE 43CF 03C7 3FFF FFFF E3C0 E3C1 FFFF 7CFF ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 10 0 BBX 8 14 1 -4 BITMAP 1F 7F 71 E0 E0 E0 E0 70 7F 1F 38 18 0C 3C ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 3800 0E00 0000 1F00 7F80 71C0 E1C0 FFC0 FFC0 F000 7040 7FC0 1FC0 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 0700 1C00 0000 1F00 7F80 71C0 E1C0 FFC0 FFC0 F000 7040 7FC0 1FC0 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 0E00 3B80 0000 1F00 7F80 71C0 E1C0 FFC0 FFC0 F000 7040 7FC0 1FC0 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 3300 3300 0000 1F00 7F80 71C0 E1C0 FFC0 FFC0 F000 7040 7FC0 1FC0 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 7 0 BBX 5 13 3 0 BITMAP E0 38 00 70 70 70 70 70 70 70 70 70 70 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 7 0 BBX 5 13 2 0 BITMAP 38 E0 00 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 7 0 BBX 7 13 4 0 BITMAP 38 EE 00 38 38 38 38 38 38 38 38 38 38 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 7 0 BBX 6 13 3 0 BITMAP CC CC 00 70 70 70 70 70 70 70 70 70 70 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 13 0 BBX 11 17 1 0 BITMAP 0300 0300 0600 FE00 FF00 7780 63C0 5FC0 7FE0 71E0 E0E0 E0E0 E0E0 E0E0 71C0 7F80 1F00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 13 0 BBX 10 13 2 0 BITMAP 1F80 3F00 0000 EF80 FFC0 F1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 1 0 BITMAP 1C00 0700 0000 1F00 7FC0 71C0 E0E0 E0E0 E0E0 E0E0 71C0 7FC0 1F00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 1 0 BITMAP 0380 0E00 0000 1F00 7FC0 71C0 E0E0 E0E0 E0E0 E0E0 71C0 7FC0 1F00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 1 0 BITMAP 0E00 3B80 0000 1F00 7FC0 71C0 E0E0 E0E0 E0E0 E0E0 71C0 7FC0 1F00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 1 0 BITMAP 1F80 3F00 0000 1F00 7FC0 71C0 E0E0 E0E0 E0E0 E0E0 71C0 7FC0 1F00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 1 0 BITMAP 1980 1980 0000 1F00 7FC0 71C0 E0E0 E0E0 E0E0 E0E0 71C0 7FC0 1F00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 13 0 BBX 11 12 1 0 BITMAP 0C00 0C00 0000 0000 0000 FFE0 FFE0 0000 0000 0000 0C00 0C00 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 13 0 BBX 12 10 1 0 BITMAP 1F70 7FE0 71C0 E3E0 E7E0 EEE0 FCE0 79C0 7FC0 FF00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 13 0 BBX 10 13 2 0 BITMAP 3800 0E00 0000 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E3C0 FFC0 7DC0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 13 0 BBX 10 13 2 0 BITMAP 0700 1C00 0000 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E3C0 FFC0 7DC0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 13 0 BBX 10 13 2 0 BITMAP 0E00 3B80 0000 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E3C0 FFC0 7DC0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 13 0 BBX 10 13 2 0 BITMAP 3300 3300 0000 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E3C0 FFC0 7DC0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 12 0 BBX 12 17 0 -4 BITMAP 0380 0E00 0000 F070 7060 78E0 38C0 39C0 1D80 1F80 1F00 0F00 0E00 0E00 1C00 3C00 7800 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 13 0 BBX 11 18 2 -4 BITMAP E000 E000 E000 E000 E780 EFC0 F1E0 E0E0 E0E0 E0E0 E0E0 F1C0 FFC0 EF80 E000 E000 E000 E000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 12 0 BBX 12 17 0 -4 BITMAP 1980 1980 0000 F070 7060 78E0 38C0 39C0 1D80 1F80 1F00 0F00 0E00 0E00 1C00 3C00 7800 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 11 14 1 0 BITMAP 3FE0 7FE0 70E0 70E0 FEE0 FEE0 70E0 70E0 70E0 70E0 70E0 70E0 70E0 70E0 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 2 1 5 BITMAP FF FF ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 9 18 2 -4 BITMAP 1C00 1C00 1C00 1C00 1C00 FF80 FF80 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 11 17 1 0 BITMAP 3B80 0E00 0000 FFE0 FFE0 01C0 03C0 0780 0700 0F00 1E00 1C00 3C00 7800 7000 FFE0 FFE0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 17 10 1 0 BITMAP 1F1C00 7FFF00 71E700 E1C380 E1FF80 E1FF80 E1E000 71E080 7FFF80 1F3F80 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 1 0 BITMAP 0CC0 0CC0 0000 F038 7830 3860 3CE0 1CC0 0FC0 0F80 0700 0700 0700 0700 0700 0700 0700 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 10 2 0 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 14 0 0 BITMAP 38 38 38 38 3A 3E 3C F8 F8 B8 38 38 38 38 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 0 0 BITMAP 3800 3800 3800 3800 3A00 3E00 3E00 7800 F800 F800 3800 3800 3FE0 3FE0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 9 18 2 -4 BITMAP 1C00 1C00 1C00 1C00 1C00 FF80 FF80 1C00 1C00 1C00 1C00 FF80 FF80 1C00 1C00 1C00 1C00 1C00 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 11 14 1 0 BITMAP 1F80 7F80 7000 7000 FFE0 FFE0 70E0 70E0 70E0 70E0 70E0 70E0 70E0 70E0 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 1 BITMAP C0 60 70 38 3C 70 E0 40 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 19 14 1 0 BITMAP 07FFE0 1FFFE0 387800 703800 E03800 E03800 E03FC0 E03FC0 E03800 E03800 703800 387800 1FFFE0 07FFE0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 18 1 1 5 BITMAP FFFFC0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 7 2 3 12 BITMAP EE 38 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 4 2 5 -4 BITMAP E0 F0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 7 2 4 12 BITMAP 7E D8 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 1 BITMAP 08 1C 38 F0 70 38 18 0C ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 3 2 5 12 BITMAP E0 E0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 7 2 3 12 BITMAP EE 7C ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 7 6 3 3 BITMAP FE FE FE FE FE FE ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 7 2 3 12 BITMAP 7E FC ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 7 2 3 12 BITMAP 38 EE ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 6 1 8 BITMAP 6180 E300 C300 E380 E380 E380 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 8 BITMAP F0 F0 F0 60 60 60 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 13 2 0 BITMAP 7700 1C00 0000 7F00 FF00 F100 F000 FE00 3F80 0F80 8780 FF00 FE00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 3 2 5 12 BITMAP E0 E0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 1 -4 BITMAP F0 F0 F0 F0 70 70 60 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 11 18 2 -4 BITMAP 03E0 0FE0 0E00 1E00 1C00 3C00 7F00 7F00 3C00 3C00 7800 7800 7800 7800 7800 F000 F000 F000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 17 8 0 6 BITMAP FEF780 FEF780 38F780 38FF80 38FF80 38DB80 38DB80 38C380 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 13 14 -5 0 BITMAP 0038 0070 0060 00C0 01C0 0380 0300 0600 0E00 1C00 1800 3000 7000 E000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 5 2 3 12 BITMAP E0 38 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 25 0 BBX 24 14 0 0 BITMAP 780E00 781C00 CC3800 CC3000 CC6000 CCE000 79C000 7B8000 033E1E 067F3F 0E6333 1C6333 187F3F 303E1E ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 15 2 2 0 BITMAP C306 C306 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 6 1 8 BITMAP E380 E380 E380 6180 6380 C300 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 17 1 0 BITMAP 3B80 0E00 0000 3F80 7F80 F080 F000 F000 FC00 7F00 1F80 07C0 01C0 01C0 83C0 FF80 FE00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 8 1 -4 BITMAP E380 E380 E380 6180 6180 6180 4300 8200 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 3B80 0E00 0000 FFC0 FFC0 0780 0F00 1E00 3E00 7C00 7800 FFC0 FFC0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/luBS24.bdf100644 1750 1750 111122 5413747466 15004 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Bold-R-Normal-Sans-24-240-75-75-P-152-ISO8859-1 SIZE 24 72 72 FONTBOUNDINGBOX 49 27 -18 -5 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Bold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 24 POINT_SIZE 240 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 152 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 22 FONT_DESCENT 5 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 8 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 8 0 BBX 5 17 2 0 BITMAP F8 F8 F8 F8 F8 F8 F8 F8 70 70 70 70 00 00 F8 F8 F8 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 13 0 BBX 11 8 1 10 BITMAP FBE0 FBE0 F3E0 F3E0 71C0 71C0 71C0 71C0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 1 0 BITMAP 0318 0318 0638 0630 7FFE 7FFE 0C60 0C60 0C60 1C60 FFFC FFF8 18C0 18C0 31C0 3180 3180 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 16 0 BBX 13 23 2 -3 BITMAP 0700 0700 0700 1FF0 3FF0 7FF0 7B00 7B00 7F00 7F00 3F80 0FC0 07E0 07F0 06F8 0678 8678 FFF0 FFF0 7FC0 0700 0700 0700 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 22 0 BBX 21 17 0 0 BITMAP 3E01E0 7F03C0 FF8380 E38700 E38F00 FF9E00 7F3C00 3E7800 0073E0 00F7F0 01EFF8 03CE38 078E38 070E38 0F0FF8 1E07F0 3C03E0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 19 0 BBX 18 17 0 0 BITMAP 07F000 0FF800 1FFC00 1F3C00 1F3C00 0FF800 0FF000 1FE3C0 3FF3C0 7BF3C0 F9FB80 F8FF80 F8FF00 FC7E00 7FFE00 3FFF00 0FCF80 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 10 BITMAP F8 F8 F8 F8 F8 38 F0 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 9 0 BBX 7 23 1 -5 BITMAP 02 06 0E 1E 3C 7C 7C 78 F8 F8 F8 F8 F8 F8 F8 78 7C 7C 3C 1E 0E 06 02 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 9 0 BBX 7 23 1 -5 BITMAP 80 C0 E0 F0 78 7C 7C 3C 3E 3E 3E 3E 3E 3E 3E 3C 7C 7C 78 F0 E0 C0 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 11 0 BBX 9 9 1 8 BITMAP 1C00 5D00 4900 F780 E380 1400 7700 7700 2400 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 16 0 BBX 15 14 1 0 BITMAP 0380 0380 0380 0380 0380 FFFE FFFE FFFE 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 8 0 BBX 5 9 2 -4 BITMAP F8 F8 F8 F8 F8 38 70 F0 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 16 0 BBX 14 3 1 6 BITMAP FFFC FFFC FFFC ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 8 0 BBX 5 5 2 0 BITMAP F8 F8 F8 F8 F8 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 14 0 BBX 14 22 0 -4 BITMAP 003C 0038 0078 0070 00F0 00E0 01E0 01C0 01C0 0380 0380 0700 0700 0E00 0E00 1C00 1C00 3800 3800 7800 7000 F000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 1 0 BITMAP 07C0 1FF0 3FF8 7C7C 783C F83E F83E F83E F83E F83E F83E F83E 783C 7C7C 3FF8 1FF0 07C0 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 16 0 BBX 7 17 4 0 BITMAP FE FE FE 3E 3E 3E 3E 3E 3E 3E 3E 3E 3E 3E 3E 3E 3E ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 16 0 BBX 13 17 1 0 BITMAP 3FC0 FFE0 FFF0 C1F8 00F8 00F8 00F8 01F0 03E0 07C0 0F80 1F00 7C00 F800 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 16 0 BBX 13 17 2 0 BITMAP 3F80 FFE0 FFF0 83F0 01F0 01F0 03E0 3FC0 3FC0 3FE0 01F0 00F8 00F8 C1F8 FFF0 FFF0 7F80 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 1 0 BITMAP 00F8 01F8 03F8 07F8 0FF8 1EF8 3CF8 7CF8 78F8 F0F8 FFFE FFFE FFFE 00F8 00F8 00F8 00F8 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 16 0 BBX 12 17 3 0 BITMAP FFF0 FFF0 FFF0 E000 E000 E000 FE00 FFC0 FFE0 07E0 01F0 01F0 01F0 83F0 FFE0 FFC0 7F00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 1 0 BITMAP 07F0 1FF8 3FF8 7E08 7C00 F800 FBE0 FFF8 FFF8 FCFC F87C F87C 787C 7CFC 3FF8 1FF0 0FC0 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 16 0 BBX 13 17 3 0 BITMAP FFF8 FFF8 FFF8 0078 00F0 01E0 03E0 07C0 0780 0F00 1F00 1E00 3E00 3C00 7C00 7C00 7C00 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 1 0 BITMAP 0FC0 3FF0 7FF8 78F8 7878 7C78 3FF0 1FE0 1FF0 3DF8 787C F83C F83C FC7C FFF8 7FF0 1FC0 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 1 0 BITMAP 0FC0 3FE0 7FF0 FCF8 F878 F87C F87C FCFC 7FFC 7FFC 1E7C 007C 00F8 41F8 7FF0 7FE0 3F80 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 8 0 BBX 5 13 2 0 BITMAP F8 F8 F8 F8 F8 00 00 00 F8 F8 F8 F8 F8 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 8 0 BBX 5 17 2 -4 BITMAP F8 F8 F8 F8 F8 00 00 00 F8 F8 F8 F8 F8 38 70 F0 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 1 0 BITMAP 0004 001C 007C 01F8 07E0 1F80 FE00 7E00 1F80 07E0 01F8 007C 001C 0004 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 16 0 BBX 14 9 1 2 BITMAP FFFC FFFC FFFC 0000 0000 0000 FFFC FFFC FFFC ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 1 0 BITMAP 8000 E000 F800 7E00 1F80 07E0 01F8 01FC 07E0 1F80 7E00 F800 E000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 1 0 BITMAP 7F80 FFE0 FFF0 83F0 01F0 01F0 01E0 03C0 0780 0F00 1F00 1F00 0000 0000 1F00 1F00 1F00 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 20 0 BBX 19 17 2 0 BITMAP 00FC00 03FF00 0F03C0 1C01C0 38FCE0 71FC60 638C60 E70860 CE3860 CE78C0 CFD9C0 CF9F80 E71E00 600000 382000 1FF000 07C000 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 19 0 BBX 18 17 0 0 BITMAP 03F000 03F000 03F800 07F800 07F800 07FC00 0E7C00 0E7E00 1E3E00 1C3E00 1FFF00 3FFF00 3FFF80 780F80 700F80 7007C0 E007C0 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 2 0 BITMAP FFE0 FFF0 FFF8 F8F8 F8F8 F8F8 F9F0 FFC0 FFC0 FFF0 F8F8 F87C F87C F87C FFFC FFF8 FFE0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 17 0 BBX 16 17 1 0 BITMAP 03FE 0FFF 3FFF 7F03 7C00 FC00 F800 F800 F800 F800 F800 FC00 7E00 7F01 3FFF 0FFF 03FC ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 20 0 BBX 17 17 2 0 BITMAP FFF000 FFFC00 FFFE00 F87F00 F81F00 F81F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F81F00 F83F00 FFFE00 FFFC00 FFF000 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 2 0 BITMAP FFF0 FFF0 FFF0 F800 F800 F800 F800 FFE0 FFE0 FFE0 F800 F800 F800 F800 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 2 0 BITMAP FFF0 FFF0 FFF0 F800 F800 F800 F800 FFE0 FFE0 FFE0 F800 F800 F800 F800 F800 F800 F800 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 18 0 BBX 16 17 1 0 BITMAP 03FF 0FFF 3FFF 3F03 7C00 FC00 F800 F800 F81F F81F F81F FC1F 7C1F 7F1F 3FFF 0FFF 03FE ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 20 0 BBX 15 17 2 0 BITMAP F83E F83E F83E F83E F83E F83E F83E FFFE FFFE FFFE F83E F83E F83E F83E F83E F83E F83E ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 9 0 BBX 5 17 2 0 BITMAP F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 12 0 BBX 10 21 0 -4 BITMAP 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 87C0 FF80 FF80 7E00 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 18 0 BBX 16 17 2 0 BITMAP F81E F83C F878 F8F0 F8E0 F9E0 FBC0 FFC0 FFC0 FFE0 FBF0 FBF0 F9F8 F8FC F8FE F87E F83F ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 2 0 BITMAP F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 23 0 BBX 18 17 2 0 BITMAP FC0FC0 FC0FC0 FC1FC0 FE1FC0 FE1FC0 FE3FC0 EF3FC0 EF3FC0 EF7FC0 E7F7C0 E7F7C0 E7F7C0 E7E7C0 E3E7C0 E3E7C0 E3C7C0 E007C0 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 19 0 BBX 15 17 2 0 BITMAP F00E F80E FC0E FE0E FF0E FF0E FF8E EFCE EFEE E7EE E3FE E1FE E1FE E0FE E07E E03E E01E ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 21 0 BBX 19 17 1 0 BITMAP 03F800 0FFE00 3FFF80 7E0FC0 7C07C0 FC07E0 F803E0 F803E0 F803E0 F803E0 F803E0 FC07E0 7C07C0 7E0FC0 3FFF80 0FFE00 03F800 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 2 0 BITMAP FFF0 FFF8 FFFC F8FC F87C F87C F87C F8F8 FFF8 FFF0 FFC0 F800 F800 F800 F800 F800 F800 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 21 0 BBX 22 21 1 -4 BITMAP 03F800 0FFE00 3FFF80 7E0FC0 7C07C0 FC07E0 F803E0 F803E0 F803E0 F803E0 F803E0 FC07E0 7C07C0 7E0F80 3FFF80 0FFE00 03FE00 001FFC 0007F8 0003F0 000060 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 18 0 BBX 16 17 2 0 BITMAP FFC0 FFF0 FFF8 F8F8 F8F8 F8F8 F9F8 FFF0 FFE0 FFE0 FBF0 F9F0 F9F8 F8F8 F8FC F87E F87F ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 1 0 BITMAP 1FF0 7FF0 7FF0 F830 F800 FE00 FF00 7FC0 3FF0 1FF0 07F8 01F8 00F8 C1F8 FFF0 FFE0 FF80 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 18 0 BBX 17 17 0 0 BITMAP FFFF80 FFFF80 FFFF80 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 19 0 BBX 15 17 2 0 BITMAP F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E 7C7C 7FFC 3FF8 0FE0 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 18 0 BBX 17 17 0 0 BITMAP F80380 FC0780 7C0700 7C0700 7E0E00 3E0E00 3F0E00 1F1C00 1F1C00 1FBC00 0FB800 0FB800 0FF800 07F000 07F000 03E000 03E000 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 23 0 BBX 22 17 0 0 BITMAP F83C1C F87C1C F87C38 FC7C38 7C7E38 7CFE38 7CFE70 7EFE70 3EFE70 3FEF70 3FCFE0 3FCFE0 1FCFE0 1FCFE0 1F87C0 1F87C0 0F87C0 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 17 0 BBX 16 17 1 0 BITMAP FC0F 7E1E 3E3C 3F38 1FF8 1FF0 0FE0 07E0 07E0 07F0 0FF0 0FF8 1EF8 3CFC 387E 787E F03F ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 18 0 BBX 17 17 0 0 BITMAP FC0780 7C0700 7E0E00 3F1E00 3F1C00 1FBC00 0FF800 0FF000 07F000 07E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 16 0 BBX 13 17 1 0 BITMAP FFF8 FFF8 FFF8 01F8 03F0 03F0 07E0 0FC0 1FC0 1F80 3F00 7E00 7E00 FC00 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 9 0 BBX 6 22 2 -4 BITMAP FC FC FC F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 FC FC FC ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 14 0 BBX 14 22 0 -4 BITMAP F000 7000 7800 3800 3800 1C00 1C00 0E00 0E00 0700 0700 0380 0380 01C0 01C0 01E0 00E0 00F0 0070 0078 0038 003C ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 9 0 BBX 6 22 1 -4 BITMAP FC FC FC 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C FC FC FC ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 1 3 BITMAP 0100 0300 0300 0780 0780 0FC0 0FC0 1CE0 1CE0 3870 3870 7038 7038 E01C ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 12 0 BBX 11 3 1 -3 BITMAP FFE0 FFE0 FFE0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 10 BITMAP 18 78 E0 F8 F8 F8 F8 F8 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 1 0 BITMAP 3F80 7FE0 7FF0 41F0 01F0 3FF0 7FF0 FFF0 F9F0 F9F0 FFF8 7FF8 3CF8 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 17 0 BBX 14 18 2 0 BITMAP F800 F800 F800 F800 F800 F9E0 FBF8 FFF8 FCFC F87C F87C F87C F87C F87C FCF8 FFF8 FFF0 F3E0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 1 0 BITMAP 0FE0 3FF0 7FF0 7E10 FC00 F800 F800 F800 FC00 7E10 7FF0 3FF0 0FF0 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 17 0 BBX 14 18 1 0 BITMAP 007C 007C 007C 007C 007C 1E7C 3FFC 7FFC FCFC F87C F87C F87C F87C F87C FCFC 7FFC 7F7C 1E7C ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 1 0 BITMAP 0FC0 3FE0 7FF0 78F0 F8F8 FFF8 FFF8 FFF8 F800 7C08 7FF8 3FF8 0FF0 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 11 0 BBX 11 18 0 0 BITMAP 0FE0 1FE0 3FE0 3E00 3E00 FFC0 FFC0 FFC0 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 17 0 BBX 14 18 1 -5 BITMAP 1F3C 3FFC 7FFC 7CFC F87C F87C F87C F87C F87C FCFC 7FFC 7F7C 1E7C 007C 20FC 7FF8 7FF0 1FC0 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 17 0 BBX 13 18 2 0 BITMAP F800 F800 F800 F800 F800 F9E0 FBF0 FFF8 FFF8 FCF8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 9 0 BBX 5 18 2 0 BITMAP F8 F8 F8 00 00 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 9 0 BBX 9 23 -1 -5 BITMAP 0F80 0F80 0F80 0000 0000 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 FF80 FF00 FE00 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 2 0 BITMAP F800 F800 F800 F800 F800 F878 F8F0 F8E0 F9C0 FBC0 FBC0 FFC0 FFE0 FBF0 FBF0 F9F8 F8F8 F8FC ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 9 0 BBX 5 18 2 0 BITMAP F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 24 0 BBX 21 13 2 0 BITMAP FBE1F0 F7F3F8 FFFFF8 FFFFF8 FCFCF8 F8F8F8 F8F8F8 F8F8F8 F8F8F8 F8F8F8 F8F8F8 F8F8F8 F8F8F8 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 17 0 BBX 13 13 2 0 BITMAP F9E0 FBF0 FFF8 FFF8 FCF8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 16 0 BBX 14 13 1 0 BITMAP 0FC0 3FF0 7FF8 7CF8 F87C F87C F87C F87C F87C 7CF8 7FF8 3FF0 0FC0 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 17 0 BBX 14 18 2 -5 BITMAP F9E0 FBF8 FFF8 FCFC F87C F87C F87C F87C F87C FCFC FFF8 FFF0 F9E0 F800 F800 F800 F800 F800 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 17 0 BBX 14 18 1 -5 BITMAP 1F3C 3FFC 7FFC 7CFC F87C F87C F87C F87C F87C FCFC 7FFC 7F7C 1E7C 007C 007C 007C 007C 007C ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 2 0 BITMAP F9C0 FBC0 FFC0 FFC0 FC00 F800 F800 F800 F800 F800 F800 F800 F800 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 15 0 BBX 12 13 2 0 BITMAP 3FC0 7FE0 FFE0 F820 F800 FF00 3FC0 0FF0 01F0 C1F0 FFF0 FFE0 7F80 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 10 0 BBX 9 16 1 0 BITMAP 3C00 7C00 7C00 FF80 FF80 FF80 7C00 7C00 7C00 7C00 7C00 7C00 7C00 7F80 3F80 1F80 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 17 0 BBX 13 13 2 0 BITMAP F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F9F8 FFF8 7EF8 3CF8 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 16 0 BBX 15 13 0 0 BITMAP F80E FC1C 7C1C 7E3C 3E38 3E38 3F78 1F70 1FF0 0FE0 0FE0 0FE0 07C0 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 21 0 BBX 20 13 1 0 BITMAP F0F870 F8F870 78F8E0 79F8E0 79FCE0 7DFDC0 3DFDC0 3F9DC0 3F9FC0 3F9F80 1F1F80 1F0F80 1F0F80 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 0 0 BITMAP FC78 7CF0 3EE0 3FE0 1FC0 1F80 0F80 0FC0 1FC0 3FE0 3BF0 79F0 F0F8 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 0 -5 BITMAP F81E FC1C 7C3C 7E38 3E38 3E70 3F70 1FE0 1FE0 0FE0 0FC0 0FC0 0780 0780 0F00 0F00 1E00 3E00 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 15 0 BBX 12 13 1 0 BITMAP FFF0 FFF0 FFF0 07F0 0FE0 1FC0 1F80 3F00 7F00 FE00 FFF0 FFF0 FFF0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 9 0 BBX 7 22 1 -4 BITMAP 1E 3E 7E 7C 7C 7C 7C 7C 7C F8 F0 F0 78 7C 7C 7C 7C 7C 7C 7E 3E 1E ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 6 0 BBX 3 22 2 -4 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 9 0 BBX 7 22 1 -4 BITMAP F0 F8 FC 7C 7C 7C 7C 7C 7C 3E 1E 1E 3C 7C 7C 7C 7C 7C 7C FC F8 F0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 16 0 BBX 14 6 1 4 BITMAP 3C1C 7E1C FF9C E7FC E1F8 E0F0 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 8 0 BBX 5 18 2 -5 BITMAP F8 F8 F8 00 00 70 70 70 70 70 F8 F8 F8 F8 F8 F8 F8 F8 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 16 0 BBX 12 17 2 0 BITMAP 0380 0380 0FF0 3FF0 7FF0 7C00 F800 F800 F800 F800 FC00 7E00 7FF0 3FF0 07F0 0380 0380 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 16 0 BBX 12 17 3 0 BITMAP 07F0 1FF0 1FF0 3E00 3E00 3E00 3E00 FF80 FF80 FF80 3E00 3E00 3C00 7800 FFF0 FFF0 FFF0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 16 0 BBX 16 17 0 0 BITMAP 6006 E007 F00F 7BDE 3FFC 1FF8 1E78 1C38 1C38 1C38 1E78 1FF8 3FFC 7BDE F00F E007 4002 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 1 0 BITMAP FC1E FC1C 7E3C 3F78 3F70 1FF0 0FE0 0FC0 1FF0 1FF0 07C0 1FF0 1FF0 07C0 07C0 07C0 07C0 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 6 0 BBX 3 22 2 -4 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 00 00 00 00 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 16 0 BBX 12 22 2 -5 BITMAP 3FE0 7FE0 FFE0 F020 F800 FF00 7FC0 3FE0 7FF0 EFF0 F1F0 FC70 FF70 7FE0 7FC0 1FE0 07F0 01F0 C1F0 FFF0 FFE0 FF80 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 16 0 BBX 8 3 4 14 BITMAP E7 E7 E7 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 20 0 BBX 18 17 1 0 BITMAP 03F000 0FFC00 1C0E00 380700 71F380 67F980 CF08C0 CE00C0 CE00C0 CE00C0 CF00C0 67F980 71FB80 380700 1C0E00 0FFC00 03F000 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 13 0 BBX 12 9 1 8 BITMAP 7F80 FFC0 C3E0 3FE0 FFE0 F3E0 F3E0 FFF0 7CF0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 15 0 BBX 13 11 1 1 BITMAP 0410 0E38 1C70 3CF0 79E0 F3C0 79E0 3CF0 1C70 0E38 0410 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 16 0 BBX 14 9 1 2 BITMAP FFFC FFFC FFFC 001C 001C 001C 001C 001C 001C ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 7 0 BBX 5 3 1 6 BITMAP F8 F8 F8 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 16 0 BBX 13 12 2 5 BITMAP 0F80 3FE0 7070 6FB0 CF98 CD98 CF18 CF18 6DB0 7070 3FE0 0F80 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 16 0 BBX 8 3 4 14 BITMAP FF FF FF ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 6 0 BBX 4 4 1 13 BITMAP 60 90 90 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 16 0 BBX 15 14 1 0 BITMAP 0380 0380 0380 FFFE FFFE FFFE 0380 0380 0380 0380 0000 FFFE FFFE FFFE ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 -15 7 BITMAP FC 87 03 03 06 0C 18 70 E0 FF ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 -16 7 BITMAP FE 83 03 07 7C 06 03 03 87 FC ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 16 0 BBX 6 3 6 15 BITMAP 3C 70 E0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 17 0 BBX 13 17 2 -4 BITMAP F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F9F8 FFF8 FFF8 FEF8 F800 F800 F800 F800 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 16 0 BBX 10 21 2 -4 BITMAP 3FC0 7FC0 FFC0 FFC0 FFC0 FFC0 FFC0 7FC0 1FC0 0FC0 0FC0 0FC0 0FC0 0FC0 0FC0 0FC0 0FC0 0FC0 0FC0 0FC0 0FC0 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 16 0 BBX 3 3 7 6 BITMAP E0 E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 16 0 BBX 5 5 6 -5 BITMAP 30 60 38 F8 F0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 10 0 BBX 3 10 -18 7 BITMAP E0 60 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 13 0 BBX 12 9 0 8 BITMAP 1F80 7FE0 FBF0 F1F0 F1F0 F1F0 FBF0 7FE0 1F80 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 15 0 BBX 13 11 1 1 BITMAP 4100 E380 71C0 79E0 3CF0 1E78 3CF0 79E0 71C0 E380 4100 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 22 0 BBX 19 17 6 0 BITMAP 700780 300F00 301E00 303C00 303800 307800 30F000 31E0C0 31C1C0 33C2C0 0784C0 0F0CC0 1E18C0 1C1FE0 3C00C0 7800C0 F000C0 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 22 0 BBX 19 17 6 0 BITMAP 700780 300F00 301E00 303C00 303800 307800 30F000 31FF80 31D0E0 33C060 078060 0F00C0 1E0180 1C0300 3C0E00 781C00 F01FE0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 22 0 BBX 20 17 7 0 BITMAP FE03C0 830780 030F00 071E00 7C1C00 063C00 037800 03F060 87E0E0 FDE160 03C260 078660 0F0C60 0E0FF0 1E0060 3C0060 780060 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 1 -5 BITMAP 0F80 0F80 0F80 0000 0000 0F80 0F80 0F00 1E00 3E00 3C00 7800 F800 F800 FC10 FFF0 7FF0 1FE0 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 19 0 BBX 18 21 0 0 BITMAP 03C000 00E000 007000 000000 03F000 03F000 03F800 07F800 07F800 07FC00 0E7C00 0E7E00 1E3E00 1C3E00 1FFF00 3FFF00 3FFF80 780F80 700F80 7007C0 E007C0 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 19 0 BBX 18 21 0 0 BITMAP 007800 00E000 01C000 000000 03F000 03F000 03F800 07F800 07F800 07FC00 0E7C00 0E7E00 1E3E00 1C3E00 1FFF00 3FFF00 3FFF80 780F80 700F80 7007C0 E007C0 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 19 0 BBX 18 21 0 0 BITMAP 01F000 03F800 071C00 000000 03F000 03F000 03F800 07F800 07F800 07FC00 0E7C00 0E7E00 1E3E00 1C3E00 1FFF00 3FFF00 3FFF80 780F80 700F80 7007C0 E007C0 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 19 0 BBX 18 21 0 0 BITMAP 03DC00 07FC00 077800 000000 03F000 03F000 03F800 07F800 07F800 07FC00 0E7C00 0E7E00 1E3E00 1C3E00 1FFF00 3FFF00 3FFF80 780F80 700F80 7007C0 E007C0 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 19 0 BBX 18 21 0 0 BITMAP 073800 073800 073800 000000 03F000 03F000 03F800 07F800 07F800 07FC00 0E7C00 0E7E00 1E3E00 1C3E00 1FFF00 3FFF00 3FFF80 780F80 700F80 7007C0 E007C0 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 19 0 BBX 18 22 0 0 BITMAP 00C000 012000 012000 00C000 000000 03F000 03F000 03F800 07F800 07F800 07FC00 0E7C00 0E7E00 1E3E00 1C3E00 1FFF00 3FFF00 3FFF80 780F80 700F80 7007C0 E007C0 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 24 0 BBX 23 17 0 0 BITMAP 003FFC 007FFC 00FFFC 00FE00 01FE00 01FE00 03BE00 03BFF8 073FF8 0F3FF8 0F3E00 1FFE00 1FFE00 3FFE00 383FFE 703FFE E03FFE ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 17 0 BBX 16 22 1 -5 BITMAP 03FE 0FFF 3FFF 7F03 7C00 FC00 F800 F800 F800 F800 F800 FC00 7E00 7F01 3FFF 0FFF 03FC 00C0 0180 00E0 03E0 03C0 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 15 0 BBX 13 21 2 0 BITMAP 1E00 0700 0380 0000 FFF0 FFF0 FFF0 F800 F800 F800 F800 FFE0 FFE0 FFE0 F800 F800 F800 F800 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 15 0 BBX 13 21 2 0 BITMAP 03C0 0700 0E00 0000 FFF0 FFF0 FFF0 F800 F800 F800 F800 FFE0 FFE0 FFE0 F800 F800 F800 F800 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 15 0 BBX 13 21 2 0 BITMAP 0F80 1FC0 38E0 0000 FFF0 FFF0 FFF0 F800 F800 F800 F800 FFE0 FFE0 FFE0 F800 F800 F800 F800 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 15 0 BBX 13 21 2 0 BITMAP 39C0 39C0 39C0 0000 FFF0 FFF0 FFF0 F800 F800 F800 F800 FFE0 FFE0 FFE0 F800 F800 F800 F800 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 9 0 BBX 6 21 3 0 BITMAP F0 38 1C 00 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 9 0 BBX 7 21 2 0 BITMAP 1E 38 70 00 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 9 0 BBX 9 21 4 0 BITMAP 3E00 7F00 E380 0000 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 9 0 BBX 8 21 3 0 BITMAP E7 E7 E7 00 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 20 0 BBX 19 17 0 0 BITMAP 3FFC00 3FFF00 3FFF80 3E1FC0 3E07C0 3E07E0 3E03E0 FFC3E0 FFC3E0 FFC3E0 3E03E0 3E03E0 3E07C0 3E0FC0 3FFF80 3FFF00 3FFC00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 19 0 BBX 15 21 2 0 BITMAP 0F70 1FF0 1DE0 0000 F00E F80E FC0E FE0E FF0E FF0E FF8E EFCE EFEE E7EE E3FE E1FE E1FE E0FE E07E E03E E01E ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 21 0 BBX 19 21 1 0 BITMAP 03C000 00E000 007000 000000 03F800 0FFE00 3FFF80 7E0FC0 7C07C0 FC07E0 F803E0 F803E0 F803E0 F803E0 F803E0 FC07E0 7C07C0 7E0FC0 3FFF80 0FFE00 03F800 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 21 0 BBX 19 21 1 0 BITMAP 003C00 007000 00E000 000000 03F800 0FFE00 3FFF80 7E0FC0 7C07C0 FC07E0 F803E0 F803E0 F803E0 F803E0 F803E0 FC07E0 7C07C0 7E0FC0 3FFF80 0FFE00 03F800 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 21 0 BBX 19 21 1 0 BITMAP 01F000 03F800 071C00 000000 03F800 0FFE00 3FFF80 7E0FC0 7C07C0 FC07E0 F803E0 F803E0 F803E0 F803E0 F803E0 FC07E0 7C07C0 7E0FC0 3FFF80 0FFE00 03F800 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 21 0 BBX 19 21 1 0 BITMAP 03DC00 07FC00 077800 000000 03F800 0FFE00 3FFF80 7E0FC0 7C07C0 FC07E0 F803E0 F803E0 F803E0 F803E0 F803E0 FC07E0 7C07C0 7E0FC0 3FFF80 0FFE00 03F800 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 21 0 BBX 19 21 1 0 BITMAP 039C00 039C00 039C00 000000 03F800 0FFE00 3FFF80 7E0FC0 7C07C0 FC07E0 F803E0 F803E0 F803E0 F803E0 F803E0 FC07E0 7C07C0 7E0FC0 3FFF80 0FFE00 03F800 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 1 0 BITMAP 6018 F03C F87C 7CF8 3FF0 1FE0 0FC0 0FC0 1FE0 3FF0 7CF8 F87C F03C 6018 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 21 0 BBX 19 17 1 0 BITMAP 03F9E0 0FFFC0 3FFF80 7E0FC0 7C1FC0 FC3FE0 F87BE0 F8F3E0 F9F3E0 F9E3E0 FBC3E0 FF87E0 7F07C0 7E0FC0 3FFF80 7FFE00 F3F800 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 19 0 BBX 15 21 2 0 BITMAP 0F00 0380 01C0 0000 F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E 7C7C 7FFC 3FF8 0FE0 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 19 0 BBX 15 21 2 0 BITMAP 00F0 01C0 0380 0000 F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E 7C7C 7FFC 3FF8 0FE0 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 19 0 BBX 15 21 2 0 BITMAP 07C0 0FE0 1C70 0000 F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E 7C7C 7FFC 3FF8 0FE0 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 19 0 BBX 15 21 2 0 BITMAP 0E70 0E70 0E70 0000 F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E 7C7C 7FFC 3FF8 0FE0 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 18 0 BBX 17 21 0 0 BITMAP 007800 00E000 01C000 000000 FC0780 7C0700 7E0E00 3F1E00 3F1C00 1FBC00 0FF800 0FF000 07F000 07E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 2 0 BITMAP F800 F800 F800 FFF0 FFF8 FFFC F8FC F87C F87C F87C F8F8 FFF8 FFF0 FFC0 F800 F800 F800 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 17 0 BBX 15 18 2 0 BITMAP 1FC0 3FE0 7FF0 F8F0 F8E0 F8E0 F9C0 F9C0 FBF0 FBF8 F9FC F9FE F87E F83E F81E F9FE F9FC F9F8 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 1 0 BITMAP 1E00 0700 0380 0000 3F80 7FE0 7FF0 41F0 01F0 3FF0 7FF0 FFF0 F9F0 F9F0 FFF8 7FF8 3CF8 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 1 0 BITMAP 01E0 0380 0700 0000 3F80 7FE0 7FF0 41F0 01F0 3FF0 7FF0 FFF0 F9F0 F9F0 FFF8 7FF8 3CF8 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 1 0 BITMAP 0F80 1FC0 38E0 0000 3F80 7FE0 7FF0 41F0 01F0 3FF0 7FF0 FFF0 F9F0 F9F0 FFF8 7FF8 3CF8 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 1 0 BITMAP 1EE0 3FE0 3BC0 0000 3F80 7FE0 7FF0 41F0 01F0 3FF0 7FF0 FFF0 F9F0 F9F0 FFF8 7FF8 3CF8 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 1 0 BITMAP 1CE0 1CE0 1CE0 0000 3F80 7FE0 7FF0 41F0 01F0 3FF0 7FF0 FFF0 F9F0 F9F0 FFF8 7FF8 3CF8 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 0600 0900 0900 0600 0000 3F80 7FE0 7FF0 41F0 01F0 3FF0 7FF0 FFF0 F9F0 F9F0 FFF8 7FF8 3CF8 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 22 0 BBX 20 13 1 0 BITMAP 3F0F80 7FFFC0 7FFFE0 41F1E0 00F1F0 1FFFF0 7FFFF0 FFFFF0 F8F000 F9F810 FFFFF0 7F3FF0 3C1FE0 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 13 0 BBX 12 18 1 -5 BITMAP 0FE0 3FF0 7FF0 7E10 FC00 F800 F800 F800 FC00 7E10 7FF0 3FF0 0FF0 0300 0600 0380 0F80 0F00 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 1 0 BITMAP 1E00 0700 0380 0000 0FC0 3FE0 7FF0 78F0 F8F8 FFF8 FFF8 FFF8 F800 7C08 7FF8 3FF8 0FF0 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 1 0 BITMAP 01E0 0380 0700 0000 0FC0 3FE0 7FF0 78F0 F8F8 FFF8 FFF8 FFF8 F800 7C08 7FF8 3FF8 0FF0 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 1 0 BITMAP 0F80 1FC0 38E0 0000 0FC0 3FE0 7FF0 78F0 F8F8 FFF8 FFF8 FFF8 F800 7C08 7FF8 3FF8 0FF0 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 1 0 BITMAP 1CE0 1CE0 1CE0 0000 0FC0 3FE0 7FF0 78F0 F8F8 FFF8 FFF8 FFF8 F800 7C08 7FF8 3FF8 0FF0 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 9 0 BBX 6 17 3 0 BITMAP F0 38 1C 00 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 9 0 BBX 6 17 2 0 BITMAP 3C 70 E0 00 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 9 0 BBX 9 17 4 0 BITMAP 3E00 7F00 E380 0000 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 9 0 BBX 8 17 3 0 BITMAP E7 E7 E7 00 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 16 0 BBX 14 21 1 0 BITMAP 0100 0380 07C0 F700 FF00 FFC0 3FE0 FBF0 71F8 3FF8 3FF8 7FFC FCFC F87C F87C F87C F87C FCF8 7FF8 3FF0 0FC0 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 17 0 BBX 13 17 2 0 BITMAP 1EE0 3FE0 3BC0 0000 F9E0 FBF0 FFF8 FFF8 FCF8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 1 0 BITMAP 0F00 0380 01C0 0000 0FC0 3FF0 7FF8 7CF8 F87C F87C F87C F87C F87C 7CF8 7FF8 3FF0 0FC0 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 1 0 BITMAP 01E0 0380 0700 0000 0FC0 3FF0 7FF8 7CF8 F87C F87C F87C F87C F87C 7CF8 7FF8 3FF0 0FC0 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 1 0 BITMAP 07C0 0FE0 1C70 0000 0FC0 3FF0 7FF8 7CF8 F87C F87C F87C F87C F87C 7CF8 7FF8 3FF0 0FC0 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 1 0 BITMAP 0F70 1FF0 1DE0 0000 0FC0 3FF0 7FF8 7CF8 F87C F87C F87C F87C F87C 7CF8 7FF8 3FF0 0FC0 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 1 0 BITMAP 1CE0 1CE0 1CE0 0000 0FC0 3FF0 7FF8 7CF8 F87C F87C F87C F87C F87C 7CF8 7FF8 3FF0 0FC0 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 1 0 BITMAP 0700 0700 0700 0000 0000 FFFC FFFC FFFC 0000 0000 0000 0700 0700 0700 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 16 0 BBX 15 13 1 0 BITMAP 0FDE 3FFC 7FF8 7CF8 F9FC FBFC FFFC FFFC FF7C 7EF8 7FF8 7FF0 FFC0 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 17 0 BBX 13 17 2 0 BITMAP 1E00 0700 0380 0000 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F9F8 FFF8 7EF8 3CF8 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 17 0 BBX 13 17 2 0 BITMAP 01E0 0380 0700 0000 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F9F8 FFF8 7EF8 3CF8 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 17 0 BBX 13 17 2 0 BITMAP 0F80 1FC0 38E0 0000 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F9F8 FFF8 7EF8 3CF8 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 17 0 BBX 13 17 2 0 BITMAP 1CE0 1CE0 1CE0 0000 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F9F8 FFF8 7EF8 3CF8 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 15 0 BBX 15 22 0 -5 BITMAP 01E0 0380 0700 0000 F81E FC1C 7C3C 7E38 3E38 3E70 3F70 1FE0 1FE0 0FE0 0FC0 0FC0 0780 0780 0F00 0F00 1E00 3E00 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 17 0 BBX 14 22 2 -5 BITMAP F800 F800 F800 F800 F9E0 FBF8 FFF8 FCFC F87C F87C F87C F87C F87C FCFC FFF8 FFF0 F9E0 F800 F800 F800 F800 F800 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 15 0 BBX 15 22 0 -5 BITMAP 0E70 0E70 0E70 0000 F81E FC1C 7C3C 7E38 3E38 3E70 3F70 1FE0 1FE0 0FE0 0FC0 0FC0 0780 0780 0F00 0F00 1E00 3E00 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 15 18 0 0 BITMAP 0FFE 1FFE 3FFE 3E3E 3E3E FFBE FFBE FFBE 3E3E 3E3E 3E3E 3E3E 3E3E 3E3E 3E3E 3E3E 3E3E 3E3E ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 3 1 6 BITMAP FFC0 FFC0 FFC0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 12 21 2 -4 BITMAP 0F00 0F00 0F00 0F00 0F00 0F00 FFF0 FFF0 FFF0 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 13 21 1 0 BITMAP 1C70 0FE0 07C0 0000 FFF8 FFF8 FFF8 01F8 03F0 03F0 07E0 0FC0 1FC0 1F80 3F00 7E00 7E00 FC00 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 24 0 BBX 22 13 1 0 BITMAP 0F83C0 3FE7F0 7FFFF8 7CFC78 F87C7C F87FFC F87FFC F87FFC F87C00 7CFE04 7FFFFC 3FFFFC 0FC7F8 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 17 21 0 0 BITMAP 073800 073800 073800 000000 FC0780 7C0700 7E0E00 3F1E00 3F1C00 1FBC00 0FF800 0FF000 07F000 07E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 13 2 0 BITMAP F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 18 0 0 BITMAP 3E00 3E00 3E00 3E00 3E00 3E80 3F80 3F80 3F00 FE00 FE00 FE00 BE00 3E00 3E00 3E00 3E00 3E00 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 15 17 0 0 BITMAP 3E00 3E00 3E00 3E00 3E80 3F80 3F80 3F00 7E00 FE00 FE00 BE00 3E00 3E00 3FFE 3FFE 3FFE ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 12 21 2 -4 BITMAP 0F00 0F00 0F00 0F00 0F00 FFF0 FFF0 FFF0 0F00 0F00 0F00 0F00 FFF0 FFF0 FFF0 0F00 0F00 0F00 0F00 0F00 0F00 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 15 18 0 0 BITMAP 0FE0 1FE0 3FE0 3E00 3E00 FFFE FFFE FFFE 3E3E 3E3E 3E3E 3E3E 3E3E 3E3E 3E3E 3E3E 3E3E 3E3E ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 1 BITMAP 40 E0 70 78 3C 1E 3C 78 70 E0 40 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 26 0 BBX 25 17 1 0 BITMAP 03FFFF00 0FFFFF00 3FFFFF00 7E1F8000 7C0F8000 FC0F8000 F80F8000 F80FFE00 F80FFE00 F80FFE00 F80F8000 FC0F8000 7C0F8000 7E1F8000 3FFFFF80 0FFFFF80 03FFFF80 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 24 0 BBX 23 2 1 6 BITMAP FFFFFE FFFFFE ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 9 3 4 15 BITMAP E380 7F00 3E00 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 5 3 6 -4 BITMAP 70 E0 78 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 9 3 5 15 BITMAP 3B80 7600 EC00 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 1 BITMAP 04 0E 1C 3C 78 F0 78 3C 1C 0E 04 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 3 3 7 15 BITMAP E0 E0 E0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 9 3 4 15 BITMAP E380 7F00 3E00 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 9 9 4 3 BITMAP FF80 FF80 FF80 FF80 FF80 FF80 FF80 FF80 FF80 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 9 3 4 15 BITMAP 7B80 FF80 EF00 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 9 3 4 15 BITMAP 3E00 7F00 E380 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 11 8 1 10 BITMAP 1860 79E0 E380 FBE0 FBE0 FBE0 FBE0 FBE0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 10 BITMAP F8 F8 F8 F8 70 70 70 70 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 2 0 BITMAP 38E0 1FC0 0F80 0000 3FC0 7FE0 FFE0 F820 F800 FF00 3FC0 0FF0 01F0 C1F0 FFF0 FFE0 7F80 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 4 4 6 14 BITMAP 60 90 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 -4 BITMAP F8 F8 F8 F8 F8 38 70 F0 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 13 21 3 -4 BITMAP 01F8 07F8 07F8 0F00 0F00 1F00 1E00 7F80 7F80 7F80 3E00 3E00 3C00 3C00 7C00 7C00 7C00 7800 7800 F800 F800 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 22 0 BBX 21 9 0 8 BITMAP FFFE78 FFFE78 FFFEF8 1F1FF8 1F1FF8 1F1FF8 1F1FF8 1F1FF8 1F1CF8 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 17 17 -7 0 BITMAP 000780 000F00 001E00 003C00 003800 007800 00F000 01E000 01C000 03C000 078000 0F0000 1E0000 1C0000 3C0000 780000 F00000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 6 3 4 15 BITMAP F0 38 1C ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 32 0 BBX 31 17 0 0 BITMAP 3E01E000 7F03C000 FF878000 E3870000 E38F0000 FF9E0000 7F3C0000 3E780000 0073E0F8 00F7F1FC 01EFFBFE 03CE3B8E 078E3B8E 0F0E3B8E 0F0FFBFE 1E07F1FC 3C03E0F8 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 24 0 BBX 19 3 3 0 BITMAP E0E0E0 E0E0E0 E0E0E0 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 11 8 1 10 BITMAP FBE0 FBE0 FBE0 FBE0 FBE0 38E0 F3C0 C300 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 13 21 1 0 BITMAP 38E0 1FC0 0F80 0000 1FF0 7FF0 7FF0 F830 F800 FE00 FF00 7FC0 3FF0 1FF0 07F8 01F8 00F8 C1F8 FFF0 FFE0 FF80 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 11 9 1 -4 BITMAP FBE0 FBE0 FBE0 FBE0 FBE0 38E0 70C0 F3C0 C300 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 1 0 BITMAP 38E0 1FC0 0F80 0000 FFF0 FFF0 FFF0 07F0 0FE0 1FC0 1F80 3F00 7F00 FE00 FFF0 FFF0 FFF0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/luIS08.bdf100644 1750 1750 54012 5413747466 15001 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Medium-I-Normal-Sans-8-80-75-75-P-45-ISO8859-1 SIZE 8 72 72 FONTBOUNDINGBOX 15 11 -4 -3 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Medium" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 8 POINT_SIZE 80 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 45 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 7 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 3 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 3 0 BBX 2 6 1 0 BITMAP 40 40 40 40 80 80 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 3 0 BBX 2 2 1 4 BITMAP C0 C0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 28 F8 50 F8 A0 E0 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 -1 BITMAP 70 60 40 60 60 E0 40 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP 6C 70 50 38 68 98 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 30 30 30 E8 90 F0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 2 0 BBX 1 2 1 4 BITMAP 80 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 1 -2 BITMAP 20 40 80 80 80 80 80 80 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 0 -2 BITMAP 40 20 20 20 20 40 80 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 4 0 BBX 3 3 1 3 BITMAP 40 E0 C0 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 20 20 F8 20 20 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 3 0 BBX 1 3 1 -2 BITMAP 80 80 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 5 0 BBX 5 1 0 2 BITMAP F8 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 3 0 BBX 1 1 1 0 BITMAP 80 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 4 0 BBX 5 8 0 -2 BITMAP 08 10 10 20 20 40 80 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 70 50 90 90 90 60 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 5 0 BBX 2 6 2 0 BITMAP C0 40 40 80 80 80 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 70 10 10 60 80 E0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 70 10 60 10 10 E0 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 10 30 50 50 F0 20 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 70 40 60 10 20 E0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 70 80 F0 90 90 60 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 70 30 20 40 80 80 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 70 50 60 E0 A0 E0 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 70 90 90 70 10 E0 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 1 0 BITMAP 40 00 00 80 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 3 0 BBX 2 6 1 -2 BITMAP 40 00 00 80 80 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 0 BITMAP 08 30 C0 60 10 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 5 0 BBX 5 2 0 1 BITMAP F8 F8 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 40 30 18 70 80 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 1 0 BITMAP E0 20 20 40 80 80 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 38 5C CC DC AC 70 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 10 30 30 48 78 88 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 70 50 60 90 90 E0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 38 40 80 80 80 70 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP 7C 44 44 44 88 F0 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 1 0 BITMAP 70 40 60 80 80 E0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 1 0 BITMAP 70 40 40 E0 80 80 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 38 40 80 90 90 70 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP 44 44 78 48 88 88 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 2 0 BBX 2 6 1 0 BITMAP 40 40 40 80 80 80 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 3 0 BBX 4 8 0 -2 BITMAP 10 10 10 10 20 20 20 C0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 48 50 60 A0 A0 90 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 1 0 BITMAP 40 40 40 40 80 F0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 44 AC B4 B8 A8 88 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP 44 64 A4 94 98 88 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP 38 4C 84 88 88 70 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 70 50 50 E0 80 80 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 -2 BITMAP 38 4C 84 88 88 70 18 0C ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 70 50 50 E0 A0 90 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 1 0 BITMAP 70 40 40 30 10 E0 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP F8 20 20 40 40 40 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 48 88 88 88 90 F0 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 88 90 90 A0 60 40 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 1 0 BITMAP 92 B4 B4 98 D8 90 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 5 0 BBX 6 7 0 0 BITMAP 40 24 28 10 30 50 88 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 88 50 60 40 40 40 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 78 10 20 20 40 F0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 0 -2 BITMAP 60 40 40 40 40 80 80 C0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 4 0 BBX 2 8 1 -2 BITMAP 80 80 80 40 40 40 40 40 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 0 -2 BITMAP 60 20 20 40 40 40 40 C0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 1 BITMAP 10 30 70 48 88 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 4 0 BBX 3 1 0 -1 BITMAP E0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 2 0 BBX 1 2 1 4 BITMAP 80 80 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 1 0 BITMAP 70 90 A0 E0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 40 40 70 D0 90 E0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 1 0 BITMAP 70 80 80 E0 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 08 08 70 90 B0 F0 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 1 0 BITMAP 60 A0 E0 E0 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 3 0 BBX 4 8 1 -2 BITMAP 30 40 E0 40 80 80 80 80 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 -2 BITMAP 38 48 90 70 10 E0 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 40 40 70 D0 D0 90 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 2 0 BBX 2 6 1 0 BITMAP 40 00 40 80 80 80 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 3 0 BBX 4 8 0 -2 BITMAP 10 00 10 20 20 20 20 C0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 40 40 50 A0 E0 B0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 2 0 BBX 2 6 1 0 BITMAP 40 40 80 80 80 80 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 7 0 BBX 7 4 1 0 BITMAP 76 7A D2 92 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 1 0 BITMAP 70 50 D0 90 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 1 0 BITMAP 70 90 90 E0 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 -2 BITMAP 78 68 48 70 80 80 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 -2 BITMAP 70 90 B0 E0 20 20 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 1 0 BITMAP 70 40 80 80 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 1 0 BITMAP 60 40 20 C0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 1 0 BITMAP 40 40 E0 80 80 C0 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 1 0 BITMAP D0 90 A0 E0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 1 0 BITMAP 90 A0 A0 C0 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 6 0 BBX 6 4 1 0 BITMAP A4 B8 D8 D0 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 4 0 BBX 5 5 0 -1 BITMAP 48 30 20 50 80 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 4 0 BBX 4 7 1 -3 BITMAP 90 A0 60 40 40 40 80 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 1 0 BITMAP 70 20 40 F0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 1 -2 BITMAP 60 40 40 40 80 80 80 80 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 2 0 BBX 2 8 0 -2 BITMAP 40 40 40 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 0 -2 BITMAP 60 20 60 20 40 40 40 80 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 5 0 BBX 5 2 0 1 BITMAP 68 B0 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 3 0 BBX 2 6 1 -2 BITMAP 40 00 C0 80 80 80 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 10 70 A0 A0 F0 40 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 30 40 60 40 40 E0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 5 0 BBX 6 6 0 0 BITMAP 44 78 50 50 70 88 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 88 50 60 F0 E0 40 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 2 0 BBX 2 8 0 -2 BITMAP 40 40 40 00 00 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 1 -2 BITMAP 30 40 60 50 50 20 10 E0 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 5 0 BBX 2 1 2 5 BITMAP C0 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 78 BC A4 C4 B4 78 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 3 0 BBX 3 4 1 2 BITMAP 60 A0 E0 A0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 1 0 BITMAP 50 E0 A0 60 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 5 0 BBX 5 2 1 1 BITMAP F8 08 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 3 0 BBX 2 1 1 2 BITMAP C0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 5 0 BBX 2 4 2 2 BITMAP 80 C0 C0 80 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 5 0 BBX 2 1 2 5 BITMAP C0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 2 0 BBX 1 2 1 4 BITMAP 80 80 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 10 F8 20 00 F8 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 3 0 BBX 3 3 -3 3 BITMAP 60 60 C0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 -4 3 BITMAP 40 40 C0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 5 0 BBX 2 1 3 5 BITMAP C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 -2 BITMAP 48 48 70 F0 80 80 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 1 -2 BITMAP F0 F0 D0 20 60 60 60 60 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 2 2 BITMAP 80 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 5 0 BBX 1 2 2 -2 BITMAP 80 80 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 3 0 BBX 1 3 -4 3 BITMAP 80 80 80 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 3 0 BBX 3 4 1 2 BITMAP 60 A0 A0 C0 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 0 0 BITMAP 60 50 70 A0 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 3 0 BITMAP 84 88 90 2C 5C 88 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 3 0 BITMAP 84 88 90 2C 4C 98 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 4 0 BITMAP 42 44 C8 16 2E 44 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 0 -2 BITMAP 20 20 20 C0 80 E0 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 10 10 30 30 48 78 88 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 18 10 30 30 48 78 88 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 38 10 30 30 48 78 88 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 38 10 30 30 48 78 88 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 18 10 30 30 48 78 88 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 0 0 BITMAP 10 28 10 30 30 48 78 88 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 7 0 BBX 8 6 0 0 BITMAP 0F 18 18 2E 78 8E ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 1 -2 BITMAP 38 40 80 80 80 70 40 40 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 4 0 BBX 4 7 1 0 BITMAP 20 70 40 60 80 80 E0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 4 0 BBX 4 7 1 0 BITMAP 20 70 40 60 80 80 E0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 4 0 BBX 4 7 1 0 BITMAP 50 70 40 60 80 80 E0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 4 0 BBX 4 7 1 0 BITMAP 60 70 40 60 80 80 E0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 2 0 BBX 2 7 1 0 BITMAP 40 40 40 40 80 80 80 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 2 0 BBX 3 7 1 0 BITMAP 60 40 40 40 80 80 80 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 2 0 BBX 3 7 1 0 BITMAP E0 40 40 40 80 80 80 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 2 0 BBX 3 7 1 0 BITMAP 60 40 40 40 80 80 80 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 7C 44 E4 44 48 F0 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 1 0 BITMAP 38 44 64 A4 94 98 88 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 1 0 BITMAP 10 38 4C 84 88 88 70 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 1 0 BITMAP 10 38 4C 84 88 88 70 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 1 0 BITMAP 28 38 4C 84 88 88 70 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 1 0 BITMAP 38 38 4C 84 88 88 70 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 1 0 BITMAP 30 38 4C 84 88 88 70 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 48 50 20 50 90 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 6 0 BBX 7 6 1 0 BITMAP 3E 4C 94 A8 88 F0 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 20 48 88 88 88 90 F0 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 30 48 88 88 88 90 F0 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 70 48 88 88 88 90 F0 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 30 48 88 88 88 90 F0 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 1 0 BITMAP 30 88 50 60 40 40 40 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 40 70 50 90 E0 80 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 1 -2 BITMAP 30 50 60 60 90 B0 80 80 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 20 70 90 A0 E0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 20 70 90 A0 E0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 50 70 90 A0 E0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 70 70 90 A0 E0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 30 70 90 A0 E0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 20 50 70 90 A0 E0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 7 0 BBX 6 4 1 0 BITMAP 7C 94 BC DC ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 1 -2 BITMAP 70 80 80 E0 40 40 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 1 0 BITMAP 20 60 A0 E0 E0 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 1 0 BITMAP 30 60 A0 E0 E0 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 1 0 BITMAP 70 60 A0 E0 E0 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 1 0 BITMAP 30 60 A0 E0 E0 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 2 0 BBX 2 5 1 0 BITMAP 40 40 40 80 80 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 2 0 BBX 3 5 1 0 BITMAP 60 40 40 80 80 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 2 0 BBX 3 5 1 0 BITMAP E0 40 40 80 80 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 2 0 BBX 3 5 1 0 BITMAP 60 40 40 80 80 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 1 0 BITMAP 70 70 70 90 90 E0 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 70 70 50 D0 90 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 20 70 90 90 E0 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 20 70 90 90 E0 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 50 70 90 90 E0 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 70 70 90 90 E0 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 30 70 90 90 E0 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 0 BITMAP 20 00 F8 20 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 1 0 BITMAP 78 90 90 E0 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 20 D0 90 A0 E0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 30 D0 90 A0 E0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 70 D0 90 A0 E0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 30 D0 90 A0 E0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 4 0 BBX 4 8 1 -3 BITMAP 30 90 A0 60 40 40 40 80 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 0 -2 BITMAP 40 40 78 68 48 F0 80 80 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 4 0 BBX 4 8 1 -3 BITMAP 60 90 A0 60 40 40 40 80 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 1 -2 BITMAP 38 48 F0 50 90 90 80 80 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 1 1 2 BITMAP E0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 8 2 -2 BITMAP 40 40 E0 40 40 40 40 80 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 30 78 10 20 20 40 F0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 4 1 0 BITMAP 6C 9C 94 FC ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 1 0 BITMAP 30 88 50 60 40 40 40 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 2 4 1 0 BITMAP 40 40 80 80 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 3 6 0 0 BITMAP 40 40 60 C0 40 C0 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 0 0 BITMAP 40 40 60 C0 40 F0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 1 -2 BITMAP 20 20 F0 20 40 F0 40 40 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 1 -2 BITMAP 38 40 F8 50 90 90 80 80 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 1 0 BITMAP 80 40 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 6 1 0 BITMAP 3F 48 8E 88 88 7E ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 1 1 2 BITMAP FE ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 2 5 BITMAP E0 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 2 -2 BITMAP 80 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 2 5 BITMAP E0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 1 0 BITMAP 40 80 80 80 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 3 5 BITMAP 80 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 2 5 BITMAP E0 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 2 1 2 BITMAP E0 E0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 2 5 BITMAP E0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 2 5 BITMAP E0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 2 1 4 BITMAP E0 C0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 1 2 1 4 BITMAP 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 1 0 BITMAP 70 60 40 20 C0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 4 4 BITMAP 40 A0 40 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 1 3 0 -2 BITMAP 80 80 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 2 -2 BITMAP 30 40 40 E0 40 80 80 80 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 3 1 3 BITMAP F4 74 EC ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 6 6 -1 0 BITMAP 04 08 10 20 40 80 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 3 5 BITMAP 80 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 6 1 0 BITMAP 68 78 60 3A 6E 9E ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 1 1 0 BITMAP 94 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 2 1 4 BITMAP E0 C0 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 5 7 1 0 BITMAP 38 70 40 40 30 10 E0 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 3 0 -2 BITMAP E0 C0 C0 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 5 5 1 0 BITMAP 38 70 20 40 F0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/luIS10.bdf100644 1750 1750 56143 5413747467 15002 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. COMMENT GRID 0010 0010 0200 0200 FONT -B&H-Lucida-Medium-I-Normal-Sans-10-100-75-75-P-59-ISO8859-1 SIZE 10 72 72 FONTBOUNDINGBOX 12 11 -1 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Medium" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 10 POINT_SIZE 100 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 59 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 9 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 3 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 3 0 BBX 3 7 0 0 BITMAP 20 20 40 40 00 80 80 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 4 0 BBX 3 3 1 5 BITMAP A0 A0 A0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 0 BITMAP 14 14 76 28 EC 50 50 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 -1 BITMAP 10 3C 50 50 30 28 28 F0 20 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 40 A4 48 10 24 4A 04 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 38 48 30 64 94 98 E4 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 1 5 BITMAP 40 40 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 3 0 BBX 4 9 0 -1 BITMAP 10 20 40 40 80 80 80 80 40 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 3 0 BBX 4 9 -1 -1 BITMAP 20 10 10 10 10 20 20 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 5 0 BBX 5 3 0 4 BITMAP 58 20 D0 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 7 0 BBX 6 5 1 1 BITMAP 10 10 FC 20 20 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 0 -1 BITMAP 40 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 1 3 BITMAP FC ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 3 0 BBX 1 2 1 0 BITMAP 80 80 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 5 0 BBX 6 9 -1 -1 BITMAP 04 04 08 10 10 20 40 80 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 30 48 48 88 90 90 60 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 7 0 BBX 3 7 2 0 BITMAP 20 E0 20 60 40 40 40 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 70 08 08 30 40 80 F0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 70 08 08 30 10 10 E0 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 18 28 48 90 F8 10 10 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 3C 40 70 08 08 10 E0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 1C 20 40 70 88 88 70 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 7C 04 08 10 20 40 80 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 30 48 48 70 88 88 70 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 38 44 44 38 08 10 E0 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 3 0 BBX 2 6 1 0 BITMAP 40 40 00 00 80 80 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 3 0 BBX 3 7 0 -1 BITMAP 20 20 00 00 40 40 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 7 0 BBX 6 5 0 1 BITMAP 0C 30 C0 20 10 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 7 0 BBX 6 3 1 2 BITMAP 7C 00 F8 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 7 0 BBX 6 5 1 1 BITMAP 20 10 0C 30 C0 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 0 BITMAP 60 90 10 60 00 80 80 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 0 BITMAP 1C 22 4E 94 9E 80 78 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 08 18 28 48 78 88 88 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP 60 50 50 E0 90 90 E0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 3C 40 80 80 80 80 78 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP 78 44 44 C4 84 88 F0 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 78 40 40 F0 80 80 F0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 78 40 40 F0 80 80 80 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 3C 40 80 88 88 88 70 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 48 48 48 F8 90 90 90 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 4 0 BBX 2 7 1 0 BITMAP 40 40 40 C0 80 80 80 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 4 0 BBX 4 8 -1 -1 BITMAP 10 10 10 30 20 20 20 C0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 44 48 50 E0 A0 90 88 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 0 BITMAP 40 40 40 C0 80 80 F0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 0 BITMAP 42 66 5A D2 94 84 84 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP 64 64 54 54 98 88 88 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP 38 44 84 84 84 88 70 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 70 48 48 F0 80 80 80 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 -2 BITMAP 38 44 84 84 84 88 70 08 04 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 70 48 48 F0 A0 90 88 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 38 40 40 20 10 10 E0 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP F8 20 20 60 40 40 40 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 44 44 44 88 88 90 60 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 2 0 BITMAP 88 88 90 90 A0 C0 80 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 2 0 BITMAP 82 92 92 B4 B4 D8 90 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 48 48 70 20 70 90 90 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 88 88 90 60 40 40 40 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 7C 08 10 20 40 80 F8 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 3 0 BBX 4 9 0 -1 BITMAP 30 20 20 40 40 40 80 80 C0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 5 0 BBX 5 9 0 -1 BITMAP 80 80 40 40 20 10 10 08 08 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 3 0 BBX 4 9 -1 -1 BITMAP 30 10 10 20 20 20 40 40 C0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 1 BITMAP 08 18 28 48 88 88 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 7 0 BBX 5 1 1 -1 BITMAP F8 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 1 5 BITMAP 40 80 80 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 38 48 88 90 B0 D0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 20 20 58 68 48 88 90 E0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 30 40 80 80 80 60 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 0 BITMAP 04 04 38 48 88 90 B0 D0 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 38 48 90 E0 80 70 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 5 0 BBX 5 10 1 -2 BITMAP 18 20 78 20 40 40 40 80 80 80 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 -2 BITMAP 38 48 88 90 B0 D0 10 E0 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 20 20 58 68 48 90 90 90 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 1 0 BITMAP 20 00 40 40 40 80 80 80 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 3 0 BBX 5 10 -1 -2 BITMAP 08 00 10 10 10 20 20 20 40 C0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 20 20 48 50 60 A0 90 88 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 1 0 BITMAP 20 20 40 40 40 80 80 80 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 9 0 BBX 8 6 1 0 BITMAP 5B 6D 49 92 92 92 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 58 68 48 90 90 90 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 30 48 88 88 90 60 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 -2 BITMAP 2C 34 24 44 48 70 80 80 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 -2 BITMAP 38 48 88 90 B0 D0 20 20 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 50 70 40 80 80 80 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 38 40 60 30 10 E0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 4 0 BBX 4 7 1 0 BITMAP 20 F0 40 40 80 80 C0 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 48 48 48 90 B0 D0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 2 0 BITMAP 90 90 90 A0 C0 80 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 9 0 BBX 7 6 2 0 BITMAP 82 92 92 B4 D8 90 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 5 0 BBX 6 6 0 0 BITMAP 24 28 30 30 50 90 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 -2 BITMAP 24 24 24 28 28 30 20 C0 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 78 10 20 40 80 F0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 3 0 BBX 5 9 -1 -1 BITMAP 08 10 20 20 C0 20 40 40 20 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 3 0 BBX 3 9 1 -1 BITMAP 20 20 20 40 40 40 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 3 0 BBX 5 9 -1 -1 BITMAP 20 10 10 20 18 20 20 40 80 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 7 0 BBX 6 2 1 3 BITMAP 64 98 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 3 0 BBX 3 7 0 -1 BITMAP 20 20 00 40 40 80 80 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 -1 BITMAP 10 3C 50 90 A0 A0 70 20 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 1C 20 20 F0 40 40 F8 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 0 BITMAP 42 3C 24 44 48 78 84 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 44 44 48 30 FC 20 20 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 3 0 BBX 3 9 1 -1 BITMAP 20 20 20 00 00 00 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 -1 BITMAP 38 44 70 48 68 18 88 70 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 6 0 BBX 4 1 2 7 BITMAP 90 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 0 BITMAP 38 44 BA A2 BA 44 38 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 2 BITMAP 70 90 90 B0 D0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 6 0 BBX 6 4 0 2 BITMAP 24 48 90 48 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 7 0 BBX 5 3 1 1 BITMAP F8 08 08 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 3 0 BBX 2 1 1 3 BITMAP C0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 0 BITMAP 38 44 BA B2 AA 44 38 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 3 7 BITMAP E0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 3 0 BBX 3 3 0 4 BITMAP 40 A0 40 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 1 BITMAP 08 08 7C 10 00 F8 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 1 2 BITMAP 60 10 20 40 E0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 0 2 BITMAP 70 10 60 10 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 6 0 BBX 2 2 4 7 BITMAP 40 80 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 -2 BITMAP 24 24 24 48 58 68 80 80 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 -1 BITMAP 78 E8 E8 50 50 50 A0 A0 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 3 2 BITMAP C0 C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 6 0 BBX 3 2 0 -2 BITMAP 20 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 4 0 BBX 2 5 2 2 BITMAP C0 40 80 80 80 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 2 BITMAP 60 90 90 90 60 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 6 0 BBX 6 4 0 2 BITMAP 48 24 48 90 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 1 0 BITMAP 44 48 90 B2 2A 5F 84 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 1 0 BITMAP 44 48 90 B7 21 46 8F ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 9 0 BBX 9 7 0 0 BITMAP F200 6400 2800 D900 1500 2F80 4200 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 -1 BITMAP 08 08 00 70 80 90 60 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 10 08 00 18 28 48 78 88 88 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 08 10 00 18 28 48 78 88 88 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 10 28 00 18 28 48 78 88 88 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 34 58 00 18 28 48 78 88 88 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 28 00 18 28 48 78 88 88 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 10 28 10 18 28 48 78 88 88 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 9 0 BBX 9 7 1 0 BITMAP 0F80 1400 2400 4F00 7800 8800 8F00 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 -2 BITMAP 3C 40 80 80 80 80 78 20 C0 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 20 10 00 78 40 70 80 80 F0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 10 20 00 78 40 70 80 80 F0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 10 28 00 78 40 70 80 80 F0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 48 00 78 40 70 80 80 F0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 4 0 BBX 2 9 1 0 BITMAP 80 40 00 40 40 C0 80 80 80 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 4 0 BBX 3 9 1 0 BITMAP 20 40 00 40 40 C0 80 80 80 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 4 0 BBX 3 9 1 0 BITMAP 40 A0 00 40 40 C0 80 80 80 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 4 0 BBX 3 8 1 0 BITMAP A0 00 40 40 C0 80 80 80 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 0 0 BITMAP 3C 22 22 F2 42 44 78 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 1A 2C 00 44 64 54 98 88 88 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 20 10 00 38 44 84 84 88 70 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 08 10 00 38 44 84 84 88 70 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 10 28 00 38 44 84 84 88 70 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 34 58 00 38 44 84 84 88 70 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 8 0 BBX 6 8 1 0 BITMAP 24 00 38 44 84 84 88 70 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 7 0 BBX 6 5 1 1 BITMAP 44 28 30 50 88 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 0 0 BITMAP 1D 22 46 5A 62 44 B8 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 10 08 00 44 44 88 88 90 60 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 08 10 00 44 44 88 88 90 60 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 10 28 00 44 44 88 88 90 60 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 24 00 44 44 88 88 90 60 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 20 50 00 88 90 60 40 40 40 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 40 40 70 88 F0 80 80 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 -1 BITMAP 30 28 48 50 48 88 88 B0 80 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 20 10 00 38 48 88 90 B0 D0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 08 10 00 38 48 88 90 B0 D0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 10 28 00 38 48 88 90 B0 D0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 1 0 BITMAP 34 58 00 38 48 88 90 B0 D0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 48 00 38 48 88 90 B0 D0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 10 28 00 38 48 88 90 B0 D0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 9 0 BBX 7 6 1 0 BITMAP 66 1A 72 9C B0 CC ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 0 -2 BITMAP 18 20 40 40 40 30 20 C0 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 20 10 00 38 48 90 E0 80 70 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 08 10 00 38 48 90 E0 80 70 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 10 28 00 38 48 90 E0 80 70 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 48 00 38 48 90 E0 80 70 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 3 0 BBX 2 9 1 0 BITMAP 80 40 00 40 40 40 80 80 80 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 3 0 BBX 3 9 1 0 BITMAP 20 40 00 40 40 40 80 80 80 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 3 0 BBX 3 9 1 0 BITMAP 40 A0 00 40 40 40 80 80 80 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 1 0 BITMAP A0 00 40 40 40 80 80 80 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 0 BITMAP 10 3C 08 38 48 88 90 60 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 1 0 BITMAP 34 58 00 58 68 48 90 90 90 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 20 10 00 30 48 88 88 90 60 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 08 10 00 30 48 88 88 90 60 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 10 28 00 30 48 88 88 90 60 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 1 0 BITMAP 34 58 00 30 48 88 88 90 60 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 48 00 30 48 88 88 90 60 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 7 0 BBX 6 5 1 1 BITMAP 10 00 FC 00 20 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 6 0 BBX 7 6 0 0 BITMAP 1A 24 4C 64 48 B0 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 20 10 00 48 48 48 90 B0 D0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 08 10 00 48 48 48 90 B0 D0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 10 28 00 48 48 48 90 B0 D0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 48 00 48 48 48 90 B0 D0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 6 0 BBX 6 11 0 -2 BITMAP 04 08 00 24 24 24 28 28 30 20 C0 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 -2 BITMAP 20 2C 34 64 44 48 70 80 80 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 6 0 BBX 6 10 0 -2 BITMAP 24 00 24 24 24 28 28 30 20 C0 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 8 10 0 -2 BITMAP 1F 21 7A 22 42 44 44 84 80 80 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 1 1 3 BITMAP F0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 -1 BITMAP 10 10 FC 20 20 20 40 40 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP 28 10 00 7C 08 10 20 40 F8 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 6 1 0 BITMAP 36 4A 92 9C 90 6C ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 48 00 88 90 60 40 40 40 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 6 1 0 BITMAP 40 40 40 80 80 80 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 5 8 0 0 BITMAP 10 10 20 38 E0 20 40 40 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 20 20 38 E0 40 40 78 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 -1 BITMAP 08 08 7E 10 10 FC 20 20 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 0 -2 BITMAP 1E 20 7E 22 42 44 44 84 80 80 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 4 0 2 BITMAP 40 20 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 7 1 0 BITMAP 3F80 4400 8400 8F00 8800 8800 7F00 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 1 1 3 BITMAP FFC0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 2 3 7 BITMAP A0 40 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 2 2 -2 BITMAP 80 60 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 2 1 7 BITMAP 48 90 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 4 0 2 BITMAP 20 40 80 40 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 1 2 4 7 BITMAP 80 80 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 2 2 7 BITMAP 90 60 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 3 2 2 BITMAP E0 E0 E0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 2 1 7 BITMAP 68 B0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 2 3 7 BITMAP 40 A0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 3 1 5 BITMAP 50 A0 A0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 1 3 1 5 BITMAP 80 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 9 0 0 BITMAP 28 10 00 38 40 60 30 10 E0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 3 3 6 BITMAP 40 A0 40 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 0 -1 BITMAP 40 40 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 -1 BITMAP 1C 20 20 F8 40 40 80 80 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 3 0 4 BITMAP FB 55 55 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 7 7 -1 0 BITMAP 02 04 08 10 20 40 80 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 2 2 4 7 BITMAP 80 40 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 7 1 0 BITMAP 4200 A400 4800 1000 2480 4B40 0480 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 2 1 0 BITMAP 90 90 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 3 0 5 BITMAP 50 50 A0 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 28 10 00 38 40 60 30 10 E0 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 3 0 -1 BITMAP 50 50 A0 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 9 1 0 BITMAP 28 10 00 78 10 20 40 80 F0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/luIS12.bdf100644 1750 1750 60426 5413747467 15003 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. COMMENT GRID 0012 0012 0200 0200 FONT -B&H-Lucida-Medium-I-Normal-Sans-12-120-75-75-P-71-ISO8859-1 SIZE 12 72 72 FONTBOUNDINGBOX 15 13 -2 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Medium" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 12 POINT_SIZE 120 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 71 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 11 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 4 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 3 0 BBX 3 9 0 0 BITMAP 20 20 20 40 40 40 00 80 80 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 1 7 BITMAP A0 A0 A0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 12 12 7F 24 24 24 FE 48 48 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 -1 BITMAP 10 38 54 50 50 30 28 28 A8 70 20 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 61 92 94 68 18 16 29 49 86 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 18 24 24 28 70 92 8A 8C 72 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 1 7 BITMAP 40 40 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 1 -1 BITMAP 10 20 40 40 80 80 80 80 80 80 40 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 -1 -1 BITMAP 20 10 10 10 10 10 10 20 20 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 6 0 BBX 6 5 0 4 BITMAP 10 54 30 A8 20 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 1 BITMAP 10 10 10 FC 20 20 20 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 0 -1 BITMAP 40 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 8 0 BBX 6 1 1 4 BITMAP FC ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 3 0 BBX 1 2 1 0 BITMAP 80 80 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 6 0 BBX 7 11 0 -1 BITMAP 02 02 04 08 08 10 20 20 40 80 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 38 44 44 44 84 88 88 88 70 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 8 0 BBX 3 9 3 0 BITMAP 20 E0 20 20 60 40 40 40 40 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 38 44 04 04 08 30 40 80 F8 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 38 44 04 08 70 08 08 88 70 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 18 28 28 48 88 FC 10 10 10 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 3C 20 40 40 70 08 08 90 60 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 18 24 40 40 70 88 88 88 70 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 7C 04 08 10 20 40 40 80 80 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 38 44 44 28 50 88 88 90 60 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 38 44 44 44 38 08 08 90 60 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 3 0 BBX 2 7 1 0 BITMAP 40 40 00 00 00 80 80 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 0 -1 BITMAP 20 20 00 00 00 40 40 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 0 0 BITMAP 06 18 60 80 40 30 0C ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 8 0 BBX 7 3 1 3 BITMAP 7E 00 FC ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 60 18 04 02 0C 30 C0 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 30 48 08 30 40 40 00 80 80 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 11 0 BBX 8 9 2 0 BITMAP 1E 21 47 89 92 92 8D 40 3C ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 04 0C 14 24 44 7C 84 84 84 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 78 44 44 48 F8 84 84 88 F0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 0C 32 40 40 80 80 80 C4 78 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 7C 46 42 42 C2 84 84 88 F0 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 7C 40 40 40 F0 80 80 80 F8 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 1 0 BITMAP 7C 40 40 40 F0 80 80 80 80 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 0C 32 40 40 80 84 84 C4 7C ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 42 42 42 42 FE 84 84 84 84 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 4 0 BBX 2 9 1 0 BITMAP 40 40 40 40 C0 80 80 80 80 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 5 0 BBX 4 11 0 -2 BITMAP 10 10 10 10 30 20 20 20 20 60 C0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 42 44 48 50 E0 90 88 8C 86 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 40 40 40 40 C0 80 80 80 F8 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 11 0 BBX 9 9 1 0 BITMAP 7380 5280 5280 5480 5480 8900 8900 8100 8100 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 62 62 52 52 54 94 8C 8C 84 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 10 0 BBX 8 9 1 0 BITMAP 0E 33 41 41 81 82 82 CC 70 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 78 44 44 44 88 F0 80 80 80 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 -2 BITMAP 0E 33 41 41 81 82 82 CC 70 0C 03 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 78 44 44 48 F0 90 90 88 8C ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 38 44 40 60 30 18 08 88 70 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP FE 10 10 10 30 20 20 20 20 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 42 42 42 42 C4 84 84 C8 70 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 2 0 BITMAP 84 84 84 88 88 90 A0 C0 80 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 11 0 BBX 9 9 2 0 BITMAP 8080 8880 8880 9900 9900 AA00 AA00 CC00 8800 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 61 21 12 14 18 28 48 84 86 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 84 84 88 88 90 60 40 40 40 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 7 0 BBX 8 9 0 0 BITMAP 3F 02 04 08 10 20 40 80 FC ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 4 0 BBX 5 11 0 -1 BITMAP 38 20 20 20 40 40 40 40 80 80 E0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 6 0 BBX 4 11 1 -1 BITMAP 80 80 80 40 40 20 20 20 10 10 10 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 4 0 BBX 5 11 -1 -1 BITMAP 38 08 08 10 10 10 10 20 20 20 E0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 8 0 BBX 5 6 2 2 BITMAP 08 18 28 48 88 88 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 8 0 BBX 6 1 1 -1 BITMAP FC ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 1 7 BITMAP 40 80 80 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP 3C 44 44 84 88 98 68 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 20 20 20 58 64 44 84 88 88 F0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 30 48 80 80 80 80 70 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 02 02 02 3C 44 44 84 88 98 68 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 30 48 88 F0 80 80 70 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 5 0 BBX 6 12 0 -2 BITMAP 0C 10 10 7C 20 20 20 40 40 40 80 80 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 -2 BITMAP 3C 44 44 88 98 68 08 10 E0 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 20 20 20 5C 64 44 44 88 88 88 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 1 0 BITMAP 20 20 00 40 40 40 40 80 80 80 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 4 0 BBX 5 12 -1 -2 BITMAP 08 08 00 10 10 10 10 10 20 20 20 C0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 20 20 20 44 48 50 60 90 88 84 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 1 0 BITMAP 20 20 20 40 40 40 40 80 80 80 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 12 0 BBX 10 7 1 0 BITMAP 5DC0 6640 4440 4440 8880 8880 8880 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP 5C 64 44 44 88 88 88 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 30 48 88 88 88 90 60 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 0 -2 BITMAP 2C 32 22 42 44 44 78 80 80 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 -2 BITMAP 3C 44 44 84 88 98 68 10 10 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 58 60 40 C0 80 80 80 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 38 44 60 30 18 88 70 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 5 0 BBX 4 9 1 0 BITMAP 20 20 F0 40 40 80 80 80 E0 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP 44 44 44 88 88 98 68 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 88 88 88 90 A0 C0 80 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 1 0 BITMAP 81 91 91 92 AA CC 88 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 44 44 28 30 50 88 88 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 6 0 BBX 7 9 -1 -2 BITMAP 22 22 22 24 28 30 20 40 80 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 7C 08 10 30 20 40 F8 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 0 -1 BITMAP 10 20 40 40 20 C0 20 40 80 80 40 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 3 0 BBX 3 11 0 -1 BITMAP 20 20 20 20 40 40 40 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 0 -1 BITMAP 20 10 10 20 40 30 40 20 20 40 80 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 8 0 BBX 7 2 1 3 BITMAP 72 9C ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 3 0 BBX 3 9 0 -2 BITMAP 20 20 00 40 40 40 80 80 80 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 10 38 54 90 90 A0 A0 78 20 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 18 24 20 20 F0 40 40 40 F8 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 1 BITMAP 82 7C 44 44 44 7C 82 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 42 42 44 48 FC 20 F8 20 20 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 3 0 BBX 3 11 0 -1 BITMAP 20 20 20 20 00 00 00 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 -1 BITMAP 18 24 20 50 48 48 28 10 90 60 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 3 8 BITMAP 90 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 11 0 BBX 9 9 1 0 BITMAP 1C00 6300 4D00 9080 9080 9080 4D00 6300 1C00 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 4 BITMAP 30 50 90 B0 D0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 7 0 BBX 7 5 0 1 BITMAP 12 6C 90 48 24 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 8 0 BBX 6 3 1 2 BITMAP FC 04 04 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 4 0 BBX 3 1 1 4 BITMAP E0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 2 BITMAP 38 44 BA B2 AA 44 38 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 7 0 BBX 3 1 3 8 BITMAP E0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 4 0 BBX 4 3 0 6 BITMAP 60 90 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 1 BITMAP 08 08 7E 10 10 00 FC ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 4 BITMAP 70 08 30 40 F0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 4 BITMAP 70 08 30 10 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 3 8 BITMAP 40 80 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 0 -2 BITMAP 22 22 22 44 44 4C B4 80 80 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 -1 BITMAP 7C F4 F4 68 28 28 28 50 50 50 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 8 0 BBX 2 2 3 3 BITMAP C0 C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 7 0 BBX 3 2 1 -2 BITMAP 20 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 4 BITMAP 20 E0 20 40 40 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 4 BITMAP 60 90 90 90 60 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 7 0 BBX 7 5 0 1 BITMAP 48 24 12 6C 90 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 1 0 BITMAP C200 4200 4400 8800 9980 1280 2480 47C0 4100 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 1 0 BITMAP C200 4400 4400 8800 9380 1040 2180 4200 4780 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 11 0 BBX 11 9 0 0 BITMAP 6100 1100 6200 1400 ECC0 0940 1240 23E0 2080 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 0 -2 BITMAP 08 08 00 10 10 60 80 90 60 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 0 BITMAP 08 04 00 0C 14 24 44 7C 84 84 84 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 0 BITMAP 04 08 00 0C 14 24 44 7C 84 84 84 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 0 BITMAP 08 14 00 0C 14 24 44 7C 84 84 84 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 1 0 BITMAP 1A 2C 00 0C 14 24 44 7C 84 84 84 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 12 00 0C 14 24 44 7C 84 84 84 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 0 BITMAP 08 14 08 0C 14 24 44 7C 84 84 84 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 1 0 BITMAP 07C0 0C00 1400 2400 4780 7800 8800 8800 8F80 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 1 -2 BITMAP 0C 32 40 40 80 80 80 C4 78 20 C0 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 10 08 00 7C 40 40 F0 80 80 80 F8 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 08 10 00 7C 40 40 F0 80 80 80 F8 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 10 28 00 7C 40 40 F0 80 80 80 F8 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 24 00 7C 40 40 F0 80 80 80 F8 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 4 0 BBX 2 11 1 0 BITMAP 80 40 00 40 40 40 C0 80 80 80 80 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 4 0 BBX 3 11 1 0 BITMAP 20 40 00 40 40 40 C0 80 80 80 80 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 4 0 BBX 3 11 1 0 BITMAP 40 A0 00 40 40 40 C0 80 80 80 80 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 1 0 BITMAP A0 00 40 40 40 C0 80 80 80 80 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 0 0 BITMAP 3E 23 21 21 F9 42 42 44 78 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 1A 2C 00 62 62 52 54 94 8C 8C 84 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 08 04 00 0E 33 41 41 82 82 CC 70 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 02 04 00 0E 33 41 41 82 82 CC 70 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 04 0A 00 0E 33 41 41 82 82 CC 70 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 0D 16 00 0E 33 41 41 82 82 CC 70 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 12 00 0E 33 41 41 82 82 CC 70 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 8 0 BBX 5 5 2 2 BITMAP 48 50 20 50 90 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 10 0 BBX 10 11 0 -1 BITMAP 0040 0740 1980 2280 2480 4080 4900 5100 6600 B800 8000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 10 08 00 42 42 42 C4 84 84 C8 70 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 04 08 00 42 42 42 C4 84 84 C8 70 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 08 14 00 42 42 42 C4 84 84 C8 70 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 24 00 42 42 42 C4 84 84 C8 70 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 10 20 00 84 88 88 90 60 40 40 40 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 40 40 78 44 84 88 F0 80 80 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 -1 BITMAP 18 24 24 48 50 48 44 84 84 98 80 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 20 10 00 3C 44 44 84 88 98 68 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 08 10 00 3C 44 44 84 88 98 68 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 08 14 00 3C 44 44 84 88 98 68 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 34 58 00 3C 44 44 84 88 98 68 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 24 00 3C 44 44 84 88 98 68 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 08 14 08 3C 44 44 84 88 98 68 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 11 0 BBX 9 7 1 0 BITMAP 3300 4C80 0880 7F00 8800 9800 6700 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 -2 BITMAP 30 48 80 80 80 80 70 20 C0 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 6 0 BBX 5 10 1 0 BITMAP 20 10 00 30 48 88 F0 80 80 70 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 6 0 BBX 5 10 1 0 BITMAP 10 20 00 30 48 88 F0 80 80 70 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 6 0 BBX 5 10 1 0 BITMAP 20 50 00 30 48 88 F0 80 80 70 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 48 00 30 48 88 F0 80 80 70 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 4 0 BBX 2 10 1 0 BITMAP 80 40 00 40 40 40 40 80 80 80 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 1 0 BITMAP 20 40 00 40 40 40 40 80 80 80 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 1 0 BITMAP 40 A0 00 40 40 40 40 80 80 80 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 4 0 BBX 3 9 1 0 BITMAP A0 00 40 40 40 40 80 80 80 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 10 3C 08 38 48 88 88 88 90 60 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 34 58 00 5C 64 44 44 88 88 88 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP 20 10 00 30 48 88 88 88 90 60 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP 10 20 00 30 48 88 88 88 90 60 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP 20 50 00 30 48 88 88 88 90 60 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 34 58 00 30 48 88 88 88 90 60 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 48 00 30 48 88 88 88 90 60 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 1 BITMAP 10 10 00 FC 00 20 20 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 0 BITMAP 1A 24 4C 54 64 48 B0 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 10 08 00 44 44 44 88 88 98 68 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 08 10 00 44 44 44 88 88 98 68 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 10 28 00 44 44 44 88 88 98 68 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 24 00 44 44 44 88 88 98 68 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 6 0 BBX 7 12 -1 -2 BITMAP 04 08 00 22 22 22 24 28 30 20 40 80 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 0 -2 BITMAP 20 20 2C 32 42 42 44 44 78 80 80 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 6 0 BBX 7 11 -1 -2 BITMAP 12 00 22 22 22 24 28 30 20 40 80 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 0 -2 BITMAP 0F 11 11 7A 22 22 22 44 44 44 80 80 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 1 1 4 BITMAP F8 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 -1 BITMAP 10 10 10 FC 20 20 20 40 40 40 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 8 11 0 0 BITMAP 14 08 00 3F 02 04 08 10 20 40 FC ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 7 1 0 BITMAP 3300 4C80 8880 8F00 8800 9800 6700 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 48 00 84 88 88 90 60 40 40 40 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 2 7 1 0 BITMAP 40 40 40 40 80 80 80 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 10 0 0 BITMAP 10 10 10 20 38 E0 20 40 40 40 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 10 10 10 1C F0 20 20 20 3E ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 -1 BITMAP 08 08 08 7E 10 10 FC 20 20 20 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 0 -2 BITMAP 0D 11 10 7E 22 22 26 44 44 44 80 80 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 0 1 BITMAP 40 20 10 60 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 9 1 0 BITMAP 0FE0 3200 4200 4200 87C0 8400 8400 C400 7FC0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 12 1 1 4 BITMAP FFF0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 2 3 8 BITMAP A0 40 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 2 2 -2 BITMAP 80 60 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 2 2 8 BITMAP 48 90 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 0 1 BITMAP 10 60 80 40 20 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 1 2 4 8 BITMAP 80 80 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 2 8 BITMAP 90 60 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 3 3 3 3 BITMAP E0 E0 E0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 2 2 8 BITMAP 68 B0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 2 3 8 BITMAP 40 A0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 3 1 7 BITMAP 50 A0 A0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 1 3 1 7 BITMAP 80 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 10 0 0 BITMAP 28 10 00 38 44 60 30 18 88 70 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 3 3 7 BITMAP 40 A0 40 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 0 -1 BITMAP 40 40 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 -1 BITMAP 18 24 20 20 F8 40 40 40 80 80 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 4 1 5 BITMAP FB 55 55 51 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 7 9 -2 0 BITMAP 02 04 08 08 10 20 20 40 80 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 3 8 BITMAP 80 40 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 13 9 0 0 BITMAP 6100 9200 9400 6400 0800 1330 14C8 24C8 4330 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 2 2 0 BITMAP 88 88 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 3 1 7 BITMAP 50 50 A0 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 28 10 00 38 44 40 30 18 08 88 70 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 3 0 -1 BITMAP 50 50 A0 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 28 10 00 7C 08 10 30 20 40 F8 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/luIS14.bdf100644 1750 1750 63132 5413747467 15002 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. COMMENT GRID 0014 0014 0200 0200 FONT -B&H-Lucida-Medium-I-Normal-Sans-14-140-75-75-P-82-ISO8859-1 SIZE 14 72 72 FONTBOUNDINGBOX 16 15 -1 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Medium" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 14 POINT_SIZE 140 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 82 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 13 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 4 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 4 0 BBX 2 10 1 0 BITMAP 40 40 40 40 80 80 80 00 80 80 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 5 0 BBX 3 4 1 7 BITMAP A0 A0 A0 A0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 12 12 12 7F 24 24 FE 48 48 48 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 1 -1 BITMAP 08 3C 4A 48 48 30 18 24 24 A4 78 20 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 6080 9100 9200 6400 0800 0800 1300 2480 4480 8300 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 0 BITMAP 1E00 2100 2100 1600 2880 4880 8500 8200 8600 7900 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 3 0 BBX 3 4 1 7 BITMAP 20 20 40 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 5 0 BBX 5 12 1 -1 BITMAP 18 20 40 40 80 80 80 80 80 80 40 30 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 5 0 BBX 5 12 -1 -1 BITMAP 60 10 08 08 08 08 08 08 10 10 20 C0 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 4 BITMAP 10 54 28 50 A8 20 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 1 BITMAP 08 08 10 FE 10 20 20 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 3 0 BBX 3 4 -1 -2 BITMAP 20 20 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 9 0 BBX 7 1 1 4 BITMAP FE ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 3 0 BBX 1 2 1 0 BITMAP 80 80 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 7 0 BBX 8 12 0 -1 BITMAP 01 02 02 04 08 08 10 10 20 40 40 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 1C 22 42 42 42 84 84 84 88 70 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 9 0 BBX 3 10 3 0 BITMAP 20 E0 20 20 20 40 40 40 40 40 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 3C 42 02 02 04 18 20 40 80 FC ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 3C 42 02 04 38 04 04 04 88 70 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 0C 14 24 44 44 88 FE 08 08 08 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 3E 20 20 40 78 04 04 04 88 70 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 1C 22 40 40 78 84 84 84 88 70 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP FC 04 04 08 10 20 40 40 80 80 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 3C 42 42 44 38 44 84 84 84 78 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 1C 22 42 42 42 3C 04 04 88 70 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 3 0 BBX 2 7 1 0 BITMAP 40 40 00 00 00 80 80 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 3 0 BBX 4 9 -1 -2 BITMAP 10 10 00 00 00 20 20 40 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 1 BITMAP 06 18 60 80 40 20 10 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 9 0 BBX 7 3 1 3 BITMAP 7E 00 FC ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 1 BITMAP 10 08 04 02 0C 30 C0 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 2 0 BITMAP 70 88 08 08 30 40 80 00 80 80 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP 0F00 3080 4040 43C0 8440 8880 8980 8EC0 4000 3F00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 10 0 BBX 7 10 1 0 BITMAP 06 0A 12 12 22 22 7E 42 82 82 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 7C 42 42 44 7C 82 82 82 84 F8 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 0 BITMAP 0F00 3080 4000 4000 8000 8000 8000 8000 8200 7C00 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 7E00 4100 4080 4080 4080 8080 8100 8100 8200 FC00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 7E 40 40 40 7C 80 80 80 80 FC ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 7E 40 40 40 7C 80 80 80 80 80 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 0 BITMAP 0F00 3080 4000 4000 8000 8100 8100 8200 8200 7E00 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 41 41 41 41 7F 82 82 82 82 82 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 4 0 BBX 2 10 1 0 BITMAP 40 40 40 40 40 80 80 80 80 80 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 6 0 BBX 5 12 0 -2 BITMAP 08 08 08 08 08 10 10 10 10 20 20 C0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 41 42 44 48 70 90 88 84 82 83 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 40 40 40 40 40 80 80 80 80 FC ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 13 0 BBX 11 10 1 0 BITMAP 38E0 28A0 2920 4920 4620 4440 4440 8440 8040 8040 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 6080 5080 5080 4880 4880 8900 8900 8500 8500 8300 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 0F00 3080 4080 4080 8080 8080 8100 8100 8600 7800 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 7C 42 42 42 44 F8 80 80 80 80 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 -2 BITMAP 0F00 3080 4080 4080 8080 8080 8100 8100 8600 7800 0400 0300 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 7C 42 42 42 44 F8 88 84 84 86 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 3C 42 40 20 10 08 04 04 84 78 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP FF 10 10 10 10 20 20 20 20 20 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 41 41 41 41 82 82 82 82 44 38 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 2 0 BITMAP 81 81 82 82 84 48 48 50 60 60 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 13 0 BBX 12 10 1 0 BITMAP 8010 8010 8410 8420 8A20 4A40 5280 5280 6300 6300 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 41 41 22 24 18 18 24 44 82 82 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 2 0 BITMAP 82 82 84 88 90 60 40 40 40 40 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 3F 01 02 04 08 10 20 40 80 FE ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 5 0 BBX 5 12 1 -1 BITMAP 38 20 20 20 40 40 40 40 80 80 80 E0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 7 0 BBX 3 12 2 -1 BITMAP 80 80 80 80 40 40 40 40 20 20 20 20 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 5 0 BBX 5 12 -1 -1 BITMAP 38 08 08 08 10 10 10 10 20 20 20 E0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 9 0 BBX 6 7 2 3 BITMAP 0C 14 24 24 44 84 84 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 10 0 BBX 8 1 1 -1 BITMAP FF ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 3 0 BBX 3 4 1 7 BITMAP 20 40 80 80 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP 1E 22 42 42 84 8C 94 64 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 20 20 20 4C 52 62 42 84 84 88 F0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 1C 20 40 40 80 80 88 70 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 01 01 01 1E 22 42 42 84 8C 94 64 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 18 24 44 48 F0 80 88 70 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 6 0 BBX 6 13 1 -2 BITMAP 1C 20 20 F8 40 40 40 40 40 80 80 80 80 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 -2 BITMAP 0F 11 21 21 46 4A 32 02 84 78 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 20 20 20 4C 52 62 42 84 84 84 84 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 4 0 BBX 3 11 1 0 BITMAP 20 40 00 40 40 40 40 80 80 80 80 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 5 0 BBX 5 13 0 -2 BITMAP 08 10 00 10 10 10 10 20 20 20 20 20 C0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 1 0 BITMAP 20 20 20 22 44 48 70 90 88 84 86 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 5 0 BBX 3 11 1 0 BITMAP 20 20 20 40 40 40 40 80 80 80 80 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 14 0 BBX 12 8 1 0 BITMAP 4C60 5290 6310 4210 8420 8420 8420 8420 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP 4C 52 62 42 84 84 84 84 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP 1C 22 42 82 82 84 88 70 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 -2 BITMAP 26 29 31 21 42 42 44 78 80 80 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 -2 BITMAP 1E 22 42 42 84 8C 94 64 08 08 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 4C 48 50 60 80 80 80 80 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 3C 40 40 30 08 08 08 F0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 6 0 BBX 5 10 1 0 BITMAP 20 20 F8 40 40 40 80 80 80 70 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP 42 42 42 42 84 8C 94 64 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 84 84 84 88 88 90 A0 C0 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 11 0 BBX 10 8 1 0 BITMAP 8040 8840 8840 8880 9480 9480 A500 C600 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 0 0 BITMAP 21 21 22 14 28 44 84 84 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 7 0 BBX 8 10 -1 -2 BITMAP 21 21 21 22 22 24 28 30 20 C0 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 7E 04 08 10 20 40 80 FC ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 5 0 BBX 6 12 0 -1 BITMAP 0C 10 20 20 20 10 60 30 40 80 80 60 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 4 0 BBX 3 12 1 -1 BITMAP 20 20 20 20 40 40 40 40 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 5 0 BBX 6 12 -1 -1 BITMAP 18 04 04 08 10 20 18 20 10 10 20 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 9 0 BBX 7 3 1 3 BITMAP 32 54 98 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 4 0 BBX 2 10 1 -2 BITMAP 40 40 00 40 40 40 80 80 80 80 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 1 -1 BITMAP 04 04 1C 2A 48 88 90 90 94 78 20 20 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 0E 11 10 10 7C 20 20 20 40 FE ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 0 0 BITMAP 4080 2100 1E00 1200 2200 2400 3C00 4200 8100 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 41 41 42 44 48 FC 20 F8 20 20 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 4 0 BBX 3 12 1 -1 BITMAP 20 20 20 20 20 00 00 80 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 -1 BITMAP 1E 21 20 38 44 42 22 1C 04 84 78 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 9 0 BBX 4 2 4 9 BITMAP 90 90 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP 1E00 6180 4C80 9240 9040 9040 9240 4C80 6180 1E00 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 4 BITMAP 38 48 88 98 A8 C8 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 8 0 BBX 8 5 0 2 BITMAP 11 66 88 44 22 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 9 0 BBX 7 4 1 1 BITMAP FE 02 02 02 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 1 4 BITMAP E0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 1 2 BITMAP 3C 42 99 95 99 95 42 3C ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 9 0 BBX 4 1 4 9 BITMAP F0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 4 0 BBX 4 3 1 7 BITMAP 60 90 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 1 BITMAP 08 08 7E 10 10 00 FC ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 4 BITMAP 60 10 10 60 80 F0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 4 BITMAP 70 08 30 10 10 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 9 0 BBX 4 2 4 9 BITMAP 30 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 -2 BITMAP 21 21 21 21 42 46 4A 72 80 80 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 9 0 BBX 6 11 2 -1 BITMAP 7C 94 94 94 68 28 28 28 50 50 50 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 9 0 BBX 2 2 4 3 BITMAP C0 C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 9 0 BBX 3 2 2 -2 BITMAP 20 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 6 0 BBX 3 6 1 4 BITMAP 20 E0 20 40 40 40 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 4 BITMAP 38 44 84 84 88 70 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 8 0 BBX 8 5 0 2 BITMAP 44 22 11 66 88 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP 4400 C400 4800 8800 9180 9280 2480 27C0 4100 4100 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP 4400 C400 4800 8800 9180 9240 2080 2300 4400 4780 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 0 0 BITMAP 7100 0900 7200 1200 14C0 E540 0A40 0BE0 1080 1080 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 0 -2 BITMAP 08 08 00 08 10 60 80 80 88 70 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 0C 03 00 06 0A 12 12 22 22 7E 42 82 82 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 0 BITMAP 0180 0600 0000 0600 0A00 1200 1200 2200 2200 7E00 4200 8200 8200 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 06 09 00 06 0A 12 12 22 22 7E 42 82 82 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 0 BITMAP 0680 0B00 0000 0600 0A00 1200 1200 2200 2200 7E00 4200 8200 8200 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 09 09 00 06 0A 12 12 22 22 7E 42 82 82 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 06 09 06 06 0A 12 12 22 22 7E 42 82 82 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 13 0 BBX 13 10 1 0 BITMAP 03F8 0500 0900 1100 11F0 2200 7E00 4200 8200 83F0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 -2 BITMAP 0F00 3080 4000 4000 8000 8000 8000 8000 8200 7C00 1000 6000 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 1 0 BITMAP 30 0C 00 7E 40 40 40 7C 80 80 80 80 FC ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 1 0 BITMAP 06 18 00 7E 40 40 40 7C 80 80 80 80 FC ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 1 0 BITMAP 18 24 00 7E 40 40 40 7C 80 80 80 80 FC ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 1 0 BITMAP 24 24 00 7E 40 40 40 7C 80 80 80 80 FC ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 4 0 BBX 4 13 0 0 BITMAP C0 30 00 20 20 20 20 20 40 40 40 40 40 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 4 0 BBX 4 13 0 0 BITMAP 30 C0 00 20 20 20 20 20 40 40 40 40 40 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 4 0 BBX 3 13 1 0 BITMAP 40 A0 00 40 40 40 40 40 80 80 80 80 80 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 4 0 BBX 3 13 1 0 BITMAP A0 A0 00 40 40 40 40 40 80 80 80 80 80 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 0 0 BITMAP 3F00 2080 2040 2040 F840 4040 4080 4080 4100 7E00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 0D00 1600 0000 6080 5080 5080 4880 4880 8900 8900 8500 8500 8300 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 1800 0600 0000 0F00 3080 4080 4080 8080 8080 8100 8100 8600 7800 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 0300 0C00 0000 0F00 3080 4080 4080 8080 8080 8100 8100 8600 7800 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 0600 0900 0000 0F00 3080 4080 4080 8080 8080 8100 8100 8600 7800 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 0D00 1600 0000 0F00 3080 4080 4080 8080 8080 8100 8100 8600 7800 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 0900 0900 0000 0F00 3080 4080 4080 8080 8080 8100 8100 8600 7800 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 1 BITMAP 22 24 18 10 30 48 88 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 11 0 BBX 11 12 0 -1 BITMAP 0020 07A0 18C0 2140 2240 4440 4440 4880 5080 6300 BC00 8000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 30 0C 00 41 41 41 41 82 82 82 82 44 38 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 06 18 00 41 41 41 41 82 82 82 82 44 38 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 0C 12 00 41 41 41 41 82 82 82 82 44 38 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 12 12 00 41 41 41 41 82 82 82 82 44 38 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 2 0 BITMAP 0C 30 00 82 82 84 88 90 60 40 40 40 40 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 40 40 7C 42 42 82 8C F0 80 80 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 -1 BITMAP 0E 11 21 22 24 42 41 41 41 82 9C 80 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 30 0C 00 1E 22 42 42 84 8C 94 64 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 06 18 00 1E 22 42 42 84 8C 94 64 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 0C 12 00 1E 22 42 42 84 8C 94 64 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 1A 2C 00 1E 22 42 42 84 8C 94 64 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 12 12 00 1E 22 42 42 84 8C 94 64 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 0C 12 0C 1E 22 42 42 84 8C 94 64 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 12 0 BBX 11 8 1 0 BITMAP 39C0 4620 0420 3CC0 4700 8400 9C40 6380 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 -2 BITMAP 1C 20 40 40 80 80 88 70 20 C0 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 30 0C 00 18 24 44 48 F0 80 88 70 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 0C 30 00 18 24 44 48 F0 80 88 70 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 18 24 00 18 24 44 48 F0 80 88 70 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 24 24 00 18 24 44 48 F0 80 88 70 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 0 0 BITMAP C0 30 00 20 20 20 20 40 40 40 40 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 0 0 BITMAP 30 C0 00 20 20 20 20 40 40 40 40 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 4 0 BBX 3 11 1 0 BITMAP 40 A0 00 40 40 40 40 80 80 80 80 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 4 0 BBX 3 11 1 0 BITMAP A0 A0 00 40 40 40 40 80 80 80 80 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 18 07 1C 04 1E 22 42 82 84 88 70 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 1A 2C 00 4C 52 62 42 84 84 84 84 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 30 0C 00 1C 22 42 82 82 84 88 70 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 06 18 00 1C 22 42 82 82 84 88 70 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 0C 12 00 1C 22 42 82 82 84 88 70 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 1A 2C 00 1C 22 42 82 82 84 88 70 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 12 12 00 1C 22 42 82 82 84 88 70 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 1 BITMAP 08 08 00 FE 00 20 20 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 -1 BITMAP 0080 0E80 1300 2500 4900 4900 5200 6400 B800 8000 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 30 0C 00 42 42 42 42 84 8C 94 64 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 06 18 00 42 42 42 42 84 8C 94 64 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 18 24 00 42 42 42 42 84 8C 94 64 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 24 24 00 42 42 42 42 84 8C 94 64 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 7 0 BBX 8 13 -1 -2 BITMAP 03 0C 00 21 21 21 22 22 24 28 30 20 C0 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 0 -2 BITMAP 20 20 26 29 31 41 42 42 44 78 80 80 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 7 0 BBX 8 13 -1 -2 BITMAP 12 12 00 21 21 21 22 22 24 28 30 20 C0 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 -2 BITMAP 1F 21 21 FA 42 42 42 44 44 84 84 80 80 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 1 4 BITMAP FC ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 6 11 2 -1 BITMAP 10 10 10 FC 20 20 20 40 40 40 40 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 13 0 0 BITMAP 09 06 00 3F 01 02 04 08 10 20 40 80 FE ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 8 1 0 BITMAP 1DC0 2220 4220 84C0 8700 8400 8C40 7380 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 2 0 BITMAP 24 24 00 82 82 84 88 90 60 40 40 40 40 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 2 8 1 0 BITMAP 40 40 40 40 80 80 80 80 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 11 0 0 BITMAP 10 10 10 20 38 E0 20 40 40 40 40 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 10 10 10 10 1E F0 20 20 20 3F ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 -1 BITMAP 08 08 08 7E 10 10 10 FC 20 20 20 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 -2 BITMAP 1D 22 20 FE 42 42 42 44 44 84 84 80 80 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 2 BITMAP 40 20 10 60 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 13 10 1 0 BITMAP 0FF8 3100 4100 4100 81F0 8200 8200 8200 8600 7BF0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 14 1 1 4 BITMAP FFFC ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 4 2 4 9 BITMAP 90 60 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 3 2 4 -2 BITMAP 80 60 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 2 3 9 BITMAP 48 90 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 2 BITMAP 10 60 80 40 20 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 1 2 5 9 BITMAP 80 80 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 2 3 9 BITMAP 88 70 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 3 3 3 3 BITMAP E0 E0 E0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 2 3 9 BITMAP 68 B0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 4 2 4 9 BITMAP 60 90 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 6 4 0 7 BITMAP 24 48 90 90 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 1 4 1 7 BITMAP 80 80 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 24 18 00 3C 40 40 30 08 08 08 F0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 4 3 4 8 BITMAP 60 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 4 0 -2 BITMAP 20 20 40 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 -1 BITMAP 1C 22 20 20 F8 40 40 40 80 80 80 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 4 2 6 BITMAP ED80 4A80 9500 9500 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 6 10 -1 0 BITMAP 04 04 08 10 10 20 20 40 80 80 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 4 2 4 9 BITMAP C0 30 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 13 10 1 0 BITMAP 6080 9100 9200 6400 0800 0800 1330 24C8 44C8 8330 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 2 2 0 BITMAP 88 88 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 6 4 0 7 BITMAP 24 24 48 90 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 1 0 BITMAP 24 18 00 3C 42 40 20 10 08 04 04 84 78 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 6 4 -1 -2 BITMAP 24 24 48 90 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 11 0 0 BITMAP 24 18 00 7E 04 08 10 20 40 80 FC ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/luIS18.bdf100644 1750 1750 74611 5413747470 15004 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. COMMENT GRID 0018 0018 0200 0200 FONT -B&H-Lucida-Medium-I-Normal-Sans-18-180-75-75-P-105-ISO8859-1 SIZE 18 72 72 FONTBOUNDINGBOX 24 19 -3 -3 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Medium" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 18 POINT_SIZE 180 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 105 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 16 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 4 0 BBX 4 13 1 0 BITMAP 30 30 30 30 60 60 60 40 40 00 00 C0 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 7 0 BBX 5 4 2 10 BITMAP D8 D8 90 90 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 1 0 BITMAP 0660 0660 0CC0 7FE0 1980 1980 3300 3300 FFC0 6600 6600 CC00 CC00 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 1 -1 BITMAP 0100 0F80 1140 3100 3200 3A00 1E00 0F00 0B80 0980 0980 1180 D300 7E00 1000 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 1 0 BITMAP 3818 4C30 CC60 CCC0 CD80 C900 7270 0498 0D98 1998 3198 6190 C0E0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 1 0 BITMAP 0780 18C0 18C0 1980 0E00 1C00 6660 4660 C340 C380 C180 E2C0 7CC0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 2 10 BITMAP 60 60 40 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 6 0 BBX 5 16 2 -2 BITMAP 08 10 30 20 60 60 C0 C0 C0 C0 C0 C0 C0 C0 40 20 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 6 0 BBX 5 16 0 -2 BITMAP 20 10 18 18 18 18 18 18 18 18 30 30 20 60 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 9 0 BBX 6 7 2 6 BITMAP 10 10 94 CC 30 50 D8 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 12 0 BBX 9 9 2 1 BITMAP 0400 0400 0800 0800 FF80 0800 0800 1000 1000 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 0 -2 BITMAP 60 60 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 12 0 BBX 9 1 2 5 BITMAP FF80 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 4 0 BBX 2 2 1 0 BITMAP C0 C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 9 0 BBX 11 16 -1 -2 BITMAP 0060 00C0 00C0 0180 0380 0300 0600 0600 0C00 0C00 1800 3800 3000 6000 6000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 2 0 BITMAP 0700 1980 30C0 60C0 60C0 C0C0 C0C0 C0C0 C180 C180 C300 6600 3800 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 12 0 BBX 4 13 5 0 BITMAP 30 F0 30 30 30 60 60 60 60 C0 C0 C0 C0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 2 0 BITMAP 1F80 31C0 00C0 00C0 00C0 0180 0300 0E00 1800 3000 6000 FF80 FF80 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 2 0 BITMAP 1F80 31C0 00C0 00C0 0180 0300 1E00 0300 0180 0180 0180 C300 7E00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 12 0 BBX 9 13 2 0 BITMAP 0180 0380 0580 0980 1180 2300 4300 FF80 FF80 0600 0600 0600 0600 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 2 0 BITMAP 1FC0 1FC0 1000 2000 2000 3C00 0600 0300 0300 0300 0300 C600 7C00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 2 0 BITMAP 0780 18C0 3000 6000 6000 CE00 D300 E180 C180 C180 C300 6300 3C00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 3 0 BITMAP 7FC0 7FC0 0180 0300 0600 0C00 1800 3000 6000 6000 C000 C000 C000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 2 0 BITMAP 0780 19C0 30C0 30C0 3980 1E00 0F00 3300 6180 C180 C180 E300 7C00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 12 0 BBX 9 13 3 0 BITMAP 1E00 6300 6180 C180 C180 C380 6580 3980 0300 0300 0600 CC00 7000 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 0 0 BITMAP 30 30 00 00 00 00 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 4 0 BBX 5 12 -1 -2 BITMAP 18 18 00 00 00 00 00 00 60 60 40 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 12 0 BBX 9 9 2 1 BITMAP 0080 0300 0C00 3000 C000 6000 3000 0C00 0200 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 12 0 BBX 10 5 1 3 BITMAP 7FC0 0000 0000 0000 FF80 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 12 0 BBX 9 9 2 1 BITMAP 2000 1800 0600 0300 0180 0600 1800 6000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 2 0 BITMAP 7C CE 06 06 0C 18 30 60 40 00 00 C0 C0 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 16 0 BBX 14 13 2 0 BITMAP 07E0 1C38 3008 63EC 4C64 CC64 98C4 99C4 DEC8 4CF0 6000 3800 0F80 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 0300 0300 0500 0D80 0980 1980 1180 3180 3FC0 60C0 60C0 C0C0 C0C0 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 3F80 31C0 30C0 30C0 6180 6300 7E00 6300 6180 C180 C180 C300 FC00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 1 0 BITMAP 07E0 1830 3000 6000 6000 C000 C000 C000 C000 C000 6000 7040 1F80 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 2 0 BITMAP 3F80 30E0 3060 3030 6030 6030 6030 6030 6060 C060 C0C0 C180 FE00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 2 0 BITMAP 3F80 3000 3000 3000 6000 6000 7E00 6000 6000 C000 C000 C000 FE00 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 2 0 BITMAP 3F80 3000 3000 3000 6000 6000 7E00 6000 6000 C000 C000 C000 C000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 1 0 BITMAP 07E0 1830 3000 6000 6000 C000 C000 C060 C060 C060 60C0 70C0 1FC0 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 2 0 BITMAP 3030 3030 3030 3030 6060 6060 7FE0 6060 6060 C0C0 C0C0 C0C0 C0C0 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 6 0 BBX 4 13 1 0 BITMAP 30 30 30 30 60 60 60 60 60 C0 C0 C0 C0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 8 0 BBX 8 15 -1 -2 BITMAP 03 03 03 03 06 06 06 06 06 0C 0C 0C 08 18 F0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 2 0 BITMAP 30C0 30C0 3180 3300 6600 6C00 7800 6C00 6600 C600 C300 C180 C180 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 2 0 BITMAP 30 30 30 30 60 60 60 60 60 C0 C0 C0 FF ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 16 0 BBX 14 13 2 0 BITMAP 381C 381C 282C 2C2C 2C4C 4C98 4C98 4D18 4718 8630 8630 8030 8030 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 14 0 BBX 11 13 2 0 BITMAP 3820 3820 2C20 2C20 2C60 6640 4640 4340 4340 C380 8180 8180 8180 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 1 0 BITMAP 07C0 1870 3030 6018 6018 C018 C018 C018 C030 C030 6060 70C0 1F00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 3F80 31C0 30C0 30C0 60C0 6180 6300 7C00 6000 C000 C000 C000 C000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 14 0 BBX 13 16 1 -3 BITMAP 07C0 1870 3030 6018 6018 C018 C018 C018 C030 C030 6060 70C0 1F00 0180 00E0 0038 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 2 0 BITMAP 3F80 31C0 30C0 30C0 6180 6300 7C00 6600 6600 C300 C300 C180 C1C0 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 0 BITMAP 1F00 3980 3000 3000 1800 1C00 0E00 0600 0300 0300 0300 C600 7C00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 1 0 BITMAP FFF0 0600 0600 0600 0C00 0C00 0C00 0C00 0C00 1800 1800 1800 1800 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 1 0 BITMAP 3030 3030 3030 3030 6020 6060 6060 6060 C040 C0C0 C080 6180 3E00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 3 0 BITMAP C0C0 C0C0 C180 C180 C300 C300 C600 C600 CC00 4800 7800 7000 6000 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 16 0 BBX 15 13 2 0 BITMAP C186 C186 C38C C38C C598 CD98 C9B0 D1A0 F1E0 E1C0 C180 C180 8100 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 1 0 BITMAP 3060 3060 18C0 1980 0D00 0E00 0E00 1E00 3300 6300 6180 C180 C180 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 2 0 BITMAP C060 C060 60C0 6180 3300 3600 1C00 1800 1800 3000 3000 3000 3000 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 1 0 BITMAP 3FE0 0060 00E0 01C0 0380 0700 0E00 1C00 3800 7000 E000 C000 FF80 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 6 0 BBX 6 16 1 -2 BITMAP 1C 18 18 18 30 30 30 30 60 60 60 60 C0 C0 C0 E0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 9 0 BBX 7 16 1 -2 BITMAP C0 C0 60 60 60 30 30 30 18 18 18 0C 0C 0C 06 06 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 6 0 BBX 6 16 0 -2 BITMAP 1C 0C 0C 0C 18 18 18 18 30 30 30 30 60 60 60 E0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 12 0 BBX 8 10 2 2 BITMAP 06 0E 1A 12 32 62 63 C3 C3 C3 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 12 0 BBX 10 1 1 -1 BITMAP FFC0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 2 10 BITMAP 20 40 C0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 0FC0 31C0 60C0 6180 C180 C380 C580 CB00 FB00 7300 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 1800 1800 1800 1800 3380 37C0 34C0 68C0 70C0 60C0 6180 C180 E300 FC00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 0E 33 60 60 C0 C0 C0 C0 E4 78 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 1 0 BITMAP 0060 0060 0060 0060 0FC0 31C0 60C0 6180 C180 C380 C580 CB00 FB00 7300 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 0E 33 63 63 C6 F8 C0 C0 E2 7C ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 7 0 BBX 9 17 0 -3 BITMAP 0380 0400 0C00 0C00 3F00 1800 1800 3000 3000 3000 3000 6000 6000 6000 C000 C000 C000 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 -3 BITMAP 07E0 18E0 3060 30C0 60C0 61C0 62C0 6580 7D80 3980 0100 C300 7C00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP 1800 1800 1800 1800 3380 37C0 34C0 68C0 7180 6180 6180 C300 C300 C300 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 6 0 BBX 6 14 1 0 BITMAP 0C 18 00 00 30 30 30 60 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 6 0 BBX 10 17 -3 -3 BITMAP 00C0 0180 0000 0000 0300 0300 0300 0600 0600 0600 0600 0C00 0C00 0C00 0C00 1800 F000 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 10 0 BBX 9 14 1 0 BITMAP 1800 1800 1800 1800 3180 3180 3300 6400 7800 7800 6C00 CE00 C700 C380 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 6 0 BBX 5 14 1 0 BITMAP 18 18 18 18 30 30 30 60 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 18 0 BBX 16 10 1 0 BITMAP 338E 37DF 34D3 68E3 71C6 6186 6186 C30C C30C C30C ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP 3380 37C0 34C0 68C0 7180 6180 6180 C300 C300 C300 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 0F00 3380 6180 6180 C180 C180 C300 C300 E600 7800 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 -3 BITMAP 19C0 1BE0 1A60 3460 3860 3060 30C0 60C0 7180 7E00 C000 C000 C000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 -3 BITMAP 0FC0 31C0 60C0 6180 C180 C380 C580 CB00 FB00 7300 0600 0600 0600 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 33 37 34 68 70 60 60 C0 C0 C0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 1E 23 60 70 38 1C 0E 06 C4 78 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 7 0 BBX 6 12 1 0 BITMAP 10 30 7C 30 60 60 60 60 C0 C0 C0 70 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 30C0 30C0 30C0 6180 6180 6380 C580 CB00 FB00 7300 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 2 0 BITMAP C3 C3 C3 C2 C6 C4 C8 D0 E0 C0 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 15 0 BBX 13 10 2 0 BITMAP C018 C618 C630 CE30 CE60 D640 D6C0 E680 E700 C600 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 0 BITMAP 3180 3180 1900 1A00 0C00 1800 2C00 4C00 C600 C600 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 -3 BITMAP 30C0 30C0 30C0 3080 3180 3100 3200 3400 3800 3000 6000 C000 C000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 0 BITMAP 7F80 0380 0700 0E00 1C00 1800 3800 7000 E000 FF00 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 6 0 BBX 7 16 1 -2 BITMAP 06 08 18 18 18 18 10 20 C0 20 60 60 C0 C0 C0 60 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 5 0 BBX 4 16 1 -2 BITMAP 30 30 30 30 30 60 60 60 60 60 60 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 6 0 BBX 7 16 -1 -2 BITMAP 0C 06 06 06 0C 0C 08 06 08 10 30 30 30 30 20 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 12 0 BBX 10 3 2 4 BITMAP 7840 CCC0 8780 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 5 0 BBX 4 13 1 -3 BITMAP 30 30 00 20 20 60 60 60 60 C0 C0 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 -1 BITMAP 0200 0200 0F00 3580 6400 6400 C400 C800 C800 C800 E900 7E00 1000 1000 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 1 0 BITMAP 01C0 0660 0600 0C00 0C00 0C00 7F00 1800 1800 1000 2000 FF00 FF00 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 11 0 BBX 13 11 0 1 BITMAP 4008 2390 1CE0 1860 1860 3060 30C0 30C0 39C0 4E20 8010 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 2 0 BITMAP 60C0 60C0 6180 3100 3200 3400 1800 7F00 1800 FE00 3000 3000 3000 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 5 0 BBX 4 16 1 -2 BITMAP 30 30 30 30 30 30 00 00 00 00 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 1 -2 BITMAP 0F80 10C0 3000 3800 1E00 2700 6380 7180 3900 1E00 0700 0300 0300 C600 7C00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 11 0 BBX 4 2 5 11 BITMAP 90 90 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 16 0 BBX 13 13 2 0 BITMAP 0F80 3060 4010 4390 8E48 8C08 9808 9808 9888 4F10 4010 3060 0F80 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 6 BITMAP 1E 66 66 CE DC EC CC ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 10 0 BBX 9 8 0 1 BITMAP 0880 1100 2200 4400 CC00 6600 3300 1100 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 12 0 BBX 9 5 2 1 BITMAP FF80 0080 0080 0080 0080 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 6 0 BBX 5 1 1 5 BITMAP F8 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 12 0 BBX 8 8 3 5 BITMAP 3C 42 BD A5 B9 A5 42 3C ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 11 0 BBX 4 1 5 11 BITMAP F0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 1 9 BITMAP 60 90 90 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 12 0 BBX 9 10 2 1 BITMAP 0400 0400 0400 0400 7F80 0800 0800 0800 0000 FF00 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 6 BITMAP 3C 66 06 0C 30 60 FC ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 6 BITMAP 3C 66 06 38 0C CC 78 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 11 0 BBX 4 2 5 11 BITMAP 70 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 -3 BITMAP 1860 1860 1860 30C0 30C0 31C0 62C0 6580 7D80 7980 C000 C000 C000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 12 0 BBX 8 15 2 -2 BITMAP 7F F9 F9 F9 F9 7B 12 12 12 12 36 24 24 24 24 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 12 0 BBX 3 3 5 4 BITMAP E0 E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 11 0 BBX 4 3 2 -3 BITMAP 60 30 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 7 0 BBX 4 7 2 6 BITMAP 30 F0 30 30 60 60 60 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 6 BITMAP 1C 66 66 C6 CC CC 70 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 10 0 BBX 9 8 1 1 BITMAP 4400 6600 3300 1980 1100 2200 4400 8800 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 16 0 BBX 13 13 2 0 BITMAP E060 60C0 6080 C180 C300 C600 C438 0C58 1898 3130 21F8 6030 C030 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 16 0 BBX 13 13 2 0 BITMAP 6060 E0C0 6080 6180 C300 C600 C470 0C98 1818 3030 2040 60F8 C1F8 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 16 0 BBX 15 13 0 0 BITMAP 7818 0C30 0C20 7060 18C0 1980 F10E 0316 0626 0C4C 087E 180C 300C ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 -3 BITMAP 06 06 00 00 04 0C 18 30 60 C0 C0 E6 7C ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 12 0 BBX 10 16 1 0 BITMAP 0E00 0300 0000 0300 0300 0500 0D80 0980 1980 1180 3180 3FC0 60C0 60C0 C0C0 C0C0 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 12 0 BBX 10 16 1 0 BITMAP 01C0 0300 0000 0300 0300 0500 0D80 0980 1980 1180 3180 3FC0 60C0 60C0 C0C0 C0C0 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 12 0 BBX 10 16 1 0 BITMAP 0300 0580 0000 0300 0300 0500 0D80 0980 1980 1180 3180 3FC0 60C0 60C0 C0C0 C0C0 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 12 0 BBX 10 16 1 0 BITMAP 0680 0B00 0000 0300 0300 0500 0D80 0980 1980 1180 3180 3FC0 60C0 60C0 C0C0 C0C0 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 12 0 BBX 10 16 1 0 BITMAP 0480 0480 0000 0300 0300 0500 0D80 0980 1980 1180 3180 3FC0 60C0 60C0 C0C0 C0C0 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 12 0 BBX 10 16 1 0 BITMAP 0700 0980 0700 0300 0300 0500 0D80 0980 1980 1180 3180 3FC0 60C0 60C0 C0C0 C0C0 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 17 0 BBX 17 13 1 0 BITMAP 003F80 007000 00B000 013000 036000 066000 0C7E00 186000 1FE000 30C000 60C000 C0C000 C0FE00 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 12 0 BBX 12 16 1 -3 BITMAP 07E0 1830 3000 6000 6000 C000 C000 C000 C000 C000 6000 7040 1F80 0C00 0600 1C00 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 10 0 BBX 9 16 2 0 BITMAP 0E00 0300 0000 3F80 3000 3000 3000 6000 6000 7E00 6000 6000 C000 C000 C000 FE00 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 10 0 BBX 9 16 2 0 BITMAP 0700 0C00 0000 3F80 3000 3000 3000 6000 6000 7E00 6000 6000 C000 C000 C000 FE00 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 10 0 BBX 9 16 2 0 BITMAP 0600 0B00 0000 3F80 3000 3000 3000 6000 6000 7E00 6000 6000 C000 C000 C000 FE00 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 10 0 BBX 9 16 2 0 BITMAP 0900 0900 0000 3F80 3000 3000 3000 6000 6000 7E00 6000 6000 C000 C000 C000 FE00 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 6 0 BBX 4 16 1 0 BITMAP E0 30 00 30 30 30 30 60 60 60 60 60 C0 C0 C0 C0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 6 0 BBX 6 16 1 0 BITMAP 1C 30 00 30 30 30 30 60 60 60 60 60 C0 C0 C0 C0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 6 0 BBX 5 16 1 0 BITMAP 30 58 00 30 30 30 30 60 60 60 60 60 C0 C0 C0 C0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 6 0 BBX 5 16 1 0 BITMAP 48 48 00 30 30 30 30 60 60 60 60 60 C0 C0 C0 C0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 1 0 BITMAP 1FC0 1870 1830 1818 3018 3018 FE18 3018 3030 6030 6060 60C0 7F00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 14 0 BBX 11 16 2 0 BITMAP 0340 0580 0000 3820 3820 2C20 2C20 2C60 6640 4640 4340 4340 C380 8180 8180 8180 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 14 0 BBX 13 16 1 0 BITMAP 0700 0180 0000 07C0 1870 3030 6018 6018 C018 C018 C018 C030 C030 6060 70C0 1F00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 14 0 BBX 13 16 1 0 BITMAP 01C0 0300 0000 07C0 1870 3030 6018 6018 C018 C018 C018 C030 C030 6060 70C0 1F00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 14 0 BBX 13 16 1 0 BITMAP 0180 02C0 0000 07C0 1870 3030 6018 6018 C018 C018 C018 C030 C030 6060 70C0 1F00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 14 0 BBX 13 16 1 0 BITMAP 0340 0580 0000 07C0 1870 3030 6018 6018 C018 C018 C018 C030 C030 6060 70C0 1F00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 14 0 BBX 13 16 1 0 BITMAP 0480 0480 0000 07C0 1870 3030 6018 6018 C018 C018 C018 C030 C030 6060 70C0 1F00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 12 0 BBX 8 9 3 1 BITMAP 61 22 34 18 18 18 2C 44 86 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 14 0 BBX 13 15 1 -1 BITMAP 0008 07D8 1870 3070 60D8 6198 C318 C218 C618 CC30 D830 7060 70C0 DF00 8000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 13 0 BBX 12 16 1 0 BITMAP 0700 0180 0000 3030 3030 3030 3030 6020 6060 6060 6060 C040 C0C0 C080 6180 3E00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 13 0 BBX 12 16 1 0 BITMAP 0700 0180 0000 3030 3030 3030 3030 6020 6060 6060 6060 C040 C0C0 C080 6180 3E00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 13 0 BBX 12 16 1 0 BITMAP 0180 02C0 0000 3030 3030 3030 3030 6020 6060 6060 6060 C040 C0C0 C080 6180 3E00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 13 0 BBX 12 16 1 0 BITMAP 0480 0480 0000 3030 3030 3030 3030 6020 6060 6060 6060 C040 C0C0 C080 6180 3E00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 11 0 BBX 11 16 2 0 BITMAP 0380 0600 0000 C060 C060 60C0 6180 3300 3600 1C00 1800 1800 3000 3000 3000 3000 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 2 0 BITMAP 3000 3000 3000 3F80 61C0 60C0 60C0 61C0 6380 FE00 C000 C000 C000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 1 -2 BITMAP 0780 08C0 18C0 1880 1900 3200 3200 3300 3380 61C0 60C0 6040 60C0 C780 C000 C000 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0E00 0300 0000 0FC0 31C0 60C0 6180 C180 C380 C580 CB00 FB00 7300 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0380 0600 0000 0FC0 31C0 60C0 6180 C180 C380 C580 CB00 FB00 7300 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0300 0580 0000 0FC0 31C0 60C0 6180 C180 C380 C580 CB00 FB00 7300 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0680 0B00 0000 0FC0 31C0 60C0 6180 C180 C380 C580 CB00 FB00 7300 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0480 0480 0000 0FC0 31C0 60C0 6180 C180 C380 C580 CB00 FB00 7300 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0700 0980 0700 0FC0 31C0 60C0 6180 C180 C380 C580 CB00 FB00 7300 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 17 0 BBX 15 10 1 0 BITMAP 0F9C 31E6 60C6 61C6 C18C C3F0 C580 C980 F9C4 70F8 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 -3 BITMAP 0E 33 60 60 C0 C0 C0 C0 E4 78 30 18 70 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 1C 06 00 0E 33 63 63 C6 F8 C0 C0 E2 7C ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 07 0C 00 0E 33 63 63 C6 F8 C0 C0 E2 7C ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 0C 16 00 0E 33 63 63 C6 F8 C0 C0 E2 7C ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 12 12 00 0E 33 63 63 C6 F8 C0 C0 E2 7C ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 6 0 BBX 4 13 1 0 BITMAP E0 30 00 30 30 30 60 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 6 0 BBX 6 13 1 0 BITMAP 1C 30 00 30 30 30 60 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 6 0 BBX 5 13 1 0 BITMAP 30 58 00 30 30 30 60 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 6 0 BBX 5 13 1 0 BITMAP 48 48 00 30 30 30 60 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 10 0 BBX 10 14 1 0 BITMAP 0E00 03C0 0F00 0180 0F80 3380 6180 6180 C180 C180 C300 C300 E600 7800 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 0680 0B00 0000 3380 37C0 34C0 68C0 7180 6180 6180 C300 C300 C300 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 1C00 0600 0000 0F00 3380 6180 6180 C180 C180 C300 C300 E600 7800 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 0700 0C00 0000 0F00 3380 6180 6180 C180 C180 C300 C300 E600 7800 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 0600 0B00 0000 0F00 3380 6180 6180 C180 C180 C300 C300 E600 7800 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 0D00 1600 0000 0F00 3380 6180 6180 C180 C180 C300 C300 E600 7800 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 0900 0900 0000 0F00 3380 6180 6180 C180 C180 C300 C300 E600 7800 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 12 0 BBX 9 9 2 1 BITMAP 0400 0400 0000 0000 FF80 0000 0000 1000 1000 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 11 0 BBX 11 12 0 -1 BITMAP 0020 07A0 19C0 31C0 32C0 64C0 64C0 6980 7180 7300 BC00 8000 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0E00 0300 0000 30C0 30C0 30C0 6180 6180 6380 C580 CB00 FB00 7300 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0380 0600 0000 30C0 30C0 30C0 6180 6180 6380 C580 CB00 FB00 7300 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0300 0580 0000 30C0 30C0 30C0 6180 6180 6380 C580 CB00 FB00 7300 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0900 0900 0000 30C0 30C0 30C0 6180 6180 6380 C580 CB00 FB00 7300 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 10 0 BBX 10 16 0 -3 BITMAP 0380 0600 0000 30C0 30C0 30C0 3080 3180 3100 3200 3400 3800 3000 6000 C000 C000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 11 0 BBX 11 16 0 -3 BITMAP 1800 1800 1800 19C0 33E0 3260 3460 3860 3060 70C0 60C0 7180 7E00 C000 C000 C000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 10 0 BBX 10 16 0 -3 BITMAP 0900 0900 0000 30C0 30C0 30C0 3080 3180 3100 3200 3400 3800 3000 6000 C000 C000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 17 0 -3 BITMAP 03F0 0430 0C30 0C30 3E60 1860 1860 30C0 30C0 30C0 30C0 6180 6180 6180 C000 C000 C000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 1 1 5 BITMAP FF80 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 2 -2 BITMAP 0C00 0C00 0C00 0C00 FF80 1800 1800 1800 1800 1800 3000 3000 3000 3000 3000 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 16 1 0 BITMAP 0580 0300 0000 3FE0 0060 00E0 01C0 0380 0700 0E00 1C00 3800 7000 E000 C000 FF80 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 15 10 1 0 BITMAP 0F3C 33E6 61C6 61C6 C18C C1F0 C380 C380 E7C4 78F8 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 16 2 0 BITMAP 0900 0900 0000 C060 C060 60C0 6180 3300 3600 1C00 1800 1800 3000 3000 3000 3000 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 10 1 0 BITMAP 30 30 30 60 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 7 14 0 0 BITMAP 0C 0C 0C 0C 18 18 1E F0 30 30 30 60 60 60 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 0 BITMAP 1800 1800 1800 1800 3000 3C00 F000 3000 3000 6000 6000 6000 7F80 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 1 -2 BITMAP 0600 0600 0600 0600 7FC0 0C00 0C00 0C00 0C00 0C00 FF80 1800 1800 1800 1800 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 13 17 0 -3 BITMAP 0398 0430 0C00 0C00 3FE0 1860 1860 30C0 30C0 30C0 30C0 6180 6180 6180 C000 C000 C000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 1 BITMAP 40 60 30 18 10 20 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 17 13 2 0 BITMAP 07FF80 187000 303000 603000 606000 C06000 C07E00 C06000 C06000 C0C000 60C000 71C000 1FFE00 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 18 1 1 5 BITMAP FFFFC0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 4 2 5 11 BITMAP B0 60 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 4 3 3 -3 BITMAP 60 C0 70 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 5 2 5 11 BITMAP D8 90 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 1 BITMAP 08 10 20 40 C0 60 30 10 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 2 2 6 11 BITMAP C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 5 2 4 11 BITMAP 88 70 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 5 5 4 3 BITMAP F8 F8 F8 F8 F8 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 5 2 5 11 BITMAP 68 B0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 4 2 5 11 BITMAP 60 B0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 4 2 10 BITMAP 24 48 D8 D8 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 2 4 2 10 BITMAP C0 C0 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 0 BITMAP 16 0C 00 1E 23 60 70 38 1C 0E 06 C4 78 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 5 3 5 10 BITMAP 70 98 70 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 1 -2 BITMAP 60 60 40 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 3 -2 BITMAP 0780 0CC0 1800 1800 3000 3000 FE00 3000 6000 6000 6000 6000 C000 C000 C000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 15 6 0 7 BITMAP FEC6 18CE 18FE 316C 316C 310C ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 9 13 -1 0 BITMAP 0180 0180 0300 0700 0600 0C00 1C00 1800 3000 7000 6000 C000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 4 2 5 11 BITMAP E0 30 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 20 13 1 0 BITMAP 381800 4C3000 CC6000 CCC000 CD8000 C90000 7270E0 049930 0D9B30 199B30 319B30 619320 C0E1C0 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 8 2 2 0 BITMAP C3 C3 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 4 2 10 BITMAP 6C 6C 48 90 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 16 1 0 BITMAP 0B00 0600 0000 1F00 3980 3000 3000 1800 1C00 0E00 0600 0300 0300 0300 C600 7C00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 4 0 -2 BITMAP 6C 6C 48 90 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 0 BITMAP 1600 0C00 0000 7F80 0380 0700 0E00 1C00 1800 3800 7000 E000 FF00 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/luIS19.bdf100644 1750 1750 77253 5413747470 15012 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Medium-I-Normal-Sans-19-190-75-75-P-108-ISO8859-1 SIZE 19 72 72 FONTBOUNDINGBOX 34 22 -11 -4 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Medium" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 19 POINT_SIZE 190 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH "108" CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." FONT_ASCENT 17 FONT_DESCENT 4 DEFAULT_CHAR 0 ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 6 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 6 0 BBX 5 14 2 0 BITMAP 18 18 10 30 30 30 30 20 60 60 00 00 C0 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 7 0 BBX 5 5 3 9 BITMAP D8 D8 D8 D8 D8 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 1 0 BITMAP 0130 0270 0260 04E0 7FF0 7FF0 0880 1980 1100 FFE0 FFE0 2600 6E00 DC00 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 12 0 BBX 9 17 3 -2 BITMAP 0200 1F80 3F80 3400 2400 2400 1800 0800 0C00 0E00 0B00 1300 1300 F600 FC00 1000 1000 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 14 0 BBX 14 14 2 0 BITMAP 1C0C 3E10 6220 6660 7CC0 3980 03E0 03F0 0590 0910 1B10 3330 61E0 C1C0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 2 0 BITMAP 0380 07C0 0C40 0C40 0DC0 0F00 3E00 6630 C330 C360 C1E0 E1C0 7FC0 3CE0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 3 9 BITMAP 60 60 60 60 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 6 0 BBX 6 18 2 -4 BITMAP 04 0C 18 10 30 60 60 40 C0 C0 C0 C0 C0 C0 C0 60 60 20 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 6 0 BBX 6 18 0 -4 BITMAP 10 18 0C 0C 0C 04 04 04 0C 0C 0C 08 18 10 30 60 C0 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 3 7 BITMAP 18 10 D6 6C 30 C8 48 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 2 0 BITMAP 0700 0600 0600 0600 0600 FFE0 FFE0 0C00 0C00 0C00 0C00 1C00 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 6 0 BBX 3 7 1 -4 BITMAP 60 60 60 60 40 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 12 0 BBX 11 2 2 5 BITMAP FFE0 FFE0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 6 0 BBX 3 2 2 0 BITMAP E0 C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 9 0 BBX 12 18 0 -4 BITMAP 0030 0020 0060 00C0 0080 0180 0100 0300 0200 0400 0C00 0800 1800 1000 3000 6000 4000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP 0F00 1F80 39C0 30C0 60C0 60C0 C0C0 C0C0 C080 C180 C180 E300 7E00 3C00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 12 0 BBX 5 14 5 0 BITMAP 78 F8 10 30 30 30 30 60 60 60 60 60 C0 C0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 2 0 BITMAP 0F80 1FE0 10E0 0060 0060 00C0 0180 0300 0E00 1800 3000 6000 FF80 FF80 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP 1F00 1F80 11C0 0080 0180 0300 1C00 3F00 0380 0180 0180 8300 FE00 FC00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP 01C0 01C0 0380 0680 0D80 1980 3180 2100 4100 FFC0 FFC0 0300 0300 0600 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 3 0 BITMAP 1FC0 1FC0 3000 3000 2000 3C00 3F00 0300 0180 0180 0300 8700 FE00 F800 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP 07C0 1FC0 3840 3000 6000 7F00 FF80 E180 C180 C180 C180 E300 7E00 3C00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 3 0 BITMAP 3FE0 3FE0 00E0 01C0 0380 0700 0E00 1C00 3800 3000 7000 6000 E000 C000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 3 0 BITMAP 0F00 1F80 30C0 3080 3180 3B00 3E00 7F00 6300 C180 C180 E300 FF00 3C00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP 0F00 1F80 38C0 60C0 60C0 60C0 61C0 7FC0 3EC0 0180 0380 8700 FE00 7800 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 6 0 BBX 4 10 2 0 BITMAP 30 30 00 00 00 00 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 6 0 BBX 4 14 2 -4 BITMAP 30 30 00 00 00 00 00 00 60 40 40 40 40 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 12 0 BBX 12 12 2 0 BITMAP 0010 0070 01C0 0700 1C00 7000 F000 3C00 1E00 0780 01C0 00C0 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 12 0 BBX 12 5 1 3 BITMAP 7FF0 7FF0 0000 FFE0 FFE0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 12 0 BBX 12 12 1 0 BITMAP 3000 3800 1E00 0700 03C0 00F0 00E0 0380 0E00 3800 E000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 9 0 BBX 8 14 3 0 BITMAP 7C 7E 87 03 06 0C 18 30 60 60 60 00 C0 C0 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 2 0 BITMAP 03E0 0FF8 1C1C 33E4 67E4 4C44 8844 91C4 998C 9EF8 CCF0 6080 3F80 1F00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 13 0 BBX 13 14 0 0 BITMAP 00C0 01E0 01E0 0360 0260 0660 0C70 0C30 1830 1FF0 3FF0 2038 6018 C018 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 2 0 BITMAP 1F80 3FC0 30C0 30C0 3080 3380 7E00 7F00 6380 6180 6180 C380 FF00 FE00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 13 0 BBX 13 14 2 0 BITMAP 03F0 0FF8 1C08 3800 7000 6000 E000 C000 C000 C000 C000 6020 7FE0 1F00 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 2 0 BITMAP 1FE0 3FF0 3078 3018 3018 3018 6018 6018 6030 6030 6060 C1E0 FFC0 FF00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 10 0 BBX 10 14 2 0 BITMAP 1FC0 3FC0 3000 3000 3000 2000 7F00 7F00 6000 6000 6000 C000 FF00 FF00 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 10 0 BBX 10 14 2 0 BITMAP 1FC0 3FC0 3000 3000 3000 2000 7F00 7F00 6000 6000 6000 C000 C000 C000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 2 0 BITMAP 07E0 0FF0 3C10 3000 6000 6000 C000 C060 C060 C0C0 E0C0 70C0 7FC0 1F00 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 2 0 BITMAP 1818 3018 3018 3030 3030 3030 7FF0 7FF0 6020 6060 6060 C060 C060 C0C0 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 5 0 BBX 5 14 2 0 BITMAP 18 18 10 30 30 30 30 60 60 60 60 40 C0 C0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 8 0 BBX 9 18 0 -4 BITMAP 0180 0180 0180 0300 0300 0300 0300 0300 0200 0600 0600 0600 0600 0600 0C00 0C00 F800 F000 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 2 0 BITMAP 1830 3060 30C0 3180 3300 3600 6C00 7C00 6E00 6600 6300 C380 C180 C0C0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 10 0 BBX 9 14 2 0 BITMAP 1800 1800 3000 3000 3000 3000 2000 6000 6000 6000 6000 4000 FF80 FF80 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 16 0 BBX 15 14 2 0 BITMAP 180E 3C0E 3C1E 3C1C 3C3C 2C6C 644C 66CC 6688 6798 4718 C718 C618 C030 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 2 0 BITMAP 1818 3818 3C18 3C10 2C30 2630 6630 6330 6320 61A0 41E0 C1E0 C0E0 C0C0 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 15 0 BBX 13 14 2 0 BITMAP 03E0 0FF0 1C38 3018 7018 6018 C018 C018 C018 C030 E070 60E0 7FC0 1F00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 2 0 BITMAP 1F80 3FC0 30C0 30C0 30C0 2180 6380 7F00 7C00 6000 6000 C000 C000 C000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 2 -4 BITMAP 03E0 0FF0 1C38 3018 7018 6018 C018 C018 C018 C030 E070 60E0 7FC0 1F00 01C0 00F0 0078 0030 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP 1F80 3FC0 30C0 30C0 30C0 3180 6300 7C00 7E00 6600 6300 C300 C180 C1C0 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 1 0 BITMAP 0FC0 1FE0 3840 3000 3000 1800 0E00 0700 0380 0180 0180 8380 FF00 3E00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 3 0 BITMAP FFF0 FFF0 0600 0600 0C00 0C00 0C00 0C00 0800 1800 1800 1800 1800 3000 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 2 0 BITMAP 3030 3030 6030 6020 6060 6060 6060 C060 C0C0 C0C0 C0C0 E180 FF80 7E00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 3 0 BITMAP C030 C060 C060 60C0 60C0 6180 6180 6300 3200 3600 3C00 3C00 3800 3800 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 17 0 BBX 16 14 3 0 BITMAP C183 C182 C386 C384 C78C C58C CD98 C998 D9B0 59B0 50E0 70E0 60C0 60C0 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 12 0 BBX 14 14 0 0 BITMAP 181C 0C18 0C30 0660 06C0 0380 0300 0380 0780 0DC0 18C0 30E0 6060 C070 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 3 0 BITMAP C0E0 60C0 6180 7380 3700 3600 1C00 1800 1800 1800 1800 3000 3000 3000 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 11 0 BBX 12 14 1 0 BITMAP 1FF0 1FF0 0060 00C0 0180 0300 0700 0E00 1C00 1800 3000 6000 FFC0 FFC0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 6 0 BBX 7 18 1 -4 BITMAP 1E 1E 18 10 10 30 30 30 20 20 60 60 60 40 40 C0 F0 F0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 9 0 BBX 5 18 3 -4 BITMAP 80 C0 C0 40 40 60 60 60 20 20 30 30 30 10 10 18 18 08 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 6 0 BBX 7 18 0 -4 BITMAP 1E 1E 06 04 04 0C 0C 0C 08 08 18 18 18 10 10 30 F0 F0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 1 2 BITMAP 0100 0300 0300 0780 0F80 0C80 1C80 18C0 3040 7040 6060 C060 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 10 0 BBX 8 2 1 -2 BITMAP FF FF ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 3 9 BITMAP 60 40 C0 C0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 2 0 BITMAP 0FC0 1FC0 38C0 7180 6180 C380 C780 CF80 FD00 7300 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP 1800 1000 3000 3000 3380 2FC0 3CC0 78C0 70C0 6180 6380 4700 FE00 FC00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 2 0 BITMAP 0F80 3F00 7000 6000 C000 C000 C000 C200 FE00 7C00 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 2 0 BITMAP 0060 0060 0040 00C0 07C0 1FC0 38C0 7080 6180 C380 C780 CF80 FD00 7300 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 2 0 BITMAP 0F 3F 73 63 C6 F8 C1 C3 FF 7C ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 7 0 BBX 9 19 2 -4 BITMAP 0780 0F80 1C00 1800 1800 7E00 7E00 3000 3000 3000 2000 6000 6000 6000 6000 6000 C000 C000 C000 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 -4 BITMAP 07E0 0FE0 1C40 3040 30C0 61C0 62C0 6680 7D80 3980 0180 8300 FE00 7C00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP 1800 1000 3000 3000 3380 37C0 2EC0 7CC0 78C0 7080 6180 4180 C180 C180 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 5 0 BBX 5 14 2 0 BITMAP 18 18 00 00 30 30 30 60 60 60 60 40 C0 C0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 6 0 BBX 9 18 -1 -4 BITMAP 0180 0180 0000 0000 0300 0300 0300 0300 0200 0600 0600 0600 0600 0400 0C00 1C00 F800 F000 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 2 0 BITMAP 1800 1000 3000 3000 31C0 3300 2600 6C00 7800 6C00 6C00 4600 C300 C380 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 5 0 BBX 5 14 2 0 BITMAP 18 18 10 30 30 30 30 60 60 60 60 40 C0 C0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 18 0 BBX 16 10 2 0 BITMAP 338F 37DF 6EFB 7CF3 79E3 71C2 6186 E186 C106 C304 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 2 0 BITMAP 3380 37C0 2EC0 7CC0 78C0 7080 6180 4180 C180 C180 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 2 0 BITMAP 0F00 3F80 7180 6180 C180 C180 C180 C700 FE00 7C00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 -4 BITMAP 19C0 37E0 3E60 3C60 3860 30C0 61C0 6380 7F00 7C00 6000 C000 C000 C000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 -4 BITMAP 0FC0 1FC0 38C0 7180 6180 C380 C780 CF80 FD00 7300 0300 0300 0300 0600 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 2 0 BITMAP 3180 3780 2C00 7800 7800 7000 6000 4000 C000 C000 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 2 0 BITMAP 1E 3F 31 30 18 0C 06 86 FE 7C ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 7 0 BBX 6 13 2 0 BITMAP 30 30 30 FC FC 60 60 60 60 40 C0 F0 70 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 2 0 BITMAP 70C0 60C0 6080 6180 6380 C780 CF80 DD00 FB00 7300 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 3 0 BITMAP C180 C300 C300 C600 4400 4C00 6800 7800 7000 6000 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 15 0 BBX 14 10 2 0 BITMAP C30C C71C C718 CD30 CD30 D960 5960 71C0 71C0 6180 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 10 0 BBX 11 10 1 0 BITMAP 3060 18C0 0980 0F00 0600 0E00 1B00 3300 6180 C180 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 10 0 BBX 10 14 2 -4 BITMAP 60C0 6180 6180 6300 6700 6600 3E00 3C00 3800 3800 3000 3000 6000 C000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 1 0 BITMAP 3FC0 3FC0 0380 0700 0E00 1C00 3800 7000 FF80 FF80 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 6 0 BBX 7 18 2 -4 BITMAP 0E 1C 18 10 10 10 30 30 E0 C0 60 60 60 60 C0 C0 E0 60 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 4 0 BBX 5 18 1 -4 BITMAP 08 18 10 10 10 10 30 20 20 20 20 60 40 40 40 40 C0 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 6 0 BBX 7 18 0 -4 BITMAP 18 1C 04 0C 0C 08 18 08 0E 1C 18 30 30 30 30 30 E0 E0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 12 0 BBX 12 5 1 3 BITMAP 3810 7C30 4F20 C3E0 81C0 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 6 0 BBX 5 14 1 -4 BITMAP 18 18 00 00 30 30 20 60 60 60 60 40 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 12 0 BBX 8 14 4 0 BITMAP 04 0C 1F 3E 68 48 C8 D0 D0 D0 FE 7C 10 20 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 2 0 BITMAP 03E0 07E0 0E20 0C00 0C00 0800 3E00 7E00 1800 1800 1000 2000 FF00 FF00 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 12 0 BBX 13 12 1 1 BITMAP 3018 3F38 1FF0 0CE0 1860 1060 1060 1040 18C0 3FC0 4F60 8020 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 3 0 BITMAP C060 60C0 3180 3300 1E00 1C00 7F00 FF00 1800 FE00 FE00 1000 3000 3000 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 4 0 BBX 5 18 1 -4 BITMAP 18 18 10 10 10 10 30 00 00 00 00 60 40 40 40 C0 C0 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 12 0 BBX 10 18 2 -4 BITMAP 07C0 1FC0 1840 3000 3000 1800 3E00 3380 6180 6080 3980 1F00 0700 0100 0100 8300 FF00 7C00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 11 0 BBX 6 2 5 12 BITMAP CC CC ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 16 0 BBX 13 14 3 0 BITMAP 0F80 3FE0 7070 6398 CFC8 8C48 9808 9008 9888 DF88 6F18 7070 3FE0 0F80 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 2 6 BITMAP 18 3E 66 C6 CE D4 EC CC ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 2 0 BITMAP 0880 1980 3300 6600 DC00 CC00 4E00 6600 2600 3300 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 12 0 BBX 11 5 2 3 BITMAP FFE0 FFE0 0060 0040 0040 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 6 0 BBX 4 2 2 5 BITMAP F0 F0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 12 0 BBX 7 9 4 5 BITMAP 38 7C DE 9A B2 AA C6 7C 38 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 11 0 BBX 6 2 5 12 BITMAP FC FC ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 5 0 BBX 3 4 3 10 BITMAP 60 A0 A0 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 12 0 BBX 12 12 1 0 BITMAP 0100 0300 0200 7FF0 7FF0 0200 0600 0600 0600 0000 FFE0 FFE0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 -10 6 BITMAP 38 64 04 08 10 20 40 F8 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 -10 6 BITMAP 38 04 08 70 08 08 18 F0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 11 0 BBX 5 3 7 11 BITMAP 38 60 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 -4 BITMAP 3060 3060 3040 30C0 20C0 21C0 63C0 6680 7D80 7980 4000 C000 C000 C000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 12 0 BBX 8 18 3 -4 BITMAP 7F FF F9 FA FA 7A 7A 12 16 14 14 14 34 24 28 28 28 68 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 12 0 BBX 3 2 6 5 BITMAP E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 11 0 BBX 3 4 4 -4 BITMAP 60 60 20 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 7 0 BBX 3 8 -11 6 BITMAP E0 20 40 40 40 40 C0 80 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 2 6 BITMAP 1E 3E 62 C2 C6 CC FC 70 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 0 BITMAP 6200 3600 3300 3B80 1980 1F80 3300 6600 CC00 8800 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 17 0 BBX 14 14 7 0 BITMAP E00C 2018 4030 4060 40C0 4180 C10C 821C 0638 0C28 1848 30FC 6008 C010 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 17 0 BBX 14 14 7 0 BITMAP E00C 2018 4030 4060 40C0 4180 C138 8264 0604 0C08 1810 3020 6040 C0F8 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 17 0 BBX 15 14 8 0 BITMAP 3806 040C 0818 7030 0860 08C0 1886 F10E 031C 0614 0C24 187E 3004 6008 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 9 0 BBX 8 14 1 -4 BITMAP 03 06 00 06 06 0C 18 30 60 C0 C0 C2 FE 7C ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 13 0 BBX 13 18 0 0 BITMAP 00C0 0040 0060 0000 00C0 01E0 01E0 0360 0260 0660 0C70 0C30 1830 1FF0 3FF0 2038 6018 C018 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 13 0 BBX 13 18 0 0 BITMAP 0038 0060 00C0 0000 00C0 01E0 01E0 0360 0260 0660 0C70 0C30 1830 1FF0 3FF0 2038 6018 C018 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 13 0 BBX 13 18 0 0 BITMAP 00E0 01A0 0330 0000 00C0 01E0 01E0 0360 0260 0660 0C70 0C30 1830 1FF0 3FF0 2038 6018 C018 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 0 0 BITMAP 0190 02E0 0000 00C0 01E0 01E0 0360 0260 0660 0C70 0C30 1830 1FF0 3FF0 2038 6018 C018 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 0 0 BITMAP 0330 0330 0000 00C0 01E0 01E0 0360 0260 0660 0C70 0C30 1830 1FF0 3FF0 2038 6018 C018 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 13 0 BBX 13 18 0 0 BITMAP 00E0 00A0 00E0 0000 00C0 01E0 01E0 0360 0260 0660 0C70 0C30 1830 1FF0 3FF0 2038 6018 C018 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 17 0 BBX 19 14 0 0 BITMAP 003FE0 007FE0 007800 00F000 01F000 03BF80 033F80 063000 0FE000 1FE000 306000 306000 607F80 C0FF80 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 13 0 BBX 13 18 2 -4 BITMAP 03F0 0FF8 1C08 3800 7000 6000 E000 C000 C000 C000 C000 6020 7FE0 1F00 0800 0C00 0400 1800 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 10 0 BBX 10 18 2 0 BITMAP 0C00 0400 0600 0000 1FC0 3FC0 3000 3000 3000 2000 7F00 7F00 6000 6000 6000 C000 FF00 FF00 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 10 0 BBX 10 18 2 0 BITMAP 0380 0600 0C00 0000 1FC0 3FC0 3000 3000 3000 2000 7F00 7F00 6000 6000 6000 C000 FF00 FF00 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 10 0 BBX 10 18 2 0 BITMAP 0700 0D00 1980 0000 1FC0 3FC0 3000 3000 3000 2000 7F00 7F00 6000 6000 6000 C000 FF00 FF00 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 10 0 BBX 10 17 2 0 BITMAP 1980 1980 0000 1FC0 3FC0 3000 3000 3000 2000 7F00 7F00 6000 6000 6000 C000 FF00 FF00 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 5 0 BBX 5 18 2 0 BITMAP 30 10 18 00 18 18 10 30 30 30 30 60 60 60 60 40 C0 C0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 5 0 BBX 7 18 2 0 BITMAP 0E 18 30 00 18 18 10 30 30 30 30 60 60 60 60 40 C0 C0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 5 0 BBX 7 18 2 0 BITMAP 1C 34 66 00 18 18 10 30 30 30 30 60 60 60 60 40 C0 C0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 5 0 BBX 7 17 2 0 BITMAP 66 66 00 18 18 10 30 30 30 30 60 60 60 60 40 C0 C0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 14 0 BBX 14 14 1 0 BITMAP 1FF0 1FF8 183C 180C 180C 300C FE0C FE0C 3018 3018 2030 60E0 7FC0 7F80 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 2 0 BITMAP 0320 05C0 0000 1818 3818 3C18 3C10 2C30 2630 6630 6330 6320 61A0 41E0 C1E0 C0E0 C0C0 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 2 0 BITMAP 0300 0100 0180 0000 03E0 0FF0 1C38 3018 7018 6018 C018 C018 C018 C030 E070 60E0 7FC0 1F00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 2 0 BITMAP 00E0 0180 0300 0000 03E0 0FF0 1C38 3018 7018 6018 C018 C018 C018 C030 E070 60E0 7FC0 1F00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 2 0 BITMAP 01C0 0340 0660 0000 03E0 0FF0 1C38 3018 7018 6018 C018 C018 C018 C030 E070 60E0 7FC0 1F00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 2 0 BITMAP 0320 05C0 0000 03E0 0FF0 1C38 3018 7018 6018 C018 C018 C018 C030 E070 60E0 7FC0 1F00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 2 0 BITMAP 0660 0660 0000 03E0 0FF0 1C38 3018 7018 6018 C018 C018 C018 C030 E070 60E0 7FC0 1F00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 12 0 BBX 13 12 1 0 BITMAP 2008 3018 1860 0CC0 0580 0700 0700 0F80 19C0 30C0 E060 8060 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 15 0 BBX 16 14 3 0 BITMAP 01F3 07FE 0E1C 181C 383C 306C 60CC 618C 630C 6618 7C38 3870 3FE0 EF80 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 13 0 BBX 12 18 2 0 BITMAP 0600 0200 0300 0000 3030 3030 6030 6020 6060 6060 6060 C060 C0C0 C0C0 C0C0 E180 FF80 7E00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 13 0 BBX 12 18 2 0 BITMAP 01C0 0300 0600 0000 3030 3030 6030 6020 6060 6060 6060 C060 C0C0 C0C0 C0C0 E180 FF80 7E00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 13 0 BBX 12 18 2 0 BITMAP 0380 0680 0CC0 0000 3030 3030 6030 6020 6060 6060 6060 C060 C0C0 C0C0 C0C0 E180 FF80 7E00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 13 0 BBX 12 17 2 0 BITMAP 0CC0 0CC0 0000 3030 3030 6030 6020 6060 6060 6060 C060 C0C0 C0C0 C0C0 E180 FF80 7E00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 12 0 BBX 11 18 3 0 BITMAP 0380 0600 0C00 0000 C0E0 60C0 6180 7380 3700 3600 1C00 1800 1800 1800 1800 3000 3000 3000 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 2 0 BITMAP 1800 3000 3000 3F80 3FC0 30C0 60C0 61C0 6380 7F00 7C00 C000 C000 C000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 11 0 BBX 10 19 1 -4 BITMAP 0780 0FC0 18C0 1880 1980 1200 3600 3600 3700 3380 20C0 60C0 60C0 6FC0 6F00 4000 C000 C000 C000 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP 0600 0200 0300 0000 0FC0 1FC0 38C0 7180 6180 C380 C780 CF80 FD00 7300 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP 01C0 0300 0600 0000 0FC0 1FC0 38C0 7180 6180 C380 C780 CF80 FD00 7300 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP 0380 0680 0CC0 0000 0FC0 1FC0 38C0 7180 6180 C380 C780 CF80 FD00 7300 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 2 0 BITMAP 0640 0B80 0000 0FC0 1FC0 38C0 7180 6180 C380 C780 CF80 FD00 7300 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 2 0 BITMAP 0CC0 0CC0 0000 0FC0 1FC0 38C0 7180 6180 C380 C780 CF80 FD00 7300 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP 0380 0280 0380 0000 0FC0 1FC0 38C0 7180 6180 C380 C780 CF80 FD00 7300 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 17 0 BBX 15 10 2 0 BITMAP 07DE 1FFE 38E6 61C6 638C C3F0 C782 CF86 FCFE 78F8 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 10 0 BBX 9 14 2 -4 BITMAP 0F80 3F00 7000 6000 C000 C000 C000 C200 FE00 7C00 2000 3000 1000 6000 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 10 0 BBX 8 14 2 0 BITMAP 0C 04 06 00 0F 3F 73 63 C6 F8 C1 C3 FF 7C ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 10 0 BBX 9 14 2 0 BITMAP 0380 0600 0C00 0000 0F00 3F00 7300 6300 C600 F800 C100 C300 FF00 7C00 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 10 0 BBX 9 14 2 0 BITMAP 0700 0D00 1980 0000 0F00 3F00 7300 6300 C600 F800 C100 C300 FF00 7C00 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 2 0 BITMAP 1980 1980 0000 0F00 3F00 7300 6300 C600 F800 C100 C300 FF00 7C00 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 5 0 BBX 5 14 2 0 BITMAP 30 10 18 00 30 30 20 60 60 60 60 40 C0 C0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 5 0 BBX 7 14 2 0 BITMAP 0E 18 30 00 30 30 20 60 60 60 60 40 C0 C0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 5 0 BBX 7 14 2 0 BITMAP 1C 34 66 00 30 30 20 60 60 60 60 40 C0 C0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 5 0 BBX 7 13 2 0 BITMAP 66 66 00 30 30 20 60 60 60 60 40 C0 C0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 2 0 BITMAP 3F00 3F80 0F00 0D80 0F80 3F80 7180 6180 C180 C180 C100 E700 FE00 7C00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 2 0 BITMAP 0640 0B80 0000 3380 37C0 2EC0 7CC0 78C0 7080 6180 4180 C180 C180 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 2 0 BITMAP 0600 0200 0300 0000 0F00 3F80 7180 6180 C180 C180 C180 C700 FE00 7C00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 2 0 BITMAP 01C0 0300 0600 0000 0F00 3F80 7180 6180 C180 C180 C180 C700 FE00 7C00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 2 0 BITMAP 0700 0D00 1980 0000 0F00 3F80 7180 6180 C180 C180 C180 C700 FE00 7C00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 2 0 BITMAP 0640 0B80 0000 0F00 3F80 7180 6180 C180 C180 C180 C700 FE00 7C00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 2 0 BITMAP 0CC0 0CC0 0000 0F00 3F80 7180 6180 C180 C180 C180 C700 FE00 7C00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 2 0 BITMAP 0600 0600 0000 0000 FFE0 FFE0 0000 0000 0C00 0C00 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 3 0 BITMAP 07E0 1FC0 39C0 33C0 66C0 6CC0 78C0 7380 7F00 FE00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP 0600 0200 0300 0000 70C0 60C0 6080 6180 6380 C780 CF80 DD00 FB00 7300 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP 01C0 0300 0600 0000 70C0 60C0 6080 6180 6380 C780 CF80 DD00 FB00 7300 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP 0700 0D00 1980 0000 70C0 60C0 6080 6180 6380 C780 CF80 DD00 FB00 7300 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 2 0 BITMAP 0CC0 0CC0 0000 70C0 60C0 6080 6180 6380 C780 CF80 DD00 FB00 7300 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 10 0 BBX 10 18 2 -4 BITMAP 0380 0600 0C00 0000 60C0 6180 6180 6300 6700 6600 3E00 3C00 3800 3800 3000 3000 6000 C000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 12 0 BBX 11 18 1 -4 BITMAP 1800 1800 1800 1800 31C0 37E0 3E60 3C60 3860 30C0 61C0 6380 7F00 7C00 6000 C000 C000 C000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 10 0 BBX 10 17 2 -4 BITMAP 1980 1980 0000 60C0 6180 6180 6300 6700 6600 3E00 3C00 3800 3800 3000 3000 6000 C000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 19 1 -4 BITMAP 03F0 0FF0 0C30 1820 1860 7E60 7E60 3060 3040 30C0 30C0 20C0 60C0 6080 6180 6000 4000 C000 C000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 2 2 5 BITMAP FF FF ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 8 18 4 -4 BITMAP 0C 0C 08 08 18 FF FF 18 10 10 10 30 30 30 20 20 60 60 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 12 18 1 0 BITMAP 0660 02C0 0380 0000 1FF0 1FF0 0060 00C0 0180 0300 0700 0E00 1C00 1800 3000 6000 FFC0 FFC0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 16 10 1 0 BITMAP 0F0E 3FBF 70F3 60C3 C0CE C0F8 C181 C3C3 FEFF 3C7C ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 17 3 0 BITMAP 1980 1980 0000 C0E0 60C0 6180 7380 3700 3600 1C00 1800 1800 1800 1800 3000 3000 3000 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 10 2 0 BITMAP 30 30 20 60 60 60 60 40 C0 C0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 7 14 1 0 BITMAP 0C 08 18 18 1A 1E 38 70 B0 30 30 20 60 60 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 14 1 0 BITMAP 0C00 0C00 1800 1800 1A00 1E00 3800 F000 B000 3000 3000 3000 7FC0 7FC0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 18 3 -4 BITMAP 0600 0600 0400 0400 0C00 7F80 7F80 0C00 0C00 1800 1800 FF00 FF00 1800 1000 1000 3000 3000 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 19 1 -4 BITMAP 0380 07B0 0C30 1800 1800 7FE0 7FE0 3060 3060 3040 30C0 20C0 60C0 6080 6180 6000 4000 C000 C000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 10 1 0 BITMAP 20 70 30 38 18 18 30 60 C0 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 19 14 2 0 BITMAP 03DFE0 0FFFE0 1C3800 301800 703000 603000 C03F80 C03F80 C07000 C06000 E06000 70E000 7FFF80 1FFF80 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 18 2 2 4 BITMAP FFFFC0 FFFFC0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 3 6 11 BITMAP CC 58 70 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 3 3 -4 BITMAP 60 80 E0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 3 6 11 BITMAP 3C 78 F0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 10 2 0 BITMAP 08 18 30 60 C0 C0 40 60 20 30 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 2 2 7 12 BITMAP C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 3 6 11 BITMAP 84 C8 70 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 6 4 3 BITMAP 7E 7E 7E FC FC FC ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 2 5 12 BITMAP 64 B8 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 3 5 11 BITMAP 38 68 CC ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 5 3 9 BITMAP 24 48 58 D8 D8 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 2 5 3 9 BITMAP C0 C0 C0 C0 C0 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 14 2 0 BITMAP 1980 0B00 0E00 0000 1E00 3F00 3100 3000 1800 0C00 0600 8600 FE00 7C00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 3 7 12 BITMAP E0 A0 E0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 7 1 -4 BITMAP 60 60 E0 60 40 40 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 18 4 -4 BITMAP 0780 0F80 1800 1800 1000 3000 3000 FC00 FC00 3000 2000 6000 6000 6000 6000 4000 C000 C000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 15 8 2 6 BITMAP FEC6 FCCE 31CE 31D4 2154 216C 616C 630C ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 14 14 -4 0 BITMAP 000C 0018 0030 0060 00C0 0180 0100 0200 0600 0C00 1800 3000 6000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 3 6 11 BITMAP C0 40 60 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 19 14 2 0 BITMAP 1C0C00 3E1000 623000 666000 7CC000 398000 01E1C0 03F3E0 059360 091620 1B1660 333660 61E7C0 C1C380 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 15 2 2 0 BITMAP C186 C306 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 5 3 9 BITMAP 6C 6C 48 48 90 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 18 1 0 BITMAP 0CC0 0580 0700 0000 0FC0 1FE0 3840 3000 3000 1800 0E00 0700 0380 0180 0180 8380 FF00 3E00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 -4 BITMAP 6C 6C 4C 48 48 90 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 14 1 0 BITMAP 0CC0 0580 0700 0000 3FC0 3FC0 0380 0700 0E00 1C00 3800 7000 FF80 FF80 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/luIS24.bdf100644 1750 1750 107714 5413747470 15022 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Medium-I-Normal-Sans-24-240-75-75-P-136-ISO8859-1 SIZE 24 72 72 FONTBOUNDINGBOX 46 27 -15 -5 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Medium" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 24 POINT_SIZE 240 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 136 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 22 FONT_DESCENT 5 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 8 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 8 0 BBX 6 17 3 0 BITMAP 0C 1C 18 18 18 18 38 30 30 30 30 60 00 00 00 E0 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 9 0 BBX 6 6 4 11 BITMAP CC CC CC CC CC CC ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 15 0 BBX 15 17 2 0 BITMAP 00C6 008C 018C 0118 0318 7FFE 7FFE 0620 0460 0C40 08C0 FFFC FFFC 3180 2300 6700 C600 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 15 0 BBX 12 21 3 -2 BITMAP 0100 0100 03F0 0FF0 1F80 3900 3300 3200 1A00 1E00 0600 0700 0580 04C0 0CC0 08C0 0980 FF80 FE00 1800 1800 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 18 0 BBX 17 17 2 0 BITMAP 0F0180 1F8300 398600 318C00 219800 333000 3F6000 1E4000 00DC00 01BE00 036300 066300 0CC300 18C600 30E600 607C00 C03800 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 17 0 BBX 15 17 2 0 BITMAP 01E0 03F0 0738 0618 0E30 0670 07E0 1F80 3B0E 738E E18C C1DC C0D8 E0F0 F0F0 7FB0 1F38 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 4 11 BITMAP 70 70 30 60 E0 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 8 0 BBX 8 21 2 -4 BITMAP 01 03 06 0C 18 30 30 70 60 60 E0 C0 C0 C0 C0 C0 C0 60 60 30 10 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 8 0 BBX 8 21 1 -4 BITMAP 08 0C 06 06 03 03 03 03 03 03 07 06 06 0E 0C 1C 18 30 60 C0 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 11 0 BBX 9 9 4 8 BITMAP 0C00 0C00 4800 EB80 3700 1800 2400 E600 4400 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 2 0 BITMAP 0180 0180 0180 0180 0300 0300 FFFC FFFC 0300 0300 0600 0600 0600 0600 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 8 0 BBX 4 9 2 -5 BITMAP 70 70 70 70 20 20 60 40 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 15 0 BBX 14 2 2 7 BITMAP FFFC FFFC ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 8 0 BBX 3 2 3 0 BITMAP E0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 12 0 BBX 16 21 0 -4 BITMAP 0003 0006 000C 000C 0018 0030 0030 0060 00C0 00C0 0180 0300 0300 0600 0C00 0C00 1800 3000 3000 6000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 3 0 BITMAP 03C0 0FF0 1C70 3838 3018 7038 6038 6038 E038 C030 C030 C070 C060 E0C0 61C0 7F80 1E00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 15 0 BBX 6 17 6 0 BITMAP 7C FC 18 18 18 38 38 30 30 30 70 70 60 60 60 E0 C0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 2 0 BITMAP 07E0 1FF0 1038 0038 0018 0038 0030 0060 00C0 0380 0700 0C00 3800 3000 6000 FFE0 FFC0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 3 0 BITMAP 0FC0 1FE0 1070 0030 0030 0060 01C0 1F80 1FC0 01E0 00E0 0060 00E0 00C0 C1C0 FF80 7E00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 2 0 BITMAP 0038 0078 00F0 01B0 03B0 0730 0E70 1C60 1860 3060 6060 FFF8 FFF8 00C0 00C0 01C0 0180 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 3 0 BITMAP 0FF8 1FF8 1800 1800 1800 1000 3F00 3FC0 01C0 00E0 00E0 00E0 00E0 00C0 C380 FF00 FE00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 3 0 BITMAP 03F0 07F8 0E18 1800 3000 7000 6FC0 7FE0 F0F0 E070 E070 C070 C060 E0E0 71C0 7F80 1E00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 4 0 BITMAP 3FF8 3FF8 0078 0070 00E0 01C0 0380 0700 0E00 1C00 1C00 3800 3000 7000 6000 E000 E000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 3 0 BITMAP 03C0 0FF0 1C30 1830 3830 3870 1DE0 0F80 1F80 39C0 60E0 E060 C060 C0E0 E1C0 7F80 3F00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 2 0 BITMAP 03C0 0FF0 1C70 3838 3018 7018 7038 7038 7878 3FF0 1FB0 0070 0060 00C0 C380 FF00 7C00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 8 0 BBX 5 13 3 0 BITMAP 38 38 00 00 00 00 00 00 00 00 00 E0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 8 0 BBX 6 18 2 -5 BITMAP 0C 1C 00 00 00 00 00 00 00 00 00 70 60 20 60 60 C0 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 15 0 BBX 15 14 2 0 BITMAP 0002 000E 003C 01F0 0780 1E00 F800 7800 3C00 0F00 03C0 00F0 0078 0010 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 15 0 BBX 15 7 1 3 BITMAP 7FFE 7FFE 0000 0000 0000 FFFC FFFC ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 15 0 BBX 15 14 1 0 BITMAP 1000 3C00 1E00 0780 01E0 0078 003C 003E 00F0 03C0 1F00 7800 E000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 11 0 BBX 10 17 3 0 BITMAP 3F00 7F80 C380 01C0 0180 0380 0700 0E00 1C00 3800 3000 7000 6000 0000 0000 E000 C000 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 21 0 BBX 18 17 3 0 BITMAP 00FC00 07FF00 0F0380 1801C0 30FCC0 61F840 430840 C61840 841840 8C30C0 8CD180 CFBF00 C71E00 600000 382000 1FF000 07C000 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 16 0 BBX 16 17 0 0 BITMAP 0038 0078 0078 00D8 01DC 019C 039C 030C 060C 060E 0C0E 1FFE 1FFE 3006 3007 6007 E007 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 2 0 BITMAP 1FE0 1FF0 1838 1838 3830 3870 30E0 3FC0 3F80 71E0 7060 7070 6070 6070 E1E0 FFC0 FF80 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 16 0 BBX 16 17 3 0 BITMAP 01FE 07FF 0F03 1C00 3800 7000 7000 6000 E000 E000 E000 E000 E000 E000 7818 3FF8 0FE0 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 18 0 BBX 17 17 2 0 BITMAP 1FFC00 1FFE00 1C0F00 180780 180380 380380 380380 300380 300380 300300 700700 700600 600E00 601C00 607800 FFF000 FFC000 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 2 0 BITMAP 1FF8 1FF8 1800 1800 3800 3800 3000 3FC0 3FC0 7000 7000 7000 6000 6000 E000 FFC0 FFC0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 2 0 BITMAP 1FF8 1FF8 1800 1800 3800 3800 3800 3000 3FC0 7FC0 7000 7000 6000 6000 E000 E000 E000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 17 0 BBX 16 17 3 0 BITMAP 01FE 07FF 0F03 1C00 3800 7000 7000 6000 E000 E00C E00C E01C E01C F01C 7838 3FF8 0FC0 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 18 0 BBX 17 17 2 0 BITMAP 1C0380 1C0380 180300 180300 180300 380700 380700 3FFE00 3FFE00 300600 700E00 700E00 600C00 600C00 600C00 E01C00 E01C00 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 7 0 BBX 6 17 2 0 BITMAP 1C 1C 18 18 18 38 38 30 30 30 70 70 60 60 60 E0 E0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 10 0 BBX 12 21 0 -4 BITMAP 0070 0070 0060 0060 0060 00E0 00E0 00C0 00C0 00C0 01C0 01C0 0180 0180 0180 0380 0300 0300 8700 FE00 F800 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 15 0 BBX 15 17 2 0 BITMAP 1C0E 1C1C 1838 1870 18E0 39C0 3B80 3700 3E00 3700 7300 7180 61C0 60C0 6060 E070 E038 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 13 0 BBX 11 17 2 0 BITMAP 1C00 1C00 1800 1800 1800 3800 3800 3000 3000 3000 7000 7000 6000 6000 6000 FFE0 FFE0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 20 0 BBX 19 17 2 0 BITMAP 1E01E0 1E01E0 1E03C0 1E03C0 1F06C0 3706C0 330DC0 331D80 331980 333180 633180 63E380 63E300 61C300 61C300 C00300 C00700 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 18 0 BBX 17 17 2 0 BITMAP 1C0180 1E0180 1E0300 1F0300 1F0300 3B0300 338300 318600 31C600 30C600 60E600 606E00 607C00 607C00 603C00 C03C00 C01C00 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 19 0 BBX 17 17 3 0 BITMAP 01F800 07FE00 0F0F00 1C0700 380380 700380 700380 600380 E00380 E00300 E00700 E00600 E00E00 F01C00 787800 3FF000 0F8000 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 2 0 BITMAP 1FE0 1FF8 1838 1838 3838 3838 3070 30E0 3FC0 7F00 7000 6000 6000 6000 E000 E000 E000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 19 0 BBX 17 22 3 -5 BITMAP 01F800 07FE00 0F0F00 1C0700 380380 700380 700380 600380 E00380 E00300 E00700 E00700 E00E00 F01C00 787800 3FF000 0FC000 007000 003C00 001F80 000F00 000600 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 2 0 BITMAP 1FF0 1FF8 1838 1838 3838 3830 3870 30E0 3F80 7F80 7180 71C0 60C0 60E0 E060 E070 E030 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 2 0 BITMAP 03F0 0FF8 1E08 1C00 1800 1C00 1E00 0F00 0780 01C0 00E0 0060 0060 00E0 C1E0 FFC0 7F00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 15 0 BBX 15 17 3 0 BITMAP FFFE FFFE 0300 0300 0300 0700 0700 0600 0600 0600 0E00 0E00 0C00 0C00 0C00 1C00 1C00 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 17 0 BBX 15 17 3 0 BITMAP 3806 3806 300C 300C 700C 700C 701C 6018 6018 E018 E018 E038 E030 E070 F0E0 7FC0 3F80 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 16 0 BBX 16 17 4 0 BITMAP E007 E006 E00E 601C 6018 7038 7030 7070 30E0 30C0 39C0 3980 3B80 1F00 1E00 1E00 1C00 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 21 0 BBX 20 17 4 0 BITMAP C06030 C0E070 C0F060 C0F0E0 E1F0C0 E1F1C0 E37180 E37180 E67300 667300 6C7600 6C7600 787C00 783C00 783800 703800 703000 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 15 0 BBX 17 17 0 0 BITMAP 0E0380 0E0700 070E00 071C00 031800 03B000 01E000 01E000 01C000 03E000 036000 067000 0C7000 1C3800 383800 701C00 E01C00 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 4 0 BITMAP E01C 6038 7070 3060 38C0 39C0 1B80 1F00 0E00 0C00 0C00 0C00 1C00 1C00 1800 1800 3800 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 14 0 BBX 16 17 0 0 BITMAP 0FFF 0FFF 000E 001C 0038 0070 00E0 01C0 03C0 0780 0700 0E00 1C00 3800 7000 FFF8 FFF8 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 8 0 BBX 9 21 1 -4 BITMAP 0F80 0F80 0C00 0C00 1C00 1800 1800 1800 1800 3000 3000 3000 3000 3000 6000 6000 6000 6000 4000 F800 F800 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 12 0 BBX 7 21 4 -4 BITMAP C0 C0 40 60 60 60 20 30 30 30 10 18 18 18 08 0C 0C 0C 04 06 06 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 8 0 BBX 9 21 0 -4 BITMAP 0F80 0F80 0100 0300 0300 0300 0300 0600 0600 0600 0600 0600 0C00 0C00 0C00 0C00 1C00 1800 1800 F800 F800 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 1 3 BITMAP 0040 0040 00E0 01E0 03E0 0320 0630 0E30 0C10 1818 3818 3018 600C E00C ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 12 0 BBX 10 2 1 -3 BITMAP FFC0 FFC0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 4 11 BITMAP 30 60 40 C0 E0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 2 0 BITMAP 03F8 07F8 1E38 3830 3030 7070 60F0 E1F0 E1E0 E360 E760 FCE0 78E0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 2 0 BITMAP 0C00 1C00 1800 1800 18F0 19F8 3338 3638 3C38 3C38 7830 7070 6060 60E0 63C0 FF00 FE00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 2 0 BITMAP 07E0 0FE0 1C20 3000 7000 6000 E000 C000 C000 E000 E080 7F80 3E00 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 2 0 BITMAP 000C 001C 0018 0018 03F8 0FF8 1C38 3830 3030 7070 60F0 E1F0 E1E0 E360 E7E0 FCE0 78C0 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 13 0 BBX 10 13 2 0 BITMAP 0780 0FC0 38C0 30C0 60C0 6380 FF00 F800 C000 E040 E1C0 7FC0 3E00 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 9 0 BBX 12 24 2 -5 BITMAP 01F0 03F0 0700 0E00 0C00 0C00 7F80 7F80 1800 1800 1800 3800 3800 3000 3000 3000 7000 7000 6000 6000 6000 E000 E000 C000 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 1 -5 BITMAP 01FC 07FC 0E18 1C18 1818 3838 3038 7070 70F0 71B0 7330 7E70 3C60 0060 00E0 C0C0 FF80 7E00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 2 0 BITMAP 1C00 1C00 1800 1800 18E0 3BF0 3730 3E30 3C70 3870 7860 7060 6060 60E0 60E0 E0C0 C0C0 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 7 0 BBX 6 17 2 0 BITMAP 1C 1C 00 00 18 38 30 30 30 30 70 60 60 60 60 E0 C0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 8 0 BBX 12 22 -2 -5 BITMAP 0030 0070 0000 0000 0060 00E0 00E0 00C0 00C0 00C0 01C0 01C0 0180 0180 0180 0380 0380 0300 0700 8E00 FC00 F800 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 3 0 BITMAP 1C00 1C00 1800 1800 1870 38E0 31C0 3380 3700 3E00 6C00 6E00 6700 6300 6180 E1C0 C0E0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 7 0 BBX 6 17 2 0 BITMAP 0C 1C 18 18 18 38 38 30 30 30 70 70 60 60 60 E0 C0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 22 0 BBX 20 13 2 0 BITMAP 18F0E0 39F3F0 373770 363E70 3C7C70 3C7860 787860 707060 606060 6060E0 60E0C0 C0C0C0 C0C0C0 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 15 0 BBX 12 13 2 0 BITMAP 38E0 33F0 3730 3E30 3C70 7C70 7860 7060 6060 60E0 E0E0 E0C0 C0C0 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 2 0 BITMAP 07C0 1FE0 3870 3070 6070 6070 E070 C060 C0E0 E0C0 E380 7F00 3E00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 1 -5 BITMAP 1C78 1CFC 1B9C 1F1C 1E1C 3E1C 3C18 3838 3030 3070 71E0 7F80 7F00 6000 6000 E000 E000 C000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 2 -5 BITMAP 03F8 07F8 1E38 3830 3030 7070 60F0 E1F0 E1E0 E360 E760 FCE0 78E0 00C0 00C0 00C0 01C0 01C0 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 2 0 BITMAP 38E0 39E0 3300 3600 3C00 7C00 7800 7000 6000 6000 E000 E000 C000 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 2 0 BITMAP 0F80 1FC0 3840 3800 3800 1C00 0E00 0700 0300 0380 C380 FF00 7E00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 9 0 BBX 8 16 3 0 BITMAP 18 18 18 FF FF 30 30 30 70 60 60 60 E0 60 7C 38 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 15 0 BBX 12 13 3 0 BITMAP 3030 3070 3070 6060 6060 60E0 61E0 61E0 C3C0 C7C0 CEC0 FCC0 71C0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 3 0 BITMAP C070 C060 C0C0 E0C0 6180 6380 6300 6600 6600 6C00 7C00 7800 3000 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 19 0 BBX 18 13 3 0 BITMAP C0C0C0 C1C180 C1C180 E3C300 E3C300 E6E600 666E00 6C6C00 6C7C00 787800 787800 707000 707000 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 13 0 BBX 14 13 1 0 BITMAP 1C1C 0C38 0E70 0660 07C0 0380 0380 0780 0DC0 18C0 38E0 7060 E070 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 13 0 BBX 13 18 2 -5 BITMAP 6038 6030 7070 7060 30C0 31C0 3180 3380 3B00 3E00 3E00 1C00 1C00 1800 3000 3000 6000 E000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 2 0 BITMAP 1FF0 3FF0 00E0 01C0 0380 0700 0700 0E00 1C00 3800 7000 FFE0 FFC0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 8 0 BBX 8 21 2 -4 BITMAP 07 0F 0C 1C 1C 1C 18 18 38 F0 E0 20 30 30 70 60 60 C0 C0 70 30 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 6 0 BBX 6 21 1 -4 BITMAP 0C 0C 08 08 18 18 18 10 10 30 30 30 20 20 60 60 60 40 40 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 8 0 BBX 8 21 1 -4 BITMAP 0C 0F 03 03 07 06 06 0C 0E 07 03 0C 18 18 18 18 18 38 38 F0 E0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 15 0 BBX 15 6 1 4 BITMAP 1C06 3E06 6704 41CC C0F8 C070 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 8 0 BBX 6 18 2 -5 BITMAP 0C 1C 00 00 00 18 10 30 30 30 30 70 60 60 60 E0 E0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 15 0 BBX 11 17 4 0 BITMAP 0080 0100 07E0 0FE0 1D00 3300 7200 6200 E200 C600 C400 E400 E4C0 7F80 3F00 0800 0800 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 3 0 BITMAP 01F8 03F8 0708 0600 0600 0E00 0E00 3F80 3F80 0C00 1C00 1C00 1800 1800 3000 FFC0 FFC0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 15 0 BBX 17 15 1 1 BITMAP 100100 380380 1DEE00 0FFC00 0E1800 0C0800 180800 180800 181800 181800 0C7000 1FF800 33D800 E00C00 400800 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 4 0 BITMAP E01C 7038 3070 38E0 18C0 1D80 0F00 0E00 7FC0 7FC0 0C00 FF80 FF80 1C00 1800 1800 1800 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 6 0 BBX 6 21 1 -4 BITMAP 0C 0C 08 08 18 18 18 10 00 00 00 00 00 20 60 60 60 40 40 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 15 0 BBX 13 22 2 -5 BITMAP 03F8 0FF8 1C18 1800 1800 1800 0E00 0F80 1BC0 30E0 3070 3070 3860 1FE0 0FC0 01C0 00E0 00E0 00C0 C1C0 FF80 7F00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 14 0 BBX 7 2 7 15 BITMAP C6 C6 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 21 0 BBX 18 17 3 0 BITMAP 03F000 0FFE00 1C0F00 300380 60F980 43FCC0 C70840 860040 8C0040 8C0040 CE1040 47F0C0 63E180 300380 1C0F00 0FFE00 03F000 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 3 8 BITMAP 0E00 3F80 7180 6180 C300 CF00 DB00 F300 6600 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 13 0 BBX 12 11 2 1 BITMAP 0420 0E70 1CE0 39C0 7380 E700 6300 6380 3180 18C0 1080 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 15 0 BBX 14 7 2 3 BITMAP FFFC FFFC 000C 0008 0008 0018 0018 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 8 0 BBX 6 2 2 7 BITMAP FC FC ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 15 0 BBX 9 10 5 7 BITMAP 3E00 7F00 6380 DF80 9E80 9C80 F580 6380 7F00 3E00 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 14 0 BBX 7 2 7 15 BITMAP FE FE ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 6 0 BBX 4 4 4 13 BITMAP 60 90 90 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 15 0 BBX 16 14 1 0 BITMAP 0060 0040 00C0 00C0 3FFF 3FFF 0080 0180 0180 0180 0000 0000 FFFC FFFC ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 -12 7 BITMAP 1E 23 03 03 06 0C 30 60 C0 FC ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 -12 7 BITMAP 3E 02 03 06 38 0E 06 06 0C F8 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 14 0 BBX 6 3 8 14 BITMAP 1C 30 E0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 1 -4 BITMAP 1C0C 181C 1818 1818 3818 3838 3038 3070 30F0 71B0 7330 7F70 7C60 6000 E000 E000 C000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 15 0 BBX 11 21 4 -4 BITMAP 3FE0 7FE0 FE40 FE40 FE40 FEC0 7CC0 3C80 1C80 0C80 0D80 0980 0900 1900 1900 1B00 1300 1200 3200 3200 3600 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 15 0 BBX 3 2 7 7 BITMAP E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 14 0 BBX 4 6 5 -5 BITMAP 20 60 30 30 30 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 9 0 BBX 3 10 -15 7 BITMAP E0 20 60 40 40 40 40 C0 80 80 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 3 8 BITMAP 0F00 3F80 7180 6180 C180 C380 E700 FE00 7800 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 13 0 BBX 12 11 1 1 BITMAP 3180 3180 18C0 1CE0 0C60 0E70 1CE0 39C0 7380 E700 4200 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 21 0 BBX 18 17 9 0 BITMAP 7001C0 100380 300700 200E00 201C00 201800 203000 6060C0 40C1C0 418380 030C80 061980 0E3180 1C3FC0 380100 700300 E00300 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 21 0 BBX 18 17 9 0 BITMAP 7001C0 100380 300700 200E00 201C00 201800 203000 606780 40C8C0 4180C0 0300C0 060180 0E0300 1C0C00 381800 703000 E03F00 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 21 0 BBX 20 17 11 0 BITMAP 3E0070 0200E0 0301C0 060380 380700 0E0600 060C00 061830 0C3070 F860E0 00C320 018660 038C60 070FF0 0E0040 1C00C0 3800C0 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 11 0 BBX 10 18 1 -5 BITMAP 01C0 0180 0000 0000 0000 0380 0300 0600 0E00 1C00 3800 7000 E000 C000 C000 E080 7F80 3F00 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 16 0 BBX 16 21 0 0 BITMAP 0070 0030 0018 0000 0038 0078 0078 00D8 01DC 019C 039C 030C 060C 060E 0C0E 1FFE 1FFE 3006 3007 6007 E007 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 16 0 BBX 16 21 0 0 BITMAP 000E 0018 0070 0000 0038 0078 0078 00D8 01DC 019C 039C 030C 060C 060E 0C0E 1FFE 1FFE 3006 3007 6007 E007 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 16 0 BBX 16 21 0 0 BITMAP 003C 006C 01C6 0000 0038 0078 0078 00D8 01DC 019C 039C 030C 060C 060E 0C0E 1FFE 1FFE 3006 3007 6007 E007 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 16 0 BBX 16 20 0 0 BITMAP 007B 00DE 0000 0038 0078 0078 00D8 01DC 019C 039C 030C 060C 060E 0C0E 1FFE 1FFE 3006 3007 6007 E007 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 16 0 BBX 16 20 0 0 BITMAP 00C6 00C6 0000 0038 0078 0078 00D8 01DC 019C 039C 030C 060C 060E 0C0E 1FFE 1FFE 3006 3007 6007 E007 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 16 0 BBX 16 22 0 0 BITMAP 0018 0024 0024 0018 0000 0038 0078 0078 00D8 01DC 019C 039C 030C 060C 060E 0C0E 1FFE 1FFE 3006 3007 6007 E007 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 21 0 BBX 24 17 0 0 BITMAP 0007FF 000FFF 001F00 003F00 003F00 007600 00E7F8 01C7F8 018E00 030E00 07FC00 0FFC00 1C0C00 181C00 381C00 701FF8 E01FF8 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 16 0 BBX 16 22 3 -5 BITMAP 01FE 07FF 0F03 1C00 3800 7000 7000 6000 E000 E000 E000 E000 E000 E000 7818 3FF8 0FE0 0C00 0600 0600 0600 1C00 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 13 0 BBX 13 21 2 0 BITMAP 0380 0180 00C0 0000 1FF8 1FF8 1800 1800 3800 3800 3000 3FC0 3FC0 7000 7000 7000 6000 6000 E000 FFC0 FFC0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 13 0 BBX 13 21 2 0 BITMAP 0070 00C0 0380 0000 1FF8 1FF8 1800 1800 3800 3800 3000 3FC0 3FC0 7000 7000 7000 6000 6000 E000 FFC0 FFC0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 13 0 BBX 13 21 2 0 BITMAP 01E0 0360 0E30 0000 1FF8 1FF8 1800 1800 3800 3800 3000 3FC0 3FC0 7000 7000 7000 6000 6000 E000 FFC0 FFC0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 13 0 BBX 13 20 2 0 BITMAP 0C60 0C60 0000 1FF8 1FF8 1800 1800 3800 3800 3000 3FC0 3FC0 7000 7000 7000 6000 6000 E000 FFC0 FFC0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 7 0 BBX 7 21 2 0 BITMAP 1C 0C 06 00 1C 1C 18 18 18 38 38 30 30 30 70 70 60 60 60 E0 E0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 7 0 BBX 9 21 2 0 BITMAP 0380 0600 1C00 0000 1C00 1C00 1800 1800 1800 3800 3800 3000 3000 3000 7000 7000 6000 6000 6000 E000 E000 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 7 0 BBX 9 21 2 0 BITMAP 0F00 1B00 7180 0000 1C00 1C00 1800 1800 1800 3800 3800 3000 3000 3000 7000 7000 6000 6000 6000 E000 E000 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 7 0 BBX 8 20 2 0 BITMAP 63 63 00 1C 1C 18 18 18 38 38 30 30 30 70 70 60 60 60 E0 E0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 18 0 BBX 18 17 1 0 BITMAP 0FFE00 0FFF00 0E0780 0C03C0 0C01C0 1C01C0 1C01C0 FFC1C0 FF81C0 180180 380380 380300 300700 300E00 303C00 7FF800 7FE000 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 18 0 BBX 17 20 2 0 BITMAP 01EC00 037800 000000 1C0180 1E0180 1E0300 1F0300 1F0300 3B0300 338300 318600 31C600 30C600 60E600 606E00 607C00 607C00 603C00 C03C00 C01C00 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 19 0 BBX 17 21 3 0 BITMAP 00E000 006000 003000 000000 01F800 07FE00 0F0F00 1C0700 380380 700380 700380 600380 E00380 E00300 E00700 E00600 E00E00 F01C00 787800 3FF000 0F8000 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 19 0 BBX 17 21 3 0 BITMAP 001C00 003000 00E000 000000 01F800 07FE00 0F0F00 1C0700 380380 700380 700380 600380 E00380 E00300 E00700 E00600 E00E00 F01C00 787800 3FF000 0F8000 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 19 0 BBX 17 21 3 0 BITMAP 007800 00D800 038C00 000000 01F800 07FE00 0F0F00 1C0700 380380 700380 700380 600380 E00380 E00300 E00700 E00600 E00E00 F01C00 787800 3FF000 0F8000 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 19 0 BBX 17 20 3 0 BITMAP 01EC00 037800 000000 01F800 07FE00 0F0F00 1C0700 380380 700380 700380 600380 E00380 E00300 E00700 E00600 E00E00 F01C00 787800 3FF000 0F8000 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 19 0 BBX 17 20 3 0 BITMAP 018C00 018C00 000000 01F800 07FE00 0F0F00 1C0700 380380 700380 700380 600380 E00380 E00300 E00700 E00600 E00E00 F01C00 787800 3FF000 0F8000 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 15 0 BBX 16 14 1 0 BITMAP 3002 1807 1C0E 0C18 0630 03E0 01C0 03C0 07C0 0C60 1830 7038 E01C 4008 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 19 0 BBX 20 17 4 0 BITMAP 00FC70 03FFE0 078780 0E0380 1C07C0 380DC0 3819C0 3031C0 7061C0 70C180 718380 730300 760700 7C0E00 3C3C00 7FF800 E7C000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 17 0 BBX 15 21 3 0 BITMAP 01C0 00C0 0060 0000 3806 3806 300C 300C 700C 700C 701C 6018 6018 E018 E018 E038 E030 E070 F0E0 7FC0 3F80 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 17 0 BBX 15 21 3 0 BITMAP 0038 0060 01C0 0000 3806 3806 300C 300C 700C 700C 701C 6018 6018 E018 E018 E038 E030 E070 F0E0 7FC0 3F80 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 17 0 BBX 15 21 3 0 BITMAP 00F0 01B0 0718 0000 3806 3806 300C 300C 700C 700C 701C 6018 6018 E018 E018 E038 E030 E070 F0E0 7FC0 3F80 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 17 0 BBX 15 20 3 0 BITMAP 0630 0630 0000 3806 3806 300C 300C 700C 700C 701C 6018 6018 E018 E018 E038 E030 E070 F0E0 7FC0 3F80 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 15 0 BBX 14 21 4 0 BITMAP 00E0 0180 0700 0000 E01C 6038 7070 3060 38C0 39C0 1B80 1F00 0E00 0C00 0C00 0C00 1C00 1C00 1800 1800 3800 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 2 0 BITMAP 1C00 1800 1800 1FC0 3FE0 3870 3070 3070 3070 7060 70E0 61C0 7F80 7E00 E000 E000 E000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 14 0 BBX 13 24 1 -5 BITMAP 03E0 07F0 0630 0E30 0C30 0C60 1CC0 1D80 1B80 1B80 19C0 38E0 3870 3038 3018 3018 7238 73F0 63E0 6000 6000 E000 E000 C000 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 2 0 BITMAP 01C0 00C0 0060 0000 03F8 07F8 1E38 3830 3030 7070 60F0 E1F0 E1E0 E360 E760 FCE0 78E0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 2 0 BITMAP 0038 0060 01C0 0000 03F8 07F8 1E38 3830 3030 7070 60F0 E1F0 E1E0 E360 E760 FCE0 78E0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 2 0 BITMAP 00F0 01B0 0718 0000 03F8 07F8 1E38 3830 3030 7070 60F0 E1F0 E1E0 E360 E760 FCE0 78E0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 15 0 BBX 13 16 2 0 BITMAP 03D8 06F0 0000 03F8 07F8 1E38 3830 3030 7070 60F0 E1F0 E1E0 E360 E760 FCE0 78E0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 15 0 BBX 13 16 2 0 BITMAP 0630 0630 0000 03F8 07F8 1E38 3830 3030 7070 60F0 E1F0 E1E0 E360 E760 FCE0 78E0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 2 0 BITMAP 00C0 0120 0120 00C0 0000 03F8 07F8 1E38 3830 3030 7070 60F0 E1F0 E1E0 E360 E760 FCE0 78E0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 21 0 BBX 19 13 2 0 BITMAP 03FBC0 0FFFE0 1C3C60 383860 307060 7071C0 60FF80 E1FC00 E3E000 E76020 EF70E0 FE3FC0 781F00 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 12 0 BBX 11 18 2 -5 BITMAP 07E0 0FE0 1C20 3000 7000 6000 E000 C000 C000 E000 E080 7F80 3E00 1800 0C00 0C00 0C00 3800 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 13 0 BBX 10 17 2 0 BITMAP 0380 0180 00C0 0000 0780 0FC0 38C0 30C0 60C0 6380 FF00 F800 C000 E040 E1C0 7FC0 3E00 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 13 0 BBX 12 17 2 0 BITMAP 0070 00C0 0380 0000 0780 0FC0 38C0 30C0 60C0 6380 FF00 F800 C000 E040 E1C0 7FC0 3E00 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 13 0 BBX 12 17 2 0 BITMAP 01E0 0360 0E30 0000 0780 0FC0 38C0 30C0 60C0 6380 FF00 F800 C000 E040 E1C0 7FC0 3E00 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 13 0 BBX 11 16 2 0 BITMAP 0C60 0C60 0000 0780 0FC0 38C0 30C0 60C0 6380 FF00 F800 C000 E040 E1C0 7FC0 3E00 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 7 0 BBX 7 17 2 0 BITMAP 1C 0C 06 00 18 38 30 30 30 30 70 60 60 60 60 E0 C0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 7 0 BBX 9 17 2 0 BITMAP 0380 0600 1C00 0000 1800 3800 3000 3000 3000 3000 7000 6000 6000 6000 6000 E000 C000 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 7 0 BBX 9 17 2 0 BITMAP 0F00 1B00 7180 0000 1800 3800 3000 3000 3000 3000 7000 6000 6000 6000 6000 E000 C000 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 7 0 BBX 8 16 2 0 BITMAP 63 63 00 18 38 30 30 30 30 70 60 60 60 60 E0 C0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 13 0 BBX 12 17 2 0 BITMAP 1FC0 3FE0 07C0 0FC0 07E0 1FE0 3870 3070 6070 6070 E060 C060 C0E0 E0C0 E3C0 7F80 3E00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 15 0 BBX 13 16 2 0 BITMAP 03D8 06F0 0000 38E0 33F0 3730 3E30 3C70 7C70 7860 7060 6060 60E0 E0E0 E0C0 C0C0 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 2 0 BITMAP 0380 0180 00C0 0000 07C0 1FE0 3870 3070 6070 6070 E070 C060 C0E0 E0C0 E380 7F00 3E00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 2 0 BITMAP 0070 00C0 0380 0000 07C0 1FE0 3870 3070 6070 6070 E070 C060 C0E0 E0C0 E380 7F00 3E00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 2 0 BITMAP 01E0 0360 0E30 0000 07C0 1FE0 3870 3070 6070 6070 E070 C060 C0E0 E0C0 E380 7F00 3E00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 14 0 BBX 12 16 2 0 BITMAP 07B0 0DE0 0000 07C0 1FE0 3870 3070 6070 6070 E070 C060 C0E0 E0C0 E380 7F00 3E00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 14 0 BBX 12 16 2 0 BITMAP 0630 0630 0000 07C0 1FE0 3870 3070 6070 6070 E070 C060 C0E0 E0C0 E380 7F00 3E00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 15 0 BBX 14 13 2 0 BITMAP 0180 0380 0000 0000 0000 FFFC FFFC 0000 0000 0000 0000 0700 0600 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 14 0 BBX 14 13 3 0 BITMAP 03FC 0FF8 1C78 1878 30F8 31B8 7338 6630 6C70 7860 79C0 7F80 FF00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 3 0 BITMAP 0380 0180 00C0 0000 3030 3070 3070 6060 6060 60E0 61E0 61E0 C3C0 C7C0 CEC0 FCC0 71C0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 3 0 BITMAP 0070 00C0 0380 0000 3030 3070 3070 6060 6060 60E0 61E0 61E0 C3C0 C7C0 CEC0 FCC0 71C0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 3 0 BITMAP 01E0 0360 0E30 0000 3030 3070 3070 6060 6060 60E0 61E0 61E0 C3C0 C7C0 CEC0 FCC0 71C0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 15 0 BBX 12 16 3 0 BITMAP 0630 0630 0000 3030 3070 3070 6060 6060 60E0 61E0 61E0 C3C0 C7C0 CEC0 FCC0 71C0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 13 0 BBX 13 22 2 -5 BITMAP 0070 00C0 0380 0000 6038 6030 7070 7060 30C0 31C0 3180 3380 3B00 3E00 3E00 1C00 1C00 1800 3000 3000 6000 E000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 15 0 BBX 14 21 1 -5 BITMAP 0E00 0C00 0C00 1C78 1CFC 1B9C 1B1C 1E1C 3E1C 3C18 3838 3030 3070 71E0 7F80 7F00 6000 6000 E000 E000 C000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 13 0 BBX 13 21 2 -5 BITMAP 0C60 0C60 0000 6038 6030 7070 7060 30C0 31C0 3180 3380 3B00 3E00 3E00 1C00 1C00 1800 3000 3000 6000 E000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 15 24 2 -5 BITMAP 01FE 03FE 060E 0E0C 0C0C 0C0C 7F9C 7F9C 1818 1818 1818 3838 3838 3030 3030 3030 7070 7070 6060 6000 6000 E000 E000 C000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 2 2 7 BITMAP FFC0 FFC0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 10 21 5 -4 BITMAP 0600 0600 0600 0600 0C00 0C00 FFC0 FFC0 0C00 0C00 0800 1800 1800 1800 1800 3000 3000 3000 3000 3000 7000 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 16 21 0 0 BITMAP 018E 00D8 00F0 0000 0FFF 0FFF 000E 001C 0038 0070 00E0 01C0 03C0 0780 0700 0E00 1C00 3800 7000 FFF8 FFF8 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 22 0 BBX 20 13 2 0 BITMAP 07C3E0 0FE7E0 387C70 307860 607060 6071C0 E07F80 C07E00 C0E000 E0F020 E3F0E0 7F3FE0 3E1F00 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 14 20 4 0 BITMAP 0C60 0C60 0000 E01C 6038 7070 3060 38C0 39C0 1B80 1F00 0E00 0C00 0C00 0C00 1C00 1C00 1800 1800 3800 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 13 2 0 BITMAP 18 38 30 30 30 30 70 60 60 60 60 E0 C0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 9 17 1 0 BITMAP 0600 0600 0600 0E00 0C80 0F80 0F00 1C00 7800 D800 9800 3800 3800 3000 3000 3000 7000 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 12 17 1 0 BITMAP 0600 0E00 0E00 0C00 0C80 0F00 1F00 1C00 7800 F800 9800 3800 3800 3000 3000 3FF0 7FF0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 12 21 3 -4 BITMAP 0180 0180 0180 0300 0300 0300 3FF0 7FF0 0700 0600 0600 0600 0E00 FFE0 FFC0 0C00 0C00 0C00 1800 1800 1800 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 15 24 2 -5 BITMAP 01F0 03E0 0706 0E0E 0C00 0C00 7FFC 7FFC 181C 1818 1818 3818 3838 3038 3030 3030 7030 7070 6070 6000 6000 E000 E000 C000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 1 1 BITMAP 30 30 18 1C 0C 0E 1C 38 70 E0 40 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 24 0 BBX 24 17 2 0 BITMAP 01FBFF 07FFFF 0F0F00 1C0700 380700 700700 700600 6007F8 E00FF8 E00E00 E00E00 E00C00 E01C00 F01C00 787C00 3FFFF8 0FDFF8 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 24 0 BBX 22 2 2 6 BITMAP FFFFFC FFFFFC ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 8 3 7 14 BITMAP C7 6C 78 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 4 3 4 -4 BITMAP 60 C0 F0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 8 3 7 14 BITMAP 1B 2C D8 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 2 1 BITMAP 04 0E 1C 38 70 E0 60 60 30 18 10 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 3 2 9 15 BITMAP E0 E0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 8 3 7 14 BITMAP C3 C6 7C ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 9 7 4 4 BITMAP 7F80 7F80 7F00 7F00 7F00 FF00 FF00 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 8 2 6 15 BITMAP 7B DE ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 8 3 6 14 BITMAP 1E 36 E3 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 5 4 12 BITMAP 33 66 4C EE CE ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 4 12 BITMAP E0 E0 E0 C0 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 17 2 0 BITMAP 0C70 06C0 0780 0000 0F80 1FC0 3840 3800 3800 1C00 0E00 0700 0300 0380 C380 FF00 7E00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 4 4 9 15 BITMAP 60 90 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 1 -4 BITMAP 70 70 70 70 20 60 60 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 11 21 5 -4 BITMAP 03E0 07E0 0E00 0C00 1C00 1800 1800 1800 FE00 FE00 3000 3000 3000 3000 7000 6000 6000 6000 6000 E000 C000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 18 9 3 8 BITMAP FF71C0 FF71C0 1873C0 187380 305780 30DD80 30D980 30D980 708300 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 18 17 -5 0 BITMAP 0001C0 000380 000700 000E00 001C00 001800 003000 006000 00C000 018000 030000 060000 0E0000 1C0000 380000 700000 E00000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 4 3 8 14 BITMAP E0 60 30 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 25 0 BBX 24 17 2 0 BITMAP 0F0180 1F8300 398600 318C00 219800 333000 3F6000 1E6000 00DC1E 01BE3F 036373 066363 0CC343 18C643 30E666 607C7E C03838 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 24 0 BBX 19 2 3 0 BITMAP E0E060 C0E0E0 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 5 4 12 BITMAP 77 66 66 44 88 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 13 21 2 0 BITMAP 0638 0360 03C0 0000 03F0 0FF8 1E08 1C00 1800 1C00 1E00 0F00 0780 01C0 00E0 0060 0060 00E0 C1E0 FFC0 7F00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 0 -5 BITMAP 77 66 66 62 66 46 CC 88 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 2 0 BITMAP 0638 0360 03C0 0000 1FF0 3FF0 00E0 01C0 0380 0700 0700 0E00 1C00 3800 7000 FFE0 FFC0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/luRS08.bdf100644 1750 1750 53737 5413747471 15023 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Medium-R-Normal-Sans-8-80-75-75-P-45-ISO8859-1 SIZE 8 72 72 FONTBOUNDINGBOX 12 11 -4 -3 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 8 POINT_SIZE 80 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 45 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 7 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 3 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 3 0 BBX 1 6 1 0 BITMAP 80 80 80 80 00 80 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 3 0 BBX 2 2 0 4 BITMAP C0 C0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 38 F8 50 F8 60 E0 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 5 0 BBX 3 7 1 -1 BITMAP E0 C0 C0 60 60 E0 40 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP D0 E0 E0 70 70 B0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 -1 BITMAP 60 60 40 F0 B0 60 10 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 2 0 BBX 1 2 0 4 BITMAP 80 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 3 0 BBX 2 8 0 -2 BITMAP 40 80 80 80 80 80 80 40 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 3 0 BBX 2 8 0 -2 BITMAP 80 40 40 40 40 40 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 4 0 BBX 3 3 0 3 BITMAP 40 E0 A0 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 20 20 F8 20 20 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 3 0 BBX 1 3 1 -2 BITMAP 80 80 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 5 0 BBX 5 1 0 2 BITMAP F8 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 3 0 BBX 1 1 1 0 BITMAP 80 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 4 0 BBX 4 8 0 -2 BITMAP 10 30 20 20 40 40 C0 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 60 90 90 90 90 60 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 5 0 BBX 2 6 1 0 BITMAP C0 40 40 40 40 40 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP E0 10 10 60 C0 F0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP E0 10 60 30 10 E0 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 30 70 D0 F8 10 10 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP E0 80 E0 20 20 C0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 70 80 E0 90 90 60 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP F0 10 20 40 C0 80 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 70 90 60 B0 90 60 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 60 90 90 70 10 E0 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 3 0 BBX 1 4 1 0 BITMAP 80 00 00 80 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 3 0 BBX 1 6 1 -2 BITMAP 80 00 00 80 80 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 08 30 C0 30 08 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 5 0 BBX 5 2 0 1 BITMAP F8 F8 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 80 60 18 60 80 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 0 0 BITMAP E0 20 20 40 40 40 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 1 0 BITMAP 3C 5E AA B2 FC 78 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP 20 70 50 70 88 88 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP F0 90 E0 B0 90 E0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP 78 C0 80 80 C8 78 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP F0 98 88 88 88 F0 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 0 0 BITMAP F0 80 E0 80 80 F0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 1 0 BITMAP E0 80 80 E0 80 80 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP 78 C0 80 88 C8 78 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 0 BITMAP 90 90 F0 90 90 90 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 2 0 BBX 1 6 1 0 BITMAP 80 80 80 80 80 80 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 2 0 BBX 3 8 0 -2 BITMAP 20 20 20 20 20 20 20 C0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP B0 A0 C0 C0 A0 90 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 0 0 BITMAP 80 80 80 80 80 F0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 0 BITMAP 88 D8 D8 D8 A8 A8 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 0 BITMAP 90 D0 D0 B0 B0 90 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 70 D8 88 88 D8 70 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 1 0 BITMAP F0 90 90 E0 80 80 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 -2 BITMAP 70 D8 88 88 D8 70 08 04 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP E0 A0 A0 C0 A0 90 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 1 0 BITMAP E0 80 C0 60 20 E0 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP F8 20 20 20 20 20 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 0 BITMAP 90 90 90 90 90 F0 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 88 88 50 50 70 20 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP 92 92 6C 6C 6C 6C ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP C8 50 20 60 50 88 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 88 50 50 20 20 20 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP F0 30 20 40 C0 F0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 3 0 BBX 2 8 1 -2 BITMAP C0 80 80 80 80 80 80 C0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 4 0 BBX 4 8 0 -2 BITMAP 80 C0 40 40 20 20 30 10 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 3 0 BBX 2 8 0 -2 BITMAP C0 40 40 40 40 40 40 C0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 1 BITMAP 20 20 50 50 88 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 4 0 BBX 3 1 1 -1 BITMAP E0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 2 0 BBX 1 2 0 4 BITMAP 80 80 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 0 0 BITMAP E0 60 A0 D0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 80 80 E0 90 90 E0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 1 0 BITMAP 60 80 80 60 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 10 10 70 90 90 70 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 0 0 BITMAP 60 F0 80 70 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 0 0 BITMAP 60 40 E0 40 40 40 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 -2 BITMAP 70 90 90 70 10 E0 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP 80 80 E0 A0 A0 A0 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 2 0 BBX 1 6 1 0 BITMAP 80 00 80 80 80 80 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 2 0 BBX 2 8 0 -2 BITMAP 40 00 40 40 40 40 40 C0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 80 80 B0 E0 E0 B0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 2 0 BBX 1 6 1 0 BITMAP 80 80 80 80 80 80 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 7 0 BBX 5 4 1 0 BITMAP F8 A8 A8 A8 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 5 0 BBX 3 4 1 0 BITMAP E0 A0 A0 A0 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP 60 90 90 60 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 -2 BITMAP E0 90 90 E0 80 80 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 -2 BITMAP 70 90 90 70 10 10 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 3 0 BBX 3 4 0 0 BITMAP E0 80 80 80 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 1 0 BITMAP E0 C0 20 E0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 0 0 BITMAP 40 40 E0 40 40 60 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 5 0 BBX 3 4 1 0 BITMAP A0 A0 A0 E0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 0 0 BITMAP 90 B0 60 60 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 6 0 BBX 6 4 0 0 BITMAP B4 B4 78 48 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP 90 60 60 90 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 0 -2 BITMAP 90 D0 60 60 60 40 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP F0 20 40 F0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 0 -2 BITMAP 60 40 40 40 C0 40 40 60 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 2 0 BBX 1 8 1 -2 BITMAP 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 0 -2 BITMAP C0 40 40 60 40 40 40 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 5 0 BBX 5 2 0 1 BITMAP E8 B8 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 3 0 BBX 1 6 1 -2 BITMAP 80 00 80 80 80 80 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP 40 E0 C0 C0 E0 40 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 70 40 E0 40 40 F0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 88 70 50 50 70 88 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 88 50 30 70 70 20 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 2 0 BBX 1 8 1 -2 BITMAP 80 80 80 00 00 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 5 0 BBX 3 8 1 -2 BITMAP E0 80 40 E0 A0 40 20 E0 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 5 0 BBX 2 1 1 5 BITMAP C0 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP 38 F4 A2 A2 F4 38 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 3 0 BBX 3 3 0 3 BITMAP E0 E0 E0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 1 0 BITMAP 60 E0 E0 60 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 5 0 BBX 5 2 0 1 BITMAP F8 08 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 3 0 BBX 2 1 0 2 BITMAP C0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 1 2 BITMAP 60 F0 F0 60 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 5 0 BBX 2 1 1 5 BITMAP C0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 2 0 BBX 1 2 1 4 BITMAP 80 80 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 20 F8 20 00 F8 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 3 0 BBX 3 3 -3 3 BITMAP E0 60 E0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 3 0 BBX 3 3 -3 3 BITMAP E0 C0 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 5 0 BBX 2 1 2 5 BITMAP C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 -2 BITMAP A0 A0 A0 E0 80 80 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 0 -2 BITMAP F0 F0 F0 30 30 30 30 30 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 2 2 BITMAP 80 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 5 0 BBX 1 2 2 -2 BITMAP 80 80 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 -4 3 BITMAP C0 40 40 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 3 0 BBX 3 3 0 3 BITMAP E0 A0 E0 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 1 0 BITMAP C0 E0 E0 C0 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 2 0 BITMAP C4 48 50 1C 3C 44 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 2 0 BITMAP C4 48 50 1C 2C 5C ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 2 0 BITMAP E4 C8 F0 1C 3C 44 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 0 -2 BITMAP 40 40 40 80 80 E0 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 0 0 BITMAP 60 20 70 50 70 88 88 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 0 0 BITMAP 30 20 70 50 70 88 88 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 0 0 BITMAP 70 20 70 50 70 88 88 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 0 0 BITMAP 70 20 70 50 70 88 88 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 0 0 BITMAP 30 20 70 50 70 88 88 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 0 BITMAP 20 50 20 70 50 70 88 88 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP 1E 30 30 5C F0 9E ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 -2 BITMAP 78 C0 80 80 C8 78 20 20 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 4 0 BBX 4 7 0 0 BITMAP 20 F0 80 E0 80 80 F0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 4 0 BBX 4 7 0 0 BITMAP 40 F0 80 E0 80 80 F0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 4 0 BBX 4 7 0 0 BITMAP A0 F0 80 E0 80 80 F0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 4 0 BBX 4 7 0 0 BITMAP 60 F0 80 E0 80 80 F0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 2 0 BBX 2 7 2 0 BITMAP C0 40 40 40 40 40 40 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 2 0 BBX 2 7 1 0 BITMAP C0 80 80 80 80 80 80 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 2 0 BBX 3 7 2 0 BITMAP E0 40 40 40 40 40 40 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 2 0 BBX 2 7 1 0 BITMAP C0 80 80 80 80 80 80 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 78 4C E4 44 44 78 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP 70 90 D0 D0 B0 B0 90 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 20 70 D8 88 88 D8 70 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 20 70 D8 88 88 D8 70 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 70 70 D8 88 88 D8 70 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 70 70 D8 88 88 D8 70 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 30 70 D8 88 88 D8 70 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 88 50 20 50 88 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 78 D8 A8 A8 D8 F0 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP 60 90 90 90 90 90 F0 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP 60 90 90 90 90 90 F0 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP 70 90 90 90 90 90 F0 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP 60 90 90 90 90 90 F0 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 30 88 50 50 20 20 20 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 1 0 BITMAP 80 F0 90 90 E0 80 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP E0 A0 A0 A0 90 B0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 0 0 BITMAP 20 E0 60 A0 D0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 0 0 BITMAP 40 E0 60 A0 D0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 0 0 BITMAP E0 E0 60 A0 D0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 0 0 BITMAP E0 E0 60 A0 D0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 0 0 BITMAP 60 E0 60 A0 D0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 0 0 BITMAP 40 A0 E0 60 A0 D0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 7 0 BBX 5 4 1 0 BITMAP D8 78 A0 D8 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 1 -2 BITMAP 60 80 80 60 40 40 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 0 0 BITMAP 60 60 F0 80 70 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 0 0 BITMAP 60 60 F0 80 70 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 0 0 BITMAP 70 60 F0 80 70 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 0 0 BITMAP 60 60 F0 80 70 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 2 0 BBX 2 5 2 0 BITMAP C0 40 40 40 40 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 2 0 BBX 2 5 1 0 BITMAP C0 80 80 80 80 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 2 0 BBX 3 5 2 0 BITMAP E0 40 40 40 40 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 2 0 BBX 2 5 1 0 BITMAP C0 80 80 80 80 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP E0 60 70 90 90 60 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 0 BITMAP E0 E0 A0 A0 A0 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 60 60 90 90 60 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 60 60 90 90 60 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 70 60 90 90 60 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 70 60 90 90 60 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 60 60 90 90 60 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 0 BITMAP 20 00 F8 20 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP 70 B0 D0 E0 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 0 BITMAP C0 A0 A0 A0 E0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 0 BITMAP 60 A0 A0 A0 E0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 0 BITMAP E0 A0 A0 A0 E0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 0 BITMAP 60 A0 A0 A0 E0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 4 0 BBX 4 7 0 -2 BITMAP 60 90 D0 60 60 60 40 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 1 -2 BITMAP 80 80 E0 90 90 E0 80 80 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 4 0 BBX 4 7 0 -2 BITMAP 60 90 D0 60 60 60 40 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 70 50 D0 50 50 50 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 1 1 2 BITMAP E0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 8 1 -2 BITMAP 40 40 E0 40 40 40 40 40 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 0 0 BITMAP 50 F0 30 20 40 C0 F0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 4 0 0 BITMAP 6E 9E 90 6E ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 30 88 50 50 20 20 20 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 1 4 1 0 BITMAP 80 80 80 80 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 3 6 0 0 BITMAP 40 40 60 C0 40 40 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 6 6 1 0 BITMAP 20 20 30 E0 20 3C ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 8 1 -2 BITMAP 40 40 E0 40 40 E0 40 40 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 70 40 F0 50 50 50 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 0 0 BITMAP 80 40 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 6 0 0 BITMAP 7F C8 8E 88 C8 7F ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 1 1 2 BITMAP FE ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 1 5 BITMAP E0 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 1 2 2 -3 BITMAP 80 80 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 2 1 2 5 BITMAP C0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 0 0 BITMAP 40 80 80 40 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 2 5 BITMAP 80 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 1 5 BITMAP E0 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 2 2 2 2 BITMAP C0 C0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 1 5 BITMAP E0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 1 5 BITMAP E0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 2 0 4 BITMAP C0 C0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 1 2 0 4 BITMAP 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 1 0 BITMAP E0 E0 C0 20 E0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 3 4 BITMAP 40 A0 40 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 1 3 0 -2 BITMAP 80 80 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 1 -2 BITMAP 30 40 40 E0 40 40 80 80 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 3 0 3 BITMAP F4 5C 5C ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 0 0 BBX 5 6 -1 0 BITMAP 08 10 20 20 40 80 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 2 1 1 5 BITMAP C0 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 6 1 0 BITMAP D0 E0 E0 7C 7C BC ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 1 1 0 BITMAP 94 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 2 0 4 BITMAP C0 C0 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 7 1 0 BITMAP E0 E0 80 C0 60 20 E0 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 0 -2 BITMAP C0 C0 C0 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 50 F0 20 40 F0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/luRS10.bdf100644 1750 1750 56063 5413747471 15007 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. COMMENT GRID 0010 0010 0200 0200 FONT -B&H-Lucida-Medium-R-Normal-Sans-10-100-75-75-P-58-ISO8859-1 SIZE 10 72 72 FONTBOUNDINGBOX 11 11 0 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 10 POINT_SIZE 100 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 58 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 9 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 3 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 3 0 BBX 1 7 1 0 BITMAP 80 80 80 80 00 80 80 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 4 0 BBX 3 3 1 5 BITMAP A0 A0 A0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 50 50 D8 50 D8 50 50 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 -1 BITMAP 20 78 A0 A0 70 28 28 F0 20 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 0 BITMAP 40 A4 48 10 24 4A 04 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 60 90 60 64 94 98 64 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 2 0 BBX 2 3 0 5 BITMAP 40 40 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 4 0 BBX 2 9 1 -1 BITMAP 40 40 80 80 80 80 80 40 40 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 4 0 BBX 2 9 1 -1 BITMAP 80 80 40 40 40 40 40 80 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 1 4 BITMAP A0 40 A0 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 1 BITMAP 20 20 F8 20 20 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 2 0 BBX 2 4 0 -2 BITMAP 40 40 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 6 0 BBX 5 1 1 3 BITMAP F8 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 2 0 BBX 1 2 1 0 BITMAP 80 80 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 5 0 BBX 5 9 0 -1 BITMAP 08 08 10 10 20 40 40 80 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP 60 90 90 90 90 90 60 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 6 0 BBX 3 7 1 0 BITMAP 20 E0 20 20 20 20 20 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP E0 10 10 20 40 80 F0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP E0 10 10 60 10 10 E0 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 10 30 50 90 F8 10 10 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP F0 80 80 E0 10 10 E0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP 70 80 80 E0 90 90 60 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP F0 10 20 20 40 40 40 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP 60 90 90 60 90 90 60 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP 60 90 90 70 10 10 E0 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 2 0 BBX 1 6 1 0 BITMAP 80 80 00 00 80 80 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 2 0 BBX 2 8 0 -2 BITMAP 40 40 00 00 40 40 40 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 0 1 BITMAP 18 60 80 60 18 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 6 0 BBX 5 3 1 2 BITMAP F8 00 F8 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 1 BITMAP C0 30 08 30 C0 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 0 BITMAP E0 10 10 60 00 40 40 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 0 BITMAP 38 44 9C A4 9E 40 3C ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 20 20 50 50 F8 88 88 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP E0 90 90 E0 90 90 E0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 38 40 80 80 80 40 38 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP F0 88 84 84 84 88 F0 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP F0 80 80 E0 80 80 F0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 0 BITMAP F0 80 80 E0 80 80 80 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 38 40 80 80 88 48 38 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 88 88 88 F8 88 88 88 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 3 0 BBX 1 7 1 0 BITMAP 80 80 80 80 80 80 80 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 4 0 BBX 3 9 0 -2 BITMAP 20 20 20 20 20 20 20 20 C0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 88 90 A0 C0 A0 90 88 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 0 BITMAP 80 80 80 80 80 80 F0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 0 BITMAP C6 C6 AA BA 92 92 82 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP 84 C4 A4 94 94 8C 84 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP 30 48 84 84 84 48 30 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP E0 90 90 E0 80 80 80 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 -2 BITMAP 30 48 84 84 84 48 30 08 04 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP E0 90 90 E0 A0 90 88 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP 70 80 80 60 10 10 E0 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP F8 20 20 20 20 20 20 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 88 88 88 88 88 88 70 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 88 88 88 50 50 20 20 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 0 BITMAP 82 92 92 AA 44 44 44 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 88 88 50 20 50 88 88 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 88 88 50 20 20 20 20 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP F0 10 20 60 40 80 F0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 4 0 BBX 2 9 1 -1 BITMAP C0 80 80 80 80 80 80 80 C0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 5 0 BBX 5 9 0 -1 BITMAP 80 80 40 40 20 10 10 08 08 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 4 0 BBX 2 9 1 -1 BITMAP C0 40 40 40 40 40 40 40 C0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 1 BITMAP 20 20 50 50 88 88 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 7 0 BBX 5 1 1 -1 BITMAP F8 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 2 0 BBX 2 3 0 5 BITMAP 40 80 80 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 60 10 70 90 90 68 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 0 BITMAP 80 80 A0 D0 90 90 90 E0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 0 BITMAP 70 80 80 80 80 70 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 0 BITMAP 10 10 70 90 90 90 B0 50 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 0 BITMAP 60 90 F0 80 80 70 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 4 0 BBX 4 8 0 0 BITMAP 30 40 F0 40 40 40 40 40 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 -2 BITMAP 70 90 90 90 B0 50 10 60 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 0 BITMAP 80 80 A0 D0 90 90 90 90 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 3 0 BBX 1 8 1 0 BITMAP 80 00 80 80 80 80 80 80 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 3 0 BBX 2 10 0 -2 BITMAP 40 00 40 40 40 40 40 40 40 80 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 80 80 90 A0 C0 A0 90 88 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 3 0 BBX 1 8 1 0 BITMAP 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 9 0 BBX 7 6 1 0 BITMAP A4 DA 92 92 92 92 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 0 BITMAP A0 D0 90 90 90 90 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 0 BITMAP 60 90 90 90 90 60 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 -2 BITMAP A0 D0 90 90 90 E0 80 80 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 -2 BITMAP 70 90 90 90 B0 50 10 10 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP A0 E0 80 80 80 80 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP 60 80 C0 60 20 C0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 4 0 BBX 4 7 0 0 BITMAP 40 F0 40 40 40 40 30 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 0 BITMAP 90 90 90 90 B0 50 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 0 BITMAP 90 90 90 90 60 60 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 9 0 BBX 7 6 1 0 BITMAP 82 92 92 AA 44 44 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 0 BITMAP 90 90 60 60 90 90 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 -2 BITMAP 90 90 90 90 60 60 40 C0 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 0 BITMAP F0 10 20 40 80 F0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 4 0 BBX 3 9 0 -1 BITMAP 20 40 40 40 80 40 40 40 20 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 3 0 BBX 1 9 1 -1 BITMAP 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 4 0 BBX 3 9 1 -1 BITMAP 80 40 40 40 20 40 40 40 80 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 7 0 BBX 6 2 1 3 BITMAP 64 98 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 3 0 BBX 1 7 1 -1 BITMAP 80 80 00 80 80 80 80 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 20 78 A0 A0 A0 78 20 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 38 40 40 F0 40 40 F8 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 84 78 48 48 48 78 84 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 88 88 50 20 F8 20 20 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 3 0 BBX 1 9 1 -1 BITMAP 80 80 80 80 00 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 -1 BITMAP 78 C0 60 90 48 30 18 F0 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 6 0 BBX 4 1 1 7 BITMAP 90 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 0 BITMAP 38 44 BA A2 BA 44 38 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 2 BITMAP C0 20 60 A0 50 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 6 0 BBX 5 3 0 2 BITMAP 48 90 48 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 6 0 BBX 5 3 1 1 BITMAP F8 08 08 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 3 0 BBX 2 1 1 3 BITMAP C0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 0 BITMAP 38 44 BA B2 AA 44 38 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 2 7 BITMAP E0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 3 0 BBX 3 3 0 4 BITMAP 40 A0 40 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 1 BITMAP 20 F8 20 00 F8 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 2 BITMAP E0 10 60 80 F0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 2 BITMAP C0 20 C0 20 C0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 6 0 BBX 2 2 2 7 BITMAP 40 80 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 -2 BITMAP 90 90 90 90 B0 D0 80 80 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 -1 BITMAP 78 E8 E8 68 28 28 28 28 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 3 2 BITMAP C0 C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 6 0 BBX 3 2 1 -2 BITMAP 20 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 0 2 BITMAP 20 E0 20 20 20 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 2 BITMAP 60 90 90 90 60 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 6 0 BBX 5 3 1 2 BITMAP 90 48 90 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 9 0 BBX 9 7 0 0 BITMAP 4200 C400 4800 5100 1500 2780 4100 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 9 0 BBX 9 7 0 0 BITMAP C200 4400 4800 4B00 1080 2100 0380 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 9 0 BBX 9 7 0 0 BITMAP E200 4400 2800 C900 1500 2780 4100 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 4 0 BBX 4 7 0 -1 BITMAP 20 20 00 60 80 80 70 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 40 20 00 20 50 50 F8 88 88 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 10 20 00 20 50 50 F8 88 88 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 20 50 00 20 50 50 F8 88 88 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 68 B0 00 20 50 50 F8 88 88 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 50 00 20 50 50 F8 88 88 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 20 50 20 20 50 50 F8 88 88 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 0 BITMAP 3E 30 50 5C F0 90 9E ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 -2 BITMAP 38 40 80 80 80 40 38 10 60 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 40 20 00 F0 80 E0 80 80 F0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 20 40 00 F0 80 E0 80 80 F0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 40 A0 00 F0 80 E0 80 80 F0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 0 BITMAP 90 00 F0 80 E0 80 80 F0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 3 0 BBX 2 9 0 0 BITMAP 80 40 00 40 40 40 40 40 40 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 3 0 BBX 2 9 1 0 BITMAP 40 80 00 80 80 80 80 80 80 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 3 0 BBX 3 9 0 0 BITMAP 40 A0 00 40 40 40 40 40 40 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 0 0 BITMAP A0 00 40 40 40 40 40 40 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 0 0 BITMAP 78 44 42 F2 42 44 78 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 34 58 00 84 C4 A4 94 8C 84 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 20 10 00 30 48 84 84 48 30 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 10 20 00 30 48 84 84 48 30 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 20 50 00 30 48 84 84 48 30 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 34 58 00 30 48 84 84 48 30 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 8 0 BBX 6 8 1 0 BITMAP 48 00 30 48 84 84 48 30 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 1 BITMAP 88 50 20 50 88 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP 34 48 94 94 A4 48 B0 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 20 10 00 88 88 88 88 88 70 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 10 20 00 88 88 88 88 88 70 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 20 50 00 88 88 88 88 88 70 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 90 00 88 88 88 88 88 70 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 20 50 00 88 88 50 20 20 20 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP 80 80 E0 90 E0 80 80 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 60 90 90 A0 90 88 88 90 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 40 20 00 60 10 70 90 90 68 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 10 20 00 60 10 70 90 90 68 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 20 50 00 60 10 70 90 90 68 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP 68 B0 00 30 08 38 48 48 34 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 90 00 60 10 70 90 90 68 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 20 50 20 60 10 70 90 90 68 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 9 0 BBX 7 6 1 0 BITMAP 6C 12 7E 90 90 6E ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 -2 BITMAP 70 80 80 80 80 70 20 C0 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 40 20 00 60 90 F0 80 80 70 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 20 40 00 60 90 F0 80 80 70 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 20 50 00 60 90 F0 80 80 70 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 0 BITMAP 90 00 60 90 F0 80 80 70 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 3 0 BBX 2 9 0 0 BITMAP 80 40 00 40 40 40 40 40 40 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 3 0 BBX 2 9 1 0 BITMAP 40 80 00 80 80 80 80 80 80 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 3 0 BBX 3 9 0 0 BITMAP 40 A0 00 40 40 40 40 40 40 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 0 0 BITMAP A0 00 40 40 40 40 40 40 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 20 78 10 70 90 90 90 60 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 68 B0 00 A0 D0 90 90 90 90 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 40 20 00 60 90 90 90 90 60 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 20 40 00 60 90 90 90 90 60 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 40 A0 00 60 90 90 90 90 60 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 0 0 BITMAP 68 B0 00 30 48 48 48 48 30 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 0 BITMAP 90 00 60 90 90 90 90 60 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 1 BITMAP 20 00 F8 00 20 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 34 48 58 68 48 B0 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 40 20 00 90 90 90 90 B0 50 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 20 40 00 90 90 90 90 B0 50 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 20 50 00 90 90 90 90 B0 50 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 0 BITMAP 90 00 90 90 90 90 B0 50 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 6 0 BBX 4 11 1 -2 BITMAP 20 40 00 90 90 90 90 60 60 40 C0 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 -2 BITMAP 80 A0 D0 90 90 90 E0 80 80 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 6 0 BBX 4 10 1 -2 BITMAP 90 00 90 90 90 90 60 60 40 C0 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 38 48 E8 48 48 48 48 48 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 1 1 3 BITMAP F0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 -1 BITMAP 20 20 F8 20 20 20 20 20 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 50 20 00 F0 10 20 40 80 F0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 6 1 0 BITMAP 6C 92 9E 90 90 6E ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 90 00 88 88 50 20 20 20 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 1 6 1 0 BITMAP 80 80 80 80 80 80 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 0 0 BITMAP 20 20 38 E0 20 20 20 20 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 20 20 38 E0 20 20 3C ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 -1 BITMAP 20 20 F8 20 20 F8 20 20 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 38 40 F8 48 48 48 48 48 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 2 3 1 2 BITMAP 80 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 7 1 0 BITMAP 3F 48 88 8E 88 48 3F ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 1 1 3 BITMAP FF80 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 2 2 7 BITMAP A0 40 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 2 2 -2 BITMAP 80 60 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 2 1 7 BITMAP 48 90 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 2 3 1 2 BITMAP 40 80 40 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 1 2 3 7 BITMAP 80 80 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 2 1 7 BITMAP 90 60 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 3 2 2 BITMAP E0 E0 E0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 2 1 7 BITMAP 68 B0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 2 2 7 BITMAP 40 A0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 3 0 5 BITMAP 50 A0 A0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 1 3 1 5 BITMAP 80 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 9 1 0 BITMAP A0 40 00 60 80 C0 60 20 C0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 3 2 6 BITMAP 40 A0 40 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 0 -1 BITMAP 40 40 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 -1 BITMAP 30 40 40 F0 40 40 80 80 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 3 1 4 BITMAP FB 55 55 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 7 0 0 BITMAP 10 10 20 20 40 80 80 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 2 2 2 7 BITMAP 80 40 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 7 1 0 BITMAP 4200 A400 4800 1000 2480 4B40 0480 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 2 1 0 BITMAP 90 90 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 3 0 5 BITMAP 50 50 A0 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 50 20 00 70 80 C0 30 10 E0 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 3 0 -1 BITMAP 50 50 A0 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 50 20 00 F0 10 20 40 80 F0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/luRS12.bdf100644 1750 1750 60467 5413747471 15014 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. COMMENT GRID 0012 0012 0200 0200 FONT -B&H-Lucida-Medium-R-Normal-Sans-12-120-75-75-P-71-ISO8859-1 SIZE 12 72 72 FONTBOUNDINGBOX 12 13 0 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 12 POINT_SIZE 120 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 71 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 11 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 4 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 3 0 BBX 1 9 1 0 BITMAP 80 80 80 80 80 80 00 80 80 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 1 7 BITMAP A0 A0 A0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 48 48 FC 48 48 FC 48 48 48 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 -1 BITMAP 10 78 94 90 D0 30 2C 24 A4 78 20 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 60 92 94 68 10 2C 52 92 0C ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 38 44 44 28 71 89 86 86 79 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 1 7 BITMAP 40 40 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 4 0 BBX 3 11 1 -1 BITMAP 20 40 40 80 80 80 80 80 40 40 20 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 4 0 BBX 3 11 0 -1 BITMAP 80 40 40 20 20 20 20 20 40 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 4 BITMAP 20 A8 50 A8 20 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 1 BITMAP 10 10 10 FE 10 10 10 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 0 -1 BITMAP 40 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 8 0 BBX 7 1 1 4 BITMAP FE ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 3 0 BBX 1 2 1 0 BITMAP 80 80 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 6 0 BBX 5 11 1 -1 BITMAP 08 08 10 10 20 20 20 40 40 80 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 30 48 84 84 84 84 84 48 30 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 8 0 BBX 3 9 2 0 BITMAP 20 E0 20 20 20 20 20 20 20 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 78 84 04 04 08 10 20 40 FC ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 78 84 04 04 38 04 04 84 78 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 0 0 BITMAP 0C 14 24 44 84 FE 04 04 04 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP FC 80 80 F8 04 04 04 84 78 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 78 84 80 80 F8 84 84 84 78 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP FC 04 08 10 10 20 20 40 40 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 78 84 84 84 78 84 84 84 78 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 78 84 84 84 7C 04 04 84 78 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 3 0 BBX 1 7 1 0 BITMAP 80 80 00 00 00 80 80 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 3 0 BBX 2 8 0 -1 BITMAP 40 40 00 00 00 40 40 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 1 BITMAP 0C 30 40 80 40 30 0C ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 8 0 BBX 7 3 1 3 BITMAP FE 00 FE ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 1 BITMAP C0 30 08 04 08 30 C0 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP F0 08 08 08 70 40 00 40 40 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 11 0 BBX 9 9 1 0 BITMAP 3E00 4100 8F00 9100 9100 9300 8C80 4000 3F00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 30 30 48 48 48 FC 84 84 84 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP F0 88 88 88 F0 88 88 88 F0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 3C 42 80 80 80 80 80 42 3C ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP F8 84 82 82 82 82 82 84 F8 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP F8 80 80 80 F0 80 80 80 F8 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 7 0 BBX 4 9 2 0 BITMAP F0 80 80 80 F0 80 80 80 80 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 3C 42 80 80 80 82 82 42 3E ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 9 0 BBX 6 9 2 0 BITMAP 84 84 84 84 FC 84 84 84 84 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 4 0 BBX 1 9 2 0 BITMAP 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 0 -1 BITMAP 20 20 20 20 20 20 20 20 20 C0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 2 0 BITMAP 84 88 90 A0 E0 90 88 84 84 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 2 0 BITMAP 80 80 80 80 80 80 80 80 F0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 11 0 BBX 7 9 2 0 BITMAP 82 C6 C6 AA AA 92 92 82 82 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 9 0 BBX 6 9 2 0 BITMAP 84 C4 C4 A4 B4 94 8C 8C 84 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 10 0 BBX 8 9 1 0 BITMAP 3C 42 81 81 81 81 81 42 3C ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 8 0 BBX 5 9 2 0 BITMAP F0 88 88 88 88 F0 80 80 80 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 10 0 BBX 9 11 1 -2 BITMAP 3C00 4200 8100 8100 8100 8100 8100 4200 3C00 0300 0180 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 8 0 BBX 5 9 2 0 BITMAP F0 88 88 88 F0 90 88 88 88 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 78 80 80 C0 70 18 08 08 F0 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP FE 10 10 10 10 10 10 10 10 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 9 0 BBX 6 9 2 0 BITMAP 84 84 84 84 84 84 84 84 78 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 84 84 84 84 48 48 48 30 30 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 11 0 BBX 9 9 1 0 BITMAP 8080 8080 8880 8880 5500 5500 5500 2200 2200 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 84 84 48 28 30 50 48 84 84 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 82 82 44 44 28 10 10 10 10 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP FC 04 08 10 30 20 40 80 FC ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 4 0 BBX 3 11 1 -1 BITMAP E0 80 80 80 80 80 80 80 80 80 E0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 6 0 BBX 5 11 1 -1 BITMAP 80 80 40 40 40 20 20 10 10 08 08 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 4 0 BBX 3 11 0 -1 BITMAP E0 20 20 20 20 20 20 20 20 20 E0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 8 0 BBX 5 6 2 3 BITMAP 20 20 50 50 88 88 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 8 0 BBX 6 1 1 -1 BITMAP FC ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 1 7 BITMAP 40 80 80 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 70 88 08 78 88 88 74 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 8 0 BBX 5 10 2 0 BITMAP 80 80 80 B0 C8 88 88 88 88 F0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 38 40 80 80 80 40 38 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 8 0 BBX 5 10 2 0 BITMAP 08 08 08 78 88 88 88 88 98 68 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 70 88 88 F8 80 88 70 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 5 0 BBX 4 10 1 0 BITMAP 30 40 40 F0 40 40 40 40 40 40 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 -2 BITMAP 78 88 88 88 98 68 08 08 70 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 8 0 BBX 5 10 2 0 BITMAP 80 80 80 B0 C8 88 88 88 88 88 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 4 0 BBX 1 10 2 0 BITMAP 80 80 00 80 80 80 80 80 80 80 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 4 0 BBX 3 12 0 -2 BITMAP 20 20 00 20 20 20 20 20 20 20 20 C0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 2 0 BITMAP 80 80 80 88 90 A0 E0 90 98 88 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 4 0 BBX 1 10 2 0 BITMAP 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 12 0 BBX 9 7 2 0 BITMAP B300 CC80 8880 8880 8880 8880 8880 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 8 0 BBX 5 7 2 0 BITMAP B0 C8 88 88 88 88 88 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 30 48 84 84 84 48 30 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 8 0 BBX 5 9 2 -2 BITMAP B0 C8 88 88 88 88 F0 80 80 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 -2 BITMAP 78 88 88 88 88 98 68 08 08 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 0 BITMAP B0 C0 80 80 80 80 80 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP 70 80 80 60 10 10 E0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 5 0 BBX 4 9 1 0 BITMAP 40 40 F0 40 40 40 40 40 30 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 8 0 BBX 5 7 2 0 BITMAP 88 88 88 88 88 98 68 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 88 88 88 50 50 20 20 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 11 0 BBX 9 7 1 0 BITMAP 8080 8880 4900 5500 5500 2200 2200 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 88 88 50 20 50 88 88 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 -2 BITMAP 88 88 88 50 50 20 20 40 C0 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP F8 08 10 20 40 80 F8 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 0 -1 BITMAP 30 40 40 40 20 C0 20 40 40 40 30 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 3 0 BBX 1 11 1 -1 BITMAP 80 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 0 -1 BITMAP C0 20 20 20 40 30 40 20 20 20 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 8 0 BBX 7 2 1 4 BITMAP 72 9C ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 3 0 BBX 1 9 1 -2 BITMAP 80 80 00 80 80 80 80 80 80 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 10 38 54 90 90 90 50 3C 10 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 38 44 40 40 F0 40 40 40 FC ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 81 42 3C 66 42 66 3C 42 81 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 8 0 BBX 5 9 2 0 BITMAP 88 88 88 50 F8 20 F8 20 20 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 3 0 BBX 1 11 1 -1 BITMAP 80 80 80 80 00 00 00 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 -1 BITMAP 38 44 60 90 88 44 24 18 88 70 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 2 8 BITMAP 90 90 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 11 0 BBX 9 9 1 0 BITMAP 3E00 4100 9C80 A080 A080 A080 9C80 4100 3E00 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 4 BITMAP 60 10 70 90 68 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 7 0 BBX 6 5 0 1 BITMAP 24 48 90 48 24 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 8 0 BBX 6 3 1 2 BITMAP FC 04 04 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 4 0 BBX 3 1 1 4 BITMAP E0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 2 BITMAP 38 44 BA B2 AA 44 38 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 2 8 BITMAP F0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 4 0 BBX 4 3 0 6 BITMAP 60 90 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 1 BITMAP 10 10 FE 10 10 00 FE ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 4 BITMAP E0 10 60 80 F0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 4 BITMAP E0 10 60 10 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 7 0 BBX 3 2 3 8 BITMAP 60 80 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 8 0 BBX 5 9 2 -2 BITMAP 88 88 88 88 88 D8 A8 80 80 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 8 0 BBX 5 10 1 -1 BITMAP 78 E8 E8 E8 68 28 28 28 28 28 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 8 0 BBX 2 2 3 3 BITMAP C0 C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 7 0 BBX 3 2 2 -2 BITMAP 20 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 5 0 BBX 2 5 1 4 BITMAP 40 C0 40 40 40 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 4 BITMAP 60 90 90 90 60 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 7 0 BBX 6 5 1 1 BITMAP 90 48 24 48 90 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 0 0 BITMAP C400 4400 4800 4800 5180 1280 1480 27C0 2080 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 0 0 BITMAP C400 4400 4800 4800 4980 1240 10C0 2100 23C0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 1 0 BITMAP E200 1200 6400 1400 E980 0A80 1480 27C0 2080 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 5 0 BBX 5 9 0 -2 BITMAP 10 10 00 10 70 80 80 80 78 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 0 BITMAP 60 10 00 30 48 48 48 FC 84 84 84 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 0 BITMAP 18 20 00 30 48 48 48 FC 84 84 84 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 0 BITMAP 10 28 00 30 48 48 48 FC 84 84 84 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 0 BITMAP 68 B0 00 30 48 48 48 FC 84 84 84 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 0 BITMAP 48 48 00 30 48 48 48 FC 84 84 84 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 0 BITMAP 30 58 30 30 48 48 48 FC 84 84 84 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 11 0 BBX 9 9 1 0 BITMAP 3F80 2800 4800 4800 4F00 F800 8800 8800 8F80 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 -2 BITMAP 3C 42 80 80 80 80 80 42 3C 10 60 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 0 BITMAP 60 10 00 F8 80 80 F0 80 80 80 F8 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 0 BITMAP 30 40 00 F8 80 80 F0 80 80 80 F8 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 0 BITMAP 20 50 00 F8 80 80 F0 80 80 80 F8 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 0 BITMAP 48 48 00 F8 80 80 F0 80 80 80 F8 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 4 0 BBX 3 11 0 0 BITMAP C0 20 00 20 20 20 20 20 20 20 20 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 4 0 BBX 3 11 1 0 BITMAP 60 80 00 40 40 40 40 40 40 40 40 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 4 0 BBX 3 11 1 0 BITMAP 40 A0 00 40 40 40 40 40 40 40 40 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 0 0 BITMAP 90 90 00 20 20 20 20 20 20 20 20 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 0 0 BITMAP 7C 42 41 41 F9 41 41 42 7C ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 9 0 BBX 6 11 2 0 BITMAP 34 58 00 84 C4 C4 A4 B4 8C 8C 84 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 30 08 00 3C 42 81 81 81 81 42 3C ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 0C 10 00 3C 42 81 81 81 81 42 3C ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 08 14 00 3C 42 81 81 81 81 42 3C ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 1A 2C 00 3C 42 81 81 81 81 42 3C ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 24 24 00 3C 42 81 81 81 81 42 3C ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 8 0 BBX 5 5 2 2 BITMAP 88 50 20 50 88 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 -1 BITMAP 01 3D 42 85 89 89 91 A1 42 BC 80 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 9 0 BBX 6 11 2 0 BITMAP 60 10 00 84 84 84 84 84 84 84 78 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 9 0 BBX 6 11 2 0 BITMAP 18 20 00 84 84 84 84 84 84 84 78 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 9 0 BBX 6 11 2 0 BITMAP 10 28 00 84 84 84 84 84 84 84 78 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 9 0 BBX 6 11 2 0 BITMAP 48 48 00 84 84 84 84 84 84 84 78 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 1 0 BITMAP 0C 10 00 82 82 44 28 10 10 10 10 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 2 0 BITMAP 80 80 F0 88 88 88 F0 80 80 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 2 0 BITMAP 70 88 88 90 90 88 84 84 84 98 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 60 10 00 70 88 08 78 88 88 74 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 18 20 00 70 88 08 78 88 88 74 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 20 50 00 70 88 08 78 88 88 74 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 68 B0 00 70 88 08 78 88 88 74 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 48 48 00 70 88 08 78 88 88 74 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 30 48 30 70 88 08 78 88 88 74 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 11 0 BBX 9 7 1 0 BITMAP 7700 8880 0880 7F80 8800 8800 7780 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 -2 BITMAP 38 40 80 80 80 40 38 10 60 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP 60 10 00 70 88 88 F8 80 88 70 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP 18 20 00 70 88 88 F8 80 88 70 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP 20 50 00 70 88 88 F8 80 88 70 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP 50 50 00 70 88 88 F8 80 88 70 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 0 0 BITMAP C0 20 00 20 20 20 20 20 20 20 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 1 0 BITMAP 60 80 00 40 40 40 40 40 40 40 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 1 0 BITMAP 40 A0 00 40 40 40 40 40 40 40 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 1 0 BITMAP A0 A0 00 40 40 40 40 40 40 40 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 10 3C 08 3C 44 84 84 84 48 30 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 8 0 BBX 5 10 2 0 BITMAP 68 B0 00 B0 C8 88 88 88 88 88 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 60 10 00 30 48 84 84 84 48 30 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 18 20 00 30 48 84 84 84 48 30 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 20 50 00 30 48 84 84 84 48 30 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 34 58 00 30 48 84 84 84 48 30 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 48 48 00 30 48 84 84 84 48 30 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 1 BITMAP 10 10 00 FE 00 10 10 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 -1 BITMAP 04 34 48 94 84 A4 48 B0 80 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 8 0 BBX 5 10 2 0 BITMAP 60 10 00 88 88 88 88 88 98 68 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 8 0 BBX 5 10 2 0 BITMAP 18 20 00 88 88 88 88 88 98 68 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 8 0 BBX 5 10 2 0 BITMAP 20 50 00 88 88 88 88 88 98 68 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 8 0 BBX 5 10 2 0 BITMAP 48 48 00 88 88 88 88 88 98 68 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 7 0 BBX 5 12 1 -2 BITMAP 30 40 00 88 88 88 50 50 20 20 40 C0 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 8 0 BBX 5 11 2 -2 BITMAP 80 80 B0 C8 88 88 88 88 F0 80 80 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 7 0 BBX 5 12 1 -2 BITMAP 50 50 00 88 88 88 50 50 20 20 40 C0 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 3C 44 44 F4 44 44 44 44 44 44 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 1 1 4 BITMAP F0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 10 2 -1 BITMAP 20 20 20 F8 20 20 20 20 20 20 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 0 BITMAP 28 10 00 FC 04 08 10 20 40 80 FC ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 7 1 0 BITMAP 3700 4880 8880 8F80 8800 4800 3780 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 1 0 BITMAP 28 28 00 82 82 44 28 10 10 10 10 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 1 7 2 0 BITMAP 80 80 80 80 80 80 80 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 10 0 0 BITMAP 20 20 20 38 E0 20 20 20 20 20 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP 20 20 20 38 E0 20 20 20 3C ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 10 2 -1 BITMAP 20 20 20 F8 20 20 F8 20 20 20 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 34 44 40 FC 44 44 44 44 44 44 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 1 1 BITMAP 80 40 20 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 9 1 0 BITMAP 3FC0 4400 8400 8400 8780 8400 8400 4400 3FC0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 11 1 1 4 BITMAP FFE0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 2 3 8 BITMAP A0 40 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 2 3 -2 BITMAP 80 60 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 2 2 8 BITMAP 48 90 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 0 1 BITMAP 20 40 80 40 20 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 3 8 BITMAP C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 2 1 8 BITMAP 88 70 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 3 3 3 3 BITMAP E0 E0 E0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 2 1 8 BITMAP 68 B0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 2 3 8 BITMAP 40 A0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 3 0 7 BITMAP 50 A0 A0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 1 3 1 7 BITMAP 80 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 10 1 0 BITMAP 50 20 00 70 80 80 60 10 10 E0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 3 2 7 BITMAP 60 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 0 -1 BITMAP 40 40 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 2 -1 BITMAP 18 24 20 20 F8 40 40 80 80 80 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 4 1 5 BITMAP FB 55 55 51 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 9 0 0 BITMAP 08 08 10 10 20 40 40 80 80 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 2 2 8 BITMAP C0 20 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 11 9 1 0 BITMAP 6000 9200 9400 6800 1000 2CC0 5320 9320 0CC0 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 2 2 0 BITMAP 88 88 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 3 0 7 BITMAP 50 50 A0 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 0 BITMAP 50 20 00 78 80 80 60 30 08 08 F0 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 3 0 -1 BITMAP 50 50 A0 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP 50 20 00 F8 08 10 20 40 80 F8 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/luRS14.bdf100644 1750 1750 62526 5413747472 15015 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. COMMENT GRID 0014 0014 0200 0200 FONT -B&H-Lucida-Medium-R-Normal-Sans-14-140-75-75-P-81-ISO8859-1 SIZE 14 72 72 FONTBOUNDINGBOX 15 15 -1 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 14 POINT_SIZE 140 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 81 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 13 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 4 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 3 0 BBX 1 10 1 0 BITMAP 80 80 80 80 80 80 80 00 80 80 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 6 0 BBX 4 4 1 7 BITMAP 90 90 90 90 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 24 24 24 FF 24 24 FF 24 24 24 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 1 -1 BITMAP 10 7C 92 90 90 70 1C 12 12 92 7C 10 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 60 91 92 64 08 10 26 49 89 06 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 0 BITMAP 3C00 4200 4200 4400 3980 4900 8500 8200 8700 7880 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 1 7 BITMAP 40 40 40 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 5 0 BBX 4 12 1 -1 BITMAP 30 40 40 80 80 80 80 80 80 40 40 30 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 5 0 BBX 4 12 0 -1 BITMAP C0 20 20 10 10 10 10 10 10 20 20 C0 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 7 0 BBX 5 5 1 5 BITMAP 20 A8 50 A8 20 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 1 BITMAP 10 10 10 FE 10 10 10 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 0 -2 BITMAP 20 20 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 9 0 BBX 7 1 1 4 BITMAP FE ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 3 0 BBX 1 2 1 0 BITMAP 80 80 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 7 0 BBX 7 12 0 -1 BITMAP 02 04 04 08 08 10 10 20 20 40 40 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 38 44 82 82 82 82 82 82 44 38 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 9 0 BBX 3 10 2 0 BITMAP 20 E0 20 20 20 20 20 20 20 20 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 7C 82 02 02 04 08 10 20 40 FE ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 78 84 02 04 38 04 02 02 84 78 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 04 0C 14 24 44 84 FE 04 04 04 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP FE 80 80 80 F8 04 02 02 84 78 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 3C 42 80 B8 C4 82 82 82 44 38 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP FE 02 02 04 08 10 10 20 20 20 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 38 44 82 44 38 44 82 82 44 38 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 38 44 82 82 82 46 3A 02 84 78 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 3 0 BBX 1 7 1 0 BITMAP 80 80 00 00 00 80 80 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 4 0 BBX 3 9 0 -2 BITMAP 20 20 00 00 00 20 20 40 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 9 0 BBX 6 7 1 1 BITMAP 04 18 20 C0 20 18 04 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 9 0 BBX 7 3 1 3 BITMAP FE 00 FE ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 9 0 BBX 6 7 2 1 BITMAP 80 60 10 0C 10 60 80 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 6 0 BBX 5 10 1 0 BITMAP 70 88 08 08 10 20 20 00 20 20 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP 1E00 6100 4080 8F80 9080 9080 9180 4EC0 6000 1F00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 18 18 24 24 42 42 7E 81 81 81 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 8 0 BBX 5 10 2 0 BITMAP F0 88 88 90 E0 90 88 88 98 F0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 3E 43 C0 80 80 80 80 C0 41 3E ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 11 0 BBX 8 10 2 0 BITMAP FC 82 83 81 81 81 81 83 82 FC ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 8 0 BBX 5 10 2 0 BITMAP F8 80 80 80 F8 80 80 80 80 F8 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 8 0 BBX 5 10 2 0 BITMAP F8 80 80 80 F8 80 80 80 80 80 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 3E 43 C0 80 80 81 81 C1 41 3F ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 11 0 BBX 7 10 2 0 BITMAP 82 82 82 82 FE 82 82 82 82 82 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 5 0 BBX 1 10 2 0 BITMAP 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 5 0 BBX 3 12 0 -2 BITMAP 20 20 20 20 20 20 20 20 20 20 20 C0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 2 0 BITMAP 82 84 88 90 E0 90 88 88 84 86 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 8 0 BBX 5 10 2 0 BITMAP 80 80 80 80 80 80 80 80 80 F8 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP C0C0 C0C0 A140 A140 A140 9240 9240 8C40 8C40 8040 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 11 0 BBX 7 10 2 0 BITMAP C2 C2 A2 A2 92 92 8A 8A 86 86 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 3E00 4100 C180 8080 8080 8080 8080 C180 4100 3E00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP F8 84 84 84 88 F0 80 80 80 80 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 1 -2 BITMAP 3E00 4100 C180 8080 8080 8080 8080 C180 4100 3E00 0100 00C0 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 2 0 BITMAP F8 84 84 84 88 F0 88 88 84 86 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 78 84 80 80 60 18 04 04 84 78 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP FE 10 10 10 10 10 10 10 10 10 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 82 82 82 82 82 82 82 82 44 38 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 81 81 81 42 42 42 24 24 18 18 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 13 0 BBX 11 10 1 0 BITMAP 8020 8020 8420 8420 4440 4A40 4A40 4A40 3180 3180 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 82 82 44 28 10 10 28 44 82 82 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 82 82 44 44 28 10 10 10 10 10 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP FE 02 04 08 10 20 40 80 80 FE ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 5 0 BBX 3 12 1 -1 BITMAP E0 80 80 80 80 80 80 80 80 80 80 E0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 7 0 BBX 7 12 0 -1 BITMAP 80 40 40 20 20 10 10 08 08 04 04 02 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 5 0 BBX 3 12 1 -1 BITMAP E0 20 20 20 20 20 20 20 20 20 20 E0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 9 0 BBX 6 6 2 4 BITMAP 30 30 48 48 84 84 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 9 0 BBX 7 1 1 -1 BITMAP FE ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 1 7 BITMAP 20 40 80 80 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP 78 04 04 7C 84 84 8C 72 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 0 BITMAP 80 80 80 B0 C8 84 84 84 84 88 F0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 8 0 BBX 6 8 1 0 BITMAP 38 44 80 80 80 80 44 38 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 0 BITMAP 04 04 04 3C 44 84 84 84 84 4C 34 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 8 0 BBX 6 8 1 0 BITMAP 38 44 84 FC 80 80 44 38 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 6 0 BBX 6 11 0 0 BITMAP 1C 20 20 FC 20 20 20 20 20 20 20 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 -2 BITMAP 3C 44 84 84 84 4C 34 04 88 70 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 0 BITMAP 80 80 80 B8 CC 84 84 84 84 84 84 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 5 0 BBX 1 11 2 0 BITMAP 80 80 00 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 5 0 BBX 3 13 0 -2 BITMAP 20 20 00 20 20 20 20 20 20 20 20 20 C0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 9 0 BBX 6 11 2 0 BITMAP 80 80 80 88 90 A0 E0 90 90 88 8C ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 5 0 BBX 1 11 2 0 BITMAP 80 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 13 0 BBX 11 8 1 0 BITMAP B9C0 CE60 8420 8420 8420 8420 8420 8420 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 8 0 BBX 6 8 1 0 BITMAP B8 CC 84 84 84 84 84 84 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP 38 44 82 82 82 82 44 38 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 -2 BITMAP B0 C8 84 84 84 84 88 F0 80 80 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 -2 BITMAP 3C 44 84 84 84 84 4C 34 04 04 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 7 0 BBX 4 8 2 0 BITMAP 90 A0 C0 80 80 80 80 80 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 0 BITMAP 70 80 80 40 20 10 10 E0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 20 20 FC 20 20 20 20 20 20 18 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 8 0 BBX 6 8 1 0 BITMAP 84 84 84 84 84 84 CC 74 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 8 0 BBX 6 8 1 0 BITMAP 84 84 84 84 48 48 30 30 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 11 0 BBX 9 8 1 0 BITMAP 8080 8880 8880 4900 5500 5500 2200 2200 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 8 0 BBX 6 8 1 0 BITMAP 84 84 48 30 30 48 84 84 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 -2 BITMAP 84 84 84 84 48 48 30 30 40 C0 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 8 0 BBX 6 8 1 0 BITMAP FC 04 08 10 20 40 80 FC ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 5 0 BBX 4 12 1 -1 BITMAP 70 80 80 40 20 C0 20 40 80 80 80 70 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 4 0 BBX 1 12 2 -1 BITMAP 80 80 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 5 0 BBX 4 12 0 -1 BITMAP E0 10 10 20 40 30 40 20 10 10 10 E0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 9 0 BBX 7 3 1 3 BITMAP 62 92 8C ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 3 0 BBX 1 10 1 -2 BITMAP 80 80 00 80 80 80 80 80 80 80 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 9 0 BBX 6 12 1 -1 BITMAP 10 10 38 54 90 90 90 90 54 38 10 10 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 1C 22 20 20 FC 20 20 20 40 FE ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP 81 42 3C 42 42 42 42 3C 42 81 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 82 82 44 44 28 10 7C 10 7C 10 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 4 0 BBX 1 12 2 -1 BITMAP 80 80 80 80 80 00 00 80 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 9 0 BBX 6 11 2 -1 BITMAP 78 84 80 70 88 84 44 38 04 84 78 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 9 0 BBX 4 2 2 9 BITMAP 90 90 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP 1E00 6180 4080 8E40 9040 9040 8E40 4080 6180 1E00 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 4 BITMAP 60 10 70 90 90 68 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 7 0 BBX 6 5 0 2 BITMAP 24 48 90 48 24 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 9 0 BBX 7 4 1 1 BITMAP FE 02 02 02 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 1 4 BITMAP E0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 3 BITMAP 38 44 BA B2 AA 44 38 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 9 0 BBX 4 1 3 9 BITMAP F0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 4 0 BBX 4 3 0 7 BITMAP 60 90 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 1 BITMAP 10 10 FE 10 10 00 FE ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 4 BITMAP E0 10 10 60 80 F0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 4 BITMAP E0 10 60 10 10 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 9 0 BBX 4 2 3 9 BITMAP 30 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 -2 BITMAP 84 84 84 84 84 84 CC F4 80 80 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 9 0 BBX 6 11 2 -1 BITMAP 7C 94 94 94 74 14 14 14 14 14 14 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 9 0 BBX 1 2 4 3 BITMAP 80 80 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 9 0 BBX 3 2 2 -2 BITMAP 20 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 6 0 BBX 3 6 1 4 BITMAP 20 E0 20 20 20 20 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 4 BITMAP 60 90 90 90 90 60 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 7 0 BBX 6 5 1 2 BITMAP 90 48 24 48 90 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP 4200 C200 4400 4400 4980 4A80 1480 17C0 2080 2080 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP 4200 C200 4400 4400 4980 4A40 1040 1180 2200 23C0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 13 0 BBX 11 10 1 0 BITMAP E100 1100 6200 1400 14C0 E940 0A40 13E0 2040 2040 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 6 0 BBX 6 10 0 -2 BITMAP 20 20 00 20 20 40 80 80 84 78 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 30 0C 00 18 18 24 24 42 42 7E 81 81 81 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 0C 30 00 18 18 24 24 42 42 7E 81 81 81 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 18 24 00 18 18 24 24 42 42 7E 81 81 81 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 34 58 00 18 18 24 24 42 42 7E 81 81 81 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 24 24 00 18 18 24 24 42 42 7E 81 81 81 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 18 24 18 18 18 24 24 42 42 7E 81 81 81 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 13 0 BBX 10 10 1 0 BITMAP 1FC0 1400 2400 2400 67C0 4400 7C00 8400 8400 87C0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 -2 BITMAP 3E 43 C0 80 80 80 80 C0 41 3E 08 30 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 8 0 BBX 5 13 2 0 BITMAP 60 18 00 F8 80 80 80 F8 80 80 80 80 F8 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 8 0 BBX 5 13 2 0 BITMAP 18 60 00 F8 80 80 80 F8 80 80 80 80 F8 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 8 0 BBX 5 13 2 0 BITMAP 30 48 00 F8 80 80 80 F8 80 80 80 80 F8 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 8 0 BBX 5 13 2 0 BITMAP 48 48 00 F8 80 80 80 F8 80 80 80 80 F8 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 5 0 BBX 4 13 1 0 BITMAP C0 30 00 40 40 40 40 40 40 40 40 40 40 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 5 0 BBX 4 13 1 0 BITMAP 30 C0 00 40 40 40 40 40 40 40 40 40 40 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 5 0 BBX 4 13 1 0 BITMAP 60 90 00 40 40 40 40 40 40 40 40 40 40 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 5 0 BBX 3 13 1 0 BITMAP A0 A0 00 40 40 40 40 40 40 40 40 40 40 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 0 0 BITMAP 3F00 2080 20C0 2040 F840 2040 2040 20C0 2080 3F00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 11 0 BBX 7 13 2 0 BITMAP 34 58 00 C2 C2 A2 A2 92 92 8A 8A 86 86 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 3000 0C00 0000 3E00 4100 C180 8080 8080 8080 8080 C180 4100 3E00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 0600 1800 0000 3E00 4100 C180 8080 8080 8080 8080 C180 4100 3E00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 1C00 2200 0000 3E00 4100 C180 8080 8080 8080 8080 C180 4100 3E00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 1A00 2C00 0000 3E00 4100 C180 8080 8080 8080 8080 C180 4100 3E00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 2200 2200 0000 3E00 4100 C180 8080 8080 8080 8080 C180 4100 3E00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 9 0 BBX 5 5 2 2 BITMAP 88 70 20 70 88 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 11 0 BBX 11 12 0 -1 BITMAP 0020 1F40 2080 6140 4240 4440 4440 4840 50C0 2080 5F00 8000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP 30 0C 00 82 82 82 82 82 82 82 82 44 38 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 10 0 BBX 7 13 1 0 BITMAP 0C 30 00 82 82 82 82 82 82 82 82 44 38 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 10 0 BBX 7 13 1 0 BITMAP 18 24 00 82 82 82 82 82 82 82 82 44 38 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP 24 24 00 82 82 82 82 82 82 82 82 44 38 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP 0C 30 00 82 82 44 44 28 10 10 10 10 10 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 2 0 BITMAP 80 80 F8 84 84 84 88 F0 80 80 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 78 84 84 88 90 8C 82 82 82 82 9C ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 1 0 BITMAP 60 18 00 78 04 04 7C 84 84 8C 72 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 1 0 BITMAP 0C 30 00 78 04 04 7C 84 84 8C 72 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 1 0 BITMAP 30 48 00 78 04 04 7C 84 84 8C 72 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 1 0 BITMAP 34 58 00 78 04 04 7C 84 84 8C 72 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 1 0 BITMAP 48 48 00 78 04 04 7C 84 84 8C 72 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 8 0 BBX 7 12 1 0 BITMAP 30 48 30 00 78 04 04 7C 84 84 8C 76 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 12 0 BBX 10 8 1 0 BITMAP 7380 0C40 0840 7FC0 8800 8800 8C40 7380 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 -2 BITMAP 38 44 80 80 80 80 44 38 10 60 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 0 BITMAP 60 18 00 38 44 84 FC 80 80 44 38 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 0 BITMAP 0C 30 00 38 44 84 FC 80 80 44 38 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 0 BITMAP 30 48 00 38 44 84 FC 80 80 44 38 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 0 BITMAP 48 48 00 38 44 84 FC 80 80 44 38 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 0 0 BITMAP C0 30 00 20 20 20 20 20 20 20 20 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 0 0 BITMAP 30 C0 00 20 20 20 20 20 20 20 20 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 0 0 BITMAP 60 90 00 20 20 20 20 20 20 20 20 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 0 0 BITMAP 90 90 00 20 20 20 20 20 20 20 20 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 10 3C 08 3C 44 82 82 82 82 44 38 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 9 0 BBX 6 11 1 0 BITMAP 34 58 00 B8 CC 84 84 84 84 84 84 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 60 18 00 38 44 82 82 82 82 44 38 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 0C 30 00 38 44 82 82 82 82 44 38 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 18 24 00 38 44 82 82 82 82 44 38 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 34 58 00 38 44 82 82 82 82 44 38 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 44 44 00 38 44 82 82 82 82 44 38 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 1 BITMAP 10 10 00 FE 00 10 10 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 -1 BITMAP 0080 1D00 2200 4500 4900 4900 5100 2200 5C00 8000 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 9 0 BBX 6 11 1 0 BITMAP 60 18 00 84 84 84 84 84 84 CC 74 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 9 0 BBX 6 11 1 0 BITMAP 0C 30 00 84 84 84 84 84 84 CC 74 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 9 0 BBX 6 11 1 0 BITMAP 30 48 00 84 84 84 84 84 84 CC 74 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 9 0 BBX 6 11 1 0 BITMAP 48 48 00 84 84 84 84 84 84 CC 74 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 8 0 BBX 6 13 1 -2 BITMAP 0C 30 00 84 84 84 84 48 48 30 30 40 C0 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 8 0 BBX 6 12 1 -2 BITMAP 80 80 B0 C8 84 84 84 84 88 F0 80 80 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 8 0 BBX 6 13 1 -2 BITMAP 48 48 00 84 84 84 84 48 48 30 30 40 C0 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 0 0 BITMAP 1E 22 22 FA 22 22 22 22 22 22 22 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 1 1 4 BITMAP F8 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 11 2 -1 BITMAP 20 20 20 F8 20 20 20 20 20 20 20 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP 24 18 00 FE 02 04 08 10 20 40 80 80 FE ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 11 8 1 0 BITMAP 39C0 4620 8420 87E0 8400 8400 4620 39C0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP 24 24 00 82 82 44 44 28 10 10 10 10 10 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 1 8 2 0 BITMAP 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 11 0 0 BITMAP 20 20 20 20 38 E0 20 20 20 20 20 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 0 BITMAP 20 20 20 20 38 E0 20 20 20 3E ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 11 2 -1 BITMAP 20 20 20 F8 20 20 20 F8 20 20 20 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 0 0 BITMAP 1A 22 20 FE 22 22 22 22 22 22 22 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 1 2 BITMAP 80 40 20 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 12 10 1 0 BITMAP 3DF0 4300 C100 8100 81F0 8100 8100 C100 4300 3DF0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 13 1 1 4 BITMAP FFF8 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 4 2 3 9 BITMAP 90 60 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 3 2 4 -2 BITMAP 80 60 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 2 2 9 BITMAP 48 90 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 0 2 BITMAP 20 40 80 40 20 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 1 2 4 9 BITMAP 80 80 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 2 2 9 BITMAP 88 70 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 3 3 3 3 BITMAP E0 E0 E0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 2 2 9 BITMAP 68 B0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 4 2 3 9 BITMAP 60 90 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 4 1 7 BITMAP 48 90 90 90 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 1 4 1 7 BITMAP 80 80 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 11 1 0 BITMAP 90 60 00 70 80 80 40 20 10 10 E0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 4 3 3 8 BITMAP 60 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 0 -2 BITMAP 40 40 40 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 -1 BITMAP 1C 22 20 20 F8 40 40 40 80 80 80 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 5 1 5 BITMAP FEC0 2540 2540 2540 2440 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 5 10 -1 0 BITMAP 08 08 10 10 20 20 40 40 80 80 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 4 2 2 9 BITMAP C0 30 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 13 10 1 0 BITMAP 6000 9100 9200 6400 0800 1000 2630 4948 8948 0630 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 2 2 0 BITMAP 88 88 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 4 1 7 BITMAP 48 48 48 90 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 13 1 0 BITMAP 48 30 00 78 84 80 80 60 18 04 04 84 78 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 4 0 -2 BITMAP 48 48 48 90 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 0 BITMAP 48 30 00 FC 04 08 10 20 40 80 FC ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/luRS18.bdf100644 1750 1750 72264 5413747472 15021 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. COMMENT GRID 0018 0018 0200 0200 FONT -B&H-Lucida-Medium-R-Normal-Sans-18-180-75-75-P-106-ISO8859-1 SIZE 18 72 72 FONTBOUNDINGBOX 19 19 -1 -3 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 18 POINT_SIZE 180 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 106 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 16 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 4 0 BBX 2 13 1 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 40 00 00 C0 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 7 0 BBX 5 4 1 10 BITMAP D8 D8 90 90 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 1 0 BITMAP 0CC0 0CC0 0CC0 0880 7FE0 1100 3300 3300 FFC0 2200 6600 6600 6600 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 12 0 BBX 8 15 3 -1 BITMAP 08 3E 4B C8 C8 E8 78 3C 1E 17 13 13 D2 7C 10 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 1 0 BITMAP 7000 D840 88C0 8980 8900 DA00 75C0 0B60 1220 3220 6220 4360 01C0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 1 0 BITMAP 3E00 6300 6300 6200 3400 1800 2C60 6660 C340 C180 C1C0 6360 3C30 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 4 0 BBX 2 4 1 10 BITMAP C0 C0 40 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 6 0 BBX 4 16 1 -2 BITMAP 10 20 60 40 C0 C0 C0 C0 C0 C0 C0 C0 40 60 20 10 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 6 0 BBX 4 16 1 -2 BITMAP 80 40 60 20 30 30 30 30 30 30 30 30 20 60 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 6 BITMAP 10 10 92 EE 10 6C 44 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 12 0 BBX 9 9 2 1 BITMAP 0800 0800 0800 0800 FF80 0800 0800 0800 0800 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 4 0 BBX 2 4 1 -2 BITMAP C0 C0 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 12 0 BBX 9 1 2 5 BITMAP FF80 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 4 0 BBX 2 2 1 0 BITMAP C0 C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 9 0 BBX 7 16 1 -2 BITMAP 02 02 06 04 0C 08 08 18 10 30 20 60 40 C0 80 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 12 0 BBX 9 13 2 0 BITMAP 3E00 6300 4100 C180 C180 C180 C180 C180 C180 C180 4100 6300 3E00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 12 0 BBX 5 13 3 0 BITMAP 18 F8 18 18 18 18 18 18 18 18 18 18 18 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 12 0 BBX 8 13 2 0 BITMAP 7E C7 03 03 03 06 0C 18 30 60 C0 FF FF ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 1 0 BITMAP 7E C7 03 03 06 3C 06 03 03 03 03 C7 7E ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 1 0 BITMAP 0180 0380 0780 0D80 0980 1180 3180 6180 C180 FFE0 0180 0180 0180 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 12 0 BBX 8 13 3 0 BITMAP FF FF 80 80 80 F8 1E 07 03 03 03 C7 7E ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 12 0 BBX 9 13 2 0 BITMAP 1E00 7300 6000 C000 C000 DE00 E300 C180 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 12 0 BBX 9 13 2 0 BITMAP FF80 FF80 0180 0300 0600 0600 0C00 1800 1800 3000 3000 6000 6000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 12 0 BBX 9 13 2 0 BITMAP 3E00 6300 C180 C180 E100 7A00 3E00 6700 C380 C180 C180 6300 3E00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 12 0 BBX 9 13 2 0 BITMAP 3E00 6300 C180 C180 C180 C180 6380 3D80 0180 0100 0300 C600 7C00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 4 0 BBX 2 10 1 0 BITMAP C0 C0 00 00 00 00 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 4 0 BBX 2 12 1 -2 BITMAP C0 C0 00 00 00 00 00 00 C0 C0 40 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 12 0 BBX 10 9 1 1 BITMAP 00C0 0380 0E00 3800 E000 3800 0E00 0380 00C0 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 12 0 BBX 9 4 2 3 BITMAP FF80 0000 0000 FF80 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 12 0 BBX 10 9 1 1 BITMAP C000 7000 1C00 0700 01C0 0700 1C00 7000 C000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 1 0 BITMAP 7C CE 06 06 0C 30 60 60 60 00 00 60 60 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 16 0 BBX 14 13 1 0 BITMAP 07E0 1C38 3008 63EC 4464 C864 98C4 99CC DAD8 4CF0 6000 3800 0FC0 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 1 0 BITMAP 0600 0600 0F00 0B00 1980 1180 3180 20C0 7FC0 60C0 4060 C060 C060 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 2 0 BITMAP FE C7 C3 C3 C3 C6 FC C6 C3 C3 C3 C7 FE ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 1 0 BITMAP 0FC0 38E0 6000 6000 C000 C000 C000 C000 C000 6000 7000 38E0 0FC0 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 14 0 BBX 11 13 2 0 BITMAP FF00 C1C0 C0C0 C060 C060 C060 C060 C060 C060 C0C0 C0C0 C380 FE00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 10 0 BBX 7 13 2 0 BITMAP FE C0 C0 C0 C0 C0 FC C0 C0 C0 C0 C0 FE ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 10 0 BBX 7 13 2 0 BITMAP FE C0 C0 C0 C0 C0 FC C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 1 0 BITMAP 0FC0 38E0 6000 6000 C000 C000 C000 C060 C060 6060 7060 3860 0FE0 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 14 0 BBX 10 13 2 0 BITMAP C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 FFC0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 6 0 BBX 2 13 2 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 6 0 BBX 5 15 -1 -2 BITMAP 18 18 18 18 18 18 18 18 18 18 18 18 18 30 E0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 2 0 BITMAP C180 C300 C600 CC00 D800 F000 F000 D800 CC00 C600 C300 C180 C0C0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 10 0 BBX 7 13 2 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 FE ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 16 0 BBX 12 13 2 0 BITMAP E070 E070 B0B0 B0B0 B0B0 9930 9930 9930 8E30 8E30 8430 8430 8030 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 14 0 BBX 10 13 2 0 BITMAP C040 E040 F040 B040 9840 9C40 8C40 8640 8740 8340 81C0 81C0 80C0 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 1 0 BITMAP 0F00 39C0 6060 6060 C030 C030 C030 C030 C030 6060 6060 39C0 0F00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 2 0 BITMAP FE C7 C3 C3 C3 C3 C6 F8 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 14 0 BBX 13 16 1 -3 BITMAP 0F00 39C0 6060 6060 C030 C030 C030 C030 C030 6060 6060 39C0 0F00 01C0 0070 0038 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 12 0 BBX 9 13 2 0 BITMAP FE00 C700 C300 C300 C300 C600 F800 CC00 C600 C600 C300 C180 C180 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 3E 67 C0 C0 E0 78 1E 07 03 03 03 E6 7C ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 0 0 BITMAP FFF0 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 13 0 BBX 9 13 2 0 BITMAP C180 C180 C180 C180 C180 C180 C180 C180 C180 C180 6300 7700 1C00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP C0C0 C0C0 C0C0 6080 6180 6180 3100 3300 3300 1A00 1E00 0C00 0C00 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 16 0 BBX 14 13 1 0 BITMAP C00C C30C C30C C78C C598 6598 6CD8 68D0 68D0 38F0 3060 3060 3060 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP C180 C180 6180 6300 3200 1C00 1C00 1C00 2600 6300 C300 C180 C180 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP C0C0 C0C0 6180 3100 3300 1E00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP FF80 FF80 0180 0300 0600 0C00 1C00 1800 3000 6000 C000 FF80 FF80 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 6 0 BBX 4 16 1 -2 BITMAP F0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 F0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 9 0 BBX 7 16 1 -2 BITMAP 80 80 C0 40 60 20 30 10 10 18 08 0C 04 06 02 02 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 6 0 BBX 4 16 1 -2 BITMAP F0 30 30 30 30 30 30 30 30 30 30 30 30 30 30 F0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 12 0 BBX 9 10 2 2 BITMAP 0800 1C00 1400 3600 2200 6300 6300 C180 C180 C180 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 12 0 BBX 10 1 1 -1 BITMAP FFC0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 4 0 BBX 2 4 1 10 BITMAP 40 80 C0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 0 BITMAP 3E00 6700 0300 0300 3F00 6300 C300 C300 E700 7980 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 0 BITMAP C000 C000 C000 C000 DC00 E700 C300 C180 C180 C180 C180 C300 E700 DC00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 1E 73 60 C0 C0 C0 C0 60 73 1E ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 1 0 BITMAP 0180 0180 0180 0180 1D80 7380 6180 C180 C180 C180 C180 6180 7380 1D80 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 3C 66 C3 C3 FF C0 C0 E0 73 3E ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 7 0 BBX 6 14 1 0 BITMAP 1C 30 60 60 FC 60 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 12 0 BBX 9 13 1 -3 BITMAP 1D80 7380 6180 C180 C180 C180 C180 6380 3D80 0180 0180 6300 3E00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 12 0 BBX 8 14 2 0 BITMAP C0 C0 C0 C0 DE E7 C3 C3 C3 C3 C3 C3 C3 C3 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 6 0 BBX 2 14 2 0 BITMAP C0 C0 00 00 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 6 0 BBX 4 17 0 -3 BITMAP 30 30 00 00 30 30 30 30 30 30 30 30 30 30 30 60 C0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 2 0 BITMAP C000 C000 C000 C000 C300 C600 CC00 D800 F000 D800 CC00 C600 C300 C180 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 6 0 BBX 2 14 2 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 18 0 BBX 14 10 2 0 BITMAP DE78 E79C C30C C30C C30C C30C C30C C30C C30C C30C ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 12 0 BBX 8 10 2 0 BITMAP DE E7 C3 C3 C3 C3 C3 C3 C3 C3 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 1C00 7700 6300 C180 C180 C180 C180 6300 7700 1C00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 12 0 BBX 9 13 2 -3 BITMAP DC00 E700 C300 C180 C180 C180 C180 C300 E700 DC00 C000 C000 C000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 12 0 BBX 9 13 1 -3 BITMAP 1D80 7380 6180 C180 C180 C180 C180 6180 7380 1D80 0180 0180 0180 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 2 0 BITMAP CC DC E0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 7C C6 C0 E0 70 1C 0E 06 C6 7C ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 7 0 BBX 5 12 1 0 BITMAP 60 60 F8 60 60 60 60 60 60 60 60 38 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 12 0 BBX 8 10 2 0 BITMAP C3 C3 C3 C3 C3 C3 C3 C3 E7 7B ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP C3 C3 C3 62 66 66 34 34 18 18 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 16 0 BBX 14 10 1 0 BITMAP C00C C30C C30C 6318 6598 6590 68D0 38F0 3060 3060 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 11 0 BBX 8 10 2 0 BITMAP C3 C3 66 34 38 1C 2C 66 C3 C3 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 -3 BITMAP C3 C3 C3 62 66 66 34 3C 18 18 10 30 30 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP FF 03 07 0E 1C 38 70 E0 C0 FF ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 6 0 BBX 4 16 1 -2 BITMAP 70 C0 C0 40 60 20 20 C0 20 20 60 40 C0 C0 C0 70 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 4 0 BBX 2 16 1 -2 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 6 0 BBX 4 16 1 -2 BITMAP E0 30 30 20 60 40 40 30 40 40 60 20 30 30 30 E0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 12 0 BBX 9 3 2 4 BITMAP 7080 9C80 8700 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 4 0 BBX 2 13 1 -3 BITMAP C0 C0 00 00 80 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 12 0 BBX 8 14 3 -1 BITMAP 08 08 1E 6B 68 C8 C8 C8 C8 C8 6B 3E 08 08 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 12 0 BBX 9 13 2 0 BITMAP 0F00 1180 3000 3000 3000 3000 FC00 3000 3000 2000 4000 FF80 FF80 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 12 0 BBX 11 11 1 1 BITMAP 8020 4040 3F80 3180 60C0 60C0 60C0 3180 3F80 4040 8020 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP C0C0 C0C0 6180 3100 3300 1A00 0C00 3F00 0C00 3F00 0C00 0C00 0C00 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 4 0 BBX 2 16 1 -2 BITMAP C0 C0 C0 C0 C0 C0 00 00 00 00 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 12 0 BBX 8 15 2 -2 BITMAP 7E E3 C0 E0 78 5E C7 C3 E3 7A 1E 07 03 C7 7E ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 11 0 BBX 6 2 3 11 BITMAP CC CC ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 16 0 BBX 13 13 2 0 BITMAP 0F80 3060 4010 4390 8408 8C08 8C08 8C08 8608 4390 4010 3060 0F80 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 6 BITMAP 78 CC 0C 7C CC CC 76 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 10 0 BBX 9 8 0 1 BITMAP 1980 3300 6600 CC00 CC00 6600 3300 1980 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 12 0 BBX 9 5 2 1 BITMAP FF80 0080 0080 0080 0080 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 6 0 BBX 4 1 1 5 BITMAP F0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 12 0 BBX 8 8 2 5 BITMAP 3C 42 B9 A5 B9 A5 42 3C ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 11 0 BBX 5 2 3 11 BITMAP F8 F8 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 1 10 BITMAP 60 90 90 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 12 0 BBX 9 8 2 2 BITMAP 0800 0800 0800 FF80 0800 0800 0000 FF80 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 6 BITMAP 78 CC 0C 38 60 C0 FC ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 6 BITMAP 78 CC 0C 38 0C CC 78 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 11 0 BBX 4 2 4 11 BITMAP 70 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 12 0 BBX 8 13 2 -3 BITMAP C3 C3 C3 C3 C3 C3 C3 C3 E7 FB C0 C0 C0 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 12 0 BBX 8 15 2 -2 BITMAP 7F F9 F9 F9 79 39 09 09 09 09 09 09 09 09 09 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 12 0 BBX 3 3 5 4 BITMAP E0 E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 11 0 BBX 4 3 3 -3 BITMAP 60 30 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 8 0 BBX 4 7 2 6 BITMAP 30 F0 30 30 30 30 30 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 6 BITMAP 78 CC CC CC CC CC 78 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 10 0 BBX 9 8 1 1 BITMAP CC00 6600 3300 1980 1980 3300 6600 CC00 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 1 0 BITMAP E030 6060 60C0 6180 6100 6300 6670 0CB0 0930 1B30 33F8 6030 C030 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 1 0 BITMAP E060 60C0 6180 6180 6300 6600 6670 0C98 1818 3030 3040 60F8 C0F8 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 16 0 BBX 14 13 1 0 BITMAP 7018 9830 1860 70C0 1880 9980 7338 0658 0498 0D98 19FC 3018 6018 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 0 -3 BITMAP 0C 0C 00 00 0C 0C 0C 18 60 C0 C0 E6 7C ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 13 0 BBX 11 16 1 0 BITMAP 0E00 0300 0000 0600 0600 0F00 0B00 1980 1180 3180 20C0 7FC0 60C0 4060 C060 C060 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 13 0 BBX 11 16 1 0 BITMAP 0700 0C00 0000 0600 0600 0F00 0B00 1980 1180 3180 20C0 7FC0 60C0 4060 C060 C060 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 13 0 BBX 11 16 1 0 BITMAP 0E00 1B00 0000 0600 0600 0F00 0B00 1980 1180 3180 20C0 7FC0 60C0 4060 C060 C060 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 13 0 BBX 11 16 1 0 BITMAP 0E80 1700 0000 0600 0600 0F00 0B00 1980 1180 3180 20C0 7FC0 60C0 4060 C060 C060 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 13 0 BBX 11 16 1 0 BITMAP 1980 1980 0000 0600 0600 0F00 0B00 1980 1180 3180 20C0 7FC0 60C0 4060 C060 C060 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 13 0 BBX 11 16 1 0 BITMAP 0E00 1300 0E00 0600 0600 0F00 0B00 1980 1180 3180 20C0 7FC0 60C0 4060 C060 C060 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 17 0 BBX 14 13 2 0 BITMAP 03FC 0780 0580 0D80 0980 1980 11F8 3180 3F80 6180 4180 C180 C1FC ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 13 0 BBX 11 16 1 -3 BITMAP 0FC0 38E0 6000 6000 C000 C000 C000 C000 C000 6000 7000 38E0 0FC0 0C00 0600 1C00 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 10 0 BBX 7 16 2 0 BITMAP 70 18 00 FE C0 C0 C0 C0 C0 FC C0 C0 C0 C0 C0 FE ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 10 0 BBX 7 16 2 0 BITMAP 1C 30 00 FE C0 C0 C0 C0 C0 FC C0 C0 C0 C0 C0 FE ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 10 0 BBX 7 16 2 0 BITMAP 38 6C 00 FE C0 C0 C0 C0 C0 FC C0 C0 C0 C0 C0 FE ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 10 0 BBX 7 16 2 0 BITMAP 66 66 00 FE C0 C0 C0 C0 C0 FC C0 C0 C0 C0 C0 FE ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 6 0 BBX 4 16 1 0 BITMAP E0 30 00 60 60 60 60 60 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 6 0 BBX 4 16 1 0 BITMAP 70 C0 00 60 60 60 60 60 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 6 0 BBX 5 16 1 0 BITMAP 70 D8 00 60 60 60 60 60 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 6 0 BBX 6 16 0 0 BITMAP CC CC 00 30 30 30 30 30 30 30 30 30 30 30 30 30 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 0 0 BITMAP 3FC0 3070 3030 3018 3018 3018 FC18 3018 3018 3030 3030 30E0 3F80 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 14 0 BBX 10 16 2 0 BITMAP 1D00 2E00 0000 C040 E040 F040 B040 9840 9C40 8C40 8640 8740 8340 81C0 81C0 80C0 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 14 0 BBX 12 16 1 0 BITMAP 0E00 0300 0000 0F00 39C0 6060 6060 C030 C030 C030 C030 C030 6060 6060 39C0 0F00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 14 0 BBX 12 16 1 0 BITMAP 0700 0C00 0000 0F00 39C0 6060 6060 C030 C030 C030 C030 C030 6060 6060 39C0 0F00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 14 0 BBX 12 16 1 0 BITMAP 0700 0D80 0000 0F00 39C0 6060 6060 C030 C030 C030 C030 C030 6060 6060 39C0 0F00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 14 0 BBX 12 16 1 0 BITMAP 0E80 1700 0000 0F00 39C0 6060 6060 C030 C030 C030 C030 C030 6060 6060 39C0 0F00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 14 0 BBX 12 16 1 0 BITMAP 1980 1980 0000 0F00 39C0 6060 6060 C030 C030 C030 C030 C030 6060 6060 39C0 0F00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 12 0 BBX 7 7 3 2 BITMAP C2 64 38 10 38 4C 86 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 14 0 BBX 12 15 1 -1 BITMAP 0020 0F60 39C0 60E0 6160 C130 C230 C230 C430 C830 6860 7060 39C0 6F00 4000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 13 0 BBX 9 16 2 0 BITMAP 3800 0C00 0000 C180 C180 C180 C180 C180 C180 C180 C180 C180 C180 6300 7700 1C00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 13 0 BBX 9 16 2 0 BITMAP 0E00 1800 0000 C180 C180 C180 C180 C180 C180 C180 C180 C180 C180 6300 7700 1C00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 13 0 BBX 9 16 2 0 BITMAP 1C00 3600 0000 C180 C180 C180 C180 C180 C180 C180 C180 C180 C180 6300 7700 1C00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 13 0 BBX 9 16 2 0 BITMAP 3300 3300 0000 C180 C180 C180 C180 C180 C180 C180 C180 C180 C180 6300 7700 1C00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 12 0 BBX 10 16 1 0 BITMAP 0700 0C00 0000 C0C0 C0C0 6180 3100 3300 1E00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 2 0 BITMAP C0 C0 C0 FE C7 C3 C3 C3 C6 FC C0 C0 C0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 11 0 BBX 8 14 2 0 BITMAP 3C 46 C6 C4 C8 D8 DC CE C6 C7 C3 C3 C3 CE ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 0 BITMAP 3800 0C00 0000 3E00 6700 0300 0300 3F00 6300 C300 C300 E700 7980 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 0 BITMAP 0E00 1800 0000 3E00 6700 0300 0300 3F00 6300 C300 C300 E700 7980 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 0 BITMAP 1C00 3600 0000 3E00 6700 0300 0300 3F00 6300 C300 C300 E700 7980 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 0 BITMAP 1D00 2E00 0000 3E00 6700 0300 0300 3F00 6300 C300 C300 E700 7980 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 0 BITMAP 6600 6600 0000 3E00 6700 0300 0300 3F00 6300 C300 C300 E700 7980 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 0 BITMAP 1C00 2600 1C00 3E00 6700 0300 0300 3F00 6300 C300 C300 E700 7980 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 16 0 BBX 14 10 1 0 BITMAP 3EF0 6798 030C 030C 3FFC 6300 C300 C380 E7CC 78F8 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 -3 BITMAP 1E 73 60 C0 C0 C0 C0 60 73 1E 18 0C 38 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 38 0C 00 3C 66 C3 C3 FF C0 C0 E0 73 3E ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 0E 18 00 3C 66 C3 C3 FF C0 C0 E0 73 3E ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 1C 36 00 3C 66 C3 C3 FF C0 C0 E0 73 3E ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 66 66 00 3C 66 C3 C3 FF C0 C0 E0 73 3E ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 6 0 BBX 4 13 1 0 BITMAP E0 30 00 60 60 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 6 0 BBX 4 13 2 0 BITMAP 70 C0 00 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 6 0 BBX 5 13 1 0 BITMAP 70 D8 00 60 60 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 6 0 BBX 6 13 0 0 BITMAP CC CC 00 30 30 30 30 30 30 30 30 30 30 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 1 0 BITMAP 3800 0DC0 0F00 3B00 0300 1F80 7380 6180 C180 C180 C180 C180 6300 7700 1C00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 12 0 BBX 8 13 2 0 BITMAP 3A 5C 00 DE E7 C3 C3 C3 C3 C3 C3 C3 C3 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 3800 0C00 0000 1C00 7700 6300 C180 C180 C180 C180 6300 7700 1C00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 0E00 1800 0000 1C00 7700 6300 C180 C180 C180 C180 6300 7700 1C00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 1C00 3600 0000 1C00 7700 6300 C180 C180 C180 C180 6300 7700 1C00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 1D00 2E00 0000 1C00 7700 6300 C180 C180 C180 C180 6300 7700 1C00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 3300 3300 0000 1C00 7700 6300 C180 C180 C180 C180 6300 7700 1C00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 12 0 BBX 9 9 2 1 BITMAP 0800 0800 0000 0000 FF80 0000 0000 0800 0800 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 1C80 7780 6300 C580 C980 C980 D180 6300 F700 9C00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 12 0 BBX 8 13 2 0 BITMAP 38 0C 00 C3 C3 C3 C3 C3 C3 C3 C3 E7 7B ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 12 0 BBX 8 13 2 0 BITMAP 1C 30 00 C3 C3 C3 C3 C3 C3 C3 C3 E7 7B ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 12 0 BBX 8 13 2 0 BITMAP 1C 36 00 C3 C3 C3 C3 C3 C3 C3 C3 E7 7B ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 12 0 BBX 8 13 2 0 BITMAP 66 66 00 C3 C3 C3 C3 C3 C3 C3 C3 E7 7B ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 10 0 BBX 8 16 1 -3 BITMAP 0E 18 00 C3 C3 C3 62 66 66 34 3C 18 18 10 30 30 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 12 0 BBX 9 16 2 -3 BITMAP C000 C000 C000 DC00 E700 C300 C180 C180 C180 C180 C300 E700 DC00 C000 C000 C000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 10 0 BBX 8 16 1 -3 BITMAP 66 66 00 C3 C3 C3 62 66 66 34 3C 18 18 10 30 30 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 1 0 BITMAP 1F80 3180 6180 6180 FD80 6180 6180 6180 6180 6180 6180 6180 6180 6180 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 1 1 5 BITMAP FF ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 8 15 2 -2 BITMAP 18 18 18 18 FF 18 18 18 18 18 18 18 18 18 18 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 16 1 0 BITMAP 3600 1C00 0000 FF80 FF80 0180 0300 0600 0C00 1C00 1800 3000 6000 C000 FF80 FF80 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 15 10 1 0 BITMAP 1C78 77CC 6386 C186 C1FE C180 C180 63C0 76E6 1C7C ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 16 1 0 BITMAP 3300 3300 0000 C0C0 C0C0 6180 3100 3300 1E00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 2 10 2 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 14 0 0 BITMAP 30 30 30 30 30 3C F0 30 30 30 30 30 30 30 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 0 0 BITMAP 3000 3000 3000 3000 3000 3C00 F000 3000 3000 3000 3000 3000 3F80 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 8 15 2 -2 BITMAP 18 18 18 18 FF 18 18 18 18 18 FF 18 18 18 18 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 1 0 BITMAP 1D80 3180 6000 6000 FF80 6180 6180 6180 6180 6180 6180 6180 6180 6180 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 1 BITMAP C0 60 30 18 18 30 60 C0 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 16 13 1 0 BITMAP 0F7F 38E0 6060 6060 C060 C060 C07E C060 C060 6060 6060 38E0 0F7F ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 17 1 1 5 BITMAP FFFF80 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 5 2 3 11 BITMAP D8 70 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 4 3 4 -3 BITMAP 60 C0 70 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 5 3 3 11 BITMAP 48 D8 90 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 1 BITMAP 18 30 60 C0 C0 60 30 18 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 2 2 5 11 BITMAP C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 5 3 3 11 BITMAP 88 F8 70 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 5 5 4 3 BITMAP F8 F8 F8 F8 F8 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 2 2 11 BITMAP 74 B8 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 5 2 3 11 BITMAP 70 D8 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 4 1 10 BITMAP 48 90 D8 D8 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 2 4 1 10 BITMAP C0 C0 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP 6C 38 00 7C C6 C0 E0 70 1C 0E 06 C6 7C ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 5 3 3 10 BITMAP 70 98 70 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 2 4 1 -2 BITMAP C0 C0 40 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 2 -2 BITMAP 0F80 18C0 1800 3000 3000 3000 FE00 6000 6000 6000 6000 C000 C000 C000 C000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 12 6 2 7 BITMAP FF30 2330 22D0 22D0 22D0 2210 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 6 13 0 0 BITMAP 04 04 0C 08 18 10 30 20 60 40 C0 80 80 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 4 2 3 11 BITMAP E0 30 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 17 13 1 0 BITMAP 700000 D84000 88C000 898000 890000 DA0000 75C700 0B6D80 122880 322880 622880 436D80 01C700 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 8 2 2 0 BITMAP C3 C3 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 4 1 10 BITMAP D8 D8 48 90 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 16 1 0 BITMAP 36 1C 00 3E 67 C0 C0 E0 78 1E 07 03 03 03 E6 7C ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 4 1 -2 BITMAP D8 D8 48 90 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 36 1C 00 FF 03 07 0E 1C 38 70 E0 C0 FF ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/luRS19.bdf100644 1750 1750 74716 5413747472 15026 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Medium-R-Normal-Sans-19-190-75-75-P-108-ISO8859-1 SIZE 19 72 72 FONTBOUNDINGBOX 32 22 -13 -4 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 19 POINT_SIZE 190 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH "108" CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." FONT_ASCENT 17 FONT_DESCENT 4 DEFAULT_CHAR 0 ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 6 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 6 0 BBX 2 14 2 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 00 00 C0 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 7 0 BBX 5 5 1 9 BITMAP D8 D8 D8 D8 D8 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP 06E0 0EC0 0CC0 0CC0 7FF0 7FF0 1980 1980 1980 FFE0 FFE0 3300 3300 7600 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 12 0 BBX 8 17 2 -2 BITMAP 18 7F FD D8 D8 D8 78 38 1C 1E 1B 1B 1B FF 7E 1C 18 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 13 0 BBX 13 14 0 0 BITMAP 7838 FC30 CC60 CCE0 FDC0 7B80 03F0 06F0 0F98 1D98 3998 3198 60F0 E0F0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 1 0 BITMAP 1E00 3F00 3300 3300 3700 3E00 7800 EC60 CE60 C760 C3C0 E380 7F80 3CE0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 1 9 BITMAP E0 E0 60 60 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 6 0 BBX 5 18 1 -4 BITMAP 08 18 30 20 60 40 C0 C0 C0 C0 C0 C0 40 60 60 30 18 08 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 6 0 BBX 5 18 0 -4 BITMAP 80 C0 60 20 30 10 18 18 18 18 18 18 10 30 30 60 C0 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 7 BITMAP 10 10 D6 6C 28 28 44 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 12 0 BBX 12 12 0 0 BITMAP 0600 0600 0600 0600 0600 FFF0 FFF0 0600 0600 0600 0600 0600 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 6 0 BBX 3 7 2 -4 BITMAP E0 E0 E0 60 60 60 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 12 0 BBX 11 2 1 5 BITMAP FFE0 FFE0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 6 0 BBX 2 2 2 0 BITMAP C0 C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 9 0 BBX 9 18 0 -4 BITMAP 0180 0180 0300 0300 0600 0600 0E00 0C00 0C00 1800 1800 3800 3000 3000 6000 6000 C000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP 1E00 3F00 7380 6180 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 6180 7380 3F00 1E00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 12 0 BBX 4 14 3 0 BITMAP F0 F0 30 30 30 30 30 30 30 30 30 30 30 30 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 12 0 BBX 8 14 2 0 BITMAP 7C FE 87 03 03 03 06 0E 38 30 60 C0 FF FF ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 12 0 BBX 8 14 2 0 BITMAP 7C FE 87 03 03 06 78 7E 07 03 03 87 FE FC ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP 0700 0700 0F00 1F00 3B00 3300 6300 E300 FFC0 FFC0 0300 0300 0300 0300 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 12 0 BBX 7 14 3 0 BITMAP FE FE C0 C0 C0 F8 FC 0E 06 06 06 8E FC F8 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 1 0 BITMAP 1F00 3F00 7100 6000 C000 DE00 FF00 E380 C180 C180 4180 6300 3F00 1E00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 0 BITMAP FF80 FF80 0380 0300 0700 0600 0C00 1C00 1800 3800 3000 7000 6000 6000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 0 BITMAP 1E00 3F80 7380 6180 6180 3200 3C00 7F00 E380 C180 C180 E380 7F00 3E00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 0 BITMAP 3C00 7F00 E300 C180 C180 C180 E380 7D80 3D80 0180 0300 4700 7E00 7C00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 6 0 BBX 2 10 2 0 BITMAP C0 C0 00 00 00 00 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 6 0 BBX 2 14 2 -4 BITMAP C0 C0 00 00 00 00 00 00 C0 C0 C0 C0 C0 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 12 0 BBX 12 12 2 0 BITMAP 0010 0070 01E0 0780 1E00 FC00 7C00 1E00 0780 01E0 0070 0010 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 12 0 BBX 11 5 1 3 BITMAP FFE0 FFE0 0000 FFE0 FFE0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 12 0 BBX 12 12 1 0 BITMAP 8000 E000 7800 1E00 0780 03E0 03F0 0780 1E00 7800 E000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 8 0 BBX 7 14 0 0 BITMAP 78 FC 8E 06 06 0C 1C 38 30 30 30 00 30 30 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 16 0 BBX 15 14 2 0 BITMAP 03E0 0FF8 1C1C 31EE 63C6 6646 CC86 CD86 CDEC CE7C EC78 7040 3FC0 0F80 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 13 0 BBX 13 14 0 0 BITMAP 0700 0700 0F80 0D80 0D80 18C0 18C0 30E0 3FE0 3FE0 6030 6030 E030 C018 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 11 0 BBX 8 14 2 0 BITMAP FC FE C3 C3 C3 C6 F8 FC C7 C3 C3 C3 FE FC ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 1 0 BITMAP 0FC0 3FE0 7020 6000 E000 C000 C000 C000 C000 C000 6000 7020 3FE0 0FC0 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 14 0 BBX 11 14 2 0 BITMAP FE00 FF80 C1C0 C0C0 C060 C060 C060 C060 C060 C060 C0C0 C1C0 FF80 FE00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 10 0 BBX 8 14 2 0 BITMAP FF FF C0 C0 C0 C0 FE FE C0 C0 C0 C0 FF FF ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 10 0 BBX 8 14 2 0 BITMAP FF FF C0 C0 C0 C0 FE FE C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 14 0 BBX 11 14 1 0 BITMAP 0FC0 3FE0 7020 6000 E000 C000 C000 C060 C060 C060 6060 7060 3FE0 0FC0 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 14 0 BBX 10 14 2 0 BITMAP C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 FFC0 FFC0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 5 0 BBX 2 14 2 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 6 0 BBX 6 18 -1 -4 BITMAP 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C F8 F0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP C180 C300 C700 CE00 CC00 D800 F800 F800 DC00 CC00 C600 C300 C380 C1C0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 10 0 BBX 8 14 2 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 FF FF ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 16 0 BBX 13 14 2 0 BITMAP E038 E038 F078 F078 F878 D8D8 D8D8 DCD8 CD98 CD98 CF98 C718 C718 C018 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 14 0 BBX 10 14 2 0 BITMAP C0C0 E0C0 F0C0 F0C0 F8C0 D8C0 CCC0 CCC0 C6C0 C7C0 C3C0 C3C0 C1C0 C0C0 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 15 0 BBX 13 14 1 0 BITMAP 0F80 3FE0 7070 6030 E038 C018 C018 C018 C018 E038 6030 7070 3FE0 0F80 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 10 0 BBX 8 14 2 0 BITMAP FE FF C7 C3 C3 C3 C6 FE F8 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 1 -4 BITMAP 0F80 3FE0 7070 6030 E038 C018 C018 C018 C018 E038 6030 7070 3FE0 0FC0 00F0 007C 0038 0008 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP FC00 FE00 C700 C300 C300 C200 C600 F800 FC00 CE00 C600 C300 C380 C1C0 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 10 0 BBX 8 14 1 0 BITMAP 3E 7E E2 C0 C0 70 3C 1E 07 03 03 87 FE 7C ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP FFF0 FFF0 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 13 0 BBX 10 14 2 0 BITMAP C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 E1C0 7F80 3F00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP C030 E030 6060 6060 30E0 30C0 30C0 19C0 1980 1D80 0F00 0F00 0700 0600 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 16 0 BBX 16 14 0 0 BITMAP C183 C183 63C7 63C6 63C6 63C6 36EC 366C 366C 366C 1E78 1C38 1C38 1C38 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 0 0 BITMAP E0E0 60C0 31C0 3980 1B00 0F00 0E00 0E00 1F00 1B00 3180 71C0 60C0 C0E0 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP E030 6060 70E0 30C0 1980 1F80 0F00 0700 0600 0600 0600 0600 0600 0600 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP FFC0 FFC0 0180 0380 0300 0600 0E00 1C00 1800 3000 7000 E000 FFC0 FFC0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 6 0 BBX 4 18 2 -4 BITMAP F0 F0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 F0 F0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 9 0 BBX 9 18 0 -4 BITMAP C000 C000 6000 6000 3000 3000 3800 1800 1800 0C00 0C00 0E00 0600 0600 0300 0300 0180 0180 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 6 0 BBX 4 18 1 -4 BITMAP F0 F0 30 30 30 30 30 30 30 30 30 30 30 30 30 30 F0 F0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 1 2 BITMAP 0400 0400 0E00 0E00 0E00 1B00 1B00 3180 3180 60C0 60C0 E0E0 C060 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 10 0 BBX 8 2 1 -2 BITMAP FF FF ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 1 9 BITMAP 60 C0 C0 E0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 0 BITMAP 3E00 7F00 4300 0300 3F00 7F00 C300 C300 FF80 7380 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 0 BITMAP C000 C000 C000 C000 DE00 FF00 E380 C180 C180 C180 C180 E300 FF00 DE00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 1F 7F 60 C0 C0 C0 C0 61 7F 1E ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 1 0 BITMAP 0180 0180 0180 0180 3D80 7F80 6380 C180 C180 C180 C180 E380 7F80 3D80 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 11 0 BBX 8 10 1 0 BITMAP 3C 7E 63 C3 FF FF C0 E1 7F 3E ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 7 0 BBX 7 15 1 0 BITMAP 1E 3E 60 60 60 FC FC 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 1 -4 BITMAP 3D80 7F80 6380 C180 C180 C180 C180 E380 7D80 3980 0180 4300 7F00 7E00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 12 0 BBX 8 14 2 0 BITMAP C0 C0 C0 C0 CE DF E3 C3 C3 C3 C3 C3 C3 C3 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 5 0 BBX 2 14 2 0 BITMAP C0 C0 00 00 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 6 0 BBX 6 18 -1 -4 BITMAP 0C 0C 00 00 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 8C F8 F0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 2 0 BITMAP C000 C000 C000 C000 C700 C600 CC00 D800 F800 F800 DC00 CE00 C700 C380 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 5 0 BBX 2 14 2 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 18 0 BBX 14 10 2 0 BITMAP CE38 DF7C E38C C30C C30C C30C C30C C30C C30C C30C ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 12 0 BBX 8 10 2 0 BITMAP CE DF E3 C3 C3 C3 C3 C3 C3 C3 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP 1E00 7F80 6180 C0C0 C0C0 C0C0 C0C0 6180 7F80 1E00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 -4 BITMAP DE00 FF00 E380 C180 C180 C180 C180 E300 FF00 DE00 C000 C000 C000 C000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 1 -4 BITMAP 3D80 7F80 6380 C180 C180 C180 C180 E380 7F80 3D80 0180 0180 0180 0180 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 2 0 BITMAP CC DC E0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 10 0 BBX 7 10 1 0 BITMAP 7C FC C0 E0 78 3E 06 86 FE 7C ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 7 0 BBX 6 13 1 0 BITMAP 60 60 60 FC FC 60 60 60 60 60 60 7C 3C ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 12 0 BBX 8 10 2 0 BITMAP C3 C3 C3 C3 C3 C3 C3 C7 FB 73 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 0 BITMAP C0C0 E1C0 6180 6180 3300 3300 3E00 1E00 1E00 0C00 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 15 0 BBX 14 10 0 0 BITMAP C30C C78C 6798 6798 6798 6CF0 3CF0 3CF0 38F0 3860 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP E1C0 7180 3300 1F00 1E00 1E00 3E00 3300 6380 E1C0 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 10 0 BBX 10 14 0 -4 BITMAP C0C0 61C0 6180 6180 3300 3300 1F00 1E00 1E00 0C00 0C00 1C00 1800 3800 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP FF80 FF80 0300 0600 0C00 1800 3000 6000 FF80 FF80 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 6 0 BBX 5 18 0 -4 BITMAP 18 38 30 30 30 30 30 30 20 E0 F0 30 30 30 30 30 38 18 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 5 0 BBX 2 18 2 -4 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 6 0 BBX 5 18 1 -4 BITMAP C0 E0 60 60 60 60 60 78 38 20 60 60 60 60 60 60 E0 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 12 0 BBX 11 5 1 3 BITMAP 7860 7C60 CE60 C7C0 C1C0 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 6 0 BBX 2 14 2 -4 BITMAP C0 C0 00 00 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 12 0 BBX 8 14 2 0 BITMAP 18 18 3F 7F D8 D8 D8 D8 D8 D9 7F 3E 18 18 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 12 0 BBX 8 14 2 0 BITMAP 0F 1F 30 30 30 30 FC FC 30 30 30 20 FF FF ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 1 1 BITMAP C0C0 FFC0 7F80 3300 6180 6180 6180 6180 3300 7F80 FFC0 C0C0 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP E0E0 60C0 3180 3B80 1F00 0E00 3F80 3F80 0C00 3F80 3F80 0C00 0C00 0C00 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 5 0 BBX 2 18 2 -4 BITMAP C0 C0 C0 C0 C0 C0 C0 00 00 00 00 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 12 0 BBX 8 18 2 -4 BITMAP 3E 7F E1 C0 C0 70 7C CE C3 E3 73 3E 0E 03 03 87 FF 7C ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 12 0 BBX 5 2 3 12 BITMAP 98 98 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 16 0 BBX 15 14 1 0 BITMAP 07C0 1FF0 3838 739C E78C CE86 CC06 CC06 CE86 E78C 739C 3838 1FF0 07C0 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 0 6 BITMAP 7C 7E 46 3E FE C6 FF 73 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 10 0 BBX 8 9 1 0 BITMAP 13 3F 76 EE DC EC 76 37 1B ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 12 0 BBX 11 5 1 3 BITMAP FFE0 FFE0 0060 0060 0060 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 6 0 BBX 4 2 1 5 BITMAP F0 F0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 12 0 BBX 8 9 2 5 BITMAP 3C 7E E7 FF FB FF E7 7E 3C ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 12 0 BBX 5 2 3 12 BITMAP F8 F8 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 5 0 BBX 3 4 1 10 BITMAP 40 A0 A0 40 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 12 0 BBX 12 12 0 0 BITMAP 0600 0600 0600 FFF0 FFF0 0600 0600 0600 0600 0000 FFF0 FFF0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 -12 6 BITMAP 70 88 08 18 30 60 C0 F8 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 -12 6 BITMAP F0 08 08 70 08 08 08 F0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 12 0 BBX 4 3 4 11 BITMAP 30 60 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 12 0 BBX 8 14 2 -4 BITMAP C3 C3 C3 C3 C3 C3 C3 C7 FF FB C0 C0 C0 C0 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 12 0 BBX 8 18 2 -4 BITMAP 7F FF FF FF FF 7F 7F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 12 0 BBX 2 2 5 5 BITMAP C0 C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 12 0 BBX 3 4 5 -4 BITMAP C0 60 60 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 7 0 BBX 2 8 -13 6 BITMAP C0 40 40 40 40 40 40 40 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 6 BITMAP 38 7C EE C6 C6 EE 7C 38 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 10 0 BBX 8 9 1 0 BITMAP D8 EC 6E 77 3B 37 6E FC C8 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 15 0 BBX 13 14 4 0 BITMAP C030 4060 40C0 41C0 4180 4300 4730 4E30 0C50 1890 3990 31F8 6010 C010 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 15 0 BBX 12 14 4 0 BITMAP C030 4060 40C0 41C0 4180 4300 47E0 4F10 0C10 1830 3860 30C0 6180 C1F0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 5 0 BITMAP F018 0830 0860 70E0 08C0 0980 0B98 F718 0628 0C48 1CC8 18FC 3008 6008 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 8 0 BBX 7 14 0 -4 BITMAP 18 18 00 18 18 18 38 70 E0 C0 C0 E2 7E 3C ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 13 0 BBX 13 18 0 0 BITMAP 0C00 0600 0300 0000 0700 0700 0F80 0D80 0D80 18C0 18C0 30E0 3FE0 3FE0 6030 6030 E030 C018 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 13 0 BBX 13 18 0 0 BITMAP 0180 0300 0600 0000 0700 0700 0F80 0D80 0D80 18C0 18C0 30E0 3FE0 3FE0 6030 6030 E030 C018 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 13 0 BBX 13 18 0 0 BITMAP 0300 0780 0CC0 0000 0700 0700 0F80 0D80 0D80 18C0 18C0 30E0 3FE0 3FE0 6030 6030 E030 C018 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 0 0 BITMAP 0F40 0B80 0000 0700 0700 0F80 0D80 0D80 18C0 18C0 30E0 3FE0 3FE0 6030 6030 E030 C018 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 0 0 BITMAP 0980 0980 0000 0700 0700 0F80 0D80 0D80 18C0 18C0 30E0 3FE0 3FE0 6030 6030 E030 C018 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 13 0 BBX 13 18 0 0 BITMAP 0700 0500 0700 0000 0700 0700 0F80 0D80 0D80 18C0 18C0 30E0 3FE0 3FE0 6030 6030 E030 C018 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 17 0 BBX 17 14 0 0 BITMAP 00FF80 01FF80 03E000 03E000 076000 067F00 0E7F00 0C6000 1FE000 3FE000 306000 706000 607F80 C07F80 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 13 0 BBX 11 18 1 -4 BITMAP 0FC0 3FE0 7020 6000 E000 C000 C000 C000 C000 C000 6000 7020 3FE0 0FC0 0400 0600 0600 0E00 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 10 0 BBX 8 18 2 0 BITMAP 60 30 18 00 FF FF C0 C0 C0 C0 FE FE C0 C0 C0 C0 FF FF ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 10 0 BBX 8 18 2 0 BITMAP 0C 18 30 00 FF FF C0 C0 C0 C0 FE FE C0 C0 C0 C0 FF FF ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 10 0 BBX 8 18 2 0 BITMAP 30 78 CC 00 FF FF C0 C0 C0 C0 FE FE C0 C0 C0 C0 FF FF ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 10 0 BBX 8 17 2 0 BITMAP 4C 4C 00 FF FF C0 C0 C0 C0 FE FE C0 C0 C0 C0 FF FF ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 5 0 BBX 4 18 3 0 BITMAP C0 60 30 00 60 60 60 60 60 60 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 5 0 BBX 4 18 3 0 BITMAP 30 60 C0 00 60 60 60 60 60 60 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 5 0 BBX 6 18 4 0 BITMAP 30 78 CC 00 30 30 30 30 30 30 30 30 30 30 30 30 30 30 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 5 0 BBX 5 17 4 0 BITMAP 98 98 00 30 30 30 30 30 30 30 30 30 30 30 30 30 30 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 0 0 BITMAP 3F80 3FE0 3070 3030 3018 3018 FE18 FE18 3018 3018 3030 3070 3FE0 3F80 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 14 0 BBX 10 17 2 0 BITMAP 3D00 2E00 0000 C0C0 E0C0 F0C0 F0C0 F8C0 D8C0 CCC0 CCC0 C6C0 C7C0 C3C0 C3C0 C1C0 C0C0 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 0C00 0600 0300 0000 0F80 3FE0 7070 6030 E038 C018 C018 C018 C018 E038 6030 7070 3FE0 0F80 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 0180 0300 0600 0000 0F80 3FE0 7070 6030 E038 C018 C018 C018 C018 E038 6030 7070 3FE0 0F80 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 0300 0780 0CC0 0000 0F80 3FE0 7070 6030 E038 C018 C018 C018 C018 E038 6030 7070 3FE0 0F80 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 1 0 BITMAP 0F40 0B80 0000 0F80 3FE0 7070 6030 E038 C018 C018 C018 C018 E038 6030 7070 3FE0 0F80 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 1 0 BITMAP 0980 0980 0000 0F80 3FE0 7070 6030 E038 C018 C018 C018 C018 E038 6030 7070 3FE0 0F80 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 1 0 BITMAP 4040 E0E0 71C0 3B80 1B00 0E00 0E00 1B00 3B80 71C0 E0E0 4040 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 15 0 BBX 13 14 1 0 BITMAP 0FB8 3FF0 7070 60F0 E1F8 C398 C318 C618 CE18 FC38 7830 7070 7FE0 EF80 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 13 0 BBX 10 18 2 0 BITMAP 1800 0C00 0600 0000 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 E1C0 7F80 3F00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 13 0 BBX 10 18 2 0 BITMAP 0600 0C00 1800 0000 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 E1C0 7F80 3F00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 13 0 BBX 10 18 2 0 BITMAP 0C00 1E00 3300 0000 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 E1C0 7F80 3F00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 13 0 BBX 10 17 2 0 BITMAP 2600 2600 0000 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 E1C0 7F80 3F00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 12 0 BBX 12 18 0 0 BITMAP 0180 0300 0600 0000 E030 6060 70E0 30C0 1980 1F80 0F00 0700 0600 0600 0600 0600 0600 0600 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 10 0 BBX 8 14 2 0 BITMAP C0 C0 FC FE C7 C3 C3 C3 C3 C6 FE F8 C0 C0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 11 0 BBX 9 15 2 0 BITMAP 7C00 FE00 C600 C600 CE00 DC00 D800 DC00 CE00 C700 C380 C180 D180 DF80 CF00 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 10 0 BBX 9 14 1 0 BITMAP 3000 1800 0C00 0000 3E00 7F00 4300 0300 3F00 7F00 C300 C300 FF80 7380 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 10 0 BBX 9 14 1 0 BITMAP 0600 0C00 1800 0000 3E00 7F00 4300 0300 3F00 7F00 C300 C300 FF80 7380 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 10 0 BBX 9 14 1 0 BITMAP 1800 3C00 6600 0000 3E00 7F00 4300 0300 3F00 7F00 C300 C300 FF80 7380 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 0 BITMAP 7A00 5C00 0000 3E00 7F00 4300 0300 3F00 7F00 C300 C300 FF80 7380 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 0 BITMAP 2600 2600 0000 3E00 7F00 4300 0300 3F00 7F00 C300 C300 FF80 7380 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 10 0 BBX 9 14 1 0 BITMAP 1C00 1400 1C00 0000 3E00 7F00 4300 0300 3F00 7F00 C300 C300 FF80 7380 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 16 0 BBX 14 10 1 0 BITMAP 3CF0 7FF8 438C 030C 3FFC 7FFC C300 C384 FDFC 70F8 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 10 0 BBX 8 14 1 -4 BITMAP 1F 7F 60 C0 C0 C0 C0 61 7F 1E 08 0C 0C 1C ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 11 0 BBX 8 14 1 0 BITMAP 30 18 0C 00 3C 7E 63 C3 FF FF C0 E1 7F 3E ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 11 0 BBX 8 14 1 0 BITMAP 06 0C 18 00 3C 7E 63 C3 FF FF C0 E1 7F 3E ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 11 0 BBX 8 14 1 0 BITMAP 18 3C 66 00 3C 7E 63 C3 FF FF C0 E1 7F 3E ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 1 0 BITMAP 26 26 00 3C 7E 63 C3 FF FF C0 E1 7F 3E ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 5 0 BBX 4 14 3 0 BITMAP C0 60 30 00 60 60 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 5 0 BBX 4 14 3 0 BITMAP 30 60 C0 00 60 60 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 5 0 BBX 6 14 4 0 BITMAP 30 78 CC 00 30 30 30 30 30 30 30 30 30 30 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 5 0 BBX 5 13 4 0 BITMAP 98 98 00 30 30 30 30 30 30 30 30 30 30 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP FC00 BC00 7C00 2600 3F00 7F00 E380 C180 C180 C180 C180 6300 7F00 3E00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 12 0 BBX 8 13 2 0 BITMAP 7A 5C 00 CE DF E3 C3 C3 C3 C3 C3 C3 C3 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP 1800 0C00 0600 0000 1E00 7F80 6180 C0C0 C0C0 C0C0 C0C0 6180 7F80 1E00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP 0600 0C00 1800 0000 1E00 7F80 6180 C0C0 C0C0 C0C0 C0C0 6180 7F80 1E00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP 0C00 1E00 3300 0000 1E00 7F80 6180 C0C0 C0C0 C0C0 C0C0 6180 7F80 1E00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 3D00 2E00 0000 1E00 7F80 6180 C0C0 C0C0 C0C0 C0C0 6180 7F80 1E00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 2600 2600 0000 1E00 7F80 6180 C0C0 C0C0 C0C0 C0C0 6180 7F80 1E00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP 0C00 0C00 0000 0000 FFC0 FFC0 0000 0000 0C00 0C00 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP 1FC0 7F80 6380 C7C0 CEC0 DCC0 F8C0 7180 7F80 FE00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 12 0 BBX 8 14 2 0 BITMAP 30 18 0C 00 C3 C3 C3 C3 C3 C3 C3 C7 FB 73 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 12 0 BBX 8 14 2 0 BITMAP 06 0C 18 00 C3 C3 C3 C3 C3 C3 C3 C7 FB 73 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 12 0 BBX 8 14 2 0 BITMAP 18 3C 66 00 C3 C3 C3 C3 C3 C3 C3 C7 FB 73 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 12 0 BBX 8 13 2 0 BITMAP 26 26 00 C3 C3 C3 C3 C3 C3 C3 C7 FB 73 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 10 0 BBX 10 18 0 -4 BITMAP 0600 0C00 1800 0000 C0C0 61C0 6180 6180 3300 3300 1F00 1E00 1E00 0C00 0C00 1C00 1800 3800 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 12 0 BBX 9 18 2 -4 BITMAP C000 C000 C000 C000 DE00 FF00 E380 C180 C180 C180 C180 E300 FF00 DE00 C000 C000 C000 C000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 10 0 BBX 10 17 0 -4 BITMAP 2600 2600 0000 C0C0 61C0 6180 6180 3300 3300 1F00 1E00 1E00 0C00 0C00 1C00 1800 3800 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 1 0 BITMAP 3F80 7F80 6180 6180 6180 F980 F980 6180 6180 6180 6180 6180 6180 6180 6180 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 2 1 5 BITMAP FF FF ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 8 18 2 -4 BITMAP 18 18 18 18 18 FF FF 18 18 18 18 18 18 18 18 18 18 18 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 18 1 0 BITMAP 3300 1E00 0C00 0000 FFC0 FFC0 0180 0380 0300 0600 0E00 1C00 1800 3000 7000 E000 FFC0 FFC0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 15 10 1 0 BITMAP 1C78 7EFC 63C6 C186 C1FE C1FE C180 63C2 7E7E 3E3C ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 17 0 0 BITMAP 0980 0980 0000 E030 6060 70E0 30C0 1980 1F80 0F00 0700 0600 0600 0600 0600 0600 0600 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 2 10 2 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 6 14 0 0 BITMAP 30 30 30 30 34 3C 30 F0 B0 30 30 30 30 30 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 14 0 0 BITMAP 3000 3000 3000 3000 3400 3C00 3800 F000 B000 3000 3000 3000 3FC0 3FC0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 8 18 2 -4 BITMAP 18 18 18 18 18 FF FF 18 18 18 18 FF FF 18 18 18 18 18 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 1 0 BITMAP 3C00 3D80 6180 6000 6000 FF80 FF80 6180 6180 6180 6180 6180 6180 6180 6180 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 0 0 BITMAP C0 E0 70 38 18 38 70 E0 C0 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 17 14 1 0 BITMAP 0F7F80 3FFF80 70E000 606000 C06000 C06000 C07F00 C07F00 C06000 C06000 606000 70E000 3FFF80 0F7F80 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 17 2 1 4 BITMAP FFFF80 FFFF80 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 6 3 3 11 BITMAP CC 78 30 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 3 3 5 -4 BITMAP 40 80 E0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 6 3 3 11 BITMAP 3C 58 F0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 18 38 70 E0 C0 E0 70 38 18 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 2 2 5 12 BITMAP C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 6 3 3 11 BITMAP 84 FC 78 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 6 6 3 3 BITMAP FC FC FC FC FC FC ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 6 2 3 12 BITMAP F4 B8 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 6 3 3 11 BITMAP 30 78 CC ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 5 1 9 BITMAP 58 F0 F0 F8 F8 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 2 5 1 9 BITMAP C0 C0 C0 C0 C0 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 7 14 1 0 BITMAP 66 3C 18 00 7C FC C0 E0 78 3E 06 86 FE 7C ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 3 3 4 12 BITMAP E0 A0 E0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 2 7 1 -4 BITMAP C0 C0 C0 C0 C0 C0 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 18 2 -4 BITMAP 0780 0F80 1800 1800 3000 3000 3000 FC00 FC00 3000 3000 6000 6000 6000 6000 6000 C000 C000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 14 8 0 6 BITMAP FDDC FDDC 31DC 31FC 31FC 31FC 31FC 318C ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 12 14 -5 0 BITMAP 0030 0060 00C0 01C0 0180 0300 0700 0E00 0C00 1800 3800 3000 6000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 4 3 3 11 BITMAP C0 60 30 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 18 14 1 0 BITMAP 783000 FC6000 CCE000 CDC000 FD8000 7B0000 07E780 0FE780 0F3CC0 1B3CC0 3B3CC0 733CC0 61E780 C1E780 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 14 2 3 0 BITMAP C30C C30C ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 5 1 9 BITMAP F8 F8 78 78 D0 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 18 1 0 BITMAP 66 3C 18 00 3E 7E E2 C0 C0 70 3C 1E 07 03 03 87 FE 7C ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 -4 BITMAP F8 F8 78 78 78 D0 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP 3300 1E00 0C00 0000 FF80 FF80 0300 0600 0C00 1800 3000 6000 FF80 FF80 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/luRS24.bdf100644 1750 1750 105737 5413747473 15041 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Medium-R-Normal-Sans-24-240-75-75-P-136-ISO8859-1 SIZE 24 72 72 FONTBOUNDINGBOX 39 27 -15 -5 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 24 POINT_SIZE 240 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 136 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 22 FONT_DESCENT 5 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 8 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 8 0 BBX 2 17 3 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 00 00 C0 C0 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 9 0 BBX 6 6 1 11 BITMAP CC CC CC CC CC CC ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 15 0 BBX 15 17 0 0 BITMAP 0318 0318 0330 0630 0630 7FFE 7FFE 0660 0C60 0C60 0CC0 FFFC FFFC 18C0 1980 3980 3180 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 15 0 BBX 10 21 2 -2 BITMAP 0C00 0C00 3F80 7FC0 EC00 CC00 CC00 EC00 7C00 3C00 1E00 0F80 0D80 0CC0 0CC0 0CC0 8DC0 FF80 7F00 0C00 0C00 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 16 0 BBX 17 17 0 0 BITMAP 3C0380 7E0700 E70E00 C30C00 C31800 E73000 7E7000 3CE000 01DE00 03BF00 077380 066180 0C6180 1C6180 387380 703F00 E01E00 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 17 0 BBX 14 17 1 0 BITMAP 0780 0FC0 1CC0 1CC0 1CC0 1D80 0F80 3E00 761C 631C E39C E198 E1F8 F0F0 78E0 3FF0 1F1C ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 11 BITMAP E0 E0 E0 60 60 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 8 0 BBX 6 21 1 -4 BITMAP 04 0C 18 38 30 70 60 E0 E0 E0 E0 E0 E0 E0 60 70 30 38 18 0C 04 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 8 0 BBX 6 21 1 -4 BITMAP 80 C0 60 70 30 38 18 1C 1C 1C 1C 1C 1C 1C 18 38 30 70 60 C0 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 12 0 BBX 9 9 1 8 BITMAP 0800 0800 4880 EB80 3600 1400 3600 6200 2300 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 1 0 BITMAP 0300 0300 0300 0300 0300 0300 FFFC FFFC 0300 0300 0300 0300 0300 0300 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 8 0 BBX 3 9 2 -5 BITMAP E0 E0 E0 E0 60 60 60 C0 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 15 0 BBX 14 2 1 7 BITMAP FFFC FFFC ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 8 0 BBX 3 3 2 0 BITMAP E0 E0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 12 0 BBX 12 21 0 -4 BITMAP 0030 0060 0060 00C0 00C0 0180 0180 0380 0300 0700 0600 0E00 0C00 1C00 1800 1800 3000 3000 6000 6000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 2 0 BITMAP 0F00 3FC0 79E0 70E0 70E0 E070 E070 E070 E070 E070 E070 E070 70E0 70E0 79E0 3FC0 0F00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 15 0 BBX 6 17 3 0 BITMAP FC FC 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 15 0 BBX 11 17 2 0 BITMAP 3F00 FFC0 C1C0 00E0 00E0 00E0 00E0 01C0 0380 0700 0E00 1C00 3000 7000 E000 FFE0 FFE0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 15 0 BBX 11 17 2 0 BITMAP 7F00 FFC0 C1E0 00E0 00E0 00C0 0380 3E00 3F00 03C0 00E0 00E0 00E0 00E0 83C0 FF80 FF00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 1 0 BITMAP 01C0 03C0 03C0 07C0 0EC0 1CC0 18C0 30C0 70C0 E0C0 FFF0 FFF0 00C0 00C0 00C0 00C0 00C0 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 15 0 BBX 9 17 3 0 BITMAP FF80 FF80 C000 C000 C000 C000 F800 FE00 0F00 0380 0380 0380 0380 0380 8700 FE00 FC00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 2 0 BITMAP 0FC0 1FE0 3820 7000 7000 E000 E780 EFE0 F8E0 E070 E070 E070 6070 7070 38E0 3FC0 0F80 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 15 0 BBX 11 17 3 0 BITMAP FFE0 FFE0 00E0 00C0 01C0 0380 0300 0700 0600 0E00 1C00 1C00 3800 3800 3000 7000 7000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 2 0 BITMAP 0F80 1FC0 38E0 3060 3060 3840 1CC0 0F00 1FC0 73E0 61F0 E070 E070 E070 F0E0 7FE0 1F80 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 2 0 BITMAP 1F00 3FC0 71E0 E0E0 E070 E070 E070 E070 70F0 7F70 1E70 0070 00E0 00E0 41C0 7F80 7E00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 8 0 BBX 3 13 2 0 BITMAP E0 E0 E0 00 00 00 00 00 00 00 E0 E0 E0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 8 0 BBX 3 18 2 -5 BITMAP E0 E0 E0 00 00 00 00 00 00 00 00 E0 E0 60 60 60 C0 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 1 0 BITMAP 0004 001C 0078 01E0 0780 1E00 F800 7800 1E00 0780 01E0 0078 001C 0004 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 15 0 BBX 14 7 1 4 BITMAP FFFC FFFC 0000 0000 0000 FFFC FFFC ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 1 0 BITMAP 8000 E000 7800 1E00 0780 01E0 0078 007C 01E0 0780 1E00 7800 E000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 10 0 BBX 10 17 0 0 BITMAP 7E00 FF80 83C0 01C0 01C0 01C0 0380 0700 0E00 0C00 1C00 1C00 1C00 0000 1C00 1C00 1C00 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 21 0 BBX 19 17 3 0 BITMAP 00FC00 03FF00 0F0380 1C00C0 387CE0 71F860 630860 C31860 C63060 C670C0 C659C0 C79F80 E30E00 700000 3C0800 1FF800 07E000 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 17 0 BBX 16 17 0 0 BITMAP 01C0 03C0 03E0 07E0 06E0 06F0 0C70 0C78 1C38 1838 1FFC 3FFC 301E 700E 600E 600F C007 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 14 0 BBX 11 17 2 0 BITMAP FF00 FF80 E3C0 E1C0 E1C0 E1C0 E380 FF00 FE00 E380 E1C0 E0E0 E0E0 E0E0 E1E0 FFC0 FF00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 17 0 BBX 14 17 1 0 BITMAP 07F8 1FFC 3C0C 7800 7000 F000 E000 E000 E000 E000 E000 E000 7000 7804 3C1C 1FFC 07F0 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 18 0 BBX 15 17 2 0 BITMAP FFC0 FFF0 E078 E03C E01C E00E E00E E00E E00E E00E E00E E00E E01C E01C E078 FFF0 FF80 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 13 0 BBX 11 17 2 0 BITMAP FFC0 FFC0 E000 E000 E000 E000 E000 FF80 FF80 E000 E000 E000 E000 E000 E000 FFE0 FFE0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 13 0 BBX 10 17 2 0 BITMAP FFC0 FFC0 E000 E000 E000 E000 E000 E000 FF80 FF80 E000 E000 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 17 0 BBX 14 17 1 0 BITMAP 07F8 1FFC 3C0C 7800 7000 F000 E000 E000 E000 E01C E01C E01C 701C 781C 3C1C 1FFC 07F0 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 18 0 BBX 13 17 2 0 BITMAP E038 E038 E038 E038 E038 E038 E038 FFF8 FFF8 E038 E038 E038 E038 E038 E038 E038 E038 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 7 0 BBX 3 17 2 0 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 7 0 BBX 8 21 -1 -4 BITMAP 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 0E FE F8 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 2 0 BITMAP E070 E0E0 E0C0 E180 E300 E700 EE00 EC00 FC00 FE00 EF00 E780 E3C0 E1E0 E0E0 E0F0 E07C ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 13 0 BBX 11 17 2 0 BITMAP E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 FFE0 FFE0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 21 0 BBX 16 17 2 0 BITMAP F00F F00F F80F F81F F81F DC3F DC37 DC37 CE77 CE67 CE67 C7C7 C7C7 C7C7 C387 C387 C007 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 18 0 BBX 13 17 2 0 BITMAP E018 F018 F018 F818 FC18 DC18 DE18 CF18 C718 C798 C3D8 C1D8 C1F8 C0F8 C078 C078 C038 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 19 0 BBX 16 17 1 0 BITMAP 07E0 1FF8 3C3C 781E 700E E007 E007 E007 E007 E007 E007 E007 700E 781E 3C3C 1FF8 07E0 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 13 0 BBX 11 17 2 0 BITMAP FF80 FFC0 E1E0 E0E0 E0E0 E0E0 E1E0 E3C0 FF80 FF00 E000 E000 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 19 0 BBX 18 21 1 -4 BITMAP 07E000 1FF800 3C3C00 781E00 700E00 E00700 E00700 E00700 E00700 E00700 E00700 E00700 700E00 781E00 3C3C00 1FF800 07E000 003C00 000FC0 000780 000180 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 3 0 BITMAP FF00 FF80 E3C0 E1C0 E1C0 E1C0 E380 E780 FE00 FE00 E700 E780 E380 E3C0 E1E0 E0F0 E0F8 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 13 0 BBX 10 17 1 0 BITMAP 3F00 7F80 F080 E000 E000 F000 7800 7E00 3F00 0F80 03C0 01C0 01C0 01C0 8380 FF80 7E00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 15 0 BBX 15 17 0 0 BITMAP FFFE FFFE 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 17 0 BBX 12 17 2 0 BITMAP E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 F070 7060 7FE0 1F80 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 1 0 BITMAP E006 E00C 700C 700C 7018 3818 3838 3C30 1C30 1C60 0E60 0E60 0FC0 07C0 07C0 0780 0380 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 21 0 BBX 20 17 0 0 BITMAP E07030 E07030 E0F060 70F060 70F860 70F8E0 71B8C0 39B8C0 399CC0 399D80 3B1D80 1F1D80 1F1F80 1F0F00 1F0F00 0E0F00 0E0E00 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 0 0 BITMAP F01C 7038 3830 3C70 1CE0 1EC0 0FC0 0780 0780 07C0 0FC0 0DE0 18F0 3870 3078 6038 E03C ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 15 0 BBX 15 17 0 0 BITMAP E00E 700C 7818 3838 3C30 1E70 0E60 0FC0 07C0 0780 0380 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 1 0 BITMAP 7FF0 7FF0 00F0 00E0 01E0 03C0 0380 0700 0F00 1E00 1C00 3C00 7800 7000 F000 FFF0 FFF0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 8 0 BBX 5 21 2 -4 BITMAP F8 F8 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 F8 F8 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 12 0 BBX 12 21 0 -4 BITMAP C000 6000 6000 3000 3000 1800 1800 1C00 0C00 0E00 0600 0700 0300 0380 0180 0180 00C0 00C0 0060 0060 0030 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 8 0 BBX 5 21 1 -4 BITMAP F8 F8 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 F8 F8 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 1 3 BITMAP 0100 0300 0300 0780 0780 0CC0 0CC0 1860 1860 3030 3030 6018 6018 C00C ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 12 0 BBX 10 2 1 -3 BITMAP FFC0 FFC0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 11 BITMAP 60 C0 C0 E0 E0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 1 0 BITMAP 1F80 7FC0 41C0 01C0 01C0 1FC0 7FC0 F1C0 E1C0 E1C0 E3C0 7EF0 3C70 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 2 0 BITMAP E000 E000 E000 E000 E780 EFE0 F8E0 E0F0 E070 E070 E070 E070 E070 E0E0 F1E0 FFC0 CF80 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 0FC0 3FC0 7840 7000 E000 E000 E000 E000 E000 7000 7840 3FC0 0F80 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 1 0 BITMAP 0070 0070 0070 0070 1E70 3FF0 78F0 7070 E070 E070 E070 E070 E070 F070 71F0 7F70 1E70 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 1 0 BITMAP 1F00 3F80 71C0 60E0 E0E0 FFE0 FFE0 E000 E000 7000 7820 3FE0 0FC0 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 9 0 BBX 9 19 1 0 BITMAP 0F80 1F80 3800 3800 3800 3800 FF00 FF00 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 1 -5 BITMAP 1E70 3FF0 78F0 7070 E070 E070 E070 E070 E070 E070 71F0 7F70 1E70 0070 0060 40E0 7FC0 3F80 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 15 0 BBX 10 17 3 0 BITMAP E000 E000 E000 E000 E700 EF80 F1C0 F1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 7 0 BBX 3 17 2 0 BITMAP E0 E0 E0 00 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 7 0 BBX 7 22 -1 -5 BITMAP 0E 0E 0E 00 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 8E FC F8 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 2 0 BITMAP E000 E000 E000 E000 E0E0 E1C0 E380 E700 E600 EC00 FE00 EF00 EF80 E780 E3C0 E1E0 E0F0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 7 0 BBX 3 17 2 0 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 22 0 BBX 17 13 3 0 BITMAP E78E00 EFDF00 F1E380 F1E380 E1C380 E1C380 E1C380 E1C380 E1C380 E1C380 E1C380 E1C380 E1C380 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 15 0 BBX 10 13 3 0 BITMAP E700 EF80 F1C0 F1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 15 0 BBX 12 13 1 0 BITMAP 1F80 3FC0 79E0 70E0 E070 E070 E070 E070 E070 70E0 79E0 3FC0 1F80 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 2 -5 BITMAP E780 EFE0 F8E0 E0F0 E070 E070 E070 E070 E070 E0E0 F1E0 FFC0 E780 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 1 -5 BITMAP 1E70 3FF0 78F0 7070 E070 E070 E070 E070 E070 F070 71F0 7F70 1E70 0070 0070 0070 0070 0070 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 2 0 BITMAP E7 EF F8 F0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 12 0 BBX 9 13 2 0 BITMAP 3F00 7F00 E100 E000 F000 FE00 7F00 1F80 0380 0380 8780 FF00 7E00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 9 0 BBX 8 15 0 0 BITMAP 38 38 FF FF 38 38 38 38 38 38 38 38 38 1F 0F ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 15 0 BBX 10 13 2 0 BITMAP E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E3C0 E3C0 7DC0 39C0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 0 0 BITMAP E030 E060 F060 70E0 70C0 38C0 3980 3980 1D80 1F00 1F00 0F00 0E00 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 18 0 BBX 18 13 0 0 BITMAP C0C0C0 C1E1C0 61E180 61E180 61E380 333300 333300 333300 3E3600 1E1E00 1E1E00 1E1C00 1C1C00 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 1 0 BITMAP E038 7070 38E0 1CC0 0DC0 0780 0700 0F80 1D80 18C0 30E0 7070 E038 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 13 0 BBX 12 18 0 -5 BITMAP E030 E060 7060 7060 70C0 38C0 39C0 3D80 1D80 1F00 1F00 0F00 0E00 0600 0E00 0C00 1C00 1800 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 14 0 BBX 11 13 1 0 BITMAP FFE0 FFE0 00C0 0180 0300 0700 0E00 1C00 3800 3000 6000 FFE0 FFE0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 8 0 BBX 6 21 0 -4 BITMAP 0C 1C 30 30 30 30 30 30 30 20 C0 E0 30 30 30 30 30 30 30 1C 0C ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 6 0 BBX 2 21 2 -4 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 8 0 BBX 6 21 2 -4 BITMAP C0 E0 30 30 30 30 30 30 30 1C 0C 10 30 30 30 30 30 30 30 E0 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 15 0 BBX 14 6 1 4 BITMAP 380C 7E0C 670C C398 C1F8 C070 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 8 0 BBX 2 18 3 -5 BITMAP C0 C0 C0 00 00 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 15 0 BBX 10 17 2 0 BITMAP 0600 0600 0FC0 3FC0 7640 6600 E600 E600 E600 E600 E600 6600 7640 3FC0 1F80 0600 0600 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 15 0 BBX 10 17 3 0 BITMAP 07C0 1FC0 3840 3800 3800 3800 3800 FF00 FF00 3800 3800 3800 3800 3000 6000 FFC0 FFC0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 15 0 BBX 14 15 1 1 BITMAP C00C E01C 77B8 3FF0 1860 3030 3030 3030 3030 3030 1860 3FF0 77B8 E01C C00C ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 1 0 BITMAP E01C 7038 7830 3C70 1CE0 1FC0 0F80 0F80 3FF0 3FF0 0700 3FF0 3FF0 0700 0700 0700 0700 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 6 0 BBX 2 21 2 -4 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 00 00 00 00 00 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 15 0 BBX 10 22 3 -5 BITMAP 1F80 7F80 E080 C000 C000 E000 7C00 7F00 5F80 C7C0 C1C0 E0C0 F8C0 7F80 3F00 0F80 01C0 00C0 00C0 C1C0 FF80 7F00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 15 0 BBX 7 2 4 15 BITMAP C6 C6 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 21 0 BBX 19 17 1 0 BITMAP 03F800 0FFE00 1E0F00 380380 71E1C0 63F0C0 C71060 C60060 C60060 C60060 C71060 63F0C0 71F1C0 380380 1E0F00 0FFE00 03F800 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 8 BITMAP 7E00 7F00 4300 3F00 7F00 E300 C300 FF80 7B80 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 13 0 BBX 10 11 1 1 BITMAP 08C0 1DC0 3980 7300 6700 EE00 6700 7300 3980 19C0 0CC0 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 15 0 BBX 14 7 1 4 BITMAP FFFC FFFC 000C 000C 000C 000C 000C ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 8 0 BBX 5 2 1 7 BITMAP F8 F8 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 15 0 BBX 11 10 2 7 BITMAP 1F00 7FC0 71C0 FFE0 DF60 DE60 FBE0 71C0 7FC0 1F00 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 15 0 BBX 7 2 4 15 BITMAP FE FE ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 7 0 BBX 4 4 1 13 BITMAP 60 90 90 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 1 0 BITMAP 0300 0300 0300 0300 FFFC FFFC 0300 0300 0300 0300 0000 0000 FFFC FFFC ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 -15 7 BITMAP 78 8C 04 04 0C 18 20 40 C0 FC ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 -15 7 BITMAP F8 8C 04 04 78 0C 04 04 8C F8 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 15 0 BBX 5 3 5 14 BITMAP 38 60 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 15 0 BBX 10 17 3 -4 BITMAP E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E3C0 E3C0 FDC0 FDC0 E000 E000 E000 E000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 15 0 BBX 10 21 2 -4 BITMAP 3FC0 7FC0 FEC0 FEC0 FEC0 FEC0 7EC0 3EC0 0EC0 06C0 06C0 06C0 06C0 06C0 06C0 06C0 06C0 06C0 06C0 06C0 06C0 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 15 0 BBX 3 3 6 6 BITMAP E0 E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 15 0 BBX 4 6 6 -5 BITMAP 60 40 70 30 30 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 9 0 BBX 3 10 -15 7 BITMAP E0 20 20 20 20 20 20 20 20 20 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 8 BITMAP 3E00 7F00 E780 C380 C380 C380 E780 7F00 3E00 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 13 0 BBX 10 11 1 1 BITMAP CC00 E600 6700 3380 3980 1DC0 3980 3380 6700 EE00 C400 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 19 0 BBX 16 17 4 0 BITMAP E00E 201C 2018 2038 2070 20E0 20C0 21C6 2386 270A 0612 0E22 1C62 387F 3002 7002 E002 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 19 0 BBX 15 17 4 0 BITMAP E00E 201C 2018 2038 2070 20E0 20C0 21FC 23C6 2702 0602 0E06 1C0C 3810 3020 7060 E07E ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 19 0 BBX 17 17 5 0 BITMAP F80700 8C0E00 040C00 041C00 783800 0C7000 046000 04E300 8DC300 FB8500 030900 071100 0E3100 1C3F80 180100 380100 700100 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 10 0 BBX 10 18 0 -5 BITMAP 0E00 0E00 0E00 0000 0000 0E00 0E00 0E00 1C00 3800 3000 7000 E000 E000 E000 F040 7FC0 1F80 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 17 0 BBX 16 21 0 0 BITMAP 0700 0180 00C0 0000 01C0 03C0 03E0 07E0 06E0 06F0 0C70 0C78 1C38 1838 1FFC 3FFC 301E 700E 600E 600F C007 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 17 0 BBX 16 21 0 0 BITMAP 00E0 0180 0300 0000 01C0 03C0 03E0 07E0 06E0 06F0 0C70 0C78 1C38 1838 1FFC 3FFC 301E 700E 600E 600F C007 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 17 0 BBX 16 21 0 0 BITMAP 03C0 07E0 0E70 0000 01C0 03C0 03E0 07E0 06E0 06F0 0C70 0C78 1C38 1838 1FFC 3FFC 301E 700E 600E 600F C007 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 17 0 BBX 16 21 0 0 BITMAP 0710 0FF0 0CE0 0000 01C0 03C0 03E0 07E0 06E0 06F0 0C70 0C78 1C38 1838 1FFC 3FFC 301E 700E 600E 600F C007 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 17 0 BBX 16 20 0 0 BITMAP 0630 0630 0000 01C0 03C0 03E0 07E0 06E0 06F0 0C70 0C78 1C38 1838 1FFC 3FFC 301E 700E 600E 600F C007 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 17 0 BBX 16 22 0 0 BITMAP 0180 0240 0240 0180 0000 01C0 03C0 03E0 07E0 06E0 06F0 0C70 0C78 1C38 1838 1FFC 3FFC 301E 700E 600E 600F C007 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 22 0 BBX 21 17 0 0 BITMAP 007FF0 007FF0 00F800 00F800 01F800 03B800 033800 063FE0 063FE0 0C3800 1FF800 1FF800 383800 303800 703800 E03FF8 C03FF8 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 17 0 BBX 14 22 1 -5 BITMAP 07F8 1FFC 3C0C 7800 7000 F000 E000 E000 E000 E000 E000 E000 7000 7804 3C1C 1FFC 07F0 0200 0380 0180 0180 0700 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 13 0 BBX 11 21 2 0 BITMAP 3800 0C00 0600 0000 FFC0 FFC0 E000 E000 E000 E000 E000 FF80 FF80 E000 E000 E000 E000 E000 E000 FFE0 FFE0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 13 0 BBX 11 21 2 0 BITMAP 0700 0C00 1800 0000 FFC0 FFC0 E000 E000 E000 E000 E000 FF80 FF80 E000 E000 E000 E000 E000 E000 FFE0 FFE0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 13 0 BBX 11 21 2 0 BITMAP 1E00 3F00 7380 0000 FFC0 FFC0 E000 E000 E000 E000 E000 FF80 FF80 E000 E000 E000 E000 E000 E000 FFE0 FFE0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 13 0 BBX 11 20 2 0 BITMAP 6300 6300 0000 FFC0 FFC0 E000 E000 E000 E000 E000 FF80 FF80 E000 E000 E000 E000 E000 E000 FFE0 FFE0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 7 0 BBX 5 21 4 0 BITMAP E0 30 18 00 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 7 0 BBX 5 21 2 0 BITMAP 38 60 C0 00 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 7 0 BBX 8 21 4 0 BITMAP 3C 7E E7 00 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 7 0 BBX 7 20 4 0 BITMAP C6 C6 00 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 18 0 BBX 18 17 0 0 BITMAP 1FF800 1FFE00 1C0F00 1C0780 1C0380 1C01C0 1C01C0 FFC1C0 FFC1C0 1C01C0 1C01C0 1C01C0 1C0380 1C0380 1C0F00 1FFE00 1FF000 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 18 0 BBX 13 21 2 0 BITMAP 0E20 1FE0 19C0 0000 E018 F018 F018 F818 FC18 DC18 DE18 CF18 C718 C798 C3D8 C1D8 C1F8 C0F8 C078 C078 C038 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 19 0 BBX 16 21 1 0 BITMAP 0700 0180 00C0 0000 07E0 1FF8 3C3C 781E 700E E007 E007 E007 E007 E007 E007 E007 700E 781E 3C3C 1FF8 07E0 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 19 0 BBX 16 21 1 0 BITMAP 00E0 0180 0300 0000 07E0 1FF8 3C3C 781E 700E E007 E007 E007 E007 E007 E007 E007 700E 781E 3C3C 1FF8 07E0 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 19 0 BBX 16 21 1 0 BITMAP 03C0 07E0 0E70 0000 07E0 1FF8 3C3C 781E 700E E007 E007 E007 E007 E007 E007 E007 700E 781E 3C3C 1FF8 07E0 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 19 0 BBX 16 21 1 0 BITMAP 0710 0FF0 0CE0 0000 07E0 1FF8 3C3C 781E 700E E007 E007 E007 E007 E007 E007 E007 700E 781E 3C3C 1FF8 07E0 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 19 0 BBX 16 20 1 0 BITMAP 0630 0630 0000 07E0 1FF8 3C3C 781E 700E E007 E007 E007 E007 E007 E007 E007 700E 781E 3C3C 1FF8 07E0 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 1 0 BITMAP 4008 E01C 7038 3870 1CE0 0FC0 0780 0780 0FC0 1CE0 3870 7038 E01C 4008 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 19 0 BBX 16 17 1 0 BITMAP 07E7 1FFE 3C3C 781E 703E E077 E0E7 E1C7 E187 E307 E707 EE07 7C0E 781E 3C3C 7FF8 E7E0 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 17 0 BBX 12 21 2 0 BITMAP 1C00 0600 0300 0000 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 F070 7060 7FE0 1F80 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 17 0 BBX 12 21 2 0 BITMAP 0380 0600 0C00 0000 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 F070 7060 7FE0 1F80 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 17 0 BBX 12 21 2 0 BITMAP 0F00 1F80 39C0 0000 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 F070 7060 7FE0 1F80 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 17 0 BBX 12 20 2 0 BITMAP 3180 3180 0000 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 F070 7060 7FE0 1F80 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 15 0 BBX 15 21 0 0 BITMAP 00E0 0180 0300 0000 E00E 700C 7818 3838 3C30 1E70 0E60 0FC0 07C0 0780 0380 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 13 0 BBX 11 17 2 0 BITMAP E000 E000 E000 FF80 FFC0 E1E0 E0E0 E0E0 E0E0 E0E0 E1E0 E3C0 FF80 FE00 E000 E000 E000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 14 0 BBX 12 19 2 0 BITMAP 3E00 7F00 F380 E380 E380 E300 E300 E600 E600 E700 E7C0 E3E0 E1E0 E070 E030 E030 E470 E7E0 E7C0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 13 0 BBX 12 17 1 0 BITMAP 1C00 0600 0300 0000 1F80 7FC0 41C0 01C0 01C0 1FC0 7FC0 F1C0 E1C0 E1C0 E3C0 7EF0 3C70 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 13 0 BBX 12 17 1 0 BITMAP 0380 0600 0C00 0000 1F80 7FC0 41C0 01C0 01C0 1FC0 7FC0 F1C0 E1C0 E1C0 E3C0 7EF0 3C70 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 13 0 BBX 12 17 1 0 BITMAP 0F00 1F80 39C0 0000 1F80 7FC0 41C0 01C0 01C0 1FC0 7FC0 F1C0 E1C0 E1C0 E3C0 7EF0 3C70 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 13 0 BBX 12 17 1 0 BITMAP 1C40 3FC0 3380 0000 1F80 7FC0 41C0 01C0 01C0 1FC0 7FC0 F1C0 E1C0 E1C0 E3C0 7EF0 3C70 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 13 0 BBX 12 16 1 0 BITMAP 3180 3180 0000 1F80 7FC0 41C0 01C0 01C0 1FC0 7FC0 F1C0 E1C0 E1C0 E3C0 7EF0 3C70 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 13 0 BBX 12 18 1 0 BITMAP 0600 0900 0900 0600 0000 1F80 7FC0 41C0 01C0 01C0 1FC0 7FC0 F1C0 E1C0 E1C0 E3C0 7EF0 3C70 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 20 0 BBX 17 13 1 0 BITMAP 3F3E00 7FFF00 41E700 01C380 01C380 1FFF80 7FFF80 F1C000 E1C000 E1E000 E3F080 7E7F80 383F00 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 12 0 BBX 10 18 1 -5 BITMAP 0FC0 3FC0 7840 7000 E000 E000 E000 E000 E000 7000 7840 3FC0 0F80 0800 0E00 0600 0600 1C00 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 13 0 BBX 11 17 1 0 BITMAP 1C00 0600 0300 0000 1F00 3F80 71C0 60E0 E0E0 FFE0 FFE0 E000 E000 7000 7820 3FE0 0FC0 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 13 0 BBX 11 17 1 0 BITMAP 0380 0600 0C00 0000 1F00 3F80 71C0 60E0 E0E0 FFE0 FFE0 E000 E000 7000 7820 3FE0 0FC0 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 13 0 BBX 11 17 1 0 BITMAP 0F00 1F80 39C0 0000 1F00 3F80 71C0 60E0 E0E0 FFE0 FFE0 E000 E000 7000 7820 3FE0 0FC0 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 13 0 BBX 11 16 1 0 BITMAP 3180 3180 0000 1F00 3F80 71C0 60E0 E0E0 FFE0 FFE0 E000 E000 7000 7820 3FE0 0FC0 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 7 0 BBX 5 17 4 0 BITMAP E0 30 18 00 38 38 38 38 38 38 38 38 38 38 38 38 38 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 7 0 BBX 5 17 2 0 BITMAP 38 60 C0 00 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 7 0 BBX 8 17 4 0 BITMAP 3C 7E E7 00 38 38 38 38 38 38 38 38 38 38 38 38 38 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 7 0 BBX 7 16 4 0 BITMAP C6 C6 00 38 38 38 38 38 38 38 38 38 38 38 38 38 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 1 0 BITMAP FE00 9F00 3A00 1100 1F80 3FC0 78E0 F0E0 E070 E070 E070 E070 E070 70E0 78E0 3FC0 1F80 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 15 0 BBX 10 17 3 0 BITMAP 3880 7F80 6700 0000 E700 EF80 F1C0 F1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 1 0 BITMAP 1C00 0600 0300 0000 1F80 3FC0 79E0 70E0 E070 E070 E070 E070 E070 70E0 79E0 3FC0 1F80 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 1 0 BITMAP 0380 0600 0C00 0000 1F80 3FC0 79E0 70E0 E070 E070 E070 E070 E070 70E0 79E0 3FC0 1F80 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 1 0 BITMAP 0F00 1F80 39C0 0000 1F80 3FC0 79E0 70E0 E070 E070 E070 E070 E070 70E0 79E0 3FC0 1F80 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 1 0 BITMAP 1C40 3FC0 3380 0000 1F80 3FC0 79E0 70E0 E070 E070 E070 E070 E070 70E0 79E0 3FC0 1F80 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 15 0 BBX 12 16 1 0 BITMAP 18C0 18C0 0000 1F80 3FC0 79E0 70E0 E070 E070 E070 E070 E070 70E0 79E0 3FC0 1F80 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 15 0 BBX 15 13 0 0 BITMAP 0380 0380 0380 0000 0000 FFFE FFFE 0000 0000 0000 0380 0380 0380 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 15 0 BBX 12 13 1 0 BITMAP 1FF0 3FE0 79E0 71E0 E3F0 E370 E670 EC70 FC70 78E0 79E0 7FC0 FF80 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 15 0 BBX 10 17 2 0 BITMAP 3800 0C00 0600 0000 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E3C0 E3C0 7DC0 39C0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 15 0 BBX 10 17 2 0 BITMAP 0700 0C00 1800 0000 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E3C0 E3C0 7DC0 39C0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 15 0 BBX 10 17 2 0 BITMAP 1E00 3F00 7380 0000 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E3C0 E3C0 7DC0 39C0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 15 0 BBX 10 16 2 0 BITMAP 3180 3180 0000 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E3C0 E3C0 7DC0 39C0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 13 0 BBX 12 22 0 -5 BITMAP 0380 0600 0C00 0000 E030 E060 7060 7060 70C0 38C0 39C0 3D80 1D80 1F00 1F00 0F00 0E00 0600 0E00 0C00 1C00 1800 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 15 0 BBX 12 21 2 -5 BITMAP E000 E000 E000 E780 EFE0 F8E0 E0F0 E070 E070 E070 E070 E070 E0E0 F1E0 FFC0 EF80 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 13 0 BBX 12 21 0 -5 BITMAP 3180 3180 0000 E030 E060 7060 7060 70C0 38C0 39C0 3D80 1D80 1F00 1F00 0F00 0E00 0600 0E00 0C00 1C00 1800 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 1 0 BITMAP 0FF0 1FF0 3870 3870 3870 3870 FC70 FC70 3870 3870 3870 3870 3870 3870 3870 3870 3870 3870 3870 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 2 1 7 BITMAP FFC0 FFC0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 10 21 3 -4 BITMAP 0C00 0C00 0C00 0C00 0C00 0C00 FFC0 FFC0 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 12 21 1 0 BITMAP 39C0 1F80 0F00 0000 7FF0 7FF0 00F0 00E0 01E0 03C0 0380 0700 0F00 1E00 1C00 3C00 7800 7000 F000 FFF0 FFF0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 22 0 BBX 20 13 1 0 BITMAP 0F8F80 3FDFE0 78F8E0 70F070 E07070 E07FF0 E07FF0 E07000 E07000 70F800 78FC10 3FDFF0 1F87E0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 15 20 0 0 BITMAP 0C60 0C60 0000 E00E 700C 7818 3838 3C30 1E70 0E60 0FC0 07C0 0780 0380 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 13 2 0 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 9 17 0 0 BITMAP 1C00 1C00 1C00 1C00 1C80 1F80 1F00 1C00 FC00 9C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 14 17 0 0 BITMAP 1C00 1C00 1C00 1C00 1C00 1C80 1F80 1F00 7C00 FC00 9C00 1C00 1C00 1C00 1C00 1FFC 1FFC ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 10 21 3 -4 BITMAP 0C00 0C00 0C00 0C00 0C00 0C00 FFC0 FFC0 0C00 0C00 0C00 0C00 0C00 FFC0 FFC0 0C00 0C00 0C00 0C00 0C00 0C00 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 12 19 1 0 BITMAP 0F00 1F00 3870 3870 3870 3800 FFF0 FFF0 3870 3870 3870 3870 3870 3870 3870 3870 3870 3870 3870 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 1 BITMAP 40 E0 70 30 18 1C 18 30 70 E0 C0 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 24 0 BBX 22 17 1 0 BITMAP 07DFF8 1FFFF8 3C3C00 701C00 701C00 E01C00 E01C00 E01FF0 E01FF0 E01C00 E01C00 E01C00 701C00 701C00 3C3C00 1FFFFC 07DFFC ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 24 0 BBX 22 2 1 6 BITMAP FFFFFC FFFFFC ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 3 3 14 BITMAP E7 7E 3C ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 4 3 6 -4 BITMAP 60 C0 F0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 7 3 5 14 BITMAP 36 6C D8 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 1 BITMAP 0C 1C 38 30 60 E0 60 30 38 1C 08 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 2 3 6 14 BITMAP C0 C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 3 3 14 BITMAP C3 7E 3C ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 7 7 4 4 BITMAP FE FE FE FE FE FE FE ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 3 3 14 BITMAP 71 FF CE ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 3 3 14 BITMAP 3C 7E E7 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 5 1 12 BITMAP 66 CC EE EE EE ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 12 BITMAP F0 F0 F0 60 60 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 17 2 0 BITMAP 7380 3F00 1E00 0000 3F00 7F00 E100 E000 F000 FE00 7F00 1F80 0380 0380 8780 FF00 7E00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 4 4 5 15 BITMAP 60 90 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 8 1 -4 BITMAP E0 E0 E0 E0 60 60 40 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 11 21 3 -4 BITMAP 03E0 07E0 0E00 0C00 1C00 1C00 1C00 1C00 FE00 FE00 1C00 1C00 3800 3800 3800 7800 7000 7000 7000 E000 E000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 18 9 0 8 BITMAP FF71C0 FF71C0 187BC0 187BC0 186FC0 186EC0 186EC0 1866C0 1860C0 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 15 17 -6 0 BITMAP 000E 001C 0018 0038 0070 00E0 00C0 01C0 0380 0700 0600 0E00 1C00 3800 3000 7000 E000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 5 3 4 14 BITMAP E0 30 18 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 24 0 BBX 23 17 1 0 BITMAP 380E00 7C0C00 EE1800 C63800 C67000 EE6000 7CC000 39C000 03B838 037C7C 06EEEE 0CC6C6 1CC6C6 38C6C6 30EEEE 607C7C E03838 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 24 0 BBX 18 3 3 0 BITMAP E0E1C0 E0E1C0 E0E1C0 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 5 1 12 BITMAP EE EE EE 66 CC ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 10 21 1 0 BITMAP 7380 3F00 1E00 0000 3F00 7F80 F080 E000 E000 F000 7800 7E00 3F00 0F80 03C0 01C0 01C0 01C0 8380 FF80 7E00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 -5 BITMAP EE EE EE 66 66 66 CC 88 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 11 17 1 0 BITMAP 39C0 1F80 0F00 0000 FFE0 FFE0 00C0 0180 0300 0700 0E00 1C00 3800 3000 6000 FFE0 FFE0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lubB08.bdf100644 1750 1750 54006 5413747473 15012 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-DemiBold-R-Normal--8-80-75-75-P-47-ISO8859-1 SIZE 8 72 72 FONTBOUNDINGBOX 12 10 -3 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "DemiBold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 8 POINT_SIZE 80 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 47 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 7 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 3 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 2 0 BBX 1 6 1 0 BITMAP 80 80 80 80 00 80 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 4 0 BBX 2 2 1 4 BITMAP C0 C0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 38 F8 50 F8 60 E0 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 1 -1 BITMAP 20 F0 B0 60 30 B0 F0 20 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP E4 A8 F0 3C 54 9C ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 70 50 AC A8 90 6C ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 2 0 BBX 1 3 1 3 BITMAP 80 80 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 3 0 BBX 2 8 0 -2 BITMAP 40 80 80 80 80 80 80 40 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 3 0 BBX 2 8 0 -2 BITMAP 80 40 40 40 40 40 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 4 0 BBX 3 3 0 3 BITMAP 40 A0 A0 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 20 20 F8 20 20 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 2 0 BBX 1 3 1 -2 BITMAP 80 80 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 5 0 BBX 5 1 0 2 BITMAP F8 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 2 0 BBX 1 1 1 0 BITMAP 80 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 4 0 BBX 4 8 0 -2 BITMAP 10 30 20 20 40 40 C0 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 60 90 90 90 90 60 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP C0 40 40 40 40 E0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP E0 90 10 60 40 F0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP F0 90 60 10 90 E0 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 30 70 D0 F8 10 38 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP E0 80 E0 20 A0 C0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 70 90 E0 90 90 60 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP F0 30 20 40 C0 80 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 70 90 50 B0 90 60 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 60 90 90 70 90 E0 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 2 0 BBX 1 4 1 0 BITMAP 80 00 00 80 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 2 0 BBX 1 6 1 -2 BITMAP 80 00 00 80 80 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 08 30 C0 30 08 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 5 0 BBX 5 2 0 1 BITMAP F8 F8 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 80 60 18 60 80 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 0 0 BITMAP E0 90 30 40 40 40 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP 3C 5E AE AA FC 78 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 20 30 50 78 88 8C ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP F8 48 70 48 48 F0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP 78 C8 80 80 C0 78 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP F8 44 44 44 44 F8 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP F8 48 70 40 48 F8 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP F8 48 70 40 40 C0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 78 C8 80 9C C8 78 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 6 0 BBX 7 6 0 0 BITMAP EE 44 7C 44 44 EE ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 0 0 BITMAP E0 40 40 40 40 E0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 4 0 BBX 4 8 0 -2 BITMAP 70 20 20 20 20 20 A0 E0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP EC 58 70 70 58 FC ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP E0 40 40 40 48 F8 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 7 0 BBX 8 6 0 0 BITMAP E3 66 76 5A 52 E7 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 6 0 BBX 7 6 0 0 BITMAP CE 64 74 5C 4C E4 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 78 CC 84 84 CC 78 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP F0 48 48 70 40 E0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 6 0 BBX 7 8 0 -2 BITMAP 78 CC 84 84 CC 78 0C 06 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP F8 48 48 70 58 EC ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 0 0 BITMAP 70 90 E0 30 90 E0 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP F8 20 20 20 20 70 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 6 0 BBX 7 6 0 0 BITMAP EE 44 44 44 44 7C ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP CC 4C 48 28 30 10 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 8 0 BBX 8 6 0 0 BITMAP CB 59 5A 5A 26 24 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP EC 48 38 70 48 DC ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP C8 58 70 20 20 70 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP F0 A0 20 40 50 F0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 3 0 BBX 2 8 0 -2 BITMAP C0 80 80 80 80 80 80 C0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 4 0 BBX 4 8 0 -2 BITMAP 80 C0 40 40 20 20 10 10 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 3 0 BBX 2 8 0 -2 BITMAP C0 40 40 40 40 40 40 C0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 1 BITMAP 20 20 50 50 88 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 4 0 BBX 3 1 1 -1 BITMAP E0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 2 0 BBX 1 3 1 3 BITMAP 80 80 80 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 0 0 BITMAP E0 E0 A0 D0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP C0 40 70 48 48 70 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 0 0 BITMAP 70 90 80 70 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 30 10 70 90 90 78 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP 60 F0 80 70 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 3 0 BBX 4 6 0 0 BITMAP 70 50 E0 40 40 E0 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 -2 BITMAP 78 90 F0 F8 88 F0 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 5 0 BBX 6 6 0 0 BITMAP C0 40 78 48 48 FC ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 0 0 BITMAP 40 00 C0 40 40 E0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 0 -2 BITMAP 20 00 60 20 20 20 A0 E0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP C0 40 58 70 70 F8 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 0 0 BITMAP C0 40 40 40 40 E0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 8 0 BBX 9 4 0 0 BITMAP FF00 4900 4900 FF80 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 5 0 BBX 6 4 0 0 BITMAP F8 48 48 FC ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP 60 90 90 60 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 -2 BITMAP F0 48 48 70 40 E0 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 -2 BITMAP 70 90 90 70 10 38 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 0 0 BITMAP F0 50 40 E0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 1 0 BITMAP E0 E0 E0 E0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 0 0 BITMAP 40 40 E0 40 40 60 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 5 0 BBX 6 4 0 0 BITMAP D8 48 48 7C ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 0 BITMAP D8 58 70 20 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 7 0 BBX 7 4 0 0 BITMAP D6 5E 6C 2C ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 0 BITMAP F8 70 70 D8 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 -2 BITMAP C8 58 50 30 20 40 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP F0 A0 50 F0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 3 0 BBX 2 8 0 -2 BITMAP C0 80 40 C0 40 40 80 C0 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 2 0 BBX 1 8 1 -2 BITMAP 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 3 0 BBX 2 8 0 -2 BITMAP C0 40 80 C0 80 80 40 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 5 0 BBX 5 2 0 1 BITMAP E8 B8 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 2 0 BBX 1 6 1 -2 BITMAP 80 00 80 80 80 80 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP 40 E0 E0 C0 E0 40 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 30 50 40 E0 40 F0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 88 70 50 50 70 88 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP C8 58 30 70 70 70 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 2 0 BBX 1 8 1 -2 BITMAP 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 1 -2 BITMAP 70 90 40 B0 D0 20 90 F0 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 5 0 BBX 2 1 1 5 BITMAP C0 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP 38 5C B2 A2 54 38 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 4 0 BBX 3 3 1 3 BITMAP E0 E0 E0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP 50 A0 A0 50 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 5 0 BBX 5 2 0 1 BITMAP F8 08 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 2 0 BBX 2 1 0 2 BITMAP C0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 5 0 BBX 3 4 1 2 BITMAP 40 E0 E0 40 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 5 0 BBX 2 1 1 5 BITMAP C0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 2 0 BBX 1 2 1 4 BITMAP 80 80 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 20 F8 20 00 F8 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 3 0 BBX 3 3 -3 3 BITMAP E0 E0 E0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 3 0 BBX 3 3 -3 3 BITMAP E0 C0 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 5 0 BBX 2 1 2 5 BITMAP C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 -2 BITMAP D8 48 48 7C 40 40 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 0 -2 BITMAP F0 F0 F0 70 30 30 30 30 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 2 2 BITMAP 80 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 5 0 BBX 1 2 2 -2 BITMAP 80 80 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 3 0 BBX 3 3 -3 3 BITMAP C0 40 E0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 4 0 BBX 3 3 0 3 BITMAP E0 A0 E0 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP A0 70 70 A0 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 2 0 BITMAP C4 48 F0 1C 3C 44 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 2 0 BITMAP C4 48 F0 1C 3C 5C ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 2 0 BITMAP E4 C8 F0 1C 3C 44 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 0 -2 BITMAP 20 20 20 C0 90 70 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 30 20 30 50 78 88 8C ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 30 20 30 50 78 88 8C ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 38 20 30 50 78 88 8C ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 38 20 30 50 78 88 8C ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 30 20 30 50 78 88 8C ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP 10 28 30 30 50 78 88 8C ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 8 0 BBX 7 6 0 0 BITMAP 0E 12 30 3C 72 BE ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 -2 BITMAP 78 C8 80 80 C0 78 20 20 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 20 F8 48 70 40 48 F8 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 20 F8 48 70 40 48 F8 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 50 F8 48 70 40 48 F8 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 30 F8 48 70 40 48 F8 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 3 0 BBX 3 7 0 0 BITMAP 40 E0 40 40 40 40 E0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 3 0 BBX 3 7 0 0 BITMAP 40 E0 40 40 40 40 E0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 3 0 BBX 3 7 0 0 BITMAP E0 E0 40 40 40 40 E0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 3 0 BBX 3 7 0 0 BITMAP C0 E0 40 40 40 40 E0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP F8 44 E4 44 44 F8 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 6 0 BBX 7 7 0 0 BITMAP 38 CE 64 74 5C 4C E4 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 10 78 CC 84 84 CC 78 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 20 78 CC 84 84 CC 78 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 50 78 CC 84 84 CC 78 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 70 78 CC 84 84 CC 78 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 30 78 CC 84 84 CC 78 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 88 50 20 50 88 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 74 CC 9C E4 CC F8 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 6 0 BBX 7 7 0 0 BITMAP 10 EE 44 44 44 44 7C ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 6 0 BBX 7 7 0 0 BITMAP 10 EE 44 44 44 44 7C ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 6 0 BBX 7 7 0 0 BITMAP 38 EE 44 44 44 44 7C ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 6 0 BBX 7 7 0 0 BITMAP 18 EE 44 44 44 44 7C ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 0 0 BITMAP 30 C8 58 70 20 20 70 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP E0 78 48 48 70 E0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP 60 60 60 70 68 F8 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 0 0 BITMAP 20 E0 E0 A0 D0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 0 0 BITMAP 40 E0 E0 A0 D0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 0 0 BITMAP E0 E0 E0 A0 D0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 0 0 BITMAP E0 E0 E0 A0 D0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 0 0 BITMAP 60 E0 E0 A0 D0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 0 0 BITMAP 40 A0 E0 E0 A0 D0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 7 0 BBX 6 4 0 0 BITMAP F8 FC A0 DC ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 0 -2 BITMAP 70 90 80 70 20 20 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 60 60 F0 80 70 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 60 60 F0 80 70 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 70 60 F0 80 70 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 60 60 F0 80 70 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 3 0 BBX 3 5 0 0 BITMAP C0 C0 40 40 E0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 3 0 BBX 3 5 0 0 BITMAP 60 C0 40 40 E0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 3 0 BBX 3 5 0 0 BITMAP E0 C0 40 40 E0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 3 0 BBX 3 5 0 0 BITMAP C0 C0 40 40 E0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 0 BITMAP 20 E0 F0 70 90 90 60 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 5 0 BBX 6 5 0 0 BITMAP 70 F8 48 48 FC ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 60 60 90 90 60 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 60 60 90 90 60 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 70 60 90 90 60 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 70 60 90 90 60 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 60 60 90 90 60 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 0 BITMAP 20 00 F8 20 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 0 BITMAP 78 B8 E8 F0 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 5 0 BBX 6 5 0 0 BITMAP 30 D8 48 48 7C ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 5 0 BBX 6 5 0 0 BITMAP 30 D8 48 48 7C ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 5 0 BBX 6 5 0 0 BITMAP 38 D8 48 48 7C ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 5 0 BBX 6 5 0 0 BITMAP 30 D8 48 48 7C ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 -2 BITMAP 30 C8 58 50 30 20 40 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 0 -2 BITMAP C0 40 70 48 48 70 40 E0 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 -2 BITMAP 60 C8 58 50 30 20 40 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 6 6 0 0 BITMAP 78 48 E8 48 48 FC ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 1 0 2 BITMAP F0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 8 1 -2 BITMAP 40 40 E0 40 40 40 40 40 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 0 BITMAP 50 F0 A0 20 40 50 F0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 4 0 0 BITMAP 6C 9E 90 6E ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 0 0 BITMAP 30 C8 58 70 20 20 70 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 4 0 0 BITMAP C0 40 40 E0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 0 0 BITMAP C0 40 60 C0 40 E0 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 6 6 1 0 BITMAP 70 20 70 A0 24 7C ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 8 1 -2 BITMAP 40 40 E0 40 40 E0 40 40 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 70 60 F0 50 50 D8 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 0 0 BITMAP 80 40 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 6 1 0 BITMAP 7E 92 9C 90 92 7E ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 1 1 2 BITMAP FE ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 1 5 BITMAP E0 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 2 -2 BITMAP 80 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 1 5 BITMAP E0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 0 0 BITMAP 40 80 80 40 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 2 5 BITMAP 80 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 1 5 BITMAP E0 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 1 1 BITMAP E0 E0 E0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 1 5 BITMAP E0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 1 5 BITMAP E0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 2 0 4 BITMAP A0 A0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 1 3 1 3 BITMAP 80 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 1 0 BITMAP E0 E0 E0 E0 E0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 3 4 BITMAP 40 A0 40 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 1 3 1 -2 BITMAP 80 80 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 1 -2 BITMAP 30 50 40 E0 40 40 80 80 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 3 0 3 BITMAP FF 4F 49 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 0 0 BBX 5 6 -1 0 BITMAP 08 10 20 20 40 80 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 2 1 1 5 BITMAP C0 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 6 0 0 BITMAP E400 A800 F000 3F80 5680 9F80 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 1 1 0 BITMAP A4 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 2 0 4 BITMAP A0 A0 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 7 0 0 BITMAP E0 70 90 E0 30 90 E0 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 3 0 -2 BITMAP A0 A0 A0 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 50 F0 A0 50 F0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lubB10.bdf100644 1750 1750 56142 5413747473 15006 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-DemiBold-R-Normal--10-100-75-75-P-59-ISO8859-1 SIZE 10 72 72 FONTBOUNDINGBOX 16 11 -6 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "DemiBold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 10 POINT_SIZE 100 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 59 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 9 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 3 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 3 0 BBX 1 8 1 0 BITMAP 80 80 80 80 80 80 00 80 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 5 0 BBX 3 4 1 4 BITMAP A0 A0 A0 A0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 28 28 FC 28 50 FC 50 50 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 -1 BITMAP 70 B0 A0 60 30 30 B0 F0 20 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 8 0 BBX 6 8 1 0 BITMAP 44 A8 B8 50 28 74 54 88 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 0 0 BITMAP 30 48 78 B6 94 9C CC 76 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 0 4 BITMAP C0 C0 40 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 3 0 BBX 2 10 1 -2 BITMAP 40 80 80 80 80 80 80 80 80 40 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 3 0 BBX 2 10 1 -2 BITMAP 80 40 40 40 40 40 40 40 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 4 0 BBX 4 3 0 5 BITMAP 60 F0 F0 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 6 0 BBX 7 7 0 0 BITMAP 10 10 10 FE 10 10 10 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 0 -2 BITMAP C0 C0 40 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 6 0 BBX 6 1 0 2 BITMAP FC ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 3 0 BBX 2 1 0 0 BITMAP C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 5 0 BBX 5 10 0 -2 BITMAP 08 18 10 10 20 20 40 40 C0 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP 78 48 84 84 84 84 48 78 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 6 0 BBX 3 8 2 0 BITMAP C0 40 40 40 40 40 40 E0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 0 BITMAP E0 90 10 10 20 40 80 F0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 0 BITMAP E0 90 10 60 10 10 90 E0 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 0 BITMAP 30 30 50 90 F8 10 10 38 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 0 BITMAP F0 80 80 E0 30 10 90 E0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 38 48 80 F0 88 88 88 70 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP F8 08 10 20 60 40 C0 80 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 70 88 88 70 98 88 88 70 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 70 98 88 88 78 08 90 E0 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 3 0 BBX 1 5 1 0 BITMAP 80 00 00 00 80 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 3 0 BBX 1 7 1 -2 BITMAP 80 00 00 00 80 80 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 04 18 30 C0 30 18 04 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 6 0 BBX 6 3 0 1 BITMAP FC 00 FC ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 80 60 30 0C 30 60 80 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 1 0 BITMAP E0 90 10 30 40 40 00 40 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 1 0 BITMAP 1E 63 59 AD AD B6 C0 78 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 0 0 BITMAP 10 18 38 24 7C 46 C2 C7 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP F8 44 44 78 48 44 44 F8 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 3C 44 80 80 80 80 44 3C ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 0 0 BITMAP FC 42 41 41 41 41 42 FC ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP FC 44 48 78 48 40 44 FC ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP FC 44 48 78 48 40 40 E0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 0 0 BITMAP 3C 44 80 80 8E 84 44 3C ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 0 0 BITMAP E7 42 42 7E 42 42 42 E7 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 0 0 BITMAP E0 40 40 40 40 40 40 E0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 5 0 BBX 4 10 0 -2 BITMAP 70 20 20 20 20 20 20 20 A0 E0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP EC 4C 58 60 50 58 4C EE ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 0 BITMAP E0 40 40 40 40 40 48 F8 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 0 0 BITMAP E380 6300 7300 5500 5500 4900 4900 E380 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 0 0 BITMAP C7 62 62 52 4A 4E 46 E2 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 0 BITMAP 38 44 82 82 82 82 44 38 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP F8 44 44 44 78 40 40 E0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 -2 BITMAP 38 44 82 82 82 82 46 3C 06 03 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP F8 44 44 48 78 48 4C E6 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 0 BITMAP 70 90 80 40 30 10 90 E0 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP FE 10 10 10 10 10 10 38 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 7 0 BBX 8 8 0 0 BITMAP E7 42 42 42 42 42 42 3C ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 0 0 BITMAP E3 62 22 26 14 14 18 08 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 10 0 BBX 10 8 0 0 BITMAP E4C0 4C80 4C80 2C80 3B00 3300 3300 1200 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP E6 64 2C 18 38 68 44 CE ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP E6 66 24 18 10 10 10 38 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP F8 90 10 20 20 40 48 F8 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 3 0 BBX 2 10 1 -2 BITMAP C0 80 80 80 80 80 80 80 80 C0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 5 0 BBX 5 10 0 -2 BITMAP 80 C0 40 40 20 20 10 10 18 08 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 3 0 BBX 2 10 0 -2 BITMAP C0 40 40 40 40 40 40 40 40 C0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 1 BITMAP 10 30 30 48 48 48 84 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 5 0 BBX 4 1 1 -1 BITMAP F0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 0 4 BITMAP C0 80 C0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 0 0 BITMAP F0 10 F0 90 F8 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP C0 40 40 78 44 44 44 78 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 78 88 80 C0 78 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 18 08 08 78 88 88 88 7C ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 0 0 BITMAP 70 88 F8 80 78 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 4 0 BBX 4 8 0 0 BITMAP 70 50 40 E0 40 40 40 E0 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 -2 BITMAP 78 90 90 60 F8 88 F0 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP C0 40 40 7C 44 44 44 EE ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 0 0 BITMAP 40 00 00 C0 40 40 40 E0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 0 -2 BITMAP 20 00 00 60 20 20 20 20 A0 E0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP C0 40 40 5C 58 60 50 EC ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 0 0 BITMAP C0 40 40 40 40 40 40 E0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 10 0 BBX 9 5 0 0 BITMAP FF00 4900 4900 4900 FF80 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 7 0 BBX 7 5 0 0 BITMAP FC 44 44 44 EE ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 6 0 BBX 6 5 0 0 BITMAP 78 CC 84 CC 78 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 -2 BITMAP F8 44 44 44 78 40 E0 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 -2 BITMAP 78 88 88 88 78 08 1C ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP F0 50 40 40 E0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP F0 90 60 90 F0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 4 0 BBX 3 8 0 0 BITMAP 40 40 40 E0 40 40 40 60 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 7 0 BBX 7 5 0 0 BITMAP CC 44 44 44 7E ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 7 0 BBX 7 5 0 0 BITMAP E6 64 2C 18 10 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 9 0 BBX 9 5 0 0 BITMAP E980 4D00 7500 3600 2200 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 6 0 BBX 6 5 0 0 BITMAP EC 68 30 58 DC ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 -2 BITMAP E6 64 2C 28 10 10 60 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 0 0 BITMAP F8 90 20 48 F8 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 0 -2 BITMAP 60 40 40 40 C0 40 40 40 40 60 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 3 0 BBX 1 10 1 -2 BITMAP 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 0 -2 BITMAP C0 40 40 40 60 40 40 40 40 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 6 0 BBX 6 2 0 2 BITMAP E4 9C ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 3 0 BBX 1 7 1 -2 BITMAP 80 00 80 80 80 80 80 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 0 BITMAP 20 78 A8 A0 A0 A0 78 20 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 38 48 40 40 F0 40 40 F8 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP 84 78 48 48 48 48 78 84 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP CC 48 30 78 20 78 20 70 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 3 0 BBX 1 10 1 -2 BITMAP 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 6 0 BBX 5 10 1 -2 BITMAP 78 88 80 60 98 C8 30 08 88 F0 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 2 7 BITMAP A0 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 0 0 BITMAP 3C 66 DB A9 A1 DB 66 3C ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 3 BITMAP E0 20 E0 A0 E0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 0 0 BITMAP 28 50 F0 50 28 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 6 0 BBX 6 3 0 1 BITMAP FC 04 04 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 3 0 BBX 2 1 0 2 BITMAP C0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 2 BITMAP 70 D8 A8 B8 F8 70 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 2 7 BITMAP E0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 0 5 BITMAP C0 C0 C0 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 6 0 BBX 7 7 0 0 BITMAP 10 10 FE 10 10 00 FE ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 -5 4 BITMAP E0 A0 40 E0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 -6 4 BITMAP E0 E0 A0 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 6 0 BBX 2 1 2 7 BITMAP C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 -2 BITMAP CC 44 44 44 7E 40 40 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 6 0 BBX 4 10 1 -2 BITMAP F0 F0 F0 70 30 30 30 30 30 30 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 6 0 BBX 1 1 3 2 BITMAP 80 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 6 0 BBX 2 2 2 -2 BITMAP 80 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 -6 4 BITMAP C0 40 40 E0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 3 BITMAP 60 90 90 90 60 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 0 0 BITMAP A0 50 78 50 A0 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 3 0 BITMAP C6 44 48 F0 1C 3E 44 C6 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 3 0 BITMAP C6 44 48 F0 1E 2A 44 CE ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 3 0 BITMAP E6 E4 A8 F0 1C 3E 44 C6 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 -2 BITMAP 20 00 20 20 C0 90 70 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 18 10 18 38 24 7C 46 C2 C7 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 18 10 18 38 24 7C 46 C2 C7 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 1C 10 18 38 24 7C 46 C2 C7 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 1C 10 18 38 24 7C 46 C2 C7 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 14 10 18 38 24 7C 46 C2 C7 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 18 10 18 38 24 7C 46 C2 C7 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 10 0 BBX 9 8 0 0 BITMAP 0F80 0880 1900 3F00 2900 7800 4880 DF80 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 -2 BITMAP 3C 44 80 80 80 80 44 3C 20 30 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP 10 FC 44 48 78 48 40 44 FC ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP 20 FC 44 48 78 48 40 44 FC ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP 28 FC 44 48 78 48 40 44 FC ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP 28 FC 44 48 78 48 40 44 FC ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 3 0 BBX 3 9 0 0 BITMAP 40 E0 40 40 40 40 40 40 E0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 3 0 BBX 3 9 0 0 BITMAP 40 E0 40 40 40 40 40 40 E0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 3 0 BBX 3 9 0 0 BITMAP E0 E0 40 40 40 40 40 40 E0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 3 0 BBX 3 9 0 0 BITMAP A0 E0 40 40 40 40 40 40 E0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 0 0 BITMAP FC 42 41 F1 41 41 42 FC ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 1C C7 62 62 52 4A 4E 46 E2 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 10 38 44 82 82 82 82 44 38 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 10 38 44 82 82 82 82 44 38 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 38 38 44 82 82 82 82 44 38 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 38 38 44 82 82 82 82 44 38 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 28 38 44 82 82 82 82 44 38 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 84 48 78 30 78 48 84 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 0 BITMAP 3A 46 8E 9A B2 C2 C4 B8 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 7 0 BBX 8 9 0 0 BITMAP 18 E7 42 42 42 42 42 42 3C ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 7 0 BBX 8 9 0 0 BITMAP 18 E7 42 42 42 42 42 42 3C ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 7 0 BBX 8 9 0 0 BITMAP 38 E7 42 42 42 42 42 42 3C ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 7 0 BBX 8 9 0 0 BITMAP 28 E7 42 42 42 42 42 42 3C ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 18 E6 66 24 18 10 10 10 38 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP E0 40 78 44 44 78 40 E0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 78 48 50 50 58 44 54 F8 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP 20 F0 10 F0 90 F8 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP 20 F0 10 F0 90 F8 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP 50 F0 10 F0 90 F8 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP 70 F0 10 F0 90 F8 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP 50 F0 10 F0 90 F8 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP 60 F0 10 F0 90 F8 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 9 0 BBX 8 5 0 0 BITMAP 7E 11 FF 90 EF ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 -2 BITMAP 78 88 80 C0 78 20 30 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP 20 70 88 F8 80 78 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP 20 70 88 F8 80 78 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP 70 70 88 F8 80 78 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP 50 70 88 F8 80 78 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 0 0 BITMAP C0 C0 40 40 40 E0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 0 0 BITMAP 60 C0 40 40 40 E0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 0 0 BITMAP E0 C0 40 40 40 E0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 0 0 BITMAP A0 C0 40 40 40 E0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP F8 70 C8 7C 84 84 CC 78 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP 38 FC 44 44 44 EE ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 10 78 CC 84 CC 78 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 20 78 CC 84 CC 78 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 50 78 CC 84 CC 78 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 70 78 CC 84 CC 78 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 50 78 CC 84 CC 78 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 0 BITMAP 20 00 F8 00 20 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 6 0 BBX 6 5 0 0 BITMAP 7C CC F4 CC F8 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP 30 CC 44 44 44 7E ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP 18 CC 44 44 44 7E ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP 38 CC 44 44 44 7E ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP 28 CC 44 44 44 7E ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 -2 BITMAP 18 E6 64 2C 28 10 10 60 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 0 -2 BITMAP C0 40 40 78 44 44 44 78 40 E0 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 -2 BITMAP 28 E6 64 2C 28 10 10 60 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 3C 44 44 F4 44 44 44 EE ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 1 1 2 BITMAP F0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 10 1 -2 BITMAP 20 20 20 F8 20 20 20 20 20 20 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 50 F8 90 10 20 20 40 48 F8 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 5 0 0 BITMAP 7700 8880 8F80 8800 7780 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 28 E6 66 24 18 10 10 10 38 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 5 0 0 BITMAP C0 40 40 40 E0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 0 0 BITMAP C0 40 40 60 C0 40 40 E0 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 0 BITMAP E0 40 40 60 C0 40 48 F8 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 10 1 -2 BITMAP 20 20 20 20 F8 20 20 F8 20 20 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 8 8 0 0 BITMAP 3A 48 40 FE 42 42 42 F7 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 5 0 0 BITMAP 80 40 60 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 8 0 0 BITMAP 3FC0 4440 8480 8780 8480 8400 4440 3FC0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 1 1 2 BITMAP FF80 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 2 7 BITMAP E0 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 2 1 2 -2 BITMAP C0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 2 7 BITMAP E0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 5 0 0 BITMAP 20 40 C0 40 20 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 1 1 3 7 BITMAP 80 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 2 7 BITMAP E0 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 2 2 3 BITMAP E0 E0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 2 7 BITMAP E0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 2 7 BITMAP E0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 4 BITMAP 88 B0 A0 B0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 4 0 4 BITMAP E0 E0 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP A0 F0 90 60 90 F0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 2 1 2 7 BITMAP C0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 0 -2 BITMAP C0 C0 40 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 10 1 -2 BITMAP 18 28 60 60 F0 40 40 40 C0 80 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 5 0 3 BITMAP FCC0 2780 2780 2680 7CC0 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 7 8 -2 0 BITMAP 06 04 08 10 10 20 40 C0 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 2 1 2 7 BITMAP C0 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 8 1 0 BITMAP 4400 A800 B800 5000 2900 7680 5680 8900 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 1 1 0 BITMAP 89 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 4 BITMAP 90 90 90 90 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP E0 70 90 80 40 30 10 90 E0 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 3 0 -2 BITMAP 90 90 90 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP 50 F8 90 20 48 F8 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lubB12.bdf100644 1750 1750 61523 5413747474 15010 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-DemiBold-R-Normal--12-120-75-75-P-71-ISO8859-1 SIZE 12 72 72 FONTBOUNDINGBOX 20 14 -7 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "DemiBold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 12 POINT_SIZE 120 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 71 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 11 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 4 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 3 0 BBX 2 9 1 0 BITMAP C0 C0 C0 C0 40 40 00 C0 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 6 0 BBX 5 4 0 5 BITMAP D8 D8 50 50 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 0 0 BITMAP 14 24 7E 28 28 FC 48 50 50 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 -1 BITMAP 20 78 E8 E0 60 30 38 B8 B8 F0 20 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 63 F2 F4 F8 78 16 2F 4F C6 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 38 6C 6C 30 73 DA CE EE 7F ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 1 5 BITMAP C0 C0 C0 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 4 0 BBX 3 11 0 -2 BITMAP 20 40 40 C0 C0 C0 C0 C0 40 40 20 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 4 0 BBX 3 11 0 -2 BITMAP 80 40 40 60 60 60 60 60 40 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 5 BITMAP 20 F8 50 D0 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 10 10 10 10 FE 10 10 10 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 1 -2 BITMAP C0 C0 C0 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 7 0 BBX 7 1 0 3 BITMAP FE ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 3 0 BBX 2 2 1 0 BITMAP C0 C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 6 0 BBX 6 11 0 -2 BITMAP 04 08 08 10 10 30 20 20 40 40 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 38 6C C6 C6 C6 C6 C6 6C 38 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP F0 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP F8 8C 8C 0C 18 20 40 FC FC ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP F8 8C 0C 08 70 1C 0C 8C F8 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 0C 1C 2C 4C FE FE 0C 0C 1E ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP F8 F8 80 80 F0 38 18 98 F0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 3E 62 C0 FC CE C6 C6 66 3C ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP FC FC 08 18 30 20 60 C0 C0 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 78 CC CC 68 38 CC CC CC 78 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 78 CC C6 C6 E6 7E 06 8C F8 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 3 0 BBX 2 6 1 0 BITMAP C0 C0 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 3 0 BBX 2 8 1 -2 BITMAP C0 C0 00 00 C0 C0 C0 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 02 0C 18 E0 60 18 0C 02 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 7 0 BBX 7 3 0 2 BITMAP FE 00 FE ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 80 60 30 0C 0E 30 60 80 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP F0 98 18 10 20 60 60 60 60 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 1E00 2100 5880 9E80 B280 B680 BB80 4000 3E00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 0 0 BITMAP 0C00 0C00 1E00 1600 2300 3F00 4180 4180 C3C0 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 0 0 BITMAP FC 66 66 64 78 66 66 66 FC ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 0 0 BITMAP 3F 61 C1 C0 C0 C0 C0 61 3F ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 0 0 BITMAP FE00 6300 6180 6180 6180 6180 6180 6300 FE00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP FE 62 60 64 7C 64 60 62 FE ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP FE 62 60 64 7C 64 60 60 F0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 3E 62 C2 C0 C0 CF C6 66 3E ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 0 0 BITMAP F780 6300 6300 6300 7F00 6300 6300 6300 F780 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 0 0 BITMAP F0 60 60 60 60 60 60 60 F0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 5 0 BBX 5 11 0 -2 BITMAP 78 30 30 30 30 30 30 30 30 B0 E0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 0 0 BITMAP F300 6200 6400 6800 7800 6C00 6E00 6700 F780 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP F0 60 60 60 60 60 60 62 FE ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 0 0 BITMAP E1C0 7180 7380 7380 5D80 5D80 4D80 4980 E3C0 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 0 0 BITMAP E380 6100 7100 7900 5D00 4D00 4700 4700 E300 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 0 0 BITMAP 3E00 6300 C180 C180 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP FC 66 66 66 7C 60 60 60 F0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 10 0 BBX 10 11 1 -2 BITMAP 3E00 6300 C180 C180 C180 C180 C180 6300 3E00 03C0 0180 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 0 0 BITMAP FC00 6600 6600 6E00 7800 6C00 6600 6700 F380 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 78 C8 C8 E0 78 1C 8C 8C F8 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 0 0 BITMAP FF 99 18 18 18 18 18 18 3C ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 0 0 BITMAP F380 6100 6100 6100 6100 6100 6100 6100 3E00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 0 0 BITMAP F180 6100 7100 3200 3200 1E00 1C00 0C00 0800 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 11 0 BBX 11 9 0 0 BITMAP E660 6640 6640 6E40 7B80 3B80 3380 3100 1100 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP F3 62 36 3C 18 2C 6E 46 CF ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 0 0 BITMAP E3 62 72 34 38 18 18 18 3C ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP FC 8C 18 38 30 70 60 C4 FC ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 4 0 BBX 3 11 1 -2 BITMAP E0 C0 C0 C0 C0 C0 C0 C0 C0 C0 E0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 6 0 BBX 6 11 0 -2 BITMAP 80 40 40 20 20 30 10 10 08 08 04 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 4 0 BBX 3 11 0 -2 BITMAP E0 60 60 60 60 60 60 60 60 60 E0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 1 BITMAP 10 10 28 28 6C 44 44 82 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 6 0 BBX 5 1 1 -1 BITMAP F8 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 1 5 BITMAP C0 C0 C0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP 78 0C 7C CC CC 76 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 0 0 BITMAP E0 60 60 6C 7E 66 66 66 7C ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 3C C4 C0 C0 E0 3C ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 1C 0C 0C 7C CC CC CC FC 6E ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP 78 CC FC C0 E0 7C ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 5 0 BBX 5 9 0 0 BITMAP 38 68 60 F0 60 60 60 60 F0 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 -2 BITMAP 7C D8 D8 70 FC 7C CC F8 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP E0 60 60 6C 7E 66 66 66 FF ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 0 0 BITMAP 60 60 00 E0 60 60 60 60 F0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 0 -2 BITMAP 30 30 00 70 30 30 30 30 30 B0 F0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 7 0 BBX 8 9 0 0 BITMAP E0 60 60 66 64 78 7C 6E F7 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 0 0 BITMAP E0 60 60 60 60 60 60 60 F0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 12 0 BBX 12 6 0 0 BITMAP ECE0 7FE0 6660 6660 6660 FFF0 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 8 0 BBX 8 6 0 0 BITMAP EC 7E 66 66 66 FF ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP 7C EE C6 C6 EE 7C ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 0 -2 BITMAP EC 7E 66 66 66 7C 60 F0 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 -2 BITMAP 7C CC CC CC FC 6C 0C 1E ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP E8 78 60 60 60 F0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 70 D0 F0 F8 98 F0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 0 0 BITMAP 60 60 F8 60 60 60 60 78 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 8 0 BBX 8 6 0 0 BITMAP EE 66 66 66 7E 37 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 8 0 BBX 8 6 0 0 BITMAP F3 62 76 34 18 18 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 11 0 BBX 11 6 0 0 BITMAP F660 6640 6F40 3B80 3B80 1100 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP F6 74 38 38 4C CE ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 0 -2 BITMAP F3 62 76 34 18 18 10 60 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP FC 9C 38 70 E4 FC ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 4 0 BBX 3 11 1 -2 BITMAP 60 60 60 C0 C0 80 C0 C0 60 60 60 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 3 0 BBX 1 11 1 -2 BITMAP 80 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 4 0 BBX 3 11 1 -2 BITMAP C0 C0 C0 60 60 20 60 60 C0 C0 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 7 0 BBX 7 2 0 2 BITMAP 72 9C ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 3 0 BBX 2 8 1 -2 BITMAP C0 C0 40 40 C0 C0 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 10 7C D4 D0 D0 D0 50 7C 10 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 2 0 BITMAP 38 68 60 60 F0 60 40 F8 F8 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 82 7C 6C 44 44 44 6C 7C 82 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 7 0 BBX 8 9 0 0 BITMAP F3 62 76 3C 7C 18 7C 18 3C ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 3 0 BBX 1 11 1 -2 BITMAP 80 80 80 80 80 00 80 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 -2 BITMAP 7C C4 C0 70 FC CC FC 78 0C 8C F8 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 2 7 BITMAP 90 90 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 1C00 6300 5D00 B480 B080 B080 5D00 6300 1C00 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 6 0 BBX 6 5 0 4 BITMAP F8 18 78 D8 EC ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP 24 68 D8 D8 68 24 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 7 0 BBX 7 3 0 2 BITMAP FE 02 02 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 3 0 BBX 3 2 0 2 BITMAP E0 E0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 3 BITMAP 78 CC B4 B4 EC 78 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 2 8 BITMAP F0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 3 0 BBX 2 2 1 7 BITMAP C0 C0 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 10 10 10 FE 10 10 00 FE ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 -7 4 BITMAP E0 A0 40 C0 E0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 -7 4 BITMAP E0 A0 40 A0 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 7 0 BBX 3 2 3 7 BITMAP 60 80 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 0 -2 BITMAP EE 66 66 66 7E 77 60 60 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 7 0 BBX 4 11 1 -2 BITMAP 70 F0 F0 F0 70 30 30 30 30 30 30 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 7 0 BBX 1 2 3 2 BITMAP 80 80 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 3 -2 BITMAP 80 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 -7 4 BITMAP C0 40 40 40 E0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 0 4 BITMAP 70 D8 D8 D8 70 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 90 58 6C 6C 58 90 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 2 0 BITMAP 61C0 2380 2700 2E00 7F00 1F00 3F80 7100 E380 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 2 0 BITMAP 61C0 2380 2700 2E00 7F80 1E80 3900 7300 E380 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 2 0 BITMAP 71C0 5380 2700 5E00 7F00 1F00 3F80 7100 E380 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 -2 BITMAP 30 30 30 20 40 C0 C8 78 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 1800 0400 0000 0C00 0C00 1E00 1600 2300 3F00 4180 4180 C3C0 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 0600 0800 0000 0C00 0C00 1E00 1600 2300 3F00 4180 4180 C3C0 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 0C00 1200 0000 0C00 0C00 1E00 1600 2300 3F00 4180 4180 C3C0 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 1E00 1E00 0000 0C00 0C00 1E00 1600 2300 3F00 4180 4180 C3C0 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 1200 1200 0000 0C00 0C00 1E00 1600 2300 3F00 4180 4180 C3C0 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 0C00 0C00 0000 0C00 0C00 1E00 1600 2300 3F00 4180 4180 C3C0 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 12 0 BBX 11 9 0 0 BITMAP 07E0 0E20 0E40 17C0 2640 3E00 4600 C620 CFE0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 0 -2 BITMAP 3F 61 C1 C0 C0 C0 C0 61 3F 10 18 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 7 0 BBX 7 12 0 0 BITMAP 30 08 00 FE 62 60 64 7C 64 60 62 FE ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 7 0 BBX 7 12 0 0 BITMAP 18 20 00 FE 62 60 64 7C 64 60 62 FE ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 7 0 BBX 7 12 0 0 BITMAP 18 24 00 FE 62 60 64 7C 64 60 62 FE ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 7 0 BBX 7 12 0 0 BITMAP 24 24 00 FE 62 60 64 7C 64 60 62 FE ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 4 0 BBX 4 12 0 0 BITMAP C0 20 00 F0 60 60 60 60 60 60 60 F0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 4 0 BBX 4 12 0 0 BITMAP 30 40 00 F0 60 60 60 60 60 60 60 F0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 4 0 BBX 4 12 0 0 BITMAP 60 90 00 F0 60 60 60 60 60 60 60 F0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 4 0 BBX 4 12 0 0 BITMAP 90 90 00 F0 60 60 60 60 60 60 60 F0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 0 0 BITMAP FE00 6300 6180 6180 F980 6180 6180 6300 FE00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 0 0 BITMAP 1E00 1E00 0000 E380 6100 7100 7900 5D00 4D00 4700 4700 E300 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 0 0 BITMAP 1800 0400 0000 3E00 6300 C180 C180 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 0 0 BITMAP 0C00 1000 0000 3E00 6300 C180 C180 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 0 0 BITMAP 1800 2400 0000 3E00 6300 C180 C180 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 0 0 BITMAP 3C00 3C00 0000 3E00 6300 C180 C180 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 0 0 BITMAP 2400 2400 0000 3E00 6300 C180 C180 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 82 44 28 38 38 28 44 82 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 0 0 BITMAP 3C80 6300 C380 C580 C980 D180 E180 6300 9E00 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 0 0 BITMAP 1800 0400 0000 F380 6100 6100 6100 6100 6100 6100 6100 3E00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 0 0 BITMAP 0C00 1000 0000 F380 6100 6100 6100 6100 6100 6100 6100 3E00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 0 0 BITMAP 1800 2400 0000 F380 6100 6100 6100 6100 6100 6100 6100 3E00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 0 0 BITMAP 2400 2400 0000 F380 6100 6100 6100 6100 6100 6100 6100 3E00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 0 0 BITMAP 0C 10 00 E3 62 72 34 38 18 18 18 3C ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP F0 60 7C 66 66 66 7C 60 F0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 3C 66 64 68 6C 6E 67 6B FE ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 30 08 00 78 0C 7C CC CC 76 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 18 20 00 78 0C 7C CC CC 76 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 30 48 00 78 0C 7C CC CC 76 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 78 78 00 78 0C 7C CC CC 76 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 48 48 00 78 0C 7C CC CC 76 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 30 30 00 78 0C 7C CC CC 76 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 10 0 BBX 9 6 0 0 BITMAP 7700 0D80 7F80 CC00 CE00 7780 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 -2 BITMAP 3C C4 C0 C0 E0 3C 20 30 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 60 10 00 78 CC FC C0 E0 7C ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 18 20 00 78 CC FC C0 E0 7C ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 30 48 00 78 CC FC C0 E0 7C ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 48 48 00 78 CC FC C0 E0 7C ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 0 0 BITMAP C0 20 00 E0 60 60 60 60 F0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 0 0 BITMAP 30 40 00 E0 60 60 60 60 F0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 0 0 BITMAP 60 90 00 E0 60 60 60 60 F0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 0 0 BITMAP 90 90 00 E0 60 60 60 60 F0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 0 BITMAP 18 F0 38 CC 7E CE C6 C6 EC 78 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 3C 3C 00 EC 7E 66 66 66 FF ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 30 08 00 7C EE C6 C6 EE 7C ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 18 20 00 7C EE C6 C6 EE 7C ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 18 24 00 7C EE C6 C6 EE 7C ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 3C 3C 00 7C EE C6 C6 EE 7C ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 24 24 00 7C EE C6 C6 EE 7C ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 7 0 BBX 8 6 0 0 BITMAP 18 18 FF 00 18 18 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP 7A E6 DE F6 CE BC ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 30 08 00 EE 66 66 66 7E 37 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 0C 10 00 EE 66 66 66 7E 37 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 18 24 00 EE 66 66 66 7E 37 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 24 24 00 EE 66 66 66 7E 37 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 8 0 BBX 8 11 0 -2 BITMAP 0C 10 00 F3 62 76 34 18 18 10 60 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 0 -2 BITMAP E0 60 60 6C 7E 66 66 66 7C 60 F0 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 8 0 BBX 8 11 0 -2 BITMAP 24 24 00 F3 62 76 34 18 18 10 60 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 3E 66 66 F6 66 66 66 66 FF ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 1 1 3 BITMAP F8 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 -2 BITMAP 30 30 B4 FC 30 30 30 30 30 30 30 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 12 1 0 BITMAP 48 30 00 FC 8C 18 38 30 70 60 C4 FC ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 6 1 0 BITMAP 7B80 E6C0 C7C0 C600 E700 7BC0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 0 0 BITMAP 24 24 00 E3 62 72 34 38 18 18 18 3C ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 0 0 BITMAP E0 60 60 60 60 F0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 5 9 1 0 BITMAP 70 30 30 38 70 B0 30 30 78 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP F0 60 60 70 E0 60 60 62 FE ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 -2 BITMAP 30 30 B4 FC 30 30 B4 FC 30 30 30 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 7C 7C 60 FC 6C 6C 6C 6C EE ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 1 0 BITMAP 80 40 60 60 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 12 9 0 0 BITMAP 3FF0 6310 C300 C320 C3E0 C320 C300 6310 3FF0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 1 1 3 BITMAP FFE0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 2 7 BITMAP 90 60 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 3 -2 BITMAP C0 C0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 2 7 BITMAP 50 A0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 0 0 BITMAP 20 40 C0 C0 40 20 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 1 2 3 7 BITMAP 80 80 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 2 7 BITMAP 90 60 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 4 2 1 BITMAP 60 F0 F0 60 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 2 7 BITMAP F0 F0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 2 7 BITMAP 60 90 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 4 1 5 BITMAP 50 E0 F0 F0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 4 0 5 BITMAP E0 E0 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 90 60 00 70 D0 F0 F8 98 F0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 3 7 BITMAP C0 C0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 1 -2 BITMAP C0 C0 C0 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 -2 BITMAP 1C 34 20 60 F0 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 12 5 0 4 BITMAP FF70 B760 3360 33E0 7E70 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 10 9 -2 0 BITMAP 01C0 0380 0700 0E00 0C00 1C00 3800 7000 E000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 2 2 7 BITMAP C0 20 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 12 9 1 0 BITMAP 6300 F200 F400 6800 1E60 1FF0 2FF0 4FF0 C660 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 2 2 0 BITMAP D980 D980 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 4 1 5 BITMAP F0 F0 F0 A0 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 12 0 0 BITMAP 48 30 00 78 C8 C8 E0 78 1C 8C 8C F8 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 4 1 -2 BITMAP F0 F0 F0 F0 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 48 30 00 FC 9C 38 70 E4 FC ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lubB14.bdf100644 1750 1750 64516 5413747474 15017 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-DemiBold-R-Normal--14-140-75-75-P-84-ISO8859-1 SIZE 14 72 72 FONTBOUNDINGBOX 23 16 -8 -3 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "DemiBold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 14 POINT_SIZE 140 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 84 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 13 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 4 0 BBX 2 10 1 0 BITMAP C0 C0 C0 C0 C0 40 40 00 C0 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 6 0 BBX 6 4 0 6 BITMAP CC CC 48 48 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP 0900 1200 1200 7F80 1200 2400 FF00 2400 2400 4800 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 1 -2 BITMAP 10 7C D4 D4 F0 30 18 1C 9C DC F8 10 10 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 0 0 BITMAP 70C0 D980 DB00 DA00 7400 0B80 16C0 36C0 66C0 C380 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 0 0 BITMAP 1C00 3600 3600 3C00 39C0 4880 CC80 C700 E700 3DC0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 4 0 BBX 2 4 1 6 BITMAP C0 C0 C0 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 5 0 BBX 4 13 0 -3 BITMAP 10 20 60 40 C0 C0 C0 C0 C0 40 60 20 10 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 5 0 BBX 4 13 0 -3 BITMAP 80 40 60 20 30 30 30 30 30 20 60 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 5 BITMAP 20 A8 D0 D0 50 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 0 0 BITMAP 0800 0800 0800 0800 FF80 0800 0800 0800 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 4 0 BBX 2 5 1 -3 BITMAP C0 C0 C0 C0 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 9 0 BBX 8 1 0 3 BITMAP FF ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 4 0 BBX 2 2 1 0 BITMAP C0 C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 7 0 BBX 7 13 0 -3 BITMAP 02 04 04 08 08 10 10 10 20 20 40 40 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP 3C 66 C3 C3 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 1 0 BITMAP F0 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP FC CE 86 06 0C 18 30 40 FE FE ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP FC 8E 86 04 78 0C 06 86 8E F8 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP 0E 0E 16 26 46 FF FF 06 06 0F ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP FC FC 80 80 F8 1C 0C 8C 9C F0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP 3E 62 42 C0 DE E7 C3 C3 67 3C ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP FE FE 04 08 18 30 20 60 C0 C0 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 7C C6 C6 E4 38 5C C6 C6 E6 7C ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP 3C E6 C3 C3 E7 7B 03 42 46 7C ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 4 0 BBX 2 7 1 0 BITMAP C0 C0 00 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 4 0 BBX 2 10 1 -3 BITMAP C0 C0 00 00 00 C0 C0 C0 C0 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 0 0 BITMAP 01 06 18 E0 60 18 06 01 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 9 0 BBX 8 4 0 2 BITMAP FF 00 00 FF ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 0 0 BITMAP 80 60 18 06 07 18 60 80 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP F8 9C 8C 08 10 20 60 00 60 60 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 12 0 BBX 12 10 0 0 BITMAP 0FC0 1060 6710 4C90 9990 9990 9BA0 9DC0 6100 1E00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 0 0 BITMAP 0400 0E00 0E00 1700 1300 2380 3F80 41C0 40C0 E1E0 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP FE 63 63 67 7C 66 63 63 67 FE ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 0 0 BITMAP 1F80 7080 6080 C000 C000 C000 C000 6000 7080 1F00 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 0 0 BITMAP FF00 6180 60C0 60C0 60C0 60C0 60C0 6080 6180 FE00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP FE 62 60 64 7C 64 60 60 62 FE ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 0 BITMAP FE 62 60 64 7C 64 60 60 60 F0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 0 0 BITMAP 1F80 7180 6080 C000 C000 C3C0 C180 6180 7180 1F80 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP F3C0 6180 6180 6180 7F80 6180 6180 6180 6180 F3C0 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 5 0 BBX 4 10 0 0 BITMAP F0 60 60 60 60 60 60 60 60 F0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 6 0 BBX 6 13 0 -3 BITMAP 3C 18 18 18 18 18 18 18 18 18 18 98 F0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 0 BITMAP F380 6100 6600 6C00 7800 7C00 6E00 6700 6380 F7C0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP F0 60 60 60 60 60 60 61 61 FF ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 13 0 BBX 12 10 0 0 BITMAP F070 70E0 70E0 59E0 5960 4E60 4E60 4460 4460 E0F0 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 0 0 BITMAP E1C0 7080 7080 5880 5C80 4E80 4680 4380 4380 E180 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 1E00 6180 6180 C0C0 C0C0 C0C0 C0C0 6180 6180 1E00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP FE 63 63 63 62 7C 60 60 60 F0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 11 0 BBX 12 13 1 -3 BITMAP 1E00 6180 6180 C0C0 C0C0 C0C0 C0C0 61C0 6180 1F00 0180 00F0 0060 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 0 BITMAP FE00 6300 6300 6300 6600 7C00 6E00 6700 6380 F1C0 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 7C C4 C4 E0 78 1C 0E 86 8E F8 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 0 BITMAP FFC0 8C40 0C00 0C00 0C00 0C00 0C00 0C00 0C00 1E00 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 0 BITMAP F1C0 6080 6080 6080 6080 6080 6080 6080 7180 3F00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 0 0 BITMAP F8E0 7040 30C0 3080 1980 1900 0D00 0E00 0600 0400 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 13 0 BBX 13 10 0 0 BITMAP F338 6310 6310 7720 35A0 35A0 39C0 18C0 18C0 10C0 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 0 BITMAP F9C0 7080 3900 1A00 1E00 1E00 1600 2300 4380 E3C0 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 0 BITMAP F1C0 7080 3100 1B00 1E00 0C00 0C00 0C00 0C00 1E00 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP FF 87 0E 0C 1C 38 30 70 E1 FF ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 5 0 BBX 3 13 1 -3 BITMAP E0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 E0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 7 0 BBX 7 13 0 -3 BITMAP 80 40 40 20 20 10 10 18 08 08 04 04 02 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 5 0 BBX 3 13 1 -3 BITMAP E0 60 60 60 60 60 60 60 60 60 60 60 E0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 0 2 BITMAP 08 18 18 24 24 42 42 81 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 1 -2 BITMAP FC ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 4 0 BBX 2 4 1 6 BITMAP C0 C0 C0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 0 0 BITMAP 78 4C 0C 7C CC CC 76 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP E0 60 60 6E 7F 63 63 63 67 7E ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP 3C 44 C4 C0 C0 60 3C ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 0E 06 06 7E C6 C6 C6 C6 FE 77 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 0 0 BITMAP 38 44 C6 FE C0 60 3E ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 6 0 BBX 6 10 0 0 BITMAP 3C 64 60 F8 60 60 60 60 60 F0 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 -3 BITMAP 3F 66 66 66 3C 7F 7F 43 C3 7C ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP E000 6000 6000 6E00 7F00 6300 6300 6300 6300 F780 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 5 0 BBX 4 10 0 0 BITMAP 60 60 00 E0 60 60 60 60 60 F0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 5 0 BBX 5 13 0 -3 BITMAP 18 18 00 38 18 18 18 18 18 18 18 98 F0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP E000 6000 6000 6700 6600 6C00 7800 6E00 6700 F380 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 5 0 BBX 4 10 0 0 BITMAP E0 60 60 60 60 60 60 60 60 F0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 14 0 BBX 14 7 0 0 BITMAP EE70 7FF8 6318 6318 6318 6318 F7BC ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 9 0 BBX 9 7 0 0 BITMAP EE00 7F00 6300 6300 6300 6300 F780 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 0 0 BITMAP 3C 66 C3 C3 C3 66 3C ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 -3 BITMAP EE 7F 63 63 63 67 7E 60 60 F0 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 -3 BITMAP 7E E6 C6 C6 C6 FE 76 06 06 0F ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP EC 7C 64 60 60 60 F0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 78 C8 E8 7C 9C 8C F8 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 5 0 BBX 5 9 0 0 BITMAP 60 60 F8 60 60 60 60 60 78 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 9 0 BBX 9 7 0 0 BITMAP E700 6300 6300 6300 6300 7F00 3B80 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 9 0 BBX 9 7 0 0 BITMAP F380 6100 3200 3200 1C00 1C00 0800 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 12 0 BBX 12 7 0 0 BITMAP F270 6720 6720 3740 39C0 1980 1080 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 9 0 BBX 9 7 0 0 BITMAP FB80 7300 3E00 1C00 3E00 6700 E780 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 -3 BITMAP F380 6100 3300 3200 1C00 1C00 1800 0800 1000 7000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP FE 8C 1C 38 70 E2 FE ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 5 0 BBX 4 13 1 -3 BITMAP 30 60 60 60 60 60 C0 60 60 60 60 60 30 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 4 0 BBX 1 13 1 -3 BITMAP 80 80 80 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 5 0 BBX 4 13 1 -3 BITMAP C0 60 60 60 60 60 30 60 60 60 60 60 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 9 0 BBX 8 3 0 2 BITMAP 61 99 86 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 4 0 BBX 2 10 1 -3 BITMAP C0 C0 00 40 40 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 1 0 BITMAP 10 3C 54 D4 D0 D0 D0 50 3C 10 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP 3C 64 64 60 F8 60 60 40 FC FC ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP 81 C3 7E 66 42 42 66 7E C3 81 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP F380 6100 7200 3C00 3E00 1800 3E00 1800 1800 3C00 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 4 0 BBX 1 13 1 -3 BITMAP 80 80 80 80 80 80 00 80 80 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 -3 BITMAP 7E C2 C2 E0 7C DE C6 F6 7C 1E 86 86 FC ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 9 0 BBX 4 2 2 8 BITMAP 90 90 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 0 0 BITMAP 1F00 2080 4F40 9A20 9820 9820 9820 4E40 2080 1F00 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 7 0 BBX 6 5 1 5 BITMAP F8 18 78 D8 EC ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 0 0 BITMAP 12 24 6C D8 6C 24 12 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 9 0 BBX 8 4 0 2 BITMAP FF 01 01 01 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 4 0 BBX 3 2 1 3 BITMAP E0 E0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 9 0 BBX 6 7 1 3 BITMAP 78 CC B4 B4 B4 CC 78 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 9 0 BBX 4 1 2 9 BITMAP F0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 4 0 BBX 3 2 2 8 BITMAP E0 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 0 0 BITMAP 0800 0800 0800 FF80 0800 0800 0000 FF80 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 -8 4 BITMAP E0 90 10 60 40 F0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 -8 4 BITMAP F0 90 60 10 90 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 9 0 BBX 3 2 3 8 BITMAP 60 80 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 0 -3 BITMAP E700 6300 6300 6300 6300 7F00 7B80 6000 6000 6000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 1 -3 BITMAP 7C F4 F4 F4 74 14 14 14 14 14 14 14 14 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 9 0 BBX 2 2 3 3 BITMAP C0 C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 9 0 BBX 2 3 3 -3 BITMAP 40 C0 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 -8 4 BITMAP C0 40 40 40 40 E0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 7 0 BBX 6 5 0 5 BITMAP 78 CC CC CC 78 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 90 48 6C 36 6C 48 90 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 2 0 BITMAP 60E0 2180 2380 2700 26C0 7DC0 1F40 3BE0 3040 E0E0 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 2 0 BITMAP 60E0 2180 2380 2700 2780 7E40 1C40 3980 3100 E3C0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 2 0 BITMAP F0E0 9180 6380 1700 96C0 EDC0 1F40 3BE0 3040 E0E0 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 -3 BITMAP 18 18 00 18 10 20 40 C4 E4 7C ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 0C00 0200 0000 0400 0E00 0E00 1700 1300 2380 3F80 41C0 40C0 E1E0 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 0600 0800 0000 0400 0E00 0E00 1700 1300 2380 3F80 41C0 40C0 E1E0 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 0E00 1B00 0000 0400 0E00 0E00 1700 1300 2380 3F80 41C0 40C0 E1E0 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 1D00 1700 0000 0400 0E00 0E00 1700 1300 2380 3F80 41C0 40C0 E1E0 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 0900 0900 0000 0400 0E00 0E00 1700 1300 2380 3F80 41C0 40C0 E1E0 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 0C00 0C00 0000 0400 0E00 0E00 1700 1300 2380 3F80 41C0 40C0 E1E0 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 13 0 BBX 13 10 0 0 BITMAP 03F8 0708 0700 0B10 1BF0 1300 3F00 6300 4308 C7F8 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 0 -3 BITMAP 1F80 7080 6080 C000 C000 C000 C000 6000 7080 1F00 0400 0C00 0C00 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 1 0 BITMAP 30 08 00 FE 62 60 64 7C 64 60 60 62 FE ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 1 0 BITMAP 18 20 00 FE 62 60 64 7C 64 60 60 62 FE ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 1 0 BITMAP 38 6C 00 FE 62 60 64 7C 64 60 60 62 FE ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 1 0 BITMAP 24 24 00 FE 62 60 64 7C 64 60 60 62 FE ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 5 0 BBX 4 13 0 0 BITMAP C0 20 00 F0 60 60 60 60 60 60 60 60 F0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 5 0 BBX 4 13 0 0 BITMAP 30 40 00 F0 60 60 60 60 60 60 60 60 F0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 5 0 BBX 5 13 1 0 BITMAP 70 D8 00 78 30 30 30 30 30 30 30 30 78 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 5 0 BBX 4 13 0 0 BITMAP 90 90 00 F0 60 60 60 60 60 60 60 60 F0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 0 0 BITMAP FF00 6180 60C0 60C0 F8C0 60C0 60C0 6080 6180 FF00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 0 0 BITMAP 1D00 1700 0000 E1C0 7080 7080 5880 5C80 4E80 4680 4380 4380 E180 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 1800 0400 0000 1E00 6180 6180 C0C0 C0C0 C0C0 C0C0 6180 6180 1E00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0600 0800 0000 1E00 6180 6180 C0C0 C0C0 C0C0 C0C0 6180 6180 1E00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 1C00 3600 0000 1E00 6180 6180 C0C0 C0C0 C0C0 C0C0 6180 6180 1E00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 3A00 2E00 0000 1E00 6180 6180 C0C0 C0C0 C0C0 C0C0 6180 6180 1E00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 1200 1200 0000 1E00 6180 6180 C0C0 C0C0 C0C0 C0C0 6180 6180 1E00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 0 0 BITMAP 81 42 24 18 18 24 42 81 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 1E40 6180 61C0 C2C0 C4C0 C8C0 D0C0 E180 6180 9E00 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP 1800 0400 0000 F1C0 6080 6080 6080 6080 6080 6080 6080 7180 3F00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP 0600 0800 0000 F1C0 6080 6080 6080 6080 6080 6080 6080 7180 3F00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP 0E00 1B00 0000 F1C0 6080 6080 6080 6080 6080 6080 6080 7180 3F00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP 1200 1200 0000 F1C0 6080 6080 6080 6080 6080 6080 6080 7180 3F00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP 0600 0800 0000 F1C0 7080 3100 1B00 1E00 0C00 0C00 0C00 0C00 1E00 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP F0 60 7E 63 63 63 62 7C 60 F0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 3C 66 64 64 68 6E 67 63 6B FE ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 0 BITMAP 30 08 00 78 4C 0C 7C CC CC 76 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 0 BITMAP 18 20 00 78 4C 0C 7C CC CC 76 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 0 BITMAP 38 6C 00 78 4C 0C 7C CC CC 76 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 0 BITMAP 74 5C 00 78 4C 0C 7C CC CC 76 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 0 BITMAP 48 48 00 78 4C 0C 7C CC CC 76 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 0 BITMAP 30 30 00 78 4C 0C 7C CC CC 76 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 12 0 BBX 11 7 0 0 BITMAP 79C0 4E40 0C60 7FE0 CC00 CE00 73E0 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 -3 BITMAP 3C 44 C4 C0 C0 60 3C 10 30 30 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 0 BITMAP 30 08 00 38 44 C6 FE C0 60 3E ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 0 BITMAP 0C 10 00 38 44 C6 FE C0 60 3E ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 0 BITMAP 38 6C 00 38 44 C6 FE C0 60 3E ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 0 BITMAP 24 24 00 38 44 C6 FE C0 60 3E ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 5 0 BBX 4 10 0 0 BITMAP C0 20 00 E0 60 60 60 60 60 F0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 5 0 BBX 4 10 0 0 BITMAP 30 40 00 E0 60 60 60 60 60 F0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 5 0 BBX 5 10 1 0 BITMAP 70 D8 00 70 30 30 30 30 30 78 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 5 0 BBX 4 10 0 0 BITMAP 90 90 00 E0 60 60 60 60 60 F0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 0C F8 3C 4E 3F 67 C3 C3 C3 66 3C ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP 3A00 2E00 0000 EE00 7F00 6300 6300 6300 6300 F780 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP 30 08 00 3C 66 C3 C3 C3 66 3C ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP 0C 10 00 3C 66 C3 C3 C3 66 3C ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP 1C 36 00 3C 66 C3 C3 C3 66 3C ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP 3A 2E 00 3C 66 C3 C3 C3 66 3C ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP 24 24 00 3C 66 C3 C3 C3 66 3C ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 0 0 BITMAP 18 18 00 FF 00 18 18 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 0 0 BITMAP 3D 66 C7 DB E3 66 BC ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP 1800 0400 0000 E700 6300 6300 6300 6300 7F00 3B80 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP 0600 0800 0000 E700 6300 6300 6300 6300 7F00 3B80 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP 1C00 3600 0000 E700 6300 6300 6300 6300 7F00 3B80 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP 1200 1200 0000 E700 6300 6300 6300 6300 7F00 3B80 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 9 0 BBX 9 13 0 -3 BITMAP 0C00 1000 0000 F380 6100 3300 3200 1C00 1C00 1800 0800 1000 7000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 0 -3 BITMAP E0 60 60 6E 7F 63 63 63 67 7E 60 60 F0 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 9 0 BBX 9 13 0 -3 BITMAP 2400 2400 0000 F380 6100 3300 3200 1C00 1C00 1800 0800 1000 7000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP 3F00 6300 6300 FB00 6300 6300 6300 6300 6300 F780 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 1 4 BITMAP FC ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 1 -3 BITMAP 30 30 30 B4 FC 30 30 30 30 30 30 30 30 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 0 0 BITMAP 36 1C 00 FF 87 0E 0C 1C 38 30 70 E1 FF ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 12 7 0 0 BITMAP 3DE0 6720 C630 C7F0 C600 6700 3DF0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP 1200 1200 0000 F1C0 7080 3100 1B00 1E00 0C00 0C00 0C00 0C00 1E00 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 0 0 BITMAP E0 60 60 60 60 60 F0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 10 0 0 BITMAP E0 60 60 60 70 E0 60 60 60 F0 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP F0 60 60 70 60 E0 60 61 61 FF ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 1 -3 BITMAP 30 30 30 B4 FC 30 30 B4 FC 30 30 30 30 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP 3B00 6B00 6000 FF00 6300 6300 6300 6300 6300 F780 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 0 BITMAP 80 40 60 30 60 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 14 10 0 0 BITMAP 1FFC 6384 6180 C188 C1F8 C188 C180 6180 6384 1FFC ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 13 1 1 3 BITMAP FFF8 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 2 2 8 BITMAP D8 70 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 2 2 3 -3 BITMAP C0 C0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 2 2 8 BITMAP 78 A0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 0 0 BITMAP 10 20 60 C0 60 20 10 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 2 2 3 8 BITMAP C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 2 2 8 BITMAP 88 70 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 5 2 1 BITMAP 70 F8 F8 F8 70 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 2 2 8 BITMAP E8 B8 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 2 2 8 BITMAP 70 D8 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 4 1 6 BITMAP D8 F0 F8 F8 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 0 6 BITMAP E0 E0 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP D8 70 00 78 C8 E8 7C 9C 8C F8 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 2 2 3 8 BITMAP C0 C0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 2 5 1 -3 BITMAP C0 C0 C0 C0 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 -3 BITMAP 0E 12 30 30 30 F8 60 60 60 60 E0 C0 C0 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 13 5 1 5 BITMAP FFB8 B5B0 31B0 31F0 7B38 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 11 10 -2 0 BITMAP 00E0 0180 0380 0700 0600 0C00 1C00 3800 3000 E000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 3 2 2 8 BITMAP C0 20 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 15 10 0 0 BITMAP 70C0 D980 DB00 DA00 7400 0B9C 16F6 36F6 66F6 C39C ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 11 2 2 0 BITMAP CC60 CC60 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 4 1 6 BITMAP D8 D8 D8 D8 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 1 0 BITMAP 6C 38 00 7C C4 C4 E0 78 1C 0E 86 8E F8 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 5 1 -3 BITMAP D8 D8 D8 D8 90 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 6C 38 00 FE 8C 1C 38 70 E2 FE ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lubB18.bdf100644 1750 1750 74744 5413747474 15027 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-DemiBold-R-Normal--18-180-75-75-P-107-ISO8859-1 SIZE 18 72 72 FONTBOUNDINGBOX 31 20 -11 -3 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "DemiBold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 18 POINT_SIZE 180 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 107 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 16 FONT_DESCENT 4 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 6 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 5 0 BBX 3 13 1 0 BITMAP E0 E0 E0 E0 E0 E0 40 40 40 00 E0 E0 E0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 8 0 BBX 7 5 1 8 BITMAP EE EE EE 44 44 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 0 0 BITMAP 0480 0880 0880 0880 7FE0 1100 1100 1100 FFC0 2200 2200 2200 2400 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 11 0 BBX 8 16 2 -1 BITMAP 08 08 7F E9 E9 E8 F8 78 1C 0E 0F 0F 8F CF FE 08 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 0 0 BITMAP 7818 CC20 CC60 CCC0 CC80 CD00 7A00 04F0 0998 1998 3198 2198 C0F0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 1 0 BITMAP 1F00 3B80 3B80 3B80 1B00 1C00 7C78 6E30 E720 E760 E3C0 71E0 3EF8 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 8 BITMAP E0 E0 60 60 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 6 0 BBX 5 16 0 -3 BITMAP 08 10 30 60 60 E0 E0 E0 E0 E0 E0 60 60 30 10 08 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 6 0 BBX 5 16 0 -3 BITMAP 80 40 60 30 30 38 38 38 38 38 38 30 30 60 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 0 6 BITMAP 10 52 D6 6C 28 6C 28 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 11 0 BBX 11 11 0 0 BITMAP 0400 0400 0400 0400 0400 FFE0 0400 0400 0400 0400 0400 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 -3 BITMAP E0 E0 E0 60 60 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 11 0 BBX 10 1 1 5 BITMAP FFC0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 1 0 BITMAP E0 E0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 9 0 BBX 10 16 0 -3 BITMAP 00C0 0080 0100 0100 0200 0200 0400 0400 0800 0800 1000 1000 2000 2000 4000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 1E00 3300 7380 6180 E1C0 E1C0 E1C0 E1C0 E1C0 6180 7380 3300 1E00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 11 0 BBX 7 13 2 0 BITMAP F8 38 38 38 38 38 38 38 38 38 38 38 FE ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 7E00 C700 8380 0380 0380 0700 0600 0800 3000 6000 7F80 FF80 FF80 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP FE00 C700 8380 0380 0300 0600 7E00 0700 0380 0380 8380 8700 FE00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 0380 0780 0F80 1B80 1380 2380 4380 FFE0 FFE0 0380 0380 0380 07E0 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 2 0 BITMAP FF FF 80 80 80 FC 1E 0F 07 07 87 8E FC ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 1F80 3880 7080 6000 E000 EF00 F380 E1C0 E1C0 E1C0 61C0 3380 1F00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 2 0 BITMAP FF80 FF80 FF80 0100 0200 0600 0C00 1800 1800 3000 3000 7000 7000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 3F00 73C0 E1C0 E1C0 F180 3E00 1F00 6780 E3C0 E1C0 E1C0 7380 3F00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 3E00 7300 E180 E1C0 E1C0 E1C0 73C0 3DC0 01C0 0180 4380 4700 7E00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 5 0 BBX 3 9 1 0 BITMAP E0 E0 E0 00 00 00 E0 E0 E0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 5 0 BBX 3 12 1 -3 BITMAP E0 E0 E0 00 00 00 00 E0 E0 60 60 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 11 0 BBX 10 11 1 0 BITMAP 0040 00C0 0300 0C00 3000 C000 3000 0C00 0300 00C0 0040 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 11 0 BBX 10 4 1 3 BITMAP FFC0 0000 0000 FFC0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 11 0 BBX 10 11 1 0 BITMAP 8000 C000 3000 0C00 0300 00C0 0300 0C00 3000 C000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 0 BITMAP FC CF 87 07 06 0C 08 18 38 00 38 38 38 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 15 0 BBX 14 13 1 0 BITMAP 07E0 0C10 3008 6384 4C64 8CC4 98C4 99CC 99C8 8EF0 4000 2080 1F00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 14 0 BBX 14 13 0 0 BITMAP 0300 0300 0780 0780 0FC0 09C0 09E0 10E0 1FF0 2070 2038 4038 E07C ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP FF00 73C0 71C0 71C0 71C0 7300 7E00 7380 71C0 71C0 71C0 7380 FF00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 1 0 BITMAP 0FE0 3860 7020 7000 E000 E000 E000 E000 E000 7000 7000 3820 0FC0 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 0 0 BITMAP FF80 70E0 7070 7038 7038 7038 7038 7038 7038 7030 7070 70E0 FF80 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 0 0 BITMAP FF80 7080 7000 7000 7000 7100 7F00 7100 7000 7000 7040 70C0 FFC0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP FF80 7080 7080 7000 7000 7100 7F00 7100 7000 7000 7000 7000 FC00 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 1 0 BITMAP 0FE0 3860 7020 7000 E000 E000 E000 E1F0 E0E0 60E0 70E0 38E0 0FE0 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 1 0 BITMAP F8F8 7070 7070 7070 7070 7070 7FF0 7070 7070 7070 7070 7070 F8F8 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 6 0 BBX 5 13 1 0 BITMAP F8 70 70 70 70 70 70 70 70 70 70 70 F8 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 8 0 BBX 8 16 0 -3 BITMAP 1F 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 8E 8C F8 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 0 0 BITMAP F8F0 7060 7080 7100 7200 7400 7E00 7F00 7780 73C0 71E0 70F0 F9F8 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 0 0 BITMAP F800 7000 7000 7000 7000 7000 7000 7000 7000 7000 7040 7040 FFC0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 16 0 BBX 15 13 1 0 BITMAP F81E 783C 783C 7C3C 5C5C 5E5C 4E9C 4E9C 471C 471C 421C 401C E03E ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 1 0 BITMAP F070 7020 7820 7C20 5C20 5E20 4F20 47A0 43A0 43E0 41E0 40E0 E060 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 1 0 BITMAP 0F80 38E0 7070 6030 E038 E038 E038 E038 E038 6030 7070 38E0 0F80 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP FF00 7180 71C0 71C0 71C0 71C0 7380 7E00 7000 7000 7000 7000 FC00 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 15 0 BBX 15 16 1 -3 BITMAP 0F80 38E0 7070 6030 E038 E038 E038 E038 E038 6038 7070 38E0 0F80 00F0 003E 0008 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 1 0 BITMAP FF00 7180 71C0 71C0 71C0 7380 7F00 7700 7780 73C0 71C0 71E0 F8F0 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 0 BITMAP 3F00 7100 E100 E000 F000 7C00 3F00 0F80 0780 0380 8380 C700 FE00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 0 0 BITMAP FFF8 C708 8708 0700 0700 0700 0700 0700 0700 0700 0700 0700 1FC0 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 1 0 BITMAP F870 7020 7020 7020 7020 7020 7020 7020 7020 7020 7020 3840 1F80 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 14 0 BBX 14 13 0 0 BITMAP FC3C 7818 3810 3C10 1C20 1C20 0E40 0E40 0FC0 0780 0780 0300 0300 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 17 0 BBX 17 13 0 0 BITMAP F8C380 70C100 70E200 79E200 39E200 39F400 3F7400 1E7400 1E7800 1E3800 0C3800 0C3800 0C1000 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 0 0 BITMAP FC78 7830 3C20 1C40 1E80 0F80 0780 0F80 0BC0 11E0 20E0 60F0 F1F8 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 0 0 BITMAP FC38 7830 3820 3C40 1E40 0E80 0F00 0700 0700 0700 0700 0700 0F80 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 7FC0 43C0 4380 0780 0F00 0E00 1E00 1C00 3C00 7800 7040 F0C0 FFC0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 6 0 BBX 5 16 1 -3 BITMAP F8 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 F8 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 9 0 BBX 9 16 0 -3 BITMAP C000 4000 4000 2000 2000 1000 1000 0800 0800 0400 0400 0200 0200 0100 0100 0080 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 6 0 BBX 5 16 0 -3 BITMAP F8 38 38 38 38 38 38 38 38 38 38 38 38 38 38 F8 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 11 0 BBX 10 11 1 2 BITMAP 0400 0C00 0C00 0C00 1200 1200 2100 2100 4080 4080 8040 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 9 0 BBX 7 1 1 -1 BITMAP FE ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 8 BITMAP 60 C0 C0 E0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 0 0 BITMAP 3E00 6380 4380 0380 7F80 F380 E380 E380 7DC0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP F000 7000 7000 7000 7380 77C0 78E0 70E0 70E0 70E0 70E0 71C0 7F80 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 10 0 BBX 8 9 1 0 BITMAP 3F 71 E1 E0 E0 E0 E0 70 3F ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 1 0 BITMAP 03C0 01C0 01C0 01C0 3FC0 71C0 E1C0 E1C0 E1C0 E1C0 E3C0 7DC0 39E0 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 0 0 BITMAP 3E00 6300 E380 E380 FF80 E000 E000 7080 1F80 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 7 0 BBX 7 13 1 0 BITMAP 3E 72 72 70 FC 70 70 70 70 70 70 70 F8 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 11 0 BBX 11 12 0 -3 BITMAP 1FE0 73E0 7380 7380 3380 1F00 3000 7F80 3FC0 E1C0 E180 7F00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 1 0 BITMAP F000 7000 7000 7000 7380 77C0 79C0 71C0 71C0 71C0 71C0 71C0 FBE0 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 6 0 BBX 5 13 0 0 BITMAP 70 70 70 00 F0 70 70 70 70 70 70 70 F8 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 6 0 BBX 6 16 0 -3 BITMAP 1C 1C 1C 00 3C 1C 1C 1C 1C 1C 1C 1C 1C 9C 9C F8 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 1 0 BITMAP F000 7000 7000 7000 71C0 7180 7300 7400 7E00 7F00 7780 73C0 F9E0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 6 0 BBX 5 13 0 0 BITMAP F0 70 70 70 70 70 70 70 70 70 70 70 F8 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 17 0 BBX 17 9 0 0 BITMAP F79E00 7FFF00 79E700 71C700 71C700 71C700 71C700 71C700 FBEF80 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 12 0 BBX 11 9 1 0 BITMAP F380 77C0 79C0 71C0 71C0 71C0 71C0 71C0 FBE0 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 1 0 BITMAP 1E00 7380 E1C0 E1C0 E1C0 E1C0 E1C0 7380 1E00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 0 -3 BITMAP F380 77C0 78E0 70E0 70E0 70E0 70E0 71C0 7F80 7000 7000 F800 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 11 0 BBX 11 12 1 -3 BITMAP 3FC0 71C0 E1C0 E1C0 E1C0 E1C0 E3C0 7DC0 39C0 01C0 01C0 03E0 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP F3 7F 79 70 70 70 70 70 FC ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 7E E2 E2 FC 7E 3F 87 87 FC ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 7 0 BBX 6 12 1 0 BITMAP 30 70 70 FC 70 70 70 70 70 70 70 3C ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 12 0 BBX 11 9 0 0 BITMAP F3C0 71C0 71C0 71C0 71C0 71C0 73C0 7DC0 39E0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 12 0 BBX 12 9 0 0 BITMAP F8F0 7860 3840 3C80 1C80 1F00 0F00 0E00 0600 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 16 0 BBX 16 9 0 0 BITMAP F8CF 70C2 79E4 39E4 3AF8 1E78 1C78 1C30 0830 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 11 0 BBX 11 9 0 0 BITMAP FDE0 7880 3D00 1E00 0F00 1F00 3780 63C0 F3E0 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 12 0 BBX 12 12 0 -3 BITMAP FCF0 7860 3840 3C80 1C80 1F00 0F00 0E00 0400 0400 1800 3800 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 11 0 BBX 9 9 1 0 BITMAP FF80 C780 8F00 1E00 3C00 3C00 7800 F080 FF80 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 7 0 BBX 5 16 1 -3 BITMAP 38 70 70 70 70 70 70 E0 60 70 70 70 70 70 70 38 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 5 0 BBX 1 16 2 -3 BITMAP 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 7 0 BBX 5 16 1 -3 BITMAP E0 70 70 70 70 70 70 38 30 70 70 70 70 70 70 E0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 11 0 BBX 10 4 1 3 BITMAP 7040 8840 8440 8380 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 5 0 BBX 3 12 1 -3 BITMAP E0 E0 E0 40 40 40 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 0400 1F80 3480 6480 E400 E400 E400 E400 E400 6400 3400 1F80 0400 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 2 0 BITMAP 0F 19 39 38 38 FC 38 38 38 20 FF FF FF ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 11 0 BBX 12 11 0 1 BITMAP 8010 4020 3FC0 30C0 2040 2040 2040 30C0 3FC0 4020 8010 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 11 0 BBX 12 13 0 0 BITMAP F8F0 7020 7840 38C0 3C80 1F00 1E00 3FC0 0E00 3FC0 0E00 0E00 1F00 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 5 0 BBX 1 16 2 -3 BITMAP 80 80 80 80 80 80 80 00 00 80 80 80 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 11 0 BBX 8 16 2 -3 BITMAP 3E E2 E2 E0 F8 7E 5F C7 E3 FB 7E 3F 0F 87 8F FC ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 11 0 BBX 5 2 3 11 BITMAP D8 D8 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 1 0 BITMAP 0F80 1060 2030 4790 8C88 9808 9808 9808 8C08 4790 6030 3060 0F80 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 1 6 BITMAP 7C 8E 0E 7E EE EE 77 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 10 0 BBX 9 7 0 1 BITMAP 1880 3100 6700 EE00 6700 3100 1880 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 11 0 BBX 10 4 1 3 BITMAP FFC0 0040 0040 0040 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 5 0 BBX 4 2 1 4 BITMAP F0 F0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 11 0 BBX 9 9 1 4 BITMAP 3E00 6300 DF80 9280 9C80 9480 D780 6300 3E00 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 11 0 BBX 5 1 3 12 BITMAP F8 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 1 10 BITMAP E0 A0 E0 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 11 0 BBX 11 11 0 0 BITMAP 0400 0400 0400 0400 FFE0 0400 0400 0400 0400 0000 FFE0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 -10 4 BITMAP F0 98 08 08 10 30 40 C0 F8 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 7 0 BBX 4 9 -11 4 BITMAP E0 90 10 10 60 10 10 90 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 11 0 BBX 4 3 4 10 BITMAP 30 40 80 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 13 0 BBX 11 12 1 -3 BITMAP F3C0 71C0 71C0 71C0 71C0 71C0 71C0 7FC0 7DE0 7000 7000 7000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 11 0 BBX 8 16 1 -3 BITMAP 7F F9 F9 F9 F9 79 19 09 09 09 09 09 09 09 09 09 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 11 0 BBX 2 3 5 3 BITMAP C0 C0 C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 11 0 BBX 3 3 4 -3 BITMAP C0 60 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 7 0 BBX 3 9 -11 4 BITMAP C0 40 40 40 40 40 40 40 E0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 0 6 BITMAP 3C 66 E7 E7 E7 66 3C ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 10 0 BBX 9 7 1 1 BITMAP 8C00 4600 7300 3B80 7300 4600 8C00 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 3 0 BITMAP 6070 2060 20C0 21C0 23B0 2770 2650 2C90 7D10 39F8 3010 6010 E038 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 3 0 BITMAP 6070 2060 20C0 21C0 23E0 2730 2610 2C10 7C20 3860 3080 6180 E1F0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 3 0 BITMAP E070 9060 10C0 11C0 63B0 1770 1650 9C90 FD10 39F8 3010 6010 E038 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 -3 BITMAP 1C 1C 1C 1C 1C 18 30 60 E0 E1 F3 3F ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP 0C00 0600 0300 0000 0300 0300 0780 0780 0FC0 09C0 09E0 10E0 1FF0 2070 2038 4038 E07C ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP 00C0 0100 0200 0000 0300 0300 0780 0780 0FC0 09C0 09E0 10E0 1FF0 2070 2038 4038 E07C ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP 0300 0780 0CC0 0000 0300 0300 0780 0780 0FC0 09C0 09E0 10E0 1FF0 2070 2038 4038 E07C ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP 0640 0FC0 0980 0000 0300 0300 0780 0780 0FC0 09C0 09E0 10E0 1FF0 2070 2038 4038 E07C ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 14 0 BBX 14 16 0 0 BITMAP 06C0 06C0 0000 0300 0300 0780 0780 0FC0 09C0 09E0 10E0 1FF0 2070 2038 4038 E07C ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP 0380 0280 0380 0000 0300 0300 0780 0780 0FC0 09C0 09E0 10E0 1FF0 2070 2038 4038 E07C ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 17 0 BBX 17 13 0 0 BITMAP 00FF80 00F080 017000 027000 027100 047F00 087100 087000 1FF000 207000 207000 407080 E0FF80 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 13 0 BBX 11 16 1 -3 BITMAP 0FE0 3860 7020 7000 E000 E000 E000 E000 E000 7000 7000 3820 0FC0 0400 0600 0E00 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 11 0 BBX 10 17 0 0 BITMAP 3000 1800 0C00 0000 FF80 7080 7000 7000 7000 7100 7F00 7100 7000 7000 7040 70C0 FFC0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 11 0 BBX 10 17 0 0 BITMAP 0300 0400 0800 0000 FF80 7080 7000 7000 7000 7100 7F00 7100 7000 7000 7040 70C0 FFC0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 11 0 BBX 10 17 0 0 BITMAP 0C00 1E00 3300 0000 FF80 7080 7000 7000 7000 7100 7F00 7100 7000 7000 7040 70C0 FFC0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 0 0 BITMAP 1B00 1B00 0000 FF80 7080 7000 7000 7000 7100 7F00 7100 7000 7000 7040 70C0 FFC0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 6 0 BBX 5 17 1 0 BITMAP C0 60 30 00 F8 70 70 70 70 70 70 70 70 70 70 70 F8 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 6 0 BBX 5 17 1 0 BITMAP 18 20 40 00 F8 70 70 70 70 70 70 70 70 70 70 70 F8 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 6 0 BBX 6 17 2 0 BITMAP 30 78 CC 00 7C 38 38 38 38 38 38 38 38 38 38 38 7C ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 6 0 BBX 5 16 1 0 BITMAP D8 D8 00 F8 70 70 70 70 70 70 70 70 70 70 70 F8 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 14 0 BBX 14 13 0 0 BITMAP FFC0 3870 3838 381C 381C 381C FF1C 381C 381C 3818 3838 3870 FFC0 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 1 0 BITMAP 0C80 1F80 1300 0000 F070 7020 7820 7C20 5C20 5E20 4F20 47A0 43A0 43E0 41E0 40E0 E060 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 1 0 BITMAP 0C00 0600 0300 0000 0F80 38E0 7070 6030 E038 E038 E038 E038 E038 6030 7070 38E0 0F80 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 1 0 BITMAP 0180 0200 0400 0000 0F80 38E0 7070 6030 E038 E038 E038 E038 E038 6030 7070 38E0 0F80 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 1 0 BITMAP 0600 0F00 1980 0000 0F80 38E0 7070 6030 E038 E038 E038 E038 E038 6030 7070 38E0 0F80 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 1 0 BITMAP 0C80 1F80 1300 0000 0F80 38E0 7070 6030 E038 E038 E038 E038 E038 6030 7070 38E0 0F80 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 15 0 BBX 13 16 1 0 BITMAP 0D80 0D80 0000 0F80 38E0 7070 6030 E038 E038 E038 E038 E038 6030 7070 38E0 0F80 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 11 0 BBX 10 11 1 0 BITMAP 8040 40C0 2100 1300 1E00 0C00 1E00 3200 2100 C080 8040 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 1 0 BITMAP 0F98 38F0 7070 60F0 E0B8 E138 E238 E438 E838 7030 7070 78E0 CF80 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 13 0 BBX 12 17 1 0 BITMAP 1800 0C00 0600 0000 F870 7020 7020 7020 7020 7020 7020 7020 7020 7020 7020 3840 1F80 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 13 0 BBX 12 17 1 0 BITMAP 0180 0200 0400 0000 F870 7020 7020 7020 7020 7020 7020 7020 7020 7020 7020 3840 1F80 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 13 0 BBX 12 17 1 0 BITMAP 0600 0F00 1980 0000 F870 7020 7020 7020 7020 7020 7020 7020 7020 7020 7020 3840 1F80 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 13 0 BBX 12 16 1 0 BITMAP 1B00 1B00 0000 F870 7020 7020 7020 7020 7020 7020 7020 7020 7020 7020 3840 1F80 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 0 0 BITMAP 0180 0200 0400 0000 FC38 7830 3820 3C40 1E40 0E80 0F00 0700 0700 0700 0700 0700 0F80 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP F800 7000 7000 7F80 71C0 71C0 71C0 71C0 7380 7E00 7000 7000 F800 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 13 0 BBX 10 13 1 0 BITMAP 3F00 7380 7380 7300 7400 7C00 7E00 7F00 7780 73C0 71C0 75C0 F780 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP 3000 1800 0C00 0000 3E00 6380 4380 0380 7F80 F380 E380 E380 7DC0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP 0300 0400 0800 0000 3E00 6380 4380 0380 7F80 F380 E380 E380 7DC0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP 0C00 1E00 3300 0000 3E00 6380 4380 0380 7F80 F380 E380 E380 7DC0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP 1900 3F00 2600 0000 3E00 6380 4380 0380 7F80 F380 E380 E380 7DC0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 3600 3600 0000 3E00 6380 4380 0380 7F80 F380 E380 E380 7DC0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP 1C00 1400 1C00 0000 3E00 6380 4380 0380 7F80 F380 E380 E380 7DC0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 15 0 BBX 14 9 0 0 BITMAP 3EF0 6398 439C 039C 7FFC F380 E380 E3C4 7CFC ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 -3 BITMAP 3F 71 E1 E0 E0 E0 E0 70 3F 08 0C 1C ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 0 0 BITMAP 3000 1800 0C00 0000 3E00 6300 E380 E380 FF80 E000 E000 7080 1F80 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 0 0 BITMAP 0600 0800 1000 0000 3E00 6300 E380 E380 FF80 E000 E000 7080 1F80 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 0 0 BITMAP 0C00 1E00 3300 0000 3E00 6300 E380 E380 FF80 E000 E000 7080 1F80 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 0 0 BITMAP 3600 3600 0000 3E00 6300 E380 E380 FF80 E000 E000 7080 1F80 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 6 0 BBX 5 13 0 0 BITMAP C0 60 30 00 F0 70 70 70 70 70 70 70 F8 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 6 0 BBX 5 13 0 0 BITMAP 18 20 40 00 F0 70 70 70 70 70 70 70 F8 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 6 0 BBX 6 13 1 0 BITMAP 30 78 CC 00 78 38 38 38 38 38 38 38 7C ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 6 0 BBX 5 12 0 0 BITMAP D8 D8 00 F0 70 70 70 70 70 70 70 F8 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 1 0 BITMAP 0600 0C00 F800 1E00 3F00 4780 3F80 73C0 E1C0 E1C0 E1C0 E1C0 E180 7380 1E00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 1 0 BITMAP 1900 3F00 2600 0000 F380 77C0 79C0 71C0 71C0 71C0 71C0 71C0 FBE0 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 3000 1800 0C00 0000 1E00 7380 E1C0 E1C0 E1C0 E1C0 E1C0 7380 1E00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0300 0400 0800 0000 1E00 7380 E1C0 E1C0 E1C0 E1C0 E1C0 7380 1E00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0C00 1E00 3300 0000 1E00 7380 E1C0 E1C0 E1C0 E1C0 E1C0 7380 1E00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 1900 3F00 2600 0000 1E00 7380 E1C0 E1C0 E1C0 E1C0 E1C0 7380 1E00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 1 0 BITMAP 3600 3600 0000 1E00 7380 E1C0 E1C0 E1C0 E1C0 E1C0 7380 1E00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 1 0 BITMAP 0C00 0C00 0000 0000 FFC0 0000 0000 0C00 0C00 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 1 0 BITMAP 3EC0 7380 E3C0 E7C0 EDC0 F9C0 F1C0 7380 DF00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 0 0 BITMAP 1800 0C00 0600 0000 F3C0 71C0 71C0 71C0 71C0 71C0 73C0 7DC0 39E0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 0 0 BITMAP 0300 0400 0800 0000 F3C0 71C0 71C0 71C0 71C0 71C0 73C0 7DC0 39E0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 0 0 BITMAP 0600 0F00 1980 0000 F3C0 71C0 71C0 71C0 71C0 71C0 73C0 7DC0 39E0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 0 0 BITMAP 1B00 1B00 0000 F3C0 71C0 71C0 71C0 71C0 71C0 73C0 7DC0 39E0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 12 0 BBX 12 16 0 -3 BITMAP 0180 0200 0400 0000 FCF0 7860 3840 3C80 1C80 1F00 0F00 0E00 0400 0400 1800 3800 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 12 0 BBX 11 16 0 -3 BITMAP F000 7000 7000 7000 7380 77C0 78E0 70E0 70E0 70E0 70E0 71C0 7F80 7000 7000 F800 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 12 0 BBX 12 15 0 -3 BITMAP 1B00 1B00 0000 FCF0 7860 3840 3C80 1C80 1F00 0F00 0E00 0400 0400 1800 3800 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 1 0 BITMAP 1FC0 31C0 71C0 71C0 FDC0 71C0 71C0 71C0 71C0 71C0 71C0 71C0 FBE0 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 1 1 5 BITMAP FF ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 16 1 -3 BITMAP 1C00 1C00 1C00 1C00 DD80 FF80 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 17 1 0 BITMAP 3300 1E00 0C00 0000 7FC0 43C0 4380 0780 0F00 0E00 1E00 1C00 3C00 7800 7040 F0C0 FFC0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 15 9 1 0 BITMAP 3E78 73CC E1CE E1CE E1FE E1C0 E1C0 73E2 3E7E ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 13 16 0 0 BITMAP 0D80 0D80 0000 FC38 7830 3820 3C40 1E40 0E80 0F00 0700 0700 0700 0700 0700 0F80 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 0 0 BITMAP F0 70 70 70 70 70 70 70 F8 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 7 13 0 0 BITMAP F8 38 38 38 38 3E 38 F8 38 38 38 38 FE ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP FC00 3800 3800 3800 3A00 3C00 7800 B800 3800 3800 3820 3820 FFE0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 16 1 -3 BITMAP 1C00 1C00 1C00 1C00 DD80 FF80 1C00 1C00 1C00 1C00 FF80 DD80 1C00 1C00 1C00 1C00 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 3F80 7780 7780 7000 FF80 7380 7380 7380 7380 7380 7380 7380 FBC0 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 1 BITMAP 80 60 70 38 70 60 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 17 13 1 0 BITMAP 0F7F80 38F080 707080 607000 E07000 E07100 E07F00 E07100 E07000 607000 707080 38F080 0F7F80 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 16 1 1 5 BITMAP FFFF ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 3 3 10 BITMAP CC 78 30 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 3 4 -3 BITMAP 40 80 E0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 3 3 10 BITMAP 2C 58 B0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 0 1 BITMAP 08 30 70 E0 70 30 08 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 2 3 5 10 BITMAP C0 C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 3 3 10 BITMAP 84 78 78 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 6 3 2 BITMAP 78 FC FC FC FC 78 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 3 3 10 BITMAP 64 FC 98 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 3 3 10 BITMAP 30 78 CC ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 5 1 8 BITMAP 66 CC EE EE EE ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 8 BITMAP E0 E0 E0 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 0 BITMAP 66 3C 18 00 7E E2 E2 FC 7E 3F 87 87 FC ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 3 4 10 BITMAP E0 A0 E0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 -3 BITMAP E0 E0 E0 60 60 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 16 2 -3 BITMAP 0780 0C80 1880 1800 3800 3800 FC00 7800 7000 7000 7000 7000 F000 E000 E000 E000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 18 7 0 6 BITMAP FF71C0 993B80 993B80 183B80 182D80 182D80 3C61C0 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 12 13 -4 0 BITMAP 0070 0060 00C0 01C0 0380 0700 0600 0C00 1C00 3800 3000 6000 E000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 4 3 3 10 BITMAP C0 60 30 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 20 13 0 0 BITMAP 781800 CC2000 CC6000 CCC000 CC8000 790000 02F1E0 059B30 099B30 199B30 319B30 219B30 C0F1E0 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 14 2 2 0 BITMAP C30C C30C ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 5 1 8 BITMAP EE EE EE 66 CC ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 17 1 0 BITMAP 6600 3C00 1800 0000 3F00 7100 E100 E000 F000 7C00 3F00 0F80 0780 0380 8380 C700 FE00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 5 1 -3 BITMAP EE EE EE 66 CC ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 3300 1E00 0C00 0000 FF80 C780 8F00 1E00 3C00 3C00 7800 F080 FF80 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lubB19.bdf100644 1750 1750 77343 5413747475 15027 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-DemiBold-R-Normal--19-190-75-75-P-114-ISO8859-1 SIZE 19 72 72 FONTBOUNDINGBOX 34 22 -11 -4 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "DemiBold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 19 POINT_SIZE 190 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH "114" CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." FONT_ASCENT 17 FONT_DESCENT 4 DEFAULT_CHAR 0 ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 6 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 5 0 BBX 3 14 1 0 BITMAP E0 E0 E0 E0 E0 E0 40 40 40 40 00 E0 E0 E0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 9 0 BBX 7 5 1 9 BITMAP EE EE EE 44 44 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 0 0 BITMAP 0440 0440 0440 0880 7FF0 0880 0880 1100 1100 FFE0 1100 2200 2200 2200 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 12 0 BBX 8 18 2 -2 BITMAP 08 08 7F 79 E9 E8 E8 78 3C 1E 0F 0F 0F 8F CF FE 08 08 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 14 0 BBX 15 14 0 0 BITMAP 3806 4408 C610 C620 C640 44C0 3980 0338 0644 04C6 08C6 10C6 2044 C038 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 0 0 BITMAP 0F00 39C0 39C0 39C0 1F80 0F00 3C7C 6618 E718 E390 E3F0 F1E0 70F0 1F7C ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 9 BITMAP E0 E0 60 60 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 6 0 BBX 5 18 1 -4 BITMAP 08 18 30 30 60 60 E0 E0 E0 E0 E0 E0 60 60 30 30 10 08 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 6 0 BBX 5 18 1 -4 BITMAP 80 C0 60 60 30 30 38 38 38 38 38 38 30 30 60 60 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 7 BITMAP 10 52 D6 6C 28 6C 28 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 0 0 BITMAP 0400 0400 0400 0400 0400 0400 FFE0 0400 0400 0400 0400 0400 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 5 0 BBX 3 7 1 -4 BITMAP E0 E0 E0 60 60 60 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 12 0 BBX 11 1 0 5 BITMAP FFE0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 1 0 BITMAP E0 E0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 10 0 BBX 10 18 0 -4 BITMAP 00C0 0080 0080 0100 0100 0200 0200 0400 0400 0800 0800 1000 1000 2000 2000 4000 4000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 0 0 BITMAP 1F00 3180 71C0 60C0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 60C0 71C0 3180 1F00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 12 0 BBX 7 14 3 0 BITMAP F8 38 38 38 38 38 38 38 38 38 38 38 38 FE ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 1 0 BITMAP 7E00 C700 8380 0380 0380 0300 0700 0C00 1800 2000 6000 7F80 FF80 FF80 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 1 0 BITMAP FE00 C700 8380 0380 0380 0700 7C00 0F00 0380 0380 0380 8380 8700 FC00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP 01C0 03C0 07C0 0DC0 19C0 11C0 21C0 41C0 FFF0 FFF0 01C0 01C0 01C0 03F0 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 12 0 BBX 8 14 2 0 BITMAP FF FF 80 80 80 F8 1E 0F 07 07 07 87 8E F8 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP 1F80 3880 7080 6000 E000 EF00 F380 E1C0 E1C0 E1C0 61C0 61C0 3380 1F00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 0 BITMAP FF80 FF80 FF80 0100 0200 0600 0400 0C00 1800 1800 3000 3000 7000 7000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP 3F00 7380 E1C0 E1C0 F180 7F00 1E00 3F80 63C0 E1C0 E1C0 E1C0 7380 3F00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP 3E00 7300 E180 E180 E1C0 E1C0 E1C0 73C0 3DC0 01C0 0180 4380 4700 7E00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 5 0 BBX 3 10 1 0 BITMAP E0 E0 E0 00 00 00 00 E0 E0 E0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 5 0 BBX 3 14 1 -4 BITMAP E0 E0 E0 00 00 00 00 E0 E0 E0 60 60 60 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 -1 0 BITMAP 0040 00C0 0300 0C00 3000 C000 C000 3000 0C00 0300 00C0 0040 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 12 0 BBX 11 5 0 3 BITMAP FFE0 0000 0000 0000 FFE0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 0 0 BITMAP 8000 C000 3000 0C00 0300 00C0 00C0 0300 0C00 3000 C000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 10 0 BBX 9 14 0 0 BITMAP FE00 C700 8380 0380 0300 0200 0400 1800 3800 3800 0000 3800 3800 3800 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 2 0 BITMAP 03E0 0C30 1008 2384 4464 4C44 98C4 98C4 99C8 9BD8 8EE0 4000 2080 1F00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 15 0 BBX 15 14 0 0 BITMAP 0100 0380 0380 03C0 05C0 05E0 08E0 08F0 1070 1FF0 2038 2038 601C F07E ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP FF00 73C0 71C0 71C0 71C0 7380 7E00 7300 7180 71C0 71C0 71C0 7380 FF00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 1 0 BITMAP 0FE0 3C30 7010 7010 E000 E000 E000 E000 E000 E000 7000 7000 3C10 0FE0 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 15 0 BBX 13 14 1 0 BITMAP FF80 70E0 7070 7030 7038 7038 7038 7038 7038 7038 7030 7070 70E0 FF80 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP FF80 7080 7080 7000 7000 7100 7F00 7100 7000 7000 7000 7040 70C0 FFC0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP FF80 7080 7080 7000 7000 7100 7F00 7100 7000 7000 7000 7000 7000 FC00 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 1 0 BITMAP 0FF0 3C30 7010 7000 E000 E000 E000 E000 E0F8 E070 7070 7070 3870 0FF0 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 15 0 BBX 13 14 1 0 BITMAP F8F8 7070 7070 7070 7070 7070 7FF0 7070 7070 7070 7070 7070 7070 F8F8 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 7 0 BBX 5 14 1 0 BITMAP F8 70 70 70 70 70 70 70 70 70 70 70 70 F8 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 9 0 BBX 8 18 0 -4 BITMAP 1F 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 8E 9C F8 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 14 0 BBX 14 14 0 0 BITMAP F8F8 7020 7040 7180 7300 7600 7E00 7F00 7780 73C0 71E0 71E0 70F8 F9FC ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP F800 7000 7000 7000 7000 7000 7000 7000 7000 7000 7000 7040 7040 FFC0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 17 0 BBX 16 14 1 0 BITMAP F81F 781C 783C 5C3C 5C3C 5E5C 4E5C 4E9C 479C 479C 471C 431C 401C E03F ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 15 0 BBX 13 14 1 0 BITMAP F038 7010 7810 7C10 5E10 5E10 4F10 4790 4390 41D0 41F0 40F0 4070 E030 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 1 0 BITMAP 0FC0 3870 7038 7038 E01C E01C E01C E01C E01C E01C 7038 7038 3870 0FC0 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP FF00 7180 71C0 71C0 71C0 71C0 7380 7E00 7000 7000 7000 7000 7000 FC00 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 15 0 BBX 16 18 1 -4 BITMAP 0FC0 3870 7038 7038 E01C E01C E01C E01C E01C E01C 7038 7038 3870 0FC0 0070 003C 001F 0004 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 1 0 BITMAP FF00 7180 71C0 71C0 71C0 71C0 7380 7F00 7700 7380 73C0 71E0 70F0 F8F8 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP 3F00 7100 E100 E000 F000 F800 7E00 1F00 0780 0380 0380 8380 C700 FE00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 0 0 BITMAP FFF8 C708 8708 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 1FC0 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 14 0 BBX 14 14 0 0 BITMAP F83C 7010 7010 7010 7010 7010 7010 7010 7010 7010 7010 7030 3820 1FC0 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 14 0 BBX 14 14 0 0 BITMAP FC3C 7818 3810 3810 1C20 1C20 1E60 0E40 0E40 0780 0780 0380 0300 0300 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 18 0 BBX 18 14 0 0 BITMAP F843C0 706080 78E100 38E100 38F100 397200 3D7200 1D7A00 1E3C00 1E3C00 0E3C00 0C1C00 0C1800 0C1800 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 13 0 BBX 13 14 0 0 BITMAP FC78 7830 3C20 1C40 1EC0 0E80 0F00 0780 0B80 19C0 11E0 20E0 60F0 F1F8 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 0 0 BITMAP FC38 7030 3820 3C60 1C40 1E80 0F80 0700 0700 0700 0700 0700 0700 1F80 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP 7FC0 43C0 4380 0780 0700 0F00 0E00 1C00 3C00 3800 7800 7040 F0C0 FFC0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 6 0 BBX 5 18 1 -4 BITMAP F8 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 F8 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 10 0 BBX 10 18 0 -4 BITMAP C000 4000 6000 2000 2000 1000 1000 0800 0800 0400 0400 0200 0200 0100 0100 0080 0080 0040 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 6 0 BBX 5 18 0 -4 BITMAP F8 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 F8 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 0 2 BITMAP 0400 0400 0400 0A00 0A00 1100 1100 2080 2080 4040 4040 C060 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 9 0 BBX 8 1 1 -2 BITMAP FF ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 9 BITMAP 60 C0 C0 E0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 0 0 BITMAP 3E00 6380 4380 0380 3F80 F380 E380 E380 E380 7DC0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 0 0 BITMAP F000 7000 7000 7000 7380 77C0 79E0 70E0 70E0 70E0 70E0 70C0 79C0 7F80 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 0 0 BITMAP 1F80 7080 6080 E000 E000 E000 E000 7000 7880 1F80 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 07C0 01C0 01C0 01C0 3DC0 73C0 61C0 E1C0 E1C0 E1C0 E1C0 F3C0 7DC0 39E0 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 1E00 6300 6380 E380 FF80 E000 E000 7000 7880 1F80 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 8 0 BBX 9 14 0 0 BITMAP 1F80 3880 3880 3800 FF00 3800 3800 3800 3800 3800 3800 3800 3800 FC00 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 -4 BITMAP 1FE0 3360 7380 7380 7380 3300 1E00 3000 7F80 3FC0 61C0 E1C0 F380 3F00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP F800 3800 3800 3800 39C0 3BE0 3CE0 38E0 38E0 38E0 38E0 38E0 38E0 FDF0 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 6 0 BBX 6 14 0 0 BITMAP 38 38 38 00 F8 38 38 38 38 38 38 38 38 FC ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 7 0 BBX 6 18 0 -4 BITMAP 1C 1C 1C 00 3C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 9C 9C F8 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP F800 3800 3800 3800 38E0 38C0 3980 3900 3B00 3F80 3B80 3BC0 39E0 FCF0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 6 0 BBX 6 14 0 0 BITMAP F8 38 38 38 38 38 38 38 38 38 38 38 38 FC ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 18 0 BBX 18 10 0 0 BITMAP FBCF00 3FFF80 3CF380 38E380 38E380 38E380 38E380 38E380 38E380 FDF7C0 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 12 0 BBX 12 10 0 0 BITMAP F9C0 7BE0 3CE0 38E0 38E0 38E0 38E0 38E0 38E0 FDF0 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 0 0 BITMAP 1F00 71C0 60C0 E0E0 E0E0 E0E0 E0E0 60C0 71C0 1F00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 0 -4 BITMAP F380 77C0 79E0 70E0 70E0 70E0 70E0 70C0 79C0 7780 7000 7000 7000 F800 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 -4 BITMAP 3DC0 73C0 61C0 E1C0 E1C0 E1C0 E1C0 F3C0 7DC0 39C0 01C0 01C0 01C0 07E0 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP F980 3F80 3C80 3800 3800 3800 3800 3800 3800 FE00 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 3E E2 E2 F0 FE 7F 0F 87 87 FC ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 7 0 BBX 6 13 1 0 BITMAP 30 70 70 FC 70 70 70 70 70 70 70 70 3C ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 1 0 BITMAP F7C0 71C0 71C0 71C0 71C0 71C0 71C0 73C0 7DC0 39E0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 12 0 BBX 12 10 0 0 BITMAP F8F0 7860 3840 3840 1C80 1D80 0F00 0F00 0600 0600 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 17 0 BBX 17 10 0 0 BITMAP F84780 70E300 78E200 39F200 397400 1F7400 1E3C00 1E3800 0C3800 0C1000 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 12 0 BBX 12 10 0 0 BITMAP FCF0 7840 3C80 1F00 0F00 0F00 1F80 13C0 61E0 F3F0 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 -4 BITMAP FCF0 7020 3840 3840 1C80 1C80 1F00 0F00 0E00 0600 0400 0800 1800 3000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP FF80 C780 8F00 0E00 1E00 3C00 7800 7080 F080 FF80 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 7 0 BBX 5 18 1 -4 BITMAP 38 70 70 70 70 70 70 70 E0 60 70 70 70 70 70 70 70 38 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 5 0 BBX 1 18 2 -4 BITMAP 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 7 0 BBX 5 18 1 -4 BITMAP E0 70 70 70 70 70 70 70 38 30 70 70 70 70 70 70 70 E0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 12 0 BBX 11 4 0 3 BITMAP 7020 4C20 8640 81C0 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 5 0 BBX 3 14 1 -4 BITMAP E0 E0 E0 00 40 40 40 40 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 1 0 BITMAP 0400 0400 1F80 7480 6480 E400 E400 E400 E400 6400 7480 1F80 0400 0400 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 0 BITMAP 0F80 1880 3880 3800 3800 3800 FE00 3800 3800 3800 2000 FF80 FF80 FF80 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 12 0 BBX 12 12 0 1 BITMAP 8010 4020 3FC0 39C0 30C0 2040 2040 30C0 39C0 3FC0 4020 8010 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 12 0 BBX 13 14 0 0 BITMAP FC78 7810 3C20 1E40 0E80 0F00 3FC0 0700 0700 3FC0 0700 0700 0700 0F80 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 5 0 BBX 1 18 2 -4 BITMAP 80 80 80 80 80 80 80 80 00 00 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 12 0 BBX 9 18 2 -4 BITMAP 3F00 7100 E100 E000 F000 7E00 3F00 CF80 C380 E180 F980 7F00 3F00 0F80 0380 8380 C700 FE00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 12 0 BBX 6 2 3 12 BITMAP CC CC ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 16 0 BBX 15 14 1 0 BITMAP 07C0 1830 2008 43E4 4644 8C02 8C02 8C02 8C02 4644 43C4 2008 1830 07C0 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 1 6 BITMAP FC 8E 0E 7E EE EE EE 77 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 11 0 BBX 9 8 1 1 BITMAP 1880 3100 7300 EE00 E600 7300 3100 1880 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 12 0 BBX 11 5 0 3 BITMAP FFE0 0020 0020 0020 0020 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 5 0 BBX 4 2 1 5 BITMAP F0 F0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 12 0 BBX 9 9 1 5 BITMAP 3E00 6300 DF80 9280 9C80 9480 D780 6300 3E00 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 12 0 BBX 6 1 3 13 BITMAP FC ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 1 11 BITMAP E0 A0 E0 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 0 0 BITMAP 0400 0400 0400 0400 FFE0 0400 0400 0400 0400 0000 0000 FFE0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 -10 5 BITMAP F8 8C 0C 0C 18 20 40 FC FC ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 -10 5 BITMAP F8 8C 0C 08 70 1C 0C 8C F8 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 12 0 BBX 5 3 4 11 BITMAP 38 60 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 1 -4 BITMAP F9E0 38E0 38E0 38E0 38E0 38E0 38E0 39E0 3FE0 3EF0 3800 3800 3800 3800 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 12 0 BBX 8 18 1 -4 BITMAP 7F F9 F9 F9 F9 79 39 09 09 09 09 09 09 09 09 09 09 09 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 12 0 BBX 2 3 5 4 BITMAP C0 C0 C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 12 0 BBX 3 4 5 -4 BITMAP 40 E0 60 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 7 0 BBX 4 9 -11 5 BITMAP E0 60 60 60 60 60 60 60 F0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 1 6 BITMAP 3C 66 E7 E7 E7 E7 66 3C ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 11 0 BBX 9 8 1 1 BITMAP 8800 4400 6600 3300 3B80 6600 4400 8800 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 4 0 BITMAP E070 6060 60C0 61C0 6180 6318 6738 6E58 FC98 19FC 39FC 3018 6018 E03C ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 15 0 BBX 13 14 4 0 BITMAP E070 6060 60C0 61C0 6180 63F0 6718 6E18 FC18 1830 3840 3080 61F8 E1F8 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 15 0 BBX 15 14 5 0 BITMAP F838 8C30 0C60 08E0 70C0 1D8C 0F9C 8F2C FE4C 0CFE 1CFE 180C 300C 701E ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 10 0 BBX 9 14 0 -4 BITMAP 0E00 0E00 0E00 0000 0E00 0E00 0C00 1000 3000 6000 E000 E080 7180 3F80 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 0 0 BITMAP 0E00 0300 0180 0000 0100 0380 0380 03C0 05C0 05E0 08E0 08F0 1070 1FF0 2038 2038 601C F07E ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 0 0 BITMAP 00E0 0180 0300 0000 0100 0380 0380 03C0 05C0 05E0 08E0 08F0 1070 1FF0 2038 2038 601C F07E ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 0 0 BITMAP 0180 03C0 0660 0000 0100 0380 0380 03C0 05C0 05E0 08E0 08F0 1070 1FF0 2038 2038 601C F07E ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 0 0 BITMAP 0320 07E0 04C0 0000 0100 0380 0380 03C0 05C0 05E0 08E0 08F0 1070 1FF0 2038 2038 601C F07E ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 15 0 BBX 15 17 0 0 BITMAP 0660 0660 0000 0100 0380 0380 03C0 05C0 05E0 08E0 08F0 1070 1FF0 2038 2038 601C F07E ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 0 0 BITMAP 0380 0280 0380 0000 0100 0380 0380 03C0 05C0 05E0 08E0 08F0 1070 1FF0 2038 2038 601C F07E ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 18 0 BBX 18 14 0 0 BITMAP 007FC0 00F040 01F040 017000 027000 027080 047F80 0C7080 087000 1FF000 307000 207000 407040 E1FFC0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 13 0 BBX 12 18 1 -4 BITMAP 0FE0 3C30 7010 7010 E000 E000 E000 E000 E000 E000 7000 7000 3C10 0FE0 0200 0700 0300 0700 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 11 0 BBX 10 18 1 0 BITMAP 3800 0C00 0600 0000 FF80 7080 7080 7000 7000 7100 7F00 7100 7000 7000 7000 7040 70C0 FFC0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 11 0 BBX 10 18 1 0 BITMAP 0700 0C00 1800 0000 FF80 7080 7080 7000 7000 7100 7F00 7100 7000 7000 7000 7040 70C0 FFC0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 11 0 BBX 10 18 1 0 BITMAP 0C00 1E00 3300 0000 FF80 7080 7080 7000 7000 7100 7F00 7100 7000 7000 7000 7040 70C0 FFC0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 11 0 BBX 10 17 1 0 BITMAP 3300 3300 0000 FF80 7080 7080 7000 7000 7100 7F00 7100 7000 7000 7000 7040 70C0 FFC0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 7 0 BBX 6 18 2 0 BITMAP E0 30 18 00 7C 38 38 38 38 38 38 38 38 38 38 38 38 7C ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 7 0 BBX 6 18 1 0 BITMAP 1C 30 60 00 F8 70 70 70 70 70 70 70 70 70 70 70 70 F8 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 7 0 BBX 6 18 2 0 BITMAP 30 78 CC 00 7C 38 38 38 38 38 38 38 38 38 38 38 38 7C ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 7 0 BBX 6 17 2 0 BITMAP CC CC 00 7C 38 38 38 38 38 38 38 38 38 38 38 38 7C ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 0 0 BITMAP FFC0 3870 3838 3818 381C 381C FF1C 381C 381C 381C 3818 3838 3870 FFC0 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 0640 0FC0 0980 0000 F038 7010 7810 7C10 5E10 5E10 4F10 4790 4390 41D0 41F0 40F0 4070 E030 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 1 0 BITMAP 0E00 0300 0180 0000 0FC0 3870 7038 7038 E01C E01C E01C E01C E01C E01C 7038 7038 3870 0FC0 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 1 0 BITMAP 01C0 0300 0600 0000 0FC0 3870 7038 7038 E01C E01C E01C E01C E01C E01C 7038 7038 3870 0FC0 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 1 0 BITMAP 0300 0780 0CC0 0000 0FC0 3870 7038 7038 E01C E01C E01C E01C E01C E01C 7038 7038 3870 0FC0 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 1 0 BITMAP 0640 0FC0 0980 0000 0FC0 3870 7038 7038 E01C E01C E01C E01C E01C E01C 7038 7038 3870 0FC0 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 1 0 BITMAP 0CC0 0CC0 0000 0FC0 3870 7038 7038 E01C E01C E01C E01C E01C E01C 7038 7038 3870 0FC0 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 0 0 BITMAP C020 4060 2080 1100 1B00 0E00 0E00 1B00 1100 2080 C040 8060 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 1 0 BITMAP 0FCC 3878 7038 7038 E05C E09C E11C E21C E41C E81C 7038 7038 7870 CFC0 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 0 0 BITMAP 0E00 0300 0180 0000 F83C 7010 7010 7010 7010 7010 7010 7010 7010 7010 7010 7030 3820 1FC0 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 0 0 BITMAP 01C0 0300 0600 0000 F83C 7010 7010 7010 7010 7010 7010 7010 7010 7010 7010 7030 3820 1FC0 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 0 0 BITMAP 0300 0780 0CC0 0000 F83C 7010 7010 7010 7010 7010 7010 7010 7010 7010 7010 7030 3820 1FC0 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP 0CC0 0CC0 0000 F83C 7010 7010 7010 7010 7010 7010 7010 7010 7010 7010 7030 3820 1FC0 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 0 0 BITMAP 01C0 0300 0600 0000 FC38 7030 3820 3C60 1C40 1E80 0F80 0700 0700 0700 0700 0700 0700 1F80 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP F800 7000 7000 7F00 7180 71C0 71C0 71C0 71C0 7380 7E00 7000 7000 F800 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 1 0 BITMAP 1F80 31C0 71C0 7180 7300 7200 7700 7780 73E0 71F0 70F0 7270 7270 FBE0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 0 0 BITMAP 3800 0C00 0600 0000 3E00 6380 4380 0380 3F80 F380 E380 E380 E380 7DC0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 0 0 BITMAP 0700 0C00 1800 0000 3E00 6380 4380 0380 3F80 F380 E380 E380 E380 7DC0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 0 0 BITMAP 0C00 1E00 3300 0000 3E00 6380 4380 0380 3F80 F380 E380 E380 E380 7DC0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 0 0 BITMAP 1900 3F00 2600 0000 3E00 6380 4380 0380 3F80 F380 E380 E380 E380 7DC0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 0 0 BITMAP 3300 3300 0000 3E00 6380 4380 0380 3F80 F380 E380 E380 E380 7DC0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 0 0 BITMAP 1C00 1400 1C00 0000 3E00 6380 4380 0380 3F80 F380 E380 E380 E380 7DC0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 16 0 BBX 15 10 0 0 BITMAP 3E78 638C 038E 038E 3FFE F380 E380 E3C0 F3E2 7CFE ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 10 0 BBX 9 14 0 -4 BITMAP 1F80 7080 6080 E000 E000 E000 E000 7000 7880 1F80 0800 1C00 0C00 1C00 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP 3800 0C00 0600 0000 1E00 6300 6380 E380 FF80 E000 E000 7000 7880 1F80 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP 0700 0C00 1800 0000 1E00 6300 6380 E380 FF80 E000 E000 7000 7880 1F80 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP 0C00 1E00 3300 0000 1E00 6300 6380 E380 FF80 E000 E000 7000 7880 1F80 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 3300 3300 0000 1E00 6300 6380 E380 FF80 E000 E000 7000 7880 1F80 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 6 0 BBX 6 14 0 0 BITMAP E0 30 18 00 F8 38 38 38 38 38 38 38 38 FC ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 6 0 BBX 6 14 0 0 BITMAP 1C 30 60 00 F8 38 38 38 38 38 38 38 38 FC ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 6 0 BBX 6 14 0 0 BITMAP 30 78 CC 00 F8 38 38 38 38 38 38 38 38 FC ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 6 0 BBX 6 13 0 0 BITMAP CC CC 00 F8 38 38 38 38 38 38 38 38 FC ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 12 0 BBX 11 16 1 0 BITMAP 0300 0600 FC00 1F00 3780 43C0 1FC0 71E0 60E0 E0E0 E0E0 E0E0 E0E0 60C0 7180 1F00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP 0C80 1F80 1300 0000 F9C0 7BE0 3CE0 38E0 38E0 38E0 38E0 38E0 38E0 FDF0 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 0 0 BITMAP 3800 0C00 0600 0000 1F00 71C0 60C0 E0E0 E0E0 E0E0 E0E0 60C0 71C0 1F00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 0 0 BITMAP 0380 0600 0C00 0000 1F00 71C0 60C0 E0E0 E0E0 E0E0 E0E0 60C0 71C0 1F00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 0 0 BITMAP 0C00 1E00 3300 0000 1F00 71C0 60C0 E0E0 E0E0 E0E0 E0E0 60C0 71C0 1F00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 0 0 BITMAP 1900 3F00 2600 0000 1F00 71C0 60C0 E0E0 E0E0 E0E0 E0E0 60C0 71C0 1F00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 0 0 BITMAP 3300 3300 0000 1F00 71C0 60C0 E0E0 E0E0 E0E0 E0E0 60C0 71C0 1F00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP 0C00 0C00 0000 0000 0000 FFC0 0000 0000 0C00 0C00 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 12 0 BBX 12 10 0 0 BITMAP 0FB0 38E0 3060 71F0 7370 7670 7870 3060 38E0 CF80 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 1C00 0600 0300 0000 F7C0 71C0 71C0 71C0 71C0 71C0 71C0 73C0 7DC0 39E0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 0380 0600 0C00 0000 F7C0 71C0 71C0 71C0 71C0 71C0 71C0 73C0 7DC0 39E0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 0600 0F00 1980 0000 F7C0 71C0 71C0 71C0 71C0 71C0 71C0 73C0 7DC0 39E0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 1 0 BITMAP 1980 1980 0000 F7C0 71C0 71C0 71C0 71C0 71C0 71C0 73C0 7DC0 39E0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 12 0 BBX 12 18 0 -4 BITMAP 0380 0600 0C00 0000 FCF0 7020 3840 3840 1C80 1C80 1F00 0F00 0E00 0600 0400 0800 1800 3000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 12 0 BBX 11 18 0 -4 BITMAP F000 7000 7000 7000 7380 77C0 79E0 70E0 70E0 70E0 70E0 70C0 79C0 7780 7000 7000 7000 F800 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 12 0 BBX 12 17 0 -4 BITMAP 1980 1980 0000 FCF0 7020 3840 3840 1C80 1C80 1F00 0F00 0E00 0600 0400 0800 1800 3000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 1 0 BITMAP 0FE0 18E0 38E0 38E0 FEE0 38E0 38E0 38E0 38E0 38E0 38E0 38E0 38E0 FDF0 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 1 1 6 BITMAP FF ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 18 1 -4 BITMAP 1C00 1C00 1C00 1C00 1C00 1C00 FF80 DD80 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 18 1 0 BITMAP 3300 1E00 0C00 0000 7FC0 43C0 4380 0780 0700 0F00 0E00 1C00 3C00 3800 7800 7040 F0C0 FFC0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 16 10 1 0 BITMAP 1E3C 7346 61C7 E1C7 E1FF E1C0 E1C0 61E0 73F1 1F3F ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 0 0 BITMAP 1980 1980 0000 FC38 7030 3820 3C60 1C40 1E80 0F80 0700 0700 0700 0700 0700 0700 1F80 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 10 0 0 BITMAP F8 38 38 38 38 38 38 38 38 FC ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 7 14 0 0 BITMAP F8 38 38 38 38 3E 38 78 B8 38 38 38 38 FE ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP FC00 3800 3800 3800 3A00 3C00 3800 F800 B800 3800 3800 3820 3820 FFE0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 18 1 -4 BITMAP 1C00 1C00 1C00 1C00 1C00 1C00 FF80 DD80 1C00 1C00 1C00 1C00 FF80 DD80 1C00 1C00 1C00 1C00 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 13 14 0 0 BITMAP 1F70 3970 3970 3800 FFF0 3870 3870 3870 3870 3870 3870 3870 3870 FDF8 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 1 BITMAP 80 40 60 30 38 60 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 19 14 1 0 BITMAP 0FBFE0 387820 703820 703800 E03800 E03840 E03FC0 E03840 E03800 E03800 703800 703820 387820 0FBFE0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 17 1 1 5 BITMAP FFFF80 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 6 3 3 11 BITMAP CC 78 30 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 3 3 5 -4 BITMAP 40 80 E0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 3 3 11 BITMAP 36 68 90 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 1 BITMAP 08 10 30 E0 60 30 10 08 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 2 3 5 11 BITMAP C0 C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 3 2 11 BITMAP 82 7C 38 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 7 2 2 BITMAP 38 7C FE FE FE 7C 38 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 6 3 3 11 BITMAP 64 FC 98 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 6 3 3 11 BITMAP 30 78 CC ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 5 1 9 BITMAP 66 CC EE EE EE ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 9 BITMAP E0 E0 E0 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 14 1 0 BITMAP 66 3C 18 00 3E E2 E2 F0 FE 7F 0F 87 87 FC ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 3 3 4 11 BITMAP E0 A0 E0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 7 1 -4 BITMAP E0 E0 E0 60 60 60 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 18 2 -4 BITMAP 03C0 0E40 0C40 1C00 1C00 3800 3800 7E00 3800 3800 7000 7000 7000 7000 7000 E000 E000 E000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 18 8 1 6 BITMAP FF71C0 993B80 993B80 183B80 183D80 182D80 182D80 3C61C0 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 12 14 -4 0 BITMAP 0070 0060 00C0 01C0 0180 0300 0700 0E00 0C00 1800 3800 3000 6000 E000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 5 3 3 11 BITMAP E0 30 18 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 22 0 BBX 23 14 0 0 BITMAP 380600 440800 C61000 C62000 C64000 44C000 398000 033838 064444 04C6C6 08C6C6 10C6C6 204444 C03838 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 15 2 2 0 BITMAP C186 C186 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 5 1 9 BITMAP EE EE EE 66 CC ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 18 1 0 BITMAP 6600 3C00 1800 0000 3F00 7100 E100 E000 F000 F800 7E00 1F00 0780 0380 0380 8380 C700 FE00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 -4 BITMAP EE EE EE 66 66 66 CC ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP 3300 1E00 0C00 0000 FF80 C780 8F00 0E00 1E00 3C00 7800 7080 F080 FF80 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lubB24.bdf100644 1750 1750 111627 5413747475 15035 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-DemiBold-R-Normal--24-240-75-75-P-143-ISO8859-1 SIZE 24 72 72 FONTBOUNDINGBOX 44 27 -15 -5 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "DemiBold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 24 POINT_SIZE 240 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 143 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 22 FONT_DESCENT 5 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 8 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 6 0 BBX 4 17 1 0 BITMAP F0 F0 F0 F0 F0 F0 E0 E0 60 60 40 40 00 F0 F0 F0 F0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 11 0 BBX 8 7 2 11 BITMAP FF FF E7 E7 66 42 42 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 0 0 BITMAP 0318 0318 0338 0630 0630 7FFE 7FFE 0C60 0C60 0C60 0C60 FFFC FFFC 18C0 18C0 3180 3180 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 15 0 BBX 11 22 2 -3 BITMAP 0400 0400 3FC0 7DC0 F4C0 F4C0 F400 FC00 7C00 3E00 1F00 07C0 07C0 05E0 05E0 C5E0 C5E0 E5C0 FF80 0400 0400 0400 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 18 0 BBX 19 17 0 0 BITMAP 3E00E0 6301C0 E38380 E38700 E38E00 E39C00 633800 3E7000 00EF80 01D8C0 03B8E0 0738E0 0E38E0 1C38E0 3838E0 7018C0 E00F80 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 18 0 BBX 17 17 1 0 BITMAP 07C000 0EE000 1EF000 1EF000 1EF000 0EC000 070000 1E1F80 330700 738600 F1C600 F1E400 F0FC00 F8F800 787C00 3FDF00 0F9F80 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 11 BITMAP F0 F0 F0 F0 70 70 E0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 8 0 BBX 7 22 0 -4 BITMAP 02 06 0C 18 38 78 70 70 F0 F0 F0 F0 F0 F0 70 70 78 38 18 0C 06 02 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 8 0 BBX 7 22 0 -4 BITMAP 80 C0 60 30 38 3C 1C 1C 1E 1E 1E 1E 1E 1E 1C 1C 3C 38 30 60 C0 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 11 0 BBX 9 9 1 8 BITMAP 1C00 0800 4900 EF80 7300 1400 3600 7700 2200 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 1 0 BITMAP 0300 0300 0300 0300 0300 0300 FFFC FFFC 0300 0300 0300 0300 0300 0300 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 -4 BITMAP F0 F0 F0 F0 70 70 60 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 15 0 BBX 14 2 1 6 BITMAP FFFC FFFC ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 6 0 BBX 4 4 1 0 BITMAP F0 F0 F0 F0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 13 0 BBX 13 22 0 -4 BITMAP 0018 0030 0030 0060 0060 00C0 00C0 0180 0180 0300 0300 0600 0600 0C00 0C00 1800 1800 3000 3000 6000 6000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 1 0 BITMAP 0F80 18C0 38E0 78F0 7070 F078 F078 F078 F078 F078 F078 F078 7070 78F0 38E0 18C0 0F80 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 15 0 BBX 10 17 3 0 BITMAP FE00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 3F00 FFC0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 1 0 BITMAP 7F80 E1E0 C0F0 C0F0 00F0 00F0 00E0 01C0 0380 0600 0800 1000 3000 7FF0 7FF0 FFF0 FFF0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 2 0 BITMAP 7F00 E3C0 C1E0 C1E0 01E0 01C0 01C0 0300 3F80 03E0 01E0 00F0 00F0 C0F0 C1E0 E3C0 FF00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 0 0 BITMAP 0070 00F0 01F0 02F0 04F0 0CF0 08F0 10F0 20F0 60F0 FFFC FFFC FFFC 00F0 00F0 00F0 03FC ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 15 0 BBX 10 17 3 0 BITMAP FFC0 FFC0 FFC0 8000 8000 8000 8000 FC00 0F80 0780 03C0 03C0 03C0 C3C0 C380 C780 FE00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 1 0 BITMAP 07E0 1C70 3830 7830 7000 F000 F3C0 F7F0 F8F0 F078 F078 F078 7078 7078 3870 38E0 0F80 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 2 0 BITMAP FFF0 FFF0 FFF0 FFE0 0060 00C0 0180 0100 0300 0600 0E00 1C00 1C00 3800 3800 7800 7800 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 1 0 BITMAP 0FC0 3DE0 78F0 78F0 78F0 7CE0 3FC0 1F00 0FC0 3BF0 70F8 F078 F078 F078 F070 78E0 1FC0 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 1 0 BITMAP 0F80 38E0 70E0 F070 F070 F078 F078 F078 78F8 7F78 1E78 0078 0070 60F0 60E0 71C0 3F00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 6 0 BBX 4 13 1 0 BITMAP F0 F0 F0 F0 00 00 00 00 00 F0 F0 F0 F0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 6 0 BBX 4 17 1 -4 BITMAP F0 F0 F0 F0 00 00 00 00 00 F0 F0 F0 F0 70 70 60 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 1 0 BITMAP 0004 001C 0078 01E0 0780 1E00 F800 7800 1E00 0780 01E0 0078 001C 0004 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 15 0 BBX 14 6 1 4 BITMAP FFFC FFFC 0000 0000 FFFC FFFC ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 1 0 BITMAP 8000 E000 7800 1E00 0780 01E0 0078 007C 01E0 0780 1E00 7800 E000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 12 0 BBX 12 17 0 0 BITMAP 7F80 E1E0 C0F0 C0F0 00F0 00E0 01C0 0180 0700 0E00 1E00 1E00 0000 1E00 1E00 1E00 1E00 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 21 0 BBX 19 17 1 0 BITMAP 00FC00 030300 0C0080 100040 20FE20 618C20 430C20 C61C20 8E1C20 8E3C40 8E7C40 8FDD80 C71E00 400000 200000 181800 07F000 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 19 0 BBX 19 17 0 0 BITMAP 006000 00E000 00F000 01F000 01F800 017800 027800 027C00 043C00 043E00 081E00 0FFF00 100F00 100780 200780 6003C0 F80FE0 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 0 0 BITMAP FFE0 3CF0 3C78 3C78 3C78 3C78 3C70 3CC0 3FC0 3CF0 3C78 3C3C 3C3C 3C3C 3C3C 3C78 FFE0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 17 0 BBX 15 17 1 0 BITMAP 03FC 1E0E 3C06 7806 7800 F000 F000 F000 F000 F000 F000 F800 7800 7C00 3E06 1FFE 03F8 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 19 0 BBX 18 17 0 0 BITMAP FFF800 3C1E00 3C0F00 3C0780 3C0380 3C03C0 3C03C0 3C03C0 3C03C0 3C03C0 3C03C0 3C0380 3C0780 3C0780 3C0F00 3C1E00 FFF800 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 1 0 BITMAP FFF8 3C18 3C18 3C00 3C00 3C00 3C00 3C20 3FE0 3C20 3C00 3C00 3C00 3C00 3C18 3C18 FFF8 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 0 0 BITMAP FFF8 3C18 3C18 3C00 3C00 3C00 3C00 3C20 3FE0 3C20 3C00 3C00 3C00 3C00 3C00 3C00 FF00 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 18 0 BBX 17 17 1 0 BITMAP 03FC00 1E0E00 3C0600 780600 780000 F00000 F00000 F00000 F00000 F07F80 F01E00 F01E00 781E00 781E00 3C1E00 1E1E00 03FC00 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 19 0 BBX 18 17 1 0 BITMAP FF3FC0 3C0F00 3C0F00 3C0F00 3C0F00 3C0F00 3C0F00 3C0F00 3FFF00 3C0F00 3C0F00 3C0F00 3C0F00 3C0F00 3C0F00 3C0F00 FF3FC0 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 8 0 BBX 8 17 0 0 BITMAP FF 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C FF ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 11 0 BBX 11 21 0 -4 BITMAP 1FE0 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 C700 CF00 FC00 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 18 0 BBX 17 17 1 0 BITMAP FF1F00 3C0C00 3C1800 3C3000 3C6000 3C4000 3C8000 3DC000 3FC000 3FE000 3DF000 3CF800 3CF800 3C7C00 3C3E00 3C1F00 FF3F80 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP FF00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C0C 3C0C 3C0C FFFC ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 22 0 BBX 21 17 0 0 BITMAP FE01F8 3E03E0 3E03E0 3F03E0 3F07E0 3787E0 378DE0 37CDE0 33D9E0 33F9E0 31F9E0 31F1E0 31F1E0 30E1E0 30E1E0 3001E0 FC07F8 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 19 0 BBX 18 17 0 0 BITMAP F80FC0 3C0300 3E0300 3F0300 3F0300 3F8300 37C300 33E300 33E300 31F300 30FB00 307F00 307F00 303F00 301F00 300F00 FC0F00 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 19 0 BBX 18 17 1 0 BITMAP 07F800 1E1E00 3C0F00 780780 780780 F003C0 F003C0 F003C0 F003C0 F003C0 F003C0 F003C0 780780 780780 3C0F00 1E1E00 03F000 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 0 0 BITMAP FFE0 3C78 3C3C 3C3C 3C3C 3C3C 3C3C 3C38 3C70 3FC0 3C00 3C00 3C00 3C00 3C00 3C00 FF00 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 19 0 BBX 21 21 1 -4 BITMAP 03F800 1E1E00 3C0F00 780780 780780 F003C0 F003C0 F003C0 F003C0 F003C0 F003C0 F003C0 780780 780780 3C0F00 1E1E00 03F800 000F00 0007F8 0003F0 000060 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 17 0 BBX 17 17 0 0 BITMAP FFE000 3C7800 3C3C00 3C3C00 3C3C00 3C3C00 3C7C00 3CF800 3FF000 3DE000 3CF000 3CF800 3C7C00 3C7C00 3C3E00 3C1F00 FF1F80 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 13 0 BBX 12 17 1 0 BITMAP 1FC0 78E0 7060 F060 F000 F800 FE00 7F80 3FC0 0FE0 03F0 01F0 00F0 C0F0 C0E0 E1C0 7F00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 17 0 BBX 16 17 1 0 BITMAP FFFF C3C3 C3C3 C3C3 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 0FF0 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 18 0 BBX 18 17 0 0 BITMAP FF0FC0 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 1E0600 0F0C00 03F800 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 18 0 BBX 18 17 0 0 BITMAP FE07C0 7C0100 3C0300 3E0200 1E0200 1F0600 0F0400 0F8C00 078800 078800 07D000 03D000 03E000 01E000 01E000 00C000 00C000 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 23 0 BBX 23 17 0 0 BITMAP FE083E 781C08 7C1C08 3C1C10 3C3E10 3E3E10 1E3E10 1E5F20 1E4F20 0F4F20 0F8FC0 0F87C0 0F87C0 070380 070380 070380 020100 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 17 0 BBX 17 17 0 0 BITMAP 7F0F80 3E0600 3E0400 1F0C00 0F0800 0F9000 07E000 03E000 03E000 07F000 06F000 0EF800 1C7C00 183C00 303E00 701F00 F87F80 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 17 0 BBX 18 17 0 0 BITMAP FF07C0 7C0300 3E0200 1F0200 1F0400 0F8800 07C800 07D000 03E000 01E000 01E000 01E000 01E000 01E000 01E000 01E000 07F800 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 1 0 BITMAP 7FF8 60F8 60F8 01F0 01E0 03E0 07C0 0780 0F80 0F00 1F00 3E00 3C00 7C00 7818 F818 FFF8 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 8 0 BBX 6 22 1 -4 BITMAP FC F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 FC ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 13 0 BBX 13 22 0 -4 BITMAP C000 6000 6000 3000 3000 1800 1800 0C00 0C00 0600 0600 0300 0300 0180 0180 00C0 00C0 0060 0060 0030 0030 0018 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 8 0 BBX 6 22 1 -4 BITMAP FC 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C FC ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 1 3 BITMAP 0100 0300 0300 0780 0780 0CC0 0CC0 1860 1860 3030 3030 6018 6018 C00C ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 12 0 BBX 10 2 1 -3 BITMAP FFC0 FFC0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 11 BITMAP 70 E0 E0 F0 F0 F0 F0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 0 0 BITMAP 3F80 71C0 61E0 01E0 01E0 3FE0 79E0 F1E0 F1E0 F1E0 F9E0 7FE0 3C78 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 0 0 BITMAP FC00 3C00 3C00 3C00 3C00 3CF0 3DFC 3FFC 3E3E 3C1E 3C1E 3C1E 3C1E 3C1E 3C3C 3E3C 3BF8 39F0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 1 0 BITMAP 0FE0 38E0 7060 7060 F000 F000 F000 F000 F000 7800 7C20 3FE0 0FC0 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 1 0 BITMAP 01F8 0078 0078 0078 0078 1E78 3FF8 78F8 7078 F078 F078 F078 F078 F078 F8F8 7FF8 7F7C 1E7E ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 1 0 BITMAP 0F80 39C0 70E0 70F0 F0F0 FFF0 F000 F000 F000 7800 7C10 3FF0 0FE0 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 10 0 BBX 11 18 0 0 BITMAP 0FC0 1C60 3C60 3C00 3C00 FFC0 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 FF00 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 0 -5 BITMAP 0FFC 38E8 78F0 78F0 78F0 78F0 38E0 18E0 07C0 3800 7FF0 3FF8 1FF8 7078 F078 F070 78E0 3FC0 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 16 0 BBX 16 18 0 0 BITMAP FC00 3C00 3C00 3C00 3C00 3C70 3DF8 3DFC 3E3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C FFFF ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 8 0 BBX 8 18 0 0 BITMAP 3C 3C 3C 3C 00 FC 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C FF ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 9 0 BBX 8 23 0 -5 BITMAP 0F 0F 0F 0F 00 1F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F CF CF CE FC ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 1 0 BITMAP FC00 3C00 3C00 3C00 3C00 3C3C 3C30 3C20 3C40 3C80 3DC0 3FC0 3FE0 3DF0 3CF0 3CF8 3C7C FF3E ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 8 0 BBX 8 18 0 0 BITMAP FC 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C FF ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 23 0 BBX 24 13 0 0 BITMAP FCF0F0 3DF9F8 3FFFFC 3E3E3C 3C3C3C 3C3C3C 3C3C3C 3C3C3C 3C3C3C 3C3C3C 3C3C3C 3C3C3C FFFFFF ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 16 0 BBX 16 13 0 0 BITMAP FC70 7DF8 3DFC 3E3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C FFFF ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 1 0 BITMAP 0F80 38E0 78F0 7070 F078 F078 F078 F078 F078 7070 78F0 38E0 0F80 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 0 -5 BITMAP FCF0 7DFC 3FFC 3E3E 3C1E 3C1E 3C1E 3C1E 3C1E 3C3C 3E3C 3FF8 3CF0 3C00 3C00 3C00 3C00 FF00 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 1 -5 BITMAP 1E78 3FF8 78F8 7878 F078 F078 F078 F078 F078 F8F8 7FF8 7F78 1E78 0078 0078 0078 0078 01FE ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP FCE0 3DE0 3FE0 3E60 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 FF00 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 13 0 BBX 10 13 1 0 BITMAP 3F00 7980 F180 F180 F800 FF00 7F80 3FC0 07C0 C3C0 C3C0 E780 7E00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 9 0 BBX 9 16 0 0 BITMAP 1C00 3C00 3C00 FF80 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 1F80 0F80 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 16 0 BBX 16 13 0 0 BITMAP FCFC 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C7C 3FBC 1FBE 0E3F ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 16 0 BBX 16 13 0 0 BITMAP FE1F 7C04 3C0C 1E08 1E18 1F10 0F30 0FA0 07E0 07C0 03C0 0380 0180 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 21 0 BBX 21 13 0 0 BITMAP FE18F8 783820 7C3C20 3C7C60 3C7C40 1E7E40 1E9E80 1E9F80 0F0F80 0F0F00 0F0F00 060700 060600 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 15 0 BBX 15 13 0 0 BITMAP FF3E 7C18 3E30 1F20 0FC0 0F80 07C0 07E0 05F0 09F0 10F8 307C F8FE ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 16 0 BBX 16 18 0 -5 BITMAP FE1F 7C04 3C0C 3E08 1E18 1F10 0F30 0FA0 07C0 07C0 0380 0380 0300 0100 0200 0600 0C00 3C00 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 1 0 BITMAP FFF0 C1F0 C3E0 03C0 07C0 0F80 1F00 1F00 3E00 7C00 7C30 F830 FFF0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 9 0 BBX 6 22 1 -4 BITMAP 1C 38 78 78 78 78 78 78 78 70 E0 60 70 78 78 78 78 78 78 78 38 1C ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 6 0 BBX 2 22 2 -4 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 9 0 BBX 6 22 1 -4 BITMAP E0 70 78 78 78 78 78 78 78 38 1C 18 38 78 78 78 78 78 78 78 70 E0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 15 0 BBX 14 6 1 4 BITMAP 3800 7E04 4704 8388 81F8 8070 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 6 0 BBX 4 18 1 -5 BITMAP F0 F0 F0 F0 00 40 40 60 60 60 E0 E0 F0 F0 F0 F0 F0 F0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 15 0 BBX 11 17 2 0 BITMAP 0200 0200 0FE0 3AE0 7260 7260 F200 F200 F200 F200 F200 7200 7A20 3FE0 0FC0 0200 0200 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 15 0 BBX 11 17 3 0 BITMAP 07C0 1C60 1C60 3C60 3C00 3C00 3C00 FF00 3C00 3C00 3C00 3800 6000 FFE0 FFE0 FFE0 FFE0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 15 0 BBX 14 15 0 1 BITMAP 8004 4008 2790 1FE0 1CE0 3870 3030 3030 3030 3870 1CE0 1FE0 2790 4008 8004 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 15 0 BBX 16 17 0 0 BITMAP FE0F 7C06 3C04 3E08 1F08 1F10 0FA0 07A0 07C0 1FF8 03C0 03C0 1FF8 03C0 03C0 03C0 0FF0 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 6 0 BBX 2 22 2 -4 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 00 00 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 15 0 BBX 11 22 2 -5 BITMAP 1FC0 79C0 F0C0 F0C0 F000 FC00 7F00 3FC0 6FC0 E7E0 E1E0 F0E0 FCE0 7EC0 7F80 1FC0 07E0 03E0 C1E0 C1E0 E3C0 7F00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 15 0 BBX 7 3 4 14 BITMAP C6 C6 C6 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 21 0 BBX 18 17 1 0 BITMAP 03F000 0C0C00 100200 200100 41F880 470880 8E0840 8E0040 8E0040 8E0040 8E0040 470880 41F880 200100 100200 0C0C00 03F000 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 12 0 BBX 11 9 1 8 BITMAP 7F00 C3C0 C3C0 03C0 3FC0 F3C0 F3C0 FFC0 79E0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 14 0 BBX 12 11 1 1 BITMAP 0410 0C30 1860 38C0 71C0 F380 71C0 38C0 1860 0C30 0410 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 15 0 BBX 14 6 1 4 BITMAP FFFC FFFC 000C 000C 000C 000C ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 7 0 BBX 5 3 1 6 BITMAP F8 F8 F8 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 15 0 BBX 12 11 2 6 BITMAP 1F80 30C0 4020 9F90 8890 8890 8F10 8B10 59A0 30C0 1F80 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 15 0 BBX 7 2 4 15 BITMAP FE FE ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 6 0 BBX 4 4 1 13 BITMAP 60 90 90 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 1 0 BITMAP 0300 0300 0300 0300 FFFC FFFC 0300 0300 0300 0300 0000 0000 FFFC FFFC ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 -14 7 BITMAP FC CE 86 06 0C 18 30 40 FE FE ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 -14 7 BITMAP FC 8E 86 04 78 0C 06 86 8E F8 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 15 0 BBX 6 4 5 14 BITMAP 3C 30 60 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 17 0 BBX 16 17 0 -4 BITMAP FCFC 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C7C 3FFC 3FBC 3F3F 3C00 3C00 3C00 3C00 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 15 0 BBX 10 21 1 -4 BITMAP 3FC0 7FC0 FC40 FC40 FC40 FC40 7C40 7C40 1C40 0440 0440 0440 0440 0440 0440 0440 0440 0440 0440 0440 0440 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 15 0 BBX 3 4 6 5 BITMAP E0 E0 E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 15 0 BBX 4 6 6 -5 BITMAP 60 40 F0 70 70 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 -15 7 BITMAP F0 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 12 0 BBX 10 9 1 8 BITMAP 1E00 7380 F3C0 F3C0 F3C0 F3C0 F3C0 7380 1E00 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 14 0 BBX 12 11 1 1 BITMAP 8200 C300 6180 31C0 38E0 1CF0 38E0 31C0 6180 C300 8200 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 19 0 BBX 18 17 5 0 BITMAP 7807C0 180700 180F00 181E00 183C00 187800 187000 18F380 19E380 7FC580 038980 079180 0F3FC0 1E3FC0 3C0180 380180 F803C0 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 19 0 BBX 18 17 5 0 BITMAP 7807C0 180700 180F00 181E00 183C00 187800 187000 18FF00 19F380 7FE180 038180 078300 0F0600 1E0C00 3C1000 383F80 F83F80 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 19 0 BBX 18 17 5 0 BITMAP FC07C0 8E0700 860F00 041E00 783C00 0C7800 067000 86F380 8FE380 FBC580 038980 079180 0F3FC0 1E3FC0 3C0180 380180 F803C0 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 12 0 BBX 12 18 0 -5 BITMAP 0780 0780 0780 0780 0000 0780 0780 0700 0600 0C00 1800 7000 F000 F000 F030 F830 7C70 1FE0 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 19 0 BBX 19 22 0 0 BITMAP 03C000 00C000 006000 003000 000000 006000 00E000 00F000 01F000 01F800 017800 027800 027C00 043C00 043E00 081E00 0FFF00 100F00 100780 200780 6003C0 F80FE0 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 19 0 BBX 19 22 0 0 BITMAP 007800 006000 00C000 018000 000000 006000 00E000 00F000 01F000 01F800 017800 027800 027C00 043C00 043E00 081E00 0FFF00 100F00 100780 200780 6003C0 F80FE0 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 19 0 BBX 19 22 0 0 BITMAP 00F000 00F000 019800 030C00 000000 006000 00E000 00F000 01F000 01F800 017800 027800 027C00 043C00 043E00 081E00 0FFF00 100F00 100780 200780 6003C0 F80FE0 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 19 0 BBX 19 22 0 0 BITMAP 01C400 03FC00 03FC00 023800 000000 006000 00E000 00F000 01F000 01F800 017800 027800 027C00 043C00 043E00 081E00 0FFF00 100F00 100780 200780 6003C0 F80FE0 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 19 0 BBX 19 21 0 0 BITMAP 031800 031800 031800 000000 006000 00E000 00F000 01F000 01F800 017800 027800 027C00 043C00 043E00 081E00 0FFF00 100F00 100780 200780 6003C0 F80FE0 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 19 0 BBX 19 22 0 0 BITMAP 006000 009000 009000 006000 000000 006000 00E000 00F000 01F000 01F800 017800 027800 027C00 043C00 043E00 081E00 0FFF00 100F00 100780 200780 6003C0 F80FE0 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 23 0 BBX 22 17 0 0 BITMAP 003FF8 003C18 007C18 00FC00 00BC00 013C00 013C00 023C30 063FF0 043C30 083C00 0FFC00 103C00 303C00 203C0C 603C0C F0FFFC ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 17 0 BBX 15 22 1 -5 BITMAP 03FC 1E0E 3C06 7806 7800 F000 F000 F000 F000 F000 F000 F800 7800 7C00 3E06 1FFE 03F8 0100 03C0 01C0 01C0 0380 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 14 0 BBX 13 22 1 0 BITMAP 1E00 0600 0300 0180 0000 FFF8 3C18 3C18 3C00 3C00 3C00 3C00 3C20 3FE0 3C20 3C00 3C00 3C00 3C00 3C18 3C18 FFF8 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 14 0 BBX 13 22 1 0 BITMAP 03C0 0300 0600 0C00 0000 FFF8 3C18 3C18 3C00 3C00 3C00 3C00 3C20 3FE0 3C20 3C00 3C00 3C00 3C00 3C18 3C18 FFF8 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 14 0 BBX 13 22 1 0 BITMAP 0780 0780 0CC0 1860 0000 FFF8 3C18 3C18 3C00 3C00 3C00 3C00 3C20 3FE0 3C20 3C00 3C00 3C00 3C00 3C18 3C18 FFF8 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 14 0 BBX 13 21 1 0 BITMAP 18C0 18C0 18C0 0000 FFF8 3C18 3C18 3C00 3C00 3C00 3C00 3C20 3FE0 3C20 3C00 3C00 3C00 3C00 3C18 3C18 FFF8 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 8 0 BBX 8 22 0 0 BITMAP F0 30 18 0C 00 FF 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C FF ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 8 0 BBX 8 22 0 0 BITMAP 0F 0C 18 30 00 FF 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C FF ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 8 0 BBX 8 22 0 0 BITMAP 3C 3C 66 C3 00 FF 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C FF ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 8 0 BBX 8 21 0 0 BITMAP C6 C6 C6 00 FF 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C FF ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 19 0 BBX 18 17 0 0 BITMAP 7FF800 3C1E00 3C0F00 3C0780 3C0380 3C03C0 3C03C0 3C03C0 FFC3C0 3C03C0 3C03C0 3C03C0 3C0780 3C0780 3C0F00 3C1E00 7FF800 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 19 0 BBX 18 22 0 0 BITMAP 038800 07F800 07F800 047000 000000 F80FC0 3C0300 3E0300 3F0300 3F0300 3F8300 37C300 33E300 33E300 31F300 30FB00 307F00 307F00 303F00 301F00 300F00 FC0F00 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 19 0 BBX 18 22 1 0 BITMAP 078000 018000 00C000 006000 000000 07F800 1E1E00 3C0F00 780780 780780 F003C0 F003C0 F003C0 F003C0 F003C0 F003C0 F003C0 780780 780780 3C0F00 1E1E00 03F000 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 19 0 BBX 18 22 1 0 BITMAP 007800 006000 00C000 018000 000000 07F800 1E1E00 3C0F00 780780 780780 F003C0 F003C0 F003C0 F003C0 F003C0 F003C0 F003C0 780780 780780 3C0F00 1E1E00 03F000 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 19 0 BBX 18 22 1 0 BITMAP 01E000 01E000 033000 061800 000000 07F800 1E1E00 3C0F00 780780 780780 F003C0 F003C0 F003C0 F003C0 F003C0 F003C0 F003C0 780780 780780 3C0F00 1E1E00 03F000 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 19 0 BBX 18 22 1 0 BITMAP 038800 07F800 07F800 047000 000000 07F800 1E1E00 3C0F00 780780 780780 F003C0 F003C0 F003C0 F003C0 F003C0 F003C0 F003C0 780780 780780 3C0F00 1E1E00 03F000 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 19 0 BBX 18 21 1 0 BITMAP 063000 063000 063000 000000 07F800 1E1E00 3C0F00 780780 780780 F003C0 F003C0 F003C0 F003C0 F003C0 F003C0 F003C0 780780 780780 3C0F00 1E1E00 03F000 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 1 0 BITMAP 4008 E01C 7038 3870 1CE0 0FC0 0780 0780 0FC0 1CE0 3870 7038 E01C 4008 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 19 0 BBX 18 17 1 0 BITMAP 03F0C0 1E1F00 3C0F00 780780 780F80 F01BC0 F033C0 F063C0 F0C3C0 F183C0 F303C0 F603C0 7C0780 780780 3C0F00 3E1E00 C7F000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 18 0 BBX 18 22 0 0 BITMAP 078000 018000 00C000 006000 000000 FF0FC0 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 1E0600 0F0C00 03F800 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 18 0 BBX 18 22 0 0 BITMAP 007800 006000 00C000 018000 000000 FF0FC0 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 1E0600 0F0C00 03F800 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 18 0 BBX 18 22 0 0 BITMAP 01E000 01E000 033000 061800 000000 FF0FC0 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 1E0600 0F0C00 03F800 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 18 0 BBX 18 21 0 0 BITMAP 063000 063000 063000 000000 FF0FC0 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 1E0600 0F0C00 03F800 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 17 0 BBX 18 22 0 0 BITMAP 007800 006000 00C000 018000 000000 FF07C0 7C0300 3E0200 1F0200 1F0400 0F8800 07C800 07D000 03E000 01E000 01E000 01E000 01E000 01E000 01E000 01E000 07F800 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 0 0 BITMAP FF00 3C00 3C00 3FF0 3C78 3C3C 3C3C 3C3C 3C3C 3C3C 3C38 3C78 3C70 3FC0 3C00 3C00 FF00 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 17 0 BBX 15 18 1 0 BITMAP 0FC0 1CF0 3CF0 3CF0 3CE0 3DC0 3D80 3F80 3FC0 3FE0 3DF8 3CFC 3C7E 3C3E 3C1E 3D9E 3D9C FDF8 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 13 0 BBX 13 18 0 0 BITMAP 1E00 0600 0300 0180 0000 3F80 71C0 61E0 01E0 01E0 3FE0 79E0 F1E0 F1E0 F1E0 F9E0 7FE0 3C78 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 13 0 BBX 13 18 0 0 BITMAP 03C0 0300 0600 0C00 0000 3F80 71C0 61E0 01E0 01E0 3FE0 79E0 F1E0 F1E0 F1E0 F9E0 7FE0 3C78 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 13 0 BBX 13 18 0 0 BITMAP 0F00 0F00 1980 30C0 0000 3F80 71C0 61E0 01E0 01E0 3FE0 79E0 F1E0 F1E0 F1E0 F9E0 7FE0 3C78 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 13 0 BBX 13 18 0 0 BITMAP 1C40 3FC0 3FC0 2380 0000 3F80 71C0 61E0 01E0 01E0 3FE0 79E0 F1E0 F1E0 F1E0 F9E0 7FE0 3C78 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 0 0 BITMAP 18C0 18C0 18C0 0000 3F80 71C0 61E0 01E0 01E0 3FE0 79E0 F1E0 F1E0 F1E0 F9E0 7FE0 3C78 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 13 0 BBX 13 18 0 0 BITMAP 0600 0900 0900 0600 0000 3F80 71C0 61E0 01E0 01E0 3FE0 79E0 F1E0 F1E0 F1E0 F9E0 7FE0 3C78 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 21 0 BBX 19 13 0 0 BITMAP 3F9F00 70F3C0 60F1C0 00F1E0 00F1E0 1FFFE0 78F000 F0F000 F0F000 F0F800 F8FC20 7F3FE0 3C1FC0 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 13 0 BBX 11 18 1 -5 BITMAP 0FE0 38E0 7060 7060 F000 F000 F000 F000 F000 7800 7C20 3FE0 0FC0 0400 0F00 0700 0700 0E00 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 1 0 BITMAP 1E00 0600 0300 0180 0000 0F80 39C0 70E0 70F0 F0F0 FFF0 F000 F000 F000 7800 7C10 3FF0 0FE0 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 1 0 BITMAP 03C0 0300 0600 0C00 0000 0F80 39C0 70E0 70F0 F0F0 FFF0 F000 F000 F000 7800 7C10 3FF0 0FE0 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 1 0 BITMAP 0F00 0F00 1980 30C0 0000 0F80 39C0 70E0 70F0 F0F0 FFF0 F000 F000 F000 7800 7C10 3FF0 0FE0 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 1 0 BITMAP 18C0 18C0 18C0 0000 0F80 39C0 70E0 70F0 F0F0 FFF0 F000 F000 F000 7800 7C10 3FF0 0FE0 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 8 0 BBX 8 18 0 0 BITMAP F0 30 18 0C 00 FC 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C FF ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 8 0 BBX 8 18 0 0 BITMAP 0F 0C 18 30 00 FC 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C FF ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 8 0 BBX 8 18 0 0 BITMAP 3C 3C 66 C3 00 FC 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C FF ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 8 0 BBX 8 17 0 0 BITMAP C6 C6 C6 00 FC 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C FF ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 16 0 BBX 13 20 1 0 BITMAP 0100 0180 F200 1E00 0F80 33C0 41E0 1FF0 38F0 78F8 F078 F078 F078 F078 F078 F078 7070 78F0 38E0 0F80 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 16 0 BBX 16 18 0 0 BITMAP 0710 0FF0 0FF0 08E0 0000 FC70 7DF8 3DFC 3E3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C FFFF ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 1E00 0600 0300 0180 0000 0F80 38E0 78F0 7070 F078 F078 F078 F078 F078 7070 78F0 38E0 0F80 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 03C0 0300 0600 0C00 0000 0F80 38E0 78F0 7070 F078 F078 F078 F078 F078 7070 78F0 38E0 0F80 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 0F00 0F00 1980 30C0 0000 0F80 38E0 78F0 7070 F078 F078 F078 F078 F078 7070 78F0 38E0 0F80 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 1C40 3FC0 3FC0 2380 0000 0F80 38E0 78F0 7070 F078 F078 F078 F078 F078 7070 78F0 38E0 0F80 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 1 0 BITMAP 18C0 18C0 18C0 0000 0F80 38E0 78F0 7070 F078 F078 F078 F078 F078 7070 78F0 38E0 0F80 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 15 0 BBX 15 13 0 0 BITMAP 0380 0380 0380 0000 0000 0000 FFFE FFFE 0000 0000 0380 0380 0380 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 15 0 BBX 16 13 0 0 BITMAP 07E3 1E7C 3C3C 383C 787E 78DE 799E 7B1E 7E1E 3C1C 3C3C 3C78 C7E0 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 16 0 BBX 16 18 0 0 BITMAP 0F00 0300 0180 00C0 0000 FCFC 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C7C 3FBC 1FBE 0E3F ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 16 0 BBX 16 18 0 0 BITMAP 00F0 00C0 0180 0300 0000 FCFC 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C7C 3FBC 1FBE 0E3F ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 16 0 BBX 16 18 0 0 BITMAP 03C0 03C0 0660 0C30 0000 FCFC 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C7C 3FBC 1FBE 0E3F ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 16 0 BBX 16 17 0 0 BITMAP 0630 0630 0630 0000 FCFC 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C7C 3FBC 1FBE 0E3F ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 16 0 BBX 16 23 0 -5 BITMAP 00F0 00C0 0180 0300 0000 FE1F 7C04 3C0C 3E08 1E18 1F10 0F30 0FA0 07C0 07C0 0380 0380 0300 0100 0200 0600 0C00 3C00 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 16 0 BBX 15 21 0 -5 BITMAP FC00 3C00 3C00 3CF0 3DFC 3FFC 3E3E 3C1E 3C1E 3C1E 3C1E 3C1E 3C3C 3E3C 3FF8 3CF0 3C00 3C00 3C00 3C00 FF00 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 16 0 BBX 16 22 0 -5 BITMAP 0C60 0C60 0C60 0000 FE1F 7C04 3C0C 3E08 1E18 1F10 0F30 0FA0 07C0 07C0 0380 0380 0300 0100 0200 0600 0C00 3C00 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 16 18 0 0 BITMAP 0FFC 1C7C 3C3C 3C3C 3C3C FF3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C FFFF ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 2 1 7 BITMAP FFE0 FFE0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 12 21 1 -4 BITMAP 0F00 0F00 0F00 0F00 0F00 0F00 CF30 FFF0 CF30 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 13 22 1 0 BITMAP 1860 0CC0 0780 0780 0000 7FF8 60F8 60F8 01F0 01E0 03E0 07C0 0780 0F80 0F00 1F00 3E00 3C00 7C00 7818 F818 FFF8 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 21 13 1 0 BITMAP 0FC7C0 3C6CE0 787C70 703C78 F03C78 F03FF8 F03C00 F03C00 F03C00 703E00 783F08 3C4FF8 0F87F0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 18 21 0 0 BITMAP 063000 063000 063000 000000 FF07C0 7C0300 3E0200 1F0200 1F0400 0F8800 07C800 07D000 03E000 01E000 01E000 01E000 01E000 01E000 01E000 01E000 07F800 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 13 0 0 BITMAP FC 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C FF ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 18 0 0 BITMAP FC 3C 3C 3C 3C 3C 3D 3F 3C 7C FC BC 3C 3C 3C 3C 3C FF ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP FF00 3C00 3C00 3C00 3C00 3D00 3F00 3C00 7C00 FC00 BC00 3C00 3C00 3C0C 3C0C 3C0C FFFC ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 12 21 1 -4 BITMAP 0F00 0F00 0F00 0F00 0F00 CF30 FFF0 CF30 0F00 0F00 0F00 0F00 CF30 FFF0 CF30 0F00 0F00 0F00 0F00 0F00 0F00 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 1 0 BITMAP 0FF8 1DF8 3DF8 3C78 3C00 FFF8 3C78 3C78 3C78 3C78 3C78 3C78 3C78 3C78 3C78 3C78 3C78 FCFE ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 1 BITMAP 80 C0 60 70 38 1C 38 70 60 C0 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 25 0 BBX 23 17 1 0 BITMAP 07DFFE 1C3E06 381E06 781E00 701E00 F01E00 F01E00 F01E18 F01FF8 F01E18 F01E00 F01E00 701E00 781E00 381E06 1C3E06 07DFFE ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 24 0 BBX 22 2 1 6 BITMAP FFFFFC FFFFFC ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 4 3 14 BITMAP C3 66 3C 3C ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 4 4 6 -4 BITMAP 60 C0 D0 70 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 4 5 14 BITMAP 3F 26 4C D8 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 1 BITMAP 04 0C 18 38 70 E0 70 38 18 0C 04 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 3 4 6 13 BITMAP E0 E0 E0 E0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 4 3 14 BITMAP 81 FF 7E 3C ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 8 3 4 BITMAP 3C 7E FF FF FF FF 7E 3C ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 4 3 13 BITMAP 71 FF FF 8E ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 4 3 14 BITMAP 3C 3C 66 C3 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 7 1 11 BITMAP 3180 6300 E700 F780 F780 F780 F780 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 7 2 11 BITMAP E0 E0 E0 E0 40 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 10 18 1 0 BITMAP 6180 3300 1E00 1E00 0000 3F00 7980 F180 F180 F800 FF00 7F80 3FC0 07C0 C3C0 C3C0 E780 7E00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 4 4 5 14 BITMAP 60 90 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 -4 BITMAP F0 F0 F0 F0 70 70 60 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 12 21 2 -4 BITMAP 01F0 0330 0630 0E00 1E00 1E00 1C00 1C00 7F80 3C00 3C00 3C00 7800 7800 7800 7800 7800 F000 F000 F000 F000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 25 0 BBX 24 9 0 8 BITMAP FFCF0F 8E479E 8E479E 8E47FE 0E07EE 0E06EE 0E06EE 0E064E 1F0E0F ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 18 17 -5 0 BITMAP 0007C0 000700 000F00 001E00 003C00 007800 007000 00F000 01E000 03C000 038000 078000 0F0000 1E0000 3C0000 380000 F80000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 6 4 4 14 BITMAP F0 30 18 0C ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 27 0 BBX 29 17 0 0 BITMAP 3E00E000 6301C000 E3838000 E3870000 E38E0000 E39C0000 E3B80000 63700000 3EE00000 01CF83E0 0398C630 0738EE38 0E38EE38 1C38EE38 3838EE38 7018C630 E00F83E0 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 24 0 BBX 19 3 3 0 BITMAP E0E0E0 E0E0E0 E0E0E0 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 7 1 11 BITMAP F780 F780 F780 F780 7380 6300 C600 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 12 22 1 0 BITMAP 30C0 1980 0F00 0F00 0000 1FC0 78E0 7060 F060 F000 F800 FE00 7F80 3FC0 0FE0 03F0 01F0 00F0 C0F0 C0E0 E1C0 7F00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 8 1 -4 BITMAP F780 F780 F780 F780 7380 7380 6300 C600 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 1 0 BITMAP 30C0 1980 0F00 0F00 0000 FFF0 C1F0 C3E0 03C0 07C0 0F80 1F00 1F00 3E00 7C00 7C30 F830 FFF0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lubBI08.bdf100644 1750 1750 54027 5413747475 15130 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-DemiBold-I-Normal--8-80-75-75-P-48-ISO8859-1 SIZE 8 72 72 FONTBOUNDINGBOX 13 10 -4 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "DemiBold" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 8 POINT_SIZE 80 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 48 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 7 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 3 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 2 0 BBX 2 6 1 0 BITMAP 40 40 40 40 00 80 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 4 0 BBX 3 2 1 4 BITMAP A0 A0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 28 F8 50 F8 A0 A0 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 -1 BITMAP 70 70 40 60 E0 E0 40 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP 6C B0 D0 38 5C 98 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 18 28 7C 94 88 7C ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 2 0 BBX 2 3 1 3 BITMAP C0 40 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 1 -2 BITMAP 20 40 40 80 80 80 80 80 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 3 0 BBX 3 9 0 -2 BITMAP 40 20 20 20 20 20 40 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 4 0 BBX 3 3 1 3 BITMAP 40 E0 C0 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 20 20 F8 20 20 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 2 0 BBX 2 3 0 -2 BITMAP C0 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 5 0 BBX 5 1 0 2 BITMAP F8 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 2 0 BBX 2 1 0 0 BITMAP C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 4 0 BBX 5 8 0 -2 BITMAP 08 10 10 20 20 40 40 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 30 58 98 90 90 60 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP 60 20 20 40 40 E0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 78 48 18 30 40 F0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 70 50 60 10 90 E0 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 18 38 50 F8 10 38 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 78 40 60 10 90 E0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 38 40 F0 90 90 60 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 2 0 BITMAP F0 20 20 40 40 80 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 30 48 70 90 90 F0 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 70 58 D8 78 10 E0 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 2 0 BBX 2 4 0 0 BITMAP 40 00 00 80 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 2 0 BBX 2 6 0 -2 BITMAP 40 00 00 80 80 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 0 BITMAP 08 30 C0 20 10 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 5 0 BBX 5 2 0 1 BITMAP F8 F8 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 40 30 08 70 80 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 1 0 BITMAP F0 90 20 40 C0 80 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 38 74 DC DC EC 70 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 18 28 28 78 48 CC ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 78 48 70 50 58 F0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP 3C 44 C0 80 C0 78 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP 7C 22 62 62 44 F8 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 78 68 70 40 50 F0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 78 48 70 40 40 C0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP 3C 64 C0 9C C8 78 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP 76 24 7C 4C 48 DC ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 3 0 BBX 4 6 0 0 BITMAP 70 20 20 60 40 E0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 4 0 BBX 5 8 0 -2 BITMAP 38 10 10 30 30 20 A0 C0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 6C 38 50 70 58 DC ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 70 20 60 40 48 F8 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 7 0 BBX 8 6 0 0 BITMAP 63 26 6A 5A 54 CE ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 6 0 BBX 7 6 0 0 BITMAP 66 24 54 54 4C C8 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 38 44 C4 84 88 70 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 78 48 58 70 40 C0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 -2 BITMAP 38 44 C4 84 88 78 10 0E ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 78 48 70 50 50 D8 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 38 48 60 30 90 F0 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP FC 30 20 20 60 E0 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP EC 48 C8 88 98 70 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP CC 4C 48 50 70 20 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 1 0 BITMAP D2 94 F4 54 58 50 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 5 0 BBX 6 6 0 0 BITMAP 64 28 30 30 58 98 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP C8 48 50 60 40 E0 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 78 50 30 60 50 F0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 0 -2 BITMAP 60 40 40 40 40 80 80 C0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 4 0 BBX 2 8 2 -2 BITMAP 80 80 80 80 40 40 40 40 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 0 -2 BITMAP 60 20 20 40 40 40 40 C0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 1 BITMAP 10 30 50 48 88 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 4 0 BBX 3 1 0 -1 BITMAP E0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 2 0 BBX 2 3 1 3 BITMAP 40 80 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 0 BITMAP 38 48 90 F8 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 60 40 78 68 D0 E0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 1 0 BITMAP 70 D0 80 E0 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 18 08 70 D0 B0 F0 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 1 0 BITMAP 70 90 F0 E0 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 3 0 BBX 4 8 1 -2 BITMAP 30 50 E0 40 40 C0 80 80 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 -2 BITMAP 38 58 B8 F0 90 E0 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 5 0 BBX 6 6 1 0 BITMAP 60 40 58 68 D8 9C ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 3 0 BBX 2 6 1 0 BITMAP 40 00 C0 C0 80 C0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 3 0 BBX 4 8 0 -2 BITMAP 10 00 30 20 20 20 A0 C0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP C0 40 50 E0 A0 B0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 3 0 BBX 2 6 1 0 BITMAP C0 40 40 80 80 C0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 8 0 BBX 8 4 1 0 BITMAP D6 7A 92 97 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 5 0 BBX 6 4 1 0 BITMAP D8 68 D8 9C ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 1 0 BITMAP 70 D0 90 E0 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 -2 BITMAP F8 68 58 F0 80 80 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 -2 BITMAP 38 58 B0 F0 10 10 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 1 0 BITMAP F0 60 C0 80 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 0 0 BITMAP 70 50 A0 E0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 1 0 BITMAP 40 40 E0 C0 80 C0 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 1 0 BITMAP D8 D8 90 F8 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 0 BITMAP D8 58 70 40 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 7 0 BBX 6 4 1 0 BITMAP D4 7C 78 50 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 0 0 BITMAP D0 60 60 B0 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 -2 BITMAP 48 68 30 20 20 C0 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 0 BITMAP 78 70 68 F0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 1 -2 BITMAP 60 40 40 40 80 40 80 C0 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 2 0 BBX 2 8 1 -2 BITMAP 40 40 40 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 0 -2 BITMAP 60 20 40 20 40 40 40 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 5 0 BBX 7 2 1 1 BITMAP 62 9C ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 2 0 BBX 2 6 0 -2 BITMAP 40 00 40 80 80 80 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 10 70 E0 A0 F0 40 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 38 28 20 70 40 F0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 5 0 BBX 6 6 0 0 BITMAP 44 78 48 48 70 88 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP C8 58 70 60 E0 E0 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 2 0 BBX 2 8 1 -2 BITMAP 40 40 40 40 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 0 -2 BITMAP 38 48 20 70 78 30 90 E0 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 2 5 BITMAP A0 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 2 0 BITMAP 3C 5E 96 A2 5A 3C ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 1 2 BITMAP 60 A0 A0 E0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 1 0 BITMAP 50 60 A0 60 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 5 0 BBX 5 2 1 1 BITMAP F8 08 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 2 0 BBX 2 1 1 2 BITMAP C0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 1 2 BITMAP 60 F0 F0 60 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 2 5 BITMAP E0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 2 0 BBX 1 2 2 4 BITMAP 80 80 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 10 F8 20 00 F8 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 3 0 BBX 3 3 -3 3 BITMAP 60 60 E0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 3 0 BBX 3 3 -4 3 BITMAP 60 C0 C0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 5 0 BBX 2 1 3 5 BITMAP C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 -2 BITMAP D8 48 50 78 80 80 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 1 -2 BITMAP F0 E0 E0 60 60 60 60 E0 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 2 2 BITMAP 80 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 5 0 BBX 1 2 2 -2 BITMAP 80 80 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 -4 3 BITMAP 40 40 C0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 1 2 BITMAP 60 90 A0 C0 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 0 0 BITMAP 60 50 60 A0 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 2 0 BITMAP 42 44 C8 16 2E 46 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 2 0 BITMAP 42 44 C8 16 26 4E ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 2 0 BITMAP 62 C4 C8 16 2E 46 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 0 -2 BITMAP 10 30 20 40 90 F0 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 18 18 28 28 78 48 CC ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 0C 18 28 28 78 48 CC ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 1C 18 28 28 78 48 CC ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 1C 18 28 28 78 48 CC ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 14 18 28 28 78 48 CC ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP 08 14 18 28 28 78 48 CC ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 8 0 BBX 8 6 0 0 BITMAP 0F 1D 38 4E FA 9E ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 -2 BITMAP 3C 44 C0 80 C0 78 40 40 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 10 78 68 70 40 50 F0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 10 78 68 70 40 50 F0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 18 78 68 70 40 50 F0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 28 78 68 70 40 50 F0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 3 0 BBX 4 7 0 0 BITMAP 10 70 20 20 60 40 E0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 3 0 BBX 4 7 0 0 BITMAP 20 70 20 20 60 40 E0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 3 0 BBX 4 7 0 0 BITMAP 30 70 20 20 60 40 E0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 3 0 BBX 4 7 0 0 BITMAP 50 70 20 20 60 40 E0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP 7C 22 F2 42 44 F8 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 6 0 BBX 7 7 0 0 BITMAP 1C 66 24 54 54 4C C8 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 08 38 44 C4 84 88 70 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 10 38 44 C4 84 88 70 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 18 38 44 C4 84 88 70 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 38 38 44 C4 84 88 70 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 28 38 44 C4 84 88 70 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 48 50 20 50 90 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 7 0 BBX 8 6 0 0 BITMAP 1B 66 5E F4 4C F8 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 1 0 BITMAP 10 EC 48 C8 88 98 70 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 1 0 BITMAP 18 EC 48 C8 88 98 70 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 1 0 BITMAP 18 EC 48 C8 88 98 70 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 1 0 BITMAP 28 EC 48 C8 88 98 70 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 1 0 BITMAP 30 C8 48 50 60 40 E0 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 60 38 48 48 70 C0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 0 -2 BITMAP 38 70 50 58 68 F8 C0 80 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 10 38 48 90 F8 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 10 38 48 90 F8 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 18 38 48 90 F8 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 38 38 48 90 F8 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 28 38 48 90 F8 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 10 28 38 48 90 F8 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 7 0 BBX 7 4 0 0 BITMAP 7E 5A 9E FC ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 1 -2 BITMAP 70 D0 80 E0 40 40 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 1 0 BITMAP 10 70 90 F0 E0 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 1 0 BITMAP 20 70 90 F0 E0 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 1 0 BITMAP 30 70 90 F0 E0 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 1 0 BITMAP 50 70 90 F0 E0 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 3 0 BBX 3 5 1 0 BITMAP 60 C0 40 80 C0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 3 0 BBX 3 5 1 0 BITMAP 60 C0 40 80 C0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 3 0 BBX 3 5 1 0 BITMAP E0 C0 40 80 C0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 3 0 BBX 3 5 1 0 BITMAP A0 C0 40 80 C0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 70 30 70 90 90 E0 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 5 0 BBX 6 5 1 0 BITMAP 38 D8 68 D8 9C ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 10 70 D0 90 E0 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 20 70 D0 90 E0 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 30 70 D0 90 E0 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 0 BITMAP 38 70 D0 90 E0 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 0 BITMAP 28 70 D0 90 E0 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 0 BITMAP 20 00 F8 20 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 0 BITMAP 38 78 D0 E0 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 0 BITMAP 30 D8 D8 90 F8 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 0 BITMAP 18 D8 D8 90 F8 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 0 BITMAP 38 D8 D8 90 F8 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 0 BITMAP 28 D8 D8 90 F8 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 -2 BITMAP 18 48 68 30 20 20 C0 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 0 -2 BITMAP 60 40 78 68 58 F0 80 80 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 -2 BITMAP 28 48 68 30 20 20 C0 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 1 -2 BITMAP 38 48 E8 50 50 D8 80 80 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 1 1 2 BITMAP E0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 1 -2 BITMAP 20 20 F0 40 40 40 40 40 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 1 0 BITMAP 30 78 50 30 60 50 F0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 4 1 0 BITMAP 76 DA 9E EC ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 1 0 BITMAP 50 C8 48 50 60 40 E0 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 1 0 BITMAP C0 40 80 C0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 5 6 1 0 BITMAP 30 20 68 B0 20 60 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 70 20 F0 40 48 F8 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 1 -2 BITMAP 20 20 F0 20 40 F0 40 40 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 1 -2 BITMAP 38 40 F8 50 50 D8 80 80 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 2 4 1 0 BITMAP 40 40 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 6 1 0 BITMAP 37 49 CE 88 CA 7E ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 1 1 2 BITMAP FE ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 2 5 BITMAP E0 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 2 -2 BITMAP 80 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 3 5 BITMAP E0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 2 4 1 0 BITMAP 40 80 80 80 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 3 5 BITMAP 80 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 2 5 BITMAP E0 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 1 1 BITMAP E0 E0 E0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 2 5 BITMAP E0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 2 5 BITMAP E0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 3 1 3 BITMAP A0 A0 A0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 1 3 1 3 BITMAP 80 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 0 0 BITMAP 60 70 50 A0 E0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 4 4 BITMAP 40 A0 40 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 2 3 0 -2 BITMAP C0 40 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 2 -2 BITMAP 30 50 40 E0 40 C0 80 80 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 3 1 3 BITMAP EB 4E D2 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 0 0 BBX 6 6 -1 0 BITMAP 04 08 10 20 40 80 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 2 1 2 5 BITMAP C0 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 6 1 0 BITMAP 6C B0 D0 3B 5F 9B ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 1 1 0 BITMAP 94 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 3 1 3 BITMAP A0 A0 A0 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 30 38 48 60 30 90 F0 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 3 0 -2 BITMAP A0 A0 A0 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 30 78 70 68 F0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lubBI10.bdf100644 1750 1750 56252 5413747475 15123 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-DemiBold-I-Normal--10-100-75-75-P-59-ISO8859-1 SIZE 10 72 72 FONTBOUNDINGBOX 17 11 -6 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "DemiBold" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 10 POINT_SIZE 100 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 59 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 9 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 3 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 0 0 BITMAP 60 60 40 40 40 40 00 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 5 0 BBX 3 4 2 4 BITMAP A0 A0 A0 A0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 14 14 FC 48 48 FC A0 A0 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 -1 BITMAP 38 68 60 20 30 30 B0 E0 40 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 8 0 BBX 4 8 2 0 BITMAP 50 D0 C0 E0 50 70 B0 90 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 0 BITMAP 18 28 28 76 94 94 88 7C ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 2 4 BITMAP C0 C0 40 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 3 0 BBX 3 10 1 -2 BITMAP 20 40 40 80 80 80 80 80 80 80 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 3 0 BBX 3 10 0 -2 BITMAP 20 20 20 20 20 20 20 40 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 5 0 BBX 4 3 1 5 BITMAP 20 F0 A0 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 1 0 BITMAP 10 10 10 FC 20 20 20 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 0 -2 BITMAP C0 C0 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 6 0 BBX 6 1 1 2 BITMAP FC ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 3 0 BBX 2 1 0 0 BITMAP C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 5 0 BBX 7 10 0 -2 BITMAP 02 04 0C 08 10 10 20 60 40 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 30 48 48 88 88 90 90 60 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 0 BITMAP 70 30 30 20 20 20 60 F0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 0 BITMAP 38 44 04 0C 10 60 40 FC ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 38 48 08 70 10 08 90 F0 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 0 BITMAP 0C 1C 28 48 FC 18 18 38 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 78 40 40 60 10 18 90 E0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 2 0 BITMAP 38 48 40 F0 90 90 90 60 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 0 BITMAP FC 04 18 20 20 40 40 80 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 30 48 48 70 50 88 90 60 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 30 48 48 48 78 10 90 E0 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 3 0 BBX 3 5 0 0 BITMAP 60 00 00 00 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 3 0 BBX 3 7 0 -2 BITMAP 60 00 00 40 C0 40 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 04 18 E0 80 C0 70 08 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 6 0 BBX 6 3 1 1 BITMAP FC 00 FC ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 6 0 BBX 7 7 1 0 BITMAP 20 38 04 02 1C 70 80 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 2 0 BITMAP E0 90 90 10 60 C0 00 C0 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 9 0 BBX 6 8 2 0 BITMAP 38 44 74 DC BC FC 80 70 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 0 0 BITMAP 04 0C 1C 24 3E 22 42 C7 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 7E 32 32 3C 74 62 64 FC ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 0 BITMAP 1E 62 40 80 80 80 C0 7C ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 0 0 BITMAP 7E 33 31 21 61 62 66 FC ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 6 0 BBX 7 8 0 0 BITMAP 7E 32 24 3C 68 60 64 FC ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 6 0 BBX 7 8 0 0 BITMAP 7E 32 24 3C 68 60 60 E0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 0 BITMAP 3E 62 40 80 9E 84 CC 7C ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 8 0 BBX 9 8 0 0 BITMAP 7B80 2300 2300 3F00 6200 6200 6200 EF00 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 4 0 BBX 5 8 0 0 BITMAP 78 10 10 20 20 60 60 F0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 5 0 BBX 6 10 0 -2 BITMAP 1C 08 18 18 18 10 10 30 B0 E0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 7 0 BBX 8 8 0 0 BITMAP 7B 32 24 28 78 68 64 EE ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP 78 20 20 20 60 64 64 FC ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 9 0 BBX 10 8 0 0 BITMAP 60C0 3380 3280 3700 5F00 4D00 4900 C380 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 8 0 BBX 9 8 0 0 BITMAP 6180 3100 3100 2900 4A00 4600 4600 C200 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 2 0 BITMAP 3C 64 46 86 84 84 88 70 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 6 0 BBX 7 8 0 0 BITMAP 7C 32 32 36 7C 60 60 F0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 2 -2 BITMAP 3C 64 46 86 84 84 8C 78 18 06 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 7E 32 32 3C 68 64 64 F6 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 0 BITMAP 3C 44 40 20 18 08 88 F0 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 0 BITMAP FE 10 30 30 20 20 20 70 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 8 0 BBX 6 8 2 0 BITMAP E4 44 44 88 88 88 88 70 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 7 0 BBX 8 8 1 0 BITMAP E3 42 42 44 28 28 30 30 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 1 0 BITMAP E980 4900 5900 5B00 7B00 7E00 6C00 4800 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 7 0 BBX 8 8 0 0 BITMAP 33 12 12 1C 38 68 44 CE ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 0 BITMAP E6 44 44 28 30 20 20 F0 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 0 BITMAP 3E 24 48 10 10 20 44 FC ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 3 0 BBX 4 10 0 -2 BITMAP 30 20 60 40 40 40 40 C0 80 C0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 5 0 BBX 3 10 2 -2 BITMAP 80 80 80 40 40 40 40 20 20 20 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 3 0 BBX 4 10 0 -2 BITMAP 30 10 30 20 20 20 20 60 40 C0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 1 BITMAP 18 28 28 68 88 84 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 5 0 BBX 4 1 0 -1 BITMAP F0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 2 4 BITMAP 40 80 C0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 6 0 BBX 6 5 1 0 BITMAP 3C 4C 88 B8 FC ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 0 BITMAP 60 60 60 5C 74 44 C8 F0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 0 BITMAP 38 50 80 80 F0 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 0 BITMAP 0C 0C 0C 38 48 98 B8 F8 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 30 50 E0 90 F0 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 4 0 BBX 5 10 1 -2 BITMAP 18 28 20 70 40 40 40 40 C0 80 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 -2 BITMAP 3C 48 48 98 68 98 F0 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 60 60 60 5C 74 44 C8 CC ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 1 0 BITMAP 60 00 00 C0 40 40 40 C0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 4 0 BBX 5 10 0 -2 BITMAP 18 00 00 38 10 10 30 30 A0 C0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 0 BITMAP 60 60 60 6C 58 70 D0 CC ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 1 0 BITMAP 60 40 40 40 40 40 40 C0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 10 0 BBX 9 5 1 0 BITMAP EF80 7E80 6C80 C900 C980 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 7 0 BBX 6 5 1 0 BITMAP EC 54 64 48 CC ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 0 BITMAP 30 48 88 90 E0 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 1 -2 BITMAP 7C 74 64 48 70 80 80 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 1 -2 BITMAP 3C 4C 88 B8 E8 18 18 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 0 BITMAP D8 60 60 40 80 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP F0 50 60 90 E0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 4 0 BBX 4 8 1 0 BITMAP 20 60 60 F0 40 40 80 E0 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 7 0 BBX 6 5 1 0 BITMAP CC 4C 98 A8 FC ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 6 0 BBX 6 5 1 0 BITMAP CC 4C 78 20 20 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 8 0 BBX 8 5 1 0 BITMAP CB 5B 5A 6C 68 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 0 BITMAP 48 28 70 90 98 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 6 0 BBX 7 7 0 -2 BITMAP 66 32 36 3C 10 20 C0 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 6 0 BBX 6 5 0 0 BITMAP 7C 48 30 48 F8 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 1 -2 BITMAP 30 20 20 20 20 C0 40 80 80 C0 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 3 0 BBX 3 10 0 -2 BITMAP 20 20 40 40 40 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 0 -2 BITMAP 30 30 20 20 30 40 40 40 40 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 6 0 BBX 6 2 1 2 BITMAP 44 B8 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 3 0 BBX 3 7 0 -2 BITMAP 60 00 40 40 40 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 2 0 BITMAP 20 70 70 A0 A0 A0 F0 40 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 0 BITMAP 1C 34 20 20 70 60 40 F8 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 0 BITMAP 42 74 58 48 48 48 78 88 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 6 0 BBX 7 8 1 0 BITMAP E6 4C 38 78 20 F8 20 70 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 3 0 BBX 3 10 0 -2 BITMAP 20 20 20 20 20 80 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 6 0 BBX 6 10 1 -2 BITMAP 3C 44 40 70 48 48 38 08 88 F0 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 3 7 BITMAP A0 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 3 0 BITMAP 1C 62 9E A6 A2 BE 62 1C ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 3 BITMAP 70 90 A0 E0 B0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 0 BITMAP 28 50 A0 50 50 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 6 0 BBX 6 3 1 1 BITMAP FC 04 04 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 3 0 BBX 2 1 1 3 BITMAP C0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 4 2 BITMAP 60 90 B0 D0 90 60 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 3 7 BITMAP E0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 3 0 BBX 1 3 3 5 BITMAP 80 80 80 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 6 0 BBX 7 7 0 0 BITMAP 08 08 7E 10 10 00 FC ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 -5 4 BITMAP 70 70 60 E0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 -6 4 BITMAP 60 60 A0 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 3 7 BITMAP E0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 -2 BITMAP EC 4C 4C 48 7C C0 80 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 6 0 BBX 3 10 2 -2 BITMAP E0 E0 E0 A0 A0 A0 A0 A0 A0 A0 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 6 0 BBX 1 1 3 3 BITMAP 80 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 6 0 BBX 2 2 2 -2 BITMAP C0 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 4 0 BBX 2 4 -6 4 BITMAP 40 40 40 C0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 2 3 BITMAP 60 A0 A0 A0 C0 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 0 BITMAP 50 50 28 50 A0 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 1 0 BITMAP 43 42 44 C8 16 2E 42 C6 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 1 0 BITMAP 43 42 44 C8 1E 2E 4C DC ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 8 0 BBX 9 8 2 0 BITMAP 6180 6100 A200 E400 0B00 1700 2100 6300 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 0 -2 BITMAP 30 00 30 20 C0 90 F0 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 0C 04 0C 1C 24 3E 22 42 C7 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 07 04 0C 1C 24 3E 22 42 C7 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 0E 04 0C 1C 24 3E 22 42 C7 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 0F 04 0C 1C 24 3E 22 42 C7 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 0A 04 0C 1C 24 3E 22 42 C7 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 06 04 0C 1C 24 3E 22 42 C7 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 10 0 BBX 10 8 0 0 BITMAP 03C0 0E40 1680 2780 2480 7C00 4480 DF80 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 1 -2 BITMAP 1E 62 40 80 80 80 C0 7C 60 60 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 6 0 BBX 7 9 0 0 BITMAP 08 7E 32 24 3C 68 60 64 FC ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 6 0 BBX 7 9 0 0 BITMAP 08 7E 32 24 3C 68 60 64 FC ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 6 0 BBX 7 9 0 0 BITMAP 0C 7E 32 24 3C 68 60 64 FC ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 6 0 BBX 7 9 0 0 BITMAP 14 7E 32 24 3C 68 60 64 FC ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 4 0 BBX 5 9 0 0 BITMAP 10 78 10 10 20 20 60 60 F0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 4 0 BBX 5 9 0 0 BITMAP 10 78 10 10 20 20 60 60 F0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 4 0 BBX 5 9 0 0 BITMAP 18 78 10 10 20 20 60 60 F0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 4 0 BBX 5 9 0 0 BITMAP 28 78 10 10 20 20 60 60 F0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 0 0 BITMAP 7E 23 21 F9 61 62 46 FC ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 8 0 BBX 9 9 0 0 BITMAP 1E00 6180 3100 3100 2900 4A00 4600 4600 C200 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 2 0 BITMAP 08 3C 64 46 86 84 84 88 70 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 2 0 BITMAP 08 3C 64 46 86 84 84 88 70 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 2 0 BITMAP 0C 3C 64 46 86 84 84 88 70 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 2 0 BITMAP 3C 3C 64 46 86 84 84 88 70 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 2 0 BITMAP 14 3C 64 46 86 84 84 88 70 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 6 0 BBX 7 7 0 0 BITMAP 42 64 18 10 30 4C 84 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 1 0 BITMAP 1D 22 46 4A 52 66 44 B8 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 2 0 BITMAP 10 E4 44 44 88 88 88 88 70 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 2 0 BITMAP 18 E4 44 44 88 88 88 88 70 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 2 0 BITMAP 18 E4 44 44 88 88 88 88 70 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 2 0 BITMAP 28 E4 44 44 88 88 88 88 70 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 1 0 BITMAP 1C E6 44 44 28 30 20 20 F0 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 0 BITMAP 70 30 3C 24 64 78 40 E0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 -2 BITMAP 38 24 6C 70 78 44 54 D8 C0 C0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP 08 3C 4C 88 B8 FC ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP 08 3C 4C 88 B8 FC ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP 18 3C 4C 88 B8 FC ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP 3C 3C 4C 88 B8 FC ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP 14 3C 4C 88 B8 FC ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP 18 3C 4C 88 B8 FC ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 9 0 BBX 9 5 0 0 BITMAP 3F80 4480 9F00 9480 F700 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 1 -2 BITMAP 38 50 80 80 F0 C0 C0 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 30 30 50 E0 90 F0 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 38 30 50 E0 90 F0 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 38 30 50 E0 90 F0 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 28 30 50 E0 90 F0 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 1 0 BITMAP 20 E0 40 40 40 E0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 3 0 BBX 4 6 1 0 BITMAP 30 E0 40 40 40 E0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 3 0 BBX 4 6 1 0 BITMAP 30 E0 40 40 40 E0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 3 0 BBX 4 6 1 0 BITMAP 50 E0 40 40 40 E0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 0 BITMAP 70 70 90 30 50 90 90 E0 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 3C EC 54 64 48 CC ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 30 30 48 88 90 E0 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 38 30 48 88 90 E0 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 38 30 48 88 90 E0 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 78 30 48 88 90 E0 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 28 30 48 88 90 E0 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 6 0 BBX 6 5 1 0 BITMAP 10 00 FC 00 20 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 0 BITMAP 38 48 78 D0 E0 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 18 CC 4C 98 A8 FC ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 1C CC 4C 98 A8 FC ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 38 CC 4C 98 A8 FC ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 28 CC 4C 98 A8 FC ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 6 0 BBX 7 8 0 -2 BITMAP 0E 66 32 36 3C 10 20 C0 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 6 0 BBX 6 10 1 -2 BITMAP 60 20 20 7C 74 64 48 70 40 80 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 6 0 BBX 7 8 0 -2 BITMAP 14 66 32 36 3C 10 20 C0 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 0 -2 BITMAP 1E 26 26 74 64 6C 4C 4C C0 C0 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 1 1 2 BITMAP F0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 10 2 -2 BITMAP 30 30 20 F8 20 40 40 40 40 40 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 1 0 BITMAP 18 3E 24 48 10 10 20 44 FC ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 5 1 0 BITMAP 36 4B 8E 99 6E ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 1 0 BITMAP 28 E6 44 44 28 30 20 20 F0 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 5 1 0 BITMAP E0 40 40 40 E0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 4 8 0 0 BITMAP 70 20 60 70 E0 40 40 E0 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP 78 30 20 30 E0 60 64 FC ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 10 1 -2 BITMAP 18 10 10 10 7C 10 20 F8 20 60 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 0 -2 BITMAP 1E 20 20 7E 64 64 4C 4C C0 C0 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 5 0 0 BITMAP 40 40 20 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 8 1 0 BITMAP 3FC0 4640 4680 8780 8C80 8C80 CC80 7F80 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 1 1 2 BITMAP FF80 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 3 7 BITMAP E0 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 2 1 2 -2 BITMAP C0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 1 3 7 BITMAP F0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 5 1 0 BITMAP 20 40 80 40 40 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 1 1 4 7 BITMAP 80 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 3 7 BITMAP E0 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 3 2 2 BITMAP E0 E0 E0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 1 3 7 BITMAP F0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 3 7 BITMAP E0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 1 4 BITMAP 50 90 F0 B0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 1 4 2 4 BITMAP 80 80 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 38 F0 50 60 90 E0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 2 1 4 7 BITMAP C0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 0 -2 BITMAP C0 C0 40 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 2 -2 BITMAP 18 28 60 60 F0 40 40 C0 C0 80 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 5 1 3 BITMAP FCC0 2480 4F80 4A80 E880 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 8 8 -2 0 BITMAP 03 02 04 08 10 20 40 C0 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 2 1 3 7 BITMAP C0 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 8 3 0 BITMAP 50 D0 C0 E0 54 7A BA 94 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 1 1 0 BITMAP 99 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 1 4 BITMAP F0 50 90 A0 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 1 0 BITMAP 18 3C 44 40 20 18 08 88 F0 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 3 0 -2 BITMAP F0 50 A0 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 18 7C 48 30 48 F8 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lubBI12.bdf100644 1750 1750 61554 5413747476 15127 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-DemiBold-I-Normal--12-120-75-75-P-72-ISO8859-1 SIZE 12 72 72 FONTBOUNDINGBOX 22 14 -8 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "DemiBold" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 12 POINT_SIZE 120 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 72 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 11 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 4 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 3 0 BBX 3 9 1 0 BITMAP 60 60 60 40 40 40 00 00 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 2 5 BITMAP D0 D0 90 90 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 1A 14 7E 28 28 FC 50 90 A0 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 -1 BITMAP 3E 2A 6A 30 18 1C 14 AC F0 20 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 1 0 BITMAP 7080 D900 DA00 7400 0B80 1680 2480 6580 C700 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 9 0 BBX 10 9 1 0 BITMAP 0E00 1B00 1200 1C00 79C0 CD80 CD00 C600 7B80 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 3 0 BBX 3 4 2 5 BITMAP 60 E0 40 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 4 0 BBX 5 11 1 -2 BITMAP 08 30 60 40 C0 C0 C0 C0 C0 40 40 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 0 -2 BITMAP 20 10 10 10 10 10 30 30 20 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 2 5 BITMAP 30 F8 70 D0 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 0 BITMAP 08 10 10 10 FE 10 10 20 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 3 0 BBX 3 4 0 -2 BITMAP 60 60 C0 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 7 0 BBX 7 1 1 3 BITMAP FE ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 3 0 BBX 2 2 1 0 BITMAP C0 C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 6 0 BBX 8 11 0 -2 BITMAP 01 02 04 04 08 18 10 20 20 40 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 1C 26 66 C6 C6 C6 CC C8 70 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 8 0 BBX 5 9 2 0 BITMAP 38 18 18 10 30 30 30 30 F8 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 3C 26 66 06 0C 30 60 C0 FC ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 3C 26 04 0C 38 0C 0C 8C F8 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 06 0E 14 24 4C FE 0C 08 3C ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 3E 20 40 70 1C 0C 8C 88 F0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 1E 22 60 FC CC C4 C4 CC 78 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 2 0 BITMAP 7E 04 04 08 10 20 60 C0 C0 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 1C 26 66 34 3C CE C6 C4 78 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 1C 66 46 46 66 7E 0C 88 F0 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 1 0 BITMAP 60 60 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 0 -2 BITMAP 60 60 00 00 40 C0 40 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 7 0 BBX 8 8 1 0 BITMAP 01 06 18 E0 60 10 0C 02 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 7 0 BBX 8 3 0 2 BITMAP FF 00 FF ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 7 0 BBX 8 8 0 0 BITMAP 40 30 08 06 07 18 60 80 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 2 0 BITMAP F0 98 18 10 20 40 C0 00 C0 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 1 0 BITMAP 0F00 3080 4C40 9340 9640 9640 9B80 4000 3C00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 0 0 BITMAP 0600 0600 0E00 1200 1300 3F00 4300 4300 C380 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 3F 33 33 32 3C 26 63 66 FC ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 1F 31 61 C0 C0 C0 C0 E2 7C ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 0 0 BITMAP 3F80 31C0 30C0 30C0 30C0 30C0 6180 6300 FE00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 3F 31 30 36 3C 24 60 62 FE ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 7 0 BBX 8 9 0 0 BITMAP 3F 31 30 34 3C 24 60 60 F0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 2 0 BITMAP 1F 31 61 C0 C0 C7 C6 E6 7E ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 10 0 BBX 11 9 0 0 BITMAP 3DE0 30C0 30C0 3080 3F80 3180 6180 6180 F780 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 4 0 BBX 5 9 1 0 BITMAP 78 30 30 30 20 60 60 60 F0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 6 0 BBX 7 11 0 -2 BITMAP 1E 0C 0C 0C 08 18 18 18 18 B0 E0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 1 0 BITMAP 3980 3300 3200 3C00 3800 2C00 6600 6700 E700 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 38 30 30 30 30 20 60 62 FE ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 11 0 BBX 12 9 0 0 BITMAP 3870 3860 38E0 3940 2D40 2EC0 4CC0 40C0 E1C0 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 1 0 BITMAP 31C0 3080 3880 2880 2D00 2500 4700 4300 E300 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 1F00 3180 6180 4180 C180 C180 C300 C600 7C00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 3E 33 33 36 3C 20 60 60 F0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 10 0 BBX 10 11 1 -2 BITMAP 1F00 3180 6180 4180 C180 C180 C300 C600 7C00 0400 03C0 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 3F 33 33 36 3C 2C 66 66 E3 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 1 0 BITMAP 1E 22 62 70 38 0C 8C 8C F8 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 2 0 BITMAP FF 99 18 10 30 30 30 30 78 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 2 0 BITMAP F380 6100 6100 4200 C200 C200 C200 C400 7800 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 2 0 BITMAP E180 6100 6300 6200 6400 3400 3800 3800 3000 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 11 0 BBX 11 9 2 0 BITMAP E460 4440 4C40 4E80 5680 7700 7700 6600 4600 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 8 0 BBX 9 9 0 0 BITMAP 3980 3100 1A00 1C00 0C00 1C00 2600 4600 CF00 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 2 0 BITMAP E3 62 64 28 30 30 30 30 F0 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 1 0 BITMAP 3F 26 0E 0C 18 30 70 62 FE ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 4 0 BBX 5 11 0 -2 BITMAP 38 30 20 20 60 60 40 40 40 C0 E0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 6 0 BBX 4 11 2 -2 BITMAP 80 80 40 40 40 60 20 20 20 10 10 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 4 0 BBX 5 11 0 -2 BITMAP 38 18 10 10 10 30 30 20 20 60 E0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 1 BITMAP 08 08 14 14 24 44 42 82 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 6 0 BBX 5 1 0 -1 BITMAP F8 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 3 0 BBX 3 4 2 5 BITMAP 60 40 E0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 8 0 BBX 7 6 1 0 BITMAP 1E 66 44 CC DC EE ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 70 20 60 6E 76 66 44 CC F0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP 3C 64 C4 C0 C0 78 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 1 0 BITMAP 07 03 02 1E 66 46 CE D4 EE ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 38 6C C8 F0 C4 78 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 5 0 BBX 7 11 0 -2 BITMAP 1E 12 30 7C 30 60 60 60 60 C0 C0 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 -2 BITMAP 1E 26 66 4C DC 6C 88 F0 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 70 20 60 6E 76 66 44 CC CE ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 1 0 BITMAP 30 30 00 E0 60 60 40 C0 E0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 5 0 BBX 7 11 0 -2 BITMAP 06 06 00 1C 0C 0C 0C 18 18 90 E0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 70 20 60 66 6C 78 58 CC CE ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 1 0 BITMAP 70 30 20 60 60 60 40 C0 E0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 12 0 BBX 11 6 1 0 BITMAP EEE0 7760 6660 4640 CC40 CCE0 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 8 0 BBX 7 6 1 0 BITMAP EE 76 66 64 CC CE ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 1 0 BITMAP 3C 66 C6 C4 CC 70 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 -2 BITMAP 6E 76 66 66 4C F8 C0 C0 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 -2 BITMAP 1E 66 44 CC DC EC 0C 08 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP EC 78 70 60 C0 C0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP 3C 68 70 38 98 F0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 1 0 BITMAP 20 60 60 F0 40 40 C0 C0 E0 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 8 0 BBX 7 6 1 0 BITMAP EE 66 44 CC DC EE ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 1 0 BITMAP E6 66 64 28 30 20 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 10 0 BBX 10 6 1 0 BITMAP C4C0 6CC0 6C80 3700 3600 2600 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP 6C 2C 30 30 58 8C ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 7 0 BBX 8 8 0 -2 BITMAP 73 33 32 14 18 10 20 C0 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP 7E 4C 18 30 64 FC ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 1 -2 BITMAP 30 60 60 60 60 C0 40 40 C0 C0 C0 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 3 0 BBX 3 11 1 -2 BITMAP 20 20 20 40 40 40 40 40 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 1 -2 BITMAP 30 10 30 20 20 30 60 60 60 60 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 7 0 BBX 7 3 1 2 BITMAP 62 92 8C ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 0 -2 BITMAP 60 00 40 40 40 40 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 2 0 BITMAP 08 3C 74 50 D0 D0 D0 78 20 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 1E 12 30 30 78 30 20 40 FC ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 8 0 BBX 9 9 0 0 BITMAP 4080 3D00 1200 2200 2200 2200 2400 5E00 8200 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 2 0 BITMAP E3 66 38 78 30 F8 30 20 70 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 3 0 BBX 3 11 1 -2 BITMAP 20 20 20 40 40 00 40 40 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 1 -2 BITMAP 1E 62 20 38 5C 44 74 18 0C 8C F8 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 3 8 BITMAP F0 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 1 0 BITMAP 1E00 6180 8F40 9140 9040 9040 9E40 6180 1E00 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 4 BITMAP 38 58 D8 F8 D8 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP 24 68 58 D0 58 68 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 7 0 BBX 7 3 1 2 BITMAP FE 02 02 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 3 0 BBX 3 1 1 3 BITMAP E0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 8 0 BBX 7 6 2 3 BITMAP 78 84 BA A2 94 78 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 3 8 BITMAP F0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 3 0 BBX 3 2 3 7 BITMAP E0 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 7 0 BBX 8 8 0 0 BITMAP 08 08 08 7F 08 18 00 FE ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 -7 4 BITMAP 70 50 30 40 E0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 -7 4 BITMAP 70 50 60 90 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 7 0 BBX 3 2 4 7 BITMAP 60 80 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 -2 BITMAP 6E 66 66 6C 5C 6E C0 C0 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 8 0 BBX 5 11 2 -2 BITMAP 78 E8 E8 E8 30 50 50 50 50 50 50 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 7 0 BBX 2 1 3 3 BITMAP C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 2 -2 BITMAP C0 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 -8 4 BITMAP 60 20 40 40 E0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 4 BITMAP 38 48 C8 D8 E0 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP 58 68 2C 68 58 90 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 3 0 BITMAP 60C0 2180 4300 4600 ED80 1A80 3780 6100 C380 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 3 0 BITMAP 60C0 2180 4300 4600 EF80 1A80 3180 6200 C700 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 3 0 BITMAP 70C0 5180 6300 9600 ED80 1A80 3780 6100 C380 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 -2 BITMAP 18 00 18 30 40 C0 C8 78 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 0 0 BITMAP 0400 0200 0000 0600 0600 0E00 1200 1300 3F00 4300 4300 C380 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 0 0 BITMAP 0300 0400 0000 0600 0600 0E00 1200 1300 3F00 4300 4300 C380 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 0 0 BITMAP 0600 0900 0000 0600 0600 0E00 1200 1300 3F00 4300 4300 C380 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 0 0 BITMAP 0500 0A00 0000 0600 0600 0E00 1200 1300 3F00 4300 4300 C380 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 9 0 BBX 9 11 0 0 BITMAP 0F00 0000 0600 0600 0E00 1200 1300 3F00 4300 4300 C380 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 0 0 BITMAP 0300 0300 0000 0600 0600 0E00 1200 1300 3F00 4300 4300 C380 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 11 0 BBX 13 9 0 0 BITMAP 01F8 0388 0590 09E0 0B20 1F00 2300 4310 C7F0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 -2 BITMAP 1F 31 61 C0 C0 C0 C0 E2 7C 60 60 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 0 0 BITMAP 08 04 00 3F 31 30 36 3C 24 60 62 FE ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 0 0 BITMAP 06 08 00 3F 31 30 36 3C 24 60 62 FE ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 0 0 BITMAP 0C 12 00 3F 31 30 36 3C 24 60 62 FE ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 8 0 BBX 8 11 0 0 BITMAP 1E 00 3F 31 30 36 3C 24 60 62 FE ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 4 0 BBX 5 12 1 0 BITMAP 20 10 00 78 30 30 30 20 60 60 60 F0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 4 0 BBX 6 12 1 0 BITMAP 0C 10 00 78 30 30 30 20 60 60 60 F0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 4 0 BBX 5 12 1 0 BITMAP 30 48 00 78 30 30 30 20 60 60 60 F0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 4 0 BBX 6 11 1 0 BITMAP 3C 00 78 30 30 30 20 60 60 60 F0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 0 0 BITMAP 3F80 31C0 30C0 30C0 7CC0 30C0 6180 6300 FE00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 1 0 BITMAP 0500 0A00 0000 31C0 3080 3880 2880 2D00 2500 4700 4300 E300 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 0800 0400 0000 1F00 3180 6180 4180 C180 C180 C300 C600 7C00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 0300 0400 0000 1F00 3180 6180 4180 C180 C180 C300 C600 7C00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 0600 0900 0000 1F00 3180 6180 4180 C180 C180 C300 C600 7C00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 0500 0A00 0000 1F00 3180 6180 4180 C180 C180 C300 C600 7C00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 10 0 BBX 9 11 1 0 BITMAP 0F00 0000 1F00 3180 6180 4180 C180 C180 C300 C600 7C00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 7 0 BBX 8 8 0 0 BITMAP 41 22 34 18 18 2C 44 82 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 10 0 BBX 11 9 1 0 BITMAP 0F60 1180 31C0 62C0 64C0 7880 7180 6300 FC00 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 2 0 BITMAP 0800 0400 0000 F380 6100 6100 4200 C200 C200 C200 C400 7800 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 2 0 BITMAP 0600 0800 0000 F380 6100 6100 4200 C200 C200 C200 C400 7800 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 2 0 BITMAP 0C00 1200 0000 F380 6100 6100 4200 C200 C200 C200 C400 7800 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 9 0 BBX 9 11 2 0 BITMAP 1E00 0000 F380 6100 6100 4200 C200 C200 C200 C400 7800 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 2 0 BITMAP 0C 10 00 E3 62 64 28 30 30 30 30 F0 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 3C 30 3F 33 33 26 7C 60 F0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 1 -2 BITMAP 1C 36 34 28 68 6C 66 56 5C C0 C0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 08 04 00 1E 66 44 CC DC EE ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 06 08 00 1E 66 44 CC DC EE ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 0C 12 00 1E 66 44 CC DC EE ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 0A 14 00 1E 66 44 CC DC EE ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 0 BITMAP 1E 00 1E 66 44 CC DC EE ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 0C 0C 00 1E 66 44 CC DC EE ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 11 0 BBX 10 6 1 0 BITMAP 1FC0 66C0 44C0 CF80 DC40 E780 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 -2 BITMAP 3C 64 C4 C0 C0 78 60 60 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 10 08 00 38 6C C8 F0 C4 78 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 0C 10 00 38 6C C8 F0 C4 78 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 18 24 00 38 6C C8 F0 C4 78 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 3C 00 38 6C C8 F0 C4 78 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 4 0 BBX 3 9 1 0 BITMAP 40 20 00 E0 60 40 40 C0 E0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 4 0 BBX 5 9 1 0 BITMAP 18 20 00 E0 60 40 40 C0 E0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 4 0 BBX 5 9 1 0 BITMAP 30 48 00 E0 60 40 40 C0 E0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 4 0 BBX 5 8 1 0 BITMAP 78 00 E0 60 40 40 C0 E0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 1 0 BITMAP 7C 18 2C 3C 64 C6 C4 C8 70 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 0A 14 00 EE 76 66 64 CC CE ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 1 0 BITMAP 10 08 00 3C 66 C6 C4 CC 70 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 1 0 BITMAP 0C 10 00 3C 66 C6 C4 CC 70 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 1 0 BITMAP 18 24 00 3C 66 C6 C4 CC 70 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 1 0 BITMAP 0A 14 00 3C 66 C6 C4 CC 70 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 0 BITMAP 1E 00 3C 66 C6 C4 CC 70 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 1 0 BITMAP 18 00 FE 00 00 30 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 7 0 BBX 8 6 0 0 BITMAP 1F 26 6E F6 64 F8 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 10 08 00 EE 66 44 CC DC EE ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 06 08 00 EE 66 44 CC DC EE ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 0C 12 00 EE 66 44 CC DC EE ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 0 BITMAP 1E 00 EE 66 44 CC DC EE ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 7 0 BBX 8 11 0 -2 BITMAP 03 04 00 73 33 32 14 18 10 20 C0 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 1 -2 BITMAP 70 20 20 6E 76 66 66 4C F8 C0 C0 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 7 0 BBX 8 10 0 -2 BITMAP 0F 00 73 33 32 14 18 10 20 C0 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 11 1 -2 BITMAP 1F 33 32 7A 26 66 66 64 4E C0 C0 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 1 1 3 BITMAP F8 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 2 -2 BITMAP 18 10 30 FC 30 20 20 20 60 60 60 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 1 0 BITMAP 12 0C 00 3F 26 0E 0C 18 30 70 62 FE ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 6 1 0 BITMAP 3DC0 6640 C6C0 C780 CC40 7780 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 11 2 0 BITMAP 3C 00 E3 62 64 28 30 30 30 30 F0 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 1 0 BITMAP E0 60 40 40 C0 E0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 5 9 0 0 BITMAP 70 30 30 30 38 E0 60 60 F0 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 38 30 30 38 70 20 60 62 FE ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 1 -2 BITMAP 0C 18 18 7E 18 10 10 FC 30 30 20 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 11 1 -2 BITMAP 1F 37 30 7E 22 66 66 66 4E C0 C0 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 0 0 BITMAP 40 60 30 20 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 12 9 2 0 BITMAP 1FF0 3310 6300 C320 C3E0 C320 C200 E620 7FE0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 1 1 3 BITMAP FFE0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 4 7 BITMAP 90 60 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 2 -2 BITMAP C0 C0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 4 7 BITMAP 70 C0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 1 0 BITMAP 10 20 40 C0 60 20 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 1 4 8 BITMAP C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 4 7 BITMAP 90 60 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 4 4 2 2 BITMAP 60 F0 F0 60 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 3 7 BITMAP 50 A0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 3 7 BITMAP 60 90 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 4 2 5 BITMAP 58 D0 D8 D0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 2 5 BITMAP C0 C0 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 1 0 BITMAP 24 18 00 3C 68 70 38 98 F0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 5 7 BITMAP C0 C0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 4 0 -2 BITMAP 60 60 C0 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 3 -2 BITMAP 1C 34 20 60 F0 60 60 40 C0 C0 C0 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 12 5 2 4 BITMAP FB30 2360 2360 63E0 6660 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 10 9 -3 0 BITMAP 00C0 0180 0300 0600 0C00 1800 3000 6000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 4 7 BITMAP 80 40 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 11 9 2 0 BITMAP 6300 F400 F400 6800 16C0 3AA0 2BA0 4BE0 8CC0 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 1 1 0 BITMAP CCC0 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 4 2 5 BITMAP D8 48 58 D0 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 12 1 0 BITMAP 12 0C 00 1E 22 62 70 38 0C 8C 8C F8 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 4 0 -2 BITMAP 58 D8 58 D0 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 12 0C 00 7E 4C 18 30 64 FC ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lubBI14.bdf100644 1750 1750 65151 5413747476 15126 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-DemiBold-I-Normal--14-140-75-75-P-84-ISO8859-1 SIZE 14 72 72 FONTBOUNDINGBOX 24 16 -8 -3 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "DemiBold" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 14 POINT_SIZE 140 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 84 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 13 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 4 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 1 0 BITMAP 30 30 20 60 60 60 40 00 C0 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 6 0 BBX 5 4 2 6 BITMAP D8 D8 D8 90 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 1 0 BITMAP 0480 0900 0900 7F80 1200 2400 FF00 4800 4800 9000 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 2 -2 BITMAP 04 1F 39 29 38 18 0C 16 96 9C F8 20 20 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 7840 4880 C900 DA00 7400 0BC0 1A40 3640 66C0 C380 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 1 0 BITMAP 0F00 1900 1900 1E00 2DE0 CCC0 C680 C700 E300 7FC0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 2 6 BITMAP 60 E0 40 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 5 0 BBX 5 13 1 -3 BITMAP 08 10 20 60 60 C0 C0 C0 C0 C0 C0 40 20 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 5 0 BBX 5 13 0 -3 BITMAP 10 10 18 18 18 18 18 18 10 30 20 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 2 5 BITMAP 30 A8 D0 F0 90 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 1 0 BITMAP 08 08 08 08 FF 10 10 10 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 0 -3 BITMAP 60 60 E0 40 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 9 0 BBX 8 1 1 3 BITMAP FF ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 4 0 BBX 3 2 1 0 BITMAP E0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 7 0 BBX 10 13 0 -3 BITMAP 00C0 0080 0100 0300 0200 0400 0C00 0800 1000 3000 2000 4000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 1E 33 63 63 C3 C3 C3 C6 CC 78 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP 3C 0C 18 18 18 18 18 30 30 FC ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 1E 27 23 03 0E 18 20 40 FE FC ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 3E 23 23 06 38 06 06 86 8E F8 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 03 07 0A 16 26 46 FF 0C 0C 1E ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 2 0 BITMAP 3F 20 20 78 0C 06 06 86 8C F8 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 2 0 BITMAP 0F 31 61 60 FE E6 C3 C6 46 38 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 2 0 BITMAP 7F 7F 02 04 08 10 30 60 C0 C0 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 1E 33 33 32 1C 6E C3 C3 E6 7C ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 1E 33 63 63 67 3B 07 86 8C F8 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 4 0 BBX 4 7 1 0 BITMAP 30 70 00 00 00 E0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 0 -3 BITMAP 30 30 00 00 00 60 60 E0 40 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 1 0 BITMAP 0080 0300 1C00 E000 6000 1800 0600 0300 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 9 0 BBX 9 4 1 2 BITMAP FF80 0000 0000 FF80 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 0 0 BITMAP 6000 3000 0C00 0300 0380 1C00 6000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 2 0 BITMAP 78 CC 8C 08 10 20 60 00 C0 C0 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 1 0 BITMAP 0F80 3060 4620 49A0 9120 9320 9720 9DC0 4200 3C00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 0 0 BITMAP 0100 0300 0580 0580 0980 1180 1FC0 20C0 40C0 E1E0 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 1 0 BITMAP 3F80 1980 1180 3300 3E00 3200 3300 2300 6700 FE00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 1 0 BITMAP 0FC0 38C0 60C0 6000 E000 C000 C000 E000 6100 3E00 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 1 0 BITMAP 3F80 18C0 1860 3060 3060 3060 30C0 30C0 6380 FE00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 1 0 BITMAP 3F80 1880 1800 3200 3E00 3200 3000 6000 6100 FE00 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 8 0 BBX 9 10 1 0 BITMAP 3F80 1880 1000 3200 3E00 3200 3000 2000 6000 F000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 0FC0 38C0 7040 6000 E000 C7C0 C180 C380 6300 3F00 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 12 0 BBX 13 10 0 0 BITMAP 3EF8 1870 1860 1860 3FE0 3060 30C0 30C0 70C0 FBE0 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 5 0 BBX 6 10 1 0 BITMAP 3C 18 38 30 30 30 30 60 60 F0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 7 0 BBX 9 13 0 -3 BITMAP 0F80 0700 0600 0600 0600 0600 0E00 0C00 0C00 0C00 DC00 9800 F000 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 10 0 BBX 11 10 0 0 BITMAP 3CE0 18C0 1900 3A00 3C00 3E00 3700 3300 6180 F3C0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 3C 18 18 30 30 30 30 31 61 FF ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 13 0 BBX 14 10 0 0 BITMAP 381C 1838 1C70 2CB0 2CB0 2F30 2630 2660 4060 E0F0 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 11 0 BBX 12 10 1 0 BITMAP 3870 1820 1C60 2C40 2640 2640 2340 2380 4180 E080 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 2 0 BITMAP 0F80 38C0 70C0 60E0 E0E0 C0C0 C0C0 C180 6300 3C00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 1 0 BITMAP 3F00 1980 1180 3180 3300 3E00 3000 6000 6000 F000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 2 -3 BITMAP 0F80 38C0 70C0 60E0 E0E0 C0C0 C0C0 C1C0 6380 3F00 0400 0300 00F0 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 0 BITMAP 3FC0 18C0 18C0 1980 3F00 3600 3300 3300 7180 F1C0 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 0 BITMAP 1F 31 71 30 38 1E 06 86 8E F8 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 2 0 BITMAP FFC0 8C40 0C00 1C00 1800 1800 1800 1800 3800 7C00 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 2 0 BITMAP F9C0 6080 6080 6080 E100 C100 C100 C100 E200 7C00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 10 0 BBX 11 10 2 0 BITMAP F0E0 6040 6080 7180 3100 3200 3600 3C00 1800 1800 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 13 0 BBX 13 10 2 0 BITMAP F238 6310 6720 6720 6B40 6B40 7380 7380 6300 6300 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 9 0 BBX 11 10 0 0 BITMAP 3CE0 1840 0C80 0D00 0E00 0E00 1700 2300 4380 E780 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 9 0 BBX 10 10 2 0 BITMAP F1C0 6080 7100 3200 3C00 1800 1800 3000 3000 7800 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 1 0 BITMAP 3FC0 2180 0300 0700 0E00 1C00 3800 3000 6180 FF00 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 5 0 BBX 6 13 0 -3 BITMAP 1C 30 30 30 30 20 60 60 60 40 40 C0 E0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 7 0 BBX 4 13 2 -3 BITMAP 80 80 40 40 40 40 60 20 20 20 20 10 10 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 5 0 BBX 6 13 0 -3 BITMAP 1C 0C 08 18 18 18 18 10 30 30 30 30 E0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 1 2 BITMAP 04 04 0C 12 32 22 43 81 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 0 -2 BITMAP FC ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 2 6 BITMAP 60 40 E0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 1 0 BITMAP 1F 23 62 C6 CE D6 E7 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 70 30 30 67 7B 73 63 46 C4 F8 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 1E 22 62 C0 C0 C4 78 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 1 0 BITMAP 0380 0180 0300 1F00 2300 6300 C700 CE00 DE00 F700 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 1C 66 4C F8 C0 C6 7C ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 6 0 BBX 8 14 1 -3 BITMAP 0F 19 19 30 7C 30 30 70 60 60 60 60 C0 C0 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 -3 BITMAP 0F80 3180 2300 6300 E700 6B00 7700 8600 C600 F800 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 70 30 30 67 6B 73 67 66 C6 C7 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 1 0 BITMAP 30 30 00 E0 60 60 60 E0 C0 E0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 5 0 BBX 8 13 0 -3 BITMAP 03 03 00 0E 06 06 0E 0C 0C 0C 98 98 F0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 70 30 30 73 66 6C 78 6C CE C7 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 1 0 BITMAP 70 30 70 60 60 60 60 E0 C0 E0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 14 0 BBX 12 7 1 0 BITMAP E670 6FF0 77B0 6730 4660 C660 CE70 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 1 0 BITMAP F7 6B 73 67 66 C6 C7 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 1 0 BITMAP 1E 23 63 C3 C6 CC 78 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 1 -3 BITMAP 7780 3D80 3980 7180 6300 6200 7C00 6000 C000 C000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 -3 BITMAP 1F 23 63 C6 CE DE E6 0E 0C 0C ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP E6 6C 70 60 60 C0 C0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 3E 64 70 38 9C 8C F8 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 5 0 BBX 5 9 1 0 BITMAP 70 60 F8 60 60 60 C0 C0 70 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 1 0 BITMAP E7 63 66 E6 CE D6 EF ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 1 0 BITMAP E3 63 62 34 38 30 20 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 12 0 BBX 11 7 1 0 BITMAP E460 6660 6640 2E80 3380 3300 2200 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 66 36 3C 18 38 CC CE ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 8 0 BBX 10 10 0 -3 BITMAP 79C0 38C0 1880 1900 1A00 0C00 0C00 0800 1000 E000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 1 0 BITMAP 3F 46 0C 18 30 62 FE ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 5 0 BBX 5 13 1 -3 BITMAP 38 30 30 30 30 60 C0 40 60 60 C0 C0 60 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 4 0 BBX 4 13 1 -3 BITMAP 10 10 20 20 20 20 60 40 40 40 40 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 5 0 BBX 5 13 0 -3 BITMAP 30 18 18 30 30 10 18 30 60 60 60 60 E0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 9 0 BBX 8 3 1 2 BITMAP 71 99 8E ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 0 -3 BITMAP 30 30 00 20 20 40 40 40 40 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 2 0 BITMAP 04 1E 3A 6A C8 C8 D0 D0 7C 20 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 2 0 BITMAP 0F 19 18 30 7C 30 30 60 FC FC ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 9 0 BBX 10 10 1 0 BITMAP 6040 2080 1F00 1100 2100 2100 3300 3E00 4100 8080 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 9 0 BBX 10 10 2 0 BITMAP F1C0 6180 3200 1C00 7E00 1800 7E00 3000 3000 7800 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 4 0 BBX 4 13 1 -3 BITMAP 10 10 20 20 20 20 00 40 40 40 40 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 -3 BITMAP 1F 31 31 30 3C 6E 62 72 3C 0E 86 8C F8 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 8 0 BBX 5 1 4 9 BITMAP D8 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 12 0 BBX 12 10 1 0 BITMAP 1F00 20C0 4FA0 98A0 9020 9030 9020 4F20 20C0 1F00 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 2 4 BITMAP 3C 6C CC D8 E8 DC ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 12 34 6C D8 48 6C 24 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 9 0 BBX 8 4 1 2 BITMAP FF 01 01 02 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 4 0 BBX 3 1 1 4 BITMAP E0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 2 3 BITMAP 38 44 BA AA BA 44 38 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 8 0 BBX 4 1 4 9 BITMAP F0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 4 0 BBX 2 2 3 8 BITMAP C0 C0 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 0 0 BITMAP 0400 0400 0400 7F80 0800 0800 0000 FF00 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 -8 4 BITMAP 78 48 18 30 40 F0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 -8 4 BITMAP 70 58 70 10 90 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 8 0 BBX 4 2 5 8 BITMAP 70 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 -3 BITMAP 7380 3180 3300 6300 6700 6B00 7780 4000 C000 C000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 2 -3 BITMAP 7C F4 E4 E8 68 28 28 28 48 48 48 50 50 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 9 0 BBX 2 2 4 3 BITMAP C0 C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 8 0 BBX 3 3 2 -3 BITMAP 60 20 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 -8 4 BITMAP 60 20 20 40 40 E0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 2 4 BITMAP 3C 6C CC CC C8 70 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 48 6C 24 36 6C 58 90 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 2 0 BITMAP 6060 20C0 2180 4300 46C0 EDC0 1A80 37C0 6080 C1C0 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 2 0 BITMAP 6060 20C0 2180 4300 47C0 EE40 18C0 3180 6200 C780 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 11 0 BBX 12 10 3 0 BITMAP 7030 5860 70C0 1180 9360 E6E0 0D40 1BE0 3040 60E0 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 0 -3 BITMAP 0C 0C 00 18 10 20 40 C4 C4 78 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 0300 0080 0000 0100 0300 0580 0580 0980 1180 1FC0 20C0 40C0 E1E0 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 01C0 0300 0000 0100 0300 0580 0580 0980 1180 1FC0 20C0 40C0 E1E0 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 0180 0640 0000 0100 0300 0580 0580 0980 1180 1FC0 20C0 40C0 E1E0 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 0340 0580 0000 0100 0300 0580 0580 0980 1180 1FC0 20C0 40C0 E1E0 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 11 0 BBX 11 12 0 0 BITMAP 06C0 0000 0100 0300 0580 0580 0980 1180 1FC0 20C0 40C0 E1E0 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 0180 0180 0000 0100 0300 0580 0580 0980 1180 1FC0 20C0 40C0 E1E0 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 13 0 BBX 15 10 0 0 BITMAP 00FE 01C2 02C0 04C8 04F8 0980 1F80 2180 418C E7F8 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 1 -3 BITMAP 0FC0 38C0 60C0 6000 E000 C000 C000 E000 6100 3E00 1000 0800 3800 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 9 0 BBX 9 13 1 0 BITMAP 0C00 0200 0000 3F80 1880 1800 3200 3E00 3200 3000 6000 6100 FE00 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 9 0 BBX 9 13 1 0 BITMAP 0380 0600 0000 3F80 1880 1800 3200 3E00 3200 3000 6000 6100 FE00 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 9 0 BBX 9 13 1 0 BITMAP 0600 1900 0000 3F80 1880 1800 3200 3E00 3200 3000 6000 6100 FE00 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 1 0 BITMAP 0D80 0000 3F80 1880 1800 3200 3E00 3200 3000 6000 6100 FE00 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 5 0 BBX 6 13 1 0 BITMAP 30 08 00 3C 18 38 30 30 30 30 60 60 F0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 5 0 BBX 7 13 1 0 BITMAP 0E 18 00 3C 18 38 30 30 30 30 60 60 F0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 5 0 BBX 7 13 1 0 BITMAP 0C 32 00 3C 18 38 30 30 30 30 60 60 F0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 5 0 BBX 7 12 1 0 BITMAP 36 00 3C 18 38 30 30 30 30 60 60 F0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 1 0 BITMAP 3F80 18C0 3860 3060 7C60 3060 30C0 70C0 6380 FE00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 11 0 BBX 12 13 1 0 BITMAP 0340 0580 0000 3870 1820 1C60 2C40 2640 2640 2340 2380 4180 E080 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 2 0 BITMAP 0600 0100 0000 0F80 38C0 70C0 60E0 E0E0 C0C0 C0C0 C180 6300 3C00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 2 0 BITMAP 0380 0600 0000 0F80 38C0 70C0 60E0 E0E0 C0C0 C0C0 C180 6300 3C00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 2 0 BITMAP 0300 0C80 0000 0F80 38C0 70C0 60E0 E0E0 C0C0 C0C0 C180 6300 3C00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 2 0 BITMAP 0680 0B00 0000 0F80 38C0 70C0 60E0 E0E0 C0C0 C0C0 C180 6300 3C00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 2 0 BITMAP 0D80 0000 0F80 38C0 70C0 60E0 E0E0 C0C0 C0C0 C180 6300 3C00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 1 0 BITMAP 6080 2100 1200 1C00 1C00 2400 4200 8300 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 12 0 BBX 13 10 1 0 BITMAP 07D8 1860 3060 31E0 6370 6460 6860 70C0 7180 DE00 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 2 0 BITMAP 0C00 0200 0000 F9C0 6080 6080 6080 E100 C100 C100 C100 E200 7C00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 2 0 BITMAP 0700 0C00 0000 F9C0 6080 6080 6080 E100 C100 C100 C100 E200 7C00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 2 0 BITMAP 0600 1900 0000 F9C0 6080 6080 6080 E100 C100 C100 C100 E200 7C00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 2 0 BITMAP 1B00 0000 F9C0 6080 6080 6080 E100 C100 C100 C100 E200 7C00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 9 0 BBX 10 13 2 0 BITMAP 0700 0C00 0000 F1C0 6080 7100 3200 3C00 1800 1800 3000 3000 7800 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 1 0 BITMAP 3C00 1800 1F00 3180 3180 3180 3300 3E00 6000 F000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 9 0 BBX 8 14 1 -3 BITMAP 1E 13 32 34 34 3C 66 67 63 6B 7E C0 C0 C0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 0C 02 00 1F 23 62 C6 CE D6 E7 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 07 0C 00 1F 23 62 C6 CE D6 E7 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 06 19 00 1F 23 62 C6 CE D6 E7 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 0D 16 00 1F 23 62 C6 CE D6 E7 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 1B 00 1F 23 62 C6 CE D6 E7 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 06 06 00 1F 23 62 C6 CE D6 E7 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 13 0 BBX 12 7 1 0 BITMAP 1FF0 2330 6330 C7C0 CE00 D310 E3E0 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 1 -3 BITMAP 1E 22 62 C0 C0 C4 78 20 10 70 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 18 04 00 1C 66 4C F8 C0 C6 7C ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 0E 18 00 1C 66 4C F8 C0 C6 7C ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 0C 32 00 1C 66 4C F8 C0 C6 7C ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 36 00 1C 66 4C F8 C0 C6 7C ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 4 0 BBX 5 10 1 0 BITMAP 30 08 00 F0 70 60 60 60 E0 F0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 4 0 BBX 6 10 1 0 BITMAP 1C 30 00 F0 70 60 60 60 E0 F0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 4 0 BBX 6 10 1 0 BITMAP 18 64 00 F0 70 60 60 60 E0 F0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 4 0 BBX 6 9 1 0 BITMAP 6C 00 F0 70 60 60 60 E0 F0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 02 3C 0E 16 1F 27 63 C2 C6 E4 78 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 0D 16 00 F7 6B 73 67 66 C6 C7 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 0 BITMAP 18 04 00 1E 23 63 C3 C6 CC 78 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 0 BITMAP 07 0C 00 1E 23 63 C3 C6 CC 78 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 0 BITMAP 06 19 00 1E 23 63 C3 C6 CC 78 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 0 BITMAP 0D 16 00 1E 23 63 C3 C6 CC 78 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 1 0 BITMAP 1B 00 1E 23 63 C3 C6 CC 78 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 1 0 BITMAP 08 00 00 FF 00 00 10 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 8 0 BBX 9 7 1 0 BITMAP 0E80 3300 6700 6B00 7300 6600 F800 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 0C 02 00 E7 63 66 E6 CE D6 EF ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 07 0C 00 E7 63 66 E6 CE D6 EF ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 06 19 00 E7 63 66 E6 CE D6 EF ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 1B 00 E7 63 66 E6 CE D6 EF ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 8 0 BBX 10 13 0 -3 BITMAP 0380 0600 0000 79C0 38C0 1880 1900 1A00 0C00 0C00 0800 1000 E000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 9 0 BBX 9 13 1 -3 BITMAP 7800 3000 3000 3780 3D80 7980 7180 6300 6200 7C00 E000 C000 C000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 8 0 BBX 10 12 0 -3 BITMAP 0D80 0000 79C0 38C0 1880 1900 1A00 0C00 0C00 0800 1000 E000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 14 1 -3 BITMAP 0F80 1980 3180 3300 7F00 3300 2300 6300 6600 6600 6700 4000 C000 C000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 1 4 BITMAP FC ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 2 -3 BITMAP 18 18 18 18 FE 10 30 30 30 30 60 60 60 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 1 0 BITMAP 0980 0600 0000 3FC0 2180 0300 0700 0E00 1C00 3800 3000 6180 FF00 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 12 7 1 0 BITMAP 1EF0 6330 6330 C3C0 C600 C710 7BE0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 10 12 2 0 BITMAP 1B00 0000 F1C0 6080 7100 3200 3C00 1800 1800 3000 3000 7800 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 7 1 0 BITMAP F0 70 60 60 60 E0 F0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 5 10 1 0 BITMAP 70 30 30 30 38 E0 60 60 60 F0 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 3C 18 18 30 7C B0 30 31 61 FF ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 -3 BITMAP 0C 0C 0C 0C 7F 18 18 18 FE 10 30 30 30 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 14 1 -3 BITMAP 0E00 1380 3780 3000 7F00 3300 2300 6300 6300 6600 6700 4000 C000 C000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 7 1 0 BITMAP 40 60 20 30 60 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 15 10 1 0 BITMAP 0FFE 38C2 60C0 60CC E1F8 C188 C180 C180 638C 3FF8 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 13 1 1 3 BITMAP FFF8 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 2 4 8 BITMAP 98 60 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 3 2 2 -3 BITMAP 40 E0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 2 5 8 BITMAP 78 A0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 7 1 0 BITMAP 10 20 60 C0 40 60 20 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 2 2 5 8 BITMAP C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 2 4 8 BITMAP 88 70 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 5 3 1 BITMAP 70 F8 F8 F8 70 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 2 4 8 BITMAP 68 B0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 2 4 8 BITMAP 30 C8 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 4 2 6 BITMAP 6C 48 DC D8 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 2 6 BITMAP C0 C0 C0 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 8 10 1 0 BITMAP 13 0C 00 3E 64 70 38 9C 8C F8 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 2 2 5 9 BITMAP C0 C0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 0 -3 BITMAP 60 60 E0 40 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 3 -3 BITMAP 0E 12 32 30 20 F8 60 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 14 5 2 5 BITMAP FD9C B5D8 21F8 2150 7318 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 11 10 -3 0 BITMAP 0060 00C0 0180 0300 0600 0C00 1800 3000 6000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 3 2 4 8 BITMAP C0 20 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 15 10 1 0 BITMAP 7840 4880 C900 DA00 7400 0BDC 1A52 3672 66F6 C39C ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 11 1 2 0 BITMAP C460 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 4 2 6 BITMAP EC 6C 48 D8 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 13 1 0 BITMAP 13 0C 00 1F 31 71 30 38 1E 06 86 8E F8 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 5 0 -3 BITMAP 6C 6C EC 48 D8 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 0 BITMAP 13 0C 00 3F 46 0C 18 30 62 FE ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lubBI18.bdf100644 1750 1750 75501 5413747476 15132 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-DemiBold-I-Normal--18-180-75-75-P-107-ISO8859-1 SIZE 18 72 72 FONTBOUNDINGBOX 34 21 -11 -4 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "DemiBold" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 18 POINT_SIZE 180 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 107 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 16 FONT_DESCENT 4 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 6 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 5 0 BBX 5 13 1 0 BITMAP 38 38 38 30 30 30 20 60 60 00 00 E0 E0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 8 0 BBX 7 5 3 8 BITMAP EE CC CC 4C 44 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 2 0 BITMAP 0220 0240 0440 0480 7FE0 0900 1100 1200 FFC0 2400 4400 4800 C800 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 2 -1 BITMAP 0200 0FC0 1AC0 32C0 3400 3C00 1C00 0E00 0F00 0B80 0B80 CB00 CF00 FC00 1000 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 2 0 BITMAP 3830 6C60 CC40 CC80 CD80 7300 06E0 0DB0 0B30 1330 3330 6360 C1C0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 2 0 BITMAP 0780 0CC0 0CC0 0CC0 0D80 0E00 3678 6630 E720 E340 E380 61C0 3EE0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 3 8 BITMAP 70 70 20 60 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 6 0 BBX 7 16 2 -3 BITMAP 06 0C 18 30 30 60 60 E0 E0 C0 C0 C0 C0 60 20 20 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 6 0 BBX 7 16 0 -3 BITMAP 10 08 0C 0C 0C 0E 0C 0C 0C 0C 18 18 30 20 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 3 6 BITMAP 18 5A D6 6C 38 EC 48 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 11 0 BBX 11 11 1 0 BITMAP 0200 0200 0600 0600 0400 FFE0 0400 0C00 0C00 0800 0800 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 -3 BITMAP 70 70 70 20 60 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 11 0 BBX 11 1 1 5 BITMAP FFE0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 1 0 BITMAP E0 E0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 9 0 BBX 12 16 0 -3 BITMAP 0030 0020 0040 00C0 0080 0100 0300 0200 0400 0C00 0800 1000 3000 2000 4000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 2 0 BITMAP 0F80 19C0 30C0 70C0 60E0 E0C0 E0C0 E1C0 E1C0 E180 E300 6700 3C00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 11 0 BBX 7 13 3 0 BITMAP 3E 0E 0E 0C 0C 1C 1C 1C 18 18 18 38 FE ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 1 0 BITMAP 0F80 11E0 30E0 00E0 00E0 01C0 0300 0C00 1000 2000 6000 FF80 FF80 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 2 0 BITMAP 1F80 11C0 31C0 01C0 0180 0300 3F00 0380 0380 0380 C380 C700 FC00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 01C0 03C0 0780 0D80 1980 3180 6380 C300 FFC0 0300 0300 0700 0F80 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 2 0 BITMAP 1FE0 1FC0 2000 2000 2000 3C00 0700 0380 0380 0380 C300 C700 FC00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 2 0 BITMAP 07C0 1C60 3840 7000 7000 EF00 F380 E1C0 E1C0 E180 E180 6300 3E00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 3 0 BITMAP 7FC0 7FC0 0080 0100 0200 0600 0C00 1800 3000 7000 6000 E000 E000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 2 0 BITMAP 0F80 18C0 38E0 38C0 38C0 1F00 1F80 63C0 E1C0 E1C0 E180 F100 3E00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 1 0 BITMAP 0F00 19C0 30C0 70E0 60E0 70E0 71C0 3FC0 01C0 0180 C300 C600 FC00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 5 0 BBX 5 9 1 0 BITMAP 38 38 38 00 00 00 E0 E0 E0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 5 0 BBX 5 12 0 -3 BITMAP 38 38 38 00 00 00 70 60 60 60 60 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 11 0 BBX 11 11 2 0 BITMAP 0020 00E0 0380 0E00 3800 E000 3000 1C00 0700 0180 0080 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 11 0 BBX 11 4 1 3 BITMAP 7FE0 0000 0000 FFC0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 11 0 BBX 11 11 1 0 BITMAP 2000 3000 1C00 0700 0180 00E0 0380 0E00 3800 E000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 2 0 BITMAP 7E 47 C7 07 06 0C 18 30 70 00 00 E0 E0 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 16 0 BBX 13 13 2 0 BITMAP 07C0 1830 2018 4708 4CC8 8888 9988 9188 9A90 9DE0 4000 2080 1F00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 14 0 BBX 14 13 0 0 BITMAP 00C0 00E0 01E0 01E0 0260 0460 0470 0870 1FF0 1030 2038 6038 F07C ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 1 0 BITMAP 3FE0 0C70 0C70 1C70 1C60 1CC0 1F80 18E0 3860 3860 38E0 31C0 FF80 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 2 0 BITMAP 03F8 0C18 1818 3010 7000 6000 E000 E000 E000 E000 7000 7860 1F80 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 15 0 BBX 15 13 0 0 BITMAP 3FF8 0E1C 0C0E 1C0E 1C0E 1C0E 1C0E 180E 381C 381C 3838 7870 FFC0 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 11 0 BBX 12 13 1 0 BITMAP 3FF0 0C30 1C00 1C00 1C00 1C40 1F80 3880 3800 3800 3840 70C0 FFC0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 11 0 BBX 12 13 1 0 BITMAP 3FF0 0C30 1C30 1C00 1C00 1C40 1F80 3880 3800 3800 3800 7000 FC00 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 2 0 BITMAP 03F8 0E18 1818 3000 7000 6000 E000 E1F8 E070 E0E0 60E0 70E0 1F80 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 15 0 BBX 16 13 1 0 BITMAP 3F3F 0E0E 1C1C 1C1C 1C1C 1C1C 1FF8 3838 3838 3838 3838 7070 FCFC ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 7 0 BBX 8 13 1 0 BITMAP 3F 0E 1C 1C 1C 1C 18 38 38 38 38 70 FC ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 9 0 BBX 11 16 0 -3 BITMAP 07E0 03C0 0380 0380 0380 0380 0300 0700 0700 0700 0700 0600 0E00 CE00 CC00 F000 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 13 0 BBX 14 13 1 0 BITMAP 3F3C 0E10 0C20 1C40 1D80 1A00 1F00 1B80 3BC0 39C0 30E0 70F0 F9F8 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 1F00 0E00 0C00 1C00 1C00 1C00 1C00 1800 3800 3800 3820 3860 FFC0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 17 0 BBX 18 13 1 0 BITMAP 3C03C0 0E0780 0E0700 1E0F00 161700 131600 132600 134600 334E00 218E00 210C00 600C00 F03F00 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 14 0 BBX 16 13 0 0 BITMAP 3C0F 0E06 0E04 1F04 1B0C 1388 11C8 11C8 30E8 20F8 2070 6030 F030 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 15 0 BBX 14 13 2 0 BITMAP 03E0 0C30 1818 301C 701C 601C E018 E038 E038 E070 E060 71C0 1F00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 11 0 BBX 12 13 1 0 BITMAP 3FE0 0C70 1C70 1C70 1C70 1860 18C0 3F80 3800 3800 3000 7000 FC00 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 15 0 BBX 15 16 2 -3 BITMAP 03E0 0C30 1818 3018 701C 601C E018 E038 E038 E070 E070 71E0 1F80 0100 00C0 003E ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 1 0 BITMAP 3FE0 0C70 1C70 1C70 1C60 18E0 1F80 3B80 3980 39C0 30C0 70E0 F8F0 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 2 0 BITMAP 0FC0 18C0 38C0 3000 3800 3C00 1F00 0700 0380 0380 C380 C700 FC00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 2 0 BITMAP FFF8 C718 8718 0600 0E00 0E00 0E00 0E00 0C00 1C00 1C00 1C00 7E00 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 3 0 BITMAP FC78 7030 7020 7020 7020 6020 E020 E040 E040 E040 E080 7180 3E00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 13 0 BBX 14 13 2 0 BITMAP F83C 7018 7010 3020 3820 3840 3880 1880 1D00 1F00 1E00 1C00 0C00 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 17 0 BBX 17 13 2 0 BITMAP F8C380 70C100 71C200 71C200 72C400 72C400 74C800 74D800 78D000 38F000 30E000 30C000 20C000 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 12 0 BBX 14 13 0 0 BITMAP 1F1C 0E18 0E30 0720 0740 0380 0380 0780 0DC0 19C0 30E0 60E0 E1F0 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 3 0 BITMAP F870 7060 7040 3880 3900 1A00 1E00 1C00 1C00 1C00 1800 3800 7E00 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 1 0 BITMAP 1FF0 10E0 11E0 01C0 0380 0700 0F00 0E00 1C00 3800 7040 70C0 FFC0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 6 0 BBX 7 16 1 -3 BITMAP 1E 18 18 38 30 30 30 30 70 60 60 60 60 E0 C0 F0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 9 0 BBX 5 16 3 -3 BITMAP 80 80 40 40 40 40 20 20 20 20 10 10 10 10 08 08 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 6 0 BBX 7 16 0 -3 BITMAP 1E 06 0E 0C 0C 0C 0C 1C 18 18 18 18 38 30 30 F0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 11 0 BBX 10 11 1 2 BITMAP 0200 0200 0700 0700 0D00 1980 1180 3080 2080 40C0 C0C0 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 9 0 BBX 8 1 0 -1 BITMAP FF ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 3 8 BITMAP 30 60 40 E0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 11 0 BBX 11 9 1 0 BITMAP 07E0 18E0 30C0 61C0 61C0 E3C0 E5C0 F980 73E0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 1 0 BITMAP 7C00 1800 3800 3800 39C0 33E0 74E0 78E0 70C0 60C0 6180 E300 FC00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 1 0 BITMAP 0F80 3980 7180 6000 E000 E000 E000 E100 7E00 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 1 0 BITMAP 01E0 00E0 00C0 00C0 0FC0 11C0 31C0 6180 6380 E580 EF80 FB80 73C0 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 0F00 3380 6380 6300 E700 FC00 E000 E180 7E00 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 7 0 BBX 10 17 1 -3 BITMAP 07C0 0CC0 0CC0 1C00 1800 7F00 3800 3800 3800 3000 7000 7000 7000 6000 6000 E000 E000 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 11 0 BBX 11 12 1 -3 BITMAP 07E0 18E0 30E0 30C0 71C0 63C0 67C0 7D80 7380 8380 C300 7C00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 2 0 BITMAP 7800 3800 3800 3800 3180 37C0 75C0 79C0 7180 6180 6380 E380 E3C0 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 6 0 BBX 5 13 2 0 BITMAP 38 38 00 00 F0 70 70 70 60 60 E0 E0 F0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 7 0 BBX 10 17 -1 -4 BITMAP 01C0 01C0 0000 0000 0780 0380 0380 0300 0700 0700 0700 0700 0600 0E00 CC00 CC00 F000 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 2 0 BITMAP 7800 3800 3800 3800 31C0 31C0 7380 7E00 7C00 6E00 6700 E380 E3C0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 6 0 BBX 5 13 2 0 BITMAP 78 38 38 30 30 70 70 70 60 60 E0 E0 F0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 17 0 BBX 16 9 2 0 BITMAP F9CE 37DF 75F7 79E7 71C6 6186 618E E38E E38F ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 12 0 BBX 10 9 2 0 BITMAP F180 37C0 7DC0 79C0 7180 6180 6380 E380 E3C0 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 1 0 BITMAP 0F80 39C0 71C0 61C0 E1C0 E180 E380 E300 7C00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 11 0 BBX 11 12 1 -3 BITMAP 79C0 3BE0 3EE0 3CE0 38E0 70C0 7180 7100 7E00 E000 E000 E000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 11 0 BBX 11 12 1 -3 BITMAP 07E0 18E0 30C0 61C0 61C0 E3C0 E5C0 F980 7380 0380 0380 0300 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 2 0 BITMAP F180 3700 7C00 7800 7000 6000 6000 E000 E000 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 1F 31 31 38 1C 0E C6 CE FC ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 7 0 BBX 6 12 2 0 BITMAP 30 30 30 FC 70 60 60 60 E0 E0 E0 70 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 12 0 BBX 10 9 2 0 BITMAP F3C0 71C0 7180 6180 6380 E780 EB80 FB00 E3C0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 2 0 BITMAP F1C0 70C0 7180 3180 3B00 3A00 3C00 1800 1000 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 15 0 BBX 15 9 1 0 BITMAP E18E 7186 318C 33C8 3FD8 3CF0 38E0 18C0 1080 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 7180 3980 1B00 1E00 1C00 3E00 6E00 C700 C780 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 11 0 BBX 12 12 0 -3 BITMAP 3870 1C30 1C20 0C60 0CC0 0F80 0F00 0600 0400 0800 1000 F000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 1 0 BITMAP 3FC0 2380 2700 0E00 0E00 1C00 3880 7180 FF80 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 6 0 BBX 7 16 1 -3 BITMAP 0E 1C 18 18 18 18 18 30 E0 30 70 70 E0 E0 C0 70 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 5 0 BBX 5 16 1 -3 BITMAP 18 18 10 10 10 30 30 20 20 60 60 40 40 40 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 6 0 BBX 7 16 0 -3 BITMAP 1C 0E 0E 0E 1C 18 18 0E 08 30 30 30 30 30 70 E0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 11 0 BBX 11 4 1 3 BITMAP 3820 4C20 8640 8380 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 5 0 BBX 5 12 0 -3 BITMAP 38 38 00 30 30 30 60 60 60 E0 E0 E0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 2 0 BITMAP 0200 0200 1F80 3C80 7480 6400 E400 E400 E800 E900 7E00 0800 1800 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 2 0 BITMAP 03E0 0660 0E60 0C00 0C00 1C00 3F00 1C00 1800 3800 2000 FF80 FF00 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 12 0 BBX 13 13 1 0 BITMAP 2008 1010 1F20 0CC0 1840 1040 1040 1040 10C0 1980 2FC0 4040 8020 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 11 0 BBX 12 13 2 0 BITMAP F870 7060 3040 3880 3900 1E00 1E00 7F00 1C00 7F00 1800 3800 7C00 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 5 0 BBX 5 16 1 -3 BITMAP 18 18 10 10 10 30 30 00 00 60 60 40 40 40 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 2 -3 BITMAP 0FC0 18C0 30C0 3800 3C00 1F00 3780 6380 7180 7D00 3E00 0F00 0300 C300 C700 FC00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 11 0 BBX 6 1 5 12 BITMAP CC ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 2 0 BITMAP 0F80 1060 2030 47D0 8C48 9808 9808 9008 9808 4F90 2030 1060 0F80 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 2 6 BITMAP 1F 66 66 CE D6 FE EF ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 1 0 BITMAP 0880 1980 3300 6600 EC00 6E00 6600 3200 2300 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 11 0 BBX 11 4 1 3 BITMAP FFE0 0060 0040 0040 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 5 0 BBX 4 1 2 5 BITMAP F0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 11 0 BBX 8 9 3 4 BITMAP 3C 42 BD 97 BD A9 A5 42 3C ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 11 0 BBX 6 1 5 12 BITMAP FC ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 4 10 BITMAP E0 A0 E0 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 11 0 BBX 12 11 0 0 BITMAP 0100 0300 0300 0200 7FF0 0200 0200 0600 0400 0000 FFE0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 -10 4 BITMAP 38 4C 0C 0C 18 20 40 C0 F8 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 -10 4 BITMAP 38 4C 0C 08 78 08 08 98 F0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 11 0 BBX 5 3 6 10 BITMAP 38 60 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 1 -3 BITMAP 79E0 38E0 38C0 30C0 31C0 71C0 73C0 75C0 79E0 6000 E000 E000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 11 0 BBX 8 16 3 -3 BITMAP 7F F9 FA F2 F2 72 32 14 24 24 24 24 24 28 48 48 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 11 0 BBX 3 2 5 4 BITMAP E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 11 0 BBX 3 3 3 -3 BITMAP 60 20 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 7 0 BBX 4 9 -11 4 BITMAP 70 30 30 20 20 20 20 60 F0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 2 6 BITMAP 1E 33 63 C3 C6 C4 78 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 1 0 BITMAP 6200 2600 3300 3B00 1B80 3300 6600 CC00 8800 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 15 0 BBX 14 13 4 0 BITMAP 700C 3010 3030 2060 20D8 21B8 2370 66D0 FD90 19F8 3030 6030 C070 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 15 0 BBX 14 13 4 0 BITMAP 700C 3010 3030 2060 20F0 2198 2318 6618 FC30 1840 3080 6180 C1F0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 15 0 BBX 14 13 4 0 BITMAP 380C 4C10 0C30 0860 78D8 09B8 0B70 9ED0 FD90 19F8 3030 6030 C070 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 0 -3 BITMAP 07 07 00 06 0E 0C 10 60 E0 E3 E3 7E ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP 00E0 0060 0030 0000 00C0 00E0 01E0 01E0 0260 0460 0470 0870 1FF0 1030 2038 6038 F07C ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP 0038 0060 00C0 0000 00C0 00E0 01E0 01E0 0260 0460 0470 0870 1FF0 1030 2038 6038 F07C ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP 0070 00F0 0198 0000 00C0 00E0 01E0 01E0 0260 0460 0470 0870 1FF0 1030 2038 6038 F07C ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 14 0 BBX 14 16 0 0 BITMAP 00E8 0170 0000 00C0 00E0 01E0 01E0 0260 0460 0470 0870 1FF0 1030 2038 6038 F07C ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 14 0 BBX 14 15 0 0 BITMAP 0198 0000 00C0 00E0 01E0 01E0 0260 0460 0470 0870 1FF0 1030 2038 6038 F07C ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP 0070 0050 0070 0000 00C0 00E0 01E0 01E0 0260 0460 0470 0870 1FF0 1030 2038 6038 F07C ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 17 0 BBX 19 13 0 0 BITMAP 003FE0 007860 007800 00B800 013080 023F80 067180 047000 0FF000 106000 206000 60E080 E1FF80 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 13 0 BBX 13 16 2 -3 BITMAP 03F8 0C18 1818 3010 7000 6000 E000 E000 E000 E000 7000 7860 1F80 0800 0400 1C00 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 11 0 BBX 12 17 1 0 BITMAP 0380 0180 00C0 0000 3FF0 0C30 1C00 1C00 1C00 1C40 1F80 3880 3800 3800 3840 70C0 FFC0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 11 0 BBX 12 17 1 0 BITMAP 00E0 0180 0300 0000 3FF0 0C30 1C00 1C00 1C00 1C40 1F80 3880 3800 3800 3840 70C0 FFC0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 11 0 BBX 12 17 1 0 BITMAP 01C0 03C0 0660 0000 3FF0 0C30 1C00 1C00 1C00 1C40 1F80 3880 3800 3800 3840 70C0 FFC0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 11 0 BBX 12 15 1 0 BITMAP 0660 0000 3FF0 0C30 1C00 1C00 1C00 1C40 1F80 3880 3800 3800 3840 70C0 FFC0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 7 0 BBX 8 17 1 0 BITMAP 1C 0C 06 00 3F 0E 1C 1C 1C 1C 18 38 38 38 38 70 FC ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 7 0 BBX 9 17 1 0 BITMAP 0380 0600 0C00 0000 3F00 0E00 1C00 1C00 1C00 1C00 1800 3800 3800 3800 3800 7000 FC00 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 7 0 BBX 8 17 1 0 BITMAP 0E 1E 33 00 3F 0E 1C 1C 1C 1C 18 38 38 38 38 70 FC ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 7 0 BBX 9 15 1 0 BITMAP 1980 0000 3F00 0E00 1C00 1C00 1C00 1C00 1800 3800 3800 3800 3800 7000 FC00 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 15 0 BBX 15 13 0 0 BITMAP 3FF8 0E1C 0C0E 1C0E 1C0E 1C0E 7F8E 180E 381C 381C 3838 78F0 FFC0 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 14 0 BBX 16 16 0 0 BITMAP 00E8 0170 0000 3C0F 0E06 0E04 1F04 1B0C 1388 11C8 11C8 30E8 20F8 2070 6030 F030 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 2 0 BITMAP 0380 0180 00C0 0000 03E0 0C30 1818 301C 701C 601C E018 E038 E038 E070 E060 71C0 1F00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 2 0 BITMAP 0070 00C0 0180 0000 03E0 0C30 1818 301C 701C 601C E018 E038 E038 E070 E060 71C0 1F00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 2 0 BITMAP 01C0 03C0 0660 0000 03E0 0C30 1818 301C 701C 601C E018 E038 E038 E070 E060 71C0 1F00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 15 0 BBX 14 16 2 0 BITMAP 01D0 02E0 0000 03E0 0C30 1818 301C 701C 601C E018 E038 E038 E070 E060 71C0 1F00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 15 0 BBX 14 15 2 0 BITMAP 0660 0000 03E0 0C30 1818 301C 701C 601C E018 E038 E038 E070 E060 71C0 1F00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 11 0 BBX 12 11 1 0 BITMAP 2010 3020 1840 0980 0F00 0600 0F00 1900 2180 40C0 8040 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 15 0 BBX 16 13 1 0 BITMAP 01F3 061C 0C0C 181E 382E 30CE 718E 731C 761C 7818 7030 3860 CF80 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 3 0 BITMAP 0700 0300 0180 0000 FC78 7030 7020 7020 7020 6020 E020 E040 E040 E040 E080 7180 3E00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 3 0 BITMAP 01C0 0300 0600 0000 FC78 7030 7020 7020 7020 6020 E020 E040 E040 E040 E080 7180 3E00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 3 0 BITMAP 0380 0780 0CC0 0000 FC78 7030 7020 7020 7020 6020 E020 E040 E040 E040 E080 7180 3E00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 14 0 BBX 13 15 3 0 BITMAP 0CC0 0000 FC78 7030 7020 7020 7020 6020 E020 E040 E040 E040 E080 7180 3E00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 12 0 BBX 12 17 3 0 BITMAP 01C0 0300 0600 0000 F870 7060 7040 3880 3900 1A00 1E00 1C00 1C00 1C00 1800 3800 7E00 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 11 0 BBX 12 13 0 0 BITMAP 3F00 0E00 0C00 1FE0 1C70 1C70 1C70 1860 38E0 3F80 3800 3800 FC00 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 12 0 BBX 11 17 1 -3 BITMAP 07C0 0CC0 1CE0 18C0 1880 3900 3B00 3B80 31C0 30E0 7060 7460 74E0 6780 6000 E000 E000 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 1 0 BITMAP 0700 0300 0180 0000 07E0 18E0 30C0 61C0 61C0 E3C0 E5C0 F980 73E0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 1 0 BITMAP 00E0 0180 0300 0000 07E0 18E0 30C0 61C0 61C0 E3C0 E5C0 F980 73E0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 1 0 BITMAP 0380 0780 0CC0 0000 07E0 18E0 30C0 61C0 61C0 E3C0 E5C0 F980 73E0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 11 0 BBX 11 12 1 0 BITMAP 03A0 05C0 0000 07E0 18E0 30C0 61C0 61C0 E3C0 E5C0 F980 73E0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 11 0 BBX 11 11 1 0 BITMAP 0660 0000 07E0 18E0 30C0 61C0 61C0 E3C0 E5C0 F980 73E0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 1 0 BITMAP 0380 0280 0380 0000 07E0 18E0 30C0 61C0 61C0 E3C0 E5C0 F980 73E0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 16 0 BBX 15 9 1 0 BITMAP 0FDC 11EE 31C6 618E 619C E3F0 E580 E9C6 70F8 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 1 -3 BITMAP 0F80 3980 7180 6000 E000 E000 E000 E100 7E00 2000 1000 7000 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 0 BITMAP 0E00 0600 0300 0000 0F00 3380 6380 6300 E700 FC00 E000 E180 7E00 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 1 0 BITMAP 01C0 0300 0600 0000 0F00 3380 6380 6300 E700 FC00 E000 E180 7E00 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 0 BITMAP 0700 0F00 1980 0000 0F00 3380 6380 6300 E700 FC00 E000 E180 7E00 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 10 0 BBX 9 11 1 0 BITMAP 1980 0000 0F00 3380 6380 6300 E700 FC00 E000 E180 7E00 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 6 0 BBX 6 13 1 0 BITMAP 38 18 0C 00 F8 38 30 70 70 70 60 E0 F8 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 6 0 BBX 7 13 1 0 BITMAP 0E 18 30 00 F8 38 30 70 70 70 60 E0 F8 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 6 0 BBX 7 13 1 0 BITMAP 1C 3C 66 00 F8 38 30 70 70 70 60 E0 F8 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 6 0 BBX 7 11 1 0 BITMAP 66 00 F8 38 30 70 70 70 60 E0 F8 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 2 0 BITMAP 0080 3F00 0F00 1F80 1180 0FC0 31C0 61C0 61C0 E180 E180 E300 E200 7C00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 2 0 BITMAP 0740 0B80 0000 F180 37C0 7DC0 79C0 7180 6180 6380 E380 E3C0 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0E00 0600 0300 0000 0F80 39C0 71C0 61C0 E1C0 E180 E380 E300 7C00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 01C0 0300 0600 0000 0F80 39C0 71C0 61C0 E1C0 E180 E380 E300 7C00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0380 0780 0CC0 0000 0F80 39C0 71C0 61C0 E1C0 E180 E380 E300 7C00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 1 0 BITMAP 0740 0B80 0000 0F80 39C0 71C0 61C0 E1C0 E180 E380 E300 7C00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 11 0 BBX 10 11 1 0 BITMAP 0CC0 0000 0F80 39C0 71C0 61C0 E1C0 E180 E380 E300 7C00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 11 0 BBX 11 9 1 0 BITMAP 0600 0600 0000 0000 FFE0 0000 0000 0C00 0C00 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 11 0 BBX 12 9 1 0 BITMAP 07B0 18C0 30E0 73E0 74C0 78C0 7180 7300 FE00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 2 0 BITMAP 0E00 0600 0300 0000 F3C0 71C0 7180 6180 6380 E780 EB80 FB00 E3C0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 2 0 BITMAP 01C0 0300 0600 0000 F3C0 71C0 7180 6180 6380 E780 EB80 FB00 E3C0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 2 0 BITMAP 0380 0780 0CC0 0000 F3C0 71C0 7180 6180 6380 E780 EB80 FB00 E3C0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 12 0 BBX 10 11 2 0 BITMAP 0CC0 0000 F3C0 71C0 7180 6180 6380 E780 EB80 FB00 E3C0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 11 0 BBX 12 16 0 -3 BITMAP 0070 00C0 0180 0000 3870 1C30 1C20 0C60 0CC0 0F80 0F00 0600 0400 0800 1000 F000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 11 0 BBX 11 16 1 -3 BITMAP 7C00 3800 1800 1800 39C0 3BE0 3EE0 3CE0 38E0 70C0 7180 7100 7E00 6000 E000 E000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 11 0 BBX 12 14 0 -3 BITMAP 0660 0000 3870 1C30 1C20 0C60 0CC0 0F80 0F00 0600 0400 0800 1000 F000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 17 1 -3 BITMAP 03F0 0C70 0C70 1860 1860 7EE0 38E0 38E0 30C0 30C0 71C0 71C0 71C0 61E0 6000 E000 E000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 1 2 5 BITMAP FF ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 16 3 -3 BITMAP 0E00 0E00 0C00 0C00 0C00 3E00 D980 1800 1800 1800 3800 3800 3000 3000 3000 7000 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 17 1 0 BITMAP 0460 02C0 0380 0000 1FF0 10E0 11E0 01C0 0380 0700 0F00 0E00 1C00 3800 7040 70C0 FFC0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 15 9 1 0 BITMAP 0F9E 31A6 71C6 61C6 E1CC E1F8 E180 E3C2 7CFC ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 15 3 0 BITMAP 1980 0000 F870 7060 7040 3880 3900 1A00 1E00 1C00 1C00 1C00 1800 3800 7E00 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP F8 38 30 70 70 70 60 E0 F8 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 7 13 1 0 BITMAP 3C 1C 1C 18 18 3E 38 F8 30 70 70 70 78 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 1F00 0E00 0C00 1C00 1C00 1F00 7C00 5800 3800 3800 3820 3860 FFE0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 2 -3 BITMAP 0700 0700 0600 0600 0600 1F00 6CC0 0C00 0C00 0C00 3E00 D980 1800 1800 1800 3800 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 17 1 -3 BITMAP 0780 0DB0 0D70 1800 1800 7FE0 38E0 38E0 30C0 30C0 71C0 71C0 71C0 61E0 6000 E000 E000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 60 20 30 30 18 30 60 C0 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 19 13 2 0 BITMAP 03DFE0 0C3860 183860 303800 703800 603080 E07F80 E07180 E07000 E07000 60E000 70E080 1FFF80 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 17 1 2 5 BITMAP FFFF80 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 3 5 10 BITMAP 8C 58 70 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 3 3 -3 BITMAP 40 80 E0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 7 3 6 10 BITMAP 36 68 90 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 2 0 BITMAP 08 18 30 60 C0 60 60 20 30 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 2 6 11 BITMAP E0 E0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 3 5 10 BITMAP 84 F8 70 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 6 4 2 BITMAP 78 FC FC FC FC 78 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 2 5 11 BITMAP 74 B8 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 3 5 10 BITMAP 38 78 CC ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 5 2 8 BITMAP 33 66 44 EE EE ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 3 8 BITMAP E0 E0 C0 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 13 1 0 BITMAP 1180 0B00 0E00 0000 1F00 3100 3100 3800 1C00 0E00 C600 CE00 FC00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 3 7 11 BITMAP E0 A0 E0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 -3 BITMAP 70 70 70 20 60 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 16 4 -3 BITMAP 0780 0D80 1980 3800 3800 3000 FC00 3000 7000 7000 7000 6000 6000 E000 E000 E000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 18 7 3 6 BITMAP FF71C0 9A7380 187780 305F00 305B00 305B00 79C380 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 14 13 -4 0 BITMAP 000C 0010 0030 0060 00C0 0180 0300 0600 0C00 1800 3000 6000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 4 3 6 10 BITMAP E0 60 30 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 22 13 1 0 BITMAP 3C0C00 661800 E63000 C66000 CCC000 798000 037878 06CCCC 0D8D8C 198D8C 318D98 619998 C0F0F0 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 14 2 2 0 BITMAP C30C C30C ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 5 2 8 BITMAP 77 77 22 66 CC ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 17 2 0 BITMAP 08C0 0580 0700 0000 0FC0 18C0 38C0 3000 3800 3C00 1F00 0700 0380 0380 C380 C700 FC00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 5 0 -3 BITMAP 77 77 22 66 CC ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 1 0 BITMAP 08C0 0580 0700 0000 3FC0 2380 2700 0E00 0E00 1C00 3880 7180 FF80 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lubBI19.bdf100644 1750 1750 100224 5413747477 15143 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-DemiBold-I-Normal--19-190-75-75-P-114-ISO8859-1 SIZE 19 72 72 FONTBOUNDINGBOX 34 22 -11 -4 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "DemiBold" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 19 POINT_SIZE 190 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH "114" CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." FONT_ASCENT 17 FONT_DESCENT 4 DEFAULT_CHAR 0 ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 6 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 5 0 BBX 5 14 1 0 BITMAP 38 38 38 30 30 30 30 20 60 60 00 00 E0 E0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 9 0 BBX 7 5 3 9 BITMAP EE CE C4 44 44 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 2 0 BITMAP 0130 0220 0260 0440 7FF0 0880 0880 1900 1100 FFE0 2200 6400 4400 C800 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 12 0 BBX 10 17 3 -2 BITMAP 0200 0FC0 1AC0 32C0 3400 3C00 1C00 1E00 0F00 0F00 0B80 0B80 CB00 CF00 FC00 1000 1000 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 15 0 BBX 15 14 1 0 BITMAP 3C0E 6618 6630 C620 C660 6CC0 7980 0378 06CC 0CCC 19CC 318C 60D8 C0F0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 2 0 BITMAP 0380 0EC0 0CC0 0CC0 0C80 0F00 367C 6630 E730 E320 E3C0 E180 71C0 3EF0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 3 8 BITMAP 70 70 70 20 60 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 6 0 BBX 7 18 2 -4 BITMAP 02 04 08 18 30 70 60 60 E0 E0 E0 E0 E0 E0 60 60 20 20 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 6 0 BBX 7 18 0 -4 BITMAP 10 08 0C 0C 0E 0E 0E 0E 0E 0E 0C 1C 18 18 30 20 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 3 7 BITMAP 18 5A D6 6C 38 EC 48 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 2 0 BITMAP 0200 0200 0600 0600 0600 0400 FFE0 0400 0C00 0C00 0800 0800 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 -4 BITMAP 70 70 70 20 60 60 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 12 0 BBX 11 1 2 6 BITMAP FFE0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 5 0 BBX 4 3 1 0 BITMAP 70 F0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 10 0 BBX 13 18 0 -4 BITMAP 0018 0010 0020 0060 0040 0080 0080 0100 0200 0200 0400 0C00 0800 1000 3000 2000 4000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 2 0 BITMAP 0780 1CC0 38E0 30E0 70E0 60E0 E0E0 E0E0 E0E0 E1C0 E1C0 E380 6300 3C00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 12 0 BBX 8 14 2 0 BITMAP 3F 07 06 0E 0E 0E 0E 0C 1C 1C 1C 1C 3C FF ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 2 0 BITMAP 0F80 19C0 10E0 30E0 00E0 01C0 0380 0600 0800 1000 2000 6000 FF80 FF80 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 2 0 BITMAP 1F80 11C0 10E0 00C0 01C0 0380 1E00 0380 0180 01C0 01C0 C380 C700 FE00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 00E0 01E0 02C0 06C0 0CC0 19C0 31C0 6180 C180 FFE0 0380 0300 0300 0FC0 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 2 0 BITMAP 1FE0 1FE0 1000 2000 2000 3C00 0700 0380 0180 01C0 0180 C380 C700 FC00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 2 0 BITMAP 07E0 0C60 1860 3000 7000 6F80 F1C0 E1C0 E0C0 E0C0 E1C0 6180 7300 3E00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 3 0 BITMAP 7FE0 7FE0 0040 0080 0100 0200 0600 0C00 1800 3800 7000 7000 E000 E000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 2 0 BITMAP 07C0 1CE0 3860 3860 38C0 1F80 0F00 37C0 61C0 E0E0 E0C0 E0C0 7180 3E00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 0F80 18C0 30E0 70E0 70E0 70E0 70E0 71E0 1EE0 01C0 01C0 C380 C700 FC00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 5 0 BBX 5 10 1 0 BITMAP 38 38 38 00 00 00 00 E0 E0 E0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 5 0 BBX 5 14 1 -4 BITMAP 38 38 38 00 00 00 00 00 70 60 60 60 60 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 12 0 BBX 12 12 2 0 BITMAP 0010 0070 01C0 0700 1C00 F000 7000 1800 0E00 0380 01C0 0040 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 12 0 BBX 12 5 1 3 BITMAP 7FF0 0000 0000 0000 FFE0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 12 0 BBX 12 12 0 0 BITMAP 2000 3800 1C00 0700 0180 00E0 00F0 0380 0E00 3800 E000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 9 0 BBX 8 14 3 0 BITMAP 7E 47 C7 07 06 0C 08 30 30 60 00 00 E0 E0 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 2 0 BITMAP 03E0 0C18 1008 2384 4464 4844 98C4 99C4 99C4 9AC8 9CF0 4000 2080 1F00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 15 0 BBX 15 14 0 0 BITMAP 0060 0060 00E0 0170 0170 0270 0630 0438 0838 0FF8 1038 201C 601C F07E ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 1 0 BITMAP 3FE0 0C70 0C70 1C70 1C60 18E0 1F80 19C0 38E0 38E0 38E0 30E0 71C0 FF80 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 2 0 BITMAP 03F8 0E18 1818 3010 7000 7000 E000 E000 E000 E000 E000 7000 7860 1F80 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 16 0 BBX 16 14 0 0 BITMAP 1FF8 0E1E 0E0E 0E07 1E07 1C07 1C07 1C07 1C0E 380E 381C 3818 3870 FFC0 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 12 0 BBX 13 14 1 0 BITMAP 1FF8 0E18 0E18 0C00 1C00 1C60 1FC0 1C40 1800 3800 3800 3820 3860 FFE0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 11 0 BBX 13 14 1 0 BITMAP 1FF8 0E18 0E18 0C00 1C00 1C60 1FC0 1C40 1800 3800 3800 3800 3800 FC00 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 15 0 BBX 13 14 2 0 BITMAP 03F8 0E18 1818 3818 7000 7000 E000 E000 E1F8 E0F0 E0E0 70E0 78E0 1F80 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 16 0 BBX 17 14 1 0 BITMAP 1F9F80 0E0E00 0E0E00 0C0E00 1C0E00 1C0C00 1FFC00 1C1C00 181C00 381C00 381800 383800 383800 FCFC00 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 7 0 BBX 9 14 0 0 BITMAP 1F80 0E00 0E00 0E00 0E00 1C00 1C00 1C00 1C00 1800 3800 3800 3800 FC00 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 9 0 BBX 12 18 0 -4 BITMAP 03F0 01E0 01C0 01C0 01C0 0380 0380 0380 0380 0380 0380 0700 0700 0700 0700 CE00 CC00 F800 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 14 0 BBX 15 14 1 0 BITMAP 1F9E 0E08 0E10 0C60 1CC0 1D00 1F00 1F80 1BC0 39E0 38E0 3870 3878 FCFC ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 1F00 0E00 0E00 0C00 1C00 1C00 1C00 1C00 1800 3800 3800 3860 3860 FFC0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 18 0 BBX 19 14 1 0 BITMAP 1E01E0 0E0380 0E0780 0E0780 1B0B80 1B0B00 131300 132700 11A700 31C700 318600 218600 200E00 F81F00 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 15 0 BBX 17 14 0 0 BITMAP 1E0F80 0E0200 0F0200 0F0600 1B8600 1B8400 11C400 11C400 10EC00 306C00 307800 203800 203800 F81800 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 2 0 BITMAP 03F0 0E38 181C 381C 701C 701C E01C E01C E01C E038 E030 6060 70C0 1F00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 12 0 BBX 13 14 1 0 BITMAP 1FF0 0E38 0E38 0C38 1C38 1C70 1CE0 1F80 1800 3800 3800 3800 3800 FC00 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 16 0 BBX 16 18 2 -4 BITMAP 03E0 0E38 181C 381C 701C 701C E01C E01C E01C E03C E038 6078 70F0 1FE0 0180 0080 0060 001F ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 1 0 BITMAP 1FF0 0E38 0E38 0C38 1C38 1C70 1CE0 1F80 19C0 39C0 38E0 38E0 3870 FC78 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 1 0 BITMAP 07E0 1C60 3860 3800 3800 3C00 1F00 0F80 0380 01C0 01C0 C380 C300 FE00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 3 0 BITMAP FFF8 C718 8718 0700 0600 0E00 0E00 0E00 0E00 0C00 1C00 1C00 1C00 7E00 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 3 0 BITMAP FC3C 7818 7010 7010 7010 7020 6020 E020 E020 E060 E040 E040 7080 3F00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 14 0 BBX 14 14 3 0 BITMAP F83C 7018 7010 3030 3820 3840 3840 3880 1D80 1D00 1E00 1E00 1C00 0800 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 17 0 BBX 18 14 2 0 BITMAP F843C0 70C180 70C100 71E300 71E200 72E600 72E400 74EC00 34E800 38F800 387000 307000 306000 206000 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 13 0 BBX 15 14 0 0 BITMAP 1F1E 0E0C 0718 0730 0720 03C0 0380 03C0 07C0 0CC0 18E0 30E0 6070 F1F8 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 13 0 BBX 13 14 2 0 BITMAP F878 7030 7060 3840 3880 1D00 1F00 0E00 1C00 1C00 1C00 1C00 3C00 7E00 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 13 0 BBX 13 14 1 0 BITMAP 1FF8 1870 10F0 01E0 01C0 0380 0780 0F00 0E00 1C00 3800 7820 7060 FFE0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 6 0 BBX 8 18 1 -4 BITMAP 0F 1C 1C 18 18 18 38 38 30 30 30 70 70 60 60 60 E0 F8 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 10 0 BBX 6 18 3 -4 BITMAP 80 40 40 40 40 20 20 20 20 10 10 10 10 08 08 08 08 04 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 6 0 BBX 8 18 0 -4 BITMAP 1F 07 06 06 06 0E 0E 0C 0C 0C 1C 1C 18 18 18 38 38 F0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 1 2 BITMAP 0100 0100 0300 0780 0580 0C80 0880 10C0 3040 2040 4060 C060 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 9 0 BBX 8 1 1 -2 BITMAP FF ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 3 8 BITMAP 30 60 40 E0 E0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 1 0 BITMAP 07E0 18E0 30C0 70C0 61C0 E3C0 E3C0 E580 F980 73E0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 2 0 BITMAP 7C00 1800 3800 3800 39C0 33E0 34E0 78E0 78E0 70C0 61C0 6180 E300 FC00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 1 0 BITMAP 0FC0 1880 3080 7000 E000 E000 E000 E000 6100 3E00 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 1 0 BITMAP 00F0 0070 0060 00E0 07E0 18E0 30E0 70C0 61C0 E3C0 E3C0 E5C0 F980 73E0 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 0 BITMAP 0F00 1380 3180 6380 E700 FC00 E000 E000 F180 3F00 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 8 0 BBX 10 19 1 -4 BITMAP 07C0 0CC0 0CC0 1C00 1C00 7F00 3800 3800 3800 3000 3000 7000 7000 7000 7000 6000 E000 E000 E000 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 1 -4 BITMAP 03F0 0C70 1860 3060 70E0 71E0 73E0 76C0 7DC0 79C0 01C0 8180 E300 7E00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 2 0 BITMAP 7C00 1800 3800 3800 39C0 3BE0 36E0 74E0 78C0 71C0 71C0 61C0 E1C0 E1E0 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 6 0 BBX 6 14 2 0 BITMAP 1C 1C 00 00 F8 38 38 30 70 70 70 60 E0 F8 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 7 0 BBX 10 18 0 -4 BITMAP 01C0 01C0 0000 0000 0780 0380 0380 0300 0300 0700 0700 0700 0600 0600 0E00 CC00 CC00 F000 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP 7800 3800 3800 3800 31C0 31C0 7380 7700 7C00 6E00 6600 E700 E380 E3C0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 6 0 BBX 6 14 1 0 BITMAP 7C 1C 18 38 38 38 30 30 70 70 70 60 E0 F8 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 18 0 BBX 17 10 2 0 BITMAP F9C700 33EF80 34FB80 78F380 79E300 71C300 61C700 618700 E18700 E38780 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 2 0 BITMAP F9C0 3BE0 36E0 7CE0 78C0 71C0 71C0 61C0 E1C0 E1E0 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 1 0 BITMAP 0F80 19C0 30C0 70E0 E0C0 E1C0 E1C0 E180 F300 3C00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 1 -4 BITMAP 7CE0 39F0 3A70 3C70 3870 3860 70E0 70C0 7180 7E00 6000 E000 E000 E000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 -4 BITMAP 07E0 18E0 30E0 70C0 61C0 E3C0 E3C0 E5C0 F980 7380 0380 0380 0380 0300 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 9 0 BBX 10 10 2 0 BITMAP F9C0 3B80 3680 7C00 7800 7000 7000 6000 E000 E000 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 1 0 BITMAP 1F80 3980 3100 3800 1C00 0E00 0700 C700 C600 7C00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 7 0 BBX 7 13 2 0 BITMAP 18 38 38 FE 70 70 70 70 60 E0 E0 E0 78 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 2 0 BITMAP F1E0 70E0 70C0 70C0 71C0 63C0 E7C0 ED80 FB80 73E0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 2 0 BITMAP F0E0 70E0 30C0 38C0 3980 3900 1A00 1C00 1800 1000 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 16 0 BBX 15 10 2 0 BITMAP F08E 7186 3184 338C 3BC8 3CD0 3CE0 38E0 18C0 1080 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 1 0 BITMAP 79C0 38C0 1D80 1D00 0E00 0E00 3700 6700 C380 C3C0 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 11 0 BBX 13 14 0 -4 BITMAP 3C38 1C18 0C18 0E30 0E60 0E40 0680 0700 0700 0600 0400 0800 3000 F000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 1 0 BITMAP 3FE0 31C0 2380 0700 0F00 0E00 1C00 3840 70C0 FF80 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 7 0 BBX 7 18 2 -4 BITMAP 0E 1C 18 18 18 18 18 30 20 E0 70 30 70 60 E0 E0 E0 70 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 5 0 BBX 5 18 1 -4 BITMAP 18 18 18 10 10 30 30 30 20 20 60 60 60 40 40 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 7 0 BBX 7 18 1 -4 BITMAP 1C 0E 0E 0E 0C 1C 18 1C 0E 08 18 30 30 30 30 30 70 E0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 12 0 BBX 12 5 1 3 BITMAP 3810 4C10 8610 8320 81C0 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 5 0 BBX 5 14 1 -4 BITMAP 38 38 00 00 30 30 30 60 60 60 60 E0 E0 E0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 3 0 BITMAP 0200 0200 0FC0 3AC0 7480 7400 E400 E400 E400 E400 F900 7F00 0800 0800 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 2 0 BITMAP 03E0 0660 0E60 0C00 0C00 1C00 3F00 1C00 1800 1800 3800 2000 FF80 FF00 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 13 0 BBX 14 14 1 0 BITMAP 2004 100C 0F90 0CE0 0860 1820 1020 1060 1060 1040 1880 3FC0 4020 8010 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 12 0 BBX 13 14 2 0 BITMAP F878 7030 3860 38C0 1C80 1D00 0E00 7F80 1C00 7F00 1C00 1C00 3C00 7E00 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 5 0 BBX 5 18 1 -4 BITMAP 18 18 18 10 10 30 30 30 00 00 60 60 60 40 40 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 12 0 BBX 11 18 2 -4 BITMAP 07E0 1C60 1860 3800 3C00 1E00 1F80 33C0 31C0 70C0 3C80 3F00 0F80 0380 0180 C380 C300 FC00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 11 0 BBX 6 1 6 13 BITMAP CC ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 2 0 BITMAP 07C0 1830 2018 43E8 4C24 9804 9804 9804 9804 5C04 4FC8 2018 1830 07C0 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 2 6 BITMAP 1F 33 67 E7 CE D6 F6 6F ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 1 1 BITMAP 0840 1C80 3380 7700 EE00 6600 7300 3300 1100 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 12 0 BBX 11 5 2 3 BITMAP FFE0 0060 0060 0040 0040 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 5 0 BBX 5 1 1 6 BITMAP F8 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 12 0 BBX 8 10 4 4 BITMAP 3C 42 FD 97 95 B9 A9 E5 42 3C ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 11 0 BBX 6 1 5 13 BITMAP FC ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 5 0 BBX 3 4 4 10 BITMAP 60 A0 A0 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 12 0 BBX 13 12 0 0 BITMAP 0180 0100 0100 0100 7FF8 0300 0200 0200 0200 0000 0000 FFF0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 -10 5 BITMAP 3C 26 66 06 0C 30 60 40 FC ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 -11 5 BITMAP 3C 6C 04 08 38 0C 0C 88 F0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 11 0 BBX 5 3 7 11 BITMAP 38 60 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 1 -4 BITMAP 79F0 3870 3870 38E0 38E0 31E0 71E0 72E0 7DC0 79F0 6000 E000 E000 E000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 12 0 BBX 8 18 3 -4 BITMAP 3F 79 F9 F9 F1 F2 72 12 12 12 24 24 24 24 24 24 48 48 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 12 0 BBX 3 2 6 5 BITMAP E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 11 0 BBX 3 4 3 -4 BITMAP 60 60 60 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 -11 5 BITMAP 38 18 18 10 30 30 30 30 F8 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 2 6 BITMAP 1E 33 63 E3 C3 C2 E6 78 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 1 1 BITMAP 2200 3300 3380 1980 1DC0 3B80 7300 4E00 8400 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 16 0 BBX 15 14 3 0 BITMAP 3806 1808 1818 1030 3060 30CC 319C 3338 FE68 0CC8 18FC 3018 2018 C038 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 16 0 BBX 15 14 3 0 BITMAP 3806 1808 1818 1030 3060 30FC 31A6 3366 FE06 0C0C 1830 3060 2040 C0FC ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 16 0 BBX 15 14 3 0 BITMAP 3C06 6C08 0418 0830 3860 0CCC 0D9C 8B38 F668 0CC8 18FC 3018 2018 C038 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 9 0 BBX 8 14 1 -4 BITMAP 07 07 00 00 06 0C 0C 10 30 60 E0 E3 E3 7E ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 0 0 BITMAP 00E0 0060 0030 0000 0060 0060 00E0 0170 0170 0270 0630 0438 0838 0FF8 1038 201C 601C F07E ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 0 0 BITMAP 001C 0030 0060 0000 0060 0060 00E0 0170 0170 0270 0630 0438 0838 0FF8 1038 201C 601C F07E ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 0 0 BITMAP 0070 00F0 0198 0000 0060 0060 00E0 0170 0170 0270 0630 0438 0838 0FF8 1038 201C 601C F07E ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 15 0 BBX 15 17 0 0 BITMAP 00E4 0138 0000 0060 0060 00E0 0170 0170 0270 0630 0438 0838 0FF8 1038 201C 601C F07E ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 15 0 BBX 15 16 0 0 BITMAP 00CC 0000 0060 0060 00E0 0170 0170 0270 0630 0438 0838 0FF8 1038 201C 601C F07E ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 0 0 BITMAP 0070 0050 0070 0000 0060 0060 00E0 0170 0170 0270 0630 0438 0838 0FF8 1038 201C 601C F07E ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 18 0 BBX 20 14 0 0 BITMAP 001FF0 003C30 005C30 005C00 00B800 013840 023FC0 0638C0 043000 0FF000 107000 207000 6070C0 F1FFC0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 2 -4 BITMAP 03F8 0E18 1818 3010 7000 7000 E000 E000 E000 E000 E000 7000 7860 1F80 0800 0C00 0C00 1C00 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 12 0 BBX 13 18 1 0 BITMAP 0380 0180 00C0 0000 1FF8 0E18 0E18 0C00 1C00 1C60 1FC0 1C40 1800 3800 3800 3820 3860 FFE0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 12 0 BBX 13 18 1 0 BITMAP 0070 00C0 0180 0000 1FF8 0E18 0E18 0C00 1C00 1C60 1FC0 1C40 1800 3800 3800 3820 3860 FFE0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 12 0 BBX 13 18 1 0 BITMAP 01C0 03C0 0660 0000 1FF8 0E18 0E18 0C00 1C00 1C60 1FC0 1C40 1800 3800 3800 3820 3860 FFE0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 12 0 BBX 13 16 1 0 BITMAP 0330 0000 1FF8 0E18 0E18 0C00 1C00 1C60 1FC0 1C40 1800 3800 3800 3820 3860 FFE0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 7 0 BBX 9 18 0 0 BITMAP 0E00 0600 0300 0000 1F80 0E00 0E00 0E00 0E00 1C00 1C00 1C00 1C00 1800 3800 3800 3800 FC00 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 7 0 BBX 9 18 0 0 BITMAP 0380 0600 0C00 0000 1F80 0E00 0E00 0E00 0E00 1C00 1C00 1C00 1C00 1800 3800 3800 3800 FC00 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 7 0 BBX 9 18 0 0 BITMAP 0700 0F00 1980 0000 1F80 0E00 0E00 0E00 0E00 1C00 1C00 1C00 1C00 1800 3800 3800 3800 FC00 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 7 0 BBX 9 16 0 0 BITMAP 1980 0000 1F80 0E00 0E00 0E00 0E00 1C00 1C00 1C00 1C00 1800 3800 3800 3800 FC00 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 16 0 BBX 16 14 0 0 BITMAP 1FF8 0E1E 0E0E 0E07 1C07 1C07 7F87 1C07 1C0E 380E 381C 3818 3870 FFC0 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 15 0 BBX 17 17 0 0 BITMAP 00E400 013800 000000 1E0F80 0E0200 0F0200 0F0600 1B8600 1B8400 11C400 11C400 10EC00 306C00 307800 203800 203800 F81800 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 2 0 BITMAP 01C0 00C0 0060 0000 03F0 0E38 181C 381C 701C 701C E01C E01C E01C E038 E030 6060 70C0 1F00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 2 0 BITMAP 0070 00C0 0180 0000 03F0 0E38 181C 381C 701C 701C E01C E01C E01C E038 E030 6060 70C0 1F00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 2 0 BITMAP 00E0 01E0 0330 0000 03F0 0E38 181C 381C 701C 701C E01C E01C E01C E038 E030 6060 70C0 1F00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 2 0 BITMAP 01C8 0270 0000 03F0 0E38 181C 381C 701C 701C E01C E01C E01C E038 E030 6060 70C0 1F00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 16 0 BBX 14 16 2 0 BITMAP 0330 0000 03F0 0E38 181C 381C 701C 701C E01C E01C E01C E038 E030 6060 70C0 1F00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 12 0 BBX 13 12 1 0 BITMAP 1008 3018 1860 0CC0 0D80 0700 0700 0D80 1980 30C0 C060 8040 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 16 0 BBX 17 14 1 0 BITMAP 01F980 071E00 0C0E00 1C0E00 381700 386700 38C700 718E00 730E00 740C00 781C00 383800 386000 CF8000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 3 0 BITMAP 0700 0300 0180 0000 FC3C 7818 7010 7010 7010 7020 6020 E020 E020 E060 E040 E040 7080 3F00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 3 0 BITMAP 00E0 0180 0300 0000 FC3C 7818 7010 7010 7010 7020 6020 E020 E020 E060 E040 E040 7080 3F00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 3 0 BITMAP 0380 0780 0CC0 0000 FC3C 7818 7010 7010 7010 7020 6020 E020 E020 E060 E040 E040 7080 3F00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 15 0 BBX 14 16 3 0 BITMAP 0660 0000 FC3C 7818 7010 7010 7010 7020 6020 E020 E020 E060 E040 E040 7080 3F00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 13 0 BBX 13 18 2 0 BITMAP 01C0 0300 0600 0000 F878 7030 7060 3840 3880 1D00 1F00 0E00 1C00 1C00 1C00 1C00 3C00 7E00 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 1 0 BITMAP 3F00 0E00 0C00 1FE0 1C70 1C70 1870 1870 3860 38C0 3F80 3800 7800 FC00 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 12 0 BBX 11 19 1 -4 BITMAP 07C0 0CC0 1CE0 1CC0 1880 1900 3B00 3B00 3B80 31C0 30E0 7060 7460 74C0 6780 6000 E000 E000 E000 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 0700 0300 0180 0000 07E0 18E0 30C0 70C0 61C0 E3C0 E3C0 E580 F980 73E0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 00E0 0180 0300 0000 07E0 18E0 30C0 70C0 61C0 E3C0 E3C0 E580 F980 73E0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 0380 0780 0CC0 0000 07E0 18E0 30C0 70C0 61C0 E3C0 E3C0 E580 F980 73E0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 1 0 BITMAP 0720 09C0 0000 07E0 18E0 30C0 70C0 61C0 E3C0 E3C0 E580 F980 73E0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 1 0 BITMAP 0660 0000 07E0 18E0 30C0 70C0 61C0 E3C0 E3C0 E580 F980 73E0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 0380 0280 0380 0000 07E0 18E0 30C0 70C0 61C0 E3C0 E3C0 E580 F980 73E0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 17 0 BBX 16 10 1 0 BITMAP 07FE 18E7 30E7 70C7 61CE E1F8 E3C0 E5C0 E8C3 707C ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 10 0 BBX 10 14 1 -4 BITMAP 0FC0 1880 3080 7000 E000 E000 E000 E000 6100 3E00 2000 3000 3000 7000 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 10 0 BBX 9 14 1 0 BITMAP 0E00 0600 0300 0000 0F00 1380 3180 6380 E700 FC00 E000 E000 F180 3F00 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 10 0 BBX 10 14 1 0 BITMAP 01C0 0300 0600 0000 0F00 1380 3180 6380 E700 FC00 E000 E000 F180 3F00 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 10 0 BBX 9 14 1 0 BITMAP 0700 0F00 1980 0000 0F00 1380 3180 6380 E700 FC00 E000 E000 F180 3F00 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 1 0 BITMAP 0CC0 0000 0F00 1380 3180 6380 E700 FC00 E000 E000 F180 3F00 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 6 0 BBX 6 14 2 0 BITMAP 38 18 0C 00 F8 38 30 70 70 70 70 60 E0 F8 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 6 0 BBX 8 14 2 0 BITMAP 07 0C 18 00 F8 38 30 70 70 70 70 60 E0 F8 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 6 0 BBX 7 14 2 0 BITMAP 1C 3C 66 00 F8 38 30 70 70 70 70 60 E0 F8 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 6 0 BBX 7 12 2 0 BITMAP 66 00 F8 38 30 70 70 70 70 60 E0 F8 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 2 0 BITMAP 00C0 3F00 0700 1F80 11C0 0FC0 19C0 30C0 60C0 60C0 E1C0 E180 E180 7300 3C00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 2 0 BITMAP 0720 09C0 0000 F9C0 3BE0 36E0 7CE0 78C0 71C0 71C0 61C0 E1C0 E1E0 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 1 0 BITMAP 0700 0300 0180 0000 0F80 19C0 30C0 70E0 E0C0 E1C0 E1C0 E180 F300 3C00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 1 0 BITMAP 01C0 0300 0600 0000 0F80 19C0 30C0 70E0 E0C0 E1C0 E1C0 E180 F300 3C00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 1 0 BITMAP 0380 0780 0CC0 0000 0F80 19C0 30C0 70E0 E0C0 E1C0 E1C0 E180 F300 3C00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 1 0 BITMAP 0720 09C0 0000 0F80 19C0 30C0 70E0 E0C0 E1C0 E1C0 E180 F300 3C00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 11 0 BBX 11 12 1 0 BITMAP 0CC0 0000 0F80 19C0 30C0 70E0 E0C0 E1C0 E1C0 E180 F300 3C00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 2 0 BITMAP 0600 0600 0000 0000 0000 FFE0 0000 0000 0C00 0C00 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 11 0 BBX 12 10 1 0 BITMAP 07F0 1CE0 38E0 3160 7260 74E0 78C0 70C0 7180 FE00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 2 0 BITMAP 0700 0300 0180 0000 F1E0 70E0 70C0 70C0 71C0 63C0 E7C0 ED80 FB80 73E0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 2 0 BITMAP 00E0 0180 0300 0000 F1E0 70E0 70C0 70C0 71C0 63C0 E7C0 ED80 FB80 73E0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 2 0 BITMAP 0380 0780 0CC0 0000 F1E0 70E0 70C0 70C0 71C0 63C0 E7C0 ED80 FB80 73E0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 2 0 BITMAP 0CC0 0000 F1E0 70E0 70C0 70C0 71C0 63C0 E7C0 ED80 FB80 73E0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 11 0 BBX 13 18 0 -4 BITMAP 0070 00C0 0180 0000 3C38 1C18 0C18 0E30 0E60 0E40 0680 0700 0700 0600 0400 0800 3000 F000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 12 0 BBX 12 18 1 -4 BITMAP 3C00 1C00 1C00 1C00 18E0 39F0 3A70 3C70 3870 3860 70E0 70C0 7180 7E00 6000 E000 E000 E000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 11 0 BBX 13 16 0 -4 BITMAP 0330 0000 3C38 1C18 0C18 0E30 0E60 0E40 0680 0700 0700 0600 0400 0800 3000 F000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 13 19 1 -4 BITMAP 03F8 0638 0C38 1C30 1C70 7F70 1870 3870 3860 38E0 30E0 30E0 70E0 70C0 71F0 7000 6000 E000 E000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 1 2 6 BITMAP FF ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 18 3 -4 BITMAP 0E00 0E00 0C00 0C00 0C00 0C00 FF80 DD80 1800 1800 1800 3800 3800 3800 3000 3000 7000 7000 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 13 18 1 0 BITMAP 0230 0160 01C0 0000 1FF8 1870 10F0 01E0 01C0 0380 0780 0F00 0E00 1C00 3800 7820 7060 FFE0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 16 10 1 0 BITMAP 0F8E 19F3 30E3 60C3 E0CE E1F8 E1C0 E1C0 E3E1 3C7E ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 13 16 2 0 BITMAP 0CC0 0000 F878 7030 7060 3840 3880 1D00 1F00 0E00 1C00 1C00 1C00 1C00 3C00 7E00 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 10 2 0 BITMAP F8 38 30 70 70 70 70 60 E0 F8 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 7 14 1 0 BITMAP 3C 1C 1C 1C 18 3A 3E F8 B8 30 70 70 70 78 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 1F00 0E00 0E00 0C00 1C00 1F00 1C00 7C00 1800 3800 3800 3820 3860 FFE0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 18 2 -4 BITMAP 0380 0300 0300 0700 0700 0700 7FE0 6660 0600 0E00 0E00 0C00 FFC0 CCC0 1C00 1C00 1C00 3800 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 13 19 1 -4 BITMAP 03C0 06B8 0CB8 1C00 1C00 7FF0 1870 3870 3860 38E0 38E0 30E0 70E0 70C0 71F0 7000 6000 E000 E000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 1 1 BITMAP 20 30 38 18 1C 38 70 60 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 20 14 2 0 BITMAP 03FFF0 0E3C30 181C30 381800 703800 703840 E03FC0 E03880 E03000 E07000 E07000 707000 70F0C0 1FFFC0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 18 1 2 5 BITMAP FFFFC0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 3 6 11 BITMAP 8C 58 70 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 3 4 -4 BITMAP 40 80 E0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 7 3 6 11 BITMAP 36 68 90 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 1 1 BITMAP 04 18 38 70 E0 60 70 30 10 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 2 7 12 BITMAP E0 E0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 7 3 5 11 BITMAP 82 FC 78 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 7 4 2 BITMAP 38 7C FE FE FE 7C 38 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 7 2 5 12 BITMAP 72 9C ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 3 5 11 BITMAP 38 78 CC ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 6 3 8 BITMAP 33 66 46 E6 EE EE ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 3 8 BITMAP E0 E0 E0 40 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 10 14 1 0 BITMAP 08C0 0580 0700 0000 1F80 3980 3100 3800 1C00 0E00 0700 C700 C600 7C00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 3 7 12 BITMAP E0 A0 E0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 -4 BITMAP 70 70 70 20 60 60 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 10 18 4 -4 BITMAP 03C0 0CC0 1CC0 1800 1800 3800 3800 FE00 3800 3000 7000 7000 7000 7000 6000 E000 E000 E000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 19 8 3 6 BITMAP FF79E0 9939C0 183B80 183B80 187D80 306D80 306980 78C3C0 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 15 14 -4 0 BITMAP 0006 0008 0018 0030 0060 00C0 0180 0300 0600 0C00 1800 3000 2000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 4 3 6 11 BITMAP E0 60 30 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 22 0 BBX 22 14 1 0 BITMAP 3C0E00 661800 663000 C62000 C66000 6CC000 798000 037878 06CCCC 0CCCCC 19CDCC 318D8C 60D8D8 C0F0F0 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 15 2 2 0 BITMAP C186 C306 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 6 3 8 BITMAP 77 77 67 22 66 CC ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 18 1 0 BITMAP 0460 02C0 0380 0000 07E0 1C60 3860 3800 3800 3C00 1F00 0F80 0380 01C0 01C0 C380 C300 FE00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 0 -4 BITMAP 77 77 77 22 66 66 CC ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 1 0 BITMAP 0460 02C0 0380 0000 3FE0 31C0 2380 0700 0F00 0E00 1C00 3840 70C0 FF80 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lubBI24.bdf100644 1750 1750 112526 5413747477 15147 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-DemiBold-I-Normal--24-240-75-75-P-143-ISO8859-1 SIZE 24 72 72 FONTBOUNDINGBOX 44 27 -15 -5 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "DemiBold" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 24 POINT_SIZE 240 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 143 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 22 FONT_DESCENT 6 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 8 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 6 0 BBX 7 17 1 0 BITMAP 1E 1E 1C 1C 1C 1C 38 38 38 30 30 30 00 00 F0 F0 F0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 11 0 BBX 9 6 4 11 BITMAP E780 E700 E300 6300 6300 4300 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 2 0 BITMAP 00C6 0084 018C 0108 0318 7FFE 0620 0460 0C40 08C0 FFFC 3180 3100 2300 6300 4200 C600 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 15 0 BBX 13 22 3 -3 BITMAP 0080 0080 07F8 0E98 1C98 1910 1900 1D00 1F00 0F00 0780 03C0 03E0 06E0 04E0 44E0 C4C0 E7C0 FF00 0800 0800 0800 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 19 0 BBX 20 17 1 0 BITMAP 1F0070 3980C0 718180 61C300 618600 E18C00 639800 673000 3C6000 00C7C0 018E60 031C70 061870 0C1860 1818E0 3019C0 E00F80 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 19 0 BBX 19 17 1 0 BITMAP 007C00 01CE00 038600 078600 078E00 039C00 03B800 07E000 1DC7E0 71E1C0 F1E180 E0F180 E07300 F07E00 703C00 783E00 1FDF80 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 4 10 BITMAP 78 78 78 30 30 70 E0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 8 0 BBX 9 22 2 -5 BITMAP 0080 0300 0600 0C00 1C00 1800 3800 7000 7000 7000 F000 F000 E000 E000 E000 E000 E000 6000 6000 3000 3000 1000 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 8 0 BBX 9 22 0 -5 BITMAP 0800 0400 0600 0700 0300 0300 0380 0780 0780 0780 0780 0700 0700 0700 0E00 0E00 1C00 1800 3800 3000 4000 8000 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 11 0 BBX 9 9 4 8 BITMAP 0E00 0C00 4C80 FF80 6300 1C00 3600 E600 4400 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 2 0 BITMAP 0180 0180 0180 0100 0100 0300 FFFC 0300 0200 0200 0600 0600 0600 0600 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 6 0 BBX 5 10 1 -5 BITMAP 78 78 78 70 70 30 30 70 E0 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 15 0 BBX 14 1 2 8 BITMAP FFFC ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 6 0 BBX 5 4 1 0 BITMAP 78 78 F0 F0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 12 0 BBX 16 21 0 -4 BITMAP 0003 0006 0004 0008 0018 0010 0020 0060 0040 0080 0180 0100 0200 0600 0400 0800 1800 1000 2000 6000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 2 0 BITMAP 03E0 0638 1C38 1C1C 381C 781C 701C 703C F03C F03C F038 F078 F070 F070 70E0 71C0 1F00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 15 0 BBX 10 17 3 0 BITMAP 1FC0 03C0 0380 0380 0380 0780 0780 0700 0700 0700 0F00 0F00 0E00 0E00 0E00 1E00 FFC0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 2 0 BITMAP 07F0 1C78 183C 183C 003C 003C 0078 00E0 01C0 0300 0400 1800 3000 7000 7FF0 FFE0 FFE0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 2 0 BITMAP 0FE0 0C78 0838 1838 0038 0070 01E0 1F80 01C0 00E0 0070 0070 0070 40F0 C0E0 E1C0 7F00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 2 0 BITMAP 001C 0038 0078 00B8 0138 0638 0C70 1870 3070 6070 FFFC FFFC 00E0 00E0 00E0 01E0 07F8 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 3 0 BITMAP 0FFC 0FFC 1FFC 1800 1000 1000 1000 3F00 03C0 00E0 00F0 00F0 00F0 40E0 C0E0 E1C0 FE00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 3 0 BITMAP 01FC 070C 0C0C 1C0C 3800 7800 77E0 78F0 F078 F078 F038 F078 F078 F070 70E0 39C0 1F00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 4 0 BITMAP 7FF8 7FF8 7FF0 0030 0060 00C0 0180 0300 0700 0E00 1C00 3C00 3800 7800 7000 F000 F000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 2 0 BITMAP 03F0 0E3C 1C1C 1C1C 1C1C 1E38 1F70 0FC0 0FE0 39F8 7078 F038 F038 F038 F030 7860 1F80 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 2 0 BITMAP 03E0 0E30 1C38 381C 381C 781C 781C 783C 383C 3C7C 1FB8 0078 0070 40E0 C0C0 C380 7E00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 6 0 BBX 6 13 1 0 BITMAP 3C 3C 38 00 00 00 00 00 00 00 70 F0 F0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 6 0 BBX 7 18 0 -5 BITMAP 1E 1E 1C 00 00 00 00 00 00 00 00 78 78 38 30 30 70 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 15 0 BBX 15 14 2 0 BITMAP 0002 000E 0038 00E0 0380 1E00 F800 7800 1C00 0F00 03C0 00F0 0038 0010 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 15 0 BBX 15 8 1 3 BITMAP 7FFE 0000 0000 0000 0000 0000 0000 FFFC ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 15 0 BBX 15 14 1 0 BITMAP 1000 3800 1E00 0780 01E0 0070 003C 003E 00F0 0380 0E00 3800 E000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 12 0 BBX 11 17 3 0 BITMAP 3F80 63C0 41E0 C0E0 01E0 01C0 0380 0600 0C00 1800 3800 7800 0000 0000 F000 F000 F000 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 21 0 BBX 18 17 3 0 BITMAP 00FC00 070700 0C0180 100080 20FC40 631840 421840 C61840 843840 8C38C0 8C5080 8CB100 871E00 400000 200000 183000 07E000 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 18 0 BBX 19 17 0 0 BITMAP 000C00 001C00 003C00 003E00 007E00 00CE00 008E00 018F00 010F00 020F00 060700 07FF00 080780 180780 100380 3003C0 F80FE0 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 16 0 BBX 16 17 1 0 BITMAP 1FFC 078F 070F 070F 070F 0F0E 0F0C 0E38 0FF0 1E3C 1E1E 1E1E 1C1E 1C1E 3C1E 3C7C FFF0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 18 0 BBX 17 17 2 0 BITMAP 00FF00 038380 0E0180 1C0100 3C0300 380000 780000 700000 F00000 F00000 F00000 F00000 F00000 700000 780000 3C0C00 0FF000 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 20 0 BBX 20 17 1 0 BITMAP 1FFF00 0783C0 0781E0 0780F0 0700F0 0F00F0 0F00F0 0F00F0 0E00F0 1E00E0 1E00E0 1E01E0 1E01C0 1C0380 3C0700 3C1E00 FFF800 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 15 0 BBX 16 17 1 0 BITMAP 1FFF 0783 0702 0700 0F00 0F00 0F00 0E08 0FF8 1E10 1E00 1E00 1C00 1C00 3C0C 3C18 FFF8 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 14 0 BBX 16 17 1 0 BITMAP 1FFF 0783 0702 0700 0F00 0F00 0F00 0E08 0FF8 1E10 1E00 1E00 1C00 1C00 3C00 3C00 FF00 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 19 0 BBX 17 17 3 0 BITMAP 00FF80 078380 0E0180 1C0300 3C0000 380000 780000 700000 F00000 F07F80 F01E00 F01E00 F01C00 701C00 781C00 3C3C00 0FF000 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 20 0 BBX 22 17 1 0 BITMAP 1FE3FC 0780F0 0780F0 0700E0 0701E0 0F01E0 0F01E0 0F01E0 0FFFC0 1E03C0 1E03C0 1E03C0 1E0380 1C0380 3C0780 3C0780 FF1FE0 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 9 0 BBX 11 17 1 0 BITMAP 1FE0 0780 0780 0700 0700 0F00 0F00 0F00 0E00 1E00 1E00 1E00 1C00 1C00 3C00 3C00 FF00 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 11 0 BBX 15 21 0 -4 BITMAP 01FE 0078 0078 0070 00F0 00F0 00F0 00F0 00E0 01E0 01E0 01E0 01E0 01C0 03C0 03C0 03C0 6380 C380 C700 FC00 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 18 0 BBX 19 17 1 0 BITMAP 1FE3E0 078180 070300 070600 071800 0F3000 0F6000 0EC000 0FE000 1EF000 1EF800 1E7800 1C3C00 1C3E00 3C1E00 3C0F00 FE3FC0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 1 0 BITMAP 1FE0 0780 0700 0700 0F00 0F00 0F00 0E00 0E00 1E00 1E00 1E00 1C00 1C0C 3C0C 3C08 FFF8 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 22 0 BBX 24 17 1 0 BITMAP 1F803F 07803C 07807C 078078 0DC0B8 0DC1B8 0DC178 0DC278 08E670 18E470 18E870 18F8F0 1070F0 1060E0 3060E0 3001E0 FC07F8 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 19 0 BBX 21 17 1 0 BITMAP 1F01F8 078060 078060 07C040 0DC0C0 0DE0C0 0CE0C0 0CF0C0 087080 187980 183D80 183D80 181F80 100F00 300F00 300700 FC0700 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 20 0 BBX 18 17 3 0 BITMAP 00FC00 038700 0E0380 1C03C0 3C03C0 3803C0 7803C0 7003C0 F003C0 F003C0 F00380 F00780 F00700 F00E00 701C00 383000 0FC000 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 15 0 BBX 16 17 1 0 BITMAP 1FFC 070E 070F 070F 0F0F 0F0F 0E0E 0E1C 0E38 1FE0 1C00 1C00 1C00 1C00 3C00 3C00 FF00 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 20 0 BBX 20 22 3 -5 BITMAP 00FC00 038700 0E0380 1C0380 3C03C0 3803C0 7803C0 7003C0 F003C0 F003C0 F003C0 F00780 F00780 F00F00 701F00 383E00 0FFC00 00F000 006000 003000 000C00 0003F0 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 17 0 BBX 16 17 1 0 BITMAP 1FFC 070F 070F 070F 0F0F 0E0F 0E1E 0E3C 0FF8 1EF0 1E70 1C78 1C38 1C3C 3C3C 3C1E FE1F ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 2 0 BITMAP 03F8 0E1C 1C0C 1C08 1C00 1E00 1F00 0F80 07E0 03F0 01F0 00F0 0070 40F0 C0E0 E1C0 7F00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 17 0 BBX 17 17 3 0 BITMAP 7FFF80 E1C180 C1C180 C3C100 03C000 03C000 038000 038000 078000 078000 078000 070000 0F0000 0F0000 0F0000 1F0000 7FC000 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 19 0 BBX 18 17 4 0 BITMAP FF0FC0 3C0300 380200 380200 780200 780600 780400 700400 700400 F00400 F00800 F00800 F00800 F01000 701000 786000 1F8000 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 18 0 BBX 18 17 3 0 BITMAP FE07C0 780100 380300 3C0200 3C0400 3C0400 1C0800 1C1000 1E1000 1E2000 1E6000 0E4000 0F8000 0F8000 0F0000 070000 060000 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 22 0 BBX 22 17 3 0 BITMAP FC183C 783818 783830 787820 787820 38F840 38B8C0 39B880 393980 3B3900 3A3B00 3E3E00 3C3E00 3C1C00 381C00 381800 301800 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 16 0 BBX 19 17 0 0 BITMAP 0FE3E0 078180 038100 03C200 03C600 01EC00 01F800 00F000 00F000 01F000 037800 023800 043C00 083C00 101C00 301E00 F87F00 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 16 0 BBX 16 17 3 0 BITMAP FE1F 7804 380C 3C18 3C30 1E20 1E40 0EC0 0F80 0F00 0F00 0F00 0E00 0E00 1E00 1E00 7F80 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 16 0 BBX 16 17 2 0 BITMAP 0FFF 0C1E 183E 003C 0078 00F0 01F0 01E0 03C0 0780 0F80 0F00 1E00 3C00 780C F818 FFF8 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 8 0 BBX 10 21 1 -4 BITMAP 0FC0 0E00 0E00 0E00 0E00 1C00 1C00 1C00 1C00 3800 3800 3800 3800 3800 7000 7000 7000 7000 7000 E000 FC00 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 12 0 BBX 7 21 4 -4 BITMAP C0 40 40 40 60 20 20 20 30 10 10 10 18 08 08 08 0C 04 04 04 06 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 8 0 BBX 10 21 0 -4 BITMAP 0FC0 01C0 0380 0380 0380 0380 0380 0700 0700 0700 0700 0F00 0E00 0E00 0E00 0E00 1C00 1C00 1C00 1C00 FC00 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 1 3 BITMAP 0040 0040 00E0 01E0 01E0 0360 0630 0430 0C30 1818 3018 3018 600C C00C ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 12 0 BBX 10 1 1 -3 BITMAP FFC0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 4 10 BITMAP 38 70 60 60 F0 F0 F0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 15 0 BBX 14 13 2 0 BITMAP 03FC 043C 183C 3838 3838 7078 70F8 F0F8 F170 F370 FEF0 FCF0 70FC ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 2 0 BITMAP 3E00 1E00 1E00 1C00 1C38 1CFC 3DFC 3B3C 3A3C 3C3C 7838 7838 7070 7060 7060 F080 FF00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 2 0 BITMAP 03F0 0E30 1C30 3830 7000 7000 F000 F000 F000 F000 F000 7040 3F80 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 15 0 BBX 15 17 2 0 BITMAP 007E 001E 001C 001C 03FC 043C 183C 1838 3038 7078 7078 F0F8 F170 F370 FEF0 FCF0 70F8 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 2 0 BITMAP 03C0 0CE0 18F0 30F0 70E0 70E0 F380 FF00 F000 F000 F030 7860 3F80 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 10 0 BBX 13 24 1 -5 BITMAP 01F8 0318 0718 0E10 0E00 0E00 3FE0 1E00 1C00 1C00 1C00 3C00 3C00 3800 3800 3800 7800 7800 7000 7000 7000 F000 F000 F000 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 1 -5 BITMAP 01FE 061E 0C1C 1C1C 181C 383C 787C 7078 70B8 79B8 7F78 7E78 3870 0070 8070 C0E0 70C0 7F00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 2 0 BITMAP 3E00 1E00 1E00 1E00 1C38 1CFC 3DFC 3DBC 3A3C 3E38 7C38 7838 7878 7078 7070 F070 F0FC ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 8 0 BBX 7 17 2 0 BITMAP 1E 1E 1C 00 FC 3C 3C 38 38 78 78 78 70 70 F0 F0 FC ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 9 0 BBX 13 22 -1 -5 BITMAP 0078 0078 0078 0000 03F0 00F0 00E0 00E0 00E0 01E0 01E0 01C0 01C0 01C0 03C0 03C0 0380 0380 4300 C700 C600 F800 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 2 0 BITMAP 3E00 1E00 1C00 1C00 1C78 3C38 3C70 38E0 39C0 3F00 7F00 7780 73C0 71C0 71E0 F0F0 E0F8 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 8 0 BBX 7 17 2 0 BITMAP 3E 1E 1E 1C 1C 3C 3C 38 38 38 78 78 70 70 F0 F0 F8 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 23 0 BBX 21 13 2 0 BITMAP FC7070 3CF9F8 39F9F8 3B3B78 3E3E78 7C7C70 787870 787070 707070 70F0F0 F0F0E0 F0E0E0 E0E0F8 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 16 0 BBX 14 13 2 0 BITMAP FC38 3C7C 3DFC 39BC 3A3C 3C38 7C38 7838 7078 7078 7070 F070 F0FC ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 2 0 BITMAP 03E0 0C70 1C38 3838 7038 7038 F038 F078 F070 F060 F0E0 7980 3E00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 1 -5 BITMAP 7E1C 1E7E 1CFE 1D9E 1D1E 3E1E 3C1C 3C1C 3838 3838 7830 7840 7F80 7000 7000 F000 F000 F000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 2 -5 BITMAP 03FC 043C 183C 3838 3038 7078 7078 F0F8 F170 F370 FEF0 FCF0 70F0 00E0 00E0 00E0 01E0 01E0 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 2 0 BITMAP FC70 3CE0 3DE0 3B00 3E00 7C00 7800 7800 7000 7000 F000 F000 F000 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 1 0 BITMAP 07E0 1C60 1860 3C60 1C00 1E00 0F00 0780 03C0 C1C0 C3C0 C380 7E00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 9 0 BBX 9 16 2 0 BITMAP 1C00 1C00 3C00 FF80 3800 3800 3800 7800 7800 7000 7000 F000 F000 F000 7200 3C00 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 16 0 BBX 14 13 2 0 BITMAP FCFC 383C 3838 7838 7878 7078 70F8 70F0 F170 F670 FEF0 FCF0 70FC ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 14 0 BBX 14 13 2 0 BITMAP F83C 781C 381C 3C18 3C30 1C30 1C60 1EC0 1F80 0F00 0E00 0C00 0800 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 20 0 BBX 19 13 2 0 BITMAP F021E0 7860E0 3860C0 3870C0 38F080 1CF100 1D7300 1F3A00 1E3C00 1E3C00 1C3800 183000 183000 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 1 0 BITMAP 3C38 1E38 1E38 0E30 0F60 0780 0780 0F80 1BC0 31C0 61E0 E0E0 E0F0 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 14 0 BBX 16 18 0 -5 BITMAP 3E0F 0E07 0F07 0706 070E 070C 0798 07B0 03A0 03E0 03C0 0380 0300 0200 0600 0C00 3800 F800 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 14 0 BBX 14 13 1 0 BITMAP 1FFC 1838 3070 00F0 01E0 03C0 0780 0F00 1E00 3C00 7C18 7830 FFF0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 9 0 BBX 9 21 2 -4 BITMAP 0780 0E00 0E00 1E00 1E00 1E00 1E00 1C00 1C00 3800 E000 3000 3800 3800 7800 7000 F000 F000 E000 E000 3800 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 6 0 BBX 6 21 2 -4 BITMAP 0C 0C 0C 18 18 18 18 18 30 30 30 30 30 60 60 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 9 0 BBX 9 21 1 -4 BITMAP 0E00 0780 0380 0780 0780 0700 0F00 0E00 0E00 0600 0380 0E00 1C00 1C00 3C00 3C00 3C00 3C00 3800 3800 F000 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 15 0 BBX 15 6 1 4 BITMAP 1C02 2602 4304 4184 80C8 8070 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 6 0 BBX 7 18 0 -5 BITMAP 1E 1E 1E 00 00 18 18 38 38 38 38 78 78 78 F0 F0 F0 F0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 3 0 BITMAP 0080 0080 03F0 0DB0 1D30 3930 7100 7100 F300 F200 F200 F200 F200 7E20 3FC0 0400 0400 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 3 0 BITMAP 00F8 038C 038C 0708 0700 0F00 0F00 3FC0 0E00 0E00 1E00 1C00 1800 3000 FFE0 FFE0 FFE0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 16 0 BBX 17 15 1 1 BITMAP 100080 180100 0C0600 07FC00 061800 0C0C00 0C0C00 080C00 080C00 0C1800 0C3000 1FF800 300800 400400 800200 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 15 0 BBX 16 17 3 0 BITMAP FE1F 7804 3C08 3C10 1E20 1E40 0F80 0F00 3FE0 0F00 0F00 7FC0 0E00 0E00 1E00 1E00 7F00 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 6 0 BBX 6 21 2 -4 BITMAP 0C 0C 0C 18 18 18 18 18 30 30 00 30 30 60 60 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 15 0 BBX 14 22 2 -5 BITMAP 03FC 061C 0C0C 1C08 1C00 1E00 1F80 07E0 1BF0 10F8 3038 3830 3C30 3F60 1FC0 07E0 01F0 00F0 40E0 C0E0 E1C0 7F00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 14 0 BBX 8 2 7 15 BITMAP E7 E7 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 20 0 BBX 18 17 3 0 BITMAP 03F000 0C0C00 100300 200100 40F880 430C40 860840 8E0040 8C0040 8C0040 8C0040 461040 43F080 200100 100300 0C0C00 03F000 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 3 8 BITMAP 0FC0 39C0 71C0 63C0 E780 E780 EB80 F380 67C0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 13 0 BBX 12 11 2 1 BITMAP 0420 0E70 1CE0 39C0 7380 E700 7380 7380 39C0 18C0 1080 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 15 0 BBX 14 8 2 3 BITMAP FFFC 000C 000C 000C 0008 0018 0018 0018 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 2 8 BITMAP FC ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 15 0 BBX 11 11 4 6 BITMAP 1F00 20C0 4040 9F20 89A0 8920 8E20 9A20 5340 2080 1F00 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 14 0 BBX 8 1 7 16 BITMAP FF ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 6 0 BBX 4 4 5 13 BITMAP 60 90 90 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 15 0 BBX 16 14 0 0 BITMAP 0060 0040 0040 00C0 00C0 3FFF 0080 0180 0180 0180 0180 0000 0000 FFFC ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 -14 7 BITMAP 1F00 3380 2180 0380 0700 0C00 3000 4000 FF00 FE00 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 -14 7 BITMAP 3E 23 23 06 38 06 06 86 8E F8 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 14 0 BBX 6 3 9 14 BITMAP 3C 70 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 2 -4 BITMAP 7E7E 1E1E 1C1E 1C1C 3C1C 3C3C 3C3C 387C 38F8 78B8 79F8 7F78 7E7E 7000 F000 F000 F000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 15 0 BBX 11 21 4 -4 BITMAP 3FE0 7C40 FC40 FC40 FCC0 FC80 7880 7880 1880 0980 0900 1100 1100 1100 1300 1200 2200 2200 2200 2200 6400 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 15 0 BBX 3 3 7 6 BITMAP E0 E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 14 0 BBX 4 6 4 -5 BITMAP 20 60 70 30 30 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 -15 7 BITMAP 3C 0C 18 18 18 18 18 30 30 FC ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 11 0 BBX 11 9 3 8 BITMAP 0F80 19C0 30E0 60E0 E0C0 E1C0 E180 E300 7C00 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 13 0 BBX 12 11 1 1 BITMAP 1080 3180 39C0 1CE0 1CE0 0E70 1CE0 39C0 7380 E700 4200 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 20 0 BBX 19 17 4 0 BITMAP 3C00E0 0C0180 180300 180600 180C00 181800 183000 3060C0 30E1C0 FCC280 018580 030980 061180 0C3FC0 180300 300300 E00780 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 20 0 BBX 19 17 4 0 BITMAP 3C00E0 0C0180 180300 180600 180C00 181800 183000 306F80 30F9C0 FCD0C0 0181C0 030380 060600 0C1800 182000 307F80 E07F00 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 20 0 BBX 20 17 5 0 BITMAP 3E0070 2300C0 230180 060300 380600 060C00 061800 863060 8E70E0 F86140 00C2C0 0184C0 0308C0 061FE0 0C0180 180180 7003C0 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 12 0 BBX 11 18 0 -5 BITMAP 01E0 01E0 01E0 0000 0000 03C0 0380 0380 0700 0C00 1800 3000 7000 F000 F060 F040 78C0 3F80 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 18 0 BBX 19 21 0 0 BITMAP 003C00 000C00 000600 000000 000C00 001C00 003C00 003E00 007E00 00CE00 008E00 018F00 010F00 020F00 060700 07FF00 080780 180780 100380 3003C0 F80FE0 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 18 0 BBX 19 21 0 0 BITMAP 000780 000E00 001800 000000 000C00 001C00 003C00 003E00 007E00 00CE00 008E00 018F00 010F00 020F00 060700 07FF00 080780 180780 100380 3003C0 F80FE0 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 18 0 BBX 19 21 0 0 BITMAP 000F00 001B00 006180 000000 000C00 001C00 003C00 003E00 007E00 00CE00 008E00 018F00 010F00 020F00 060700 07FF00 080780 180780 100380 3003C0 F80FE0 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 18 0 BBX 19 21 0 0 BITMAP 001C40 003F80 004700 000000 000C00 001C00 003C00 003E00 007E00 00CE00 008E00 018F00 010F00 020F00 060700 07FF00 080780 180780 100380 3003C0 F80FE0 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 18 0 BBX 19 20 0 0 BITMAP 007380 007380 000000 000C00 001C00 003C00 003E00 007E00 00CE00 008E00 018F00 010F00 020F00 060700 07FF00 080780 180780 100380 3003C0 F80FE0 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 18 0 BBX 19 22 0 0 BITMAP 000600 000900 000900 000600 000000 000C00 001C00 003C00 003E00 007E00 00CE00 008E00 018F00 010F00 020F00 060700 07FF00 080780 180780 100380 3003C0 F80FE0 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 23 0 BBX 25 17 0 0 BITMAP 0003FF80 00078180 000B8100 001F8000 00378000 00278000 00478000 00C70400 018FFC00 010F0C00 020F0000 07FE0000 0C0E0000 181E0000 101E0600 301E0C00 F87FFC00 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 18 0 BBX 17 22 2 -5 BITMAP 00FF00 038380 0E0180 1C0100 3C0300 380000 780000 700000 F00000 F00000 F00000 F00000 F00000 700000 780000 3C0C00 0FF000 0C0000 0E0000 060000 060000 1C0000 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 15 0 BBX 16 21 1 0 BITMAP 00F0 0030 0018 0000 1FFF 0783 0702 0700 0F00 0F00 0F00 0E08 0FF8 1E10 1E00 1E00 1C00 1C00 3C0C 3C18 FFF8 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 15 0 BBX 16 21 1 0 BITMAP 001E 0038 0060 0000 1FFF 0783 0702 0700 0F00 0F00 0F00 0E08 0FF8 1E10 1E00 1E00 1C00 1C00 3C0C 3C18 FFF8 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 15 0 BBX 16 21 1 0 BITMAP 0078 00D8 030C 0000 1FFF 0783 0702 0700 0F00 0F00 0F00 0E08 0FF8 1E10 1E00 1E00 1C00 1C00 3C0C 3C18 FFF8 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 15 0 BBX 16 20 1 0 BITMAP 01CE 01CE 0000 1FFF 0783 0702 0700 0F00 0F00 0F00 0E08 0FF8 1E10 1E00 1E00 1C00 1C00 3C0C 3C18 FFF8 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 9 0 BBX 11 21 1 0 BITMAP 0780 0180 00C0 0000 1FE0 0780 0780 0700 0700 0F00 0F00 0F00 0E00 1E00 1E00 1E00 1C00 1C00 3C00 3C00 FF00 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 9 0 BBX 12 21 1 0 BITMAP 00F0 01C0 0300 0000 1FE0 0780 0780 0700 0700 0F00 0F00 0F00 0E00 1E00 1E00 1E00 1C00 1C00 3C00 3C00 FF00 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 9 0 BBX 11 21 1 0 BITMAP 03C0 06C0 1860 0000 1FE0 0780 0780 0700 0700 0F00 0F00 0F00 0E00 1E00 1E00 1E00 1C00 1C00 3C00 3C00 FF00 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 9 0 BBX 12 20 1 0 BITMAP 0E70 0E70 0000 1FE0 0780 0780 0700 0700 0F00 0F00 0F00 0E00 1E00 1E00 1E00 1C00 1C00 3C00 3C00 FF00 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 20 0 BBX 20 17 1 0 BITMAP 1FFF00 0783C0 0781E0 0700F0 0700F0 0F00F0 0F00F0 0F00F0 7FF0F0 1E00E0 1E00E0 1E01E0 1E01C0 1C0380 3C0700 3C1E00 FFF800 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 19 0 BBX 21 21 1 0 BITMAP 003880 007F00 008E00 000000 1F01F8 078060 078060 07C040 0DC0C0 0DE0C0 0CE0C0 0CF0C0 087080 187980 183D80 183D80 181F80 100F00 300F00 300700 FC0700 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 20 0 BBX 18 21 3 0 BITMAP 00F000 003000 001800 000000 00FC00 038700 0E0380 1C03C0 3C03C0 3803C0 7803C0 7003C0 F003C0 F003C0 F00380 F00780 F00700 F00E00 701C00 383000 0FC000 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 20 0 BBX 18 21 3 0 BITMAP 001E00 003800 006000 000000 00FC00 038700 0E0380 1C03C0 3C03C0 3803C0 7803C0 7003C0 F003C0 F003C0 F00380 F00780 F00700 F00E00 701C00 383000 0FC000 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 20 0 BBX 18 21 3 0 BITMAP 003C00 006C00 018600 000000 00FC00 038700 0E0380 1C03C0 3C03C0 3803C0 7803C0 7003C0 F003C0 F003C0 F00380 F00780 F00700 F00E00 701C00 383000 0FC000 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 20 0 BBX 18 21 3 0 BITMAP 007100 00FE00 011C00 000000 00FC00 038700 0E0380 1C03C0 3C03C0 3803C0 7803C0 7003C0 F003C0 F003C0 F00380 F00780 F00700 F00E00 701C00 383000 0FC000 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 20 0 BBX 18 20 3 0 BITMAP 01CE00 01CE00 000000 00FC00 038700 0E0380 1C03C0 3C03C0 3803C0 7803C0 7003C0 F003C0 F003C0 F00380 F00780 F00700 F00E00 701C00 383000 0FC000 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 15 0 BBX 16 14 1 0 BITMAP 1002 3807 1C0E 0C18 0630 0360 03C0 03C0 06C0 0C60 1830 7038 E01C 4008 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 20 0 BBX 21 17 1 0 BITMAP 003F18 01C3E0 0381E0 0700E0 0E03F0 1C06F0 1C0CF0 3C18F0 3C20E0 3841E0 3881E0 7901C0 3E0380 3C0380 3C0600 3E1C00 C7F000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 19 0 BBX 18 21 4 0 BITMAP 01E000 006000 003000 000000 FF0FC0 3C0300 380200 380200 780200 780600 780400 700400 700400 F00400 F00800 F00800 F00800 F01000 701000 786000 1F8000 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 19 0 BBX 18 21 4 0 BITMAP 003C00 007000 00C000 000000 FF0FC0 3C0300 380200 380200 780200 780600 780400 700400 700400 F00400 F00800 F00800 F00800 F01000 701000 786000 1F8000 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 19 0 BBX 18 21 4 0 BITMAP 00F000 01B000 061800 000000 FF0FC0 3C0300 380200 380200 780200 780600 780400 700400 700400 F00400 F00800 F00800 F00800 F01000 701000 786000 1F8000 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 19 0 BBX 18 20 4 0 BITMAP 039C00 039C00 000000 FF0FC0 3C0300 380200 380200 780200 780600 780400 700400 700400 F00400 F00800 F00800 F00800 F01000 701000 786000 1F8000 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 16 0 BBX 16 21 3 0 BITMAP 0078 00E0 0180 0000 FE1F 7804 380C 3C18 3C30 1E20 1E40 0EC0 0F80 0F00 0F00 0F00 0E00 0E00 1E00 1E00 7F80 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 15 0 BBX 16 17 1 0 BITMAP 1FE0 0780 0780 07FC 071E 0F0F 0F0F 0F0F 0E0F 1E0E 1E0E 1E1C 1E38 1FE0 3C00 3C00 FF00 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 16 0 BBX 14 24 2 -5 BITMAP 01F0 0738 0638 0E38 0E38 0E30 1E60 1CC0 1CC0 1DE0 1CF0 3CF0 3878 383C 381C 381C 791C 7B38 73F0 7000 7000 F000 F000 E000 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 2 0 BITMAP 01E0 0060 0030 0000 03FC 043C 183C 3838 3838 7078 70F8 F0F8 F170 F370 FEF0 FCF0 70FC ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 2 0 BITMAP 003C 0070 00C0 0000 03FC 043C 183C 3838 3838 7078 70F8 F0F8 F170 F370 FEF0 FCF0 70FC ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 2 0 BITMAP 00F0 01B0 0618 0000 03FC 043C 183C 3838 3838 7078 70F8 F0F8 F170 F370 FEF0 FCF0 70FC ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 2 0 BITMAP 01C4 03F8 0470 0000 03FC 043C 183C 3838 3838 7078 70F8 F0F8 F170 F370 FEF0 FCF0 70FC ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 15 0 BBX 14 16 2 0 BITMAP 039C 039C 0000 03FC 043C 183C 3838 3838 7078 70F8 F0F8 F170 F370 FEF0 FCF0 70FC ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 2 0 BITMAP 0060 0090 0090 0060 0000 03FC 043C 183C 3838 3838 7078 70F8 F0F8 F170 F370 FEF0 FCF0 70FC ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 22 0 BBX 20 13 2 0 BITMAP 03FFE0 0C7CF0 183870 383870 387870 7070E0 7071C0 F0FF00 F1F000 F37000 F67010 FC3870 781F80 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 13 0 BBX 12 18 2 -5 BITMAP 03F0 0E30 1C30 3830 7000 7000 F000 F000 F000 F000 F000 7040 3F80 1800 1C00 0C00 0C00 3800 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 13 0 BBX 12 17 2 0 BITMAP 0780 0180 00C0 0000 03C0 0CE0 18F0 30F0 70E0 70E0 F380 FF00 F000 F000 F030 7860 3F80 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 13 0 BBX 12 17 2 0 BITMAP 00F0 01C0 0300 0000 03C0 0CE0 18F0 30F0 70E0 70E0 F380 FF00 F000 F000 F030 7860 3F80 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 13 0 BBX 12 17 2 0 BITMAP 01E0 0360 0C30 0000 03C0 0CE0 18F0 30F0 70E0 70E0 F380 FF00 F000 F000 F030 7860 3F80 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 13 0 BBX 12 16 2 0 BITMAP 0E70 0E70 0000 03C0 0CE0 18F0 30F0 70E0 70E0 F380 FF00 F000 F000 F030 7860 3F80 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 8 0 BBX 7 17 2 0 BITMAP 3C 0C 06 00 FC 3C 3C 38 38 78 78 78 70 70 F0 F0 FC ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 8 0 BBX 9 17 2 0 BITMAP 0780 0E00 1800 0000 FC00 3C00 3C00 3800 3800 7800 7800 7800 7000 7000 F000 F000 FC00 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 8 0 BBX 9 17 2 0 BITMAP 0F00 1B00 6180 0000 FC00 3C00 3C00 3800 3800 7800 7800 7800 7000 7000 F000 F000 FC00 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 8 0 BBX 9 16 2 0 BITMAP 7380 7380 0000 FC00 3C00 3C00 3800 3800 7800 7800 7800 7000 7000 F000 F000 FC00 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 15 0 BBX 13 19 2 0 BITMAP 0010 0020 1FC0 03E0 0FF0 0470 03F8 0C78 1878 3838 7038 7038 F038 F070 F070 F060 F0C0 7980 3E00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 2 0 BITMAP 01C4 03F8 0470 0000 FC38 3C7C 3DFC 39BC 3A3C 3C38 7C38 7838 7078 7078 7070 F070 F0FC ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 2 0 BITMAP 03C0 00C0 0060 0000 03E0 0C70 1C38 3838 7038 7038 F038 F078 F070 F060 F0E0 7980 3E00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 2 0 BITMAP 0078 00E0 0180 0000 03E0 0C70 1C38 3838 7038 7038 F038 F078 F070 F060 F0E0 7980 3E00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 2 0 BITMAP 00F0 01B0 0618 0000 03E0 0C70 1C38 3838 7038 7038 F038 F078 F070 F060 F0E0 7980 3E00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 2 0 BITMAP 01C4 03F8 0470 0000 03E0 0C70 1C38 3838 7038 7038 F038 F078 F070 F060 F0E0 7980 3E00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 14 0 BBX 13 16 2 0 BITMAP 0738 0738 0000 03E0 0C70 1C38 3838 7038 7038 F038 F078 F070 F060 F0E0 7980 3E00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 15 0 BBX 14 13 2 0 BITMAP 0180 0180 0380 0000 0000 0000 FFFC 0000 0000 0000 0700 0600 0600 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 14 0 BBX 16 13 1 0 BITMAP 01F7 063C 0C3C 1C3C 387C 38DC 791C 7A1C 7C38 7830 7860 38C0 DF00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 2 0 BITMAP 03C0 00C0 0060 0000 FCFC 383C 3838 7838 7878 7078 70F8 70F0 F170 F670 FEF0 FCF0 70FC ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 2 0 BITMAP 0078 00E0 0180 0000 FCFC 383C 3838 7838 7878 7078 70F8 70F0 F170 F670 FEF0 FCF0 70FC ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 2 0 BITMAP 00F0 01B0 0618 0000 FCFC 383C 3838 7838 7878 7078 70F8 70F0 F170 F670 FEF0 FCF0 70FC ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 16 0 BBX 14 16 2 0 BITMAP 0738 0738 0000 FCFC 383C 3838 7838 7878 7078 70F8 70F0 F170 F670 FEF0 FCF0 70FC ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 14 0 BBX 16 22 0 -5 BITMAP 001E 0038 0060 0000 3E0F 0E07 0F07 0706 070E 070C 0798 07B0 03A0 03E0 03C0 0380 0300 0200 0600 0C00 3800 F800 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 15 0 BBX 15 21 1 -5 BITMAP 3F00 0E00 0E00 1E1C 1E7E 1EFE 1D9E 1D1E 3E1E 3C1C 3C1C 3838 3838 7830 7840 7F80 7000 7000 F000 F000 F000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 14 0 BBX 16 21 0 -5 BITMAP 01CE 01CE 0000 3E0F 0E07 0F07 0706 070E 070C 0798 07B0 03A0 03E0 03C0 0380 0300 0200 0600 0C00 3800 F800 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 16 24 1 -5 BITMAP 00FF 030F 070F 0E0E 0E0E 0E0E 3FDE 1E1E 1C1C 1C1C 1C1C 3C3C 3C3C 3838 3838 3838 7878 7878 707C 7000 7000 F000 F000 F000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 1 2 8 BITMAP FFC0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 12 21 4 -4 BITMAP 0380 0380 0780 0700 0700 0700 E730 FFF0 CE70 0E00 0E00 0E00 1E00 1C00 1C00 1C00 1C00 3C00 3C00 3800 3800 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 16 21 2 0 BITMAP 0186 00D8 00F0 0000 0FFF 0C1E 183E 003C 0078 00F0 01F0 01E0 03C0 0780 0F80 0F00 1E00 3C00 780C F818 FFF8 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 22 0 BBX 21 13 2 0 BITMAP 03E1E0 0C7670 183C78 383C38 703870 703870 F039C0 F07F00 F07000 F07800 F0F810 71FC70 3F1FC0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 16 20 3 0 BITMAP 0738 0738 0000 FE1F 7804 380C 3C18 3C30 1E20 1E40 0EC0 0F80 0F00 0F00 0F00 0E00 0E00 1E00 1E00 7F80 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 13 2 0 BITMAP FC 3C 3C 38 38 78 78 78 70 70 F0 F0 FC ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 9 17 1 0 BITMAP 3F00 0F00 0E00 0E00 0E00 1E00 1E00 1F80 1E00 FC00 3C00 3C00 3800 3800 7800 7800 7C00 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 1 0 BITMAP 1FE0 0780 0700 0700 0F00 0F00 0FC0 0F80 3E00 5E00 1E00 1E00 1C00 1C0C 3C0C 3C0C FFF8 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 13 21 3 -4 BITMAP 01C0 01C0 01C0 0380 0380 3398 3FF8 7318 0700 0700 0700 0700 E730 FFE0 CE60 0E00 0E00 0E00 1E00 1C00 1C00 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 16 24 1 -5 BITMAP 01F0 0330 0737 0E27 0E2E 0E00 3FFE 1E1E 1C1C 1C1C 1C1C 3C3C 3C3C 3838 3838 3838 7878 7878 707E 7000 7000 F000 F000 F000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 11 1 1 BITMAP 10 30 38 1C 1C 0E 1C 38 70 E0 40 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 26 0 BBX 25 17 3 0 BITMAP 00FBFF80 030F8180 0E078100 1C078000 3C078000 38078000 78070000 70070600 F00FFC00 F00F0C00 F00F0000 F00E0000 F01E0000 701E0000 781E0600 3C3E0C00 0FFFFC00 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 24 0 BBX 22 1 2 7 BITMAP FFFFFC ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 8 3 7 14 BITMAP C3 6C 78 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 4 3 5 -4 BITMAP 60 C0 F0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 9 3 8 14 BITMAP 1F80 2600 D800 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 11 2 1 BITMAP 04 0E 1C 38 70 E0 70 70 38 18 10 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 3 3 9 14 BITMAP E0 E0 E0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 8 3 7 14 BITMAP 83 FE 7C ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 8 5 4 BITMAP 3C 7E FF FF FF FF 7E 3C ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 9 3 6 14 BITMAP 3880 7F00 8E00 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 8 3 7 14 BITMAP 1E 36 C3 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 6 3 11 BITMAP 39C0 7380 6300 7380 F780 F780 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 4 11 BITMAP F0 E0 60 60 60 60 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 13 17 1 0 BITMAP 0618 0360 03C0 0000 07E0 1C60 1860 3C60 1C00 1E00 0F00 0780 03C0 C1C0 C3C0 C380 7E00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 4 4 9 15 BITMAP 60 90 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 10 1 -5 BITMAP 78 78 78 70 70 30 30 70 E0 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 13 21 5 -4 BITMAP 01F8 0318 0718 0E10 0E00 1E00 1E00 1C00 FF80 3C00 3C00 3C00 3800 3800 7800 7800 7800 7000 7000 F000 F000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 25 0 BBX 24 9 3 8 BITMAP FFDF0F 8C471C 8C4FBC 1C0FBC 1C0FDC 1C0DDC 1C0D98 181938 7E383C ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 19 17 -6 0 BITMAP 0000E0 000180 000300 000600 000C00 001800 003000 006000 00E000 00C000 018000 030000 060000 0C0000 180000 300000 E00000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 5 3 8 14 BITMAP F0 30 18 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 28 0 BBX 27 17 2 0 BITMAP 1E01C000 33038000 73070000 638E0000 631C0000 E3180000 67300000 66600000 3CC00000 018F0780 03198CC0 0639DCE0 0C31D8E0 1C3198C0 383398C0 70331980 E01E0F00 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 24 0 BBX 19 3 3 0 BITMAP E0E0E0 E0E0E0 E0E0E0 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 6 3 11 BITMAP 7BC0 7BC0 7380 3180 7380 E700 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 21 2 0 BITMAP 030C 01B0 01E0 0000 03F8 0E1C 1C0C 1C08 1C00 1E00 1F00 0F80 07E0 03F0 01F0 00F0 0070 40F0 C0E0 E1C0 7F00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 0 -5 BITMAP 79C0 7BC0 73C0 7380 3180 3180 6300 E700 8400 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 1 0 BITMAP 030C 01B0 01E0 0000 1FFC 1838 3070 00F0 01E0 03C0 0780 0F00 1E00 3C00 7C18 7830 FFF0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lubI08.bdf100644 1750 1750 54021 5413747477 15022 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-Medium-I-Normal--8-80-75-75-P-45-ISO8859-1 SIZE 8 72 72 FONTBOUNDINGBOX 13 11 -4 -3 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "Medium" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 8 POINT_SIZE 80 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 45 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 7 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 2 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 2 0 BBX 2 6 1 0 BITMAP 40 40 40 40 00 80 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 3 0 BBX 2 2 2 4 BITMAP C0 C0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 28 F8 50 F8 A0 A0 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 5 0 BBX 3 7 2 -1 BITMAP 60 40 40 40 C0 C0 80 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 48 F0 70 58 58 90 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP 30 30 30 EC 98 F8 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 2 0 BBX 1 2 2 4 BITMAP 80 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 2 0 BBX 3 8 1 -2 BITMAP 60 40 80 80 80 80 80 80 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 2 0 BBX 3 9 0 -2 BITMAP 40 20 20 20 20 20 40 80 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 4 0 BBX 3 3 1 3 BITMAP 40 E0 C0 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 0 BITMAP 20 20 F8 40 40 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 2 0 BBX 1 3 1 -2 BITMAP 80 80 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 5 0 BBX 5 1 0 2 BITMAP F8 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 2 0 BBX 1 1 1 0 BITMAP 80 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 4 0 BBX 5 8 0 -2 BITMAP 08 10 10 30 40 40 80 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 70 50 90 90 90 60 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP 60 20 40 40 40 E0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 70 50 30 40 80 E0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 70 50 60 10 90 E0 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 30 50 90 F0 20 70 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 70 40 60 10 90 E0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 30 40 F0 90 90 60 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 70 20 20 40 80 80 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 60 50 60 A0 A0 E0 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 70 90 90 70 30 E0 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 2 0 BBX 2 4 0 0 BITMAP 40 00 00 80 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 2 0 BBX 2 6 0 -2 BITMAP 40 00 00 80 80 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 0 BITMAP 08 30 C0 20 10 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 5 0 BBX 5 2 0 1 BITMAP F8 F8 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 40 30 08 30 C0 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 1 0 BITMAP E0 A0 60 40 80 80 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 38 74 D4 D4 F8 70 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 10 18 28 78 88 CC ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 78 48 70 48 48 F0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 38 48 80 80 80 70 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 78 44 44 44 48 F0 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 78 28 70 40 50 F0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 4 0 BBX 5 6 0 0 BITMAP 78 28 70 40 40 C0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 38 48 80 98 90 70 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 6 0 BBX 7 6 0 0 BITMAP 66 24 7C 44 48 CC ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 0 0 BITMAP 60 40 40 40 40 C0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 3 0 BBX 5 8 0 -2 BITMAP 38 10 10 10 20 20 A0 C0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 6C 28 70 70 50 D8 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 60 40 40 40 50 F0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 7 0 BBX 8 6 0 0 BITMAP 63 66 6E 5A 54 C6 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 6 0 BBX 7 6 0 0 BITMAP 46 64 54 54 4C C8 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP 38 44 84 88 88 70 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 78 48 48 70 40 C0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 -2 BITMAP 38 4C 84 88 88 70 10 1C ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 78 48 48 70 50 C8 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 1 0 BITMAP 70 50 40 20 90 E0 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP F8 A8 20 20 40 E0 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP CC 88 88 88 88 F0 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 5 0 BBX 6 6 1 0 BITMAP CC 4C 48 50 60 20 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 1 0 BITMAP D6 96 74 7C 58 50 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 5 0 BBX 6 6 0 0 BITMAP 64 28 10 30 50 D8 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP C8 58 70 60 40 E0 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 78 50 20 20 50 F0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 2 0 BBX 3 8 0 -2 BITMAP 60 40 40 40 40 80 80 C0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 4 0 BBX 2 8 1 -2 BITMAP 80 80 80 80 80 40 40 40 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 2 0 BBX 3 8 0 -2 BITMAP 60 20 20 40 40 40 40 C0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 1 BITMAP 10 30 58 48 88 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 4 0 BBX 3 1 1 -1 BITMAP E0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 2 0 BBX 1 2 2 4 BITMAP 80 80 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 1 0 BITMAP 70 90 B0 F0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP C0 40 70 50 90 E0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 1 0 BITMAP 70 90 80 E0 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 18 08 70 90 90 F8 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 1 0 BITMAP 60 A0 F0 E0 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 3 0 BBX 4 8 1 -2 BITMAP 30 50 60 40 40 40 80 80 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 -2 BITMAP 38 48 90 F0 90 E0 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP C0 40 70 50 90 90 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 2 0 BBX 2 6 1 0 BITMAP 40 00 C0 80 80 C0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 3 0 BBX 4 8 0 -2 BITMAP 10 00 30 20 20 20 A0 C0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 1 0 BITMAP C0 40 70 40 A0 B0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 2 0 BBX 2 6 1 0 BITMAP C0 40 40 40 80 C0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 8 0 BBX 7 4 1 0 BITMAP F6 7A D2 96 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 1 0 BITMAP F0 D0 90 90 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 1 0 BITMAP 70 90 90 E0 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 -2 BITMAP F8 68 48 70 80 80 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 -2 BITMAP 70 90 B0 E0 20 20 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 1 0 BITMAP F0 70 C0 80 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 0 0 BITMAP 60 60 A0 E0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 1 0 BITMAP 40 40 E0 80 80 C0 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 1 0 BITMAP D0 90 B0 F0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 4 0 BBX 5 4 0 0 BITMAP C8 50 70 60 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 6 0 BBX 6 5 1 0 BITMAP 04 94 74 7C 48 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 0 0 BITMAP D0 60 60 90 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 4 0 BBX 5 6 0 -2 BITMAP C8 48 30 30 60 80 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 1 0 BITMAP 70 60 50 E0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 1 -2 BITMAP 60 40 40 80 80 80 80 80 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 2 0 BBX 2 8 0 -2 BITMAP 40 40 40 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 1 -2 BITMAP 60 20 20 20 40 40 40 80 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 5 0 BBX 6 2 1 1 BITMAP 64 9C ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 2 0 BBX 2 6 0 -2 BITMAP 40 00 80 80 80 80 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 10 70 90 A0 A0 F0 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 30 50 40 60 40 E0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 5 0 BBX 6 6 0 0 BITMAP 4C 38 50 50 F0 88 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP C8 48 50 E0 E0 C0 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 2 0 BBX 2 8 0 -2 BITMAP 40 40 40 40 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 5 0 BBX 3 8 1 -2 BITMAP 60 E0 80 E0 E0 20 A0 C0 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 4 0 BBX 2 1 2 5 BITMAP C0 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 78 BC D4 C4 B4 78 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 3 0 BBX 3 4 1 2 BITMAP 60 A0 E0 E0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 1 -1 BITMAP 30 E0 A0 A0 40 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 5 0 BBX 5 2 1 1 BITMAP F8 08 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 3 0 BBX 2 1 1 2 BITMAP C0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 5 0 BBX 6 4 2 2 BITMAP 78 B4 B4 78 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 4 0 BBX 2 1 2 5 BITMAP C0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 2 0 BBX 1 2 1 4 BITMAP 80 80 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 10 78 20 00 F8 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 3 0 BBX 3 3 -3 3 BITMAP 60 40 E0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 -4 3 BITMAP 40 C0 C0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 4 0 BBX 2 1 3 5 BITMAP C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 -2 BITMAP D8 48 70 F8 80 80 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 5 0 BBX 3 8 1 -2 BITMAP E0 E0 E0 60 60 60 60 60 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 2 2 BITMAP 80 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 4 0 BBX 1 2 1 -2 BITMAP 80 80 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 -4 3 BITMAP 40 40 C0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 3 0 BBX 3 4 1 2 BITMAP 60 A0 A0 C0 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 1 0 BITMAP 20 50 50 50 E0 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 44 48 D0 24 5C 8C ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 44 48 D0 2C 48 9C ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 44 C8 D0 24 5C 8C ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 0 -2 BITMAP 20 20 60 C0 A0 E0 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 08 10 18 28 78 88 CC ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 0C 10 18 28 78 88 CC ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 1C 10 18 28 78 88 CC ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 1C 10 18 28 78 88 CC ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 18 10 18 28 78 88 CC ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP 08 14 18 18 28 78 88 CC ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 7 0 BBX 8 6 0 0 BITMAP 0F 19 28 4E FA DE ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 -2 BITMAP 38 48 80 80 80 70 40 40 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 10 78 28 70 40 50 F0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 10 78 28 70 40 50 F0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 28 78 28 70 40 50 F0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 30 78 28 70 40 50 F0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 3 0 BBX 3 7 0 0 BITMAP 20 60 40 40 40 40 C0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 3 0 BBX 4 7 0 0 BITMAP 30 60 40 40 40 40 C0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 3 0 BBX 4 7 0 0 BITMAP 70 60 40 40 40 40 C0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 3 0 BBX 3 7 0 0 BITMAP 60 60 40 40 40 40 C0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 78 44 E4 44 48 F0 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 6 0 BBX 7 7 0 0 BITMAP 1C 46 64 54 54 4C C8 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 1 0 BITMAP 10 38 44 84 88 88 70 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 1 0 BITMAP 10 38 44 84 88 88 70 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 1 0 BITMAP 28 38 44 84 88 88 70 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 1 0 BITMAP 38 38 44 84 88 88 70 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 1 0 BITMAP 18 38 44 84 88 88 70 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 48 50 20 50 90 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 6 0 BBX 7 6 0 0 BITMAP 3E 64 54 F4 48 B0 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 1 0 BITMAP 10 CC 88 88 88 88 F0 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 1 0 BITMAP 18 CC 88 88 88 88 F0 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 1 0 BITMAP 38 CC 88 88 88 88 F0 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 1 0 BITMAP 30 CC 88 88 88 88 F0 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 1 0 BITMAP 30 C8 58 70 60 40 E0 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 60 38 48 48 70 C0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 1 -2 BITMAP 30 50 60 70 50 B0 80 80 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 20 70 90 B0 F0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 20 70 90 B0 F0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 50 70 90 B0 F0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 0 BITMAP 38 70 90 B0 F0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 30 70 90 B0 F0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 20 50 70 90 B0 F0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 7 0 BBX 7 4 1 0 BITMAP 7C 94 BE D8 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 1 -2 BITMAP 70 90 80 E0 40 40 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 1 0 BITMAP 20 60 A0 F0 E0 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 1 0 BITMAP 30 60 A0 F0 E0 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 1 0 BITMAP 70 60 A0 F0 E0 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 1 0 BITMAP 30 60 A0 F0 E0 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 2 0 BBX 2 5 1 0 BITMAP 40 C0 40 80 C0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 2 0 BBX 3 5 1 0 BITMAP 60 C0 40 80 C0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 2 0 BBX 3 5 1 0 BITMAP E0 C0 40 80 C0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 2 0 BBX 3 5 1 0 BITMAP 60 C0 40 80 C0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 1 0 BITMAP 70 50 70 90 90 E0 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 70 B0 D0 90 90 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 1 0 BITMAP 20 70 90 90 E0 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 1 0 BITMAP 20 70 90 90 E0 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 1 0 BITMAP 50 70 90 90 E0 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 1 0 BITMAP 70 70 90 90 E0 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 1 0 BITMAP 30 70 90 90 E0 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 0 BITMAP 20 00 F8 20 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 4 0 BBX 5 4 0 0 BITMAP 38 70 D0 E0 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 20 D0 90 B0 F0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 30 D0 90 B0 F0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 70 D0 90 B0 F0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 30 D0 90 B0 F0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 4 0 BBX 5 7 0 -2 BITMAP 18 C8 48 30 30 60 80 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 0 -2 BITMAP 40 40 78 68 48 70 80 80 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 4 0 BBX 5 7 0 -2 BITMAP 18 C8 48 30 30 60 80 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 1 -2 BITMAP 38 48 70 50 50 58 80 80 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 1 1 2 BITMAP E0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 1 -2 BITMAP 20 20 F0 40 40 40 40 40 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 1 0 BITMAP 30 78 50 20 20 50 F0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 4 1 0 BITMAP 6C 9C A2 DC ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 1 0 BITMAP 30 C8 58 70 60 40 E0 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 2 4 1 0 BITMAP C0 40 80 C0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 3 6 0 0 BITMAP 60 40 C0 60 40 C0 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 0 0 BITMAP 60 20 60 C0 50 F0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 1 -2 BITMAP 20 20 F0 40 40 F0 40 40 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 1 -2 BITMAP 38 50 78 50 50 58 80 80 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 1 0 BITMAP 40 40 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 6 1 0 BITMAP 37 49 8E 88 8A 7E ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 1 1 2 BITMAP FE ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 1 2 5 BITMAP E0 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 1 2 1 -3 BITMAP 80 80 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 1 2 5 BITMAP E0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 1 0 BITMAP 40 80 80 80 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 1 1 3 5 BITMAP 80 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 1 2 5 BITMAP E0 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 2 1 2 BITMAP E0 E0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 1 2 5 BITMAP E0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 1 2 5 BITMAP E0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 3 1 3 BITMAP A0 A0 20 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 1 2 1 4 BITMAP 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 0 0 BITMAP 70 60 60 A0 E0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 3 4 4 BITMAP 40 A0 40 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 1 3 1 -2 BITMAP 80 80 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 1 -2 BITMAP 30 50 40 E0 40 80 80 80 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 3 1 3 BITMAP FA 5C D4 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 6 6 -1 0 BITMAP 04 08 10 20 40 80 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 1 1 3 5 BITMAP 80 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 6 1 0 BITMAP 58 F0 60 5E 5E 94 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 1 1 0 BITMAP 94 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 2 1 4 BITMAP A0 A0 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 5 7 1 0 BITMAP 38 70 50 40 20 90 E0 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 3 0 -2 BITMAP A0 A0 A0 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 5 5 1 0 BITMAP 38 70 60 50 E0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lubI10.bdf100644 1750 1750 56204 5413747500 15003 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-Medium-I-Normal--10-100-75-75-P-57-ISO8859-1 SIZE 10 72 72 FONTBOUNDINGBOX 16 12 -4 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "Medium" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 10 POINT_SIZE 100 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 57 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 9 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 3 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 3 0 BBX 2 8 1 0 BITMAP 40 40 40 40 40 40 00 80 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 4 0 BBX 3 3 2 5 BITMAP E0 C0 C0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 0 BITMAP 14 14 FC 30 30 FC A0 A0 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 2 -1 BITMAP 70 70 20 40 60 50 E0 C0 40 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 1 0 BITMAP 73 54 54 68 16 2A 4A 8E ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 0 BITMAP 18 24 24 78 96 94 8C 7E ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 2 5 BITMAP C0 40 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 3 0 BBX 4 10 1 -2 BITMAP 30 40 40 80 80 80 80 80 80 80 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 3 0 BBX 3 10 0 -2 BITMAP 20 20 20 20 20 20 20 20 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 1 4 BITMAP 20 F0 60 A0 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 1 0 BITMAP 10 10 10 FC 20 20 20 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 0 -2 BITMAP C0 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 6 0 BBX 6 1 1 2 BITMAP FC ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 3 0 BBX 1 1 1 0 BITMAP 80 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 5 0 BBX 6 10 0 -2 BITMAP 04 08 08 10 10 20 20 40 80 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 38 48 48 88 88 88 90 60 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 0 BITMAP 70 10 20 20 20 20 20 F0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 0 BITMAP 38 44 04 08 30 40 80 F8 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 78 48 08 70 10 08 90 E0 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 18 28 48 90 F8 10 10 30 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 78 40 40 70 10 08 90 E0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 38 68 40 F0 88 88 90 60 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 0 BITMAP 7C 04 08 30 20 40 40 80 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 38 48 48 78 98 88 98 70 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 38 48 C8 48 78 08 90 E0 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 3 0 BBX 2 5 1 0 BITMAP 40 00 00 00 80 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 3 0 BBX 3 7 0 -2 BITMAP 60 00 00 00 C0 40 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 1 0 BITMAP 0C 08 30 C0 60 10 08 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 6 0 BBX 6 3 1 1 BITMAP FC 00 FC ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 40 30 08 04 38 20 C0 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 1 0 BITMAP E0 90 10 20 40 80 00 80 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 1 0 BITMAP 1E 61 5D A5 AD B6 80 78 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 08 18 14 24 7C 84 84 CE ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP 7C 24 24 38 48 44 48 F8 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 0 BITMAP 1E 62 40 80 80 80 C0 7C ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 0 0 BITMAP 7E 23 21 21 21 42 46 FC ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP 7C 24 28 38 48 40 48 F8 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 5 0 BBX 6 8 0 0 BITMAP 7C 24 28 78 48 40 40 E0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 0 BITMAP 1E 62 40 80 8E 84 C4 7C ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 8 0 BBX 9 8 0 0 BITMAP 7380 2100 2300 3E00 6200 4200 4200 E700 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 3 0 BBX 4 8 0 0 BITMAP 70 20 20 20 40 40 40 E0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 4 0 BBX 6 10 0 -2 BITMAP 1C 08 08 10 10 10 10 10 A0 E0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 7 0 BBX 8 8 0 0 BITMAP 7B 22 2C 38 30 48 44 EE ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP 78 20 20 20 20 40 44 FC ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 9 0 BBX 10 8 0 0 BITMAP 61C0 3180 3380 5300 5500 4900 4900 C380 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 8 0 BBX 9 8 0 0 BITMAP 6380 3100 5200 4A00 4A00 4600 4600 C400 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 0 BITMAP 1C 66 42 82 82 84 CC 70 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP 7C 24 24 2C 78 40 40 E0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 -2 BITMAP 1C 66 42 82 82 84 CC 70 08 07 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 7E 26 22 24 38 68 44 E6 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 1 0 BITMAP 38 48 40 20 10 10 90 E0 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 2 0 BITMAP FC A4 20 20 20 20 60 E0 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 2 0 BITMAP E6 44 44 84 84 84 88 70 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 0 BITMAP E6 46 44 48 48 50 30 20 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 1 0 BITMAP E980 4900 5900 5A00 6A00 6C00 4C00 4800 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 6 0 BBX 8 8 0 0 BITMAP 33 32 14 18 18 2C 44 CE ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 0 BITMAP E6 44 48 30 30 20 20 70 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 0 BITMAP 7C 48 08 10 20 40 48 F8 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 3 0 BBX 4 10 0 -2 BITMAP 30 20 40 40 40 40 40 80 80 C0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 5 0 BBX 3 10 1 -2 BITMAP 80 80 40 40 40 40 40 40 20 20 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 3 0 BBX 4 10 0 -2 BITMAP 30 10 10 20 20 20 20 20 40 C0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 1 BITMAP 08 18 28 28 44 44 84 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 5 0 BBX 4 1 1 -1 BITMAP F0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 2 5 BITMAP 40 80 80 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 0 BITMAP 38 48 88 90 F8 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 40 40 40 78 68 C8 90 E0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 0 BITMAP 38 50 80 80 F0 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 0 BITMAP 0C 04 08 38 48 88 B8 F8 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 30 50 E0 90 F0 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 4 0 BBX 5 10 1 -2 BITMAP 18 28 20 70 40 40 40 40 80 80 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 -2 BITMAP 3C 44 48 98 68 88 F0 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 40 40 40 58 68 C8 90 98 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 3 0 BBX 2 8 1 0 BITMAP 40 00 00 C0 80 80 80 C0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 3 0 BBX 5 10 0 -2 BITMAP 08 00 00 18 10 10 10 10 A0 C0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 40 40 40 58 60 60 B0 98 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 1 0 BITMAP 60 20 40 40 40 40 80 C0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 9 0 BBX 8 5 1 0 BITMAP FF 6D 49 9A 93 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 0 BITMAP D8 68 48 90 98 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 0 BITMAP 30 48 88 90 E0 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 1 -2 BITMAP 7C F4 64 48 70 80 80 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 -2 BITMAP 38 48 88 90 F0 10 10 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 0 BITMAP D8 68 40 C0 80 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 1 0 BITMAP 70 50 60 A0 E0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 4 0 BBX 3 8 1 0 BITMAP 40 40 40 E0 40 80 80 C0 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 0 BITMAP D8 48 98 B0 F8 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 6 0 BBX 6 5 1 0 BITMAP CC 48 28 30 20 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 8 0 BBX 8 5 1 0 BITMAP C9 59 5A 6C 6C ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP C8 70 20 D0 98 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 -2 BITMAP 44 24 2C 38 20 20 C0 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 0 BITMAP 78 50 20 50 F0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 3 0 BBX 3 10 1 -2 BITMAP 20 40 40 40 40 80 40 80 80 C0 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 2 0 BBX 2 10 1 -2 BITMAP 40 40 40 40 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 3 0 BBX 3 10 1 -2 BITMAP 20 20 20 20 20 40 40 40 40 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 6 0 BBX 8 2 2 2 BITMAP 71 8E ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 3 0 BBX 2 7 1 -2 BITMAP 40 00 80 80 80 80 80 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 10 38 68 A0 A0 A0 F0 40 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 0 BITMAP 1C 14 20 20 70 20 40 F8 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 6 0 BBX 7 8 0 0 BITMAP 42 7C 74 68 48 48 78 84 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 6 0 BBX 7 8 1 0 BITMAP E6 44 38 78 20 F0 20 E0 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 2 0 BBX 2 10 1 -2 BITMAP 40 40 40 40 40 80 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 6 0 BBX 4 10 2 -2 BITMAP 70 50 40 60 B0 90 60 20 A0 E0 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 3 7 BITMAP A0 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 1 0 BITMAP 3C 43 9D A5 A1 9D 43 3C ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 1 3 BITMAP 70 90 A0 E0 F0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 0 BITMAP 28 50 A0 50 50 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 6 0 BBX 6 3 1 1 BITMAP FC 04 04 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 3 0 BBX 2 1 1 2 BITMAP C0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 6 0 BBX 4 5 2 3 BITMAP 70 F0 F0 F0 70 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 3 7 BITMAP E0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 2 5 BITMAP 80 C0 80 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 6 0 BBX 7 7 0 0 BITMAP 10 10 7E 10 10 00 FC ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 -4 4 BITMAP 60 60 80 C0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 -4 4 BITMAP 60 60 A0 C0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 6 0 BBX 2 1 4 7 BITMAP C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 -2 BITMAP CC 44 48 58 6C 80 80 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 6 0 BBX 4 10 2 -2 BITMAP 70 F0 F0 D0 20 20 60 60 60 60 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 6 0 BBX 1 1 3 2 BITMAP 80 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 6 0 BBX 2 2 1 -2 BITMAP 40 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 4 0 BBX 2 4 -4 4 BITMAP 40 40 40 C0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 1 3 BITMAP 70 90 90 90 E0 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 0 BITMAP 50 48 28 50 A0 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 0 BITMAP 42 44 48 D8 22 2E 42 86 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 0 BITMAP 42 44 48 D8 26 26 48 8C ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 0 BITMAP 62 64 A8 D8 22 2E 42 86 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 0 -2 BITMAP 10 00 30 60 C0 90 F0 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 0C 08 18 14 24 7C 84 84 CE ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 06 08 18 14 24 7C 84 84 CE ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 0E 08 18 14 24 7C 84 84 CE ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 0E 08 18 14 24 7C 84 84 CE ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 0A 08 18 14 24 7C 84 84 CE ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 0 0 BITMAP 0C 0C 08 18 14 24 7C 84 84 CE ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 9 0 BBX 10 8 0 0 BITMAP 07C0 0A40 0A80 1780 1480 7C00 4480 CF80 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 1 -2 BITMAP 1E 62 40 80 80 80 C0 7C 20 60 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP 08 7C 24 28 38 48 40 48 F8 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP 08 7C 24 28 38 48 40 48 F8 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP 14 7C 24 28 38 48 40 48 F8 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP 14 7C 24 28 38 48 40 48 F8 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 3 0 BBX 4 9 0 0 BITMAP 10 70 20 20 20 40 40 40 E0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 3 0 BBX 4 9 0 0 BITMAP 20 70 20 20 20 40 40 40 E0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 3 0 BBX 4 9 0 0 BITMAP 50 70 20 20 20 40 40 40 E0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 3 0 BBX 5 9 0 0 BITMAP 28 70 20 20 20 40 40 40 E0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 0 0 BITMAP 7E 23 21 79 21 42 46 FC ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 8 0 BBX 9 9 0 0 BITMAP 0E00 6380 3100 5200 4A00 4A00 4600 4600 C400 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 08 1C 66 42 82 82 84 CC 70 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 08 1C 66 42 82 82 84 CC 70 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 14 1C 66 42 82 82 84 CC 70 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 1C 1C 66 42 82 82 84 CC 70 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 14 1C 66 42 82 82 84 CC 70 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 6 0 BBX 7 7 0 0 BITMAP 42 64 28 10 28 48 84 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 1 0 BITMAP 1D 22 43 4D 52 62 44 B8 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 2 0 BITMAP 18 E6 44 44 84 84 84 88 70 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 2 0 BITMAP 18 E6 44 44 84 84 84 88 70 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 2 0 BITMAP 38 E6 44 44 84 84 84 88 70 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 2 0 BITMAP 28 E6 44 44 84 84 84 88 70 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 1 0 BITMAP 18 E6 44 48 30 30 20 20 70 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP 70 20 3C 24 4C 78 40 E0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 6 0 BBX 5 10 1 -2 BITMAP 38 28 78 50 50 48 68 B8 80 80 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 10 38 48 88 90 F8 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 10 38 48 88 90 F8 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 28 38 48 88 90 F8 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 38 38 48 88 90 F8 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 28 38 48 88 90 F8 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 18 18 38 48 88 90 F8 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 9 0 BBX 8 5 1 0 BITMAP 3F 4D 8E B9 EE ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 1 -2 BITMAP 38 50 80 80 F0 40 C0 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 30 30 50 E0 90 F0 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 18 30 50 E0 90 F0 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 38 30 50 E0 90 F0 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 28 30 50 E0 90 F0 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 1 0 BITMAP 60 C0 40 40 80 C0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 1 0 BITMAP 60 C0 40 40 80 C0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 1 0 BITMAP E0 C0 40 40 80 C0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 3 0 BBX 4 6 1 0 BITMAP 50 C0 40 40 80 C0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 78 30 48 38 48 88 90 E0 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 38 D8 68 48 90 98 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 30 30 48 88 90 E0 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 18 30 48 88 90 E0 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 38 30 48 88 90 E0 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 38 30 48 88 90 E0 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 28 30 48 88 90 E0 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 6 0 BBX 6 5 1 0 BITMAP 10 00 FC 00 20 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 6 0 BBX 6 5 0 0 BITMAP 3C 48 58 E8 F0 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 30 D8 48 98 B0 F8 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 18 D8 48 98 B0 F8 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 38 D8 48 98 B0 F8 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 28 D8 48 98 B0 F8 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 -2 BITMAP 0C 44 24 2C 38 20 20 C0 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 6 0 BBX 6 10 1 -2 BITMAP 60 20 40 5C 74 64 48 F0 80 80 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 -2 BITMAP 14 44 24 2C 38 20 20 C0 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 10 1 -2 BITMAP 1C 24 48 78 48 48 48 48 80 80 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 1 1 2 BITMAP F0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 10 2 -2 BITMAP 20 20 20 F0 40 40 40 40 40 40 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 1 0 BITMAP 18 7C 48 08 10 20 40 48 F8 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 5 1 0 BITMAP 37 49 8E 99 EE ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 1 0 BITMAP 28 E6 44 48 30 30 20 20 70 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 5 1 0 BITMAP C0 40 40 80 C0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 4 8 2 0 BITMAP 30 20 20 70 A0 20 20 60 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 0 BITMAP 70 20 20 30 C0 40 48 F8 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 10 1 -2 BITMAP 10 10 78 20 20 20 F0 40 40 40 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 10 1 -2 BITMAP 34 30 40 7C 48 48 48 4C 80 80 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 5 1 0 BITMAP 40 40 20 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 8 1 0 BITMAP 1BC0 6640 4280 8780 8480 8400 CC80 7F80 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 1 1 2 BITMAP FF80 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 3 7 BITMAP E0 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 2 1 1 -2 BITMAP C0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 3 7 BITMAP E0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 5 1 0 BITMAP 20 40 80 40 40 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 1 1 4 7 BITMAP 80 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 3 7 BITMAP E0 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 3 2 1 BITMAP E0 E0 E0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 3 7 BITMAP E0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 3 7 BITMAP E0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 3 2 5 BITMAP 50 A0 F0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 1 3 2 5 BITMAP 80 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 5 6 1 0 BITMAP 38 70 50 60 A0 E0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 2 2 3 6 BITMAP C0 C0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 0 -2 BITMAP C0 40 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 10 2 -2 BITMAP 18 28 40 40 E0 40 40 40 80 80 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 5 1 3 BITMAP FD80 4D00 4F00 4D00 D100 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 7 8 -1 0 BITMAP 02 04 08 18 20 20 40 80 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 2 1 3 7 BITMAP C0 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 8 1 0 BITMAP 7200 5400 5C00 7000 16C0 2B20 4B20 8EC0 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 1 1 0 BITMAP 99 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 3 2 5 BITMAP D0 50 F0 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 9 1 0 BITMAP 30 38 48 40 20 10 10 90 E0 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 3 0 -2 BITMAP D0 70 A0 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 30 78 50 20 50 F0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lubI12.bdf100644 1750 1750 61160 5413747500 15002 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-Medium-I-Normal--12-120-75-75-P-67-ISO8859-1 SIZE 12 72 72 FONTBOUNDINGBOX 20 15 -6 -3 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "Medium" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 12 POINT_SIZE 120 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 67 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 11 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 3 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 3 0 BBX 3 9 1 0 BITMAP 20 20 40 40 40 40 40 00 80 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 2 6 BITMAP A0 A0 A0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 1 0 BITMAP 1A 14 7E 28 28 FC 50 90 B0 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 2 -1 BITMAP 3C 54 50 70 10 28 28 A8 F0 40 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 1 0 BITMAP 7180 5200 5600 6800 0E00 1500 2900 4900 8600 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 1C 34 24 38 57 9A 8E CC 76 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 2 6 BITMAP C0 40 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 1 -2 BITMAP 10 20 40 40 C0 80 80 80 80 80 40 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 0 -2 BITMAP 20 10 10 10 10 10 20 20 20 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 2 5 BITMAP 20 F0 60 A0 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 0 BITMAP 18 10 10 10 FE 10 10 10 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 1 -2 BITMAP C0 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 7 0 BBX 7 1 1 3 BITMAP FE ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 3 0 BBX 2 1 1 0 BITMAP C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 5 0 BBX 8 11 0 -2 BITMAP 01 02 04 04 08 10 10 20 40 40 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 18 64 44 C4 84 84 8C C8 70 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 38 18 10 10 10 10 30 20 F8 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 1 0 BITMAP 3C 26 22 06 08 30 40 40 FC ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 38 24 04 0C 38 08 0C 88 F0 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 0C 14 28 48 88 FC 08 10 38 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 3C 20 40 70 08 08 08 98 F0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 1C 24 40 F8 CC 84 8C C8 70 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 2 0 BITMAP 7E 02 04 18 10 20 40 40 80 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 2 0 BITMAP 38 64 44 68 38 C8 88 88 70 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 38 64 44 44 44 7C 0C 98 F0 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 1 0 BITMAP 60 00 00 00 00 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 1 -2 BITMAP 60 00 00 00 40 C0 40 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 7 0 BBX 8 8 1 0 BITMAP 01 06 18 E0 60 10 0C 02 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 7 0 BBX 7 3 1 2 BITMAP FE 00 FE ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 7 0 BBX 8 8 0 0 BITMAP 60 10 0C 02 03 0C 70 80 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 2 0 BITMAP 70 98 98 10 20 40 C0 00 80 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 1 0 BITMAP 1F00 2080 4E40 9240 A240 AE80 9B00 4000 3C00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 0 0 BITMAP 0600 0600 0A00 1A00 1200 3F00 4100 4100 E380 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 3E 32 22 24 38 24 66 44 F8 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 1F 31 41 C0 80 80 80 C2 7C ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 0 0 BITMAP 3F00 3180 3080 2080 2080 2180 6100 6200 FC00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 7 0 BBX 8 9 0 0 BITMAP 3F 11 10 32 3C 24 20 62 FE ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 7 0 BBX 8 9 0 0 BITMAP 3F 11 10 32 3C 24 20 60 F0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 1F 31 40 C0 80 87 82 C6 7C ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 9 0 BBX 10 9 1 0 BITMAP 39C0 3080 3180 2100 3F00 2100 6300 4300 E700 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 4 0 BBX 5 9 0 0 BITMAP 38 30 30 20 20 20 60 60 E0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 5 0 BBX 7 11 0 -2 BITMAP 1E 0C 08 08 08 08 18 10 10 90 E0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 8 0 BBX 9 9 0 0 BITMAP 3B80 1300 3600 2800 3800 2800 6400 6600 E700 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 38 10 10 20 20 20 20 62 FE ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 10 0 BBX 12 9 0 0 BITMAP 3070 10E0 38C0 2940 2B40 2A40 2480 4080 E1C0 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 9 0 BBX 10 9 0 0 BITMAP 30C0 1080 3880 2880 2480 2680 4300 4300 E100 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 1E 23 41 41 81 81 82 C6 78 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 7 0 BBX 8 9 0 0 BITMAP 3E 11 31 22 3C 20 60 60 F0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 9 0 BBX 10 11 1 -2 BITMAP 1E00 2300 4100 4100 8100 8100 8200 C600 7800 0C00 03C0 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 3E 13 32 22 3C 2C 64 66 F3 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 1 0 BITMAP 3C 22 62 20 18 0C 84 8C F8 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 2 0 BITMAP FF 99 10 10 10 30 20 20 F0 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 2 0 BITMAP F380 4100 4200 4200 C200 8200 8200 C400 7800 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 8 0 BBX 9 9 1 0 BITMAP E180 4100 4300 6200 6400 2C00 2800 3000 3000 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 11 0 BBX 11 9 1 0 BITMAP E460 4440 4C40 4C80 5580 5500 6700 6600 4600 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 7 0 BBX 10 9 0 0 BITMAP 38C0 1080 0900 0E00 0400 0E00 1200 6300 E700 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 2 0 BITMAP E3 42 64 28 30 30 20 20 70 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 1 0 BITMAP 3F 22 04 0C 18 30 20 42 FE ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 4 0 BBX 5 11 0 -2 BITMAP 38 20 20 20 60 40 40 40 40 80 E0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 5 0 BBX 3 11 2 -2 BITMAP 80 80 40 40 40 40 40 40 40 20 20 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 0 -2 BITMAP 30 10 10 20 20 20 20 20 20 40 C0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 1 BITMAP 08 08 14 24 24 44 42 82 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 6 0 BBX 5 1 1 -1 BITMAP F8 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 2 6 BITMAP 40 80 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 3C 44 48 88 98 EC ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 60 40 40 5C 64 64 48 88 F0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 38 48 80 80 88 70 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 1 0 BITMAP 06 02 04 3C 44 44 8C 98 EC ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 38 48 88 F0 88 70 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 5 0 BBX 6 11 1 -2 BITMAP 1C 24 20 78 20 40 40 40 40 C0 80 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 -2 BITMAP 1E 22 44 44 DC 74 88 F0 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 60 20 40 5C 74 4C 48 88 8C ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 3 0 BBX 3 9 1 0 BITMAP 20 00 00 E0 40 40 40 80 C0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 4 0 BBX 6 11 0 -2 BITMAP 04 00 00 1C 08 08 08 18 10 90 E0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 60 20 40 44 58 60 70 98 8C ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 3 0 BBX 3 9 1 0 BITMAP 60 20 40 40 40 40 40 80 C0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 11 0 BBX 10 6 1 0 BITMAP DDC0 7740 66C0 4C80 C880 88C0 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 8 0 BBX 6 6 1 0 BITMAP DC 54 6C 48 88 8C ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 38 44 C4 8C 88 F0 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 -2 BITMAP 6E 72 62 44 44 78 C0 80 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 -2 BITMAP 3C 44 48 88 98 E8 08 10 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP D8 68 60 40 80 80 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 78 50 60 B0 90 E0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 1 0 BITMAP 20 40 40 F0 40 40 C0 80 E0 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 8 0 BBX 6 6 1 0 BITMAP CC 44 4C D8 98 EC ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 1 0 BITMAP C6 62 24 28 30 30 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 10 0 BBX 9 6 1 0 BITMAP C480 4C80 2D80 3500 3600 2600 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP E4 28 30 30 D8 8C ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 7 0 BBX 8 8 0 -2 BITMAP 63 22 36 14 18 10 20 C0 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP 7C 48 10 20 48 F8 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 1 -2 BITMAP 30 20 20 20 40 80 40 40 80 80 40 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 3 0 BBX 3 11 1 -2 BITMAP 20 20 20 40 40 40 40 40 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 1 -2 BITMAP 30 10 10 20 20 10 20 40 40 40 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 7 0 BBX 7 3 1 2 BITMAP 62 92 8C ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 0 -2 BITMAP 20 00 40 40 40 40 80 80 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 2 0 BITMAP 08 3C 58 50 90 90 A8 F0 40 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 1 0 BITMAP 0E 12 10 20 78 20 20 40 F8 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 7 0 BBX 8 8 0 0 BITMAP 41 3E 22 22 42 24 5C 82 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 7 0 BBX 8 9 1 0 BITMAP E3 46 24 38 78 20 F8 20 70 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 3 0 BBX 3 11 1 -2 BITMAP 20 20 20 40 40 00 40 40 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 -2 BITMAP 1C 24 20 30 5C 44 34 08 04 8C F8 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 3 8 BITMAP 90 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 1 0 BITMAP 3E00 6180 8E80 9240 A040 A040 9C80 6180 3E00 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 4 BITMAP 78 50 90 B0 D8 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP 14 68 50 90 50 48 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 7 0 BBX 7 3 1 2 BITMAP FE 02 02 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 4 0 BBX 3 1 1 3 BITMAP E0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 2 3 BITMAP 70 E8 C8 E8 E8 70 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 7 0 BBX 3 1 4 8 BITMAP E0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 3 0 BBX 2 2 2 7 BITMAP C0 C0 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 7 0 BBX 8 8 0 0 BITMAP 08 08 7F 08 08 18 00 FE ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 -6 4 BITMAP 70 50 60 80 E0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 -6 4 BITMAP 60 50 60 A0 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 7 0 BBX 3 2 4 7 BITMAP 60 80 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 -2 BITMAP E6 42 44 44 5C 76 80 80 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 2 -2 BITMAP 78 E8 E8 F0 70 30 50 50 50 50 50 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 7 0 BBX 1 1 4 3 BITMAP 80 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 2 -2 BITMAP 40 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 -6 4 BITMAP 60 20 40 40 E0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 1 4 BITMAP 30 58 90 90 E0 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP 48 28 24 28 48 B0 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 6080 2100 4200 4400 E880 1380 2780 4100 8380 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 6080 2100 4200 4400 EB80 1280 2300 4400 8700 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 6080 5100 6200 A400 E880 1380 2780 4100 8380 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 0 -3 BITMAP 18 00 10 10 20 40 88 C8 70 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 0 0 BITMAP 0400 0200 0000 0600 0600 0A00 1A00 1200 3F00 4100 4100 E380 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 0 0 BITMAP 0180 0200 0000 0600 0600 0A00 1A00 1200 3F00 4100 4100 E380 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 0 0 BITMAP 0600 0900 0000 0600 0600 0A00 1A00 1200 3F00 4100 4100 E380 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 9 0 BBX 9 11 0 0 BITMAP 0780 0000 0600 0600 0A00 1A00 1200 3F00 4100 4100 E380 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 9 0 BBX 9 11 0 0 BITMAP 0480 0000 0600 0600 0A00 1A00 1200 3F00 4100 4100 E380 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 0 0 BITMAP 0300 0300 0000 0600 0600 0A00 1A00 1200 3F00 4100 4100 E380 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 11 0 BBX 12 9 0 0 BITMAP 01F0 0310 0520 0BE0 1240 3E00 4200 4220 CFE0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 -2 BITMAP 1F 31 41 C0 80 80 80 C2 7C 10 30 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 7 0 BBX 8 12 0 0 BITMAP 08 04 00 3F 11 10 32 3C 24 20 62 FE ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 7 0 BBX 8 12 0 0 BITMAP 06 08 00 3F 11 10 32 3C 24 20 62 FE ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 7 0 BBX 8 12 0 0 BITMAP 0C 12 00 3F 11 10 32 3C 24 20 62 FE ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 7 0 BBX 8 11 0 0 BITMAP 12 00 3F 11 10 32 3C 24 20 62 FE ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 4 0 BBX 5 12 0 0 BITMAP 20 10 00 38 30 30 20 20 20 60 60 E0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 4 0 BBX 6 12 0 0 BITMAP 0C 10 00 38 30 30 20 20 20 60 60 E0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 4 0 BBX 6 12 0 0 BITMAP 18 24 00 38 30 30 20 20 20 60 60 E0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 4 0 BBX 6 11 0 0 BITMAP 24 00 38 30 30 20 20 20 60 60 E0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 0 0 BITMAP 3F00 3180 3080 2080 7880 2180 2100 6200 FC00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 9 0 BBX 10 11 0 0 BITMAP 0F00 0000 30C0 1080 3880 2880 2480 2680 4300 4300 E100 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 0 BITMAP 08 04 00 1E 23 41 41 81 81 82 C6 78 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 0 BITMAP 06 08 00 1E 23 41 41 81 81 82 C6 78 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 0 BITMAP 0C 12 00 1E 23 41 41 81 81 82 C6 78 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 0F 00 1E 23 41 41 81 81 82 C6 78 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 12 00 1E 23 41 41 81 81 82 C6 78 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 7 0 BBX 8 8 0 0 BITMAP 41 22 34 18 18 2C 44 82 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 9 0 BBX 10 9 1 0 BITMAP 0F40 1180 2180 6680 4880 5980 6100 6200 BC00 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 2 0 BITMAP 0800 0400 0000 F380 4100 4200 4200 C200 8200 8200 C400 7800 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 2 0 BITMAP 0600 0800 0000 F380 4100 4200 4200 C200 8200 8200 C400 7800 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 2 0 BITMAP 0C00 1200 0000 F380 4100 4200 4200 C200 8200 8200 C400 7800 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 9 0 BBX 9 11 2 0 BITMAP 1200 0000 F380 4100 4200 4200 C200 8200 8200 C400 7800 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 2 0 BITMAP 0C 10 00 E3 42 64 28 30 30 20 20 70 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 38 30 3E 22 22 24 78 40 E0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 -2 BITMAP 1C 24 2C 30 78 4C 44 54 5C C0 80 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 10 08 00 3C 44 48 88 98 EC ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 0C 10 00 3C 44 48 88 98 EC ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 18 24 00 3C 44 48 88 98 EC ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 0 BITMAP 1E 00 3C 44 48 88 98 EC ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 24 00 3C 44 48 88 98 EC ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 18 18 00 3C 44 48 88 98 EC ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 11 0 BBX 10 6 1 0 BITMAP 3F80 4480 4C80 9F00 9C40 E780 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 -2 BITMAP 38 48 80 80 88 70 20 60 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 10 08 00 38 48 88 F0 88 70 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 1 0 BITMAP 0C 10 00 38 48 88 F0 88 70 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 1 0 BITMAP 18 24 00 38 48 88 F0 88 70 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 0 BITMAP 24 00 38 48 88 F0 88 70 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 3 0 BBX 3 9 1 0 BITMAP 40 20 00 C0 40 40 40 80 C0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 3 0 BBX 4 9 1 0 BITMAP 30 40 00 C0 40 40 40 80 C0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 3 0 BBX 4 9 1 0 BITMAP 60 90 00 C0 40 40 40 80 C0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 3 0 BBX 4 8 1 0 BITMAP 90 00 C0 40 40 40 80 C0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 7C 18 3C 3C 44 84 8C 88 70 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 8 0 BBX 6 8 1 0 BITMAP 3C 00 DC 54 6C 48 88 8C ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 10 08 00 38 44 C4 8C 88 F0 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 0C 10 00 38 44 C4 8C 88 F0 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 18 24 00 38 44 C4 8C 88 F0 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 3C 00 38 44 C4 8C 88 F0 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 24 00 38 44 C4 8C 88 F0 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 1 0 BITMAP 18 00 FE 00 00 30 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 1 0 BITMAP 1E 24 5C 64 4C F0 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 10 08 00 CC 44 4C D8 98 EC ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 0C 10 00 CC 44 4C D8 98 EC ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 18 24 00 CC 44 4C D8 98 EC ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 8 0 BBX 6 8 1 0 BITMAP 24 00 CC 44 4C D8 98 EC ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 7 0 BBX 8 11 0 -2 BITMAP 06 08 00 63 22 36 14 18 10 20 C0 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 7 0 BBX 7 11 1 -2 BITMAP 60 20 20 2E 72 62 44 44 78 C0 80 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 7 0 BBX 8 10 0 -2 BITMAP 12 00 63 22 36 14 18 10 20 C0 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 11 1 -2 BITMAP 0F 11 22 7A 22 62 44 44 46 C0 80 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 1 1 3 BITMAP F8 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 2 -2 BITMAP 30 20 20 F8 20 20 40 40 40 40 40 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 1 0 BITMAP 09 06 00 3F 22 04 0C 18 30 20 42 FE ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 6 1 0 BITMAP 3DC0 6640 C440 8780 8C20 77C0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 11 2 0 BITMAP 24 00 E3 42 64 28 30 30 20 20 70 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 6 1 0 BITMAP C0 40 40 40 80 C0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 4 9 1 0 BITMAP 70 20 20 20 F0 40 40 40 E0 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 38 10 10 38 70 E0 20 62 FE ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 -2 BITMAP 18 10 10 7C 10 10 10 F8 20 20 60 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 1 -2 BITMAP 1A 28 20 7E 64 44 44 48 4C C0 80 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 1 0 BITMAP 40 40 20 20 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 9 1 0 BITMAP 1FF0 3310 4100 4320 83E0 8240 8200 C620 7FE0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 1 1 3 BITMAP FFE0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 3 7 BITMAP 90 60 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 2 -2 BITMAP C0 C0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 4 7 BITMAP 70 C0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 1 0 BITMAP 20 40 80 80 40 40 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 1 1 4 8 BITMAP 80 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 3 7 BITMAP 90 E0 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 4 2 1 BITMAP 60 F0 F0 60 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 3 8 BITMAP F0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 3 7 BITMAP 60 90 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 3 2 6 BITMAP 50 A0 F0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 1 3 2 6 BITMAP 80 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 6 9 1 0 BITMAP 24 18 00 78 50 60 B0 90 E0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 4 7 BITMAP C0 C0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 1 -2 BITMAP C0 40 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 2 -2 BITMAP 1C 24 20 60 F0 40 40 40 40 C0 80 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 5 2 4 BITMAP FEC0 4680 4780 4680 E980 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 9 9 -2 0 BITMAP 0080 0100 0200 0400 0800 1000 2000 4000 8000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 4 7 BITMAP 80 40 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 13 9 1 0 BITMAP 7080 5100 5200 6400 0E30 1548 2948 4950 8670 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 1 2 0 BITMAP 8880 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 3 2 6 BITMAP F0 50 F0 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 12 1 0 BITMAP 12 0C 00 3C 22 62 20 18 0C 84 8C F8 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 3 1 -2 BITMAP D0 70 A0 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 7 9 1 0 BITMAP 12 0C 00 7C 48 10 20 48 F8 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lubI14.bdf100644 1750 1750 64623 5413747500 15013 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-Medium-I-Normal--14-140-75-75-P-80-ISO8859-1 SIZE 14 72 72 FONTBOUNDINGBOX 22 16 -6 -3 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "Medium" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 14 POINT_SIZE 140 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 13 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 4 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 1 0 BITMAP 20 60 60 40 40 40 40 00 00 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 5 0 BBX 4 3 3 7 BITMAP B0 A0 A0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 1 0 BITMAP 0480 0900 0900 7F80 1200 2400 FF00 4800 4800 9000 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 2 -2 BITMAP 08 3C 74 54 50 30 18 2C AC A8 F0 40 40 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 2 0 BITMAP 3080 4900 4A00 5400 7400 0B00 1480 2480 4500 8700 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 0 BITMAP 0C00 1200 3200 1C00 3000 5B80 8900 8E00 C400 7F00 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 2 6 BITMAP 60 60 40 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 4 0 BBX 5 13 1 -3 BITMAP 18 20 20 40 40 C0 80 80 80 80 80 80 40 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 4 0 BBX 5 13 0 -3 BITMAP 10 10 10 10 18 18 10 10 10 20 20 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 6 0 BBX 6 5 2 5 BITMAP 20 A4 58 60 90 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 1 0 BITMAP 08 08 08 08 FF 10 10 10 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 4 0 BBX 2 5 1 -3 BITMAP 40 C0 40 80 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 9 0 BBX 8 1 1 3 BITMAP FF ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 4 0 BBX 2 2 1 0 BITMAP C0 C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 6 0 BBX 9 13 0 -3 BITMAP 0080 0100 0200 0200 0400 0400 0800 1000 1000 2000 4000 4000 8000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 2 0 BITMAP 1C 22 62 43 C2 82 86 84 CC 78 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 9 0 BBX 5 10 2 0 BITMAP 38 18 10 10 10 10 30 20 20 F8 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 1E 23 21 03 06 08 30 40 40 FE ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 3C 22 22 06 38 04 04 84 8C F8 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 02 0E 14 24 44 84 FE 08 08 1C ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 2 0 BITMAP 3F 20 20 78 0C 04 04 84 8C F0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 2 0 BITMAP 1E 33 62 40 FC C6 86 86 CC 78 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 2 0 BITMAP 7F 02 02 0C 08 10 20 60 40 C0 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 2 0 BITMAP 1C 26 66 64 38 4C 84 84 CC 78 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 1C 22 42 43 46 3E 06 84 88 F0 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 4 0 BBX 3 7 1 0 BITMAP 60 60 00 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 0 -3 BITMAP 30 30 00 00 00 00 E0 40 40 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 1 0 BITMAP 0080 0300 1C00 E000 6000 1800 0400 0300 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 9 0 BBX 9 4 1 2 BITMAP FF80 0000 0000 FF80 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 0 0 BITMAP 6000 1800 0400 0300 0380 1C00 6000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 2 0 BITMAP 78 88 8C 18 30 60 40 40 00 C0 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 2 0 BITMAP 0F80 3040 4F20 5120 9220 9220 B640 9B80 4200 3C00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 0 BITMAP 0200 0300 0700 0900 0900 1100 3F80 2180 4180 E3C0 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 8 0 BBX 9 10 0 0 BITMAP 3F00 1980 1080 1100 1E00 3200 2100 2100 6300 FE00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 2 0 BITMAP 0F80 3080 6080 4000 C000 C000 C000 C000 6100 3E00 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 0 0 BITMAP 3F80 18C0 1060 1060 3060 3060 2040 20C0 6180 FE00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 8 0 BBX 9 10 0 0 BITMAP 3F80 1880 1000 1200 3E00 3200 2000 2000 6100 FE00 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 8 0 BBX 9 10 0 0 BITMAP 3F80 1880 1000 1200 3E00 3200 2000 2000 6000 F000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 2 0 BITMAP 1F80 3080 6080 4000 C000 C780 C300 C200 6200 3E00 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 11 0 BBX 12 10 0 0 BITMAP 3CF0 1860 1040 1040 3FC0 30C0 2080 2080 6180 F3C0 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 5 0 BBX 6 10 0 0 BITMAP 3C 18 10 10 30 30 20 20 60 F0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 6 0 BBX 8 13 0 -3 BITMAP 0F 06 04 04 0C 0C 0C 08 08 18 18 90 E0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 10 0 BBX 11 10 0 0 BITMAP 3CE0 18C0 1100 1600 3C00 3C00 2600 2300 6180 F3C0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 3C 18 10 10 30 30 20 20 61 FF ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 12 0 BBX 13 10 1 0 BITMAP 3838 1870 1860 28A0 2DA0 2D60 2640 2640 4040 E1E0 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 11 0 BBX 12 10 0 0 BITMAP 3070 1820 1840 2C40 2640 2240 2340 2140 4180 E080 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 2 0 BITMAP 0F00 3180 60C0 40C0 C0C0 C0C0 C080 C100 4300 3C00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 8 0 BBX 9 10 0 0 BITMAP 3F00 1980 1180 1180 3300 3E00 2000 2000 6000 F000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 2 -3 BITMAP 0F00 3180 60C0 40C0 C0C0 C0C0 C080 C180 4300 3E00 0400 0600 01E0 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 0 0 BITMAP 3F00 1180 1180 3100 3200 3C00 2600 2200 6300 F180 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 0 BITMAP 1E 33 22 20 38 0C 04 86 8C F8 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 2 0 BITMAP FF80 8880 0800 1800 1800 1000 1000 3000 3000 7800 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 2 0 BITMAP F1C0 6080 4100 4100 4100 C100 8100 8200 C600 7C00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 9 0 BBX 10 10 2 0 BITMAP F1C0 4080 6180 6100 2200 2600 2400 3800 3800 1000 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 12 0 BBX 13 10 2 0 BITMAP F238 4210 4620 4620 4A40 6B40 7380 7380 6300 4300 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 9 0 BBX 11 10 0 0 BITMAP 3CE0 1840 0880 0F00 0600 0600 0A00 1300 6100 E380 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 2 0 BITMAP F380 6100 6200 2400 3800 1800 1000 3000 3000 7800 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 1 0 BITMAP 3F80 2100 0200 0600 0C00 1800 3000 2000 4100 FE00 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 4 0 BBX 5 13 1 -3 BITMAP 38 20 20 20 20 60 40 40 40 40 C0 80 E0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 6 0 BBX 4 13 2 -3 BITMAP 80 80 40 40 40 40 40 20 20 20 20 10 10 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 4 0 BBX 5 13 0 -3 BITMAP 38 08 18 10 10 10 10 30 20 20 20 20 E0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 1 2 BITMAP 04 04 0C 12 22 22 41 81 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 1 -2 BITMAP FC ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 2 6 BITMAP 60 40 C0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 1 0 BITMAP 1F 23 42 C2 86 9E F7 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 0 BITMAP 70 20 20 27 79 71 63 42 C4 F8 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 1C 64 44 80 80 C4 78 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 07 03 02 1E 22 42 C6 8C 94 E6 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 1C 64 44 F8 80 CC 78 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 5 0 BBX 7 14 1 -3 BITMAP 0E 12 12 20 7C 20 20 60 60 40 40 40 C0 80 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 -3 BITMAP 1F 23 22 42 46 4A 76 04 84 F8 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 2 0 BITMAP 60 20 20 6E 56 66 44 44 C4 8E ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 2 0 BITMAP 20 00 00 E0 40 40 40 40 80 C0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 5 0 BBX 7 13 0 -3 BITMAP 06 00 00 0C 04 04 0C 0C 08 08 98 90 E0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 60 20 20 66 6C 50 70 58 CC 8E ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 1 0 BITMAP 70 30 20 20 60 60 40 40 C0 E0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 13 0 BBX 12 7 1 0 BITMAP EE70 7BB0 7330 6620 4620 C420 8470 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 2 0 BITMAP EE 56 66 44 44 C4 8E ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 1C 66 46 C6 C4 CC 70 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 -3 BITMAP 67 39 71 63 42 44 78 C0 C0 80 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 -3 BITMAP 1F 23 42 C2 C6 9E F6 04 04 04 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 2 0 BITMAP EC 54 60 60 40 C0 80 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 38 48 68 30 90 90 F0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 5 0 BBX 4 9 2 0 BITMAP 60 40 F0 40 40 C0 C0 80 E0 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 2 0 BITMAP EE 46 46 44 CC D4 EE ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 1 0 BITMAP E3 61 22 36 3C 18 10 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 11 0 BBX 11 7 1 0 BITMAP C260 6620 2660 2AC0 3A80 3300 2300 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 66 26 38 18 68 CC 86 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 8 0 BBX 9 10 0 -3 BITMAP 6180 3180 1100 1200 1600 1400 1800 1000 2000 C000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 3E 44 08 10 20 44 FC ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 5 0 BBX 5 13 1 -3 BITMAP 18 30 20 20 20 20 C0 40 40 C0 80 80 40 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 3 0 BBX 3 13 1 -3 BITMAP 20 20 20 40 40 40 40 40 40 40 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 5 0 BBX 5 13 1 -3 BITMAP 30 08 18 10 10 10 18 20 20 20 20 60 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 9 0 BBX 9 3 1 2 BITMAP 7080 9880 8700 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 1 -3 BITMAP 20 00 00 40 40 40 40 C0 C0 80 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP 08 1C 34 50 D0 90 90 E4 78 20 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 07 09 11 10 10 7C 30 20 20 FC ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 9 0 BBX 10 10 1 0 BITMAP 4000 20C0 2F80 1300 2100 2100 2100 2200 5F00 8100 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 2 0 BITMAP E380 6300 2200 3C00 7C00 1000 FC00 3000 2000 7000 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 3 0 BBX 3 13 1 -3 BITMAP 20 20 20 40 40 40 00 40 40 40 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 -3 BITMAP 1F 31 20 20 38 4C 42 72 1C 04 84 8C F8 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 8 0 BBX 4 1 4 9 BITMAP 90 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 1 0 BITMAP 1F00 6080 4F40 9120 9020 A020 9020 5E40 6080 1F00 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 2 4 BITMAP 38 48 C8 98 B8 D8 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 24 28 58 90 50 48 48 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 9 0 BBX 8 4 1 2 BITMAP FF 01 01 03 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 4 0 BBX 3 1 2 4 BITMAP E0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 9 0 BBX 5 6 3 4 BITMAP 70 F8 A8 A8 D8 70 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 8 0 BBX 4 1 4 9 BITMAP F0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 4 0 BBX 2 2 3 8 BITMAP C0 C0 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 0 0 BITMAP 0400 0400 7F80 0800 0800 0800 0000 FF00 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 -6 4 BITMAP 38 48 18 60 80 F0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 -6 4 BITMAP 70 50 60 10 90 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 8 0 BBX 3 2 5 8 BITMAP 60 80 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 -3 BITMAP 67 23 62 42 46 4E 77 C0 C0 80 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 2 -3 BITMAP 7C F4 F8 E8 68 28 28 28 50 50 50 50 50 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 9 0 BBX 2 1 4 4 BITMAP C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 8 0 BBX 2 3 2 -3 BITMAP 40 40 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 -6 4 BITMAP 60 20 40 40 40 E0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 2 4 BITMAP 38 48 88 88 90 60 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 48 48 28 24 28 50 90 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 3 0 BITMAP 6020 2040 4080 4100 42C0 E540 0A40 13C0 2080 41C0 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 3 0 BITMAP 6020 2040 4080 4100 42E0 E520 0860 1180 2200 43C0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 3 0 BITMAP 7020 5040 6080 1100 92C0 E540 0A40 13C0 2080 41C0 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 -3 BITMAP 0C 00 08 18 10 60 C0 88 C8 78 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP 0300 0080 0000 0200 0300 0700 0900 0900 1100 3F80 2180 4180 E3C0 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP 0180 0200 0000 0200 0300 0700 0900 0900 1100 3F80 2180 4180 E3C0 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP 0300 0480 0000 0200 0300 0700 0900 0900 1100 3F80 2180 4180 E3C0 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 07C0 0000 0200 0300 0700 0900 0900 1100 3F80 2180 4180 E3C0 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 0480 0000 0200 0300 0700 0900 0900 1100 3F80 2180 4180 E3C0 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP 0300 0300 0000 0200 0300 0700 0900 0900 1100 3F80 2180 4180 E3C0 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 13 0 BBX 14 10 0 0 BITMAP 00FC 01C4 0280 0498 0DF0 1190 1F00 2100 4308 E7F0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 2 -3 BITMAP 0F80 3080 6080 4000 C000 C000 C000 C000 6100 3E00 1000 1000 3000 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 8 0 BBX 9 13 0 0 BITMAP 0C00 0200 0000 3F80 1880 1000 1200 3E00 3200 2000 2000 6100 FE00 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 8 0 BBX 9 13 0 0 BITMAP 0300 0400 0000 3F80 1880 1000 1200 3E00 3200 2000 2000 6100 FE00 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 8 0 BBX 9 13 0 0 BITMAP 0600 0900 0000 3F80 1880 1000 1200 3E00 3200 2000 2000 6100 FE00 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 8 0 BBX 9 12 0 0 BITMAP 0900 0000 3F80 1880 1000 1200 3E00 3200 2000 2000 6100 FE00 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 5 0 BBX 6 13 0 0 BITMAP 18 04 00 3C 18 10 10 30 30 20 20 60 F0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 5 0 BBX 6 13 0 0 BITMAP 0C 10 00 3C 18 10 10 30 30 20 20 60 F0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 5 0 BBX 6 13 0 0 BITMAP 18 24 00 3C 18 10 10 30 30 20 20 60 F0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 5 0 BBX 6 12 0 0 BITMAP 24 00 3C 18 10 10 30 30 20 20 60 F0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 0 0 BITMAP 3F80 10C0 1060 1060 7C60 3060 2040 20C0 6180 FE00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 11 0 BBX 12 12 0 0 BITMAP 07C0 0000 3070 1820 1840 2C40 2640 2240 2340 2140 4180 E080 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 2 0 BITMAP 0C00 0200 0000 0F00 3180 60C0 40C0 C0C0 C0C0 C080 C100 4300 3C00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 2 0 BITMAP 0300 0400 0000 0F00 3180 60C0 40C0 C0C0 C0C0 C080 C100 4300 3C00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 2 0 BITMAP 0600 0900 0000 0F00 3180 60C0 40C0 C0C0 C0C0 C080 C100 4300 3C00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 2 0 BITMAP 0F80 0000 0F00 3180 60C0 40C0 C0C0 C0C0 C080 C100 4300 3C00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 2 0 BITMAP 0900 0000 0F00 3180 60C0 40C0 C0C0 C0C0 C080 C100 4300 3C00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 1 0 BITMAP 4080 2100 1200 1C00 1C00 2400 4200 8100 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 11 0 BBX 12 10 1 0 BITMAP 07B0 18C0 3060 21E0 6260 4C40 5040 7080 6100 9E00 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 2 0 BITMAP 0C00 0200 0000 F1C0 6080 4100 4100 4100 C100 8100 8200 C600 7C00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 2 0 BITMAP 0300 0400 0000 F1C0 6080 4100 4100 4100 C100 8100 8200 C600 7C00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 2 0 BITMAP 0C00 1200 0000 F1C0 6080 4100 4100 4100 C100 8100 8200 C600 7C00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 2 0 BITMAP 1200 0000 F1C0 6080 4100 4100 4100 C100 8100 8200 C600 7C00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 9 0 BBX 9 13 2 0 BITMAP 0600 0800 0000 F380 6100 6200 2400 3800 1800 1000 3000 3000 7800 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 8 0 BBX 9 10 0 0 BITMAP 3C00 1800 1F00 1180 1180 3180 3300 3E00 6000 F000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 8 0 BBX 8 14 1 -3 BITMAP 1E 12 32 24 28 28 6C 62 42 53 5C C0 C0 80 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 0C 02 00 1F 23 42 C2 86 9E F7 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 03 04 00 1F 23 42 C2 86 9E F7 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 0C 12 00 1F 23 42 C2 86 9E F7 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 1F 00 1F 23 42 C2 86 9E F7 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 09 00 1F 23 42 C2 86 9E F7 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 06 06 00 1F 23 42 C2 86 9E F7 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 12 0 BBX 11 7 1 0 BITMAP 1FE0 2320 4220 C7C0 CE00 9E20 E3C0 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 -3 BITMAP 1C 64 44 80 80 C4 78 20 20 60 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 18 04 00 1C 64 44 F8 80 CC 78 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 1 0 BITMAP 06 08 00 1C 64 44 F8 80 CC 78 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 1 0 BITMAP 0C 12 00 1C 64 44 F8 80 CC 78 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 1 0 BITMAP 12 00 1C 64 44 F8 80 CC 78 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 1 0 BITMAP 60 10 00 E0 60 40 40 40 C0 E0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 4 0 BBX 5 10 1 0 BITMAP 18 20 00 E0 60 40 40 40 C0 E0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 4 0 BBX 5 10 1 0 BITMAP 30 48 00 E0 60 40 40 40 C0 E0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 4 0 BBX 5 9 1 0 BITMAP 48 00 E0 60 40 40 40 C0 E0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 1 0 BITMAP 06 38 1C 26 3E 66 46 C6 84 CC 70 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 2 0 BITMAP 1F 00 EE 56 66 44 44 C4 8E ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 18 04 00 1C 66 46 C6 C4 CC 70 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 06 08 00 1C 66 46 C6 C4 CC 70 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 0C 12 00 1C 66 46 C6 C4 CC 70 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 1 0 BITMAP 1F 00 1C 66 46 C6 C4 CC 70 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 12 00 1C 66 46 C6 C4 CC 70 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 1 0 BITMAP 08 00 00 FF 00 00 10 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 1 0 BITMAP 1D 22 67 5A 62 44 F8 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 2 0 BITMAP 18 04 00 EE 46 46 44 CC D4 EE ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 2 0 BITMAP 06 08 00 EE 46 46 44 CC D4 EE ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 2 0 BITMAP 0C 12 00 EE 46 46 44 CC D4 EE ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 2 0 BITMAP 12 00 EE 46 46 44 CC D4 EE ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 8 0 BBX 9 13 0 -3 BITMAP 0300 0400 0000 6180 3180 1100 1200 1600 1400 1800 1000 2000 C000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 -3 BITMAP 70 20 20 27 39 71 63 42 44 78 C0 C0 80 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 8 0 BBX 9 12 0 -3 BITMAP 0900 0000 6180 3180 1100 1200 1600 1400 1800 1000 2000 C000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 14 1 -3 BITMAP 0F80 1180 1100 3100 7D00 2100 2300 6200 6200 4200 4700 4000 C000 8000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 1 4 BITMAP FC ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 2 -3 BITMAP 10 10 10 10 FC 20 20 20 20 20 60 40 40 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 13 1 0 BITMAP 0900 0600 0000 3F80 2100 0200 0600 0C00 1800 3000 2000 4100 FE00 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 7 1 0 BITMAP 1CC0 6560 4640 C780 8600 CE20 73C0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 2 0 BITMAP 1200 0000 F380 6100 6200 2400 3800 1800 1000 3000 3000 7800 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 7 1 0 BITMAP E0 60 40 40 40 C0 E0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 5 10 1 0 BITMAP 70 10 30 30 38 E0 60 60 40 70 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 3C 18 10 14 3C 70 70 20 61 FF ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 2 -3 BITMAP 08 08 08 7E 10 10 10 10 FC 20 20 20 20 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 14 1 -3 BITMAP 0E00 1380 1200 3000 7F00 2100 2100 6300 6200 4200 4300 4000 C000 8000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 0 BITMAP 40 20 20 10 20 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 10 1 0 BITMAP 0FFC 3184 6084 4098 C1F0 C190 C100 C108 4318 3FF0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 13 1 1 3 BITMAP FFF8 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 4 2 4 8 BITMAP 90 60 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 2 2 2 -3 BITMAP C0 C0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 2 4 8 BITMAP 78 A0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 0 BITMAP 10 20 40 80 40 40 20 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 2 1 5 9 BITMAP C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 2 4 8 BITMAP 88 F0 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 4 4 3 2 BITMAP 60 F0 F0 60 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 1 4 9 BITMAP F8 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 4 2 4 8 BITMAP 60 90 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 4 2 6 BITMAP 48 50 90 D8 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 2 7 BITMAP C0 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 7 10 1 0 BITMAP 12 0C 00 38 48 68 30 90 90 F0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 2 2 5 9 BITMAP C0 C0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 2 5 1 -3 BITMAP 40 C0 40 80 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 2 -3 BITMAP 0E 12 32 20 20 F8 60 60 40 40 40 C0 80 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 12 5 2 5 BITMAP FF30 2360 25A0 4540 EC60 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 10 10 -2 0 BITMAP 0040 0080 0100 0200 0400 0800 1000 2000 4000 8000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 3 2 4 8 BITMAP C0 20 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 16 10 0 0 BITMAP 3830 4440 4480 4900 7200 05C7 0A29 1229 2249 C38E ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 11 1 2 0 BITMAP C460 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 4 2 6 BITMAP D8 48 50 90 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 13 1 0 BITMAP 09 06 00 1E 33 22 20 38 0C 04 86 8C F8 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 -3 BITMAP 58 D8 48 50 90 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 0 BITMAP 09 06 00 3E 44 08 10 20 44 FC ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lubI18.bdf100644 1750 1750 75005 5413747501 15014 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-Medium-I-Normal--18-180-75-75-P-102-ISO8859-1 SIZE 18 72 72 FONTBOUNDINGBOX 29 21 -9 -4 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "Medium" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 18 POINT_SIZE 180 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 102 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 16 FONT_DESCENT 4 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 5 0 BBX 4 13 2 0 BITMAP 30 30 30 20 20 20 40 40 40 40 00 00 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 7 0 BBX 5 4 3 9 BITMAP D8 D0 90 90 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 1 0 BITMAP 0220 0240 0440 0480 7FE0 0900 1100 1200 FFC0 2400 4400 4800 8800 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 11 0 BBX 9 15 3 -1 BITMAP 0400 1F80 3580 6900 6800 6800 3800 1C00 1E00 1300 1300 9200 9400 F800 2000 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 2 0 BITMAP 3C18 2420 4460 44C0 4C80 3900 02E0 0590 0910 1310 2330 6120 C1C0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 1 0 BITMAP 0380 04C0 0CC0 0CC0 0D80 1E00 64F8 C620 C220 C340 C1C0 6180 3EE0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 3 8 BITMAP 60 60 60 40 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 6 0 BBX 6 16 2 -3 BITMAP 04 08 10 20 20 60 40 C0 C0 C0 C0 C0 80 40 40 20 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 6 0 BBX 6 16 0 -3 BITMAP 10 08 08 0C 0C 0C 0C 0C 0C 08 18 10 10 20 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 3 6 BITMAP 18 10 D6 2C 30 C8 48 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 11 0 BBX 11 11 1 0 BITMAP 0200 0200 0400 0400 0400 FFE0 0400 0800 0800 0800 0800 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 -3 BITMAP 60 60 60 40 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 11 0 BBX 11 1 1 5 BITMAP FFE0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 5 0 BBX 3 2 1 0 BITMAP E0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 8 0 BBX 11 16 0 -3 BITMAP 0020 0040 0080 0080 0100 0300 0200 0400 0400 0800 1800 1000 2000 2000 4000 8000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 2 0 BITMAP 0F00 1980 3080 60C0 60C0 C0C0 C080 C180 C180 C100 C300 6600 3C00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 11 0 BBX 7 13 2 0 BITMAP 1E 06 04 04 0C 0C 0C 08 18 18 18 18 FE ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 2 0 BITMAP 0F80 11C0 20C0 00C0 00C0 0180 0300 0400 1800 2000 6000 4000 FF00 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 2 0 BITMAP 1F00 1180 2180 0180 0180 0300 3C00 0200 0300 0300 8300 8600 FC00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 0080 0380 0500 0900 1300 2300 2300 4200 FF80 0600 0600 0600 1F00 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 2 0 BITMAP 1FC0 2000 2000 2000 3C00 0600 0300 0300 0300 0300 8300 8600 F800 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 2 0 BITMAP 0780 18C0 3080 6000 6000 7F00 E300 C180 C180 C180 C300 6600 3C00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 3 0 BITMAP 7FC0 0080 0080 0100 0200 0400 0800 1000 3000 2000 6000 C000 C000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 2 0 BITMAP 0F00 1180 3180 2180 3100 1E00 3E00 4700 C300 C300 C300 C600 7C00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 2 0 BITMAP 0F00 1180 2080 60C0 60C0 60C0 6180 3F80 0180 0300 8300 8600 7800 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 5 0 BBX 4 9 1 0 BITMAP 30 70 00 00 00 00 00 E0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 5 0 BBX 5 12 1 -3 BITMAP 18 38 00 00 00 00 00 60 60 60 60 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 11 0 BBX 11 11 2 0 BITMAP 0020 00C0 0300 0C00 3000 C000 3000 1800 0600 0100 0080 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 11 0 BBX 11 4 1 3 BITMAP 7FE0 0000 0000 FFC0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 11 0 BBX 11 11 0 0 BITMAP 2000 1000 0C00 0300 0180 0060 0180 0600 1800 6000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 3 0 BITMAP 7C C6 86 06 04 08 10 20 60 40 00 00 C0 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 16 0 BBX 14 13 2 0 BITMAP 03E0 0C18 3004 23E4 4444 8844 88C4 88C4 89C8 8E70 4000 2080 1F00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 0 0 BITMAP 00C0 00C0 01C0 03C0 02C0 0460 0C60 0860 1FE0 1060 2020 4030 F0F8 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 3FC0 0C60 0C60 0860 1840 1880 1F00 19C0 10C0 30C0 30C0 31C0 FF00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 2 0 BITMAP 07F0 1C30 3030 3000 6000 6000 C000 C000 C000 C000 E000 70C0 3F00 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 14 0 BBX 14 13 0 0 BITMAP 3FF0 0C38 0C1C 080C 180C 180C 180C 180C 3018 3018 3030 30E0 FF80 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 10 0 BBX 11 13 1 0 BITMAP 3FE0 1820 1820 1800 1800 1880 1F80 3100 3000 3000 3080 3080 FF80 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 10 0 BBX 11 13 1 0 BITMAP 3FE0 1820 1820 1800 1800 1880 1F80 3100 3000 3000 3000 3000 F800 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 2 0 BITMAP 07F0 1C30 3020 3000 6000 4000 C000 C1F0 C0C0 C0C0 E0C0 70C0 3F00 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 14 0 BBX 16 13 0 0 BITMAP 1F1F 0C0C 0C0C 080C 1808 1818 1FF8 1818 1018 3010 3030 3030 F8F8 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 6 0 BBX 8 13 0 0 BITMAP 1F 0C 0C 0C 08 18 18 18 10 30 30 30 F8 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 8 0 BBX 10 16 0 -3 BITMAP 07C0 0380 0300 0300 0300 0200 0600 0600 0600 0600 0400 0C00 0C00 CC00 9800 F000 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 13 0 BBX 14 13 0 0 BITMAP 1F3C 0C18 0C20 0CC0 1980 1A00 1E00 1B00 1380 31C0 30C0 3060 F9F0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP 3F00 0C00 0C00 0800 1800 1800 1800 1800 3000 3000 3040 30C0 FFC0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 16 0 BBX 17 13 1 0 BITMAP 3C0780 0C0600 0C0E00 161E00 161600 162400 126C00 134C00 238C00 238800 210800 201800 F03E00 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 14 0 BBX 16 13 0 0 BITMAP 3C1F 0C04 0E04 1608 1308 1308 1188 10C8 20D0 2070 2070 2030 F020 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 2 0 BITMAP 07C0 0C70 3030 2018 6018 4018 C018 C030 C030 C060 C0C0 6180 3E00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 10 0 BBX 12 13 0 0 BITMAP 1FE0 0C30 0C30 0C30 1830 1860 18C0 1F80 1800 3000 3000 3000 FC00 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 14 0 BBX 14 16 2 -3 BITMAP 07C0 0C70 3030 2018 6018 4018 C010 C030 C030 C060 C0E0 61C0 3F00 0300 0080 007C ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 0 0 BITMAP 1FE0 0C60 0C30 0820 1860 18C0 1F00 1B00 1180 3180 30C0 30E0 F870 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 1 0 BITMAP 0F80 18C0 3040 3040 3800 1C00 0E00 0300 0180 8180 8180 C300 7C00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 2 0 BITMAP FFF0 C610 8610 0400 0C00 0C00 0C00 0C00 0800 1800 1800 1800 7E00 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 3 0 BITMAP F878 7020 6020 6020 6040 6040 4040 C040 C040 C080 C080 6100 3E00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 12 0 BBX 13 13 2 0 BITMAP F838 6010 6020 2060 3040 3080 3180 3100 1200 1A00 1C00 1800 1800 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 16 0 BBX 17 13 2 0 BITMAP F88780 608300 61C200 61C400 62C400 62C800 64C800 24D000 28D000 28E000 30E000 30C000 204000 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 11 0 BBX 14 13 0 0 BITMAP 1F1C 0C18 0630 0660 02C0 0380 0380 0380 0D80 08C0 10C0 2060 F1F0 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 2 0 BITMAP F870 6060 3040 3080 1900 1A00 1C00 0800 1800 1800 1800 3800 7C00 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 11 0 BBX 12 13 1 0 BITMAP 1FF0 1060 30C0 01C0 0180 0300 0600 0C00 1800 3800 3040 6040 FFC0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 6 0 BBX 7 16 1 -3 BITMAP 1E 18 18 10 30 30 30 20 20 60 60 40 40 40 C0 F0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 8 0 BBX 5 16 3 -3 BITMAP 80 80 40 40 40 40 20 20 20 20 10 10 10 10 08 08 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 6 0 BBX 7 16 0 -3 BITMAP 1E 06 04 04 04 0C 0C 08 08 18 18 18 10 30 30 F0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 11 0 BBX 11 11 0 2 BITMAP 0100 0100 0300 0480 0480 0880 10C0 3040 2040 4040 C020 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 9 0 BBX 7 1 1 -1 BITMAP FE ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 3 8 BITMAP 60 40 C0 E0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 1 0 BITMAP 0FC0 10C0 2080 6180 4180 C380 C580 C900 73C0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 7800 1000 3000 3000 3380 24C0 28C0 70C0 6080 6180 4100 C200 FC00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 2 0 BITMAP 0F 31 61 40 C0 C0 C0 C2 7C ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 1 0 BITMAP 01E0 0060 0040 00C0 0FC0 10C0 20C0 6080 4180 C380 C580 C900 73C0 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 2 0 BITMAP 0E 33 63 42 FC C0 C1 E6 7C ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 7 0 BBX 9 17 1 -3 BITMAP 0780 0880 0880 1800 1000 7E00 3000 3000 3000 2000 6000 6000 6000 6000 4000 C000 C000 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 1 -3 BITMAP 07C0 18C0 30C0 2080 6180 6380 6380 6500 7B00 0300 C200 7C00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 2 0 BITMAP 7800 1000 3000 3000 3380 24C0 68C0 7080 6180 6180 4180 C180 C3C0 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 5 0 BBX 4 13 2 0 BITMAP 30 00 00 00 E0 60 60 60 40 40 40 C0 E0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 6 0 BBX 9 16 -1 -3 BITMAP 0180 0000 0000 0000 0700 0300 0300 0300 0200 0600 0600 0600 0400 8C00 8800 F000 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 2 0 BITMAP 7000 3000 3000 3000 2180 2300 6600 7800 7800 4C00 4E00 C600 C380 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 5 0 BBX 5 13 1 0 BITMAP 78 18 10 30 30 30 20 60 60 60 40 C0 F0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 17 0 BBX 15 9 2 0 BITMAP F39C 2DB6 79E6 71C4 618C 410C 430C C30C C30E ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 2 0 BITMAP F380 24C0 68C0 7080 6180 6180 4180 C180 C3C0 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 2 0 BITMAP 0F00 3380 6180 4180 C180 C300 C300 C600 7800 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 1 -3 BITMAP 7380 34C0 38C0 30C0 3080 6180 6100 6200 7C00 4000 C000 C000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 1 -3 BITMAP 0FC0 10C0 2080 6180 4180 C380 C580 C900 7300 0300 0300 0200 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 2 0 BITMAP F3 2E 78 70 60 40 40 C0 C0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 1 0 BITMAP 1F 31 31 38 1C 06 82 C6 7C ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 6 0 BBX 6 12 2 0 BITMAP 30 30 30 FC 60 60 60 40 C0 C0 C0 70 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 2 0 BITMAP F3C0 60C0 6080 6180 6180 4380 C580 C900 73C0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 1 0 BITMAP E0C0 3040 30C0 1080 1900 1A00 1E00 1C00 1800 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 14 0 BBX 14 9 1 0 BITMAP E10C 6184 338C 3388 3690 14F0 18E0 18C0 1080 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 1 0 BITMAP 7180 3180 1B00 1C00 0C00 3C00 6600 C700 C380 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 10 0 BBX 11 12 0 -3 BITMAP 7060 1820 1860 0840 0C80 0D00 0E00 0C00 0800 1000 3000 E000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 3F80 2300 2600 0C00 1800 1800 3100 6100 FF00 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 6 0 BBX 6 16 2 -3 BITMAP 0C 18 10 30 10 30 30 20 C0 60 60 60 C0 C0 C0 60 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 4 0 BBX 4 16 1 -3 BITMAP 10 10 30 20 20 20 20 60 60 40 40 40 40 C0 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 6 0 BBX 6 16 2 -3 BITMAP 18 04 04 0C 08 18 18 0C 10 10 30 30 30 30 20 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 11 0 BBX 11 4 1 3 BITMAP 7820 8C20 8640 83C0 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 5 0 BBX 4 12 1 -3 BITMAP 30 00 00 20 20 20 40 40 40 40 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 3 0 BITMAP 02 07 1D 29 48 C8 C8 C8 C8 CA 7C 10 10 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 2 0 BITMAP 03C0 0440 0C40 0800 1800 1800 7E00 1800 1000 3000 2000 4000 FF00 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 11 0 BBX 12 11 1 1 BITMAP 2010 1720 18C0 1040 2040 2040 2040 2080 3180 6EC0 8040 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 11 0 BBX 12 13 2 0 BITMAP F870 6040 3180 1900 1E00 7F00 0800 1800 7F00 1800 1800 3800 7C00 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 4 0 BBX 4 16 1 -3 BITMAP 10 10 30 20 20 20 60 00 00 60 40 40 40 C0 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 1 -3 BITMAP 0FC0 1840 3040 3000 3800 1E00 2700 6180 6180 3900 1E00 0300 0100 8300 C600 7C00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 10 0 BBX 5 1 5 12 BITMAP D8 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 15 0 BBX 14 13 2 0 BITMAP 0FC0 3830 6008 43E4 8424 8804 8804 8804 8C04 4784 6008 3830 0FC0 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 2 6 BITMAP 3E 66 44 CC DC FC EE ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 2 0 BITMAP 09 12 26 4C D8 48 44 24 22 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 11 0 BBX 11 4 1 3 BITMAP FFE0 0020 0040 0040 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 6 0 BBX 4 1 2 5 BITMAP F0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 11 0 BBX 8 8 3 5 BITMAP 3C 46 9D 95 99 AD 46 3C ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 10 0 BBX 5 1 5 12 BITMAP F8 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 3 10 BITMAP E0 A0 E0 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 11 0 BBX 12 11 0 0 BITMAP 0100 0200 0200 0200 7FF0 0200 0200 0400 0000 0000 FFE0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 -8 4 BITMAP 38 44 04 04 18 20 60 40 F8 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 -9 4 BITMAP 38 48 0C 08 70 08 08 98 F0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 10 0 BBX 4 3 6 10 BITMAP 30 40 80 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 2 -3 BITMAP 71C0 30C0 3080 2080 6180 6180 6380 6500 7BC0 C000 C000 C000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 11 0 BBX 8 16 3 -3 BITMAP 7F FA FA FA F2 72 34 14 14 24 24 28 28 28 28 68 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 11 0 BBX 2 1 6 5 BITMAP C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 10 0 BBX 3 3 3 -3 BITMAP 60 20 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 7 0 BBX 4 9 -9 4 BITMAP 70 10 10 20 20 20 20 20 F0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 2 6 BITMAP 1C 66 46 C6 C4 C8 70 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 2 0 BITMAP 44 24 22 12 1B 32 64 48 90 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 15 0 BBX 14 13 3 0 BITMAP 700C 1018 1030 2020 204C 2094 2128 2248 F488 08FC 1808 3010 6038 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 15 0 BBX 14 13 3 0 BITMAP 700C 1018 1030 2020 2078 20C4 2104 2204 F418 0820 1860 3040 60F8 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 15 0 BBX 14 13 3 0 BITMAP 380C 4818 0C30 0820 704C 0894 0928 9A48 F488 08FC 1808 3010 6038 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 1 -4 BITMAP 06 00 00 04 04 0C 18 30 60 C0 C2 C6 7C ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 0 0 BITMAP 00C0 0040 0020 0000 00C0 00C0 01C0 03C0 02C0 0460 0C60 0860 1FE0 1060 2020 4030 F0F8 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 0 0 BITMAP 0030 0040 0080 0000 00C0 00C0 01C0 03C0 02C0 0460 0C60 0860 1FE0 1060 2020 4030 F0F8 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 0 0 BITMAP 00E0 01A0 0210 0000 00C0 00C0 01C0 03C0 02C0 0460 0C60 0860 1FE0 1060 2020 4030 F0F8 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 13 0 BBX 13 16 0 0 BITMAP 00C8 0130 0000 00C0 00C0 01C0 03C0 02C0 0460 0C60 0860 1FE0 1060 2020 4030 F0F8 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 13 0 BBX 13 15 0 0 BITMAP 01B0 0000 00C0 00C0 01C0 03C0 02C0 0460 0C60 0860 1FE0 1060 2020 4030 F0F8 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 0 0 BITMAP 00E0 00A0 00E0 0000 00C0 00C0 01C0 03C0 02C0 0460 0C60 0860 1FE0 1060 2020 4030 F0F8 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 16 0 BBX 18 13 0 0 BITMAP 003FC0 007040 007040 00B000 013000 022100 047F00 046000 0FE000 106000 204000 40C100 E3FF00 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 13 0 BBX 12 16 2 -3 BITMAP 07F0 1C30 3030 3000 6000 6000 C000 C000 C000 C000 E000 70C0 3F00 1000 0800 3800 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 10 0 BBX 11 17 1 0 BITMAP 0300 0100 0080 0000 3FE0 1820 1820 1800 1800 1880 1F80 3100 3000 3000 3080 3080 FF80 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 10 0 BBX 11 17 1 0 BITMAP 00C0 0100 0200 0000 3FE0 1820 1820 1800 1800 1880 1F80 3100 3000 3000 3080 3080 FF80 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 10 0 BBX 11 17 1 0 BITMAP 0380 0680 0840 0000 3FE0 1820 1820 1800 1800 1880 1F80 3100 3000 3000 3080 3080 FF80 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 10 0 BBX 11 15 1 0 BITMAP 06C0 0000 3FE0 1820 1820 1800 1800 1880 1F80 3100 3000 3000 3080 3080 FF80 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 6 0 BBX 8 17 0 0 BITMAP 0C 04 02 00 1F 0C 0C 0C 08 18 18 18 10 30 30 30 F8 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 6 0 BBX 9 17 0 0 BITMAP 0180 0200 0400 0000 1F00 0C00 0C00 0C00 0800 1800 1800 1800 1000 3000 3000 3000 F800 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 6 0 BBX 9 17 0 0 BITMAP 0700 0D00 1080 0000 1F00 0C00 0C00 0C00 0800 1800 1800 1800 1000 3000 3000 3000 F800 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 6 0 BBX 8 15 0 0 BITMAP 1B 00 1F 0C 0C 0C 08 18 18 18 10 30 30 30 F8 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 14 0 BBX 14 13 0 0 BITMAP 3FF0 0C38 0C1C 080C 180C 180C 7F0C 180C 1018 3018 3030 30E0 FF80 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 14 0 BBX 16 16 0 0 BITMAP 00C8 0130 0000 3C1F 0C04 0E04 1608 1308 1308 1188 10C8 20D0 2070 2070 2030 F020 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 2 0 BITMAP 0300 0100 0080 0000 07C0 0C70 3030 2018 6018 4018 C018 C030 C030 C060 C0C0 6180 3E00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 2 0 BITMAP 0060 0080 0100 0000 07C0 0C70 3030 2018 6018 4018 C018 C030 C030 C060 C0C0 6180 3E00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 2 0 BITMAP 01C0 0340 0420 0000 07C0 0C70 3030 2018 6018 4018 C018 C030 C030 C060 C0C0 6180 3E00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 14 0 BBX 13 16 2 0 BITMAP 0320 04C0 0000 07C0 0C70 3030 2018 6018 4018 C018 C030 C030 C060 C0C0 6180 3E00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 14 0 BBX 13 15 2 0 BITMAP 0360 0000 07C0 0C70 3030 2018 6018 4018 C018 C030 C030 C060 C0C0 6180 3E00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 11 0 BBX 12 11 1 0 BITMAP 2010 3020 1040 0880 0500 0600 0E00 1100 2080 40C0 8040 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 14 0 BBX 15 13 1 0 BITMAP 03E6 0638 0818 181C 306C 208C 610C 6218 6418 7830 7020 30C0 CF80 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 3 0 BITMAP 0600 0200 0100 0000 F878 7020 6020 6020 6040 6040 4040 C040 C040 C080 C080 6100 3E00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 3 0 BITMAP 00C0 0100 0200 0000 F878 7020 6020 6020 6040 6040 4040 C040 C040 C080 C080 6100 3E00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 3 0 BITMAP 0380 0680 0840 0000 F878 7020 6020 6020 6040 6040 4040 C040 C040 C080 C080 6100 3E00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 13 0 BBX 13 15 3 0 BITMAP 06C0 0000 F878 7020 6020 6020 6040 6040 4040 C040 C040 C080 C080 6100 3E00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 12 0 BBX 12 17 2 0 BITMAP 0180 0200 0400 0000 F870 6060 3040 3080 1900 1A00 1C00 0800 1800 1800 1800 3800 7C00 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 10 0 BBX 11 13 0 0 BITMAP 3F00 0C00 0C00 0FC0 1860 1860 1860 18C0 31C0 3F00 3000 3000 F800 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 11 0 BBX 10 17 1 -3 BITMAP 0F00 0980 1880 1980 1100 3600 3400 3600 3300 2180 60C0 68C0 6880 4F00 4000 C000 C000 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0600 0200 0100 0000 0FC0 10C0 2080 6180 4180 C380 C580 C900 73C0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 00C0 0100 0200 0000 0FC0 10C0 2080 6180 4180 C380 C580 C900 73C0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0380 0680 0840 0000 0FC0 10C0 2080 6180 4180 C380 C580 C900 73C0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 1 0 BITMAP 0640 0980 0000 0FC0 10C0 2080 6180 4180 C380 C580 C900 73C0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 11 0 BBX 10 11 1 0 BITMAP 06C0 0000 0FC0 10C0 2080 6180 4180 C380 C580 C900 73C0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0380 0280 0380 0000 0FC0 10C0 2080 6180 4180 C380 C580 C900 73C0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 16 0 BBX 14 9 2 0 BITMAP 0FFC 10CC 208C 618C 41F0 C300 C584 C988 70F0 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 2 -3 BITMAP 0F 31 61 40 C0 C0 C0 C2 7C 20 10 70 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 2 0 BITMAP 0C 04 02 00 0E 33 63 42 FC C0 C1 E6 7C ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 9 0 BBX 9 13 2 0 BITMAP 0180 0200 0400 0000 0E00 3300 6300 4200 FC00 C000 C100 E600 7C00 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 9 0 BBX 9 13 2 0 BITMAP 0700 0D00 1080 0000 0E00 3300 6300 4200 FC00 C000 C100 E600 7C00 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 9 0 BBX 9 11 2 0 BITMAP 0D80 0000 0E00 3300 6300 4200 FC00 C000 C100 E600 7C00 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 5 0 BBX 5 13 2 0 BITMAP 30 10 08 00 F0 30 20 60 60 60 40 C0 F0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 5 0 BBX 7 13 2 0 BITMAP 06 08 10 00 F0 30 20 60 60 60 40 C0 F0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 5 0 BBX 7 13 2 0 BITMAP 1C 34 42 00 F0 30 20 60 60 60 40 C0 F0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 5 0 BBX 6 11 2 0 BITMAP 6C 00 F0 30 20 60 60 60 40 C0 F0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 10 0 BBX 9 14 2 0 BITMAP 0180 3E00 0F00 0B00 1100 1F80 3180 6180 4180 C100 C100 C300 C600 7800 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 2 0 BITMAP 0640 0980 0000 F380 24C0 68C0 7080 6180 6180 4180 C180 C3C0 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 2 0 BITMAP 0C00 0400 0200 0000 0F00 3380 6180 4180 C180 C300 C300 C600 7800 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 2 0 BITMAP 0180 0200 0400 0000 0F00 3380 6180 4180 C180 C300 C300 C600 7800 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 2 0 BITMAP 0700 0D00 1080 0000 0F00 3380 6180 4180 C180 C300 C300 C600 7800 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 2 0 BITMAP 0C80 1300 0000 0F00 3380 6180 4180 C180 C300 C300 C600 7800 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 10 0 BBX 9 11 2 0 BITMAP 0D80 0000 0F00 3380 6180 4180 C180 C300 C300 C600 7800 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 11 0 BBX 11 9 1 0 BITMAP 0600 0000 0000 0000 FFE0 0000 0000 0000 0C00 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 1 0 BITMAP 0740 1980 31C0 62C0 6480 7980 6100 6300 FC00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 2 0 BITMAP 0600 0200 0100 0000 F3C0 60C0 6080 6180 6180 4380 C580 C900 73C0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 2 0 BITMAP 00C0 0100 0200 0000 F3C0 60C0 6080 6180 6180 4380 C580 C900 73C0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 2 0 BITMAP 0380 0680 0840 0000 F3C0 60C0 6080 6180 6180 4380 C580 C900 73C0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 11 0 BBX 10 11 2 0 BITMAP 0D80 0000 F3C0 60C0 6080 6180 6180 4380 C580 C900 73C0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 10 0 BBX 11 16 0 -3 BITMAP 0060 0080 0100 0000 7060 1820 1860 0840 0C80 0D00 0E00 0C00 0800 1000 3000 E000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 1 -3 BITMAP 7800 1000 1000 3000 3380 34C0 38C0 30C0 7080 6180 6100 6200 7C00 C000 C000 C000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 10 0 BBX 11 14 0 -3 BITMAP 06C0 0000 7060 1820 1860 0840 0C80 0D00 0E00 0C00 0800 1000 3000 E000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 17 1 -3 BITMAP 07E0 0860 1860 1840 1040 7EC0 30C0 30C0 3080 2080 6180 6180 6180 61C0 4000 C000 C000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 1 2 5 BITMAP FE ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 16 3 -3 BITMAP 0C 08 08 08 08 FF 10 10 10 10 30 30 20 20 60 60 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 12 17 1 0 BITMAP 0420 02C0 0380 0000 1FF0 1060 30C0 01C0 0180 0300 0600 0C00 1800 3800 3040 6040 FFC0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 14 9 2 0 BITMAP 0F38 334C 618C 4188 C1F0 C300 C304 C588 79F0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 15 2 0 BITMAP 0D80 0000 F870 6060 3040 3080 1900 1A00 1C00 0800 1800 1800 1800 3800 7C00 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 9 2 0 BITMAP F0 30 20 60 60 60 40 C0 F0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 6 13 1 0 BITMAP 38 18 18 18 10 3C F0 30 20 60 60 60 70 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP 1F00 0C00 0C00 0C00 1A00 1E00 1800 7800 1000 3000 3040 30C0 FFC0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 16 2 -3 BITMAP 0600 0400 0400 0400 7F80 0800 0800 0800 0800 0800 FF00 1000 1000 1000 1000 3000 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 17 1 -3 BITMAP 0700 0960 1900 1800 1000 7FC0 30C0 30C0 30C0 2080 6180 6180 6180 61C0 4000 C000 C000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 20 20 30 10 18 30 20 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 18 13 2 0 BITMAP 03DFC0 0C7040 103040 303000 603000 402100 C07F00 C06100 C06000 C06000 C0C100 61C100 1EFF00 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 16 1 2 5 BITMAP FFFF ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 3 5 10 BITMAP 84 58 70 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 3 3 3 -3 BITMAP 60 80 E0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 3 5 10 BITMAP 3C 50 A0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 08 10 20 60 C0 40 60 20 20 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 2 1 6 12 BITMAP C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 3 5 10 BITMAP 84 D8 70 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 5 3 3 BITMAP 78 FC FC FC 78 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 2 5 11 BITMAP 64 98 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 3 5 10 BITMAP 38 68 84 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 5 3 8 BITMAP 26 44 4C EC CC ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 2 4 3 9 BITMAP C0 C0 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 10 13 1 0 BITMAP 0840 0580 0700 0000 1F00 3100 3100 3800 1C00 0600 8200 C600 7C00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 3 3 6 11 BITMAP E0 A0 E0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 -3 BITMAP 60 60 60 40 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 16 4 -3 BITMAP 07 19 11 30 30 30 F8 20 60 60 60 60 40 C0 C0 C0 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 16 7 2 6 BITMAP FFC7 10EE 30F4 20F4 2164 212C F30E ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 13 13 -3 0 BITMAP 0018 0030 0060 0040 0080 0100 0200 0400 0800 1000 3000 6000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 3 3 6 10 BITMAP C0 40 20 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 18 13 2 0 BITMAP 3C1800 243000 442000 444000 4C8000 390000 02E1C0 059240 091640 131440 233440 6124C0 C1C380 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 14 1 2 0 BITMAP C30C ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 5 3 8 BITMAP 66 6E 64 44 C8 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 17 1 0 BITMAP 0840 0580 0700 0000 0F80 18C0 3040 3040 3800 1C00 0E00 0300 0180 8180 8180 C300 7C00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 5 1 -3 BITMAP 66 6E 66 44 C8 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 1 0 BITMAP 0840 0580 0700 0000 3F80 2300 2600 0C00 1800 1800 3100 6100 FF00 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lubI19.bdf100644 1750 1750 77550 5413747501 15024 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-Medium-I-Normal--19-190-75-75-P-109-ISO8859-1 SIZE 19 72 72 FONTBOUNDINGBOX 31 22 -10 -4 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "Medium" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 19 POINT_SIZE 190 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH "109" CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." FONT_ASCENT 17 FONT_DESCENT 5 DEFAULT_CHAR 0 ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 5 0 BBX 5 14 1 0 BITMAP 18 18 10 30 30 30 20 20 20 20 40 00 00 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 7 0 BBX 5 4 4 10 BITMAP D8 D8 90 90 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 1 0 BITMAP 0130 0220 0240 0440 7FF0 0880 0900 1100 FFE0 2200 2600 4400 4400 C800 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 12 0 BBX 9 17 3 -2 BITMAP 0200 1F80 3480 6480 6400 6400 3800 1800 0E00 1700 1300 1300 9200 D600 F800 2000 2000 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 2 0 BITMAP 1C08 2410 6620 4440 4480 6D00 3B00 02E0 0590 0910 1110 2110 4120 C1C0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 2 0 BITMAP 0380 04C0 0C40 0C40 0CC0 0F00 1400 6678 C630 C320 C360 C1C0 61C0 3EF0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 3 9 BITMAP 60 60 60 40 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 6 0 BBX 7 18 2 -4 BITMAP 02 0C 10 10 20 60 60 40 C0 C0 C0 C0 C0 C0 C0 40 40 20 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 6 0 BBX 6 18 0 -4 BITMAP 10 08 08 04 04 04 04 04 0C 0C 0C 08 18 10 30 20 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 3 7 BITMAP 18 10 D6 2C 30 C8 48 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 1 0 BITMAP 0200 0200 0200 0200 0400 0400 FFE0 0400 0400 0C00 0800 0800 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 5 0 BBX 3 7 1 -4 BITMAP 60 60 60 60 40 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 12 0 BBX 11 1 1 5 BITMAP FFE0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 5 0 BBX 3 2 1 0 BITMAP E0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 9 0 BBX 12 18 0 -4 BITMAP 0010 0020 0040 0040 0080 0080 0100 0200 0200 0400 0400 0800 1000 1000 2000 2000 4000 8000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP 0F00 1980 30C0 60C0 60C0 40C0 C0C0 C0C0 C080 C180 C180 C300 6600 3C00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 12 0 BBX 7 14 2 0 BITMAP 1E 06 06 04 0C 0C 0C 0C 08 18 18 18 18 FE ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 0F80 10E0 1060 0060 0060 00C0 0180 0300 0400 0800 3000 6000 4000 FF80 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP 1F00 1180 30C0 00C0 0180 0300 1E00 0300 0180 0180 0180 8300 8600 FC00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP 00C0 0180 0380 0580 0980 1180 1180 2100 4100 FFC0 0300 0200 0600 0F80 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP 1FC0 2000 2000 2000 2000 3C00 0700 0300 0180 0180 0100 8300 8600 FC00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP 07C0 1840 3040 3000 6000 7F00 E180 C180 C180 C180 C180 C100 6200 3C00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 3 0 BITMAP 3FE0 0040 0080 0080 0100 0200 0400 0800 1800 3000 2000 6000 C000 C000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 3 0 BITMAP 0F00 1180 3080 3080 3180 3B00 1C00 2700 4300 C100 C180 C300 E600 3C00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP 0F00 1980 30C0 60C0 60C0 60C0 60C0 71C0 3FC0 0180 0180 8300 8600 7800 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 5 0 BBX 4 10 2 0 BITMAP 30 70 00 00 00 00 00 00 E0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 5 0 BBX 5 14 1 -4 BITMAP 18 38 00 00 00 00 00 00 60 60 60 60 40 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 12 0 BBX 12 12 1 0 BITMAP 0010 0060 0180 0600 1800 E000 6000 1800 0C00 0300 01C0 0040 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 12 0 BBX 12 5 1 3 BITMAP 7FF0 0000 0000 0000 FFE0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 12 0 BBX 12 12 0 0 BITMAP 2000 3800 0C00 0300 0180 0060 0070 0180 0600 1800 6000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 9 0 BBX 7 14 3 0 BITMAP 7C C6 82 02 06 0C 18 30 60 60 00 00 00 C0 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 2 0 BITMAP 03E0 0C18 1004 23E4 4464 8444 8844 88C4 8944 8948 8E70 4000 3080 1F00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 14 0 BBX 14 14 0 0 BITMAP 0040 00C0 00E0 0160 0160 0260 0460 0430 0830 1FF0 2030 2030 6038 F07C ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP 1FE0 0C30 0C30 0C30 0C20 08E0 1F80 18C0 1860 1860 3060 3060 30C0 FF80 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 2 0 BITMAP 03F8 0C18 1818 3018 6000 6000 C000 C000 C000 C000 C000 6000 7060 1F80 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 15 0 BBX 15 14 0 0 BITMAP 1FF0 0C1C 0C0C 0C06 0C06 1806 1806 1806 180C 180C 3018 3038 3060 FF80 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 11 0 BBX 12 14 1 0 BITMAP 1FF0 0C10 0C30 0C00 0800 1840 1FC0 1880 1800 1000 3000 3040 3040 FFC0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 10 0 BBX 12 14 1 0 BITMAP 1FF0 0C10 0C30 0C00 0800 1840 1F80 1880 1800 1000 3000 3000 3000 FC00 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 2 0 BITMAP 03F8 0C18 1810 3000 6000 6000 C000 C000 C1F8 C060 C060 6060 70C0 1F80 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 15 0 BBX 17 14 0 0 BITMAP 1F1F80 0E0600 0C0600 0C0600 0C0C00 180C00 1FFC00 180C00 180C00 181800 301800 301800 303800 FC7C00 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 6 0 BBX 8 14 1 0 BITMAP 1F 0C 0C 0C 08 18 18 18 18 10 30 30 30 F8 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 8 0 BBX 11 18 0 -4 BITMAP 07E0 0180 0180 0180 0300 0300 0300 0300 0300 0300 0600 0600 0600 0600 0400 CC00 8800 F000 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 13 0 BBX 14 14 1 0 BITMAP 1F3C 0C18 0C20 0C40 0980 1B00 1E00 1F00 1B00 3180 31C0 30C0 3060 F9F0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP 1F00 0E00 0C00 0C00 0C00 0C00 1800 1800 1800 1800 3000 3020 3060 FFE0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 16 0 BBX 18 14 1 0 BITMAP 1C03C0 0E0700 0E0700 0E0B00 0E0A00 121600 133600 132600 134600 114400 218C00 210C00 200C00 F03E00 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 14 0 BBX 16 14 0 0 BITMAP 1C0F 0C02 0E04 0E04 1304 1384 1184 10C8 10C8 1068 2068 2038 2030 F010 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 15 0 BBX 13 14 2 0 BITMAP 03E0 0C30 1818 3018 6018 6018 C018 C018 C018 C030 C030 6060 71C0 1F00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 11 0 BBX 12 14 1 0 BITMAP 1FE0 0C30 0C30 0C30 0830 1860 18C0 1F80 1800 3000 3000 3000 3000 FC00 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 2 -4 BITMAP 03E0 0C30 1818 3018 6018 6018 C018 C018 C018 C030 C030 6060 71E0 1FC0 0100 0080 00C0 003E ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 13 0 BBX 13 14 0 0 BITMAP 1FF0 0C30 0C38 0C30 0C30 0C20 18C0 1F80 1980 18C0 30C0 3060 3060 FC38 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 10 0 BBX 11 14 1 0 BITMAP 0FC0 1860 1040 3040 3000 1800 0E00 0700 0380 0180 C180 8180 C300 7E00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 3 0 BITMAP FFF0 8610 8610 0600 0C00 0C00 0C00 0C00 0C00 1800 1800 1800 1800 7E00 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 3 0 BITMAP FC78 7020 6020 6020 6020 6040 6040 C040 C040 C040 C080 C080 6100 3E00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 12 0 BBX 14 14 2 0 BITMAP F83C 6008 6010 3020 3020 3040 30C0 3080 1900 1B00 1A00 1C00 1C00 0800 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 17 0 BBX 18 14 2 0 BITMAP F843C0 60C180 60C100 61C200 61C200 22C400 22C400 244800 344800 387000 387000 306000 306000 204000 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 12 0 BBX 15 14 0 0 BITMAP 1F1E 0E0C 0618 0630 0360 03C0 0180 0380 02C0 04C0 0860 1060 2070 F0F8 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 13 0 BBX 13 14 2 0 BITMAP F878 7030 3060 30C0 1880 1900 1E00 0C00 0C00 0C00 1800 1800 1800 7E00 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 1 0 BITMAP 1FF0 1060 30E0 00C0 0180 0300 0600 0600 0C00 1800 3000 7040 6040 FFC0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 6 0 BBX 7 18 1 -4 BITMAP 1E 18 18 10 10 30 30 30 20 20 60 60 60 40 40 C0 C0 F0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 9 0 BBX 5 18 3 -4 BITMAP 80 80 40 40 40 40 40 20 20 20 20 10 10 10 10 10 08 08 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 6 0 BBX 7 18 0 -4 BITMAP 1E 06 06 04 04 0C 0C 0C 08 08 18 18 18 10 10 30 30 F0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 1 2 BITMAP 0100 0100 0300 0780 0480 0880 0880 1040 2040 2040 4040 C020 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 9 0 BBX 8 1 1 -2 BITMAP FF ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 3 9 BITMAP 60 40 C0 E0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 2 0 BITMAP 0FC0 10C0 20C0 6080 6180 C180 C380 C580 C900 73C0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 2 0 BITMAP 7800 1000 3000 3000 3380 34C0 28C0 70C0 70C0 6080 4180 4100 C200 FC00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 2 0 BITMAP 0F80 1100 2100 4000 C000 C000 C000 C000 C200 7C00 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 2 0 BITMAP 01E0 0060 0040 00C0 0FC0 10C0 20C0 6080 6180 C180 C380 C580 C900 73C0 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 2 0 BITMAP 0F 33 63 43 C6 F8 C0 C1 E3 7C ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 7 0 BBX 9 19 2 -4 BITMAP 0780 0880 0880 1800 1800 7E00 3000 3000 3000 3000 2000 6000 6000 6000 6000 4000 C000 C000 C000 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 1 -4 BITMAP 07E0 0860 1060 3040 20C0 60C0 61C0 62C0 6580 3980 0180 8100 C200 7C00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP 7800 1000 3000 3000 3380 24C0 28C0 7080 6180 6180 4180 4180 C180 C3C0 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 5 0 BBX 5 14 2 0 BITMAP 18 00 00 00 F0 30 30 20 60 60 60 40 C0 F0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 7 0 BBX 9 18 0 -4 BITMAP 0180 0000 0000 0000 0700 0300 0300 0300 0200 0200 0600 0600 0600 0400 0C00 8C00 8800 F000 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 7800 1800 1000 3000 30C0 3180 3300 6400 7800 6C00 6C00 4600 C300 C3C0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 5 0 BBX 5 14 2 0 BITMAP 78 18 10 30 30 30 30 60 60 60 60 40 C0 F0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 18 0 BBX 16 10 2 0 BITMAP F38E 34D3 68A3 71E2 71C6 6186 6186 C186 C306 C30F ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 2 0 BITMAP F380 24C0 68C0 7080 6180 6180 4180 C180 C180 C3C0 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 2 0 BITMAP 0F00 3180 6180 6180 C180 C180 C180 C300 E600 7800 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 -4 BITMAP 79C0 3260 3460 3860 3060 30C0 60C0 6080 6100 7E00 4000 C000 C000 C000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 2 -4 BITMAP 0FC0 10C0 20C0 6080 6180 C180 C380 C580 C900 7300 0300 0300 0300 0600 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 2 0 BITMAP F180 3700 3C00 7800 7000 6000 6000 4000 C000 C000 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 8 0 BBX 9 10 1 0 BITMAP 0F00 3180 3100 3800 1C00 0E00 8600 8300 C600 7C00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 7 0 BBX 6 13 2 0 BITMAP 30 30 30 FC 60 60 60 60 40 C0 C0 C0 70 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 2 0 BITMAP F3C0 60C0 60C0 6080 6180 6180 4380 C580 C900 73C0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 1 0 BITMAP F0E0 3060 3060 18C0 1880 1900 1A00 1E00 1C00 1800 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 15 0 BBX 15 10 1 0 BITMAP E086 3186 3186 33C4 12C8 16D8 14D0 18E0 18C0 10C0 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 1 0 BITMAP 70C0 38C0 1980 0F00 0C00 1E00 3600 6300 C300 C1C0 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 11 0 BBX 12 14 0 -4 BITMAP 7870 1830 1820 0820 0C40 0C80 0D00 0D00 0E00 0400 0800 1000 3000 E000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 1 0 BITMAP 3FC0 2180 2300 0600 0C00 1C00 1800 3080 6180 FF80 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 6 0 BBX 7 18 2 -4 BITMAP 0E 18 10 10 10 10 10 30 20 C0 60 60 60 40 C0 C0 C0 60 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 5 0 BBX 5 18 1 -4 BITMAP 08 18 10 10 10 10 30 20 20 20 20 60 40 40 40 40 C0 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 6 0 BBX 7 18 2 -4 BITMAP 18 04 04 0C 0C 08 08 08 0E 10 10 30 30 30 30 30 60 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 12 0 BBX 12 5 1 3 BITMAP 3810 4C10 8610 8320 81C0 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 5 0 BBX 5 14 1 -4 BITMAP 18 00 00 00 30 20 20 20 60 60 60 40 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 3 0 BITMAP 0200 0780 1D80 2500 6400 4400 C400 C800 C800 C800 E900 7E00 1000 1000 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 2 0 BITMAP 01E0 0220 0420 0C00 0C00 0C00 1800 7F00 1800 1800 1000 3000 6000 FF00 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 12 0 BBX 13 12 1 1 BITMAP 2008 1710 18A0 1040 1040 2040 2040 2040 1080 31C0 6F40 8020 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 12 0 BBX 13 14 2 0 BITMAP F878 7020 3040 1880 1900 0E00 7F80 0C00 0800 7F00 1800 1800 1800 7C00 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 5 0 BBX 5 18 1 -4 BITMAP 08 18 10 10 10 10 30 20 00 00 20 60 40 40 40 40 C0 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 12 0 BBX 10 18 2 -4 BITMAP 07C0 1840 3040 3000 3000 1C00 3F00 2380 6180 6080 3980 1F00 0700 0300 0100 8300 C700 7C00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 11 0 BBX 6 1 5 13 BITMAP CC ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 16 0 BBX 15 14 2 0 BITMAP 0FC0 1830 2008 43E4 8424 8C22 8802 8802 8802 8C04 47C4 2008 1830 0FC0 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 2 6 BITMAP 1E 26 46 C6 CC DC D4 EE ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 0880 1100 2200 4C00 CC00 6400 2200 2200 1000 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 12 0 BBX 11 5 2 3 BITMAP FFE0 0020 0060 0040 0040 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 6 0 BBX 5 1 2 6 BITMAP F8 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 12 0 BBX 8 9 4 5 BITMAP 3C 46 9E 95 99 99 A5 46 3C ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 11 0 BBX 5 1 6 13 BITMAP F8 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 5 0 BBX 3 4 3 10 BITMAP 60 A0 A0 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 12 0 BBX 12 12 0 0 BITMAP 0100 0100 0100 0100 7FF0 0200 0200 0200 0200 0000 0000 FFE0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 -10 5 BITMAP 38 4C 04 04 18 20 40 40 F8 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 -10 5 BITMAP 38 6C 04 08 30 18 08 98 F0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 11 0 BBX 5 3 6 11 BITMAP 38 60 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 2 -4 BITMAP 71E0 3060 3040 30C0 30C0 20C0 61C0 6280 6780 7DE0 4000 C000 C000 C000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 12 0 BBX 8 18 3 -4 BITMAP 7F 79 F9 FA FA 7A 72 12 14 14 14 24 24 24 24 24 28 28 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 12 0 BBX 2 1 6 6 BITMAP C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 11 0 BBX 3 4 3 -4 BITMAP 60 60 20 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 7 0 BBX 4 9 -10 5 BITMAP 70 10 10 20 20 20 20 60 F0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 2 6 BITMAP 1C 26 42 C2 C2 C4 CC 70 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 1 BITMAP 0400 2200 2200 1300 1980 1900 2200 4400 8800 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 15 0 BBX 15 14 3 0 BITMAP 7006 100C 1018 2030 2020 204C 2094 6128 F248 0488 0CFC 1808 3010 6038 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 15 0 BBX 15 14 3 0 BITMAP 7006 100C 1018 2030 2020 2078 20CC 6104 F204 0418 0C20 1840 3040 60F8 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 15 0 BBX 15 14 3 0 BITMAP 3806 6C0C 0418 0830 3020 184C 0894 9928 F248 0488 0CFC 1808 3010 6038 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 9 0 BBX 7 14 1 -4 BITMAP 06 00 00 00 06 04 08 10 60 40 C0 C2 E2 7C ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 0 0 BITMAP 00C0 0040 0020 0000 0040 00C0 00E0 0160 0160 0260 0460 0430 0830 1FF0 2030 2030 6038 F07C ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 0 0 BITMAP 001C 0030 0060 0000 0040 00C0 00E0 0160 0160 0260 0460 0430 0830 1FF0 2030 2030 6038 F07C ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 0 0 BITMAP 0070 00D0 0108 0000 0040 00C0 00E0 0160 0160 0260 0460 0430 0830 1FF0 2030 2030 6038 F07C ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP 00C8 0130 0000 0040 00C0 00E0 0160 0160 0260 0460 0430 0830 1FF0 2030 2030 6038 F07C ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 14 0 BBX 14 16 0 0 BITMAP 0198 0000 0040 00C0 00E0 0160 0160 0260 0460 0430 0830 1FF0 2030 2030 6038 F07C ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 0 0 BITMAP 0070 0050 0070 0000 0040 00C0 00E0 0160 0160 0260 0460 0430 0830 1FF0 2030 2030 6038 F07C ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 17 0 BBX 19 14 0 0 BITMAP 001FE0 003820 005860 009800 00B000 013080 023F80 043080 043000 0FE000 106000 206080 406080 F1FF80 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 2 -4 BITMAP 03F8 0C18 1818 3018 6000 6000 C000 C000 C000 C000 C000 6000 7060 1F80 0800 0C00 0400 1C00 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 11 0 BBX 12 18 1 0 BITMAP 0300 0100 0080 0000 1FF0 0C10 0C30 0C00 0800 1840 1FC0 1880 1800 1000 3000 3040 3040 FFC0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 11 0 BBX 12 18 1 0 BITMAP 00E0 0180 0300 0000 1FF0 0C10 0C30 0C00 0800 1840 1FC0 1880 1800 1000 3000 3040 3040 FFC0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 11 0 BBX 12 18 1 0 BITMAP 01C0 0340 0420 0000 1FF0 0C10 0C30 0C00 0800 1840 1FC0 1880 1800 1000 3000 3040 3040 FFC0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 11 0 BBX 12 16 1 0 BITMAP 0660 0000 1FF0 0C10 0C30 0C00 0800 1840 1FC0 1880 1800 1000 3000 3040 3040 FFC0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 6 0 BBX 8 18 1 0 BITMAP 0C 04 02 00 1F 0C 0C 0C 08 18 18 18 18 10 30 30 30 F8 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 6 0 BBX 9 18 1 0 BITMAP 0380 0600 0C00 0000 1F00 0C00 0C00 0C00 0800 1800 1800 1800 1800 1000 3000 3000 3000 F800 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 6 0 BBX 9 18 1 0 BITMAP 0700 0D00 1080 0000 1F00 0C00 0C00 0C00 0800 1800 1800 1800 1800 1000 3000 3000 3000 F800 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 6 0 BBX 9 16 1 0 BITMAP 1980 0000 1F00 0C00 0C00 0C00 0800 1800 1800 1800 1800 1000 3000 3000 3000 F800 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 15 0 BBX 15 14 0 0 BITMAP 1FF0 0C1C 0C0C 0C06 0C06 1806 7F06 1806 180C 180C 3018 3038 3060 FF80 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 14 0 BBX 16 17 0 0 BITMAP 00C8 0130 0000 1C0F 0C02 0E04 0E04 1304 1384 1184 10C8 10C8 1068 2068 2038 2030 F010 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 2 0 BITMAP 0180 0080 0040 0000 03E0 0C30 1818 3018 6018 6018 C018 C018 C018 C030 C030 6060 71C0 1F00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 2 0 BITMAP 0070 00C0 0180 0000 03E0 0C30 1818 3018 6018 6018 C018 C018 C018 C030 C030 6060 71C0 1F00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 2 0 BITMAP 01C0 0340 0420 0000 03E0 0C30 1818 3018 6018 6018 C018 C018 C018 C030 C030 6060 71C0 1F00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 2 0 BITMAP 0190 0260 0000 03E0 0C30 1818 3018 6018 6018 C018 C018 C018 C030 C030 6060 71C0 1F00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 15 0 BBX 13 16 2 0 BITMAP 0330 0000 03E0 0C30 1818 3018 6018 6018 C018 C018 C018 C030 C030 6060 71C0 1F00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 12 0 BBX 13 12 0 0 BITMAP 2008 3010 1020 0840 0480 0300 0700 0D00 1080 20C0 4040 8020 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 15 0 BBX 16 14 1 0 BITMAP 01F3 061C 0C0C 181C 3026 3046 7084 610C 620C 6408 7818 3030 5860 CF80 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 3 0 BITMAP 0600 0200 0100 0000 FC78 7020 6020 6020 6020 6040 6040 C040 C040 C040 C080 C080 6100 3E00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 3 0 BITMAP 01C0 0300 0600 0000 FC78 7020 6020 6020 6020 6040 6040 C040 C040 C040 C080 C080 6100 3E00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 3 0 BITMAP 0380 0680 0840 0000 FC78 7020 6020 6020 6020 6040 6040 C040 C040 C040 C080 C080 6100 3E00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 14 0 BBX 13 16 3 0 BITMAP 0CC0 0000 FC78 7020 6020 6020 6020 6040 6040 C040 C040 C040 C080 C080 6100 3E00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 13 0 BBX 13 18 2 0 BITMAP 01C0 0300 0600 0000 F878 7030 3060 30C0 1880 1900 1E00 0C00 0C00 0C00 1800 1800 1800 7E00 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 11 0 BBX 12 14 0 0 BITMAP 1F00 0E00 0C00 0FE0 0C70 0C30 1830 1830 1860 18C0 3F00 3000 3000 FC00 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 11 0 BBX 10 19 1 -4 BITMAP 0780 0CC0 18C0 1880 1900 1A00 3600 3600 3300 3180 30C0 6040 6C40 68C0 6F00 6000 C000 C000 C000 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP 0600 0200 0100 0000 0FC0 10C0 20C0 6080 6180 C180 C380 C580 C900 73C0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP 01C0 0300 0600 0000 0FC0 10C0 20C0 6080 6180 C180 C380 C580 C900 73C0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP 0380 0680 0840 0000 0FC0 10C0 20C0 6080 6180 C180 C380 C580 C900 73C0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 2 0 BITMAP 0640 0980 0000 0FC0 10C0 20C0 6080 6180 C180 C380 C580 C900 73C0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 2 0 BITMAP 0CC0 0000 0FC0 10C0 20C0 6080 6180 C180 C380 C580 C900 73C0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP 0380 0280 0380 0000 0FC0 10C0 20C0 6080 6180 C180 C380 C580 C900 73C0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 17 0 BBX 16 10 1 0 BITMAP 0FDE 10E6 20C2 6086 418C C3F0 C380 C581 C9C6 70F8 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 9 0 BBX 9 14 2 -4 BITMAP 0F80 1100 2100 4000 C000 C000 C000 C000 C200 7C00 2000 3000 1000 7000 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 10 0 BBX 8 14 2 0 BITMAP 0C 04 02 00 0F 33 63 43 C6 F8 C0 C1 E3 7C ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 10 0 BBX 10 14 2 0 BITMAP 01C0 0300 0600 0000 0F00 3300 6300 4300 C600 F800 C000 C100 E300 7C00 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 10 0 BBX 9 14 2 0 BITMAP 0700 0D00 1080 0000 0F00 3300 6300 4300 C600 F800 C000 C100 E300 7C00 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 2 0 BITMAP 1980 0000 0F00 3300 6300 4300 C600 F800 C000 C100 E300 7C00 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 5 0 BBX 5 14 2 0 BITMAP 30 10 08 00 F0 30 20 60 60 60 60 40 C0 F0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 5 0 BBX 7 14 2 0 BITMAP 0E 18 30 00 F0 30 20 60 60 60 60 40 C0 F0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 5 0 BBX 7 14 2 0 BITMAP 1C 34 42 00 F0 30 20 60 60 60 60 40 C0 F0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 5 0 BBX 7 12 2 0 BITMAP 66 00 F0 30 20 60 60 60 60 40 C0 F0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 11 0 BBX 9 15 2 0 BITMAP 0180 3F00 0700 0F00 1180 0F80 3180 6180 4180 C180 C180 C100 C300 C600 7800 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 2 0 BITMAP 0640 0980 0000 F380 24C0 68C0 7080 6180 6180 4180 C180 C180 C3C0 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 2 0 BITMAP 0600 0200 0100 0000 0F00 3180 6180 6180 C180 C180 C180 C300 E600 7800 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 2 0 BITMAP 01C0 0300 0600 0000 0F00 3180 6180 6180 C180 C180 C180 C300 E600 7800 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 2 0 BITMAP 0700 0D00 1080 0000 0F00 3180 6180 6180 C180 C180 C180 C300 E600 7800 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 2 0 BITMAP 0640 0980 0000 0F00 3180 6180 6180 C180 C180 C180 C300 E600 7800 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 2 0 BITMAP 0CC0 0000 0F00 3180 6180 6180 C180 C180 C180 C300 E600 7800 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 1 0 BITMAP 0600 0000 0000 0000 0000 FFE0 0000 0000 0000 0C00 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 1 0 BITMAP 07A0 18C0 30C0 21C0 62C0 6CC0 7080 6180 7300 FC00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP 0600 0200 0100 0000 F3C0 60C0 60C0 6080 6180 6180 4380 C580 C900 73C0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP 01C0 0300 0600 0000 F3C0 60C0 60C0 6080 6180 6180 4380 C580 C900 73C0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP 0380 0680 0840 0000 F3C0 60C0 60C0 6080 6180 6180 4380 C580 C900 73C0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 2 0 BITMAP 0CC0 0000 F3C0 60C0 60C0 6080 6180 6180 4380 C580 C900 73C0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 11 0 BBX 12 18 0 -4 BITMAP 0070 00C0 0180 0000 7870 1830 1820 0820 0C40 0C80 0D00 0D00 0E00 0400 0800 1000 3000 E000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 12 0 BBX 11 18 1 -4 BITMAP 7800 1800 1800 1800 11C0 3260 3460 3860 3060 30C0 60C0 6080 6100 7E00 4000 C000 C000 C000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 11 0 BBX 12 16 0 -4 BITMAP 0660 0000 7870 1830 1820 0820 0C40 0C80 0D00 0D00 0E00 0400 0800 1000 3000 E000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 19 1 -4 BITMAP 03F0 0470 0830 1820 1860 7F60 1060 3060 3040 30C0 30C0 20C0 60C0 6180 61E0 6000 4000 C000 C000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 1 2 6 BITMAP FF ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 18 3 -4 BITMAP 0600 0400 0400 0C00 0800 0800 FF80 0800 0800 1000 1000 1000 1000 3000 3000 2000 2000 6000 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 18 1 0 BITMAP 0210 0160 01C0 0000 1FF0 1060 30E0 00C0 0180 0300 0600 0600 0C00 1800 3000 7040 6040 FFC0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 16 10 1 0 BITMAP 0F8E 11B3 20E3 60C3 C0C6 C0F8 C180 C1C1 E6C2 7C7C ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 13 16 2 0 BITMAP 0CC0 0000 F878 7030 3060 30C0 1880 1900 1E00 0C00 0C00 0C00 1800 1800 1800 7E00 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 10 2 0 BITMAP F0 30 20 60 60 60 60 40 C0 F0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 6 14 1 0 BITMAP 38 18 18 18 10 30 3C F0 30 20 60 60 60 70 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 1F00 0C00 0C00 0C00 0800 1A00 1C00 3800 5800 3000 3000 3040 30C0 FFC0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 18 2 -4 BITMAP 0200 0600 0600 0600 0400 0400 7FC0 0400 0800 0800 0800 0800 FF80 0800 1800 1000 1000 3000 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 19 1 -4 BITMAP 0780 0CB0 0880 1800 1800 7FE0 1060 3060 3060 3040 30C0 20C0 60C0 60C0 61E0 6000 4000 C000 C000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 2 1 BITMAP 20 20 30 18 10 20 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 19 14 2 0 BITMAP 03DFE0 0C3820 181860 301800 603000 603080 C03F80 C03100 C07000 C06000 C06000 60E080 70E080 1FFF80 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 17 1 2 5 BITMAP FFFF80 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 3 6 11 BITMAP 84 58 70 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 3 3 -4 BITMAP 60 80 E0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 3 6 11 BITMAP 3C 50 A0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 2 1 BITMAP 08 10 20 40 C0 60 20 20 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 2 1 7 13 BITMAP C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 3 6 11 BITMAP 84 D8 70 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 6 6 4 3 BITMAP 78 FC FC FC FC 78 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 2 5 12 BITMAP 64 98 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 3 5 11 BITMAP 38 68 84 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 5 3 9 BITMAP 26 4C 4C EC CC ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 2 5 3 9 BITMAP C0 C0 C0 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 10 14 1 0 BITMAP 0840 0580 0700 0000 0F00 3180 3100 3800 1C00 0E00 8600 8300 C600 7C00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 3 7 12 BITMAP E0 A0 E0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 7 1 -4 BITMAP 60 60 60 60 40 40 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 18 3 -4 BITMAP 0780 0880 1880 1800 1000 3000 3000 FC00 3000 2000 6000 6000 6000 6000 6000 C000 C000 C000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 17 8 2 6 BITMAP FFE380 106700 10AA00 30AA00 20B600 20B600 20A600 F30700 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 14 14 -4 0 BITMAP 000C 0018 0030 0060 0040 0080 0100 0200 0400 0800 1800 3000 6000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 3 6 11 BITMAP C0 40 20 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 19 14 2 0 BITMAP 1C0800 241000 662000 444000 448000 6D8000 3B0000 02E1C0 059360 091620 111660 211660 412640 C1C380 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 15 1 2 0 BITMAP C386 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 5 3 9 BITMAP 66 6E 64 44 C8 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 11 18 1 0 BITMAP 0420 02C0 0380 0000 0FC0 1860 1040 3040 3000 1800 0E00 0700 0380 0180 C180 8180 C300 7E00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 -4 BITMAP 66 6E 6E 66 64 44 C8 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 11 14 1 0 BITMAP 0420 02C0 0380 0000 3FC0 2180 2300 0600 0C00 1C00 1800 3080 6180 FF80 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lubI24.bdf100644 1750 1750 111312 5413747502 15022 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-Medium-I-Normal--24-240-75-75-P-136-ISO8859-1 SIZE 24 72 72 FONTBOUNDINGBOX 40 27 -13 -5 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "Medium" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 24 POINT_SIZE 240 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 136 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 22 FONT_DESCENT 6 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 7 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 6 0 BBX 6 17 2 0 BITMAP 0C 1C 18 18 18 18 10 30 30 20 20 20 00 00 00 E0 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 9 0 BBX 6 5 5 12 BITMAP CC CC CC 4C 48 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 15 0 BBX 15 17 2 0 BITMAP 00C6 0084 0188 0108 0310 7FFE 0620 0460 0C40 08C0 FFFC 1180 3100 2100 6200 4200 C600 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 15 0 BBX 11 21 4 -2 BITMAP 0200 0200 0FC0 1A60 3240 3440 3400 3400 3C00 1C00 0E00 0F00 0B80 0980 0980 C980 C900 D300 FC00 1000 1000 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 18 0 BBX 17 17 2 0 BITMAP 0E0180 310300 310600 618C00 611800 633000 222000 3C4000 009E00 013200 026300 066300 0C4300 184300 304600 606400 C03800 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 17 0 BBX 18 17 2 0 BITMAP 00F000 019800 030C00 030C00 071800 033000 03E000 0F0000 338FC0 618300 E1C200 C0C600 C0E400 E07800 E07000 707800 1F9F00 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 4 11 BITMAP 70 70 20 60 C0 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 7 0 BBX 8 21 2 -4 BITMAP 01 02 04 08 18 30 30 60 60 E0 E0 C0 C0 C0 C0 C0 C0 40 40 20 10 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 7 0 BBX 8 21 0 -4 BITMAP 08 04 02 02 02 03 03 03 03 07 07 06 06 06 0C 0C 18 10 20 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 11 0 BBX 9 9 4 8 BITMAP 0C00 0C00 4800 EB80 3600 1800 2400 E600 4400 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 2 0 BITMAP 0080 0080 0180 0180 0100 0100 0100 FFFC 0200 0200 0200 0200 0600 0400 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 -5 BITMAP 70 70 70 70 20 20 60 40 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 15 0 BBX 14 1 2 7 BITMAP FFFC ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 6 0 BBX 3 3 2 0 BITMAP E0 E0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 11 0 BBX 15 21 0 -4 BITMAP 0006 000C 0008 0018 0010 0020 0060 0040 00C0 0180 0100 0300 0600 0400 0C00 0800 1000 3000 2000 4000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 3 0 BITMAP 03C0 0C70 1830 3038 3038 7038 6038 6038 E038 E030 C030 C070 C060 E0E0 60C0 7180 1E00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 15 0 BBX 9 17 3 0 BITMAP 1F80 0380 0300 0300 0300 0300 0700 0600 0600 0600 0600 0E00 0C00 0C00 0C00 1C00 FF80 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 2 0 BITMAP 07E0 1C70 1838 1018 0018 0038 0030 0060 00C0 0300 0600 0800 1000 2000 6000 FFE0 FFC0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 3 0 BITMAP 0FC0 0870 1830 1030 0030 0060 01C0 1F00 0180 00E0 0060 0060 0060 C0E0 C0C0 C380 FE00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 1 0 BITMAP 0018 0030 0070 00B0 0130 0260 0460 1860 2060 6060 FFF8 FFF8 00C0 00C0 01C0 01C0 07F0 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 3 0 BITMAP 0FF8 1FF8 1000 1000 1000 1000 3F00 01C0 00C0 00E0 0060 0060 00E0 C0C0 C1C0 C380 FE00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 3 0 BITMAP 03F0 0618 1C18 1800 3000 7000 77C0 78E0 E070 E070 C070 C070 C060 C060 60C0 7180 1E00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 4 0 BITMAP 3FF8 3FF8 0010 0020 0040 0080 0100 0300 0600 0400 0800 1800 3000 7000 6000 E000 E000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 3 0 BITMAP 07C0 0C70 1830 3830 3830 3860 1CC0 0F80 1F80 21C0 60E0 C0E0 C0E0 C0E0 E0C0 6180 3E00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 3 0 BITMAP 03C0 0C70 1830 3038 3018 7018 7038 7038 7038 38F0 1F70 0070 0060 00C0 C180 C300 7E00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 6 0 BBX 5 13 2 0 BITMAP 38 38 38 00 00 00 00 00 00 00 E0 E0 E0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 6 0 BBX 6 18 1 -5 BITMAP 1C 1C 1C 00 00 00 00 00 00 00 00 70 70 30 20 60 60 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 15 0 BBX 15 14 2 0 BITMAP 0002 000C 0030 01C0 0700 1C00 F000 7000 1800 0E00 0380 00E0 0030 0018 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 15 0 BBX 15 7 1 4 BITMAP 7FFE 0000 0000 0000 0000 0000 FFFC ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 15 0 BBX 15 14 0 0 BITMAP 3000 1800 0E00 0380 00E0 0030 001C 001E 0070 01C0 0700 1800 6000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 11 0 BBX 9 17 4 0 BITMAP 3F00 6380 4180 C180 0180 0380 0300 0400 0800 3000 3000 6000 6000 0000 0000 E000 C000 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 21 0 BBX 19 17 3 0 BITMAP 00FC00 030300 0C00C0 100040 20FC20 410C20 420C20 820820 861820 842820 843840 865880 838F00 400000 200000 181000 07E000 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 18 0 BBX 18 17 0 0 BITMAP 000800 001800 001C00 003C00 005C00 004C00 008C00 010E00 010E00 020E00 060600 07FE00 080700 100700 200700 200780 F81FC0 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 15 0 BBX 15 17 0 0 BITMAP 1FF8 070E 070E 0706 0606 060C 0E18 0E30 0FE0 0C38 0C1C 1C0C 1C0C 181C 1818 3878 FFE0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 17 0 BBX 16 17 3 0 BITMAP 01FF 0707 0E03 1C02 3800 7000 7000 6000 E000 E000 E000 E000 E000 6000 7000 3818 0FE0 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 18 0 BBX 19 17 0 0 BITMAP 1FFE00 070380 0701C0 0600E0 0600E0 0600E0 0E00E0 0E00E0 0C00E0 0C00C0 0C00C0 1C01C0 1C0380 180300 180600 381C00 FFF000 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 14 0 BBX 15 17 1 0 BITMAP 1FFE 0706 0606 0600 0600 0E00 0E00 0C10 0FF0 0C10 1C00 1C00 1800 1800 1818 3818 FFF0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 13 0 BBX 15 17 1 0 BITMAP 1FFE 0706 0606 0600 0600 0E00 0E00 0C10 0FF0 0C10 1C00 1C00 1800 1800 1800 3800 FE00 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 18 0 BBX 16 17 3 0 BITMAP 01FE 0707 0C02 1802 3800 7000 7000 6000 E000 E000 E07F E01C E018 E018 7018 3838 0FE0 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 19 0 BBX 21 17 1 0 BITMAP 1FC3F8 0700E0 0700C0 0600C0 0601C0 0601C0 0E01C0 0E0180 0FFF80 0C0380 0C0380 1C0300 1C0300 180300 180700 380700 FE1FC0 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 8 0 BBX 10 17 1 0 BITMAP 1FC0 0700 0700 0600 0600 0E00 0E00 0C00 0C00 0C00 1C00 1C00 1800 1800 1800 3800 FE00 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 10 0 BBX 14 21 0 -4 BITMAP 01FC 0070 0060 0060 00E0 00E0 00C0 00C0 00C0 01C0 01C0 01C0 0180 0180 0380 0380 0300 4300 C600 C600 F800 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 17 0 BBX 18 17 1 0 BITMAP 1FC7C0 070300 070600 060C00 061000 0E2000 0EC000 0F8000 0F8000 0DC000 1CE000 1CE000 1C7000 183800 181C00 381C00 FE7F00 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 1 0 BITMAP 1FC0 0700 0600 0600 0600 0E00 0E00 0C00 0C00 0C00 1C00 1C00 1800 1800 1808 3818 FFF0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 21 0 BBX 23 17 1 0 BITMAP 1F003E 070078 070070 0780B0 0580B0 058170 0D8270 09C260 08C460 08CC60 18C8E0 18F0C0 1070C0 1060C0 1040C0 3001C0 FC07F0 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 18 0 BBX 21 17 1 0 BITMAP 1E01F8 070060 070040 078040 05C040 05C0C0 08E080 086080 087080 083880 183900 101D00 100D00 100F00 100700 300600 FC0200 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 19 0 BBX 17 17 3 0 BITMAP 00F800 070E00 0C0700 180300 380380 300380 600380 600380 E00380 E00300 E00300 E00600 E00E00 E00C00 701800 387000 0FC000 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 14 0 BBX 15 17 1 0 BITMAP 1FF8 070C 060E 060E 060E 0E0E 0E0C 0C18 0C70 0FC0 1C00 1C00 1800 1800 3800 3800 FE00 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 19 0 BBX 19 22 3 -5 BITMAP 01F800 070E00 0C0700 180300 300380 700380 600380 600380 E00380 E00300 E00700 E00700 E00E00 E00C00 701C00 387800 0FE000 008000 004000 003800 000FE0 0003C0 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 16 0 BBX 16 17 1 0 BITMAP 1FFC 070E 0706 0606 0606 060E 0E0C 0E38 0FE0 0CE0 0C70 1C70 1C38 1838 181C 381C FE0F ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 2 0 BITMAP 03E0 0E38 1C10 1810 1810 1C00 1E00 0F00 0780 03C0 00E0 00E0 00E0 40E0 C0C0 C180 7E00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 16 0 BBX 16 17 3 0 BITMAP 7FFF C183 8182 0380 0380 0300 0300 0300 0700 0700 0600 0600 0E00 0E00 0C00 1C00 7F80 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 17 0 BBX 17 17 4 0 BITMAP FE1F80 380600 300400 300400 300400 700400 700800 600800 600800 E00800 E01800 C01000 C01000 C03000 E02000 70C000 1F8000 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 16 0 BBX 17 17 3 0 BITMAP FC0780 700300 300200 300400 380C00 380800 381000 183000 182000 1C4000 1C4000 1C8000 0D8000 0D0000 0E0000 0E0000 0C0000 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 21 0 BBX 22 17 3 0 BITMAP FC107C 703010 303030 307020 307060 30B040 30B880 313880 313900 321900 321A00 341A00 341C00 381C00 381800 301800 301000 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 15 0 BBX 19 17 0 0 BITMAP 0FC3E0 078080 038100 018200 01C400 01C800 00D000 00E000 007000 00F000 013000 023800 041800 081C00 101C00 300E00 F83F00 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 16 0 BBX 16 17 3 0 BITMAP FC1F 7804 3808 3810 1830 1C60 0C40 0E80 0700 0600 0600 0E00 0E00 0C00 0C00 1C00 7F00 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 15 0 BBX 16 17 1 0 BITMAP 0FFF 0C06 080C 181C 0038 0070 00E0 01C0 0180 0380 0700 0E00 1C00 3800 300C 6018 FFF8 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 7 0 BBX 9 21 1 -4 BITMAP 0F80 0C00 0C00 0C00 1C00 1800 1800 1800 1800 3000 3000 3000 3000 3000 6000 6000 6000 6000 6000 C000 F800 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 11 0 BBX 7 21 4 -4 BITMAP C0 C0 40 40 60 20 20 20 30 10 10 10 18 08 08 08 0C 04 04 06 06 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 7 0 BBX 9 21 0 -4 BITMAP 0F80 0180 0300 0300 0300 0300 0300 0600 0600 0600 0600 0600 0C00 0C00 0C00 0C00 1C00 1800 1800 1800 F800 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 1 3 BITMAP 0040 0040 00C0 01E0 0120 0220 0630 0410 0810 1810 3008 2008 6008 C004 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 12 0 BBX 10 2 1 -3 BITMAP FFC0 FFC0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 4 11 BITMAP 30 60 60 40 E0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 2 0 BITMAP 03F8 0438 1830 1030 3030 6030 6070 E0E0 E160 C360 E660 FCE0 70F8 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 2 0 BITMAP 7C00 1C00 1C00 1800 1870 19F8 3B38 3618 3438 3838 7030 7030 6060 6060 60C0 E100 FE00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 2 0 BITMAP 07E0 0860 1060 2040 6000 6000 E000 E000 C000 C000 E000 6080 3F00 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 2 0 BITMAP 007C 001C 0018 0018 03F8 0438 1838 3030 3030 6070 6070 E0E0 E160 C360 E6E0 FCE0 70F8 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 2 0 BITMAP 0780 08C0 10C0 30C0 60C0 6180 E300 FC00 C000 C000 E040 71C0 3E00 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 9 0 BBX 12 24 2 -5 BITMAP 01F0 0230 0630 0420 0C00 0C00 3FC0 1C00 1800 1800 1800 3800 3800 3000 3000 3000 7000 7000 6000 6000 6000 E000 E000 C000 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 1 -5 BITMAP 01FC 061C 0818 1818 1018 3038 3038 7070 60B0 61B0 7330 7E70 3860 0060 8060 C0C0 6080 7F00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 2 0 BITMAP 7C00 1C00 1C00 1800 1870 19F8 3B38 3638 3430 3830 7030 7070 6070 6060 6060 E060 C0F8 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 7 0 BBX 6 17 2 0 BITMAP 0C 1C 00 00 F8 38 38 30 30 30 70 60 60 60 60 E0 F8 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 8 0 BBX 12 22 -1 -5 BITMAP 0070 0070 0000 0000 03E0 00E0 00E0 00C0 00C0 00C0 01C0 01C0 0180 0180 0180 0380 0380 0300 4300 C600 C400 F800 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 13 0 BBX 12 17 2 0 BITMAP 7C00 1C00 1800 1800 1870 1860 38E0 31C0 3300 3400 7C00 6E00 6700 6700 6380 E1C0 C0F0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 7 0 BBX 6 17 2 0 BITMAP 7C 1C 18 18 18 18 38 30 30 30 70 60 60 60 60 E0 F8 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 23 0 BBX 20 13 3 0 BITMAP F8E0E0 39F3F0 333770 363470 3C7C60 787860 707060 706060 6060E0 60E0C0 E0E0C0 E0C0C0 C0C1F0 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 2 0 BITMAP F870 39F8 3338 3638 3430 3830 7030 7070 6070 6060 6060 E060 C0F8 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 2 0 BITMAP 07C0 0CE0 3870 3070 6070 6070 E070 E060 E060 E0C0 E180 E300 7E00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 1 -5 BITMAP 7C38 1CFC 199C 1B0C 1E1C 3C1C 3818 3018 3030 3020 7060 7080 7F00 6000 6000 E000 E000 C000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 2 -5 BITMAP 03F8 0438 1838 1030 3030 6030 6070 E0F0 E160 C360 E660 FCE0 70E0 00C0 00C0 00C0 01C0 01C0 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 2 0 BITMAP F860 39E0 33C0 3600 3C00 3800 7000 7000 6000 6000 6000 E000 C000 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0F80 18C0 1840 18C0 1800 1C00 0E00 0700 0380 C180 C180 C300 7E00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 9 0 BBX 8 16 2 0 BITMAP 18 18 38 FF 30 30 70 70 60 60 60 E0 E0 C0 E0 78 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 2 0 BITMAP F8F8 3038 3030 3030 7030 7030 6070 60E0 6160 E360 E660 FCE0 70F8 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 13 0 BBX 14 13 1 0 BITMAP F81C 381C 1818 1C18 1C10 0C30 0C20 0C40 0C80 0F00 0E00 0E00 0C00 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 19 0 BBX 19 13 2 0 BITMAP F020E0 302060 387060 1870C0 18F0C0 18B180 1DB900 1D3B00 0E1E00 0E1C00 0C1C00 0C1800 081000 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 1 0 BITMAP 7870 1830 1C60 0C40 0E80 0700 0700 0B00 1380 2180 61C0 C1C0 C0F0 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 13 0 BBX 15 18 0 -5 BITMAP 7C0E 1C06 0C06 0E0C 0608 0618 0610 0620 0740 0340 0380 0300 0200 0400 0C00 1800 3000 E000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 1 0 BITMAP 1FF8 1030 3060 00C0 01C0 0380 0700 0E00 1C00 3800 3030 6020 FFE0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 8 0 BBX 8 21 2 -4 BITMAP 07 0C 0C 18 18 18 18 18 10 10 E0 20 30 30 70 60 E0 C0 C0 C0 30 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 6 0 BBX 6 21 1 -4 BITMAP 0C 0C 08 08 18 18 18 10 10 30 30 30 20 20 60 60 60 40 40 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 8 0 BBX 8 21 2 -4 BITMAP 0E 03 03 03 03 06 06 06 04 06 03 04 08 18 18 18 18 18 18 30 E0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 15 0 BBX 15 6 1 4 BITMAP 1C00 3E02 4704 81C4 80FC 8078 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 6 0 BBX 6 18 1 -5 BITMAP 0C 1C 00 00 00 10 10 10 30 30 30 20 60 60 60 E0 E0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 3 0 BITMAP 0080 0080 03F0 0C90 1930 3100 6100 E200 C200 C200 C200 E200 7440 3F80 0400 0400 0400 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 3 0 BITMAP 00F0 0118 0208 0618 0600 0E00 0E00 0C00 3F80 0C00 1C00 1C00 1800 1000 2000 FFC0 FFC0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 15 0 BBX 16 15 1 1 BITMAP 1001 1002 0BE4 0618 0C08 0808 1008 1008 1008 1018 1810 1C70 27D0 4008 8004 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 15 0 BBX 16 17 3 0 BITMAP FC1F 7004 3808 1810 1820 1C20 0C40 0E80 0700 7FE0 0600 0E00 7FC0 0C00 0C00 1C00 7F00 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 6 0 BBX 6 21 1 -4 BITMAP 0C 0C 08 08 18 18 18 10 10 30 00 30 20 20 60 60 60 40 40 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 15 0 BBX 14 22 2 -5 BITMAP 01FC 060C 0C08 0C00 1800 1C00 0F00 0FC0 19E0 1070 3030 3010 3C30 1F20 07C0 01E0 0060 0070 C060 C060 E1C0 7F00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 13 0 BBX 7 2 7 15 BITMAP C6 C6 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 20 0 BBX 19 17 2 0 BITMAP 03F800 0E0600 100180 2000C0 40FC40 418420 820420 860020 860020 860020 860020 470820 41F040 2000C0 100180 0E0600 03F800 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 3 8 BITMAP 0F80 3180 6180 6380 C300 C700 DB00 F300 6780 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 13 0 BBX 11 11 2 1 BITMAP 0420 0C40 1880 3180 6300 C600 6600 6300 3100 1180 1080 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 15 0 BBX 14 8 2 3 BITMAP FFFC 000C 000C 000C 0008 0008 0008 0018 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 8 0 BBX 6 2 2 7 BITMAP FC FC ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 15 0 BBX 12 11 4 6 BITMAP 1F00 20C0 4FC0 88A0 8F10 8A10 8A10 91A0 4060 30C0 0F00 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 13 0 BBX 7 1 7 16 BITMAP FE ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 7 0 BBX 4 4 4 13 BITMAP 60 90 90 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 15 0 BBX 16 14 0 0 BITMAP 0040 0040 0040 00C0 00C0 3FFF 0080 0080 0180 0180 0100 0000 0000 FFFC ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 -12 7 BITMAP 1E 23 23 03 06 08 30 40 40 FE ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 -13 7 BITMAP 3C 22 22 06 38 04 06 86 8C F8 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 13 0 BBX 6 3 8 14 BITMAP 1C 30 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 2 -4 BITMAP 7C7C 181C 1818 1818 3818 3818 3038 3070 3070 70B0 7330 7F70 6E7C 6000 E000 E000 C000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 15 0 BBX 10 21 4 -4 BITMAP 3FC0 7E40 FC40 FC80 FC80 FC80 7C80 3880 1900 0900 0900 0900 1100 1200 1200 1200 1200 1200 2200 2400 2400 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 15 0 BBX 3 2 7 7 BITMAP E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 13 0 BBX 4 6 4 -5 BITMAP 20 40 30 30 30 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 9 0 BBX 5 10 -13 7 BITMAP 38 18 10 10 10 10 30 20 20 F8 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 3 8 BITMAP 0F00 3180 6180 4180 C180 C100 C300 E600 7800 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 13 0 BBX 11 11 2 1 BITMAP 2100 3100 1180 18C0 0CC0 0C60 18C0 3180 2300 4600 8400 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 20 0 BBX 19 17 4 0 BITMAP 380060 1800C0 100180 100300 100600 100C00 301800 203040 206180 F8C280 018480 030880 061180 0C3FC0 180100 300100 600780 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 20 0 BBX 19 17 4 0 BITMAP 380060 1800C0 100180 100300 100600 100C00 301800 203780 2068C0 F8C8C0 0180C0 030180 060200 0C0C00 181000 301000 603F80 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 20 0 BBX 19 17 4 0 BITMAP 3C0060 2200C0 220180 060300 380600 040C00 061800 863040 8C6180 F8C280 018480 030880 061180 0C3FC0 180100 300100 600780 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 11 0 BBX 9 18 1 -5 BITMAP 0180 0180 0000 0000 0000 0380 0300 0200 0400 0C00 1000 3000 6000 E000 C080 E080 6180 3F00 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 18 0 BBX 18 21 0 0 BITMAP 001C00 000400 000200 000000 000800 001800 001C00 003C00 005C00 004C00 008C00 010E00 010E00 020E00 060600 07FE00 080700 100700 200700 200780 F81FC0 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 18 0 BBX 18 21 0 0 BITMAP 000380 000600 001800 000000 000800 001800 001C00 003C00 005C00 004C00 008C00 010E00 010E00 020E00 060600 07FE00 080700 100700 200700 200780 F81FC0 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 18 0 BBX 18 21 0 0 BITMAP 000F00 001B00 006180 000000 000800 001800 001C00 003C00 005C00 004C00 008C00 010E00 010E00 020E00 060600 07FE00 080700 100700 200700 200780 F81FC0 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 18 0 BBX 18 21 0 0 BITMAP 003880 003F00 004700 000000 000800 001800 001C00 003C00 005C00 004C00 008C00 010E00 010E00 020E00 060600 07FE00 080700 100700 200700 200780 F81FC0 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 18 0 BBX 18 20 0 0 BITMAP 003180 003180 000000 000800 001800 001C00 003C00 005C00 004C00 008C00 010E00 010E00 020E00 060600 07FE00 080700 100700 200700 200780 F81FC0 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 18 0 BBX 18 22 0 0 BITMAP 000C00 001200 001200 000C00 000000 000800 001800 001C00 003C00 005C00 004C00 008C00 010E00 010E00 020E00 060600 07FE00 080700 100700 200700 200780 F81FC0 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 22 0 BBX 24 17 0 0 BITMAP 0003FF 000703 000B02 001300 001700 002700 004600 008608 0187F8 010E08 020E00 07FC00 080C00 100C00 101C0C 201C08 F87FF8 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 17 0 BBX 16 22 3 -5 BITMAP 01FF 0707 0E03 1C02 3800 7000 7000 6000 E000 E000 E000 E000 E000 6000 7000 3818 0FE0 0800 0600 0600 0600 1C00 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 14 0 BBX 15 21 1 0 BITMAP 00E0 0020 0010 0000 1FFE 0706 0606 0600 0600 0E00 0E00 0C10 0FF0 0C10 1C00 1C00 1800 1800 1818 3818 FFF0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 14 0 BBX 15 21 1 0 BITMAP 001C 0030 00C0 0000 1FFE 0706 0606 0600 0600 0E00 0E00 0C10 0FF0 0C10 1C00 1C00 1800 1800 1818 3818 FFF0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 14 0 BBX 15 21 1 0 BITMAP 0078 00D8 030C 0000 1FFE 0706 0606 0600 0600 0E00 0E00 0C10 0FF0 0C10 1C00 1C00 1800 1800 1818 3818 FFF0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 14 0 BBX 15 20 1 0 BITMAP 018C 018C 0000 1FFE 0706 0606 0600 0600 0E00 0E00 0C10 0FF0 0C10 1C00 1C00 1800 1800 1818 3818 FFF0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 8 0 BBX 10 21 1 0 BITMAP 0700 0100 0080 0000 1FC0 0700 0700 0600 0600 0E00 0E00 0C00 0C00 0C00 1C00 1C00 1800 1800 1800 3800 FE00 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 8 0 BBX 11 21 1 0 BITMAP 00E0 0180 0600 0000 1FC0 0700 0700 0600 0600 0E00 0E00 0C00 0C00 0C00 1C00 1C00 1800 1800 1800 3800 FE00 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 8 0 BBX 11 21 1 0 BITMAP 03C0 06C0 1860 0000 1FC0 0700 0700 0600 0600 0E00 0E00 0C00 0C00 0C00 1C00 1C00 1800 1800 1800 3800 FE00 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 8 0 BBX 11 20 1 0 BITMAP 0C60 0C60 0000 1FC0 0700 0700 0600 0600 0E00 0E00 0C00 0C00 0C00 1C00 1C00 1800 1800 1800 3800 FE00 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 18 0 BBX 19 17 0 0 BITMAP 1FFE00 070380 0701C0 0600E0 0600E0 0600E0 0E00E0 0E00E0 7FE0E0 0C00C0 0C00C0 1C01C0 1C0380 180300 180600 381C00 FFF000 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 18 0 BBX 21 21 1 0 BITMAP 003880 003F00 004700 000000 1E01F8 070060 070040 078040 05C040 05C0C0 08E080 086080 087080 083880 183900 101D00 100D00 100F00 100700 300600 FC0200 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 19 0 BBX 17 21 3 0 BITMAP 00E000 002000 001000 000000 00F800 070E00 0C0700 180300 380380 300380 600380 600380 E00380 E00300 E00300 E00600 E00E00 E00C00 701800 387000 0FC000 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 19 0 BBX 17 21 3 0 BITMAP 000E00 001800 006000 000000 00F800 070E00 0C0700 180300 380380 300380 600380 600380 E00380 E00300 E00300 E00600 E00E00 E00C00 701800 387000 0FC000 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 19 0 BBX 17 21 3 0 BITMAP 003C00 006C00 018600 000000 00F800 070E00 0C0700 180300 380380 300380 600380 600380 E00380 E00300 E00300 E00600 E00E00 E00C00 701800 387000 0FC000 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 19 0 BBX 17 21 3 0 BITMAP 00E200 00FC00 011C00 000000 00F800 070E00 0C0700 180300 380380 300380 600380 600380 E00380 E00300 E00300 E00600 E00E00 E00C00 701800 387000 0FC000 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 19 0 BBX 17 20 3 0 BITMAP 018C00 018C00 000000 00F800 070E00 0C0700 180300 380380 300380 600380 600380 E00380 E00300 E00300 E00600 E00E00 E00C00 701800 387000 0FC000 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 15 0 BBX 16 14 1 0 BITMAP 3001 1002 080C 0418 0630 0260 0180 0180 06C0 0C60 1820 3010 6008 8008 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 19 0 BBX 20 17 1 0 BITMAP 007E30 018340 070180 0E01C0 0C02C0 1804C0 3808C0 3810C0 3060C0 70C1C0 7101C0 720180 340300 380700 380E00 2C1800 C7E000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 17 0 BBX 17 21 4 0 BITMAP 01C000 004000 002000 000000 FE1F80 380600 300400 300400 300400 700400 700800 600800 600800 E00800 E01800 C01000 C01000 C03000 E02000 70C000 1F8000 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 17 0 BBX 17 21 4 0 BITMAP 003800 006000 018000 000000 FE1F80 380600 300400 300400 300400 700400 700800 600800 600800 E00800 E01800 C01000 C01000 C03000 E02000 70C000 1F8000 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 17 0 BBX 17 21 4 0 BITMAP 00F000 01B000 061800 000000 FE1F80 380600 300400 300400 300400 700400 700800 600800 600800 E00800 E01800 C01000 C01000 C03000 E02000 70C000 1F8000 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 17 0 BBX 17 20 4 0 BITMAP 031800 031800 000000 FE1F80 380600 300400 300400 300400 700400 700800 600800 600800 E00800 E01800 C01000 C01000 C03000 E02000 70C000 1F8000 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 16 0 BBX 16 21 3 0 BITMAP 0038 0060 0180 0000 FC1F 7804 3808 3810 1830 1C60 0C40 0E80 0700 0600 0600 0E00 0E00 0C00 0C00 1C00 7F00 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 14 0 BBX 15 17 0 0 BITMAP 1FC0 0700 0700 07F8 060C 060E 0E0E 0E0E 0C0E 0C0C 0C18 1C70 1FC0 1800 1800 3800 FE00 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 14 0 BBX 13 24 2 -5 BITMAP 03E0 0630 0630 0C30 0C30 0C60 1C80 1D00 1B00 1B80 19C0 38E0 3870 3038 3018 3218 7210 7630 63C0 6000 6000 E000 E000 C000 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 2 0 BITMAP 01C0 0040 0020 0000 03F8 0438 1830 1030 3030 6030 6070 E0E0 E160 C360 E660 FCE0 70F8 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 2 0 BITMAP 0038 0060 0180 0000 03F8 0438 1830 1030 3030 6030 6070 E0E0 E160 C360 E660 FCE0 70F8 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 2 0 BITMAP 00F0 01B0 0618 0000 03F8 0438 1830 1030 3030 6030 6070 E0E0 E160 C360 E660 FCE0 70F8 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 2 0 BITMAP 01C4 01F8 0238 0000 03F8 0438 1830 1030 3030 6030 6070 E0E0 E160 C360 E660 FCE0 70F8 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 15 0 BBX 13 16 2 0 BITMAP 0318 0318 0000 03F8 0438 1830 1030 3030 6030 6070 E0E0 E160 C360 E660 FCE0 70F8 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 2 0 BITMAP 00C0 0120 0120 00C0 0000 03F8 0438 1830 1030 3030 6030 6070 E0E0 E160 C360 E660 FCE0 70F8 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 21 0 BBX 20 13 2 0 BITMAP 03F9E0 043E70 183830 103830 303060 603060 607180 E0FE00 E0F000 E13000 E63010 FC3860 701F80 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 12 0 BBX 11 18 2 -5 BITMAP 07E0 0860 1060 2040 6000 6000 E000 E000 C000 C000 E000 6080 3F00 2000 1800 1800 1800 7000 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 12 0 BBX 10 17 2 0 BITMAP 0700 0100 0080 0000 0780 08C0 10C0 30C0 60C0 6180 E300 FC00 C000 C000 E040 71C0 3E00 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 12 0 BBX 12 17 2 0 BITMAP 0070 00C0 0300 0000 0780 08C0 10C0 30C0 60C0 6180 E300 FC00 C000 C000 E040 71C0 3E00 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 12 0 BBX 12 17 2 0 BITMAP 01E0 0360 0C30 0000 0780 08C0 10C0 30C0 60C0 6180 E300 FC00 C000 C000 E040 71C0 3E00 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 12 0 BBX 12 16 2 0 BITMAP 0630 0630 0000 0780 08C0 10C0 30C0 60C0 6180 E300 FC00 C000 C000 E040 71C0 3E00 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 7 0 BBX 6 17 2 0 BITMAP 38 08 04 00 F8 38 30 30 30 30 70 60 60 60 60 E0 F8 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 7 0 BBX 9 17 2 0 BITMAP 0380 0600 1800 0000 F800 3800 3000 3000 3000 3000 7000 6000 6000 6000 6000 E000 F800 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 7 0 BBX 9 17 2 0 BITMAP 0F00 1B00 6180 0000 F800 3800 3000 3000 3000 3000 7000 6000 6000 6000 6000 E000 F800 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 7 0 BBX 8 16 2 0 BITMAP 63 63 00 F8 38 30 30 30 30 70 60 60 60 60 E0 F8 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 13 0 BBX 12 19 2 0 BITMAP 0030 0040 1F80 03C0 06E0 0860 07E0 0860 3070 3070 6070 6070 C060 C060 C060 E0C0 E080 6100 3E00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 2 0 BITMAP 0388 03F0 0470 0000 F870 39F8 3338 3638 3430 3830 7030 7070 6070 6060 6060 E060 C0F8 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 13 0 BBX 12 17 2 0 BITMAP 0380 0080 0040 0000 07C0 0CE0 3870 3070 6070 6070 E070 E060 E060 E0C0 E180 E300 7E00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 13 0 BBX 12 17 2 0 BITMAP 0070 00C0 0300 0000 07C0 0CE0 3870 3070 6070 6070 E070 E060 E060 E0C0 E180 E300 7E00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 13 0 BBX 12 17 2 0 BITMAP 01E0 0360 0C30 0000 07C0 0CE0 3870 3070 6070 6070 E070 E060 E060 E0C0 E180 E300 7E00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 2 0 BITMAP 0388 03F0 0470 0000 07C0 0CE0 3870 3070 6070 6070 E070 E060 E060 E0C0 E180 E300 7E00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 13 0 BBX 12 16 2 0 BITMAP 0630 0630 0000 07C0 0CE0 3870 3070 6070 6070 E070 E060 E060 E0C0 E180 E300 7E00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 15 0 BBX 14 13 2 0 BITMAP 0180 0180 0000 0000 0000 0000 FFFC 0000 0000 0000 0000 0600 0600 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 13 0 BBX 14 13 1 0 BITMAP 01EC 0638 0838 1878 30F8 31B8 7338 7630 7C30 7860 7040 7980 DF00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 2 0 BITMAP 0380 0080 0040 0000 F8F8 3038 3030 3030 7030 7030 6070 60E0 6160 E360 E660 FCE0 70F8 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 2 0 BITMAP 0038 0060 0180 0000 F8F8 3038 3030 3030 7030 7030 6070 60E0 6160 E360 E660 FCE0 70F8 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 2 0 BITMAP 00F0 01B0 0618 0000 F8F8 3038 3030 3030 7030 7030 6070 60E0 6160 E360 E660 FCE0 70F8 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 15 0 BBX 13 16 2 0 BITMAP 0318 0318 0000 F8F8 3038 3030 3030 7030 7030 6070 60E0 6160 E360 E660 FCE0 70F8 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 13 0 BBX 15 22 0 -5 BITMAP 000E 0018 0060 0000 7C0E 1C06 0C06 0E0C 0608 0618 0610 0620 0740 0340 0380 0300 0200 0400 0C00 1800 3000 E000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 15 0 BBX 14 21 1 -5 BITMAP 3E00 0C00 0C00 0C38 1CFC 199C 1B0C 1E1C 1C1C 3818 3018 3030 3020 3060 7080 7F00 6000 6000 6000 E000 C000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 13 0 BBX 15 21 0 -5 BITMAP 018C 018C 0000 7C0E 1C06 0C06 0E0C 0608 0618 0610 0620 0740 0340 0380 0300 0200 0400 0C00 1800 3000 E000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 15 24 2 -5 BITMAP 01FE 021E 060E 0C0C 0C0C 0C0C 3F9C 181C 1818 1818 1818 3838 3838 3030 3030 3030 7070 7070 607C 6000 6000 E000 E000 C000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 1 2 8 BITMAP FFC0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 11 21 4 -4 BITMAP 0300 0300 0600 0600 0600 0600 0400 FFE0 C4E0 0C00 0C00 0800 0800 1800 1800 1800 1800 3000 3000 3000 7000 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 16 21 1 0 BITMAP 0186 00D8 00F0 0000 0FFF 0C06 080C 181C 0038 0070 00E0 01C0 0180 0380 0700 0E00 1C00 3800 300C 6018 FFF8 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 20 13 2 0 BITMAP 07C3E0 0CE460 187870 307870 607060 6070C0 E07180 E07E00 E06000 C0E000 E1F010 6338E0 3C1F00 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 16 20 3 0 BITMAP 0630 0630 0000 FC1F 7804 3808 3810 1830 1C60 0C40 0E80 0700 0600 0600 0E00 0E00 0C00 0C00 1C00 7F00 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 13 2 0 BITMAP F8 38 30 30 30 30 70 60 60 60 60 E0 F8 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 8 17 1 0 BITMAP 3E 0E 0C 0C 0C 0C 1C 1F 78 98 38 30 30 30 70 70 7C ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 1 0 BITMAP 1FC0 0700 0700 0600 0600 0600 0EC0 0F00 0C00 3C00 5C00 1C00 1C00 1800 1808 3818 FFF0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 12 21 3 -4 BITMAP 0180 0180 0180 0100 0100 0300 0300 3FF0 7230 0200 0200 0600 0400 0400 FFE0 C4E0 0C00 0C00 0800 1800 1800 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 15 24 2 -5 BITMAP 01E0 0220 0626 0C2E 0C00 0C00 3FFC 1C1C 181C 1818 1818 3818 3818 3038 3030 3030 7030 7030 607C 6000 6000 E000 E000 C000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 2 1 BITMAP 20 20 10 18 18 0C 18 30 60 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 24 0 BBX 24 17 3 0 BITMAP 00FBFF 070F03 0C0703 180702 380700 300700 700600 600608 E00FF8 E00E08 E00E00 E00C00 E01C00 E01C0C 703C0C 387C18 0FDFF8 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 24 0 BBX 22 1 2 7 BITMAP FFFFFC ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 8 3 7 14 BITMAP C3 6C 78 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 4 4 4 -5 BITMAP 70 C0 C0 70 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 8 3 7 14 BITMAP 1F 2C D0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 2 1 BITMAP 04 08 18 30 60 C0 60 60 20 10 10 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 3 2 8 15 BITMAP E0 E0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 8 3 7 14 BITMAP 81 E6 78 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 7 5 4 BITMAP 3C 7E FF FF FF 7E 3C ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 8 3 7 14 BITMAP 71 7E 8E ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 8 3 6 14 BITMAP 1E 36 C3 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 6 4 11 BITMAP 3180 6300 6200 4600 F700 E700 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 5 4 12 BITMAP E0 E0 40 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 13 17 1 0 BITMAP 0618 0360 03C0 0000 0F80 18C0 1840 18C0 1800 1C00 0E00 0700 0380 C180 C180 C300 7E00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 4 4 8 15 BITMAP 60 90 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 -5 BITMAP 70 70 70 70 20 20 60 40 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 11 21 5 -4 BITMAP 01E0 0660 0C60 0C40 1800 1800 1800 1800 FE00 3800 3000 3000 3000 7000 7000 6000 6000 6000 E000 E000 C000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 22 0 BBX 21 9 3 8 BITMAP FFFC78 991CE0 183CE0 182D60 182D60 102EC0 3024C0 3064C0 F8C0E0 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 18 17 -5 0 BITMAP 0000C0 000180 000300 000600 000C00 001800 003000 006000 00C000 018000 030000 060000 0C0000 180000 300000 600000 C00000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 4 3 8 14 BITMAP E0 20 10 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 26 0 BBX 24 17 2 0 BITMAP 0E0180 310300 310600 618C00 611800 633000 222000 3C4000 009E1E 013233 026321 066361 0C4363 184363 304662 606466 C0383C ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 24 0 BBX 19 2 3 0 BITMAP E0E060 C0E0E0 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 6 4 11 BITMAP 7380 7380 3300 6300 E600 8400 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 13 21 2 0 BITMAP 0618 0360 03C0 0000 03E0 0E38 1C10 1810 1810 1C00 1E00 0F00 0780 03C0 00E0 00E0 00E0 40E0 C0C0 C180 7E00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 9 1 -5 BITMAP 7380 7380 7380 7780 3300 2300 6300 6200 C400 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 14 17 1 0 BITMAP 030C 01B0 01E0 0000 1FF8 1030 3060 00C0 01C0 0380 0700 0E00 1C00 3800 3030 6020 FFE0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lubR08.bdf100644 1750 1750 53764 5413747502 15035 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-Medium-R-Normal--8-80-75-75-P-45-ISO8859-1 SIZE 8 72 72 FONTBOUNDINGBOX 13 11 -4 -3 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 8 POINT_SIZE 80 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 45 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 7 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 2 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 2 0 BBX 1 6 1 0 BITMAP 80 80 80 80 00 80 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 3 0 BBX 2 2 1 4 BITMAP C0 C0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 38 F8 50 F8 60 E0 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 5 0 BBX 3 7 1 -1 BITMAP 60 E0 C0 60 E0 C0 40 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP D0 E0 E0 70 70 B0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP 60 60 60 D8 B0 78 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 2 0 BBX 1 2 1 4 BITMAP 80 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 3 0 BBX 2 8 0 -2 BITMAP 40 80 80 80 80 80 80 40 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 3 0 BBX 2 8 0 -2 BITMAP 80 40 40 40 40 40 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 0 2 BITMAP C0 60 C0 20 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 20 20 F8 20 20 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 2 0 BBX 1 3 1 -2 BITMAP 80 80 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 5 0 BBX 5 1 0 2 BITMAP F8 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 2 0 BBX 1 1 1 0 BITMAP 80 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 4 0 BBX 4 8 0 -2 BITMAP 10 10 20 20 40 40 80 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 60 90 90 90 90 60 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP C0 40 40 40 40 E0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP E0 A0 20 40 80 E0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP E0 A0 40 60 A0 C0 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 30 70 D0 F8 10 38 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP E0 80 C0 20 A0 C0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 70 90 E0 90 90 60 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP F0 10 20 40 C0 80 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP F0 90 50 B0 90 E0 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 60 90 90 70 90 E0 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 2 0 BBX 1 4 1 0 BITMAP 80 00 00 80 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 2 0 BBX 1 6 1 -2 BITMAP 80 00 00 80 80 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 5 0 BBX 6 5 1 0 BITMAP 0C 38 E0 38 0C ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 5 0 BBX 5 2 0 1 BITMAP F8 F8 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 5 0 BBX 6 5 0 0 BITMAP C0 70 1C 70 C0 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 0 0 BITMAP E0 A0 40 40 40 40 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP 3C 56 BA AE F4 78 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 20 30 50 78 88 CC ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP F8 48 70 48 48 F8 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP 78 C8 80 80 C0 78 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP F8 44 44 44 44 F8 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP F0 50 60 40 50 F0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 0 0 BITMAP F0 50 60 40 40 80 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 78 C8 80 9C C8 78 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP FC 48 78 48 48 FC ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 0 0 BITMAP E0 40 40 40 40 E0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 0 -2 BITMAP 60 40 40 40 40 40 C0 C0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP E8 50 60 60 50 F8 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 0 0 BITMAP E0 40 40 40 50 F0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP C6 6C 6C 5C 54 EE ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP DC 68 68 58 58 E8 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 70 D8 88 88 D8 70 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP F0 48 48 70 40 E0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 -2 BITMAP 70 D8 88 88 D8 70 18 0C ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP F0 50 50 60 50 F8 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 1 0 BITMAP E0 A0 C0 60 A0 E0 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP F8 20 20 20 20 70 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP FC 48 48 48 48 78 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP CC 44 48 28 30 10 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP D6 D2 5C 6C 6C 28 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP C8 58 30 70 D0 D8 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP C8 58 70 20 20 70 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP F0 A0 20 40 50 F0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 3 0 BBX 2 8 0 -2 BITMAP C0 80 80 80 80 80 80 C0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 4 0 BBX 4 8 0 -2 BITMAP 80 80 40 40 20 20 10 10 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 3 0 BBX 2 8 0 -2 BITMAP C0 40 40 40 40 40 40 C0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 1 BITMAP 20 20 70 50 D8 88 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 4 0 BBX 3 1 1 -1 BITMAP E0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 2 0 BBX 1 2 1 4 BITMAP 80 80 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 0 0 BITMAP E0 60 A0 D0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP C0 40 78 48 48 70 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 1 0 BITMAP 60 A0 80 60 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 30 10 70 90 90 F8 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 1 0 BITMAP 60 E0 80 60 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 0 0 BITMAP 60 60 C0 40 40 C0 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 -2 BITMAP F0 A0 E0 F0 90 E0 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP C0 40 70 50 50 F8 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 2 0 BBX 3 6 0 0 BITMAP 40 00 C0 40 40 E0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 3 0 BBX 2 8 0 -2 BITMAP 40 00 40 40 40 40 C0 C0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP C0 40 58 70 50 F8 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 0 0 BITMAP C0 40 40 40 40 E0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 8 0 BBX 7 4 0 0 BITMAP FC 54 54 FE ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 0 BITMAP F0 50 50 F8 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP 60 90 90 60 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 -2 BITMAP F8 48 48 70 40 E0 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 -2 BITMAP 70 90 90 F0 10 38 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 0 0 BITMAP F0 50 40 E0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 1 0 BITMAP E0 E0 E0 E0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 0 0 BITMAP 40 40 E0 40 40 60 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 0 BITMAP F0 50 50 78 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 0 0 BITMAP D0 90 60 60 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 6 0 BBX 6 4 0 0 BITMAP D4 B4 78 48 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 0 0 BITMAP D0 70 E0 B0 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 0 -2 BITMAP D0 90 70 60 20 40 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP F0 A0 50 F0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 0 -2 BITMAP 60 40 40 40 C0 40 40 60 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 2 0 BBX 1 8 0 -2 BITMAP 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 0 -2 BITMAP C0 40 40 40 60 40 40 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 5 0 BBX 5 2 0 1 BITMAP E8 B8 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 2 0 BBX 1 6 1 -2 BITMAP 80 00 80 80 80 80 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP 40 60 E0 C0 E0 40 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 30 50 40 C0 40 F0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 5 0 BBX 6 6 0 0 BITMAP 84 78 48 48 78 84 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP C8 58 70 70 70 70 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 2 0 BBX 1 8 0 -2 BITMAP 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 5 0 BBX 3 8 1 -2 BITMAP E0 A0 80 E0 E0 40 A0 E0 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 5 0 BBX 2 1 1 5 BITMAP C0 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP 7C DE AA A2 DE 7C ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 3 0 BBX 3 3 0 3 BITMAP E0 E0 E0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 1 0 BITMAP E0 E0 E0 60 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 5 0 BBX 5 2 0 1 BITMAP F8 08 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 3 0 BBX 2 1 0 2 BITMAP C0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 2 BITMAP 60 F0 D0 60 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 5 0 BBX 2 1 1 5 BITMAP C0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 2 0 BBX 1 2 1 4 BITMAP 80 80 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 20 F8 20 00 F8 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 -4 3 BITMAP C0 C0 C0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 -4 3 BITMAP C0 80 C0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 5 0 BBX 2 1 2 5 BITMAP C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 -2 BITMAP F0 50 50 78 40 40 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 0 -2 BITMAP F0 F0 F0 70 30 30 30 30 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 2 2 BITMAP 80 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 5 0 BBX 1 2 2 -2 BITMAP 80 80 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 3 0 BBX 3 3 -3 3 BITMAP C0 40 E0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 3 0 BBX 3 3 0 3 BITMAP E0 A0 E0 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 1 0 BITMAP C0 E0 E0 E0 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 2 0 BITMAP C4 48 F0 1C 3C 44 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 2 0 BITMAP C4 48 F0 1C 2C 4C ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP C8 90 E0 38 78 88 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 0 -2 BITMAP 40 40 40 40 A0 E0 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 30 20 30 50 78 88 CC ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 30 20 30 50 78 88 CC ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 70 20 30 50 78 88 CC ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 38 20 30 50 78 88 CC ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 30 20 30 50 78 88 CC ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP 10 28 30 30 50 78 88 CC ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP 0E 1A 38 2C 7A 9E ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 -2 BITMAP 78 C8 80 80 C0 78 20 20 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 0 0 BITMAP 20 F0 50 60 40 50 F0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 0 0 BITMAP 40 F0 50 60 40 50 F0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 0 0 BITMAP 50 F0 50 60 40 50 F0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 0 0 BITMAP 60 F0 50 60 40 50 F0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 3 0 BBX 3 7 0 0 BITMAP 40 E0 40 40 40 40 E0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 3 0 BBX 3 7 0 0 BITMAP 40 E0 40 40 40 40 E0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 3 0 BBX 3 7 0 0 BITMAP E0 E0 40 40 40 40 E0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 3 0 BBX 3 7 0 0 BITMAP C0 E0 40 40 40 40 E0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP F8 44 E4 44 44 F8 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 38 DC 68 68 58 58 E8 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 20 70 D8 88 88 D8 70 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 20 70 D8 88 88 D8 70 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 70 70 D8 88 88 D8 70 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 70 70 D8 88 88 D8 70 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 60 70 D8 88 88 D8 70 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 88 50 20 50 88 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 6 0 BBX 7 6 2 0 BITMAP 3E 6C 5C 74 6C F8 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 10 FC 48 48 48 48 78 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 20 FC 48 48 48 48 78 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 38 FC 48 48 48 48 78 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 30 FC 48 48 48 48 78 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 30 C8 58 70 20 20 70 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP E0 78 48 48 70 E0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 70 50 60 70 68 F8 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 0 0 BITMAP 20 E0 60 A0 D0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 0 0 BITMAP 40 E0 60 A0 D0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 0 0 BITMAP E0 E0 60 A0 D0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 0 0 BITMAP E0 E0 60 A0 D0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 0 0 BITMAP 60 E0 60 A0 D0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 0 0 BITMAP 40 A0 E0 60 A0 D0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 7 0 BBX 5 4 1 0 BITMAP D8 78 A0 D8 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 1 -2 BITMAP 60 A0 80 60 40 40 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 1 0 BITMAP C0 60 E0 80 60 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 1 0 BITMAP 60 60 E0 80 60 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 1 0 BITMAP E0 60 E0 80 60 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 1 0 BITMAP 60 60 E0 80 60 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 2 0 BBX 3 5 0 0 BITMAP C0 C0 40 40 E0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 2 0 BBX 3 5 0 0 BITMAP 60 C0 40 40 E0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 2 0 BBX 3 5 0 0 BITMAP E0 C0 40 40 E0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 2 0 BBX 3 5 0 0 BITMAP C0 C0 40 40 E0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP E0 E0 70 90 90 60 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 70 F0 50 50 F8 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 60 60 90 90 60 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 60 60 90 90 60 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP E0 60 90 90 60 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 70 60 90 90 60 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 60 60 90 90 60 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 0 BITMAP 20 00 F8 20 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP 70 B0 D0 E0 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 60 F0 50 50 78 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 30 F0 50 50 78 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 70 F0 50 50 78 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP 30 F0 50 50 78 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 4 0 BBX 4 7 0 -2 BITMAP 60 D0 90 70 60 20 40 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 0 -2 BITMAP C0 40 78 48 48 70 40 E0 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 4 0 BBX 4 7 0 -2 BITMAP 60 D0 90 70 60 20 40 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 70 50 D0 50 50 F8 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 1 1 2 BITMAP E0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 0 -2 BITMAP 40 40 F0 40 40 40 40 40 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 0 0 BITMAP 50 F0 A0 20 40 50 F0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 4 0 0 BITMAP 6C 9E 90 EE ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 60 C8 58 70 20 20 70 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 3 4 0 0 BITMAP C0 40 40 E0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 0 0 BITMAP C0 40 60 C0 40 E0 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 0 0 BITMAP E0 40 60 C0 50 F0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 0 -2 BITMAP 40 40 F0 40 40 F0 40 40 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 70 60 F0 50 50 D8 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 0 0 BITMAP 80 40 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 6 1 0 BITMAP 7E 92 9C 90 92 7E ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 1 1 2 BITMAP FE ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 1 5 BITMAP E0 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 1 2 2 -3 BITMAP 80 80 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 2 1 2 5 BITMAP C0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 0 0 BITMAP 40 80 80 40 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 2 5 BITMAP 80 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 1 5 BITMAP E0 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 2 1 2 BITMAP E0 E0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 1 5 BITMAP E0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 1 5 BITMAP E0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 2 0 4 BITMAP A0 A0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 1 2 0 4 BITMAP 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 1 0 BITMAP E0 E0 E0 E0 E0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 3 4 BITMAP 40 A0 40 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 1 3 1 -2 BITMAP 80 80 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 1 -2 BITMAP 30 50 40 C0 80 80 80 80 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 4 1 2 BITMAP FC 58 5C 10 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 0 0 BBX 5 6 -1 0 BITMAP 08 10 20 20 40 80 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 2 1 1 5 BITMAP C0 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 9 6 0 0 BITMAP E400 A800 F000 3F80 5680 9F80 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 1 2 0 BITMAP A8 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 2 0 4 BITMAP A0 A0 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 7 1 0 BITMAP E0 E0 A0 C0 60 A0 E0 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 3 0 -2 BITMAP A0 A0 A0 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP A0 F0 A0 50 F0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lubR10.bdf100644 1750 1750 56060 5413747502 15016 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-Medium-R-Normal--10-100-75-75-P-56-ISO8859-1 SIZE 10 72 72 FONTBOUNDINGBOX 16 12 -5 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 10 POINT_SIZE 100 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 56 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 9 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 3 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 3 0 BBX 1 8 1 0 BITMAP 80 80 80 80 80 80 00 80 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 4 0 BBX 2 3 1 5 BITMAP C0 C0 C0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP 28 28 FC 28 50 FC 50 50 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 6 0 BBX 3 9 2 -1 BITMAP 60 E0 C0 C0 60 60 E0 C0 40 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 44 A8 B8 50 28 74 54 88 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 70 50 50 60 AC B8 90 6C ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 3 0 BBX 1 3 1 5 BITMAP 80 80 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 3 0 BBX 2 10 1 -2 BITMAP 40 80 80 80 80 80 80 80 80 40 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 3 0 BBX 2 10 1 -2 BITMAP 80 40 40 40 40 40 40 40 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 4 BITMAP 40 F0 60 60 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 6 0 BBX 7 7 0 0 BITMAP 10 10 10 FE 10 10 10 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 3 0 BBX 1 3 1 -2 BITMAP 80 80 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 6 0 BBX 6 1 0 2 BITMAP FC ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 3 0 BBX 1 1 1 0 BITMAP 80 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 5 0 BBX 5 10 0 -2 BITMAP 08 18 10 10 20 20 40 40 C0 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 70 88 88 88 88 88 88 70 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 6 0 BBX 3 8 2 0 BITMAP C0 40 40 40 40 40 40 E0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 0 BITMAP E0 90 10 10 20 40 80 F0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 0 BITMAP E0 90 10 60 30 10 90 E0 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 0 BITMAP 10 30 50 90 F8 10 10 38 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 0 BITMAP F0 80 80 E0 10 10 90 E0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 78 48 80 F0 88 88 C8 70 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP F8 08 10 20 60 40 C0 80 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 70 88 98 60 90 88 88 70 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 70 98 88 88 78 08 90 E0 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 3 0 BBX 1 5 1 0 BITMAP 80 00 00 00 80 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 3 0 BBX 1 7 1 -2 BITMAP 80 00 00 00 80 80 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 04 18 60 C0 60 18 04 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 6 0 BBX 6 3 0 1 BITMAP FC 00 FC ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 80 60 18 0C 18 60 80 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 5 0 BBX 3 8 1 0 BITMAP E0 A0 20 40 40 40 00 40 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 0 0 BITMAP 1E 63 5D A9 AD B6 C0 78 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 10 30 38 28 78 44 84 CE ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 0 BITMAP F8 48 48 70 58 48 48 F8 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 3C 44 80 80 80 80 44 38 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 0 0 BITMAP F8 44 42 42 42 42 44 F8 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 0 BITMAP F8 48 50 70 50 40 48 F8 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 0 0 BITMAP F8 48 50 70 50 40 40 C0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 3C 44 80 80 8E 84 44 3C ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 0 0 BITMAP EE 44 44 7C 44 44 44 EE ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 0 0 BITMAP E0 40 40 40 40 40 40 E0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 0 -2 BITMAP 30 20 20 20 20 20 20 20 A0 C0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP EC 4C 58 60 70 58 4C EE ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 0 BITMAP E0 40 40 40 40 40 48 F8 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 0 0 BITMAP C3 66 66 56 5A 5A 4A E7 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 0 0 BITMAP CE 64 64 54 54 4C 44 E4 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 0 0 BITMAP 38 44 82 82 82 82 44 38 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 0 BITMAP F0 48 48 48 70 40 40 E0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 -2 BITMAP 38 44 82 82 82 82 46 3C 0C 03 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP F0 48 48 48 70 50 48 EC ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 1 0 BITMAP 70 90 80 40 30 10 90 E0 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP FE 10 10 10 10 10 10 38 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP EE 44 44 44 44 44 44 38 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP E6 42 44 24 28 28 18 10 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 0 0 BITMAP E980 4880 4900 5500 5500 3600 2200 2200 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP E6 44 28 18 38 68 44 CE ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP E6 44 24 38 10 10 10 38 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP F8 90 10 20 20 40 48 F8 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 3 0 BBX 2 10 1 -2 BITMAP C0 80 80 80 80 80 80 80 80 C0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 5 0 BBX 5 10 0 -2 BITMAP 80 C0 40 40 20 20 10 10 18 08 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 3 0 BBX 2 10 0 -2 BITMAP C0 40 40 40 40 40 40 40 40 C0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 1 BITMAP 10 30 30 48 48 C4 84 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 5 0 BBX 4 1 1 -1 BITMAP F0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 3 0 BBX 1 3 1 5 BITMAP 80 80 80 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP F0 10 70 90 E8 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP C0 40 40 78 44 44 44 78 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 70 90 80 80 70 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP 18 08 08 78 88 88 88 7C ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 60 90 F0 80 70 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 4 0 BBX 4 8 0 0 BITMAP 70 50 40 E0 40 40 40 E0 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 0 -2 BITMAP 78 90 90 60 F8 88 F0 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP C0 40 40 78 48 48 48 FC ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 0 0 BITMAP 40 00 00 C0 40 40 40 E0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 3 0 BBX 3 10 0 -2 BITMAP 20 00 00 60 20 20 20 20 A0 E0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP C0 40 40 4C 58 60 58 EC ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 0 0 BITMAP C0 40 40 40 40 40 40 E0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 9 0 BBX 9 5 0 0 BITMAP FF00 4900 4900 4900 FF80 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 6 0 BBX 6 5 0 0 BITMAP F8 48 48 48 FC ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 0 BITMAP 70 88 88 88 70 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 -2 BITMAP F8 44 44 44 78 40 E0 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 -2 BITMAP 78 88 88 88 78 08 1C ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 0 0 BITMAP F0 50 40 40 E0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP F0 90 60 90 F0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 4 0 BBX 3 8 1 0 BITMAP 40 40 40 E0 40 40 40 60 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 6 0 BBX 6 5 0 0 BITMAP D8 48 48 48 7C ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 0 BITMAP C8 48 50 30 20 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 8 0 BBX 8 5 0 0 BITMAP CB 59 5A 66 24 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 6 0 BBX 6 5 0 0 BITMAP EC 68 30 58 DC ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 -2 BITMAP EC 44 48 38 30 20 60 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 6 0 BBX 4 5 1 0 BITMAP F0 A0 60 50 F0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 3 0 BBX 3 10 0 -2 BITMAP 20 40 40 40 40 C0 40 40 40 60 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 2 0 BBX 1 10 1 -2 BITMAP 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 3 0 BBX 3 10 0 -2 BITMAP 80 40 40 40 40 60 40 40 40 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 6 0 BBX 7 2 1 2 BITMAP 72 8E ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 3 0 BBX 1 7 1 -2 BITMAP 80 00 80 80 80 80 80 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 6 0 BBX 3 8 1 0 BITMAP 40 60 E0 C0 C0 C0 E0 40 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 0 BITMAP 30 50 40 40 C0 40 40 F0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP 84 FC 48 48 48 48 78 84 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 6 0 BBX 7 8 0 0 BITMAP E6 64 38 7C 10 7C 10 38 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 2 0 BBX 1 10 1 -2 BITMAP 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 6 0 BBX 4 10 1 -2 BITMAP 70 90 80 40 B0 D0 70 10 90 E0 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 2 7 BITMAP A0 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP 38 44 9A AA A2 9A 44 38 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 0 3 BITMAP E0 A0 E0 A0 D0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 30 F0 A0 70 50 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 6 0 BBX 6 3 0 1 BITMAP FC 04 04 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 3 0 BBX 2 1 1 2 BITMAP C0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 6 0 BBX 4 5 1 3 BITMAP 60 F0 F0 D0 60 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 2 7 BITMAP E0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 0 5 BITMAP C0 C0 C0 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 6 0 BBX 7 7 0 0 BITMAP 10 10 FE 10 10 00 FE ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 -5 4 BITMAP E0 A0 C0 E0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 -5 4 BITMAP E0 E0 A0 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 6 0 BBX 2 1 2 7 BITMAP C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 -2 BITMAP D8 48 48 48 7C 40 40 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 6 0 BBX 4 10 1 -2 BITMAP F0 F0 F0 F0 30 30 30 30 30 30 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 6 0 BBX 1 1 3 2 BITMAP 80 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 6 0 BBX 2 3 2 -2 BITMAP 80 40 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 -5 4 BITMAP C0 40 40 E0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 0 3 BITMAP 60 90 90 90 60 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP A0 E0 70 D0 E0 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 3 0 BITMAP C4 48 58 F0 2C 7E 44 8E ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 3 0 BITMAP C4 48 58 F0 2E 6A 4C 8E ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 3 0 BITMAP E4 E8 B8 F0 2C 7E 44 8E ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 5 0 BBX 3 7 1 -2 BITMAP 40 00 40 40 80 A0 E0 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 30 10 30 38 28 78 44 84 CE ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 18 10 30 38 28 78 44 84 CE ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 38 10 30 38 28 78 44 84 CE ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 38 10 30 38 28 78 44 84 CE ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 28 10 30 38 28 78 44 84 CE ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 0 0 BITMAP 18 24 18 30 38 28 78 44 84 CE ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 0 0 BITMAP 0F80 0C80 1D00 1700 2500 7C00 4480 CF80 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 0 -2 BITMAP 3C 44 80 80 80 80 44 38 10 30 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 0 0 BITMAP 20 F8 48 50 70 50 40 48 F8 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 0 0 BITMAP 20 F8 48 50 70 50 40 48 F8 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 0 0 BITMAP 50 F8 48 50 70 50 40 48 F8 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 0 0 BITMAP 50 F8 48 50 70 50 40 48 F8 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 3 0 BBX 3 9 0 0 BITMAP 40 E0 40 40 40 40 40 40 E0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 3 0 BBX 3 9 0 0 BITMAP 40 E0 40 40 40 40 40 40 E0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 3 0 BBX 3 9 0 0 BITMAP E0 E0 40 40 40 40 40 40 E0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 3 0 BBX 3 9 0 0 BITMAP A0 E0 40 40 40 40 40 40 E0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 0 0 BITMAP F8 44 42 F2 42 42 44 F8 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 0 0 BITMAP 38 CE 64 64 54 54 4C 44 E4 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 0 0 BITMAP 10 38 44 82 82 82 82 44 38 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 0 0 BITMAP 10 38 44 82 82 82 82 44 38 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 0 0 BITMAP 38 38 44 82 82 82 82 44 38 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 0 0 BITMAP 38 38 44 82 82 82 82 44 38 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 0 0 BITMAP 28 38 44 82 82 82 82 44 38 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 84 48 78 30 78 48 84 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 0 0 BITMAP 3A 46 8E 9A B2 E2 C4 B8 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 10 EE 44 44 44 44 44 44 38 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 10 EE 44 44 44 44 44 44 38 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 38 EE 44 44 44 44 44 44 38 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 28 EE 44 44 44 44 44 44 38 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 18 E6 44 24 38 10 10 10 38 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 0 BITMAP E0 40 78 48 48 70 40 E0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 0 BITMAP 70 50 60 60 70 48 68 F8 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 20 F0 10 70 90 E8 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 20 F0 10 70 90 E8 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 50 F0 10 70 90 E8 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 70 F0 10 70 90 E8 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 50 F0 10 70 90 E8 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 60 90 F0 10 70 90 E8 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 8 0 BBX 7 5 1 0 BITMAP EC 12 7E 90 EE ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 -2 BITMAP 70 90 80 80 70 20 60 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 60 60 90 F0 80 70 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 60 60 90 F0 80 70 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 70 60 90 F0 80 70 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 50 60 90 F0 80 70 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 0 0 BITMAP C0 C0 40 40 40 E0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 0 0 BITMAP 60 C0 40 40 40 E0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 0 0 BITMAP E0 C0 40 40 40 E0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 0 0 BITMAP A0 C0 40 40 40 E0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 0 BITMAP F0 20 D0 78 88 88 88 70 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 70 F8 48 48 48 FC ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 20 70 88 88 88 70 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 20 70 88 88 88 70 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 70 70 88 88 88 70 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 70 70 88 88 88 70 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 50 70 88 88 88 70 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 0 BITMAP 20 00 F8 00 20 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 0 BITMAP 78 98 A8 C8 F0 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 30 D8 48 48 48 7C ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 30 D8 48 48 48 7C ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 38 D8 48 48 48 7C ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 28 D8 48 48 48 7C ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 -2 BITMAP 30 EC 44 48 38 30 20 60 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 6 0 BBX 6 10 0 -2 BITMAP C0 40 40 78 44 44 44 78 40 E0 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 -2 BITMAP 50 EC 44 48 38 30 20 60 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 78 48 48 E8 48 48 48 FC ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 1 1 2 BITMAP F0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 10 1 -2 BITMAP 20 20 20 F8 20 20 20 20 20 20 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 50 F8 90 10 20 20 40 48 F8 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 5 1 0 BITMAP 76 89 8F 88 77 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 28 E6 44 24 38 10 10 10 38 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 5 0 0 BITMAP C0 40 40 40 E0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 0 0 BITMAP C0 40 40 60 C0 40 40 E0 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 0 BITMAP E0 40 40 60 C0 40 48 F8 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 10 1 -2 BITMAP 20 20 20 F8 20 20 20 F8 20 20 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 78 50 40 F8 48 48 48 EC ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 5 1 0 BITMAP 80 C0 40 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 8 0 0 BITMAP 3FC0 4440 8480 8780 8480 8400 4440 3FC0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 1 1 2 BITMAP FF80 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 2 7 BITMAP E0 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 2 1 2 -2 BITMAP C0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 2 7 BITMAP E0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 5 1 0 BITMAP 40 40 80 C0 40 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 1 1 3 7 BITMAP 80 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 2 7 BITMAP E0 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 3 2 1 BITMAP E0 E0 E0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 2 7 BITMAP E0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 2 7 BITMAP E0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 1 5 BITMAP A0 A0 A0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 1 3 1 5 BITMAP 80 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP A0 F0 90 60 90 F0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 3 3 6 BITMAP 60 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 1 3 1 -2 BITMAP 80 80 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 10 1 -2 BITMAP 38 48 40 40 E0 40 40 80 80 80 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 11 5 0 3 BITMAP FF60 23C0 23C0 22C0 7660 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 0 0 BBX 6 8 -2 0 BITMAP 04 08 18 10 20 60 40 80 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 2 1 2 7 BITMAP C0 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 8 1 0 BITMAP 4400 A800 B800 5000 2900 7680 5680 8900 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 1 2 0 BITMAP A4 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 1 5 BITMAP A0 A0 A0 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 9 1 0 BITMAP E0 70 90 80 40 30 10 90 E0 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 1 -2 BITMAP A0 A0 A0 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 0 BITMAP A0 F0 A0 60 50 F0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lubR12.bdf100644 1750 1750 60137 5413747503 15021 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-Medium-R-Normal--12-120-75-75-P-68-ISO8859-1 SIZE 12 72 72 FONTBOUNDINGBOX 18 15 -6 -3 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 12 POINT_SIZE 120 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 68 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 11 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 4 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 3 0 BBX 1 9 1 0 BITMAP 80 80 80 80 80 80 80 00 80 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 5 0 BBX 2 3 1 6 BITMAP C0 C0 C0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 14 24 7E 28 28 FC 48 50 50 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 -1 BITMAP 38 E8 A0 E0 70 28 A8 A8 F0 20 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 44 A8 A8 50 38 34 54 54 88 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 30 48 48 70 97 92 8A CC 7B ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 3 0 BBX 1 3 1 6 BITMAP 80 80 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 4 0 BBX 3 11 0 -2 BITMAP 20 40 80 80 80 80 80 80 80 40 20 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 4 0 BBX 3 11 0 -2 BITMAP 80 40 20 20 20 20 20 20 20 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 6 0 BBX 5 4 0 5 BITMAP 20 F8 50 50 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 10 10 10 10 FE 10 10 10 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 3 0 BBX 1 3 1 -2 BITMAP 80 80 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 7 0 BBX 7 1 0 3 BITMAP FE ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 3 0 BBX 1 1 1 0 BITMAP 80 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 6 0 BBX 6 11 0 -2 BITMAP 04 08 08 18 10 30 20 60 40 40 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 30 48 84 84 84 84 84 48 30 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP E0 20 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 70 88 88 08 10 20 40 80 F8 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP F0 88 08 08 70 08 08 88 F0 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 18 18 28 48 C8 FC 08 08 1C ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP F8 80 80 F0 18 08 08 98 F0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 3C 44 80 B8 C4 84 84 4C 38 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP FC 04 08 10 30 60 40 C0 80 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 78 84 84 48 78 8C 84 CC 78 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 70 C8 84 84 8C 74 04 88 F0 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 3 0 BBX 1 6 1 0 BITMAP 80 00 00 00 00 80 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 3 0 BBX 1 8 1 -2 BITMAP 80 00 00 00 80 80 80 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 02 0C 30 E0 60 30 0C 02 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 7 0 BBX 7 3 0 2 BITMAP FE 00 FE ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 80 60 18 0C 0E 18 60 80 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 0 0 BITMAP F0 88 88 10 30 20 20 00 20 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 0 0 BITMAP 0F00 3080 4E40 8F40 9640 96C0 9F80 6000 3E00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 0 0 BITMAP 0800 1800 1C00 3400 2600 3E00 4200 4100 C380 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP F8 44 44 48 78 4C 44 44 F8 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 3E 42 82 80 80 80 C0 62 3C ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 0 0 BITMAP FC 42 41 41 41 41 41 42 FC ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP FC 44 40 48 78 48 40 44 FC ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP FC 44 40 48 78 48 40 40 E0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 3E 42 82 80 80 87 C2 62 3E ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 0 0 BITMAP E380 4100 4100 4100 7F00 4100 4100 4100 E380 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 4 0 BBX 3 9 0 0 BITMAP E0 40 40 40 40 40 40 40 E0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 5 0 BBX 5 11 0 -2 BITMAP 38 10 10 10 10 10 10 10 10 90 E0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP EE 44 48 50 60 50 4C 46 EF ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP E0 40 40 40 40 40 40 44 FC ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 0 0 BITMAP E1C0 6180 7180 5280 5280 4C80 4C80 4880 E1C0 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP C7 62 62 52 4A 4A 46 42 E2 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 3C 42 81 81 81 81 81 42 3C ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP F8 44 44 4C 78 40 40 40 E0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 9 0 BBX 10 11 0 -2 BITMAP 3C00 4200 8100 8100 8100 8100 8100 4200 3E00 0600 01C0 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP F8 44 44 44 78 48 4C 44 E3 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 78 88 88 C0 30 18 88 88 F0 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 0 0 BITMAP FE 10 10 10 10 10 10 10 38 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 0 0 BITMAP E7 42 42 42 42 42 42 66 3C ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP E3 43 42 22 24 14 14 18 08 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 11 0 BBX 11 9 0 0 BITMAP E460 4440 4E40 2A40 2A80 2A80 3180 1100 1100 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP F3 62 24 1C 18 38 64 42 C7 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP E7 42 26 3C 18 10 10 10 38 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP FC 88 18 10 20 20 40 44 FC ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 4 0 BBX 2 11 1 -2 BITMAP C0 80 80 80 80 80 80 80 80 80 C0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 6 0 BBX 6 11 0 -2 BITMAP 80 40 40 60 20 30 10 18 08 08 04 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 4 0 BBX 2 11 1 -2 BITMAP C0 40 40 40 40 40 40 40 40 40 C0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 1 BITMAP 10 10 28 28 44 44 C6 82 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 6 0 BBX 5 1 1 -1 BITMAP F8 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 1 6 BITMAP C0 80 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP F0 08 78 88 88 7C ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP C0 40 40 7C 46 42 42 42 7C ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 78 C8 80 80 C0 78 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 0C 04 04 7C 84 84 84 C4 7E ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 70 88 F8 80 C0 78 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 5 0 BBX 5 9 0 0 BITMAP 78 48 40 F0 40 40 40 40 F0 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 -2 BITMAP 7C 88 88 70 80 FC 84 78 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 0 0 BITMAP C0 40 40 7C 44 44 44 44 EE ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 4 0 BBX 3 9 0 0 BITMAP 40 00 00 C0 40 40 40 40 E0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 4 0 BBX 3 11 0 -2 BITMAP 20 00 00 60 20 20 20 20 20 A0 E0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP C0 40 40 4E 58 70 50 48 E6 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 4 0 BBX 3 9 0 0 BITMAP C0 40 40 40 40 40 40 40 E0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 11 0 BBX 11 6 0 0 BITMAP FFC0 4440 4440 4440 4440 EEE0 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 8 0 BBX 7 6 0 0 BITMAP FC 44 44 44 44 EE ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 78 CC 84 84 CC 78 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 0 -2 BITMAP FC 46 42 42 42 7C 40 E0 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 -2 BITMAP 7C 84 84 84 C4 7C 04 0E ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP F0 50 40 40 40 E0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 78 88 E8 B8 88 F0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 0 0 BITMAP 40 40 F0 40 40 40 40 70 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 8 0 BBX 7 6 0 0 BITMAP CC 44 44 44 44 7E ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP E6 46 64 28 18 10 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 10 0 BBX 10 6 0 0 BITMAP E4C0 4CC0 4C80 3280 3300 2100 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP E6 64 38 38 4C CE ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 -2 BITMAP E6 46 64 2C 18 10 10 60 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 0 BITMAP F8 90 20 60 48 F8 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 4 0 BBX 3 11 0 -2 BITMAP 20 40 40 40 40 80 40 40 40 40 20 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 3 0 BBX 1 11 1 -2 BITMAP 80 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 4 0 BBX 3 11 1 -2 BITMAP 80 40 40 40 40 20 40 40 40 40 80 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 7 0 BBX 7 3 0 2 BITMAP 62 92 8C ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 3 0 BBX 1 8 1 -2 BITMAP 80 00 80 80 80 80 80 80 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 20 78 A8 A0 A0 A0 A0 78 20 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 38 48 40 40 E0 40 40 40 F8 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 1 BITMAP 82 7C 44 44 44 7C 82 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP E6 44 28 18 7C 10 7C 10 38 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 3 0 BBX 1 11 1 -2 BITMAP 80 80 80 80 80 00 80 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 -2 BITMAP 78 88 80 40 B0 88 68 10 08 88 F0 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 7 0 BBX 3 1 2 8 BITMAP A0 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 3E00 6300 DD80 A480 A080 A080 DD80 6300 3E00 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 4 BITMAP F0 90 70 90 F8 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 28 50 B0 F0 50 28 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 7 0 BBX 7 3 0 2 BITMAP FE 02 02 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 4 0 BBX 3 1 0 3 BITMAP E0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 7 0 BBX 4 6 2 3 BITMAP 60 F0 F0 D0 F0 60 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 7 0 BBX 3 1 2 8 BITMAP E0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 3 0 BBX 3 2 2 7 BITMAP E0 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 10 10 FE 10 10 10 00 FE ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 -6 4 BITMAP E0 A0 60 C0 E0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 -6 4 BITMAP E0 E0 40 A0 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 7 0 BBX 3 1 2 8 BITMAP E0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 0 -2 BITMAP CC 44 44 44 44 7E 40 40 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 -2 BITMAP F8 F8 F8 F8 38 18 18 18 18 18 18 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 7 0 BBX 1 1 3 3 BITMAP 80 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 7 0 BBX 2 3 3 -2 BITMAP 80 40 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 -6 4 BITMAP C0 40 40 40 E0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 4 BITMAP 60 90 90 90 60 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP A0 50 78 68 50 A0 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP C2 44 4C 48 F6 2E 6F 42 87 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP C2 44 4C 48 FE 2A 66 4C 8E ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP E2 E4 4C A8 F6 2E 6F 42 87 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 0 -3 BITMAP 20 00 20 20 60 40 88 88 78 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 9 0 BBX 9 11 0 0 BITMAP 1C00 0000 0800 1800 1C00 3400 2600 3E00 4200 4100 C380 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 9 0 BBX 9 11 0 0 BITMAP 1C00 0000 0800 1800 1C00 3400 2600 3E00 4200 4100 C380 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 9 0 BBX 9 11 0 0 BITMAP 3C00 0000 0800 1800 1C00 3400 2600 3E00 4200 4100 C380 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 9 0 BBX 9 11 0 0 BITMAP 1E00 0000 0800 1800 1C00 3400 2600 3E00 4200 4100 C380 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 9 0 BBX 9 11 0 0 BITMAP 1400 0000 0800 1800 1C00 3400 2600 3E00 4200 4100 C380 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 0 0 BITMAP 0C00 1200 0C00 0800 1800 1C00 3400 2600 3E00 4200 4100 C380 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 11 0 BBX 11 9 0 0 BITMAP 07E0 0620 0E40 1BC0 1240 3E00 4200 4220 C7E0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 1 -2 BITMAP 3E 42 82 80 80 80 C0 62 3C 08 18 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 0 0 BITMAP 70 00 FC 44 40 48 78 48 40 44 FC ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 0 0 BITMAP 38 00 FC 44 40 48 78 48 40 44 FC ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 0 0 BITMAP 78 00 FC 44 40 48 78 48 40 44 FC ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 0 0 BITMAP 28 00 FC 44 40 48 78 48 40 44 FC ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 4 0 BBX 3 11 0 0 BITMAP E0 00 E0 40 40 40 40 40 40 40 E0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 4 0 BBX 3 11 0 0 BITMAP E0 00 E0 40 40 40 40 40 40 40 E0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 1 0 BITMAP F0 00 70 20 20 20 20 20 20 20 70 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 4 0 BBX 3 11 0 0 BITMAP A0 00 E0 40 40 40 40 40 40 40 E0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 0 0 BITMAP FC 42 41 41 F1 41 41 42 FC ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 3C 00 C7 62 62 52 4A 4A 46 42 E2 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 38 00 3C 42 81 81 81 81 81 42 3C ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 1C 00 3C 42 81 81 81 81 81 42 3C ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 3C 00 3C 42 81 81 81 81 81 42 3C ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 3C 00 3C 42 81 81 81 81 81 42 3C ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 28 00 3C 42 81 81 81 81 81 42 3C ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 82 44 6C 38 38 28 44 82 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 3D 43 83 8D 99 B1 E1 42 BC ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 0 0 BITMAP 38 00 E7 42 42 42 42 42 42 66 3C ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 0 0 BITMAP 1C 00 E7 42 42 42 42 42 42 66 3C ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 0 0 BITMAP 3C 00 E7 42 42 42 42 42 42 66 3C ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 0 0 BITMAP 14 00 E7 42 42 42 42 42 42 66 3C ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 8 0 BBX 8 11 0 0 BITMAP 1C 00 E7 42 26 3C 18 10 10 10 38 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP E0 40 78 44 44 4C 78 40 E0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 78 48 48 50 50 48 44 54 F8 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 70 00 F0 08 78 88 88 7C ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 38 00 F0 08 78 88 88 7C ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 78 00 F0 08 78 88 88 7C ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 78 00 F0 08 78 88 88 7C ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 50 00 F0 08 78 88 88 7C ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 30 48 00 F0 08 78 88 88 7C ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 10 0 BBX 9 6 0 0 BITMAP F700 0880 7F80 8800 8C00 7780 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 -2 BITMAP 78 C8 80 80 C0 78 10 30 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 70 00 70 88 F8 80 C0 78 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 70 00 70 88 F8 80 C0 78 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 78 00 70 88 F8 80 C0 78 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 50 00 70 88 F8 80 C0 78 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 4 0 BBX 3 8 0 0 BITMAP E0 00 C0 40 40 40 40 E0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 4 0 BBX 3 8 0 0 BITMAP E0 00 C0 40 40 40 40 E0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 4 0 BBX 4 8 1 0 BITMAP F0 00 60 20 20 20 20 70 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 4 0 BBX 3 8 0 0 BITMAP A0 00 C0 40 40 40 40 E0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP F8 30 D8 7C CC 84 84 CC 78 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 0 0 BITMAP 78 00 FC 44 44 44 44 EE ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 70 00 78 CC 84 84 CC 78 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 38 00 78 CC 84 84 CC 78 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 78 00 78 CC 84 84 CC 78 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 78 00 78 CC 84 84 CC 78 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 50 00 78 CC 84 84 CC 78 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP 10 00 FE 00 00 10 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 74 CC 9C E4 CC B8 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 0 0 BITMAP 38 00 CC 44 44 44 44 7E ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 0 0 BITMAP 38 00 CC 44 44 44 44 7E ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 0 0 BITMAP 3C 00 CC 44 44 44 44 7E ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 0 0 BITMAP 28 00 CC 44 44 44 44 7E ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 0 -2 BITMAP 38 00 E6 46 64 2C 18 10 10 60 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 0 -2 BITMAP C0 40 40 7C 46 42 42 42 7C 40 E0 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 0 -2 BITMAP 28 00 E6 46 64 2C 18 10 10 60 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 7C 44 44 F4 44 44 44 44 EE ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 1 1 3 BITMAP F8 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 -2 BITMAP 20 20 20 F8 20 20 20 20 20 20 20 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 0 BITMAP 78 00 FC 88 18 10 20 20 40 44 FC ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 6 0 0 BITMAP 7B80 C440 87C0 8400 C600 7BC0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 11 0 0 BITMAP 28 00 E7 42 26 3C 18 10 10 10 38 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 0 0 BITMAP C0 40 40 40 40 E0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 9 0 0 BITMAP C0 40 40 60 C0 C0 40 40 E0 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP E0 40 40 60 C0 C0 40 44 FC ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 -2 BITMAP 20 20 20 F8 20 20 20 F8 20 20 20 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 3A 48 40 FE 42 42 42 42 F7 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 1 0 BITMAP 80 40 60 60 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 9 1 0 BITMAP 37C0 4C40 8400 8480 8780 8480 8400 4C40 37C0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 1 1 3 BITMAP FFE0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 2 8 BITMAP F0 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 1 3 -2 BITMAP C0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 2 8 BITMAP F0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 0 0 BITMAP 20 40 C0 C0 40 20 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 1 1 3 8 BITMAP 80 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 2 8 BITMAP F0 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 4 2 1 BITMAP 60 F0 F0 60 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 2 8 BITMAP F0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 2 8 BITMAP F0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 3 1 6 BITMAP B0 A0 B0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 3 0 6 BITMAP E0 E0 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP F0 00 78 88 E8 B8 88 F0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 3 4 7 BITMAP 60 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 1 3 1 -2 BITMAP 80 80 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 -2 BITMAP 1C 24 60 40 F0 40 40 40 40 80 80 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 5 0 4 BITMAP FF60 23C0 23C0 22C0 7660 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 0 0 BBX 7 9 -2 0 BITMAP 02 04 0C 08 10 20 60 40 80 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 1 2 8 BITMAP E0 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 9 2 0 BITMAP 4400 A800 A800 5000 3900 3680 5680 5680 8900 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 8 1 2 0 BITMAP 89 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 3 1 6 BITMAP 90 90 90 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 0 BITMAP F0 00 78 88 88 C0 30 18 88 88 F0 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 3 1 -2 BITMAP 90 90 90 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP F0 00 F8 90 20 60 48 F8 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lubR14.bdf100644 1750 1750 63225 5413747503 15024 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-Medium-R-Normal--14-140-75-75-P-80-ISO8859-1 SIZE 14 72 72 FONTBOUNDINGBOX 22 16 -8 -3 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 14 POINT_SIZE 140 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 13 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 4 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 4 0 BBX 1 10 1 0 BITMAP 80 80 80 80 80 80 80 00 00 80 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 1 7 BITMAP A0 A0 A0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP 0900 1A00 1200 7F80 1200 2400 FF00 2400 2C00 4800 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 9 0 BBX 5 13 2 -2 BITMAP 20 78 A8 A8 A0 60 30 28 A8 A8 F0 20 20 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 9 0 BBX 11 10 0 0 BITMAP 7060 88C0 8980 8B00 7600 0DC0 1A20 3220 6220 C1C0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 0 BITMAP 1C00 2200 2200 3200 7C00 89C0 8480 8280 C100 7FC0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 4 0 BBX 2 3 1 7 BITMAP C0 40 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 4 0 BBX 3 13 1 -3 BITMAP 20 40 40 80 80 80 80 80 80 80 40 40 20 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 4 0 BBX 3 13 1 -3 BITMAP 80 40 40 20 20 20 20 20 20 20 40 80 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 7 0 BBX 5 5 1 5 BITMAP 20 A8 50 50 50 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 0 0 BITMAP 0800 0800 0800 0800 FF80 0800 0800 0800 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 4 0 BBX 2 5 1 -3 BITMAP C0 C0 40 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 9 0 BBX 8 1 0 3 BITMAP FF ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 4 0 BBX 2 1 1 0 BITMAP C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 7 0 BBX 7 13 0 -3 BITMAP 02 04 04 08 08 18 10 30 20 20 40 40 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 38 44 82 82 82 82 82 82 44 38 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 9 0 BBX 5 10 2 0 BITMAP E0 20 20 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 1 0 BITMAP 78 8C 84 04 0C 18 20 40 80 FC ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 1 0 BITMAP F8 84 84 04 78 0C 04 84 8C F8 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 0C 0C 14 24 44 C4 FE 04 04 0E ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 9 0 BBX 5 10 2 0 BITMAP F8 80 80 E0 10 08 08 88 90 F0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 3E 42 C2 80 BC C2 82 82 46 3C ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP FC 04 08 10 10 20 60 40 C0 80 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 7C C6 82 C2 7C 8C 82 82 C6 7C ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 78 C4 82 82 86 7A 02 84 84 F8 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 4 0 BBX 1 7 1 0 BITMAP 80 00 00 00 00 00 80 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 4 0 BBX 1 10 1 -3 BITMAP 80 00 00 00 00 00 80 80 80 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 0 0 BITMAP 01 06 18 E0 60 18 06 01 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 9 0 BBX 8 4 0 2 BITMAP FF 00 00 FF ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 0 0 BITMAP 80 60 18 06 07 18 60 80 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP F0 88 88 08 10 20 20 20 00 20 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 1 0 BITMAP 0F80 30C0 6720 4A20 9220 9220 9740 9DC0 6200 3C00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 0 BITMAP 0800 0C00 1C00 1400 1200 2200 3F00 4100 4180 E3C0 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP FC 42 42 44 7C 46 42 42 46 FC ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 1F 61 41 80 80 80 80 40 61 3E ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP FE00 4300 4180 4080 4080 4080 4080 4080 4100 FE00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP FC 44 40 48 78 48 40 40 44 FC ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 0 BITMAP FE 42 40 44 7C 44 40 40 40 F0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 0 BITMAP 1F00 6100 4100 8000 8000 8380 8100 4100 6100 3F00 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 0 0 BITMAP E1C0 4080 4080 4080 7F80 4080 4080 4080 4080 E1C0 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 5 0 BBX 3 10 1 0 BITMAP E0 40 40 40 40 40 40 40 40 E0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 6 0 BBX 5 13 0 -3 BITMAP 38 10 10 10 10 10 10 10 10 10 10 90 E0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 0 BITMAP E780 4300 4400 5800 7000 5000 4C00 4600 4300 E7C0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 0 BITMAP E0 40 40 40 40 40 40 40 42 FE ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 1 0 BITMAP E0E0 60C0 51C0 5140 5940 4A40 4A40 4440 4440 E0E0 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP C380 6100 7100 5100 4900 4D00 4500 4300 4100 E100 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 3E00 6300 4100 8080 8080 8080 8080 4100 6300 3E00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP FC 42 42 42 46 7C 40 40 40 E0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 1 -3 BITMAP 3E00 6300 4100 8080 8080 8080 8080 4180 6300 3F00 0200 01C0 00E0 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP FC00 4200 4200 4200 4400 7800 4C00 4400 4200 E180 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 7C 84 84 C0 60 18 04 84 8C F8 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP FF80 0800 0800 0800 0800 0800 0800 0800 0800 1C00 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 0 BITMAP E380 4100 4100 4100 4100 4100 4100 4100 6300 3E00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 0 BITMAP F1C0 6080 2080 2100 1100 1300 0A00 0A00 0C00 0400 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 13 0 BBX 13 10 0 0 BITMAP F238 4210 2710 2520 2520 2520 18C0 18C0 18C0 1040 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP F380 2100 2200 1400 0C00 1C00 3400 2200 4300 E780 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP F380 6100 2300 1200 0C00 0800 0800 0800 0800 1C00 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP FE 84 0C 08 10 10 20 40 42 FE ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 4 0 BBX 3 13 1 -3 BITMAP E0 80 80 80 80 80 80 80 80 80 80 80 E0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 7 0 BBX 7 13 0 -3 BITMAP 80 40 40 20 20 30 10 18 08 08 04 04 02 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 4 0 BBX 3 13 0 -3 BITMAP E0 20 20 20 20 20 20 20 20 20 20 20 E0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 0 2 BITMAP 08 18 18 24 24 42 42 81 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 1 -2 BITMAP FC ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 4 0 BBX 2 3 1 7 BITMAP C0 80 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 0 0 BITMAP 78 84 04 7C 84 84 7E ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP C0 40 40 5E 63 41 41 41 42 7C ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 3C 44 84 80 80 40 3C ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 06 02 02 3E 42 82 82 82 C6 7B ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 78 C4 84 FC 80 44 38 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 6 0 BBX 5 11 1 0 BITMAP 38 48 48 40 F0 40 40 40 40 40 F0 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 -3 BITMAP 3F 66 42 62 3C 40 7F 81 81 7E ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP C0 40 40 5C 62 42 42 42 42 E7 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 1 0 BITMAP 40 00 00 C0 40 40 40 40 40 E0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 5 0 BBX 4 13 0 -3 BITMAP 10 00 00 30 10 10 10 10 10 10 90 90 E0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP C0 40 40 4E 4C 58 60 58 4C E7 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 1 0 BITMAP C0 40 40 40 40 40 40 40 40 E0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 13 0 BBX 13 7 0 0 BITMAP DCE0 6310 4210 4210 4210 4210 E738 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 1 0 BITMAP DC 62 42 42 42 42 E7 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 38 44 82 82 82 44 38 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 -3 BITMAP DE 63 41 41 41 42 7C 40 40 E0 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 -3 BITMAP 3E 42 82 82 82 C6 7A 02 02 07 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 0 0 BITMAP F8 48 48 40 40 40 E0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 78 88 88 70 88 88 F0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 5 0 BBX 4 9 1 0 BITMAP 40 40 F0 40 40 40 40 40 70 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 0 0 BITMAP C6 42 42 42 42 46 3B ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 0 0 BITMAP E3 43 22 24 14 18 08 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 11 0 BBX 11 7 0 0 BITMAP E460 4460 4E40 2A40 2980 3180 1100 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 0 0 BITMAP E7 62 34 18 2C 46 E7 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 -3 BITMAP F3 43 22 26 14 1C 18 08 10 70 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP FC 88 10 20 20 44 FC ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 5 0 BBX 4 13 0 -3 BITMAP 30 40 40 40 40 40 80 40 40 40 40 40 30 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 3 0 BBX 1 13 1 -3 BITMAP 80 80 80 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 5 0 BBX 4 13 1 -3 BITMAP C0 20 20 20 20 20 10 20 20 20 20 20 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 9 0 BBX 8 3 0 2 BITMAP 61 99 86 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 4 0 BBX 1 10 1 -3 BITMAP 80 00 00 80 80 80 80 80 80 80 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 1 0 BITMAP 10 1C 74 94 90 90 90 50 3C 10 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 9 0 BBX 5 10 2 0 BITMAP 38 48 48 40 40 E0 40 40 40 F8 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 0 1 BITMAP 81 5A 24 42 42 66 5A 81 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP F380 6300 1600 0C00 3E00 0800 3E00 0800 0800 1C00 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 3 0 BBX 1 13 1 -3 BITMAP 80 80 80 80 80 80 00 80 80 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 1 -3 BITMAP 7C C4 84 80 60 98 84 44 38 04 84 C4 F8 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 8 0 BBX 4 1 2 9 BITMAP 90 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP 1E00 6180 4E80 9240 9040 9040 9840 4E80 6180 1E00 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 6 0 BBX 6 5 0 5 BITMAP F8 88 78 88 FC ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 24 28 58 D0 58 28 24 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 9 0 BBX 8 4 0 2 BITMAP FF 01 01 01 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 1 4 BITMAP E0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 9 0 BBX 7 6 1 4 BITMAP 78 FC AA B2 6E 38 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 8 0 BBX 4 1 2 9 BITMAP F0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 4 0 BBX 3 2 2 8 BITMAP E0 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 0 0 BITMAP 0800 0800 FF80 0800 0800 0800 0000 FF80 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 -8 4 BITMAP E0 90 10 60 C0 F0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 -8 4 BITMAP F0 90 60 30 90 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 8 0 BBX 3 1 3 9 BITMAP E0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 -3 BITMAP C6 42 42 42 42 46 7B 40 40 40 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 1 -3 BITMAP 7C F4 F4 F4 74 34 14 14 14 14 14 14 14 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 9 0 BBX 1 1 4 4 BITMAP 80 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 8 0 BBX 2 3 3 -3 BITMAP C0 40 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 -8 4 BITMAP C0 40 40 40 40 E0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 0 5 BITMAP 70 88 88 88 70 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 90 50 68 2C 68 50 90 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 3 0 BITMAP C180 4100 4200 4400 4D80 FB80 1680 27C0 4080 C1C0 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 3 0 BITMAP C180 4100 4200 4400 4F00 FC80 1080 2300 4600 C780 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 3 0 BITMAP F180 9100 6200 3400 9D80 FB80 1680 27C0 4080 C1C0 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 -3 BITMAP 20 00 20 20 20 40 80 88 88 78 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 1C00 0000 0800 0C00 1C00 1400 1200 2200 3F00 4100 4180 E3C0 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 0E00 0000 0800 0C00 1C00 1400 1200 2200 3F00 4100 4180 E3C0 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 3E00 0000 0800 0C00 1C00 1400 1200 2200 3F00 4100 4180 E3C0 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 1F00 0000 0800 0C00 1C00 1400 1200 2200 3F00 4100 4180 E3C0 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 1200 0000 0800 0C00 1C00 1400 1200 2200 3F00 4100 4180 E3C0 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP 0C00 1200 0C00 0800 0C00 1C00 1400 1200 2200 3F00 4100 4180 E3C0 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 13 0 BBX 13 10 0 0 BITMAP 03F8 0308 0700 0D10 09F0 1110 3F00 2100 4108 E3F8 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 -3 BITMAP 1F 61 41 80 80 80 80 40 61 3E 08 08 18 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 8 0 BBX 6 12 1 0 BITMAP 70 00 FC 44 40 48 78 48 40 40 44 FC ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 8 0 BBX 6 12 1 0 BITMAP 38 00 FC 44 40 48 78 48 40 40 44 FC ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 8 0 BBX 6 12 1 0 BITMAP 7C 00 FC 44 40 48 78 48 40 40 44 FC ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 8 0 BBX 6 12 1 0 BITMAP 48 00 FC 44 40 48 78 48 40 40 44 FC ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 5 0 BBX 3 12 1 0 BITMAP E0 00 E0 40 40 40 40 40 40 40 40 E0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 5 0 BBX 3 12 1 0 BITMAP E0 00 E0 40 40 40 40 40 40 40 40 E0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 5 0 BBX 5 12 2 0 BITMAP F8 00 70 20 20 20 20 20 20 20 20 70 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 5 0 BBX 4 12 2 0 BITMAP 90 00 70 20 20 20 20 20 20 20 20 70 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP FE00 4300 4180 4080 F080 4080 4080 4080 4100 FE00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP 3E00 0000 C380 6100 7100 5100 4900 4D00 4500 4300 4100 E100 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP 1C00 0000 3E00 6300 4100 8080 8080 8080 8080 4100 6300 3E00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP 1C00 0000 3E00 6300 4100 8080 8080 8080 8080 4100 6300 3E00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP 3E00 0000 3E00 6300 4100 8080 8080 8080 8080 4100 6300 3E00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP 3E00 0000 3E00 6300 4100 8080 8080 8080 8080 4100 6300 3E00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP 2400 0000 3E00 6300 4100 8080 8080 8080 8080 4100 6300 3E00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 0 0 BITMAP 81 42 24 18 18 24 42 81 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 3E80 6180 4180 8680 8C80 9880 B080 E100 4300 BE00 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 1C00 0000 E380 4100 4100 4100 4100 4100 4100 4100 6300 3E00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 1C00 0000 E380 4100 4100 4100 4100 4100 4100 4100 6300 3E00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 3E00 0000 E380 4100 4100 4100 4100 4100 4100 4100 6300 3E00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 1200 0000 E380 4100 4100 4100 4100 4100 4100 4100 6300 3E00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 0 0 BITMAP 1C00 0000 F380 6100 2300 1200 0C00 0800 0800 0800 0800 1C00 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP E0 40 7C 42 42 42 44 78 40 E0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 9 0 BBX 6 11 1 0 BITMAP 30 48 48 50 50 50 48 4C 44 54 F8 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 0 0 BITMAP 38 00 78 84 04 7C 84 84 7E ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 0 0 BITMAP 38 00 78 84 04 7C 84 84 7E ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 0 0 BITMAP 7C 00 78 84 04 7C 84 84 7E ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 0 0 BITMAP 7C 00 78 84 04 7C 84 84 7E ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 0 0 BITMAP 48 00 78 84 04 7C 84 84 7E ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 0 BITMAP 30 48 00 78 84 04 7C 84 84 7E ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 11 0 BBX 10 7 1 0 BITMAP 7B80 8C40 0840 7FC0 8800 8C40 7380 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 -3 BITMAP 3C 44 84 80 80 40 3C 10 10 30 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 70 00 78 C4 84 FC 80 44 38 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 38 00 78 C4 84 FC 80 44 38 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 7C 00 78 C4 84 FC 80 44 38 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 48 00 78 C4 84 FC 80 44 38 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 4 0 BBX 3 9 1 0 BITMAP E0 00 C0 40 40 40 40 40 E0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 4 0 BBX 3 9 1 0 BITMAP E0 00 C0 40 40 40 40 40 E0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 4 0 BBX 5 9 2 0 BITMAP F8 00 60 20 20 20 20 20 70 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 2 0 BITMAP 90 00 60 20 20 20 20 20 70 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP FC 38 4C 3C 46 82 82 82 44 38 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 7C 00 DC 62 42 42 42 42 E7 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 38 00 38 44 82 82 82 44 38 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 38 00 38 44 82 82 82 44 38 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 7C 00 38 44 82 82 82 44 38 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 7C 00 38 44 82 82 82 44 38 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 48 00 38 44 82 82 82 44 38 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 0 BITMAP 10 00 00 FE 00 00 10 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 3A 46 8E 92 E2 C4 B8 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 0 0 BITMAP 38 00 C6 42 42 42 42 46 3B ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 0 0 BITMAP 1C 00 C6 42 42 42 42 46 3B ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 0 0 BITMAP 3E 00 C6 42 42 42 42 46 3B ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 0 0 BITMAP 24 00 C6 42 42 42 42 46 3B ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 0 -3 BITMAP 1C 00 F3 43 22 26 14 1C 18 08 10 70 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 0 -3 BITMAP C0 40 40 5E 63 41 41 41 42 7C 40 40 E0 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 0 -3 BITMAP 24 00 F3 43 22 26 14 1C 18 08 10 70 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 3E 42 42 42 FA 42 42 42 42 42 E7 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 1 3 BITMAP FC ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 -3 BITMAP 10 10 10 10 FE 10 10 10 10 10 10 10 10 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 1 0 BITMAP 7C 00 FE 84 0C 08 10 10 20 40 42 FE ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 12 7 0 0 BITMAP 3DE0 4310 8210 83F0 8200 C300 7DF0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 0 0 BITMAP 2400 0000 F380 6100 2300 1200 0C00 0800 0800 0800 0800 1C00 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 7 1 0 BITMAP C0 40 40 40 40 40 E0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 5 10 0 0 BITMAP E0 20 20 28 38 E0 20 20 20 F8 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 0 BITMAP E0 40 40 50 70 C0 C0 40 42 FE ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 -3 BITMAP 10 10 10 10 FE 10 10 10 10 FE 10 10 10 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 38 4A 48 40 FE 42 42 42 42 42 F7 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 7 1 0 BITMAP 80 C0 40 20 40 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 13 10 1 0 BITMAP 3DF8 6308 4108 8110 81F0 8110 8100 4108 6308 3DF8 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 12 1 1 3 BITMAP FFF0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 1 2 9 BITMAP F8 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 2 1 3 -3 BITMAP C0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 4 1 3 9 BITMAP F0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 7 1 0 BITMAP 20 40 40 80 40 60 20 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 1 1 4 9 BITMAP 80 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 1 2 9 BITMAP F8 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 4 4 2 2 BITMAP 60 F0 F0 60 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 1 2 9 BITMAP F8 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 1 2 9 BITMAP F8 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 3 1 7 BITMAP B0 A0 B0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 3 0 7 BITMAP E0 E0 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP F8 00 78 88 88 70 88 88 F0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 4 3 4 9 BITMAP 60 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 2 5 1 -3 BITMAP C0 C0 40 40 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 -3 BITMAP 0E 12 22 20 20 F0 60 60 40 40 40 C0 C0 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 12 5 0 5 BITMAP FF70 2360 22E0 22A0 7630 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 9 10 -3 0 BITMAP 0180 0100 0200 0400 0C00 1800 1000 2000 4000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 3 1 3 9 BITMAP E0 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 10 0 0 BITMAP 6180 9100 9200 9400 6C00 1B18 14A4 24A4 44A4 C318 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 9 1 3 0 BITMAP 8880 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 3 1 7 BITMAP 90 90 90 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 12 1 0 BITMAP F8 00 7C 84 84 C0 60 18 04 84 8C F8 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 5 1 -3 BITMAP 90 90 90 90 90 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP F8 00 FC 88 10 20 20 44 FC ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lubR18.bdf100644 1750 1750 73316 5413747503 15032 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-Medium-R-Normal--18-180-75-75-P-103-ISO8859-1 SIZE 18 72 72 FONTBOUNDINGBOX 29 21 -11 -4 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 18 POINT_SIZE 180 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 103 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 16 FONT_DESCENT 4 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 6 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 5 0 BBX 2 13 1 0 BITMAP C0 C0 C0 C0 C0 C0 80 80 80 80 00 C0 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 7 0 BBX 6 4 0 9 BITMAP CC CC 48 48 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 0480 0C80 0880 0900 7FE0 0900 1100 1200 FFC0 1200 2200 2600 2400 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 11 0 BBX 7 15 2 -1 BITMAP 10 3E D2 D2 D0 D0 70 38 1C 16 16 96 94 F8 10 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 12 0 BBX 13 13 0 0 BITMAP 7818 C430 8460 84C0 8480 7900 02F0 0588 0908 1908 3108 6108 C0F0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 1 0 BITMAP 1E00 3300 3300 3300 1E00 3800 4CE0 CC40 C640 C740 C380 6380 3CE0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 5 0 BBX 2 5 1 8 BITMAP C0 C0 40 40 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 6 0 BBX 4 16 1 -3 BITMAP 10 20 20 40 40 C0 C0 C0 C0 C0 C0 40 40 20 20 10 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 6 0 BBX 4 16 1 -3 BITMAP 80 40 40 20 20 30 30 30 30 30 30 20 20 40 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 6 BITMAP 10 10 D6 28 28 28 44 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 11 0 BBX 11 11 0 0 BITMAP 0400 0400 0400 0400 0400 FFE0 0400 0400 0400 0400 0400 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 5 0 BBX 2 5 1 -3 BITMAP C0 C0 40 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 11 0 BBX 10 1 0 5 BITMAP FFC0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 5 0 BBX 2 2 1 0 BITMAP C0 C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 9 0 BBX 9 16 0 -3 BITMAP 0080 0100 0100 0200 0200 0400 0400 0800 0800 1000 1000 2000 2000 4000 4000 8000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 1C00 6300 4100 C180 C180 C180 C180 C180 C180 C180 4100 6300 1C00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 11 0 BBX 6 13 2 0 BITMAP F0 30 30 30 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 1 0 BITMAP 7C C6 83 83 03 06 0C 18 20 40 40 FF FF ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 1 0 BITMAP FC 87 83 03 03 04 7C 07 03 03 83 C6 FC ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 0 0 BITMAP 0300 0700 0F00 0B00 1300 2300 6300 C300 FFC0 0300 0300 0300 0FC0 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 11 0 BBX 7 13 2 0 BITMAP FE FE 80 80 80 F0 0C 06 06 06 86 8C F8 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 1F00 2100 6100 C000 C000 DE00 E300 C180 C180 C180 4180 6300 1E00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 2 0 BITMAP FF FF 02 02 04 0C 08 10 30 30 20 60 60 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 3E00 6380 C180 C180 E300 3A00 3E00 4700 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 3C00 6300 C100 C180 C180 C180 6380 3D80 0180 0180 4300 4200 7C00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 5 0 BBX 2 9 1 0 BITMAP C0 C0 00 00 00 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 5 0 BBX 2 12 1 -3 BITMAP C0 C0 00 00 00 00 00 C0 C0 40 40 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 11 0 BBX 10 11 0 0 BITMAP 0040 0180 0600 0C00 3000 C000 3000 0C00 0700 0180 0040 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 11 0 BBX 10 4 0 3 BITMAP FFC0 0000 0000 FFC0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 11 0 BBX 10 11 0 0 BITMAP 8000 6000 3800 0C00 0300 00C0 0300 0C00 1800 6000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP F8 8E 86 06 04 0C 18 30 30 30 00 30 30 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 16 0 BBX 15 13 0 0 BITMAP 03F0 0C18 1004 23E2 4442 8442 88C2 88C6 894C 8678 4000 3080 1F00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 0 0 BITMAP 0200 0600 0700 0700 0980 0980 11C0 10C0 3FC0 2060 2060 4030 E0F8 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 0 0 BITMAP FF00 3380 3180 3180 3180 3200 3F00 3380 30C0 30C0 30C0 31C0 FF00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 1F80 30C0 6040 E040 C000 C000 C000 C000 C000 6000 6000 3040 1F80 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 0 0 BITMAP FF80 3060 3030 3018 3018 3018 3018 3018 3018 3010 3030 3060 FF80 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP FFC0 3040 3040 3000 3000 3100 3F00 3100 3000 3000 3040 3040 FFC0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 0 0 BITMAP FF80 3080 3080 3000 3000 3100 3F00 3100 3000 3000 3000 3000 F800 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 1 0 BITMAP 0FC0 3860 6020 6000 C000 C000 C000 C1F8 C060 6060 6060 3860 0FC0 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 14 0 BBX 14 13 0 0 BITMAP FCFC 3030 3030 3030 3030 3030 3FF0 3030 3030 3030 3030 3030 FCFC ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 6 0 BBX 6 13 0 0 BITMAP FC 30 30 30 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 8 0 BBX 8 16 0 -3 BITMAP 3F 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 8C 98 F0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 1 0 BITMAP FCE0 30C0 3180 3300 3600 3400 3C00 3600 3700 3380 31C0 30E0 F9F0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP FC00 3000 3000 3000 3000 3000 3000 3000 3000 3000 3040 3040 FFC0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 15 0 BBX 15 13 0 0 BITMAP F01E 3818 3838 3838 2C58 2C58 2658 2698 2798 2318 2318 2318 F87E ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 14 0 BBX 14 13 0 0 BITMAP F07C 3010 3810 2C10 2E10 2710 2390 2190 20D0 20F0 2070 2030 F810 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 1 0 BITMAP 1F80 30C0 6060 6060 C030 C030 C030 C030 C030 6060 6060 30C0 1F80 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP FF00 3180 30C0 30C0 30C0 30C0 3380 3F00 3000 3000 3000 3000 FC00 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 14 0 BBX 14 16 1 -3 BITMAP 1F80 30C0 6060 6060 C030 C030 C030 C030 C030 6070 6060 30C0 1F80 0180 0070 001C ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 0 0 BITMAP FF00 3180 30C0 30C0 30C0 3180 3F00 3300 3300 3180 31C0 30E0 F870 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 3E 62 C2 C0 E0 78 3C 0E 03 03 83 86 FC ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 0 0 BITMAP FFF0 8610 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 1F80 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 0 0 BITMAP FCF8 3020 3020 3020 3020 3020 3020 3020 3020 3020 3020 1840 0F80 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 0 0 BITMAP F838 6010 3030 3020 1820 1840 1C40 0C80 0C80 0680 0700 0300 0200 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 17 0 BBX 17 13 0 0 BITMAP F88780 60C100 70C200 31C200 31E200 316400 1A6400 1A6400 1A3C00 1C3800 0C3800 0C1800 081000 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 0 0 BITMAP F8F0 7060 3840 1880 0D00 0F00 0700 0B00 1B80 1180 20C0 40E0 F1F0 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 0 0 BITMAP F870 7020 3040 38C0 1C80 0D00 0F00 0600 0600 0600 0600 0600 1F80 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP FF80 8380 8300 0600 0E00 0C00 1C00 1800 3000 7000 6080 C080 FF80 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 6 0 BBX 4 16 1 -3 BITMAP F0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 F0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 9 0 BBX 9 16 0 -3 BITMAP 8000 4000 4000 2000 2000 1000 1000 0800 0800 0400 0400 0200 0200 0100 0100 0080 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 6 0 BBX 4 16 0 -3 BITMAP F0 30 30 30 30 30 30 30 30 30 30 30 30 30 30 F0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 11 0 BBX 11 11 0 2 BITMAP 0400 0400 0A00 0A00 1100 1100 2080 2080 4040 4040 8020 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 9 0 BBX 7 1 1 -1 BITMAP FE ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 5 0 BBX 2 5 1 8 BITMAP 40 80 80 C0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 10 0 BBX 8 9 1 0 BITMAP 7C 46 46 06 3E E6 C6 C6 7B ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP F000 3000 3000 3000 3780 38C0 3060 3060 3060 3060 3060 38C0 2780 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 3E 62 C2 C0 C0 C0 C0 60 3E ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 1 0 BITMAP 0780 0180 0180 0180 3D80 6380 C180 C180 C180 C180 C180 6380 3DE0 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 10 0 BBX 8 9 1 0 BITMAP 3C 62 C3 C3 FF C0 C0 61 3E ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 7 0 BBX 7 14 1 0 BITMAP 1E 32 32 30 30 FC 30 30 30 30 30 30 30 F8 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 -3 BITMAP 3FC0 7600 6300 6300 2300 1700 7E00 6000 3F80 C180 C180 7E00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 11 0 BBX 12 13 0 0 BITMAP F000 3000 3000 3000 3780 38C0 30C0 30C0 30C0 30C0 30C0 30C0 FFF0 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 6 0 BBX 6 13 0 0 BITMAP 30 30 00 00 F0 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 6 0 BBX 5 16 0 -3 BITMAP 18 18 00 00 38 18 18 18 18 18 18 18 18 98 98 F0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP F000 3000 3000 3000 3180 3100 3200 3400 3C00 3600 3700 3380 F9C0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 6 0 BBX 6 13 0 0 BITMAP F0 30 30 30 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 17 0 BBX 18 9 0 0 BITMAP F79E00 38E300 30C300 30C300 30C300 30C300 30C300 30C300 FFFFC0 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 11 0 BBX 12 9 0 0 BITMAP F780 38C0 30C0 30C0 30C0 30C0 30C0 30C0 FFF0 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 11 0 BBX 9 9 1 0 BITMAP 3E00 6300 C180 C180 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 0 -3 BITMAP F780 38C0 3060 3060 3060 3060 3060 38C0 3780 3000 3000 FC00 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 11 0 BBX 11 12 1 -3 BITMAP 3D80 6380 C180 C180 C180 C180 C180 6380 3D80 0180 0180 07E0 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP F7 39 31 30 30 30 30 30 FC ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 7C C4 C4 F0 7C 9E 86 C6 7C ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 7 0 BBX 6 12 1 0 BITMAP 60 60 60 FC 60 60 60 60 60 60 60 3C ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 11 0 BBX 12 9 0 0 BITMAP F3C0 30C0 30C0 30C0 30C0 30C0 30C0 31C0 1EF0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 0 0 BITMAP F1C0 6080 6080 3100 3100 1A00 1E00 0C00 0C00 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 14 0 BBX 14 9 0 0 BITMAP F11C 6308 6388 7398 35D0 34D0 38E0 1860 1060 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 0 0 BITMAP F1C0 7180 3300 1A00 0C00 1600 2700 4380 E3C0 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 -3 BITMAP F1C0 6080 7080 3100 3900 1A00 1E00 0C00 0C00 0800 1800 7000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 11 0 BBX 8 9 1 0 BITMAP FF 86 8E 1C 18 30 71 E1 FF ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 6 0 BBX 5 16 0 -3 BITMAP 18 20 20 20 20 20 20 20 C0 20 20 20 20 20 20 18 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 4 0 BBX 1 16 2 -3 BITMAP 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 6 0 BBX 5 16 1 -3 BITMAP C0 20 20 20 20 20 20 20 18 20 20 20 20 20 20 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 11 0 BBX 11 4 0 3 BITMAP 7020 8C20 8620 81C0 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 5 0 BBX 2 12 1 -3 BITMAP C0 C0 00 80 80 80 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 11 0 BBX 7 13 2 0 BITMAP 08 0E 3A 6A C8 C8 C8 C8 C8 48 6A 3E 08 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 2 0 BITMAP 0F 11 31 30 30 30 FC 30 30 30 20 40 FF ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 11 0 BBX 10 11 0 1 BITMAP 8040 5E80 6180 6180 4080 4080 4080 6180 3300 5E80 8040 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 11 0 BBX 12 13 0 0 BITMAP F8F0 7060 38C0 1D80 0F00 3FC0 0600 0600 3FC0 0600 0600 0600 1F80 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 4 0 BBX 1 16 2 -3 BITMAP 80 80 80 80 80 80 80 00 00 80 80 80 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 11 0 BBX 8 16 1 -3 BITMAP 3E E2 C2 C0 60 38 DE C6 E2 7A 3C 0E 03 83 C7 7C ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 11 0 BBX 5 2 3 11 BITMAP D8 D8 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 15 0 BBX 15 13 0 0 BITMAP 0FE0 1830 600C 43C4 C442 8802 8802 8802 C442 43C4 600C 1830 0FE0 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 6 BITMAP 7C 4C 0C 7C CC CC 76 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 10 0 BBX 8 7 1 1 BITMAP 11 22 64 CC 64 22 11 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 11 0 BBX 10 4 0 3 BITMAP FFC0 0040 0040 0040 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 6 0 BBX 4 1 1 5 BITMAP F0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 11 0 BBX 7 8 2 5 BITMAP 38 44 FA AA AA B2 6C 38 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 11 0 BBX 5 1 3 12 BITMAP F8 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 1 10 BITMAP E0 A0 E0 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 11 0 BBX 11 11 0 0 BITMAP 0400 0400 0400 0400 FFE0 0400 0400 0400 0000 0000 FFE0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 -10 4 BITMAP 70 88 88 08 10 20 40 80 F8 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 -10 4 BITMAP F0 88 08 08 70 08 08 88 F0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 11 0 BBX 4 3 4 10 BITMAP 30 40 80 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 11 0 BBX 12 12 0 -3 BITMAP F3C0 30C0 30C0 30C0 30C0 30C0 30C0 31C0 3EF0 3000 3000 3000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 11 0 BBX 7 16 1 -3 BITMAP 7E FA FA FA FA 7A 1A 0A 0A 0A 0A 0A 0A 0A 0A 0A ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 11 0 BBX 2 2 4 4 BITMAP C0 C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 11 0 BBX 3 3 4 -3 BITMAP C0 60 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 7 0 BBX 3 9 -11 4 BITMAP C0 40 40 40 40 40 40 40 E0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 0 6 BITMAP 38 6C C6 C6 C6 6C 38 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 10 0 BBX 8 7 1 1 BITMAP 88 44 26 33 26 44 88 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 3 0 BITMAP C060 4040 4080 4100 4360 4260 44A0 4920 FB20 13F0 2020 4020 C070 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 14 0 BBX 11 13 3 0 BITMAP C060 4040 4080 4100 43C0 4220 4620 4820 F840 1080 2100 4200 C3E0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 4 0 BITMAP F030 8820 0840 0880 71B0 0930 0A50 8C90 FD90 09F8 1010 2010 6038 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 -4 BITMAP 18 18 00 18 18 18 30 60 40 C0 C2 E2 3E ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 0 0 BITMAP 0C00 0200 0100 0000 0200 0600 0700 0700 0980 0980 11C0 10C0 3FC0 2060 2060 4030 E0F8 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 0 0 BITMAP 0180 0200 0400 0000 0200 0600 0700 0700 0980 0980 11C0 10C0 3FC0 2060 2060 4030 E0F8 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 0 0 BITMAP 0600 0900 1080 0000 0200 0600 0700 0700 0980 0980 11C0 10C0 3FC0 2060 2060 4030 E0F8 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 13 0 BBX 13 16 0 0 BITMAP 0640 0980 0000 0200 0600 0700 0700 0980 0980 11C0 10C0 3FC0 2060 2060 4030 E0F8 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 13 0 BBX 13 16 0 0 BITMAP 0D80 0D80 0000 0200 0600 0700 0700 0980 0980 11C0 10C0 3FC0 2060 2060 4030 E0F8 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 0 0 BITMAP 0700 0500 0700 0000 0200 0600 0700 0700 0980 0980 11C0 10C0 3FC0 2060 2060 4030 E0F8 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 17 0 BBX 16 13 0 0 BITMAP 00FF 01E1 0161 0360 0660 0462 087E 0860 1FE0 2060 2060 4061 E1FF ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 12 0 BBX 10 16 1 -3 BITMAP 1F80 30C0 6040 E040 C000 C000 C000 C000 C000 6000 6000 3040 1F80 0400 0600 0E00 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 10 0 BBX 10 17 0 0 BITMAP 1800 0400 0200 0000 FFC0 3040 3040 3000 3000 3100 3F00 3100 3000 3000 3040 3040 FFC0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 10 0 BBX 10 17 0 0 BITMAP 0600 0800 1000 0000 FFC0 3040 3040 3000 3000 3100 3F00 3100 3000 3000 3040 3040 FFC0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 10 0 BBX 10 17 0 0 BITMAP 0C00 1200 2100 0000 FFC0 3040 3040 3000 3000 3100 3F00 3100 3000 3000 3040 3040 FFC0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 10 0 BBX 10 16 0 0 BITMAP 1B00 1B00 0000 FFC0 3040 3040 3000 3000 3100 3F00 3100 3000 3000 3040 3040 FFC0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 6 0 BBX 6 17 0 0 BITMAP 60 10 08 00 FC 30 30 30 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 6 0 BBX 6 17 0 0 BITMAP 18 20 40 00 FC 30 30 30 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 6 0 BBX 6 17 0 0 BITMAP 30 48 84 00 FC 30 30 30 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 6 0 BBX 6 16 0 0 BITMAP D8 D8 00 FC 30 30 30 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 0 0 BITMAP FFC0 3060 3030 3018 3018 3018 FE18 3018 3018 3010 3030 3060 FF80 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 14 0 BBX 14 16 0 0 BITMAP 0640 0980 0000 F07C 3010 3810 2C10 2E10 2710 2390 2190 20D0 20F0 2070 2030 F810 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 1 0 BITMAP 0C00 0200 0100 0000 1F80 30C0 6060 6060 C030 C030 C030 C030 C030 6060 6060 30C0 1F80 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 1 0 BITMAP 0300 0400 0800 0000 1F80 30C0 6060 6060 C030 C030 C030 C030 C030 6060 6060 30C0 1F80 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 1 0 BITMAP 0600 0900 1080 0000 1F80 30C0 6060 6060 C030 C030 C030 C030 C030 6060 6060 30C0 1F80 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 14 0 BBX 12 16 1 0 BITMAP 0C80 1300 0000 1F80 30C0 6060 6060 C030 C030 C030 C030 C030 6060 6060 30C0 1F80 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 14 0 BBX 12 16 1 0 BITMAP 1B00 1B00 0000 1F80 30C0 6060 6060 C030 C030 C030 C030 C030 6060 6060 30C0 1F80 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 11 0 BBX 10 11 0 0 BITMAP 8040 4080 2100 3300 1E00 0C00 1E00 1200 2100 4080 8040 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 1 0 BITMAP 1F10 30E0 6060 60F0 C1B0 C330 C630 CC30 C830 F060 6060 70C0 CF80 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 0 0 BITMAP 0C00 0200 0100 0000 FCF8 3020 3020 3020 3020 3020 3020 3020 3020 3020 3020 1840 0F80 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 0 0 BITMAP 0180 0200 0400 0000 FCF8 3020 3020 3020 3020 3020 3020 3020 3020 3020 3020 1840 0F80 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 0 0 BITMAP 0300 0480 0840 0000 FCF8 3020 3020 3020 3020 3020 3020 3020 3020 3020 3020 1840 0F80 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 13 0 BBX 13 16 0 0 BITMAP 0D80 0D80 0000 FCF8 3020 3020 3020 3020 3020 3020 3020 3020 3020 3020 1840 0F80 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 12 0 BBX 12 17 0 0 BITMAP 0300 0400 0800 0000 F870 7020 3040 38C0 1C80 0D00 0F00 0600 0600 0600 0600 0600 1F80 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP FC00 3000 3000 3F00 31C0 30C0 30C0 30C0 3180 3E00 3000 3000 FC00 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP 1E00 3300 3300 3300 3200 3400 3600 3600 3300 3380 3180 3080 3480 F700 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 30 08 04 00 7C 46 46 06 3E E6 C6 C6 7B ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 0C 10 20 00 7C 46 46 06 3E E6 C6 C6 7B ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 18 24 42 00 7C 46 46 06 3E E6 C6 C6 7B ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 32 4C 00 7C 46 46 06 3E E6 C6 C6 7B ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 6C 6C 00 7C 46 46 06 3E E6 C6 C6 7B ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 38 28 38 00 7C 46 46 06 3E E6 C6 C6 7B ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 15 0 BBX 12 9 1 0 BITMAP 79C0 4720 4630 0630 3FF0 E600 C600 C710 79E0 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 1 -3 BITMAP 3E 62 C2 C0 C0 C0 C0 60 3E 10 18 38 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 30 08 04 00 3C 62 C3 C3 FF C0 C0 61 3E ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 0C 10 20 00 3C 62 C3 C3 FF C0 C0 61 3E ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 18 24 42 00 3C 62 C3 C3 FF C0 C0 61 3E ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 36 36 00 3C 62 C3 C3 FF C0 C0 61 3E ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 6 0 BBX 6 13 0 0 BITMAP 60 10 08 00 F0 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 6 0 BBX 6 13 0 0 BITMAP 18 20 40 00 F0 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 6 0 BBX 6 13 0 0 BITMAP 30 48 84 00 F0 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 6 0 BBX 6 12 0 0 BITMAP D8 D8 00 F0 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP FC00 1800 3C00 4600 3F00 6300 C180 C180 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 11 0 BBX 12 12 0 0 BITMAP 0C80 1300 0000 F780 38C0 30C0 30C0 30C0 30C0 30C0 30C0 FFF0 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 3000 0800 0400 0000 3E00 6300 C180 C180 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 0600 0800 1000 0000 3E00 6300 C180 C180 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 1800 2400 4200 0000 3E00 6300 C180 C180 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP 3200 4C00 0000 3E00 6300 C180 C180 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP 3600 3600 0000 3E00 6300 C180 C180 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 0 0 BITMAP 0C00 0C00 0000 0000 FFC0 0000 0000 0C00 0C00 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 11 0 BBX 9 9 1 0 BITMAP 3C80 6300 C380 C580 C980 D180 E180 6300 DE00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 11 0 BBX 12 13 0 0 BITMAP 0C00 0200 0100 0000 F3C0 30C0 30C0 30C0 30C0 30C0 30C0 31C0 1EF0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 11 0 BBX 12 13 0 0 BITMAP 0300 0400 0800 0000 F3C0 30C0 30C0 30C0 30C0 30C0 30C0 31C0 1EF0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 11 0 BBX 12 13 0 0 BITMAP 0600 0900 1080 0000 F3C0 30C0 30C0 30C0 30C0 30C0 30C0 31C0 1EF0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 11 0 BBX 12 12 0 0 BITMAP 0D80 0D80 0000 F3C0 30C0 30C0 30C0 30C0 30C0 30C0 31C0 1EF0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 10 0 BBX 10 16 0 -3 BITMAP 0600 0800 1000 0000 F1C0 6080 7080 3100 3900 1A00 1E00 0C00 0C00 0800 1800 7000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 12 0 BBX 11 16 0 -3 BITMAP F000 3000 3000 3000 3780 38C0 3060 3060 3060 3060 3060 38C0 3780 3000 3000 FC00 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 10 0 BBX 10 15 0 -3 BITMAP 3600 3600 0000 F1C0 6080 7080 3100 3900 1A00 1E00 0C00 0C00 0800 1800 7000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP 1FC0 31C0 30C0 30C0 30C0 FCC0 30C0 30C0 30C0 30C0 30C0 30C0 30C0 FFF0 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 1 1 5 BITMAP FE ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 7 16 2 -3 BITMAP 18 18 18 10 10 FE 10 10 10 10 10 18 18 18 18 18 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 17 1 0 BITMAP 2100 1200 0C00 0000 FF80 8380 8300 0600 0E00 0C00 1C00 1800 3000 7000 6080 C080 FF80 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 15 9 1 0 BITMAP 3C78 63C4 C186 C186 C1FE C180 C180 63C2 3C7C ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 16 0 0 BITMAP 1B00 1B00 0000 F870 7020 3040 38C0 1C80 0D00 0F00 0600 0600 0600 0600 0600 1F80 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP F0 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 13 0 0 BITMAP F0 30 30 30 30 3C 70 F0 30 30 30 30 FC ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP FC00 3000 3000 3000 3400 3C00 3000 F000 3000 3000 3040 3040 FFC0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 7 16 2 -3 BITMAP 18 18 18 10 10 FE 10 10 10 10 10 FE 10 10 18 18 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP 1E00 32C0 32C0 3000 3000 FFC0 30C0 30C0 30C0 30C0 30C0 30C0 30C0 F9F0 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 1 BITMAP 80 40 60 30 20 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 16 13 1 0 BITMAP 1F7F 30E1 6061 6060 C060 C062 C07E C062 C060 6060 6061 30E1 1F7F ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 16 1 1 5 BITMAP FFFF ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 3 2 10 BITMAP 84 48 30 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 3 4 -3 BITMAP 40 80 E0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 5 3 4 10 BITMAP 38 50 A0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 1 BITMAP 10 20 40 C0 40 20 10 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 2 2 4 11 BITMAP C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 3 2 10 BITMAP 84 78 78 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 5 2 3 BITMAP 78 FC FC FC 78 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 2 2 11 BITMAP 64 98 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 3 2 10 BITMAP 30 48 84 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 5 2 8 BITMAP 48 90 90 D8 D8 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 1 9 BITMAP E0 E0 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP 84 48 30 00 7C C4 C4 F0 7C 9E 86 C6 7C ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 3 4 11 BITMAP E0 A0 E0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 2 5 1 -3 BITMAP C0 C0 40 40 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 16 2 -3 BITMAP 07 09 11 10 30 30 F8 20 60 60 60 60 40 C0 C0 C0 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 16 7 0 6 BITMAP FEE7 9276 107E 107A 105A 1052 7CC3 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 11 13 -4 0 BITMAP 0060 0040 0080 0100 0300 0200 0400 0800 1800 1000 2000 4000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 4 3 3 10 BITMAP C0 20 10 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 17 13 1 0 BITMAP 706000 C84000 888000 890000 8B0000 720000 05C700 0B2C80 1A2880 122880 222880 422880 C1C700 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 11 2 4 0 BITMAP CC60 CC60 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 5 2 8 BITMAP D8 D8 48 48 90 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 17 1 0 BITMAP 42 24 18 00 3E 62 C2 C0 E0 78 3C 0E 03 03 83 86 FC ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 5 2 -3 BITMAP D8 D8 48 48 90 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 1 0 BITMAP 42 24 18 00 FF 86 8E 1C 18 30 71 E1 FF ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lubR19.bdf100644 1750 1750 76103 5413747504 15031 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-Medium-R-Normal--19-190-75-75-P-109-ISO8859-1 SIZE 19 72 72 FONTBOUNDINGBOX 32 22 -12 -4 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 19 POINT_SIZE 190 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH "109" CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." FONT_ASCENT 17 FONT_DESCENT 5 DEFAULT_CHAR 0 ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 6 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 5 0 BBX 2 14 2 0 BITMAP C0 C0 C0 C0 C0 C0 C0 80 80 80 00 00 C0 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 7 0 BBX 6 4 1 10 BITMAP CC CC 48 48 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP 0440 0440 0480 0880 7FF0 0880 0900 1100 FFE0 1100 1200 2200 2200 2200 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 12 0 BBX 7 17 2 -2 BITMAP 10 3E D2 D2 D0 D0 F0 78 1C 1E 16 16 96 9C F8 10 10 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 13 0 BBX 13 14 0 0 BITMAP 7818 C430 8420 8440 8480 8500 7B00 06F0 0588 0908 1108 2108 6108 C0F0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 13 0 BBX 13 14 0 0 BITMAP 0F80 1CC0 18C0 18C0 1880 0D00 3E00 6738 C310 C390 C1D0 E0E0 70E0 3F78 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 5 0 BBX 2 5 2 9 BITMAP C0 C0 40 40 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 6 0 BBX 4 18 1 -4 BITMAP 10 20 20 60 40 C0 C0 C0 C0 C0 C0 C0 C0 40 60 20 20 10 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 6 0 BBX 4 18 1 -4 BITMAP 80 40 40 60 20 30 30 30 30 30 30 30 30 20 60 40 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 7 BITMAP 10 10 D6 28 28 28 44 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 0 0 BITMAP 0400 0400 0400 0400 0400 0400 FFE0 0400 0400 0400 0400 0400 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 5 0 BBX 2 7 2 -4 BITMAP C0 C0 C0 40 40 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 12 0 BBX 11 1 0 5 BITMAP FFE0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 5 0 BBX 2 2 2 0 BITMAP C0 C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 10 0 BBX 10 18 0 -4 BITMAP 0040 0080 0080 0100 0100 0200 0200 0400 0400 0800 0800 1000 1000 2000 2000 4000 4000 8000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP 1E00 2100 6180 4080 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 4080 6180 2100 1E00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 12 0 BBX 8 14 2 0 BITMAP F8 18 18 18 18 18 18 18 18 18 18 18 18 FF ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 12 0 BBX 8 14 2 0 BITMAP 7C C6 83 83 03 03 06 0C 10 20 40 40 FF FF ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 12 0 BBX 8 14 2 0 BITMAP FC 86 83 03 03 06 78 06 03 03 03 83 C6 FC ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 0 0 BITMAP 0300 0700 0700 0B00 1300 3300 2300 4300 C300 FFC0 0300 0300 0300 0FC0 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 12 0 BBX 7 14 2 0 BITMAP FE FE 80 80 80 F0 1C 06 06 06 06 86 8C F8 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 1 0 BITMAP 1F00 2100 6100 4000 C000 DE00 E300 C180 C180 C180 C180 6180 2300 1E00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 0 BITMAP FF80 FF80 0100 0300 0200 0400 0C00 0800 1800 3000 3000 2000 6000 6000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 1 0 BITMAP 3E00 6380 C180 C180 E180 7200 1C00 6F00 4300 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 1 0 BITMAP 3C00 6300 C300 C180 C180 C180 C180 6380 3D80 0180 0100 4300 4200 7C00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 5 0 BBX 2 10 2 0 BITMAP C0 C0 00 00 00 00 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 5 0 BBX 2 14 2 -4 BITMAP C0 C0 00 00 00 00 00 00 C0 C0 40 40 40 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 0 0 BITMAP 0020 00C0 0180 0600 1800 E000 6000 1800 0600 0180 00C0 0020 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 12 0 BBX 11 5 0 3 BITMAP FFE0 0000 0000 0000 FFE0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 0 0 BITMAP 8000 6000 3000 0C00 0300 00C0 00E0 0300 0C00 3000 6000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 9 0 BBX 7 14 1 0 BITMAP 78 CE 86 86 06 0C 08 10 30 30 00 00 30 30 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 17 0 BBX 15 14 1 0 BITMAP 03F0 0C18 1004 23E6 4442 4442 8842 88C2 88C4 894C C670 4000 3080 1F00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 14 0 BBX 14 14 0 0 BITMAP 0200 0300 0300 0580 0580 0980 08C0 10C0 1060 1FE0 2030 2030 4038 F07C ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 0 0 BITMAP FF00 3380 3180 3180 3180 3200 3F00 3380 31C0 30C0 30C0 30C0 3180 FF00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 1 0 BITMAP 0FC0 3860 6020 6020 C000 C000 C000 C000 C000 C000 6000 6000 3820 0FC0 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 15 0 BBX 13 14 0 0 BITMAP FF80 3060 3030 3030 3018 3018 3018 3018 3018 3018 3030 3030 3060 FF80 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP FFC0 3040 3040 3000 3000 3080 3F80 3080 3000 3000 3000 3020 3020 FFE0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 10 0 BBX 9 14 1 0 BITMAP FF80 3080 3080 3000 3000 3100 3F00 3100 3000 3000 3000 3000 3000 F800 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 1 0 BITMAP 0FC0 3860 6020 6020 C000 C000 C000 C000 C1F8 C060 6060 6060 3860 0FC0 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 0 0 BITMAP FCFC 3030 3030 3030 3030 3030 3FF0 3030 3030 3030 3030 3030 3030 FCFC ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 6 0 BBX 6 14 0 0 BITMAP FC 30 30 30 30 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 8 0 BBX 8 18 0 -4 BITMAP 3F 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 8C 98 F0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 13 0 BBX 13 14 0 0 BITMAP FCF0 3040 3080 3100 3200 3400 3C00 3E00 3700 3380 31C0 30C0 3070 F8F8 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 0 0 BITMAP FC00 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3040 3040 FFC0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 16 0 BBX 16 14 0 0 BITMAP F00F 380C 381C 3C1C 2C2C 2C2C 266C 264C 274C 238C 238C 210C 210C F83F ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 14 0 BBX 14 14 0 0 BITMAP F07C 3010 3810 3C10 2E10 2610 2310 2390 21D0 20D0 2070 2070 2030 F810 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 15 0 BBX 13 14 1 0 BITMAP 0F80 3060 6030 6030 C018 C018 C018 C018 C018 C018 6030 6030 3060 0F80 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 0 0 BITMAP FF00 3180 30C0 30C0 30C0 30C0 3380 3F00 3000 3000 3000 3000 3000 FC00 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 15 0 BBX 16 18 1 -4 BITMAP 0F80 3060 6030 6030 C018 C018 C018 C018 C018 C018 6030 6030 3060 0FC0 00C0 0070 001E 000F ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 13 0 BBX 13 14 0 0 BITMAP FF00 3180 30C0 30C0 30C0 3080 3100 3E00 3300 3180 31C0 30C0 30E0 F878 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 10 0 BBX 8 14 1 0 BITMAP 3E 62 C2 C0 C0 70 38 1E 07 03 83 83 C6 7C ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 0 0 BITMAP FFF0 8610 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 1F80 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 14 0 BBX 14 14 0 0 BITMAP FC7C 3010 3010 3010 3010 3010 3010 3010 3010 3010 3010 3010 1860 0FC0 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 13 0 BBX 13 14 0 0 BITMAP F838 6010 3010 3020 3820 1840 1840 0C40 0C80 0E80 0780 0700 0300 0200 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 18 0 BBX 18 14 0 0 BITMAP F843C0 60C080 30C100 30E100 31E100 316200 193200 193200 1A3400 0E1C00 0E1C00 0C1C00 0C0800 040800 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP F8F0 7060 3840 1880 1D80 0D00 0600 0700 0B00 1180 31C0 20C0 40E0 F1F0 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 13 0 BBX 13 14 0 0 BITMAP F878 6030 3020 3840 18C0 0C80 0F00 0700 0600 0600 0600 0600 0600 1F80 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 1 0 BITMAP FF80 8380 8300 0700 0600 0C00 0C00 1800 3800 3000 7000 6080 C080 FF80 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 6 0 BBX 4 18 1 -4 BITMAP F0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 F0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 10 0 BBX 10 18 0 -4 BITMAP 8000 4000 4000 2000 2000 1000 1000 0800 0800 0400 0400 0200 0200 0100 0100 0080 0080 0040 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 6 0 BBX 4 18 1 -4 BITMAP F0 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 F0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 0 2 BITMAP 0400 0400 0E00 0A00 1B00 1100 1100 2080 2080 4040 4040 8020 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 9 0 BBX 8 1 1 -2 BITMAP FF ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 5 0 BBX 2 5 2 9 BITMAP 40 80 80 C0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 0 BITMAP 3E00 4700 0300 0300 3F00 6300 C300 C300 E300 7D80 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 0 0 BITMAP F000 3000 3000 3000 3780 38C0 3060 3060 3060 3060 3060 3040 38C0 2780 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 1F 71 61 C0 C0 C0 C0 60 70 1F ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 0780 0180 0180 0180 3D80 6380 4180 C180 C180 C180 C180 C180 6380 3DE0 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 3C 62 C3 C3 FF C0 C0 60 71 1E ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 8 0 BBX 8 15 0 0 BITMAP 1F 31 31 30 30 FE 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 -4 BITMAP 1FE0 3300 6180 6180 6180 2180 1300 3E00 6000 3F80 40C0 C0C0 E180 3F00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP F000 3000 3000 3000 3780 38C0 30C0 30C0 30C0 30C0 30C0 30C0 30C0 FFF0 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 6 0 BBX 6 14 0 0 BITMAP 30 30 00 00 F0 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 7 0 BBX 5 18 0 -4 BITMAP 18 18 00 00 38 18 18 18 18 18 18 18 18 18 18 98 98 F0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP F000 3000 3000 3000 31C0 3180 3300 3600 3C00 3600 3700 3380 31C0 F8E0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 6 0 BBX 6 14 0 0 BITMAP F0 30 30 30 30 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 18 0 BBX 18 10 0 0 BITMAP F79E00 38E300 30C300 30C300 30C300 30C300 30C300 30C300 30C300 FFFFC0 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 12 0 BBX 12 10 0 0 BITMAP F780 38C0 30C0 30C0 30C0 30C0 30C0 30C0 30C0 FFF0 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 1E00 6180 6180 C0C0 C0C0 C0C0 C0C0 6180 6180 1E00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 0 -4 BITMAP F780 38C0 3060 3060 3060 3060 3060 3040 38C0 3780 3000 3000 3000 FC00 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 -4 BITMAP 3D80 6380 4180 C180 C180 C180 C180 C180 6380 3D80 0180 0180 0180 07E0 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP F7 39 31 30 30 30 30 30 30 FC ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 10 0 BBX 7 10 1 0 BITMAP 7C C4 C4 E0 78 3E 86 86 CE 7C ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 7 0 BBX 7 13 0 0 BITMAP 30 30 30 FE 30 30 30 30 30 30 30 30 1E ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 12 0 BBX 12 10 0 0 BITMAP F3C0 30C0 30C0 30C0 30C0 30C0 30C0 30C0 31C0 1EF0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 0 BITMAP F1C0 6080 6080 3100 3100 1B00 1A00 1E00 0C00 0C00 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 15 0 BBX 15 10 0 0 BITMAP F18E 6184 6184 72CC 32C8 34C8 3C70 1C70 1830 0820 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 0 0 BITMAP F9E0 70C0 3980 1900 0E00 0E00 1700 2380 41C0 E3E0 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 10 0 BBX 10 14 0 -4 BITMAP F1C0 6080 6080 3180 3100 1900 1A00 1E00 0C00 0C00 0800 0800 1800 7000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 11 0 BBX 8 10 2 0 BITMAP FF 86 8E 0C 18 38 30 61 E1 FF ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 7 0 BBX 5 18 1 -4 BITMAP 18 20 20 20 20 20 20 20 20 C0 20 20 20 20 20 20 20 18 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 5 0 BBX 1 18 2 -4 BITMAP 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 7 0 BBX 5 18 1 -4 BITMAP C0 20 20 20 20 20 20 20 20 18 20 20 20 20 20 20 20 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 12 0 BBX 11 5 0 3 BITMAP 7020 8820 8420 8220 81C0 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 5 0 BBX 2 14 2 -4 BITMAP C0 C0 00 00 80 80 80 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 12 0 BBX 8 14 1 0 BITMAP 08 08 1F 29 49 C8 C8 C8 C8 C8 69 3F 08 08 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 12 0 BBX 8 14 2 0 BITMAP 0F 11 31 30 30 30 30 FC 30 30 30 20 40 FF ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 1 1 BITMAP 8040 CCC0 5280 2100 4080 4080 4080 4080 2100 3300 5E80 8040 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP F8F0 7060 3840 1880 0D00 0E00 3FC0 0600 0600 3FC0 0600 0600 0600 1F80 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 5 0 BBX 1 18 2 -4 BITMAP 80 80 80 80 80 80 80 80 00 00 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 12 0 BBX 8 18 2 -4 BITMAP 3E 62 C2 C0 C0 70 7C CE C6 C2 F2 7C 1E 07 03 83 C7 7C ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 11 0 BBX 5 2 3 12 BITMAP D8 D8 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 16 0 BBX 15 14 1 0 BITMAP 07C0 1830 2008 43C4 C446 8802 8802 8802 8802 C446 43C4 2008 1830 07C0 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 6 BITMAP 78 4C 0C 7C EC CC CC 76 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 10 0 BBX 8 8 1 1 BITMAP 11 32 64 CC 4C 24 32 11 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 12 0 BBX 11 5 0 3 BITMAP FFE0 0020 0020 0020 0020 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 6 0 BBX 4 1 1 6 BITMAP F0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 12 0 BBX 7 9 2 5 BITMAP 38 44 FE AA AA B2 EE 44 38 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 11 0 BBX 5 1 3 13 BITMAP F8 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 1 11 BITMAP E0 A0 E0 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 0 0 BITMAP 0400 0400 0400 0400 FFE0 0400 0400 0400 0400 0000 0000 FFE0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 -12 5 BITMAP 70 88 88 08 10 20 40 80 F8 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 -12 5 BITMAP F0 88 08 08 70 08 08 88 F0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 11 0 BBX 4 3 4 11 BITMAP 30 40 80 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 -4 BITMAP F3C0 30C0 30C0 30C0 30C0 30C0 30C0 30C0 31C0 3EF0 3000 3000 3000 3000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 12 0 BBX 8 18 1 -4 BITMAP 7F F9 F9 F9 F9 79 79 09 09 09 09 09 09 09 09 09 09 09 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 12 0 BBX 2 2 5 5 BITMAP C0 C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 11 0 BBX 3 4 5 -4 BITMAP C0 40 20 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 -12 5 BITMAP E0 20 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 6 BITMAP 38 6C C6 C6 C6 C6 6C 38 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 10 0 BBX 8 8 1 1 BITMAP 88 4C 24 32 33 26 4C 88 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 15 0 BBX 13 14 3 0 BITMAP E018 2010 2020 2040 20C0 21B0 2130 2250 FE90 0D90 09F8 1010 2010 6038 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 15 0 BBX 13 14 3 0 BITMAP E018 2010 2020 2040 20C0 21F0 2188 2288 FE08 0C10 0820 1040 2080 60F8 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 15 0 BBX 13 14 3 0 BITMAP F018 8810 0820 0840 70C0 09B0 0930 8A50 F690 0D90 09F8 1010 2010 6038 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 9 0 BBX 7 14 1 -4 BITMAP 18 18 00 00 18 18 10 20 60 C0 C2 C2 E6 3C ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 0 0 BITMAP 0600 0100 0080 0000 0200 0300 0300 0580 0580 0980 08C0 10C0 1060 1FE0 2030 2030 4038 F07C ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 0 0 BITMAP 0180 0200 0400 0000 0200 0300 0300 0580 0580 0980 08C0 10C0 1060 1FE0 2030 2030 4038 F07C ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 0 0 BITMAP 0300 0480 0840 0000 0200 0300 0300 0580 0580 0980 08C0 10C0 1060 1FE0 2030 2030 4038 F07C ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP 0640 0980 0000 0200 0300 0300 0580 0580 0980 08C0 10C0 1060 1FE0 2030 2030 4038 F07C ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP 0D80 0D80 0000 0200 0300 0300 0580 0580 0980 08C0 10C0 1060 1FE0 2030 2030 4038 F07C ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 0 0 BITMAP 0380 0280 0380 0000 0200 0300 0300 0580 0580 0980 08C0 10C0 1060 1FE0 2030 2030 4038 F07C ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 17 0 BBX 17 14 0 0 BITMAP 00FF00 00E100 016100 036000 026000 066100 047F00 086100 186000 1FE000 206000 206080 406080 E1FF80 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 13 0 BBX 11 18 1 -4 BITMAP 0FC0 3860 6020 6020 C000 C000 C000 C000 C000 C000 6000 6000 3820 0FC0 0400 0400 0200 0E00 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 11 0 BBX 11 18 0 0 BITMAP 1800 0400 0200 0000 FFC0 3040 3040 3000 3000 3080 3F80 3080 3000 3000 3000 3020 3020 FFE0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 11 0 BBX 11 18 0 0 BITMAP 0300 0400 0800 0000 FFC0 3040 3040 3000 3000 3080 3F80 3080 3000 3000 3000 3020 3020 FFE0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 11 0 BBX 11 18 0 0 BITMAP 0600 0900 1080 0000 FFC0 3040 3040 3000 3000 3080 3F80 3080 3000 3000 3000 3020 3020 FFE0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 11 0 BBX 11 17 0 0 BITMAP 1B00 1B00 0000 FFC0 3040 3040 3000 3000 3080 3F80 3080 3000 3000 3000 3020 3020 FFE0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 6 0 BBX 6 18 0 0 BITMAP 60 10 08 00 FC 30 30 30 30 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 6 0 BBX 6 18 0 0 BITMAP 18 20 40 00 FC 30 30 30 30 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 6 0 BBX 6 18 0 0 BITMAP 30 48 84 00 FC 30 30 30 30 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 6 0 BBX 6 17 0 0 BITMAP D8 D8 00 FC 30 30 30 30 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 15 0 BBX 13 14 0 0 BITMAP FF80 3060 3030 3030 3018 3018 FE18 3018 3018 3018 3030 3030 3060 FF80 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP 0640 0980 0000 F07C 3010 3810 3C10 2E10 2610 2310 2390 21D0 20D0 2070 2070 2030 F810 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 0C00 0200 0100 0000 0F80 3060 6030 6030 C018 C018 C018 C018 C018 C018 6030 6030 3060 0F80 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 0180 0200 0400 0000 0F80 3060 6030 6030 C018 C018 C018 C018 C018 C018 6030 6030 3060 0F80 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 0600 0900 1080 0000 0F80 3060 6030 6030 C018 C018 C018 C018 C018 C018 6030 6030 3060 0F80 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 1 0 BITMAP 0640 0980 0000 0F80 3060 6030 6030 C018 C018 C018 C018 C018 C018 6030 6030 3060 0F80 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 1 0 BITMAP 0D80 0D80 0000 0F80 3060 6030 6030 C018 C018 C018 C018 C018 C018 6030 6030 3060 0F80 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 0 0 BITMAP 8020 4040 2080 3180 1B00 0E00 0E00 1B00 1100 2080 4040 8020 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 15 0 BBX 13 14 1 0 BITMAP 0F88 3050 6030 6070 C0D8 C198 C318 C618 CC18 D818 7030 6030 5060 CF80 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 0 0 BITMAP 0600 0100 0080 0000 FC7C 3010 3010 3010 3010 3010 3010 3010 3010 3010 3010 3010 1860 0FC0 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 0 0 BITMAP 0180 0200 0400 0000 FC7C 3010 3010 3010 3010 3010 3010 3010 3010 3010 3010 3010 1860 0FC0 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 0 0 BITMAP 0300 0480 0840 0000 FC7C 3010 3010 3010 3010 3010 3010 3010 3010 3010 3010 3010 1860 0FC0 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP 06C0 06C0 0000 FC7C 3010 3010 3010 3010 3010 3010 3010 3010 3010 3010 3010 1860 0FC0 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 13 0 BBX 13 18 0 0 BITMAP 0180 0200 0400 0000 F878 6030 3020 3840 18C0 0C80 0F00 0700 0600 0600 0600 0600 0600 1F80 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 0 0 BITMAP FC00 3000 3000 3F00 31C0 30C0 30C0 30C0 30C0 3180 3E00 3000 3000 FC00 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 1 0 BITMAP 1F00 3180 3180 3180 3100 3200 3200 3300 3380 3180 30C0 3040 3240 3240 FB80 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 10 0 BBX 9 14 1 0 BITMAP 3000 0800 0400 0000 3E00 4700 0300 0300 3F00 6300 C300 C300 E300 7D80 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 10 0 BBX 9 14 1 0 BITMAP 0600 0800 1000 0000 3E00 4700 0300 0300 3F00 6300 C300 C300 E300 7D80 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 10 0 BBX 9 14 1 0 BITMAP 1800 2400 4200 0000 3E00 4700 0300 0300 3F00 6300 C300 C300 E300 7D80 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 0 BITMAP 3200 4C00 0000 3E00 4700 0300 0300 3F00 6300 C300 C300 E300 7D80 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 0 BITMAP 3600 3600 0000 3E00 4700 0300 0300 3F00 6300 C300 C300 E300 7D80 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 10 0 BBX 9 14 1 0 BITMAP 1C00 1400 1C00 0000 3E00 4700 0300 0300 3F00 6300 C300 C300 E300 7D80 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 16 0 BBX 14 10 1 0 BITMAP 3CF0 4788 430C 030C 3FFC 6300 C300 C380 E5C4 78F8 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 10 0 BBX 8 14 1 -4 BITMAP 1F 71 61 C0 C0 C0 C0 60 70 1F 08 08 04 1C ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 10 0 BBX 8 14 1 0 BITMAP 30 08 04 00 3C 62 C3 C3 FF C0 C0 60 71 1E ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 10 0 BBX 8 14 1 0 BITMAP 0C 10 20 00 3C 62 C3 C3 FF C0 C0 60 71 1E ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 10 0 BBX 8 14 1 0 BITMAP 18 24 42 00 3C 62 C3 C3 FF C0 C0 60 71 1E ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 36 36 00 3C 62 C3 C3 FF C0 C0 60 71 1E ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 6 0 BBX 6 14 0 0 BITMAP 60 10 08 00 F0 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 6 0 BBX 6 14 0 0 BITMAP 18 20 40 00 F0 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 6 0 BBX 6 14 0 0 BITMAP 30 48 84 00 F0 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 6 0 BBX 6 13 0 0 BITMAP D8 D8 00 F0 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP FE00 1800 3E00 4300 3F80 6180 61C0 C0C0 C0C0 C0C0 C0C0 6180 6180 1E00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 0 0 BITMAP 0C80 1300 0000 F780 38C0 30C0 30C0 30C0 30C0 30C0 30C0 30C0 FFF0 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 1800 0400 0200 0000 1E00 6180 6180 C0C0 C0C0 C0C0 C0C0 6180 6180 1E00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 0600 0800 1000 0000 1E00 6180 6180 C0C0 C0C0 C0C0 C0C0 6180 6180 1E00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 0C00 1200 2100 0000 1E00 6180 6180 C0C0 C0C0 C0C0 C0C0 6180 6180 1E00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 1900 2600 0000 1E00 6180 6180 C0C0 C0C0 C0C0 C0C0 6180 6180 1E00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 3600 3600 0000 1E00 6180 6180 C0C0 C0C0 C0C0 C0C0 6180 6180 1E00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 12 0 BBX 12 10 0 0 BITMAP 0600 0600 0000 0000 0000 FFF0 0000 0000 0600 0600 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 1E40 7180 6180 C2C0 C4C0 C8C0 D0C0 E180 7180 9E00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP 0C00 0200 0100 0000 F3C0 30C0 30C0 30C0 30C0 30C0 30C0 30C0 31C0 1EF0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP 0300 0400 0800 0000 F3C0 30C0 30C0 30C0 30C0 30C0 30C0 30C0 31C0 1EF0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP 0600 0900 1080 0000 F3C0 30C0 30C0 30C0 30C0 30C0 30C0 30C0 31C0 1EF0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 0 0 BITMAP 0D80 0D80 0000 F3C0 30C0 30C0 30C0 30C0 30C0 30C0 30C0 31C0 1EF0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 10 0 BBX 10 18 0 -4 BITMAP 0600 0800 1000 0000 F1C0 6080 6080 3180 3100 1900 1A00 1E00 0C00 0C00 0800 0800 1800 7000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 12 0 BBX 11 18 0 -4 BITMAP F000 3000 3000 3000 3780 38C0 3060 3060 3060 3060 3060 3040 38C0 3780 3000 3000 3000 FC00 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 10 0 BBX 10 17 0 -4 BITMAP 3600 3600 0000 F1C0 6080 6080 3180 3100 1900 1A00 1E00 0C00 0C00 0800 0800 1800 7000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 0 0 BITMAP 1FC0 31C0 30C0 30C0 30C0 FCC0 30C0 30C0 30C0 30C0 30C0 30C0 30C0 30C0 FFF0 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 1 1 6 BITMAP FF ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 18 1 -4 BITMAP 0C00 0C00 0C00 0800 0800 0800 FF80 0800 0800 0800 0800 0800 0C00 0C00 0C00 0C00 0C00 0C00 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 18 1 0 BITMAP 2100 1200 0C00 0000 FF80 8380 8300 0700 0600 0C00 0C00 1800 3800 3000 7000 6080 C080 FF80 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 15 10 1 0 BITMAP 1C78 63C4 6186 C186 C1FE C180 C180 E1C0 63E2 3C7C ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 0 0 BITMAP 0D80 0D80 0000 F878 6030 3020 3840 18C0 0C80 0F00 0700 0600 0600 0600 0600 0600 1F80 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 10 0 0 BITMAP F0 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 14 0 0 BITMAP F0 30 30 30 30 34 38 F0 B0 30 30 30 30 FC ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 0 0 BITMAP FC00 3000 3000 3000 3000 3400 3800 7000 B000 3000 3000 3040 3040 FFC0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 18 1 -4 BITMAP 0C00 0C00 0C00 0800 0800 FF80 0800 0800 0800 0800 0800 FF80 0800 0800 0800 0C00 0C00 0C00 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 15 0 0 BITMAP 1E00 32C0 32C0 3000 3000 FFC0 30C0 30C0 30C0 30C0 30C0 30C0 30C0 30C0 F9F0 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 1 BITMAP 80 40 60 20 30 60 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 17 14 1 0 BITMAP 0F7F00 30E100 606100 606000 C06000 C06100 C07F00 C06100 C06000 C06000 606000 606080 30E080 0F7F80 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 17 1 1 5 BITMAP FFFF80 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 3 3 11 BITMAP 84 48 30 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 3 5 -4 BITMAP 40 80 E0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 3 3 11 BITMAP 3C 50 B0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 1 BITMAP 10 20 60 C0 40 60 20 10 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 2 2 5 12 BITMAP C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 3 3 11 BITMAP 84 78 78 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 6 6 3 3 BITMAP 78 FC FC FC FC 78 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 2 3 12 BITMAP 64 98 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 3 3 11 BITMAP 30 48 84 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 6 5 1 9 BITMAP 44 88 88 CC CC ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 9 BITMAP E0 E0 E0 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 7 14 1 0 BITMAP 84 48 30 00 7C C4 C4 E0 78 3E 86 86 CE 7C ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 3 4 12 BITMAP E0 A0 E0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 2 7 2 -4 BITMAP C0 C0 C0 40 40 40 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 18 2 -4 BITMAP 0780 0C80 1880 1800 1000 3000 3000 FC00 3000 2000 6000 6000 6000 6000 6000 C000 C000 C000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 17 8 0 6 BITMAP FEE380 927300 107500 107500 105D00 105900 104900 7CC180 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 12 14 -5 0 BITMAP 0030 0020 0040 0080 0180 0300 0200 0400 0C00 1800 1000 2000 4000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 4 3 3 11 BITMAP C0 20 10 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 20 14 0 0 BITMAP 781800 C43000 842000 844000 848000 850000 7B0000 06F1E0 058B10 090A10 110A10 210A10 610A10 C0F1E0 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 12 2 4 0 BITMAP C630 C630 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 6 5 1 9 BITMAP CC CC 44 44 88 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 18 1 0 BITMAP 42 24 18 00 3E 62 C2 C0 C0 70 38 1E 07 03 83 83 C6 7C ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 6 7 1 -4 BITMAP CC CC 44 44 44 44 88 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 14 2 0 BITMAP 42 24 18 00 FF 86 8E 0C 18 38 30 61 E1 FF ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lubR24.bdf100644 1750 1750 106447 5413747504 15052 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-Medium-R-Normal--24-240-75-75-P-137-ISO8859-1 SIZE 24 72 72 FONTBOUNDINGBOX 39 26 -15 -5 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 24 POINT_SIZE 240 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 137 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 22 FONT_DESCENT 6 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 7 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 6 0 BBX 2 17 2 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 80 80 80 80 00 00 00 C0 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 9 0 BBX 7 5 1 12 BITMAP C6 C6 C6 44 44 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 15 0 BBX 15 17 0 0 BITMAP 0118 0210 0210 0210 0220 7FFE 0420 0440 0440 0840 FFFC 0880 1880 1080 1080 1100 3100 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 15 0 BBX 10 21 2 -2 BITMAP 0400 0400 1F80 34C0 6440 6440 6400 6400 3400 1C00 0F00 0780 05C0 04C0 04C0 84C0 8480 C580 7E00 0400 0400 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 1 0 BITMAP 3806 440C 8208 8210 8220 8240 44C0 3880 0138 0244 0682 0482 0882 1082 2082 6044 C038 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 17 0 BBX 17 17 0 0 BITMAP 07C000 0C6000 183000 183000 183000 1C6000 0EC000 1F0000 638F80 418200 C1C200 C0E200 C07200 E03400 601C00 383E00 1FCF80 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 6 0 BBX 3 6 2 11 BITMAP E0 E0 60 20 C0 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 8 0 BBX 5 21 1 -4 BITMAP 08 10 30 20 60 40 40 C0 C0 C0 C0 C0 C0 C0 40 40 60 20 30 10 08 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 8 0 BBX 5 21 1 -4 BITMAP 80 40 60 20 30 10 10 18 18 18 18 18 18 18 10 10 30 20 60 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 11 0 BBX 9 8 1 9 BITMAP 0800 0800 8880 F780 0000 1400 6200 2300 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 15 0 BBX 13 14 1 0 BITMAP 0200 0200 0200 0200 0200 0200 0200 FFF8 0200 0200 0200 0200 0200 0200 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 6 0 BBX 3 9 2 -5 BITMAP E0 E0 E0 E0 60 20 20 40 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 15 0 BBX 14 1 0 7 BITMAP FFFC ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 6 0 BBX 3 2 2 0 BITMAP E0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 12 0 BBX 12 21 0 -4 BITMAP 0030 0020 0060 0040 00C0 0080 0180 0100 0300 0200 0600 0400 0C00 0800 1800 1000 3000 2000 6000 4000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 1 0 BITMAP 0F00 30C0 6060 6060 4020 C030 C030 C030 C030 C030 C030 C030 4020 6060 6060 30C0 0F00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 15 0 BBX 8 17 3 0 BITMAP F8 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 FF ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 15 0 BBX 10 17 2 0 BITMAP 3E00 C380 81C0 80C0 00C0 00C0 00C0 0180 0300 0600 0800 3000 2000 4000 4000 FFC0 FFC0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 15 0 BBX 10 17 2 0 BITMAP 7E00 C180 80C0 80C0 00C0 00C0 0380 7E00 0300 0180 00C0 00C0 00C0 80C0 8180 C380 FE00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 1 0 BITMAP 00C0 01C0 01C0 02C0 04C0 08C0 18C0 10C0 20C0 40C0 C0C0 FFF0 00C0 00C0 00C0 00C0 03F0 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 15 0 BBX 9 17 3 0 BITMAP FF80 FF80 8000 8000 8000 8000 F800 0E00 0300 0180 0180 0180 0180 8180 8300 C600 FC00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 1 0 BITMAP 0FC0 1060 2020 6020 4000 C000 CF80 D060 E020 C030 C030 C030 4030 6030 6060 30C0 0F80 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 15 0 BBX 11 17 2 0 BITMAP FFE0 FFE0 0040 00C0 0080 0100 0300 0200 0400 0C00 0800 1800 3000 3000 3000 6000 6000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 1 0 BITMAP 0FC0 3060 6030 6030 6030 7020 3C40 1F80 3780 61E0 4060 C030 C030 C030 E060 70E0 1F80 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 1 0 BITMAP 1F00 30C0 6060 C060 C020 C030 C030 C030 4070 60B0 1F30 0030 0020 4060 4040 6080 3F00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 6 0 BBX 2 13 2 0 BITMAP C0 C0 00 00 00 00 00 00 00 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 6 0 BBX 2 18 2 -5 BITMAP C0 C0 00 00 00 00 00 00 00 00 00 C0 C0 40 40 40 40 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 0 0 BITMAP 0004 0018 0070 01C0 0700 1C00 F000 7000 1C00 0700 01C0 0070 001C 0004 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 15 0 BBX 14 6 0 4 BITMAP FFFC 0000 0000 0000 0000 FFFC ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 0 0 BITMAP 8000 E000 3800 0E00 0380 00E0 0038 003C 00E0 0380 0E00 3800 6000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 12 0 BBX 10 17 1 0 BITMAP 7F00 C380 80C0 80C0 00C0 0080 0180 0200 0400 0800 1800 1800 1800 0000 0000 1800 1800 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 21 0 BBX 19 17 1 0 BITMAP 00FC00 030300 0C0080 100040 20FC20 610C20 430820 841820 841820 843840 8450C0 84D180 C31E00 400000 200000 181000 07E000 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 18 0 BBX 18 17 0 0 BITMAP 008000 00C000 00C000 01E000 016000 026000 023000 043000 041800 081800 081C00 0FFC00 100E00 100600 200600 600700 F80FC0 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 0 0 BITMAP FFC0 30E0 3030 3030 3030 3030 3060 30C0 3FC0 30F0 3030 3018 3018 3018 3038 3070 FFE0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 17 0 BBX 14 17 1 0 BITMAP 07F8 1C1C 3004 6004 6000 C000 C000 C000 C000 C000 C000 C000 6000 6000 3000 1C04 07F8 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 18 0 BBX 16 17 1 0 BITMAP FFE0 3038 300C 3006 3006 3003 3003 3003 3003 3003 3003 3003 3006 3006 300C 3838 FFE0 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 1 0 BITMAP FFE0 3020 3020 3000 3000 3000 3000 3040 3FC0 3040 3000 3000 3000 3000 3010 3010 FFF0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 13 0 BBX 11 17 1 0 BITMAP FFE0 3020 3020 3000 3000 3000 3000 3040 3FC0 3040 3000 3000 3000 3000 3000 3800 FE00 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 18 0 BBX 16 17 1 0 BITMAP 07F0 1C1C 3004 6004 6000 C000 C000 C000 C000 C000 C03F C00C 600C 600C 300C 1C0C 07F8 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 19 0 BBX 17 17 1 0 BITMAP FC1F80 300600 300600 300600 300600 300600 300600 300600 3FFE00 300600 300600 300600 300600 300600 300600 300600 FC1F80 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 8 0 BBX 6 17 1 0 BITMAP FC 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 10 0 BBX 9 21 0 -4 BITMAP 3F80 0E00 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 8600 8400 8C00 F800 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 17 0 BBX 16 17 1 0 BITMAP FC7E 3018 3030 3040 3080 3100 3200 3400 3E00 3700 3380 31C0 30E0 3070 3038 301C FC7F ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 13 0 BBX 12 17 1 0 BITMAP FC00 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3010 3030 FFF0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 21 0 BBX 19 17 1 0 BITMAP F801E0 380380 3C0380 2C0780 2C0580 260580 260980 270980 231180 231180 219180 21A180 20E180 20C180 20C180 200180 F807E0 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 18 0 BBX 17 17 1 0 BITMAP F00F80 380200 3C0200 2C0200 2E0200 270200 238200 218200 20C200 20E200 207200 203200 201A00 200E00 200E00 200600 F80200 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 19 0 BBX 16 17 1 0 BITMAP 07E0 1C38 300C 6006 6006 C003 C003 C003 C003 C003 C003 C003 6006 6006 300C 1818 07E0 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 0 0 BITMAP FFC0 3070 3018 3018 3018 3018 3018 3030 30E0 3F80 3000 3000 3000 3000 3000 3000 FC00 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 19 0 BBX 19 21 1 -4 BITMAP 07E000 1C3800 300C00 600600 600600 C00300 C00300 C00300 C00300 C00300 C00300 C00300 600600 600600 300C00 181C00 07F000 003000 000C00 000780 0001E0 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 1 0 BITMAP FFC0 3060 3030 3030 3030 3030 3020 3060 30C0 3F80 3180 30C0 30E0 3060 3030 3038 FC1E ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 13 0 BBX 10 17 2 0 BITMAP 3F00 6180 C080 C080 C000 E000 7000 3C00 1E00 0780 01C0 00C0 00C0 80C0 8080 C180 7E00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 1 0 BITMAP FFFC 8304 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 0FC0 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 17 0 BBX 16 17 1 0 BITMAP FC1F 3004 3004 3004 3004 3004 3004 3004 3004 3004 3004 3004 3004 3004 1808 1C18 07E0 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 17 0 BBX 17 17 0 0 BITMAP FC0F80 300300 300200 180200 180400 0C0400 0C0800 0E0800 060800 061000 031000 032000 01A000 01A000 01C000 00C000 008000 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 22 0 BBX 22 17 0 0 BITMAP FC107C 703018 303010 303810 183820 185820 185C20 184C40 0C8C40 0C8C40 0C8680 070680 070680 070380 060300 020300 020100 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 16 0 BBX 16 17 0 0 BITMAP FE1F 3804 1C08 0C18 0E10 0620 0340 03C0 01C0 02C0 0660 0470 0830 1038 3018 601C F87F ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 16 0 BBX 16 17 0 0 BITMAP FE1F 3806 180C 1C08 0C10 0610 0720 0340 01C0 0180 0180 0180 0180 0180 0180 0180 07E0 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 1 0 BITMAP FFF0 C070 80E0 80C0 01C0 0180 0300 0700 0600 0C00 1C00 1800 3000 7000 6010 E030 FFF0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 8 0 BBX 5 21 2 -4 BITMAP F8 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 F8 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 12 0 BBX 12 21 0 -4 BITMAP C000 4000 6000 2000 3000 1000 1800 0800 0C00 0400 0600 0200 0300 0100 0180 0080 00C0 0040 0060 0020 0030 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 8 0 BBX 5 21 1 -4 BITMAP F8 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 F8 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 0 3 BITMAP 0100 0300 0300 0780 0480 0CC0 0840 1860 1020 3030 2010 6018 4008 C00C ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 12 0 BBX 10 1 1 -2 BITMAP FFC0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 6 0 BBX 2 6 2 11 BITMAP 40 80 80 80 C0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 1 0 BITMAP 3F00 6180 40C0 00C0 00C0 1FC0 70C0 E0C0 C0C0 C0C0 C0C0 61C0 3E70 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 0 0 BITMAP F000 3000 3000 3000 33C0 3470 3830 3018 3018 3018 3018 3018 3018 3010 3030 3820 27C0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 0FC0 30C0 6040 6040 C000 C000 C000 C000 C000 6000 6000 3040 0F80 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 1 0 BITMAP 00F0 0030 0030 0030 1FB0 30F0 6030 4030 C030 C030 C030 C030 C030 C030 6070 70B0 1F3C ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 13 0 BBX 10 13 1 0 BITMAP 1E00 3180 6080 40C0 C0C0 FFC0 C000 C000 C000 6000 6000 3040 0F80 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 10 0 BBX 9 19 1 0 BITMAP 0F00 1180 3080 3080 3000 3000 FF00 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3800 FE00 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 1 -5 BITMAP 1FF8 30C0 70E0 6060 6060 6060 6060 30C0 10C0 3F00 6000 6000 3FE0 4030 C030 C030 6060 3F80 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 1 0 BITMAP F000 3000 3000 3000 33C0 3460 3830 3030 3030 3030 3030 3030 3030 3030 3030 3030 FCFC ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 7 0 BBX 6 17 1 0 BITMAP 30 30 00 00 F0 30 30 30 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 8 0 BBX 7 22 0 -5 BITMAP 06 06 00 00 3E 0E 06 06 06 06 06 06 06 06 06 06 06 06 86 86 8C F8 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP F000 3000 3000 3000 30F8 3020 30C0 3180 3300 3600 3E00 3700 3380 31C0 30E0 3070 FC3C ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 8 0 BBX 6 17 1 0 BITMAP F0 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 23 0 BBX 22 13 1 0 BITMAP F3E3C0 347460 383830 303030 303030 303030 303030 303030 303030 303030 303030 303030 FCFCFC ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 15 0 BBX 14 13 1 0 BITMAP F3C0 3460 3830 3030 3030 3030 3030 3030 3030 3030 3030 3030 FCFC ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 1 0 BITMAP 1F80 30C0 6060 6060 C030 C030 C030 C030 C030 6060 6060 30C0 1F80 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 -5 BITMAP F3C0 3470 3830 3018 3018 3018 3018 3018 3018 3010 3030 3820 37C0 3000 3000 3000 3000 FC00 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 1 -5 BITMAP 1FB0 30F0 6030 4030 C030 C030 C030 C030 C030 C030 6070 70B0 1F30 0030 0030 0030 0030 00FC ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP F780 3C80 3080 3080 3000 3000 3000 3000 3000 3000 3000 3000 FC00 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 12 0 BBX 9 13 2 0 BITMAP 3E00 6300 C100 C100 E000 7800 3E00 0F00 0180 8180 8180 C300 7E00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 9 0 BBX 8 16 1 0 BITMAP 30 30 30 FF 30 30 30 30 30 30 30 30 30 30 38 1F ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 15 0 BBX 14 13 0 0 BITMAP F0F0 3030 3030 3030 3030 3030 3030 3030 3030 3030 3030 18F0 0F3C ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 0 0 BITMAP F878 7010 3030 3020 1820 1840 1C40 0C80 0C80 0700 0700 0300 0200 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 19 0 BBX 19 13 0 0 BITMAP FC41E0 706040 306040 30F080 30B080 39B180 191900 191900 1E1E00 0E0E00 0E0E00 0C0400 040400 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 0 0 BITMAP FC78 7030 3860 1840 0C80 0F00 0700 0780 0980 10C0 20E0 6070 F1F8 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 13 0 BBX 13 18 0 -5 BITMAP FC78 7010 3010 3020 1820 1840 1C40 0CC0 0C80 0680 0700 0700 0200 0200 0600 0C00 1C00 3800 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 14 0 BBX 11 13 2 0 BITMAP FFE0 80C0 81C0 0380 0300 0600 0E00 1C00 1800 3000 7020 E020 FFE0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 8 0 BBX 6 21 1 -4 BITMAP 0C 10 20 20 30 30 10 10 10 20 C0 20 10 10 10 30 30 20 20 10 0C ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 6 0 BBX 1 21 2 -4 BITMAP 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 8 0 BBX 6 21 1 -4 BITMAP C0 20 10 10 10 30 20 20 20 10 0C 10 20 20 20 30 10 10 10 20 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 15 0 BBX 14 6 0 4 BITMAP 3804 4C04 8204 8104 8088 8070 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 6 0 BBX 2 18 2 -5 BITMAP C0 C0 00 00 00 80 80 80 80 80 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 15 0 BBX 9 17 2 0 BITMAP 0400 0400 0F80 3580 6480 6480 C400 C400 C400 C400 C400 4400 6400 3480 1F80 0400 0400 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 15 0 BBX 10 17 3 0 BITMAP 0F80 18C0 1040 3040 3000 3000 3000 3000 FF00 3000 3000 3000 3000 2000 6000 C000 FFC0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 15 0 BBX 15 15 0 1 BITMAP 8002 4004 27C8 1830 1010 2008 2008 2008 2008 3018 1010 1C70 27C8 4004 8002 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 15 0 BBX 16 17 0 0 BITMAP FE1F 3804 1808 1C08 0E10 0620 0320 03C0 0180 1FF8 0180 0180 1FF8 0180 0180 0180 07E0 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 6 0 BBX 1 21 2 -4 BITMAP 80 80 80 80 80 80 80 80 80 80 00 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 15 0 BBX 10 22 2 -5 BITMAP 3F00 6180 C080 C080 C000 C000 7000 3C00 4F00 C380 C180 C080 F080 7C80 1F00 0780 01C0 00C0 80C0 80C0 C180 7F00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 14 0 BBX 7 2 4 15 BITMAP C6 C6 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 21 0 BBX 18 17 1 0 BITMAP 03F000 0C0C00 300300 200100 41F080 421080 841040 840040 840040 840040 860040 431080 41F080 200100 300300 0C0C00 03F000 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 8 BITMAP 3E00 4300 4300 0300 3F00 E300 C300 C700 7B80 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 13 0 BBX 10 11 1 1 BITMAP 0840 1880 1180 3300 6200 C600 6200 2100 1180 0880 0840 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 15 0 BBX 14 6 0 4 BITMAP FFFC 0004 0004 0004 0004 0004 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 8 0 BBX 5 1 1 8 BITMAP F8 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 15 0 BBX 10 10 2 7 BITMAP 1E00 6100 4080 BE40 9240 9240 9C40 7380 2180 1E00 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 14 0 BBX 7 1 4 16 BITMAP FE ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 6 0 BBX 4 4 1 13 BITMAP 60 90 90 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 15 0 BBX 13 14 1 0 BITMAP 0200 0200 0200 0200 0200 FFF8 0200 0200 0200 0200 0200 0000 0000 FFF8 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 -14 7 BITMAP 78 8C 84 04 0C 18 20 40 80 FC ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 -14 7 BITMAP F8 84 84 04 78 0C 04 84 8C F8 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 14 0 BBX 5 3 5 14 BITMAP 38 60 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 0 -4 BITMAP F0F0 3030 3030 3030 3030 3030 3030 3030 3030 3030 3030 38F0 3F3C 3000 3000 3000 3000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 15 0 BBX 11 21 1 -4 BITMAP 3FE0 FE20 FE20 FE20 FE20 FE20 7E20 3E20 0620 0220 0220 0220 0220 0220 0220 0220 0220 0220 0220 0220 0220 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 15 0 BBX 2 2 6 7 BITMAP C0 C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 14 0 BBX 4 6 6 -5 BITMAP 60 40 20 10 10 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 9 0 BBX 5 10 -15 7 BITMAP E0 20 20 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 8 BITMAP 3E00 6300 C180 C180 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 13 0 BBX 10 11 1 1 BITMAP 8400 4400 6200 2100 1180 18C0 1180 3300 6200 4600 8400 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 18 0 BBX 16 17 5 0 BITMAP 7006 100C 1008 1010 1020 1040 10C0 1086 1106 7E0A 0612 0C22 0862 107F 2002 6002 C007 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 18 0 BBX 16 17 5 0 BITMAP 7006 100C 1008 1010 1020 1040 10C0 109E 1123 7E21 0601 0C03 0806 1008 2010 6020 C03F ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 18 0 BBX 16 17 5 0 BITMAP F806 840C 8408 0410 7820 0C40 04C0 8486 8D06 FA0A 0612 0C22 0862 107F 2002 6002 C007 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 12 0 BBX 10 18 1 -5 BITMAP 0600 0600 0000 0000 0000 0600 0600 0600 0C00 1800 3000 6000 4000 C000 C040 C040 70C0 1F80 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 18 0 BBX 18 21 0 0 BITMAP 038000 00C000 006000 000000 008000 00C000 00C000 01E000 016000 026000 023000 043000 041800 081800 081C00 0FFC00 100E00 100600 200600 600700 F80FC0 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 18 0 BBX 18 21 0 0 BITMAP 007000 00C000 018000 000000 008000 00C000 00C000 01E000 016000 026000 023000 043000 041800 081800 081C00 0FFC00 100E00 100600 200600 600700 F80FC0 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 18 0 BBX 18 21 0 0 BITMAP 01E000 033000 061800 000000 008000 00C000 00C000 01E000 016000 026000 023000 043000 041800 081800 081C00 0FFC00 100E00 100600 200600 600700 F80FC0 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 18 0 BBX 18 20 0 0 BITMAP 03C800 04F000 000000 008000 00C000 00C000 01E000 016000 026000 023000 043000 041800 081800 081C00 0FFC00 100E00 100600 200600 600700 F80FC0 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 18 0 BBX 18 20 0 0 BITMAP 063000 063000 000000 008000 00C000 00C000 01E000 016000 026000 023000 043000 041800 081800 081C00 0FFC00 100E00 100600 200600 600700 F80FC0 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 18 0 BBX 18 21 0 0 BITMAP 00C000 012000 00C000 000000 008000 00C000 00C000 01E000 016000 026000 023000 043000 041800 081800 081C00 0FFC00 100E00 100600 200600 600700 F80FC0 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 22 0 BBX 21 17 0 0 BITMAP 003FF0 003010 007010 00B000 00B000 013000 013000 023020 063FE0 043020 0C3000 1FF000 103000 303000 203008 603018 F0FFF8 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 17 0 BBX 14 22 1 -5 BITMAP 07F8 1C1C 3004 6004 6000 C000 C000 C000 C000 C000 C000 C000 6000 6000 3000 1C04 07F8 0200 0100 0080 0080 0700 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 14 0 BBX 12 21 1 0 BITMAP 1C00 0600 0300 0000 FFE0 3020 3020 3000 3000 3000 3000 3040 3FC0 3040 3000 3000 3000 3000 3010 3010 FFF0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 14 0 BBX 12 21 1 0 BITMAP 0380 0600 0C00 0000 FFE0 3020 3020 3000 3000 3000 3000 3040 3FC0 3040 3000 3000 3000 3000 3010 3010 FFF0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 14 0 BBX 12 21 1 0 BITMAP 0F00 1980 30C0 0000 FFE0 3020 3020 3000 3000 3000 3000 3040 3FC0 3040 3000 3000 3000 3000 3010 3010 FFF0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 14 0 BBX 12 20 1 0 BITMAP 18C0 18C0 0000 FFE0 3020 3020 3000 3000 3000 3000 3040 3FC0 3040 3000 3000 3000 3000 3010 3010 FFF0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 8 0 BBX 6 21 1 0 BITMAP E0 30 18 00 FC 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 8 0 BBX 6 21 1 0 BITMAP 1C 30 60 00 FC 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 8 0 BBX 8 21 2 0 BITMAP 3C 66 C3 00 7E 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 7E ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 8 0 BBX 7 20 2 0 BITMAP C6 C6 00 7E 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 7E ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 18 0 BBX 16 17 1 0 BITMAP FFE0 3038 300C 3006 3006 3003 3003 3003 FF03 3003 3003 3003 3006 3006 300C 3838 FFE0 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 18 0 BBX 17 20 1 0 BITMAP 03C800 04F000 000000 F00F80 380200 3C0200 2C0200 2E0200 270200 238200 218200 20C200 20E200 207200 203200 201A00 200E00 200E00 200600 F80200 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 19 0 BBX 16 21 1 0 BITMAP 0700 0180 00C0 0000 07E0 1C38 300C 6006 6006 C003 C003 C003 C003 C003 C003 C003 6006 6006 300C 1818 07E0 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 19 0 BBX 16 21 1 0 BITMAP 00E0 0180 0300 0000 07E0 1C38 300C 6006 6006 C003 C003 C003 C003 C003 C003 C003 6006 6006 300C 1818 07E0 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 19 0 BBX 16 21 1 0 BITMAP 03C0 0660 0C30 0000 07E0 1C38 300C 6006 6006 C003 C003 C003 C003 C003 C003 C003 6006 6006 300C 1818 07E0 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 19 0 BBX 16 20 1 0 BITMAP 0790 09E0 0000 07E0 1C38 300C 6006 6006 C003 C003 C003 C003 C003 C003 C003 6006 6006 300C 1818 07E0 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 19 0 BBX 16 20 1 0 BITMAP 0C60 0C60 0000 07E0 1C38 300C 6006 6006 C003 C003 C003 C003 C003 C003 C003 6006 6006 300C 1818 07E0 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 0 0 BITMAP 8004 4008 2010 1020 0840 0480 0300 0300 0480 0840 1020 2010 4008 8004 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 19 0 BBX 16 17 1 0 BITMAP 07E1 183A 300E 6006 600E C013 C063 C0C3 C183 C303 C603 CC03 7806 7006 700C 5C38 87E0 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 17 0 BBX 16 21 1 0 BITMAP 0700 0180 00C0 0000 FC1F 3004 3004 3004 3004 3004 3004 3004 3004 3004 3004 3004 3004 3004 1808 1C18 07E0 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 17 0 BBX 16 21 1 0 BITMAP 00E0 0180 0300 0000 FC1F 3004 3004 3004 3004 3004 3004 3004 3004 3004 3004 3004 3004 3004 1808 1C18 07E0 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 17 0 BBX 16 21 1 0 BITMAP 03C0 0660 0C30 0000 FC1F 3004 3004 3004 3004 3004 3004 3004 3004 3004 3004 3004 3004 3004 1808 1C18 07E0 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 17 0 BBX 16 20 1 0 BITMAP 0630 0630 0000 FC1F 3004 3004 3004 3004 3004 3004 3004 3004 3004 3004 3004 3004 3004 1808 1C18 07E0 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 16 0 BBX 16 21 0 0 BITMAP 00E0 0180 0300 0000 FE1F 3806 180C 1C08 0C10 0610 0720 0340 01C0 0180 0180 0180 0180 0180 0180 0180 07E0 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 0 0 BITMAP FC00 3000 3000 3000 3FC0 3070 3018 3018 3018 3018 3030 30E0 3F80 3000 3000 3000 FC00 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 15 0 BBX 13 19 1 0 BITMAP 0F80 18C0 3060 3060 3060 3040 3080 3100 3100 3180 31C0 30E0 3070 3038 3008 3008 3108 3110 FDE0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 13 0 BBX 12 17 1 0 BITMAP 1C00 0600 0300 0000 3F00 6180 40C0 00C0 00C0 1FC0 70C0 E0C0 C0C0 C0C0 C0C0 61C0 3E70 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 13 0 BBX 12 17 1 0 BITMAP 0380 0600 0C00 0000 3F00 6180 40C0 00C0 00C0 1FC0 70C0 E0C0 C0C0 C0C0 C0C0 61C0 3E70 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 13 0 BBX 12 17 1 0 BITMAP 0F00 1980 30C0 0000 3F00 6180 40C0 00C0 00C0 1FC0 70C0 E0C0 C0C0 C0C0 C0C0 61C0 3E70 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 13 0 BBX 12 16 1 0 BITMAP 1E40 2780 0000 3F00 6180 40C0 00C0 00C0 1FC0 70C0 E0C0 C0C0 C0C0 C0C0 61C0 3E70 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 13 0 BBX 12 16 1 0 BITMAP 3180 3180 0000 3F00 6180 40C0 00C0 00C0 1FC0 70C0 E0C0 C0C0 C0C0 C0C0 61C0 3E70 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 13 0 BBX 12 17 1 0 BITMAP 0600 0900 0600 0000 3F00 6180 40C0 00C0 00C0 1FC0 70C0 E0C0 C0C0 C0C0 C0C0 61C0 3E70 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 20 0 BBX 17 13 1 0 BITMAP 3F3C00 63E300 41C100 018180 018180 1FFF80 718000 E18000 C18000 C1C000 C1C000 626080 3C3F00 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 12 0 BBX 10 18 1 -5 BITMAP 0FC0 30C0 6040 6040 C000 C000 C000 C000 C000 6000 6000 3040 0F80 0800 0400 0200 0200 1C00 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 13 0 BBX 10 17 1 0 BITMAP 3800 0C00 0600 0000 1E00 3180 6080 40C0 C0C0 FFC0 C000 C000 C000 6000 6000 3040 0F80 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 13 0 BBX 10 17 1 0 BITMAP 0700 0C00 1800 0000 1E00 3180 6080 40C0 C0C0 FFC0 C000 C000 C000 6000 6000 3040 0F80 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 13 0 BBX 10 17 1 0 BITMAP 1E00 3300 6180 0000 1E00 3180 6080 40C0 C0C0 FFC0 C000 C000 C000 6000 6000 3040 0F80 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 13 0 BBX 10 16 1 0 BITMAP 3180 3180 0000 1E00 3180 6080 40C0 C0C0 FFC0 C000 C000 C000 6000 6000 3040 0F80 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 7 0 BBX 6 17 1 0 BITMAP E0 30 18 00 F0 30 30 30 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 7 0 BBX 6 17 1 0 BITMAP 1C 30 60 00 F0 30 30 30 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 7 0 BBX 8 17 2 0 BITMAP 3C 66 C3 00 78 18 18 18 18 18 18 18 18 18 18 18 7E ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 7 0 BBX 7 16 2 0 BITMAP C6 C6 00 78 18 18 18 18 18 18 18 18 18 18 18 7E ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 1 0 BITMAP FF80 0E00 1F00 6180 0FC0 30C0 6060 6060 C030 C030 C030 C030 C030 6060 6060 30C0 1F80 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 15 0 BBX 14 16 1 0 BITMAP 0F20 13C0 0000 F3C0 3460 3830 3030 3030 3030 3030 3030 3030 3030 3030 3030 FCFC ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 1 0 BITMAP 1C00 0600 0300 0000 1F80 30C0 6060 6060 C030 C030 C030 C030 C030 6060 6060 30C0 1F80 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 1 0 BITMAP 0380 0600 0C00 0000 1F80 30C0 6060 6060 C030 C030 C030 C030 C030 6060 6060 30C0 1F80 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 1 0 BITMAP 0F00 1980 30C0 0000 1F80 30C0 6060 6060 C030 C030 C030 C030 C030 6060 6060 30C0 1F80 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 14 0 BBX 12 16 1 0 BITMAP 1E40 2780 0000 1F80 30C0 6060 6060 C030 C030 C030 C030 C030 6060 6060 30C0 1F80 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 14 0 BBX 12 16 1 0 BITMAP 3180 3180 0000 1F80 30C0 6060 6060 C030 C030 C030 C030 C030 6060 6060 30C0 1F80 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 15 0 BBX 14 12 0 1 BITMAP 0300 0300 0000 0000 0000 0000 FFFC 0000 0000 0000 0300 0300 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 1 0 BITMAP 1F30 30E0 6060 60F0 C1B0 C330 C630 CC30 D830 F060 6060 70C0 9F80 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 0 0 BITMAP 0E00 0300 0180 0000 F0F0 3030 3030 3030 3030 3030 3030 3030 3030 3030 3030 18F0 0F3C ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 0 0 BITMAP 01C0 0300 0600 0000 F0F0 3030 3030 3030 3030 3030 3030 3030 3030 3030 3030 18F0 0F3C ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 0 0 BITMAP 0780 0CC0 1860 0000 F0F0 3030 3030 3030 3030 3030 3030 3030 3030 3030 3030 18F0 0F3C ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 15 0 BBX 14 16 0 0 BITMAP 0C60 0C60 0000 F0F0 3030 3030 3030 3030 3030 3030 3030 3030 3030 3030 18F0 0F3C ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 13 0 BBX 13 22 0 -5 BITMAP 0380 0600 0C00 0000 FC78 7010 3010 3020 1820 1840 1C40 0CC0 0C80 0680 0700 0700 0200 0200 0600 0C00 1C00 3800 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 15 0 BBX 13 21 1 -5 BITMAP F000 3000 3000 33C0 3470 3830 3018 3018 3018 3018 3018 3018 3010 3030 3820 37C0 3000 3000 3000 3000 FC00 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 13 0 BBX 13 21 0 -5 BITMAP 18C0 18C0 0000 FC78 7010 3010 3020 1820 1840 1C40 0CC0 0C80 0680 0700 0700 0200 0200 0600 0C00 1C00 3800 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 0 BITMAP 0FF0 1870 3030 3030 3030 3030 FF30 3030 3030 3030 3030 3030 3030 3030 3030 3030 3030 3030 FCFC ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 1 1 8 BITMAP FFC0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 10 21 2 -4 BITMAP 1800 1800 1800 1800 0800 0800 0800 FFC0 0800 0800 0800 0800 0800 0800 1800 1800 1800 1800 1800 1800 1800 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 12 21 1 0 BITMAP 30C0 1980 0F00 0000 FFF0 C070 80E0 80C0 01C0 0180 0300 0700 0600 0C00 1C00 1800 3000 7000 6010 E030 FFF0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 22 0 BBX 20 13 1 0 BITMAP 0F0780 30DC60 607820 603030 C03030 C03FF0 C03000 C03000 C03000 E03800 607800 70DC10 1F07E0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 16 20 0 0 BITMAP 0C60 0C60 0000 FE1F 3806 180C 1C08 0C10 0610 0720 0340 01C0 0180 0180 0180 0180 0180 0180 0180 07E0 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 13 1 0 BITMAP F0 30 30 30 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 17 0 0 BITMAP F8 18 18 18 18 18 19 1E 18 F8 98 18 18 18 18 18 FF ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 12 17 1 0 BITMAP FC00 3000 3000 3000 3000 3000 3200 3C00 3000 F000 B000 3000 3000 3000 3010 3030 FFF0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 10 21 2 -4 BITMAP 1800 1800 1800 0800 0800 0800 FFC0 0800 0800 0800 0800 0800 0800 3F00 C9C0 0800 0800 1800 1800 1800 1800 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 0 BITMAP 1E00 1100 3130 3130 3000 3000 FFF0 3030 3030 3030 3030 3030 3030 3030 3030 3030 3030 3070 FDFC ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 1 BITMAP 80 40 20 30 18 1C 18 30 60 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 24 0 BBX 24 17 0 0 BITMAP 07E7FE 1C1E06 300E02 600602 600600 C00600 C00600 C00604 C007FC C00604 C00600 C00600 600600 600601 300E01 1C1E03 07F7FF ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 24 0 BBX 21 1 2 7 BITMAP FFFFF8 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 8 3 3 14 BITMAP C3 66 3C ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 4 3 6 -4 BITMAP 60 C0 F0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 7 3 5 14 BITMAP 36 48 90 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 1 BITMAP 04 08 18 30 60 E0 60 30 10 08 04 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 2 2 6 15 BITMAP C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 8 3 3 14 BITMAP 81 7E 3C ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 7 3 4 BITMAP 3C 7E FF FF FF 7E 3C ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 8 2 3 15 BITMAP 79 9E ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 8 3 3 14 BITMAP 3C 66 C3 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 7 6 2 11 BITMAP 42 84 84 84 C6 C6 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 5 1 12 BITMAP E0 E0 E0 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 17 2 0 BITMAP C300 6600 3C00 0000 3E00 6300 C100 C100 E000 7800 3E00 0F00 0180 8180 8180 C300 7E00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 4 3 5 16 BITMAP 60 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 9 2 -5 BITMAP E0 E0 E0 E0 60 20 20 40 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 11 21 3 -4 BITMAP 01E0 0220 0420 0C20 0C00 0800 1800 1800 FF00 3800 3000 3000 3000 7000 7000 6000 6000 6000 E000 E000 E000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 22 0 BBX 19 9 1 8 BITMAP FEF1E0 927180 107B80 105A80 105A80 104C80 104C80 104C80 38C0E0 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 15 17 -6 0 BITMAP 0006 000C 0008 0010 0020 0040 00C0 0080 0100 0200 0600 0C00 0800 1000 2000 6000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 5 3 4 14 BITMAP E0 30 18 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 25 0 BBX 23 17 1 0 BITMAP 380600 440C00 820800 821000 822000 824000 44C000 388000 013838 024444 068282 048282 088282 108282 208282 604444 C03838 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 24 0 BBX 15 2 5 0 BITMAP C186 C186 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 7 6 2 11 BITMAP C6 C6 42 42 C6 84 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 10 21 2 0 BITMAP 6180 3300 1E00 0000 3F00 6180 C080 C080 C000 E000 7000 3C00 1E00 0780 01C0 00C0 00C0 80C0 8080 C180 7E00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 7 9 2 -5 BITMAP C6 C6 42 42 42 42 42 42 84 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 11 17 2 0 BITMAP 6180 3300 1E00 0000 FFE0 80C0 81C0 0380 0300 0600 0E00 1C00 1800 3000 7020 E020 FFE0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lutBS08.bdf100644 1750 1750 53720 5413747504 15154 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaTypewriter-Bold-R-Normal-Sans-8-80-75-75-M-50-ISO8859-1 SIZE 8 72 72 FONTBOUNDINGBOX 7 10 -1 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaTypewriter" WEIGHT_NAME "Bold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 8 POINT_SIZE 80 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "M" AVERAGE_WIDTH 50 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 7 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 5 0 BBX 1 6 2 0 BITMAP 80 80 80 80 00 80 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 5 0 BBX 3 2 1 4 BITMAP A0 A0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 70 50 F0 60 F0 E0 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 5 0 BBX 3 9 1 -2 BITMAP 40 E0 80 C0 60 20 E0 40 40 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP F0 E0 E0 70 70 F0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 70 50 60 A8 98 78 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 5 0 BBX 1 3 2 3 BITMAP 80 80 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 5 0 BBX 3 8 1 -2 BITMAP 60 40 80 80 80 80 40 20 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 5 0 BBX 3 8 1 -2 BITMAP 80 40 20 20 20 20 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 2 BITMAP 60 F0 E0 70 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 0 BITMAP 20 F8 20 20 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 5 0 BBX 1 3 2 -2 BITMAP 80 80 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 5 0 BBX 4 1 0 1 BITMAP F0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 2 0 BITMAP 80 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 0 -2 BITMAP 08 10 10 20 20 40 40 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 60 90 90 90 90 60 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP C0 40 40 40 40 E0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP E0 20 20 40 80 E0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP E0 20 C0 20 20 C0 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 60 60 A0 F0 20 20 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP E0 80 C0 20 20 C0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 70 C0 E0 90 90 60 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP E0 20 40 40 80 80 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 70 90 60 B0 90 60 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 60 90 90 70 30 E0 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 5 0 BBX 1 4 2 0 BITMAP 80 00 00 80 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 5 0 BBX 1 6 2 -2 BITMAP 80 00 00 80 80 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP 10 E0 60 10 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 5 0 BBX 4 2 0 1 BITMAP F0 F0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP 80 60 70 80 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP E0 90 30 40 00 40 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 70 F0 D0 F0 80 60 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 20 50 50 50 F0 88 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP F0 90 E0 90 90 F0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 70 C0 80 80 C0 70 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP E0 90 90 90 90 E0 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP F0 80 E0 80 80 F0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP F0 80 80 F0 80 80 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 78 C0 80 88 C8 78 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 90 90 F0 90 90 90 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP E0 40 40 40 40 E0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP E0 20 20 20 20 E0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP B0 A0 C0 C0 A0 B0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 80 80 80 80 80 F0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP F0 F0 F0 F0 F0 F0 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 90 D0 D0 B0 B0 90 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 70 88 88 88 88 70 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP E0 90 90 F0 80 80 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 0 -2 BITMAP 70 88 88 88 88 70 18 10 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP F0 90 90 E0 A0 90 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 70 80 C0 30 10 E0 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP F8 20 20 20 20 20 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 90 90 90 90 90 F0 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 88 48 50 50 70 20 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP A8 A8 A8 D8 50 50 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP D8 50 20 60 50 98 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP C8 50 30 20 20 20 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP F0 30 20 40 C0 F0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 5 0 BBX 3 8 1 -2 BITMAP E0 80 80 80 80 80 80 E0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 0 -2 BITMAP 80 40 40 20 20 10 10 08 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 5 0 BBX 3 8 0 -2 BITMAP E0 20 20 20 20 20 20 E0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 1 BITMAP 20 60 60 60 90 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 5 0 BBX 5 1 0 -2 BITMAP F8 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 5 0 BBX 1 3 2 3 BITMAP 80 80 80 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP F0 10 F0 F0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 80 80 F0 90 90 E0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP 70 80 80 70 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 10 10 70 90 90 F0 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP 60 F0 80 70 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 70 40 F0 40 40 40 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 -2 BITMAP 70 90 90 70 10 E0 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 80 80 F0 90 90 90 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP 20 00 E0 20 20 20 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 5 0 BBX 3 8 1 -2 BITMAP 20 00 E0 20 20 20 20 E0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 80 80 B0 E0 E0 B0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 0 0 BITMAP E0 20 20 20 20 20 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 0 BITMAP F8 A8 A8 A8 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP F0 90 90 90 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP 60 90 90 60 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 -2 BITMAP F0 90 90 E0 80 80 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 -2 BITMAP 70 90 90 F0 10 10 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 5 0 BBX 3 4 1 0 BITMAP E0 A0 80 80 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP F0 C0 30 F0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 40 40 F0 40 40 70 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP 90 90 90 F0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 0 BITMAP 88 50 50 20 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 0 BITMAP A8 A8 D8 50 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP F0 60 60 B0 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 -2 BITMAP 88 50 70 20 20 C0 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP F0 20 40 F0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 5 0 BBX 3 8 1 -2 BITMAP 60 40 40 40 C0 40 40 60 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 5 0 BBX 1 8 2 -2 BITMAP 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 5 0 BBX 3 8 1 -2 BITMAP C0 40 40 40 60 40 40 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 5 0 BBX 4 2 0 1 BITMAP D0 B0 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 5 0 BBX 1 6 2 -2 BITMAP 80 00 80 80 80 80 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 20 70 80 80 70 20 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP 60 40 C0 40 40 E0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 1 BITMAP F0 90 90 90 F0 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP C8 50 20 70 70 20 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 5 0 BBX 1 8 2 -2 BITMAP 80 80 80 00 00 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 5 0 BBX 3 8 1 -2 BITMAP E0 80 C0 A0 A0 60 20 E0 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 5 0 BBX 2 1 1 5 BITMAP C0 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 60 F0 D0 D0 F0 60 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 5 0 BBX 4 3 0 3 BITMAP F0 F0 F0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP 50 F0 E0 50 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 5 0 BBX 4 2 0 1 BITMAP F0 10 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 1 2 BITMAP E0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 1 BITMAP 60 F0 F0 90 60 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 5 0 BBX 2 1 1 5 BITMAP C0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 5 0 BBX 1 2 2 4 BITMAP 80 80 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 0 BITMAP 20 F8 00 F8 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 5 0 BBX 2 3 -1 3 BITMAP C0 C0 C0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 5 0 BBX 2 3 -1 3 BITMAP C0 80 C0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 5 0 BBX 2 1 1 5 BITMAP C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 -2 BITMAP 90 90 90 F0 80 80 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 5 0 BBX 3 8 1 -2 BITMAP E0 E0 E0 60 60 60 60 60 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 2 1 BITMAP 80 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 5 0 BBX 2 2 2 -2 BITMAP 80 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 -1 3 BITMAP C0 40 E0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 5 0 BBX 4 3 0 3 BITMAP 60 90 60 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP A0 70 F0 A0 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP C8 50 E0 38 58 88 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP C8 50 E0 38 58 98 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP C8 90 E0 38 58 88 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 -2 BITMAP 20 00 20 C0 90 70 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 30 20 50 50 50 F0 88 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 30 20 50 50 50 F0 88 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 30 20 50 50 50 F0 88 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 30 20 50 50 50 F0 88 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 30 20 50 50 50 F0 88 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 0 0 BITMAP 20 50 20 50 50 50 F0 88 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 30 60 70 60 E0 B0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 0 -2 BITMAP 70 C0 80 80 C0 70 40 60 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 0 BITMAP 20 F0 80 E0 80 80 F0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 0 BITMAP 40 F0 80 E0 80 80 F0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 0 0 BBX 0 0 0 0 BITMAP ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 0 BITMAP 60 F0 80 E0 80 80 F0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 5 0 BBX 3 7 1 0 BITMAP 20 E0 40 40 40 40 E0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 5 0 BBX 3 7 1 0 BITMAP 40 E0 40 40 40 40 E0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 5 0 BBX 3 7 1 0 BITMAP 60 E0 40 40 40 40 E0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 5 0 BBX 3 7 1 0 BITMAP 60 E0 40 40 40 40 E0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP E0 90 D0 90 90 E0 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 0 0 BITMAP 60 90 D0 D0 B0 B0 90 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 10 70 88 88 88 88 70 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 40 70 88 88 88 88 70 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 60 70 88 88 88 88 70 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 30 70 88 88 88 88 70 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 60 70 88 88 88 88 70 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP 90 60 60 90 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 78 98 B8 E8 C8 F0 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 0 0 BITMAP 60 90 90 90 90 90 F0 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 0 0 BITMAP 60 90 90 90 90 90 F0 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 0 0 BITMAP 60 90 90 90 90 90 F0 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 0 0 BITMAP 60 90 90 90 90 90 F0 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 60 C8 50 30 20 20 20 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 80 E0 90 90 F0 80 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP E0 A0 A0 A0 90 F0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 20 F0 10 F0 F0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 40 F0 10 F0 F0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 60 F0 10 F0 F0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 60 F0 10 F0 F0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 60 F0 10 F0 F0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 40 A0 F0 10 F0 F0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 0 BITMAP F0 28 F8 D8 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 -2 BITMAP 70 80 80 70 40 60 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 60 60 F0 80 70 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 60 60 F0 80 70 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 60 60 F0 80 70 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 60 60 F0 80 70 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 0 BITMAP 20 E0 20 20 20 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 0 BITMAP 40 E0 20 20 20 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 0 BITMAP 60 E0 20 20 20 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 0 BITMAP 60 E0 20 20 20 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP E0 60 70 90 90 60 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 60 F0 90 90 90 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 60 60 90 90 60 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 60 60 90 90 60 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 60 60 90 90 60 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 60 60 90 90 60 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 60 60 90 90 60 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP 40 F0 00 40 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP 70 B0 D0 E0 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 60 90 90 90 F0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 60 90 90 90 F0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 60 90 90 90 F0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 60 90 90 90 F0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 -2 BITMAP 60 88 50 70 20 20 C0 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 0 -2 BITMAP 80 80 F0 90 90 E0 80 80 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 -2 BITMAP 60 88 50 70 20 20 C0 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP E0 A0 E0 A0 A0 A0 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 1 0 2 BITMAP F0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 8 1 -2 BITMAP 40 40 E0 40 40 40 40 40 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 0 0 BITMAP 60 F0 30 20 40 C0 F0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 0 BITMAP 78 A8 B8 78 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 60 C8 50 30 20 20 20 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 4 1 0 BITMAP E0 20 20 20 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP E0 20 30 60 20 20 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 40 40 60 C0 40 78 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 8 1 -2 BITMAP 40 40 E0 40 40 E0 40 40 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP E0 80 E0 A0 A0 A0 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 2 4 1 0 BITMAP 80 40 C0 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 70 A0 B0 A0 A0 70 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 1 0 2 BITMAP F0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 2 1 1 5 BITMAP C0 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 2 -2 BITMAP 80 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 1 5 BITMAP E0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 2 4 1 0 BITMAP 40 C0 80 40 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 2 5 BITMAP 80 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 2 1 1 5 BITMAP C0 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 1 0 BITMAP E0 E0 E0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 2 1 1 5 BITMAP C0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 2 1 1 5 BITMAP C0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 2 1 4 BITMAP A0 A0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 1 3 2 3 BITMAP 80 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 60 F0 C0 30 F0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 3 4 BITMAP 40 A0 40 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 1 3 2 -2 BITMAP 80 80 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 0 -2 BITMAP 30 60 60 E0 40 40 40 80 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 3 0 3 BITMAP E8 68 78 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 08 10 20 20 40 80 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 2 1 1 5 BITMAP C0 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP E0 E0 40 78 B8 B8 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 1 0 0 BITMAP B0 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 2 1 4 BITMAP A0 A0 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 0 0 BITMAP 60 70 80 C0 30 10 E0 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 1 -2 BITMAP A0 A0 A0 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 60 F0 20 40 F0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lutBS10.bdf100644 1750 1750 56203 5413747504 15144 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. COMMENT GRID 0010 0010 0200 0200 FONT -B&H-LucidaTypewriter-Bold-R-Normal-Sans-10-100-75-75-M-60-ISO8859-1 SIZE 10 72 72 FONTBOUNDINGBOX 7 11 0 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaTypewriter" WEIGHT_NAME "Bold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 10 POINT_SIZE 100 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "M" AVERAGE_WIDTH 60 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 9 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 6 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 6 0 BBX 2 7 2 0 BITMAP C0 C0 C0 40 00 C0 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 6 0 BBX 3 3 2 5 BITMAP A0 A0 A0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 68 68 EC 68 EC 68 68 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 6 0 BBX 5 11 1 -2 BITMAP 10 10 78 C0 E0 70 38 18 F0 40 40 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 40 A4 48 30 48 94 08 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 60 D0 D0 60 D8 D0 68 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 6 0 BBX 2 4 2 4 BITMAP C0 C0 40 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 -1 BITMAP 30 60 C0 C0 C0 C0 C0 60 30 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 -1 BITMAP C0 60 30 30 30 30 30 60 C0 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 6 0 BBX 5 3 1 4 BITMAP D8 60 D8 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 1 BITMAP 20 20 F8 20 20 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 6 0 BBX 2 4 2 -2 BITMAP C0 C0 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 6 0 BBX 5 1 1 3 BITMAP F8 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 6 0 BBX 2 2 2 0 BITMAP C0 C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 -1 BITMAP 0C 0C 18 18 30 60 60 C0 C0 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 70 D8 D8 D8 D8 D8 70 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP 30 F0 30 30 30 30 30 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 70 D8 18 30 60 C0 F8 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 70 D8 18 70 18 D8 70 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 30 70 B0 B0 F8 30 30 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP F8 C0 C0 F0 18 D8 70 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 70 D8 C0 F0 D8 D8 70 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP F8 F8 08 10 30 60 60 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 70 D8 D8 70 D8 D8 70 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 70 D8 D8 78 18 D8 70 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 6 0 BBX 2 6 2 0 BITMAP C0 C0 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 6 0 BBX 2 8 2 -2 BITMAP C0 C0 00 00 C0 C0 40 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 6 0 BBX 4 5 1 1 BITMAP 30 60 C0 60 30 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 6 0 BBX 5 3 1 2 BITMAP F8 00 F8 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 6 0 BBX 4 5 1 1 BITMAP C0 60 30 60 C0 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP F0 18 18 70 00 60 60 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 70 88 B8 A8 B8 80 78 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 30 30 58 58 FC 8C 8C ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP F0 C8 C8 F0 C8 C8 F0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 78 E8 C0 C0 C0 E0 78 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP F0 D8 C8 C8 C8 D8 F0 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP F0 C0 C0 F0 C0 C0 F0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP F8 C0 C0 F0 C0 C0 C0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 78 E0 C0 C8 C8 E8 78 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP C8 C8 C8 F8 C8 C8 C8 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP F0 60 60 60 60 60 F0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 0 -2 BITMAP 70 30 30 30 30 30 30 30 E0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP C8 D0 D0 E0 D0 C8 C8 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP C0 C0 C0 C0 C0 C0 F8 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 84 CC FC FC AC AC 8C ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 88 C8 E8 F8 B8 98 88 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 70 C8 C8 C8 C8 C8 70 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP F0 C8 C8 F0 C0 C0 C0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 -2 BITMAP 70 C8 C8 C8 C8 C8 70 30 18 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP F0 C8 C8 F0 D0 C8 C8 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 78 C0 E0 70 38 18 F0 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP FC 30 30 30 30 30 30 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP C8 C8 C8 C8 C8 C8 70 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP C4 C4 CC 68 78 30 30 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP C4 D4 D4 D4 FC 68 68 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP C8 C8 70 20 70 98 98 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP C4 C4 68 30 30 30 30 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP F8 18 30 70 60 C0 F8 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 2 -1 BITMAP F0 C0 C0 C0 C0 C0 C0 C0 F0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 -1 BITMAP C0 C0 60 60 30 18 18 0C 0C ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 -1 BITMAP F0 30 30 30 30 30 30 30 F0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 1 BITMAP 30 30 58 58 8C 8C ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 6 0 BBX 6 1 0 -1 BITMAP FC ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 6 0 BBX 2 4 2 4 BITMAP 40 80 C0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 70 18 78 D8 D8 68 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP C0 C0 F0 D8 D8 D8 D8 F0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 0 BITMAP 70 C0 C0 C0 C0 70 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 18 18 78 D8 D8 D8 D8 68 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 70 D8 D8 F8 C0 78 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 38 60 F8 60 60 60 60 60 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 -2 BITMAP 78 D8 D8 D8 D8 78 18 F0 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP C0 C0 D0 F8 D8 D8 D8 D8 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 0 BITMAP 30 00 F0 30 30 30 30 30 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 6 0 BBX 4 10 1 -2 BITMAP 30 00 F0 30 30 30 30 30 30 E0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP C0 C0 C8 D0 E0 F0 D8 C8 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 0 BITMAP F0 30 30 30 30 30 30 30 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP F0 A8 A8 A8 A8 A8 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP B0 D8 D8 D8 D8 D8 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 70 D8 D8 D8 D8 70 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 -2 BITMAP B0 D8 D8 D8 D8 F0 C0 C0 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 -2 BITMAP 78 D8 D8 D8 D8 78 18 18 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP D8 F8 C0 C0 C0 C0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 78 C0 F0 78 18 F0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 60 F8 60 60 60 60 38 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP D8 D8 D8 D8 D8 68 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP CC CC 68 78 30 30 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP C4 D4 D4 D4 68 68 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP EC 68 30 30 58 DC ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 -2 BITMAP C8 C8 D8 50 70 30 20 60 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP F8 38 70 E0 C0 F8 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 -1 BITMAP 38 60 60 20 C0 20 60 60 38 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 6 0 BBX 2 9 2 -1 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 -1 BITMAP E0 30 30 20 18 20 30 30 E0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 6 0 BBX 6 2 0 3 BITMAP 74 B8 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 6 0 BBX 2 7 2 -1 BITMAP C0 C0 00 80 C0 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 6 0 BBX 5 10 1 -2 BITMAP 10 10 78 C0 C0 C0 C0 78 10 10 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 38 60 60 F8 60 60 F8 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 84 78 68 68 68 78 84 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP CC CC 68 30 FC 30 30 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 6 0 BBX 2 9 2 -1 BITMAP C0 C0 C0 00 00 C0 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 -1 BITMAP 78 C0 F0 98 C8 78 18 F0 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 6 0 BBX 3 2 2 7 BITMAP A0 A0 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 78 84 B4 A4 B4 84 78 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 2 BITMAP 70 18 78 D8 68 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 6 0 BBX 6 3 0 2 BITMAP 6C D8 6C ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 6 0 BBX 5 3 1 1 BITMAP F8 08 08 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 6 0 BBX 2 1 2 3 BITMAP C0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 78 84 B4 B4 AC 84 78 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 2 7 BITMAP E0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 6 0 BBX 4 3 1 4 BITMAP 60 D0 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 20 20 F8 20 20 00 F8 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 2 BITMAP F0 38 70 C0 F8 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 2 BITMAP F0 18 70 18 F0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 6 0 BBX 3 2 2 7 BITMAP 60 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 -2 BITMAP D8 D8 D8 D8 D8 E8 C0 C0 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 -1 BITMAP 78 E8 E8 68 28 28 28 28 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 6 0 BBX 2 3 2 2 BITMAP C0 C0 C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 6 0 BBX 3 2 1 -2 BITMAP 20 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 6 0 BBX 3 5 1 2 BITMAP E0 60 60 60 60 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 2 BITMAP 70 D8 D8 D8 70 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 6 0 BBX 6 3 0 2 BITMAP D8 6C D8 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 -1 BITMAP C0 40 44 58 20 D8 38 7C 18 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 -1 BITMAP C0 44 48 50 20 5C 8C 18 1C ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 6 0 BBX 6 10 0 -1 BITMAP C0 60 C0 64 D8 20 D8 38 7C 18 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 -1 BITMAP 30 30 00 70 C0 C0 78 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP 60 30 00 30 30 58 58 FC 8C ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP 18 30 00 30 30 58 58 FC 8C ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP 30 58 00 30 30 58 58 FC 8C ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP 34 58 00 30 30 58 58 FC 8C ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP 48 48 00 30 30 58 58 FC 8C ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP 30 58 30 30 58 58 FC 8C 8C ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 3C 30 50 5C F0 90 9C ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 -2 BITMAP 78 E8 C0 C0 C0 E0 78 10 60 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP C0 60 00 F0 C0 F0 C0 C0 F0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 30 60 00 F0 C0 F0 C0 C0 F0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 60 B0 00 F0 C0 F0 C0 C0 F0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 50 50 00 F0 C0 F0 C0 C0 F0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP C0 60 00 F0 60 60 60 60 F0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 30 60 00 F0 60 60 60 60 F0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 60 B0 00 F0 60 60 60 60 F0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 90 90 00 F0 60 60 60 60 F0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 78 6C 64 F4 64 6C 78 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 68 B0 00 C8 E8 F8 B8 98 88 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 60 30 00 70 C8 C8 C8 C8 70 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 30 60 00 70 C8 C8 C8 C8 70 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 30 58 00 70 C8 C8 C8 C8 70 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 68 B0 00 70 C8 C8 C8 C8 70 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 50 50 00 70 C8 C8 C8 C8 70 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 6 0 BBX 6 5 0 1 BITMAP C4 68 30 58 8C ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 -1 BITMAP 08 70 C8 D8 E8 E8 C8 70 80 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 60 30 00 C8 C8 C8 C8 C8 70 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 30 60 00 C8 C8 C8 C8 C8 70 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 30 58 00 C8 C8 C8 C8 C8 70 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 50 50 00 C8 C8 C8 C8 C8 70 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP 18 30 00 C4 68 68 30 30 30 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP C0 F0 C8 C8 F0 C0 C0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 70 C8 C8 D0 C8 C8 C8 D0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 60 30 00 70 18 78 D8 D8 68 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 30 60 00 70 18 78 D8 D8 68 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 30 58 00 70 18 78 D8 D8 68 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 68 B0 00 70 18 78 D8 D8 68 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 50 50 00 70 18 78 D8 D8 68 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 30 58 30 70 18 78 D8 D8 68 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP F8 34 F4 BC B0 DC ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 -2 BITMAP 70 C0 C0 C0 C0 70 20 C0 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 60 30 00 70 D8 D8 F8 C0 78 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 30 60 00 70 D8 D8 F8 C0 78 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 30 58 00 70 D8 D8 F8 C0 78 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 50 50 00 70 D8 D8 F8 C0 78 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 60 30 00 F0 30 30 30 30 30 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 30 60 00 F0 30 30 30 30 30 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 30 58 00 F0 30 30 30 30 30 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 50 50 00 F0 30 30 30 30 30 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP EC 30 58 3C 6C 6C 6C 38 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 68 B0 00 B0 D8 D8 D8 D8 D8 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 60 30 00 70 D8 D8 D8 D8 70 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 30 60 00 70 D8 D8 D8 D8 70 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 30 58 00 70 D8 D8 D8 D8 70 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 68 B0 00 70 D8 D8 D8 D8 70 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 50 50 00 70 D8 D8 D8 D8 70 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 1 BITMAP 20 00 F8 00 20 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 -1 BITMAP 08 70 D8 F8 D8 D8 70 80 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 60 30 00 D8 D8 D8 D8 D8 68 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 30 60 00 D8 D8 D8 D8 D8 68 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 30 58 00 D8 D8 D8 D8 D8 68 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 50 50 00 D8 D8 D8 D8 D8 68 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 6 0 BBX 5 11 1 -2 BITMAP 18 30 00 C8 C8 D8 50 70 30 20 60 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 6 0 BBX 5 10 1 -2 BITMAP C0 C0 F0 D8 D8 D8 D8 F0 C0 C0 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 6 0 BBX 5 11 1 -2 BITMAP 50 50 00 C8 C8 D8 50 70 30 20 60 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 0 BITMAP 38 68 F8 68 68 68 68 68 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 1 1 3 BITMAP F0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 -1 BITMAP 30 30 FC 30 30 30 30 30 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 58 30 00 F8 18 30 60 C0 F8 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 78 B4 B4 BC B0 7C ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP 28 28 00 C4 68 68 30 30 30 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 0 BITMAP F0 30 30 30 30 30 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 0 BITMAP F0 30 3C 30 F0 30 30 30 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 60 60 68 70 E0 60 7C ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 -1 BITMAP 30 30 FC 30 30 FC 30 30 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 0 BITMAP 38 60 F8 68 68 68 68 68 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 3 2 2 BITMAP C0 60 C0 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 7C D0 D0 DC D0 D0 7C ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 1 1 3 BITMAP F0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 2 1 7 BITMAP B0 60 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 2 2 -2 BITMAP 80 60 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 2 1 7 BITMAP D8 90 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 3 2 2 BITMAP 60 C0 60 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 2 2 2 7 BITMAP C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 2 1 7 BITMAP 88 70 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 3 2 2 BITMAP E0 E0 E0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 2 1 7 BITMAP 68 B0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 2 1 7 BITMAP 60 B0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 4 1 4 BITMAP 48 90 D8 D8 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 1 3 3 5 BITMAP 80 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 58 30 00 78 C0 F0 78 18 F0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 3 1 6 BITMAP 60 B0 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 2 4 2 -2 BITMAP C0 C0 40 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 -1 BITMAP 38 60 60 F8 60 60 C0 C0 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 3 0 4 BITMAP FC 5C 5C ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 0C 18 18 30 60 60 C0 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 2 2 7 BITMAP C0 60 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP 40 A0 4C 30 C0 28 54 28 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 1 1 0 BITMAP 90 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 4 1 4 BITMAP D8 D8 48 90 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 58 30 00 78 E0 70 38 18 F0 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 4 1 -2 BITMAP D8 D8 48 90 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 58 30 00 F8 38 70 E0 C0 F8 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lutBS12.bdf100644 1750 1750 60212 5413747505 15142 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. COMMENT GRID 0012 0012 0200 0200 FONT -B&H-LucidaTypewriter-Bold-R-Normal-Sans-12-120-75-75-M-70-ISO8859-1 SIZE 12 72 72 FONTBOUNDINGBOX 7 13 0 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaTypewriter" WEIGHT_NAME "Bold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 12 POINT_SIZE 120 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "M" AVERAGE_WIDTH 70 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 11 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 7 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 7 0 BBX 2 9 3 0 BITMAP C0 C0 C0 C0 C0 40 00 C0 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 7 0 BBX 5 4 2 6 BITMAP D8 D8 90 90 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 6C 6C FE 6C 6C FE 6C 6C 6C ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 7 0 BBX 6 13 1 -2 BITMAP 10 10 78 C4 C0 E0 78 1C 0C 8C 78 20 20 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 62 B6 B4 68 10 2C 56 D6 8C ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 70 D8 D8 D0 64 F4 D8 CC 74 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 7 0 BBX 2 4 3 6 BITMAP C0 C0 40 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 7 0 BBX 4 11 2 -1 BITMAP 30 60 C0 C0 C0 C0 C0 C0 C0 60 30 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 7 0 BBX 4 11 1 -1 BITMAP C0 60 30 30 30 30 30 30 30 60 C0 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 7 0 BBX 5 5 1 4 BITMAP 20 A8 70 A8 20 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 1 BITMAP 10 10 10 FE 10 10 10 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 7 0 BBX 2 4 3 -2 BITMAP C0 C0 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 1 4 BITMAP FC ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 3 0 BITMAP C0 C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 7 0 BBX 7 11 0 -1 BITMAP 06 06 0C 0C 18 18 30 60 60 C0 C0 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 78 CC CC CC CC CC CC CC 78 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 7 0 BBX 4 9 1 0 BITMAP 30 F0 30 30 30 30 30 30 30 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 78 CC 0C 1C 38 60 C0 FC FC ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 78 CC 0C 0C 78 0C 0C CC 78 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 18 38 58 58 98 FC FC 18 18 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 7C 7C 40 40 78 0C 0C CC 78 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 78 CC C0 C0 F8 CC CC CC 78 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP FC FC 0C 18 30 30 60 60 60 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 78 CC CC EC 78 DC CC CC 78 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 78 CC CC CC 7C 0C 0C CC 78 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 7 0 BBX 2 7 3 0 BITMAP C0 C0 00 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 7 0 BBX 2 9 3 -2 BITMAP C0 C0 00 00 00 C0 C0 40 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 1 BITMAP 0C 38 60 C0 60 38 0C ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 7 0 BBX 6 3 1 3 BITMAP FC 00 FC ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 1 BITMAP C0 70 18 0C 18 70 C0 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 2 0 BITMAP 70 98 18 30 60 60 00 60 60 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 7C C6 9E B6 B6 B6 9A C0 7C ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 30 30 58 58 58 FC 8C 8C 8C ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP F8 CC CC C8 F0 C8 CC CC F8 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 38 6C C0 C0 C0 C0 C0 64 38 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP F0 D8 CC CC CC CC CC D8 F0 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 2 0 BITMAP F8 C0 C0 C0 F0 C0 C0 C0 F8 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 2 0 BITMAP F8 C0 C0 C0 F0 C0 C0 C0 C0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 38 6C C0 C0 C0 CC CC 6C 3C ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP CC CC CC CC FC CC CC CC CC ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP FC 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP F8 18 18 18 18 18 18 18 F0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP C4 CC C8 D0 E0 F0 D8 CC CC ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 2 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 F8 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP CC CC FC FC AC AC AC AC 8C ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP C4 C4 E4 F4 B4 BC 9C 8C 8C ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 78 48 CC CC CC CC CC 48 78 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP F8 CC CC CC C8 F0 C0 C0 C0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 -2 BITMAP 78 48 CC CC CC CC CC 48 78 18 0C ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP F8 CC CC C8 F0 D8 D8 CC CC ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 78 CC C0 E0 78 1C 0C CC 78 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP FC 30 30 30 30 30 30 30 30 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP C4 C4 C4 C4 C4 C4 C4 68 30 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP CC CC CC C8 68 68 70 30 30 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP C4 C4 D4 D4 D4 7C 68 68 68 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP CC CC 68 70 30 38 58 CC CC ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP CC CC CC 48 78 30 30 30 30 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP FC 0C 1C 38 30 70 E0 C0 FC ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 7 0 BBX 4 11 2 -1 BITMAP F0 C0 C0 C0 C0 C0 C0 C0 C0 C0 F0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 7 0 BBX 7 11 0 -1 BITMAP C0 C0 60 60 30 30 18 0C 0C 06 06 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 7 0 BBX 4 11 2 -1 BITMAP F0 30 30 30 30 30 30 30 30 30 F0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 2 BITMAP 10 38 28 6C 44 C6 82 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 7 0 BBX 7 1 0 -1 BITMAP FE ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 7 0 BBX 2 4 3 6 BITMAP 40 80 C0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 78 CC 0C 7C CC CC 74 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP C0 C0 C0 D8 EC CC CC CC CC F8 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 78 CC C0 C0 C0 C4 78 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 0C 0C 0C 7C CC CC CC CC DC 6C ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 78 CC CC FC C0 C4 78 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 3C 60 60 FC 60 60 60 60 60 60 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 -2 BITMAP 7C CC CC CC DC 6C 0C CC 78 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP C0 C0 C0 D8 EC CC CC CC CC CC ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 7 0 BBX 4 10 1 0 BITMAP 30 30 00 F0 30 30 30 30 30 30 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 7 0 BBX 4 12 1 -2 BITMAP 30 30 00 F0 30 30 30 30 30 30 30 E0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP C0 C0 C0 CC C8 D0 F0 D8 CC CC ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 7 0 BBX 4 10 1 0 BITMAP F0 30 30 30 30 30 30 30 30 30 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP F8 D4 D4 D4 D4 D4 D4 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP D8 EC CC CC CC CC CC ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 78 CC CC CC CC CC 78 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 -2 BITMAP D8 EC CC CC CC CC F8 C0 C0 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 -2 BITMAP 7C CC CC CC CC DC 6C 0C 0C ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 2 0 BITMAP D8 D8 E0 C0 C0 C0 C0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 7C C0 E0 78 1C 0C F8 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 20 60 FC 60 60 60 60 60 3C ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP CC CC CC CC CC DC 6C ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP CC CC CC 68 68 30 30 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP C4 D4 D4 D4 68 68 68 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP CC CC 68 30 58 CC CC ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 -2 BITMAP CC CC CC 68 68 30 30 20 60 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP FC 1C 38 70 E0 C0 FC ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 7 0 BBX 4 11 2 -1 BITMAP 70 C0 C0 60 20 C0 20 60 C0 C0 70 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 7 0 BBX 2 11 3 -1 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 7 0 BBX 4 11 2 -1 BITMAP E0 30 30 60 40 30 40 60 30 30 E0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 7 0 BBX 6 3 1 3 BITMAP 64 B4 98 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 7 0 BBX 2 9 3 -2 BITMAP C0 C0 00 80 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 -1 BITMAP 10 10 78 CC C0 C0 C0 CC 78 10 10 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 3C 62 60 60 F8 60 60 60 FE ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 82 C6 7C 4C 4C 4C 7C C6 82 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP C4 C4 CC 68 FC 30 FC 30 30 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 7 0 BBX 2 11 3 -1 BITMAP C0 C0 C0 C0 00 00 00 C0 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 -1 BITMAP 78 CC E0 78 8C C4 78 1C CC 78 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 2 8 BITMAP 90 90 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 38 44 9A A2 A2 A2 9A 44 38 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 3 BITMAP 70 18 78 D8 D8 6C ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 7 0 BBX 7 5 0 1 BITMAP 36 6C D8 6C 36 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 7 0 BBX 6 4 1 1 BITMAP FC 04 04 04 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 7 0 BBX 3 1 2 4 BITMAP E0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 2 BITMAP 38 44 BA B2 AA 44 38 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 2 8 BITMAP F0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 7 0 BBX 4 4 2 5 BITMAP 60 D0 D0 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 1 BITMAP 10 10 FE 10 10 00 FE ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 3 BITMAP F0 18 18 70 C0 F8 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 3 BITMAP F0 18 70 18 18 F0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 7 0 BBX 3 2 3 8 BITMAP 60 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 -2 BITMAP CC CC CC CC CC DC EC C0 C0 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 0 -1 BITMAP 7C F4 F4 F4 74 14 14 14 14 14 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 3 3 BITMAP C0 C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 7 0 BBX 3 2 2 -2 BITMAP 20 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 7 0 BBX 3 6 1 3 BITMAP E0 60 60 60 60 60 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 3 BITMAP 70 D8 D8 D8 D8 70 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 7 0 BBX 7 5 0 1 BITMAP D8 6C 36 6C D8 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 0 0 BITMAP E0 60 62 6C 10 6C 9C 2C 3E 0C ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 0 0 BITMAP E0 60 62 6C 10 6C 96 06 0C 1E ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 0 0 BITMAP E0 60 C4 68 F0 2C 5C AC 3E 0C ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 -2 BITMAP 30 30 00 30 30 60 C0 C8 70 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 60 30 00 30 58 58 58 FC 8C 8C 8C ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 18 30 00 30 58 58 58 FC 8C 8C 8C ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 30 58 00 30 58 58 58 FC 8C 8C 8C ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 68 B0 00 30 58 58 58 FC 8C 8C 8C ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 48 48 00 30 58 58 58 FC 8C 8C 8C ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 30 58 30 30 58 58 58 FC 8C 8C 8C ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 3E 38 58 58 5E 98 F8 98 9E ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 -2 BITMAP 38 6C C0 C0 C0 C0 C0 64 38 10 60 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 2 0 BITMAP 60 30 00 F8 C0 C0 F0 C0 C0 C0 F8 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 2 0 BITMAP 30 60 00 F8 C0 C0 F0 C0 C0 C0 F8 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 2 0 BITMAP 30 58 00 F8 C0 C0 F0 C0 C0 C0 F8 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 2 0 BITMAP 48 48 00 F8 C0 C0 F0 C0 C0 C0 F8 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 60 30 00 FC 30 30 30 30 30 30 FC ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 18 30 00 FC 30 30 30 30 30 30 FC ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 30 58 00 FC 30 30 30 30 30 30 FC ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 48 48 00 FC 30 30 30 30 30 30 FC ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 78 6C 66 66 F6 66 66 6C 78 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 34 58 00 C4 E4 E4 B4 BC 9C 8C 8C ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 60 30 00 78 48 CC CC CC CC 48 78 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 18 30 00 78 48 CC CC CC CC 48 78 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 30 58 00 78 48 CC CC CC CC 48 78 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 68 B0 00 78 48 CC CC CC CC 48 78 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 48 48 00 78 48 CC CC CC CC 48 78 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 1 BITMAP C2 64 38 18 2C 46 82 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 -1 BITMAP 04 7C 48 DC DC EC EC CC 48 F8 80 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 60 30 00 C4 C4 C4 C4 C4 C4 68 30 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 18 30 00 C4 C4 C4 C4 C4 C4 68 30 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 30 58 00 C4 C4 C4 C4 C4 C4 68 30 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 48 48 00 C4 C4 C4 C4 C4 C4 68 30 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 18 30 00 CC CC 48 78 30 30 30 30 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP C0 C0 F8 CC CC CC F8 C0 C0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 70 D8 C8 C8 D0 C8 CC CC CC D8 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 60 30 00 78 CC 0C 7C CC CC 74 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 18 30 00 78 CC 0C 7C CC CC 74 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 30 58 00 78 CC 0C 7C CC CC 74 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 68 B0 00 78 CC 0C 7C CC CC 74 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 48 48 00 78 CC 0C 7C CC CC 74 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 30 58 30 00 78 CC 0C 7C CC CC 74 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 0 BITMAP 6E 9A 1A 7E D8 D8 6E ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 -2 BITMAP 78 CC C0 C0 C0 C4 78 20 C0 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 30 18 00 78 CC CC FC C0 C4 78 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 18 30 00 78 CC CC FC C0 C4 78 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 30 58 00 78 CC CC FC C0 C4 78 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 48 48 00 78 CC CC FC C0 C4 78 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 7 0 BBX 4 10 1 0 BITMAP 60 30 00 F0 30 30 30 30 30 30 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP 18 30 00 F0 30 30 30 30 30 30 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP 30 58 00 F0 30 30 30 30 30 30 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP 48 48 00 F0 30 30 30 30 30 30 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 30 1C 38 0C 7C CC CC CC CC 78 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 68 B0 00 D8 EC CC CC CC CC CC ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 60 30 00 78 CC CC CC CC CC 78 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 18 30 00 78 CC CC CC CC CC 78 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 30 58 00 78 CC CC CC CC CC 78 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 68 B0 00 78 CC CC CC CC CC 78 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 48 48 00 78 CC CC CC CC CC 78 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 1 BITMAP 10 10 00 FE 00 10 10 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 -1 BITMAP 04 7C CC DC EC CC CC F8 80 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 60 30 00 CC CC CC CC CC DC 6C ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 18 30 00 CC CC CC CC CC DC 6C ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 30 58 00 CC CC CC CC CC DC 6C ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 48 48 00 CC CC CC CC CC DC 6C ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 7 0 BBX 6 12 1 -2 BITMAP 18 30 00 CC CC CC 68 68 30 30 20 60 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 -2 BITMAP C0 C0 D8 EC CC CC CC CC F8 C0 C0 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 7 0 BBX 6 12 1 -2 BITMAP 48 48 00 CC CC CC 68 68 30 30 20 60 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 0 0 BITMAP 3E 66 66 FE 66 66 66 66 66 66 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 2 4 BITMAP F0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 -1 BITMAP 30 30 30 FC 30 30 30 30 30 30 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 58 30 00 FC 0C 1C 38 70 E0 C0 FC ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 0 BITMAP 6C 9A 9A 9E 98 98 6E ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 48 48 00 CC CC 48 78 30 30 30 30 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 7 1 0 BITMAP F0 30 30 30 30 30 30 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP F0 30 30 3C F0 30 30 30 30 30 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 30 30 30 3C F0 30 30 30 3E ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 -1 BITMAP 30 30 30 FC 30 30 FC 30 30 30 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 0 0 BITMAP 3E 66 60 FE 66 66 66 66 66 66 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 5 2 1 BITMAP C0 60 30 60 C0 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 7E 98 98 98 9E 98 98 98 7E ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 1 0 4 BITMAP FE ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 2 8 BITMAP B0 60 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 2 3 -2 BITMAP 80 60 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 2 2 8 BITMAP D8 90 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 5 1 1 BITMAP 30 60 C0 60 30 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 3 8 BITMAP C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 2 8 BITMAP 90 60 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 3 2 3 BITMAP E0 E0 E0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 2 2 8 BITMAP 68 B0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 2 8 BITMAP 60 B0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 4 1 6 BITMAP 48 90 D8 D8 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 4 2 6 BITMAP C0 C0 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 58 30 00 7C C0 E0 78 1C 0C F8 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 3 2 8 BITMAP 60 B0 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 4 3 -2 BITMAP C0 C0 40 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 0 -1 BITMAP 1C 32 30 30 FC 60 60 C0 C0 C0 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 3 0 6 BITMAP FE 5E 52 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 06 06 0C 18 18 30 60 C0 C0 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 2 2 8 BITMAP C0 60 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 60 B0 64 18 60 80 6C B6 6C ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 1 0 BITMAP 90 90 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 4 1 6 BITMAP D8 D8 48 90 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 58 30 00 78 CC C0 F8 7C 0C CC 78 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 4 1 -2 BITMAP D8 D8 48 90 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 58 30 00 FC 1C 38 70 E0 C0 FC ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lutBS14.bdf100644 1750 1750 61656 5413747505 15161 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. COMMENT GRID 0014 0014 0200 0200 FONT -B&H-LucidaTypewriter-Bold-R-Normal-Sans-14-140-75-75-M-90-ISO8859-1 SIZE 14 72 72 FONTBOUNDINGBOX 9 15 0 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaTypewriter" WEIGHT_NAME "Bold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 14 POINT_SIZE 140 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "M" AVERAGE_WIDTH 90 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 13 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 9 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 9 0 BBX 2 10 3 0 BITMAP C0 C0 C0 C0 C0 C0 80 00 C0 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 9 0 BBX 4 4 3 7 BITMAP 90 90 90 90 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP 1B00 1B00 1B00 FF80 3600 3600 FF80 6C00 6C00 6C00 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 1 -1 BITMAP 08 7C CA C8 E8 78 3C 2E 26 A6 7C 20 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 70 D9 DA 74 08 10 2E 5B 9B 0E ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 38 6C 6C 68 33 5B CA CC EE 73 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 9 0 BBX 3 4 3 7 BITMAP E0 E0 20 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 9 0 BBX 5 12 2 -1 BITMAP 18 30 60 60 C0 C0 C0 C0 60 60 30 18 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 9 0 BBX 5 12 2 -1 BITMAP C0 60 30 30 18 18 18 18 30 30 60 C0 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 9 0 BBX 5 5 2 5 BITMAP 20 A8 70 A8 20 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 1 BITMAP 10 10 10 FE 10 10 10 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 9 0 BBX 3 4 3 -2 BITMAP E0 E0 20 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 9 0 BBX 7 1 1 4 BITMAP FE ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 9 0 BBX 3 2 3 0 BITMAP E0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 1 -1 BITMAP 06 06 0C 0C 18 18 30 30 60 60 C0 C0 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 38 6C C6 C6 C6 C6 C6 C6 6C 38 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 9 0 BBX 4 10 2 0 BITMAP 30 70 B0 30 30 30 30 30 30 30 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 7C CE 06 06 0C 18 30 60 FE FE ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 7C CE 06 0C 38 0C 06 06 CE 7C ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 0C 1C 2C 4C 8C FE FE 0C 0C 0C ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP FE FE 80 80 FC 0E 06 06 CC 78 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 3C 66 C0 D8 EC C6 C6 C6 6C 38 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP FE FE 06 0C 18 30 30 60 60 60 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 7C C6 C6 E4 78 7C CE C6 C6 7C ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 38 6C C6 C6 C6 6E 36 06 CC 78 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 9 0 BBX 2 7 3 0 BITMAP C0 C0 00 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 9 0 BBX 2 9 3 -2 BITMAP C0 C0 00 00 00 C0 C0 40 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 9 0 BBX 5 7 2 1 BITMAP 18 30 60 C0 60 30 18 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 9 0 BBX 7 3 1 3 BITMAP FE 00 FE ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 9 0 BBX 5 7 2 1 BITMAP C0 60 30 18 30 60 C0 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 7C C6 06 06 1C 30 30 00 30 30 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP 1E00 6300 4300 8F00 9B00 9B00 9B00 4D80 6000 1E00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 18 18 2C 2C 66 46 FE C3 C3 C3 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP F8 CC CC C8 F0 C8 CC CC CC F8 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 3C 66 C0 C0 C0 C0 C0 C0 66 3C ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP F8 CC C6 C6 C6 C6 C6 C6 CC F8 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP FC C0 C0 C0 F8 C0 C0 C0 C0 FC ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP FC C0 C0 C0 C0 FC C0 C0 C0 C0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 3C 66 C0 C0 C0 C6 C6 C6 66 3E ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP C6 C6 C6 C6 FE C6 C6 C6 C6 C6 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP FC 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 1 0 BITMAP 7C 0C 0C 0C 0C 0C 0C 0C 18 F0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP C6 CC C8 D0 F0 D8 CC CC C6 C6 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 FC ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP C3 C3 E7 E7 EF BB BB 93 83 83 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP C2 E2 E2 B2 B2 9A 9A 8E 8E 86 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 3C 66 C3 C3 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP FC C6 C6 C6 CC F8 C0 C0 C0 C0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 -2 BITMAP 3C 66 C3 C3 C3 C3 C3 C3 66 3C 06 03 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP F8 CC CC CC D8 F0 CC CC C6 C6 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 7C C6 C0 E0 78 1C 0E 06 C6 7C ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP FF 18 18 18 18 18 18 18 18 18 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP C6 C6 C6 C6 C6 C6 C6 C6 6C 38 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP C3 C3 C3 62 62 66 34 34 18 18 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP C3 C3 DB DB DB DB 66 66 66 66 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP C6 C6 C6 64 38 38 4C C6 C6 C6 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP C3 C3 62 66 34 18 18 18 18 18 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP FE 06 0C 18 18 30 60 60 C0 FE ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 9 0 BBX 5 12 2 -1 BITMAP F8 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 F8 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 1 -1 BITMAP C0 C0 60 60 30 30 18 18 0C 0C 06 06 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 9 0 BBX 5 12 2 -1 BITMAP F8 18 18 18 18 18 18 18 18 18 18 F8 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 9 0 BBX 6 7 2 3 BITMAP 30 30 78 48 CC 84 84 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 9 0 BBX 9 1 0 -1 BITMAP FF80 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 9 0 BBX 3 4 3 7 BITMAP 60 80 E0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 1 0 BITMAP 7C 06 06 7E C6 C6 CE 77 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP C0 C0 C0 D8 EC C6 C6 C6 C6 CC F8 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP 3C 66 C0 C0 C0 C0 62 3C ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 06 06 06 3E 66 C6 C6 C6 C6 6E 36 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP 3C 66 C6 FE C0 C0 62 3C ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 1E 30 30 30 FE 30 30 30 30 30 30 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 -2 BITMAP 3E 66 C6 C6 C6 6E 36 06 CC 78 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP C0 C0 C0 DC EE C6 C6 C6 C6 C6 C6 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 9 0 BBX 5 11 1 0 BITMAP 18 18 00 F8 18 18 18 18 18 18 18 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 1 -2 BITMAP 0C 0C 00 7C 0C 0C 0C 0C 0C 0C 0C 0C F8 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP C0 C0 C0 C6 C4 C8 F0 D8 CC C6 C7 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 9 0 BBX 5 11 1 0 BITMAP F8 18 18 18 18 18 18 18 18 18 18 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP AC D6 D6 D6 D6 D6 D6 D6 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP DC EE C6 C6 C6 C6 C6 C6 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP 38 6C C6 C6 C6 C6 6C 38 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 -2 BITMAP D8 EC C6 C6 C6 C6 CC F8 C0 C0 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 -2 BITMAP 3E 66 C6 C6 C6 C6 6E 36 06 06 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 9 0 BBX 6 8 2 0 BITMAP CC DC E4 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP 7C C6 C0 F8 3E 06 C6 7C ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 30 30 FE 30 30 30 30 30 30 1E ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP C6 C6 C6 C6 C6 C6 EE 76 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP C6 C6 C6 6C 6C 68 38 30 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 1 0 BITMAP C1 C1 C9 DD DD 66 66 66 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP C6 C6 64 38 38 4C C6 C6 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 -2 BITMAP C6 C6 C6 6C 6C 38 30 30 60 60 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP FE 06 0C 18 30 60 C0 FE ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 9 0 BBX 6 12 2 -1 BITMAP 3C 60 60 30 10 E0 10 30 60 60 60 3C ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 9 0 BBX 2 12 4 -1 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 9 0 BBX 6 12 1 -1 BITMAP F0 18 18 30 20 1C 20 30 18 18 18 F0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 9 0 BBX 7 3 1 3 BITMAP 72 BA 9C ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 9 0 BBX 2 10 3 -2 BITMAP C0 C0 00 80 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 1 -1 BITMAP 08 08 3C 6A C8 C8 C8 C8 68 3E 08 08 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 1C 32 30 30 FC 30 30 30 60 FE ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP 8080 4100 3E00 3600 6300 6300 3600 3E00 4100 8080 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP C3 C3 62 66 34 7E 18 7E 18 18 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 9 0 BBX 2 12 4 -1 BITMAP C0 C0 C0 C0 C0 00 00 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 -1 BITMAP 7C C6 C0 78 CC C6 66 3C 06 C6 7C ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 9 0 BBX 3 2 3 9 BITMAP A0 A0 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 3C 42 9D B1 B1 B1 B1 9D 42 3C ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 3 BITMAP 78 0C 0C 7C CC DC 6E ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 9 0 BBX 8 5 1 2 BITMAP 33 66 CC 66 33 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 9 0 BBX 7 3 1 3 BITMAP FE 02 02 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 9 0 BBX 4 2 3 3 BITMAP F0 F0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 1 2 BITMAP 3C 42 B9 B5 B9 B5 42 3C ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 9 0 BBX 3 1 3 10 BITMAP E0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 9 0 BBX 5 4 2 6 BITMAP 70 D8 D8 70 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 1 BITMAP 10 10 FE 10 10 00 FE ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 9 0 BBX 5 7 2 3 BITMAP F0 18 18 30 60 C0 F8 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 9 0 BBX 5 7 2 3 BITMAP F0 18 18 70 18 18 F0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 9 0 BBX 4 2 3 9 BITMAP 30 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 -2 BITMAP C6 C6 C6 C6 C6 C6 EE F6 C0 C0 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 9 0 BBX 6 11 2 -1 BITMAP 7C F4 F4 F4 F4 74 14 14 14 14 14 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 9 0 BBX 3 2 3 3 BITMAP E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 9 0 BBX 3 2 2 -2 BITMAP 20 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 9 0 BBX 6 7 1 3 BITMAP 70 B0 30 30 30 30 FC ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 3 BITMAP 38 6C C6 C6 C6 6C 38 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 9 0 BBX 8 5 0 2 BITMAP CC 66 33 66 CC ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP 6400 E400 6800 6800 7300 7700 2B00 2F80 4300 4300 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP 6400 E400 6800 6800 7000 7700 1180 1300 2600 2780 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP E400 6400 C800 6800 D300 1700 2B00 2F80 4300 4300 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 -2 BITMAP 18 18 00 18 18 70 C0 C0 C6 7C ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 0 BITMAP 30 0C 00 18 18 2C 2C 66 46 FE C3 C3 C3 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 0 BITMAP 0C 30 00 18 18 2C 2C 66 46 FE C3 C3 C3 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 0 BITMAP 18 24 00 18 18 2C 2C 66 46 FE C3 C3 C3 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 0 BITMAP 1A 2C 00 18 18 2C 2C 66 46 FE C3 C3 C3 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 0 BITMAP 24 24 00 18 18 2C 2C 66 46 FE C3 C3 C3 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 0 BITMAP 18 24 18 18 2C 2C 66 46 FE C3 C3 C3 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP 0F 1C 2C 2C 6F 4C 7C CC CC CF ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 1 -2 BITMAP 3C 66 C0 C0 C0 C0 C0 C0 66 3C 08 30 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 2 0 BITMAP 60 18 00 FC C0 C0 C0 F8 C0 C0 C0 C0 FC ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 2 0 BITMAP 18 60 00 FC C0 C0 C0 F8 C0 C0 C0 C0 FC ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 2 0 BITMAP 30 48 00 FC C0 C0 C0 F8 C0 C0 C0 C0 FC ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 2 0 BITMAP 48 48 00 FC C0 C0 C0 F8 C0 C0 C0 C0 FC ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 2 0 BITMAP 60 18 00 FC 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 2 0 BITMAP 18 60 00 FC 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 2 0 BITMAP 30 48 00 FC 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 2 0 BITMAP 48 48 00 FC 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP 7C 66 63 63 FB 63 63 63 66 7C ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP 34 58 00 C2 E2 E2 B2 B2 9A 9A 8E 8E 86 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 0 BITMAP 30 0C 00 3C 66 C3 C3 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 0 BITMAP 0C 30 00 3C 66 C3 C3 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 0 BITMAP 18 24 00 3C 66 C3 C3 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 0 BITMAP 1A 2C 00 3C 66 C3 C3 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 0 BITMAP 24 24 00 3C 66 C3 C3 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 9 0 BBX 5 5 2 2 BITMAP C8 70 20 70 98 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 3D 66 C7 CB CB D3 D3 E3 66 BC ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP 60 18 00 C6 C6 C6 C6 C6 C6 C6 C6 6C 38 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP 0C 30 00 C6 C6 C6 C6 C6 C6 C6 C6 6C 38 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP 18 24 00 C6 C6 C6 C6 C6 C6 C6 C6 6C 38 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP 28 28 00 C6 C6 C6 C6 C6 C6 C6 C6 6C 38 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 0 BITMAP 0C 30 00 C3 C3 62 66 34 18 18 18 18 18 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP C0 C0 FC C6 C6 C6 CC F8 C0 C0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 78 CC CC C8 D8 CC C6 C6 C6 C6 CC ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 30 0C 00 7C 06 06 7E C6 C6 CE 77 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 0C 30 00 7C 06 06 7E C6 C6 CE 77 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 18 24 00 7C 06 06 7E C6 C6 CE 77 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 34 58 00 7C 06 06 7E C6 C6 CE 77 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 28 28 00 7C 06 06 7E C6 C6 CE 77 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 18 24 18 7C 06 06 7E C6 C6 CE 77 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 1 0 BITMAP 76 1B 1B 7F D8 D8 DD 66 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 -2 BITMAP 3C 62 C0 C0 C0 C0 62 3C 08 30 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 30 0C 00 3C 66 C6 FE C0 C0 62 3C ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 0C 30 00 3C 66 C6 FE C0 C0 62 3C ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 18 24 00 3C 66 C6 FE C0 C0 62 3C ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 24 24 00 3C 66 C6 FE C0 C0 62 3C ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 9 0 BBX 6 11 1 0 BITMAP 30 0C 00 F8 18 18 18 18 18 18 18 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 9 0 BBX 6 11 1 0 BITMAP 0C 30 00 F8 18 18 18 18 18 18 18 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 9 0 BBX 6 11 1 0 BITMAP 18 24 00 F8 18 18 18 18 18 18 18 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 9 0 BBX 6 11 1 0 BITMAP 24 24 00 F8 18 18 18 18 18 18 18 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP EC 30 D8 0C 3C 6E C6 C6 C6 6C 38 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 34 58 00 DC EE C6 C6 C6 C6 C6 C6 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 60 18 00 38 6C C6 C6 C6 C6 6C 38 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 0C 30 00 38 6C C6 C6 C6 C6 6C 38 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 18 24 00 38 6C C6 C6 C6 C6 6C 38 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 34 58 00 38 6C C6 C6 C6 C6 6C 38 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 28 28 00 38 6C C6 C6 C6 C6 6C 38 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 1 BITMAP 10 10 00 FE 00 10 10 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP 3A 6C CE D6 D6 E6 6C B8 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 60 18 00 C6 C6 C6 C6 C6 C6 EE 76 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 0C 30 00 C6 C6 C6 C6 C6 C6 EE 76 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 18 24 00 C6 C6 C6 C6 C6 C6 EE 76 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 28 28 00 C6 C6 C6 C6 C6 C6 EE 76 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 -2 BITMAP 0C 30 00 C6 C6 C6 6C 6C 38 30 30 60 60 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 1 -2 BITMAP C0 C0 D8 EC C6 C6 C6 C6 CC F8 C0 C0 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 -2 BITMAP 28 28 00 C6 C6 C6 6C 6C 38 30 30 60 60 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 0 0 BITMAP 3F 63 63 FB 63 63 63 63 63 63 63 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 1 2 4 BITMAP F8 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 6 11 2 -1 BITMAP 30 30 30 FC 30 30 30 30 30 30 30 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP 24 18 00 FE 06 06 0C 18 30 60 C0 C0 FE ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 1 0 BITMAP 66 DB DB DF D8 D8 DD 66 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 0 BITMAP 24 24 00 C3 C3 62 66 34 18 18 18 18 18 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 8 1 0 BITMAP F8 18 18 18 18 18 18 18 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP F8 18 18 18 1E 78 18 18 18 18 18 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP 30 30 30 3C F0 30 30 30 30 3F ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 6 11 2 -1 BITMAP 30 30 30 FC 30 30 30 FC 30 30 30 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 0 0 BITMAP 3B 63 60 FF 63 63 63 63 63 63 63 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 4 5 3 2 BITMAP C0 60 30 60 C0 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 3F 6C CC CC CF CC CC CC 6C 3F ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 1 1 4 BITMAP FE ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 4 2 3 9 BITMAP 90 60 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 3 2 4 -2 BITMAP 80 60 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 2 2 9 BITMAP 48 90 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 4 5 2 2 BITMAP 30 60 C0 60 30 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 2 2 4 9 BITMAP C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 2 2 9 BITMAP 88 70 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 4 4 3 2 BITMAP 60 F0 F0 60 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 2 2 9 BITMAP 68 B0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 4 2 3 9 BITMAP 60 90 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 6 4 2 7 BITMAP 44 88 CC CC ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 1 4 4 7 BITMAP 80 80 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 24 18 00 7C C2 C0 F8 3E 06 86 7C ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 4 3 3 8 BITMAP 60 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 3 4 3 -2 BITMAP 60 60 20 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 -1 BITMAP 1C 32 30 30 FC 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 4 0 6 BITMAP FB 55 55 51 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP 0180 0300 0600 0600 0C00 1800 3000 3000 6000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 4 2 2 9 BITMAP C0 30 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP 7000 D800 D900 7600 1800 6000 BB00 6D80 6D80 3B00 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 6 2 1 0 BITMAP CC CC ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 6 4 1 7 BITMAP CC CC 44 88 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP 24 18 00 7C C6 C0 E0 78 1C 0E 06 C6 7C ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 6 4 1 -2 BITMAP CC CC 44 88 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 24 18 00 FE 06 0C 18 30 60 C0 FE ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lutBS18.bdf100644 1750 1750 75527 5413747505 15167 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. COMMENT GRID 0018 0018 0200 0200 FONT -B&H-LucidaTypewriter-Bold-R-Normal-Sans-18-180-75-75-M-110-ISO8859-1 SIZE 18 72 72 FONTBOUNDINGBOX 11 19 0 -3 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaTypewriter" WEIGHT_NAME "Bold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 18 POINT_SIZE 180 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "M" AVERAGE_WIDTH 110 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 16 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 11 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 11 0 BBX 3 13 4 0 BITMAP E0 E0 E0 E0 E0 60 40 40 00 00 E0 E0 E0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 11 0 BBX 8 5 2 9 BITMAP E7 E7 E7 C6 C6 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 1980 1980 1980 7FC0 7FC0 3300 3300 FF80 FF80 6600 6600 6600 6600 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 11 0 BBX 9 17 1 -2 BITMAP 0C00 0C00 3F00 7F80 E180 E000 F000 7C00 3E00 1F00 0780 0380 C380 FF00 7E00 1800 1800 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 7000 D840 D8C0 D980 DB00 DA00 75C0 0B60 1B60 3360 6360 4360 01C0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 0E00 1F00 3B80 3B80 3B00 1E60 7C60 EE60 EF60 E7C0 F380 7FE0 1EE0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 11 0 BBX 4 5 3 9 BITMAP F0 F0 F0 30 E0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 11 0 BBX 7 16 2 -2 BITMAP 06 1E 38 70 70 E0 E0 E0 E0 E0 E0 70 70 38 1E 06 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 11 0 BBX 7 16 2 -2 BITMAP C0 F0 38 1C 1C 0E 0E 0E 0E 0E 0E 1C 1C 38 F0 C0 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 11 0 BBX 8 7 2 6 BITMAP 18 18 DB E7 18 66 66 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 1 BITMAP 0C00 0C00 0C00 0C00 FFC0 FFC0 0C00 0C00 0C00 0C00 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 11 0 BBX 4 5 3 -2 BITMAP F0 F0 F0 30 E0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 11 0 BBX 10 2 1 5 BITMAP FFC0 FFC0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 11 0 BBX 4 3 4 0 BITMAP F0 F0 F0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 11 0 BBX 9 16 1 -2 BITMAP 0380 0380 0700 0700 0E00 0E00 0E00 1C00 1C00 3800 3800 3800 7000 7000 E000 E000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 1E00 7F80 7380 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 7380 7F80 1E00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 11 0 BBX 6 13 1 0 BITMAP 0C FC FC 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 1 0 BITMAP 7C FE C7 07 07 0E 1C 38 70 E0 FF FF FF ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 2 0 BITMAP 7C FE C7 07 0E 78 7C 0E 07 07 CF FE 78 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 0 0 BITMAP 0700 0F00 1F00 3700 3700 6700 C700 FFC0 FFC0 0700 0700 0700 0700 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 2 0 BITMAP FF FF FF C0 C0 F8 FE 0F 07 07 C7 FE 78 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 1F00 7F80 6180 E000 EE00 FF00 F780 E380 E380 E380 7380 7F00 1E00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP FF80 FF80 FF80 0380 0380 0700 0E00 1C00 3800 3800 7000 7000 7000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 3E00 7F00 E380 E380 F300 7E00 3E00 6F00 E780 E380 E380 7F00 3E00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 3C00 7F00 E700 E380 E380 E380 F780 7F80 3B80 0380 6300 7F00 3C00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 11 0 BBX 3 10 4 0 BITMAP E0 E0 E0 00 00 00 00 E0 E0 E0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 11 0 BBX 3 12 4 -2 BITMAP E0 E0 E0 00 00 00 00 E0 E0 E0 60 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 0 1 BITMAP 00C0 03C0 0F00 3C00 E000 E000 3C00 0F00 03C0 00C0 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 11 0 BBX 10 6 1 3 BITMAP FFC0 FFC0 0000 0000 FFC0 FFC0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 1 BITMAP C000 F000 3C00 0F00 01C0 01C0 0F00 3C00 F000 C000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 7E00 FF00 C380 0380 0700 1E00 3800 3000 0000 0000 3800 3800 3800 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 0F00 3980 60C0 67C0 CCC0 CCC0 CCC0 CCC0 CFC0 6660 6000 3800 0F80 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 0E00 0E00 1F00 1300 3380 3380 61C0 7FC0 7FC0 E0E0 E0E0 E0E0 E0E0 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP FE00 FF00 E700 E700 E600 FC00 FE00 E700 E380 E380 E780 FF00 FC00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 0 0 BITMAP 0F80 3FC0 78C0 7000 E000 E000 E000 E000 F000 7000 7CC0 3FC0 0F00 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP FC00 FF00 E780 E380 E1C0 E1C0 E1C0 E1C0 E1C0 E380 E780 FF00 FC00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP FF80 FF80 E000 E000 E000 FF00 FF00 E000 E000 E000 E000 FF80 FF80 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP FF80 FF80 E000 E000 E000 FF00 FF00 E000 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 0 0 BITMAP 0F80 3FC0 78C0 7000 E000 E000 E000 E1C0 F1C0 71C0 79C0 3FC0 0FC0 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP E380 E380 E380 E380 E380 FF80 FF80 E380 E380 E380 E380 E380 E380 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 11 0 BBX 7 13 2 0 BITMAP FE FE 38 38 38 38 38 38 38 38 38 FE FE ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 3F80 3F80 0380 0380 0380 0380 0380 0380 0380 C380 C700 FF00 FC00 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP E180 E380 E700 E600 EC00 F800 F800 FC00 EE00 E700 E780 E3C0 E1C0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 2 0 BITMAP E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 FF80 FF80 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP E1C0 E1C0 F1C0 F1C0 FBC0 DAC0 DAC0 DEC0 DEC0 CCC0 CCC0 C0C0 C0C0 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP E180 E180 F180 F180 F980 DD80 DD80 CF80 CF80 C780 C380 C380 C180 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 1E00 3F00 7380 7380 E1C0 E1C0 E1C0 E1C0 E1C0 7380 7380 3F00 1E00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP FE00 FF00 E780 E380 E380 E700 FF00 FC00 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 1 -2 BITMAP 1E00 3F00 7380 7380 E1C0 E1C0 E1C0 E1C0 E1C0 7380 7380 3F00 1E00 0780 0380 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP FE00 FF00 E780 E380 E380 E700 FC00 FE00 EE00 E700 E780 E380 E380 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 3F00 7F80 E180 E000 F800 FE00 7F00 1F80 0780 0380 C380 FF00 7E00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP FFE0 FFE0 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 7380 7F80 1E00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP E0E0 E0E0 E0E0 E0E0 70C0 70C0 71C0 3980 3980 1F00 1F00 0E00 0E00 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 0 0 BITMAP C0C0 C0C0 CCC0 CCC0 CCC0 EEC0 6E80 7780 7780 7780 3300 3300 3300 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP E0C0 F1C0 7180 7B80 3B00 1E00 1E00 1E00 3700 7780 6380 E3C0 C1C0 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP E0E0 E0E0 70C0 71C0 3980 3980 1F00 0E00 0E00 0E00 0E00 0E00 0E00 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP FFC0 FFC0 03C0 0780 0F00 0F00 1E00 3C00 3C00 7800 F000 FFC0 FFC0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 11 0 BBX 6 16 3 -2 BITMAP FC FC E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 FC FC ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 11 0 BBX 9 16 1 -2 BITMAP E000 E000 7000 7000 3800 3800 3800 1C00 1C00 0E00 0E00 0E00 0700 0700 0380 0380 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 11 0 BBX 6 16 2 -2 BITMAP FC FC 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C FC FC ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 2 BITMAP 0800 1C00 1C00 3600 3600 6300 6300 C180 C180 C180 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 11 0 BBX 11 2 0 -2 BITMAP FFE0 FFE0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 11 0 BBX 4 5 4 9 BITMAP 70 C0 F0 F0 F0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 3E00 7F00 6380 0380 1F80 7F80 E380 E380 FFC0 79C0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP E000 E000 E000 E000 EE00 FF00 F780 E380 E380 E380 E380 E700 FF00 DC00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 1F00 7F80 7180 E000 E000 E000 E000 F180 7F80 1E00 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP 0380 0380 0380 0380 1B80 7F80 7780 E380 E380 E380 E380 F780 7F80 3980 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 1E00 7F00 7380 E380 FF80 FF80 E000 F180 7F80 1F00 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP 0F80 1F80 3800 3800 3800 FF80 FF80 3800 3800 3800 3800 3800 3800 3800 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 -3 BITMAP 1B80 7F80 7780 E380 E380 E380 F780 7F80 3B80 0380 6380 7F00 3E00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP E000 E000 E000 E000 EF00 FF80 F380 E380 E380 E380 E380 E380 E380 E380 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 11 0 BBX 6 14 2 0 BITMAP 1C 1C 00 00 FC FC 1C 1C 1C 1C 1C 1C 1C 1C ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 11 0 BBX 7 17 1 -3 BITMAP 0E 0E 00 00 7E 7E 0E 0E 0E 0E 0E 0E 0E 0E 0C FC F0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP E000 E000 E000 E000 E180 E380 E700 EE00 FC00 FC00 EE00 E700 E780 E380 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 11 0 BBX 6 14 2 0 BITMAP FC FC 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP D980 FFC0 EEC0 CCC0 CCC0 CCC0 CCC0 CCC0 CCC0 CCC0 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP CF00 FF80 F380 E380 E380 E380 E380 E380 E380 E380 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 1E00 7F80 7380 E1C0 E1C0 E1C0 E1C0 7380 7F80 1E00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 -3 BITMAP CE00 FF00 F780 E380 E380 E380 E380 E700 FF00 EC00 E000 E000 E000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 -3 BITMAP 1B80 7F80 7780 E380 E380 E380 E380 F780 7F80 3B80 0380 0380 0380 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 11 0 BBX 8 10 2 0 BITMAP E7 EF FF F3 E3 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 3F00 7F80 E180 F000 7C00 1F00 0780 C380 FF00 7E00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP 1800 3800 3800 FF80 FF80 3800 3800 3800 3800 3800 1F80 0F80 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP E380 E380 E380 E380 E380 E380 E380 E780 FF80 7980 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP E0C0 E0C0 E0C0 F180 7180 7B00 3B00 3E00 1E00 1C00 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 0 0 BITMAP E060 E660 E660 E660 EF40 6F40 7BC0 7B80 3180 3180 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP E180 E300 7300 7600 3C00 1E00 3700 6700 6380 C380 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 -3 BITMAP E0C0 E0C0 E0C0 7180 7180 3B00 3B00 1E00 1E00 0C00 1C00 3800 3800 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP FF80 FF80 0700 0E00 1C00 3800 7000 E000 FF80 FF80 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 11 0 BBX 8 16 2 -2 BITMAP 3F 7F 70 70 38 18 18 F0 F8 18 18 30 70 70 7F 3F ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 11 0 BBX 2 16 5 -2 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 11 0 BBX 8 16 1 -2 BITMAP FC FE 0E 0E 1C 18 18 0F 1F 18 18 0C 0E 0E FE FC ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 11 0 BBX 10 3 1 5 BITMAP 7CC0 DEC0 CF80 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 11 0 BBX 3 13 4 -3 BITMAP E0 E0 E0 00 40 40 C0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0600 0600 1F80 7FC0 70C0 E000 E000 E000 F000 7FC0 1FC0 0600 0600 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0F80 1FC0 38C0 3800 3800 FF00 FF00 3800 3800 3000 6000 FFC0 FFC0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 11 0 BBX 11 11 0 1 BITMAP C060 4E40 3F80 3180 71C0 71C0 71C0 3180 3F80 4E40 C060 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP E0E0 E0E0 70C0 71C0 3980 3B80 1F00 0E00 3F80 0E00 3F80 0E00 0E00 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 11 0 BBX 2 16 5 -2 BITMAP C0 C0 C0 C0 C0 C0 00 00 00 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 11 0 BBX 9 15 1 -2 BITMAP 3F00 7F80 E180 F000 7C00 DF00 C780 E380 F180 7D80 1F00 0780 C380 FF00 7E00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 11 0 BBX 6 2 3 11 BITMAP CC CC ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 1E00 7F80 6180 CEC0 DEC0 D8C0 D8C0 D8C0 DEC0 CEC0 6180 7F80 1E00 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 11 0 BBX 9 8 1 5 BITMAP FE00 FF00 0700 7F00 E700 E700 FF80 7B80 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 11 0 BBX 9 8 1 1 BITMAP 1100 3B80 7700 EE00 EE00 7700 3B80 1100 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 11 0 BBX 10 5 1 3 BITMAP FFC0 FFC0 00C0 00C0 00C0 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 11 0 BBX 5 2 3 5 BITMAP F8 F8 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 3 BITMAP 1E00 7F80 6180 DEC0 DAC0 DCC0 DAC0 6180 7F80 1E00 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 11 0 BBX 5 1 3 11 BITMAP F8 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 11 0 BBX 6 5 3 8 BITMAP 78 CC CC CC 78 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 11 0 BBX 10 11 1 1 BITMAP 0C00 0C00 0C00 FFC0 FFC0 0C00 0C00 0C00 0000 FFC0 FFC0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 11 0 BBX 7 8 2 5 BITMAP FC FE 0E 1E 7C E0 FE FE ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 11 0 BBX 7 8 2 5 BITMAP FC FE 0E 7C 7E 0E FE FC ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 11 0 BBX 5 2 3 11 BITMAP 78 E0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 -3 BITMAP E380 E380 E380 E380 E380 E380 E380 F780 FF80 F980 E000 E000 E000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 11 0 BBX 9 15 1 -2 BITMAP 7F80 FD80 FD80 FD80 FD80 7D80 3D80 0D80 0D80 0D80 0D80 0D80 0D80 0D80 0D80 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 11 0 BBX 4 4 4 4 BITMAP F0 F0 F0 F0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 11 0 BBX 4 3 4 -3 BITMAP 60 30 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 11 0 BBX 7 8 2 5 BITMAP 38 F8 F8 38 38 38 FE FE ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 11 0 BBX 9 8 1 5 BITMAP 3E00 7F00 E380 E380 E380 E380 7F00 3E00 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 11 0 BBX 9 8 1 1 BITMAP 4400 EE00 7700 3B80 3B80 7700 EE00 4400 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP 0060 7060 F0C0 7180 7300 7300 7600 7DC0 1AC0 34C0 3FE0 6FE0 C1C0 C1C0 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP 00C0 70C0 F180 7300 7300 7600 7600 7BC0 1EE0 36E0 30C0 6300 C7E0 C7E0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP 0060 7060 F8C0 1980 7300 1B00 FE00 7DC0 1AC0 34C0 3FE0 6FE0 C1C0 C1C0 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 -3 BITMAP 0700 0700 0700 0000 0000 0600 0E00 3C00 7000 E000 E180 7F80 3F00 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 11 0 BBX 11 16 0 0 BITMAP 1E00 0700 0000 0E00 0E00 1F00 1300 3380 3380 61C0 7FC0 7FC0 E0E0 E0E0 E0E0 E0E0 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 11 0 BBX 11 16 0 0 BITMAP 0F00 1C00 0000 0E00 0E00 1F00 1300 3380 3380 61C0 7FC0 7FC0 E0E0 E0E0 E0E0 E0E0 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 11 0 BBX 11 16 0 0 BITMAP 0E00 1B00 0000 0E00 0E00 1F00 1300 3380 3380 61C0 7FC0 7FC0 E0E0 E0E0 E0E0 E0E0 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 11 0 BBX 11 16 0 0 BITMAP 0E80 1700 0000 0E00 0E00 1F00 1300 3380 3380 61C0 7FC0 7FC0 E0E0 E0E0 E0E0 E0E0 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 11 0 BBX 11 16 0 0 BITMAP 1B00 1B00 0000 0E00 0E00 1F00 1300 3380 3380 61C0 7FC0 7FC0 E0E0 E0E0 E0E0 E0E0 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 11 0 BBX 11 15 0 0 BITMAP 0E00 1300 0E00 0E00 1F00 1300 3380 3380 61C0 7FC0 7FC0 E0E0 E0E0 E0E0 E0E0 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 07E0 0FE0 0F80 1B80 1B80 33E0 33E0 3F80 7F80 6380 E380 E3E0 E3E0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 0 -3 BITMAP 0F80 3FC0 78C0 7000 E000 E000 E000 E000 F000 7000 7CC0 3FC0 0F00 0600 0300 0E00 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 11 0 BBX 9 16 1 0 BITMAP 3C00 0E00 0000 FF80 FF80 E000 E000 E000 FF00 FF00 E000 E000 E000 E000 FF80 FF80 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 11 0 BBX 9 16 1 0 BITMAP 1E00 3800 0000 FF80 FF80 E000 E000 E000 FF00 FF00 E000 E000 E000 E000 FF80 FF80 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 11 0 BBX 9 16 1 0 BITMAP 1C00 3600 0000 FF80 FF80 E000 E000 E000 FF00 FF00 E000 E000 E000 E000 FF80 FF80 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 11 0 BBX 9 16 1 0 BITMAP 3300 3300 0000 FF80 FF80 E000 E000 E000 FF00 FF00 E000 E000 E000 E000 FF80 FF80 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 11 0 BBX 7 16 2 0 BITMAP 78 1C 00 FE FE 38 38 38 38 38 38 38 38 38 FE FE ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 11 0 BBX 7 16 2 0 BITMAP 3C 70 00 FE FE 38 38 38 38 38 38 38 38 38 FE FE ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 11 0 BBX 7 16 2 0 BITMAP 38 6C 00 FE FE 38 38 38 38 38 38 38 38 38 FE FE ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 11 0 BBX 7 16 2 0 BITMAP 66 66 00 FE FE 38 38 38 38 38 38 38 38 38 FE FE ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 7E00 7F80 73C0 71C0 70E0 FCE0 FCE0 70E0 70E0 71C0 73C0 7F80 7E00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 11 0 BBX 9 16 1 0 BITMAP 1D00 2E00 0000 E180 E180 F180 F180 F980 DD80 DD80 CF80 CF80 C780 C380 C380 C180 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 1 0 BITMAP 3C00 0E00 0000 1E00 3F00 7380 7380 E1C0 E1C0 E1C0 E1C0 E1C0 7380 7380 3F00 1E00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 1 0 BITMAP 0F00 1C00 0000 1E00 3F00 7380 7380 E1C0 E1C0 E1C0 E1C0 E1C0 7380 7380 3F00 1E00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 1 0 BITMAP 0E00 1B00 0000 1E00 3F00 7380 7380 E1C0 E1C0 E1C0 E1C0 E1C0 7380 7380 3F00 1E00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 1 0 BITMAP 1D00 2E00 0000 1E00 3F00 7380 7380 E1C0 E1C0 E1C0 E1C0 E1C0 7380 7380 3F00 1E00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 1 0 BITMAP 3300 3300 0000 1E00 3F00 7380 7380 E1C0 E1C0 E1C0 E1C0 E1C0 7380 7380 3F00 1E00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 1 BITMAP C0C0 E1C0 7380 3B00 0E00 1C00 3700 7380 E1C0 C0C0 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 1 -1 BITMAP 00C0 1EC0 3F80 7380 7380 E5C0 E5C0 EDC0 E9C0 E9C0 7380 7380 7F00 DE00 C000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 1 0 BITMAP 3C00 0E00 0000 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 7380 7F80 1E00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 1 0 BITMAP 0F00 1C00 0000 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 7380 7F80 1E00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 1 0 BITMAP 0E00 1B00 0000 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 7380 7F80 1E00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 1 0 BITMAP 3300 3300 0000 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 7380 7F80 1E00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 11 0 BBX 11 16 0 0 BITMAP 0F00 1C00 0000 E0E0 E0E0 70C0 71C0 3980 3980 1F00 0E00 0E00 0E00 0E00 0E00 0E00 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP E000 E000 E000 FE00 FF00 E780 E380 E780 FF00 FC00 E000 E000 E000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 1E00 7F00 E700 E300 E600 EC00 EE00 EF00 E780 E3C0 E1C0 E1C0 E7C0 E780 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 3C00 0E00 0000 3E00 7F00 6380 0380 1F80 7F80 E380 E380 FFC0 79C0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0F00 1C00 0000 3E00 7F00 6380 0380 1F80 7F80 E380 E380 FFC0 79C0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 1C00 3600 0000 3E00 7F00 6380 0380 1F80 7F80 E380 E380 FFC0 79C0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 1D00 2E00 0000 3E00 7F00 6380 0380 1F80 7F80 E380 E380 FFC0 79C0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 3300 3300 0000 3E00 7F00 6380 0380 1F80 7F80 E380 E380 FFC0 79C0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 1C00 2600 1C00 0000 3E00 7F00 6380 0380 1F80 7F80 E380 E380 FFC0 79C0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 0 0 BITMAP 3B80 7FC0 6CE0 0CE0 7FE0 FFE0 CC00 CC60 FFE0 73C0 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 -3 BITMAP 1F00 7F80 7180 E000 E000 E000 E000 F180 7F80 1E00 0C00 0600 1C00 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 3C00 0E00 0000 1E00 7F00 7380 E380 FF80 FF80 E000 F180 7F80 1F00 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 0F00 1C00 0000 1E00 7F00 7380 E380 FF80 FF80 E000 F180 7F80 1F00 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 0E00 1B00 0000 1E00 7F00 7380 E380 FF80 FF80 E000 F180 7F80 1F00 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 3300 3300 0000 1E00 7F00 7380 E380 FF80 FF80 E000 F180 7F80 1F00 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 11 0 BBX 7 13 2 0 BITMAP 3C 0E 00 FC FC 1C 1C 1C 1C 1C 1C 1C 1C ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 11 0 BBX 7 13 2 0 BITMAP 1E 38 00 FC FC 1C 1C 1C 1C 1C 1C 1C 1C ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 11 0 BBX 7 13 2 0 BITMAP 1C 36 00 FC FC 1C 1C 1C 1C 1C 1C 1C 1C ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 11 0 BBX 7 13 2 0 BITMAP 66 66 00 FC FC 1C 1C 1C 1C 1C 1C 1C 1C ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 7300 7C00 0E00 3700 0380 1F80 7FC0 73C0 E1C0 E1C0 E1C0 7380 7F80 1E00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 1D00 2E00 0000 CF00 FF80 F380 E380 E380 E380 E380 E380 E380 E380 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 3C00 0E00 0000 1E00 7F80 7380 E1C0 E1C0 E1C0 E1C0 7380 7F80 1E00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0F00 1C00 0000 1E00 7F80 7380 E1C0 E1C0 E1C0 E1C0 7380 7F80 1E00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0E00 1B00 0000 1E00 7F80 7380 E1C0 E1C0 E1C0 E1C0 7380 7F80 1E00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 1D00 2E00 0000 1E00 7F80 7380 E1C0 E1C0 E1C0 E1C0 7380 7F80 1E00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 3300 3300 0000 1E00 7F80 7380 E1C0 E1C0 E1C0 E1C0 7380 7F80 1E00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 1 BITMAP 0C00 0C00 0000 0000 FFC0 FFC0 0000 0000 0C00 0C00 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 1EC0 7F80 7380 E7C0 EDC0 EDC0 F9C0 7380 7F80 DE00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 3C00 0E00 0000 E380 E380 E380 E380 E380 E380 E380 E780 FF80 7980 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 1E00 3800 0000 E380 E380 E380 E380 E380 E380 E380 E780 FF80 7980 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 1C00 3600 0000 E380 E380 E380 E380 E380 E380 E380 E780 FF80 7980 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 3300 3300 0000 E380 E380 E380 E380 E380 E380 E380 E780 FF80 7980 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 1 -3 BITMAP 0F00 1C00 0000 E0C0 E0C0 E0C0 7180 7180 3B00 3B00 1E00 1E00 0C00 1C00 3800 3800 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 11 0 BBX 9 16 1 -3 BITMAP E000 E000 E000 EE00 FF00 F780 E380 E380 E380 E380 E700 FF00 EC00 E000 E000 E000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 1 -3 BITMAP 3300 3300 0000 E0C0 E0C0 E0C0 7180 7180 3B00 3B00 1E00 1E00 0C00 1C00 3800 3800 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP 1F80 3F80 7380 7380 FB80 FB80 7380 7380 7380 7380 7380 7380 7380 7380 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 7 2 2 5 BITMAP FE FE ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 15 1 -2 BITMAP 1C00 1C00 1C00 1C00 FF80 FF80 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 1 0 BITMAP 1B00 0E00 0000 FFC0 FFC0 03C0 0780 0F00 0F00 1E00 3C00 3C00 7800 F000 FFC0 FFC0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 0 0 BITMAP 3B80 7FC0 E660 C660 C7E0 C7E0 C600 E660 7FE0 3BC0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 16 0 0 BITMAP 1980 1980 0000 E0E0 E0E0 70C0 71C0 3980 3980 1F00 0E00 0E00 0E00 0E00 0E00 0E00 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 10 2 0 BITMAP FC FC 1C 1C 1C 1C 1C 1C 1C 1C ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 2 0 BITMAP FC00 FC00 1C00 1C00 1D80 1F80 3E00 FC00 DC00 1C00 1C00 1C00 1C00 1C00 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 3800 3800 3800 3800 3B00 3F00 FC00 F800 3800 3800 3800 3FE0 3FE0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 15 1 -2 BITMAP 1C00 1C00 1C00 1C00 FF80 FF80 1C00 1C00 1C00 FF80 FF80 1C00 1C00 1C00 1C00 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP 1F80 3F80 7380 7000 FF80 FF80 7380 7380 7380 7380 7380 7380 7380 7380 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 5 8 4 1 BITMAP 40 E0 70 38 38 70 E0 40 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 1DE0 3FE0 7700 6700 E700 E7E0 E7E0 E700 E700 6700 7700 3FE0 1DE0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 2 1 5 BITMAP FF80 FF80 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 5 2 3 11 BITMAP D8 70 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 4 3 4 -3 BITMAP 60 C0 70 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 5 3 3 11 BITMAP 48 D8 90 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 5 8 2 1 BITMAP 10 38 70 E0 E0 70 38 10 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 2 4 11 BITMAP E0 E0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 5 3 3 11 BITMAP 88 F8 70 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 6 3 2 BITMAP 78 FC FC FC FC 78 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 2 3 11 BITMAP 74 B8 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 5 2 3 11 BITMAP 70 D8 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 5 2 9 BITMAP 63 C6 E7 E7 E7 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 5 4 9 BITMAP E0 E0 E0 C0 C0 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 3600 1C00 0000 3F00 7F80 E180 F000 7C00 1F00 0780 C380 FF00 7E00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 5 3 3 11 BITMAP 70 98 70 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 4 5 3 -2 BITMAP F0 F0 F0 30 E0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 15 0 -2 BITMAP 03C0 07E0 0E60 1C00 1C00 FF80 FF80 3800 3800 3800 3800 7000 7000 7000 7000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 6 0 7 BITMAP FEE0 6EE0 6FE0 6FE0 6D60 6C60 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 00E0 00E0 01C0 0380 0380 0700 0E00 1C00 3800 3800 7000 E000 E000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 5 2 3 11 BITMAP F0 38 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 7000 D980 D980 DB00 DA00 DC00 76C0 1B60 6B60 CB60 CB60 0B60 06C0 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 7 2 2 0 BITMAP C6 C6 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 5 1 9 BITMAP E7 E7 E7 63 C6 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 16 1 0 BITMAP 1B00 0E00 0000 3F00 7F80 E180 E000 F800 FE00 7F00 1F80 0780 0380 C380 FF00 7E00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 5 1 -2 BITMAP E7 E7 E7 63 C6 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 3600 1C00 0000 FF80 FF80 0700 0E00 1C00 3800 7000 E000 FF80 FF80 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lutBS19.bdf100644 1750 1750 77235 5413747506 15167 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaTypewriter-Bold-R-Normal-Sans-19-190-75-75-M-110-ISO8859-1 SIZE 19 72 72 FONTBOUNDINGBOX 15 22 -2 -4 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaTypewriter" WEIGHT_NAME "Bold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 19 POINT_SIZE 190 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "M" AVERAGE_WIDTH "110" CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." FONT_ASCENT 17 FONT_DESCENT 4 DEFAULT_CHAR 0 ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 11 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 11 0 BBX 3 14 4 0 BITMAP E0 E0 E0 E0 E0 E0 C0 C0 C0 C0 00 00 E0 E0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 11 0 BBX 7 5 2 9 BITMAP C6 C6 C6 C6 C6 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 0D80 0D80 1D80 1B80 7FC0 7FC0 3B00 3600 FF80 FF80 7600 6E00 6C00 6C00 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 11 0 BBX 9 19 1 -3 BITMAP 0C00 0C00 3F00 7F00 E100 E000 F000 F800 7E00 1F00 0F80 0380 0380 8780 FF00 7F00 0C00 0C00 0C00 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 11 0 BBX 13 14 0 0 BITMAP 7830 FC60 CCE0 CCC0 CD80 FF80 7B00 06F0 0FF8 0D98 1998 3998 31F8 60F0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP 1E00 3F00 3F00 3F00 3F00 1E00 3CE0 7CE0 EEE0 EFC0 EFC0 F780 7F80 3FE0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 11 0 BBX 3 6 4 8 BITMAP E0 E0 E0 60 E0 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 11 0 BBX 8 18 3 -4 BITMAP 07 1F 3C 78 70 F0 E0 E0 E0 E0 E0 E0 70 70 38 1C 0F 03 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 11 0 BBX 8 18 1 -4 BITMAP C0 F0 38 1C 0E 0E 07 07 07 07 07 07 0E 0E 1C 3C F0 C0 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 11 0 BBX 9 8 1 6 BITMAP 1C00 0800 C980 F780 0000 3600 7700 2200 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 0C00 0C00 0C00 0C00 FFC0 FFC0 0C00 0C00 0C00 0C00 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 11 0 BBX 3 8 4 -4 BITMAP E0 E0 E0 E0 60 60 E0 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 11 0 BBX 10 2 1 3 BITMAP FFC0 FFC0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 11 0 BBX 3 3 4 0 BITMAP E0 E0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 11 0 BBX 11 18 0 -4 BITMAP 00E0 00C0 01C0 0180 0180 0300 0300 0600 0600 0C00 0C00 1800 1800 3000 3000 6000 6000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 1E00 3F00 7380 6180 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 6180 7380 3F00 1E00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 2 0 BITMAP FC00 FC00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 FF80 FF80 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 11 0 BBX 8 14 2 0 BITMAP 7C FE 8F 07 07 07 0E 1C 38 30 60 E0 FF FF ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 11 0 BBX 8 14 2 0 BITMAP 7C FE 8F 07 07 0E 78 7E 0F 07 07 8F FE FC ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 0700 0F00 1F00 1F00 3700 7700 6700 FFC0 FFC0 FFC0 0700 0700 0700 0700 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 11 0 BBX 7 14 3 0 BITMAP FE FE C0 C0 C0 F0 FC 1C 0E 0E 0E 9E FC F8 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 0F80 3F80 7880 7000 E000 EF00 FF80 F3C0 E1C0 E1C0 61C0 73C0 3F80 1F00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 11 0 BBX 8 14 2 0 BITMAP FF FF 07 07 0E 0C 1C 18 38 30 30 70 70 70 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP 1E00 3F00 7700 7700 7700 3E00 1E00 7F00 E780 E380 E380 F380 7F00 3E00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 3E00 7F00 F380 E180 E1C0 E1C0 F3C0 7FC0 3DC0 01C0 0380 4780 7F00 7C00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 11 0 BBX 3 10 4 0 BITMAP E0 E0 E0 00 00 00 00 E0 E0 E0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 11 0 BBX 3 14 4 -4 BITMAP E0 E0 E0 00 00 00 00 E0 E0 E0 60 60 E0 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 0040 01C0 0780 1F00 FC00 7C00 1F00 07C0 01C0 0040 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 11 0 BBX 10 6 1 2 BITMAP FFC0 FFC0 0000 0000 FFC0 FFC0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 8000 E000 F800 3E00 0F80 0FC0 3E00 7800 E000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 7F00 FF80 C3C0 C1C0 01C0 0380 0F00 1C00 3800 3800 0000 0000 3800 3800 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP 0F00 3F80 71C0 67C0 EFC0 DCC0 D8C0 D9C0 D9C0 DFE0 EEE0 7100 3F00 1E00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP 0E00 0F00 0F00 1F00 1F00 1B80 3380 3380 33C0 7FC0 7FC0 61C0 C0E0 C0E0 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP FF00 FF80 E380 E380 E380 E700 FE00 FF80 E3C0 E1C0 E1C0 E3C0 FF80 FF00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP 0FE0 3FE0 7820 7000 E000 E000 E000 E000 E000 E000 7000 7820 3FE0 0FC0 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP FE00 FF80 E380 E3C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E380 E380 FF00 FE00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 2 0 BITMAP FF80 FF80 E000 E000 E000 E000 FF00 FF00 E000 E000 E000 E000 FF80 FF80 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP FFC0 FFC0 E000 E000 E000 E000 FF80 FF80 E000 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP 0FE0 3FE0 7820 7000 E000 E000 E000 E0E0 E0E0 E0E0 70E0 78E0 3FE0 0FC0 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 FFC0 FFC0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP FF80 FF80 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 FF80 FF80 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP 7F80 7F80 0380 0380 0380 0380 0380 0380 0380 0380 0380 8780 FF00 FE00 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP E1C0 E380 E300 E600 EE00 EC00 FC00 FC00 FE00 EF00 E700 E780 E380 E3C0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 2 0 BITMAP E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 FF80 FF80 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP E3C0 F3C0 F3C0 F3C0 F7C0 F7C0 F7C0 DFC0 DFC0 DDC0 DDC0 DDC0 DDC0 C1C0 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP E180 F180 F180 F980 F980 FD80 DD80 DD80 CF80 CF80 C780 C780 C380 C380 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP 1F00 3F80 71C0 60C0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 60C0 71C0 3F80 1F00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP FF00 FF80 E1C0 E1C0 E1C0 E1C0 E3C0 FF80 FF00 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 11 0 BBX 12 17 0 -3 BITMAP 1F00 3F80 71C0 60C0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 60E0 71C0 3F80 1F00 03F0 00E0 0040 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP FE00 FF00 E380 E380 E380 E380 E700 FC00 FE00 EF00 E700 E780 E380 E1C0 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 3F80 7F80 E080 E000 F000 FC00 3F00 1F80 07C0 01C0 01C0 83C0 FF80 FE00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP FFE0 FFE0 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP E380 E380 E380 E380 E380 E380 E380 E380 E380 E380 E380 E380 7F00 3E00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP E060 E0E0 70C0 70C0 70C0 7980 3980 3980 3B00 1F00 1F00 1F00 1E00 0E00 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP E060 EE60 EE60 EE60 6F40 7FC0 7FC0 7FC0 7FC0 7FC0 7BC0 7B80 3380 3380 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP F0E0 70C0 7980 3B80 3F00 1F00 0E00 0F00 1F00 1F80 3380 73C0 61C0 E1E0 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP E060 70C0 70C0 3980 3980 1F00 1F00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP FFC0 FFC0 03C0 0380 0700 0F00 0E00 1C00 3C00 3800 7800 F000 FFC0 FFC0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 11 0 BBX 8 18 3 -4 BITMAP FF FF E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 FF FF ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 11 0 BBX 11 18 0 -4 BITMAP C000 6000 6000 3000 3000 1800 1800 0C00 0C00 0600 0600 0300 0300 0180 0180 00C0 00C0 0060 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 11 0 BBX 8 18 0 -4 BITMAP FF FF 07 07 07 07 07 07 07 07 07 07 07 07 07 07 FF FF ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 1 2 BITMAP 0400 0C00 0C00 0C00 1E00 1E00 3300 3300 3300 6180 6180 C0C0 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 11 0 BBX 11 2 0 -3 BITMAP FFE0 FFE0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 11 0 BBX 3 6 4 8 BITMAP 60 E0 C0 E0 E0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 3F00 7F80 4780 0380 3F80 FF80 E380 E380 FFC0 79C0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP E000 E000 E000 E000 EF00 EF80 FFC0 F3C0 E1C0 E1C0 E1C0 E380 FF80 FF00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 1FC0 7FC0 7040 E000 E000 E000 E000 7800 3FC0 1FC0 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 01C0 01C0 01C0 01C0 3DC0 7FC0 71C0 E1C0 E1C0 E1C0 F3C0 FFC0 7FC0 3DC0 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 1F00 7F80 7180 E1C0 FFC0 FFC0 E000 7040 7FC0 1F80 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 2 0 BITMAP 0FC0 3FC0 3840 3800 FF80 FF80 3800 3800 3800 3800 3800 3800 3800 3800 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 -4 BITMAP 3CC0 7FC0 F3C0 E1C0 E1C0 E1C0 F3C0 FFC0 7FC0 3DC0 01C0 4380 7F80 3E00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP E000 E000 E000 E000 EF00 FF80 FF80 F380 E380 E380 E380 E380 E380 E380 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 11 0 BBX 7 14 2 0 BITMAP 0E 0E 0E 00 FE FE 0E 0E 0E 0E 0E 0E 0E 0E ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 11 0 BBX 8 18 1 -4 BITMAP 07 07 07 00 7F 7F 07 07 07 07 07 07 07 07 07 87 FE FC ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP E000 E000 E000 E000 E380 E700 E600 EC00 FC00 EE00 EF00 E700 E380 E3C0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 11 0 BBX 7 14 1 0 BITMAP FE FE 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 0 0 BITMAP ECE0 FFE0 FFE0 EEE0 EEE0 EEE0 EEE0 EEE0 EEE0 EEE0 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP EF00 FF80 FF80 F380 E380 E380 E380 E380 E380 E380 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 0 0 BITMAP 1F00 7FC0 71C0 E0E0 E0E0 E0E0 E0E0 71C0 7FC0 1F00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 -4 BITMAP EF00 FF80 FFC0 F3C0 E1C0 E1C0 E1C0 E380 FF80 EF00 E000 E000 E000 E000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 -4 BITMAP 3FC0 7FC0 71C0 E1C0 E1C0 E1C0 F3C0 FFC0 7DC0 3DC0 01C0 01C0 01C0 01C0 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 2 0 BITMAP E780 FF80 FF80 F180 E000 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 3F00 7F00 E100 F800 FF00 3F80 0780 8380 FF00 7E00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 3800 3800 3800 FF80 FF80 3800 3800 3800 3800 3800 3800 1F80 0F80 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP E380 E380 E380 E380 E380 E380 E780 FF80 FF80 7B80 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 0 0 BITMAP E060 F0C0 70C0 79C0 3980 3980 1F00 1F00 1F00 0E00 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 0 0 BITMAP E060 EE60 EE60 6F40 7FC0 7FC0 7BC0 7BC0 79C0 3180 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP F1C0 7B80 3B00 3E00 1E00 1E00 3F00 3780 6380 E3C0 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 -4 BITMAP E060 70C0 70C0 3980 3980 3F80 1F00 1F00 0E00 0E00 0C00 0C00 7800 7000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP FF80 FF80 0780 0F00 1E00 3C00 7800 F000 FF80 FF80 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 11 0 BBX 8 18 2 -4 BITMAP 0F 1F 1C 1C 1C 1C 1C 1C F0 F0 1C 1C 1C 1C 1C 1C 1F 0F ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 11 0 BBX 2 18 5 -4 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 11 0 BBX 8 18 1 -4 BITMAP F8 FC 1C 1C 3C 38 38 38 0F 0F 38 38 38 38 1C 1C FC F8 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 11 0 BBX 10 4 1 3 BITMAP 70C0 7CC0 CF80 C380 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 11 0 BBX 3 14 4 -4 BITMAP E0 E0 E0 00 C0 C0 C0 C0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 11 0 BBX 8 14 2 0 BITMAP 0C 0C 3F 7F 70 E0 E0 E0 E0 70 7F 1F 0C 0C ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 11 0 BBX 8 14 2 0 BITMAP 1F 3F 38 38 38 38 FC FC 38 38 38 30 FF FF ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 11 0 BBX 11 12 0 1 BITMAP 4040 FFE0 7FC0 7180 60C0 60C0 60C0 60C0 7180 7FC0 FFE0 4040 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP F060 70C0 7980 3F80 1F00 1E00 3F80 3F80 0E00 3F80 3F80 0E00 0E00 0E00 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 11 0 BBX 2 18 5 -4 BITMAP C0 C0 C0 C0 C0 C0 C0 00 00 00 00 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 11 0 BBX 8 18 2 -4 BITMAP 3E 7E E2 E0 F0 78 7E C7 C3 E3 FB 7E 3E 0F 07 87 FE FC ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 11 0 BBX 5 2 3 12 BITMAP D8 D8 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 1E00 3F00 6180 DCC0 DEC0 F2C0 F0C0 F0C0 F2C0 DEC0 DCC0 6180 3F00 1E00 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 11 0 BBX 9 8 1 6 BITMAP 7E00 FF00 8300 7F00 FF00 C300 FF80 7B80 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 11 0 BBX 10 8 1 1 BITMAP 0880 19C0 3380 7700 F700 7380 39C0 1880 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 11 0 BBX 10 4 1 2 BITMAP FFC0 FFC0 00C0 00C0 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 11 0 BBX 8 2 2 5 BITMAP FF FF ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 4 BITMAP 1E00 7F00 6180 DFC0 DBC0 DEC0 DEC0 7B80 7F00 1E00 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 11 0 BBX 5 2 3 12 BITMAP F8 F8 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 11 0 BBX 3 4 4 10 BITMAP E0 A0 A0 40 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 0C00 0C00 FFC0 FFC0 0C00 0C00 0C00 0000 FFC0 FFC0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 11 0 BBX 4 7 -2 7 BITMAP E0 10 10 20 60 C0 F0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 11 0 BBX 3 7 -2 7 BITMAP E0 20 20 C0 20 20 C0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 11 0 BBX 5 3 3 11 BITMAP 38 70 E0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 -4 BITMAP E380 E380 E380 E380 E380 E380 E780 FF80 FF80 FB80 E000 E000 E000 E000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 11 0 BBX 7 18 2 -4 BITMAP 7E FE FE FE FE FE 7E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 11 0 BBX 3 3 4 3 BITMAP E0 E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 11 0 BBX 4 4 4 -4 BITMAP 60 F0 30 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 11 0 BBX 3 7 -2 7 BITMAP C0 40 40 40 40 40 E0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 11 0 BBX 8 8 2 6 BITMAP 3C 7E E7 C3 C3 E7 7E 3C ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 11 0 BBX 10 8 1 1 BITMAP 4600 E700 7380 3BC0 3B80 7300 E600 4400 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 2 0 BITMAP C060 40C0 41C0 4180 4300 4700 E600 0CC0 1CC0 1940 3240 73E0 6040 C040 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 2 0 BITMAP C060 40C0 41C0 4180 4300 4700 E600 0DC0 1C20 1820 3040 70C0 6180 C1E0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 2 0 BITMAP E060 20C0 21C0 C180 2300 2700 C600 0CC0 1CC0 1940 3240 73E0 6040 C040 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 0 -4 BITMAP 0700 0700 0700 0000 0700 0700 0E00 3C00 7000 E000 E0C0 F0C0 7FC0 3F80 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 11 0 BBX 11 18 0 0 BITMAP 1C00 0E00 0700 0000 0E00 0F00 0F00 1F00 1F00 1B80 3380 3380 33C0 7FC0 7FC0 61C0 C0E0 C0E0 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 11 0 BBX 11 18 0 0 BITMAP 0700 0E00 1C00 0000 0E00 0F00 0F00 1F00 1F00 1B80 3380 3380 33C0 7FC0 7FC0 61C0 C0E0 C0E0 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 11 0 BBX 11 18 0 0 BITMAP 0C00 1E00 3300 0000 0E00 0F00 0F00 1F00 1F00 1B80 3380 3380 33C0 7FC0 7FC0 61C0 C0E0 C0E0 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 11 0 BBX 11 18 0 0 BITMAP 0D80 1F80 1B00 0000 0E00 0F00 0F00 1F00 1F00 1B80 3380 3380 33C0 7FC0 7FC0 61C0 C0E0 C0E0 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 11 0 BBX 11 17 0 0 BITMAP 1B00 1B00 0000 0E00 0F00 0F00 1F00 1F00 1B80 3380 3380 33C0 7FC0 7FC0 61C0 C0E0 C0E0 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 11 0 BBX 11 18 0 0 BITMAP 0E00 0A00 0E00 0000 0E00 0F00 0F00 1F00 1F00 1B80 3380 3380 33C0 7FC0 7FC0 61C0 C0E0 C0E0 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 11 0 BBX 12 14 0 0 BITMAP 07F0 07F0 0780 0F80 0F80 1F80 1BF0 3BF0 3380 3F80 7F80 6380 E3F0 C3F0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 11 0 BBX 11 18 0 -4 BITMAP 0FE0 3FE0 7820 7000 E000 E000 E000 E000 E000 E000 7000 7820 3FE0 0FC0 0400 0F00 0300 0E00 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 11 0 BBX 9 18 2 0 BITMAP 3800 1C00 0E00 0000 FF80 FF80 E000 E000 E000 E000 FF00 FF00 E000 E000 E000 E000 FF80 FF80 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 11 0 BBX 9 18 2 0 BITMAP 0E00 1C00 3800 0000 FF80 FF80 E000 E000 E000 E000 FF00 FF00 E000 E000 E000 E000 FF80 FF80 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 0 0 BBX 0 0 0 0 BITMAP ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 11 0 BBX 9 17 2 0 BITMAP 3600 3600 0000 FF80 FF80 E000 E000 E000 E000 FF00 FF00 E000 E000 E000 E000 FF80 FF80 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 11 0 BBX 9 18 1 0 BITMAP 3800 1C00 0E00 0000 FF80 FF80 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 FF80 FF80 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 11 0 BBX 9 18 1 0 BITMAP 0E00 1C00 3800 0000 FF80 FF80 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 FF80 FF80 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 11 0 BBX 9 18 1 0 BITMAP 1800 3C00 6600 0000 FF80 FF80 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 FF80 FF80 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 11 0 BBX 9 17 1 0 BITMAP 3600 3600 0000 FF80 FF80 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 FF80 FF80 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP 7F00 7FC0 71C0 71E0 70E0 70E0 FCE0 FCE0 70E0 70E0 71C0 71C0 7F80 7F00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 11 0 BBX 9 18 1 0 BITMAP 1B00 3F00 3600 0000 E180 F180 F180 F980 F980 FD80 DD80 DD80 CF80 CF80 C780 C780 C380 C380 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 11 0 BBX 11 18 0 0 BITMAP 1C00 0E00 0700 0000 1F00 3F80 71C0 60C0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 60C0 71C0 3F80 1F00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 11 0 BBX 11 18 0 0 BITMAP 0700 0E00 1C00 0000 1F00 3F80 71C0 60C0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 60C0 71C0 3F80 1F00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 11 0 BBX 11 18 0 0 BITMAP 0C00 1E00 3300 0000 1F00 3F80 71C0 60C0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 60C0 71C0 3F80 1F00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 11 0 BBX 11 18 0 0 BITMAP 1B00 3F00 3600 0000 1F00 3F80 71C0 60C0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 60C0 71C0 3F80 1F00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 11 0 BBX 11 17 0 0 BITMAP 1B00 1B00 0000 1F00 3F80 71C0 60C0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 60C0 71C0 3F80 1F00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 4080 E1C0 7380 3F00 1E00 1E00 3F00 7380 E1C0 4080 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP 1F60 3FC0 71C0 61C0 E3E0 E7E0 E6E0 ECE0 FCE0 F8E0 70C0 71C0 7F80 DF00 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 11 0 BBX 9 18 1 0 BITMAP 3800 1C00 0E00 0000 E380 E380 E380 E380 E380 E380 E380 E380 E380 E380 E380 E380 7F00 3E00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 11 0 BBX 9 18 1 0 BITMAP 0E00 1C00 3800 0000 E380 E380 E380 E380 E380 E380 E380 E380 E380 E380 E380 E380 7F00 3E00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 11 0 BBX 9 18 1 0 BITMAP 1800 3C00 6600 0000 E380 E380 E380 E380 E380 E380 E380 E380 E380 E380 E380 E380 7F00 3E00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 11 0 BBX 9 17 1 0 BITMAP 3600 3600 0000 E380 E380 E380 E380 E380 E380 E380 E380 E380 E380 E380 E380 7F00 3E00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 11 0 BBX 11 18 0 0 BITMAP 0700 0E00 1C00 0000 E060 70C0 70C0 3980 3980 1F00 1F00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP E000 E000 FF00 FF80 E1C0 E1C0 E1C0 E1C0 E3C0 FF80 FF00 E000 E000 E000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 3E00 7F00 E700 E700 E600 EE00 EE00 EF00 E780 E3C0 E1C0 E9C0 EFC0 EF80 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 3800 1C00 0E00 0000 3F00 7F80 4780 0380 3F80 FF80 E380 E380 FFC0 79C0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 0E00 1C00 3800 0000 3F00 7F80 4780 0380 3F80 FF80 E380 E380 FFC0 79C0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 0C00 1E00 3300 0000 3F00 7F80 4780 0380 3F80 FF80 E380 E380 FFC0 79C0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 1B00 3F00 3600 0000 3F00 7F80 4780 0380 3F80 FF80 E380 E380 FFC0 79C0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 3600 3600 0000 3F00 7F80 4780 0380 3F80 FF80 E380 E380 FFC0 79C0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 1C00 1400 1C00 0000 3F00 7F80 4780 0380 3F80 FF80 E380 E380 FFC0 79C0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 7B80 7F80 4DC0 0DC0 7FC0 FFC0 EC00 EC40 FFC0 7380 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 -4 BITMAP 1FC0 7FC0 7040 E000 E000 E000 E000 7800 3FC0 1FC0 0800 1E00 0600 1C00 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 3800 1C00 0E00 0000 1F00 7F80 7180 E1C0 FFC0 FFC0 E000 7040 7FC0 1F80 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 0E00 1C00 3800 0000 1F00 7F80 7180 E1C0 FFC0 FFC0 E000 7040 7FC0 1F80 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 0C00 1E00 3300 0000 1F00 7F80 7180 E1C0 FFC0 FFC0 E000 7040 7FC0 1F80 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 3600 3600 0000 1F00 7F80 7180 E1C0 FFC0 FFC0 E000 7040 7FC0 1F80 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 11 0 BBX 7 14 2 0 BITMAP 38 1C 0E 00 FE FE 0E 0E 0E 0E 0E 0E 0E 0E ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 11 0 BBX 7 14 2 0 BITMAP 0E 1C 38 00 FE FE 0E 0E 0E 0E 0E 0E 0E 0E ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 11 0 BBX 7 14 2 0 BITMAP 18 3C 66 00 FE FE 0E 0E 0E 0E 0E 0E 0E 0E ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 11 0 BBX 7 13 2 0 BITMAP 36 36 00 FE FE 0E 0E 0E 0E 0E 0E 0E 0E ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP FF00 9E00 1E00 1700 3F80 7F80 73C0 E1C0 E1C0 E1C0 E1C0 7380 7F80 1E00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP 3600 7E00 6C00 0000 EF00 FF80 FF80 F380 E380 E380 E380 E380 E380 E380 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP 1C00 0E00 0700 0000 1F00 7FC0 71C0 E0E0 E0E0 E0E0 E0E0 71C0 7FC0 1F00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP 0700 0E00 1C00 0000 1F00 7FC0 71C0 E0E0 E0E0 E0E0 E0E0 71C0 7FC0 1F00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP 0C00 1E00 3300 0000 1F00 7FC0 71C0 E0E0 E0E0 E0E0 E0E0 71C0 7FC0 1F00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP 0D80 1F80 1B00 0000 1F00 7FC0 71C0 E0E0 E0E0 E0E0 E0E0 71C0 7FC0 1F00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 1B00 1B00 0000 1F00 7FC0 71C0 E0E0 E0E0 E0E0 E0E0 71C0 7FC0 1F00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 0 0 BITMAP 0E00 0E00 0E00 0000 FFE0 FFE0 0000 0E00 0E00 0E00 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 0 0 BITMAP 1FE0 7FC0 71C0 E3E0 E6E0 ECE0 F8E0 71C0 7FC0 FF00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP 3800 1C00 0E00 0000 E380 E380 E380 E380 E380 E380 E780 FF80 FF80 7B80 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP 0E00 1C00 3800 0000 E380 E380 E380 E380 E380 E380 E780 FF80 FF80 7B80 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP 0C00 1E00 3300 0000 E380 E380 E380 E380 E380 E380 E780 FF80 FF80 7B80 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 3600 3600 0000 E380 E380 E380 E380 E380 E380 E780 FF80 FF80 7B80 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 11 0 BBX 11 18 0 -4 BITMAP 0700 0E00 1C00 0000 E060 70C0 70C0 3980 3980 3F80 1F00 1F00 0E00 0E00 0C00 0C00 7800 7000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 11 0 BBX 10 18 1 -4 BITMAP E000 E000 E000 E000 EF00 FF80 FFC0 F3C0 E1C0 E1C0 E1C0 E380 FF80 EF00 E000 E000 E000 E000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 11 0 BBX 11 17 0 -4 BITMAP 1B00 1B00 0000 E060 70C0 70C0 3980 3980 3F80 1F00 1F00 0E00 0E00 0C00 0C00 7800 7000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP 3F80 7F80 7380 7380 FB80 FB80 7380 7380 7380 7380 7380 7380 7380 7380 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 2 1 5 BITMAP FF80 FF80 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 18 1 -4 BITMAP 1C00 1C00 1C00 1C00 1C00 FF80 FF80 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 18 1 0 BITMAP 3300 1E00 0C00 0000 FFC0 FFC0 03C0 0380 0700 0F00 0E00 1C00 3C00 3800 7800 F000 FFC0 FFC0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 0 0 BITMAP 39C0 7FE0 EE60 EE60 EFE0 EFE0 EE00 EE20 7FE0 39C0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 17 0 0 BITMAP 1B00 1B00 0000 E060 70C0 70C0 3980 3980 1F00 1F00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 7 10 2 0 BITMAP FE FE 0E 0E 0E 0E 0E 0E 0E 0E ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP FE00 FE00 0E00 0E00 0E80 0F80 0F00 3E00 7E00 4E00 0E00 0E00 0E00 0E00 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP 3800 3800 3800 3800 3A00 3E00 3C00 F800 F800 B800 3800 3800 3FE0 3FE0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 18 1 -4 BITMAP 1C00 1C00 1C00 1C00 1C00 FF80 FF80 1C00 1C00 1C00 1C00 FF80 FF80 1C00 1C00 1C00 1C00 1C00 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP 3980 7980 7180 7000 FF80 FF80 7380 7380 7380 7380 7380 7380 7380 7380 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 8 3 1 BITMAP 40 E0 70 3C 38 70 E0 40 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP 3FE0 7FE0 7300 E300 E300 E300 E3E0 E3E0 E300 E300 E300 7300 7FE0 1FE0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 2 1 5 BITMAP FFC0 FFC0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 3 3 11 BITMAP CC 78 30 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 4 4 -4 BITMAP 60 C0 C0 E0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 3 4 11 BITMAP 6C 58 90 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 8 3 1 BITMAP 08 1C 38 70 F0 38 1C 08 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 2 2 5 12 BITMAP C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 3 3 11 BITMAP CC FC 78 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 7 7 2 1 BITMAP FE FE FE FE FE FE FE ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 3 3 11 BITMAP 6C FC D8 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 3 3 11 BITMAP 30 78 CC ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 5 2 9 BITMAP 63 C6 E7 E7 E7 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 6 4 8 BITMAP E0 E0 E0 60 60 60 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP 6600 3C00 1800 0000 3F00 7F00 E100 F800 FF00 3F80 0780 8380 FF00 7E00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 3 4 11 BITMAP E0 A0 E0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 8 4 -4 BITMAP E0 E0 E0 E0 60 60 E0 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 18 2 -4 BITMAP 07 0F 1C 18 38 38 7C 7C 78 70 70 70 70 70 E0 E0 E0 E0 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 8 0 6 BITMAP FE60 FE60 36E0 37E0 37E0 37E0 3660 3660 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP 0060 00C0 01C0 0180 0300 0700 0600 0C00 1C00 1800 3000 7000 6000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 5 3 3 11 BITMAP E0 70 38 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP 6200 F400 F400 F800 F800 6800 1000 1000 2CC0 3FE0 7FE0 5FE0 5FE0 8CC0 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 2 1 0 BITMAP CCC0 CCC0 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 5 2 9 BITMAP E7 E7 E7 63 C6 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 18 1 0 BITMAP 3300 1E00 0C00 0000 3F80 7F80 E080 E000 F000 FC00 3F00 1F80 07C0 01C0 01C0 83C0 FF80 FE00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 7 2 -4 BITMAP E7 E7 E7 63 63 63 C6 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP 6600 3C00 1800 0000 FF80 FF80 0780 0F00 1E00 3C00 7800 F000 FF80 FF80 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lutBS24.bdf100644 1750 1750 106321 5413747506 15170 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaTypewriter-Bold-R-Normal-Sans-24-240-75-75-M-140-ISO8859-1 SIZE 24 72 72 FONTBOUNDINGBOX 18 26 -3 -5 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaTypewriter" WEIGHT_NAME "Bold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 24 POINT_SIZE 240 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "M" AVERAGE_WIDTH 140 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 22 FONT_DESCENT 5 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 14 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 14 0 BBX 3 17 6 0 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 60 60 60 60 00 00 00 E0 E0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 14 0 BBX 11 7 2 11 BITMAP F1E0 F1E0 F1E0 F1E0 60C0 60C0 60C0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 1 0 BITMAP 0730 0660 0660 0E60 7FF8 7FF8 0CC0 18C0 1980 FFF0 FFF0 3180 3300 3300 3300 6300 6600 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 14 0 BBX 10 23 2 -3 BITMAP 0C00 0C00 0C00 3F80 7F80 F080 E000 E000 F000 7800 3E00 1F00 0F80 03C0 01C0 01C0 81C0 C380 FF80 7F00 0C00 0C00 0C00 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 14 0 BBX 15 17 0 0 BITMAP 381C 7C18 C638 C630 C660 C6E0 7CC0 3980 03B8 037C 06C6 0EC6 0CC6 18C6 38C6 307C 7038 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP 0F80 1FC0 38E0 38E0 38E0 1DC0 1FC0 1F1C 3F1C 771C E79C E398 E3F8 E1F0 70F0 7FF8 1F7C ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 14 0 BBX 4 7 5 11 BITMAP F0 F0 F0 F0 30 F0 E0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 14 0 BBX 9 22 4 -4 BITMAP 0180 0780 1E00 3C00 3800 7000 7000 E000 E000 E000 E000 E000 E000 E000 F000 7000 7000 3800 3C00 1F00 0780 0180 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 14 0 BBX 9 22 2 -4 BITMAP C000 F000 7C00 1C00 0E00 0700 0700 0780 0380 0380 0380 0380 0380 0380 0380 0700 0700 0E00 1E00 3C00 F000 C000 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 14 0 BBX 11 11 2 6 BITMAP 0E00 0E00 4440 64C0 F1E0 F1E0 0900 1B00 7B80 31C0 1100 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 1 0 BITMAP 0600 0600 0600 0600 0600 FFF0 FFF0 0600 0600 0600 0600 0600 0600 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 14 0 BBX 4 9 5 -4 BITMAP F0 F0 F0 F0 F0 30 30 E0 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 14 0 BBX 12 2 1 4 BITMAP FFF0 FFF0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 14 0 BBX 4 3 5 0 BITMAP F0 F0 F0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 14 0 BBX 14 22 0 -4 BITMAP 001C 0018 0030 0030 0060 0060 00C0 00C0 0180 0180 0300 0300 0600 0600 0C00 0C00 1800 1800 3000 3000 6000 E000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 1 0 BITMAP 0F80 3FE0 38E0 7070 6030 E038 E038 E038 E038 E038 E038 E038 6030 7070 38E0 3FE0 0F80 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 14 0 BBX 9 17 3 0 BITMAP FC00 FC00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 FF80 FF80 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 14 0 BBX 10 17 2 0 BITMAP 7E00 7F80 4380 01C0 01C0 01C0 01C0 0380 0700 0E00 1C00 3800 3800 7000 E000 FFC0 FFC0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 14 0 BBX 9 17 3 0 BITMAP 7E00 FF00 8780 0380 0380 0380 0F00 7C00 7E00 0F00 0380 0380 0380 0380 8700 FF00 FC00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 14 0 BBX 11 17 2 0 BITMAP 0380 0780 0F80 0F80 1F80 1B80 3380 3380 6380 E380 FFE0 FFE0 FFE0 0380 0380 0380 0380 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 14 0 BBX 9 17 3 0 BITMAP FF80 FF80 E000 E000 E000 C000 F800 FE00 0F00 0780 0380 0380 0380 0380 8700 FE00 FC00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 1 0 BITMAP 07E0 1FE0 3C20 7000 7000 E000 E780 FFE0 F0E0 E070 E070 E070 E070 7070 70E0 3FC0 0F80 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 14 0 BBX 10 17 3 0 BITMAP FFC0 FFC0 01C0 0180 0380 0700 0700 0E00 0C00 1C00 1800 3800 3800 3000 7000 7000 7000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 1 0 BITMAP 0F80 3FC0 71E0 70E0 70E0 7DE0 3FC0 1F00 1FC0 7FE0 F1F0 E0F0 E070 E070 F0E0 7FE0 1F80 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 1 0 BITMAP 1F00 3FC0 70E0 E0E0 E070 E070 E070 E070 70F0 7FF0 1E70 0070 00E0 00E0 43C0 7F80 7E00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 14 0 BBX 3 13 6 0 BITMAP E0 E0 E0 00 00 00 00 00 00 00 E0 E0 E0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 14 0 BBX 3 17 6 -4 BITMAP E0 E0 E0 00 00 00 00 00 00 E0 E0 E0 E0 60 60 E0 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 14 0 BBX 11 13 0 0 BITMAP 0020 0060 01E0 0780 1F00 3C00 F000 3C00 1F00 0780 01E0 0060 0020 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 14 0 BBX 12 9 1 2 BITMAP FFF0 FFF0 0000 0000 0000 0000 0000 FFF0 FFF0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 14 0 BBX 11 13 1 0 BITMAP 8000 C000 F000 3C00 1F00 0780 01E0 0780 1F00 3C00 F000 C000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 14 0 BBX 11 17 2 0 BITMAP 7F00 FFC0 C1E0 C0E0 C0E0 01E0 03C0 0700 0E00 1C00 3800 3800 0000 0000 0000 3800 3800 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP 07C0 1FF0 3C38 7018 61D8 67F8 C618 CC18 CC38 CC78 CCF8 CFDC 679C 7000 3820 1FE0 0FC0 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP 0380 0780 07C0 07C0 0DC0 0DC0 0CE0 18E0 18E0 18F0 3070 3FF0 3FF0 6038 6038 6038 C01C ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 2 0 BITMAP FF80 FFC0 E1E0 E0E0 E0E0 E0E0 E3C0 FF80 FFC0 E1E0 E0F0 E070 E070 E070 E0F0 FFE0 FF80 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 1 0 BITMAP 07F8 1FF8 3C18 7800 7000 E000 E000 E000 E000 E000 E000 E000 7000 7800 3C08 1FF8 07F0 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 1 0 BITMAP FF80 FFE0 E1F0 E070 E078 E038 E038 E038 E038 E038 E038 E038 E070 E070 E1E0 FFC0 FF00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 14 0 BBX 11 17 2 0 BITMAP FFC0 FFC0 E000 E000 E000 E000 E000 FF80 FF80 E000 E000 E000 E000 E000 E000 FFE0 FFE0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 2 0 BITMAP FFF0 FFF0 E000 E000 E000 E000 E000 E000 FFE0 FFE0 E000 E000 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP 07F8 1FFC 3C0C 7800 7000 F000 E000 E000 E000 E01C E01C F01C 701C 781C 3E1C 1FFC 07F8 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 1 0 BITMAP E070 E070 E070 E070 E070 E070 E070 FFF0 FFF0 E070 E070 E070 E070 E070 E070 E070 E070 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 14 0 BBX 11 17 2 0 BITMAP FFE0 FFE0 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 FFE0 FFE0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 14 0 BBX 10 17 2 0 BITMAP 7FC0 7FC0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 8380 FF80 FE00 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 2 0 BITMAP E070 E0E0 E1C0 E380 E300 E600 EE00 FC00 FC00 FE00 EF00 E700 E780 E3C0 E1C0 E1E0 E0F0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 14 0 BBX 11 17 3 0 BITMAP E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 FFE0 FFE0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 1 0 BITMAP F078 F078 F0F8 F0F8 F8F8 D8F8 D8F8 D9B8 D9B8 CDB8 CDB8 CF38 CF38 CF38 C738 C638 C038 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 1 0 BITMAP E030 F030 F030 F830 FC30 DC30 DE30 CE30 CF30 C730 C3B0 C3B0 C1F0 C1F0 C0F0 C0F0 C070 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP 0FC0 1FE0 3870 7038 6018 E01C E01C E01C E01C E01C E01C E01C 6018 7038 3870 1FE0 0FC0 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 2 0 BITMAP FF80 FFE0 E0F0 E070 E070 E070 E070 E1E0 FFC0 FF80 E000 E000 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 14 0 BBX 15 21 0 -4 BITMAP 0FC0 1FE0 3870 7038 6018 E01C E01C E01C E01C E01C E01C E01C 601C 7038 3878 1FF0 0FE0 00FE 007C 003C 0008 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 2 0 BITMAP FF80 FFC0 E1E0 E0E0 E0E0 E0E0 E1E0 E3C0 FF80 FF00 E780 E380 E3C0 E1C0 E1C0 E0E0 E0F0 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 1 0 BITMAP 1FE0 7FE0 F020 E000 E000 F000 7C00 3F00 0FC0 07E0 01F0 0070 0070 0070 C0E0 FFC0 FF80 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 1 0 BITMAP FFF8 FFF8 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 1 0 BITMAP E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 70E0 7FE0 1F80 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP F00C 7018 7018 7018 3830 3830 3830 3C60 1C60 1C60 1CC0 0EC0 0EC0 0F80 0780 0780 0700 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP E00C E38C E38C E38C 73D8 77D8 77D8 77D8 76D8 7ED8 7CF8 7CF8 3CF8 3CF0 3870 3870 3870 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP F018 7830 3830 3C60 1CE0 0EC0 0FC0 0780 0780 0780 0FC0 0DE0 18E0 38F0 3070 6078 E03C ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP F01C 7018 3830 3870 1C60 1CE0 0EC0 0F80 0780 0700 0700 0700 0700 0700 0700 0700 0700 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 1 0 BITMAP FFF0 FFF0 00E0 01E0 01C0 03C0 0780 0700 0F00 0E00 1E00 3C00 3800 7800 F000 FFF0 FFF0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 14 0 BBX 9 22 4 -4 BITMAP FF80 FF80 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 FF80 FF80 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 14 0 BBX 14 22 0 -4 BITMAP E000 6000 3000 3000 1800 1800 0C00 0C00 0600 0600 0300 0300 0180 0180 00C0 00C0 0060 0060 0030 0030 0018 001C ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 14 0 BBX 9 22 1 -4 BITMAP FF80 FF80 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 FF80 FF80 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 1 3 BITMAP 0200 0600 0600 0F00 0F00 1F80 1980 1980 30C0 30C0 70E0 6060 E070 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 14 0 BBX 14 2 0 -3 BITMAP FFFC FFFC ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 14 0 BBX 4 7 5 11 BITMAP 70 F0 C0 F0 F0 F0 F0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 1 0 BITMAP 3FC0 7FE0 60F0 0070 0070 1FF0 7FF0 F070 E070 E070 F1F8 7FF8 3E78 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 2 0 BITMAP E000 E000 E000 E000 E000 E780 EFE0 FFE0 F8F0 F070 E070 E070 E070 E070 E0E0 F1E0 FFC0 EF80 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 1 0 BITMAP 0FF0 3FF0 7830 7000 E000 E000 E000 E000 E000 7000 7C10 3FF0 0FF0 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 1 0 BITMAP 0070 0070 0070 0070 0070 1F70 3FF0 78F0 7070 E070 E070 E070 E070 E0F0 F1F0 7FF0 7F70 1E70 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 1 0 BITMAP 0FC0 3FE0 7870 7038 E038 FFF8 FFF8 E000 E000 7000 7818 3FF8 0FF0 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 14 0 BBX 11 18 3 0 BITMAP 0FE0 1FE0 3820 3800 3800 FFC0 FFC0 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 1 -5 BITMAP 1F70 3FF0 70F0 7070 E070 E070 E070 E070 E0F0 F1F0 7FF0 7F70 1E70 0070 0060 60E0 7FC0 1F80 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 14 0 BBX 11 18 2 0 BITMAP E000 E000 E000 E000 E000 E780 EFC0 FFE0 F8E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 14 0 BBX 8 18 2 0 BITMAP 07 07 07 00 00 FF FF 07 07 07 07 07 07 07 07 07 07 07 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 14 0 BBX 9 23 2 -5 BITMAP 0380 0380 0380 0000 0000 7F80 7F80 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 8780 FF00 FE00 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 2 0 BITMAP E000 E000 E000 E000 E000 E0E0 E180 E380 E700 E600 EC00 FE00 EF00 E780 E380 E3C0 E1E0 E0F0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 14 0 BBX 8 18 1 0 BITMAP FF FF 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 1 0 BITMAP E670 EF78 FFF8 F7B8 E738 E738 E738 E738 E738 E738 E738 E738 E738 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 14 0 BBX 11 13 2 0 BITMAP E780 EFC0 FFE0 F8E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 1 0 BITMAP 0F80 3FE0 78F0 7070 E038 E038 E038 E038 E038 7070 78F0 3FE0 0F80 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 1 -5 BITMAP E780 EFE0 FFE0 F8F0 F070 E070 E070 E070 E070 E0E0 F1E0 FFC0 EF80 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 1 -5 BITMAP 1F70 3FF0 78F0 7070 E070 E070 E070 E070 E0F0 F1F0 7FF0 7F70 1E70 0070 0070 0070 0070 0070 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 14 0 BBX 10 13 3 0 BITMAP E7C0 EFC0 FFC0 F8C0 F0C0 E000 E000 E000 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 14 0 BBX 11 13 2 0 BITMAP 1FC0 7FC0 F040 F000 F800 7F00 3FC0 07E0 01E0 00E0 C1E0 FFC0 7F00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 14 0 BBX 11 16 2 0 BITMAP 1C00 1C00 1C00 FFE0 FFE0 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1E20 0FE0 07E0 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 14 0 BBX 11 13 2 0 BITMAP E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E3E0 FFE0 7EE0 3CE0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 14 0 BBX 14 13 0 0 BITMAP F01C 7018 7018 3830 3830 3C70 1C60 1C60 0EC0 0EC0 0F80 0780 0780 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 14 0 BBX 14 13 0 0 BITMAP E00C E38C E38C 7798 77D8 77D8 7FD8 7CD8 7CF8 3CF0 38F0 3870 3870 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 1 0 BITMAP F030 7860 3CE0 1DC0 0F80 0F00 0700 0F80 1FC0 19C0 31E0 70F0 E078 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 0 -5 BITMAP F01C 7018 7838 3830 3C30 1C60 1E60 0EC0 0EC0 07C0 0780 0380 0300 0300 0600 0600 7C00 7800 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 1 0 BITMAP FFF0 FFF0 01E0 01C0 03C0 0780 0F00 1E00 3C00 7800 F000 FFF0 FFF0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 14 0 BBX 10 22 3 -4 BITMAP 07C0 1FC0 1C00 1C00 1C00 0E00 0E00 0E00 0E00 0C00 F800 F800 0C00 0E00 0E00 0E00 1E00 1C00 1C00 1C00 1FC0 07C0 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 14 0 BBX 2 22 6 -4 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 14 0 BBX 10 22 2 -4 BITMAP F800 FE00 0E00 0E00 0E00 1E00 1C00 1C00 1C00 0C00 07C0 07C0 0C00 1C00 1C00 1C00 1C00 0E00 0E00 0E00 FE00 F800 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 14 0 BBX 12 5 1 4 BITMAP 3830 7C30 CF30 C3E0 C1C0 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 14 0 BBX 3 18 6 -5 BITMAP E0 E0 E0 00 00 60 60 60 60 60 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 14 0 BBX 11 17 2 0 BITMAP 0300 0300 07E0 1FE0 3860 7000 E000 E000 E000 E000 E000 7000 7820 3FE0 0FE0 0300 0300 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 14 0 BBX 9 17 3 0 BITMAP 0F80 1F80 3800 3800 3800 3800 3800 FE00 FE00 3800 3800 3800 3800 3000 7000 FF80 FF80 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 1 2 BITMAP 6030 FFF8 FFF0 78E0 7070 6030 6030 6030 7070 78E0 FFF0 FFF8 6010 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP F01C 7838 3830 3C60 1EE0 0FC0 0F80 0700 3FE0 3FE0 0700 3FE0 3FE0 0700 0700 0700 0700 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 14 0 BBX 2 22 6 -4 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 00 00 00 00 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 14 0 BBX 10 22 2 -5 BITMAP 1F80 7F80 E080 E000 E000 F000 7C00 3F00 6780 C1C0 C0C0 C0C0 F0C0 7D80 3F00 1F80 07C0 01C0 01C0 C3C0 FF80 FE00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 14 0 BBX 7 2 4 15 BITMAP EE EE ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 1 0 BITMAP 0F80 3FE0 7070 6030 C798 CF98 D898 D818 D818 D818 D898 CF98 E7B8 6030 7070 3FE0 0F80 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 14 0 BBX 11 9 2 8 BITMAP 7F00 FFC0 C0C0 3FC0 7FC0 C0C0 C1C0 FFE0 7CE0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 14 0 BBX 13 11 1 1 BITMAP 0410 0E38 1C70 18E0 38C0 F3C0 79E0 3CF0 1C70 0E38 0410 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 14 0 BBX 12 6 1 2 BITMAP FFF0 FFF0 0030 0030 0030 0030 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 14 0 BBX 10 2 2 7 BITMAP FFC0 FFC0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 14 0 BBX 13 12 1 5 BITMAP 0F80 3FE0 7070 6FB0 CD98 CD98 CF18 CD98 6DB0 7070 3FE0 0F80 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 14 0 BBX 7 2 4 15 BITMAP FE FE ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 14 0 BBX 4 4 5 13 BITMAP 60 90 90 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 1 0 BITMAP 0600 0600 0600 FFF0 FFF0 0600 0600 0600 0600 0000 0000 FFF0 FFF0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 14 0 BBX 5 9 -3 8 BITMAP F0 F8 18 18 38 70 E0 F8 F8 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 14 0 BBX 5 9 -3 8 BITMAP F0 F8 18 70 70 18 18 F8 F0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 14 0 BBX 6 3 4 15 BITMAP 3C 70 E0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 14 0 BBX 11 17 2 -4 BITMAP E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 F1E0 FFE0 FFE0 FEE0 E000 E000 E000 E000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 14 0 BBX 9 21 2 -4 BITMAP 7F80 FF80 FD80 FD80 FD80 FD80 7D80 7D80 1D80 0D80 0D80 0D80 0D80 0D80 0D80 0D80 0D80 0D80 0D80 0D80 0D80 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 14 0 BBX 3 3 6 4 BITMAP E0 E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 14 0 BBX 5 6 5 -5 BITMAP 60 60 F0 38 18 F0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 14 0 BBX 6 9 -2 8 BITMAP F0 F0 30 30 30 30 30 FC FC ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 14 0 BBX 11 9 2 8 BITMAP 1F00 7FC0 E0E0 C060 C060 C060 E0E0 7FC0 1F00 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 14 0 BBX 13 11 1 1 BITMAP 4100 E380 71C0 79E0 3CF0 1E78 18E0 38C0 71C0 E380 4100 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 1 0 BITMAP F01C F018 3030 3070 3060 30C0 31C0 FF80 FF38 0738 0E78 0C78 18D8 38FC 30FC 6018 E018 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 1 0 BITMAP F01C F018 3030 3070 3060 30C0 31C0 FF80 FF78 077C 0E0C 0C0C 181C 3838 3070 607C E07C ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 1 0 BITMAP F01C F818 1830 7070 7060 18C0 19C0 FB80 F338 0738 0E78 0C78 18D8 38FC 30FC 6018 E018 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 14 0 BBX 11 18 1 -5 BITMAP 0380 0380 0380 0000 0000 0380 0380 0380 0700 1E00 3800 7000 E000 E060 E060 F060 7FE0 1FC0 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 14 0 BBX 14 21 0 0 BITMAP 0F00 0380 01C0 0000 0380 0780 07C0 07C0 0DC0 0DC0 0CE0 18E0 18E0 18F0 3070 3FF0 3FF0 6038 6038 6038 C01C ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 14 0 BBX 14 21 0 0 BITMAP 03C0 0700 0E00 0000 0380 0780 07C0 07C0 0DC0 0DC0 0CE0 18E0 18E0 18F0 3070 3FF0 3FF0 6038 6038 6038 C01C ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 14 0 BBX 14 21 0 0 BITMAP 0700 0D80 1DC0 0000 0380 0780 07C0 07C0 0DC0 0DC0 0CE0 18E0 18E0 18F0 3070 3FF0 3FF0 6038 6038 6038 C01C ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 14 0 BBX 14 21 0 0 BITMAP 0760 0FE0 0DC0 0000 0380 0780 07C0 07C0 0DC0 0DC0 0CE0 18E0 18E0 18F0 3070 3FF0 3FF0 6038 6038 6038 C01C ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 14 0 BBX 14 20 0 0 BITMAP 1DC0 1DC0 0000 0380 0780 07C0 07C0 0DC0 0DC0 0CE0 18E0 18E0 18F0 3070 3FF0 3FF0 6038 6038 6038 C01C ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 14 0 BBX 14 21 0 0 BITMAP 0300 0480 0300 0000 0380 0780 07C0 07C0 0DC0 0DC0 0CE0 18E0 18E0 18F0 3070 3FF0 3FF0 6038 6038 6038 C01C ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP 01FC 03FC 03C0 07C0 07C0 07C0 0DC0 0DF8 1DF8 19C0 19C0 31C0 3FC0 7FC0 61C0 61FC C1FC ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 14 0 BBX 13 22 1 -5 BITMAP 07F8 1FF8 3C18 7800 7000 E000 E000 E000 E000 E000 E000 E000 7000 7800 3C08 1FF8 07F0 0300 0780 01C0 00C0 0780 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 14 0 BBX 11 21 2 0 BITMAP 3C00 0E00 0700 0000 FFC0 FFC0 E000 E000 E000 E000 E000 FF80 FF80 E000 E000 E000 E000 E000 E000 FFE0 FFE0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 14 0 BBX 11 21 2 0 BITMAP 0F00 1C00 3800 0000 FFC0 FFC0 E000 E000 E000 E000 E000 FF80 FF80 E000 E000 E000 E000 E000 E000 FFE0 FFE0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 0 0 BBX 0 0 0 0 BITMAP ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 14 0 BBX 11 20 2 0 BITMAP 3B80 3B80 0000 FFC0 FFC0 E000 E000 E000 E000 E000 FF80 FF80 E000 E000 E000 E000 E000 E000 FFE0 FFE0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 14 0 BBX 11 21 2 0 BITMAP 1E00 0700 0380 0000 FFE0 FFE0 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 FFE0 FFE0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 14 0 BBX 11 21 2 0 BITMAP 0F00 1C00 3800 0000 FFE0 FFE0 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 FFE0 FFE0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 14 0 BBX 11 21 2 0 BITMAP 0E00 1B00 3B80 0000 FFE0 FFE0 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 FFE0 FFE0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 14 0 BBX 11 20 2 0 BITMAP 3B80 3B80 0000 FFE0 FFE0 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 FFE0 FFE0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP 7FC0 7FF0 70F8 7038 703C 701C 701C FF1C FF1C 701C 701C 701C 7038 7038 70F0 7FE0 7F80 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 14 0 BBX 12 21 1 0 BITMAP 0EC0 1FC0 1B80 0000 E030 F030 F030 F830 FC30 DC30 DE30 CE30 CF30 C730 C3B0 C3B0 C1F0 C1F0 C0F0 C0F0 C070 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 14 0 BBX 14 21 0 0 BITMAP 0F00 0380 01C0 0000 0FC0 1FE0 3870 7038 6018 E01C E01C E01C E01C E01C E01C E01C 6018 7038 3870 1FE0 0FC0 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 14 0 BBX 14 21 0 0 BITMAP 03C0 0700 0E00 0000 0FC0 1FE0 3870 7038 6018 E01C E01C E01C E01C E01C E01C E01C 6018 7038 3870 1FE0 0FC0 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 14 0 BBX 14 21 0 0 BITMAP 0700 0D80 1DC0 0000 0FC0 1FE0 3870 7038 6018 E01C E01C E01C E01C E01C E01C E01C 6018 7038 3870 1FE0 0FC0 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 14 0 BBX 14 21 0 0 BITMAP 0EC0 1FC0 1B80 0000 0FC0 1FE0 3870 7038 6018 E01C E01C E01C E01C E01C E01C E01C 6018 7038 3870 1FE0 0FC0 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 14 0 BBX 14 20 0 0 BITMAP 1DC0 1DC0 0000 0FC0 1FE0 3870 7038 6018 E01C E01C E01C E01C E01C E01C E01C 6018 7038 3870 1FE0 0FC0 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 1 0 BITMAP 4010 E038 7070 38E0 1DC0 0F80 0700 0F80 1DC0 38E0 7070 E038 4010 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP 0FDC 1FF8 3870 7038 6078 E0FC E1DC E19C E31C E61C EE1C FC1C 7818 7038 3870 7FE0 EFC0 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 14 0 BBX 12 21 1 0 BITMAP 1E00 0700 0380 0000 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 70E0 7FE0 1F80 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 14 0 BBX 12 21 1 0 BITMAP 0780 0E00 1C00 0000 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 70E0 7FE0 1F80 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 14 0 BBX 12 21 1 0 BITMAP 0700 0D80 1DC0 0000 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 70E0 7FE0 1F80 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 14 0 BBX 12 20 1 0 BITMAP 1DC0 1DC0 0000 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 70E0 7FE0 1F80 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 14 0 BBX 14 21 0 0 BITMAP 03C0 0700 0E00 0000 F01C 7018 3830 3870 1C60 1CE0 0EC0 0F80 0780 0700 0700 0700 0700 0700 0700 0700 0700 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 2 0 BITMAP E000 E000 E000 FF80 FFE0 E0F0 E070 E070 E070 E070 E1E0 FFC0 FF80 E000 E000 E000 E000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 1 0 BITMAP 3F00 7FC0 73C0 E1C0 E180 E380 E700 E600 E700 E780 E3C0 E1E0 E0F0 E070 E070 E870 EFE0 EFC0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 1 0 BITMAP 1E00 0700 0380 0000 3FC0 7FE0 60F0 0070 0070 1FF0 7FF0 F070 E070 E070 F1F8 7FF8 3E78 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 1 0 BITMAP 0780 0E00 1C00 0000 3FC0 7FE0 60F0 0070 0070 1FF0 7FF0 F070 E070 E070 F1F8 7FF8 3E78 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 1 0 BITMAP 0700 0D80 1DC0 0000 3FC0 7FE0 60F0 0070 0070 1FF0 7FF0 F070 E070 E070 F1F8 7FF8 3E78 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 1 0 BITMAP 0EC0 1FC0 1B80 0000 3FC0 7FE0 60F0 0070 0070 1FF0 7FF0 F070 E070 E070 F1F8 7FF8 3E78 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 14 0 BBX 13 16 1 0 BITMAP 1DC0 1DC0 0000 3FC0 7FE0 60F0 0070 0070 1FF0 7FF0 F070 E070 E070 F1F8 7FF8 3E78 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 1 0 BITMAP 0600 0900 0600 0000 3FC0 7FE0 60F0 0070 0070 1FF0 7FF0 F070 E070 E070 F1F8 7FF8 3E78 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 1 0 BITMAP 3EE0 7FF0 4330 0338 0338 1FF8 7FF8 F300 E300 E300 E788 7FF8 39F0 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 1 -5 BITMAP 0FF0 3FF0 7830 7000 E000 E000 E000 E000 E000 7000 7C10 3FF0 0FF0 0600 0F00 0380 0180 0F00 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 1 0 BITMAP 1E00 0700 0380 0000 0FC0 3FE0 7870 7038 E038 FFF8 FFF8 E000 E000 7000 7818 3FF8 0FF0 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 1 0 BITMAP 0780 0E00 1C00 0000 0FC0 3FE0 7870 7038 E038 FFF8 FFF8 E000 E000 7000 7818 3FF8 0FF0 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 1 0 BITMAP 0700 0D80 1DC0 0000 0FC0 3FE0 7870 7038 E038 FFF8 FFF8 E000 E000 7000 7818 3FF8 0FF0 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 14 0 BBX 13 16 1 0 BITMAP 1DC0 1DC0 0000 0FC0 3FE0 7870 7038 E038 FFF8 FFF8 E000 E000 7000 7818 3FF8 0FF0 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 14 0 BBX 8 17 2 0 BITMAP 3C 0E 07 00 FF FF 07 07 07 07 07 07 07 07 07 07 07 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 14 0 BBX 8 17 2 0 BITMAP 0F 1C 38 00 FF FF 07 07 07 07 07 07 07 07 07 07 07 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 14 0 BBX 8 17 2 0 BITMAP 1C 36 77 00 FF FF 07 07 07 07 07 07 07 07 07 07 07 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 14 0 BBX 8 16 2 0 BITMAP 77 77 00 FF FF 07 07 07 07 07 07 07 07 07 07 07 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 1 0 BITMAP FC40 FFE0 1FC0 1FC0 11E0 0FF0 3FF0 78F8 7078 E038 E038 E038 E038 E038 7070 78F0 3FE0 0F80 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 14 0 BBX 11 17 2 0 BITMAP 1D80 3F80 3700 0000 E780 EFC0 FFE0 F8E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 1 0 BITMAP 0F00 0380 01C0 0000 0F80 3FE0 78F0 7070 E038 E038 E038 E038 E038 7070 78F0 3FE0 0F80 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 1 0 BITMAP 0780 0E00 1C00 0000 0F80 3FE0 78F0 7070 E038 E038 E038 E038 E038 7070 78F0 3FE0 0F80 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 1 0 BITMAP 0700 0D80 1DC0 0000 0F80 3FE0 78F0 7070 E038 E038 E038 E038 E038 7070 78F0 3FE0 0F80 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 1 0 BITMAP 0EC0 1FC0 1B80 0000 0F80 3FE0 78F0 7070 E038 E038 E038 E038 E038 7070 78F0 3FE0 0F80 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 14 0 BBX 13 16 1 0 BITMAP 1DC0 1DC0 0000 0F80 3FE0 78F0 7070 E038 E038 E038 E038 E038 7070 78F0 3FE0 0F80 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 1 0 BITMAP 0E00 0E00 0E00 0000 0000 FFF0 FFF0 0000 0000 0000 0E00 0E00 0E00 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 1 0 BITMAP 0FF8 3FF0 7870 70F0 E1F8 E3B8 E738 EE38 FC38 7870 70F0 7FE0 FF80 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 14 0 BBX 11 17 2 0 BITMAP 1E00 0700 0380 0000 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E3E0 FFE0 7EE0 3CE0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 14 0 BBX 11 17 2 0 BITMAP 0780 0E00 1C00 0000 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E3E0 FFE0 7EE0 3CE0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 14 0 BBX 11 17 2 0 BITMAP 0E00 1B00 3B80 0000 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E3E0 FFE0 7EE0 3CE0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 14 0 BBX 11 16 2 0 BITMAP 3B80 3B80 0000 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E3E0 FFE0 7EE0 3CE0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 14 0 BBX 14 22 0 -5 BITMAP 03C0 0700 0E00 0000 F01C 7018 7838 3830 3C30 1C60 1E60 0EC0 0EC0 07C0 0780 0380 0300 0300 0600 0600 7C00 7800 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 14 0 BBX 12 21 1 -5 BITMAP E000 E000 E000 E780 EFE0 FFE0 F8F0 F070 E070 E070 E070 E070 E0E0 F1E0 FFC0 EF80 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 14 0 BBX 14 21 0 -5 BITMAP 1DC0 1DC0 0000 F01C 7018 7838 3830 3C30 1C60 1E60 0EC0 0EC0 07C0 0780 0380 0300 0300 0600 0600 7C00 7800 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 11 18 2 0 BITMAP 1FE0 3FE0 70E0 70E0 70E0 FEE0 FEE0 70E0 70E0 70E0 70E0 70E0 70E0 70E0 70E0 70E0 70E0 70E0 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 11 2 2 7 BITMAP FFE0 FFE0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 9 21 3 -4 BITMAP 1C00 1C00 1C00 1C00 1C00 1C00 FF80 FF80 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 12 21 1 0 BITMAP 1DC0 0D80 0700 0000 FFF0 FFF0 00E0 01E0 01C0 03C0 0780 0700 0F00 0E00 1E00 3C00 3800 7800 F000 FFF0 FFF0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 13 0 0 BITMAP 1E70 3FF8 73CC E38C E38C E3FC E3FC E380 E380 E380 73C4 7FFC 1EF8 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 20 0 0 BITMAP 1DC0 1DC0 0000 F01C 7018 3830 3870 1C60 1CE0 0EC0 0F80 0780 0700 0700 0700 0700 0700 0700 0700 0700 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 8 13 2 0 BITMAP FF FF 07 07 07 07 07 07 07 07 07 07 07 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 11 18 1 0 BITMAP FF00 FF00 0700 0700 0700 0720 07E0 07E0 0F80 3F00 3F00 2700 0700 0700 0700 0700 0700 0700 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP 1C00 1C00 1C00 1C00 1C80 1F80 1F80 1F00 3C00 FC00 FC00 9C00 1C00 1C00 1C00 1FFC 1FFC ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 9 21 3 -4 BITMAP 1C00 1C00 1C00 1C00 1C00 1C00 FF80 FF80 1C00 1C00 1C00 1C00 1C00 FF80 FF80 1C00 1C00 1C00 1C00 1C00 1C00 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 11 18 1 0 BITMAP 1E60 3E60 7060 7000 7000 FFE0 FFE0 70E0 70E0 70E0 70E0 70E0 70E0 70E0 70E0 70E0 70E0 70E0 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 7 11 4 1 BITMAP 40 E0 70 78 3C 1E 18 38 70 E0 40 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 1 0 BITMAP 1FFC 3FFC 70C0 70C0 E0C0 E0C0 E0C0 E0FC E0FC E0C0 E0C0 E0C0 E0C0 70C0 78C0 3FFC 1FFC ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 13 2 1 7 BITMAP FFF8 FFF8 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 7 3 4 15 BITMAP EE 6C 38 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 4 5 5 -5 BITMAP 70 40 C0 F0 F0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 8 3 4 15 BITMAP 37 6C C8 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 7 11 4 1 BITMAP 04 0E 1C 18 30 F0 78 3C 1C 0E 04 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 3 2 6 15 BITMAP E0 E0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 7 3 4 14 BITMAP C6 FE 7C ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 9 9 3 1 BITMAP FF80 FF80 FF80 FF80 FF80 FF80 FF80 FF80 FF80 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 7 3 4 14 BITMAP 76 FE DC ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 7 3 4 15 BITMAP 38 6C EE ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 10 7 2 11 BITMAP 60C0 C180 C180 C180 E1C0 E1C0 E1C0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 4 7 5 11 BITMAP F0 F0 F0 F0 60 60 60 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 11 17 2 0 BITMAP 3B80 1B00 0E00 0000 1FC0 7FC0 F040 F000 F800 7F00 3FC0 07E0 01E0 00E0 C1E0 FFC0 7F00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 4 3 5 15 BITMAP 60 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 4 9 5 -4 BITMAP F0 F0 F0 F0 F0 30 30 E0 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 11 21 2 -4 BITMAP 03E0 07E0 0F00 0E00 0E00 1E00 1E00 7F80 7F80 1C00 3C00 3800 3800 3800 3800 7000 7000 7000 7000 7000 E000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 9 0 8 BITMAP FF9C FF9C 339C 33FC 33FC 336C 336C 336C 330C ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP 001C 0018 0030 0070 0060 00C0 01C0 0380 0300 0700 0E00 0C00 1800 3800 3000 6000 E000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 6 3 4 15 BITMAP F0 38 1C ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP 7180 D900 D900 DA00 DA00 DC00 DC00 7800 0800 1800 1338 17EC 27EC 27EC 47EC 47EC 8338 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 12 2 1 0 BITMAP C630 C630 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 10 7 2 11 BITMAP E1C0 E1C0 E1C0 60C0 60C0 C180 8100 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 12 21 1 0 BITMAP 3B80 1B00 0E00 0000 1FE0 7FE0 F020 E000 E000 F000 7C00 3F00 0FC0 07E0 01F0 0070 0070 0070 C0E0 FFC0 FF80 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 10 8 2 -4 BITMAP E1C0 E1C0 E1C0 60C0 60C0 60C0 60C0 C180 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 1 0 BITMAP 3B80 1B00 0E00 0000 FFF0 FFF0 01E0 01C0 03C0 0780 0F00 1E00 3C00 7800 F000 FFF0 FFF0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lutRS08.bdf100644 1750 1750 53702 5413747506 15176 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaTypewriter-Medium-R-Normal-Sans-8-80-75-75-M-50-ISO8859-1 SIZE 8 72 72 FONTBOUNDINGBOX 7 10 -1 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaTypewriter" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 8 POINT_SIZE 80 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "M" AVERAGE_WIDTH 50 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 7 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 5 0 BBX 1 6 2 0 BITMAP 80 80 80 80 00 80 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 5 0 BBX 3 2 1 4 BITMAP A0 A0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 50 F0 60 F0 A0 A0 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 5 0 BBX 3 7 1 -1 BITMAP E0 C0 C0 60 60 E0 40 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP D0 E0 E0 70 70 B0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 0 -1 BITMAP 60 60 60 B0 B0 60 10 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 5 0 BBX 1 2 2 4 BITMAP 80 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 5 0 BBX 3 8 1 -2 BITMAP 60 40 80 80 80 80 40 20 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 5 0 BBX 3 8 1 -2 BITMAP 80 40 20 20 20 20 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 5 0 BBX 4 3 0 3 BITMAP 40 F0 F0 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 0 BITMAP 20 F8 20 20 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 5 0 BBX 1 3 2 -2 BITMAP 80 80 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 5 0 BBX 4 1 0 2 BITMAP F0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 2 0 BITMAP 80 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 0 -2 BITMAP 10 30 20 20 40 40 C0 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 60 90 90 90 90 60 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP E0 20 20 20 20 F8 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP E0 20 20 40 80 E0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP E0 20 C0 20 20 C0 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 20 60 60 A0 F0 20 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP E0 80 C0 20 20 C0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 70 80 E0 90 90 60 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP E0 20 40 40 80 80 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 70 90 60 F0 90 60 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 60 90 90 70 10 E0 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 5 0 BBX 1 4 2 0 BITMAP 80 00 00 80 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 5 0 BBX 1 6 2 -2 BITMAP 80 00 00 80 80 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP 30 E0 E0 30 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 5 0 BBX 4 2 0 1 BITMAP F0 F0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP C0 70 70 C0 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP F0 90 30 40 00 40 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP 60 E0 E0 E0 E0 40 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 20 70 50 70 88 88 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP F0 90 E0 90 90 F0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 70 C0 80 80 C0 70 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP E0 90 90 90 90 E0 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP F0 80 E0 80 80 F0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP F0 80 80 F0 80 80 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 70 C0 80 90 D0 70 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 90 90 F0 90 90 90 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP E0 40 40 40 40 E0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP E0 20 20 20 20 E0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP B0 A0 C0 C0 A0 90 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 80 80 80 80 80 F0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 90 F0 F0 F0 F0 F0 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 90 D0 D0 B0 B0 90 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 60 90 90 90 90 60 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP F0 90 90 E0 80 80 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 1 -2 BITMAP 60 90 90 90 90 70 20 10 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP E0 A0 A0 C0 A0 90 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP E0 80 C0 30 10 E0 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP F8 20 20 20 20 20 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 90 90 90 90 90 F0 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 88 88 50 50 50 20 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP A8 A8 A8 A8 E8 50 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP C8 50 20 30 50 88 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 88 50 50 20 20 20 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP F0 30 20 40 C0 F0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 5 0 BBX 3 8 1 -2 BITMAP E0 80 80 80 80 80 80 E0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 0 -2 BITMAP 80 C0 40 40 20 20 30 10 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 5 0 BBX 3 8 0 -2 BITMAP E0 20 20 20 20 20 20 E0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 1 BITMAP 20 20 60 60 90 90 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 5 0 BBX 5 1 0 -1 BITMAP F8 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 5 0 BBX 1 2 2 4 BITMAP 80 80 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 1 0 BITMAP E0 E0 A0 D0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 80 80 E0 90 90 E0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP 70 80 80 70 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 10 10 70 90 90 F0 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP 70 F0 80 70 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 70 40 F0 40 40 40 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 -2 BITMAP 70 90 90 F0 10 F0 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP 80 80 E0 A0 A0 A0 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 0 0 BITMAP 20 00 E0 20 20 20 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 5 0 BBX 3 8 1 -2 BITMAP 20 00 E0 20 20 20 20 E0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 80 80 B0 E0 E0 B0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 0 0 BITMAP E0 20 20 20 20 20 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 0 BITMAP F8 A8 A8 A8 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 5 0 BBX 3 4 1 0 BITMAP E0 A0 A0 A0 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP 60 90 90 60 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 -2 BITMAP E0 90 90 E0 80 80 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 -2 BITMAP 70 90 90 F0 10 10 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 5 0 BBX 3 4 1 0 BITMAP E0 A0 80 80 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 5 0 BBX 3 4 1 0 BITMAP E0 C0 20 E0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 40 40 F0 40 40 70 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 5 0 BBX 3 4 1 0 BITMAP A0 A0 A0 E0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP 90 90 60 60 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 0 BITMAP A8 A8 58 50 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP B0 60 60 90 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 -2 BITMAP 90 F0 60 60 40 C0 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP F0 20 40 F0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 5 0 BBX 3 8 1 -2 BITMAP 60 40 40 40 C0 40 40 60 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 5 0 BBX 1 8 2 -2 BITMAP 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 5 0 BBX 3 8 1 -2 BITMAP C0 40 40 40 60 40 40 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 5 0 BBX 4 2 0 1 BITMAP D0 B0 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 5 0 BBX 1 6 2 -2 BITMAP 80 00 80 80 80 80 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP 40 E0 C0 C0 E0 40 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 70 40 E0 40 40 F0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 5 0 BBX 3 4 1 1 BITMAP A0 E0 A0 E0 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 88 50 30 70 70 20 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 5 0 BBX 1 8 2 -2 BITMAP 80 80 80 00 00 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 5 0 BBX 3 8 1 -2 BITMAP E0 80 40 A0 E0 40 20 E0 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 5 0 BBX 2 1 1 5 BITMAP C0 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 60 D0 D0 D0 D0 60 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 1 3 BITMAP E0 E0 E0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP 50 E0 E0 50 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 5 0 BBX 4 2 0 1 BITMAP F0 10 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 1 2 BITMAP E0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 2 BITMAP 60 F0 F0 60 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 5 0 BBX 2 1 1 5 BITMAP C0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 5 0 BBX 1 2 2 4 BITMAP 80 80 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 0 BITMAP 20 F8 20 F8 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 0 3 BITMAP 60 A0 60 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 5 0 BBX 2 3 -1 3 BITMAP C0 80 C0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 5 0 BBX 2 1 1 5 BITMAP C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 -2 BITMAP A0 A0 A0 E0 80 80 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 5 0 BBX 2 8 1 -2 BITMAP C0 C0 C0 40 40 40 40 40 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 2 2 BITMAP 80 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 5 0 BBX 1 2 2 -2 BITMAP 80 80 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 -1 3 BITMAP C0 40 E0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 1 3 BITMAP E0 A0 E0 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP A0 70 70 A0 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP C8 50 E0 38 58 88 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP C8 50 E0 38 68 98 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP C8 90 E0 38 58 88 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 -2 BITMAP 20 00 20 C0 90 F0 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 30 20 70 50 70 88 88 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 60 20 70 50 70 88 88 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 70 20 70 50 70 88 88 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 70 20 70 50 70 88 88 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 30 20 70 50 70 88 88 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 0 0 BITMAP 20 50 20 70 50 70 88 88 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 30 60 60 70 E0 B0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 0 -2 BITMAP 70 C0 80 80 C0 70 20 20 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 0 BITMAP 20 F0 80 E0 80 80 F0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 0 BITMAP 40 F0 80 E0 80 80 F0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 0 0 BBX 0 0 0 0 BITMAP ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 0 BITMAP 60 F0 80 E0 80 80 F0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 5 0 BBX 3 7 1 0 BITMAP 20 E0 40 40 40 40 E0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 5 0 BBX 3 7 1 0 BITMAP 80 E0 40 40 40 40 E0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 5 0 BBX 3 7 1 0 BITMAP E0 E0 40 40 40 40 E0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 5 0 BBX 3 7 1 0 BITMAP C0 E0 40 40 40 40 E0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP E0 90 D0 90 90 E0 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 0 0 BITMAP 70 90 D0 D0 B0 B0 90 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 0 0 BITMAP 60 60 90 90 90 90 60 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 0 0 BITMAP 60 60 90 90 90 90 60 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 0 0 BITMAP 70 60 90 90 90 90 60 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 0 0 BITMAP 70 60 90 90 90 90 60 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 0 0 BITMAP 60 60 90 90 90 90 60 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 0 BITMAP 20 F8 00 20 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 70 B0 B0 D0 D0 E0 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 0 0 BITMAP 60 90 90 90 90 90 F0 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 0 0 BITMAP 60 90 90 90 90 90 F0 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 0 0 BITMAP E0 90 90 90 90 90 F0 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 0 0 BITMAP 60 90 90 90 90 90 F0 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 60 88 50 50 20 20 20 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 80 F0 90 90 E0 80 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP E0 A0 A0 B0 90 B0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 20 E0 E0 A0 D0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 40 E0 E0 A0 D0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP E0 E0 E0 A0 D0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP E0 E0 E0 A0 D0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 1 0 BITMAP 60 E0 E0 A0 D0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 40 A0 E0 E0 A0 D0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 0 BITMAP D8 F8 A0 D8 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 -2 BITMAP 70 80 80 70 20 20 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 20 70 F0 80 70 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 40 70 F0 80 70 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP E0 70 F0 80 70 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 60 70 F0 80 70 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 0 0 BITMAP 20 E0 20 20 20 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 0 0 BITMAP 40 E0 20 20 20 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 70 E0 20 20 20 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 0 0 BITMAP 60 E0 20 20 20 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP E0 60 70 90 90 60 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 0 BITMAP E0 E0 A0 A0 A0 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 60 60 90 90 60 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 60 60 90 90 60 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 70 60 90 90 60 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 70 60 90 90 60 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 60 60 90 90 60 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP 90 60 60 90 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 0 BITMAP 70 B0 D0 E0 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 0 BITMAP 60 A0 A0 A0 E0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 0 BITMAP C0 A0 A0 A0 E0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 0 BITMAP E0 A0 A0 A0 E0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 0 BITMAP 60 A0 A0 A0 E0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 0 -2 BITMAP 60 90 F0 60 60 40 C0 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 1 -2 BITMAP 80 80 E0 90 90 E0 80 80 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 0 -2 BITMAP 60 90 F0 60 60 40 C0 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 70 50 D0 50 50 50 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 1 0 2 BITMAP F0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 8 1 -2 BITMAP 40 40 E0 40 40 40 40 40 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 0 0 BITMAP A0 F0 30 20 40 C0 F0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 0 BITMAP 58 B8 A0 58 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 0 BITMAP 60 88 50 50 20 20 20 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 4 0 0 BITMAP E0 20 20 20 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP E0 20 30 60 20 20 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 40 60 60 C0 40 78 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 8 1 -2 BITMAP 40 40 E0 40 40 E0 40 40 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP 70 40 F0 50 50 50 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 2 4 1 0 BITMAP 80 40 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP F8 A0 B0 A0 A0 F8 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 1 0 2 BITMAP F0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 1 5 BITMAP E0 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 1 2 2 -2 BITMAP 80 80 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 1 5 BITMAP E0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 2 4 1 0 BITMAP 40 80 80 40 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 2 5 BITMAP 80 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 1 5 BITMAP E0 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 2 2 1 1 BITMAP C0 C0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 1 5 BITMAP E0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 1 5 BITMAP E0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 2 1 4 BITMAP A0 A0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 1 2 2 4 BITMAP 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 0 BITMAP E0 E0 C0 20 E0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 3 4 BITMAP 40 A0 40 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 1 3 2 -2 BITMAP 80 80 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 1 -2 BITMAP 30 40 40 E0 40 40 80 80 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 3 0 3 BITMAP F0 70 70 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP 08 10 20 20 40 80 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 2 1 1 5 BITMAP C0 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 6 6 0 0 BITMAP D0 E0 20 7C 7C BC ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 1 0 0 BITMAP B0 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 2 1 4 BITMAP A0 A0 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 0 0 BITMAP E0 E0 80 C0 30 10 E0 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 1 -2 BITMAP A0 A0 A0 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 0 BITMAP 50 F0 20 40 F0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lutRS10.bdf100644 1750 1750 56041 5413747507 15167 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. COMMENT GRID 0010 0010 0200 0200 FONT -B&H-LucidaTypewriter-Medium-R-Normal-Sans-10-100-75-75-M-60-ISO8859-1 SIZE 10 72 72 FONTBOUNDINGBOX 6 11 0 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaTypewriter" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 10 POINT_SIZE 100 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "M" AVERAGE_WIDTH 60 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 9 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 6 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 6 0 BBX 1 7 2 0 BITMAP 80 80 80 80 00 80 80 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 6 0 BBX 3 3 2 5 BITMAP A0 A0 A0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 0 0 BITMAP 50 50 D8 50 D8 50 50 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 0 -1 BITMAP 20 78 A0 A0 70 28 28 F0 20 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 44 A8 50 10 28 54 88 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 60 90 60 68 90 90 68 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 6 0 BBX 2 3 2 5 BITMAP 40 40 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 6 0 BBX 3 9 2 -1 BITMAP 20 40 80 80 80 80 80 40 20 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 6 0 BBX 3 9 1 -1 BITMAP 80 40 20 20 20 20 20 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 6 0 BBX 3 3 1 4 BITMAP A0 40 A0 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 1 BITMAP 20 20 F8 20 20 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 6 0 BBX 2 4 2 -2 BITMAP 40 40 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 6 0 BBX 5 1 1 3 BITMAP F8 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 6 0 BBX 1 2 2 0 BITMAP 80 80 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 -1 BITMAP 08 08 10 10 20 40 40 80 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 70 88 88 88 88 88 70 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 6 0 BBX 3 7 1 0 BITMAP 20 60 A0 20 20 20 20 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 70 88 08 30 40 80 F8 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 70 88 08 30 08 88 70 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 30 50 50 90 F8 10 10 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP F8 80 80 F0 08 88 70 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 70 88 80 F0 88 88 70 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP F8 08 10 20 20 40 40 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 70 88 88 70 88 88 70 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 70 88 88 78 08 88 70 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 6 0 BBX 1 6 2 0 BITMAP 80 80 00 00 80 80 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 6 0 BBX 2 8 2 -2 BITMAP 40 40 00 00 40 40 40 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 6 0 BBX 3 5 2 1 BITMAP 20 40 80 40 20 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 6 0 BBX 5 3 1 2 BITMAP F8 00 F8 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 6 0 BBX 3 5 1 1 BITMAP 80 40 20 40 80 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 70 88 08 30 00 20 20 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 70 88 B8 A8 BC 80 78 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP 60 60 90 90 F0 90 90 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP E0 90 90 E0 90 90 E0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 0 0 BITMAP 38 48 80 80 80 40 38 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP E0 90 88 88 88 90 E0 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP F0 80 80 E0 80 80 F0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP F0 80 80 E0 80 80 80 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 0 0 BITMAP 38 48 80 80 88 48 38 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP 90 90 90 F0 90 90 90 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 6 0 BBX 3 7 2 0 BITMAP E0 40 40 40 40 40 E0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 0 -2 BITMAP 38 10 10 10 10 10 10 10 E0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 88 90 A0 C0 A0 90 88 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP 80 80 80 80 80 80 F0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 88 D8 D8 A8 A8 88 88 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP 90 D0 D0 B0 B0 90 90 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 30 48 84 84 84 48 30 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP E0 90 90 E0 80 80 80 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 -2 BITMAP 30 48 84 84 84 48 30 18 0C ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP E0 90 90 E0 A0 90 90 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP 70 80 80 60 10 10 E0 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP F8 20 20 20 20 20 20 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP 90 90 90 90 90 90 60 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP 90 90 90 90 60 60 60 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 88 A8 A8 A8 F8 50 50 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP 90 90 60 60 60 90 90 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 88 88 50 20 20 20 20 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP F0 10 20 60 40 80 F0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 6 0 BBX 3 9 2 -1 BITMAP E0 80 80 80 80 80 80 80 E0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 -1 BITMAP 80 80 40 40 20 10 10 08 08 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 6 0 BBX 3 9 1 -1 BITMAP E0 20 20 20 20 20 20 20 E0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 1 BITMAP 20 20 50 50 88 88 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 6 0 BBX 6 1 0 -1 BITMAP FC ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 6 0 BBX 2 3 2 5 BITMAP 40 80 80 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 0 BITMAP 60 10 70 90 B0 50 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 0 BITMAP 80 80 A0 D0 90 90 90 E0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 0 BITMAP 70 80 80 80 80 70 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 0 BITMAP 10 10 70 90 90 90 B0 50 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 0 BITMAP 60 90 F0 80 80 70 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 38 40 F0 40 40 40 40 40 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 -2 BITMAP 70 90 90 90 B0 50 10 E0 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 0 BITMAP 80 80 A0 D0 90 90 90 90 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 6 0 BBX 3 8 1 0 BITMAP 20 00 E0 20 20 20 20 20 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 6 0 BBX 4 10 0 -2 BITMAP 10 00 70 10 10 10 10 10 10 E0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 80 80 90 A0 C0 A0 90 88 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 6 0 BBX 3 8 1 0 BITMAP E0 20 20 20 20 20 20 20 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP D0 A8 A8 A8 A8 A8 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 0 BITMAP A0 D0 90 90 90 90 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 0 BITMAP 60 90 90 90 90 60 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 -2 BITMAP A0 D0 90 90 90 E0 80 80 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 -2 BITMAP 70 90 90 90 B0 50 10 10 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 2 0 BITMAP B0 D0 80 80 80 80 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 0 BITMAP 70 80 C0 30 10 E0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP 40 F0 40 40 40 40 30 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 0 BITMAP 90 90 90 90 B0 50 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 0 BITMAP 90 90 90 90 60 60 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 88 A8 A8 F8 50 50 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 88 50 20 20 50 88 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 -2 BITMAP 90 90 90 60 60 40 80 80 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 0 BITMAP F0 10 20 40 80 F0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 0 -1 BITMAP 18 20 20 20 C0 20 20 20 18 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 6 0 BBX 1 9 3 -1 BITMAP 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 -1 BITMAP C0 20 20 20 18 20 20 20 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 6 0 BBX 6 2 0 3 BITMAP 64 98 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 6 0 BBX 1 7 3 -1 BITMAP 80 80 00 80 80 80 80 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP 20 70 A0 A0 A0 70 20 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 38 40 40 F0 40 40 F8 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 84 78 48 48 48 78 84 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 88 88 50 20 F8 20 20 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 6 0 BBX 1 9 3 -1 BITMAP 80 80 80 00 00 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 -1 BITMAP 70 80 E0 90 90 70 10 E0 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 6 0 BBX 4 1 1 7 BITMAP 90 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 78 84 B4 A4 B4 84 78 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 2 BITMAP E0 10 F0 90 68 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 6 0 BBX 5 3 1 2 BITMAP 48 90 48 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 6 0 BBX 5 3 1 2 BITMAP F8 08 08 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 6 0 BBX 2 1 2 3 BITMAP C0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 78 84 B4 B4 AC 84 78 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 2 7 BITMAP E0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 6 0 BBX 3 3 2 4 BITMAP 40 A0 40 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 1 BITMAP 20 F8 20 00 F8 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 6 0 BBX 4 5 1 2 BITMAP E0 10 60 80 F0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 6 0 BBX 4 5 1 2 BITMAP E0 10 60 10 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 6 0 BBX 2 2 2 7 BITMAP 40 80 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 -2 BITMAP 90 90 90 90 B0 D0 80 80 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 -1 BITMAP 78 E8 E8 68 28 28 28 28 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 6 0 BBX 2 2 2 2 BITMAP C0 C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 6 0 BBX 2 2 2 -2 BITMAP 40 80 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 6 0 BBX 3 5 1 2 BITMAP 20 E0 20 20 20 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 6 0 BBX 4 5 1 2 BITMAP 60 90 90 90 60 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 6 0 BBX 5 3 0 2 BITMAP 90 48 90 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 -1 BITMAP C0 40 48 50 20 48 A8 3C 08 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 -1 BITMAP C0 44 48 50 20 58 84 08 1C ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 -1 BITMAP E0 40 28 D0 20 48 A8 3C 08 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 -1 BITMAP 20 20 00 60 80 80 70 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 40 20 00 60 60 90 F0 90 90 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 20 40 00 60 60 90 F0 90 90 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 20 50 00 60 60 90 F0 90 90 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 50 A0 00 60 60 90 F0 90 90 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 0 BITMAP 90 00 60 60 90 F0 90 90 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 0 BITMAP 60 90 60 60 90 F0 90 90 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 3C 30 50 5C F0 90 9C ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 0 -2 BITMAP 38 48 80 80 80 40 38 10 20 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 40 20 00 F0 80 E0 80 80 F0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 20 40 00 F0 80 E0 80 80 F0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 20 50 00 F0 80 E0 80 80 F0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 0 BITMAP 50 00 F0 80 E0 80 80 F0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 6 0 BBX 3 9 2 0 BITMAP 40 20 00 E0 40 40 40 40 E0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 6 0 BBX 3 9 2 0 BITMAP 20 40 00 E0 40 40 40 40 E0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 6 0 BBX 3 9 2 0 BITMAP 40 A0 00 E0 40 40 40 40 E0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 6 0 BBX 3 8 2 0 BITMAP A0 00 E0 40 40 40 40 E0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 70 48 44 F4 44 48 70 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 50 A0 00 90 D0 D0 B0 B0 90 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP 20 10 00 30 48 84 84 48 30 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP 10 20 00 30 48 84 84 48 30 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP 10 28 00 30 48 84 84 48 30 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP 28 50 00 30 48 84 84 48 30 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP 48 00 30 48 84 84 48 30 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 1 BITMAP 88 50 20 50 88 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 34 48 94 B4 A4 48 B0 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 40 20 00 90 90 90 90 90 60 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 20 40 00 90 90 90 90 90 60 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 20 50 00 90 90 90 90 90 60 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 0 BITMAP 90 00 90 90 90 90 90 60 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 10 20 00 88 88 50 20 20 20 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP 80 E0 90 90 E0 80 80 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 60 90 90 A0 90 88 88 B0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 40 20 00 60 10 70 90 B0 50 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 20 40 00 60 10 70 90 B0 50 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 20 50 00 60 10 70 90 B0 50 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 50 A0 00 60 10 70 90 B0 50 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 0 BITMAP 50 00 60 10 70 90 B0 50 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 20 50 20 60 10 70 90 B0 50 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP D8 28 78 A0 A0 D8 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 -2 BITMAP 70 80 80 80 80 70 20 40 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 40 20 00 60 90 F0 80 80 70 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 20 40 00 60 90 F0 80 80 70 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 20 50 00 60 90 F0 80 80 70 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 0 BITMAP 90 00 60 90 F0 80 80 70 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 6 0 BBX 3 9 1 0 BITMAP 40 20 00 E0 20 20 20 20 20 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 6 0 BBX 3 9 1 0 BITMAP 20 40 00 E0 20 20 20 20 20 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 20 50 00 E0 20 20 20 20 20 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 0 BITMAP 50 00 E0 20 20 20 20 20 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 50 20 50 10 70 90 90 90 60 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 50 A0 00 A0 D0 90 90 90 90 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 40 20 00 60 90 90 90 90 60 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 20 40 00 60 90 90 90 90 60 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 20 50 00 60 90 90 90 90 60 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 50 A0 00 60 90 90 90 90 60 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 0 BITMAP 90 00 60 90 90 90 90 60 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 1 BITMAP 20 00 F8 00 20 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 34 48 58 68 48 B0 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 40 20 00 90 90 90 90 B0 50 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 20 40 00 90 90 90 90 B0 50 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 20 50 00 90 90 90 90 B0 50 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 0 BITMAP 90 00 90 90 90 90 B0 50 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 6 0 BBX 4 11 1 -2 BITMAP 20 40 00 90 90 90 60 60 40 80 80 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 6 0 BBX 4 10 1 -2 BITMAP 80 80 A0 D0 90 90 90 E0 80 80 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 6 0 BBX 4 10 1 -2 BITMAP 90 00 90 90 90 60 60 40 80 80 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 0 BITMAP 38 48 E8 48 48 48 48 48 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 1 1 3 BITMAP F0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 -1 BITMAP 20 20 F8 20 20 20 20 20 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 50 20 00 F0 10 20 40 80 F0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 6C 94 9C 90 90 6C ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 50 00 88 88 50 20 20 20 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 6 1 0 BITMAP E0 20 20 20 20 20 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP E0 20 20 38 E0 20 20 20 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 0 0 BITMAP 40 40 50 60 C0 40 78 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 -1 BITMAP 20 20 F8 20 20 F8 20 20 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 0 BITMAP 38 40 F8 48 48 48 48 48 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 2 3 2 2 BITMAP 80 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 7C 90 90 9C 90 90 7C ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 1 1 3 BITMAP F0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 2 2 7 BITMAP A0 40 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 2 2 2 -2 BITMAP 80 40 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 2 1 7 BITMAP 48 90 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 2 3 2 2 BITMAP 40 80 40 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 1 2 3 7 BITMAP 80 80 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 2 1 7 BITMAP 90 60 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 2 2 2 BITMAP E0 E0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 2 1 7 BITMAP 50 A0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 2 2 7 BITMAP 40 A0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 3 1 5 BITMAP 50 A0 A0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 1 3 3 5 BITMAP 80 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 50 20 00 70 80 C0 30 10 E0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 3 2 6 BITMAP 40 A0 40 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 2 3 2 -1 BITMAP 40 40 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 -1 BITMAP 30 40 40 F0 40 40 80 80 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 3 0 4 BITMAP FC 5C 54 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 04 08 10 10 20 40 80 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 2 2 2 7 BITMAP 80 40 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP 40 A0 4C 30 C0 28 54 28 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 2 1 0 BITMAP 90 90 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 3 1 5 BITMAP 50 50 A0 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 50 20 00 70 80 40 20 10 E0 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 3 1 -1 BITMAP 50 50 A0 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP 50 20 00 F0 10 20 40 80 F0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lutRS12.bdf100644 1750 1750 60063 5413747507 15170 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. COMMENT GRID 0012 0012 0200 0200 FONT -B&H-LucidaTypewriter-Medium-R-Normal-Sans-12-120-75-75-M-70-ISO8859-1 SIZE 12 72 72 FONTBOUNDINGBOX 7 13 0 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaTypewriter" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 12 POINT_SIZE 120 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "M" AVERAGE_WIDTH 70 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 11 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 7 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 7 0 BBX 2 9 3 0 BITMAP C0 C0 C0 C0 C0 80 00 C0 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 7 0 BBX 3 3 2 7 BITMAP A0 A0 A0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 48 48 FC 48 48 FC 48 48 48 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 -1 BITMAP 20 70 A8 A0 60 30 28 28 A8 70 20 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 60 92 94 68 10 2C 52 92 0C ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 30 48 48 30 64 94 88 88 74 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 7 0 BBX 3 3 2 7 BITMAP 60 60 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 7 0 BBX 4 11 2 -1 BITMAP 30 40 40 80 80 80 80 80 40 40 30 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 7 0 BBX 4 11 1 -1 BITMAP C0 20 20 10 10 10 10 10 20 20 C0 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 7 0 BBX 5 5 1 4 BITMAP 20 A8 50 A8 20 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 1 BITMAP 10 10 10 FE 10 10 10 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 7 0 BBX 3 3 2 -1 BITMAP 60 60 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 7 0 BBX 7 1 0 4 BITMAP FE ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 2 0 BITMAP C0 C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 -1 BITMAP 08 08 10 10 20 20 20 40 40 80 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 70 88 88 88 88 88 88 88 70 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 7 0 BBX 3 9 1 0 BITMAP 20 60 A0 20 20 20 20 20 20 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 70 88 08 08 10 20 40 80 F8 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 70 88 08 08 30 08 08 88 70 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 08 18 28 48 88 FC 08 08 08 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP F8 80 80 F0 08 08 08 88 70 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 70 88 80 80 F0 88 88 88 70 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP F8 08 08 10 20 20 40 40 40 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 70 88 88 88 70 88 88 88 70 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 70 88 88 88 78 08 08 88 70 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 7 0 BBX 2 7 2 0 BITMAP C0 C0 00 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 7 0 BBX 3 8 1 -1 BITMAP 60 60 00 00 00 60 60 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 7 0 BBX 4 7 2 1 BITMAP 10 20 40 80 40 20 10 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 7 0 BBX 7 3 0 3 BITMAP FE 00 FE ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 7 0 BBX 4 7 2 1 BITMAP 80 40 20 10 20 40 80 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP F0 08 08 08 70 40 00 40 40 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 38 44 9C A4 A4 AC 92 40 38 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 30 30 48 48 48 FC 84 84 84 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP F0 88 88 88 F0 88 88 88 F0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 38 48 80 80 80 80 80 40 38 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP E0 90 88 88 88 88 88 90 E0 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP F8 80 80 80 F0 80 80 80 F8 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 7 0 BBX 4 9 2 0 BITMAP F0 80 80 80 F0 80 80 80 80 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 38 48 80 80 80 88 88 48 38 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 88 88 88 88 F8 88 88 88 88 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP F8 20 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 7C 10 10 10 10 10 10 10 E0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 84 88 90 A0 E0 90 88 84 84 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 7 0 BBX 4 9 2 0 BITMAP 80 80 80 80 80 80 80 80 F0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 84 CC CC B4 B4 B4 84 84 84 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 88 C8 C8 A8 A8 98 98 88 88 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 30 48 84 84 84 84 84 48 30 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP F0 88 88 88 88 F0 80 80 80 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 -2 BITMAP 30 48 84 84 84 84 84 48 30 18 0C ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP F0 88 88 88 F0 90 88 88 88 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 78 80 80 C0 70 18 08 08 F0 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP FE 10 10 10 10 10 10 10 10 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 88 88 88 88 88 88 88 88 70 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 84 84 84 84 48 48 48 30 30 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 82 92 92 92 AA 6C 44 44 44 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 88 88 50 50 20 50 50 88 88 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 88 88 88 50 50 20 20 20 20 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP F8 08 10 10 20 40 40 80 F8 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 7 0 BBX 3 11 3 -1 BITMAP E0 80 80 80 80 80 80 80 80 80 E0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 -1 BITMAP 80 80 40 40 20 20 20 10 10 08 08 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 7 0 BBX 3 11 1 -1 BITMAP E0 20 20 20 20 20 20 20 20 20 E0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 3 BITMAP 20 20 50 50 88 88 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 7 0 BBX 7 1 0 -1 BITMAP FE ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 7 0 BBX 3 3 2 7 BITMAP 60 C0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 70 88 08 78 88 88 74 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP 80 80 80 B0 C8 88 88 88 88 F0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 38 40 80 80 80 40 38 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP 08 08 08 78 88 88 88 88 98 68 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 70 88 88 F8 80 88 70 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP 38 40 40 F8 40 40 40 40 40 40 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 -2 BITMAP 78 88 88 88 98 68 08 08 70 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP 80 80 80 B0 C8 88 88 88 88 88 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 7 0 BBX 3 10 1 0 BITMAP 20 20 00 E0 20 20 20 20 20 20 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 7 0 BBX 4 12 1 -2 BITMAP 10 10 00 F0 10 10 10 10 10 10 10 E0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 80 80 80 88 90 A0 E0 90 88 84 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 7 0 BBX 3 10 1 0 BITMAP E0 20 20 20 20 20 20 20 20 20 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 0 BITMAP A4 DA 92 92 92 92 92 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP B0 C8 88 88 88 88 88 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 70 88 88 88 88 88 70 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 -2 BITMAP B0 C8 88 88 88 88 F0 80 80 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 -2 BITMAP 78 88 88 88 88 98 68 08 08 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 7 0 BBX 4 7 2 0 BITMAP B0 C0 80 80 80 80 80 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 78 80 80 70 08 08 F0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 40 40 F8 40 40 40 40 40 38 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 88 88 88 88 88 98 68 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 88 88 88 50 50 20 20 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 0 BITMAP 82 92 92 AA 44 44 44 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 88 88 50 20 50 88 88 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 -2 BITMAP 88 88 88 50 50 20 20 40 C0 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP F8 08 10 20 40 80 F8 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 7 0 BBX 4 11 2 -1 BITMAP 30 40 40 40 20 C0 20 40 40 40 30 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 7 0 BBX 1 11 3 -1 BITMAP 80 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 7 0 BBX 4 11 1 -1 BITMAP C0 20 20 20 40 30 40 20 20 20 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 7 0 BBX 7 2 0 4 BITMAP 72 9C ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 7 0 BBX 2 9 3 -2 BITMAP C0 C0 00 80 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 10 3C 50 90 90 90 50 3C 10 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 38 40 40 40 F0 40 40 40 F8 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 1 BITMAP 82 7C 44 44 44 7C 82 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 88 88 88 50 F8 20 F8 20 20 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 7 0 BBX 1 11 3 -1 BITMAP 80 80 80 80 00 00 80 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 -1 BITMAP 30 48 40 A0 90 48 28 10 90 60 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 2 8 BITMAP 90 90 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 38 44 9A A2 A2 A2 9A 44 38 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 3 BITMAP 60 10 10 70 90 68 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 7 0 BBX 6 5 0 1 BITMAP 24 48 90 48 24 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 7 0 BBX 7 4 0 2 BITMAP FE 02 02 02 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 7 0 BBX 3 1 2 4 BITMAP E0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 2 BITMAP 38 44 BA B2 AA 44 38 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 2 9 BITMAP F0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 7 0 BBX 4 3 1 6 BITMAP 60 90 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 1 BITMAP 10 10 FE 10 10 00 FE ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 7 0 BBX 4 6 2 3 BITMAP E0 10 10 60 80 F0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 7 0 BBX 4 6 2 3 BITMAP E0 10 60 10 10 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 3 8 BITMAP 40 80 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 -2 BITMAP 88 88 88 88 88 D8 A8 80 80 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 -1 BITMAP 78 E8 E8 E8 68 28 28 28 28 28 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 7 0 BBX 3 3 2 3 BITMAP E0 E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 7 0 BBX 3 2 2 -2 BITMAP 20 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 7 0 BBX 3 6 1 3 BITMAP 20 E0 20 20 20 20 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 3 BITMAP 70 88 88 88 88 70 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 7 0 BBX 6 5 1 1 BITMAP 90 48 24 48 90 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP C8 48 50 50 24 2C 54 9E 84 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP C8 48 50 50 2C 22 44 88 8E ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP C4 24 C8 30 D4 2C 54 9E 84 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 -2 BITMAP 10 10 00 10 70 80 80 80 78 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 20 10 00 30 30 48 48 FC 84 84 84 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 10 20 00 30 30 48 48 FC 84 84 84 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 30 48 00 30 30 48 48 FC 84 84 84 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 28 50 00 30 30 48 48 FC 84 84 84 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 48 48 00 30 30 48 48 FC 84 84 84 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 30 48 30 30 48 48 FC 84 84 84 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 3E 30 50 50 5E F0 90 90 9E ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 -2 BITMAP 38 48 80 80 80 80 80 40 38 10 60 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 0 BITMAP 40 20 00 F8 80 80 F0 80 80 80 F8 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 0 BITMAP 10 20 00 F8 80 80 F0 80 80 80 F8 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 0 BITMAP 20 50 00 F8 80 80 F0 80 80 80 F8 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 0 BITMAP 50 50 00 F8 80 80 F0 80 80 80 F8 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 0 BITMAP 20 10 00 F8 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 0 BITMAP 10 20 00 F8 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 0 BITMAP 20 50 00 F8 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 0 BITMAP 50 50 00 F8 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 70 48 44 44 F4 44 44 48 70 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 0 BITMAP 28 50 00 88 C8 C8 A8 A8 98 98 88 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 20 10 00 30 48 84 84 84 84 48 30 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 10 20 00 30 48 84 84 84 84 48 30 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 10 28 00 30 48 84 84 84 84 48 30 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 28 50 00 30 48 84 84 84 84 48 30 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 48 48 00 30 48 84 84 84 84 48 30 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 7 0 BBX 5 5 1 2 BITMAP 88 50 20 50 88 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 34 48 8C 94 B4 A4 C4 48 B0 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 0 BITMAP 40 20 00 88 88 88 88 88 88 88 70 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 0 BITMAP 10 20 00 88 88 88 88 88 88 88 70 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 0 BITMAP 20 50 00 88 88 88 88 88 88 88 70 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 0 BITMAP 50 50 00 88 88 88 88 88 88 88 70 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 0 BITMAP 10 20 00 88 88 50 50 20 20 20 20 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 80 80 F0 88 88 88 F0 80 80 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP 60 90 90 A0 A0 90 88 88 88 90 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 20 10 00 70 88 08 78 88 88 74 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 10 20 00 70 88 08 78 88 88 74 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 20 50 00 70 88 08 78 88 88 74 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 28 50 00 70 88 08 78 88 88 74 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 50 50 00 70 88 08 78 88 88 74 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 30 48 30 70 88 08 78 88 88 74 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 0 BITMAP 6C 12 12 7E 90 90 6E ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 -2 BITMAP 38 40 80 80 80 40 38 10 60 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP 20 10 00 70 88 88 F8 80 88 70 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP 10 20 00 70 88 88 F8 80 88 70 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP 20 50 00 70 88 88 F8 80 88 70 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP 50 50 00 70 88 88 F8 80 88 70 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 7 0 BBX 3 10 1 0 BITMAP 40 20 00 E0 20 20 20 20 20 20 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 7 0 BBX 3 10 1 0 BITMAP 20 40 00 E0 20 20 20 20 20 20 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 7 0 BBX 4 10 1 0 BITMAP 20 50 00 E0 20 20 20 20 20 20 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 7 0 BBX 4 10 1 0 BITMAP 50 50 00 E0 20 20 20 20 20 20 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP D8 20 D0 08 78 88 88 88 88 70 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP 28 50 00 B0 C8 88 88 88 88 88 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP 20 10 00 70 88 88 88 88 88 70 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP 10 20 00 70 88 88 88 88 88 70 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP 20 50 00 70 88 88 88 88 88 70 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP 28 50 00 70 88 88 88 88 88 70 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP 50 50 00 70 88 88 88 88 88 70 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 1 BITMAP 10 10 00 FE 00 10 10 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 0 BITMAP 3A 44 4C 54 64 44 B8 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP 40 20 00 88 88 88 88 88 98 68 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP 10 20 00 88 88 88 88 88 98 68 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP 20 50 00 88 88 88 88 88 98 68 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP 50 50 00 88 88 88 88 88 98 68 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 7 0 BBX 5 12 1 -2 BITMAP 10 20 00 88 88 88 50 50 20 20 40 C0 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 -2 BITMAP 80 80 B0 C8 88 88 88 88 F0 80 80 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 7 0 BBX 5 12 1 -2 BITMAP 50 50 00 88 88 88 50 50 20 20 40 C0 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 0 0 BITMAP 3C 44 44 F4 44 44 44 44 44 44 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 1 1 4 BITMAP F8 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 -1 BITMAP 20 20 20 F8 20 20 20 20 20 20 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 0 BITMAP 50 20 00 F8 08 10 20 20 40 80 F8 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 0 BITMAP 6C 92 92 9E 90 90 6E ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 0 BITMAP 50 50 00 88 88 50 50 20 20 20 20 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 7 1 0 BITMAP E0 20 20 20 20 20 20 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP E0 20 20 38 E0 20 20 20 20 20 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 20 20 20 38 E0 20 20 20 3C ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 -1 BITMAP 20 20 20 F8 20 20 F8 20 20 20 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 0 0 BITMAP 34 44 40 FC 44 44 44 44 44 44 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 5 2 1 BITMAP 80 40 20 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 7E 90 90 90 9C 90 90 90 7E ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 1 1 4 BITMAP F8 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 2 3 8 BITMAP A0 40 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 2 3 -2 BITMAP 80 60 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 2 2 8 BITMAP 48 90 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 5 2 1 BITMAP 20 40 80 40 20 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 3 8 BITMAP C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 2 8 BITMAP 90 60 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 3 2 3 BITMAP E0 E0 E0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 2 8 BITMAP 50 A0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 2 3 8 BITMAP 40 A0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 3 2 7 BITMAP 50 A0 A0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 1 3 3 7 BITMAP 80 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP 50 20 00 78 80 80 70 08 08 F0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 3 2 7 BITMAP 60 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 3 2 -1 BITMAP 60 60 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 -1 BITMAP 18 24 20 40 F8 40 40 80 80 80 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 3 0 6 BITMAP FE 5E 52 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 02 04 08 08 10 20 20 40 80 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 3 8 BITMAP 80 40 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 0 0 BITMAP 40 A0 A4 48 30 40 94 2A 2A 14 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 2 1 0 BITMAP 88 88 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 3 1 7 BITMAP 50 50 A0 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 0 BITMAP 50 20 00 78 80 C0 70 18 08 08 F0 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 3 1 -1 BITMAP 50 50 A0 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP 50 20 00 F8 08 10 20 40 80 F8 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lutRS14.bdf100644 1750 1750 61547 5413747507 15202 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. COMMENT GRID 0014 0014 0200 0200 FONT -B&H-LucidaTypewriter-Medium-R-Normal-Sans-14-140-75-75-M-90-ISO8859-1 SIZE 14 72 72 FONTBOUNDINGBOX 9 15 0 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaTypewriter" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 14 POINT_SIZE 140 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "M" AVERAGE_WIDTH 90 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 13 FONT_DESCENT 2 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 9 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 9 0 BBX 1 10 4 0 BITMAP 80 80 80 80 80 80 80 00 80 80 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 9 0 BBX 4 3 3 8 BITMAP 90 90 90 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP 12 12 12 7F 24 24 FE 48 48 48 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 1 -1 BITMAP 10 7C 92 90 90 70 1C 12 12 92 7C 10 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 60 92 94 68 10 10 2C 52 92 0C ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 38 44 44 48 33 4A 84 84 8C 73 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 9 0 BBX 3 4 2 7 BITMAP 20 20 20 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 9 0 BBX 5 12 2 -1 BITMAP 18 20 40 40 80 80 80 80 40 40 20 18 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 9 0 BBX 5 12 2 -1 BITMAP C0 20 10 10 08 08 08 08 10 10 20 C0 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 9 0 BBX 5 5 2 5 BITMAP 20 A8 50 A8 20 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 1 BITMAP 10 10 10 FE 10 10 10 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 9 0 BBX 3 4 3 -2 BITMAP 20 20 20 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 9 0 BBX 7 1 1 4 BITMAP FE ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 9 0 BBX 1 2 4 0 BITMAP 80 80 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 9 0 BBX 6 12 2 -1 BITMAP 04 04 08 08 10 10 20 20 40 40 80 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 38 44 44 82 82 82 82 44 44 38 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 9 0 BBX 3 10 2 0 BITMAP 20 60 A0 20 20 20 20 20 20 20 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 9 0 BBX 5 10 2 0 BITMAP 70 88 08 08 10 20 40 80 80 F8 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 9 0 BBX 5 10 2 0 BITMAP 70 88 08 10 60 10 08 08 88 70 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 2 0 BITMAP 08 18 28 48 88 88 FE 08 08 08 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 1 0 BITMAP 7C 40 40 40 78 04 04 04 88 70 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP 38 44 80 B0 C8 84 84 84 48 30 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 1 0 BITMAP FC 04 04 08 10 20 20 40 40 40 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP 78 84 84 48 30 48 84 84 84 78 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 1 0 BITMAP 30 48 84 84 84 4C 34 04 88 70 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 9 0 BBX 1 7 4 0 BITMAP 80 80 00 00 00 80 80 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 9 0 BBX 3 9 2 -2 BITMAP 20 20 00 00 00 20 20 20 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 9 0 BBX 4 7 2 1 BITMAP 10 20 40 80 40 20 10 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 9 0 BBX 7 3 1 3 BITMAP FE 00 FE ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 9 0 BBX 4 7 3 1 BITMAP 80 40 20 10 20 40 80 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 1 0 BITMAP 78 84 04 04 08 10 20 00 20 20 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 1C 62 42 8E 92 92 92 4D 60 1E ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 10 10 28 28 44 44 FE 82 82 82 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP F8 84 84 88 F0 88 84 84 84 F8 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 3C 42 80 80 80 80 80 80 42 3C ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP F0 88 84 84 84 84 84 84 88 F0 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP FC 80 80 80 F8 80 80 80 80 FC ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP FC 80 80 80 80 FC 80 80 80 80 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 3C 42 80 80 80 82 82 82 42 3E ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 82 82 82 82 FE 82 82 82 82 82 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 9 0 BBX 5 10 2 0 BITMAP F8 20 20 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 9 0 BBX 5 10 1 0 BITMAP 78 08 08 08 08 08 08 08 10 E0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP 84 88 90 A0 C0 A0 90 88 84 84 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP 80 80 80 80 80 80 80 80 80 FC ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP C6 C6 AA AA AA AA 92 92 82 82 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP C2 C2 A2 A2 92 92 8A 8A 86 86 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 38 44 82 82 82 82 82 82 44 38 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP F8 84 84 84 88 F0 80 80 80 80 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 -2 BITMAP 38 44 82 82 82 82 82 82 44 38 04 03 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP F8 84 84 84 88 F0 88 88 84 84 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 7C 82 80 80 60 1C 02 02 82 7C ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP FE 10 10 10 10 10 10 10 10 10 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 82 82 82 82 82 82 82 82 44 38 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 82 82 82 44 44 44 28 28 10 10 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 82 92 92 AA AA AA 44 44 44 44 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 82 82 44 28 10 28 44 44 82 82 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 82 82 44 44 38 10 10 10 10 10 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP FE 02 04 08 10 20 40 80 80 FE ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 9 0 BBX 4 12 3 -1 BITMAP F0 80 80 80 80 80 80 80 80 80 80 F0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 1 -1 BITMAP 80 40 40 20 20 10 10 08 08 04 04 02 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 9 0 BBX 4 12 2 -1 BITMAP F0 10 10 10 10 10 10 10 10 10 10 F0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 9 0 BBX 5 7 2 3 BITMAP 20 20 50 50 88 88 88 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 9 0 BBX 9 1 0 -1 BITMAP FF80 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 9 0 BBX 3 4 3 7 BITMAP 60 80 80 80 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 1 0 BITMAP 78 04 04 7C 84 84 8C 73 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 80 80 80 B8 C4 82 82 82 82 84 F8 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP 3C 42 80 80 80 80 42 3C ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 02 02 02 3E 42 82 82 82 82 46 3A ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP 3C 42 82 FE 80 80 42 3C ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 1E 20 20 20 FE 20 20 20 20 20 20 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 -2 BITMAP 3E 42 82 82 82 46 3A 02 84 78 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 80 80 80 9C A6 C2 82 82 82 82 82 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 9 0 BBX 4 11 2 0 BITMAP 10 10 00 F0 10 10 10 10 10 10 10 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 9 0 BBX 5 13 1 -2 BITMAP 08 08 00 78 08 08 08 08 08 08 08 10 E0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 80 80 80 84 88 90 E0 90 88 84 82 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 9 0 BBX 4 11 1 0 BITMAP F0 10 10 10 10 10 10 10 10 10 10 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP A4 DA 92 92 92 92 92 92 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP 9C A6 C2 82 82 82 82 82 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP 38 44 82 82 82 82 44 38 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 -2 BITMAP 98 A4 C2 82 82 82 84 F8 80 80 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 -2 BITMAP 3E 42 82 82 82 86 4A 32 02 02 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 9 0 BBX 6 8 2 0 BITMAP 8C B4 C0 80 80 80 80 80 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP 7C 82 80 70 0C 02 82 7C ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 10 10 FE 10 10 10 10 10 10 0E ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP 82 82 82 82 82 86 CA 72 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP 82 82 44 44 28 28 10 10 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP 82 92 92 AA AA 44 44 44 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP 82 44 28 10 28 44 82 82 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 -2 BITMAP 82 82 44 44 28 28 10 10 20 60 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP FE 04 08 10 20 40 80 FE ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 9 0 BBX 6 12 2 -1 BITMAP 3C 40 40 20 10 E0 10 20 40 40 40 3C ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 9 0 BBX 1 12 4 -1 BITMAP 80 80 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 9 0 BBX 6 12 1 -1 BITMAP F0 08 08 10 20 1C 20 10 08 08 08 F0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 9 0 BBX 7 3 1 3 BITMAP 62 92 8C ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 9 0 BBX 1 10 4 -2 BITMAP 80 80 00 80 80 80 80 80 80 80 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 1 -1 BITMAP 10 10 3C 52 90 90 90 90 52 3C 10 10 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 1C 22 20 20 FC 20 20 20 40 FE ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 0 0 BITMAP 8080 4100 3E00 2200 2200 2200 3E00 4100 8080 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 82 82 44 44 38 7C 10 7C 10 10 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 9 0 BBX 1 12 4 -1 BITMAP 80 80 80 80 80 00 00 80 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 9 0 BBX 5 11 2 -1 BITMAP 70 88 80 60 90 88 48 30 08 88 70 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 9 0 BBX 3 2 3 9 BITMAP A0 A0 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 3C 42 9D A1 A1 A1 A1 9D 42 3C ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 9 0 BBX 6 7 1 3 BITMAP 70 08 08 78 88 98 64 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 9 0 BBX 7 5 1 2 BITMAP 22 44 88 44 22 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 9 0 BBX 7 3 1 3 BITMAP FE 02 02 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 9 0 BBX 3 1 3 4 BITMAP E0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 1 2 BITMAP 3C 42 B9 A5 B9 A5 42 3C ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 9 0 BBX 3 1 3 10 BITMAP E0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 9 0 BBX 4 4 2 6 BITMAP 60 90 90 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 1 BITMAP 10 10 FE 10 10 00 FE ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 9 0 BBX 5 7 2 3 BITMAP F0 08 08 30 40 80 F8 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 9 0 BBX 5 7 2 3 BITMAP F0 08 08 70 08 08 F0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 9 0 BBX 4 2 3 9 BITMAP 30 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 -2 BITMAP 82 82 82 82 82 86 CA B2 80 80 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 9 0 BBX 6 11 1 -1 BITMAP 7C 94 94 94 74 14 14 14 14 14 14 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 9 0 BBX 1 2 4 3 BITMAP 80 80 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 9 0 BBX 3 2 2 -2 BITMAP 20 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 9 0 BBX 5 7 2 3 BITMAP 60 A0 20 20 20 20 F8 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 9 0 BBX 6 7 1 3 BITMAP 30 48 84 84 84 48 30 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 9 0 BBX 7 5 1 2 BITMAP 88 44 22 44 88 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP 4400 C400 4800 4800 5300 5500 2900 2F80 4100 4100 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP 4400 C400 4800 4800 5000 5700 1080 1300 2400 2780 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP E400 2400 C800 2800 D300 1500 2900 2F80 4100 4100 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 -2 BITMAP 10 10 00 10 20 40 80 80 84 78 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP 60 18 00 10 10 28 28 44 44 FE 82 82 82 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP 0C 30 00 10 10 28 28 44 44 FE 82 82 82 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP 18 24 00 10 10 28 28 44 44 FE 82 82 82 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP 1A 2C 00 10 10 28 28 44 44 FE 82 82 82 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP 44 44 00 10 10 28 28 44 44 FE 82 82 82 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 1 0 BITMAP 10 28 10 10 28 28 44 44 FE 82 82 82 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 1F 18 28 28 4E 48 78 88 88 8F ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 1 -2 BITMAP 3C 42 80 80 80 80 80 80 42 3C 08 30 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 2 0 BITMAP 60 18 00 FC 80 80 80 F8 80 80 80 80 FC ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 2 0 BITMAP 18 60 00 FC 80 80 80 F8 80 80 80 80 FC ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 2 0 BITMAP 30 48 00 FC 80 80 80 F8 80 80 80 80 FC ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 2 0 BITMAP 48 48 00 FC 80 80 80 F8 80 80 80 80 FC ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 9 0 BBX 5 13 2 0 BITMAP C0 30 00 F8 20 20 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 9 0 BBX 5 13 2 0 BITMAP 18 60 00 F8 20 20 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 9 0 BBX 5 13 2 0 BITMAP 30 48 00 F8 20 20 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 9 0 BBX 5 13 2 0 BITMAP 88 88 00 F8 20 20 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP 3C 22 21 21 F9 21 21 21 22 3C ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP 34 58 00 C2 C2 A2 A2 92 92 8A 8A 86 86 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP 60 18 00 38 44 82 82 82 82 82 82 44 38 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP 0C 30 00 38 44 82 82 82 82 82 82 44 38 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP 18 24 00 38 44 82 82 82 82 82 82 44 38 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP 34 58 00 38 44 82 82 82 82 82 82 44 38 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP 44 44 00 38 44 82 82 82 82 82 82 44 38 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 9 0 BBX 6 6 2 2 BITMAP 84 48 30 30 48 84 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 3A 44 8A 8A 92 92 A2 A2 44 B8 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP 60 18 00 82 82 82 82 82 82 82 82 44 38 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP 0C 30 00 82 82 82 82 82 82 82 82 44 38 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP 18 24 00 82 82 82 82 82 82 82 82 44 38 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP 44 44 00 82 82 82 82 82 82 82 82 44 38 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP 0C 30 00 82 82 44 44 28 10 10 10 10 10 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP 80 80 F8 84 84 84 88 F0 80 80 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 9 0 BBX 6 11 2 0 BITMAP 70 88 88 90 A0 98 84 84 84 84 B8 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 60 18 00 78 04 04 7C 84 84 8C 73 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 0C 30 00 78 04 04 7C 84 84 8C 73 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 18 24 00 78 04 04 7C 84 84 8C 73 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 34 58 00 78 04 04 7C 84 84 8C 73 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 28 28 00 78 04 04 7C 84 84 8C 73 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 10 28 10 78 04 04 7C 84 84 8C 73 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP EC 12 12 7E 90 90 92 6C ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 -2 BITMAP 3C 42 80 80 80 80 42 3C 08 30 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 30 0C 00 3C 42 82 FE 80 80 42 3C ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 0C 30 00 3C 42 82 FE 80 80 42 3C ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 18 24 00 3C 42 82 FE 80 80 42 3C ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 24 24 00 3C 42 82 FE 80 80 42 3C ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 9 0 BBX 5 11 1 0 BITMAP 60 18 00 F0 10 10 10 10 10 10 10 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 9 0 BBX 5 11 1 0 BITMAP 18 60 00 F0 10 10 10 10 10 10 10 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 9 0 BBX 5 11 1 0 BITMAP 30 48 00 F0 10 10 10 10 10 10 10 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 9 0 BBX 5 11 1 0 BITMAP 48 48 00 F0 10 10 10 10 10 10 10 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP CC 30 D0 3C 44 82 82 82 82 44 38 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 34 58 00 9C A6 C2 82 82 82 82 82 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 60 18 00 38 44 82 82 82 82 44 38 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 0C 30 00 38 44 82 82 82 82 44 38 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 18 24 00 38 44 82 82 82 82 44 38 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 34 58 00 38 44 82 82 82 82 44 38 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 28 28 00 38 44 82 82 82 82 44 38 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 1 BITMAP 10 10 00 FE 00 10 10 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP 3A 44 8A 92 92 A2 44 B8 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 60 18 00 82 82 82 82 82 86 CA 72 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 0C 30 00 82 82 82 82 82 86 CA 72 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 18 24 00 82 82 82 82 82 86 CA 72 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 28 28 00 82 82 82 82 82 86 CA 72 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 -2 BITMAP 0C 30 00 82 82 44 44 28 28 10 10 20 60 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 -2 BITMAP 80 80 80 B8 C4 82 82 82 82 84 F8 80 80 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 -2 BITMAP 28 28 00 82 82 44 44 28 28 10 10 20 60 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 0 0 BITMAP 1E 22 22 FA 22 22 22 22 22 22 22 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 1 2 4 BITMAP F8 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 11 2 -1 BITMAP 20 20 20 F8 20 20 20 20 20 20 20 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP 24 18 00 FE 02 04 08 10 20 40 80 80 FE ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP 6C 92 92 9E 90 90 9A 6C ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP 44 44 00 82 82 44 44 28 10 10 10 10 10 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 4 8 2 0 BITMAP F0 10 10 10 10 10 10 10 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP F0 10 10 10 1E 70 10 10 10 10 10 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP 20 20 20 3C E0 20 20 20 20 3F ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 11 2 -1 BITMAP 20 20 20 F8 20 20 20 F8 20 20 20 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 0 0 BITMAP 1A 22 20 FE 22 22 22 22 22 22 22 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 3 5 3 2 BITMAP 80 40 20 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 3F 48 88 88 8F 88 88 88 48 3F ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 1 1 4 BITMAP FE ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 4 2 3 9 BITMAP 90 60 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 3 2 4 -2 BITMAP 80 60 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 2 2 9 BITMAP 48 90 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 3 5 3 2 BITMAP 20 40 80 40 20 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 1 2 4 9 BITMAP 80 80 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 2 2 9 BITMAP 88 70 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 2 2 3 3 BITMAP C0 C0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 2 2 9 BITMAP 68 B0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 4 2 3 9 BITMAP 60 90 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 4 2 7 BITMAP 66 88 88 88 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 1 3 4 8 BITMAP 80 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 24 18 00 7C 82 80 70 0C 02 82 7C ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 3 3 3 8 BITMAP 40 A0 40 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 3 4 2 -2 BITMAP 20 20 20 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 -1 BITMAP 1C 22 20 20 FC 40 40 40 80 80 80 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 4 0 6 BITMAP FB 55 55 51 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 02 04 04 08 10 10 20 40 40 80 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 4 2 2 9 BITMAP C0 30 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP 3000 4800 4880 3300 0C00 3000 DB00 2480 2480 1B00 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 2 2 0 BITMAP 88 88 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 4 1 7 BITMAP 22 22 22 CC ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP 24 18 00 7C 82 80 80 60 1C 02 02 82 7C ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 4 0 -2 BITMAP 22 22 22 CC ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 24 18 00 FE 04 08 10 20 40 80 FE ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lutRS18.bdf100644 1750 1750 72777 5413747510 15207 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. COMMENT GRID 0018 0018 0200 0200 FONT -B&H-LucidaTypewriter-Medium-R-Normal-Sans-18-180-75-75-M-110-ISO8859-1 SIZE 18 72 72 FONTBOUNDINGBOX 11 19 0 -3 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaTypewriter" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 18 POINT_SIZE 180 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "M" AVERAGE_WIDTH 110 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 16 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 11 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 11 0 BBX 2 13 5 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 40 00 00 C0 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 11 0 BBX 6 4 3 10 BITMAP CC CC CC 88 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 0CC0 0CC0 0CC0 0880 7FE0 1100 3300 3300 FFC0 2200 6600 6600 6600 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 11 0 BBX 8 15 2 -1 BITMAP 08 3E 4B C8 C8 E8 78 3C 1E 17 13 13 D2 7C 10 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 7000 D840 8840 8880 8900 DA00 75C0 0B60 1220 2220 4220 4360 01C0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 3C00 6600 6600 6600 3400 3800 6CC0 CCC0 C680 C300 C380 6EC0 3860 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 11 0 BBX 3 5 4 9 BITMAP E0 E0 E0 60 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 11 0 BBX 7 16 3 -2 BITMAP 06 18 30 60 60 C0 C0 C0 C0 C0 C0 60 60 30 18 06 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 11 0 BBX 7 16 1 -2 BITMAP C0 30 18 0C 0C 06 06 06 06 06 06 0C 0C 18 30 C0 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 11 0 BBX 7 7 2 7 BITMAP 10 10 92 EE 10 6C 44 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 11 0 BBX 9 9 1 1 BITMAP 0800 0800 0800 0800 FF80 0800 0800 0800 0800 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 11 0 BBX 3 5 4 -2 BITMAP E0 E0 E0 60 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 11 0 BBX 9 1 1 5 BITMAP FF80 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 11 0 BBX 3 3 4 0 BITMAP E0 E0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 11 0 BBX 9 16 1 -2 BITMAP 0080 0180 0100 0300 0200 0600 0400 0C00 1800 1000 3000 2000 6000 4000 C000 8000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 3E00 6300 4100 C180 C180 C180 C180 C180 C180 C180 4100 6300 3E00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 11 0 BBX 5 13 2 0 BITMAP 18 F8 18 18 18 18 18 18 18 18 18 18 18 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 1 0 BITMAP 7E C7 03 03 03 06 0C 18 30 60 C0 FF FF ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 1 0 BITMAP 7E C7 03 03 06 3C 06 03 03 03 03 C7 7E ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0300 0700 0F00 1B00 1300 3300 6300 C300 FFC0 FFC0 0300 0300 0300 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 2 0 BITMAP FF FF 80 80 80 F8 1E 07 03 03 03 C7 7E ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 1E00 7300 6000 C000 C000 DE00 E300 C180 C180 C180 E180 7300 3E00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP FF80 FF80 0300 0600 0C00 0C00 1800 1800 3000 3000 6000 6000 6000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 3E00 6300 C180 C180 E100 7A00 3E00 6700 C380 C180 C180 6300 3E00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 3E00 6700 C380 C180 C180 C180 6380 3D80 0180 0100 0300 C600 7C00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 11 0 BBX 3 10 4 0 BITMAP E0 E0 00 00 00 00 00 00 E0 E0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 11 0 BBX 3 12 4 -2 BITMAP E0 E0 00 00 00 00 00 00 E0 E0 60 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 0 1 BITMAP 00C0 0380 0E00 3800 E000 3800 0E00 0380 00C0 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 11 0 BBX 9 4 1 3 BITMAP FF80 0000 0000 FF80 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 1 1 BITMAP C000 7000 1C00 0700 01C0 0700 1C00 7000 C000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 1 0 BITMAP 7E C7 03 03 06 18 30 30 30 00 00 30 30 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0F00 3180 6180 4F80 9980 9980 9980 9980 9F80 4DC0 6000 3000 0F80 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0C00 0C00 1E00 1600 1300 3300 2300 2180 7F80 4180 C0C0 C0C0 C0C0 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 2 0 BITMAP FE C7 C3 C3 C3 C6 FC C6 C3 C3 C3 C7 FE ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 1F00 3180 6000 6000 C000 C000 C000 C000 C000 6000 6000 3180 1F00 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP FC00 C700 C300 C180 C180 C180 C180 C180 C180 C300 C300 CE00 F800 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 2 0 BITMAP FF C0 C0 C0 C0 C0 FE C0 C0 C0 C0 C0 FF ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 2 0 BITMAP FF C0 C0 C0 C0 C0 FE C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 1F00 3180 6000 6000 C000 C000 C000 C180 C180 6180 6180 3180 1F80 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP C180 C180 C180 C180 C180 C180 FF80 C180 C180 C180 C180 C180 C180 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 2 0 BITMAP FF 18 18 18 18 18 18 18 18 18 18 18 FF ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 11 0 BBX 7 13 2 0 BITMAP 7E 06 06 06 06 06 06 06 06 06 86 8C F0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP C180 C300 C600 CC00 D800 F000 F000 D800 CC00 C600 C300 C180 C0C0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 2 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 FF ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP E0C0 E1C0 E1C0 E1C0 B2C0 B2C0 B2C0 B2C0 9CC0 9CC0 88C0 88C0 80C0 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP C080 E080 E080 B080 9880 9880 8C80 8680 8680 8380 8380 8180 8080 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 1E00 3300 6180 6180 C0C0 C0C0 C0C0 C0C0 C0C0 6180 6180 3300 1E00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 2 0 BITMAP FE C7 C3 C3 C3 C3 C6 F8 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 1 -3 BITMAP 1E00 3300 6180 6180 C0C0 C0C0 C0C0 C0C0 C0C0 6180 6180 3300 1E00 0600 0380 01C0 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 2 0 BITMAP FC CE C6 C6 C6 CC F0 D8 CC CC C6 C3 C3 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 2 0 BITMAP 3E 63 C0 C0 E0 78 1E 07 03 03 03 C6 7C ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP FFC0 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP C180 C180 C180 C180 C180 C180 C180 C180 C180 C180 6300 7700 1C00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP C0C0 C0C0 C0C0 6080 6080 6180 3100 3100 3100 1A00 1A00 0C00 0C00 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP C020 C020 C620 C660 6640 6740 6F40 6B40 7BC0 3B80 3180 3180 3180 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP C180 C180 6180 6300 3200 1C00 1C00 1C00 2600 6300 C300 C180 C180 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP C0C0 C0C0 6180 3100 3300 1A00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP FF80 FF80 0180 0300 0600 0C00 1800 3000 6000 C000 C000 FF80 FF80 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 11 0 BBX 6 16 3 -2 BITMAP FC C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 FC ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 11 0 BBX 9 16 1 -2 BITMAP 8000 C000 4000 6000 2000 3000 1000 1800 0C00 0400 0600 0200 0300 0100 0180 0080 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 11 0 BBX 6 16 2 -2 BITMAP FC 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C FC ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 2 BITMAP 0800 1C00 1400 3600 2200 6300 6300 C180 C180 C180 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 11 0 BBX 11 1 0 -1 BITMAP FFE0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 11 0 BBX 3 5 4 9 BITMAP 60 C0 E0 E0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 3E00 6700 0300 0300 3F00 6300 C300 C300 E700 7980 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP C000 C000 C000 C000 DC00 E700 C300 C180 C180 C180 C180 C300 E700 DC00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 1F00 7180 6000 C000 C000 C000 C000 6000 7180 1F00 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP 0180 0180 0180 0180 1D80 7380 6180 C180 C180 C180 C180 6180 7380 1D80 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 3E00 6300 C180 C180 FF80 C000 C000 E000 7180 3F00 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP 0780 0C00 1800 1800 1800 FF80 1800 1800 1800 1800 1800 1800 1800 1800 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 -3 BITMAP 1D80 7380 6180 C180 C180 C180 C180 6380 3D80 0180 0180 6300 3E00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 11 0 BBX 8 14 2 0 BITMAP C0 C0 C0 C0 DE E7 C3 C3 C3 C3 C3 C3 C3 C3 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 11 0 BBX 5 14 2 0 BITMAP 18 18 00 00 F8 18 18 18 18 18 18 18 18 18 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 11 0 BBX 7 17 1 -3 BITMAP 06 06 00 00 3E 06 06 06 06 06 06 06 06 06 06 0C F8 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 2 0 BITMAP C000 C000 C000 C000 C300 C600 CC00 D800 F000 D800 CC00 C600 C300 C180 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 11 0 BBX 5 14 2 0 BITMAP F8 18 18 18 18 18 18 18 18 18 18 18 18 18 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP DD80 EEC0 CCC0 CCC0 CCC0 CCC0 CCC0 CCC0 CCC0 CCC0 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 11 0 BBX 8 10 2 0 BITMAP DE E7 C3 C3 C3 C3 C3 C3 C3 C3 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 1C00 7700 6300 C180 C180 C180 C180 6300 7700 1C00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 -3 BITMAP DC00 E700 C300 C180 C180 C180 C180 C300 E700 DC00 C000 C000 C000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 -3 BITMAP 1D80 7380 6180 C180 C180 C180 C180 6180 7380 1D80 0180 0180 0180 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 11 0 BBX 7 10 3 0 BITMAP CE DE E2 C2 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 11 0 BBX 7 10 2 0 BITMAP 7C C6 C0 E0 78 3C 0E 06 C6 7C ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP 1800 1800 1800 FF80 1800 1800 1800 1800 1800 1800 1800 0F80 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 11 0 BBX 8 10 1 0 BITMAP C3 C3 C3 C3 C3 C3 C3 C3 E7 7B ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 11 0 BBX 8 10 2 0 BITMAP C3 C3 C3 62 66 66 34 34 18 18 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP C0C0 CCC0 CCC0 CC80 6E80 6E80 7780 3700 3300 3300 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 11 0 BBX 8 10 2 0 BITMAP C3 C3 66 34 38 1C 2C 66 C3 C3 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 2 -3 BITMAP C3 C3 C3 62 66 66 34 3C 18 18 10 30 30 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 11 0 BBX 8 10 2 0 BITMAP FF 03 07 0E 1C 38 70 E0 C0 FF ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 11 0 BBX 8 16 2 -2 BITMAP 1F 30 30 10 18 08 08 F0 08 08 18 10 30 30 30 1F ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 11 0 BBX 2 16 5 -2 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 11 0 BBX 8 16 1 -2 BITMAP F8 0C 0C 08 18 10 10 0F 10 10 18 08 0C 0C 0C F8 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 11 0 BBX 9 3 1 4 BITMAP 7080 9C80 8700 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 11 0 BBX 2 13 5 -3 BITMAP C0 C0 00 00 80 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 11 0 BBX 8 14 2 -1 BITMAP 08 08 1E 6B 68 C8 C8 C8 C8 C8 6B 3E 08 08 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 2 0 BITMAP 0E 13 30 30 30 30 FC 30 30 20 40 FF FF ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 11 0 BBX 11 11 0 1 BITMAP 8020 4E40 3B80 3180 60C0 60C0 60C0 3180 3B80 4E40 8020 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP C0C0 C0C0 6180 3100 3300 1A00 0C00 3F00 0C00 3F00 0C00 0C00 0C00 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 11 0 BBX 2 16 5 -2 BITMAP C0 C0 C0 C0 C0 C0 C0 00 00 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 11 0 BBX 8 15 2 -2 BITMAP 7E E3 C0 E0 78 5E C7 C3 E3 7A 1E 07 03 C7 7E ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 11 0 BBX 3 2 4 11 BITMAP A0 A0 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 1C00 6300 4100 9C80 A080 A080 A080 A080 A080 9C80 4100 6300 1C00 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 11 0 BBX 8 8 2 5 BITMAP 7C C6 06 7E C6 C6 CE 77 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 11 0 BBX 9 8 1 1 BITMAP 1980 3300 6600 CC00 CC00 6600 3300 1980 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 11 0 BBX 9 4 1 3 BITMAP FF80 0080 0080 0080 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 11 0 BBX 5 1 3 5 BITMAP F8 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 11 0 BBX 8 8 2 5 BITMAP 3C 42 B9 A5 B9 A5 42 3C ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 11 0 BBX 3 1 4 12 BITMAP E0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 11 0 BBX 5 5 3 9 BITMAP 70 88 88 88 70 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 11 0 BBX 9 8 1 2 BITMAP 0800 0800 0800 FF80 0800 0800 0000 FF80 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 11 0 BBX 7 8 2 5 BITMAP 7C C6 06 1C 70 C0 FE FE ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 11 0 BBX 7 8 2 5 BITMAP 7C C6 06 3C 06 06 C6 7C ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 11 0 BBX 4 2 4 11 BITMAP 70 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 2 -3 BITMAP C3 C3 C3 C3 C3 C3 C3 C3 E7 FB C0 C0 C0 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 11 0 BBX 8 15 1 -2 BITMAP 7F F9 F9 F9 79 39 09 09 09 09 09 09 09 09 09 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 11 0 BBX 3 3 4 4 BITMAP E0 E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 11 0 BBX 4 3 3 -3 BITMAP 60 30 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 11 0 BBX 6 8 2 5 BITMAP 30 F0 30 30 30 30 30 FC ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 11 0 BBX 9 8 1 5 BITMAP 3E00 6300 C180 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 11 0 BBX 9 8 1 1 BITMAP CC00 6600 3300 1980 1980 3300 6600 CC00 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP E100 6100 6200 6200 6400 6400 68C0 11C0 12C0 24C0 27E0 40C0 40C0 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP E100 6100 6200 6200 6400 6400 69C0 0A60 0860 10C0 1100 23E0 23E0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP E100 3100 3200 E200 3400 3400 E8C0 09C0 12C0 24C0 27E0 40C0 40C0 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 2 -3 BITMAP 0C 0C 00 00 0C 0C 0C 18 60 C0 C0 E3 7E ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 1 0 BITMAP 1C00 0600 0000 0C00 0C00 1E00 1600 1300 3300 2300 2180 7F80 4180 C0C0 C0C0 C0C0 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 1 0 BITMAP 0E00 1800 0000 0C00 0C00 1E00 1600 1300 3300 2300 2180 7F80 4180 C0C0 C0C0 C0C0 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 1 0 BITMAP 0C00 1600 0000 0C00 0C00 1E00 1600 1300 3300 2300 2180 7F80 4180 C0C0 C0C0 C0C0 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 1 0 BITMAP 0D00 1600 0000 0C00 0C00 1E00 1600 1300 3300 2300 2180 7F80 4180 C0C0 C0C0 C0C0 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 1 0 BITMAP 1200 1200 0000 0C00 0C00 1E00 1600 1300 3300 2300 2180 7F80 4180 C0C0 C0C0 C0C0 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 1 0 BITMAP 0C00 1200 0C00 0C00 1E00 1600 1300 3300 2300 2180 7F80 4180 C0C0 C0C0 C0C0 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 07C0 0E00 0E00 1600 1600 2600 27C0 6600 7E00 4600 C600 C600 C7C0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 11 0 BBX 9 16 1 -3 BITMAP 1F00 3180 6000 6000 C000 C000 C000 C000 C000 6000 6000 3180 1F00 0C00 0600 1C00 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 11 0 BBX 8 16 2 0 BITMAP 38 0C 00 FF C0 C0 C0 C0 C0 FE C0 C0 C0 C0 C0 FF ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 11 0 BBX 8 16 2 0 BITMAP 1C 30 00 FF C0 C0 C0 C0 C0 FE C0 C0 C0 C0 C0 FF ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 11 0 BBX 8 16 2 0 BITMAP 18 2C 00 FF C0 C0 C0 C0 C0 FE C0 C0 C0 C0 C0 FF ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 11 0 BBX 8 16 2 0 BITMAP 24 24 00 FF C0 C0 C0 C0 C0 FE C0 C0 C0 C0 C0 FF ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 11 0 BBX 8 16 2 0 BITMAP 38 0C 00 FF 18 18 18 18 18 18 18 18 18 18 18 FF ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 11 0 BBX 8 16 2 0 BITMAP 1C 30 00 FF 18 18 18 18 18 18 18 18 18 18 18 FF ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 11 0 BBX 8 16 2 0 BITMAP 18 2C 00 FF 18 18 18 18 18 18 18 18 18 18 18 FF ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 11 0 BBX 8 16 2 0 BITMAP 24 24 00 FF 18 18 18 18 18 18 18 18 18 18 18 FF ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 0 0 BITMAP 7E00 6380 6180 60C0 60C0 60C0 FCC0 60C0 60C0 6180 6180 6700 7C00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 11 0 BBX 9 16 1 0 BITMAP 0D00 1600 0000 C080 E080 E080 B080 9880 9880 8C80 8680 8680 8380 8380 8180 8080 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 1 0 BITMAP 1C00 0600 0000 1E00 3300 6180 6180 C0C0 C0C0 C0C0 C0C0 C0C0 6180 6180 3300 1E00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 1 0 BITMAP 0E00 1800 0000 1E00 3300 6180 6180 C0C0 C0C0 C0C0 C0C0 C0C0 6180 6180 3300 1E00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 1 0 BITMAP 0C00 1600 0000 1E00 3300 6180 6180 C0C0 C0C0 C0C0 C0C0 C0C0 6180 6180 3300 1E00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 1 0 BITMAP 0D00 1600 0000 1E00 3300 6180 6180 C0C0 C0C0 C0C0 C0C0 C0C0 6180 6180 3300 1E00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 1 0 BITMAP 1200 1200 0000 1E00 3300 6180 6180 C0C0 C0C0 C0C0 C0C0 C0C0 6180 6180 3300 1E00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 11 0 BBX 7 7 2 2 BITMAP C2 64 38 10 38 4C 86 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 1E40 3340 6180 6180 C2C0 C4C0 C4C0 C8C0 D0C0 6180 6180 B300 9E00 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 11 0 BBX 9 16 1 0 BITMAP 1C00 0600 0000 C180 C180 C180 C180 C180 C180 C180 C180 C180 C180 6300 7700 1C00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 11 0 BBX 9 16 1 0 BITMAP 0E00 1800 0000 C180 C180 C180 C180 C180 C180 C180 C180 C180 C180 6300 7700 1C00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 11 0 BBX 9 16 1 0 BITMAP 0C00 1600 0000 C180 C180 C180 C180 C180 C180 C180 C180 C180 C180 6300 7700 1C00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 11 0 BBX 9 16 1 0 BITMAP 2200 2200 0000 C180 C180 C180 C180 C180 C180 C180 C180 C180 C180 6300 7700 1C00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 1 0 BITMAP 0600 1800 0000 C0C0 C0C0 6180 3100 3300 1A00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 2 0 BITMAP C0 C0 C0 FE C7 C3 C3 C3 C6 F8 C0 C0 C0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP 3C00 4600 C600 C400 C800 D800 DC00 CE00 C700 C380 C180 C180 C100 CE00 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 3800 0C00 0000 3E00 6700 0300 0300 3F00 6300 C300 C300 E700 7980 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 0E00 1800 0000 3E00 6700 0300 0300 3F00 6300 C300 C300 E700 7980 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 0C00 1600 0000 3E00 6700 0300 0300 3F00 6300 C300 C300 E700 7980 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 1A00 2C00 0000 3E00 6700 0300 0300 3F00 6300 C300 C300 E700 7980 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 1400 1400 0000 3E00 6700 0300 0300 3F00 6300 C300 C300 E700 7980 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 0C00 1200 0C00 3E00 6700 0300 0300 3F00 6300 C300 C300 E700 7980 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 7B80 CCC0 0CC0 0CC0 7FC0 CC00 CC00 CC00 DEC0 6380 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 -3 BITMAP 1F00 7180 6000 C000 C000 C000 C000 6000 7180 1F00 0C00 0600 1C00 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 3800 0C00 0000 3E00 6300 C180 C180 FF80 C000 C000 E000 7180 3F00 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 0E00 1800 0000 3E00 6300 C180 C180 FF80 C000 C000 E000 7180 3F00 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 0C00 1600 0000 3E00 6300 C180 C180 FF80 C000 C000 E000 7180 3F00 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 1400 1400 0000 3E00 6300 C180 C180 FF80 C000 C000 E000 7180 3F00 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 11 0 BBX 5 13 2 0 BITMAP 70 18 00 F8 18 18 18 18 18 18 18 18 18 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 11 0 BBX 6 13 2 0 BITMAP 1C 30 00 F8 18 18 18 18 18 18 18 18 18 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 11 0 BBX 6 13 2 0 BITMAP 18 2C 00 F8 18 18 18 18 18 18 18 18 18 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 11 0 BBX 6 13 1 0 BITMAP 24 24 00 FC 0C 0C 0C 0C 0C 0C 0C 0C 0C ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP E000 3B00 0C00 3600 0300 1F00 7380 6180 C180 C180 C180 6300 7700 1C00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 2 0 BITMAP 34 58 00 DE E7 C3 C3 C3 C3 C3 C3 C3 C3 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 3800 0C00 0000 1C00 7700 6300 C180 C180 C180 C180 6300 7700 1C00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 0E00 1800 0000 1C00 7700 6300 C180 C180 C180 C180 6300 7700 1C00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 0C00 1600 0000 1C00 7700 6300 C180 C180 C180 C180 6300 7700 1C00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 1A00 2C00 0000 1C00 7700 6300 C180 C180 C180 C180 6300 7700 1C00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 1400 1400 0000 1C00 7700 6300 C180 C180 C180 C180 6300 7700 1C00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 11 0 BBX 9 9 1 1 BITMAP 0800 0800 0000 0000 FF80 0000 0000 0800 0800 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 1C80 7700 6300 C580 C980 C980 D180 6300 7700 9C00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 1 0 BITMAP 38 0C 00 C3 C3 C3 C3 C3 C3 C3 C3 E7 7B ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 1 0 BITMAP 0E 18 00 C3 C3 C3 C3 C3 C3 C3 C3 E7 7B ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 1 0 BITMAP 18 2C 00 C3 C3 C3 C3 C3 C3 C3 C3 E7 7B ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 1 0 BITMAP 24 24 00 C3 C3 C3 C3 C3 C3 C3 C3 E7 7B ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 11 0 BBX 8 16 2 -3 BITMAP 0E 18 00 C3 C3 C3 62 66 66 34 3C 18 18 10 30 30 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 11 0 BBX 9 16 1 -3 BITMAP C000 C000 C000 DC00 E700 C300 C180 C180 C180 C180 C300 E700 DC00 C000 C000 C000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 11 0 BBX 8 16 2 -3 BITMAP 24 24 00 C3 C3 C3 62 66 66 34 3C 18 18 10 30 30 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP 1F80 3180 6180 6180 FD80 6180 6180 6180 6180 6180 6180 6180 6180 6180 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 7 1 2 5 BITMAP FE ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 15 2 -2 BITMAP 18 18 18 18 FF 18 18 18 18 18 18 18 18 18 18 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 16 1 0 BITMAP 1600 0C00 0000 FF80 FF80 0180 0300 0600 0C00 1800 3000 6000 C000 C000 FF80 FF80 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 0 0 BITMAP 3DC0 6660 6660 C660 C7E0 C600 C600 6600 6760 39C0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 1 0 BITMAP 1200 1200 0000 C0C0 C0C0 6180 3100 3300 1A00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 5 10 2 0 BITMAP F8 18 18 18 18 18 18 18 18 18 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 14 2 0 BITMAP F8 18 18 18 18 1B 1C 38 D8 18 18 18 18 18 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 0 0 BITMAP 3000 3000 3000 3000 3000 3C00 F000 3000 3000 3000 3000 3000 3FC0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 15 2 -2 BITMAP 18 18 18 18 FF 18 18 18 18 18 FF 18 18 18 18 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP 1F80 3380 6000 6000 FF80 6180 6180 6180 6180 6180 6180 6180 6180 6180 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 7 8 2 1 BITMAP C0 70 18 06 06 18 70 C0 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 1FC0 3600 6600 6600 C600 C600 C7C0 C600 C600 6600 6600 3600 1FC0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 1 1 5 BITMAP FF80 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 4 2 4 11 BITMAP B0 60 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 4 3 3 -3 BITMAP 60 C0 70 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 5 2 3 11 BITMAP D8 90 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 7 8 2 1 BITMAP 06 1C 30 C0 C0 30 1C 06 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 2 2 5 11 BITMAP C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 5 2 3 11 BITMAP 88 70 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 5 5 3 3 BITMAP 70 F8 F8 F8 70 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 5 2 3 11 BITMAP 68 B0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 4 2 4 11 BITMAP 60 B0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 4 2 10 BITMAP 63 C6 E7 E7 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 2 4 4 10 BITMAP C0 C0 C0 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 7 13 2 0 BITMAP 2C 18 00 7C C6 C0 E0 78 3C 0E 06 C6 7C ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 4 3 4 10 BITMAP 60 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 5 4 -2 BITMAP E0 E0 E0 60 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 15 2 -2 BITMAP 0F00 1980 1800 3000 3000 3000 FE00 6000 6000 6000 6000 C000 C000 C000 C000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 6 0 7 BITMAP FE60 2660 25A0 25A0 25A0 2420 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 0020 0060 00C0 0180 0300 0600 0600 0C00 1800 3000 6000 C000 8000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 4 2 3 11 BITMAP E0 30 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 6000 9000 9000 9200 9400 9800 76C0 2920 4920 8920 0920 0920 06C0 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 2 1 0 BITMAP C3 C3 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 4 1 10 BITMAP E7 E7 63 C6 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 16 2 0 BITMAP 16 0C 00 3E 63 C0 C0 E0 78 1E 07 03 03 03 C6 7C ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 4 1 -2 BITMAP E7 E7 63 C6 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 2 0 BITMAP 2C 18 00 FF 03 07 0E 1C 38 70 E0 C0 FF ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lutRS19.bdf100644 1750 1750 74750 5413747510 15201 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaTypewriter-Medium-R-Normal-Sans-19-190-75-75-M-110-ISO8859-1 SIZE 19 72 72 FONTBOUNDINGBOX 14 22 -1 -4 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaTypewriter" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 19 POINT_SIZE 190 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "M" AVERAGE_WIDTH "110" CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." FONT_ASCENT 17 FONT_DESCENT 4 DEFAULT_CHAR 0 ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 11 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 11 0 BBX 2 14 5 0 BITMAP C0 C0 C0 C0 C0 C0 80 80 80 80 00 00 80 80 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 11 0 BBX 6 5 3 9 BITMAP CC CC CC 84 84 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP 04C0 0C80 0880 0880 7FE0 1100 1100 1100 FFC0 2200 2200 2200 2400 4400 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 11 0 BBX 7 17 2 -2 BITMAP 10 7E D2 D0 D0 D0 70 38 1C 1E 16 16 16 DC FC 10 10 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 70C0 D880 8900 8900 DA00 7600 0400 0B80 1EC0 1440 2440 2440 46C0 C380 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP 1E00 3300 3300 3300 3600 1C00 3800 4C60 CE60 C640 C7C0 C380 6380 3EE0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 11 0 BBX 3 5 4 9 BITMAP E0 E0 20 60 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 11 0 BBX 7 17 3 -3 BITMAP 0E 1C 30 60 60 C0 C0 C0 C0 C0 C0 40 60 20 30 1C 06 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 11 0 BBX 7 17 1 -3 BITMAP C0 70 18 0C 0C 06 06 06 06 06 06 06 0C 0C 18 70 C0 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 11 0 BBX 8 8 2 6 BITMAP 18 18 DB E7 00 3C 66 24 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 0800 0800 0800 0800 FF80 0800 0800 0800 0800 0800 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 11 0 BBX 3 7 4 -4 BITMAP E0 E0 E0 20 60 60 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 11 0 BBX 10 1 1 4 BITMAP FFC0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 11 0 BBX 3 2 4 0 BITMAP E0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 11 0 BBX 10 17 1 -3 BITMAP 00C0 0080 0180 0100 0300 0200 0600 0400 0C00 0800 1800 1000 3000 2000 6000 4000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP 1C00 6300 6300 C180 C180 C180 C180 C180 C180 C180 C180 6300 6300 1C00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 0400 7C00 8C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 FFC0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 11 0 BBX 8 14 1 0 BITMAP 7C 86 03 03 03 03 06 0C 18 30 60 60 C0 FF ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 11 0 BBX 8 14 2 0 BITMAP FC 87 03 03 03 06 78 0E 03 03 03 03 86 FC ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 0300 0700 0700 0B00 1300 3300 2300 4300 C300 FFC0 0300 0300 0300 0300 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 11 0 BBX 7 14 3 0 BITMAP FE 80 80 80 80 F0 1C 0C 06 06 06 06 8C F8 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP 1F00 3100 6000 4000 C000 DE00 E300 C180 C180 C180 C180 4180 6300 1E00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 11 0 BBX 8 14 2 0 BITMAP FF FF 02 02 04 04 08 08 10 10 30 20 60 60 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP 1E00 3300 6100 6100 7300 3E00 1C00 2F00 4380 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP 3C00 6300 C100 C180 C180 C180 C180 6380 3D80 0180 0100 0300 4600 7C00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 11 0 BBX 2 10 5 0 BITMAP C0 C0 00 00 00 00 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 11 0 BBX 2 14 5 -4 BITMAP C0 C0 00 00 00 00 00 C0 C0 C0 40 40 40 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 0040 01C0 0700 1C00 F000 7000 1C00 0700 01C0 0040 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 11 0 BBX 10 5 1 2 BITMAP FFC0 0000 0000 0000 FFC0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 8000 E000 3800 0E00 0380 03C0 0E00 3800 E000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP FE00 8300 8180 0180 0100 0200 0400 0800 1800 1800 0000 0000 1800 1800 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 1 0 BITMAP 0F80 30C0 6040 43C0 8440 8840 8840 88C0 88C0 89C0 4760 4000 3080 1F00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP 0600 0E00 0E00 0B00 1300 1300 1180 2180 2180 3FC0 40C0 40C0 4060 8060 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP FE00 C700 C300 C300 C300 C600 FC00 C600 C300 C180 C180 C180 C300 FE00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 0FC0 3840 6000 6000 C000 C000 C000 C000 C000 C000 6000 6000 3840 0FC0 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP FE00 C300 C180 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C180 C180 C300 FE00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 2 0 BITMAP FF80 C000 C000 C000 C000 C000 FF00 C000 C000 C000 C000 C000 C000 FF80 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 2 0 BITMAP FF80 C000 C000 C000 C000 C000 FF00 C000 C000 C000 C000 C000 C000 C000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 0FC0 3040 6000 6000 C000 C000 C000 C000 C0C0 C0C0 60C0 60C0 38C0 0FC0 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP C180 C180 C180 C180 C180 C180 FF80 C180 C180 C180 C180 C180 C180 C180 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 11 0 BBX 8 14 2 0 BITMAP FF 18 18 18 18 18 18 18 18 18 18 18 18 FF ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 11 0 BBX 7 14 2 0 BITMAP 7E 06 06 06 06 06 06 06 06 06 06 06 8C F8 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP C180 C300 C200 C400 C800 D800 D000 F800 DC00 CE00 C600 C300 C380 C1C0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 11 0 BBX 8 14 2 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 FF ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP C0C0 C0C0 E1C0 A140 A140 A140 9240 9240 9240 9240 8C40 8C40 8C40 8040 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP C080 E080 E080 F080 B080 9880 9880 8C80 8E80 8680 8780 8380 8180 8180 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 1E00 3300 6180 4080 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 4080 6180 3300 1E00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 2 0 BITMAP FE00 C380 C180 C180 C180 C180 C300 FC00 C000 C000 C000 C000 C000 C000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 11 0 BBX 11 18 1 -4 BITMAP 1E00 3300 6180 4080 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 40C0 6180 3380 1F00 0200 0100 00E0 0040 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP FC00 C700 C300 C300 C300 C700 FE00 CC00 CC00 C600 C700 C300 C180 C1C0 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP 3F00 6100 C000 C000 E000 7000 3C00 0F00 0380 0180 0180 0180 8300 7E00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 11 0 BBX 12 14 0 0 BITMAP FFF0 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP C080 C080 C080 C080 C080 C080 C080 C080 C080 C080 C080 C080 6100 3E00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP C020 C040 6040 6040 6080 3080 3080 3100 1900 1900 1A00 0E00 0E00 0C00 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP 8020 8C20 8C20 8C60 9E40 DE40 DA40 5240 52C0 53C0 73C0 7180 6180 6180 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP E040 60C0 3080 3900 1B00 0E00 0E00 0E00 0F00 1300 3180 21C0 40C0 C060 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 11 0 BBX 12 14 0 0 BITMAP E030 6020 7040 3080 1880 1D00 0F00 0600 0600 0600 0600 0600 0600 0600 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP FFC0 01C0 0180 0380 0700 0600 0E00 1C00 1800 3000 7000 6000 C000 FFC0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 11 0 BBX 5 17 4 -3 BITMAP F8 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 F8 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 11 0 BBX 10 17 1 -3 BITMAP C000 4000 6000 2000 3000 1000 1800 0800 0C00 0400 0600 0200 0300 0100 0180 0080 00C0 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 11 0 BBX 5 17 2 -3 BITMAP F8 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 F8 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 3 BITMAP 0400 0C00 0C00 1200 1200 2100 2100 4080 4080 C0C0 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 11 0 BBX 11 1 0 -2 BITMAP FFE0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 11 0 BBX 3 5 4 9 BITMAP 60 C0 80 E0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 7E00 4300 0300 0300 3F00 6300 C300 C300 C700 7DC0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP C000 C000 C000 C000 DE00 E300 C180 C180 C180 C180 C180 C300 E300 DE00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 1F80 7080 6000 C000 C000 C000 C000 6000 7080 1F80 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP 0180 0180 0180 0180 3D80 6380 6180 C180 C180 C180 C180 C180 6380 3D80 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 1E00 6300 4180 C180 FF80 C000 C000 4000 6080 1F80 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 1 0 BITMAP 0FC0 1C00 1800 1800 1800 FFC0 1800 1800 1800 1800 1800 1800 1800 1800 1800 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 -4 BITMAP 1E80 6380 6180 C180 C180 C180 C180 C180 6380 3D80 0180 0180 4300 7E00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 11 0 BBX 8 14 2 0 BITMAP C0 C0 C0 C0 CE DF E3 C3 C3 C3 C3 C3 C3 C3 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 11 0 BBX 6 14 1 0 BITMAP 0C 0C 00 00 FC 0C 0C 0C 0C 0C 0C 0C 0C 0C ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 11 0 BBX 7 18 1 -4 BITMAP 06 06 00 00 7E 06 06 06 06 06 06 06 06 06 06 06 8E FC ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 2 0 BITMAP C000 C000 C000 C000 C300 C400 CC00 D800 D000 F800 DC00 CE00 C700 C380 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 11 0 BBX 6 14 1 0 BITMAP FC 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 0 0 BITMAP B9E0 E720 C620 8420 8420 8420 8420 8420 8420 8420 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 11 0 BBX 8 10 2 0 BITMAP CE DF E3 C3 C3 C3 C3 C3 C3 C3 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 1E00 6180 6180 C0C0 C0C0 C0C0 C0C0 6180 6180 1E00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 2 -4 BITMAP DE00 E300 C180 C180 C180 C180 C180 C300 E300 DE00 C000 C000 C000 C000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 -4 BITMAP 3D80 6380 6180 C180 C180 C180 C180 C180 6380 3D80 0180 0180 0180 0180 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 11 0 BBX 8 10 3 0 BITMAP DF F1 E1 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 11 0 BBX 8 10 2 0 BITMAP 3E C2 C0 E0 7C 1F 07 03 86 FC ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 1800 1800 1800 FFC0 1800 1800 1800 1800 1800 1800 1800 1C00 0FC0 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 11 0 BBX 8 10 2 0 BITMAP C3 C3 C3 C3 C3 C3 C3 C7 FB 73 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP C0C0 E080 6080 6100 3100 3200 3A00 1A00 1C00 0C00 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 0 0 BITMAP C020 C420 CA40 6A40 6A40 6A40 71C0 7180 7180 3180 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP E080 7100 3300 1A00 1C00 0E00 1600 2300 6380 C1C0 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 -4 BITMAP C0C0 E080 6080 6100 3100 3200 1A00 1A00 1C00 0C00 0800 0800 1000 6000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP FF80 0100 0200 0400 0C00 1800 3000 2000 4000 FF80 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 11 0 BBX 7 17 2 -3 BITMAP 1E 30 30 30 10 10 10 30 C0 30 10 10 30 30 30 30 1E ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 11 0 BBX 1 17 5 -3 BITMAP 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 11 0 BBX 7 17 2 -3 BITMAP F0 18 18 18 18 10 10 18 0E 18 10 10 18 18 18 18 F0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 11 0 BBX 10 4 1 3 BITMAP 7040 4840 8480 8380 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 11 0 BBX 2 14 5 -4 BITMAP 80 80 00 00 80 80 80 80 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 11 0 BBX 7 14 2 0 BITMAP 08 08 3E 6A E8 C8 C8 C8 C8 48 6A 3E 08 08 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 11 0 BBX 8 14 2 0 BITMAP 0F 10 30 30 30 30 FC 30 30 30 30 60 E0 FF ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 2 BITMAP 8080 4100 7F00 6300 4100 4100 4100 6300 7F00 8080 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP C060 60C0 7080 3100 1B00 1E00 0C00 3F80 0C00 3F80 0C00 0C00 0C00 0C00 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 11 0 BBX 1 17 5 -3 BITMAP 80 80 80 80 80 80 80 00 00 00 80 80 80 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 11 0 BBX 7 18 2 -4 BITMAP 3E 42 80 80 E0 F0 F8 8C 84 C4 E4 78 3C 0E 06 06 8C F8 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 11 0 BBX 5 1 3 13 BITMAP 98 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 1F00 2180 4080 8F40 9140 A040 A040 A040 A040 9140 8E40 4080 6100 3E00 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 11 0 BBX 7 8 2 6 BITMAP 78 84 04 7C 84 84 8C 76 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 11 0 BBX 9 8 1 1 BITMAP 0880 1100 2200 CC00 4400 2200 1100 0880 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 11 0 BBX 10 4 1 3 BITMAP FFC0 0040 0040 0040 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 11 0 BBX 8 1 2 6 BITMAP FF ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 11 0 BBX 7 8 2 6 BITMAP 38 44 BA AA B2 AA 44 38 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 11 0 BBX 5 1 3 13 BITMAP F8 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 11 0 BBX 3 3 4 11 BITMAP E0 A0 E0 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 0800 0800 0800 FF80 0800 0800 0800 0800 0000 FF80 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 11 0 BBX 4 7 -1 7 BITMAP E0 10 10 20 40 80 F0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 11 0 BBX 4 7 -1 7 BITMAP E0 10 10 60 10 10 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 11 0 BBX 4 2 3 12 BITMAP 70 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 2 -3 BITMAP C3 C3 C3 C3 C3 C3 C3 C7 FB FB C0 C0 C0 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 11 0 BBX 7 17 2 -3 BITMAP 7E FA FA FA FA 7A 3A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 11 0 BBX 2 2 5 4 BITMAP C0 C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 11 0 BBX 3 4 5 -4 BITMAP C0 40 20 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 11 0 BBX 5 7 -1 7 BITMAP E0 A0 20 20 20 20 F8 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 11 0 BBX 7 8 2 6 BITMAP 38 6C C6 C6 C6 C6 6C 38 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 11 0 BBX 9 8 1 1 BITMAP 8800 4400 2200 1100 1980 2200 4400 8800 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 2 0 BITMAP E060 A040 2080 2100 2100 2200 FC00 04C0 08C0 1140 1240 23E0 4040 C040 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 2 0 BITMAP E060 A040 2080 2100 2100 2200 FC00 05C0 0820 1020 1040 2080 4100 C1E0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 2 0 BITMAP E060 1040 1080 6100 1100 1200 E400 04C0 08C0 1140 1240 23E0 4040 C040 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 -4 BITMAP 0C00 0C00 0000 0000 0C00 0C00 0800 1000 2000 4000 C000 C080 6080 3F80 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 11 0 BBX 11 17 0 0 BITMAP 0E00 0300 0000 0600 0E00 0E00 0B00 1300 1300 1180 2180 2180 3FC0 40C0 40C0 4060 8060 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 11 0 BBX 11 17 0 0 BITMAP 0E00 1800 0000 0600 0E00 0E00 0B00 1300 1300 1180 2180 2180 3FC0 40C0 40C0 4060 8060 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 11 0 BBX 11 17 0 0 BITMAP 1E00 3300 0000 0600 0E00 0E00 0B00 1300 1300 1180 2180 2180 3FC0 40C0 40C0 4060 8060 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 11 0 BBX 11 17 0 0 BITMAP 3D00 2F00 0000 0600 0E00 0E00 0B00 1300 1300 1180 2180 2180 3FC0 40C0 40C0 4060 8060 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 11 0 BBX 11 16 0 0 BITMAP 1300 0000 0600 0E00 0E00 0B00 1300 1300 1180 2180 2180 3FC0 40C0 40C0 4060 8060 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 11 0 BBX 11 18 0 0 BITMAP 0E00 0A00 0E00 0000 0600 0E00 0E00 0B00 1300 1300 1180 2180 2180 3FC0 40C0 40C0 4060 8060 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 11 0 BBX 12 14 0 0 BITMAP 03E0 0700 0700 0700 0B00 0B00 1300 13E0 1300 2300 3F00 4300 4300 C3F0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 11 0 BBX 10 18 1 -4 BITMAP 0FC0 3840 6000 6000 C000 C000 C000 C000 C000 C000 6000 6000 3840 0FC0 0400 0400 0200 0E00 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 11 0 BBX 9 17 2 0 BITMAP 3800 0C00 0000 FF80 C000 C000 C000 C000 C000 FF00 C000 C000 C000 C000 C000 C000 FF80 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 11 0 BBX 9 17 2 0 BITMAP 1C00 3000 0000 FF80 C000 C000 C000 C000 C000 FF00 C000 C000 C000 C000 C000 C000 FF80 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 0 0 BBX 0 0 0 0 BITMAP ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 11 0 BBX 9 16 2 0 BITMAP 4C00 0000 FF80 C000 C000 C000 C000 C000 FF00 C000 C000 C000 C000 C000 C000 FF80 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 11 0 BBX 8 17 2 0 BITMAP 38 0C 00 FF 18 18 18 18 18 18 18 18 18 18 18 18 FF ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 11 0 BBX 8 17 2 0 BITMAP 1C 30 00 FF 18 18 18 18 18 18 18 18 18 18 18 18 FF ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 11 0 BBX 8 17 2 0 BITMAP 3C 66 00 FF 18 18 18 18 18 18 18 18 18 18 18 18 FF ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 11 0 BBX 8 16 2 0 BITMAP 4C 00 FF 18 18 18 18 18 18 18 18 18 18 18 18 FF ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP 7F00 6180 60C0 6060 6060 6060 F860 6060 6060 6060 60C0 60C0 6180 7F00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 11 0 BBX 9 17 1 0 BITMAP 3D00 2F00 0000 C080 E080 E080 F080 B080 9880 9880 8C80 8E80 8680 8780 8380 8180 8180 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 11 0 BBX 10 17 1 0 BITMAP 1C00 0600 0000 1E00 3300 6180 4080 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 4080 6180 3300 1E00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 11 0 BBX 10 17 1 0 BITMAP 0E00 1800 0000 1E00 3300 6180 4080 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 4080 6180 3300 1E00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 11 0 BBX 10 17 1 0 BITMAP 1E00 3300 0000 1E00 3300 6180 4080 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 4080 6180 3300 1E00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 11 0 BBX 10 17 1 0 BITMAP 3D00 2F00 0000 1E00 3300 6180 4080 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 4080 6180 3300 1E00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 1 0 BITMAP 2600 0000 1E00 3300 6180 4080 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 4080 6180 3300 1E00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 0C00 0C00 0000 0000 FFC0 0000 0000 0000 0C00 0C00 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 1EC0 3380 6180 4280 C2C0 C4C0 C4C0 C8C0 C8C0 D0C0 7080 6180 7300 DE00 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 11 0 BBX 9 17 1 0 BITMAP 1C00 0600 0000 C080 C080 C080 C080 C080 C080 C080 C080 C080 C080 C080 C080 6100 3E00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 11 0 BBX 9 17 1 0 BITMAP 1C00 3000 0000 C080 C080 C080 C080 C080 C080 C080 C080 C080 C080 C080 C080 6100 3E00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 11 0 BBX 9 17 1 0 BITMAP 3C00 6600 0000 C080 C080 C080 C080 C080 C080 C080 C080 C080 C080 C080 C080 6100 3E00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 11 0 BBX 9 16 1 0 BITMAP 2600 0000 C080 C080 C080 C080 C080 C080 C080 C080 C080 C080 C080 C080 6100 3E00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 11 0 BBX 12 17 0 0 BITMAP 0700 0C00 0000 E030 6020 7040 3080 1880 1D00 0F00 0600 0600 0600 0600 0600 0600 0600 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 2 0 BITMAP C000 C000 C000 FE00 C380 C180 C180 C180 C180 C300 FC00 C000 C000 C000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 11 0 BBX 9 15 2 0 BITMAP 7C00 C600 C600 C600 C400 C800 C800 CC00 CE00 C700 C380 C180 C180 D180 DF00 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 1C00 0600 0000 7E00 4300 0300 0300 3F00 6300 C300 C300 C700 7DC0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 1C00 3000 0000 7E00 4300 0300 0300 3F00 6300 C300 C300 C700 7DC0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 1E00 3300 0000 7E00 4300 0300 0300 3F00 6300 C300 C300 C700 7DC0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 3D00 2F00 0000 7E00 4300 0300 0300 3F00 6300 C300 C300 C700 7DC0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 1 0 BITMAP 2600 0000 7E00 4300 0300 0300 3F00 6300 C300 C300 C700 7DC0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 1C00 1400 1C00 0000 7E00 4300 0300 0300 3F00 6300 C300 C300 C700 7DC0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 0 0 BITMAP 7B80 4E40 0C60 0C60 7FE0 EC00 CC00 CC00 CE20 7BE0 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 -4 BITMAP 1F80 7080 6000 C000 C000 C000 C000 6000 7080 1F80 0800 0800 0400 1C00 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 1C00 0600 0000 1E00 6300 4180 C180 FF80 C000 C000 4000 6080 1F80 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 1C00 3000 0000 1E00 6300 4180 C180 FF80 C000 C000 4000 6080 1F80 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 3C00 6600 0000 1E00 6300 4180 C180 FF80 C000 C000 4000 6080 1F80 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP 2600 0000 1E00 6300 4180 C180 FF80 C000 C000 4000 6080 1F80 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 11 0 BBX 7 13 1 0 BITMAP 1C 06 00 FC 0C 0C 0C 0C 0C 0C 0C 0C 0C ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 11 0 BBX 6 13 1 0 BITMAP 1C 30 00 FC 0C 0C 0C 0C 0C 0C 0C 0C 0C ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 11 0 BBX 7 13 1 0 BITMAP 3C 66 00 FC 0C 0C 0C 0C 0C 0C 0C 0C 0C ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 11 0 BBX 7 12 1 0 BITMAP 26 00 FC 0C 0C 0C 0C 0C 0C 0C 0C 0C ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP FC00 1C00 6C00 4600 3F00 6300 C180 C180 C180 C180 C180 4100 6300 3E00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 2 0 BITMAP 7A 5E 00 CE DF E3 C3 C3 C3 C3 C3 C3 C3 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 1C00 0600 0000 1E00 6180 6180 C0C0 C0C0 C0C0 C0C0 6180 6180 1E00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0E00 1800 0000 1E00 6180 6180 C0C0 C0C0 C0C0 C0C0 6180 6180 1E00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 1E00 3300 0000 1E00 6180 6180 C0C0 C0C0 C0C0 C0C0 6180 6180 1E00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 3D00 2F00 0000 1E00 6180 6180 C0C0 C0C0 C0C0 C0C0 6180 6180 1E00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 1 0 BITMAP 2600 0000 1E00 6180 6180 C0C0 C0C0 C0C0 C0C0 6180 6180 1E00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 8040 4080 2100 1200 0C00 0C00 1200 2100 4080 8040 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 1FC0 6180 63C0 C2C0 C4C0 C8C0 D0C0 F180 6180 FE00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 2 0 BITMAP 38 0C 00 C3 C3 C3 C3 C3 C3 C3 C7 FB 73 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 2 0 BITMAP 1C 30 00 C3 C3 C3 C3 C3 C3 C3 C7 FB 73 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 2 0 BITMAP 3C 66 00 C3 C3 C3 C3 C3 C3 C3 C7 FB 73 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 11 0 BBX 8 12 2 0 BITMAP 26 00 C3 C3 C3 C3 C3 C3 C3 C7 FB 73 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 11 0 BBX 10 17 1 -4 BITMAP 0E00 1800 0000 C0C0 E080 6080 6100 3100 3200 1A00 1A00 1C00 0C00 0800 0800 1000 6000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 11 0 BBX 9 17 2 -4 BITMAP C000 C000 C000 DE00 E300 C180 C180 C180 C180 C180 C300 E300 DE00 C000 C000 C000 C000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 1 -4 BITMAP 2600 0000 C0C0 E080 6080 6100 3100 3200 1A00 1A00 1C00 0C00 0800 0800 1000 6000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 15 1 0 BITMAP 3F 63 63 63 63 FB 63 63 63 63 63 63 63 63 63 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 1 1 5 BITMAP FF80 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 7 17 2 -3 BITMAP 10 10 10 10 10 FE 10 10 10 10 10 10 10 10 10 10 10 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 17 1 0 BITMAP 3300 1E00 0000 FFC0 01C0 0180 0380 0700 0600 0E00 1C00 1800 3000 7000 6000 C000 FFC0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 3B80 4C80 CCC0 CCC0 CFC0 CC00 CC00 CC00 4E40 3BC0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 12 16 0 0 BITMAP 1300 0000 E030 6020 7040 3080 1880 1D00 0F00 0600 0600 0600 0600 0600 0600 0600 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 10 1 0 BITMAP FC 0C 0C 0C 0C 0C 0C 0C 0C 0C ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 14 2 0 BITMAP FC 0C 0C 0C 0D 0F 0C 3C 2C 0C 0C 0C 0C 0C ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 0 0 BITMAP 3000 3000 3000 3000 3000 3400 3800 7000 B000 3000 3000 3000 3000 3FC0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 7 17 2 -3 BITMAP 10 10 10 10 10 FE 10 10 10 10 10 FE 10 10 10 10 10 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 15 1 0 BITMAP 38 7B 63 60 60 FF 63 63 63 63 63 63 63 63 63 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 5 8 3 1 BITMAP 80 40 20 10 18 20 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP 3FC0 6600 C600 C600 C600 C600 C7C0 C600 C600 C600 C600 4600 6600 3FE0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 1 1 5 BITMAP FFC0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 2 3 12 BITMAP CC 78 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 3 4 -4 BITMAP 40 80 E0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 2 3 12 BITMAP 6C D0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 5 8 3 1 BITMAP 08 10 20 C0 40 20 10 08 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 2 2 5 12 BITMAP C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 2 3 12 BITMAP 84 78 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 5 3 2 BITMAP FC FC FC FC FC ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 2 3 12 BITMAP F4 BC ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 2 3 12 BITMAP 78 CC ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 7 5 2 9 BITMAP C6 84 84 C6 C6 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 5 4 9 BITMAP E0 E0 E0 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 2 0 BITMAP 66 3C 00 3E C2 C0 E0 7C 1F 07 03 86 FC ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 3 4 12 BITMAP E0 A0 E0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 7 4 -4 BITMAP E0 E0 E0 20 60 60 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 17 2 -3 BITMAP 0F 18 18 30 30 30 F8 30 30 70 60 60 60 60 E0 C0 C0 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 7 0 7 BITMAP FE60 2660 2760 27E0 25A0 25A0 2420 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP 0060 0040 0080 0100 0100 0200 0400 0400 0800 1000 1000 2000 4000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 4 2 4 12 BITMAP E0 30 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 13 14 0 0 BITMAP 6100 9200 9200 9400 9400 6800 0800 1000 1630 2948 2948 4948 4948 8630 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 2 1 0 BITMAP CD80 CD80 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 7 5 2 9 BITMAP C6 C6 42 42 C6 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 17 1 0 BITMAP 6600 3C00 0000 3F00 6100 C000 C000 E000 7000 3C00 0F00 0380 0180 0180 0180 8300 7E00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 7 5 2 -3 BITMAP C6 C6 42 42 C6 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 3300 1E00 0000 FF80 0100 0200 0400 0C00 1800 3000 2000 4000 FF80 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/75dpi/lutRS24.bdf100644 1750 1750 105261 5413747510 15205 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaTypewriter-Medium-R-Normal-Sans-24-240-75-75-M-140-ISO8859-1 SIZE 24 72 72 FONTBOUNDINGBOX 18 27 -2 -5 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaTypewriter" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 24 POINT_SIZE 240 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "M" AVERAGE_WIDTH 140 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 22 FONT_DESCENT 5 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 14 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 14 0 BBX 3 17 6 0 BITMAP 60 60 60 60 60 60 60 60 40 40 40 40 00 00 00 E0 E0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 14 0 BBX 10 5 2 12 BITMAP C0C0 C0C0 C0C0 4080 4080 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 1 0 BITMAP 0220 0220 0420 0420 0440 0440 7FF8 0880 0880 0880 1880 FFF0 1100 1100 2100 2200 2200 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 14 0 BBX 9 21 3 -2 BITMAP 0800 0800 3F00 6980 C800 C800 C800 E800 7800 3800 1E00 0F00 0B80 0980 0980 0980 8B80 EF00 7E00 0800 0800 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP 380C 4418 8210 8220 8260 8240 4480 3900 0300 0270 0488 0904 1904 1104 2104 6088 C070 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 14 0 BBX 15 17 0 0 BITMAP 0780 0CC0 1860 1860 18E0 1CC0 0F00 0E00 3606 6706 C386 C1C4 C0EC C07C 6038 307C 1FDE ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 14 0 BBX 3 6 6 11 BITMAP E0 E0 20 60 C0 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 14 0 BBX 8 21 4 -4 BITMAP 07 0F 3C 30 70 60 E0 C0 C0 C0 C0 C0 C0 C0 60 60 30 30 1C 0F 03 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 14 0 BBX 8 21 2 -4 BITMAP C0 F0 38 0C 0C 06 06 03 03 03 03 03 03 03 06 06 0E 0C 38 F0 C0 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 14 0 BBX 11 10 2 7 BITMAP 0E00 0E00 4420 E4E0 F1E0 0000 1B00 3B80 71C0 1100 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 14 0 BBX 11 13 2 0 BITMAP 0400 0400 0400 0400 0400 0400 FFE0 0400 0400 0400 0400 0400 0400 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 14 0 BBX 3 8 6 -4 BITMAP E0 E0 E0 E0 20 60 40 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 14 0 BBX 12 1 1 5 BITMAP FFF0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 14 0 BBX 3 3 6 0 BITMAP E0 E0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 14 0 BBX 13 21 1 -4 BITMAP 0018 0010 0020 0020 0040 0040 0080 0180 0100 0300 0200 0600 0400 0C00 0800 1000 1000 2000 2000 4000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 1 0 BITMAP 0F00 30C0 6060 6060 4020 C030 C030 C030 C030 C030 C030 C030 4020 6060 6060 30C0 0F00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 2 0 BITMAP 0200 1E00 F600 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 FFF0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 14 0 BBX 9 17 2 0 BITMAP 7E00 C300 0180 0180 0180 0180 0100 0300 0200 0400 0800 1000 3000 6000 E000 E000 FF80 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 14 0 BBX 9 17 3 0 BITMAP FE00 8300 0180 0180 0180 0180 0700 7C00 0600 0300 0180 0180 0180 0180 0300 8700 FC00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 14 0 BBX 11 17 2 0 BITMAP 0180 0380 0380 0580 0D80 0980 1180 3180 2180 4180 C180 FFE0 0180 0180 0180 0180 0180 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 14 0 BBX 9 17 3 0 BITMAP FF80 8000 8000 8000 8000 8000 F800 0E00 0300 0180 0180 0180 0180 0180 0300 8600 FC00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 14 0 BBX 11 17 2 0 BITMAP 0FC0 1040 2000 6000 4000 C000 DF00 F1C0 E0C0 C060 C060 C060 C060 4060 60C0 3180 1F00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 14 0 BBX 10 17 3 0 BITMAP FFC0 FFC0 0080 0180 0100 0300 0200 0600 0400 0C00 0800 1800 1000 3000 3000 6000 6000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 14 0 BBX 11 17 2 0 BITMAP 1F00 3080 6040 6040 6040 70C0 3D80 1F00 1F80 63C0 40E0 C060 C060 C060 E040 70C0 1F00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 14 0 BBX 11 17 2 0 BITMAP 1F00 3180 60C0 C040 C060 C060 C060 C060 60E0 71E0 1F60 0060 0040 00C0 0080 4100 7E00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 14 0 BBX 3 13 6 0 BITMAP E0 E0 E0 00 00 00 00 00 00 00 E0 E0 E0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 14 0 BBX 3 17 6 -4 BITMAP E0 E0 E0 00 00 00 00 00 00 E0 E0 E0 E0 20 60 40 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 14 0 BBX 11 13 0 0 BITMAP 0020 0060 0180 0600 0C00 3000 C000 3000 0C00 0600 0180 0060 0020 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 14 0 BBX 12 7 1 3 BITMAP FFF0 0000 0000 0000 0000 0000 FFF0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 14 0 BBX 11 13 1 0 BITMAP 8000 C000 3000 0C00 0600 0180 0060 0180 0600 0C00 3000 C000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 14 0 BBX 10 17 2 0 BITMAP FF00 8180 80C0 00C0 00C0 0180 0300 0600 0C00 0800 1800 1800 0000 0000 0000 0C00 0C00 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 1 0 BITMAP 07E0 1C10 3008 60F8 4108 C208 8208 8408 8408 8418 8438 8428 4268 41CC 2000 1810 07E0 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 -1 0 BITMAP 0600 0700 0B00 0B00 0980 1180 1180 10C0 30C0 20C0 20E0 7FE0 4060 4030 8030 8030 8018 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 14 0 BBX 11 17 2 0 BITMAP FF00 C180 C0C0 C0C0 C0C0 C0C0 C180 C300 FF00 C3C0 C0C0 C060 C060 C060 C060 C0C0 FF80 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 1 0 BITMAP 07F0 1830 3000 6000 6000 C000 C000 C000 C000 C000 C000 C000 6000 6000 3000 1C10 07F0 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 2 0 BITMAP FF00 C1C0 C0E0 C060 C030 C030 C030 C030 C030 C030 C030 C030 C060 C060 C0C0 C1C0 FF00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 14 0 BBX 10 17 3 0 BITMAP FF80 C000 C000 C000 C000 C000 C000 FF00 C000 C000 C000 C000 C000 C000 C000 C000 FFC0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 14 0 BBX 10 17 3 0 BITMAP FFC0 C000 C000 C000 C000 C000 C000 C000 FF80 C000 C000 C000 C000 C000 C000 C000 C000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 1 0 BITMAP 07F0 1810 3000 6000 6000 C000 C000 C000 C000 C000 C030 C030 6030 6030 3030 1C30 07E0 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 14 0 BBX 11 17 2 0 BITMAP C060 C060 C060 C060 C060 C060 C060 C060 FFE0 C060 C060 C060 C060 C060 C060 C060 C060 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 14 0 BBX 10 17 2 0 BITMAP FFC0 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 FFC0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 14 0 BBX 8 17 3 0 BITMAP 7F 03 03 03 03 03 03 03 03 03 03 03 03 03 03 86 FC ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 2 0 BITMAP C040 C080 C100 C300 C200 C400 C800 D000 F800 DC00 CC00 C600 C300 C380 C1C0 C0E0 C070 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 14 0 BBX 10 17 3 0 BITMAP C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 FFC0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 1 0 BITMAP C030 E070 E070 A050 A050 B0D0 9090 9090 9090 8910 8910 8910 8910 8610 8610 8610 8010 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 14 0 BBX 11 17 2 0 BITMAP C020 E020 E020 F020 B020 9820 9820 8C20 8E20 8620 8320 8320 81A0 81E0 80E0 8060 8060 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 1 0 BITMAP 0F80 38E0 3060 6030 6030 C018 C018 C018 C018 C018 C018 C018 6030 6030 3060 38E0 0F80 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 14 0 BBX 11 17 3 0 BITMAP FF80 C0C0 C060 C060 C060 C060 C060 C0C0 C180 FE00 C000 C000 C000 C000 C000 C000 C000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 14 0 BBX 14 21 1 -4 BITMAP 0F80 38C0 3060 6030 6030 C018 C018 C018 C018 C018 C018 C018 6038 6030 3070 38E0 0FE0 00C0 0070 003C 0018 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 2 0 BITMAP FF00 C180 C0C0 C0C0 C0C0 C0C0 C1C0 C380 FF00 C600 C700 C300 C180 C1C0 C0C0 C0E0 C070 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 14 0 BBX 11 17 2 0 BITMAP 1FC0 6040 C000 C000 C000 E000 7000 3C00 0F00 03C0 00E0 0060 0060 0060 0040 80C0 7F00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP FFFC 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 14 0 BBX 11 17 2 0 BITMAP C020 C020 C020 C020 C020 C020 C020 C020 C020 C020 C020 C020 C020 C020 4040 60C0 3F80 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP C00C 6008 6008 6010 3010 3010 3020 1820 1820 1840 0C40 0CC0 0E80 0680 0700 0700 0300 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP 8004 8604 860C 8708 CF08 CF08 CD08 C918 C998 5990 5890 5090 70F0 70F0 70E0 6060 6060 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 -1 0 BITMAP C010 6020 7060 3040 3880 1D80 0D00 0E00 0600 0700 0B80 1180 10C0 20E0 4060 4030 8038 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 0 0 BITMAP E008 6018 3010 3820 1820 1C40 0CC0 0680 0700 0300 0300 0300 0300 0300 0300 0300 0300 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 1 0 BITMAP 7FF0 0070 0060 00C0 01C0 0180 0300 0700 0600 0E00 1C00 1800 3800 7000 6000 E000 FFF0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 14 0 BBX 6 21 6 -4 BITMAP FC 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 FC ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 14 0 BBX 13 21 1 -4 BITMAP C000 4000 2000 2000 1000 1000 0800 0C00 0400 0600 0200 0300 0100 0180 0080 0040 0040 0020 0020 0010 0018 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 14 0 BBX 6 21 3 -4 BITMAP FC 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 FC ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 1 3 BITMAP 0200 0600 0600 0F00 0900 0900 1080 1080 2040 2040 6040 4020 C030 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 14 0 BBX 14 1 0 -2 BITMAP FFFC ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 14 0 BBX 3 6 6 11 BITMAP 60 C0 80 E0 E0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 2 0 BITMAP 3F80 41C0 00C0 00C0 00C0 1FC0 70C0 60C0 C0C0 C0C0 C0C0 63C0 3EF0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 14 0 BBX 11 17 2 0 BITMAP C000 C000 C000 C000 CF00 F1C0 E0C0 C060 C060 C060 C060 C060 C060 C0C0 C0C0 F180 DF00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 14 0 BBX 11 13 2 0 BITMAP 0FE0 3860 6000 6000 C000 C000 C000 C000 C000 6000 6000 3820 0FE0 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 14 0 BBX 11 17 2 0 BITMAP 0060 0060 0060 0060 1F60 31E0 6060 6060 C060 C060 C060 C060 C060 C060 60E0 71E0 1E60 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 14 0 BBX 11 13 2 0 BITMAP 1F80 31C0 60C0 6060 C060 C060 FFE0 C000 C000 4000 6000 3020 0FE0 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 14 0 BBX 12 19 2 0 BITMAP 07F0 0C10 1800 1800 1800 1800 FFF0 1800 1800 1800 1800 1800 1800 1800 1800 1800 1800 1800 1800 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 14 0 BBX 11 18 2 -5 BITMAP 1FA0 31E0 60E0 4060 C060 C060 C060 C060 C060 C060 60E0 71E0 1E60 0060 0060 0040 4080 7F00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 14 0 BBX 10 17 2 0 BITMAP C000 C000 C000 C000 CF00 DF80 F1C0 E0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 14 0 BBX 7 17 2 0 BITMAP 06 06 00 00 FE 06 06 06 06 06 06 06 06 06 06 06 06 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 14 0 BBX 8 22 2 -5 BITMAP 03 03 00 00 7F 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 86 FC ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 14 0 BBX 11 17 3 0 BITMAP C000 C000 C000 C000 C180 C100 C200 C400 C800 D000 F800 DC00 CE00 C700 C380 C180 C0E0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 14 0 BBX 7 17 2 0 BITMAP FE 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 1 0 BITMAP 9C70 A288 C308 8208 8208 8208 8208 8208 8208 8208 8208 8208 8208 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 14 0 BBX 10 13 2 0 BITMAP CF00 DF80 F1C0 E0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 1 0 BITMAP 1F80 30C0 6060 6060 C030 C030 C030 C030 C030 6060 6060 30C0 1F80 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 14 0 BBX 11 18 2 -5 BITMAP CF00 F1C0 E0C0 C060 C060 C060 C060 C060 C060 C0C0 C0C0 F180 DF00 C000 C000 C000 C000 C000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 14 0 BBX 11 18 1 -5 BITMAP 1F60 31E0 6060 6060 C060 C060 C060 C060 C060 C060 60E0 71E0 1E60 0060 0060 0060 0060 0060 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 14 0 BBX 9 13 4 0 BITMAP CF80 F880 E080 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 14 0 BBX 10 13 2 0 BITMAP 3F80 6080 C000 C000 E000 7C00 3F00 07C0 00C0 00C0 00C0 C180 FE00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 14 0 BBX 11 15 2 0 BITMAP 1800 1800 FFE0 1800 1800 1800 1800 1800 1800 1800 1800 1800 1800 0C00 07E0 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 14 0 BBX 10 13 2 0 BITMAP C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C1C0 C3C0 7EC0 3CC0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 1 0 BITMAP C018 6010 6020 3020 3020 3840 1840 1880 0C80 0D80 0F00 0700 0600 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 14 0 BBX 14 13 0 0 BITMAP C004 C304 C308 6308 6488 6488 6498 6490 6890 3850 3870 3870 3060 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 1 0 BITMAP E060 7040 3080 1880 1D00 0E00 0600 0F00 0B80 1180 30C0 20E0 4070 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 1 -5 BITMAP E018 6010 6030 3020 3020 3840 1840 1880 0C80 0D80 0F00 0700 0600 0200 0400 0400 0800 7000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 14 0 BBX 11 13 2 0 BITMAP FFE0 0040 0080 0100 0300 0200 0400 0800 1000 3000 6000 4000 FFE0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 14 0 BBX 9 21 3 -4 BITMAP 0780 0C00 1800 1800 1800 0C00 0C00 0400 0400 0800 F000 0800 0400 0400 0C00 0C00 1800 1800 1800 0C00 0780 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 14 0 BBX 1 21 7 -4 BITMAP 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 14 0 BBX 9 21 3 -4 BITMAP F800 0C00 0600 0600 0600 0C00 0C00 0800 0800 0C00 0780 0C00 0800 0800 0800 0C00 0600 0600 0600 0C00 F800 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 14 0 BBX 12 5 1 4 BITMAP 3810 4C10 8610 8320 81C0 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 14 0 BBX 3 18 6 -5 BITMAP E0 E0 00 00 00 40 40 40 40 40 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 14 0 BBX 10 17 2 0 BITMAP 0200 0200 0FC0 3E40 7200 6200 C200 C200 C200 C200 C200 4200 6240 3A40 0FC0 0200 0200 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 14 0 BBX 9 17 3 0 BITMAP 0F80 1880 1000 3000 3000 3000 3000 3000 FC00 3000 3000 3000 3000 3000 6000 E000 FF80 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 14 0 BBX 11 12 2 3 BITMAP C020 4060 7FC0 71C0 60C0 4040 4040 4040 60C0 71C0 FFE0 8000 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 1 0 BITMAP E018 6010 7020 3060 3840 1880 1C80 0D00 0F00 0600 3FE0 0600 3FE0 0600 0600 0600 0600 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 14 0 BBX 1 21 7 -4 BITMAP 80 80 80 80 80 80 80 80 00 00 00 00 00 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 14 0 BBX 9 21 3 -4 BITMAP 3F00 4100 8000 8000 C000 F000 F800 DE00 8700 8300 8100 C100 7100 3E00 1F00 0780 0180 0180 0180 8300 FE00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 14 0 BBX 7 1 4 16 BITMAP C6 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 1 0 BITMAP 0FC0 3060 4010 4010 87C8 9848 B008 A008 A008 A008 B008 9848 8FC8 4010 4010 3060 1F80 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 14 0 BBX 8 9 3 8 BITMAP 7C C6 82 02 3E 42 82 86 7F ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 14 0 BBX 11 11 2 1 BITMAP 0420 0840 1080 3180 6300 C600 6300 3180 1080 0840 0C60 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 14 0 BBX 12 7 1 3 BITMAP FFF0 0010 0010 0010 0010 0010 0010 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 14 0 BBX 10 1 2 8 BITMAP FFC0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 14 0 BBX 10 10 2 7 BITMAP 1E00 6180 5E80 9240 9E40 9C40 9440 5280 6180 1E00 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 14 0 BBX 7 1 4 16 BITMAP FE ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 14 0 BBX 4 3 5 14 BITMAP 60 90 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 14 0 BBX 11 13 2 0 BITMAP 0400 0400 0400 0400 FFE0 0400 0400 0400 0400 0400 0000 0000 FFE0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 14 0 BBX 5 9 -2 8 BITMAP F0 88 08 08 10 20 40 C0 F8 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 14 0 BBX 5 9 -2 8 BITMAP F0 08 08 08 70 18 08 08 F0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 14 0 BBX 5 3 4 14 BITMAP 38 60 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 14 0 BBX 10 17 2 -4 BITMAP C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C1C0 C3C0 FEC0 FCC0 C000 C000 C000 C000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 14 0 BBX 8 21 3 -4 BITMAP 7F F9 F9 F9 F9 F9 79 79 19 09 09 09 09 09 09 09 09 09 09 09 09 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 14 0 BBX 3 2 6 6 BITMAP E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 14 0 BBX 4 5 6 -5 BITMAP E0 60 10 10 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 14 0 BBX 5 9 -2 8 BITMAP 60 E0 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 14 0 BBX 9 9 3 8 BITMAP 3E00 6300 C180 C180 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 14 0 BBX 11 11 2 1 BITMAP C600 4200 2100 3180 18C0 0C60 18C0 3180 2100 4200 8400 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 2 0 BITMAP 600C E018 2010 2020 2040 20C0 2080 2100 FB18 0218 0428 0828 0848 1088 20FC 6008 C008 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 2 0 BITMAP 600C E018 2010 2020 2040 20C0 2080 2100 FB78 0244 0404 0804 0808 1010 2020 6060 C07C ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 2 0 BITMAP F00C 0818 0810 0820 7040 18C0 0880 0900 F318 0218 0428 0828 0848 1088 20FC 6008 C008 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 14 0 BBX 10 18 2 -5 BITMAP 0C00 0C00 0000 0000 0000 0600 0600 0600 0400 0800 1000 6000 4000 C000 C000 C040 6040 3FC0 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 14 0 BBX 13 21 -1 0 BITMAP 0E00 0300 0180 0000 0600 0700 0B00 0B00 0980 1180 1180 10C0 30C0 20C0 20E0 7FE0 4060 4030 8030 8030 8018 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 14 0 BBX 13 21 -1 0 BITMAP 0700 0C00 1800 0000 0600 0700 0B00 0B00 0980 1180 1180 10C0 30C0 20C0 20E0 7FE0 4060 4030 8030 8030 8018 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 14 0 BBX 13 21 -1 0 BITMAP 0F00 1F80 39C0 0000 0600 0700 0B00 0B00 0980 1180 1180 10C0 30C0 20C0 20E0 7FE0 4060 4030 8030 8030 8018 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 14 0 BBX 13 20 -1 0 BITMAP 1EC0 3780 0000 0600 0700 0B00 0B00 0980 1180 1180 10C0 30C0 20C0 20E0 7FE0 4060 4030 8030 8030 8018 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 14 0 BBX 13 19 -1 0 BITMAP 3180 0000 0600 0700 0B00 0B00 0980 1180 1180 10C0 30C0 20C0 20E0 7FE0 4060 4030 8030 8030 8018 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 14 0 BBX 13 22 -1 0 BITMAP 0600 0900 0900 0600 0000 0600 0700 0B00 0B00 0980 1180 1180 10C0 30C0 20C0 20E0 7FE0 4060 4030 8030 8030 8018 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 -1 0 BITMAP 07E0 0700 0700 0B00 0B00 0B00 1300 1300 13E0 2300 2300 6300 7F00 4300 8300 8300 83F0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 14 0 BBX 12 22 1 -5 BITMAP 07F0 1830 3000 6000 6000 C000 C000 C000 C000 C000 C000 C000 6000 6000 3000 1C10 07F0 0C00 0600 0100 0100 0E00 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 14 0 BBX 10 21 3 0 BITMAP 3800 0C00 0600 0000 FF80 C000 C000 C000 C000 C000 C000 FF00 C000 C000 C000 C000 C000 C000 C000 C000 FFC0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 14 0 BBX 10 21 3 0 BITMAP 0E00 1800 3000 0000 FF80 C000 C000 C000 C000 C000 C000 FF00 C000 C000 C000 C000 C000 C000 C000 C000 FFC0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 0 0 BBX 0 0 0 0 BITMAP ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 14 0 BBX 10 19 3 0 BITMAP 6300 0000 FF80 C000 C000 C000 C000 C000 C000 FF00 C000 C000 C000 C000 C000 C000 C000 C000 FFC0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 14 0 BBX 10 21 2 0 BITMAP 1C00 0600 0300 0000 FFC0 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 FFC0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 14 0 BBX 10 21 2 0 BITMAP 0E00 1800 3000 0000 FFC0 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 FFC0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 14 0 BBX 10 21 2 0 BITMAP 1E00 3F00 7380 0000 FFC0 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 FFC0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 14 0 BBX 10 19 2 0 BITMAP 6300 0000 FFC0 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 FFC0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 0 0 BITMAP 7F80 60E0 6070 6030 6018 6018 6018 FC18 6018 6018 6018 6018 6030 6030 6060 60E0 7F80 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 14 0 BBX 11 20 2 0 BITMAP 1EC0 3780 0000 C020 E020 E020 F020 B020 9820 9820 8C20 8E20 8620 8320 8320 81A0 81E0 80E0 8060 8060 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 14 0 BBX 13 21 1 0 BITMAP 0E00 0300 0180 0000 0F80 38E0 3060 6030 6030 C018 C018 C018 C018 C018 C018 C018 6030 6030 3060 38E0 0F80 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 14 0 BBX 13 21 1 0 BITMAP 0380 0600 0C00 0000 0F80 38E0 3060 6030 6030 C018 C018 C018 C018 C018 C018 C018 6030 6030 3060 38E0 0F80 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 14 0 BBX 13 21 1 0 BITMAP 0780 0FC0 1CE0 0000 0F80 38E0 3060 6030 6030 C018 C018 C018 C018 C018 C018 C018 6030 6030 3060 38E0 0F80 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 14 0 BBX 13 20 1 0 BITMAP 0F60 1BC0 0000 0F80 38E0 3060 6030 6030 C018 C018 C018 C018 C018 C018 C018 6030 6030 3060 38E0 0F80 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 14 0 BBX 13 19 1 0 BITMAP 18C0 0000 0F80 38E0 3060 6030 6030 C018 C018 C018 C018 C018 C018 C018 6030 6030 3060 38E0 0F80 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 1 0 BITMAP 0600 0600 0000 0000 0000 0000 FFF0 0000 0000 0000 0000 0600 0600 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 1 0 BITMAP 0FF8 3870 3030 6070 6078 C098 C118 C118 C218 C418 C418 C818 D030 7030 6060 78E0 FF80 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 14 0 BBX 11 21 2 0 BITMAP 1C00 0600 0300 0000 C020 C020 C020 C020 C020 C020 C020 C020 C020 C020 C020 C020 C020 C020 4040 60C0 3F80 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 14 0 BBX 11 21 2 0 BITMAP 0700 0C00 1800 0000 C020 C020 C020 C020 C020 C020 C020 C020 C020 C020 C020 C020 C020 C020 4040 60C0 3F80 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 14 0 BBX 11 21 2 0 BITMAP 1E00 3F00 7380 0000 C020 C020 C020 C020 C020 C020 C020 C020 C020 C020 C020 C020 C020 C020 4040 60C0 3F80 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 14 0 BBX 11 19 2 0 BITMAP 3180 0000 C020 C020 C020 C020 C020 C020 C020 C020 C020 C020 C020 C020 C020 C020 4040 60C0 3F80 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 14 0 BBX 13 21 0 0 BITMAP 0380 0600 0C00 0000 E008 6018 3010 3820 1820 1C40 0CC0 0680 0700 0300 0300 0300 0300 0300 0300 0300 0300 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 14 0 BBX 11 17 3 0 BITMAP C000 C000 C000 FF80 C0C0 C060 C060 C060 C060 C060 C0C0 C180 FE00 C000 C000 C000 C000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 14 0 BBX 11 19 2 0 BITMAP 3C00 4700 C300 C300 C300 C600 C400 C800 C800 CC00 C600 C300 C1C0 C0E0 C060 C060 C060 C8C0 CF80 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 2 0 BITMAP 1C00 0600 0300 0000 3F80 41C0 00C0 00C0 00C0 1FC0 70C0 60C0 C0C0 C0C0 C0C0 63C0 3EF0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 2 0 BITMAP 0700 0C00 1800 0000 3F80 41C0 00C0 00C0 00C0 1FC0 70C0 60C0 C0C0 C0C0 C0C0 63C0 3EF0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 2 0 BITMAP 0F00 1F80 39C0 0000 3F80 41C0 00C0 00C0 00C0 1FC0 70C0 60C0 C0C0 C0C0 C0C0 63C0 3EF0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 14 0 BBX 12 16 2 0 BITMAP 1EC0 3780 0000 3F80 41C0 00C0 00C0 00C0 1FC0 70C0 60C0 C0C0 C0C0 C0C0 63C0 3EF0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 14 0 BBX 12 15 2 0 BITMAP 3180 0000 3F80 41C0 00C0 00C0 00C0 1FC0 70C0 60C0 C0C0 C0C0 C0C0 63C0 3EF0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 2 0 BITMAP 0600 0900 0900 0600 0000 3F80 41C0 00C0 00C0 00C0 1FC0 70C0 60C0 C0C0 C0C0 C0C0 63C0 3EF0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 14 0 BBX 14 13 0 0 BITMAP 7EF0 4398 030C 030C 030C 3FFC 6300 C300 C300 C300 C300 6784 3DFC ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 14 0 BBX 11 18 2 -5 BITMAP 0FE0 3860 6000 6000 C000 C000 C000 C000 C000 6000 6000 3820 0FE0 0400 0600 0100 0100 0E00 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 14 0 BBX 11 17 2 0 BITMAP 1C00 0600 0300 0000 1F80 31C0 60C0 6060 C060 C060 FFE0 C000 C000 4000 6000 3020 0FE0 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 14 0 BBX 11 17 2 0 BITMAP 0700 0C00 1800 0000 1F80 31C0 60C0 6060 C060 C060 FFE0 C000 C000 4000 6000 3020 0FE0 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 14 0 BBX 11 17 2 0 BITMAP 1E00 3F00 7380 0000 1F80 31C0 60C0 6060 C060 C060 FFE0 C000 C000 4000 6000 3020 0FE0 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 14 0 BBX 11 15 2 0 BITMAP 3180 0000 1F80 31C0 60C0 6060 C060 C060 FFE0 C000 C000 4000 6000 3020 0FE0 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 14 0 BBX 8 17 2 0 BITMAP 1C 06 03 00 FE 06 06 06 06 06 06 06 06 06 06 06 06 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 14 0 BBX 7 17 2 0 BITMAP 0E 18 30 00 FE 06 06 06 06 06 06 06 06 06 06 06 06 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 14 0 BBX 9 17 2 0 BITMAP 1E00 3F00 7380 0000 FE00 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 14 0 BBX 9 15 2 0 BITMAP 3180 0000 FE00 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 1 0 BITMAP FF00 1F80 7300 0180 0FC0 30E0 6060 6070 C030 C030 C030 C030 C030 6060 6060 30C0 1F80 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 14 0 BBX 10 16 2 0 BITMAP 3D80 6F00 0000 CF00 DF80 F1C0 E0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 1 0 BITMAP 0E00 0300 0180 0000 1F80 30C0 6060 6060 C030 C030 C030 C030 C030 6060 6060 30C0 1F80 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 1 0 BITMAP 0700 0C00 1800 0000 1F80 30C0 6060 6060 C030 C030 C030 C030 C030 6060 6060 30C0 1F80 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 1 0 BITMAP 0F00 1F80 39C0 0000 1F80 30C0 6060 6060 C030 C030 C030 C030 C030 6060 6060 30C0 1F80 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 14 0 BBX 12 16 1 0 BITMAP 1EC0 3780 0000 1F80 30C0 6060 6060 C030 C030 C030 C030 C030 6060 6060 30C0 1F80 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 14 0 BBX 12 15 1 0 BITMAP 3180 0000 1F80 30C0 6060 6060 C030 C030 C030 C030 C030 6060 6060 30C0 1F80 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 1 0 BITMAP C010 4030 2040 1080 1980 0F00 0600 0F00 1900 1080 2040 C020 8030 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 1 0 BITMAP 1FF0 30E0 60E0 60F0 C130 C230 C630 C430 C830 F060 7060 70C0 FF80 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 14 0 BBX 10 17 2 0 BITMAP 1C00 0600 0300 0000 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C1C0 C3C0 7EC0 3CC0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 14 0 BBX 10 17 2 0 BITMAP 0E00 1800 3000 0000 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C1C0 C3C0 7EC0 3CC0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 14 0 BBX 10 17 2 0 BITMAP 1E00 3F00 7380 0000 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C1C0 C3C0 7EC0 3CC0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 14 0 BBX 10 15 2 0 BITMAP 3180 0000 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C1C0 C3C0 7EC0 3CC0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 14 0 BBX 13 22 1 -5 BITMAP 0380 0600 0C00 0000 E018 6010 6030 3020 3020 3840 1840 1880 0C80 0D80 0F00 0700 0600 0200 0400 0400 0800 7000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 14 0 BBX 11 21 2 -5 BITMAP C000 C000 C000 CF00 F1C0 E0C0 C060 C060 C060 C060 C060 C060 C0C0 C0C0 F180 DF00 C000 C000 C000 C000 C000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 14 0 BBX 13 20 1 -5 BITMAP 18C0 0000 E018 6010 6030 3020 3020 3840 1840 1880 0C80 0D80 0F00 0700 0600 0200 0400 0400 0800 7000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 11 19 1 0 BITMAP 1FE0 3060 3060 3060 3060 3060 FE60 3060 3060 3060 3060 3060 3060 3060 3060 3060 3060 3060 3060 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 11 1 2 7 BITMAP FFE0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 9 21 3 -4 BITMAP 0800 0800 0800 0800 0800 0800 FF80 0800 0800 0800 0800 0800 0800 0800 0800 0800 0800 0800 0800 0800 0800 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 12 21 1 0 BITMAP 39C0 1F80 0F00 0000 7FF0 0070 0060 00C0 01C0 0180 0300 0700 0600 0E00 1C00 1800 3800 7000 6000 E000 FFF0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 1 0 BITMAP 3DE0 6790 6718 C318 C318 C3F8 C300 C300 C300 C300 4300 6788 3DF8 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 13 19 0 0 BITMAP 18C0 0000 E008 6018 3010 3820 1820 1C40 0CC0 0680 0700 0300 0300 0300 0300 0300 0300 0300 0300 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 7 13 2 0 BITMAP FE 06 06 06 06 06 06 06 06 06 06 06 06 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 10 17 2 0 BITMAP FE00 0600 0600 0600 0640 06C0 0780 0600 0E00 3600 2600 0600 0600 0600 0600 0600 0600 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 0 0 BITMAP 1800 1800 1800 1800 1800 1800 1900 1E00 1800 7800 D800 1800 1800 1800 1800 1800 1FF8 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 9 21 3 -4 BITMAP 0800 0800 0800 0800 0800 0800 0800 FF80 0800 0800 0800 0800 0800 0800 FF80 0800 0800 0800 0800 0800 0800 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 11 19 1 0 BITMAP 0E00 1E00 3F60 3060 3000 3000 FFE0 3060 3060 3060 3060 3060 3060 3060 3060 3060 3060 3060 3060 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 6 11 4 1 BITMAP 80 40 20 30 18 0C 18 30 20 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 1 0 BITMAP 3FF8 6380 6180 C180 C180 C180 C180 C1F8 C180 C180 C180 C180 C180 4180 6180 6380 1FFC ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 13 1 1 7 BITMAP FFF8 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 8 3 3 14 BITMAP E7 7E 3C ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 4 5 5 -5 BITMAP 60 C0 C0 C0 70 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 8 3 3 14 BITMAP 33 64 C8 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 6 11 4 1 BITMAP 04 08 10 30 60 C0 60 30 10 08 04 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 2 2 6 15 BITMAP C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 8 3 3 14 BITMAP C3 66 3C ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 7 7 4 2 BITMAP FE FE FE FE FE FE FE ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 8 2 3 15 BITMAP 7B DE ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 8 3 3 14 BITMAP 3C 7E E7 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 9 5 3 12 BITMAP C180 8100 8100 C180 C180 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 3 6 6 11 BITMAP E0 E0 E0 40 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 10 17 2 0 BITMAP 7380 3F00 1E00 0000 3F80 6080 C000 C000 E000 7C00 3F00 07C0 00C0 00C0 00C0 C180 FE00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 4 4 5 15 BITMAP 60 90 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 3 8 6 -4 BITMAP E0 E0 E0 E0 20 60 40 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 11 21 3 -4 BITMAP 03E0 0600 0C00 0C00 0C00 1800 1800 FE00 3000 3000 3000 6000 6000 6000 6000 6000 6000 6000 C000 C000 C000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 9 0 8 BITMAP FF8C 239C 23DC 23FC 22F4 22F4 2264 2204 2204 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP 000C 0018 0010 0020 0040 00C0 0080 0100 0300 0200 0400 0800 0800 1000 2000 6000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 5 3 5 14 BITMAP E0 30 18 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 1 0 BITMAP 6100 9200 9200 9400 9400 9400 9800 6800 1800 1000 1630 2948 2948 6948 4948 4948 8630 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 12 2 1 0 BITMAP C630 C630 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 9 5 3 12 BITMAP C180 C180 4080 4080 C180 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 11 21 2 0 BITMAP 7380 3F00 1E00 0000 1FC0 6040 C000 C000 C000 E000 7000 3C00 0F00 03C0 00E0 0060 0060 0060 0040 80C0 7F00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 9 7 3 -4 BITMAP C180 C180 4080 4080 4080 4080 8100 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 11 17 2 0 BITMAP 39C0 1F80 0F00 0000 FFE0 0040 0080 0100 0300 0200 0400 0800 1000 3000 6000 4000 FFE0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/misc/ 40755 1750 1750 0 6303177047 13153 5ustar mbmbxview-3.2p1.4/fonts/bdf/misc/Copyright.ps100644 1750 1750 522 5413747511 15543 0ustar mbmb% Copyright (c) 1989, Sun Microsystems, Inc. RESTRICTED RIGHTS LEGEND: % Use, duplication, or disclosure by the Government is subject to % restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in % Technical Data and Computer Software clause at DFARS 52.227-7013 and % in similar clauses in the FAR and NASA FAR Supplement. xview-3.2p1.4/fonts/bdf/misc/fonts.alias100644 1750 1750 541 5413747512 15375 0ustar mbmbolcursor "-sun-open look cursor-----12-120-75-75-p-160-sunolcursor-1" olglyph-10 "-sun-open look glyph-----10-100-75-75-p-101-sunolglyph-1" olglyph-12 "-sun-open look glyph-----12-120-75-75-p-113-sunolglyph-1" olglyph-14 "-sun-open look glyph-----14-140-75-75-p-128-sunolglyph-1" olglyph-19 "-sun-open look glyph-----19-190-75-75-p-154-sunolglyph-1" xview-3.2p1.4/fonts/bdf/misc/olcursor.bdf100644 1750 1750 13731 5413747512 15623 0ustar mbmbSTARTFONT 2.1 COMMENT COMMENT Copyright 1989 by Sun Microsystems, Inc. Mountain View, CA. COMMENT COMMENT Permission to use, copy, modify, and distribute this software and COMMENT its documentation for any purpose and without fee is hereby granted, COMMENT provided that the above copyright notices appear in all copies and COMMENT that both those copyright notices and this permission notice appear COMMENT in supporting documentation, and that the name of Sun Microsystems COMMENT not be used in advertising or publicity pertaining to distribution COMMENT of the software without specific, written prior permission. Sun COMMENT Microsystems make no representations about the suitability of this COMMENT software for any purpose. It is provided "as is" without express or COMMENT implied warranty. COMMENT COMMENT SUN MICROSYSTEMS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS COMMENT SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND COMMENT FITNESS, IN NO EVENT SHALL SUN MICROSYSTEMS BE LIABLE FOR ANY COMMENT SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER COMMENT RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF COMMENT CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN COMMENT CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. COMMENT COMMENT ** Open Look Cursor Font ** FONT -Sun-OPEN LOOK cursor-----12-120-75-75-P-160-SunOLcursor-1 SIZE 12 78 78 FONTBOUNDINGBOX 18 29 0 -17 STARTPROPERTIES 19 FONTNAME_REGISTRY "" FAMILY_NAME "OPEN LOOK cursor" FOUNDRY "Sun" WEIGHT_NAME "" SETWIDTH_NAME "" SLANT "" ADD_STYLE_NAME "" PIXEL_SIZE 12 POINT_SIZE 120 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 160 CHARSET_REGISTRY "SunOLcursor" CHARSET_ENCODING "1" FULL_NAME "OLCursor" FONT_ASCENT 12 FONT_DESCENT 17 DEFAULT_CHAR 32 ENDPROPERTIES CHARS 26 STARTCHAR basic ENCODING 0 SWIDTH 96 0 DWIDTH 16 0 BBX 16 16 0 -16 BITMAP c000 f000 7c00 7f00 3fc0 3ff0 1ff0 1f80 0fc0 0ee0 0670 0638 001c 000e 0007 0003 ENDCHAR STARTCHAR basic_m ENCODING 1 SWIDTH 96 0 DWIDTH 16 0 BBX 18 18 -1 -17 BITMAP 600000 f80000 fe0000 7f8000 7fe000 3ff800 3ffc00 1ffc00 1ff800 0ff000 0ff800 07fc00 07be00 031f00 000f80 0007c0 0003c0 000180 ENDCHAR STARTCHAR move ENCODING 2 SWIDTH 96 0 DWIDTH 16 0 BBX 16 16 0 -16 BITMAP c000 f000 7c00 7f00 3fc0 3fc0 1f00 1f80 0dff 0cff 00ff 00ff 00ff 00ff 00ff 00ff ENDCHAR STARTCHAR move_m ENCODING 3 SWIDTH 96 0 DWIDTH 16 0 BBX 18 18 -1 -17 BITMAP 600000 f80000 fe0000 7f8000 7fe000 3ff000 3ff000 1fe000 1fff80 0fffc0 0fffc0 06ffc0 00ffc0 00ffc0 00ffc0 00ffc0 00ffc0 007f80 ENDCHAR STARTCHAR copy ENCODING 4 SWIDTH 96 0 DWIDTH 16 0 BBX 16 16 0 -16 BITMAP c000 f000 7c00 7f00 3fc0 3fc0 1f00 1f80 0dfc 0cfc 00fd 00fd 00fd 00fd 0001 003f ENDCHAR STARTCHAR copy_m ENCODING 5 SWIDTH 96 0 DWIDTH 16 0 BBX 18 18 -1 -17 BITMAP 600000 f80000 fe0000 7f8000 7fe000 3ff000 3ff000 1fe000 1ffe00 0fff00 0fff80 06ffc0 00ffc0 00ffc0 00ffc0 007fc0 003fc0 001f80 ENDCHAR STARTCHAR busy ENCODING 6 SWIDTH 96 0 DWIDTH 16 0 BBX 16 16 -7 -8 BITMAP 07c6 1ff7 383b 600c 600c c006 c006 df06 c106 c106 610c 610c 3838 1ff0 07c0 0000 ENDCHAR STARTCHAR busy_m ENCODING 7 SWIDTH 42 0 DWIDTH 16 0 BBX 18 17 -8 -8 BITMAP 03e300 0fff80 1fffc0 3fffc0 7fff80 7fff00 ffff80 ffff80 ffff80 ffff80 ffff80 7fff00 7fff00 3ffe00 1ffc00 0ff800 03e000 ENDCHAR STARTCHAR stop ENCODING 8 SWIDTH 96 0 DWIDTH 16 0 BBX 9 16 0 -16 BITMAP 3e00 7f00 ff80 ff80 ff80 ff80 ff80 7f00 3e00 0800 0800 0800 0800 0800 0800 7f00 ENDCHAR STARTCHAR stop_m ENCODING 9 SWIDTH 96 0 DWIDTH 16 0 BBX 11 18 -1 -17 BITMAP 1f00 3f80 7fc0 ffe0 ffe0 ffe0 ffe0 ffe0 7fc0 3f80 1f00 0e00 0e00 0e00 0e00 3f80 7fc0 3f80 ENDCHAR STARTCHAR panning ENCODING 10 SWIDTH 96 0 DWIDTH 16 0 BBX 16 12 0 0 BITMAP 063f 067f 0ee0 0fc0 1f80 1ff0 3ff0 3fc0 7f00 7c00 f000 c000 ENDCHAR STARTCHAR panning_m ENCODING 11 SWIDTH 96 0 DWIDTH 16 0 BBX 18 14 -1 -1 BITMAP 031f80 07bfc0 07ffc0 0fff80 0ff000 1ff800 1ffc00 3ffc00 3ff800 7fe000 7f8000 fe0000 f80000 600000 ENDCHAR STARTCHAR nouse ENCODING 14 SWIDTH 96 0 DWIDTH 16 0 BBX 16 0 0 0 BITMAP ENDCHAR STARTCHAR nouse_m ENCODING 15 SWIDTH 96 0 DWIDTH 16 0 BBX 16 0 0 0 BITMAP ENDCHAR STARTCHAR ptr ENCODING 16 SWIDTH 96 0 DWIDTH 16 0 BBX 16 15 0 -15 BITMAP 0000 4000 6000 7000 7800 7c00 7e00 7800 4c00 0c00 0600 0600 0300 0300 0180 ENDCHAR STARTCHAR ptr_m ENCODING 17 SWIDTH 96 0 DWIDTH 16 0 BBX 16 16 0 -16 BITMAP c000 e000 f000 f800 fc00 fe00 ff00 ff80 fe00 df00 9f00 0f80 0f80 07c0 07c0 03c0 ENDCHAR STARTCHAR beye ENCODING 18 SWIDTH 96 0 DWIDTH 16 0 BBX 16 15 -8 -8 BITMAP 0000 03c0 0c30 1008 2004 2004 4002 4182 4182 4002 2004 2004 1008 0c30 03c0 ENDCHAR STARTCHAR beye_m ENCODING 19 SWIDTH 96 0 DWIDTH 16 0 BBX 16 16 -8 -9 BITMAP 03c0 0c30 13c8 2c34 500a 500a a185 a245 a245 a185 500a 500a 2c34 13c8 0c30 03c0 ENDCHAR STARTCHAR rtarr ENCODING 20 SWIDTH 96 0 DWIDTH 16 0 BBX 16 12 -17 -6 BITMAP 0000 0020 0030 0038 003c 7ffe 7fff 7ffe 003c 0038 0030 0020 ENDCHAR STARTCHAR rtarr_m ENCODING 21 SWIDTH 96 0 DWIDTH 16 0 BBX 16 13 -17 -7 BITMAP 0060 0050 0048 0044 ffc2 8001 8000 8001 ffc2 0044 0048 0050 0060 ENDCHAR STARTCHAR xhair ENCODING 22 SWIDTH 96 0 DWIDTH 16 0 BBX 16 15 -8 -8 BITMAP 0000 0180 0180 0180 0180 0180 0180 7e7e 7e7e 0180 0180 0180 0180 0180 0180 ENDCHAR STARTCHAR xhair_m ENCODING 23 SWIDTH 96 0 DWIDTH 16 0 BBX 16 16 -8 -9 BITMAP 03c0 0240 0240 0240 0240 0240 fe7f 8001 8001 fe7f 0240 0240 0240 0240 0240 03c0 ENDCHAR STARTCHAR xcurs ENCODING 24 SWIDTH 96 0 DWIDTH 16 0 BBX 16 15 -8 -7 BITMAP 0000 0000 600c 701c 3838 1c70 0ee0 07c0 0280 07c0 0ee0 1c70 3838 701c 600c ENDCHAR STARTCHAR xcurs_m ENCODING 25 SWIDTH 96 0 DWIDTH 16 0 BBX 16 16 -8 -8 BITMAP 0000 600c 9012 8822 4444 2288 1110 0820 0440 0820 1110 2288 4444 8822 9012 600c ENDCHAR STARTCHAR hourg ENCODING 26 SWIDTH 96 0 DWIDTH 16 0 BBX 16 16 -8 -8 BITMAP 7ffe 4002 200c 1a38 0ff0 07e0 03c0 0180 0180 0240 0520 0810 1108 23c4 47e2 7ffe ENDCHAR STARTCHAR hourg_m ENCODING 27 SWIDTH 96 0 DWIDTH 16 0 BBX 16 15 -8 -7 BITMAP 0000 3ffc 1ff0 05c0 0000 0000 0000 0000 0000 0180 02c0 07e0 0ef0 1c38 381c ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/misc/olgl12.bdf100644 1750 1750 115701 5413747512 15073 0ustar mbmbSTARTFONT 2.1 COMMENT COMMENT Copyright 1989 by Sun Microsystems, Inc. Mountain View, CA. COMMENT COMMENT Permission to use, copy, modify, and distribute this software and COMMENT its documentation for any purpose and without fee is hereby granted, COMMENT provided that the above copyright notices appear in all copies and COMMENT that both those copyright notices and this permission notice appear COMMENT in supporting documentation, and that the name of Sun Microsystems COMMENT not be used in advertising or publicity pertaining to distribution COMMENT of the software without specific, written prior permission. Sun COMMENT Microsystems make no representations about the suitability of this COMMENT software for any purpose. It is provided "as is" without express or COMMENT implied warranty. COMMENT COMMENT SUN MICROSYSTEMS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS COMMENT SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND COMMENT FITNESS, IN NO EVENT SHALL SUN MICROSYSTEMS BE LIABLE FOR ANY COMMENT SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER COMMENT RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF COMMENT CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN COMMENT CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. COMMENT COMMENT ** Open Look Glyph Font, 12-pt ** FONT -Sun-OPEN LOOK glyph-----12-120-75-75-P-113-SunOLglyph-1 SIZE 12 72 72 FONTBOUNDINGBOX 47 47 0 -47 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FAMILY_NAME "OPEN LOOK glyph" FOUNDRY "Sun" WEIGHT_NAME "" SETWIDTH_NAME "" SLANT "" ADD_STYLE_NAME "" PIXEL_SIZE 12 POINT_SIZE 120 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 113 CHARSET_REGISTRY "SunOLglyph" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FULL_NAME "OLGlyph" DEFAULT_CHAR 0 FONT_DESCENT 47 FONT_ASCENT 0 ENDPROPERTIES CHARS 234 STARTCHAR vert-scrollbar-outli ENCODING 1 SWIDTH 96 0 DWIDTH 15 0 BBX 15 47 0 -47 BITMAP 7ffc 8006 8006 8006 8006 8306 8786 8fc6 9fe6 9fe6 8006 8006 8006 8006 8006 fffe 8006 8006 8006 8006 8006 8006 8006 8006 8006 8006 8006 8006 8006 8006 fffe 8006 8006 8006 8006 8006 9fe6 9fe6 8fc6 8786 8306 8006 8006 8006 8006 fffe 7ffc ENDCHAR STARTCHAR vert-scrollbar-backw ENCODING 2 SWIDTH 42 0 DWIDTH 15 0 BBX 15 47 0 -47 BITMAP 7ffc fffe fffe fffe fffe fffe fcfe f87e f03e e01e e01e fffe fffe fffe fffe fffe 8006 8006 8006 8006 8006 8006 8006 8006 8006 8006 8006 8006 8006 8006 fffe 8006 8006 8006 8006 8006 9fe6 9fe6 8fc6 8786 8306 8006 8006 8006 8006 fffe 7ffc ENDCHAR STARTCHAR vert-scrollbar-abs ENCODING 3 SWIDTH 42 0 DWIDTH 15 0 BBX 15 47 0 -47 BITMAP 7ffc 8006 8006 8006 8006 8306 8786 8fc6 9fe6 9fe6 8006 8006 8006 8006 8006 fffe fffe fffe fffe fffe fffe fffe fffe fffe fffe fffe fffe fffe fffe fffe fffe 8006 8006 8006 8006 8006 9fe6 9fe6 8fc6 8786 8306 8006 8006 8006 8006 fffe 7ffc ENDCHAR STARTCHAR vert-scrollbar-forwa ENCODING 4 SWIDTH 42 0 DWIDTH 15 0 BBX 15 47 0 -47 BITMAP 7ffc 8006 8006 8006 8006 8306 8786 8fc6 9fe6 9fe6 8006 8006 8006 8006 8006 fffe 8006 8006 8006 8006 8006 8006 8006 8006 8006 8006 8006 8006 8006 8006 fffe fffe fffe fffe fffe fffe e01e e01e f03e f87e fcfe fffe fffe fffe fffe fffe 7ffc ENDCHAR STARTCHAR abbr-vert-sb-outl ENCODING 5 SWIDTH 42 0 DWIDTH 15 0 BBX 15 32 0 -32 BITMAP 7ffc 8006 8006 8006 8006 8306 8786 8fc6 9fe6 9fe6 8006 8006 8006 8006 8006 fffe 8006 8006 8006 8006 8006 9fe6 9fe6 8fc6 8786 8306 8006 8006 8006 8006 fffe 7ffc ENDCHAR STARTCHAR abbr-vert-sb-back ENCODING 6 SWIDTH 42 0 DWIDTH 15 0 BBX 15 32 0 -32 BITMAP 7ffc fffe fffe fffe fffe fcfe f87e f03e e01e e01e fffe fffe fffe fffe fffe fffe 8006 8006 8006 8006 8006 9fe6 9fe6 8fc6 8786 8306 8006 8006 8006 8006 fffe 7ffc ENDCHAR STARTCHAR abbr-vert-sb-forw ENCODING 7 SWIDTH 42 0 DWIDTH 15 0 BBX 15 32 0 -32 BITMAP 7ffc 8006 8006 8006 8006 8306 8786 8fc6 9fe6 9fe6 8006 8006 8006 8006 8006 fffe fffe fffe fffe fffe fffe e01e e01e f03e f87e fcfe fffe fffe fffe fffe fffe 7ffc ENDCHAR STARTCHAR vert-scroll-anchor ENCODING 8 SWIDTH 42 0 DWIDTH 15 0 BBX 15 6 0 -6 BITMAP fffe 8002 8002 8002 8002 fffe ENDCHAR STARTCHAR vert-scroll-anchor-i ENCODING 9 SWIDTH 42 0 DWIDTH 15 0 BBX 15 6 0 -6 BITMAP fffe fffe fffe fffe fffe fffe ENDCHAR STARTCHAR horiz-scroll-bar-ele ENCODING 10 SWIDTH 42 0 DWIDTH 47 0 BBX 47 15 0 -15 BITMAP 7ffffffffffc 800100020006 800100020007 80c100020c06 81c100020e06 83c100020f06 87c100020f86 87c100020f86 83c100020f06 81c100020e06 80c100020c06 800100020006 800100020006 fffffffffffe 7ffffffffffd ENDCHAR STARTCHAR horiz-scroll-bar-ele ENCODING 11 SWIDTH 42 0 DWIDTH 47 0 BBX 47 15 0 -15 BITMAP 7ffffffffffc ffff00020006 ffff00020007 ff3f00020c06 fe3f00020e06 fc3f00020f06 f83f00020f86 f83f00020f86 fc3f00020f06 fe3f00020e06 ff3f00020c06 ffff00020006 ffff00020006 fffffffffffe 7ffffffffffd ENDCHAR STARTCHAR horiz-scroll-bar-ele ENCODING 12 SWIDTH 42 0 DWIDTH 47 0 BBX 47 15 0 -15 BITMAP 7ffffffffffc 8001fffe0006 8001fffe0007 80c1fffe0c06 81c1fffe0e06 83c1fffe0f06 87c1fffe0f86 87c1fffe0f86 83c1fffe0f06 81c1fffe0e06 80c1fffe0c06 8001fffe0006 8001fffe0006 fffffffffffe 7ffffffffffd ENDCHAR STARTCHAR horiz-scroll-bar-ele ENCODING 13 SWIDTH 42 0 DWIDTH 47 0 BBX 47 15 0 -15 BITMAP 7ffffffffffc 80010003fffe 80010003ffff 80c10003f3fe 81c10003f1fe 83c10003f0fe 87c10003f07e 87c10003f07e 83c10003f0fe 81c10003f1fe 80c10003f3fe 80010003fffe 80010003fffe fffffffffffe 7ffffffffffd ENDCHAR STARTCHAR abbrev-horiz-elevato ENCODING 14 SWIDTH 42 0 DWIDTH 32 0 BBX 32 15 0 -15 BITMAP 7ffffffe 80010003 80010003 80c10603 81c10703 83c10783 87c107c3 87c107c3 83c10783 81c10703 80c10603 80010003 80010003 ffffffff 7ffffffe ENDCHAR STARTCHAR abbrev-horiz-elevato ENCODING 15 SWIDTH 42 0 DWIDTH 32 0 BBX 32 15 0 -15 BITMAP 7ffffffe ffff0003 ffff0003 ff3f0603 fe3f0703 fc3f0783 f83f07c3 f83f07c3 fc3f0783 fe3f0703 ff3f0603 ffff0003 ffff0003 ffffffff 7ffffffe ENDCHAR STARTCHAR abbrev-horiz-elevato ENCODING 16 SWIDTH 42 0 DWIDTH 32 0 BBX 32 15 0 -15 BITMAP 7ffffffe 8001ffff 8001ffff 80c1f9ff 81c1f8ff 83c1f87f 87c1f83f 87c1f83f 83c1f87f 81c1f8ff 80c1f9ff 8001ffff 8001ffff ffffffff 7ffffffe ENDCHAR STARTCHAR horiz_sb_anchor ENCODING 17 SWIDTH 42 0 DWIDTH 6 0 BBX 6 15 0 -15 BITMAP fc 84 84 84 84 84 84 84 84 84 84 84 84 84 fc ENDCHAR STARTCHAR /**/##################################################################### /**/# Imakefile for OPEN LOOK glyph fonts. /**/# @(#)Imakefile 1.9 28 Jun 1993 SMI SRCS = \ olcursor.bdf olgl10.bdf olgl12.bdf olgl14.bdf olgl19.bdf OBJS = \ FontObj(olcursor) FontObj(olgl10) FontObj(olgl12) FontObj(olgl14) \ FontObj(olgl19) ALLFILES = $(SRCS) fonts.alias Copyright.ps MakeFonts() FontTarget(olcursor) FontTarget(olgl10) FontTarget(olgl12) FontTarget(olgl14) FontTarget(olgl19) /**/##################################################################### /**/# In order to install these fonts, InstallOpenLookFonts must be /**/# YES in either your site.def or XView.cf file. InstallFonts($(OPENLOOK_FONTINSTDIR)/olmisc) InstallFontAliases($(OPENLOOK_FONTINSTDIR)/olmisc) PopulateSCCSTree(h,$(ALLFILES)) depend:: clean:: xview-3.2p1.4/fonts/bdf/misc/olgl10.bdf100644 1750 1750 110621 5413747513 15066 0ustar mbmbSTARTFONT 2.1 COMMENT COMMENT Copyright 1989 by Sun Microsystems, Inc. Mountain View, CA. COMMENT COMMENT Permission to use, copy, modify, and distribute this software and COMMENT its documentation for any purpose and without fee is hereby granted, COMMENT provided that the above copyright notices appear in all copies and COMMENT that both those copyright notices and this permission notice appear COMMENT in supporting documentation, and that the name of Sun Microsystems COMMENT not be used in advertising or publicity pertaining to distribution COMMENT of the software without specific, written prior permission. Sun COMMENT Microsystems make no representations about the suitability of this COMMENT software for any purpose. It is provided "as is" without express or COMMENT implied warranty. COMMENT COMMENT SUN MICROSYSTEMS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS COMMENT SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND COMMENT FITNESS, IN NO EVENT SHALL SUN MICROSYSTEMS BE LIABLE FOR ANY COMMENT SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER COMMENT RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF COMMENT CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN COMMENT CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. COMMENT COMMENT ** Open Look Glyph Font, 10-pt ** FONT -Sun-OPEN LOOK glyph-----10-100-75-75-P-101-SunOLglyph-1 SIZE 10 78 78 FONTBOUNDINGBOX 41 41 0 -41 STARTPROPERTIES 18 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FAMILY_NAME "OPEN LOOK glyph" FOUNDRY "Sun" WEIGHT_NAME "" SETWIDTH_NAME "" SLANT "" ADD_STYLE_NAME "" PIXEL_SIZE 10 POINT_SIZE 100 RESOLUTION_X 75 RESOLUTION_Y 75 SPACING "P" AVERAGE_WIDTH 101 CHARSET_REGISTRY "SunOLglyph" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FULL_NAME "OLGlyph" FONT_DESCENT 41 FONT_ASCENT 0 ENDPROPERTIES CHARS 234 STARTCHAR VerticalScrollbarEle ENCODING 1 SWIDTH 96 0 DWIDTH 13 0 BBX 13 41 0 -41 BITMAP 7ff0 8018 8018 8018 8018 8618 8f18 9f98 9f98 8018 8018 8018 8018 fff8 8018 8018 8018 8018 8018 8018 8018 8018 8018 8018 8018 8018 fff8 8018 8018 8018 8018 9f98 9f98 8f18 8618 8018 8018 8018 8018 fff8 7ff0 ENDCHAR STARTCHAR VerticalScrollbarEle ENCODING 2 SWIDTH 96 0 DWIDTH 13 0 BBX 13 41 0 -41 BITMAP 7ff0 fff8 fff8 fff8 fff8 f9f8 f0f8 e078 e078 fff8 fff8 fff8 fff8 fff8 8018 8018 8018 8018 8018 8018 8018 8018 8018 8018 8018 8018 fff8 8018 8018 8018 8018 9f98 9f98 8f18 8618 8018 8018 8018 8018 fff8 7ff0 ENDCHAR STARTCHAR VerticalScrollbarEle ENCODING 3 SWIDTH 96 0 DWIDTH 13 0 BBX 13 41 0 -41 BITMAP 7ff0 8018 8018 8018 8018 8618 8f18 9f98 9f98 8018 8018 8018 8018 fff8 fff8 fff8 fff8 fff8 fff8 fff8 fff8 fff8 fff8 fff8 fff8 fff8 fff8 8018 8018 8018 8018 9f98 9f98 8f18 8618 8018 8018 8018 8018 fff8 7ff0 ENDCHAR STARTCHAR VerticalScrollbarEle ENCODING 4 SWIDTH 96 0 DWIDTH 13 0 BBX 13 41 0 -41 BITMAP 7ff0 8018 8018 8018 8018 8618 8f18 9f98 9f98 8018 8018 8018 8018 fff8 8018 8018 8018 8018 8018 8018 8018 8018 8018 8018 8018 8018 fff8 fff8 fff8 fff8 fff8 e078 e078 f0f8 f9f8 fff8 fff8 fff8 fff8 fff8 7ff0 ENDCHAR STARTCHAR VerticalScrollbarRed ENCODING 5 SWIDTH 96 0 DWIDTH 13 0 BBX 13 28 0 -28 BITMAP 7ff0 8018 8018 8018 8018 8618 8f18 9f98 9f98 8018 8018 8018 8018 fff8 8018 8018 8018 8018 9f98 9f98 8f18 8618 8018 8018 8018 8018 fff8 7ff0 ENDCHAR STARTCHAR VerticalScrollbarRed ENCODING 6 SWIDTH 96 0 DWIDTH 13 0 BBX 13 28 0 -28 BITMAP 7ff0 fff8 fff8 fff8 fff8 f9f8 f0f8 e078 e078 fff8 fff8 fff8 fff8 fff8 8018 8018 8018 8018 9f98 9f98 8f18 8618 8018 8018 8018 8018 fff8 7ff0 ENDCHAR STARTCHAR VerticalScrollbarRed ENCODING 7 SWIDTH 96 0 DWIDTH 13 0 BBX 13 28 0 -28 BITMAP 7ff0 8018 8018 8018 8018 8618 8f18 9f98 9f98 8018 8018 8018 8018 fff8 fff8 fff8 fff8 fff8 e078 e078 f0f8 f9f8 fff8 fff8 fff8 fff8 fff8 7ff0 ENDCHAR STARTCHAR VerticalScrollbarAnc ENCODING 8 SWIDTH 96 0 DWIDTH 13 0 BBX 13 5 0 -5 BITMAP fff8 8008 8008 8008 fff8 ENDCHAR STARTCHAR VerticalScrollbarAnc ENCODING 9 SWIDTH 96 0 DWIDTH 13 0 BBX 13 5 0 -5 BITMAP fff8 fff8 fff8 fff8 fff8 ENDCHAR STARTCHAR HorizontalScrollbarE ENCODING 10 SWIDTH 96 0 DWIDTH 41 0 BBX 41 13 0 -13 BITMAP 7fffffffff00 800400200180 800400200180 818400218180 83840021c180 87840021e180 87840021e180 83840021c180 818400218180 800400200180 800400200180 ffffffffff80 7fffffffff00 ENDCHAR STARTCHAR HorizontalScrollbarE ENCODING 11 SWIDTH 96 0 DWIDTH 41 0 BBX 41 13 0 -13 BITMAP 7fffffffff00 fffc00200180 fffc00200180 fe7c00218180 fc7c0021c180 f87c0021e180 f87c0021e180 fc7c0021c180 fe7c00218180 fffc00200180 fffc00200180 ffffffffff80 7fffffffff00 ENDCHAR STARTCHAR HorizontalScrollbarE ENCODING 12 SWIDTH 96 0 DWIDTH 41 0 BBX 41 13 0 -13 BITMAP 7fffffffff00 8007ffe00180 8007ffe00180 8187ffe18180 8387ffe1c180 8787ffe1e180 8787ffe1e180 8387ffe1c180 8187ffe18180 8007ffe00180 8007ffe00180 ffffffffff80 7fffffffff00 ENDCHAR STARTCHAR HorizontalScrollbarE ENCODING 13 SWIDTH 96 0 DWIDTH 41 0 BBX 41 13 0 -13 BITMAP 7fffffffff00 8004003fff80 8004003fff80 8184003e7f80 8384003e3f80 8784003e1f80 8784003e1f80 8384003e3f80 8184003e7f80 8004003fff80 8004003fff80 ffffffffff80 7fffffffff00 ENDCHAR STARTCHAR HorizontalScrollbarR ENCODING 14 SWIDTH 96 0 DWIDTH 28 0 BBX 28 13 0 -13 BITMAP 7fffffe0 80040030 80040030 81843030 83843830 87843c30 87843c30 83843830 81843030 80040030 80040030 fffffff0 7fffffe0 ENDCHAR STARTCHAR HorizontalScrollbarR ENCODING 15 SWIDTH 96 0 DWIDTH 28 0 BBX 28 13 0 -13 BITMAP 7fffffe0 fffc0030 fffc0030 fe7c3030 fc7c3830 f87c3c30 f87c3c30 fc7c3830 fe7c3030 fffc0030 fffc0030 fffffff0 7fffffe0 ENDCHAR STARTCHAR HorizontalScrollbarR ENCODING 16 SWIDTH 96 0 DWIDTH 28 0 BBX 28 13 0 -13 BITMAP 7fffffe0 8007fff0 8007fff0 8187cff0 8387c7f0 8787c3f0 8787c3f0 8387c7f0 8187cff0 8007fff0 8007fff0 fffffff0 7fffffe0 ENDCHAR STARTCHAR HorizontalScrollbarA ENCODING 17 SWIDTH 96 0 DWIDTH 5 0 BBX 5 13 0 -13 BITMAP f8 88 88 88 88 88 88 88 88 88 88 88 f8 ENDCHAR STARTCHAR HorizontalScrollbarA ENCODING 18 SWIDTH 96 0 DWIDTH 5 0 BBX 5 13 0 -13 BITMAP f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 ENDCHAR STARTCHAR pushpin-out-outline2 ENCODING 19 SWIDTH 42 0 DWIDTH 26 0 BBX 26 12 0 -12 BITMAP 00070000 00048180 00048240 0004fe40 00048240 07fc8240 03fc8240 0004fe40 6004ffc0 900783c0 90078180 60070000 ENDCHAR STARTCHAR pushpin-in-outline2d ENCODING 20 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 0 -13 BITMAP 01c0 0e30 3410 4808 4808 8808 8c10 8630 c7f0 41e0 70e0 ffc0 cf00 ENDCHAR STARTCHAR def_pushpin-out ENCODING 21 SWIDTH 42 0 DWIDTH 26 0 BBX 26 15 0 -15 BITMAP 00070000 00048180 00048240 0004fe40 00048240 07fc8240 0004fe40 3c04ffc0 420783c0 99078180 a5070000 a5000000 99000000 42000000 3c000000 ENDCHAR STARTCHAR abbmenubu ENCODING 22 SWIDTH 42 0 DWIDTH 14 0 BBX 14 13 0 -13 BITMAP 7ff0 8008 800c 9fcc 904c 888c 888c 850c 850c 820c 800c 7ffc 3ff8 ENDCHAR STARTCHAR abbmenubu ENCODING 23 SWIDTH 42 0 DWIDTH 14 0 BBX 14 13 0 -13 BITMAP 7ff0 8008 bfec a02c afac b76c b76c baec baec bdec 800c 7ffc 3ff8 ENDCHAR STARTCHAR buttonupleft ENCODING 24 SWIDTH 42 0 DWIDTH 8 0 BBX 8 18 0 -18 BITMAP 03 0c 10 20 40 40 80 80 80 80 80 40 40 20 00 00 00 00 ENDCHAR STARTCHAR buttonlowleft ENCODING 25 SWIDTH 42 0 DWIDTH 8 0 BBX 8 17 0 -17 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 0c 03 ENDCHAR STARTCHAR buttonleftendfill ENCODING 26 SWIDTH 42 0 DWIDTH 8 0 BBX 8 16 0 -16 BITMAP 00 03 0f 1f 3f 3f 7f 7f 7f 7f 7f 3f 3f 1f 0f 03 ENDCHAR STARTCHAR buttonlowright ENCODING 27 SWIDTH 42 0 DWIDTH 8 0 BBX 8 17 0 -17 BITMAP 00 00 00 04 02 02 01 01 01 01 01 02 02 04 08 30 c0 ENDCHAR STARTCHAR buttonlowleft ENCODING 28 SWIDTH 42 0 DWIDTH 5 0 BBX 5 17 0 -17 BITMAP c0 30 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR buttRIRNDFILL ENCODING 29 SWIDTH 42 0 DWIDTH 7 0 BBX 7 16 0 -16 BITMAP 00 c0 f0 f8 fc fc fe fe fe fe fe fc fc f8 f0 c0 ENDCHAR STARTCHAR buttonlowleft ENCODING 30 SWIDTH 42 0 DWIDTH 1 0 BBX 1 17 0 -17 BITMAP 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR buttonlowleft ENCODING 31 SWIDTH 42 0 DWIDTH 2 0 BBX 2 17 0 -17 BITMAP c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR buttonlowleft ENCODING 32 SWIDTH 42 0 DWIDTH 4 0 BBX 4 17 0 -17 BITMAP f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR buttonlowleft ENCODING 33 SWIDTH 42 0 DWIDTH 8 0 BBX 8 17 0 -17 BITMAP ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR buttonlowleft ENCODING 34 SWIDTH 42 0 DWIDTH 16 0 BBX 16 17 0 -17 BITMAP ffff 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ENDCHAR STARTCHAR buttonlowleft ENCODING 35 SWIDTH 42 0 DWIDTH 1 0 BBX 1 17 0 -17 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 ENDCHAR STARTCHAR buttonlowleft ENCODING 36 SWIDTH 42 0 DWIDTH 2 0 BBX 2 17 0 -17 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0 ENDCHAR STARTCHAR buttonlowleft ENCODING 37 SWIDTH 42 0 DWIDTH 4 0 BBX 4 17 0 -17 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0 ENDCHAR STARTCHAR buttonlowleft ENCODING 38 SWIDTH 42 0 DWIDTH 8 0 BBX 8 17 0 -17 BITMAP 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ENDCHAR STARTCHAR buttonlowleft ENCODING 39 SWIDTH 42 0 DWIDTH 16 0 BBX 16 17 0 -17 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ffff ENDCHAR STARTCHAR buttonFILL1 ENCODING 40 SWIDTH 42 0 DWIDTH 1 0 BBX 1 17 0 -17 BITMAP 00 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 00 ENDCHAR STARTCHAR buttonFILL1 ENCODING 41 SWIDTH 42 0 DWIDTH 2 0 BBX 2 17 0 -17 BITMAP 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 00 ENDCHAR STARTCHAR buttonFILL1 ENCODING 42 SWIDTH 42 0 DWIDTH 4 0 BBX 4 17 0 -17 BITMAP 00 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 00 ENDCHAR STARTCHAR buttonFILL1 ENCODING 43 SWIDTH 42 0 DWIDTH 8 0 BBX 8 17 0 -17 BITMAP 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 00 ENDCHAR STARTCHAR buttonFILL1 ENCODING 44 SWIDTH 42 0 DWIDTH 16 0 BBX 16 17 0 -17 BITMAP 0000 ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff 0000 ENDCHAR STARTCHAR VERTMEMA-UL ENCODING 45 SWIDTH 42 0 DWIDTH 0 0 BBX 7 7 0 -7 BITMAP fe 80 40 40 20 20 00 ENDCHAR STARTCHAR VERTMEMA-UL ENCODING 46 SWIDTH 42 0 DWIDTH 0 0 BBX 7 7 0 -7 BITMAP 00 02 04 04 08 08 10 ENDCHAR STARTCHAR VERTMEMA-UL ENCODING 47 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 -7 BITMAP 00 7c 38 38 10 10 00 ENDCHAR STARTCHAR HoriMeMa-UL ENCODING 48 SWIDTH 42 0 DWIDTH 0 0 BBX 7 7 0 -7 BITMAP c0 b0 8c 80 80 80 80 ENDCHAR STARTCHAR HoriMeMaLR ENCODING 49 SWIDTH 42 0 DWIDTH 0 0 BBX 7 7 0 -7 BITMAP 00 00 00 02 0c 30 40 ENDCHAR STARTCHAR HoriMeMa_fill ENCODING 50 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 -7 BITMAP 00 40 70 7c 70 40 00 ENDCHAR STARTCHAR AbbMenuBu-UL ENCODING 51 SWIDTH 42 0 DWIDTH 14 0 BBX 14 12 0 -12 BITMAP 7ff8 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 0000 ENDCHAR STARTCHAR AbbMenuBu-LR ENCODING 52 SWIDTH 42 0 DWIDTH 14 0 BBX 14 12 0 -12 BITMAP 0000 0004 0004 0004 0004 0004 0004 0004 0004 0004 0004 7ff8 ENDCHAR STARTCHAR AbbMenuBu-Fill ENCODING 53 SWIDTH 42 0 DWIDTH 14 0 BBX 14 12 0 -12 BITMAP 0000 7ff8 7ff8 7ff8 7ff8 7ff8 7ff8 7ff8 7ff8 7ff8 7ff8 0000 ENDCHAR STARTCHAR VertScro_UL ENCODING 54 SWIDTH 42 0 DWIDTH 13 0 BBX 13 41 0 -41 BITMAP 7ff0 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 ffe0 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 0000 ENDCHAR STARTCHAR VertSc-LR ENCODING 55 SWIDTH 42 0 DWIDTH 12 0 BBX 12 40 0 -40 BITMAP 0000 0010 0010 0010 0010 0610 0f10 1f90 1f90 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 7ff0 0010 0010 0010 0010 1f90 1f90 0f10 0610 0010 0010 0010 0010 7ff0 ENDCHAR STARTCHAR Vert-sb-top-fill ENCODING 56 SWIDTH 42 0 DWIDTH 13 0 BBX 13 12 0 -12 BITMAP 8008 7fe0 7fe0 7fe0 7fe0 79e0 70e0 6060 6060 7fe0 7fe0 7fe0 ENDCHAR STARTCHAR HoriSb-UL ENCODING 57 SWIDTH 42 0 DWIDTH 40 0 BBX 40 12 0 -12 BITMAP ffffffffff 8004000000 8004000000 8004000000 8004000000 8004000000 8004000000 8004000000 8004000000 8004000000 8004000000 8000000000 ENDCHAR STARTCHAR HorizSc-LR ENCODING 58 SWIDTH 42 0 DWIDTH 40 0 BBX 40 12 0 -12 BITMAP 0000000000 0000002001 0000002001 0300002181 07000021c1 0f000021e1 0f000021e1 07000021c1 0300002181 0000002001 0000002001 7fffffffff ENDCHAR STARTCHAR Vert-sb-bot-fill ENCODING 59 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 -13 BITMAP 0000 7fe0 7fe0 7fe0 7fe0 6060 6060 70e0 79e0 7fe0 7fe0 7fe0 7fe0 ENDCHAR STARTCHAR HoriSlidContr-UL ENCODING 60 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 -13 BITMAP 7f80 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 0000 ENDCHAR STARTCHAR HoriSlidContr-LR ENCODING 61 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 -13 BITMAP 0000 0040 0040 0040 0040 0040 0040 0040 0040 0040 0040 0040 7f80 ENDCHAR STARTCHAR HoriSlidContr-Fill ENCODING 62 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 -13 BITMAP 8040 7f80 7f80 7f80 7f80 7f80 7f80 7f80 7f80 7f80 7f80 7f80 8040 ENDCHAR STARTCHAR HorSlider-UL ENCODING 63 SWIDTH 42 0 DWIDTH 3 0 BBX 3 4 0 -4 BITMAP 60 80 80 00 ENDCHAR STARTCHAR HorSliderLL ENCODING 64 SWIDTH 42 0 DWIDTH 3 0 BBX 3 4 0 -4 BITMAP 00 00 00 60 ENDCHAR STARTCHAR HorizSliderUR ENCODING 65 SWIDTH 42 0 DWIDTH 3 0 BBX 3 4 0 -4 BITMAP c0 00 00 00 ENDCHAR STARTCHAR HorSlider-LR ENCODING 66 SWIDTH 42 0 DWIDTH 3 0 BBX 3 4 0 -4 BITMAP 00 20 20 c0 ENDCHAR STARTCHAR HorSliderBot-1 ENCODING 67 SWIDTH 42 0 DWIDTH 1 0 BBX 1 4 0 -4 BITMAP 00 00 00 80 ENDCHAR STARTCHAR HorSliderBot-2 ENCODING 68 SWIDTH 42 0 DWIDTH 2 0 BBX 2 4 0 -4 BITMAP 00 00 00 c0 ENDCHAR STARTCHAR HorSliderBot-4 ENCODING 69 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 0 -4 BITMAP 00 00 00 f0 ENDCHAR STARTCHAR HorSliderBot-8 ENCODING 70 SWIDTH 42 0 DWIDTH 8 0 BBX 8 4 0 -4 BITMAP 00 00 00 ff ENDCHAR STARTCHAR HorSliderBot-16 ENCODING 71 SWIDTH 42 0 DWIDTH 16 0 BBX 16 4 0 -4 BITMAP 0000 0000 0000 ffff ENDCHAR STARTCHAR HorSliderFill-1 ENCODING 72 SWIDTH 42 0 DWIDTH 1 0 BBX 1 4 0 -4 BITMAP 00 80 80 00 ENDCHAR STARTCHAR HorSliderFill-2 ENCODING 73 SWIDTH 42 0 DWIDTH 2 0 BBX 2 4 0 -4 BITMAP 00 c0 c0 00 ENDCHAR STARTCHAR HorSliderFill-4 ENCODING 74 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 0 -4 BITMAP 00 f0 f0 00 ENDCHAR STARTCHAR HorSliderFill-8 ENCODING 75 SWIDTH 42 0 DWIDTH 8 0 BBX 8 4 0 -4 BITMAP 00 ff ff 00 ENDCHAR STARTCHAR HorSliderFill-16 ENCODING 76 SWIDTH 42 0 DWIDTH 16 0 BBX 16 4 0 -4 BITMAP 0000 ffff ffff 0000 ENDCHAR STARTCHAR HorSlidLeftEndCapfil ENCODING 77 SWIDTH 42 0 DWIDTH 3 0 BBX 3 4 0 -4 BITMAP 00 60 60 00 ENDCHAR STARTCHAR HorSlidRightEndcapFi ENCODING 78 SWIDTH 42 0 DWIDTH 2 0 BBX 3 3 0 -3 BITMAP 00 c0 c0 ENDCHAR STARTCHAR VertSlider-TL ENCODING 79 SWIDTH 42 0 DWIDTH 4 0 BBX 4 3 0 -3 BITMAP 60 80 80 ENDCHAR STARTCHAR VertSlider-TR ENCODING 80 SWIDTH 42 0 DWIDTH 4 0 BBX 4 3 0 -3 BITMAP 00 10 10 ENDCHAR STARTCHAR VertSlider-Tfill ENCODING 81 SWIDTH 42 0 DWIDTH 3 0 BBX 3 3 0 -3 BITMAP 00 60 60 ENDCHAR STARTCHAR VertSlider-LL ENCODING 82 SWIDTH 42 0 DWIDTH 4 0 BBX 4 3 0 -3 BITMAP 80 80 00 ENDCHAR STARTCHAR VertSlider-LR ENCODING 83 SWIDTH 42 0 DWIDTH 4 0 BBX 4 3 0 -3 BITMAP 10 10 60 ENDCHAR STARTCHAR VertSlider-BotFill ENCODING 84 SWIDTH 42 0 DWIDTH 4 0 BBX 4 3 0 -3 BITMAP 60 60 00 ENDCHAR STARTCHAR VertSliderContr-TL ENCODING 85 SWIDTH 42 0 DWIDTH 13 0 BBX 13 10 0 -10 BITMAP 7ff0 8000 8000 8000 8000 8000 8000 8000 8000 0000 ENDCHAR STARTCHAR VertSliderContr-TL ENCODING 86 SWIDTH 42 0 DWIDTH 13 0 BBX 13 10 0 -10 BITMAP 0000 0008 0008 0008 0008 0008 0008 0008 0008 7ff0 ENDCHAR STARTCHAR VertSliderContrFill ENCODING 87 SWIDTH 42 0 DWIDTH 13 0 BBX 13 10 0 -10 BITMAP 8008 7ff0 7ff0 7ff0 7ff0 7ff0 7ff0 7ff0 7ff0 8008 ENDCHAR STARTCHAR ULREsizeUL ENCODING 88 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 -10 BITMAP ffc0 8000 8000 8000 8000 8000 8000 8000 8000 8000 ENDCHAR STARTCHAR ULREsizeLR ENCODING 89 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 -10 BITMAP 0000 0040 0040 0040 0fc0 0800 0800 0800 0800 7800 ENDCHAR STARTCHAR ULREsizeFill ENCODING 90 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 -10 BITMAP 0000 7f80 7f80 7f80 7000 7000 7000 7000 7000 0000 ENDCHAR STARTCHAR URresizeUL ENCODING 91 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 -10 BITMAP ffc0 8000 8000 8000 8000 0400 0400 0400 0400 0400 ENDCHAR STARTCHAR URresizeLR ENCODING 92 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 -10 BITMAP 0000 0040 0040 0040 7c40 0040 0040 0040 0040 03c0 ENDCHAR STARTCHAR URresizeFill ENCODING 93 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 -10 BITMAP 0000 7f80 7f80 7f80 0380 0380 0380 0380 0380 0000 ENDCHAR STARTCHAR LRresizeUL ENCODING 94 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 -10 BITMAP 07c0 0400 0400 0400 0400 fc00 8000 8000 8000 8000 ENDCHAR STARTCHAR LRresizeLR ENCODING 95 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 -10 BITMAP 0000 0040 0040 0040 0040 0040 0040 0040 0040 7fc0 ENDCHAR STARTCHAR LRresizeUL ENCODING 96 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 -10 BITMAP 0000 0380 0380 0380 0380 0380 7f80 7f80 7f80 0000 ENDCHAR STARTCHAR LLresizeUL ENCODING 97 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 -10 BITMAP f800 8000 8000 8000 8000 8fc0 8000 8000 8000 8000 ENDCHAR STARTCHAR LLresizeLR ENCODING 98 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 -10 BITMAP 0000 0800 0800 0800 0800 0000 0040 0040 0040 7fc0 ENDCHAR STARTCHAR LLresizefill ENCODING 99 SWIDTH 42 0 DWIDTH 10 0 BBX 10 11 0 -11 BITMAP 0000 7000 7000 7000 7000 7000 7f80 7f80 7f80 0000 0000 ENDCHAR STARTCHAR PushPinOutTop ENCODING 100 SWIDTH 42 0 DWIDTH 26 0 BBX 26 12 0 -12 BITMAP 00070000 00040180 00040200 00047e00 00040200 07fc0200 00040200 00040200 00040000 10040000 10040000 60040000 ENDCHAR STARTCHAR PushPinOutBottom ENCODING 101 SWIDTH 42 0 DWIDTH 26 0 BBX 26 12 0 -12 BITMAP 00000000 00008000 00008040 00008040 00008040 00008040 03f88240 0000fe40 6000ffc0 8003c3c0 80038180 00030000 ENDCHAR STARTCHAR PushPinOutFill ENCODING 102 SWIDTH 42 0 DWIDTH 26 0 BBX 26 12 0 -12 BITMAP 00000000 00030000 00030180 00030180 00037d80 00037d80 00037d80 00030180 00030000 60000000 60000000 00000000 ENDCHAR STARTCHAR PushPinInTop ENCODING 103 SWIDTH 96 0 DWIDTH 13 0 BBX 13 13 0 -13 BITMAP 01c0 0e20 3400 4800 4800 8800 8c00 8000 c000 4000 4000 8000 0000 ENDCHAR STARTCHAR PushPinInBottom ENCODING 104 SWIDTH 96 0 DWIDTH 13 0 BBX 13 13 0 -13 BITMAP 0000 0010 0010 0008 0008 0008 0010 0630 07f0 01e0 30e0 7fc0 cf00 ENDCHAR STARTCHAR PushPinInMiddle ENCODING 105 SWIDTH 96 0 DWIDTH 13 0 BBX 13 13 0 -13 BITMAP 0000 01c0 0be0 37f0 37f0 77f0 73e0 79c0 3800 3e00 0f00 0000 0000 ENDCHAR STARTCHAR DefButLeftEndCap ENCODING 106 SWIDTH 96 0 DWIDTH 8 0 BBX 8 16 0 -16 BITMAP 00 00 01 06 08 10 10 20 20 20 10 10 08 06 01 00 ENDCHAR STARTCHAR DefButRightEndcap ENCODING 107 SWIDTH 96 0 DWIDTH 8 0 BBX 8 16 0 -16 BITMAP 00 00 80 60 10 08 08 04 04 04 08 08 10 60 80 00 ENDCHAR STARTCHAR DefButMiddle-1 ENCODING 108 SWIDTH 96 0 DWIDTH 1 0 BBX 1 16 0 -16 BITMAP 00 00 80 00 00 00 00 00 00 00 00 00 00 00 80 00 ENDCHAR STARTCHAR DefButMiddle-2 ENCODING 109 SWIDTH 96 0 DWIDTH 2 0 BBX 2 16 0 -16 BITMAP 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 c0 00 ENDCHAR STARTCHAR DefButMiddle-4 ENCODING 110 SWIDTH 96 0 DWIDTH 4 0 BBX 4 16 0 -16 BITMAP 00 00 f0 00 00 00 00 00 00 00 00 00 00 00 f0 00 ENDCHAR STARTCHAR DefButMiddle-8 ENCODING 111 SWIDTH 96 0 DWIDTH 8 0 BBX 8 16 0 -16 BITMAP 00 00 ff 00 00 00 00 00 00 00 00 00 00 00 ff 00 ENDCHAR STARTCHAR DefButMiddle-16 ENCODING 112 SWIDTH 96 0 DWIDTH 16 0 BBX 16 16 0 -16 BITMAP 0000 0000 ffff 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ffff 0000 ENDCHAR STARTCHAR Baseoff-SpecialChar ENCODING 113 SWIDTH 42 0 DWIDTH 1 0 BBX 1 6 0 -6 BITMAP 80 80 80 80 80 80 ENDCHAR STARTCHAR UncheckedBoxUL ENCODING 114 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 0 -13 BITMAP 0000 ffe0 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 0000 ENDCHAR STARTCHAR UncheckedBoxLR ENCODING 115 SWIDTH 42 0 DWIDTH 13 0 BBX 13 12 0 -12 BITMAP 0000 0000 0020 0020 0020 0020 0020 0020 0020 0020 0020 7fe0 ENDCHAR STARTCHAR UncheckedBoxFill ENCODING 116 SWIDTH 42 0 DWIDTH 13 0 BBX 13 12 0 -12 BITMAP 0000 0000 7fc0 7fc0 7fc0 7fc0 7fc0 7fc0 7fc0 7fc0 7fc0 0000 ENDCHAR STARTCHAR CheckMark ENCODING 117 SWIDTH 42 0 DWIDTH 13 0 BBX 13 12 0 -12 BITMAP 0008 0030 0060 00c0 1180 3b80 7f00 3f00 1e00 0e00 0400 0000 ENDCHAR STARTCHAR CheckedBoxFill ENCODING 118 SWIDTH 42 0 DWIDTH 14 0 BBX 14 12 0 -12 BITMAP 0000 00c0 7f80 7f20 6e60 4440 00c0 40c0 61c0 71c0 7bc0 0000 ENDCHAR STARTCHAR UncheckedBoxOutline ENCODING 119 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 0 -13 BITMAP 0000 ffe0 8020 8020 8020 8020 8020 8020 8020 8020 8020 ffe0 0000 ENDCHAR STARTCHAR HorizGauge-UL ENCODING 120 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 0 -11 BITMAP 10 60 40 80 80 80 80 40 40 00 00 ENDCHAR STARTCHAR HorizGauge-LL ENCODING 121 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 0 -10 BITMAP 00 00 00 00 00 00 00 00 20 10 ENDCHAR STARTCHAR HorizGauge-UR ENCODING 122 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 0 -10 BITMAP 80 40 00 00 00 00 00 00 00 00 ENDCHAR STARTCHAR HorizGauge-LR ENCODING 123 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 0 -11 BITMAP 00 00 20 20 10 10 10 10 20 60 80 ENDCHAR STARTCHAR HorizGauge-Bot-1 ENCODING 124 SWIDTH 42 0 DWIDTH 1 0 BBX 1 10 0 -10 BITMAP 00 00 00 00 00 00 00 00 00 80 ENDCHAR STARTCHAR HorizGauge-Bot-2 ENCODING 125 SWIDTH 42 0 DWIDTH 2 0 BBX 2 10 0 -10 BITMAP 00 00 00 00 00 00 00 00 00 c0 ENDCHAR STARTCHAR HorizGauge-Bot-4 ENCODING 126 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 0 -10 BITMAP 00 00 00 00 00 00 00 00 00 f0 ENDCHAR STARTCHAR HorizGauge-Bot-8 ENCODING 127 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 -10 BITMAP 00 00 00 00 00 00 00 00 00 ff ENDCHAR STARTCHAR HorizGauge-Bot-16 ENCODING 128 SWIDTH 42 0 DWIDTH 16 0 BBX 16 10 0 -10 BITMAP 0000 0000 0000 0000 0000 0000 0000 0000 0000 ffff ENDCHAR STARTCHAR VertGauge-UL ENCODING 129 SWIDTH 42 0 DWIDTH 10 0 BBX 10 4 0 -4 BITMAP 1e00 6000 4000 8000 ENDCHAR STARTCHAR VertGauge-UR ENCODING 130 SWIDTH 42 0 DWIDTH 10 0 BBX 10 4 0 -4 BITMAP 0000 0180 0080 0040 ENDCHAR STARTCHAR VertGauge-LL ENCODING 131 SWIDTH 42 0 DWIDTH 10 0 BBX 10 4 0 -4 BITMAP 8000 4000 6000 0000 ENDCHAR STARTCHAR VertGauge-LR ENCODING 132 SWIDTH 42 0 DWIDTH 10 0 BBX 10 4 0 -4 BITMAP 0040 0080 0180 1e00 ENDCHAR STARTCHAR VertAbbrScrobarUL ENCODING 133 SWIDTH 42 0 DWIDTH 13 0 BBX 13 27 0 -27 BITMAP 7ff0 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 ENDCHAR STARTCHAR VertAbbrScrobarLR ENCODING 134 SWIDTH 42 0 DWIDTH 13 0 BBX 12 27 0 -27 BITMAP 0000 0010 0010 0010 0010 0610 0f10 1f90 1f90 0010 0010 0010 0010 7ff0 0010 0010 0010 0010 1f90 1f90 0f10 0610 0010 0010 0010 0010 7ff0 ENDCHAR STARTCHAR Horiz-sb-rightbox-fi ENCODING 135 SWIDTH 42 0 DWIDTH 28 0 BBX 14 12 0 -12 BITMAP 0000 7ff8 7ff8 79f8 78f8 7878 7878 78f8 79f8 7ff8 7ff8 0000 ENDCHAR STARTCHAR HorizAbbScroBa-UL ENCODING 136 SWIDTH 42 0 DWIDTH 28 0 BBX 28 13 0 -13 BITMAP 7fffffe0 80000000 80000000 80000000 80000000 80000000 80000000 80000000 80000000 80000000 80000000 80000000 00000000 ENDCHAR STARTCHAR HorizAbbScroBa-LR ENCODING 137 SWIDTH 42 0 DWIDTH 28 0 BBX 27 12 0 -12 BITMAP 00000000 00040020 00040020 01843020 03843820 07843c20 07843c20 03843820 01843020 00040020 00040020 7fffffe0 ENDCHAR STARTCHAR Horiz-sb-leftbox-fil ENCODING 138 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 0 -13 BITMAP 8000 7ff8 7ff8 7e78 7c78 7878 7878 7c78 7e78 7ff8 7ff8 0000 8000 ENDCHAR STARTCHAR ButtOutlineLeftEndca ENCODING 139 SWIDTH 42 0 DWIDTH 8 0 BBX 8 18 0 -18 BITMAP 03 0c 10 20 40 40 80 80 80 80 80 40 40 20 10 0c 07 01 ENDCHAR STARTCHAR ButtOutRightEndcap ENCODING 140 SWIDTH 42 0 DWIDTH 9 0 BBX 9 18 0 -18 BITMAP c000 3000 0800 0400 0200 0300 0100 0180 0180 0180 0180 0380 0300 0700 0e00 3c00 f800 e000 ENDCHAR STARTCHAR ButtOutlineMiddle-1 ENCODING 141 SWIDTH 42 0 DWIDTH 1 0 BBX 1 18 0 -18 BITMAP 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 80 ENDCHAR STARTCHAR ButtOutlineMiddle-2 ENCODING 142 SWIDTH 42 0 DWIDTH 2 0 BBX 2 18 0 -18 BITMAP c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0 c0 ENDCHAR STARTCHAR ButtOutlineMiddle-4 ENCODING 143 SWIDTH 42 0 DWIDTH 4 0 BBX 4 18 0 -18 BITMAP f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0 f0 ENDCHAR STARTCHAR ButtOutlineMiddle-8 ENCODING 144 SWIDTH 42 0 DWIDTH 8 0 BBX 8 18 0 -18 BITMAP ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ENDCHAR STARTCHAR ButtOutlineMiddle-16 ENCODING 145 SWIDTH 42 0 DWIDTH 16 0 BBX 16 18 0 -18 BITMAP ffff 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ffff ffff ENDCHAR STARTCHAR ButtOutlineLeftEndca ENCODING 146 SWIDTH 42 0 DWIDTH 8 0 BBX 8 18 0 -18 BITMAP 00 00 01 07 0f 1f 1f 3f 3f 3f 1f 1f 0f 07 01 00 00 00 ENDCHAR STARTCHAR ButtOutlineRightEndC ENCODING 147 SWIDTH 42 0 DWIDTH 8 0 BBX 8 18 0 -18 BITMAP 00 00 80 e0 f0 f8 f8 fc fc fc f8 f8 f0 e0 80 00 00 00 ENDCHAR STARTCHAR ButtOutlineMiddleFil ENCODING 148 SWIDTH 42 0 DWIDTH 1 0 BBX 1 18 0 -18 BITMAP 00 00 80 80 80 80 80 80 80 80 80 80 80 80 80 00 00 00 ENDCHAR STARTCHAR ButtOutlineMiddleFil ENCODING 149 SWIDTH 42 0 DWIDTH 2 0 BBX 2 18 0 -18 BITMAP 00 00 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 c0 00 00 00 ENDCHAR STARTCHAR ButtOutlineMiddleFil ENCODING 150 SWIDTH 42 0 DWIDTH 4 0 BBX 4 18 0 -18 BITMAP 00 00 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 00 00 00 ENDCHAR STARTCHAR ButtOutlineMiddleFil ENCODING 151 SWIDTH 42 0 DWIDTH 8 0 BBX 8 18 0 -18 BITMAP 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 ENDCHAR STARTCHAR ButtOutlineMiddleFil ENCODING 152 SWIDTH 42 0 DWIDTH 16 0 BBX 16 18 0 -18 BITMAP 0000 0000 ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff 0000 0000 0000 ENDCHAR STARTCHAR DefMenuButtonLeftEnd ENCODING 153 SWIDTH 42 0 DWIDTH 8 0 BBX 8 16 0 -16 BITMAP 07 18 20 40 40 80 80 80 80 80 80 40 40 20 18 07 ENDCHAR STARTCHAR DefMenuButtonRightEn ENCODING 154 SWIDTH 42 0 DWIDTH 8 0 BBX 8 16 0 -16 BITMAP e0 18 04 02 02 01 01 01 01 01 01 02 02 04 18 e0 ENDCHAR STARTCHAR MenuDefOutlMiddle-1 ENCODING 155 SWIDTH 42 0 DWIDTH 1 0 BBX 1 16 0 -16 BITMAP 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 ENDCHAR STARTCHAR MenuDefOutlMiddle-2 ENCODING 156 SWIDTH 42 0 DWIDTH 2 0 BBX 2 16 0 -16 BITMAP c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0 ENDCHAR STARTCHAR MenuDefOutlMiddle-4 ENCODING 157 SWIDTH 42 0 DWIDTH 4 0 BBX 4 16 0 -16 BITMAP f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0 ENDCHAR STARTCHAR MenuDefOutlMiddle-8 ENCODING 158 SWIDTH 42 0 DWIDTH 8 0 BBX 8 16 0 -16 BITMAP ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ENDCHAR STARTCHAR MenuDefOutlMiddle-16 ENCODING 159 SWIDTH 42 0 DWIDTH 16 0 BBX 16 16 0 -16 BITMAP ffff 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ffff ENDCHAR STARTCHAR ButtonSpecial-UL ENCODING 160 SWIDTH 96 0 DWIDTH 7 0 BBX 7 7 0 -7 BITMAP 0e 30 40 40 80 80 80 ENDCHAR STARTCHAR ButtonSpecial-LL` ENCODING 161 SWIDTH 96 0 DWIDTH 6 0 BBX 7 7 0 -7 BITMAP 80 80 80 40 40 30 0e ENDCHAR STARTCHAR ResizeOutl-UL ENCODING 162 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 -10 BITMAP ffc0 8040 8040 8040 8fc0 8800 8800 8800 8800 f800 ENDCHAR STARTCHAR ResizeOutl-UR ENCODING 163 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 -10 BITMAP ffc0 8040 8040 8040 fc40 0440 0440 0440 0440 07c0 ENDCHAR STARTCHAR ResizeOutl-LR ENCODING 164 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 -10 BITMAP 07c0 0440 0440 0440 0440 fc40 8040 8040 8040 ffc0 ENDCHAR STARTCHAR ResizeOutl-LL ENCODING 165 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 -10 BITMAP f800 8800 8800 8800 8800 8fc0 8040 8040 8040 ffc0 ENDCHAR STARTCHAR VerticalScrollbarEle ENCODING 166 SWIDTH 96 0 DWIDTH 13 0 BBX 13 41 0 -41 BITMAP 7ff0 8018 8018 8018 8018 8418 8a18 9518 8a18 8018 8018 8018 8018 fff8 8018 8018 8018 8018 8018 8018 8018 8018 8018 8018 8018 8018 fff8 8018 8018 8018 8018 9f98 9f98 8f18 8618 8018 8018 8018 8018 fff8 7ff0 ENDCHAR STARTCHAR VerticalScrollbarEle ENCODING 167 SWIDTH 96 0 DWIDTH 13 0 BBX 13 41 0 -41 BITMAP 7ff0 8018 8018 8018 8018 8618 8f18 9f98 9f98 8018 8018 8018 8018 fff8 8018 8018 8018 8018 8018 8018 8018 8018 8018 8018 8018 8018 fff8 8018 8018 8018 8018 8a18 9518 8a18 8418 8018 8018 8018 8018 fff8 7ff0 ENDCHAR STARTCHAR VerticalScrollbarEle ENCODING 168 SWIDTH 96 0 DWIDTH 13 0 BBX 13 41 0 -41 BITMAP 7ff0 8018 8018 8018 8018 8418 8a18 9518 8a18 8018 8018 8018 8018 fff8 8018 8018 8018 8018 8018 8018 8018 8018 8018 8018 8018 8018 fff8 8018 8018 8018 8018 8a18 9518 8a18 8418 8018 8018 8018 8018 fff8 7ff0 ENDCHAR STARTCHAR HorizontalScrollbarE ENCODING 169 SWIDTH 96 0 DWIDTH 16 0 BBX 41 13 0 -13 BITMAP 7fffffffff00 800400200180 800400200180 800400218180 81040021c180 82840021e180 85040021e180 82840021c180 810400218180 800400200180 800400200180 ffffffffff80 7fffffffff00 ENDCHAR STARTCHAR HorizontalScrollbarE ENCODING 170 SWIDTH 96 0 DWIDTH 16 0 BBX 41 13 0 -13 BITMAP 7fffffffff00 800400200180 800400200180 818400208180 838400214180 87840020a180 878400214180 838400208180 818400200180 800400200180 800400200180 ffffffffff80 7fffffffff00 ENDCHAR STARTCHAR HorizontalScrollbarE ENCODING 171 SWIDTH 96 0 DWIDTH 16 0 BBX 41 13 0 -13 BITMAP 7fffffffff00 800400200180 800400200180 800400208180 810400214180 82840020a180 850400214180 828400208180 810400200180 800400200180 800400200180 ffffffffff80 7fffffffff00 ENDCHAR STARTCHAR HorizSliderControl-O ENCODING 172 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 -13 BITMAP 7f80 80c0 80c0 80c0 80c0 80c0 80c0 80c0 80c0 80c0 80c0 ffc0 7f80 ENDCHAR STARTCHAR HorizSliderLeftEndca ENCODING 173 SWIDTH 42 0 DWIDTH 3 0 BBX 3 4 0 -4 BITMAP 60 80 80 60 ENDCHAR STARTCHAR HorizSliderRightEndc ENCODING 174 SWIDTH 42 0 DWIDTH 3 0 BBX 3 4 0 -4 BITMAP c0 20 20 c0 ENDCHAR STARTCHAR HorizSliderMiddle-1 ENCODING 175 SWIDTH 42 0 DWIDTH 1 0 BBX 1 4 0 -4 BITMAP 80 00 00 80 ENDCHAR STARTCHAR HorizSliderMiddle-2 ENCODING 176 SWIDTH 42 0 DWIDTH 2 0 BBX 2 4 0 -4 BITMAP c0 00 00 c0 ENDCHAR STARTCHAR HorizSliderMiddle-4 ENCODING 177 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 0 -4 BITMAP f0 00 00 f0 ENDCHAR STARTCHAR HorizSliderMiddle-8 ENCODING 178 SWIDTH 42 0 DWIDTH 8 0 BBX 8 4 0 -4 BITMAP ff 00 00 ff ENDCHAR STARTCHAR HorizSliderMiddle-16 ENCODING 179 SWIDTH 42 0 DWIDTH 16 0 BBX 16 4 0 -4 BITMAP ffff 0000 0000 ffff ENDCHAR STARTCHAR VertSliderTopEndCap ENCODING 180 SWIDTH 42 0 DWIDTH 4 0 BBX 4 3 0 -3 BITMAP 60 90 90 ENDCHAR STARTCHAR VertSliderBottomEndC ENCODING 181 SWIDTH 42 0 DWIDTH 4 0 BBX 4 3 0 -3 BITMAP 90 90 60 ENDCHAR STARTCHAR VertSliderControlOut ENCODING 182 SWIDTH 42 0 DWIDTH 13 0 BBX 13 10 0 -10 BITMAP 7ff0 8018 8018 8018 8018 8018 8018 8018 fff8 7ff0 ENDCHAR STARTCHAR PushPinOutDefTop ENCODING 183 SWIDTH 42 0 DWIDTH 26 0 BBX 26 14 0 -14 BITMAP 00070000 00040180 00040200 00047e00 00040200 07fc0200 00040200 00040200 3c040000 40040000 80040000 84040000 84000000 98000000 ENDCHAR STARTCHAR PushPinOutDefBottom ENCODING 184 SWIDTH 42 0 DWIDTH 26 0 BBX 26 16 0 -16 BITMAP 00000000 00008000 00008040 00008040 00008040 00008040 03f88240 0000fe40 0000ffc0 0203c3c0 19038180 21030000 21000000 01000000 02000000 3c000000 ENDCHAR STARTCHAR PushPinOutDefFill ENCODING 185 SWIDTH 42 0 DWIDTH 26 0 BBX 25 13 0 -13 BITMAP 00000000 00030000 00030180 00030180 00037d80 00037d80 00037d80 00030180 00030000 00000000 00000000 18000000 18000000 ENDCHAR STARTCHAR Horiz-LeftEndCapOutl ENCODING 186 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 0 -10 BITMAP 10 60 40 80 80 80 80 40 60 10 ENDCHAR STARTCHAR Horiz-RightendcapOut ENCODING 187 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 0 -10 BITMAP 80 60 20 10 10 10 10 20 60 80 ENDCHAR STARTCHAR HorizgaugeMiddOutl-1 ENCODING 188 SWIDTH 42 0 DWIDTH 1 0 BBX 1 10 0 -10 BITMAP 80 00 00 00 00 00 00 00 00 80 ENDCHAR STARTCHAR HorizgaugeMiddOutl-2 ENCODING 189 SWIDTH 42 0 DWIDTH 2 0 BBX 2 10 0 -10 BITMAP c0 00 00 00 00 00 00 00 00 c0 ENDCHAR STARTCHAR HorizgaugeMiddOutl-4 ENCODING 190 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 0 -10 BITMAP f0 00 00 00 00 00 00 00 00 f0 ENDCHAR STARTCHAR HorizgaugeMiddOutl-8 ENCODING 191 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 -10 BITMAP ff 00 00 00 00 00 00 00 00 ff ENDCHAR STARTCHAR HorizgaugeMiddOutl-1 ENCODING 192 SWIDTH 42 0 DWIDTH 16 0 BBX 16 10 0 -10 BITMAP ffff 0000 0000 0000 0000 0000 0000 0000 0000 ffff ENDCHAR STARTCHAR CheckBoxClean ENCODING 193 SWIDTH 42 0 DWIDTH 13 0 BBX 13 12 0 -12 BITMAP fff8 0018 0018 0018 0018 0018 0018 0018 0018 0018 0018 0018 ENDCHAR STARTCHAR Vertsb-Box-UL ENCODING 194 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 -14 BITMAP fff0 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 ENDCHAR STARTCHAR Vert-Sb-Box-LR ENCODING 195 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 -14 BITMAP 0000 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 7ff0 ENDCHAR STARTCHAR Dimple.UL ENCODING 196 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 -9 BITMAP 00 00 00 00 0e 18 10 18 0c ENDCHAR STARTCHAR Dimple.UL ENCODING 197 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 -9 BITMAP 00 00 00 00 00 03 01 03 06 ENDCHAR STARTCHAR Dimple.UL ENCODING 198 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 -8 BITMAP 00 00 00 00 00 04 0e 04 ENDCHAR STARTCHAR SliderOffset_SpecCha ENCODING 199 SWIDTH 42 0 DWIDTH 4 0 BBX 4 1 0 -1 BITMAP f0 ENDCHAR STARTCHAR HoriSb-box-UL ENCODING 200 SWIDTH 42 0 DWIDTH 14 0 BBX 14 13 0 -13 BITMAP fffc 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 8000 0000 ENDCHAR STARTCHAR HoriSb-UL ENCODING 201 SWIDTH 42 0 DWIDTH 14 0 BBX 14 12 0 -12 BITMAP 0000 0004 0004 0004 0004 0004 0004 0004 0004 0004 0004 7ffc ENDCHAR STARTCHAR VertMenumarkback-ul ENCODING 202 SWIDTH 42 0 DWIDTH 0 0 BBX 7 7 0 -7 BITMAP 10 20 20 40 40 80 80 ENDCHAR STARTCHAR VertMenuMarkback-LR ENCODING 203 SWIDTH 42 0 DWIDTH 0 0 BBX 7 7 0 -7 BITMAP 00 08 08 04 04 02 7e ENDCHAR STARTCHAR Vertmenubackmark-fil ENCODING 204 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 -7 BITMAP 00 10 10 38 38 7c 00 ENDCHAR STARTCHAR HorizMenuMarkback-UL ENCODING 205 SWIDTH 42 0 DWIDTH 0 0 BBX 7 7 0 -7 BITMAP 06 18 60 80 00 00 00 ENDCHAR STARTCHAR HorizMenuMarkback-lr ENCODING 206 SWIDTH 42 0 DWIDTH 0 0 BBX 7 7 0 -7 BITMAP 00 02 02 02 62 1a 06 ENDCHAR STARTCHAR HorizMenuMarkback-fi ENCODING 207 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 -7 BITMAP 00 04 1c 7c 1c 04 00 ENDCHAR STARTCHAR ActiveCaret ENCODING 208 SWIDTH 96 0 DWIDTH 5 0 BBX 5 5 0 -3 BITMAP 20 20 70 70 f8 ENDCHAR STARTCHAR InactiveCaret ENCODING 209 SWIDTH 96 0 DWIDTH 5 0 BBX 5 5 0 -3 BITMAP 20 50 a8 50 20 ENDCHAR STARTCHAR VertGauge-topOutline ENCODING 210 SWIDTH 96 0 DWIDTH 10 0 BBX 10 4 0 -4 BITMAP 1e00 6180 4080 8040 ENDCHAR STARTCHAR VertGauge-BotOutl ENCODING 211 SWIDTH 96 0 DWIDTH 10 0 BBX 10 4 0 -4 BITMAP 8040 4080 6180 1e00 ENDCHAR STARTCHAR ButtonSpec-UR ENCODING 212 SWIDTH 96 0 DWIDTH 7 0 BBX 7 7 0 -7 BITMAP e0 18 04 04 02 02 02 ENDCHAR STARTCHAR ButtonSpec-LR ENCODING 213 SWIDTH 96 0 DWIDTH 7 0 BBX 7 7 0 -7 BITMAP 02 02 02 04 04 18 e0 ENDCHAR STARTCHAR ButtonSpec-2D-LR ENCODING 214 SWIDTH 96 0 DWIDTH 7 0 BBX 8 8 0 -8 BITMAP 03 03 03 06 06 1c f8 e0 ENDCHAR STARTCHAR ButtonSpecialDef-UL ENCODING 215 SWIDTH 96 0 DWIDTH 7 0 BBX 7 7 0 -7 BITMAP 00 00 00 06 08 10 10 ENDCHAR STARTCHAR ButtonSpecialDef-LL ENCODING 216 SWIDTH 96 0 DWIDTH 7 0 BBX 7 4 0 -4 BITMAP 10 10 08 06 ENDCHAR STARTCHAR ButtonSpecDef-UR ENCODING 217 SWIDTH 96 0 DWIDTH 4 0 BBX 4 7 0 -7 BITMAP 00 00 00 c0 20 10 10 ENDCHAR STARTCHAR ButtonSpecDef-LR ENCODING 218 SWIDTH 96 0 DWIDTH 4 0 BBX 4 4 0 -4 BITMAP 10 10 20 c0 ENDCHAR STARTCHAR HorizGaugeLeftEndFil ENCODING 219 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 0 -10 BITMAP 00 10 30 70 70 70 70 30 10 00 ENDCHAR STARTCHAR HorizGaugeMiddleFill ENCODING 220 SWIDTH 42 0 DWIDTH 1 0 BBX 1 10 0 -10 BITMAP 00 80 80 80 80 80 80 80 80 00 ENDCHAR STARTCHAR HorizGaugeMiddleFill ENCODING 221 SWIDTH 42 0 DWIDTH 2 0 BBX 2 10 0 -10 BITMAP 00 c0 c0 c0 c0 c0 c0 c0 c0 00 ENDCHAR STARTCHAR HorizGaugeMiddleFill ENCODING 222 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 0 -10 BITMAP 00 f0 f0 f0 f0 f0 f0 f0 f0 00 ENDCHAR STARTCHAR HorizGaugeMiddleFill ENCODING 223 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 -10 BITMAP 00 ff ff ff ff ff ff ff ff 00 ENDCHAR STARTCHAR HorizGaugeMiddleFill ENCODING 224 SWIDTH 42 0 DWIDTH 16 0 BBX 16 10 0 -10 BITMAP 0000 ffff ffff ffff ffff ffff ffff ffff ffff 0000 ENDCHAR STARTCHAR HorizGaugeRightEndFi ENCODING 225 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 0 -10 BITMAP 00 80 c0 e0 e0 e0 e0 c0 80 00 ENDCHAR STARTCHAR VertGauge-topFill ENCODING 226 SWIDTH 96 0 DWIDTH 10 0 BBX 10 4 0 -4 BITMAP 0000 1e00 3f00 7f80 ENDCHAR STARTCHAR VertGauge-BotFill ENCODING 227 SWIDTH 96 0 DWIDTH 10 0 BBX 10 4 0 -4 BITMAP 7f80 3f00 1e00 0000 ENDCHAR STARTCHAR LeftTextScrollButton ENCODING 228 SWIDTH 96 0 DWIDTH 13 0 BBX 13 13 0 -13 BITMAP 7fe0 8010 8018 8318 8718 8f18 8f18 8718 8318 8018 8018 7ff8 3ff0 ENDCHAR STARTCHAR RightTextScrollButton ENCODING 229 SWIDTH 96 0 DWIDTH 13 0 BBX 13 13 0 -13 BITMAP 7fe0 8010 8018 8c18 8e18 8f18 8f18 8e18 8c18 8018 8018 7ff8 3ff0 ENDCHAR STARTCHAR LeftTextScrollButton-Inv ENCODING 230 SWIDTH 96 0 DWIDTH 13 0 BBX 13 13 0 -13 BITMAP 7fe0 8010 bfd8 bcd8 b8d8 b0d8 b0d8 b8d8 bcd8 bfd8 8018 7ff8 3ff0 ENDCHAR STARTCHAR RightTextScrollButton-Inv ENCODING 231 SWIDTH 96 0 DWIDTH 13 0 BBX 13 13 0 -13 BITMAP 7fe0 8010 bfd8 b3d8 b1d8 b0d8 b0d8 b1d8 b3d8 bfd8 8018 7ff8 3ff0 ENDCHAR STARTCHAR NumericaScrollButton ENCODING 232 SWIDTH 96 0 DWIDTH 24 0 BBX 24 13 0 -13 BITMAP 7ffffc 801002 801003 801003 8613f3 8f13f3 9f91e3 9f90c3 801003 801003 801003 7fffff 3ffffe ENDCHAR STARTCHAR NumericaScrollButton-LeftInv ENCODING 233 SWIDTH 96 0 DWIDTH 24 0 BBX 24 13 0 -13 BITMAP 7ffffc 801002 bfd003 bfd003 b9d3f3 b0d3f3 a051e3 a050c3 bfd003 bfd003 801003 7fffff 3ffffe ENDCHAR STARTCHAR NumericaScrollButton-RightInv ENCODING 234 SWIDTH 96 0 DWIDTH 24 0 BBX 24 13 0 -13 BITMAP 7ffffc 801002 8017fb 8017fb 86140b 8f140b 9f961b 9f973b 8017fb 8017fb 801003 7fffff 3ffffe ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/ 40755 1750 1750 0 6303177047 13215 5ustar mbmbxview-3.2p1.4/fonts/bdf/100dpi/luBIS08.bdf100644 1750 1750 57305 5413747514 15152 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Bold-I-Normal-Sans-11-80-100-100-P-69-ISO8859-1 SIZE 8 100 100 FONTBOUNDINGBOX 22 12 -7 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Bold" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 11 POINT_SIZE 80 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 69 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 10 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 4 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 4 0 BBX 4 8 1 0 BITMAP 30 70 60 60 60 40 00 E0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 6 0 BBX 5 4 2 4 BITMAP D8 D8 D8 D8 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 0 BITMAP 1A 14 7E 28 28 FC 50 B0 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 1 -1 BITMAP 08 18 3E 6A 38 38 1C 1C 9C F8 20 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 10 0 BBX 9 8 1 0 BITMAP 7180 D300 F600 EC00 1B80 3580 6580 C700 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 1 0 BITMAP 1C 36 34 3B EB CA C4 7E ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 3 0 BBX 3 4 1 4 BITMAP 60 E0 40 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 1 -2 BITMAP 10 30 60 60 C0 C0 C0 C0 40 60 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 0 -2 BITMAP 20 30 30 30 30 30 30 60 C0 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 2 4 BITMAP 20 D0 E0 A0 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 08 18 10 FE 10 30 20 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 0 -2 BITMAP 60 E0 40 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 8 0 BBX 7 1 1 3 BITMAP FE ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 4 0 BBX 3 2 1 0 BITMAP E0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 7 0 BBX 8 10 0 -2 BITMAP 03 02 04 0C 08 10 30 20 40 C0 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 0 BITMAP 1C 66 66 C6 C6 CC CC 70 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 8 0 BBX 4 8 3 0 BITMAP F0 70 60 60 60 60 E0 C0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 0 BITMAP 7C 06 06 0C 18 20 60 FC ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 0 BITMAP 7C 06 0E 78 0C 0C 0C F8 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 0 BITMAP 06 0E 14 2C 6C FE 0C 18 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 0 BITMAP 3E 60 40 78 1C 0C 1C F8 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 0 BITMAP 3E 62 60 FC CC CC CC 78 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 8 0 BBX 6 8 2 0 BITMAP FC 0C 18 30 20 60 C0 C0 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 0 BITMAP 3C 66 66 3C 7C C6 CC 78 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 0 BITMAP 3C 66 66 66 7E 0C 8C F8 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 1 0 BITMAP 60 60 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 4 0 BBX 4 8 0 -2 BITMAP 30 70 00 00 60 E0 60 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 02 0E 38 E0 30 1C 04 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 8 0 BBX 7 4 1 1 BITMAP FE 00 00 FE ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 40 70 18 0E 38 E0 80 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 2 0 BITMAP F0 18 18 30 60 C0 00 C0 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 1 0 BITMAP 1E00 2100 5E80 A480 AD00 B600 C000 3800 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 0 0 BITMAP 0E 0E 16 36 26 7F 43 C3 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 0 BITMAP 3E 66 66 6C 7C 6E CC FC ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 1 0 BITMAP 1F 31 60 C0 C0 C0 E0 7E ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 1 0 BITMAP 3F00 7380 6180 6180 6180 6300 E700 FC00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 0 BITMAP 3E 60 60 7C 60 60 C0 FC ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 0 BITMAP 3E 60 60 7C 60 60 C0 C0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 1 0 BITMAP 1F 31 60 C0 C6 C6 E6 7E ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 1 0 BITMAP 3180 7380 6300 7F00 6300 6300 C700 C600 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 4 0 BBX 4 8 1 0 BITMAP 30 70 60 60 60 60 E0 C0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 6 0 BBX 6 10 0 -2 BITMAP 0C 0C 0C 18 18 18 18 18 30 E0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 1 0 BITMAP 33 76 6C 68 7C 6C EE C7 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 70 60 60 60 60 E0 C0 FC ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 10 0 BBX 10 8 1 0 BITMAP 71C0 71C0 7BC0 5B80 5D80 DD80 D980 C180 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 1 0 BITMAP 63 73 73 5A 5A CE CE C6 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 1 0 BITMAP 1E00 3300 6180 C180 C300 C300 E600 7C00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 0 BITMAP 7E 66 66 6C 78 C0 C0 C0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 1 -2 BITMAP 1E00 3300 6180 C180 C380 C300 E600 7C00 0700 0380 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 0 BITMAP 7E 66 66 6C 78 D8 CC CE ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 0 BITMAP 3E 60 70 78 3C 0C 0C F8 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 2 0 BITMAP FF 18 18 30 30 30 30 30 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 1 0 BITMAP 63 63 63 E6 C6 C6 C4 7C ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 2 0 BITMAP C3 C2 E4 64 68 68 70 70 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 11 0 BBX 10 8 2 0 BITMAP CCC0 CC80 DD80 DD00 DF00 EE00 EE00 EE00 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 8 0 BBX 9 8 0 0 BITMAP 3180 3A00 1E00 1C00 1C00 3C00 6600 C600 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 2 0 BITMAP C6 6C 68 70 30 60 60 60 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 1 0 BITMAP 3F 06 0E 1C 38 70 60 FE ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 4 0 BBX 5 10 0 -2 BITMAP 38 30 20 60 60 60 60 40 C0 E0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 6 0 BBX 4 10 2 -2 BITMAP 80 40 40 40 40 20 20 20 20 10 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 4 0 BBX 5 10 0 -2 BITMAP 38 18 10 30 30 30 30 20 60 E0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 1 BITMAP 08 18 18 28 68 4C C4 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 6 0 BBX 5 1 0 -1 BITMAP F8 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 3 0 BBX 3 4 1 4 BITMAP 60 C0 E0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 1 0 BITMAP 3E 6E 4E DC FC EC ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 0 BITMAP 30 70 6E 7E 76 64 EC F8 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP 3C 60 E0 C0 C8 78 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 0 BITMAP 06 06 3E 6C 4C DC FC FC ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 3C 6C CC F0 C4 78 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 5 0 BBX 6 10 1 -2 BITMAP 1C 30 78 60 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 -2 BITMAP 1E 26 6E DC FC 6C 8C F8 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 0 BITMAP 30 70 6E 7E 76 6E EC CC ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 4 0 BBX 4 8 1 0 BITMAP 70 00 60 60 60 60 E0 C0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 4 0 BBX 6 10 0 -2 BITMAP 0C 00 1C 18 18 18 18 38 30 E0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 0 BITMAP 30 60 66 6C 78 78 DC CC ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 4 0 BBX 4 8 1 0 BITMAP 30 70 60 60 60 60 E0 C0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 11 0 BBX 10 6 1 0 BITMAP 6DC0 7DC0 7EC0 ECC0 CD80 CD80 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 1 0 BITMAP 6E 7E 76 6E EC CC ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 1 0 BITMAP 3C 6E C6 CC CC 70 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 -2 BITMAP 7E 7E 76 64 6C F8 C0 C0 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 -2 BITMAP 3E 6E 4C DC FC EC 0C 18 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP 6C 78 60 E0 C0 C0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 3C 60 70 38 98 F8 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 1 0 BITMAP 60 60 F0 60 E0 C0 C0 E0 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 1 0 BITMAP 66 6E EC DC FC EC ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 1 0 BITMAP C6 E4 E8 68 70 60 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 10 0 BBX 9 6 2 0 BITMAP CD80 DD00 DD00 EE00 EE00 CC00 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 6 0 BBX 7 6 0 0 BITMAP 76 3C 38 38 78 CC ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 7 0 BBX 8 8 0 -2 BITMAP 63 66 74 38 38 30 20 E0 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP 7E 0C 18 30 60 FC ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 1 -2 BITMAP 30 60 60 60 E0 C0 60 C0 C0 C0 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 3 0 BBX 3 10 1 -2 BITMAP 20 20 60 40 40 40 40 C0 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 1 -2 BITMAP 30 30 30 60 30 70 60 60 60 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 8 0 BBX 7 3 1 2 BITMAP 62 92 8C ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 4 0 BBX 4 8 0 -2 BITMAP 70 00 20 60 60 60 E0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 8 0 BBX 6 8 2 0 BITMAP 08 3C 64 C0 C0 CC 78 30 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 0 BITMAP 1E 18 30 30 78 30 60 FC ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 8 0 BBX 9 8 0 0 BITMAP 6080 2100 3E00 3600 3600 3400 7A00 8300 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 2 0 BITMAP C6 6C 68 70 F8 F8 60 60 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 3 0 BBX 3 10 1 -2 BITMAP 20 20 60 40 00 00 40 C0 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 -2 BITMAP 3E 30 78 3C 6C 64 78 1C 8C F8 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 3 7 BITMAP F0 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 1 0 BITMAP 3C00 6300 9F00 A080 A080 9D00 6300 3C00 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 6 0 BBX 5 4 2 4 BITMAP 78 D8 F8 F0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 24 28 58 D8 58 68 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 8 0 BBX 7 4 1 1 BITMAP FE 06 04 04 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 3 0 BBX 3 1 1 3 BITMAP E0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 8 0 BBX 6 6 2 2 BITMAP 70 C8 B4 B4 C8 70 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 3 7 BITMAP F0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 3 0 BBX 3 2 3 6 BITMAP E0 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 08 18 7E 10 10 00 FC ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 -6 3 BITMAP 70 10 20 40 E0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 -6 3 BITMAP 70 10 60 10 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 7 0 BBX 3 1 4 7 BITMAP E0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 -2 BITMAP 66 66 6E 6C 7C EC C0 C0 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 8 0 BBX 5 10 2 -2 BITMAP F8 E8 F8 70 70 50 50 50 60 E0 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 8 0 BBX 2 1 3 3 BITMAP C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 2 -2 BITMAP C0 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 5 0 BBX 2 5 -7 3 BITMAP C0 40 C0 80 80 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 6 0 BBX 6 4 1 4 BITMAP 3C CC CC F0 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 58 68 6C 68 50 90 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 10 0 BBX 9 8 4 0 BITMAP C180 4200 C600 8D80 9A80 3380 2780 C100 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 10 0 BBX 9 8 4 0 BITMAP C180 4200 C600 8F80 9880 3100 2200 C700 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 10 0 BBX 10 8 5 0 BITMAP 70C0 1100 6300 16C0 ED40 19C0 13C0 6080 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 -2 BITMAP 18 00 18 30 60 C0 C0 78 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 0E 0E 0E 16 36 26 7F 43 C3 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 03 0E 0E 16 36 26 7F 43 C3 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 07 0E 0E 16 36 26 7F 43 C3 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 0F 0E 0E 16 36 26 7F 43 C3 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 0F 0E 0E 16 36 26 7F 43 C3 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 06 0E 0E 16 36 26 7F 43 C3 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 11 0 BBX 12 8 0 0 BITMAP 03F0 0700 0B00 0BE0 1300 3F00 6600 C7E0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 -2 BITMAP 1F 31 60 C0 C0 C0 E0 7E 20 30 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 1 0 BITMAP 0C 3E 60 60 7C 60 60 C0 FC ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 1 0 BITMAP 08 3E 60 60 7C 60 60 C0 FC ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 1 0 BITMAP 1C 3E 60 60 7C 60 60 C0 FC ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 1 0 BITMAP 3C 3E 60 60 7C 60 60 C0 FC ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 1 0 BITMAP 70 30 70 60 60 60 60 E0 C0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 4 0 BBX 5 9 1 0 BITMAP 38 30 70 60 60 60 60 E0 C0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 4 0 BBX 5 9 1 0 BITMAP 78 30 70 60 60 60 60 E0 C0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 4 0 BBX 5 9 1 0 BITMAP 78 30 70 60 60 60 60 E0 C0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 1 0 BITMAP 3F00 3380 7180 F980 6180 6300 6700 FC00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 1E 63 73 73 5A 5A CE CE C6 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 1 0 BITMAP 0600 1E00 3300 6180 C180 C300 C300 E600 7C00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 1 0 BITMAP 0400 1E00 3300 6180 C180 C300 C300 E600 7C00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 1 0 BITMAP 0E00 1E00 3300 6180 C180 C300 C300 E600 7C00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 1 0 BITMAP 1E00 1E00 3300 6180 C180 C300 C300 E600 7C00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 1 0 BITMAP 1E00 1E00 3300 6180 C180 C300 C300 E600 7C00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 42 66 38 10 38 4C 84 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 9 0 BBX 10 8 1 0 BITMAP 1EC0 3380 6380 C580 CB00 F300 E600 FC00 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 1 0 BITMAP 1C 63 63 63 E6 C6 C6 C4 7C ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 1 0 BITMAP 1C 63 63 63 E6 C6 C6 C4 7C ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 1 0 BITMAP 1E 63 63 63 E6 C6 C6 C4 7C ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 1 0 BITMAP 1E 63 63 63 E6 C6 C6 C4 7C ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 2 0 BITMAP 1C C6 6C 68 70 30 60 60 60 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 0 BITMAP 30 7E 66 66 6C 78 C0 C0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 -2 BITMAP 1C 36 3C 68 6C 66 66 7C C0 C0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 0C 3E 6E 4E DC FC EC ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 08 3E 6E 4E DC FC EC ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 1C 3E 6E 4E DC FC EC ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 1E 3E 6E 4E DC FC EC ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 1E 3E 6E 4E DC FC EC ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 0C 3E 6E 4E DC FC EC ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 11 0 BBX 10 6 1 0 BITMAP 3FC0 6EC0 6CC0 DF00 FC40 E780 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 -2 BITMAP 3C 60 E0 C0 C8 78 40 60 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 0C 3C 6C CC F0 C4 78 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 08 3C 6C CC F0 C4 78 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 1C 3C 6C CC F0 C4 78 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 3C 3C 6C CC F0 C4 78 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 4 0 BBX 4 7 1 0 BITMAP 70 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 4 0 BBX 4 7 1 0 BITMAP 70 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 4 0 BBX 5 7 1 0 BITMAP 78 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 4 0 BBX 5 7 1 0 BITMAP 78 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 1 0 BITMAP 08 0C 78 6C 3C 6E C6 CC CC 70 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 1E 6E 7E 76 6E EC CC ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 0C 3C 6E C6 CC CC 70 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 08 3C 6E C6 CC CC 70 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 1C 3C 6E C6 CC CC 70 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 1E 3C 6E C6 CC CC 70 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 1E 3C 6E C6 CC CC 70 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 18 00 00 FE 00 00 30 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 7 0 BBX 8 6 1 0 BITMAP 3F 6E CE DC EC F0 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 1C 66 6E EC DC FC EC ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 1C 66 6E EC DC FC EC ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 3C 66 6E EC DC FC EC ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 1E 66 6E EC DC FC EC ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 7 0 BBX 8 9 0 -2 BITMAP 0E 63 66 74 38 38 30 20 E0 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 1 -2 BITMAP 30 20 6E 7E 76 64 6C F8 C0 C0 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 7 0 BBX 8 9 0 -2 BITMAP 1E 63 66 74 38 38 30 20 E0 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 -2 BITMAP 1F 33 7E 66 66 66 6E EC C0 C0 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 1 1 3 BITMAP F8 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 2 -2 BITMAP 38 30 30 FC 30 30 60 60 60 60 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 1 0 BITMAP 1C 3F 06 0E 1C 38 70 60 FE ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 6 1 0 BITMAP 3FC0 6EC0 CEC0 CF00 CC40 7780 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 2 0 BITMAP 3C C6 6C 68 70 30 60 60 60 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 1 0 BITMAP 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 5 8 0 0 BITMAP 30 30 38 30 E0 E0 60 60 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 38 30 38 38 F0 E0 60 7E ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 -2 BITMAP 1C 18 18 7E 18 30 FC 30 30 70 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 -2 BITMAP 1C 30 7E 66 6E 6C 6C CC C0 C0 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 1 0 BITMAP 40 60 30 20 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 8 1 0 BITMAP 1FF0 3300 6300 C3E0 C300 C700 E600 7FE0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 1 1 3 BITMAP FFC0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 3 7 BITMAP F0 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 1 3 -2 BITMAP C0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 1 3 7 BITMAP F8 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 1 0 BITMAP 10 20 40 C0 60 20 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 1 4 7 BITMAP C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 3 7 BITMAP F0 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 4 2 2 BITMAP 78 78 F0 F0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 3 7 BITMAP F0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 3 7 BITMAP F0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 4 1 4 BITMAP 6C C8 FC D8 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 2 4 BITMAP C0 C0 C0 C0 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 3C 3C 60 70 38 98 F8 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 1 4 7 BITMAP C0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 4 0 -2 BITMAP 60 E0 40 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 2 -2 BITMAP 1C 30 60 F0 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 4 1 4 BITMAP FEC0 67C0 6E80 6B80 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 9 8 -2 0 BITMAP 0180 0200 0600 0C00 1800 3000 2000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 1 4 7 BITMAP E0 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 14 8 1 0 BITMAP 7180 D300 D600 EC00 1B9C 36AC 26AC C738 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 1 1 0 BITMAP C980 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 4 1 4 BITMAP 6C FC 4C D8 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 1 0 BITMAP 1C 3E 60 70 78 3C 0C 0C F8 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 4 0 -2 BITMAP 6C FC 48 D8 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 0 BITMAP 1C 7E 0C 18 30 60 FC ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/luBIS10.bdf100644 1750 1750 65664 5413747514 15152 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Bold-I-Normal-Sans-14-100-100-100-P-90-ISO8859-1 SIZE 10 100 100 FONTBOUNDINGBOX 28 15 -9 -3 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Bold" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 14 POINT_SIZE 100 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 90 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 13 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 5 0 BBX 5 10 1 0 BITMAP 38 38 30 30 70 60 60 00 00 E0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 7 0 BBX 6 4 2 6 BITMAP CC CC CC CC ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 0 BITMAP 0480 0900 0900 7F80 1200 2400 FF00 4800 4800 9000 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 10 0 BBX 8 14 2 -2 BITMAP 04 0C 1F 3F 24 38 3C 1E 16 16 FE FC 30 30 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 13 0 BBX 12 10 1 0 BITMAP 7030 D840 D880 D900 7200 04E0 09B0 1130 21B0 C0E0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 1 0 BITMAP 0F00 1880 1980 1B00 3E20 6460 C4C0 C280 E380 7FC0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 2 6 BITMAP 70 F0 60 E0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 5 0 BBX 5 13 1 -3 BITMAP 08 18 30 60 60 E0 C0 C0 C0 C0 C0 60 20 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 5 0 BBX 5 13 1 -3 BITMAP 20 30 18 18 18 18 18 38 30 30 60 C0 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 2 5 BITMAP 30 68 D8 D0 50 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 10 0 BBX 8 8 2 0 BITMAP 08 08 08 FF 10 10 10 10 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 -3 BITMAP 70 F0 30 60 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 10 0 BBX 8 1 2 4 BITMAP FF ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 5 0 BBX 3 2 1 0 BITMAP E0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 8 0 BBX 11 13 0 -3 BITMAP 0060 0080 0080 0100 0200 0200 0400 0800 0800 1000 2000 2000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 2 0 BITMAP 1E 32 63 63 E3 C7 C6 C6 4C 78 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 10 0 BBX 5 10 3 0 BITMAP F8 38 30 70 70 70 70 60 E0 E0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 0 BITMAP 3F00 2380 0180 0380 0300 0C00 1800 3000 E000 FF00 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 2 0 BITMAP 3E 03 03 06 3C 06 06 06 8E FC ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 03 07 0E 16 26 66 FF 0C 0C 0C ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 2 0 BITMAP 3F80 2000 2000 7C00 0E00 0700 0700 0700 8600 FC00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 2 0 BITMAP 1F80 3880 7000 7E00 E300 C300 C300 C300 6600 3C00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 3 0 BITMAP FF 02 04 0C 18 30 30 60 E0 C0 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 0 BITMAP 1F00 3180 2180 3B00 1E00 7F00 E300 C100 C300 7C00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 0 BITMAP 1E00 3300 6180 6180 6180 6380 3F00 0700 8E00 F800 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 0 BITMAP 70 70 00 00 00 E0 E0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 5 0 BBX 5 10 0 -3 BITMAP 38 78 00 00 00 70 F0 60 60 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 10 0 BBX 8 8 1 0 BITMAP 01 07 1C 60 E0 30 0C 02 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 10 0 BBX 9 5 1 1 BITMAP 7F80 0000 0000 0000 FF00 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 10 0 BBX 8 8 1 0 BITMAP 40 30 0C 07 06 18 E0 80 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 2 0 BITMAP FC 8E 06 0C 18 70 70 00 00 E0 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 12 0 BBX 9 10 2 0 BITMAP 1E00 2100 4080 9E80 A680 A480 AC80 BF00 4000 3C00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 0 0 BITMAP 0700 0700 0F80 0B80 1380 1180 3F80 61C0 41C0 C1C0 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 1 0 BITMAP 3F00 3180 3180 7100 7200 7F00 6300 6300 E300 FE00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 1 0 BITMAP 0FC0 1840 3000 6000 E000 C000 C000 E000 6180 3F00 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 1 0 BITMAP 3FC0 38E0 7860 7060 7060 70E0 70C0 E1C0 E380 FE00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 1 0 BITMAP 3F80 3000 3000 7000 7E00 7000 6000 6000 E000 FF00 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 1 0 BITMAP 3F80 3000 3000 7000 7E00 6000 6000 6000 E000 E000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 0FC0 1840 3000 6000 E000 C000 C380 E380 6300 3F00 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 1 0 BITMAP 38E0 30E0 70E0 70C0 7FC0 61C0 61C0 E1C0 E180 E380 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 5 0 BBX 5 10 1 0 BITMAP 38 38 30 70 70 70 70 60 E0 E0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 7 0 BBX 8 13 0 -3 BITMAP 07 07 07 06 06 0E 0E 0E 0C 0C 1C 1C F0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 38C0 3900 3200 7600 7400 7E00 7600 6700 E300 E180 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 38 38 30 70 70 70 70 60 E0 FF ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 13 0 BBX 13 10 1 0 BITMAP 3C38 3C78 3C70 6CB0 6CB0 6D70 6F70 6E60 CC60 C0E0 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 1 0 BITMAP 3060 3860 38C0 6CC0 6CC0 66C0 66C0 6380 C380 C180 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 2 0 BITMAP 0F00 31C0 70C0 60C0 E0C0 C0C0 C180 E180 6300 3C00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 1 0 BITMAP 3F00 3180 7180 7180 7300 7E00 6000 E000 E000 E000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 2 -3 BITMAP 0F00 31C0 70C0 60C0 E0C0 C0C0 C1C0 E180 6300 3E00 0780 03C0 00E0 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 0 BITMAP 3F80 3180 7180 7380 7F00 7C00 6600 E600 E600 E300 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 1F 31 70 78 3C 1E 0E 06 86 F8 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 2 0 BITMAP FFC0 1C00 1C00 1C00 1800 1800 1800 3800 3800 3800 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 2 0 BITMAP 70C0 71C0 6180 6180 E180 E180 C380 C300 E300 3E00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 2 0 BITMAP E0C0 E080 E100 6100 7200 7600 7400 7800 7800 3000 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 14 0 BBX 12 10 2 0 BITMAP C610 C630 CE20 CE60 CE40 D6C0 D680 E780 E700 E700 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 10 0 BBX 11 10 0 0 BITMAP 3860 1880 1D00 0F00 0E00 0E00 1E00 3700 2300 C380 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 2 0 BITMAP E180 6200 6600 3400 3800 3800 3800 3000 7000 7000 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 1 0 BITMAP 3FC0 0180 0300 0700 0E00 1C00 3800 3000 6000 FF00 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 5 0 BBX 6 13 1 -3 BITMAP 3C 30 30 30 30 70 60 60 60 60 E0 F0 F0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 8 0 BBX 5 13 2 -3 BITMAP C0 40 40 40 60 20 20 20 30 10 10 10 18 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 5 0 BBX 6 13 0 -3 BITMAP 3C 3C 1C 18 18 18 18 38 30 30 30 30 F0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 10 0 BBX 8 7 1 2 BITMAP 04 0C 1C 12 22 62 C1 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 0 -2 BITMAP FC ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 4 0 BBX 4 4 2 6 BITMAP 70 40 F0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 10 0 BBX 9 7 1 0 BITMAP 1F80 3380 6700 C700 CF00 F700 6700 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 0 BITMAP 3800 3800 3800 7B80 7780 7D80 7980 7300 E600 FC00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 1E 72 60 E0 C0 E4 78 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 0 BITMAP 0380 0380 0300 1F00 3700 6700 CF00 DE00 F600 6E00 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 1 0 BITMAP 1E 33 73 E6 FC E1 7E ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 6 0 BBX 8 13 1 -3 BITMAP 0F 18 38 7E 30 70 70 70 60 60 E0 E0 E0 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 1 -3 BITMAP 0F80 3380 6300 6700 EB00 F300 6700 0600 8600 F800 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 1 0 BITMAP 3800 3800 3800 7380 7780 7B00 7300 7300 E300 E700 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 5 0 BBX 5 10 1 0 BITMAP 38 00 00 70 70 70 70 60 E0 E0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 6 0 BBX 8 13 0 -3 BITMAP 07 00 00 06 06 0E 0C 0C 0C 0C 1C 18 F0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 1 0 BITMAP 3800 3000 3000 7180 7200 7400 7C00 6E00 E600 E700 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 5 0 BBX 5 10 1 0 BITMAP 38 38 30 70 70 70 70 60 E0 E0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 14 0 BBX 13 7 1 0 BITMAP 7738 7F78 6BF8 77B0 6730 E730 E630 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 9 0 BBX 9 7 1 0 BITMAP 7380 7780 7B00 7300 7300 E300 E700 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 2 0 BITMAP 1E 66 67 C6 C6 CC 78 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 -3 BITMAP 3B00 3780 7D80 7980 7300 7600 7C00 E000 E000 E000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 -3 BITMAP 1F80 3380 6700 C700 DF00 F700 6700 0600 0E00 0E00 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 1 0 BITMAP 77 7E 70 70 60 E0 E0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 1E 32 78 3C 1C 8C F8 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 2 0 BITMAP 70 70 F8 60 60 E0 C0 F0 70 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 9 0 BBX 9 7 1 0 BITMAP 7380 6380 6700 6700 6F00 F700 E700 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 9 0 BBX 9 7 1 0 BITMAP E180 E300 6200 7400 7C00 7800 7000 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 12 0 BBX 12 7 2 0 BITMAP C630 C620 CA40 DB40 D380 E380 E300 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 8 0 BBX 9 7 0 0 BITMAP 3980 3A00 1C00 1C00 1C00 2E00 C700 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 9 0 BBX 10 10 0 -3 BITMAP 70C0 7180 3300 3A00 3C00 3C00 3800 1000 3000 E000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 9 0 BBX 9 7 0 0 BITMAP 7F80 0300 0E00 1C00 3000 6000 FF00 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 5 0 BBX 6 13 1 -3 BITMAP 1C 3C 38 38 18 30 C0 70 70 70 E0 F0 60 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 4 0 BBX 4 13 1 -3 BITMAP 10 10 20 20 20 20 60 40 40 40 40 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 5 0 BBX 6 13 0 -3 BITMAP 18 3C 1C 38 38 38 1C 30 60 70 70 F0 E0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 10 0 BBX 9 3 1 2 BITMAP 7080 C980 8700 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 5 0 BBX 5 10 0 -3 BITMAP 38 00 00 30 30 70 60 60 E0 E0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 10 0 BBX 7 10 2 0 BITMAP 04 0E 3E 60 E0 C0 C2 FC 30 30 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 0 BITMAP 0F80 1C80 1C00 1C00 1800 7E00 3800 3800 2000 FF00 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 10 0 BBX 11 10 0 0 BITMAP 2020 2060 1680 1900 1180 3100 1300 3F00 C080 8080 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 2 0 BITMAP E180 6200 3400 3800 FC00 3800 FC00 3000 7000 7000 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 4 0 BBX 4 13 1 -3 BITMAP 10 10 10 20 20 00 00 00 40 40 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 -3 BITMAP 1F80 3880 3800 3E00 1F00 2700 6100 7900 7E00 1F00 0700 8600 FC00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 9 0 BBX 5 1 4 9 BITMAP D8 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 12 0 BBX 9 10 2 0 BITMAP 1C00 6300 9E80 A080 A080 A080 A080 9E80 6300 1C00 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 8 0 BBX 7 5 2 5 BITMAP 3E 4E DC FC FC ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 1 0 BITMAP 11 13 24 EC 6C 66 34 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 10 0 BBX 8 5 2 1 BITMAP FF 03 03 02 02 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 4 0 BBX 3 1 1 4 BITMAP E0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 10 0 BBX 6 7 3 3 BITMAP 38 44 BC BC EC 44 38 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 9 0 BBX 5 1 4 9 BITMAP F8 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 3 0 BBX 1 2 3 8 BITMAP 80 80 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 10 0 BBX 9 8 1 0 BITMAP 0400 0400 0400 7F80 0800 0800 0000 FF00 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 -8 4 BITMAP 78 08 18 20 40 F0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 -8 4 BITMAP 78 08 70 10 18 F0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 9 0 BBX 4 1 5 9 BITMAP F0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 -3 BITMAP 3380 3380 7300 7700 6B00 7F00 7700 E000 E000 E000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 10 0 BBX 6 13 3 -3 BITMAP 7C FC FC E8 68 28 28 28 48 50 50 50 50 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 10 0 BBX 2 1 5 4 BITMAP C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 9 0 BBX 3 3 3 -3 BITMAP 60 20 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 6 0 BBX 3 6 -9 4 BITMAP E0 60 40 40 C0 C0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 8 0 BBX 7 5 2 5 BITMAP 3C 66 C6 CC 78 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 1 0 BITMAP 2C 66 36 37 24 C8 88 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 13 0 BBX 11 10 4 0 BITMAP E060 6080 4100 4200 C660 CCE0 1940 13E0 2040 C0C0 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 13 0 BBX 11 10 4 0 BITMAP E060 6080 4100 4200 C7E0 CC20 1860 1080 2100 C3C0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 13 0 BBX 12 10 5 0 BITMAP 7830 0840 7080 1100 1B30 F670 0CA0 09F0 1020 6060 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 -3 BITMAP 0E 00 00 0C 1C 30 60 C0 E2 7E ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 0 0 BITMAP 0380 0000 0700 0700 0F80 0B80 1380 1180 3F80 61C0 41C0 C1C0 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 0 0 BITMAP 03C0 0000 0700 0700 0F80 0B80 1380 1180 3F80 61C0 41C0 C1C0 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 0 0 BITMAP 07C0 0000 0700 0700 0F80 0B80 1380 1180 3F80 61C0 41C0 C1C0 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 0 0 BITMAP 07C0 0000 0700 0700 0F80 0B80 1380 1180 3F80 61C0 41C0 C1C0 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 0 0 BITMAP 06C0 0000 0700 0700 0F80 0B80 1380 1180 3F80 61C0 41C0 C1C0 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 0 0 BITMAP 0300 0000 0700 0700 0F80 0B80 1380 1180 3F80 61C0 41C0 C1C0 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 14 0 BBX 15 10 0 0 BITMAP 00FE 01C0 02C0 07C0 05F8 09C0 1F80 3180 6380 C3FC ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 1 -3 BITMAP 0FC0 1840 3000 6000 E000 C000 C000 E000 6180 3F00 1000 0800 3800 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 1 0 BITMAP 0E00 0000 3F80 3000 3000 7000 7E00 7000 6000 6000 E000 FF00 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 1 0 BITMAP 0F00 0000 3F80 3000 3000 7000 7E00 7000 6000 6000 E000 FF00 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 1 0 BITMAP 1F00 0000 3F80 3000 3000 7000 7E00 7000 6000 6000 E000 FF00 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 1 0 BITMAP 1B00 0000 3F80 3000 3000 7000 7E00 7000 6000 6000 E000 FF00 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 5 0 BBX 5 12 1 0 BITMAP 38 00 38 38 30 70 70 70 70 60 E0 E0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 5 0 BBX 6 12 1 0 BITMAP 3C 00 38 38 30 70 70 70 70 60 E0 E0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 5 0 BBX 6 12 1 0 BITMAP 7C 00 38 38 30 70 70 70 70 60 E0 E0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 5 0 BBX 6 12 1 0 BITMAP 6C 00 38 38 30 70 70 70 70 60 E0 E0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 1 0 BITMAP 3FC0 38E0 3860 3860 FE60 70E0 70C0 71C0 6380 FE00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 11 0 BBX 11 12 1 0 BITMAP 0F80 0000 3060 3860 38C0 6CC0 6CC0 66C0 66C0 6380 C380 C180 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 2 0 BITMAP 0700 0000 0F00 31C0 70C0 60C0 E0C0 C0C0 C180 E180 6300 3C00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 2 0 BITMAP 0780 0000 0F00 31C0 70C0 60C0 E0C0 C0C0 C180 E180 6300 3C00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 2 0 BITMAP 0F80 0000 0F00 31C0 70C0 60C0 E0C0 C0C0 C180 E180 6300 3C00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 2 0 BITMAP 0F80 0000 0F00 31C0 70C0 60C0 E0C0 C0C0 C180 E180 6300 3C00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 2 0 BITMAP 0D80 0000 0F00 31C0 70C0 60C0 E0C0 C0C0 C180 E180 6300 3C00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 10 0 BBX 9 8 1 0 BITMAP 6080 2180 1600 1C00 1C00 3400 C200 8300 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 12 0 BBX 13 10 3 0 BITMAP 07B8 18E0 38E0 31E0 7360 6660 6CC0 78C0 3180 FE00 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 2 0 BITMAP 0E00 0000 70C0 71C0 6180 6180 E180 E180 C380 C300 E300 3E00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 2 0 BITMAP 0F00 0000 70C0 71C0 6180 6180 E180 E180 C380 C300 E300 3E00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 2 0 BITMAP 1F00 0000 70C0 71C0 6180 6180 E180 E180 C380 C300 E300 3E00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 2 0 BITMAP 1B00 0000 70C0 71C0 6180 6180 E180 E180 C380 C300 E300 3E00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 2 0 BITMAP 1E00 0000 E180 6200 6600 3400 3800 3800 3800 3000 7000 7000 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 1 0 BITMAP 3800 3000 3F00 7180 7180 7180 6300 7C00 E000 E000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 -3 BITMAP 0F00 1B80 3B00 3600 3600 3700 7380 7380 6980 6F00 6000 E000 E000 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 0E00 0000 1F80 3380 6700 C700 CF00 F700 6700 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 0F00 0000 1F80 3380 6700 C700 CF00 F700 6700 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 1F00 0000 1F80 3380 6700 C700 CF00 F700 6700 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 1F00 0000 1F80 3380 6700 C700 CF00 F700 6700 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 1B00 0000 1F80 3380 6700 C700 CF00 F700 6700 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 0600 0000 1F80 3380 6700 C700 CF00 F700 6700 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 14 0 BBX 13 7 1 0 BITMAP 1FF0 3398 6730 CFE0 DB08 F318 63F0 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 -3 BITMAP 1E 72 60 E0 C0 E4 78 20 10 70 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 0E 00 1E 33 73 E6 FC E1 7E ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 0F 00 1E 33 73 E6 FC E1 7E ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 1F 00 1E 33 73 E6 FC E1 7E ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 1B 00 1E 33 73 E6 FC E1 7E ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 5 0 BBX 5 9 1 0 BITMAP 38 00 70 70 60 60 60 E0 E0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 5 0 BBX 6 9 1 0 BITMAP 3C 00 70 70 60 60 60 E0 E0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 5 0 BBX 6 9 1 0 BITMAP 7C 00 70 70 60 60 60 E0 E0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 5 0 BBX 6 9 1 0 BITMAP 6C 00 70 70 60 60 60 E0 E0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 2 0 BITMAP 04 0C 78 1C 26 3E 26 66 C6 C6 EC 78 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 1 0 BITMAP 0F80 0000 7380 7780 7B00 7300 7300 E300 E700 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 2 0 BITMAP 0E 00 1E 66 67 C6 C6 CC 78 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 2 0 BITMAP 0F 00 1E 66 67 C6 C6 CC 78 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 2 0 BITMAP 1F 00 1E 66 67 C6 C6 CC 78 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 2 0 BITMAP 1F 00 1E 66 67 C6 C6 CC 78 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 2 0 BITMAP 1B 00 1E 66 67 C6 C6 CC 78 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 10 0 BBX 8 8 2 0 BITMAP 1C 00 00 FF 00 00 00 38 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 9 0 BBX 10 7 3 0 BITMAP 0FC0 3300 3780 6F00 7B00 7600 FC00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 1 0 BITMAP 0E00 0000 7380 6380 6700 6700 6F00 F700 E700 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 1 0 BITMAP 0F00 0000 7380 6380 6700 6700 6F00 F700 E700 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 1 0 BITMAP 1F00 0000 7380 6380 6700 6700 6F00 F700 E700 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 1 0 BITMAP 1B00 0000 7380 6380 6700 6700 6F00 F700 E700 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 9 0 BBX 10 12 0 -3 BITMAP 0780 0000 70C0 7180 3300 3A00 3C00 3C00 3800 1000 3000 E000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 -3 BITMAP 3800 3800 3800 3B80 3F80 7580 7980 7300 7200 7C00 E000 E000 E000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 9 0 BBX 10 12 0 -3 BITMAP 0D80 0000 70C0 7180 3300 3A00 3C00 3C00 3800 1000 3000 E000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 1 -3 BITMAP 0FC0 19C0 3980 7D80 3380 7380 7380 7300 7700 6700 E000 E000 E000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 1 4 BITMAP FC ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 7 13 3 -3 BITMAP 1C 18 18 18 FE 30 30 30 30 70 70 60 60 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 1 0 BITMAP 0F80 0000 3FC0 0180 0300 0700 0E00 1C00 3800 3000 6000 FF00 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 13 7 1 0 BITMAP 1FF0 2798 67B0 C7E0 C708 CF98 7FF0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 2 0 BITMAP 3600 0000 E180 6200 6600 3400 3800 3800 3800 3000 7000 7000 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 0 BITMAP 70 70 60 60 60 E0 E0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 6 10 1 0 BITMAP 18 38 3C 3C 38 F0 F0 70 60 60 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 18 38 38 3C 3C 70 F0 F0 70 7F ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 2 -3 BITMAP 0C 0C 0C 1C 7F 18 18 18 FE 38 30 30 30 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 -3 BITMAP 0F00 1800 3800 7F80 3380 7300 7300 7700 6700 6700 E000 E000 E000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 1 0 BITMAP 20 70 30 38 20 C0 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 15 10 1 0 BITMAP 0FFE 31C0 71C0 61C0 E1F8 C1C0 C3C0 E380 6380 3FFC ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 13 1 1 3 BITMAP FFF8 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 1 4 9 BITMAP F8 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 3 1 3 -3 BITMAP E0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 6 1 4 9 BITMAP FC ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 1 0 BITMAP 08 18 20 E0 60 70 20 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 2 1 6 9 BITMAP C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 1 4 9 BITMAP F8 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 5 3 1 BITMAP 7C 7C FC F8 F8 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 1 4 9 BITMAP F8 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 1 4 9 BITMAP F8 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 4 2 6 BITMAP 66 4C EE EC ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 2 6 BITMAP E0 E0 C0 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 8 9 1 0 BITMAP 1F 00 1E 32 78 3C 1C 8C F8 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 2 1 6 9 BITMAP C0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 0 -3 BITMAP 70 F0 70 60 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 3 -3 BITMAP 0F 18 38 30 FC 70 70 70 60 60 E0 E0 E0 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 12 5 2 5 BITMAP FB70 7370 6770 67E0 6560 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 11 10 -3 0 BITMAP 0060 0080 0100 0200 0600 0C00 1800 1000 2000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 3 1 5 9 BITMAP E0 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 18 10 1 0 BITMAP 703000 D84000 D88000 D90000 720000 04E380 0936C0 1336C0 2326C0 C1E380 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 11 1 2 0 BITMAP C460 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 4 2 6 BITMAP 6E EE 64 CC ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 0 BITMAP 1F 00 1F 31 70 78 3C 1E 0E 06 86 F8 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 5 0 -3 BITMAP 6E EE 66 64 CC ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 0 0 BITMAP 0F80 0000 7F80 0300 0E00 1C00 3000 6000 FF00 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/luBIS12.bdf100644 1750 1750 74077 5413747515 15153 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Bold-I-Normal-Sans-17-120-100-100-P-108-ISO8859-1 SIZE 12 100 100 FONTBOUNDINGBOX 35 18 -12 -3 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Bold" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 17 POINT_SIZE 120 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 108 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 15 FONT_DESCENT 4 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 6 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 6 0 BBX 6 12 1 0 BITMAP 3C 3C 38 38 38 38 30 70 00 00 F0 F0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 9 0 BBX 8 6 3 6 BITMAP E7 E7 E7 E7 66 66 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 2 0 BITMAP 0760 06E0 0EC0 7FE0 7FE0 1B80 3B00 FFC0 FFC0 6E00 EC00 DC00 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 12 0 BBX 10 17 2 -2 BITMAP 0300 0300 0E00 1FC0 3FC0 3A40 3E00 1E00 1E00 0F00 0F80 0B80 8B80 FF00 FE00 1800 1800 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 15 0 BBX 14 12 2 0 BITMAP 3C1C 7C38 EE70 CCE0 FDC0 7B80 0778 0EFC 1CCC 39DC 70F8 E0F0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 14 0 BBX 13 12 1 0 BITMAP 07C0 0FE0 1EE0 1EC0 0F80 1F18 7738 E7B0 E3E0 F1C0 FFC0 3EF0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 2 7 BITMAP 70 70 E0 60 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 7 0 BBX 7 15 1 -3 BITMAP 02 0C 1C 38 70 70 F0 E0 E0 E0 E0 E0 70 30 10 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 7 0 BBX 7 15 0 -3 BITMAP 10 18 1C 1C 0E 0E 1E 1E 1C 1C 38 38 70 E0 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 8 0 BBX 7 6 2 6 BITMAP 1C 5A EE 28 EC 48 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 2 0 BITMAP 0600 0600 0400 0C00 FFC0 FFC0 0C00 0800 1800 1800 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 -3 BITMAP 70 70 F0 20 60 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 12 0 BBX 10 2 2 4 BITMAP FFC0 FFC0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 6 0 BBX 4 3 1 0 BITMAP 70 F0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 10 0 BBX 13 15 0 -3 BITMAP 0038 0070 0060 00E0 01C0 0180 0300 0700 0600 0C00 1C00 3800 3000 7000 E000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 2 0 BITMAP 0F80 1FC0 39E0 70E0 71E0 F1E0 F1E0 E1C0 E3C0 F380 7F00 3C00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 12 0 BBX 6 12 4 0 BITMAP 7C FC 38 38 38 78 78 70 70 70 F0 E0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 1 0 BITMAP 1F80 3FE0 21E0 00E0 01E0 03C0 0F00 1E00 3800 7000 FFC0 FF80 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 2 0 BITMAP 1F80 3FC0 23C0 01C0 0380 3E00 3F00 0780 0380 8780 FF00 FE00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 1 0 BITMAP 01C0 03C0 0780 0D80 1B80 3B80 7380 FFC0 FFC0 0700 0700 0700 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 2 0 BITMAP 1FE0 3FE0 3000 3000 3E00 7F00 0780 03C0 03C0 8780 FF80 FE00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 2 0 BITMAP 07E0 1FE0 3C20 7800 7780 FFC0 F3C0 E1C0 E1C0 F380 7F80 3E00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 3 0 BITMAP 7FC0 FFC0 0380 0700 0E00 0E00 1C00 3800 7000 7000 F000 E000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 2 0 BITMAP 0F80 1FC0 39C0 39C0 3F80 1F00 7F80 E380 E180 E380 FF00 3E00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 2 0 BITMAP 0F80 3FC0 39E0 70E0 70E0 79E0 7FE0 3DC0 03C0 8780 FF00 FC00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 38 78 70 00 00 00 70 F0 E0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 6 0 BBX 6 12 1 -3 BITMAP 3C 3C 38 00 00 00 78 70 70 30 70 E0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 2 0 BITMAP 0020 00E0 03C0 1F00 FC00 7800 1C00 0700 0380 0080 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 12 0 BBX 11 6 1 2 BITMAP 7FE0 7FE0 0000 0000 FFC0 FFC0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 1 0 BITMAP 2000 3800 1C00 0700 03C0 07E0 1F00 7800 E000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 2 0 BITMAP FE FF 8F 0F 0E 1C 38 70 70 00 F0 E0 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 14 0 BBX 14 12 1 0 BITMAP 07E0 1C18 3008 63E4 4444 C8C4 88C4 99CC 9ED8 4CF0 2080 1F00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 13 0 BBX 12 12 1 0 BITMAP 03C0 03C0 07C0 07C0 0DE0 0CE0 18E0 3FE0 3FE0 70F0 6070 E070 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 2 0 BITMAP 3F80 3FC0 39C0 39C0 7380 7E00 7F00 7380 7380 E380 FF80 FE00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 13 0 BBX 12 12 2 0 BITMAP 07F0 1FF0 3C10 7800 7000 F000 F000 F000 F000 F840 7FC0 3F80 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 14 0 BBX 13 12 2 0 BITMAP 3FE0 3FF0 3878 3878 7878 7078 7078 7070 70F0 F1E0 FFC0 FF00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 11 0 BBX 11 12 1 0 BITMAP 3FE0 3FE0 3800 3800 3800 7F80 7F80 7000 7000 7000 FF80 FF80 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 10 0 BBX 11 12 1 0 BITMAP 3FE0 3FE0 3800 3800 3800 7F80 7F80 7000 7000 7000 F000 E000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 13 0 BBX 12 12 2 0 BITMAP 07F0 1FF0 3C10 7800 7000 F000 F0E0 F0E0 F1C0 F9C0 7FC0 3F80 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 14 0 BBX 13 12 2 0 BITMAP 3C38 3838 3878 3870 7870 7FF0 7FF0 70F0 70E0 F0E0 E0E0 E1E0 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 6 0 BBX 6 12 1 0 BITMAP 3C 3C 38 38 38 78 78 70 70 70 F0 F0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 9 0 BBX 10 15 0 -3 BITMAP 01C0 03C0 0380 0380 0380 0380 0780 0700 0700 0700 0700 0F00 0E00 FE00 F800 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 13 0 BBX 12 12 1 0 BITMAP 3C70 3CE0 39C0 3B80 3B00 7F00 7F00 7780 73C0 73C0 F1E0 E0F0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 2 0 BITMAP 3C00 3800 3800 3800 7800 7000 7000 7000 7000 F000 FF80 FF80 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 16 0 BBX 16 12 1 0 BITMAP 3E0F 3E1F 3E1E 3E3E 3E3E 766E 77EE 67DC 679C 679C E71C E03C ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 13 0 BBX 13 12 1 0 BITMAP 3838 3C38 3C30 3E30 3E30 7770 7770 63E0 63E0 61E0 E1E0 E0E0 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 15 0 BBX 14 12 2 0 BITMAP 07E0 1FF8 3C78 783C 703C F03C F038 F078 F070 F0E0 7FC0 1F00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 11 0 BBX 11 12 1 0 BITMAP 3FC0 3FE0 38E0 38E0 39C0 7F80 7F00 7000 7000 7000 E000 E000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 15 0 BBX 14 15 2 -3 BITMAP 07E0 1FF8 3C78 783C 703C F03C F038 F078 F070 F0E0 7FC0 1F80 01F0 00FC 0030 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 1 0 BITMAP 3FC0 3FE0 38E0 38E0 39C0 7F80 7F00 7700 7380 7380 E3C0 E1C0 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 1 0 BITMAP 0FC0 3FC0 3840 3800 3C00 3E00 0F80 0780 0380 C780 FF00 FC00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 13 0 BBX 13 12 2 0 BITMAP FFF8 FFF8 0700 0F00 0E00 0E00 0E00 1E00 1E00 1C00 1C00 1C00 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 13 0 BBX 12 12 2 0 BITMAP 3870 7870 7070 70E0 70E0 F0E0 F0E0 E0C0 E1C0 F1C0 7F80 3F00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 13 0 BBX 12 12 3 0 BITMAP E070 F060 F0E0 70C0 7180 7180 7300 7B00 7E00 3E00 3C00 3C00 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 17 0 BBX 16 12 3 0 BITMAP E1C7 E3C6 E3CE E7CC E7DC E7D8 EDF8 EDF0 F9F0 F9E0 F1E0 71C0 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 12 0 BBX 13 12 0 0 BITMAP 1C38 1E70 0EE0 0FC0 0F80 0700 0780 0F80 1F80 3BC0 71C0 E1E0 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 3 0 BITMAP E0E0 71C0 7380 7B00 3E00 3E00 3C00 3C00 3800 3800 3800 7800 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 12 0 BBX 12 12 1 0 BITMAP 1FF0 3FF0 01E0 03C0 0780 0F80 0F00 1E00 3C00 7800 FFC0 FFC0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 7 0 BBX 7 15 1 -3 BITMAP 1E 1E 38 38 38 30 30 70 70 70 60 60 E0 F0 F0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 10 0 BBX 6 15 3 -3 BITMAP C0 E0 60 60 60 70 30 30 30 38 18 18 18 1C 0C ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 7 0 BBX 7 15 1 -3 BITMAP 1E 1E 0E 0C 0C 1C 1C 1C 18 18 38 38 38 F0 F0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 2 BITMAP 0200 0200 0700 0700 0F00 1980 3980 3180 60C0 E0C0 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 9 0 BBX 8 2 0 -2 BITMAP FF FF ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 2 7 BITMAP 30 60 F0 E0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 12 0 BBX 11 9 1 0 BITMAP 0FE0 1FE0 39C0 71C0 73C0 E7C0 EFC0 FB80 7380 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 1 0 BITMAP 1C00 3C00 3C00 39C0 3BE0 7FE0 74E0 79C0 71C0 7380 FF00 FE00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 1 0 BITMAP 0F80 3F80 7880 7000 F000 F000 F100 FF00 7E00 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 12 0 BBX 12 12 1 0 BITMAP 00F0 00F0 00E0 0FE0 1FE0 39E0 71E0 73C0 E7C0 EDC0 FBC0 7380 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 0F00 3F80 7380 7780 FF00 FC00 E080 FF80 3E00 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 8 0 BBX 10 15 1 -3 BITMAP 07C0 1FC0 1C40 7F00 7F00 3800 3800 3800 7800 7000 7000 7000 7000 F000 E000 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 11 0 BBX 11 12 1 -3 BITMAP 07E0 1FE0 39E0 71C0 73C0 77C0 7DC0 7BC0 7380 8380 FF00 FE00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 1 0 BITMAP 3C00 3800 3800 3980 3BC0 77C0 7DC0 7BC0 7380 7380 E380 E780 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 6 0 BBX 6 12 1 0 BITMAP 1C 3C 00 38 38 78 70 70 70 70 F0 E0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 7 0 BBX 10 15 -1 -3 BITMAP 01C0 03C0 0000 0380 0380 0780 0700 0700 0700 0F00 0F00 0E00 8E00 FC00 F800 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 11 0 BBX 11 12 1 0 BITMAP 1C00 3C00 3800 38E0 39C0 7B80 7700 7F00 7700 7780 F380 E3C0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 6 0 BBX 6 12 1 0 BITMAP 1C 3C 38 38 38 78 78 70 70 70 F0 E0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 17 0 BBX 16 9 1 0 BITMAP 39CE 3BDF 77DF 7DE7 79EE 73CE 738E E38E E39E ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 1 0 BITMAP 3980 7BC0 77C0 7FC0 7BC0 7380 F380 E380 E780 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 1 0 BITMAP 0F80 3FC0 79C0 71C0 E1C0 E1C0 F380 FF00 3C00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 1 -3 BITMAP 3DC0 3BE0 3EE0 3CE0 79E0 79C0 7380 7F00 7E00 F000 F000 E000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 1 -3 BITMAP 0FE0 1FE0 39C0 71C0 73C0 E5C0 FFC0 FB80 7380 0380 0780 0780 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 1 0 BITMAP 3980 7B00 7700 7C00 7800 7000 F000 E000 E000 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 1 0 BITMAP 1F80 3F80 3800 3C00 1E00 0F00 C700 FF00 FC00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 2 0 BITMAP 38 78 FC FC 70 70 70 F0 F0 F8 78 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 2 0 BITMAP 79C0 71C0 73C0 7380 F780 EF80 FB80 F780 6700 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 2 0 BITMAP E1C0 E180 F380 7300 7600 7600 7C00 7C00 3800 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 15 0 BBX 14 9 2 0 BITMAP E39C E798 E7B8 EFB0 EFF0 FBE0 FBE0 F3C0 F3C0 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 10 0 BBX 11 9 0 0 BITMAP 3CE0 1DC0 1F80 0F00 0E00 1F00 3F00 7780 E380 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 11 0 BBX 12 12 1 -3 BITMAP 7870 38E0 38C0 39C0 3F80 3F00 1E00 1E00 1C00 3800 7800 F000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 1 0 BITMAP 3FC0 3FC0 0780 0F00 1E00 3C00 7800 FF80 FF80 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 7 0 BBX 7 15 1 -3 BITMAP 0E 1E 3C 3C 1C 18 78 E0 70 70 70 F0 F0 F0 70 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 4 0 BBX 5 15 1 -3 BITMAP 18 18 10 30 30 30 30 20 60 60 60 60 40 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 7 0 BBX 7 15 0 -3 BITMAP 1C 1E 1E 1E 3C 1C 1C 0E 3C 30 70 78 78 F0 E0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 12 0 BBX 10 4 2 3 BITMAP 78C0 7CC0 CF80 C780 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 6 0 BBX 6 12 1 -3 BITMAP 3C 3C 00 00 38 30 70 70 70 70 F0 E0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 3 0 BITMAP 0300 0300 1FC0 3880 7000 F000 F000 F000 FF80 7F00 0C00 0C00 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 2 0 BITMAP 03E0 0FE0 0E20 1E00 1E00 3F00 7F00 1C00 3C00 3000 FF80 FF80 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 12 0 BBX 13 12 1 0 BITMAP 1010 3038 1B70 1FE0 1DC0 18C0 18C0 1DC0 3FC0 7FC0 E060 4040 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 3 0 BITMAP F0E0 7B80 3F00 3E00 7F00 FF00 3C00 FE00 FE00 3800 3800 7800 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 4 0 BBX 5 15 1 -3 BITMAP 18 18 10 30 30 30 00 00 00 60 60 60 40 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 2 -3 BITMAP 0FC0 1FC0 3840 3C00 3E00 3F80 3780 7180 7980 3F00 1F00 0700 C700 FF00 FC00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 11 0 BBX 6 2 5 10 BITMAP CC CC ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 14 0 BBX 12 12 2 0 BITMAP 0F00 30C0 67A0 5C30 D810 B010 B010 F010 5830 6F20 30C0 0F00 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 9 0 BBX 8 6 3 6 BITMAP 1F 7F E6 EE F6 EE ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 11 0 BBX 10 8 2 0 BITMAP 0880 1DC0 3B80 7F00 E700 7700 3380 1100 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 12 0 BBX 10 6 2 2 BITMAP FFC0 FFC0 00C0 0080 0180 0180 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 5 0 BBX 4 2 2 4 BITMAP F0 F0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 12 0 BBX 9 9 3 3 BITMAP 1C00 6300 5F00 9F80 9C80 9580 7500 6300 1C00 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 11 0 BBX 6 2 5 10 BITMAP FC FC ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 4 0 BBX 3 3 3 9 BITMAP E0 A0 E0 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 1 0 BITMAP 0300 0200 0600 7FE0 7FE0 0600 0C00 0000 FFC0 FFC0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 -10 5 BITMAP 7C 06 06 0C 30 60 FC ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 -10 5 BITMAP 7C 0C 08 78 18 1C F0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 11 0 BBX 5 2 6 10 BITMAP 38 E0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 1 -3 BITMAP 38E0 39E0 39C0 39C0 7BC0 77C0 7DC0 7F80 7B80 F000 E000 E000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 12 0 BBX 8 15 3 -3 BITMAP 7F FB FA FA F6 76 36 34 34 2C 2C 6C 68 68 58 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 12 0 BBX 3 2 5 4 BITMAP E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 11 0 BBX 3 3 4 -3 BITMAP 60 60 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 7 0 BBX 3 7 -12 5 BITMAP E0 60 60 40 C0 C0 C0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 9 0 BBX 9 6 2 6 BITMAP 1F00 7F80 6380 E300 FF00 7C00 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 11 0 BBX 10 8 1 0 BITMAP 2200 7300 3B80 39C0 3F80 7700 EE00 4400 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 16 0 BBX 14 12 6 0 BITMAP 701C 3038 3070 20E0 61C0 638C 671C 0E28 1C48 38FC 7018 E018 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 16 0 BBX 15 12 6 0 BITMAP 701C 3038 3070 20E0 61C0 63FC 6706 0E06 1C0C 3830 7060 E0FC ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 16 0 BBX 15 12 7 0 BITMAP 7C0E 0C1C 0838 7870 18E0 1DC6 F38E 0714 0E24 1C7E 380C 700C ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 0 -3 BITMAP 07 0F 00 0E 0E 1C 38 70 F0 F1 FF 7F ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 1 0 BITMAP 01C0 0060 0000 03C0 03C0 07C0 07C0 0DE0 0CE0 18E0 3FE0 3FE0 70F0 6070 E070 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 1 0 BITMAP 0070 01C0 0000 03C0 03C0 07C0 07C0 0DE0 0CE0 18E0 3FE0 3FE0 70F0 6070 E070 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 1 0 BITMAP 00E0 03B0 0000 03C0 03C0 07C0 07C0 0DE0 0CE0 18E0 3FE0 3FE0 70F0 6070 E070 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 1 0 BITMAP 03F0 07E0 0000 03C0 03C0 07C0 07C0 0DE0 0CE0 18E0 3FE0 3FE0 70F0 6070 E070 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 1 0 BITMAP 0330 0330 0000 03C0 03C0 07C0 07C0 0DE0 0CE0 18E0 3FE0 3FE0 70F0 6070 E070 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 1 0 BITMAP 01C0 01C0 0000 03C0 03C0 07C0 07C0 0DE0 0CE0 18E0 3FE0 3FE0 70F0 6070 E070 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 17 0 BBX 18 12 0 0 BITMAP 007FC0 00FFC0 00F800 01F000 037000 077F00 0E7F00 0CF000 1FE000 3FE000 70FF00 C1FF00 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 2 -3 BITMAP 07F0 1FF0 3C10 7800 7000 F000 F000 F000 F000 F840 7FC0 3F80 0800 0C00 1C00 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 11 0 BBX 11 15 1 0 BITMAP 0700 0180 0000 3FE0 3FE0 3800 3800 3800 7F80 7F80 7000 7000 7000 FF80 FF80 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 11 0 BBX 11 15 1 0 BITMAP 01C0 0700 0000 3FE0 3FE0 3800 3800 3800 7F80 7F80 7000 7000 7000 FF80 FF80 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 11 0 BBX 11 15 1 0 BITMAP 0380 0EC0 0000 3FE0 3FE0 3800 3800 3800 7F80 7F80 7000 7000 7000 FF80 FF80 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 11 0 BBX 11 15 1 0 BITMAP 0CC0 0CC0 0000 3FE0 3FE0 3800 3800 3800 7F80 7F80 7000 7000 7000 FF80 FF80 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 6 0 BBX 6 15 1 0 BITMAP 38 0C 00 3C 3C 38 38 38 78 78 70 70 70 F0 F0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 6 0 BBX 7 15 1 0 BITMAP 0E 38 00 3C 3C 38 38 38 78 78 70 70 70 F0 F0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 6 0 BBX 7 15 1 0 BITMAP 1C 76 00 3C 3C 38 38 38 78 78 70 70 70 F0 F0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 6 0 BBX 8 15 1 0 BITMAP 33 33 00 3C 3C 38 38 38 78 78 70 70 70 F0 F0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 14 0 BBX 14 12 1 0 BITMAP 1FF0 1FF8 3C3C 3C3C 383C FF3C FF3C 3838 7878 70F0 7FE0 7F80 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 13 0 BBX 13 15 1 0 BITMAP 03F0 07E0 0000 3838 3C38 3C30 3E30 3E30 7770 7770 63E0 63E0 61E0 E1E0 E0E0 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 15 0 BBX 14 15 2 0 BITMAP 0380 00C0 0000 07E0 1FF8 3C78 783C 703C F03C F038 F078 F070 F0E0 7FC0 1F00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 15 0 BBX 14 15 2 0 BITMAP 00E0 0380 0000 07E0 1FF8 3C78 783C 703C F03C F038 F078 F070 F0E0 7FC0 1F00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 15 0 BBX 14 15 2 0 BITMAP 01C0 0760 0000 07E0 1FF8 3C78 783C 703C F03C F038 F078 F070 F0E0 7FC0 1F00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 15 0 BBX 14 15 2 0 BITMAP 03F0 07E0 0000 07E0 1FF8 3C78 783C 703C F03C F038 F078 F070 F0E0 7FC0 1F00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 15 0 BBX 14 15 2 0 BITMAP 0660 0660 0000 07E0 1FF8 3C78 783C 703C F03C F038 F078 F070 F0E0 7FC0 1F00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 1 0 BITMAP 6040 30E0 39C0 1B80 0E00 0E00 3B00 7380 E180 40C0 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 15 0 BBX 16 12 3 0 BITMAP 03FF 0FFC 1E3C 3C7E 38FE 79DE 7B9C 7F3C 7E38 7C70 3FE0 EF80 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 2 0 BITMAP 0700 0180 0000 3870 7870 7070 70E0 70E0 F0E0 F0E0 E0C0 E1C0 F1C0 7F80 3F00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 2 0 BITMAP 01C0 0700 0000 3870 7870 7070 70E0 70E0 F0E0 F0E0 E0C0 E1C0 F1C0 7F80 3F00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 2 0 BITMAP 0380 0EC0 0000 3870 7870 7070 70E0 70E0 F0E0 F0E0 E0C0 E1C0 F1C0 7F80 3F00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 2 0 BITMAP 0CC0 0CC0 0000 3870 7870 7070 70E0 70E0 F0E0 F0E0 E0C0 E1C0 F1C0 7F80 3F00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 3 0 BITMAP 0380 0E00 0000 E0E0 71C0 7380 7B00 3E00 3E00 3C00 3C00 3800 3800 3800 7800 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 2 0 BITMAP 3800 3800 3F80 3FC0 71C0 71C0 73C0 7380 7F00 FE00 E000 E000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 1 -3 BITMAP 07C0 0FC0 1CC0 1DC0 3980 3B80 3B80 39C0 78E0 70E0 77E0 77C0 7000 E000 E000 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 1 0 BITMAP 0700 0180 0000 0FE0 1FE0 39C0 71C0 73C0 E7C0 EFC0 FB80 7380 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 1 0 BITMAP 01C0 0700 0000 0FE0 1FE0 39C0 71C0 73C0 E7C0 EFC0 FB80 7380 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 1 0 BITMAP 0380 0EC0 0000 0FE0 1FE0 39C0 71C0 73C0 E7C0 EFC0 FB80 7380 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 1 0 BITMAP 07E0 0FC0 0000 0FE0 1FE0 39C0 71C0 73C0 E7C0 EFC0 FB80 7380 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 1 0 BITMAP 0CC0 0CC0 0000 0FE0 1FE0 39C0 71C0 73C0 E7C0 EFC0 FB80 7380 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 1 0 BITMAP 0380 0380 0000 0FE0 1FE0 39C0 71C0 73C0 E7C0 EFC0 FB80 7380 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 17 0 BBX 15 9 2 0 BITMAP 0FDC 1FFE 39CE 73DC F3FC E7F0 EF82 FBFE 71F8 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 1 -3 BITMAP 0F80 3F80 7880 7000 F000 F000 F100 FF00 7E00 1000 1800 3800 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 0700 0180 0000 0F00 3F80 7380 7780 FF00 FC00 E080 FF80 3E00 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 1 0 BITMAP 01C0 0700 0000 0F00 3F80 7380 7780 FF00 FC00 E080 FF80 3E00 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 0700 1D80 0000 0F00 3F80 7380 7780 FF00 FC00 E080 FF80 3E00 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 1 0 BITMAP 0CC0 0CC0 0000 0F00 3F80 7380 7780 FF00 FC00 E080 FF80 3E00 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 6 0 BBX 6 12 1 0 BITMAP 38 0C 00 38 38 70 70 70 70 70 E0 E0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 6 0 BBX 7 12 1 0 BITMAP 0E 38 00 38 38 70 70 70 70 70 E0 E0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 6 0 BBX 7 12 1 0 BITMAP 1C 76 00 38 38 70 70 70 70 70 E0 E0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 6 0 BBX 7 12 1 0 BITMAP 66 66 00 38 38 70 70 70 70 70 E0 E0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 1 0 BITMAP 0100 0380 0700 3F00 3F80 3BC0 1FC0 3FC0 79C0 71C0 F1C0 E180 F380 7F00 3C00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 11 0 BBX 11 12 1 0 BITMAP 07E0 0FC0 0000 3980 7BC0 77C0 7FC0 7BC0 7380 F380 E380 E780 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 1 0 BITMAP 0700 0180 0000 0F80 3FC0 79C0 71C0 E1C0 E1C0 F380 FF00 3C00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 1 0 BITMAP 01C0 0700 0000 0F80 3FC0 79C0 71C0 E1C0 E1C0 F380 FF00 3C00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 1 0 BITMAP 0380 0EC0 0000 0F80 3FC0 79C0 71C0 E1C0 E1C0 F380 FF00 3C00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 11 0 BBX 11 12 1 0 BITMAP 07E0 0FC0 0000 0F80 3FC0 79C0 71C0 E1C0 E1C0 F380 FF00 3C00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 1 0 BITMAP 0CC0 0CC0 0000 0F80 3FC0 79C0 71C0 E1C0 E1C0 F380 FF00 3C00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 2 0 BITMAP 0600 0E00 0000 0000 FFC0 FFC0 0000 0000 1C00 1800 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 11 0 BBX 12 9 2 0 BITMAP 07F0 1FE0 3DE0 3BE0 76E0 7CE0 79C0 7F80 FE00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 2 0 BITMAP 0700 0180 0000 79C0 71C0 73C0 7380 F780 EF80 FB80 F780 6700 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 2 0 BITMAP 01C0 0700 0000 79C0 71C0 73C0 7380 F780 EF80 FB80 F780 6700 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 2 0 BITMAP 0700 1D80 0000 79C0 71C0 73C0 7380 F780 EF80 FB80 F780 6700 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 2 0 BITMAP 0CC0 0CC0 0000 79C0 71C0 73C0 7380 F780 EF80 FB80 F780 6700 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 11 0 BBX 12 15 1 -3 BITMAP 01C0 0700 0000 7870 38E0 38C0 39C0 3F80 3F00 1E00 1E00 1C00 3800 7800 F000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 1 -3 BITMAP 1C00 1C00 3800 39C0 3BE0 3FE0 3CE0 79E0 79C0 7380 7F00 7E00 F000 F000 E000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 11 0 BBX 12 15 1 -3 BITMAP 0660 0660 0000 7870 38E0 38C0 39C0 3F80 3F00 1E00 1E00 1C00 3800 7800 F000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 15 1 -3 BITMAP 07F0 1FF0 1CE0 7EE0 7EE0 38E0 39E0 39C0 79C0 71C0 71C0 73C0 7000 E000 E000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 2 1 4 BITMAP FF FF ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 3 -3 BITMAP 0E00 0E00 1E00 1C00 FF80 FF80 1C00 1800 3800 3800 3800 3800 7800 7000 7000 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 15 1 0 BITMAP 06E0 0380 0000 1FF0 3FF0 01E0 03C0 0780 0F80 0F00 1E00 3C00 7800 FFC0 FFC0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 16 9 1 0 BITMAP 0F9E 3FFF 79E7 71CE E1FE E1F8 F3C1 FFFF 3CFC ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 3 0 BITMAP 1980 1980 0000 E0E0 71C0 7380 7B00 3E00 3E00 3C00 3C00 3800 3800 3800 7800 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 38 38 70 70 70 70 70 E0 E0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 8 12 0 0 BITMAP 0E 1E 1D 1F 1F 3C F8 F8 38 78 78 70 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 1 0 BITMAP 1E00 1C00 1C00 1F00 3E00 3C00 7800 F800 B800 7800 7FC0 7FC0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 2 -3 BITMAP 0700 0700 0E00 0E00 7FC0 7FC0 0E00 0C00 1C00 FF80 FF80 1C00 1C00 3800 3800 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 15 1 -3 BITMAP 07C0 0FC0 1C40 7FF0 7FF0 3CE0 38E0 38E0 79E0 79E0 71C0 71C0 7000 F000 F000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 60 30 38 3C 38 70 E0 40 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 18 12 2 0 BITMAP 07FFC0 1FFFC0 3C7800 787000 707000 F07F00 F07F00 F0F000 F0E000 F0E000 7FFF00 1FFF00 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 16 1 2 5 BITMAP FFFF ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 2 5 10 BITMAP DC 70 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 2 4 -3 BITMAP C0 E0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 7 2 6 10 BITMAP 36 D8 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 08 1C 38 70 F0 70 30 18 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 2 7 10 BITMAP E0 E0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 2 5 10 BITMAP DC 78 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 8 7 3 1 BITMAP 7F 7F 7F 7E FE FE FE ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 7 2 5 10 BITMAP 7E FC ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 2 5 10 BITMAP 38 EC ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 5 2 7 BITMAP 3380 6600 7780 F700 E700 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 3 7 BITMAP E0 E0 E0 E0 60 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 10 12 1 0 BITMAP 0DC0 0700 0000 1F80 3F80 3800 3C00 1E00 0F00 C700 FF00 FC00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 2 7 10 BITMAP E0 E0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 0 -3 BITMAP 70 70 F0 60 60 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 3 -3 BITMAP 07C0 0FC0 1C40 3C00 3C00 7E00 FE00 3800 7800 7000 7000 7000 7000 F000 E000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 15 6 2 6 BITMAP FFCE FFDE 39DE 31EC 737C 735C ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 14 12 -4 0 BITMAP 001C 0038 0070 00E0 01C0 0380 0700 0E00 1C00 3800 7000 E000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 4 2 6 10 BITMAP E0 30 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 21 12 2 0 BITMAP 3C1C00 7C3000 EE6000 CCE000 FDC000 7B8000 0778F0 0EFDF8 1CDD98 39DFB8 70F9F0 E0F1E0 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 14 2 2 0 BITMAP E30C C31C ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 5 2 7 BITMAP 7380 7780 F700 3300 E600 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 1 0 BITMAP 0DC0 0700 0000 0FC0 3FC0 3840 3800 3C00 3E00 0F80 0780 0380 C780 FF00 FC00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 6 0 -3 BITMAP 7380 7780 7780 3300 6300 E600 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 1 0 BITMAP 0DC0 0700 0000 3FC0 3FC0 0780 0F00 1E00 3C00 7800 FF80 FF80 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/luBIS14.bdf100644 1750 1750 101062 5413747515 15156 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Bold-I-Normal-Sans-20-140-100-100-P-127-ISO8859-1 SIZE 14 100 100 FONTBOUNDINGBOX 40 22 -13 -4 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Bold" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 20 POINT_SIZE 140 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 127 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 18 FONT_DESCENT 5 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 7 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 7 0 BBX 7 14 1 0 BITMAP 1E 1E 3C 3C 3C 3C 38 38 38 30 00 00 F8 F0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 11 0 BBX 9 6 3 8 BITMAP E380 E380 E380 C180 4100 4100 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 2 0 BITMAP 0398 0330 0770 7FF8 7FF8 0CC0 1DC0 1980 FFF0 FFF0 3300 6600 6600 CC00 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 14 0 BBX 12 20 2 -2 BITMAP 0080 0180 0380 0F80 1FF0 1FF0 3D30 1900 1F00 1F00 0F80 07C0 07E0 04E0 04E0 E9C0 FF80 FF00 0C00 1800 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 18 0 BBX 17 14 2 0 BITMAP 3C0300 7E0600 E60C00 C61800 C63000 CC6000 FCC000 798000 030F00 061F80 0C3180 183180 303F00 601E00 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 16 0 BBX 15 14 2 0 BITMAP 03E0 07F0 0E18 0E30 0EF0 07C0 1F06 738E 618C E1DC E0F8 F0F0 7FF0 3F78 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 3 8 BITMAP 78 78 78 30 30 E0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 8 0 BBX 7 18 2 -4 BITMAP 02 06 0C 18 38 70 70 60 E0 E0 E0 E0 E0 E0 60 70 30 20 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 8 0 BBX 7 18 1 -4 BITMAP 08 18 1C 0C 0E 0E 0E 0E 0E 0E 0C 1C 18 38 30 60 C0 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 3 7 BITMAP 1C 49 67 E7 3C EE 28 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 14 0 BBX 12 11 2 0 BITMAP 0100 0100 0300 0200 FFF0 FFF0 0400 0C00 0800 0800 0800 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 -3 BITMAP 78 78 78 70 30 70 E0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 14 0 BBX 12 2 2 5 BITMAP FFF0 FFF0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 7 0 BBX 5 3 1 0 BITMAP 78 F8 F0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 12 0 BBX 15 17 0 -3 BITMAP 000E 001C 0038 0030 0070 00E0 00C0 0180 0380 0300 0600 0E00 1C00 1800 3800 7000 E000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 14 0 BBX 11 14 3 0 BITMAP 0780 1FC0 38C0 70E0 70E0 70E0 E0E0 E1C0 E1C0 E1C0 E380 E380 7F00 3C00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 14 0 BBX 7 14 5 0 BITMAP 7E FE 3C 3C 3C 3C 3C 78 78 78 78 78 F0 F0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 2 0 BITMAP 0FE0 1FF0 1078 0038 0038 0070 00E0 03C0 0F00 1E00 3800 7800 FFE0 FFE0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 14 0 BBX 12 14 3 0 BITMAP 1FC0 1FF0 30F0 0070 0060 01C0 1F00 3FC0 01E0 00E0 00E0 C1E0 FFC0 FF00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 14 0 BBX 12 14 1 0 BITMAP 0070 00F0 01E0 02E0 04E0 08E0 19E0 31C0 7FF0 FFF0 03C0 0380 0380 0380 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 2 0 BITMAP 1FF8 1FF8 1800 3800 3000 3F00 3FC0 03E0 00E0 00E0 00E0 C1E0 FFC0 FF00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 2 0 BITMAP 03F8 0FF8 1E18 3C00 7800 7FC0 FFE0 F0F0 E070 E070 E070 70E0 7FC0 1F00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 14 0 BBX 11 14 4 0 BITMAP 7FE0 FFE0 01C0 0380 0380 0700 0E00 1C00 1800 3800 7000 7000 E000 E000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 14 0 BBX 12 14 2 0 BITMAP 07C0 1FF0 1870 3030 3870 1FE0 0F80 3FE0 71E0 E060 E060 E0E0 7FC0 3F00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 2 0 BITMAP 07C0 1FF0 3870 7038 7038 7038 7878 3FF8 1FF0 00F0 01E0 C3C0 FF80 FE00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 2 0 BITMAP 3C 3C 78 00 00 00 00 00 78 F0 F0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 7 0 BBX 7 14 1 -3 BITMAP 1E 1E 3C 00 00 00 00 7C 78 78 78 38 30 E0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 14 0 BBX 12 10 1 0 BITMAP 0030 01C0 0700 1C00 E000 3000 0C00 0300 00C0 0040 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 14 0 BBX 13 8 2 2 BITMAP 7FF8 7FF8 0000 0000 0000 0000 FFF0 FFF0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 14 0 BBX 12 10 1 1 BITMAP 2000 3000 0C00 0300 00C0 0070 0380 0E00 3800 C000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 3 0 BITMAP 7F00 FFC0 83C0 01C0 0180 0700 0E00 1C00 3800 7800 0000 0000 F800 F000 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 17 0 BBX 13 14 3 0 BITMAP 07C0 1820 3010 27C8 49C8 91C8 91C8 93C8 B298 9FA0 99E0 4000 2100 1F80 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 1 0 BITMAP 00E0 01F0 01F0 03F0 0270 0670 0C78 0C78 1FF8 1FF8 3038 203C 603C E03C ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 2 0 BITMAP 1FE0 3FF0 3C70 3870 3860 38C0 7F80 7FC0 79E0 70E0 70E0 F0E0 FFC0 FF80 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 15 0 BBX 15 14 2 0 BITMAP 01FE 07FE 1E06 3C00 7800 7000 E000 E000 E000 E000 F000 7818 7FF8 1FE0 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 16 0 BBX 16 14 2 0 BITMAP 1FFC 1FFE 3E1F 3E07 3E07 3C07 3C07 7C0F 780E 781E 783C 7878 FFF0 FFC0 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 13 0 BBX 13 14 2 0 BITMAP 1FF8 1FF8 3C00 3C00 3C00 3C00 3FE0 7FC0 7800 7800 7800 7800 FFE0 FFE0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 12 0 BBX 13 14 2 0 BITMAP 1FF8 1FF8 3C00 3C00 3C00 3C00 3FC0 7FC0 7800 7800 7800 7000 F000 F000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 15 0 BBX 15 14 2 0 BITMAP 01FE 07FE 1E06 3800 7000 7000 E000 E03C E078 E078 F0F8 78F8 7FF0 1FF0 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 16 0 BBX 16 14 2 0 BITMAP 1E0F 1E0F 3C0E 3C1E 3C1E 3C1E 3FFE 7FFC 783C 783C 783C 703C F078 F078 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 7 0 BBX 7 14 2 0 BITMAP 1E 1E 3C 3C 3C 3C 3C 78 78 78 78 78 F0 F0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 10 0 BBX 11 17 0 -3 BITMAP 01E0 01E0 01E0 01C0 03C0 03C0 03C0 03C0 0380 0780 0780 0780 0780 0700 8F00 FE00 FC00 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 2 0 BITMAP 1E1C 1E38 3C70 3CE0 3DC0 3D80 3B00 7F80 79C0 79C0 78E0 70E0 F070 F078 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 2 0 BITMAP 1E00 1E00 3C00 3C00 3C00 3C00 3800 7800 7800 7800 7800 7000 FFE0 FFE0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 19 0 BBX 18 14 2 0 BITMAP 1F03C0 1F07C0 3F0780 3F0F80 3F0B80 3F1780 371780 77A700 77E700 73C700 73CF00 638F00 E30E00 E00E00 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 16 0 BBX 15 14 2 0 BITMAP 1C0E 1C0E 3E0C 3E1C 3F1C 3F1C 339C 7398 71F8 71F8 70F8 60F8 E070 E070 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 17 0 BBX 14 14 3 0 BITMAP 03E0 0FF8 1C38 381C 701C 701C E01C E01C E038 E038 F070 70E0 7FC0 1F00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 13 0 BBX 13 14 2 0 BITMAP 1FF0 1FF8 3C38 3C38 3C38 3870 3FE0 7F80 7800 7800 7000 7000 F000 F000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 17 0 BBX 14 18 3 -4 BITMAP 03E0 0FF8 1C38 381C 701C 701C E01C E01C E038 E038 F070 70F0 7FE0 1FC0 01F0 00FC 007C 0018 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 2 0 BITMAP 1FF0 1FF8 3C38 3C38 3C38 3870 3FE0 7F80 7980 79C0 71C0 70C0 F0E0 F0F0 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 2 0 BITMAP 07F0 1FF0 3830 3800 3C00 3E00 1F80 0FC0 03E0 00E0 00E0 41C0 FF80 FE00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 15 0 BBX 15 14 3 0 BITMAP FFFE FFFE 0780 0780 0780 0700 0F00 0F00 0F00 0F00 0F00 1E00 1E00 1E00 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 3 0 BITMAP 3C1C 383C 7838 7838 7038 7038 7078 E070 E070 E070 E0F0 F0E0 7FC0 1F80 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 3 0 BITMAP F01C F018 F030 7030 7860 78E0 78C0 79C0 7980 3B00 3F00 3E00 3E00 3C00 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 20 0 BBX 17 14 4 0 BITMAP E18180 E18100 E38300 E38200 E38600 E58400 E58C00 ED8800 E99800 E9B000 F1B000 71E000 71E000 61C000 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 14 0 BBX 15 14 -1 0 BITMAP 1C0E 1E18 0E38 0E70 07E0 07C0 0780 0780 0F80 09C0 19C0 30E0 60E0 C0F0 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 14 0 BBX 12 14 2 0 BITMAP E070 E0E0 61C0 7380 7300 3600 3E00 3C00 3C00 3800 7800 7800 7800 7800 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 14 0 BBX 14 14 1 0 BITMAP 1FFC 1FFC 0078 00F0 01E0 01C0 0380 0700 0E00 1E00 3C00 7800 7FF0 FFF0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 8 0 BBX 9 17 1 -3 BITMAP 0F80 1F80 1E00 1C00 1C00 1C00 3C00 3800 3800 3800 7800 7800 7000 7000 7000 FC00 F800 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 11 0 BBX 7 17 3 -3 BITMAP C0 60 60 60 60 30 30 30 38 18 18 18 0C 0C 0C 0C 06 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 8 0 BBX 9 17 0 -3 BITMAP 0F80 1F80 0700 0700 0700 0F00 0F00 0E00 0E00 0E00 1E00 1C00 1C00 1C00 3C00 FC00 F800 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 14 0 BBX 10 10 0 3 BITMAP 0100 0300 0700 0500 0980 1880 3080 20C0 4040 C040 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 10 0 BBX 9 2 0 -3 BITMAP FF80 FF80 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 3 8 BITMAP 38 60 70 F0 F0 F0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 14 0 BBX 13 11 1 0 BITMAP 07F8 0FF8 1C78 30F0 70F0 61F0 E2F0 E6F0 FDE0 F9E0 71E0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 1 0 BITMAP 1F00 1F00 1F00 3E70 3EF8 3EF8 3FB8 7D38 7E30 7C70 7860 79C0 FF80 FF00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 11 0 BBX 9 11 2 0 BITMAP 0780 1F80 3880 7000 7000 E000 E000 E100 E100 7F00 3E00 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 14 0 BBX 14 14 1 0 BITMAP 003C 003C 0078 07F8 0FF8 1C78 30F8 70F0 61F0 E2F0 E6F0 FDE0 F9E0 71E0 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 12 0 BBX 11 11 1 0 BITMAP 07C0 1FE0 3CE0 78E0 71C0 FF80 FE00 F020 F8E0 7FE0 3F00 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 9 0 BBX 12 18 1 -4 BITMAP 03F0 0FF0 1E10 3FC0 7F80 3C00 3C00 3C00 3C00 3C00 7800 7800 7800 7800 7800 F000 F000 F000 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 13 0 BBX 13 15 1 -4 BITMAP 03F8 0FF0 1C70 38F0 30F0 71F0 6260 6660 7CE0 7CE0 30E0 01C0 C1C0 FF80 7E00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 2 0 BITMAP 1E00 1C00 3C00 3CE0 3DF0 3BF0 3BE0 7CE0 7CE0 78E0 70E0 70C0 F1C0 F1C0 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 7 0 BBX 7 14 1 0 BITMAP 1E 3E 00 3C 3C 3C 78 78 78 78 78 F0 F0 F0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 8 0 BBX 12 18 -1 -4 BITMAP 00F0 01F0 0000 00C0 01C0 01C0 01C0 01C0 0180 0380 0380 0380 0380 0300 0700 8600 FC00 F800 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 1 0 BITMAP 1E00 1E00 1C00 3C30 3C60 3CC0 3880 7900 7F80 7B80 7980 71C0 F1C0 F0E0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 7 0 BBX 7 14 1 0 BITMAP 1E 1E 1C 3C 3C 3C 3C 78 78 78 78 70 F0 F0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 20 0 BBX 19 11 1 0 BITMAP 3CE1C0 3DF3E0 3BF7E0 7AFDC0 7CF9C0 7CF1C0 78F1C0 71E180 F1E180 F1E380 F1E380 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 13 0 BBX 12 11 2 0 BITMAP 3CE0 3DF0 3BF0 7AE0 7CE0 7CE0 78E0 70E0 F0C0 F1C0 F1C0 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 13 0 BBX 10 11 3 0 BITMAP 0F80 1FC0 39C0 71C0 61C0 E1C0 E1C0 E180 E380 7F00 3C00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 14 0 BBX 13 15 1 -4 BITMAP 1E70 1CF8 3DF8 3D38 3A38 3C30 3870 7860 78E0 7FC0 7F00 7000 F000 F000 F000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 14 0 BBX 13 15 1 -4 BITMAP 07F8 0FF8 1C78 30F0 70F0 61F0 E2F0 E6F0 FDE0 F9E0 71E0 01E0 01E0 03C0 03C0 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 11 0 BBX 11 11 2 0 BITMAP 3C60 3DC0 3B40 7A00 7C00 7800 7800 7000 F000 F000 F000 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 11 0 BBX 10 11 1 0 BITMAP 0FC0 1FC0 3C00 3C00 3E00 1F00 0F80 0780 C780 FF00 FE00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 2 0 BITMAP 3C 38 FE FE 78 70 70 70 E0 E0 F4 FC 78 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 13 0 BBX 12 11 2 0 BITMAP 38F0 38F0 30F0 70E0 71E0 73E0 73E0 75E0 FDC0 FBC0 73C0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 13 0 BBX 12 11 2 0 BITMAP F070 F060 F0C0 70C0 7980 7B80 7B00 7F00 7E00 3C00 3C00 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 18 0 BBX 17 11 3 0 BITMAP C0C380 C1E300 C1E700 E2E600 E26E00 E46C00 E47C00 E87800 F87800 F07000 F07000 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 11 0 BBX 13 11 0 0 BITMAP 3E38 1E60 1EE0 0FC0 0F80 0780 0F80 1FC0 3BC0 33C0 E1E0 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 13 0 BBX 14 15 1 -4 BITMAP 3C0C 3C18 3C30 3C20 3C60 1EC0 1E80 1F80 1F00 1E00 0E00 0C00 1800 3800 F000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 13 0 BBX 12 11 1 0 BITMAP 3FF0 3FE0 00C0 0180 0300 0600 0C00 1800 3000 7FE0 FFE0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 8 0 BBX 8 17 2 -3 BITMAP 0F 1F 1E 1E 1E 0C 0C 78 60 F8 38 78 78 F0 F0 F8 70 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 5 0 BBX 6 17 1 -3 BITMAP 04 0C 08 08 08 10 10 10 30 20 20 20 40 40 40 C0 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 8 0 BBX 8 17 1 -3 BITMAP 0E 1F 0F 0F 1E 1E 1C 1F 06 1E 30 30 78 78 78 F8 F0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 14 0 BBX 12 5 2 3 BITMAP 3830 7C30 4F60 C3E0 81C0 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 7 0 BBX 7 15 1 -4 BITMAP 1E 3E 00 00 18 38 38 38 38 78 78 78 F0 F0 F0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 14 0 BBX 10 14 3 0 BITMAP 0380 0300 0FC0 1FC0 3040 7000 E000 E000 E000 E180 FF80 7F80 1800 1800 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 2 0 BITMAP 01F8 07F8 0788 0F00 0F00 0F00 3FC0 3F80 1E00 1E00 1C00 3800 FFE0 FFC0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 14 0 BBX 16 14 0 0 BITMAP 0001 1003 09CC 0FF8 0630 0C30 0810 0C30 0C70 0FE0 1FF0 3010 C008 8000 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 14 0 BBX 12 14 3 0 BITMAP 7030 7060 38C0 3980 1F00 1E00 7F80 7F80 1E00 FF80 FF80 3C00 3C00 3C00 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 5 0 BBX 6 17 1 -3 BITMAP 04 0C 08 08 08 08 18 00 00 00 60 40 40 40 40 C0 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 2 -4 BITMAP 07F0 1FF0 1C30 3C00 3F00 1F80 1FE0 33E0 20E0 7060 7E40 3FC0 1FC0 07C0 03C0 C3C0 FF80 FE00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 13 0 BBX 7 2 6 12 BITMAP EE EE ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 17 0 BBX 13 14 3 0 BITMAP 0F80 1040 2020 47F0 8C28 9008 9008 B008 9008 9008 4FD0 2020 1040 0F80 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 11 0 BBX 10 7 3 7 BITMAP 1FC0 3FC0 7380 E780 CF80 FB80 7780 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 13 0 BBX 12 9 2 1 BITMAP 0420 0E70 1CE0 39C0 F780 7380 39C0 39C0 1080 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 14 0 BBX 12 8 2 2 BITMAP FFF0 FFF0 0070 0060 0060 0060 0060 0060 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 6 0 BBX 5 2 2 6 BITMAP F8 F8 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 14 0 BBX 8 10 5 4 BITMAP 3C 42 9F 9B BB BD A5 A3 42 3C ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 13 0 BBX 7 2 6 12 BITMAP FE FE ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 5 0 BBX 1 3 4 11 BITMAP 80 80 80 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 14 0 BBX 13 11 1 0 BITMAP 0080 0080 0100 3FF8 7FF8 0100 0200 0600 0000 FFF0 FFE0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 -10 5 BITMAP 3E 23 03 06 0C 18 20 60 FE ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 -11 5 BITMAP 7C 06 06 0C 78 0C 0C 0C F8 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 13 0 BBX 6 2 7 12 BITMAP 3C E0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 1 -3 BITMAP 1C78 3C78 3C78 3CF0 3CF0 38F0 7BF0 7AF0 7CE0 7DE0 79E0 F000 F000 F000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 14 0 BBX 9 17 4 -3 BITMAP 7F80 FD80 F900 FB00 FB00 FB00 7300 1200 1200 3200 2200 2600 2400 2400 4400 4400 4400 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 14 0 BBX 3 2 7 6 BITMAP E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 13 0 BBX 4 5 4 -4 BITMAP 30 60 10 10 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 8 0 BBX 4 9 -13 5 BITMAP F0 70 70 60 60 60 E0 E0 C0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 11 0 BBX 10 7 3 7 BITMAP 0F80 3FC0 71C0 E1C0 E380 FF00 7C00 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 13 0 BBX 12 9 1 1 BITMAP 1080 39C0 39C0 1CE0 1EF0 39C0 7380 E700 4200 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 19 0 BBX 16 14 7 0 BITMAP F007 700C 701C 6038 6070 60E3 E1C7 E38B C71E 0E36 1C26 387F 3006 E00C ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 19 0 BBX 17 14 7 0 BITMAP F00700 700C00 701C00 603800 607000 60FF00 E1D180 E38180 C70300 0E0600 1C0C00 381000 303000 E07F00 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 19 0 BBX 17 14 8 0 BITMAP 7C0380 060600 060E00 0C1C00 783800 0C7180 0CE380 0DC580 FB8F00 071B00 0E1300 1C3F80 180300 700600 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 0 -4 BITMAP 03C0 07C0 0000 0000 0000 0780 0F00 1E00 3800 7000 E000 E000 F040 7FC0 3F80 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 1 0 BITMAP 00F0 0038 0000 00E0 01F0 01F0 03F0 0270 0670 0C78 0C78 1FF8 1FF8 3038 203C 603C E03C ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 1 0 BITMAP 003C 00E0 0000 00E0 01F0 01F0 03F0 0270 0670 0C78 0C78 1FF8 1FF8 3038 203C 603C E03C ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 1 0 BITMAP 00F0 03B8 0000 00E0 01F0 01F0 03F0 0270 0670 0C78 0C78 1FF8 1FF8 3038 203C 603C E03C ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 1 0 BITMAP 01FC 03F8 0000 00E0 01F0 01F0 03F0 0270 0670 0C78 0C78 1FF8 1FF8 3038 203C 603C E03C ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 1 0 BITMAP 01DC 01DC 0000 00E0 01F0 01F0 03F0 0270 0670 0C78 0C78 1FF8 1FF8 3038 203C 603C E03C ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 1 0 BITMAP 0070 0070 0000 00E0 01F0 01F0 03F0 0270 0670 0C78 0C78 1FF8 1FF8 3038 203C 603C E03C ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 20 0 BBX 21 14 0 0 BITMAP 001FF8 003FF8 007E00 007C00 00DC00 01BC00 03BFE0 073FC0 063800 0FF800 1FF800 387800 307FE0 E07FE0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 2 -4 BITMAP 01FE 07FE 1E06 3C00 7800 7000 E000 E000 E000 E000 F000 7818 7FF8 1FE0 0C00 0200 0200 1C00 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 2 0 BITMAP 0780 01C0 0000 1FF8 1FF8 3C00 3C00 3C00 3C00 3FE0 7FC0 7800 7800 7800 7800 FFE0 FFE0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 2 0 BITMAP 00F0 0380 0000 1FF8 1FF8 3C00 3C00 3C00 3C00 3FE0 7FC0 7800 7800 7800 7800 FFE0 FFE0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 2 0 BITMAP 03C0 0EE0 0000 1FF8 1FF8 3C00 3C00 3C00 3C00 3FE0 7FC0 7800 7800 7800 7800 FFE0 FFE0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 2 0 BITMAP 0770 0770 0000 1FF8 1FF8 3C00 3C00 3C00 3C00 3FE0 7FC0 7800 7800 7800 7800 FFE0 FFE0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 7 0 BBX 8 17 2 0 BITMAP 1E 07 00 1E 1E 3C 3C 3C 3C 3C 78 78 78 78 78 F0 F0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 7 0 BBX 9 17 2 0 BITMAP 0780 1C00 0000 1E00 1E00 3C00 3C00 3C00 3C00 3C00 7800 7800 7800 7800 7800 F000 F000 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 7 0 BBX 8 17 2 0 BITMAP 1E 77 00 1E 1E 3C 3C 3C 3C 3C 78 78 78 78 78 F0 F0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 7 0 BBX 9 17 2 0 BITMAP 3B80 3B80 0000 1E00 1E00 3C00 3C00 3C00 3C00 3C00 7800 7800 7800 7800 7800 F000 F000 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 16 0 BBX 16 14 1 0 BITMAP 1FFC 1FFE 1F0F 1E07 1E07 3E07 FFC7 FF87 3C0E 380E 781C 7878 7FF0 7FC0 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 2 0 BITMAP 03F8 07F0 0000 1C0E 1C0E 3E0C 3E1C 3F1C 3F1C 339C 7398 71F8 71F8 70F8 60F8 E070 E070 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 17 0 BBX 14 17 3 0 BITMAP 03C0 00E0 0000 03E0 0FF8 1C38 381C 701C 701C E01C E01C E038 E038 F070 70E0 7FC0 1F00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 17 0 BBX 14 17 3 0 BITMAP 00F0 0380 0000 03E0 0FF8 1C38 381C 701C 701C E01C E01C E038 E038 F070 70E0 7FC0 1F00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 17 0 BBX 14 17 3 0 BITMAP 01E0 0770 0000 03E0 0FF8 1C38 381C 701C 701C E01C E01C E038 E038 F070 70E0 7FC0 1F00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 17 0 BBX 14 17 3 0 BITMAP 03F8 07F0 0000 03E0 0FF8 1C38 381C 701C 701C E01C E01C E038 E038 F070 70E0 7FC0 1F00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 17 0 BBX 14 17 3 0 BITMAP 0770 0770 0000 03E0 0FF8 1C38 381C 701C 701C E01C E01C E038 E038 F070 70E0 7FC0 1F00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 14 0 BBX 13 11 2 0 BITMAP 1008 3018 1860 0CC0 0580 0200 0D00 1980 30C0 C060 8040 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 17 0 BBX 17 14 4 0 BITMAP 01F180 07FF00 0E1E00 1C1E00 383E00 386E00 70CE00 718E00 731C00 761C00 7C3800 387000 7FE000 CF8000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 3 0 BITMAP 03C0 00E0 0000 3C1C 383C 7838 7838 7038 7038 7078 E070 E070 E070 E0F0 F0E0 7FC0 1F80 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 3 0 BITMAP 00F0 0380 0000 3C1C 383C 7838 7838 7038 7038 7078 E070 E070 E070 E0F0 F0E0 7FC0 1F80 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 3 0 BITMAP 01E0 0770 0000 3C1C 383C 7838 7838 7038 7038 7078 E070 E070 E070 E0F0 F0E0 7FC0 1F80 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 3 0 BITMAP 0770 0770 0000 3C1C 383C 7838 7838 7038 7038 7078 E070 E070 E070 E0F0 F0E0 7FC0 1F80 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 2 0 BITMAP 03C0 0E00 0000 E070 E0E0 61C0 7380 7300 3600 3E00 3C00 3C00 3800 7800 7800 7800 7800 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 2 0 BITMAP 1C00 1C00 3C00 3FE0 3FF0 3870 3870 7870 78E0 7FC0 7F00 7000 F000 F000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 1 -4 BITMAP 03E0 0FF0 0E70 1E70 1EE0 1CC0 1DC0 3DE0 3CF0 3878 3838 7A38 7BF0 7BE0 7000 7000 F000 F000 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 1 0 BITMAP 03C0 00E0 0000 07F8 0FF8 1C78 30F0 70F0 61F0 E2F0 E6F0 FDE0 F9E0 71E0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 1 0 BITMAP 00F0 0380 0000 07F8 0FF8 1C78 30F0 70F0 61F0 E2F0 E6F0 FDE0 F9E0 71E0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 1 0 BITMAP 01E0 0770 0000 07F8 0FF8 1C78 30F0 70F0 61F0 E2F0 E6F0 FDE0 F9E0 71E0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 1 0 BITMAP 03F8 07F0 0000 07F8 0FF8 1C78 30F0 70F0 61F0 E2F0 E6F0 FDE0 F9E0 71E0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 1 0 BITMAP 0770 0770 0000 07F8 0FF8 1C78 30F0 70F0 61F0 E2F0 E6F0 FDE0 F9E0 71E0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 1 0 BITMAP 01C0 01C0 0000 07F8 0FF8 1C78 30F0 70F0 61F0 E2F0 E6F0 FDE0 F9E0 71E0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 20 0 BBX 18 11 2 0 BITMAP 07FF80 1FFFC0 38F9C0 30F1C0 70F380 61FF00 E2FC00 E6E040 FCF1C0 F8FFC0 707E00 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 11 0 BBX 9 15 2 -4 BITMAP 0780 1F80 3880 7000 7000 E000 E000 E100 E100 7F00 3E00 3000 0800 0800 7000 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 0780 01C0 0000 07C0 1FE0 3CE0 78E0 71C0 FF80 FE00 F020 F8E0 7FE0 3F00 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 01E0 0700 0000 07C0 1FE0 3CE0 78E0 71C0 FF80 FE00 F020 F8E0 7FE0 3F00 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 03C0 0EE0 0000 07C0 1FE0 3CE0 78E0 71C0 FF80 FE00 F020 F8E0 7FE0 3F00 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 0EE0 0EE0 0000 07C0 1FE0 3CE0 78E0 71C0 FF80 FE00 F020 F8E0 7FE0 3F00 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 7 0 BBX 8 14 2 0 BITMAP 1E 07 00 3C 3C 3C 78 78 78 78 78 F0 F0 F0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 7 0 BBX 9 14 2 0 BITMAP 0780 1C00 0000 3C00 3C00 3C00 7800 7800 7800 7800 7800 F000 F000 F000 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 7 0 BBX 8 14 2 0 BITMAP 1E 77 00 3C 3C 3C 78 78 78 78 78 F0 F0 F0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 7 0 BBX 9 14 2 0 BITMAP 3B80 3B80 0000 3C00 3C00 3C00 7800 7800 7800 7800 7800 F000 F000 F000 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 13 0 BBX 10 18 3 0 BITMAP 0100 0380 0300 0600 3F00 3F80 1380 31C0 2FC0 1FC0 39C0 71C0 E1C0 E180 E180 F300 7E00 3C00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 2 0 BITMAP 07F0 0FE0 0000 3CE0 3DF0 3BF0 7AE0 7CE0 7CE0 78E0 70E0 F0C0 F1C0 F1C0 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 13 0 BBX 10 14 3 0 BITMAP 0780 01C0 0000 0F80 1FC0 39C0 71C0 61C0 E1C0 E1C0 E180 E380 7F00 3C00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 3 0 BITMAP 01E0 0700 0000 0F80 1FC0 39C0 71C0 61C0 E1C0 E1C0 E180 E380 7F00 3C00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 13 0 BBX 10 14 3 0 BITMAP 0780 1DC0 0000 0F80 1FC0 39C0 71C0 61C0 E1C0 E1C0 E180 E380 7F00 3C00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 3 0 BITMAP 0FE0 1FC0 0000 0F80 1FC0 39C0 71C0 61C0 E1C0 E1C0 E180 E380 7F00 3C00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 3 0 BITMAP 0EE0 0EE0 0000 0F80 1FC0 39C0 71C0 61C0 E1C0 E1C0 E180 E380 7F00 3C00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 14 0 BBX 12 11 2 0 BITMAP 0380 0700 0000 0000 FFF0 FFF0 0000 0000 0000 0E00 1C00 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 13 0 BBX 12 11 4 0 BITMAP 07F0 0FE0 1CE0 39E0 33E0 76E0 7CE0 78C0 71C0 7F80 DE00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 2 0 BITMAP 0780 01C0 0000 38F0 38F0 30F0 70E0 71E0 73E0 73E0 75E0 FDC0 FBC0 73C0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 2 0 BITMAP 01E0 0700 0000 38F0 38F0 30F0 70E0 71E0 73E0 73E0 75E0 FDC0 FBC0 73C0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 2 0 BITMAP 03C0 0EE0 0000 38F0 38F0 30F0 70E0 71E0 73E0 73E0 75E0 FDC0 FBC0 73C0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 2 0 BITMAP 0EE0 0EE0 0000 38F0 38F0 30F0 70E0 71E0 73E0 73E0 75E0 FDC0 FBC0 73C0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 13 0 BBX 14 18 1 -4 BITMAP 00F0 0380 0000 3C0C 3C18 3C30 3C20 3C60 1EC0 1E80 1F80 1F00 1E00 0E00 0C00 1800 3800 F000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 1 -4 BITMAP 1F00 1F00 1F00 1E30 1E78 3EF8 3FB8 3D38 3E30 3C70 7C60 7CE0 7FC0 7F00 7000 F000 F000 F000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 13 0 BBX 14 18 1 -4 BITMAP 0770 0770 0000 3C0C 3C18 3C30 3C20 3C60 1EC0 1E80 1F80 1F00 1E00 0E00 0C00 1800 3800 F000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 1 -4 BITMAP 03FC 0FFC 1E38 7F38 7F78 3C78 3C78 3C70 38F0 38F0 78F0 78F0 78E0 79E0 7000 F000 F000 F000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 2 2 6 BITMAP FF80 FF80 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 11 17 3 -3 BITMAP 0780 0F00 0F00 0F00 0F00 FFE0 FFE0 1E00 1E00 1E00 1C00 3C00 3C00 3C00 3C00 3800 7800 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 1 0 BITMAP 03B8 01E0 0000 1FFC 1FFC 0078 00F0 01E0 01C0 0380 0700 0E00 1E00 3C00 7800 7FF0 FFF0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 19 11 1 0 BITMAP 07E7C0 1FFFE0 39FCE0 71F8E0 61F1C0 E1FF80 E1FE00 E1F020 E3F8E0 7FFFE0 3E3F00 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 2 0 BITMAP 1DC0 1DC0 0000 E070 E0E0 61C0 7380 7300 3600 3E00 3C00 3C00 3800 7800 7800 7800 7800 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 2 0 BITMAP 3C 3C 3C 78 78 78 78 78 F0 F0 F0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 9 14 1 0 BITMAP 0F00 0E00 0E80 1F80 1F80 1F00 3C00 FC00 FC00 BC00 3C00 3800 7800 7800 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 1 0 BITMAP 0F00 0F00 0E00 1E80 1F80 1F80 1E00 7C00 FC00 FC00 BC00 3C00 7FF0 7FF0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 2 -3 BITMAP 03C0 0380 0780 0780 0780 3FF0 7FF0 0700 0F00 0E00 FFE0 FFC0 1E00 1E00 1E00 1C00 3C00 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 1 -4 BITMAP 03F0 0FF0 1E10 3FFC 7FFC 3C78 3C78 3C78 3C78 3C78 78F0 78F0 78F0 78F0 7800 F000 F000 F000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 1 BITMAP 10 38 38 1C 1E 38 70 E0 40 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 22 0 BBX 22 14 2 0 BITMAP 03FFFC 0FFFFC 1C7E00 383E00 703E00 703E00 E03FF0 E07FE0 E07C00 E07C00 F07C00 70FC00 7FFFF0 1FFFF0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 19 1 2 6 BITMAP FFFFE0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 7 2 6 12 BITMAP EE 78 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 4 2 4 -3 BITMAP 60 F0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 8 2 7 12 BITMAP 3F DC ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 2 1 BITMAP 04 0E 1C 38 F0 70 38 38 10 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 3 2 8 12 BITMAP E0 E0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 7 2 6 12 BITMAP EE 78 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 9 7 4 3 BITMAP 7F80 7F80 7F00 7F00 7F00 FF00 FF00 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 8 2 6 12 BITMAP 7F FE ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 7 2 6 12 BITMAP 3C EE ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 6 3 8 BITMAP 39C0 6300 7380 F380 F780 F780 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 3 8 BITMAP F0 F0 E0 60 60 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 1 0 BITMAP 0EE0 0780 0000 0FC0 1FC0 3C00 3C00 3E00 1F00 0F80 0780 C780 FF00 FE00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 3 2 8 12 BITMAP E0 E0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 0 -3 BITMAP 78 78 78 70 30 70 E0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 11 17 4 -3 BITMAP 03E0 0FE0 0E20 1C00 1C00 3C00 7F00 FE00 3800 3800 7800 7800 7800 7000 7000 F000 F000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 18 7 2 7 BITMAP FF73C0 FF77C0 3CFF80 38FF80 38DB80 78DF80 79C780 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 16 14 -4 0 BITMAP 0007 000C 001C 0038 0070 00E0 01C0 0380 0700 0E00 1C00 3800 3000 E000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 5 2 7 12 BITMAP F0 38 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 27 0 BBX 25 14 2 0 BITMAP 3C030000 7C040000 E6080000 C6100000 C6200000 CC400000 FC800000 79000000 021E0F00 043F1F80 0C61B980 18633180 307F3F00 603C1E00 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 16 2 2 0 BITMAP E183 C107 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 6 3 8 BITMAP 7BC0 7BC0 73C0 7380 3180 E700 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 12 17 2 0 BITMAP 0770 03C0 0000 07F0 1FF0 3830 3800 3C00 3E00 1F80 0FC0 03E0 00E0 00E0 41C0 FF80 FE00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 7 0 -3 BITMAP 79E0 79E0 7BE0 7BC0 30C0 31C0 E300 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 1 0 BITMAP 0770 03C0 0000 3FF0 3FE0 00C0 0180 0300 0600 0C00 1800 3000 7FE0 FFE0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/luBIS18.bdf100644 1750 1750 116165 5413747515 15174 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Bold-I-Normal-Sans-25-180-100-100-P-159-ISO8859-1 SIZE 18 100 100 FONTBOUNDINGBOX 51 28 -17 -5 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Bold" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 25 POINT_SIZE 180 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 159 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 23 FONT_DESCENT 6 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 9 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 9 0 BBX 8 18 2 0 BITMAP 1F 1F 1F 1E 1E 1E 3C 3C 3C 3C 38 38 38 00 00 78 F8 F8 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 13 0 BBX 11 8 4 11 BITMAP FBE0 FBE0 F1E0 F1E0 71C0 71C0 71C0 71C0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 17 0 BBX 16 18 2 0 BITMAP 0067 00C6 00CE 018C 018C 3FFF 7FFF 0630 0630 0C60 0C60 FFFE FFFC 3180 3180 7300 6300 E600 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 17 0 BBX 15 24 3 -3 BITMAP 0070 0060 00E0 03FC 07FE 0FFE 1EC4 1EC0 1FC0 1FC0 0FC0 07E0 03F0 03F8 03F8 0378 0378 6378 FFF0 FFF0 FFC0 0700 0600 0E00 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 23 0 BBX 21 18 3 0 BITMAP 1F0078 3F80E0 7FC1E0 F3C3C0 F3C780 F38F00 FF9E00 7F3C00 3E7800 00F3E0 01E7F0 03CFF8 078E78 0F1E78 1E1E78 3C1FF0 380FE0 F007C0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 20 0 BBX 19 18 2 0 BITMAP 00FC00 03FE00 03FF00 07CF00 07CF00 07DE00 03FC00 03F0E0 1FE1E0 3DF1C0 78F1C0 F0FB80 F07F80 F83F00 FC3E00 7FFE00 7FFF00 1F8F80 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 3 10 BITMAP 7C 7C 7C 78 78 38 38 F0 E0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 10 0 BBX 10 24 2 -5 BITMAP 0040 01C0 0380 0780 0F00 1E00 1E00 3C00 7C00 7C00 7800 F800 F800 F800 F800 F800 F800 F800 7800 7800 7C00 3C00 1C00 0800 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 10 0 BBX 10 24 1 -5 BITMAP 0400 0E00 0F00 0F00 0780 0780 07C0 07C0 07C0 07C0 07C0 07C0 07C0 0780 0F80 0F80 0F00 1E00 1E00 3C00 7800 F000 E000 8000 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 12 0 BBX 10 9 3 9 BITMAP 0F00 0E00 6EC0 73C0 F3C0 1200 FF00 7700 2400 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 17 0 BBX 15 15 2 0 BITMAP 00C0 01C0 01C0 01C0 0180 0180 FFFE FFFE FFFE 0380 0300 0700 0700 0700 0700 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 9 0 BBX 6 9 1 -4 BITMAP 7C 7C 7C 78 78 38 38 F0 E0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 17 0 BBX 15 3 3 5 BITMAP FFFE FFFE FFFC ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 9 0 BBX 6 5 2 0 BITMAP 7C 7C FC F8 F8 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 15 0 BBX 19 23 0 -4 BITMAP 0001E0 0003C0 000380 000780 000F00 000E00 001E00 003C00 003800 007800 00F000 00E000 01E000 03C000 038000 078000 0F0000 0E0000 1E0000 3C0000 380000 780000 F00000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 17 0 BBX 16 18 2 0 BITMAP 01F0 07FC 0FFE 1F1E 3E1F 3C1F 7C1F 7C1F FC1F F83F F83E F83E F83C F87C 78F8 7FF0 3FE0 0F80 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 17 0 BBX 8 18 6 0 BITMAP 7F 7F FF 1E 1E 3E 3E 3E 3C 3C 7C 7C 7C 78 78 F8 F8 F8 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 17 0 BBX 16 18 2 0 BITMAP 07F8 0FFE 1FFF 183F 001F 001F 003E 007E 00FC 01F0 07E0 0F80 1F00 3E00 7C00 7FFC FFFC FFF8 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 17 0 BBX 15 18 3 0 BITMAP 07F8 0FFC 1FFE 183E 003E 003C 00F8 1FF0 1FE0 1FF0 00F8 007C 007C 007C 41F8 FFF8 FFE0 7F80 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 17 0 BBX 15 18 2 0 BITMAP 003E 007E 00FC 01FC 03FC 07BC 0F7C 1E78 3C78 7878 7FFE FFFE FFFC 00F0 00F0 00F0 01F0 01E0 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 17 0 BBX 16 18 3 0 BITMAP 0FFF 0FFF 1FFE 1C00 1C00 1800 1F80 3FE0 3FF8 03F8 00FC 007C 007C 00FC 41F8 FFF8 FFE0 FF80 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 17 0 BBX 16 18 3 0 BITMAP 01FF 07FF 0FFF 1F82 3E00 3E00 7C00 7FF0 FFFC FFFC FC7E F83E F83E F83C 7C7C 7FF8 3FF0 0FC0 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 17 0 BBX 14 18 5 0 BITMAP 7FFC 7FFC FFFC 0078 00F8 01F0 03E0 03C0 0780 0F00 1F00 1E00 3C00 7C00 7C00 7800 F800 F800 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 17 0 BBX 15 18 3 0 BITMAP 01F8 07FC 0FFE 1E1E 1E1E 1E1E 1F3C 0FF0 0FF0 1FF8 7CFC 787C F03C F03C F87C FFF8 7FF0 1FC0 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 17 0 BBX 16 18 2 0 BITMAP 03F0 0FFC 1FFE 3E3E 3C1F 7C1F 7C1F 7E3F 3FFF 3FFF 0FFE 003E 007C 007C 41F8 FFF0 FFE0 FF80 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 2 0 BITMAP 1F 1F 3E 3E 3E 00 00 00 7C 7C FC F8 F8 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 9 0 BBX 8 17 1 -4 BITMAP 1F 1F 1F 1E 3E 00 00 00 3C 7C 7C 7C 7C 38 38 F0 E0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 17 0 BBX 16 15 3 0 BITMAP 0001 0007 001F 007E 03F8 0FE0 3F80 FE00 3E00 0F80 07E0 01F0 007C 0018 0008 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 17 0 BBX 16 8 2 3 BITMAP 3FFF 7FFF 7FFE 0000 0000 FFFE FFFE FFFC ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 17 0 BBX 16 15 1 0 BITMAP 1000 1800 3E00 0F80 07E0 01F0 007C 007F 01FC 07F0 1FC0 7E00 7800 E000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 13 0 BBX 12 18 3 0 BITMAP 3F80 7FE0 FFF0 83F0 01F0 01E0 03E0 07C0 0F80 1F00 3E00 3C00 7C00 0000 0000 7800 F800 F800 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 21 0 BBX 19 18 3 0 BITMAP 00FC00 03FF00 0F0380 1C00C0 3800E0 30FC60 63FC60 671C60 C61860 CC3860 CC78C0 CFD9C0 CF9F80 671E00 600000 383000 1FF000 07E000 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 19 0 BBX 18 18 1 0 BITMAP 003E00 007E00 007E00 00FE00 01FE00 01DF00 03DF00 039F00 078F00 070F00 0F0F80 0FFF80 1FFF80 1FFF80 380780 3807C0 7007C0 F007C0 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 2 0 BITMAP 1FF8 1FFC 1FFE 1E3E 1E3E 3E3C 3C7C 3FF0 3FC0 3FF0 7CF8 7C7C 787C 787C 78FC FFF8 FFF8 FFE0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 18 0 BBX 18 18 2 0 BITMAP 007F80 03FFC0 07FFC0 0FC080 1F0000 3E0000 7C0000 7C0000 780000 F80000 F80000 F80000 F80000 FC0000 7E0600 7FFE00 3FFE00 0FF800 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 21 0 BBX 20 18 2 0 BITMAP 0FFF00 1FFFC0 1FFFE0 1F07F0 1F03F0 1F01F0 3E01F0 3E01F0 3E01F0 3E03F0 3C03E0 7C03E0 7C07C0 7C0FC0 7C3F80 7FFF00 FFFC00 FFF000 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 16 0 BBX 16 18 2 0 BITMAP 0FFF 1FFF 1FFE 1F00 1F00 1E00 3E00 3FF8 3FF8 3FF8 3C00 7C00 7C00 7C00 7C00 7FFC FFF8 FFF8 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 15 0 BBX 16 18 2 0 BITMAP 0FFF 1FFF 1FFE 1F00 1F00 1E00 3E00 3E00 3FF8 3FF8 3FF0 7C00 7C00 7C00 7C00 7800 F800 F800 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 19 0 BBX 18 18 2 0 BITMAP 007F80 03FFC0 07FFC0 0FC080 1F0000 3E0000 7C0000 7C0000 780000 F80F00 F80F00 F81F00 F81F00 FC1E00 7E1E00 7FFE00 3FFE00 0FF800 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 20 0 BBX 20 18 2 0 BITMAP 0F81F0 1F01F0 1F01E0 1F03E0 1F03E0 1E03E0 3E03E0 3FFFC0 3FFFC0 3FFFC0 3C07C0 7C07C0 7C0780 7C0F80 7C0F80 780F80 F80F80 F81F00 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 9 0 BBX 8 18 2 0 BITMAP 1F 1F 1F 1E 1E 3E 3E 3E 3C 3C 7C 7C 7C 78 78 F8 F8 F8 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 13 0 BBX 14 22 0 -4 BITMAP 007C 007C 007C 0078 00F8 00F8 00F8 00F8 00F0 01F0 01F0 01F0 01F0 01E0 03E0 03E0 03E0 03E0 47C0 FFC0 FF80 FE00 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 19 0 BBX 17 18 2 0 BITMAP 1F0780 1F0F00 1F1E00 1F1C00 1E3800 3E7800 3EF000 3FE000 3FE000 3FF000 7DF000 7CF800 7CF800 7C7C00 787E00 F83E00 F83F00 F81F00 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 2 0 BITMAP 0F80 1F00 1F00 1F00 1F00 1F00 3E00 3E00 3E00 3E00 3C00 7C00 7C00 7C00 7C00 7FFC FFFC FFFC ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 23 0 BBX 23 18 2 0 BITMAP 0FC07E 1FC07E 1FC0FC 1FC0FC 1FC1FC 1FC3FC 3FE3FC 3FE778 39E778 39EE78 39EEF8 79FCF8 79FCF0 79F8F0 71F0F0 71F1F0 F0E1F0 F001E0 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 20 0 BBX 19 18 2 0 BITMAP 1F01E0 1F01E0 1F81E0 1F81C0 1FC3C0 3FC3C0 3FE3C0 3FE3C0 3DF380 39F780 78FF80 78FF80 787F80 787F00 703F00 F03F00 F01F00 F01F00 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 21 0 BBX 20 18 2 0 BITMAP 007F00 03FFC0 07FFE0 0F87E0 1F03F0 3E01F0 7C01F0 7C01F0 F801F0 F801F0 F803E0 F803E0 F807C0 FC0F80 7E1F00 7FFE00 3FFC00 0FE000 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 16 0 BBX 16 18 2 0 BITMAP 1FFC 1FFE 1FFF 1E1F 1E1F 3E1F 3E1E 3E7E 3FFC 3FF8 7FE0 7C00 7C00 7800 7800 F800 F800 F800 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 21 0 BBX 21 22 2 -4 BITMAP 007F00 03FFC0 07FFE0 0F87E0 1F03F0 3E01F0 7C01F0 7C01F0 F801F0 F801F0 F803E0 F803E0 F807C0 FC0F80 7E1F00 7FFE00 3FFC00 0FFC00 003FC0 001FF8 0007E0 0000C0 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 18 0 BBX 16 18 2 0 BITMAP 1FFC 1FFF 1FFF 1E1F 1E1F 3E1F 3E3E 3C7C 3FF8 3FF0 7FF0 7CF0 7CF8 78F8 7878 F87C F87C F83E ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 2 0 BITMAP 01FC 07FE 1FFE 1F04 3E00 3E00 1F80 1FC0 0FE0 07F8 01F8 00FC 00FC 00FC 40F8 FFF0 FFE0 FF80 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 19 0 BBX 19 18 3 0 BITMAP FFFFE0 FFFFE0 FFFFE0 01F000 03E000 03E000 03E000 03E000 03E000 07C000 07C000 07C000 07C000 07C000 0F8000 0F8000 0F8000 0F8000 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 19 0 BBX 18 18 3 0 BITMAP 3E03C0 3E07C0 3E0780 3E0780 3C0780 7C0780 7C0F80 7C0F00 780F00 F80F00 F80F00 F81F00 F81E00 F81E00 FC3C00 7FFC00 3FF800 0FE000 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 19 0 BBX 18 18 4 0 BITMAP F803C0 F80380 F80780 7C0700 7C0E00 7C1E00 7C1C00 7C3C00 7C3800 3E7800 3E7000 3EF000 3EE000 3FC000 1FC000 1F8000 1F8000 1F0000 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 25 0 BBX 23 18 4 0 BITMAP F03C1E F07C1C F07C3C F87C38 F8FC78 F8FC70 F9FC70 F9FCE0 FBBCE0 FBBDE0 FBBDC0 7F3FC0 7F3F80 7E3F80 7E3F00 7C3F00 7C3E00 7C3E00 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 17 0 BBX 20 18 0 0 BITMAP 0F80F0 07C1E0 07C3C0 07E780 03EF00 03FE00 01FC00 01FC00 01F800 01F800 03F800 03FC00 07FC00 0F7E00 1E3E00 3C3E00 781F00 F01F00 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 17 0 BBX 16 18 4 0 BITMAP F80F 781E 7C3C 7C38 3C78 3EF0 3FE0 1FC0 1F80 1F80 1F00 1F00 1F00 1F00 1F00 3E00 3E00 3E00 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 17 0 BBX 17 18 2 0 BITMAP 0FFF80 0FFF80 0FFF80 003F00 007E00 00FC00 00FC00 01F800 03F000 07E000 0FC000 1F8000 1F8000 3F0000 7E0000 7FFC00 FFFC00 FFFC00 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 10 0 BBX 11 23 1 -4 BITMAP 07E0 0FE0 0FC0 0F00 0F00 0F00 1E00 1E00 1E00 1E00 1E00 3C00 3C00 3C00 3C00 3C00 7800 7800 7800 7800 7E00 FE00 FC00 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 14 0 BBX 9 23 4 -4 BITMAP E000 F000 7000 7000 7000 7800 3800 3800 3800 3C00 1C00 1C00 1C00 1E00 0E00 0E00 0E00 0F00 0700 0700 0700 0780 0380 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 10 0 BBX 11 23 1 -4 BITMAP 0FE0 0FE0 0FC0 03C0 03C0 03C0 03C0 0780 0780 0780 0780 0780 0F00 0F00 0F00 0F00 0F00 1E00 1E00 1E00 FE00 FE00 FC00 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 17 0 BBX 14 15 2 3 BITMAP 0040 0040 00E0 01E0 01E0 03E0 03F0 0770 0E70 0E30 1C38 3C38 3838 701C F01C ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 13 0 BBX 11 3 1 -3 BITMAP FFE0 FFE0 FFE0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 3 10 BITMAP 0C 1C 3C 70 78 78 F8 F8 F8 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 17 0 BBX 16 13 2 0 BITMAP 01FF 07FF 0FFE 1F1E 3E3E 7C3E 787E F8FC F9BC FB7C FF7C FE7C 78F8 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 17 0 BBX 16 19 2 0 BITMAP 0F80 0F80 1F00 1F00 1F00 1F00 1E1E 3E3F 3E7F 3EFF 3D9F 3F1F 7E1E 7C3E 7C3C 78F8 7FF0 FFE0 FF80 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 2 0 BITMAP 01F0 07F8 1FF8 3F18 7C00 7C00 F800 F800 F800 FC30 FFE0 7FE0 1F80 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 17 0 BBX 17 19 2 0 BITMAP 000F80 000F80 000F00 001F00 001F00 001F00 01FF00 07FE00 0FFE00 1F3E00 3E3E00 7C3E00 787C00 F8FC00 F9BC00 FB7C00 FF7C00 FE7800 78F800 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 2 0 BITMAP 03E0 0FF0 1FF8 3CF8 78F0 7FF0 FFC0 FF00 F808 F838 FFF8 7FF0 1F80 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 12 0 BBX 15 24 1 -5 BITMAP 00FC 01FE 03FE 07C6 0F80 0F80 3FF0 3FF0 7FF0 1F00 1F00 1F00 3E00 3E00 3E00 3E00 3E00 7C00 7C00 7C00 7C00 7800 F800 F800 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 17 0 BBX 16 18 1 -5 BITMAP 01FF 07FF 0FFF 1F1E 3E3E 3C3E 7C7E 7CFE 7DBC 7FBC 7F7C 7E7C 3C7C 80F8 E0F8 FFF0 7FE0 7F80 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 17 0 BBX 15 19 2 0 BITMAP 0F00 1F00 1F00 1F00 1F00 1E00 3E1C 3E7E 3EFE 3CFE 3DBE 7F3E 7E3C 7C7C 7C7C 787C F87C F8F8 F8F8 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 9 0 BBX 9 19 2 0 BITMAP 0F80 0F80 1F00 1F00 0000 0000 1F00 3E00 3E00 3E00 3E00 3E00 7C00 7C00 7C00 7C00 7800 F800 F800 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 10 0 BBX 15 24 -2 -5 BITMAP 003E 003E 003C 007C 0000 0000 007C 0078 00F8 00F8 00F8 00F8 00F0 01F0 01F0 01F0 01F0 03E0 03E0 03E0 C7C0 FF80 FF00 7C00 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 17 0 BBX 16 19 2 0 BITMAP 0F80 0F00 1F00 1F00 1F00 1F00 1E0F 3E1E 3E3C 3E78 3EF0 3DE0 7FE0 7DF0 7DF0 7CF8 78F8 F87C F87C ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 9 0 BBX 9 19 2 0 BITMAP 0F80 0F80 1F00 1F00 1F00 1F00 1F00 3E00 3E00 3E00 3E00 3E00 7C00 7C00 7C00 7C00 7C00 F800 F800 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 25 0 BBX 23 13 2 0 BITMAP 1E3C3C 3E7E7E 3CFEFE 3DFDFE 3FBFBE 3F3F3C 7E3F3C 7E7E3C 7C7C7C 78787C 787878 F87878 F8F8F8 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 17 0 BBX 15 13 2 0 BITMAP 1E1C 3E7E 3EFE 3DFE 3DBE 3F3E 7E3C 7C7C 7C7C 787C 787C F8F8 F8F8 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 17 0 BBX 15 13 2 0 BITMAP 01F8 0FFC 1FFE 3E3E 7C3E 783E F83E F83E F87C FCF8 FFF0 7FE0 1F80 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 17 0 BBX 17 18 1 -5 BITMAP 0F8F00 1F3F80 1F7F80 1F6F80 1ECF80 1F8F80 3F0F00 3E1F00 3E3E00 3C7C00 3FF800 7FF000 7FC000 7C0000 7C0000 780000 F80000 F80000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 17 0 BBX 16 18 2 -5 BITMAP 01FF 07FF 0FFE 1F1E 3E3E 7C3E 787E F8FC F9BC FF7C FF7C FE7C 7878 00F8 00F8 00F8 00F8 01F0 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 14 0 BBX 14 13 2 0 BITMAP 1F1C 3E38 3E78 3EF8 3DC0 3F00 7E00 7E00 7C00 7C00 7800 F800 F800 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 1 0 BITMAP 07F8 0FF8 1FF0 1F00 1E00 1F80 0FC0 03E0 01F0 41F0 FFE0 FFE0 7F80 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 11 0 BBX 9 17 3 0 BITMAP 0600 3E00 3E00 3E00 FF80 FF80 FF80 7C00 7C00 7C00 7C00 7800 F800 F800 FF00 FE00 7E00 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 17 0 BBX 15 13 3 0 BITMAP 3E3E 3C3E 7C3C 7C3C 7C7C 7C7C 78FC F9F8 FB78 FF78 FEF8 FCF8 70F0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 16 0 BBX 15 13 3 0 BITMAP F81E F81C F83C 7878 7C70 7CF0 7CE0 7DE0 3FC0 3F80 3F80 3F00 3F00 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 22 0 BBX 21 13 3 0 BITMAP F07878 F0F870 F0F8F0 F1F8E0 F3F9E0 F3F9C0 F7FBC0 FF7B80 FE7F80 FE7F00 FC3E00 FC3E00 783C00 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 14 0 BBX 16 13 0 0 BITMAP 1F0F 0F9E 0FBC 0FF8 07F0 07E0 03E0 07E0 0FF0 1FF0 3DF0 78F8 F0F8 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 16 0 BBX 17 18 1 -5 BITMAP 3E0780 3E0F00 3E0E00 1E1E00 1F3C00 1F3800 1F7800 1FF000 0FE000 0FE000 0FC000 0F8000 0F8000 0F0000 1E0000 3E0000 7C0000 F80000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 16 0 BBX 15 13 1 0 BITMAP 1FFE 1FFE 3FFC 00FC 01F8 03E0 07C0 0F80 3F00 7E00 7FFC FFF8 FFF8 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 10 0 BBX 10 23 2 -4 BITMAP 03C0 0FC0 0F80 1F00 1F00 1F00 0F00 0F00 0F00 1E00 7C00 7000 F800 3C00 3C00 3C00 7C00 7C00 F800 F800 FC00 7C00 3800 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 6 0 BBX 7 23 1 -4 BITMAP 0E 0E 0E 0C 1C 1C 1C 1C 18 18 38 38 38 30 30 70 70 70 70 60 E0 E0 E0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 10 0 BBX 10 23 1 -4 BITMAP 0F00 0F80 0FC0 07C0 07C0 0F80 0F80 0F00 0F00 0F00 0FC0 0380 0F80 1E00 3C00 3C00 3C00 3E00 3E00 3E00 FC00 FC00 F000 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 17 0 BBX 15 6 3 4 BITMAP 3C06 7F0E 7F8C E3FC E1FC C078 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 9 0 BBX 8 18 1 -5 BITMAP 1F 1F 1E 00 00 1C 1C 1C 3C 3C 3C 3C 78 78 78 F8 F8 F8 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 17 0 BBX 14 18 4 0 BITMAP 0070 0060 01F8 07FC 0FFC 3E08 3C00 7C00 7800 F800 F800 FC08 FFF0 7FF0 3FF0 0700 0300 0700 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 17 0 BBX 16 18 3 0 BITMAP 007E 01FF 03FF 03E2 07C0 07C0 07C0 1FF0 3FE0 3FE0 0F80 0F80 1F00 1E00 3C00 7FF8 FFF8 FFF8 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 17 0 BBX 20 18 0 0 BITMAP 040020 1C0060 1C00F0 0E01E0 0F7B80 07FF00 07FE00 079E00 070F00 0F0E00 070E00 079E00 0FFC00 1FFE00 3DE700 F80780 600380 400200 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 17 0 BBX 16 18 4 0 BITMAP F80F 7C1E 7C3C 3C38 3E70 3EE0 1FE0 1FC0 0F80 7FE0 7FE0 1F00 FFE0 FFC0 1F00 1E00 3E00 3E00 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 6 0 BBX 7 23 1 -4 BITMAP 0E 0E 0E 0C 1C 1C 1C 1C 18 00 00 00 00 00 30 70 70 70 70 60 E0 E0 E0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 17 0 BBX 15 23 3 -5 BITMAP 03FC 0FFE 0FFE 1F06 1F00 1F80 1FC0 0FF0 1FF8 1DFC 3C7C 3C3C 3E3C 3FB8 1FF0 0FF0 03F8 01F8 00F8 41F0 FFF0 FFE0 7F80 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 17 0 BBX 9 3 8 15 BITMAP 7380 E380 E700 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 21 0 BBX 18 18 3 0 BITMAP 03F000 0FFC00 1E0E00 380300 70F980 63FDC0 C784C0 CE00C0 CE00C0 CE00C0 CE00C0 CE08C0 67F1C0 73F180 380300 1E0E00 0FFC00 03F000 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 13 0 BBX 12 10 4 8 BITMAP 07F0 1FF0 3DF0 79E0 73E0 F3E0 F7E0 FDE0 FBC0 73C0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 16 0 BBX 15 11 2 1 BITMAP 020C 071E 0FBC 1E78 7CF0 FBE0 79F0 3CF0 3C78 1E38 0820 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 17 0 BBX 15 8 3 3 BITMAP FFFE FFFE FFFC 000C 001C 001C 001C 0018 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 7 0 BBX 6 3 2 6 BITMAP FC FC FC ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 17 0 BBX 13 13 4 5 BITMAP 0F80 1FE0 3070 67F0 C7D8 CED8 CF98 CF98 CD98 6DB0 7070 3FE0 0F80 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 17 0 BBX 9 3 8 15 BITMAP FF80 FF80 FF80 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 6 0 BBX 4 4 4 14 BITMAP 70 90 90 70 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 17 0 BBX 17 15 1 0 BITMAP 007000 007000 006000 00E000 3FFF80 3FFF80 3FFF80 00C000 01C000 01C000 01C000 000000 7FFE00 FFFE00 FFFE00 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 10 0 BBX 10 11 -14 7 BITMAP 1F80 3FC0 21C0 01C0 0380 0700 1E00 3800 7000 FF80 FF00 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 10 0 BBX 9 11 -15 7 BITMAP 3F00 3F80 0380 0700 3E00 3E00 0700 0700 8700 FF00 FC00 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 17 0 BBX 7 3 9 16 BITMAP 1E 38 E0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 17 0 BBX 17 17 1 -4 BITMAP 1F0F80 1F0F80 1F1F00 1F1F00 1E1F00 3E3F00 3E7F00 3E7E00 3EDE00 3FBE00 7FBE00 7F3E00 7E7C00 7C0000 780000 F80000 F80000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 17 0 BBX 11 22 5 -4 BITMAP 3FE0 7FE0 FEE0 FEC0 FEC0 FEC0 FDC0 7DC0 3D80 1D80 1D80 1B80 1B80 1B00 3B00 3B00 3300 3700 3600 7600 7600 7E00 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 17 0 BBX 4 3 8 6 BITMAP 70 F0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 17 0 BBX 5 5 5 -5 BITMAP 38 70 38 18 F0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 10 0 BBX 5 11 -17 7 BITMAP F8 F8 38 30 70 70 70 70 60 E0 E0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 13 0 BBX 13 10 3 8 BITMAP 03E0 0FF0 3FF8 7CF8 7878 F070 F0F0 F9E0 7F80 3E00 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 16 0 BBX 15 11 1 1 BITMAP 0820 38F0 3C78 1E78 1F3C 0FBE 1E7C 3CF0 7BE0 F1C0 6080 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 24 0 BBX 20 18 9 0 BITMAP F800F0 F801E0 3803C0 300780 700F00 701E00 703C00 707870 60F0F0 E0F1E0 E1E360 03C660 078CE0 0F1FF0 1E1FF0 3C00C0 7800C0 F001C0 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 24 0 BBX 21 18 9 0 BITMAP F800F0 F801E0 3803C0 300780 700F00 701E00 703C00 707BF0 60F7F8 E0F438 E1E038 03C070 0780E0 0F03C0 1E0700 3C0E00 781FF0 F01FE0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 24 0 BBX 22 18 11 0 BITMAP 3F003C 3F8078 0380F0 0701E0 3E03C0 3E0780 070F00 071E1C 873C3C FF3C78 FC78D8 00F198 01E338 03C7FC 0787FC 0F0030 1E0030 3C0070 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 13 0 BBX 12 18 0 -5 BITMAP 01F0 01F0 01E0 0000 0000 03E0 03C0 07C0 0F80 1F00 3E00 7C00 F800 F800 FC10 FFF0 7FE0 1FC0 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 19 0 BBX 18 22 1 0 BITMAP 003C00 000E00 000700 000000 003E00 007E00 007E00 00FE00 01FE00 01DF00 03DF00 039F00 078F00 070F00 0F0F80 0FFF80 1FFF80 1FFF80 380780 3807C0 7007C0 F007C0 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 19 0 BBX 18 22 1 0 BITMAP 000780 000E00 003800 000000 003E00 007E00 007E00 00FE00 01FE00 01DF00 03DF00 039F00 078F00 070F00 0F0F80 0FFF80 1FFF80 1FFF80 380780 3807C0 7007C0 F007C0 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 19 0 BBX 18 22 1 0 BITMAP 001E00 003F00 00E380 000000 003E00 007E00 007E00 00FE00 01FE00 01DF00 03DF00 039F00 078F00 070F00 0F0F80 0FFF80 1FFF80 1FFF80 380780 3807C0 7007C0 F007C0 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 19 0 BBX 18 22 1 0 BITMAP 003DC0 007F80 00EF00 000000 003E00 007E00 007E00 00FE00 01FE00 01DF00 03DF00 039F00 078F00 070F00 0F0F80 0FFF80 1FFF80 1FFF80 380780 3807C0 7007C0 F007C0 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 19 0 BBX 18 22 1 0 BITMAP 0039C0 0071C0 007380 000000 003E00 007E00 007E00 00FE00 01FE00 01DF00 03DF00 039F00 078F00 070F00 0F0F80 0FFF80 1FFF80 1FFF80 380780 3807C0 7007C0 F007C0 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 19 0 BBX 18 23 1 0 BITMAP 000C00 001200 001200 000C00 000000 003E00 007E00 007E00 00FE00 01FE00 01DF00 03DF00 039F00 078F00 070F00 0F0F80 0FFF80 1FFF80 1FFF80 380780 3807C0 7007C0 F007C0 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 25 0 BBX 27 18 0 0 BITMAP 0003FFE0 0007FFE0 000FFFC0 001FE000 003FE000 003FC000 007FC000 00F7FF00 01E7FF00 01C7FF00 03C78000 07FF8000 0FFF8000 1FFF8000 1C0F8000 3C0FFF80 781FFF00 F01FFF00 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 18 0 BBX 18 23 2 -5 BITMAP 007F80 03FFC0 07FFC0 0FC080 1F0000 3E0000 7C0000 7C0000 780000 F80000 F80000 F80000 F80000 FC0000 7E0600 7FFE00 3FFE00 0FF800 030000 070000 038000 018000 0F0000 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 16 0 BBX 16 22 2 0 BITMAP 01E0 0070 0038 0000 0FFF 1FFF 1FFE 1F00 1F00 1E00 3E00 3FF8 3FF8 3FF8 3C00 7C00 7C00 7C00 7C00 7FFC FFF8 FFF8 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 16 0 BBX 16 22 2 0 BITMAP 003C 0070 01C0 0000 0FFF 1FFF 1FFE 1F00 1F00 1E00 3E00 3FF8 3FF8 3FF8 3C00 7C00 7C00 7C00 7C00 7FFC FFF8 FFF8 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 16 0 BBX 16 22 2 0 BITMAP 00F0 01F8 071C 0000 0FFF 1FFF 1FFE 1F00 1F00 1E00 3E00 3FF8 3FF8 3FF8 3C00 7C00 7C00 7C00 7C00 7FFC FFF8 FFF8 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 16 0 BBX 16 22 2 0 BITMAP 039C 071C 0738 0000 0FFF 1FFF 1FFE 1F00 1F00 1E00 3E00 3FF8 3FF8 3FF8 3C00 7C00 7C00 7C00 7C00 7FFC FFF8 FFF8 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 9 0 BBX 9 22 2 0 BITMAP 1E00 0700 0380 0000 1F00 1F00 1F00 1E00 1E00 3E00 3E00 3E00 3C00 3C00 7C00 7C00 7C00 7800 7800 F800 F800 F800 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 9 0 BBX 10 22 2 0 BITMAP 03C0 0700 1C00 0000 1F00 1F00 1F00 1E00 1E00 3E00 3E00 3E00 3C00 3C00 7C00 7C00 7C00 7800 7800 F800 F800 F800 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 9 0 BBX 10 22 2 0 BITMAP 0F00 1F80 71C0 0000 1F00 1F00 1F00 1E00 1E00 3E00 3E00 3E00 3C00 3C00 7C00 7C00 7C00 7800 7800 F800 F800 F800 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 9 0 BBX 11 22 2 0 BITMAP 1CE0 38E0 39C0 0000 1F00 1F00 1F00 1E00 1E00 3E00 3E00 3E00 3C00 3C00 7C00 7C00 7C00 7800 7800 F800 F800 F800 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 21 0 BBX 20 18 1 0 BITMAP 0FFF80 0FFFC0 0FFFE0 0F07F0 1F03F0 1F01F0 1F01F0 FFE1F0 FFE1F0 FFE1F0 3E03E0 3E03E0 3E07C0 3C0FC0 7C3F80 7FFF00 7FFE00 7FF000 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 20 0 BBX 19 22 2 0 BITMAP 007B80 00FF00 01DE00 000000 1F01E0 1F01E0 1F81E0 1F81C0 1FC3C0 3FC3C0 3FE3C0 3FE3C0 3DF380 39F780 78FF80 78FF80 787F80 787F00 703F00 F03F00 F01F00 F01F00 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 21 0 BBX 20 22 2 0 BITMAP 007800 001C00 000E00 000000 007F00 03FFC0 07FFE0 0F87E0 1F03F0 3E01F0 7C01F0 7C01F0 F801F0 F801F0 F803E0 F803E0 F807C0 FC0F80 7E1F00 7FFE00 3FFC00 0FE000 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 21 0 BBX 20 22 2 0 BITMAP 000F00 001C00 007000 000000 007F00 03FFC0 07FFE0 0F87E0 1F03F0 3E01F0 7C01F0 7C01F0 F801F0 F801F0 F803E0 F803E0 F807C0 FC0F80 7E1F00 7FFE00 3FFC00 0FE000 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 21 0 BBX 20 22 2 0 BITMAP 003C00 007E00 01C700 000000 007F00 03FFC0 07FFE0 0F87E0 1F03F0 3E01F0 7C01F0 7C01F0 F801F0 F801F0 F803E0 F803E0 F807C0 FC0F80 7E1F00 7FFE00 3FFC00 0FE000 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 21 0 BBX 20 22 2 0 BITMAP 007B80 00FF00 01DE00 000000 007F00 03FFC0 07FFE0 0F87E0 1F03F0 3E01F0 7C01F0 7C01F0 F801F0 F801F0 F803E0 F803E0 F807C0 FC0F80 7E1F00 7FFE00 3FFC00 0FE000 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 21 0 BBX 20 22 2 0 BITMAP 007380 00E380 00E700 000000 007F00 03FFC0 07FFE0 0F87E0 1F03F0 3E01F0 7C01F0 7C01F0 F801F0 F801F0 F803E0 F803E0 F807C0 FC0F80 7E1F00 7FFE00 3FFC00 0FE000 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 17 0 BBX 17 15 2 0 BITMAP 080100 380300 1C0F80 0E1E00 0F3C00 07F800 03F000 03E000 07E000 0FF000 1E7800 3C3800 F81C00 600E00 400800 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 21 0 BBX 23 18 3 0 BITMAP 003FBE 01FFFC 03FFF8 07C3F0 0F83F8 1F07F8 3E0FF8 3E1EF8 7C3CF8 7C78F8 7CF1F0 7DE1F0 7FC3E0 7F87C0 3F0F80 3FFF00 7FFE00 FFF000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 19 0 BBX 18 22 3 0 BITMAP 01E000 007000 003800 000000 3E03C0 3E07C0 3E0780 3E0780 3C0780 7C0780 7C0F80 7C0F00 780F00 F80F00 F80F00 F81F00 F81E00 F81E00 FC3C00 7FFC00 3FF800 0FE000 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 19 0 BBX 18 22 3 0 BITMAP 001E00 003800 00E000 000000 3E03C0 3E07C0 3E0780 3E0780 3C0780 7C0780 7C0F80 7C0F00 780F00 F80F00 F80F00 F81F00 F81E00 F81E00 FC3C00 7FFC00 3FF800 0FE000 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 19 0 BBX 18 22 3 0 BITMAP 007800 00FC00 038E00 000000 3E03C0 3E07C0 3E0780 3E0780 3C0780 7C0780 7C0F80 7C0F00 780F00 F80F00 F80F00 F81F00 F81E00 F81E00 FC3C00 7FFC00 3FF800 0FE000 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 19 0 BBX 18 22 3 0 BITMAP 01CE00 038E00 039C00 000000 3E03C0 3E07C0 3E0780 3E0780 3C0780 7C0780 7C0F80 7C0F00 780F00 F80F00 F80F00 F81F00 F81E00 F81E00 FC3C00 7FFC00 3FF800 0FE000 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 17 0 BBX 16 22 4 0 BITMAP 0078 00E0 0380 0000 F80F 781E 7C3C 7C38 3C78 3EF0 3FE0 1FC0 1F80 1F80 1F00 1F00 1F00 1F00 1F00 3E00 3E00 3E00 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 2 0 BITMAP 1F00 1F00 1E00 1FF8 1FFC 3FFE 3E3E 3C3E 3C3E 3C3C 7CFC 7FF8 7FF0 7FC0 7800 F800 F800 F000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 18 0 BBX 17 24 1 -5 BITMAP 00FC00 03FF00 07FF00 07CF00 0F8F00 0F9E00 0F9C00 1F3800 1F3800 1F7C00 1F7E00 1E3F00 3E1F00 3E0F80 3E0780 3E8780 3CFF80 7CFF00 7CFC00 7C0000 7C0000 780000 F80000 F80000 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 17 0 BBX 16 17 2 0 BITMAP 01E0 0070 0038 0000 01FF 07FF 0FFE 1F1E 3E3E 7C3E 787E F8FC F9BC FB7C FF7C FE7C 78F8 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 17 0 BBX 16 17 2 0 BITMAP 001E 0038 00E0 0000 01FF 07FF 0FFE 1F1E 3E3E 7C3E 787E F8FC F9BC FB7C FF7C FE7C 78F8 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 17 0 BBX 16 17 2 0 BITMAP 0078 00FC 038E 0000 01FF 07FF 0FFE 1F1E 3E3E 7C3E 787E F8FC F9BC FB7C FF7C FE7C 78F8 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 17 0 BBX 16 17 2 0 BITMAP 00F7 01FE 03BC 0000 01FF 07FF 0FFE 1F1E 3E3E 7C3E 787E F8FC F9BC FB7C FF7C FE7C 78F8 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 17 0 BBX 16 17 2 0 BITMAP 01CE 038E 039C 0000 01FF 07FF 0FFE 1F1E 3E3E 7C3E 787E F8FC F9BC FB7C FF7C FE7C 78F8 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 17 0 BBX 16 18 2 0 BITMAP 0030 0048 0048 0030 0000 01FF 07FF 0FFE 1F1E 3E3E 7C3E 787E F8FC F9BC FB7C FF7C FE7C 78F8 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 25 0 BBX 23 13 2 0 BITMAP 01FF78 07FFFC 0FFFFE 1E1F3E 3C3E3C 7C3FFC 787FF0 F8BFC0 F9BC02 FF3E0E FE3FFE FC1FFC 780FE0 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 2 -5 BITMAP 01F0 07F8 1FF8 3F18 7C00 7C00 F800 F800 F800 FC30 FFE0 7FE0 1F80 0C00 1C00 0E00 0600 3C00 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 2 0 BITMAP 03C0 00E0 0070 0000 03E0 0FF0 1FF8 3CF8 78F0 7FF0 FFC0 FF00 F808 F838 FFF8 7FF0 1F80 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 2 0 BITMAP 003C 0070 01C0 0000 03E0 0FF0 1FF8 3CF8 78F0 7FF0 FFC0 FF00 F808 F838 FFF8 7FF0 1F80 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 2 0 BITMAP 00F0 01F8 071C 0000 03E0 0FF0 1FF8 3CF8 78F0 7FF0 FFC0 FF00 F808 F838 FFF8 7FF0 1F80 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 2 0 BITMAP 039C 071C 0738 0000 03E0 0FF0 1FF8 3CF8 78F0 7FF0 FFC0 FF00 F808 F838 FFF8 7FF0 1F80 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 9 0 BBX 10 17 2 0 BITMAP 0F00 0380 01C0 0000 1F00 1F00 3E00 3E00 3E00 3E00 7E00 7C00 7C00 7C00 7C00 F800 F800 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 9 0 BBX 11 17 2 0 BITMAP 01E0 0380 0E00 0000 1F00 1F00 3E00 3E00 3E00 3E00 7E00 7C00 7C00 7C00 7C00 F800 F800 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 9 0 BBX 11 17 2 0 BITMAP 0780 0FC0 38E0 0000 1F00 1F00 3E00 3E00 3E00 3E00 7E00 7C00 7C00 7C00 7C00 F800 F800 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 9 0 BBX 11 17 2 0 BITMAP 1CE0 38E0 39C0 0000 1F00 1F00 3E00 3E00 3E00 3E00 7E00 7C00 7C00 7C00 7C00 F800 F800 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 17 0 BBX 15 22 2 0 BITMAP 0030 0078 00F8 1CF0 1FE0 3FF0 07F8 0E7C 1C7C 09FE 07FE 1FFE 3E3E 7C3E 783E F83E F83C F87C FCF8 7FF0 7FE0 1F80 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 17 0 BBX 15 17 2 0 BITMAP 01EE 03FC 0778 0000 1E1C 3E7E 3EFE 3DFE 3DBE 3F3E 7E3C 7C7C 7C7C 787C 787C F8F8 F8F8 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 17 0 BBX 15 17 2 0 BITMAP 01E0 0070 0038 0000 01F8 0FFC 1FFE 3E3E 7C3E 783E F83E F83E F87C FCF8 FFF0 7FE0 1F80 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 17 0 BBX 15 17 2 0 BITMAP 003C 0070 01C0 0000 01F8 0FFC 1FFE 3E3E 7C3E 783E F83E F83E F87C FCF8 FFF0 7FE0 1F80 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 17 0 BBX 15 17 2 0 BITMAP 00F0 01F8 071C 0000 01F8 0FFC 1FFE 3E3E 7C3E 783E F83E F83E F87C FCF8 FFF0 7FE0 1F80 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 17 0 BBX 15 17 2 0 BITMAP 01EE 03FC 0778 0000 01F8 0FFC 1FFE 3E3E 7C3E 783E F83E F83E F87C FCF8 FFF0 7FE0 1F80 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 17 0 BBX 15 17 2 0 BITMAP 01CE 038E 039C 0000 01F8 0FFC 1FFE 3E3E 7C3E 783E F83E F83E F87C FCF8 FFF0 7FE0 1F80 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 17 0 BBX 15 15 3 0 BITMAP 01E0 01C0 03C0 0000 0000 0000 FFFE FFFE FFFC 0000 0000 0000 0780 0700 0F00 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 17 0 BBX 17 13 3 0 BITMAP 00FF80 07FF00 0FFF00 1F3F00 3E7F00 3CFF00 7DDF00 7F9F00 7F3E00 7E7C00 7FF800 7FF000 FFC000 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 17 0 BBX 15 17 3 0 BITMAP 01E0 0070 0038 0000 3E3E 3C3E 7C3C 7C3C 7C7C 7C7C 78FC F9F8 FB78 FF78 FEF8 FCF8 70F0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 17 0 BBX 15 17 3 0 BITMAP 003C 0070 01C0 0000 3E3E 3C3E 7C3C 7C3C 7C7C 7C7C 78FC F9F8 FB78 FF78 FEF8 FCF8 70F0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 17 0 BBX 15 17 3 0 BITMAP 00F0 01F8 071C 0000 3E3E 3C3E 7C3C 7C3C 7C7C 7C7C 78FC F9F8 FB78 FF78 FEF8 FCF8 70F0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 17 0 BBX 15 17 3 0 BITMAP 039C 071C 0738 0000 3E3E 3C3E 7C3C 7C3C 7C7C 7C7C 78FC F9F8 FB78 FF78 FEF8 FCF8 70F0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 16 0 BBX 17 22 1 -5 BITMAP 001E00 003800 00E000 000000 3E0780 3E0F00 3E0E00 1E1E00 1F3C00 1F3800 1F7800 1FF000 0FE000 0FE000 0FC000 0F8000 0F8000 0F0000 1E0000 3E0000 7C0000 F80000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 17 0 BBX 17 23 1 -5 BITMAP 0F8000 0F8000 0F8000 0F8000 0F8000 1F0F00 1F3F80 1F7F80 1F7F80 1ECF80 3F8F80 3F0F00 3E1F00 3E1E00 3E7C00 7FF800 7FF000 7FC000 7C0000 7C0000 F80000 F80000 F80000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 16 0 BBX 17 22 1 -5 BITMAP 01CE00 038E00 039C00 000000 3E0780 3E0F00 3E0E00 1E1E00 1F3C00 1F3800 1F7800 1FF000 0FE000 0FE000 0FC000 0F8000 0F8000 0F0000 1E0000 3E0000 7C0000 F80000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 18 24 1 -5 BITMAP 00FFC0 03FFC0 07FF80 078780 0F8F80 0F8F80 3FEF80 3FEF00 7FCF00 1F1F00 1F1F00 1E1F00 3E1E00 3E1E00 3E3E00 3E3E00 3C3E00 7C3C00 7C7C00 7C0000 7C0000 780000 F80000 F80000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 11 3 2 6 BITMAP FFE0 FFE0 FFE0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 13 22 4 -4 BITMAP 07C0 07C0 07C0 0780 0780 0780 7FF8 FFF8 FFF0 0F00 0F00 0F00 1F00 1E00 1E00 1E00 1E00 3E00 3E00 3C00 3C00 7C00 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 17 22 2 0 BITMAP 01C700 00FC00 007800 000000 0FFF80 0FFF80 0FFF80 003F00 007E00 00FC00 00FC00 01F800 03F000 07E000 0FC000 1F8000 1F8000 3F0000 7E0000 7FFC00 FFFC00 FFFC00 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 25 0 BBX 23 13 2 0 BITMAP 03F078 0FFDFC 1FFFFE 3E3F3E 7C3E3C 783FFC F83FF0 F83FC0 F87C02 FCFE0E FFFFFE 7FDFFC 1F07E0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 16 22 4 0 BITMAP 0738 0E38 0E70 0000 F80F 781E 7C3C 7C38 3C78 3EF0 3FE0 1FC0 1F80 1F80 1F00 1F00 1F00 1F00 1F00 3E00 3E00 3E00 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 2 0 BITMAP 1F 1F 3E 3E 3E 3E 7E 7C 7C 7C 7C F8 F8 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 11 19 1 0 BITMAP 07C0 0780 0F80 0F80 0F80 0FE0 0FE0 0FC0 1F80 3F00 7F00 FE00 DE00 BE00 3E00 3E00 3C00 3C00 7C00 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 1 0 BITMAP 07C0 07C0 0780 0F80 0F80 0FA0 0FE0 0FE0 1FC0 7F00 7F00 FF00 DE00 3E00 3E00 3FFE 3FFE 7FFE ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 15 22 3 -4 BITMAP 01F0 01F0 01F0 01E0 01E0 03E0 3FFE 3FFE 7FFC 03C0 07C0 07C0 0780 7FFC FFF8 FFF8 0F00 0F00 0F00 1F00 1F00 1F00 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 17 24 1 -5 BITMAP 00FC00 01FE00 07FC00 078400 0F8000 0F8000 3FFF80 3FFF80 7FFF00 1F0F00 1F1F00 1E1F00 3E1F00 3E1E00 3E3E00 3E3E00 3C3E00 7C3E00 7C7C00 7C0000 7C0000 780000 F80000 F80000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 2 1 BITMAP 10 38 3C 1E 1E 1F 3E 7C F8 F0 40 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 28 0 BBX 27 18 2 0 BITMAP 00FFFFE0 03FFFFE0 07FFFFC0 0F87E000 1F03E000 3E03C000 7C07C000 7C07FF00 F807FF00 F807FF00 F8078000 F80F8000 F80F8000 FC0F8000 7E1F8000 7FFFFF80 3FFFFF00 0FFFFF00 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 25 0 BBX 24 2 2 6 BITMAP FFFFFF FFFFFF ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 9 3 8 16 BITMAP E380 7E00 3C00 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 5 3 5 -4 BITMAP 70 E0 F8 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 10 3 8 16 BITMAP 1DC0 3300 EE00 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 3 1 BITMAP 02 0F 1F 3E 7C F8 78 78 3C 1C 08 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 4 3 10 16 BITMAP 70 F0 E0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 9 3 8 16 BITMAP E380 FF00 7C00 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 12 10 4 2 BITMAP 3FF0 3FF0 3FE0 7FE0 7FE0 7FE0 7FE0 7FC0 FFC0 FFC0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 10 3 7 16 BITMAP 3DC0 7F80 EF00 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 9 3 7 16 BITMAP 1E00 3F00 E380 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 13 9 3 10 BITMAP 0418 1C78 3CF8 70E0 70E0 7DF0 F9F0 F9F0 F9E0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 4 10 BITMAP F8 F8 F8 F8 70 70 70 70 70 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 14 17 1 0 BITMAP 071C 03F0 01E0 0000 07F8 0FF8 1FF0 1F00 1E00 1F80 0FC0 03E0 01F0 41F0 FFE0 FFE0 7F80 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 4 4 10 15 BITMAP 60 90 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 -4 BITMAP 7C 7C 7C 78 78 38 38 F0 E0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 14 22 5 -4 BITMAP 00FC 03FC 07FC 0F84 0F00 0F00 1F00 1F00 7FC0 7FC0 7F80 3E00 3E00 3E00 3C00 7C00 7C00 7C00 7800 7800 F800 F800 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 22 9 3 9 BITMAP FFDE7C FFDE7C FFFEFC 1E3EF8 3E3EF8 3C3778 3C3778 3C76F8 7C70F0 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 20 18 -6 0 BITMAP 0000F0 0001E0 0003C0 000780 000F00 001E00 003C00 007800 00F000 00F000 01E000 03C000 078000 0F0000 1E0000 3C0000 780000 F00000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 6 3 9 16 BITMAP F0 38 1C ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 33 0 BBX 31 18 3 0 BITMAP 1F007000 3F80E000 7FC1C000 F3C38000 F3C70000 F78E0000 FF9C0000 7F380000 3C700000 00E3E078 01C7F1FC 03CFF3FE 079E739E 0F1E779E 1E1EF79E 3C1FF7FC 781FE3F8 F00781F0 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 25 0 BBX 20 3 3 0 BITMAP 707070 E0F070 E0E0E0 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 13 9 3 10 BITMAP 3CF8 7CF8 7CF8 7CF0 7DF0 3870 38F0 F1E0 E1C0 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 15 22 2 0 BITMAP 038E 01F8 00F0 0000 01FC 07FE 1FFE 1F04 3E00 3E00 1F80 1FC0 0FE0 07F8 01F8 00FC 00FC 00FC 40F8 FFF0 FFE0 FF80 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 13 9 0 -4 BITMAP 3CF8 7CF8 7CF8 7CF0 7DF0 3870 38E0 F1E0 E180 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 1 0 BITMAP 038E 01F8 00F0 0000 1FFE 1FFE 3FFC 00FC 01F8 03E0 07C0 0F80 3F00 7E00 7FFC FFF8 FFF8 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/luBIS19.bdf100644 1750 1750 122406 5413747516 15171 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Bold-I-Normal-Sans-26-190-100-100-P-166-ISO8859-1 SIZE 19 100 100 FONTBOUNDINGBOX 53 29 -17 -5 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Bold" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 26 POINT_SIZE 190 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH "166" CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." FONT_ASCENT 24 FONT_DESCENT 6 DEFAULT_CHAR 0 ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 9 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 9 0 BBX 9 19 2 0 BITMAP 0F80 0F80 1F80 1F00 1F00 1F00 1E00 1E00 1E00 3E00 3C00 3C00 3C00 0000 0000 0000 7C00 FC00 F800 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 14 0 BBX 12 9 4 11 BITMAP F9F0 F9F0 F9F0 F9F0 70E0 70E0 70E0 70E0 70E0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 18 0 BBX 17 19 2 0 BITMAP 007380 006300 00C700 00C600 018E00 3FFF80 7FFF80 071800 063800 0E3000 0C7000 7FFF00 FFFE00 38C000 31C000 318000 618000 630000 E70000 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 18 0 BBX 16 25 2 -3 BITMAP 0070 0070 0070 01FE 07FF 0FFF 0F62 1E60 1F60 1FE0 0FC0 07E0 03F0 01F8 01FC 03FC 033C 433C 637C FFF8 FFF0 7FE0 0700 0700 0700 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 24 0 BBX 22 19 3 0 BITMAP 0F003C 3F8070 7FC0E0 7BC1E0 F3C3C0 F3C780 F3CF00 FF9E00 7F3C00 3E7800 00F1F0 01E3F8 03C7FC 078F3C 0F0F3C 1E0F3C 1C0FF8 380FF0 F003E0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 21 0 BBX 20 19 2 0 BITMAP 007E00 01FF00 03FF80 07C780 07C780 07CF00 03FE00 03FC00 07E0F0 1FF0F0 3CF8E0 78F9E0 F87DC0 F83F80 F83F00 FC3E00 7FFF00 3FFF80 0FCFC0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 3 11 BITMAP 3E 7E 7E 7C 7C 1C 38 F8 E0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 10 0 BBX 10 24 2 -4 BITMAP 0040 01C0 03C0 0780 0F00 1F00 1E00 3E00 7C00 7C00 7C00 F800 F800 F800 F800 F800 F800 F800 7800 7800 3C00 3C00 1C00 0400 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 10 0 BBX 10 24 1 -4 BITMAP 0400 0600 0F00 0F80 0780 07C0 03C0 03C0 03C0 03C0 07C0 07C0 07C0 07C0 0F80 0F80 0F00 1F00 1E00 3C00 7800 F000 E000 8000 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 4 9 BITMAP 0F00 0E00 6EC0 77C0 F3C0 0000 3E00 F700 7600 2400 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 18 0 BBX 16 16 2 0 BITMAP 00E0 00E0 00C0 01C0 01C0 01C0 FFFF FFFF FFFF 0380 0380 0380 0380 0700 0700 0700 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 -4 BITMAP 3E 7E 7E 7C 7C 1C 38 F8 E0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 18 0 BBX 16 3 2 6 BITMAP 7FFF FFFF FFFE ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 9 0 BBX 6 5 2 0 BITMAP 7C 7C FC F8 F8 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 15 0 BBX 20 24 0 -4 BITMAP 0000F0 0001E0 0001C0 000380 000780 000700 000E00 001E00 001C00 003800 007800 007000 00E000 01E000 01C000 038000 078000 070000 0E0000 1E0000 1C0000 380000 780000 F00000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 18 0 BBX 17 19 2 0 BITMAP 01F800 07FE00 0FFE00 1F1F00 3E0F00 3E0F80 7C0F80 7C1F80 7C1F80 FC1F00 F81F00 F83F00 F83E00 F83E00 F87C00 7CF800 7FF800 3FE000 0F8000 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 18 0 BBX 9 19 6 0 BITMAP 7F80 7F80 7F00 1F00 1F00 1F00 1F00 3E00 3E00 3E00 3E00 3E00 7C00 7C00 7C00 7C00 7C00 F800 F800 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 18 0 BBX 17 19 2 0 BITMAP 03FC00 0FFF00 0FFF00 181F80 000F80 000F80 001F80 001F00 007E00 00FC00 01F000 07E000 0F8000 1F0000 3E0000 7C0000 7FFE00 FFFC00 FFFC00 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 18 0 BBX 16 19 3 0 BITMAP 07F8 0FFE 0FFF 183F 001F 001E 003E 0078 1FE0 1FF0 1FFC 00FC 007E 003E 007E 40FC FFF8 FFF0 7FC0 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 18 0 BBX 16 19 2 0 BITMAP 001F 003F 007E 00FE 01FE 03FE 07BE 0F3C 1E3C 3C3C 7C7C 7FFF FFFF FFFE 0078 00F8 00F8 00F0 00F0 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 18 0 BBX 16 19 3 0 BITMAP 0FFF 0FFF 1FFE 1C00 1C00 1800 1F80 3FE0 3FF0 03F8 00FC 00FC 007C 007C 00FC 41F8 FFF0 FFE0 FF80 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 18 0 BBX 17 19 3 0 BITMAP 00FF00 03FF80 0FFF80 1F8100 1F0000 3E0000 7E0000 7DF800 7FFC00 FFFE00 FC3F00 F81F00 F81F00 F81E00 F83E00 7C7C00 7FFC00 3FF000 0FC000 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 18 0 BBX 15 19 5 0 BITMAP 7FFE 7FFE FFFE 003C 007C 00F8 01F0 01E0 03C0 0780 0F00 1F00 1E00 3E00 7C00 7C00 7800 F800 F800 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 18 0 BBX 16 19 3 0 BITMAP 01FC 07FE 0FFF 1F1F 1E0F 1E0F 1F1E 0FFC 07F0 0FF8 3FFC 7C7E 783E F81E F83E FC3C FFFC 7FF0 1FC0 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 18 0 BBX 17 19 2 0 BITMAP 01F800 07FE00 1FFF00 1F1F00 3E0F80 3C0F80 7C0F80 7C0F80 7E1F80 3FFF80 1FFF00 0FDF00 003F00 003E00 007C00 40FC00 FFF800 FFE000 7F8000 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 9 0 BBX 8 14 2 0 BITMAP 1F 1F 3E 3E 3E 00 00 00 00 7C 7C FC F8 F8 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 9 0 BBX 9 18 1 -4 BITMAP 0F80 1F80 1F00 1F00 1F00 0000 0000 0000 0000 3E00 3E00 7E00 7C00 7C00 1C00 3800 F800 E000 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 18 0 BBX 17 16 3 0 BITMAP 000080 000380 000F80 003F00 00FC00 03F000 1FC000 FF0000 7E0000 1F0000 0FC000 03F000 00FC00 003E00 001C00 000400 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 18 0 BBX 17 9 2 3 BITMAP 3FFF80 7FFF80 7FFF00 000000 000000 000000 7FFF00 FFFF00 FFFE00 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 18 0 BBX 17 16 1 0 BITMAP 100000 1C0000 3E0000 1F8000 07E000 01F800 007C00 003F00 007F80 01FC00 07E000 1F8000 7E0000 F80000 E00000 800000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 14 0 BBX 13 19 3 0 BITMAP 3FC0 7FF0 FFF8 C1F8 00F8 00F8 01F0 03E0 07C0 0F80 1F00 3E00 7E00 0000 0000 0000 7C00 FC00 F800 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 22 0 BBX 19 19 3 0 BITMAP 00FC00 03FF00 0F03C0 1C00C0 3800E0 30FC60 61FC60 630C60 C61C60 C61860 CC3860 CEF8C0 CFD9C0 CF9F80 671E00 700000 383000 1FF000 07E000 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 20 0 BBX 19 19 0 0 BITMAP 003E00 007F00 007F00 00FF00 00FF00 01EF00 01CF80 03CF80 038F80 078F80 070780 0FFFC0 1FFFC0 1FFFC0 3C07C0 3803C0 7803E0 7003E0 F003E0 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 17 0 BBX 16 19 2 0 BITMAP 0FFC 1FFE 1FFF 1F1F 1E1F 1E1F 3E3E 3E7C 3FF0 3FF0 3FFC 7C7E 7C3E 7C3E 783E 787E FFFC FFF8 FFE0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 19 0 BBX 19 19 2 0 BITMAP 007FC0 01FFE0 07FFE0 0FC040 1F8000 3F0000 3E0000 7C0000 7C0000 F80000 F80000 F80000 F80000 FC0000 FC0000 7F0300 7FFF00 3FFF00 07F800 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 21 0 BBX 20 19 2 0 BITMAP 0FFF00 1FFFC0 1FFFE0 1F07F0 1F03F0 1E01F0 3E01F0 3E01F0 3E01F0 3E03F0 3E03E0 7C03E0 7C07E0 7C0FC0 7C1FC0 7C3F80 FFFF00 FFFC00 FFF000 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 17 0 BBX 17 19 2 0 BITMAP 0FFF80 0FFF80 1FFF00 1F0000 1F0000 1F0000 1F0000 3F0000 3FFC00 3FFC00 3FF800 3E0000 7E0000 7C0000 7C0000 7C0000 7FFC00 FFFC00 FFFC00 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 16 0 BBX 17 19 2 0 BITMAP 0FFF80 0FFF80 1FFF00 1F0000 1F0000 1F0000 1F0000 3E0000 3FFC00 3FF800 3FF800 3E0000 7C0000 7C0000 7C0000 7C0000 7C0000 F80000 F80000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 20 0 BBX 19 19 2 0 BITMAP 007FC0 01FFE0 07FFE0 0FC040 1F8000 3F0000 3E0000 7C0000 7C0000 F80000 F80F80 F80F80 F80F80 FC0F00 FC0F00 7F1F00 7FFF00 3FFF00 07FC00 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 21 0 BBX 20 19 2 0 BITMAP 0F81F0 1F01F0 1F01F0 1F03E0 1F03E0 1F03E0 3E03E0 3E03E0 3FFFC0 3FFFC0 3FFFC0 7C07C0 7C07C0 7C0780 7C0F80 7C0F80 F80F80 F80F80 F81F00 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 9 0 BBX 9 19 2 0 BITMAP 0F80 0F80 1F00 1F00 1F00 1F00 1F00 3E00 3E00 3E00 3E00 3E00 7C00 7C00 7C00 7C00 7C00 F800 F800 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 13 0 BBX 15 23 0 -4 BITMAP 003E 003E 007C 007C 007C 007C 007C 00F8 00F8 00F8 00F8 00F8 01F0 01F0 01F0 01F0 01F0 03F0 03E0 47E0 FFC0 FF80 FE00 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 20 0 BBX 18 19 2 0 BITMAP 0F83C0 1F8780 1F0F00 1F1E00 1F1C00 1F3C00 3F7800 3EF000 3EE000 3FF000 3FF800 7EF800 7CFC00 7C7C00 7C7E00 7C3E00 FC3F00 F81F80 F81F80 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 2 0 BITMAP 0F80 1F00 1F00 1F00 1F00 1F00 3E00 3E00 3E00 3E00 3E00 7C00 7C00 7C00 7C00 7C00 FFFC FFFC FFFC ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 24 0 BBX 24 19 2 0 BITMAP 0FC03F 1FC07F 1FE07E 1FE0FE 1FE0FE 1DE1FE 3DE1FE 3DE3BC 3DE7BC 3DE73C 39EF7C 79FE7C 79FE78 79FC78 78F878 70F8F8 F0F0F8 F0F0F0 F000F0 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 20 0 BBX 20 19 2 0 BITMAP 0F00F0 1F80F0 1F80F0 1FC1E0 1FC1E0 1FE1E0 3FE1E0 3FF1E0 3DF3C0 3DFBC0 3CFBC0 78FFC0 787FC0 787F80 783F80 783F80 F01F80 F01F80 F00F00 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 22 0 BBX 21 19 3 0 BITMAP 007F00 01FFC0 07FFE0 0FC3F0 1F01F8 3E01F8 3E01F8 7C01F8 7C01F8 FC01F8 F801F0 F801F0 F803E0 FC07E0 FC07C0 7E1F80 3FFF00 1FFC00 07F000 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 17 0 BBX 17 19 2 0 BITMAP 0FFE00 1FFF00 1FFF80 1F1F80 1F0F80 1E0F80 3E0F00 3E1F00 3E3E00 3FFE00 3FF800 7FE000 7C0000 7C0000 7C0000 7C0000 F80000 F80000 F80000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 22 0 BBX 21 23 3 -4 BITMAP 007F00 01FFC0 07FFE0 0FC3F0 1F01F8 3E01F8 3E01F8 7C01F8 7C01F8 FC01F8 F801F0 F801F0 F803E0 FC07E0 FC07C0 7E1F80 3FFF00 1FFC00 07FE00 003FE0 000FF8 0003F0 0000E0 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 18 0 BBX 17 19 2 0 BITMAP 0FFE00 1FFF00 1FFF80 1F0F80 1F0F80 1E0F80 3E1F00 3E3F00 3EFE00 3FF800 3FF000 7CF800 7CF800 7C7800 7C7C00 787C00 F83E00 F83E00 F83F00 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 17 0 BBX 16 19 2 0 BITMAP 01FE 07FF 0FFF 1F02 1F00 1F00 1F80 1FC0 1FF0 07F8 03FC 00FC 007E 007E 007C 607C FFF8 FFF0 FF80 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 19 0 BBX 19 19 4 0 BITMAP FFFFE0 FFFFE0 FFFFE0 01F000 03E000 03E000 03E000 03E000 03E000 03C000 07C000 07C000 07C000 07C000 078000 0F8000 0F8000 0F8000 0F8000 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 20 0 BBX 18 19 3 0 BITMAP 3E03C0 3E07C0 3E07C0 3E0780 3C0780 7C0780 7C0F80 7C0F80 7C0F00 7C0F00 F80F00 F80F00 F81F00 F81E00 F81E00 FC3C00 7FFC00 3FF000 0FE000 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 20 0 BBX 18 19 4 0 BITMAP F803C0 F80380 F80780 7C0700 7C0F00 7C0E00 7C1E00 7C1C00 7C3800 3E3800 3E7000 3E7000 3EE000 3FE000 3FC000 1FC000 1F8000 1F8000 1F0000 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 26 0 BBX 24 19 4 0 BITMAP F83C0F F83C0E F87C1E F87C1C F87C3C F8FC38 F8FE78 F9FE70 F9FE70 FBFEF0 FBBEE0 7BBFE0 7F3FC0 7F3FC0 7E3F80 7E3F80 7E3F00 7C3F00 7C3E00 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 18 0 BBX 21 19 0 0 BITMAP 0FC078 07C0F0 07E1E0 03E3C0 03E780 03FF00 01FE00 01FC00 00FC00 00F800 01FC00 03FC00 03FE00 07BE00 0F3E00 1E3F00 3C1F00 781F80 F80F80 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 18 0 BBX 17 19 4 0 BITMAP F80780 7C0F00 7C1E00 7C3C00 3E3800 3E7800 3EF000 1FE000 1FC000 1FC000 0F8000 0F8000 1F8000 1F0000 1F0000 1F0000 1F0000 3F0000 3E0000 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 18 0 BBX 18 19 2 0 BITMAP 0FFFC0 0FFFC0 0FFFC0 001F80 003F00 007E00 00FE00 00FC00 01F800 03F000 07E000 0FC000 1FC000 1F8000 3F0000 7E0000 7FFE00 FFFE00 FFFE00 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 10 0 BBX 11 24 1 -4 BITMAP 07E0 0FE0 0FC0 0F00 0F00 0F00 1E00 1E00 1E00 1E00 1E00 3C00 3C00 3C00 3C00 3C00 7C00 7800 7800 7800 7800 FE00 FE00 FC00 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 15 0 BBX 10 24 4 -4 BITMAP F000 7000 7000 7000 7800 3800 3800 3800 1C00 1C00 1C00 1C00 0E00 0E00 0E00 0E00 0700 0700 0700 0780 0380 0380 0380 03C0 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 10 0 BBX 11 24 1 -4 BITMAP 0FE0 0FE0 0FE0 03C0 03C0 03C0 03C0 07C0 0780 0780 0780 0780 0780 0F00 0F00 0F00 0F00 0F00 1E00 1E00 1E00 FE00 FE00 FC00 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 18 0 BBX 15 16 2 3 BITMAP 0020 0020 0060 00E0 00F0 01F0 03F0 03B8 0738 0F38 0E38 1C1C 3C1C 381C 700E F00E ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 13 0 BBX 12 3 0 -3 BITMAP FFF0 FFF0 FFE0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 3 11 BITMAP 06 1E 3E 78 7C 7C 7C FC F8 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 18 0 BBX 16 14 2 0 BITMAP 01FF 07FF 0FFF 1F1E 3E3E 7C3E 7C7E 787E F8BC F9BC FF7C FE7C FC7C 78F8 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 18 0 BBX 16 20 2 0 BITMAP 0F80 0F00 1F00 1F00 1F00 1F00 1E1E 3E3E 3E7F 3EFF 3D9F 3D1F 7E1E 7E3E 7C3E 7C7C 78F8 FFF0 FFE0 FF80 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 14 0 BBX 14 14 2 0 BITMAP 01F8 07FC 0FF8 3F08 3E00 7C00 7C00 F800 F800 F800 FC30 FFF0 7FE0 1F80 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 18 0 BBX 18 20 2 0 BITMAP 0007C0 0007C0 000F80 000F80 000F80 000F80 01FF80 07FF00 0FFF00 1F1F00 3E1F00 3C1F00 7C3E00 787E00 F8FE00 F9BE00 FFBE00 FF7C00 7E7C00 387C00 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 2 0 BITMAP 01F0 07F8 1FFC 3E7C 3C7C 7CF8 7FF0 FFE0 FF80 F804 FC1C FFFC 7FF8 1FC0 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 12 0 BBX 15 25 1 -5 BITMAP 00FC 01FE 03FE 07C6 0F80 0F80 3FF0 3FF0 7FF0 1F00 1F00 1F00 3E00 3E00 3E00 3E00 3E00 7C00 7C00 7C00 7C00 7C00 F800 F800 F800 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 17 0 BBX 17 19 1 -5 BITMAP 00FF80 03FF80 07FF80 0F1F00 1E1F00 3E1F00 3C3F00 7C7F00 7CDE00 7DDE00 7FBE00 7F3E00 7E3E00 3C7C00 807C00 E0FC00 FFF800 7FF000 7F8000 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 18 0 BBX 16 20 2 0 BITMAP 0F80 0F80 1F80 1F00 1F00 1F00 1F1E 3E3F 3E7F 3EFF 3EDF 3D9F 7F3E 7E3E 7C3E 7C3E 7C3E FC7C F87C F87C ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 9 0 BBX 9 20 2 0 BITMAP 0F80 0F80 1F00 1F00 0000 0000 1F00 3E00 3E00 3E00 3E00 3E00 7C00 7C00 7C00 7C00 7C00 F800 F800 F800 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 11 0 BBX 15 25 -1 -5 BITMAP 003E 003E 003C 007C 0000 0000 007C 007C 00F8 00F8 00F8 00F8 01F8 01F0 01F0 01F0 01F0 03F0 03E0 03E0 03E0 C7C0 FF80 FF00 7C00 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 17 0 BBX 17 20 2 0 BITMAP 0F8000 0F8000 0F8000 1F0000 1F0000 1F0000 1F0780 1F0F00 3E1E00 3E3C00 3E7800 3EF000 3FF000 7DF000 7CF800 7CF800 7CFC00 7C7C00 F87E00 F83E00 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 9 0 BBX 9 20 2 0 BITMAP 0F80 0F80 1F80 1F00 1F00 1F00 1F00 3F00 3E00 3E00 3E00 3E00 7E00 7C00 7C00 7C00 7C00 FC00 F800 F800 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 26 0 BBX 24 14 2 0 BITMAP 1E1C1E 3E7E3F 3EFE7F 3FFEFF 3DBFDF 3FBF9F 7F3F1E 7E3F3E 7E3E3E 7C7C3E 787C3E F87C3C F87C7C F8787C ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 18 0 BBX 16 14 2 0 BITMAP 1F1E 1E3F 3E7F 3EFF 3EDF 3D9F 3F3E 7E3E 7C3E 7C3E 7C3E 787C F87C F87C ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 17 0 BBX 16 14 2 0 BITMAP 01F8 07FE 1FFF 3E3F 3C1F 7C1F 781F F81E F83E F83C FC7C FFF8 7FE0 1F80 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 18 0 BBX 17 19 1 -5 BITMAP 0F8F00 1F1F80 1F3F80 1F7F80 1ECF80 1E8F80 3F0F00 3F1F00 3E1F00 3E3E00 3C7C00 7FF800 7FF000 7FC000 7C0000 7C0000 F80000 F80000 F80000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 18 0 BBX 16 19 2 -5 BITMAP 01FF 07FF 0FFF 1F1E 3E3E 7C3E 7C7E 787E F8BC F9FC FF7C FE7C FC7C 78F8 00F8 00F8 00F8 00F8 01F0 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 14 0 BBX 14 14 2 0 BITMAP 1F1C 3E3C 3E78 3EF8 3FC0 3D80 7F00 7E00 7C00 7C00 7C00 F800 F800 F800 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 1 0 BITMAP 03F8 0FF8 1FF0 1F00 1E00 1F00 0FC0 07E0 03E0 01F0 43F0 FFE0 FFC0 7F80 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 11 0 BBX 10 18 3 0 BITMAP 0700 1F00 1F00 3F00 FFC0 FFC0 FFC0 3E00 7E00 7C00 7C00 7C00 7C00 F800 FC00 FF00 FF00 3F00 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 18 0 BBX 16 14 2 0 BITMAP 3E1F 3E1F 3E3E 7C3E 7C3E 7C3E 7C7E 7CFC F9BC FB7C FF7C FE7C FC78 78F8 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 16 0 BBX 16 14 3 0 BITMAP F80F F80E FC1C 7C3C 7C38 7C78 7C70 7CE0 3FE0 3FC0 3FC0 3F80 3F80 3F00 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 23 0 BBX 22 14 3 0 BITMAP F07C3C F07C38 F0FC78 F8FC70 F9FCF0 F9FCE0 FBBDE0 FBBDC0 FF3FC0 FF3F80 FE3F80 FE3F00 7C3F00 7C3E00 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 15 0 BBX 16 14 0 0 BITMAP 1F0F 0F1E 0FBC 0FF8 07F0 07F0 03E0 07E0 07E0 0FF0 1FF0 3DF0 78F8 F0F8 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 16 0 BBX 18 19 1 -5 BITMAP 3E03C0 3E0780 1F0700 1F0F00 1F1E00 1F1C00 1F3C00 1FF800 0FF000 0FF000 0FE000 0FC000 0FC000 078000 0F0000 1F0000 3E0000 7C0000 FC0000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 16 0 BBX 16 14 1 0 BITMAP 1FFF 1FFF 1FFE 007E 00FC 01F0 03E0 07C0 0F80 3F00 7E00 7FFC FFFC FFFC ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 10 0 BBX 10 24 2 -4 BITMAP 03C0 0FC0 0FC0 1F00 1F00 1F00 1F00 1F00 1F00 1E00 7E00 7800 F800 FC00 3C00 3C00 3C00 7C00 7C00 F800 F800 FC00 7C00 3800 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 7 0 BBX 8 24 1 -4 BITMAP 07 07 06 0E 0E 0E 0E 0C 1C 1C 1C 1C 38 38 38 38 30 70 70 70 70 60 E0 E0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 10 0 BBX 10 24 1 -4 BITMAP 0F00 0F80 0FC0 07C0 07C0 0F80 0F80 0F80 0F00 0F00 0FC0 07C0 0780 1F80 1E00 3E00 3E00 3E00 3E00 3E00 3E00 FC00 FC00 F000 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 18 0 BBX 16 7 2 4 BITMAP 1E00 3F07 7F87 63C6 E1FE E0FC 0078 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 9 0 BBX 9 19 1 -5 BITMAP 0F80 1F80 1F00 0000 0000 0000 1E00 1E00 1E00 3E00 3C00 3C00 3C00 7C00 7C00 7C00 7C00 F800 F800 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 18 0 BBX 15 19 4 0 BITMAP 0070 0070 00F0 07FE 0FFC 1F0C 3E00 7C00 7C00 F800 F800 F800 FC18 FFF8 7FF8 3FF0 0380 0380 0700 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 18 0 BBX 16 19 3 0 BITMAP 007E 01FF 03FF 03E2 07C0 07C0 07C0 07C0 1FF0 3FE0 3FE0 0F80 0F80 1F00 1E00 3C00 7FF8 FFF8 FFF8 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 18 0 BBX 20 19 1 0 BITMAP 040020 1C0060 1C00F0 0E01E0 0F7BC0 07FF80 03FF00 079E00 078F00 0F0F00 0F0E00 071E00 079E00 0FFE00 1FFE00 7DE700 F80780 600380 400200 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 18 0 BBX 17 19 4 0 BITMAP F80780 7C0F00 7C1E00 3E3C00 3E7800 1FF000 1FE000 1FC000 0FC000 7FF000 7FF000 0F8000 FFE000 FFE000 1F0000 1F0000 1F0000 3E0000 3E0000 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 7 0 BBX 8 24 1 -4 BITMAP 07 07 06 0E 0E 0E 0E 0C 1C 00 00 00 00 00 00 38 30 70 70 70 70 60 E0 E0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 18 0 BBX 16 23 2 -4 BITMAP 01FE 07FF 0FFF 1F82 1F00 1F80 0FE0 0FF8 0FFC 1CFE 3C3E 3C1E 3E1C 3FFC 1FF8 0FF8 03F8 00FC 007C 40F8 FFF8 FFF0 7F80 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 17 0 BBX 9 3 8 16 BITMAP 7380 E380 E700 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 22 0 BBX 20 19 3 0 BITMAP 01F800 07FE00 1E0F00 380380 30FCC0 63FEE0 678260 C70060 CE0030 CE0030 CE0030 CE0060 6F0C60 67F8E0 31F8C0 380380 1E0F00 07FE00 01F800 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 14 0 BBX 12 10 4 9 BITMAP 07F0 1FF0 3DF0 79E0 73E0 F3E0 F7E0 FDE0 FBC0 73C0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 16 0 BBX 15 12 3 1 BITMAP 0204 070C 0FBE 1E7C 3CF8 7BF0 F9E0 79F0 3CF0 1C78 1E38 0820 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 18 0 BBX 16 9 3 3 BITMAP 7FFF FFFF FFFE 000E 000E 000E 000E 000C 001C ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 8 0 BBX 6 3 2 7 BITMAP FC FC FC ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 18 0 BBX 13 14 5 5 BITMAP 0F80 1FE0 3870 67F8 E7F8 C6D8 CEC8 CF88 CD98 ED98 6DF8 3870 1FE0 0F80 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 17 0 BBX 9 3 8 16 BITMAP FF80 FF80 FF80 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 6 0 BBX 4 5 4 14 BITMAP 70 90 90 90 70 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 18 0 BBX 17 16 2 0 BITMAP 007000 007000 00E000 00E000 3FFF80 3FFF80 3FFF80 01C000 01C000 01C000 01C000 01C000 000000 7FFE00 FFFE00 FFFE00 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 11 0 BBX 10 11 -15 8 BITMAP 1F80 3FC0 21C0 01C0 0380 0F00 1E00 3800 7000 FF80 FF00 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 11 0 BBX 9 11 -15 8 BITMAP 3F00 3F80 0380 0700 3E00 3E00 0700 0700 8700 FF00 FC00 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 17 0 BBX 8 3 9 17 BITMAP 1F 38 F0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 18 0 BBX 17 18 1 -4 BITMAP 1F0F80 1F0F80 1F0F80 1F1F00 1E1F00 3E3F00 3E3F00 3E7F00 3EDE00 3FFE00 7FBE00 7FBE00 7F3E00 7E7C00 7C0000 F80000 F80000 F80000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 18 0 BBX 12 23 5 -4 BITMAP 3FF0 7FF0 FF70 FF60 FE60 FEE0 FEE0 7EE0 3EC0 1CC0 0DC0 1DC0 1DC0 1D80 1980 1B80 3B80 3B80 3B00 3300 3700 7700 7700 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 18 0 BBX 4 3 8 7 BITMAP 70 F0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 17 0 BBX 5 5 6 -5 BITMAP 38 70 38 38 F0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 11 0 BBX 5 11 -17 8 BITMAP F8 F8 38 30 70 70 70 70 60 E0 E0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 14 0 BBX 13 10 3 9 BITMAP 03E0 0FF0 3FF8 7CF8 7878 F8F0 F0F0 F9E0 7F80 3E00 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 16 0 BBX 15 12 2 1 BITMAP 0820 38F0 3C70 1E78 1F3C 0F3E 1FBC 3E78 7CF0 FBE0 61C0 4080 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 25 0 BBX 21 19 9 0 BITMAP 7C0078 7C00F0 1C01E0 1803C0 380780 380F00 381E00 383C00 307838 70F878 70F0F0 01E1B0 03C330 078670 0F0FF8 1E0FF8 3C0060 780060 F000E0 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 25 0 BBX 22 19 9 0 BITMAP 7C0078 7C00F0 1C01E0 1803C0 380780 380F00 381E00 383C00 3079F8 70FBFC 70F21C 01E01C 03C038 0780F0 0F01E0 1E0380 3C0700 780FF8 F00FF0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 25 0 BBX 22 19 10 0 BITMAP 3F003C 3F8078 0380F0 0701E0 3E03C0 3E0780 070F00 071E00 873C1C FF7C3C FC7878 00F0D8 01E198 03C338 0787FC 0F07FC 1E0030 3C0030 780070 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 14 0 BBX 13 19 0 -5 BITMAP 00F8 01F8 01F0 0000 0000 0000 03F0 03E0 07C0 0F80 1F00 3E00 7C00 F800 F800 FC18 FFF8 7FF0 1FE0 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 20 0 BBX 19 23 0 0 BITMAP 001E00 000700 000380 000000 003E00 007F00 007F00 00FF00 00FF00 01EF00 01CF80 03CF80 038F80 078F80 070780 0FFFC0 1FFFC0 1FFFC0 3C07C0 3803C0 7803E0 7003E0 F003E0 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 20 0 BBX 19 23 0 0 BITMAP 0007C0 000E00 003C00 000000 003E00 007F00 007F00 00FF00 00FF00 01EF00 01CF80 03CF80 038F80 078F80 070780 0FFFC0 1FFFC0 1FFFC0 3C07C0 3803C0 7803E0 7003E0 F003E0 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 20 0 BBX 19 23 0 0 BITMAP 000F00 001F80 0071C0 000000 003E00 007F00 007F00 00FF00 00FF00 01EF00 01CF80 03CF80 038F80 078F80 070780 0FFFC0 1FFFC0 1FFFC0 3C07C0 3803C0 7803E0 7003E0 F003E0 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 20 0 BBX 19 23 0 0 BITMAP 001EE0 003FC0 007780 000000 003E00 007F00 007F00 00FF00 00FF00 01EF00 01CF80 03CF80 038F80 078F80 070780 0FFFC0 1FFFC0 1FFFC0 3C07C0 3803C0 7803E0 7003E0 F003E0 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 20 0 BBX 19 23 0 0 BITMAP 0039C0 0071C0 007380 000000 003E00 007F00 007F00 00FF00 00FF00 01EF00 01CF80 03CF80 038F80 078F80 070780 0FFFC0 1FFFC0 1FFFC0 3C07C0 3803C0 7803E0 7003E0 F003E0 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 20 0 BBX 19 24 0 0 BITMAP 000600 000900 000900 000600 000000 003E00 007F00 007F00 00FF00 00FF00 01EF00 01CF80 03CF80 038F80 078F80 070780 0FFFC0 1FFFC0 1FFFC0 3C07C0 3803C0 7803E0 7003E0 F003E0 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 26 0 BBX 28 19 0 0 BITMAP 0003FFF0 0003FFF0 0007FFE0 000FF000 001FE000 001FE000 003FE000 007BE000 00F3FF80 00E7FF80 01E7FF00 03C7C000 07FFC000 0FFFC000 0FFF8000 1E0F8000 3C0FFFC0 780FFF80 F01FFF80 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 19 0 BBX 19 24 2 -5 BITMAP 007FC0 01FFE0 07FFE0 0FC040 1F8000 3F0000 3E0000 7C0000 7C0000 F80000 F80000 F80000 F80000 FC0000 FC0000 7F0300 7FFF00 3FFF00 07F800 030000 070000 038000 038000 0F0000 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 17 0 BBX 17 23 2 0 BITMAP 01E000 007000 003800 000000 0FFF80 0FFF80 1FFF00 1F0000 1F0000 1F0000 1F0000 3F0000 3FFC00 3FFC00 3FF800 3E0000 7E0000 7C0000 7C0000 7C0000 7FFC00 FFFC00 FFFC00 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 17 0 BBX 17 23 2 0 BITMAP 003E00 007000 01E000 000000 0FFF80 0FFF80 1FFF00 1F0000 1F0000 1F0000 1F0000 3F0000 3FFC00 3FFC00 3FF800 3E0000 7E0000 7C0000 7C0000 7C0000 7FFC00 FFFC00 FFFC00 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 17 0 BBX 17 23 2 0 BITMAP 007800 00FC00 038E00 000000 0FFF80 0FFF80 1FFF00 1F0000 1F0000 1F0000 1F0000 3F0000 3FFC00 3FFC00 3FF800 3E0000 7E0000 7C0000 7C0000 7C0000 7FFC00 FFFC00 FFFC00 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 17 0 BBX 17 23 2 0 BITMAP 01CE00 038E00 039C00 000000 0FFF80 0FFF80 1FFF00 1F0000 1F0000 1F0000 1F0000 3F0000 3FFC00 3FFC00 3FF800 3E0000 7E0000 7C0000 7C0000 7C0000 7FFC00 FFFC00 FFFC00 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 9 0 BBX 10 23 2 0 BITMAP 0F00 0380 01C0 0000 0F80 0F80 1F00 1F00 1F00 1F00 1F00 3E00 3E00 3E00 3E00 3E00 7C00 7C00 7C00 7C00 7C00 F800 F800 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 9 0 BBX 11 23 2 0 BITMAP 03E0 0700 1E00 0000 0F80 0F80 1F00 1F00 1F00 1F00 1F00 3E00 3E00 3E00 3E00 3E00 7C00 7C00 7C00 7C00 7C00 F800 F800 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 9 0 BBX 11 23 2 0 BITMAP 0780 0FC0 38E0 0000 0F80 0F80 1F00 1F00 1F00 1F00 1F00 3E00 3E00 3E00 3E00 3E00 7C00 7C00 7C00 7C00 7C00 F800 F800 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 9 0 BBX 11 23 2 0 BITMAP 1CE0 38E0 39C0 0000 0F80 0F80 1F00 1F00 1F00 1F00 1F00 3E00 3E00 3E00 3E00 3E00 7C00 7C00 7C00 7C00 7C00 F800 F800 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 21 0 BBX 21 19 1 0 BITMAP 0FFF80 0FFFE0 0FFFF0 0F83F8 0F81F8 1F00F8 1F00F8 1F00F8 FFF0F8 FFE1F8 FFE1F0 3E01F0 3E03F0 3E07E0 3E0FE0 3E1FC0 7FFF80 7FFE00 7FF800 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 20 0 BBX 20 23 2 0 BITMAP 007B80 00FF00 01DE00 000000 0F00F0 1F80F0 1F80F0 1FC1E0 1FC1E0 1FE1E0 3FE1E0 3FF1E0 3DF3C0 3DFBC0 3CFBC0 78FFC0 787FC0 787F80 783F80 783F80 F01F80 F01F80 F00F00 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 22 0 BBX 21 23 3 0 BITMAP 003C00 000E00 000700 000000 007F00 01FFC0 07FFE0 0FC3F0 1F01F8 3E01F8 3E01F8 7C01F8 7C01F8 FC01F8 F801F0 F801F0 F803E0 FC07E0 FC07C0 7E1F80 3FFF00 1FFC00 07F000 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 22 0 BBX 21 23 3 0 BITMAP 000F80 001C00 007800 000000 007F00 01FFC0 07FFE0 0FC3F0 1F01F8 3E01F8 3E01F8 7C01F8 7C01F8 FC01F8 F801F0 F801F0 F803E0 FC07E0 FC07C0 7E1F80 3FFF00 1FFC00 07F000 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 22 0 BBX 21 23 3 0 BITMAP 001E00 003F00 00E380 000000 007F00 01FFC0 07FFE0 0FC3F0 1F01F8 3E01F8 3E01F8 7C01F8 7C01F8 FC01F8 F801F0 F801F0 F803E0 FC07E0 FC07C0 7E1F80 3FFF00 1FFC00 07F000 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 22 0 BBX 21 23 3 0 BITMAP 003DC0 007F80 00EF00 000000 007F00 01FFC0 07FFE0 0FC3F0 1F01F8 3E01F8 3E01F8 7C01F8 7C01F8 FC01F8 F801F0 F801F0 F803E0 FC07E0 FC07C0 7E1F80 3FFF00 1FFC00 07F000 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 22 0 BBX 21 23 3 0 BITMAP 007380 00E380 00E700 000000 007F00 01FFC0 07FFE0 0FC3F0 1F01F8 3E01F8 3E01F8 7C01F8 7C01F8 FC01F8 F801F0 F801F0 F803E0 FC07E0 FC07C0 7E1F80 3FFF00 1FFC00 07F000 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 18 0 BBX 17 16 2 0 BITMAP 080100 380300 1C0780 1E1F00 0F3E00 077800 03F000 03E000 03E000 07E000 0F7000 3E7800 7C3C00 F01C00 600E00 400800 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 22 0 BBX 24 19 4 0 BITMAP 003F9F 00FFFE 03FFFC 07E1F8 0F81FC 1F03FC 1F07FC 3E0FFC 3E1EFC 7E3CFC 7C78F8 7CF0F8 7DE1F0 7FC3F0 7F83E0 3F0FC0 3FFF80 7FFE00 FBF800 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 20 0 BBX 18 23 3 0 BITMAP 00F000 003800 001C00 000000 3E03C0 3E07C0 3E07C0 3E0780 3C0780 7C0780 7C0F80 7C0F80 7C0F00 7C0F00 F80F00 F80F00 F81F00 F81E00 F81E00 FC3C00 7FFC00 3FF000 0FE000 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 20 0 BBX 18 23 3 0 BITMAP 003E00 007000 01E000 000000 3E03C0 3E07C0 3E07C0 3E0780 3C0780 7C0780 7C0F80 7C0F80 7C0F00 7C0F00 F80F00 F80F00 F81F00 F81E00 F81E00 FC3C00 7FFC00 3FF000 0FE000 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 20 0 BBX 18 23 3 0 BITMAP 007800 00FC00 038E00 000000 3E03C0 3E07C0 3E07C0 3E0780 3C0780 7C0780 7C0F80 7C0F80 7C0F00 7C0F00 F80F00 F80F00 F81F00 F81E00 F81E00 FC3C00 7FFC00 3FF000 0FE000 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 20 0 BBX 18 23 3 0 BITMAP 01CE00 038E00 039C00 000000 3E03C0 3E07C0 3E07C0 3E0780 3C0780 7C0780 7C0F80 7C0F80 7C0F00 7C0F00 F80F00 F80F00 F81F00 F81E00 F81E00 FC3C00 7FFC00 3FF000 0FE000 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 18 0 BBX 17 23 4 0 BITMAP 007C00 00E000 03C000 000000 F80780 7C0F00 7C1E00 7C3C00 3E3800 3E7800 3EF000 1FE000 1FC000 1FC000 0F8000 0F8000 1F8000 1F0000 1F0000 1F0000 1F0000 3F0000 3E0000 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 17 0 BBX 16 19 2 0 BITMAP 0F00 1F00 1F00 1FFC 1FFE 1FFF 3E1F 3E1F 3E1F 3E1E 3C3E 7C7C 7FFC 7FF0 7FC0 7800 F800 F800 F800 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 18 0 BBX 17 25 1 -5 BITMAP 00FC00 01FF00 03FF00 07CF00 0F8F00 0F9E00 0F9C00 0F3800 1F3800 1F7800 1F7C00 1F3E00 1E3F00 3E1F80 3E0F80 3E0780 3E8780 3CFF80 7CFF00 7CFC00 7C0000 7C0000 780000 F80000 F80000 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 18 0 BBX 16 18 2 0 BITMAP 00F0 0038 001C 0000 01FF 07FF 0FFF 1F1E 3E3E 7C3E 7C7E 787E F8BC F9BC FF7C FE7C FC7C 78F8 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 18 0 BBX 16 18 2 0 BITMAP 003E 0070 01E0 0000 01FF 07FF 0FFF 1F1E 3E3E 7C3E 7C7E 787E F8BC F9BC FF7C FE7C FC7C 78F8 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 18 0 BBX 16 18 2 0 BITMAP 0078 00FC 038E 0000 01FF 07FF 0FFF 1F1E 3E3E 7C3E 7C7E 787E F8BC F9BC FF7C FE7C FC7C 78F8 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 18 0 BBX 16 18 2 0 BITMAP 00F7 01FE 03BC 0000 01FF 07FF 0FFF 1F1E 3E3E 7C3E 7C7E 787E F8BC F9BC FF7C FE7C FC7C 78F8 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 18 0 BBX 16 18 2 0 BITMAP 01CE 038E 039C 0000 01FF 07FF 0FFF 1F1E 3E3E 7C3E 7C7E 787E F8BC F9BC FF7C FE7C FC7C 78F8 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 18 0 BBX 16 19 2 0 BITMAP 0030 0048 0048 0030 0000 01FF 07FF 0FFF 1F1E 3E3E 7C3E 7C7E 787E F8BC F9BC FF7C FE7C FC7C 78F8 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 26 0 BBX 24 14 2 0 BITMAP 01FFFC 07FFFE 0FFFFF 1F1F9F 3E1F1F 3C3E3E 7C3FFC 787FF8 F8FFE0 F9BE01 FF3F07 FF3FFF 7E1FFE 380FF0 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 14 0 BBX 14 19 2 -5 BITMAP 01F8 07FC 0FF8 3F08 3E00 7C00 7C00 F800 F800 F800 FC30 FFF0 7FE0 1F80 0C00 1C00 0E00 0E00 3C00 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 2 0 BITMAP 01E0 0070 0038 0000 01F0 07F8 1FFC 3E7C 3C7C 7CF8 7FF0 FFE0 FF80 F804 FC1C FFFC 7FF8 1FC0 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 2 0 BITMAP 003E 0070 01E0 0000 01F0 07F8 1FFC 3E7C 3C7C 7CF8 7FF0 FFE0 FF80 F804 FC1C FFFC 7FF8 1FC0 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 2 0 BITMAP 00F0 01F8 071C 0000 01F0 07F8 1FFC 3E7C 3C7C 7CF8 7FF0 FFE0 FF80 F804 FC1C FFFC 7FF8 1FC0 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 2 0 BITMAP 01CE 038E 039C 0000 01F0 07F8 1FFC 3E7C 3C7C 7CF8 7FF0 FFE0 FF80 F804 FC1C FFFC 7FF8 1FC0 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 9 0 BBX 10 18 2 0 BITMAP 0F00 0380 01C0 0000 1F00 1F00 3E00 3E00 3E00 3E00 3E00 7C00 7C00 7C00 7C00 7C00 F800 F800 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 9 0 BBX 11 18 2 0 BITMAP 03E0 0700 1E00 0000 1F00 1F00 3E00 3E00 3E00 3E00 3E00 7C00 7C00 7C00 7C00 7C00 F800 F800 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 9 0 BBX 11 18 2 0 BITMAP 0780 0FC0 38E0 0000 1F00 1F00 3E00 3E00 3E00 3E00 3E00 7C00 7C00 7C00 7C00 7C00 F800 F800 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 9 0 BBX 11 18 2 0 BITMAP 1CE0 38E0 39C0 0000 1F00 1F00 3E00 3E00 3E00 3E00 3E00 7C00 7C00 7C00 7C00 7C00 F800 F800 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 17 0 BBX 16 23 2 0 BITMAP 0010 0038 007C 1EF0 1FE0 3FF0 07F8 0E7C 1E3E 0DFE 07FE 0FFF 1E3F 3C3F 7C1F 781E F83E F83E F87C FCF8 7FF0 7FE0 1F80 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 18 0 BBX 16 18 2 0 BITMAP 00F7 01FE 03BC 0000 1F1E 1E3F 3E7F 3EFF 3EDF 3D9F 3F3E 7E3E 7C3E 7C3E 7C3E 787C F87C F87C ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 17 0 BBX 16 18 2 0 BITMAP 00F0 0038 001C 0000 01F8 07FE 1FFF 3E3F 3C1F 7C1F 781F F81E F83E F83C FC7C FFF8 7FE0 1F80 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 17 0 BBX 16 18 2 0 BITMAP 003E 0070 01E0 0000 01F8 07FE 1FFF 3E3F 3C1F 7C1F 781F F81E F83E F83C FC7C FFF8 7FE0 1F80 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 17 0 BBX 16 18 2 0 BITMAP 0078 00FC 038E 0000 01F8 07FE 1FFF 3E3F 3C1F 7C1F 781F F81E F83E F83C FC7C FFF8 7FE0 1F80 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 17 0 BBX 16 18 2 0 BITMAP 00F7 01FE 03BC 0000 01F8 07FE 1FFF 3E3F 3C1F 7C1F 781F F81E F83E F83C FC7C FFF8 7FE0 1F80 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 17 0 BBX 16 18 2 0 BITMAP 01CE 038E 039C 0000 01F8 07FE 1FFF 3E3F 3C1F 7C1F 781F F81E F83E F83C FC7C FFF8 7FE0 1F80 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 18 0 BBX 16 16 2 0 BITMAP 01E0 01E0 01E0 0000 0000 0000 7FFF FFFF FFFE 0000 0000 0000 0000 0780 0780 0780 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 17 0 BBX 18 14 3 0 BITMAP 00FFC0 03FF00 0FFF80 1F3F80 1E7F80 3EFF80 3DEF80 7FCF00 7F9F00 7F1E00 7E3E00 7FFC00 7FF000 FFC000 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 18 0 BBX 16 18 2 0 BITMAP 01E0 0070 0038 0000 3E1F 3E1F 3E3E 7C3E 7C3E 7C3E 7C7E 7CFC F9BC FB7C FF7C FE7C FC78 78F8 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 18 0 BBX 16 18 2 0 BITMAP 003E 0070 01E0 0000 3E1F 3E1F 3E3E 7C3E 7C3E 7C3E 7C7E 7CFC F9BC FB7C FF7C FE7C FC78 78F8 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 18 0 BBX 16 18 2 0 BITMAP 0078 00FC 038E 0000 3E1F 3E1F 3E3E 7C3E 7C3E 7C3E 7C7E 7CFC F9BC FB7C FF7C FE7C FC78 78F8 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 18 0 BBX 16 18 2 0 BITMAP 01CE 038E 039C 0000 3E1F 3E1F 3E3E 7C3E 7C3E 7C3E 7C7E 7CFC F9BC FB7C FF7C FE7C FC78 78F8 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 16 0 BBX 18 23 1 -5 BITMAP 001F00 003800 00F000 000000 3E03C0 3E0780 1F0700 1F0F00 1F1E00 1F1C00 1F3C00 1FF800 0FF000 0FF000 0FE000 0FC000 0FC000 078000 0F0000 1F0000 3E0000 7C0000 FC0000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 18 0 BBX 17 23 1 -5 BITMAP 0F8000 0F8000 0F8000 0F8000 0F0F00 1F1F00 1F3F80 1F7F80 1ECF80 1E8F80 3F0F00 3F1F00 3E1F00 3E3E00 3C7C00 7FF800 7FF000 7FC000 7C0000 7C0000 F80000 F80000 F80000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 16 0 BBX 18 23 1 -5 BITMAP 00E700 01C700 01CE00 000000 3E03C0 3E0780 1F0700 1F0F00 1F1E00 1F1C00 1F3C00 1FF800 0FF000 0FF000 0FE000 0FC000 0FC000 078000 0F0000 1F0000 3E0000 7C0000 FC0000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 19 25 1 -5 BITMAP 007FE0 01FFE0 03FFE0 07C7C0 0F87C0 0F87C0 3FE7C0 3FE7C0 3FEF80 1F0F80 1F0F80 1F0F80 1F1F80 3E1F00 3E1F00 3E1F00 3E1F00 3E3F00 7C3E00 7C3E00 7C0000 7C0000 7C0000 F80000 F80000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 12 3 2 7 BITMAP FFF0 FFF0 FFF0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 14 23 4 -4 BITMAP 03E0 03E0 03C0 07C0 07C0 07C0 7FFC FFFC FFF8 0F80 0F80 0F00 0F00 0F00 1F00 1F00 1F00 1E00 3E00 3E00 3E00 3E00 7E00 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 18 23 2 0 BITMAP 01C700 00FC00 007800 000000 0FFFC0 0FFFC0 0FFFC0 001F80 003F00 007E00 00FE00 00FC00 01F800 03F000 07E000 0FC000 1FC000 1F8000 3F0000 7E0000 7FFE00 FFFE00 FFFE00 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 26 0 BBX 24 14 2 0 BITMAP 01F87C 07FDFE 1FFFFF 3E3F9F 3C1F1F 7C1F3E 781FFC F83FF8 F83FE0 F83E01 FC7F07 FFFFFF 7FEFFE 1F07F0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 17 23 4 0 BITMAP 039C00 071C00 073800 000000 F80780 7C0F00 7C1E00 7C3C00 3E3800 3E7800 3EF000 1FE000 1FC000 1FC000 0F8000 0F8000 1F8000 1F0000 1F0000 1F0000 1F0000 3F0000 3E0000 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 14 2 0 BITMAP 1F 1F 3E 3E 3E 3E 3E 7C 7C 7C 7C 7C F8 F8 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 12 20 1 0 BITMAP 07C0 07C0 07C0 07C0 07C0 0FB0 0FF0 0FE0 0FE0 1F80 7F00 7F00 FF00 9F00 3F00 3E00 3E00 3E00 3E00 7E00 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 16 19 0 0 BITMAP 07C0 07C0 07C0 07C0 0FC0 0F90 0FF0 0FF0 0FE0 1F80 7F00 7F00 FF00 9F00 1F00 3E00 3FFF 3FFF 3FFF ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 15 23 3 -4 BITMAP 01F0 01F0 01F0 01E0 01E0 03E0 3FFE 3FFE 7FFC 03C0 03C0 07C0 0780 0780 7FFC FFF8 FFF8 0F00 0F00 0F00 1F00 1F00 1F00 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 18 25 1 -5 BITMAP 007E00 01FF00 03FE00 07C200 078000 0F8000 3FFFC0 3FFFC0 3FFF80 1F0F80 1F0F80 1F0F80 1F0F80 3F1F00 3E1F00 3E1F00 3E1F00 3E1F00 7C3E00 7C3E00 7C0000 7C0000 7C0000 F80000 F80000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 1 BITMAP 0800 3C00 3C00 1E00 1F00 0F80 0F00 1E00 3C00 F800 7000 4000 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 29 0 BBX 28 19 3 0 BITMAP 007FFFF0 01FFFFF0 07FFFFE0 0FC7F000 1F03E000 3E03E000 3E03E000 7C03E000 7C03FF80 FC07FF80 F807FF00 F807C000 F807C000 FC07C000 FC0F8000 7E1F8000 7FFFFFC0 1FFFFF80 07FFFF80 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 26 0 BBX 25 2 2 7 BITMAP FFFFFF80 FFFFFF80 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 9 3 8 17 BITMAP E380 7E00 3C00 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 5 3 6 -4 BITMAP 70 E0 F8 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 11 3 8 17 BITMAP 1FE0 3B80 EE00 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 2 1 BITMAP 0100 0700 0F80 1E00 3C00 7800 F800 7C00 3C00 1E00 1E00 0800 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 4 3 11 17 BITMAP 70 F0 E0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 9 3 8 17 BITMAP E380 FF00 7C00 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 12 10 4 3 BITMAP 3FF0 3FF0 3FE0 7FE0 7FE0 7FE0 7FE0 7FC0 FFC0 FFC0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 10 3 8 17 BITMAP 3DC0 7F80 EF00 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 9 3 8 17 BITMAP 1E00 3F00 E380 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 9 3 11 BITMAP 060C 1E3C 3E7C 7870 70E0 7CF8 7CF8 F9F8 F9F0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 4 11 BITMAP F8 F8 F8 F8 70 70 70 70 70 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 1 0 BITMAP 071C 03F0 01E0 0000 03F8 0FF8 1FF0 1F00 1E00 1F00 0FC0 07E0 03E0 01F0 43F0 FFE0 FFC0 7F80 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 4 4 11 16 BITMAP 60 90 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 -4 BITMAP 3E 3E 7E 7C 7C 1C 38 F8 E0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 15 23 5 -4 BITMAP 00FE 03FE 07FE 07C6 0F80 0F80 1F00 1F00 7FE0 7FC0 7FC0 3E00 3E00 3E00 3E00 3E00 7C00 7C00 7C00 7C00 7C00 F800 F800 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 23 10 3 9 BITMAP FFFF3E FFDF3E FFDF7E 1E1F7C 1E1FFC 3E3FBC 3E3FFC 3C3B7C 3C3B78 3C7078 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 21 19 -6 0 BITMAP 000078 0000F0 0001E0 0003C0 000780 000F00 001E00 003C00 007800 00F800 00F000 01E000 03C000 078000 0F0000 1E0000 3C0000 780000 F00000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 6 3 9 17 BITMAP F0 38 1C ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 35 0 BBX 33 19 3 0 BITMAP 1F003C0000 3F80700000 7FC0E00000 7BC1C00000 F3C3800000 F3C7000000 F3CE000000 FF9E000000 7F3C000000 3E78000000 00F1F03E00 01E7F87F00 03CFFCFF80 078F3DE780 0F0E3DE780 1E0E79E780 3C0FF9FF00 780FF1FE00 F007C07C00 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 26 0 BBX 21 3 3 0 BITMAP 707038 E07038 E07070 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 9 3 11 BITMAP 3E7C 7E7C 7CFC 7CF8 7CF8 1C38 3870 F9F0 E1C0 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 16 23 2 0 BITMAP 038E 01F8 00F0 0000 01FE 07FF 0FFF 1F02 1F00 1F00 1F80 1FC0 1FF0 07F8 03FC 00FC 007E 007E 007C 607C FFF8 FFF0 FF80 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 9 0 -4 BITMAP 3E7C 7E7C 7CFC 7CF8 7CF8 1C38 3870 F9F0 E1C0 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 16 18 1 0 BITMAP 01C7 00FC 0078 0000 1FFF 1FFF 1FFE 007E 00FC 01F0 03E0 07C0 0F80 3F00 7E00 7FFC FFFC FFFC ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/luBIS24.bdf100644 1750 1750 154704 5413747516 15173 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Bold-I-Normal-Sans-34-240-100-100-P-215-ISO8859-1 SIZE 24 100 100 FONTBOUNDINGBOX 91 39 -24 -7 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Bold" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 34 POINT_SIZE 240 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 215 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 31 FONT_DESCENT 8 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 12 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 12 0 BBX 11 25 3 0 BITMAP 07E0 0FE0 0FE0 0FC0 0FC0 0FC0 0FC0 0F80 1F80 1F80 1F80 1F00 1F00 1F00 1E00 1E00 3E00 0000 0000 0000 0000 7E00 7E00 FE00 FC00 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 18 0 BBX 16 11 5 15 BITMAP FE7F FC3F FC3F FC3F 7C3E 7C3E 7C3E 7C3E 781E 781E 781E ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 23 0 BBX 22 25 3 0 BITMAP 000E3C 001C38 001C38 003C70 003870 0078E0 0070E0 3FFFFC 3FFFFC 3FFFF8 01C380 03C780 038700 078F00 070E00 7FFFF0 7FFFF0 FFFFF0 1C3800 1C7800 387000 38F000 70E000 70E000 F1C000 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 23 0 BBX 20 33 4 -4 BITMAP 000F00 000E00 001E00 001E00 007FE0 01FFF0 03FFF0 07FFF0 07DC60 0FDC20 0FDC00 0FD800 0FF800 07F800 07F800 03FC00 01FF00 00FF80 00FF80 00FFC0 00FFC0 00EFC0 00CFC0 40CFC0 71CF80 FFFF80 FFFF00 FFFE00 7FF800 03C000 03C000 03C000 03C000 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 31 0 BBX 28 25 4 0 BITMAP 07C001F0 1FF003C0 3FF807C0 7FF80F80 7CF81F00 F8F83E00 F8F87C00 F8F8F800 F9F1F000 FFF1E000 7FE3C000 7FC78000 1F0F0000 001E0F80 003C3FE0 00787FE0 00F0FFF0 01F1F9F0 03E1F1F0 07C1F1F0 0F81F3E0 1F01FFE0 3E01FFC0 3C00FF80 F8003E00 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 28 0 BBX 26 25 3 0 BITMAP 000FE000 003FF000 00FFF800 00FFFC00 01FC7C00 01F87C00 01F87800 01F9F800 01FFF000 00FFC000 00FF07C0 07FE07C0 0FFF0780 3F3F8780 7E3F8F80 7C1FCF00 FC1FDF00 FC0FFE00 FC0FFC00 FE07F800 FF07F000 7FFFF800 3FFFF800 1FFFFC00 07F0FE00 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 4 14 BITMAP 3F80 3F80 3F00 3F00 7F00 7F00 7F00 1E00 1E00 FC00 F800 C000 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 13 0 BBX 13 32 3 -6 BITMAP 0008 0018 0078 00F8 01F0 03E0 07E0 0FC0 0F80 1F80 3F80 3F00 7F00 7E00 7E00 FE00 FE00 FE00 FC00 FC00 FC00 FC00 FC00 FC00 7C00 7E00 3E00 3F00 1F00 0F00 0600 0200 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 13 0 BBX 13 32 1 -6 BITMAP 0200 0380 03C0 03E0 03E0 03F0 01F0 01F8 01F8 01F8 01F8 01F8 01F8 01F8 01F8 01F8 01F8 03F8 03F0 03F0 07F0 07E0 07E0 0FC0 1F80 1F80 3F00 7E00 7C00 F000 E000 8000 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 16 0 BBX 13 13 5 12 BITMAP 07C0 03C0 2388 3398 7978 78F8 F8F8 0880 1D80 79C0 79E0 3180 1100 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 23 0 BBX 20 21 4 0 BITMAP 003C00 003800 003800 007800 007800 007800 007000 007000 7FFFF0 FFFFF0 FFFFF0 FFFFE0 00E000 00E000 01E000 01E000 01E000 01E000 01C000 01C000 03C000 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 12 0 BBX 9 13 2 -6 BITMAP 3F80 3F80 3F80 3F00 7F00 7F00 7F00 1E00 1E00 3C00 FC00 F000 C000 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 23 0 BBX 20 4 4 8 BITMAP 7FFFF0 7FFFF0 FFFFE0 FFFFE0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 12 0 BBX 8 7 2 0 BITMAP 7F 7F 7F 7E FE FE FE ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 20 0 BBX 26 32 0 -6 BITMAP 000007C0 00000F80 00001F00 00001F00 00003E00 00007C00 00007C00 0000F800 0001F000 0001F000 0003E000 0003C000 0007C000 000F8000 000F0000 001F0000 003E0000 003C0000 007C0000 00F80000 00F00000 01F00000 03E00000 03C00000 07C00000 0F800000 0F800000 1F000000 3E000000 3E000000 7C000000 F8000000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 23 0 BBX 22 25 3 0 BITMAP 003F00 00FFC0 03FFF0 07FFF0 0FE3F8 1FC1F8 1F81F8 3F81FC 3F01FC 7F01FC 7F01FC 7F01FC FE03F8 FE03F8 FE03F8 FE03F8 FE07F0 FE07F0 FE07E0 7E0FC0 7F1FC0 7FFF80 3FFE00 1FFC00 07F000 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 23 0 BBX 12 25 8 0 BITMAP 7FF0 7FF0 7FE0 7FE0 0FE0 0FE0 0FE0 0FC0 1FC0 1FC0 1FC0 1FC0 1F80 3F80 3F80 3F80 3F80 3F00 7F00 7F00 7F00 7F00 7E00 FE00 FE00 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 23 0 BBX 22 25 3 0 BITMAP 00FF80 07FFF0 07FFF8 07FFF8 0C03FC 0001FC 0001FC 0001FC 0001F8 0003F8 0007F0 000FE0 003FC0 007F00 00FE00 03F800 07F000 0FC000 1F8000 3F0000 7F0000 7FFFE0 FFFFE0 FFFFE0 FFFFC0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 23 0 BBX 20 25 4 0 BITMAP 01FF00 07FFC0 07FFE0 0FFFF0 0C0FF0 0007F0 0007F0 0007E0 000FC0 003F80 0FFE00 0FF800 0FFF00 0FFF80 007FC0 001FC0 000FC0 000FC0 001FC0 001FC0 607FC0 7FFF80 FFFF00 FFFC00 3FF000 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 23 0 BBX 21 25 2 0 BITMAP 0001F8 0003F0 0007F0 000FF0 001FF0 003FF0 007FF0 00FBE0 01F7E0 03E7E0 07C7E0 0FC7E0 0F87C0 1F07C0 3E0FC0 7FFFF8 7FFFF8 FFFFF0 FFFFF0 001F80 001F80 001F80 001F00 003F00 003F00 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 23 0 BBX 21 25 4 0 BITMAP 07FFF8 07FFF8 07FFF0 07FFF0 0F0000 0F0000 0E0000 0E0000 1FE000 1FFC00 1FFE00 1FFF00 00FF80 003FC0 001FC0 001FC0 001FC0 001FC0 001FC0 003FC0 607F80 7FFF00 FFFE00 FFFC00 7FE000 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 23 0 BBX 22 25 4 0 BITMAP 001FF0 00FFFC 01FFFC 07FFFC 0FF038 0FE008 1FC000 3F8000 3F8000 7F3F00 7FFFC0 7FFFE0 FFFFF0 FF8FF0 FE07F0 FE03F0 FE03F0 FE03F0 FE03F0 7E07E0 7F0FC0 3FFFC0 1FFF80 0FFE00 03F800 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 23 0 BBX 19 25 7 0 BITMAP 7FFFE0 7FFFE0 7FFFE0 FFFFC0 0007C0 000FC0 001F80 003F00 007E00 00FC00 00F800 01F800 03F000 07E000 07C000 0FC000 1F8000 1F8000 3F0000 3F0000 7E0000 7E0000 FE0000 FE0000 FE0000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 23 0 BBX 21 25 4 0 BITMAP 003F80 00FFE0 03FFF0 07FFF8 07E1F8 0FC1F8 0F80F8 0FC1F0 0FE3F0 07F7E0 07FF80 03FF00 07FFC0 1FFFE0 3F1FE0 7E0FF0 7C03F0 FC03F0 FC03F0 FC07E0 FE0FE0 FFFFC0 7FFF80 3FFE00 0FF000 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 23 0 BBX 22 25 3 0 BITMAP 007F00 01FFC0 07FFE0 0FFFF0 0FC3F8 1F81F8 3F01FC 3F01FC 3F01FC 3F01FC 3F01FC 3FC7FC 3FFFFC 1FFFF8 0FFFF8 03F3F8 0007F0 0007F0 000FE0 401FC0 707FC0 FFFF80 FFFE00 FFFC00 3FE000 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 12 0 BBX 10 18 3 0 BITMAP 1FC0 1FC0 1FC0 1F80 1F80 1F80 3F80 0000 0000 0000 0000 7F00 7E00 7E00 7E00 FE00 FE00 FC00 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 12 0 BBX 11 24 2 -6 BITMAP 0FE0 0FE0 0FE0 0FC0 0FC0 0FC0 1FC0 0000 0000 0000 0000 0000 3F80 3F00 3F00 7F00 7F00 7F00 1E00 1E00 3C00 FC00 F000 C000 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 23 0 BBX 22 21 4 0 BITMAP 000004 00001C 00007C 0001F8 0007F8 001FE0 007F80 01FE00 07F800 3FE000 FF8000 3F8000 0FE000 07F800 01FC00 007F00 003FC0 000FE0 0003E0 0000C0 000040 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 23 0 BBX 22 12 3 4 BITMAP 3FFFFC 3FFFFC 3FFFF8 3FFFF8 000000 000000 000000 000000 7FFFF0 7FFFF0 FFFFF0 FFFFF0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 23 0 BBX 22 21 2 0 BITMAP 080000 0C0000 1F0000 1FC000 0FF000 03F800 00FE00 007F80 001FC0 0007F0 0007FC 001FF0 007F80 01FE00 07F800 1FE000 7F8000 7E0000 780000 E00000 800000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 18 0 BBX 17 25 4 0 BITMAP 1FF800 7FFE00 7FFF00 7FFF80 E07F80 803F80 003F80 003F00 007F00 007E00 00FC00 03F000 07E000 0FC000 1FC000 3F8000 3F8000 3F0000 000000 000000 000000 7F0000 7E0000 FE0000 FE0000 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 28 0 BBX 26 25 3 0 BITMAP 000FE000 007FF800 01FFFE00 03F01F00 07800780 0F000380 1E0001C0 3C0FF1C0 383FE0C0 7070E0C0 70E0E0C0 E1C1E0C0 E381C1C0 E383C1C0 E387C180 E38FC380 E79DC700 E3F9FE00 63F1FC00 71C1F000 38000000 3E030000 1FFF0000 07FF8000 01FC0000 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 26 0 BBX 25 25 1 0 BITMAP 0007F000 0007F000 000FF800 000FF800 001FF800 001FF800 003FF800 003DFC00 007DFC00 00F8FC00 00F8FC00 01F0FC00 01F0FE00 03E0FE00 03E07E00 07FFFE00 07FFFE00 0FFFFF00 0FFFFF00 1F003F00 1E003F00 3E003F00 7C003F80 7C003F80 F8001F80 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 22 0 BBX 21 25 3 0 BITMAP 07FFC0 07FFF0 0FFFF0 0FFFF8 0FC3F8 0FC3F8 0FC3F8 1F83F0 1F87F0 1F8FE0 1FFF80 1FFF00 3FFE00 3FFF80 3F1FE0 3F07E0 3F07F0 7E07F0 7E07F0 7E07F0 7E1FE0 7FFFE0 FFFFC0 FFFF80 FFFC00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 25 0 BBX 25 25 3 0 BITMAP 0007FC00 003FFF80 00FFFF80 03FFFF80 07FC0F00 0FF00100 1FE00000 1FC00000 3F800000 3F000000 7F000000 7F000000 FE000000 FE000000 FE000000 FE000000 FE000000 FE000000 FF000000 7F800800 7FC07800 3FFFF800 1FFFF800 0FFFF800 03FF0000 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 28 0 BBX 27 25 3 0 BITMAP 07FFF800 07FFFF00 0FFFFF80 0FFFFFC0 0FE07FC0 0FE01FE0 0FC01FE0 1FC00FE0 1FC00FE0 1FC00FE0 1FC00FE0 1F800FE0 3F800FE0 3F801FC0 3F801FC0 3F801FC0 3F003F80 7F007F80 7F00FF00 7F01FE00 7F07FE00 7FFFF800 FFFFF000 FFFFC000 FFFE0000 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 22 0 BBX 22 25 3 0 BITMAP 07FFFC 07FFFC 07FFF8 0FFFF8 0FE000 0FE000 0FC000 0FC000 1FC000 1FC000 1FFFC0 1FFFC0 1FFF80 3FFF80 3F8000 3F8000 3F0000 3F0000 7F0000 7F0000 7F0000 7FFFE0 7FFFC0 FFFFC0 FFFFC0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 21 0 BBX 22 25 3 0 BITMAP 07FFFC 07FFFC 07FFF8 0FFFF8 0FE000 0FE000 0FC000 0FC000 1FC000 1FC000 1FC000 1FFFC0 1FFF80 3FFF80 3FFF80 3F8000 3F0000 3F0000 7F0000 7F0000 7F0000 7E0000 7E0000 FE0000 FE0000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 26 0 BBX 25 25 3 0 BITMAP 0007FC00 003FFF80 00FFFF80 03FFFF80 07FC0F00 0FF00100 1FE00000 1FC00000 3F800000 3F000000 7F000000 7F000000 FE000000 FE00FE00 FE00FC00 FE00FC00 FE00FC00 FE01FC00 FF01F800 7F81F800 7FC1F800 3FFFF800 1FFFF800 0FFFF000 03FF8000 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 28 0 BBX 27 25 3 0 BITMAP 07F00FE0 07E00FE0 0FE00FE0 0FE00FC0 0FE00FC0 0FC01FC0 0FC01FC0 1FC01FC0 1FC01F80 1FC01F80 1FFFFF80 1FFFFF80 3FFFFF80 3FFFFF00 3F803F00 3F007F00 3F007F00 7F007F00 7F007E00 7F007E00 7E00FE00 7E00FE00 FE00FE00 FE00FC00 FE01FC00 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 12 0 BBX 11 25 3 0 BITMAP 07E0 0FE0 0FE0 0FC0 0FC0 0FC0 1FC0 1FC0 1F80 1F80 1F80 1F80 3F80 3F00 3F00 3F00 3F00 7F00 7F00 7E00 7E00 7E00 FE00 FE00 FC00 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 17 0 BBX 19 31 0 -6 BITMAP 000FE0 000FE0 000FE0 000FC0 000FC0 000FC0 001FC0 001FC0 001F80 001F80 001F80 003F80 003F80 003F00 003F00 003F00 003F00 007F00 007F00 007E00 007E00 007E00 00FE00 00FE00 00FC00 00FC00 41FC00 7FF800 FFF000 FFE000 7F8000 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 26 0 BBX 23 25 3 0 BITMAP 07E03E 07E07C 0FE0F8 0FE1F0 0FC1F0 0FC3E0 0FC7C0 1FCF80 1FCF00 1F9F00 1FBE00 1FFE00 3FFE00 3FFF00 3F7F80 3F3F80 3F1FC0 7F1FC0 7F0FE0 7F0FE0 7E07F0 7E07F0 FE03F8 FE03F8 FE01FC ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 21 0 BBX 19 25 3 0 BITMAP 07F000 07E000 0FE000 0FE000 0FE000 0FE000 0FC000 1FC000 1FC000 1FC000 1FC000 1F8000 3F8000 3F8000 3F8000 3F8000 3F0000 7F0000 7F0000 7F0000 7F0000 7FFFE0 FFFFE0 FFFFE0 FFFFC0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 32 0 BBX 31 25 3 0 BITMAP 07F801FE 07F801FE 0FF803FE 0FFC03FC 0FFC07FC 0FFC07FC 0FFC0FFC 1FFC0FFC 1F7C1FF8 1F7C3FF8 1F7C3DF8 1E7E7DF8 3E7E79F8 3E7EF3F0 3E7EF3F0 3E7FE3F0 3E7FE3F0 7C3FC3F0 7C3FC7E0 7C3F87E0 7C3F87E0 7C3F07E0 F83E07E0 F8000FC0 F8000FC0 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 27 0 BBX 26 25 3 0 BITMAP 07E007C0 07E007C0 0FF007C0 0FF00F80 0FF80F80 0FF80F80 0FFC0F80 1FFC0F80 1FFE1F00 1FFE1F00 1F7E1F00 1F7F1F00 3E3F1F00 3E3FBE00 3E1FBE00 3E1FFE00 3E0FFE00 7C0FFE00 7C07FC00 7C07FC00 7C03FC00 7C03FC00 F801FC00 F801F800 F800F800 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 29 0 BBX 27 25 3 0 BITMAP 000FF800 003FFE00 00FFFF80 03FFFFC0 07F83FC0 0FE01FE0 1FC00FE0 1F800FE0 3F800FE0 3F000FE0 7F000FE0 7F000FE0 FE000FE0 FE000FE0 FE001FC0 FE001FC0 FE003F80 FE003F80 FF007F00 7F00FE00 7FC3FC00 3FFFF800 1FFFE000 0FFFC000 01FE0000 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 22 0 BBX 22 25 3 0 BITMAP 07FFE0 07FFF8 0FFFF8 0FFFFC 0FC1FC 0FC1FC 0FC1FC 1FC1FC 1F81F8 1F83F8 1F87F0 1FFFE0 3FFFC0 3FFF80 3FFC00 3F0000 3F0000 7F0000 7E0000 7E0000 7E0000 7E0000 FE0000 FC0000 FC0000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 29 0 BBX 28 31 3 -6 BITMAP 000FF800 003FFE00 00FFFF80 03FFFF80 07F83FC0 0FE01FE0 1FC00FE0 1F800FE0 3F800FE0 3F000FE0 7F000FE0 7F000FE0 FE000FE0 FE000FE0 FE001FC0 FE001FC0 FE003F80 FE003F80 FF007F00 7F00FE00 7FC3FC00 3FFFF800 1FFFE000 0FFFC000 01FFE000 0007FE00 0003FFC0 0000FFF0 00007FC0 00001F80 00000300 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 24 0 BBX 22 25 3 0 BITMAP 07FFE0 07FFF8 0FFFFC 0FFFFC 0FC1FC 0FC1FC 0FC1FC 1F81FC 1F81F8 1F83F0 1F87F0 1FFFE0 3FFF80 3FFF00 3FFF00 3F3F80 3F1F80 7F1F80 7E1FC0 7E0FC0 7E0FE0 7E0FE0 FE07E0 FC07F0 FC07F0 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 22 0 BBX 20 25 3 0 BITMAP 007FC0 01FFF0 03FFF0 07FFE0 0FE060 0FC000 1FC000 1FC000 1FE000 0FF000 0FFC00 07FE00 03FF00 01FF80 00FFC0 003FC0 001FC0 001FC0 001FC0 001FC0 603F80 7FFF80 FFFE00 FFFC00 FFE000 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 25 0 BBX 25 25 5 0 BITMAP 7FFFFF80 FFFFFF80 FFFFFF80 FFFFFF00 007E0000 007E0000 00FE0000 00FE0000 00FC0000 00FC0000 00FC0000 01FC0000 01FC0000 01FC0000 01F80000 01F80000 03F80000 03F80000 03F80000 03F00000 03F00000 07F00000 07F00000 07F00000 07E00000 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 26 0 BBX 24 25 4 0 BITMAP 1FC03F 1F803F 1F803F 1F803E 3F807E 3F807E 3F007E 3F007E 3F007C 7F00FC 7F00FC 7E00FC 7E00FC 7E00F8 FE01F8 FE01F8 FE01F8 FE01F0 FE03F0 FE03E0 7F07E0 7FFFC0 3FFF80 1FFF00 03FC00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 26 0 BBX 24 25 6 0 BITMAP FE001F FE001E FE003E 7E003C 7E007C 7F00F8 7F00F0 7F01F0 7F01E0 3F03E0 3F03C0 3F87C0 3F8780 3F8F80 3F8F00 1F9F00 1F9E00 1FBE00 1FFC00 1FFC00 1FF800 0FF000 0FF000 0FE000 0FE000 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 34 0 BBX 31 25 6 0 BITMAP FC07E03E FC07E03C FC07E07C FC0FE078 FC0FE0F8 FC1FE0F0 FC1FE1F0 FC1FE1F0 FC3FE1E0 FC3FE3E0 FC7FE3C0 7C7FE7C0 7CF7E780 7EF7EF80 7EF7EF00 7FE7FF00 7FE7FE00 7FC7FE00 7FC7FE00 7FC7FC00 7F87FC00 7F87F800 7F07F800 7F07F000 7F07F000 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 24 0 BBX 27 25 0 0 BITMAP 07F807E0 03F80FC0 03FC0F80 01FC1F00 01FC3E00 00FE7C00 00FEF800 00FFF800 007FF000 007FE000 003FC000 003F8000 003F8000 007FC000 007FC000 00FFE000 01FFE000 03FFE000 07E7F000 07C7F000 0F87F000 1F03F800 3E03F800 7E01FC00 FC01FC00 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 23 0 BBX 22 25 5 0 BITMAP FE00FC 7E00F8 7E01F0 7F03E0 3F07C0 3F87C0 3F8F80 1F9F00 1FFE00 1FFE00 0FFC00 0FF800 07F000 07F000 07E000 07E000 0FE000 0FE000 0FE000 0FC000 0FC000 1FC000 1FC000 1FC000 1F8000 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 23 0 BBX 24 25 2 0 BITMAP 03FFFF 07FFFF 07FFFF 07FFFE 0001FE 0003FC 0007F8 000FF0 001FE0 001FE0 003FC0 007F80 00FF00 01FE00 03FC00 07FC00 07F800 0FF000 1FE000 3FC000 7F8000 7FFFF0 7FFFF0 FFFFF0 FFFFF0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 13 0 BBX 15 32 1 -6 BITMAP 03FE 03FE 03FC 03FC 07E0 07E0 07E0 07C0 07C0 0FC0 0FC0 0FC0 0F80 0F80 1F80 1F80 1F80 1F00 1F00 3F00 3F00 3F00 3E00 3E00 7E00 7E00 7E00 7C00 7FC0 FF80 FF80 FF80 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 19 0 BBX 12 32 6 -6 BITMAP F000 F800 7800 7800 7800 7C00 3C00 3C00 3C00 3C00 1E00 1E00 1E00 1E00 0F00 0F00 0F00 0F00 0780 0780 0780 0780 07C0 03C0 03C0 03C0 03E0 01E0 01E0 01E0 01F0 00F0 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 13 0 BBX 15 32 1 -6 BITMAP 03FE 03FE 03FE 07FC 007C 00FC 00FC 00FC 00F8 00F8 01F8 01F8 01F8 01F0 01F0 03F0 03F0 03F0 03E0 03E0 07E0 07E0 07E0 07C0 07C0 0FC0 0FC0 0FC0 7F80 7F80 FF80 FF80 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 23 0 BBX 20 21 3 4 BITMAP 000400 000400 000E00 000E00 001E00 003E00 003F00 007F00 00FF00 00F780 01E780 03E780 03C380 0783C0 0F83C0 0F01C0 1E01E0 3E01E0 3C01E0 7800F0 F800F0 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 17 0 BBX 15 4 1 -5 BITMAP FFFE FFFE FFFE FFFC ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 4 14 BITMAP 0180 0F80 1F80 3E00 3C00 7F00 7F00 7F00 7E00 FE00 FE00 FE00 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 23 0 BBX 21 18 3 0 BITMAP 007FF8 01FFF8 03FFF8 07FFF0 0FC3F0 1F83F0 3F07F0 3F07F0 7E0FE0 7E1FE0 FE3FE0 FE37E0 FE7FE0 FFEFC0 FFCFC0 FF8FC0 7F1FC0 3C1FC0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 23 0 BBX 21 26 3 0 BITMAP 07E000 07E000 07E000 0FE000 0FC000 0FC000 0FC000 0FC000 1FC1E0 1F87F0 1F8FF8 1F9FF8 1FBFF8 3F7BF8 3F73F8 3FE3F8 3FC3F0 3F83F0 7F07E0 7F07E0 7E0FC0 7E1F80 7FFF00 FFFE00 FFFC00 FFF000 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 19 0 BBX 18 18 3 0 BITMAP 003F00 01FFC0 03FFC0 0FFF80 1FE380 3F8080 3F0000 7F0000 7E0000 FE0000 FE0000 FE0000 FE0100 FF0700 FFFE00 7FFE00 3FFE00 0FF000 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 23 0 BBX 23 26 3 0 BITMAP 0000FE 0000FE 0000FE 0000FC 0000FC 0001FC 0001FC 0001FC 007FF8 01FFF8 03FFF8 07FFF8 0FC3F8 1F83F0 3F03F0 3F07F0 7E0FF0 7E1FF0 FE1FE0 FE37E0 FE77E0 FFEFE0 FFCFE0 FF8FC0 7F0FC0 3E1FC0 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 21 0 BBX 18 18 3 0 BITMAP 007E00 01FF80 07FFC0 0FFFC0 1F8FC0 3F0FC0 3E1F80 7E3F00 7FFE00 FFFC00 FFE000 FC0040 FE00C0 FF07C0 FFFF80 7FFF80 3FFF00 0FF000 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 16 0 BBX 20 33 2 -7 BITMAP 000FE0 003FF0 00FFF0 01FFF0 01F820 03F000 03F000 07F000 1FFF00 3FFF00 3FFF00 3FFF00 0FE000 0FE000 0FC000 0FC000 1FC000 1FC000 1F8000 1F8000 1F8000 3F8000 3F8000 3F0000 3F0000 3F0000 7F0000 7F0000 7E0000 7E0000 7E0000 FE0000 FE0000 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 23 0 BBX 22 25 2 -7 BITMAP 003FFC 00FFFC 01FFFC 03FFF8 07E1F8 0FC1F8 1F83F8 1F87F8 3F07F0 3F0FF0 7F1FF0 7F3BF0 7F7BF0 7FF7E0 7FE7E0 7FC7E0 3F8FE0 1F0FE0 000FC0 801FC0 F03FC0 FFFF80 7FFF00 7FFC00 7FF000 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 23 0 BBX 21 26 2 0 BITMAP 07F000 07F000 07E000 07E000 0FE000 0FE000 0FE000 0FC000 0FC1E0 1FC3F0 1FCFF8 1F9FF8 1F9FF8 1FBFF8 3FF3F8 3F63F0 3FE3F0 3FC7F0 3F87F0 7F07E0 7F07E0 7E0FE0 7E0FE0 7E0FE0 FE0FC0 FE0FC0 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 12 0 BBX 12 26 2 0 BITMAP 07F0 07F0 07E0 07E0 0FE0 0000 0000 0000 0FC0 1FC0 1FC0 1FC0 1F80 1F80 3F80 3F80 3F80 3F00 3F00 7F00 7F00 7F00 7E00 7E00 FE00 FE00 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 14 0 BBX 20 33 -2 -7 BITMAP 0007F0 0007F0 0007E0 0007E0 000FE0 000000 000000 000000 000FC0 000FC0 001FC0 001FC0 001F80 001F80 003F80 003F80 003F80 003F00 003F00 007F00 007F00 007F00 007E00 007E00 00FE00 00FE00 00FC00 00FC00 41F800 FFF800 FFF000 FFC000 7F0000 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 23 0 BBX 22 26 2 0 BITMAP 07F000 07F000 07E000 07E000 0FE000 0FE000 0FE000 0FC000 0FC07C 1FC0F8 1FC1F0 1FC3E0 1F87C0 1F8F80 3F9F00 3FBE00 3FFE00 3FFF00 3F7F00 7F3F80 7F3F80 7E1FC0 7E1FC0 7E0FE0 FE0FE0 FE07F0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 12 0 BBX 12 26 2 0 BITMAP 07F0 07F0 07E0 07E0 0FE0 0FE0 0FE0 0FC0 0FC0 1FC0 1FC0 1FC0 1F80 1F80 3F80 3F80 3F80 3F00 3F00 7F00 7F00 7F00 7E00 7E00 FE00 FE00 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 34 0 BBX 32 18 2 0 BITMAP 0FC1E03C 1FC7F0FF 1F8FF1FF 1F9FF3FF 1FBFF3FF 1F3BF77F 3F73FE7E 3FE3EC7E 3FC7F87E 3F87F87E 3F87F0FE 7F07E0FC 7E07E0FC 7E0FE0FC 7E0FC0FC 7E0FC1FC FE0FC1F8 FC1FC1F8 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 23 0 BBX 21 18 2 0 BITMAP 0FC1E0 1FC7F0 1FCFF8 1F9FF8 1F9FF8 1FBBF8 3FF3F8 3F63F0 3FC7F0 3FC7F0 3F87F0 7F07E0 7F07E0 7E0FE0 7E0FE0 7E0FE0 FE0FC0 FE0FC0 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 23 0 BBX 21 18 3 0 BITMAP 007F80 01FFE0 07FFF0 0FFFF0 1FC7F8 3F83F8 3F03F8 7E03F8 7E03F0 FE03F0 FE07F0 FE07E0 FE0FE0 FF1FC0 FFFF80 7FFE00 3FFC00 0FE000 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 23 0 BBX 23 25 1 -7 BITMAP 07F0F8 07E1FC 0FE3FE 0FE7FE 0FCFFE 0FDCFE 0FF8FE 1FF0FE 1FE0FC 1FE0FC 1FC1F8 1F83F8 3F83F0 3F8FE0 3FFFC0 3FFF80 3FFF00 7FFC00 7F0000 7F0000 7E0000 7E0000 FE0000 FE0000 FE0000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 23 0 BBX 21 25 3 -7 BITMAP 007FF8 01FFF8 03FFF8 07FFF0 0FC3F0 1F83F0 3F07F0 3F0FF0 7E0FE0 7E1FE0 FE3FE0 FE77E0 FEFFE0 FFEFC0 FFCFC0 FF8FC0 7F1FC0 3C1FC0 001F80 001F80 001F80 003F80 003F80 003F00 003F00 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 18 0 BBX 19 18 2 0 BITMAP 0FC1E0 1FC3C0 1FC7C0 1F8FC0 1F9F80 1FBF80 3FB800 3F7000 3FE000 3FC000 3F8000 7F0000 7F0000 7F0000 7E0000 7E0000 FE0000 FE0000 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 18 0 BBX 17 18 2 0 BITMAP 00FF80 03FF80 0FFF00 0FFF00 1FC000 1FC000 0FC000 0FE000 07F800 03FC00 00FE00 007E00 407E00 70FE00 FFFE00 FFFC00 FFF800 1FE000 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 15 0 BBX 13 23 4 0 BITMAP 00E0 0FC0 1FC0 1FC0 1FC0 7FF8 FFF8 FFF8 FFF0 3F80 3F80 3F00 7F00 7F00 7F00 7E00 7E00 FE00 FF00 FFE0 FFC0 7FC0 3F80 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 23 0 BBX 21 18 3 0 BITMAP 1F83F8 1F83F8 3F83F0 3F83F0 3F07F0 3F07F0 3F07F0 7F0FE0 7F1FE0 7E1FE0 7E37E0 FE7FE0 FEEFC0 FFCFC0 FFCFC0 FF9FC0 7F1FC0 3C1F80 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 21 0 BBX 21 18 4 0 BITMAP FE00F8 FE01F0 FE01E0 7E03E0 7F03C0 7F07C0 7F0F80 7F0F00 3F1F00 3F1E00 3FBE00 3FFC00 3FF800 1FF800 1FF000 1FF000 1FE000 1FC000 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 30 0 BBX 28 18 5 0 BITMAP FC0F81F0 FC1F81E0 FC1F83E0 FC3F83C0 FC3F87C0 FC7F8780 FC7FCF80 FCFFCF00 FCFFDF00 FDEFDE00 FDEFFE00 FFCFFC00 7FCFFC00 7F87F800 7F87F800 7F07F000 7F07F000 7E07E000 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 19 0 BBX 22 18 0 0 BITMAP 0FE0FC 07E1F8 07F3F0 03F3E0 03FFC0 03FF80 01FF00 01FE00 00FE00 00FE00 01FE00 03FF00 07FF00 0FBF80 1F3F80 3F1F80 7E1FC0 FC1FE0 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 21 0 BBX 24 25 1 -7 BITMAP 1FC01F 1FC03E 1FC07C 1FC07C 0FC0F8 0FE1F0 0FE1F0 0FE3E0 0FE7C0 07E7C0 07EF80 07FF00 07FF00 07FE00 03FC00 03F800 03F800 03F000 03E000 07E000 0FC000 1F8000 3F8000 7F0000 FE0000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 21 0 BBX 21 18 2 0 BITMAP 0FFFF8 0FFFF8 0FFFF0 1FFFF0 000FE0 001FC0 003F80 00FF00 01FE00 03FC00 07F800 0FE000 1FC000 3F8000 7FFFE0 7FFFE0 FFFFC0 FFFFC0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 13 0 BBX 13 32 3 -6 BITMAP 0078 03F8 07F8 07F0 07E0 0FE0 0FE0 0FE0 0FE0 0FE0 0FC0 0FC0 0FC0 0F80 7F00 7C00 7C00 FE00 3F00 1F00 1F00 3F00 3F00 7F00 7E00 FE00 FE00 FE00 FF00 FE00 7E00 1E00 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 9 0 BBX 10 32 2 -6 BITMAP 03C0 03C0 03C0 0380 0780 0780 0780 0780 0700 0F00 0F00 0F00 0F00 0E00 1E00 1E00 1E00 1E00 1C00 3C00 3C00 3C00 3C00 3800 7800 7800 7800 7800 7000 F000 F000 F000 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 13 0 BBX 13 32 1 -6 BITMAP 03C0 03F0 07F8 07F8 03F8 03F8 03F8 03F0 07F0 07E0 07E0 07C0 07C0 07E0 03F8 01F0 01F0 07F0 0F80 1F80 1F80 1F80 3F80 3F80 3F80 3F80 3F80 3F00 7F00 FF00 FE00 F000 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 23 0 BBX 21 8 3 6 BITMAP 0F8000 3FC078 3FF078 7FF870 70FFF0 F07FE0 E01FE0 000F80 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 12 0 BBX 12 25 1 -7 BITMAP 07F0 07F0 07E0 0FE0 0000 0000 0000 0780 0F80 0F80 0F80 0F80 1F80 1F80 1F80 3F00 3F00 3F00 7F00 7F00 7F00 7F00 7E00 FE00 FE00 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 23 0 BBX 19 25 5 0 BITMAP 000F00 000F00 000E00 003F80 01FFE0 03FFE0 0FFFE0 1FC040 1F8000 3F0000 7F0000 7E0000 FE0000 FE0000 FE0000 FE0000 FF0380 FFFF80 7FFF80 7FFF00 1FFF00 03F000 00E000 01E000 01E000 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 23 0 BBX 21 25 4 0 BITMAP 000FE0 003FF8 007FF8 00FFF8 00FC10 01FC00 01F800 01F800 03F800 03F800 03F800 1FFE00 1FFE00 1FFE00 1FFE00 07F000 07E000 07E000 0FC000 0F8000 1E0000 7FFFC0 7FFF80 FFFF80 FFFF80 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 23 0 BBX 27 25 1 0 BITMAP 02000080 060001C0 0F0003E0 0F8007E0 07800FC0 07C01F00 03CFBE00 01FFFC00 00FFF800 01FFF800 01F9F800 03F0F800 03E0F800 03E0F800 03E0F000 03E1F000 03F3F000 07FFF000 0FFFF000 1FFFF800 3F3E7C00 7C003E00 F8001E00 70000C00 20000800 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 23 0 BBX 22 25 6 0 BITMAP FE007C 7E00F8 7F01F0 3F03E0 3F87C0 3F8F80 1FCF80 1FDF00 0FFE00 0FFC00 07F800 07F000 7FFF00 7FFE00 7FFE00 07E000 7FFE00 FFFE00 FFFC00 0FC000 0FC000 1FC000 1FC000 1FC000 1F8000 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 9 0 BBX 10 32 2 -6 BITMAP 03C0 03C0 03C0 0380 0780 0780 0780 0780 0700 0F00 0F00 0F00 0F00 0000 0000 0000 0000 0000 0000 3C00 3C00 3C00 3C00 3800 7800 7800 7800 7800 7000 F000 F000 F000 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 23 0 BBX 21 31 3 -6 BITMAP 003FE0 01FFF8 03FFF8 07FFF0 07E030 0FE000 0FE000 0FF000 0FFC00 07FF00 03FF80 07FFC0 0FBFE0 1F1FE0 1F07E0 1F03E0 1F83E0 1FE3E0 1FFFC0 1FFF80 07FF00 03FF80 007FC0 003FC0 001FC0 401FC0 783F80 FFFF80 FFFF00 FFFC00 1FF000 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 23 0 BBX 12 4 10 21 BITMAP 78F0 78F0 F1E0 F1E0 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 28 0 BBX 26 25 4 0 BITMAP 007F0000 01FFE000 07FFF000 0FC0FC00 1E003E00 3C000E00 381FE700 707FF700 70F83380 E1E00180 E3C00180 E3C001C0 E38001C0 E78001C0 E3800180 E3800180 73C0C380 71FF8700 387F8700 3C000E00 1E003E00 0FC0FC00 07FFF000 01FFE000 007F0000 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 18 0 BBX 16 14 5 11 BITMAP 01FF 07FF 1FFF 3F3E 3E7E 7C7E 7CFE FCFE FDBC FFFC FF7C FE7C 7CFC 38FC ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 21 0 BBX 20 16 3 1 BITMAP 008040 01C0E0 03E1F0 07E3E0 0FC7C0 1F8F80 3F3F00 7E7E00 FE7E00 7E7F00 3E3F00 3F1F00 1F0F80 0F8F80 070700 040200 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 23 0 BBX 20 12 4 4 BITMAP 7FFFF0 7FFFF0 FFFFF0 FFFFE0 0000E0 0001E0 0001E0 0001E0 0001C0 0001C0 0003C0 0003C0 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 10 0 BBX 8 4 3 9 BITMAP 7F FF FF FE ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 23 0 BBX 18 18 6 7 BITMAP 03F000 0FFC00 1FFE00 3C1F00 780700 71FB80 E3FD80 E39D80 E3B9C0 E3F9C0 E77180 E77180 777B80 780700 3C1F00 1FFE00 0FFC00 03F000 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 23 0 BBX 12 4 10 21 BITMAP 7FF0 FFF0 FFF0 FFE0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 8 0 BBX 6 6 6 19 BITMAP 78 F8 CC CC F8 78 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 23 0 BBX 23 21 2 0 BITMAP 000F00 000F00 000E00 000E00 001E00 001E00 1FFFFE 1FFFFE 3FFFFE 3FFFFC 003C00 003C00 003C00 003800 007800 000000 000000 7FFFF8 7FFFF8 FFFFF0 FFFFF0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 14 0 BBX 13 15 -21 10 BITMAP 0FE0 1FF0 1078 0038 0038 0078 00F0 01C0 0780 0E00 1C00 3800 7800 FFE0 FFE0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 14 0 BBX 12 15 -21 10 BITMAP 1FC0 1FF0 30F0 0070 0060 01C0 1F80 3F80 01C0 00E0 00E0 00E0 C1C0 FFC0 FF00 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 23 0 BBX 10 4 12 22 BITMAP 0FC0 1F00 3C00 F000 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 23 0 BBX 23 24 1 -6 BITMAP 07E0FE 0FE0FE 0FE0FC 0FE0FC 0FC1FC 0FC1FC 1FC1FC 1FC3F8 1FC7F8 1F8FF8 1F8DF8 3F9FF8 3FFBF0 3FF3F0 3FF3F0 3FE7F0 7FC7F0 7F87E0 7F0000 7E0000 7E0000 FE0000 FE0000 FE0000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 23 0 BBX 16 31 6 -6 BITMAP 1FFF 3FFF 7FFF FFCE FFCE FFCE FFDE FFDE FF9C 7F9C 7F9C 3FBC 0FBC 0738 0738 0738 0F78 0E78 0E70 0E70 0E70 1EF0 1CF0 1CE0 1CE0 1CE0 3CE0 39E0 39C0 39C0 79C0 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 23 0 BBX 6 4 11 8 BITMAP 7C 7C F8 F8 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 23 0 BBX 7 7 7 -7 BITMAP 1C 38 3C 0E 0E FE FC ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 14 0 BBX 7 15 -24 10 BITMAP 7E FE 3E 3C 3C 3C 3C 7C 78 78 78 78 F8 F0 F0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 18 0 BBX 17 14 4 11 BITMAP 00FC00 03FF00 0FFF80 1F1F80 3E1F80 7E1F80 7C1F80 FC1F00 FC3F00 FC3E00 FC7C00 FFF800 7FE000 1F8000 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 21 0 BBX 20 16 2 1 BITMAP 040400 0E0E00 1F1F00 1F0F80 0F8F80 0FC7C0 0FE7E0 07E7F0 07E7E0 0FCFC0 1F1F80 3E3F00 7C7E00 F87C00 703800 201000 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 32 0 BBX 28 25 12 0 BITMAP 3F0003F0 7F0007E0 1F000FC0 1E001F80 1E001F00 1E003E00 1E007C00 3E00F800 3C01F000 3C03E000 3C07E070 3C0FC0F0 7C1F81E0 783F03E0 787E06E0 007C0CE0 00F819E0 01F031E0 03E021C0 07C07FF0 0F80FFF0 1F8003C0 3F000380 7E000380 FC000380 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 32 0 BBX 29 25 12 0 BITMAP 3F0003F0 7F0007E0 1F000FC0 1E001F80 1E001F00 1E003E00 1E007C00 3E00F800 3C01F000 3C03E000 3C07EFE0 3C0FDFF0 7C1F9078 783F0038 787E0038 007C0078 00F800F0 01F001C0 03E00780 07C00E00 0F801C00 1F803800 3F007800 7E00FFE0 FC00FFE0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 32 0 BBX 29 25 13 0 BITMAP 1FC001F8 1FF003F0 30F007E0 00700FC0 00600F80 01C01F00 1F803E00 3F807C00 01C0F800 00E1F000 00E3F038 00E7E078 C1CFC0F0 FFDF81F0 FF3F0370 003E0670 007C0CF0 00F818F0 01F010E0 03E03FF8 07C07FF8 0FC001E0 1F8001C0 3F0001C0 7E0001C0 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 18 0 BBX 16 25 0 -7 BITMAP 003F 007F 007E 007E 0000 0000 0000 00FE 00FC 00FC 01F8 03F0 07E0 0FC0 1F80 3F00 7F00 7E00 FE00 FE00 FF03 FFFF 7FFE 3FFE 0FF8 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 26 0 BBX 25 31 1 0 BITMAP 0003F000 0000F000 00007800 00003C00 00000000 00000000 0007F000 0007F000 000FF800 000FF800 001FF800 001FF800 003FF800 003DFC00 007DFC00 00F8FC00 00F8FC00 01F0FC00 01F0FE00 03E0FE00 03E07E00 07FFFE00 07FFFE00 0FFFFF00 0FFFFF00 1F003F00 1E003F00 3E003F00 7C003F80 7C003F80 F8001F80 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 26 0 BBX 25 31 1 0 BITMAP 00003F00 00007C00 0000F000 0003C000 00000000 00000000 0007F000 0007F000 000FF800 000FF800 001FF800 001FF800 003FF800 003DFC00 007DFC00 00F8FC00 00F8FC00 01F0FC00 01F0FE00 03E0FE00 03E07E00 07FFFE00 07FFFE00 0FFFFF00 0FFFFF00 1F003F00 1E003F00 3E003F00 7C003F80 7C003F80 F8001F80 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 26 0 BBX 25 31 1 0 BITMAP 0000FC00 0001FC00 0003DE00 000F0F00 00000000 00000000 0007F000 0007F000 000FF800 000FF800 001FF800 001FF800 003FF800 003DFC00 007DFC00 00F8FC00 00F8FC00 01F0FC00 01F0FE00 03E0FE00 03E07E00 07FFFE00 07FFFE00 0FFFFF00 0FFFFF00 1F003F00 1E003F00 3E003F00 7C003F80 7C003F80 F8001F80 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 26 0 BBX 25 31 1 0 BITMAP 0001E380 0007FF00 0007FF00 000E3E00 00000000 00000000 0007F000 0007F000 000FF800 000FF800 001FF800 001FF800 003FF800 003DFC00 007DFC00 00F8FC00 00F8FC00 01F0FC00 01F0FE00 03E0FE00 03E07E00 07FFFE00 07FFFE00 0FFFFF00 0FFFFF00 1F003F00 1E003F00 3E003F00 7C003F80 7C003F80 F8001F80 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 26 0 BBX 25 31 1 0 BITMAP 00078F00 00078F00 000F1E00 000F1E00 00000000 00000000 0007F000 0007F000 000FF800 000FF800 001FF800 001FF800 003FF800 003DFC00 007DFC00 00F8FC00 00F8FC00 01F0FC00 01F0FE00 03E0FE00 03E07E00 07FFFE00 07FFFE00 0FFFFF00 0FFFFF00 1F003F00 1E003F00 3E003F00 7C003F80 7C003F80 F8001F80 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 26 0 BBX 25 32 1 0 BITMAP 00007000 0000F800 0000D800 0000F800 00007000 00000000 00000000 0007F000 0007F000 000FF800 000FF800 001FF800 001FF800 003FF800 003DFC00 007DFC00 00F8FC00 00F8FC00 01F0FC00 01F0FE00 03E0FE00 03E07E00 07FFFE00 07FFFE00 0FFFFF00 0FFFFF00 1F003F00 1E003F00 3E003F00 7C003F80 7C003F80 F8001F80 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 34 0 BBX 36 25 1 0 BITMAP 00003FFFF0 00003FFFF0 00007FFFE0 0000FFFFE0 0001FF8000 0001FF8000 0003FF8000 0007FF0000 000FBF0000 000FBF0000 001F7FFF00 003E7FFF00 007C7FFF00 007C7FFE00 00F87E0000 01FFFE0000 03FFFE0000 03FFFE0000 07FFFC0000 0F80FC0000 1F00FC0000 1F01FFFF80 3E01FFFF00 7C01FFFF00 F801FFFF00 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 25 0 BBX 25 32 3 -7 BITMAP 0007FC00 003FFF80 00FFFF80 03FFFF80 07FC0F00 0FF00100 1FE00000 1FC00000 3F800000 3F000000 7F000000 7F000000 FE000000 FE000000 FE000000 FE000000 FE000000 FE000000 FF000000 7F800800 7FC07800 3FFFF800 1FFFF800 0FFFF800 03FF0000 00E00000 01C00000 01E00000 00700000 00700000 07F00000 07E00000 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 22 0 BBX 22 31 3 0 BITMAP 007E00 001E00 000F00 000780 000000 000000 07FFFC 07FFFC 07FFF8 0FFFF8 0FE000 0FE000 0FC000 0FC000 1FC000 1FC000 1FFFC0 1FFFC0 1FFF80 3FFF80 3F8000 3F8000 3F0000 3F0000 7F0000 7F0000 7F0000 7FFFE0 7FFFC0 FFFFC0 FFFFC0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 22 0 BBX 22 31 3 0 BITMAP 0003F0 0007C0 000F00 003C00 000000 000000 07FFFC 07FFFC 07FFF8 0FFFF8 0FE000 0FE000 0FC000 0FC000 1FC000 1FC000 1FFFC0 1FFFC0 1FFF80 3FFF80 3F8000 3F8000 3F0000 3F0000 7F0000 7F0000 7F0000 7FFFE0 7FFFC0 FFFFC0 FFFFC0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 22 0 BBX 22 31 3 0 BITMAP 001F80 003F80 007BC0 01E1E0 000000 000000 07FFFC 07FFFC 07FFF8 0FFFF8 0FE000 0FE000 0FC000 0FC000 1FC000 1FC000 1FFFC0 1FFFC0 1FFF80 3FFF80 3F8000 3F8000 3F0000 3F0000 7F0000 7F0000 7F0000 7FFFE0 7FFFC0 FFFFC0 FFFFC0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 22 0 BBX 22 31 3 0 BITMAP 0078F0 0078F0 00F1E0 00F1E0 000000 000000 07FFFC 07FFFC 07FFF8 0FFFF8 0FE000 0FE000 0FC000 0FC000 1FC000 1FC000 1FFFC0 1FFFC0 1FFF80 3FFF80 3F8000 3F8000 3F0000 3F0000 7F0000 7F0000 7F0000 7FFFE0 7FFFC0 FFFFC0 FFFFC0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 12 0 BBX 12 31 3 0 BITMAP 0FC0 03C0 01E0 00F0 0000 0000 07E0 0FE0 0FE0 0FC0 0FC0 0FC0 1FC0 1FC0 1F80 1F80 1F80 1F80 3F80 3F00 3F00 3F00 3F00 7F00 7F00 7E00 7E00 7E00 FE00 FE00 FC00 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 12 0 BBX 14 31 3 0 BITMAP 00FC 01F0 03C0 0F00 0000 0000 07E0 0FE0 0FE0 0FC0 0FC0 0FC0 1FC0 1FC0 1F80 1F80 1F80 1F80 3F80 3F00 3F00 3F00 3F00 7F00 7F00 7E00 7E00 7E00 FE00 FE00 FC00 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 12 0 BBX 14 31 3 0 BITMAP 03F0 07F0 0F78 3C3C 0000 0000 07E0 0FE0 0FE0 0FC0 0FC0 0FC0 1FC0 1FC0 1F80 1F80 1F80 1F80 3F80 3F00 3F00 3F00 3F00 7F00 7F00 7E00 7E00 7E00 FE00 FE00 FC00 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 12 0 BBX 15 31 3 0 BITMAP 0F1E 0F1E 1E3C 1E3C 0000 0000 07E0 0FE0 0FE0 0FC0 0FC0 0FC0 1FC0 1FC0 1F80 1F80 1F80 1F80 3F80 3F00 3F00 3F00 3F00 7F00 7F00 7E00 7E00 7E00 FE00 FE00 FC00 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 28 0 BBX 28 25 2 0 BITMAP 03FFFC00 03FFFF80 07FFFFC0 07FFFFE0 07F03FE0 07F00FF0 07E00FF0 07E007F0 0FE007F0 0FE007F0 7FFF07F0 FFFE07F0 FFFE07F0 FFFE0FE0 1FC00FE0 1FC00FE0 1F801FC0 1F803FC0 3F807F80 3F80FF00 3F83FF00 3FFFFE00 3FFFF800 7FFFE000 7FFF8000 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 27 0 BBX 26 31 3 0 BITMAP 00078E00 001FFC00 001FFC00 0038F800 00000000 00000000 07E007C0 07E007C0 0FF007C0 0FF00F80 0FF80F80 0FF80F80 0FFC0F80 1FFC0F80 1FFE1F00 1FFE1F00 1F7E1F00 1F7F1F00 3E3F1F00 3E3FBE00 3E1FBE00 3E1FFE00 3E0FFE00 7C0FFE00 7C07FC00 7C07FC00 7C03FC00 7C03FC00 F801FC00 F801F800 F800F800 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 29 0 BBX 27 31 3 0 BITMAP 000FC000 0003C000 0001E000 0000F000 00000000 00000000 000FF800 003FFE00 00FFFF80 03FFFFC0 07F83FC0 0FE01FE0 1FC00FE0 1F800FE0 3F800FE0 3F000FE0 7F000FE0 7F000FE0 FE000FE0 FE000FE0 FE001FC0 FE001FC0 FE003F80 FE003F80 FF007F00 7F00FE00 7FC3FC00 3FFFF800 1FFFE000 0FFFC000 01FE0000 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 29 0 BBX 27 31 3 0 BITMAP 00007E00 0000F800 0001E000 00078000 00000000 00000000 000FF800 003FFE00 00FFFF80 03FFFFC0 07F83FC0 0FE01FE0 1FC00FE0 1F800FE0 3F800FE0 3F000FE0 7F000FE0 7F000FE0 FE000FE0 FE000FE0 FE001FC0 FE001FC0 FE003F80 FE003F80 FF007F00 7F00FE00 7FC3FC00 3FFFF800 1FFFE000 0FFFC000 01FE0000 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 29 0 BBX 27 31 3 0 BITMAP 0003F000 0007F000 000F7800 003C3C00 00000000 00000000 000FF800 003FFE00 00FFFF80 03FFFFC0 07F83FC0 0FE01FE0 1FC00FE0 1F800FE0 3F800FE0 3F000FE0 7F000FE0 7F000FE0 FE000FE0 FE000FE0 FE001FC0 FE001FC0 FE003F80 FE003F80 FF007F00 7F00FE00 7FC3FC00 3FFFF800 1FFFE000 0FFFC000 01FE0000 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 29 0 BBX 27 31 3 0 BITMAP 00078E00 001FFC00 001FFC00 0038F800 00000000 00000000 000FF800 003FFE00 00FFFF80 03FFFFC0 07F83FC0 0FE01FE0 1FC00FE0 1F800FE0 3F800FE0 3F000FE0 7F000FE0 7F000FE0 FE000FE0 FE000FE0 FE001FC0 FE001FC0 FE003F80 FE003F80 FF007F00 7F00FE00 7FC3FC00 3FFFF800 1FFFE000 0FFFC000 01FE0000 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 29 0 BBX 27 31 3 0 BITMAP 000F1E00 000F1E00 001E3C00 001E3C00 00000000 00000000 000FF800 003FFE00 00FFFF80 03FFFFC0 07F83FC0 0FE01FE0 1FC00FE0 1F800FE0 3F800FE0 3F000FE0 7F000FE0 7F000FE0 FE000FE0 FE000FE0 FE001FC0 FE001FC0 FE003F80 FE003F80 FF007F00 7F00FE00 7FC3FC00 3FFFF800 1FFFE000 0FFFC000 01FE0000 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 23 0 BBX 22 21 3 0 BITMAP 040010 0E0038 1E0078 0F00FC 0F81F0 07C3E0 03C7C0 03EF80 01FF00 00FE00 00FC00 01FC00 03FE00 07DF00 0F8F00 1F0F80 3E07C0 FC03C0 7801E0 7001C0 200080 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 29 0 BBX 32 25 5 0 BITMAP 0003FE3F 000FFFFE 003FFFFC 00FFFFF0 01FE0FF0 03F80FF8 07F01FF8 07E03FF8 0FE07FF8 0FC0FFF8 1FC1FBF8 1FC3F3F8 3F87E3F8 3F8FC3F8 3F9F87F0 3FBF07F0 3FFE0FE0 3FFC0FE0 3FF81FC0 1FF03F80 1FF0FF00 0FFFFE00 3FFFF800 7FFFF000 FC7F8000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 26 0 BBX 24 31 4 0 BITMAP 003F00 000F00 000780 0003C0 000000 000000 1FC03F 1F803F 1F803F 1F803E 3F807E 3F807E 3F007E 3F007E 3F007C 7F00FC 7F00FC 7E00FC 7E00FC 7E00F8 FE01F8 FE01F8 FE01F8 FE01F0 FE03F0 FE03E0 7F07E0 7FFFC0 3FFF80 1FFF00 03FC00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 26 0 BBX 24 31 4 0 BITMAP 0003F0 0007C0 000F00 003C00 000000 000000 1FC03F 1F803F 1F803F 1F803E 3F807E 3F807E 3F007E 3F007E 3F007C 7F00FC 7F00FC 7E00FC 7E00FC 7E00F8 FE01F8 FE01F8 FE01F8 FE01F0 FE03F0 FE03E0 7F07E0 7FFFC0 3FFF80 1FFF00 03FC00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 26 0 BBX 24 31 4 0 BITMAP 000FC0 001FC0 003DE0 00F0F0 000000 000000 1FC03F 1F803F 1F803F 1F803E 3F807E 3F807E 3F007E 3F007E 3F007C 7F00FC 7F00FC 7E00FC 7E00FC 7E00F8 FE01F8 FE01F8 FE01F8 FE01F0 FE03F0 FE03E0 7F07E0 7FFFC0 3FFF80 1FFF00 03FC00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 26 0 BBX 24 31 4 0 BITMAP 0078F0 0078F0 00F1E0 00F1E0 000000 000000 1FC03F 1F803F 1F803F 1F803E 3F807E 3F807E 3F007E 3F007E 3F007C 7F00FC 7F00FC 7E00FC 7E00FC 7E00F8 FE01F8 FE01F8 FE01F8 FE01F0 FE03F0 FE03E0 7F07E0 7FFFC0 3FFF80 1FFF00 03FC00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 23 0 BBX 22 31 5 0 BITMAP 000FC0 001F00 003C00 00F000 000000 000000 FE00FC 7E00F8 7E01F0 7F03E0 3F07C0 3F87C0 3F8F80 1F9F00 1FFE00 1FFE00 0FFC00 0FF800 07F000 07F000 07E000 07E000 0FE000 0FE000 0FE000 0FC000 0FC000 1FC000 1FC000 1FC000 1F8000 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 22 0 BBX 21 25 3 0 BITMAP 07E000 07E000 0FE000 0FC000 0FC000 0FFFC0 0FFFF0 1FFFF0 1FFFF8 1F83F8 1F83F8 1F83F8 3F83F8 3F03F0 3F07F0 3F0FE0 3FFFC0 7FFF80 7FFF00 7FF800 7E0000 7E0000 FE0000 FC0000 FC0000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 24 0 BBX 23 33 1 -7 BITMAP 000FE0 003FF8 00FFFC 01FFFC 01F8FC 03F0F8 03F0F8 07F1F0 07F1E0 07E3C0 07E7C0 0FE7C0 0FE7C0 0FE7E0 0FC7F0 0FC7F8 1FC3FC 1FC1FC 1FC0FE 1F807E 1F807E 3F907E 3F9FFE 3F9FFC 3F3FF8 3F1FE0 7F0000 7F0000 7F0000 7E0000 7E0000 FE0000 FE0000 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 23 0 BBX 21 24 3 0 BITMAP 003F00 000F00 000780 0003C0 000000 000000 007FF8 01FFF8 03FFF8 07FFF0 0FC3F0 1F83F0 3F07F0 3F07F0 7E0FE0 7E1FE0 FE3FE0 FE37E0 FE7FE0 FFEFC0 FFCFC0 FF8FC0 7F1FC0 3C1FC0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 23 0 BBX 21 24 3 0 BITMAP 0003F0 0007C0 000F00 003C00 000000 000000 007FF8 01FFF8 03FFF8 07FFF0 0FC3F0 1F83F0 3F07F0 3F07F0 7E0FE0 7E1FE0 FE3FE0 FE37E0 FE7FE0 FFEFC0 FFCFC0 FF8FC0 7F1FC0 3C1FC0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 23 0 BBX 21 24 3 0 BITMAP 000FC0 001FC0 003DE0 00F0F0 000000 000000 007FF8 01FFF8 03FFF8 07FFF0 0FC3F0 1F83F0 3F07F0 3F07F0 7E0FE0 7E1FE0 FE3FE0 FE37E0 FE7FE0 FFEFC0 FFCFC0 FF8FC0 7F1FC0 3C1FC0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 23 0 BBX 21 24 3 0 BITMAP 001E38 007FF0 007FF0 00E3E0 000000 000000 007FF8 01FFF8 03FFF8 07FFF0 0FC3F0 1F83F0 3F07F0 3F07F0 7E0FE0 7E1FE0 FE3FE0 FE37E0 FE7FE0 FFEFC0 FFCFC0 FF8FC0 7F1FC0 3C1FC0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 23 0 BBX 21 24 3 0 BITMAP 0078F0 0078F0 00F1E0 00F1E0 000000 000000 007FF8 01FFF8 03FFF8 07FFF0 0FC3F0 1F83F0 3F07F0 3F07F0 7E0FE0 7E1FE0 FE3FE0 FE37E0 FE7FE0 FFEFC0 FFCFC0 FF8FC0 7F1FC0 3C1FC0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 23 0 BBX 21 25 3 0 BITMAP 000700 000F80 000D80 000F80 000700 000000 000000 007FF8 01FFF8 03FFF8 07FFF0 0FC3F0 1F83F0 3F07F0 3F07F0 7E0FE0 7E1FE0 FE3FE0 FE37E0 FE7FE0 FFEFC0 FFCFC0 FF8FC0 7F1FC0 3C1FC0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 34 0 BBX 31 18 3 0 BITMAP 007FFDF0 01FFFFFC 03FFFFFE 07FFFFFE 0FC3FC7E 1F83F87C 3F07F07C 3F07F1F8 7E0FFFF0 7E1FFFC0 FE3FFF00 FE77E002 FFF7F006 FFE7F03E FFC3FFFC FF83FFFC 7F01FFF8 3C007F80 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 19 0 BBX 18 25 3 -7 BITMAP 003F00 01FFC0 03FFC0 0FFF80 1FE380 3F8080 3F0000 7F0000 7E0000 FE0000 FE0000 FE0000 FE0100 FF0700 FFFE00 7FFE00 3FFE00 0FF000 038000 070000 078000 01C000 01C000 1FC000 1F8000 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 21 0 BBX 18 24 3 0 BITMAP 007E00 001E00 000F00 000780 000000 000000 007E00 01FF80 07FFC0 0FFFC0 1F8FC0 3F0FC0 3E1F80 7E3F00 7FFE00 FFFC00 FFE000 FC0040 FE00C0 FF07C0 FFFF80 7FFF80 3FFF00 0FF000 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 21 0 BBX 19 24 3 0 BITMAP 0007E0 000F80 001E00 007800 000000 000000 007E00 01FF80 07FFC0 0FFFC0 1F8FC0 3F0FC0 3E1F80 7E3F00 7FFE00 FFFC00 FFE000 FC0040 FE00C0 FF07C0 FFFF80 7FFF80 3FFF00 0FF000 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 21 0 BBX 19 24 3 0 BITMAP 001F80 003F80 007BC0 01E1E0 000000 000000 007E00 01FF80 07FFC0 0FFFC0 1F8FC0 3F0FC0 3E1F80 7E3F00 7FFE00 FFFC00 FFE000 FC0040 FE00C0 FF07C0 FFFF80 7FFF80 3FFF00 0FF000 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 21 0 BBX 19 24 3 0 BITMAP 00F1E0 00F1E0 01E3C0 01E3C0 000000 000000 007E00 01FF80 07FFC0 0FFFC0 1F8FC0 3F0FC0 3E1F80 7E3F00 7FFE00 FFFC00 FFE000 FC0040 FE00C0 FF07C0 FFFF80 7FFF80 3FFF00 0FF000 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 12 0 BBX 12 24 3 0 BITMAP 0FC0 03C0 01E0 00F0 0000 0000 1FC0 1FC0 1F80 1F80 1F80 3F80 3F80 3F00 3F00 3F00 7F00 7F00 7E00 7E00 7E00 FE00 FE00 FC00 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 12 0 BBX 14 24 3 0 BITMAP 00FC 01F0 03C0 0F00 0000 0000 1FC0 1FC0 1F80 1F80 1F80 3F80 3F80 3F00 3F00 3F00 7F00 7F00 7E00 7E00 7E00 FE00 FE00 FC00 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 12 0 BBX 14 24 3 0 BITMAP 03F0 07F0 0F78 3C3C 0000 0000 1FC0 1FC0 1F80 1F80 1F80 3F80 3F80 3F00 3F00 3F00 7F00 7F00 7E00 7E00 7E00 FE00 FE00 FC00 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 12 0 BBX 15 24 3 0 BITMAP 0F1E 0F1E 1E3C 1E3C 0000 0000 1FC0 1FC0 1F80 1F80 1F80 3F80 3F80 3F00 3F00 3F00 7F00 7F00 7E00 7E00 7E00 FE00 FE00 FC00 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 22 0 BBX 21 30 3 0 BITMAP 000300 000780 000FC0 001F80 0FBF00 0FFE00 0FFE00 1FFF00 01FF80 07DFC0 0F8FE0 0707E0 027FF0 01FFF0 03FFF0 0FC7F0 1F83F0 3F03F8 3F03F0 7E03F0 7E03F0 FE03F0 FE07E0 FE07E0 FE0FC0 FF1F80 7FFF00 7FFE00 3FFC00 07E000 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 23 0 BBX 21 24 2 0 BITMAP 001E38 007FF0 007FF0 00E3E0 000000 000000 0FC1E0 1FC7F0 1FCFF8 1F9FF8 1F9FF8 1FBBF8 3FF3F8 3F63F0 3FC7F0 3FC7F0 3F87F0 7F07E0 7F07E0 7E0FE0 7E0FE0 7E0FE0 FE0FC0 FE0FC0 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 23 0 BBX 21 24 3 0 BITMAP 003F00 000F00 000780 0003C0 000000 000000 007F80 01FFE0 07FFF0 0FFFF0 1FC7F8 3F83F8 3F03F8 7E03F8 7E03F0 FE03F0 FE07F0 FE07E0 FE0FE0 FF1FC0 FFFF80 7FFE00 3FFC00 0FE000 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 23 0 BBX 21 24 3 0 BITMAP 0003F0 0007C0 000F00 003C00 000000 000000 007F80 01FFE0 07FFF0 0FFFF0 1FC7F8 3F83F8 3F03F8 7E03F8 7E03F0 FE03F0 FE07F0 FE07E0 FE0FE0 FF1FC0 FFFF80 7FFE00 3FFC00 0FE000 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 23 0 BBX 21 24 3 0 BITMAP 000FC0 001FC0 003DE0 00F0F0 000000 000000 007F80 01FFE0 07FFF0 0FFFF0 1FC7F8 3F83F8 3F03F8 7E03F8 7E03F0 FE03F0 FE07F0 FE07E0 FE0FE0 FF1FC0 FFFF80 7FFE00 3FFC00 0FE000 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 23 0 BBX 21 24 3 0 BITMAP 001E38 007FF0 007FF0 00E3E0 000000 000000 007F80 01FFE0 07FFF0 0FFFF0 1FC7F8 3F83F8 3F03F8 7E03F8 7E03F0 FE03F0 FE07F0 FE07E0 FE0FE0 FF1FC0 FFFF80 7FFE00 3FFC00 0FE000 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 23 0 BBX 21 24 3 0 BITMAP 0078F0 0078F0 00F1E0 00F1E0 000000 000000 007F80 01FFE0 07FFF0 0FFFF0 1FC7F8 3F83F8 3F03F8 7E03F8 7E03F0 FE03F0 FE07F0 FE07E0 FE0FE0 FF1FC0 FFFF80 7FFE00 3FFC00 0FE000 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 23 0 BBX 20 21 4 0 BITMAP 007C00 007C00 007C00 007800 000000 000000 000000 000000 7FFFF0 7FFFF0 FFFFE0 FFFFE0 000000 000000 000000 000000 000000 01E000 03E000 03E000 03E000 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 23 0 BBX 24 18 4 0 BITMAP 003FFF 00FFFC 03FFF8 07FFF8 0FE3FC 1FC7FC 1F8FFC 3F1FFC 3F3FF8 7F7DF8 7FFBF8 7FF3F0 7FE7F0 7FCFE0 7FFFC0 3FFF00 3FFE00 FFF000 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 23 0 BBX 21 24 3 0 BITMAP 003F00 000F00 000780 0003C0 000000 000000 1F83F8 1F83F8 3F83F0 3F83F0 3F07F0 3F07F0 3F07F0 7F0FE0 7F1FE0 7E1FE0 7E37E0 FE7FE0 FEEFC0 FFCFC0 FFCFC0 FF9FC0 7F1FC0 3C1F80 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 23 0 BBX 21 24 3 0 BITMAP 0003F0 0007C0 000F00 003C00 000000 000000 1F83F8 1F83F8 3F83F0 3F83F0 3F07F0 3F07F0 3F07F0 7F0FE0 7F1FE0 7E1FE0 7E37E0 FE7FE0 FEEFC0 FFCFC0 FFCFC0 FF9FC0 7F1FC0 3C1F80 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 23 0 BBX 21 24 3 0 BITMAP 001F80 003F80 007BC0 01E1E0 000000 000000 1F83F8 1F83F8 3F83F0 3F83F0 3F07F0 3F07F0 3F07F0 7F0FE0 7F1FE0 7E1FE0 7E37E0 FE7FE0 FEEFC0 FFCFC0 FFCFC0 FF9FC0 7F1FC0 3C1F80 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 23 0 BBX 21 24 3 0 BITMAP 0078F0 0078F0 00F1E0 00F1E0 000000 000000 1F83F8 1F83F8 3F83F0 3F83F0 3F07F0 3F07F0 3F07F0 7F0FE0 7F1FE0 7E1FE0 7E37E0 FE7FE0 FEEFC0 FFCFC0 FFCFC0 FF9FC0 7F1FC0 3C1F80 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 21 0 BBX 24 31 1 -7 BITMAP 0001F8 0003E0 000780 001E00 000000 000000 1FC01F 1FC03E 1FC07C 1FC07C 0FC0F8 0FE1F0 0FE1F0 0FE3E0 0FE7C0 07E7C0 07EF80 07FF00 07FF00 07FE00 03FC00 03F800 03F800 03F000 03E000 07E000 0FC000 1F8000 3F8000 7F0000 FE0000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 23 0 BBX 23 31 1 -7 BITMAP 03F800 03F000 03F000 07F000 07F000 07F000 07E0F8 07E1FC 0FE3FE 0FE7FE 0FCFFE 0FDEFE 0FD8FE 1FF0FE 1FF0FC 1FE0FC 1FC1F8 1F81F8 3F83F0 3F87E0 3FFFC0 3FFF80 3FFF00 7FFC00 7F0000 7F0000 7E0000 7E0000 FE0000 FE0000 FE0000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 21 0 BBX 24 31 1 -7 BITMAP 003C78 003C78 0078F0 0078F0 000000 000000 1FC01F 1FC03E 1FC07C 1FC07C 0FC0F8 0FE1F0 0FE1F0 0FE3E0 0FE7C0 07E7C0 07EF80 07FF00 07FF00 07FE00 03FC00 03F800 03F800 03F000 03E000 07E000 0FC000 1F8000 3F8000 7F0000 FE0000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 24 0 BBX 25 33 2 -7 BITMAP 000FFF80 003FFF80 00FFFF00 01FFFF00 01F83F00 03F07F00 03F07F00 07F07E00 1FFE7E00 3FFEFE00 3FFCFE00 3FFCFE00 0FE0FC00 0FE0FC00 0FC1FC00 0FC1FC00 1FC1FC00 1FC1F800 1FC1F800 1F83F800 1F83F800 3F83F800 3F83F000 3F83F000 3F07F000 3F07F000 7F000000 7F000000 7F000000 7E000000 7E000000 FE000000 FE000000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 15 4 3 8 BITMAP FFFE FFFE FFFE FFFC ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 18 31 6 -6 BITMAP 00FC00 01FC00 01FC00 01F800 01F800 01F800 01F800 01F000 7FFFC0 7FFFC0 FFFF80 FFFF80 03E000 07E000 07E000 07E000 07E000 07E000 0FC000 0FC000 0FC000 0FC000 0FC000 1FC000 1F8000 1F8000 1F8000 1F8000 3F8000 3F8000 3F0000 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 24 31 2 0 BITMAP 003C3C 001EF0 000FE0 000FC0 000000 000000 03FFFF 07FFFF 07FFFF 07FFFE 0001FE 0003FC 0007F8 000FF0 001FE0 001FE0 003FC0 007F80 00FF00 01FE00 03FC00 07FC00 07F800 0FF000 1FE000 3FC000 7F8000 7FFFF0 7FFFF0 FFFFF0 FFFFF0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 34 0 BBX 32 18 2 0 BITMAP 003F81F8 01FFE7FE 07FFFFFF 0FFFFFFF 1FC7FE3F 3F83FC3E 3F03F87E 7E03F8FC 7E03FFF8 FE03FFE0 FE03FF80 FE07F001 FE0FF007 FF1FF83F FFFFFFFE 7FFFFFFE 3FF8FFFC 0FE03FC0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 22 31 5 0 BITMAP 01E3C0 01E3C0 03C780 03C780 000000 000000 FE00FC 7E00F8 7E01F0 7F03E0 3F07C0 3F87C0 3F8F80 1F9F00 1FFE00 1FFE00 0FFC00 0FF800 07F000 07F000 07E000 07E000 0FE000 0FE000 0FE000 0FC000 0FC000 1FC000 1FC000 1FC000 1F8000 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 18 3 0 BITMAP 1FC0 1FC0 1F80 1F80 1F80 3F80 3F80 3F00 3F00 3F00 7F00 7F00 7E00 7E00 7E00 FE00 FE00 FC00 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 16 26 1 0 BITMAP 01FC 01FC 01F8 03F8 03F8 03F8 03F9 03F7 07FF 07FE 07FE 07F8 0FF0 3FE0 7FE0 7FE0 FFE0 CFC0 9FC0 1FC0 1FC0 1F80 1F80 3F80 3F80 3F80 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 21 25 1 0 BITMAP 01FC00 01F800 01F800 03F800 03F800 03F800 03F800 03F100 07F700 07FE00 07FE00 07FC00 0FF800 3FE000 7FE000 7FE000 FFE000 EFC000 9FC000 1FC000 1FC000 1FFFF8 1FFFF8 3FFFF8 3FFFF0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 20 31 4 -6 BITMAP 003F00 007F00 007F00 007E00 007E00 007E00 007E00 007C00 1FFFF0 1FFFF0 3FFFE0 3FFFE0 00F800 01F800 01F800 01F800 01F800 01F000 7FFFC0 7FFFC0 FFFF80 FFFF80 03E000 07E000 07E000 07E000 07E000 07E000 0FE000 0FE000 0FC000 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 24 0 BBX 23 33 2 -7 BITMAP 000FE0 007FF0 00FFF0 01FFE0 03F820 03F000 07F000 07F000 1FFFFE 3FFFFE 3FFFFC 3FFFFC 0FE0FC 0FE1FC 0FC1FC 0FC1F8 1FC1F8 1FC1F8 1F83F8 1F83F8 1F83F0 3F83F0 3F87F0 3F07F0 3F07F0 3F07E0 7F0000 7F0000 7E0000 7E0000 7E0000 FE0000 FE0000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 11 16 2 1 BITMAP 0400 0E00 1E00 1F00 1F80 0F80 0FC0 07E0 0FC0 1F80 3F00 3E00 7C00 F800 7000 2000 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 37 0 BBX 37 25 3 0 BITMAP 000FFFFFF8 003FFFFFF8 00FFFFFFF0 03FFFFFFF0 07F87FC000 0FE03FC000 0FC01F8000 1F801F8000 3F803F8000 3F003F8000 7F003FFF80 7F003FFF80 FE003FFF00 FE007FFF00 FE007F0000 FE007F0000 FE007F0000 FE007E0000 FF00FE0000 7F00FE0000 7FC3FE0000 3FFFFFFFC0 1FFFFFFF80 0FFFFFFF80 01FFFFFF80 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 34 0 BBX 32 3 3 8 BITMAP 7FFFFFFF FFFFFFFF FFFFFFFE ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 12 4 11 22 BITMAP F0F0 7BC0 3F80 3F00 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 7 4 7 -6 BITMAP 38 F0 FA 7E ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 14 5 11 21 BITMAP 0F3C 1E70 3CE0 79C0 E380 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 11 16 3 1 BITMAP 0080 01C0 03E0 07C0 0F80 1F00 3F00 7E00 FC00 7E00 3E00 3F00 1F00 0F00 0E00 0400 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 6 4 13 22 BITMAP 7C 7C F8 F8 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 12 4 11 22 BITMAP E0F0 FFE0 7FC0 3F00 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 16 13 6 3 BITMAP 1FFF 3FFF 3FFE 3FFE 3FFE 3FFE 7FFE 7FFC 7FFC 7FFC 7FFC FFFC FFF8 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 13 4 10 22 BITMAP 1E38 7FF0 7FF0 E3E0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 12 4 10 22 BITMAP 0FC0 1FC0 3DE0 F0F0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 18 12 4 14 BITMAP 0180C0 0F87C0 1F8FC0 3C1F00 3C1E00 7F3F80 7F3F80 7F3F80 7E3F00 FE3F00 FE7F00 FE7F00 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 5 14 BITMAP FE FE FE FC 7C 7C 7C 7C 7C 7C 78 78 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 19 24 2 0 BITMAP 01E1E0 00F780 007F00 007E00 000000 000000 00FF80 03FF80 0FFF00 0FFF00 1FC000 1FC000 0FC000 0FE000 07F800 03FC00 00FE00 007E00 407E00 70FE00 FFFE00 FFFC00 FFF800 1FE000 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 5 5 14 21 BITMAP 70 F8 D8 F8 70 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 13 0 -6 BITMAP 3F80 3F80 3F80 3F00 7F00 7F00 7F00 1E00 1E00 3C00 FC00 F000 C000 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 19 31 7 -6 BITMAP 001FC0 007FE0 00FFE0 01FFE0 03F840 03F000 07E000 07E000 07E000 0FE000 0FC000 7FF800 7FF800 7FF800 7FF800 1F8000 1F8000 1F8000 3F8000 3F8000 3F0000 3F0000 3F0000 7F0000 7F0000 7F0000 7E0000 7E0000 FE0000 FE0000 FE0000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 31 0 BBX 30 13 5 12 BITMAP 7FFDF0FC FFF9F1FC FFFBF9FC FFFBFBF8 0F83FBF8 1F83FBF8 1F83FFF8 1F87FFF8 1F87BDF0 1F07BDF0 3F073BF0 3F073BF0 3F0F03F0 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 28 25 -9 0 BITMAP 000003F0 000007E0 00000FC0 00001F80 00001F00 00003E00 00007C00 0000F800 0001F000 0003E000 0007E000 000FC000 001F8000 003F0000 007E0000 007C0000 00F80000 01F00000 03E00000 07C00000 0F800000 1F800000 3F000000 7E000000 FC000000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 8 4 12 22 BITMAP FC 3C 1E 0F ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 45 0 BBX 43 25 4 0 BITMAP 07C001F00000 1FF003E00000 3FF807C00000 7FF80F800000 7CF81F000000 F8F81E000000 F8F83C000000 F8F878000000 F9F8F0000000 FFF1E0000000 7FE3C0000000 7FC780000000 1F0F00000000 001F0FC01F00 003E3FE07FC0 007C7FF0FFC0 00F8FFF1FFE0 01F0F9F3F3E0 03E1F1F3E3E0 07C1F1F3E3E0 0F81F3F3E7C0 1F01FFE3FFC0 3E00FFE3FF80 3C00FF81FF00 F8003F00FC00 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 34 0 BBX 27 4 4 0 BITMAP 780F01E0 780F01E0 F01E03C0 F01E03C0 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 18 12 4 14 BITMAP 3F9FC0 3F9FC0 3F1FC0 3F1F80 7F3F80 7F3F80 1F0780 1E0F00 3E0F00 FC3E00 F87C00 C06000 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 22 0 BBX 20 31 3 0 BITMAP 00F0F0 007BC0 003F80 003F00 000000 000000 007FC0 01FFF0 03FFF0 07FFE0 0FE060 0FC000 1FC000 1FC000 1FE000 0FF000 0FFC00 07FE00 03FF00 01FF80 00FFC0 003FC0 001FC0 001FC0 001FC0 001FC0 603F80 7FFF80 FFFE00 FFFC00 FFE000 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 18 13 0 -6 BITMAP 3F9FC0 3F9FC0 3F1FC0 3F1F80 7F1F80 7F3F80 7F3F80 1E0F00 1E0F00 3C1E00 FC7E00 F07800 C06000 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 21 24 2 0 BITMAP 007878 003DE0 001FC0 001F80 000000 000000 0FFFF8 0FFFF8 0FFFF0 1FFFF0 000FE0 001FC0 003F80 00FF00 01FE00 03FC00 07F800 0FE000 1FC000 3F8000 7FFFE0 7FFFE0 FFFFC0 FFFFC0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/luBS08.bdf100644 1750 1750 57022 5413747516 15037 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Bold-R-Normal-Sans-11-80-100-100-P-70-ISO8859-1 SIZE 8 100 100 FONTBOUNDINGBOX 22 12 -8 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Bold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 11 POINT_SIZE 80 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 70 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 10 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 4 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 4 0 BBX 2 8 1 0 BITMAP C0 C0 C0 C0 80 80 00 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 6 0 BBX 5 4 0 4 BITMAP D8 D8 90 90 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 0 0 BITMAP 14 24 7E 28 28 FC 48 50 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 8 0 BBX 5 11 1 -1 BITMAP 20 20 78 E8 E0 70 38 38 B8 F0 20 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 10 0 BBX 9 8 0 0 BITMAP 4100 A200 A400 4800 0900 1280 2280 6100 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 0 0 BITMAP 38 64 7C 79 F9 DE CE 7F ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 0 4 BITMAP C0 C0 40 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 1 -2 BITMAP 20 60 40 C0 C0 C0 C0 40 60 20 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 1 -2 BITMAP 80 C0 40 60 60 60 60 40 C0 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 1 4 BITMAP 60 F0 E0 70 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 0 0 BITMAP 10 10 10 FE 10 10 10 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 4 0 BBX 2 4 1 -2 BITMAP C0 C0 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 8 0 BBX 6 1 1 3 BITMAP FC ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 4 0 BBX 2 2 1 0 BITMAP C0 C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 0 -2 BITMAP 04 08 08 10 10 20 20 40 40 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 0 0 BITMAP 38 44 C6 C6 C6 C6 44 38 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 8 0 BBX 3 8 2 0 BITMAP E0 60 60 60 60 60 60 60 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 8 0 BBX 6 8 1 0 BITMAP F8 8C 0C 0C 18 20 E0 FC ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 8 0 BBX 6 8 1 0 BITMAP F8 0C 0C 78 18 0C 0C F8 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 0 0 BITMAP 0C 1C 2C 6C CC FE 0C 0C ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 8 0 BBX 5 8 2 0 BITMAP F8 80 80 F0 38 18 18 F0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 0 0 BITMAP 3E 60 C0 FC C6 C6 46 3C ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 8 0 BBX 6 8 1 0 BITMAP FC 0C 18 10 30 60 60 E0 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 8 0 BBX 6 8 1 0 BITMAP 78 CC EC 78 58 CC CC 78 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 0 0 BITMAP 78 C4 C6 C6 7E 06 0C F8 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 4 0 BBX 2 6 1 0 BITMAP C0 C0 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 4 0 BBX 2 8 1 -2 BITMAP C0 C0 00 00 C0 C0 40 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP 04 0C 30 C0 30 0C 04 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 8 0 BBX 6 4 1 1 BITMAP FC 00 00 FC ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP 80 C0 30 0C 30 C0 80 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP F0 98 18 30 60 60 00 60 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 1 0 BITMAP 1E00 2180 5E80 A480 AC80 B700 C000 3C00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 0 0 BITMAP 18 1C 2C 2C 66 7E 46 83 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP F8 CC CC F8 D8 CC CC F8 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 0 BITMAP 3E 60 C0 C0 C0 C0 60 3E ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 1 0 BITMAP FC C6 C3 C3 C3 C3 C6 FC ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP FC C0 C0 F8 C0 C0 C0 FC ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP F8 C0 C0 F0 C0 C0 C0 C0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 0 0 BITMAP 3E 60 C0 C0 C6 C6 66 3E ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP C6 C6 C6 FE C6 C6 C6 C6 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 4 0 BBX 2 8 1 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 6 0 BBX 4 10 0 -2 BITMAP 30 30 30 30 30 30 30 30 30 E0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 0 BITMAP C4 C8 D0 F0 F8 D8 CC CE ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP C0 C0 C0 C0 C0 C0 C0 FC ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 10 0 BBX 8 8 1 0 BITMAP E3 E7 E7 F7 BB BB BB 83 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP C2 E2 F2 B2 9A 9E 8E 86 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 0 0 BITMAP 3E00 6300 C180 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP FC CC CC DC F8 C0 C0 C0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 9 0 BBX 10 10 0 -2 BITMAP 3E00 6300 C180 C180 C180 C180 6300 3E00 07C0 0180 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 0 BITMAP F8 CC CC D8 F8 D8 CC CE ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 78 C0 E0 F0 3C 0C 0C F8 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 0 0 BITMAP FF 18 18 18 18 18 18 18 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP C6 C6 C6 C6 C6 C6 C6 7C ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 0 0 BITMAP C1 62 62 76 34 34 38 18 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 10 0 BBX 10 8 0 0 BITMAP CC40 CE80 6E80 6E80 6E80 7780 3300 3300 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 0 0 BITMAP E6 64 38 30 38 3C 4C CE ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 0 0 BITMAP E3 62 34 3C 18 18 18 18 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP FC 1C 18 38 70 60 E0 FC ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 1 -2 BITMAP E0 C0 C0 C0 C0 C0 C0 C0 C0 E0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 0 -2 BITMAP 80 40 40 20 20 10 10 08 08 04 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 1 -2 BITMAP E0 60 60 60 60 60 60 60 60 E0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 1 BITMAP 10 30 30 30 48 48 84 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 6 0 BBX 5 1 0 -1 BITMAP F8 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 0 4 BITMAP 40 80 C0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP 70 58 F8 D8 D8 6C ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 8 0 BBX 6 8 1 0 BITMAP C0 C0 F8 CC CC CC CC F8 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 78 C0 C0 C0 E0 78 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 8 0 BBX 6 8 1 0 BITMAP 0C 0C 7C CC CC CC CC 7C ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP 78 CC CC FC C0 7C ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 0 0 BITMAP 78 60 F0 60 60 60 60 60 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 8 0 BBX 6 8 1 -2 BITMAP 7C CC CC CC CC 7C 0C 78 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 8 0 BBX 6 8 1 0 BITMAP C0 C0 F8 CC CC CC CC CC ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 4 0 BBX 2 8 1 0 BITMAP C0 00 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 0 -2 BITMAP 30 00 30 30 30 30 30 30 30 F0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP C0 C0 C8 D0 D0 F0 D8 DC ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 4 0 BBX 2 8 1 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 11 0 BBX 10 6 1 0 BITMAP FFC0 CCC0 CCC0 CCC0 CCC0 CCC0 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 8 0 BBX 6 6 1 0 BITMAP F8 CC CC CC CC CC ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP 7C EE C6 C6 EE 7C ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 8 0 BBX 6 8 1 -2 BITMAP F8 CC CC CC CC F8 C0 C0 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 8 0 BBX 6 8 1 -2 BITMAP 7C CC CC CC CC 7C 0C 0C ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP D0 F0 C0 C0 C0 C0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 0 BITMAP F8 C0 F0 78 18 F0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 0 0 BITMAP 60 60 F0 60 60 60 60 70 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 8 0 BBX 6 6 1 0 BITMAP CC CC CC CC CC 7C ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP C6 64 64 38 38 38 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 10 0 BBX 9 6 0 0 BITMAP CC80 CD00 7500 7500 7700 6600 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP EC 68 30 38 58 DC ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 -2 BITMAP C6 64 6C 38 38 30 30 60 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP FC 1C 38 70 E0 FC ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 1 -2 BITMAP 20 60 60 60 40 C0 60 60 60 60 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 3 0 BBX 1 10 1 -2 BITMAP 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 1 -2 BITMAP 80 C0 C0 C0 40 60 C0 C0 C0 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 8 0 BBX 6 3 1 2 BITMAP 64 B4 98 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 4 0 BBX 2 8 1 -2 BITMAP C0 00 80 80 C0 C0 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 8 0 BBX 5 8 1 0 BITMAP 10 78 C8 C0 C0 E8 78 10 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 8 0 BBX 5 8 2 0 BITMAP 38 60 60 60 F0 60 40 F8 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 0 0 BITMAP 82 44 7C 44 44 44 7C 82 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 0 0 BITMAP E6 64 78 38 7C 7C 30 30 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 3 0 BBX 1 10 1 -2 BITMAP 80 80 80 80 00 00 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 -2 BITMAP 7C C0 F0 7C 8C E4 F8 3C 0C F8 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 2 7 BITMAP 90 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 1 0 BITMAP 3C 66 DF A1 A1 DF 66 3C ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 6 0 BBX 5 4 1 4 BITMAP F8 18 F8 F8 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP 24 68 D8 58 68 24 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 8 0 BBX 6 4 1 1 BITMAP FC 04 04 04 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 3 0 BBX 2 1 1 3 BITMAP C0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 8 0 BBX 6 6 1 2 BITMAP 78 FC AC BC CC 78 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 2 7 BITMAP F0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 3 0 BBX 3 2 1 6 BITMAP E0 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 0 0 BITMAP 10 10 FE 10 10 00 FE ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 -7 3 BITMAP F0 10 30 C0 F0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 -7 3 BITMAP E0 20 C0 20 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 7 0 BBX 3 1 3 7 BITMAP E0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 8 0 BBX 6 8 1 -2 BITMAP CC CC CC CC CC FC C0 C0 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 8 0 BBX 5 10 1 -2 BITMAP F8 E8 E8 E8 28 28 28 28 28 28 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 8 0 BBX 2 1 3 3 BITMAP C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 3 -2 BITMAP C0 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 5 0 BBX 2 5 -8 3 BITMAP C0 40 40 40 40 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 6 0 BBX 5 4 0 4 BITMAP 70 D8 D8 70 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP 90 58 68 6C 58 90 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 10 0 BBX 8 8 3 0 BITMAP C3 46 44 4B 53 25 67 C1 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 10 0 BBX 9 8 3 0 BITMAP C300 4600 4400 4F80 5080 2180 6600 C780 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 10 0 BBX 8 8 3 0 BITMAP E3 26 C4 2B F3 25 67 C1 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 -2 BITMAP 30 00 30 30 60 C0 C8 78 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 38 18 1C 2C 2C 66 7E 46 83 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 1C 18 1C 2C 2C 66 7E 46 83 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 3C 18 1C 2C 2C 66 7E 46 83 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 3C 18 1C 2C 2C 66 7E 46 83 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 24 18 1C 2C 2C 66 7E 46 83 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 18 18 1C 2C 2C 66 7E 46 83 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 11 0 BBX 10 8 0 0 BITMAP 0FC0 0E00 1600 1780 2600 3E00 4600 C7C0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 -2 BITMAP 3E 60 C0 C0 C0 C0 60 3E 10 18 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 20 FC C0 C0 F8 C0 C0 C0 FC ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 10 FC C0 C0 F8 C0 C0 C0 FC ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 30 FC C0 C0 F8 C0 C0 C0 FC ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 48 FC C0 C0 F8 C0 C0 C0 FC ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 4 0 BBX 3 9 2 0 BITMAP E0 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 4 0 BBX 3 9 1 0 BITMAP E0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 2 0 BITMAP F0 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 2 0 BITMAP 90 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 0 0 BITMAP 7E00 6300 6180 F980 6180 6180 6300 7E00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 3C C2 E2 F2 B2 9A 9E 8E 86 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 0 0 BITMAP 0800 3E00 6300 C180 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 0 0 BITMAP 0400 3E00 6300 C180 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 0 0 BITMAP 0C00 3E00 6300 C180 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 0 0 BITMAP 1E00 3E00 6300 C180 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 0 0 BITMAP 1200 3E00 6300 C180 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP 84 48 38 30 38 48 84 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 0 0 BITMAP 3F80 6300 C780 CD80 D980 F180 6300 FE00 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 38 C6 C6 C6 C6 C6 C6 C6 7C ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 1C C6 C6 C6 C6 C6 C6 C6 7C ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 3C C6 C6 C6 C6 C6 C6 C6 7C ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 24 C6 C6 C6 C6 C6 C6 C6 7C ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 1C E3 62 34 3C 18 18 18 18 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP C0 F8 CC CC DC F8 C0 C0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 0 BITMAP 78 C8 D8 D0 DC CE C6 DC ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 20 70 58 F8 D8 D8 6C ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 18 70 58 F8 D8 D8 6C ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 38 70 58 F8 D8 D8 6C ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 78 70 58 F8 D8 D8 6C ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 48 70 58 F8 D8 D8 6C ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 30 70 58 F8 D8 D8 6C ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 10 0 BBX 9 6 0 0 BITMAP 7700 5D80 1980 FF80 DC00 EF80 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 -2 BITMAP 78 C0 C0 C0 E0 78 20 30 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 20 78 CC CC FC C0 7C ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 10 78 CC CC FC C0 7C ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 30 78 CC CC FC C0 7C ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 48 78 CC CC FC C0 7C ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 4 0 BBX 3 7 2 0 BITMAP E0 60 60 60 60 60 60 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 4 0 BBX 3 7 1 0 BITMAP E0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 4 0 BBX 4 7 2 0 BITMAP F0 60 60 60 60 60 60 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 4 0 BBX 4 7 2 0 BITMAP 90 60 60 60 60 60 60 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 0 0 BITMAP 08 10 F8 CC 7E E6 C6 C6 CE 7C ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP 78 F8 CC CC CC CC CC ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 0 BITMAP 10 7C EE C6 C6 EE 7C ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 0 BITMAP 10 7C EE C6 C6 EE 7C ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 0 BITMAP 18 7C EE C6 C6 EE 7C ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 0 BITMAP 3C 7C EE C6 C6 EE 7C ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 0 BITMAP 24 7C EE C6 C6 EE 7C ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP 20 00 00 FC 00 00 20 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP 7E EE DE F6 EE FC ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP 70 CC CC CC CC CC 7C ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP 38 CC CC CC CC CC 7C ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP 78 CC CC CC CC CC 7C ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP 48 CC CC CC CC CC 7C ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 -2 BITMAP 38 C6 64 6C 38 38 30 30 60 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 -2 BITMAP C0 C0 F8 CC CC CC CC F8 C0 C0 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 -2 BITMAP 24 C6 64 6C 38 38 30 30 60 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 0 0 BITMAP 7E 66 FE 66 66 66 66 66 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 1 0 3 BITMAP F8 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 -2 BITMAP 30 30 30 FC 30 30 30 30 30 30 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 30 FC 1C 18 38 70 60 E0 FC ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 6 0 0 BITMAP 7B80 CCC0 CCC0 CFC0 CC00 7FC0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 24 E3 62 34 3C 18 18 18 18 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 2 6 1 0 BITMAP C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 8 0 0 BITMAP 60 60 70 70 E0 E0 60 60 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 60 60 70 70 E0 E0 60 7E ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 -2 BITMAP 30 30 30 FC 30 30 FC 30 30 30 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 0 0 BITMAP 78 60 FE 66 66 66 66 66 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 0 0 BITMAP 80 40 40 60 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 8 0 0 BITMAP 3FF0 6300 C300 C3E0 C300 C300 6300 3FF0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 1 1 3 BITMAP FFC0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 2 7 BITMAP F0 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 1 3 -2 BITMAP C0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 2 7 BITMAP F0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 0 0 BITMAP 20 40 C0 40 40 20 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 1 3 7 BITMAP C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 2 7 BITMAP F0 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 4 4 2 2 BITMAP F0 F0 F0 F0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 2 7 BITMAP F0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 2 7 BITMAP F0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 4 0 4 BITMAP 48 90 D8 D8 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 1 4 BITMAP C0 C0 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 30 F8 C0 F0 78 18 F0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 1 3 7 BITMAP C0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 0 -2 BITMAP C0 C0 40 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 -2 BITMAP 1C 30 60 F0 60 60 60 E0 C0 C0 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 4 0 4 BITMAP F6C0 66C0 67C0 67C0 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 8 8 -3 0 BITMAP 03 06 04 08 10 20 60 C0 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 1 2 7 BITMAP E0 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 8 0 0 BITMAP 6100 9200 9600 6400 0B18 14A4 24A4 6318 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 1 1 0 BITMAP 8880 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 4 0 4 BITMAP D8 D8 48 90 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 78 78 C0 E0 F0 3C 0C 0C F8 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 4 0 -2 BITMAP D8 D8 48 90 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 30 FC 1C 38 70 E0 FC ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/luBS10.bdf100644 1750 1750 63550 5413747517 15034 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Bold-R-Normal-Sans-14-100-100-100-P-89-ISO8859-1 SIZE 10 100 100 FONTBOUNDINGBOX 27 15 -9 -3 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Bold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 14 POINT_SIZE 100 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 89 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 13 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 5 0 BBX 2 10 1 0 BITMAP C0 C0 C0 C0 C0 80 80 00 00 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 7 0 BBX 6 4 1 6 BITMAP EC CC C8 88 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 0 0 BITMAP 0900 1300 1200 7F80 1200 2400 FF00 2400 6400 4800 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 10 0 BBX 7 14 1 -2 BITMAP 10 10 7E 76 F0 F0 78 3C 1E 16 DE FC 10 10 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 13 0 BBX 12 10 0 0 BITMAP 6060 9080 9180 9100 9200 6400 0860 1890 1090 6060 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 1E00 3100 3100 3F00 3C40 FCC0 CCC0 C780 E300 3FC0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 0 6 BITMAP E0 E0 60 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 5 0 BBX 3 13 1 -3 BITMAP 20 60 60 C0 C0 C0 C0 C0 C0 40 60 60 20 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 5 0 BBX 3 13 1 -3 BITMAP 80 C0 C0 60 60 60 60 60 60 40 C0 C0 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 6 0 BBX 5 4 1 6 BITMAP 20 D8 D0 58 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 10 0 BBX 7 8 1 0 BITMAP 10 10 10 FE 10 10 10 10 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 -3 BITMAP E0 E0 60 60 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 10 0 BBX 8 1 1 4 BITMAP FF ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 5 0 BBX 3 2 1 0 BITMAP E0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 8 0 BBX 8 13 0 -3 BITMAP 03 02 04 04 08 08 18 10 10 20 20 40 C0 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 0 0 BITMAP 3E00 6300 4100 C180 C180 C180 C180 4100 6300 3E00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 10 0 BBX 3 10 3 0 BITMAP E0 60 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP FC 87 03 03 06 0C 18 70 E0 FF ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 10 0 BBX 7 10 1 0 BITMAP FC 86 06 06 78 0C 06 06 8E FC ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 06 0E 16 26 66 C6 FF 06 06 06 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 10 0 BBX 7 10 2 0 BITMAP FE 80 80 F8 0C 06 06 06 8C F8 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 1E 62 40 DC E7 C3 C3 C3 66 3C ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 10 0 BBX 7 10 2 0 BITMAP FE 06 04 08 18 30 30 60 60 E0 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 3E 63 63 7E 3C 7E C7 C3 E3 7C ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 3C 66 C3 C3 C3 E7 3B 02 46 78 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 5 0 BBX 2 7 1 0 BITMAP C0 C0 00 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 5 0 BBX 2 10 1 -3 BITMAP C0 C0 00 00 00 C0 C0 40 40 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 10 0 BBX 7 8 0 0 BITMAP 02 06 18 E0 60 18 06 02 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 10 0 BBX 8 5 1 1 BITMAP FF 00 00 00 FF ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 10 0 BBX 7 8 1 0 BITMAP 80 C0 30 0C 0E 30 C0 80 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP FC 86 06 04 08 10 30 00 00 30 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 2 0 BITMAP 0F00 3080 4040 4E40 9240 A640 AE80 BF00 4000 3C00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 0 0 BITMAP 0C00 1600 1600 1600 2300 2300 3F00 4180 4180 C1C0 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP FC C6 C6 CE F8 CC C6 C6 C6 FC ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 0 BITMAP 1F80 7080 6000 C000 C000 C000 C000 6000 7080 1F80 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP FE00 C380 C180 C0C0 C0C0 C0C0 C0C0 C080 C180 FE00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP FE C0 C0 C0 FC C0 C0 C0 C0 FE ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 2 0 BITMAP FC C0 C0 C0 F8 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 1F80 7080 6000 C000 C000 C000 C180 6180 7180 1F80 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP C180 C180 C180 C180 FF80 C180 C180 C180 C180 C180 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 5 0 BBX 2 10 2 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 7 0 BBX 5 13 1 -3 BITMAP 18 18 18 18 18 18 18 18 18 18 18 18 F0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP C300 C600 CC00 D800 D000 F800 DC00 CE00 C600 C380 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 FE ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 13 0 BBX 11 10 1 0 BITMAP E0E0 E0E0 B0E0 B160 B160 9A60 9A60 8A60 8C60 8060 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP C080 E080 F080 B080 9880 8C80 8680 8780 8380 8180 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 0 0 BITMAP 1F00 71C0 60C0 C060 C060 C060 C060 60C0 71C0 1F00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP FC CE C6 C6 CC F8 C0 C0 C0 C0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 12 0 BBX 13 13 0 -3 BITMAP 1F00 71C0 60C0 C060 C060 C060 C060 60E0 71C0 1F80 01F8 00F0 0030 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 0 BITMAP FE00 C300 C300 C300 C600 F800 CC00 CE00 C600 C780 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 7C E4 E0 E0 78 1C 06 06 86 F8 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 0 BITMAP FFC0 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP C180 C180 C180 C180 C180 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 0 BITMAP E0C0 6080 6080 3100 3100 3900 1A00 1A00 0E00 0C00 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 13 0 BBX 13 10 0 0 BITMAP C308 6310 6310 6590 65B0 35A0 35A0 39A0 38E0 18C0 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 0 BITMAP 6100 7200 3200 1C00 1C00 1C00 1E00 2600 6700 C380 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP E3 62 74 34 38 18 18 18 18 18 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP FF 07 0E 0C 1C 38 30 70 E0 FF ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 5 0 BBX 3 13 1 -3 BITMAP E0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 E0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 8 0 BBX 8 13 0 -3 BITMAP C0 40 20 20 10 10 18 08 08 04 04 02 03 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 5 0 BBX 3 13 1 -3 BITMAP E0 60 60 60 60 60 60 60 60 60 60 60 E0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 10 0 BBX 8 7 1 2 BITMAP 08 18 18 24 24 42 C3 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 1 -2 BITMAP FC ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 0 6 BITMAP 60 C0 E0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 0 0 BITMAP 7C 46 7E E6 C6 CF 77 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP C0 C0 C0 DE E7 C3 C3 C3 C7 FE ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP 3C 60 C0 C0 C0 60 3C ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 03 03 03 3F 63 C3 C3 C3 E7 7B ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 0 0 BITMAP 3E 63 C3 FF E0 70 3F ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 6 0 BBX 6 10 0 0 BITMAP 3C 64 60 F8 60 60 60 60 60 60 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 -3 BITMAP 7F 63 C3 C3 C3 E7 7B 03 47 7C ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 10 0 BBX 7 10 1 0 BITMAP C0 C0 C0 DC E6 C6 C6 C6 C6 C6 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 5 0 BBX 2 10 2 0 BITMAP C0 00 00 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 5 0 BBX 5 13 0 -3 BITMAP 18 00 00 18 18 18 18 18 18 18 18 98 F0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 10 0 BBX 7 10 2 0 BITMAP C0 C0 C0 CC C8 D0 F0 D8 DC CE ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 5 0 BBX 2 10 2 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 14 0 BBX 12 7 1 0 BITMAP DCF0 E730 C630 C630 C630 C630 C630 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 10 0 BBX 7 7 1 0 BITMAP DC E6 C6 C6 C6 C6 C6 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 1 0 BITMAP 3C 66 C3 C3 C3 66 3C ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 -3 BITMAP DE E7 C3 C3 C3 C6 FC C0 C0 C0 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 -3 BITMAP 7F E3 C3 C3 C3 E7 7B 03 03 03 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP D8 F8 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 0 BITMAP 7C E0 F8 FE 3E 8E FC ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 60 60 F8 60 60 60 60 68 38 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 10 0 BBX 7 7 1 0 BITMAP C6 C6 C6 C6 C6 CE 76 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 9 0 BBX 9 7 0 0 BITMAP E180 6100 3300 3200 3A00 1C00 1C00 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 12 0 BBX 12 7 0 0 BITMAP C730 6720 6720 6B60 79C0 39C0 31C0 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP E6 7C 38 38 3C 7C CE ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 -3 BITMAP E180 6100 7200 3200 3400 1C00 1800 1800 3000 7000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 0 BITMAP FE 0E 1C 38 70 E0 FE ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 5 0 BBX 4 13 1 -3 BITMAP 30 70 60 70 30 20 C0 20 30 70 60 70 30 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 4 0 BBX 1 13 1 -3 BITMAP 80 80 80 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 5 0 BBX 4 13 1 -3 BITMAP 80 C0 C0 C0 C0 40 30 40 C0 C0 C0 C0 80 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 10 0 BBX 8 3 1 2 BITMAP 61 99 86 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 5 0 BBX 2 10 1 -3 BITMAP C0 00 00 80 80 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 10 0 BBX 6 10 2 0 BITMAP 10 3C 44 C0 C0 C0 C0 64 3C 10 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 10 0 BBX 6 10 2 0 BITMAP 3C 64 60 60 60 F0 60 60 40 FC ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 0 BITMAP C040 40C0 2D00 3300 2100 2100 3300 3F00 C080 80C0 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 0 0 BITMAP E180 7300 3E00 1C00 3E00 1800 3E00 1800 1800 1800 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 4 0 BBX 1 13 1 -3 BITMAP 80 80 80 80 80 00 00 00 80 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 10 0 BBX 7 13 1 -3 BITMAP 7C E0 E0 F8 7C 8E 82 E2 7C 1E 0E 8E FC ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 9 0 BBX 5 1 2 9 BITMAP D8 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP 1E00 2100 5E80 B040 A040 A040 B040 5E80 2100 1E00 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 8 0 BBX 7 5 0 5 BITMAP F8 0C 0C FC FE ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 -1 0 BITMAP 22 66 C8 98 C8 44 26 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 10 0 BBX 8 5 1 1 BITMAP FF 01 01 01 01 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 4 0 BBX 3 1 1 4 BITMAP E0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 10 0 BBX 7 7 1 3 BITMAP 38 44 BA BA BA 44 38 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 9 0 BBX 5 1 2 9 BITMAP F8 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 3 0 BBX 3 2 2 8 BITMAP E0 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 10 0 BBX 7 8 1 0 BITMAP 10 10 10 FE 10 10 00 FE ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 -8 4 BITMAP F0 08 08 30 E0 F8 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 -8 4 BITMAP E0 10 60 10 10 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 9 0 BBX 4 1 3 9 BITMAP F0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 10 0 BBX 7 10 1 -3 BITMAP C6 C6 C6 C6 C6 CE F6 C0 C0 C0 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 10 0 BBX 6 13 1 -3 BITMAP 7C F4 F4 F4 74 14 14 14 14 14 14 14 14 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 10 0 BBX 2 1 4 4 BITMAP C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 9 0 BBX 3 3 3 -3 BITMAP C0 40 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 6 0 BBX 2 6 -9 4 BITMAP C0 40 40 40 40 40 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 8 0 BBX 7 5 0 5 BITMAP 7C C6 C6 C6 7C ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 0 0 BITMAP C8 44 26 32 26 CC 88 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 13 0 BBX 11 10 4 0 BITMAP C0C0 4100 4300 4200 44C0 49C0 1340 33E0 2040 C040 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 13 0 BBX 11 10 4 0 BITMAP C0C0 4100 4300 4200 47C0 4820 1020 30C0 2380 C3E0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 13 0 BBX 12 10 5 0 BITMAP E060 1080 6180 1100 1260 E4E0 09A0 19F0 1020 6020 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 -3 BITMAP 18 00 00 18 10 20 40 C0 C2 7E ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 0 0 BITMAP 1E00 0000 0C00 1600 1600 1600 2300 2300 3F00 4180 4180 C1C0 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 0 0 BITMAP 0F00 0000 0C00 1600 1600 1600 2300 2300 3F00 4180 4180 C1C0 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 0 0 BITMAP 1F00 0000 0C00 1600 1600 1600 2300 2300 3F00 4180 4180 C1C0 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 0 0 BITMAP 1F00 0000 0C00 1600 1600 1600 2300 2300 3F00 4180 4180 C1C0 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 0 0 BITMAP 1B00 0000 0C00 1600 1600 1600 2300 2300 3F00 4180 4180 C1C0 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 0 0 BITMAP 0C00 0000 0C00 1600 1600 1600 2300 2300 3F00 4180 4180 C1C0 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 14 0 BBX 12 10 -1 0 BITMAP 07F0 0F00 0B00 1B00 13E0 2300 7F00 4300 C300 83F0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 -3 BITMAP 1F80 7080 6000 C000 C000 C000 C000 6000 7080 1F80 0800 0800 1C00 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 1 0 BITMAP 78 00 FE C0 C0 C0 FC C0 C0 C0 C0 FE ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 1 0 BITMAP 3C 00 FE C0 C0 C0 FC C0 C0 C0 C0 FE ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 1 0 BITMAP 7C 00 FE C0 C0 C0 FC C0 C0 C0 C0 FE ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 1 0 BITMAP 6C 00 FE C0 C0 C0 FC C0 C0 C0 C0 FE ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 5 0 BBX 4 12 3 0 BITMAP F0 00 60 60 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 5 0 BBX 4 12 2 0 BITMAP F0 00 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 5 0 BBX 5 12 3 0 BITMAP F8 00 60 60 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 5 0 BBX 5 12 3 0 BITMAP D8 00 60 60 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 0 0 BITMAP 7F00 61C0 60C0 6060 F860 6060 6060 6040 60C0 7F00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP 3E00 0000 C080 E080 F080 B080 9880 8C80 8680 8780 8380 8180 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 0 0 BITMAP 1E00 0000 1F00 71C0 60C0 C060 C060 C060 C060 60C0 71C0 1F00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 0 0 BITMAP 0F00 0000 1F00 71C0 60C0 C060 C060 C060 C060 60C0 71C0 1F00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 0 0 BITMAP 1F00 0000 1F00 71C0 60C0 C060 C060 C060 C060 60C0 71C0 1F00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 0 0 BITMAP 1F00 0000 1F00 71C0 60C0 C060 C060 C060 C060 60C0 71C0 1F00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 0 0 BITMAP 1B00 0000 1F00 71C0 60C0 C060 C060 C060 C060 60C0 71C0 1F00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 10 0 BBX 8 8 1 0 BITMAP C1 43 24 18 18 24 C2 83 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 0 0 BITMAP 1F60 71C0 61C0 C260 C660 CC60 D860 70C0 71C0 DF00 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP 3C00 0000 C180 C180 C180 C180 C180 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP 1E00 0000 C180 C180 C180 C180 C180 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP 3E00 0000 C180 C180 C180 C180 C180 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP 3600 0000 C180 C180 C180 C180 C180 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 1E 00 E3 62 74 34 38 18 18 18 18 18 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP C0 C0 FC CE C6 C6 CC F8 C0 C0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 0 BITMAP 3C00 CE00 CC00 D800 D800 DE00 CF00 C380 D180 DF00 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 0 0 BITMAP 3C 00 7C 46 7E E6 C6 CF 77 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 0 0 BITMAP 1E 00 7C 46 7E E6 C6 CF 77 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 0 0 BITMAP 3E 00 7C 46 7E E6 C6 CF 77 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 0 0 BITMAP 3E 00 7C 46 7E E6 C6 CF 77 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 0 0 BITMAP 36 00 7C 46 7E E6 C6 CF 77 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 0 0 BITMAP 18 00 7C 46 7E E6 C6 CF 77 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 13 0 BBX 12 7 0 0 BITMAP 7FE0 4E30 0630 7FF0 C600 CF00 7BF0 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 -3 BITMAP 3C 60 C0 C0 C0 60 3C 10 10 38 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 0 0 BITMAP 3C 00 3E 63 C3 FF E0 70 3F ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 0 0 BITMAP 1E 00 3E 63 C3 FF E0 70 3F ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 0 0 BITMAP 3E 00 3E 63 C3 FF E0 70 3F ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 0 0 BITMAP 36 00 3E 63 C3 FF E0 70 3F ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 5 0 BBX 4 9 3 0 BITMAP F0 00 60 60 60 60 60 60 60 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 5 0 BBX 4 9 2 0 BITMAP F0 00 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 5 0 BBX 5 9 3 0 BITMAP F8 00 60 60 60 60 60 60 60 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 5 0 BBX 5 9 3 0 BITMAP D8 00 60 60 60 60 60 60 60 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 0 BITMAP 04 08 F8 7C 46 7F 67 C3 C3 C3 66 3C ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 10 0 BBX 7 9 1 0 BITMAP 7C 00 DC E6 C6 C6 C6 C6 C6 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 3C 00 3C 66 C3 C3 C3 66 3C ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 1E 00 3C 66 C3 C3 C3 66 3C ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 3E 00 3C 66 C3 C3 C3 66 3C ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 3E 00 3C 66 C3 C3 C3 66 3C ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 36 00 3C 66 C3 C3 C3 66 3C ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 10 0 BBX 8 8 1 0 BITMAP 10 00 00 FF 00 00 00 10 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 9 0 BBX 9 7 1 0 BITMAP 3D80 6600 C700 CB00 D300 6600 FC00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 10 0 BBX 7 9 1 0 BITMAP 78 00 C6 C6 C6 C6 C6 CE 76 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 10 0 BBX 7 9 1 0 BITMAP 3C 00 C6 C6 C6 C6 C6 CE 76 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 10 0 BBX 7 9 1 0 BITMAP 7C 00 C6 C6 C6 C6 C6 CE 76 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 10 0 BBX 7 9 1 0 BITMAP 6C 00 C6 C6 C6 C6 C6 CE 76 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 0 -3 BITMAP 1E00 0000 E180 6100 7200 3200 3400 1C00 1800 1800 3000 7000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 -3 BITMAP C0 C0 C0 DE E7 C3 C3 C3 C6 FC C0 C0 C0 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 0 -3 BITMAP 3600 0000 E180 6100 7200 3200 3400 1C00 1800 1800 3000 7000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 3F 63 63 FB 63 63 63 63 63 63 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 1 4 BITMAP FC ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 13 2 -3 BITMAP 30 30 30 30 FC 30 30 30 30 30 30 30 30 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 0 BITMAP 3E 00 FF 07 0E 0C 1C 38 30 70 E0 FF ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 13 7 0 0 BITMAP 3FE0 6710 C618 C7F8 C700 6780 3FF8 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 36 00 E3 62 74 34 38 18 18 18 18 18 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 2 7 2 0 BITMAP C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 10 1 0 BITMAP 60 60 60 70 70 E0 E0 60 60 60 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP 60 60 60 70 70 E0 E0 E0 60 7F ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 13 2 -3 BITMAP 30 30 30 30 FC 30 30 30 FC 30 30 30 30 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 3E 62 60 FF 63 63 63 63 63 63 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 7 1 0 BITMAP C0 40 60 20 60 C0 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 15 10 0 0 BITMAP 1FFE 71C0 60C0 C0C0 C0FC C0C0 C0C0 60C0 71C0 1FFE ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 13 1 1 3 BITMAP FFF8 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 1 2 9 BITMAP F8 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 3 1 3 -3 BITMAP E0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 1 3 9 BITMAP F8 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 7 0 0 BITMAP 20 60 C0 80 C0 40 60 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 2 1 4 9 BITMAP C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 1 2 9 BITMAP F8 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 5 4 2 3 BITMAP F8 F8 F8 F8 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 1 2 9 BITMAP F8 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 1 2 9 BITMAP F8 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 4 1 6 BITMAP 44 C8 CC CC ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 0 6 BITMAP E0 E0 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 7C 00 7C E0 F8 FE 3E 8E FC ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 2 1 3 9 BITMAP C0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 0 -3 BITMAP E0 E0 60 60 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 2 -3 BITMAP 0F 19 38 38 FC 70 70 70 70 60 E0 E0 E0 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 12 5 0 5 BITMAP FF30 33F0 33F0 33F0 32B0 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 10 10 -3 0 BITMAP 00C0 0100 0300 0200 0400 0800 1000 3000 2000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 4 1 2 9 BITMAP F0 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 18 10 0 0 BITMAP 606000 908000 918000 910000 920000 640000 0CE180 191240 111240 60E180 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 11 1 2 0 BITMAP 8420 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 4 1 6 BITMAP CC CC 4C 88 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 12 1 0 BITMAP 7C 00 7C E4 E0 E0 78 1C 06 06 86 F8 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 5 1 -3 BITMAP CC CC 4C 4C 88 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 7C 00 FE 0E 1C 38 70 E0 FE ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/luBS12.bdf100644 1750 1750 73144 5413747517 15036 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Bold-R-Normal-Sans-17-120-100-100-P-108-ISO8859-1 SIZE 12 100 100 FONTBOUNDINGBOX 33 18 -11 -3 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Bold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 17 POINT_SIZE 120 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 108 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 15 FONT_DESCENT 4 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 6 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 6 0 BBX 3 12 1 0 BITMAP E0 E0 E0 E0 E0 60 60 60 00 00 E0 E0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 9 0 BBX 8 6 1 6 BITMAP E7 E7 E7 66 66 66 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 0 0 BITMAP 0CC0 0DC0 1D80 7FE0 7FE0 1980 3300 FFC0 FFC0 3700 7600 6600 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 12 0 BBX 8 17 2 -2 BITMAP 18 18 18 7E 7E E8 E8 78 7C 1E 1F 17 97 FF FE 18 18 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 15 0 BBX 15 12 0 0 BITMAP 781C FC38 CC70 CCE0 FDC0 7980 033C 077E 0E66 1C66 387E 703C ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 13 0 BBX 12 12 1 0 BITMAP 1F00 3F80 3980 3980 1F00 3E30 7F30 E760 E7E0 F3C0 7FC0 3EE0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 1 7 BITMAP E0 E0 E0 60 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 7 0 BBX 5 15 1 -3 BITMAP 08 18 30 70 60 E0 E0 E0 E0 E0 60 70 30 18 08 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 7 0 BBX 5 15 1 -3 BITMAP 80 C0 60 70 30 38 38 38 38 38 30 70 60 C0 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 8 0 BBX 7 6 0 6 BITMAP 38 54 EE 28 6C 28 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP 0C00 0C00 0C00 0C00 FFC0 FFC0 0C00 0C00 0C00 0C00 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 6 0 BBX 3 6 1 -3 BITMAP E0 E0 E0 60 60 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 12 0 BBX 10 2 1 4 BITMAP FFC0 FFC0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 6 0 BBX 3 3 1 0 BITMAP E0 E0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 10 0 BBX 10 15 0 -3 BITMAP 01C0 0180 0380 0300 0700 0600 0E00 0C00 1C00 1800 3800 3000 7000 6000 E000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 1 0 BITMAP 1E00 3F00 7380 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 7380 3F00 1E00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 12 0 BBX 5 12 3 0 BITMAP F8 F8 38 38 38 38 38 38 38 38 38 38 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 12 0 BBX 9 12 1 0 BITMAP 7E00 FF00 8780 0380 0380 0700 0E00 1C00 7800 F000 FF80 FF80 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 12 0 BBX 9 12 2 0 BITMAP 7E00 FF80 8380 0380 0700 7C00 7F00 0780 0380 8780 FF00 FE00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 1 0 BITMAP 0780 0780 0F80 1B80 3B80 7380 E380 FFC0 FFC0 0380 0380 0380 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 12 0 BBX 8 12 2 0 BITMAP FF FF C0 C0 F8 FE 0F 07 07 8F FE FC ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 1 0 BITMAP 1F80 3F80 7880 F000 EF00 FF80 F3C0 E1C0 E1C0 73C0 7F80 1F00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 12 0 BBX 9 12 2 0 BITMAP FF80 FF80 0380 0700 0E00 0C00 1C00 3800 3800 7000 7000 F000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 1 0 BITMAP 1F00 7F80 7380 7380 7B00 3F00 7F80 E3C0 E1C0 F1C0 7F80 3F00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 1 0 BITMAP 3E00 7F80 F380 E1C0 E1C0 F3C0 7FC0 3DC0 03C0 4780 7F00 7E00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 6 0 BBX 3 9 1 0 BITMAP E0 E0 E0 00 00 00 E0 E0 E0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 6 0 BBX 3 12 1 -3 BITMAP E0 E0 E0 00 00 00 E0 E0 E0 60 60 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP 0040 01C0 0780 1E00 F800 7800 1E00 0780 01C0 0040 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 12 0 BBX 10 6 1 2 BITMAP FFC0 FFC0 0000 0000 FFC0 FFC0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP 8000 E000 7800 1E00 0780 07C0 1E00 7800 E000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP FC FF 87 07 06 0C 18 38 38 00 38 38 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 14 0 BBX 14 12 1 0 BITMAP 07E0 1C10 3008 63E4 4464 8844 98C4 99C8 9FC8 4CF0 2080 1F00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 13 0 BBX 13 12 0 0 BITMAP 0700 0F80 0F80 1FC0 19C0 19C0 31E0 3FE0 7FF0 6070 6070 C078 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 2 0 BITMAP FE00 FF00 E700 E700 E600 FC00 FF00 E780 E380 E380 FF80 FE00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 1 0 BITMAP 0FE0 3FE0 7820 F000 E000 E000 E000 E000 F000 7820 3FE0 0FC0 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 14 0 BBX 12 12 1 0 BITMAP FF80 FFC0 E1E0 E0F0 E070 E070 E070 E070 E070 E0E0 FFC0 FF80 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP FF80 FF80 E000 E000 E000 FF00 FF00 E000 E000 E000 FF80 FF80 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 2 0 BITMAP FF FF E0 E0 E0 FE FE E0 E0 E0 E0 E0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 13 0 BBX 11 12 1 0 BITMAP 0FE0 3FE0 7820 F000 E000 E000 E0E0 E0E0 F0E0 78E0 3FE0 0FE0 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 14 0 BBX 11 12 1 0 BITMAP E0E0 E0E0 E0E0 E0E0 E0E0 FFE0 FFE0 E0E0 E0E0 E0E0 E0E0 E0E0 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 6 0 BBX 3 12 2 0 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 9 0 BBX 7 15 0 -3 BITMAP 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E FC F8 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 13 0 BBX 11 12 2 0 BITMAP E1C0 E380 E300 E600 EE00 FC00 FE00 EF00 E700 E780 E3C0 E1E0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 FF80 FF80 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 16 0 BBX 13 12 2 0 BITMAP F078 F878 F8F8 F8F8 FCF8 DDB8 DDB8 DFB8 CF38 CF38 C738 C038 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 13 0 BBX 10 12 2 0 BITMAP E0C0 F0C0 F0C0 F8C0 FCC0 DCC0 CEC0 CFC0 C7C0 C3C0 C3C0 C1C0 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 15 0 BBX 13 12 1 0 BITMAP 0F80 3FE0 78F0 F078 E038 E038 E038 E038 F078 78F0 3FE0 0F80 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 2 0 BITMAP FF00 FF80 E380 E380 E780 FF00 FE00 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 15 0 BBX 15 15 1 -3 BITMAP 0F80 3FE0 78F0 F078 E038 E038 E038 E038 F078 78F0 3FE0 0FC0 00FE 007C 0018 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 1 0 BITMAP FE00 FF80 E380 E380 E780 FF00 FE00 EF00 E700 E380 E3C0 E1E0 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 3F00 7F00 F100 F000 F800 7E00 3F00 0780 0380 8380 FF00 FE00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 1 0 BITMAP FFE0 FFE0 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 13 0 BBX 10 12 2 0 BITMAP E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 F3C0 7F80 3F00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 12 0 BBX 12 12 0 0 BITMAP E030 7060 7060 7860 38C0 38C0 1DC0 1D80 1D80 0F80 0F00 0F00 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 16 0 BBX 16 12 0 0 BITMAP E1C3 F1C3 71C6 73E6 73E6 7BEE 3BEC 3E7C 3E7C 3E7C 1E78 1C38 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 1 0 BITMAP F0E0 79C0 3980 3F80 1F00 0E00 0F00 1F00 3F80 3380 63C0 E1E0 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 13 0 BBX 11 12 1 0 BITMAP F0E0 70C0 79C0 3980 1F00 1F00 0E00 0E00 0E00 0E00 0E00 0E00 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP FF80 FF80 0780 0F00 0E00 1E00 3C00 3800 7800 F000 FF80 FF80 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 7 0 BBX 5 15 1 -3 BITMAP F8 F8 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 F8 F8 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 10 0 BBX 10 15 0 -3 BITMAP E000 6000 7000 3000 3800 1800 1C00 0C00 0E00 0600 0700 0300 0380 0180 01C0 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 7 0 BBX 5 15 1 -3 BITMAP F8 F8 38 38 38 38 38 38 38 38 38 38 38 F8 F8 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 2 BITMAP 0400 0C00 0C00 1E00 1E00 3300 3300 6180 6180 C0C0 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 9 0 BBX 7 2 1 -2 BITMAP FE FE ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 1 7 BITMAP 60 C0 E0 E0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 11 0 BBX 9 9 1 0 BITMAP 7E00 7F00 4700 0700 7F00 FF00 E700 FF80 7B80 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 1 0 BITMAP E000 E000 E000 EF00 FF80 F3C0 E1C0 E1C0 E1C0 E3C0 FF80 EF00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 1F 7F F1 E0 E0 E0 F0 7F 3F ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 1 0 BITMAP 01C0 01C0 01C0 3DC0 7FC0 F1C0 E1C0 E1C0 E1C0 F3C0 7FC0 3DC0 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 3E00 7F00 E380 FF80 FF80 E000 F080 7F80 1F80 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 8 0 BBX 7 12 1 0 BITMAP 3E 7E 70 FC FC 70 70 70 70 70 70 70 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 1 -3 BITMAP 3DC0 7FC0 F1C0 E1C0 E1C0 E1C0 F3C0 7DC0 39C0 43C0 7F80 3F00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 12 0 BBX 9 12 1 0 BITMAP E000 E000 E000 EF00 FF80 F380 E380 E380 E380 E380 E380 E380 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 6 0 BBX 3 12 2 0 BITMAP E0 E0 00 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 6 0 BBX 6 15 0 -3 BITMAP 1C 1C 00 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C FC F8 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 12 0 BBX 9 12 2 0 BITMAP E000 E000 E000 E700 E600 EE00 EC00 FC00 EE00 EF00 E700 E780 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 6 0 BBX 3 12 2 0 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 17 0 BBX 15 9 1 0 BITMAP EF3C FFFE F3CE E38E E38E E38E E38E E38E E38E ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 12 0 BBX 9 9 1 0 BITMAP EF00 FF80 F380 E380 E380 E380 E380 E380 E380 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 1 0 BITMAP 1E00 7F80 F3C0 E1C0 E1C0 E1C0 F3C0 7F80 1E00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 1 -3 BITMAP EF00 FF80 F3C0 E1C0 E1C0 E1C0 E3C0 FF80 EF00 E000 E000 E000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 1 -3 BITMAP 3DC0 7FC0 F1C0 E1C0 E1C0 E1C0 F3C0 7FC0 3DC0 01C0 01C0 01C0 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 2 0 BITMAP EC FC FC E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 11 0 BBX 8 9 1 0 BITMAP 7E FE E2 F0 7E 1F 87 FF FC ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 0 BITMAP 70 70 FC FC 70 70 70 70 70 7C 3C ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 12 0 BBX 9 9 1 0 BITMAP E380 E380 E380 E380 E380 E380 E780 FF80 7B80 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 1 0 BITMAP F0C0 7180 7180 7980 3B00 3B00 1F00 1E00 1E00 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 15 0 BBX 14 9 1 0 BITMAP E38C E39C 7798 77D8 77D8 7DF0 3CF0 3CF0 3CF0 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 0 0 BITMAP F380 7B00 3E00 3E00 1C00 3E00 3F00 6700 E780 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 11 0 BBX 11 12 0 -3 BITMAP F0E0 70C0 79C0 3980 3B80 1F00 1F00 1E00 0C00 1C00 3800 7800 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP FF80 FF80 0F00 1E00 3C00 7C00 F800 FF80 FF80 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 7 0 BBX 5 15 1 -3 BITMAP 38 78 70 70 38 38 F0 E0 30 38 38 70 70 78 38 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 4 0 BBX 2 15 1 -3 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 7 0 BBX 5 15 1 -3 BITMAP C0 E0 E0 E0 E0 E0 78 38 60 E0 E0 E0 E0 E0 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 12 0 BBX 10 4 1 3 BITMAP 70C0 FCC0 CFC0 C380 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 6 0 BBX 3 12 1 -3 BITMAP E0 E0 00 00 60 60 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 12 0 BBX 8 12 2 0 BITMAP 0C 0C 7F 7F E0 E0 E0 F0 FF 7F 0C 0C ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 12 0 BBX 9 12 2 0 BITMAP 1F80 3F80 3800 3800 3800 FC00 FC00 3800 3800 3000 FF80 FF80 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 12 0 BBX 12 12 0 0 BITMAP 4020 E070 76E0 3FC0 39C0 30C0 30C0 39C0 3FC0 7FE0 E070 4020 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 0 0 BITMAP F0E0 79C0 3F80 1F00 3F80 3F80 0E00 3F80 3F80 0E00 0E00 0E00 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 4 0 BBX 2 15 1 -3 BITMAP C0 C0 C0 C0 C0 C0 00 00 00 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 1 -3 BITMAP 7F00 FF00 E000 F000 7E00 7F00 CF80 E180 FD80 7F00 3F00 0780 8380 FF00 FE00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 11 0 BBX 6 2 3 10 BITMAP CC CC ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 14 0 BBX 13 12 1 0 BITMAP 0F80 3060 67F0 4C10 9808 9808 9808 9808 4C10 67F0 3060 0F80 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 9 0 BBX 8 6 1 6 BITMAP 7C FE FE EE FE 77 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 10 0 BBX 9 7 1 1 BITMAP 1100 3B80 7700 EE00 7700 3B80 1100 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 12 0 BBX 10 6 1 2 BITMAP FFC0 FFC0 00C0 00C0 00C0 00C0 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 5 0 BBX 4 2 0 4 BITMAP F0 F0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 12 0 BBX 8 9 2 3 BITMAP 3C 66 FF B7 BD BD F7 66 3C ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 11 0 BBX 6 2 3 10 BITMAP FC FC ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 4 0 BBX 3 3 1 9 BITMAP E0 A0 E0 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP 0C00 0C00 0C00 FFC0 FFC0 0C00 0C00 0000 FFC0 FFC0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 -10 5 BITMAP F0 98 18 30 20 C0 F8 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 -11 5 BITMAP F0 18 18 70 18 18 F0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 11 0 BBX 4 2 4 10 BITMAP 70 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 12 0 BBX 9 12 1 -3 BITMAP E380 E380 E380 E380 E380 E380 E780 FF80 FB80 E000 E000 E000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 12 0 BBX 7 15 2 -3 BITMAP 7E FE FE FE FE 7E 1E 1E 1E 1E 1E 1E 1E 1E 1E ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 12 0 BBX 2 2 5 4 BITMAP C0 C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 11 0 BBX 3 3 4 -3 BITMAP C0 60 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 7 0 BBX 3 7 -11 5 BITMAP E0 60 60 60 60 60 60 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 9 0 BBX 8 6 1 6 BITMAP 3C FF E7 E7 FF 3C ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 10 0 BBX 9 7 1 1 BITMAP 4400 EE00 7700 3B80 7700 EE00 4400 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 16 0 BBX 14 12 4 0 BITMAP E070 60E0 61C0 6180 6300 6718 6E38 0CD8 1998 39FC 7018 E018 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 16 0 BBX 13 12 4 0 BITMAP E070 60E0 61C0 6180 6300 67F0 6E98 0C18 1830 3820 70C0 E0F8 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 16 0 BBX 15 12 5 0 BITMAP F038 1870 18E0 70C0 1980 1B8C F71C 066C 0CCC 1CFE 380C 700C ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 -3 BITMAP 1C 1C 00 00 1C 18 30 60 E0 E1 FF 3F ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 13 0 BBX 13 15 0 0 BITMAP 0E00 0300 0000 0700 0F80 0F80 1FC0 19C0 19C0 31E0 3FE0 7FF0 6070 6070 C078 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 13 0 BBX 13 15 0 0 BITMAP 0380 0600 0000 0700 0F80 0F80 1FC0 19C0 19C0 31E0 3FE0 7FF0 6070 6070 C078 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 13 0 BBX 13 15 0 0 BITMAP 0780 0CC0 0000 0700 0F80 0F80 1FC0 19C0 19C0 31E0 3FE0 7FF0 6070 6070 C078 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 13 0 BBX 13 15 0 0 BITMAP 07C0 0F80 0000 0700 0F80 0F80 1FC0 19C0 19C0 31E0 3FE0 7FF0 6070 6070 C078 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 13 0 BBX 13 15 0 0 BITMAP 0CC0 0CC0 0000 0700 0F80 0F80 1FC0 19C0 19C0 31E0 3FE0 7FF0 6070 6070 C078 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 13 0 BBX 13 15 0 0 BITMAP 0700 0700 0000 0700 0F80 0F80 1FC0 19C0 19C0 31E0 3FE0 7FF0 6070 6070 C078 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 17 0 BBX 16 12 0 0 BITMAP 01FF 03FF 03C0 07C0 0FC0 0DFE 1DFE 19C0 3FC0 3FC0 61FF C1FF ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 1 -3 BITMAP 0FE0 3FE0 7820 F000 E000 E000 E000 E000 F000 7820 3FE0 0FC0 0400 0600 0E00 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 11 0 BBX 9 15 1 0 BITMAP 3800 0C00 0000 FF80 FF80 E000 E000 E000 FF00 FF00 E000 E000 E000 FF80 FF80 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 11 0 BBX 9 15 1 0 BITMAP 0E00 1800 0000 FF80 FF80 E000 E000 E000 FF00 FF00 E000 E000 E000 FF80 FF80 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 11 0 BBX 9 15 1 0 BITMAP 3C00 6600 0000 FF80 FF80 E000 E000 E000 FF00 FF00 E000 E000 E000 FF80 FF80 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 11 0 BBX 9 15 1 0 BITMAP 6600 6600 0000 FF80 FF80 E000 E000 E000 FF00 FF00 E000 E000 E000 FF80 FF80 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 6 0 BBX 4 15 3 0 BITMAP E0 30 00 70 70 70 70 70 70 70 70 70 70 70 70 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 6 0 BBX 4 15 2 0 BITMAP 70 C0 00 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 6 0 BBX 6 15 3 0 BITMAP 78 CC 00 70 70 70 70 70 70 70 70 70 70 70 70 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 6 0 BBX 6 15 3 0 BITMAP CC CC 00 70 70 70 70 70 70 70 70 70 70 70 70 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 14 0 BBX 14 12 0 0 BITMAP 3FE0 3FF0 3878 383C 381C FE1C FE1C 381C 381C 3838 3FF0 3FE0 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 13 0 BBX 10 15 2 0 BITMAP 1F00 3E00 0000 E0C0 F0C0 F0C0 F8C0 FCC0 DCC0 CEC0 CFC0 C7C0 C3C0 C3C0 C1C0 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 15 0 BBX 13 15 1 0 BITMAP 0E00 0300 0000 0F80 3FE0 78F0 F078 E038 E038 E038 E038 F078 78F0 3FE0 0F80 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 15 0 BBX 13 15 1 0 BITMAP 0380 0600 0000 0F80 3FE0 78F0 F078 E038 E038 E038 E038 F078 78F0 3FE0 0F80 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 15 0 BBX 13 15 1 0 BITMAP 0780 0CC0 0000 0F80 3FE0 78F0 F078 E038 E038 E038 E038 F078 78F0 3FE0 0F80 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 15 0 BBX 13 15 1 0 BITMAP 07C0 0F80 0000 0F80 3FE0 78F0 F078 E038 E038 E038 E038 F078 78F0 3FE0 0F80 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 15 0 BBX 13 15 1 0 BITMAP 0CC0 0CC0 0000 0F80 3FE0 78F0 F078 E038 E038 E038 E038 F078 78F0 3FE0 0F80 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP 4080 E1C0 7380 3F00 1E00 1E00 3F00 7380 E1C0 4080 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 15 0 BBX 13 12 1 0 BITMAP 0FB8 3FF0 78F0 F1F8 E3B8 E338 E638 EE38 FC78 78F0 7FE0 EF80 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 13 0 BBX 10 15 2 0 BITMAP 1C00 0600 0000 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 F3C0 7F80 3F00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 13 0 BBX 10 15 2 0 BITMAP 0700 0C00 0000 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 F3C0 7F80 3F00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 13 0 BBX 10 15 2 0 BITMAP 1E00 3300 0000 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 F3C0 7F80 3F00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 13 0 BBX 10 15 2 0 BITMAP 3300 3300 0000 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 F3C0 7F80 3F00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 13 0 BBX 11 15 1 0 BITMAP 0700 0C00 0000 F0E0 70C0 79C0 3980 1F00 1F00 0E00 0E00 0E00 0E00 0E00 0E00 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 2 0 BITMAP E000 E000 FF00 FF80 E780 E380 E380 E780 FF00 FE00 E000 E000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 1 0 BITMAP 3E00 7F00 E780 E700 E600 EE00 EF80 E7C0 E1E0 E0E0 EFE0 EFC0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP 3800 0C00 0000 7E00 7F00 4700 0700 7F00 FF00 E700 FF80 7B80 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP 0E00 1800 0000 7E00 7F00 4700 0700 7F00 FF00 E700 FF80 7B80 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP 1E00 3300 0000 7E00 7F00 4700 0700 7F00 FF00 E700 FF80 7B80 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP 1F00 3E00 0000 7E00 7F00 4700 0700 7F00 FF00 E700 FF80 7B80 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP 3300 3300 0000 7E00 7F00 4700 0700 7F00 FF00 E700 FF80 7B80 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP 1C00 1C00 0000 7E00 7F00 4700 0700 7F00 FF00 E700 FF80 7B80 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 16 0 BBX 14 9 1 0 BITMAP 7CF0 7FF8 479C 071C 7FFC FFFC E784 FFFC 79FC ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 -3 BITMAP 1F 7F F1 E0 E0 E0 F0 7F 3F 08 0C 1C ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 3800 0C00 0000 3E00 7F00 E380 FF80 FF80 E000 F080 7F80 1F80 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 0E00 1800 0000 3E00 7F00 E380 FF80 FF80 E000 F080 7F80 1F80 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 1E00 3300 0000 3E00 7F00 E380 FF80 FF80 E000 F080 7F80 1F80 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 3300 3300 0000 3E00 7F00 E380 FF80 FF80 E000 F080 7F80 1F80 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 6 0 BBX 4 12 3 0 BITMAP E0 30 00 70 70 70 70 70 70 70 70 70 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 6 0 BBX 4 12 2 0 BITMAP 70 C0 00 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 6 0 BBX 6 12 3 0 BITMAP 78 CC 00 70 70 70 70 70 70 70 70 70 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 6 0 BBX 6 12 3 0 BITMAP CC CC 00 70 70 70 70 70 70 70 70 70 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 1 0 BITMAP 0600 0700 0C00 FE00 FF00 E780 7F80 7FC0 F3C0 E1C0 E1C0 E1C0 F380 7F80 1E00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 12 0 BBX 9 12 1 0 BITMAP 1F00 3E00 0000 EF00 FF80 F380 E380 E380 E380 E380 E380 E380 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 1 0 BITMAP 1C00 0600 0000 1E00 7F80 F3C0 E1C0 E1C0 E1C0 F3C0 7F80 1E00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 1 0 BITMAP 0700 0C00 0000 1E00 7F80 F3C0 E1C0 E1C0 E1C0 F3C0 7F80 1E00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 1 0 BITMAP 1E00 3300 0000 1E00 7F80 F3C0 E1C0 E1C0 E1C0 F3C0 7F80 1E00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 1 0 BITMAP 1F00 3E00 0000 1E00 7F80 F3C0 E1C0 E1C0 E1C0 F3C0 7F80 1E00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 1 0 BITMAP 3300 3300 0000 1E00 7F80 F3C0 E1C0 E1C0 E1C0 F3C0 7F80 1E00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP 0C00 0C00 0000 0000 FFC0 FFC0 0000 0000 0C00 0C00 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 1 0 BITMAP 1FC0 7F80 F7C0 E7C0 EDC0 F9C0 FBC0 7F80 FE00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 12 0 BBX 9 12 1 0 BITMAP 3800 0C00 0000 E380 E380 E380 E380 E380 E380 E780 FF80 7B80 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 12 0 BBX 9 12 1 0 BITMAP 0E00 1800 0000 E380 E380 E380 E380 E380 E380 E780 FF80 7B80 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 12 0 BBX 9 12 1 0 BITMAP 1E00 3300 0000 E380 E380 E380 E380 E380 E380 E780 FF80 7B80 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 12 0 BBX 9 12 1 0 BITMAP 3300 3300 0000 E380 E380 E380 E380 E380 E380 E780 FF80 7B80 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 11 0 BBX 11 15 0 -3 BITMAP 0700 0C00 0000 F0E0 70C0 79C0 3980 3B80 1F00 1F00 1E00 0C00 1C00 3800 7800 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 1 -3 BITMAP E000 E000 E000 EF00 FF80 F3C0 E1C0 E1C0 E1C0 E3C0 FF80 EF00 E000 E000 E000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 11 0 BBX 11 15 0 -3 BITMAP 1980 1980 0000 F0E0 70C0 79C0 3980 3B80 1F00 1F00 1E00 0C00 1C00 3800 7800 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 1 0 BITMAP 3FC0 7FC0 71C0 FDC0 FDC0 71C0 71C0 71C0 71C0 71C0 71C0 71C0 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 2 1 4 BITMAP FE FE ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 1 -3 BITMAP 1C00 1C00 1C00 1C00 FF80 FF80 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 15 1 0 BITMAP 3300 1E00 0000 FF80 FF80 0780 0F00 0E00 1E00 3C00 3800 7800 F000 FF80 FF80 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 15 9 1 0 BITMAP 3E78 7FFC F3CC E38E E3FE E3FE F3C2 7FFE 3E7E ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 11 15 1 0 BITMAP 1980 1980 0000 F0E0 70C0 79C0 3980 1F00 1F00 0E00 0E00 0E00 0E00 0E00 0E00 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 9 2 0 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 7 12 0 0 BITMAP 38 38 38 3A 3E 3C F8 F8 38 38 38 38 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 12 0 0 BITMAP 3800 3800 3800 3A00 3E00 3C00 F800 F800 B800 3800 3FE0 3FE0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 1 -3 BITMAP 1C00 1C00 1C00 1C00 FF80 FF80 1C00 1C00 1C00 FF80 FF80 1C00 1C00 1C00 1C00 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 1 0 BITMAP 3F00 7F00 7000 FFC0 FFC0 71C0 71C0 71C0 71C0 71C0 71C0 71C0 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 1 BITMAP 40 E0 70 38 70 E0 40 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 18 12 0 0 BITMAP 0FFFC0 3FFFC0 78F000 F07000 E07000 E07F80 E07F80 E07000 F07000 78F000 3FFFC0 0FFFC0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 16 1 1 5 BITMAP FFFF ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 2 3 10 BITMAP CC 78 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 2 4 -3 BITMAP C0 E0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 2 4 10 BITMAP 6C D0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 1 BITMAP 10 38 70 E0 70 38 10 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 2 2 5 10 BITMAP C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 2 3 10 BITMAP CC 78 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 7 2 1 BITMAP FE FE FE FE FE FE FE ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 2 3 10 BITMAP 7C F8 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 2 3 10 BITMAP 78 CC ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 5 0 7 BITMAP 63 C6 E7 E7 E7 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 1 7 BITMAP E0 E0 E0 60 60 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 12 1 0 BITMAP 66 3C 00 7E FE E2 F0 7E 1F 87 FF FC ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 2 4 10 BITMAP E0 E0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 1 -3 BITMAP E0 E0 E0 60 60 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 2 -3 BITMAP 0780 1F80 1C00 3800 3800 7C00 7C00 7800 7000 7000 7000 7000 F000 E000 E000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 15 6 0 6 BITMAP FFCE FFDE 39FE 39FE 39FE 39AE ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 12 12 -4 0 BITMAP 0070 00E0 01C0 0180 0300 0700 0E00 0C00 1800 3800 7000 E000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 4 2 3 10 BITMAP E0 30 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 22 0 BBX 22 12 0 0 BITMAP 781C00 FC3000 CC7000 CCE000 FDC000 798000 037C78 07FEFC 0EC6CC 1CC6CC 38FEFC 707C78 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 13 2 2 0 BITMAP C618 C618 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 5 0 7 BITMAP E7 E7 E7 63 C6 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 15 1 0 BITMAP 3300 1E00 0000 3F00 7F00 F100 F000 F800 7E00 3F00 0780 0380 8380 FF00 FE00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 6 0 -3 BITMAP E7 E7 E7 63 63 C6 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 3300 1E00 0000 FF80 FF80 0F00 1E00 3C00 7C00 F800 FF80 FF80 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/luBS14.bdf100644 1750 1750 100133 5413747517 15045 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Bold-R-Normal-Sans-20-140-100-100-P-127-ISO8859-1 SIZE 14 100 100 FONTBOUNDINGBOX 39 22 -13 -4 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Bold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 20 POINT_SIZE 140 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 127 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 18 FONT_DESCENT 5 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 7 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 7 0 BBX 3 14 2 0 BITMAP E0 E0 E0 E0 E0 E0 60 60 60 60 00 00 E0 E0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 11 0 BBX 9 6 1 8 BITMAP F380 F380 E380 6300 6300 6300 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 0 0 BITMAP 0670 0660 0C60 7FF8 7FF8 1CC0 18C0 19C0 FFF0 FFF0 3180 3380 3300 7300 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 14 0 BBX 10 21 2 -3 BITMAP 0C00 0C00 0C00 0C00 3F80 7F80 7480 F400 FC00 7C00 3F00 1F80 0F80 0BC0 09C0 CBC0 FF80 FF00 0C00 0C00 0C00 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 18 0 BBX 17 14 0 0 BITMAP 380E00 7C0C00 CE1800 C63800 C67000 CEE000 7CC000 398000 039F00 073F80 0E3180 0C3180 183F80 381F00 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 16 0 BBX 15 14 0 0 BITMAP 07C0 1FE0 1C30 1C30 1EE0 0FC0 3F06 7F8E E3CC E1DC E1F8 F0F0 7FF8 1FBC ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 8 BITMAP F0 F0 F0 70 60 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 8 0 BBX 5 18 1 -4 BITMAP 08 18 38 70 70 60 E0 E0 E0 E0 E0 E0 60 70 70 38 18 08 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 8 0 BBX 5 18 2 -4 BITMAP 80 C0 E0 70 70 30 38 38 38 38 38 38 30 70 70 E0 C0 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 9 0 BBX 8 6 1 8 BITMAP 18 5A E7 14 7E 24 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 14 0 BBX 12 12 1 0 BITMAP 0600 0600 0600 0600 0600 FFF0 FFF0 0600 0600 0600 0600 0600 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 7 0 BBX 4 7 1 -3 BITMAP F0 F0 F0 F0 70 60 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 14 0 BBX 12 2 1 5 BITMAP FFF0 FFF0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 7 0 BBX 4 3 1 0 BITMAP F0 F0 F0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 12 0 BBX 12 17 0 -3 BITMAP 0070 0060 00C0 00C0 0180 0380 0300 0700 0600 0E00 0C00 1C00 1800 3000 3000 6000 E000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 14 0 BBX 12 14 1 0 BITMAP 0F00 3FC0 70E0 6060 E070 E070 E070 E070 E070 E070 6060 70E0 3FC0 0F00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 14 0 BBX 5 14 4 0 BITMAP F8 F8 38 38 38 38 38 38 38 38 38 38 38 38 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 14 0 BBX 11 14 1 0 BITMAP 7F00 FFC0 C1E0 00E0 00E0 00E0 01C0 0380 0F00 1E00 7800 F800 FFE0 FFE0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 14 0 BBX 10 14 2 0 BITMAP 7F00 FF80 83C0 01C0 01C0 0380 7E00 7F00 0380 01C0 01C0 83C0 FF80 FF00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 14 0 BBX 11 14 1 0 BITMAP 03C0 03C0 07C0 0DC0 1DC0 39C0 71C0 E1C0 FFE0 FFE0 01C0 01C0 01C0 01C0 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 14 0 BBX 10 14 2 0 BITMAP FFC0 FFC0 C000 C000 C000 FC00 FF00 0780 01C0 01C0 01C0 83C0 FF80 FE00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 14 0 BBX 12 14 1 0 BITMAP 0FE0 3FE0 7820 7000 E000 EF80 FFE0 F0F0 E070 E070 6070 70E0 3FE0 0F80 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 14 0 BBX 10 14 3 0 BITMAP FFC0 FFC0 01C0 0380 0300 0700 0E00 1C00 1C00 3800 3800 7800 7000 F000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 14 0 BBX 12 14 1 0 BITMAP 1F80 3FC0 71E0 70E0 78E0 3FC0 1F80 3FE0 61F0 E0F0 E070 F0F0 7FE0 1F80 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 14 0 BBX 12 14 1 0 BITMAP 1F80 7FC0 70E0 E060 E070 E070 F0F0 7FF0 1F70 0070 00E0 41E0 7FC0 7F00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 7 0 BBX 3 11 2 0 BITMAP E0 E0 E0 00 00 00 00 00 E0 E0 E0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 7 0 BBX 3 14 2 -3 BITMAP E0 E0 E0 00 00 00 00 E0 E0 E0 E0 60 40 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 14 0 BBX 12 12 1 0 BITMAP 0010 0070 01F0 07C0 1F00 FC00 7C00 1F00 07C0 01F0 0070 0010 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 14 0 BBX 12 8 1 2 BITMAP FFF0 FFF0 0000 0000 0000 0000 FFF0 FFF0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 14 0 BBX 12 12 1 0 BITMAP 8000 E000 F800 3E00 0F80 03E0 03F0 0F80 3E00 F800 E000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP FF00 FF80 83C0 01C0 01C0 0300 0600 0C00 3800 3800 0000 0000 3800 3800 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 17 0 BBX 16 14 2 0 BITMAP 03F0 0E0C 1802 21F3 6671 4C71 8871 98E1 99A2 9F64 8E78 4000 3040 0FC0 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 15 0 BBX 15 14 0 0 BITMAP 0780 07C0 07C0 0DE0 0CE0 0CE0 1870 1870 3FF8 3FF8 3038 603C 601C E01E ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 13 0 BBX 10 14 2 0 BITMAP FF00 FF00 E380 E380 E380 E700 FC00 FF00 E3C0 E1C0 E1C0 E1C0 FF80 FF00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 15 0 BBX 13 14 1 0 BITMAP 07F8 1FF8 7C18 7000 F000 E000 E000 E000 E000 F000 7000 7C08 1FF8 0FF0 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 2 0 BITMAP FFC0 FFF0 E0F8 E038 E03C E01C E01C E01C E01C E01C E038 E078 FFF0 FFC0 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 13 0 BBX 10 14 2 0 BITMAP FFC0 FFC0 E000 E000 E000 E000 FF00 FF00 E000 E000 E000 E000 FFC0 FFC0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 0 BITMAP FF80 FF80 E000 E000 E000 E000 FF00 FF00 E000 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 15 0 BBX 13 14 1 0 BITMAP 07F8 1FF8 3C18 7000 F000 E000 E000 E038 E038 F038 7038 7C38 1FF8 07F0 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 16 0 BBX 13 14 2 0 BITMAP E038 E038 E038 E038 E038 E038 FFF8 FFF8 E038 E038 E038 E038 E038 E038 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 7 0 BBX 3 14 2 0 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 10 0 BBX 7 17 1 -3 BITMAP 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 8E FC F8 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 15 0 BBX 13 14 2 0 BITMAP E0F0 E0C0 E180 E380 E700 EE00 FC00 EE00 EF00 E780 E3C0 E1C0 E1E0 E0F8 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 FFC0 FFC0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 19 0 BBX 15 14 2 0 BITMAP F81E F83E F83E FC3E DC7E DC6E DE6E CEEE CECE CFCE C78E C78E C38E C00E ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 16 0 BBX 12 14 2 0 BITMAP E030 F030 F030 F830 FC30 DE30 CE30 C730 C7B0 C3F0 C1F0 C0F0 C0F0 C070 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 17 0 BBX 16 14 1 0 BITMAP 07E0 1FF8 3C3C 700E F00F E007 E007 E007 E007 F00F 700E 3C3C 1FF8 07E0 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 13 0 BBX 10 14 2 0 BITMAP FF00 FFC0 E3C0 E1C0 E1C0 E1C0 E380 FF80 FE00 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 17 0 BBX 18 18 1 -4 BITMAP 07E000 1FF800 3C3C00 700E00 F00F00 E00700 E00700 E00700 E00700 F00F00 700E00 7C3E00 1FFC00 07F800 007FC0 003F80 000F80 000300 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 15 0 BBX 13 14 2 0 BITMAP FF80 FFC0 E0E0 E0E0 E0E0 E1C0 FF80 FF00 E700 E380 E3C0 E1E0 E1E0 E0F8 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 1FC0 7FC0 F040 F000 F800 7E00 3F00 1FC0 03E0 00E0 00E0 C1E0 FFC0 FF00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 15 0 BBX 13 14 1 0 BITMAP FFF8 FFF8 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 16 0 BBX 12 14 2 0 BITMAP E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 70E0 7FE0 1F80 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 0 0 BITMAP F00C 7018 7818 3838 3830 3C30 1C60 1C60 0E60 0EC0 0EC0 07C0 0780 0780 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 19 0 BBX 18 14 0 0 BITMAP E0E0C0 70E180 70E180 71F180 71F180 39F300 39F300 3B3B00 3B3B00 1F3E00 1F3E00 1F3E00 1E1E00 0E1C00 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 1 0 BITMAP 7038 3870 3CE0 1CC0 1FC0 0F80 0F00 0780 0F80 1FC0 19C0 30E0 70F0 E078 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 15 0 BBX 13 14 1 0 BITMAP F038 7830 3860 3CE0 1CC0 0FC0 0F80 0700 0700 0700 0700 0700 0700 0700 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 1 0 BITMAP FFE0 FFE0 01C0 03C0 0780 0700 0F00 1E00 1C00 3C00 7800 7000 FFE0 FFE0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 8 0 BBX 5 17 2 -3 BITMAP F8 F8 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 F8 F8 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 12 0 BBX 12 17 0 -3 BITMAP E000 6000 3000 3000 1800 1C00 0C00 0E00 0600 0700 0300 0380 0180 00C0 00C0 0060 0070 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 8 0 BBX 5 17 1 -3 BITMAP F8 F8 38 38 38 38 38 38 38 38 38 38 38 38 38 F8 F8 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 14 0 BBX 12 12 1 2 BITMAP 0200 0600 0600 0F00 0F00 1F80 1980 39C0 30C0 70E0 6060 E070 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 10 0 BBX 9 2 1 -3 BITMAP FF80 FF80 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 8 BITMAP 30 60 F0 F0 F0 F0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 12 0 BBX 11 11 1 0 BITMAP 3F00 7F80 41C0 01C0 3FC0 7FC0 F1C0 E1C0 E3C0 FFE0 79E0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 14 0 BBX 12 14 1 0 BITMAP E000 E000 E000 E780 EFE0 F0E0 E070 E070 E070 E070 E0F0 F0E0 FFE0 E780 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 11 0 BBX 8 11 2 0 BITMAP 1F 7F 71 E0 E0 E0 E0 E0 70 7F 1F ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 14 0 BBX 12 14 0 0 BITMAP 0070 0070 0070 1F70 7FF0 70F0 F070 E070 E070 E070 E070 70F0 7F70 3E70 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 12 0 BBX 11 11 0 0 BITMAP 1F00 3FC0 79C0 F0E0 E0E0 FFE0 FFE0 F000 7820 3FE0 1FC0 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 9 0 BBX 8 14 1 0 BITMAP 3F 7F 70 FE FE 70 70 70 70 70 70 70 70 70 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 14 0 BBX 12 15 0 -4 BITMAP 1EF0 7FF0 70F0 F070 E070 E070 E070 E070 70F0 7F70 1E70 00F0 41F0 7FE0 3F80 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 14 0 BBX 11 14 1 0 BITMAP E000 E000 E000 E780 EFC0 F0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 7 0 BBX 3 14 2 0 BITMAP E0 E0 00 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 7 0 BBX 7 18 -1 -4 BITMAP 0E 0E 00 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 8E FE FC ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 14 0 BBX 11 14 2 0 BITMAP E000 E000 E000 E1C0 E380 E700 E600 EC00 FE00 EE00 E700 E780 E3C0 E3E0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 7 0 BBX 3 14 2 0 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 20 0 BBX 17 11 2 0 BITMAP E78F00 EFDF80 F1E380 E1C380 E1C380 E1C380 E1C380 E1C380 E1C380 E1C380 E1C380 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 14 0 BBX 11 11 1 0 BITMAP E780 FFC0 F0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 13 0 BBX 12 11 1 0 BITMAP 1F80 3FC0 70E0 E070 E070 E070 E070 E070 70E0 3FC0 1F80 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 14 0 BBX 12 15 1 -4 BITMAP E7C0 EFE0 F0E0 E070 E070 E070 E070 E0F0 F0E0 FFE0 EF80 E000 E000 E000 E000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 14 0 BBX 12 15 0 -4 BITMAP 1EF0 7FF0 70F0 F070 E070 E070 E070 E070 70F0 7F70 1E70 0070 0070 0070 0070 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 10 0 BBX 7 11 2 0 BITMAP E6 FE FE F0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 12 0 BBX 10 11 1 0 BITMAP 3F80 7F80 F080 F000 FE00 7F80 1FC0 07C0 83C0 FF80 FF00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 1 0 BITMAP 70 70 FC FC 70 70 70 70 70 70 74 7C 3C ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 14 0 BBX 11 11 1 0 BITMAP E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E1E0 7FE0 3CE0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 13 0 BBX 12 11 1 0 BITMAP F070 7060 7860 38E0 38C0 1CC0 1D80 1D80 0F80 0F00 0F00 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 18 0 BBX 17 11 0 0 BITMAP E1E180 71E300 71E300 73F300 737600 3B7600 3B7600 3E7E00 3E3C00 1E3C00 1C3C00 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 11 0 BBX 11 11 0 0 BITMAP F8C0 79C0 3D80 3F00 1F00 1F00 1F00 1F80 37C0 73C0 E3E0 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 0 -4 BITMAP F070 7060 78E0 38C0 38C0 3D80 1D80 1F00 0F00 0E00 0E00 0E00 1C00 3C00 7800 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 12 0 BBX 10 11 1 0 BITMAP FFC0 FFC0 0780 0700 0F00 1E00 3C00 7800 F000 FFC0 FFC0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 8 0 BBX 6 17 1 -3 BITMAP 1C 3C 38 38 3C 1C 1C 18 E0 F8 1C 1C 1C 38 38 3C 1C ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 5 0 BBX 2 17 2 -3 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 8 0 BBX 6 17 1 -3 BITMAP C0 E0 E0 E0 E0 E0 E0 60 1C 7C E0 E0 E0 E0 E0 E0 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 14 0 BBX 12 5 1 3 BITMAP 7830 7C30 CF30 C3E0 C1E0 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 7 0 BBX 3 15 2 -4 BITMAP E0 E0 00 00 60 60 60 60 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 14 0 BBX 9 14 2 0 BITMAP 0C00 0C00 3F80 7F80 F000 E000 E000 E000 E000 F000 7F80 3F80 0C00 0C00 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 14 0 BBX 9 14 3 0 BITMAP 0F80 1F80 3800 3800 3800 3800 FE00 FE00 3800 3800 3000 7000 FF80 FF80 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 14 0 BBX 14 14 0 0 BITMAP 4008 E01C 77B8 3FF0 1CE0 1860 1860 1860 1CE0 1FE0 3FF0 7038 E01C 4008 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 0 0 BITMAP F038 7870 3C60 1EC0 1FC0 0F80 3FE0 3FE0 0E00 3FE0 3FE0 0E00 0E00 0E00 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 5 0 BBX 2 17 2 -3 BITMAP C0 C0 C0 C0 C0 C0 C0 00 00 00 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 14 0 BBX 10 18 2 -4 BITMAP 3F80 7F80 F080 F000 F800 7F00 7F80 C7C0 C1C0 E0C0 FC80 7F80 1F80 07C0 03C0 C3C0 FF80 FF00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 13 0 BBX 7 2 3 12 BITMAP EE EE ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 16 0 BBX 15 14 1 0 BITMAP 07C0 1830 2008 47E4 4C24 9802 9802 9802 9802 4C04 47E4 2008 1830 07C0 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 11 0 BBX 10 7 0 7 BITMAP 7F00 FF80 C380 7F80 E380 FFC0 7BC0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 12 0 BBX 11 9 1 1 BITMAP 0840 1CE0 39C0 7380 E700 7380 39C0 1CE0 0840 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 14 0 BBX 12 8 1 2 BITMAP FFF0 FFF0 0030 0030 0030 0030 0030 0030 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 6 0 BBX 4 2 1 6 BITMAP F0 F0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 14 0 BBX 11 10 1 4 BITMAP 1F00 2080 4040 8020 9F20 9F20 9E20 5B40 2080 1F00 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 13 0 BBX 7 2 3 12 BITMAP FE FE ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 1 11 BITMAP E0 A0 E0 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 14 0 BBX 12 12 1 0 BITMAP 0600 0600 0600 FFF0 FFF0 0600 0600 0600 0600 0000 FFF0 FFF0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 -12 5 BITMAP F8 8C 0C 0C 18 30 60 E0 FC ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 -13 5 BITMAP F8 0C 0C 08 78 1C 0C 8C F8 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 13 0 BBX 5 2 5 12 BITMAP 38 E0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 14 0 BBX 11 14 1 -3 BITMAP E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E1E0 FEE0 FCE0 E000 E000 E000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 14 0 BBX 9 17 1 -3 BITMAP 7F80 FD80 FD80 FD80 FD80 7D80 3D80 0D80 0D80 0D80 0D80 0D80 0D80 0D80 0D80 0D80 0D80 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 14 0 BBX 3 2 5 6 BITMAP E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 13 0 BBX 4 5 5 -4 BITMAP 60 C0 20 B0 F0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 8 0 BBX 3 9 -13 5 BITMAP E0 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 11 0 BBX 10 7 0 7 BITMAP 3F00 7F80 F3C0 E1C0 F3C0 7F80 3F00 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 12 0 BBX 11 9 1 1 BITMAP 4200 E700 7380 39C0 1CE0 39C0 7380 E700 4200 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 18 0 BBX 16 14 6 0 BITMAP 701C 3038 3070 30E0 30C0 3186 338E 3716 3616 0C26 1C66 387F 7006 E006 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 18 0 BBX 15 14 6 0 BITMAP 701C 3038 3070 30E0 30C0 31FC 33C6 3706 3606 0C0C 1C18 3830 7070 E07E ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 18 0 BBX 16 14 6 0 BITMAP F81C 0C38 0C70 08E0 78C0 1D86 0F8E 8F16 FE16 0C26 1C66 387F 7006 E006 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 1 -4 BITMAP 0700 0700 0000 0000 0000 0700 0600 0C00 3800 7000 E000 E000 F040 7FC0 3FC0 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 15 0 BBX 15 17 0 0 BITMAP 0700 01C0 0000 0780 07C0 07C0 0DE0 0CE0 0CE0 1870 1870 3FF8 3FF8 3038 603C 601C E01E ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 15 0 BBX 15 17 0 0 BITMAP 00E0 0380 0000 0780 07C0 07C0 0DE0 0CE0 0CE0 1870 1870 3FF8 3FF8 3038 603C 601C E01E ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 15 0 BBX 15 17 0 0 BITMAP 0380 0EE0 0000 0780 07C0 07C0 0DE0 0CE0 0CE0 1870 1870 3FF8 3FF8 3038 603C 601C E01E ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 15 0 BBX 15 17 0 0 BITMAP 07E0 0FC0 0000 0780 07C0 07C0 0DE0 0CE0 0CE0 1870 1870 3FF8 3FF8 3038 603C 601C E01E ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 15 0 BBX 15 17 0 0 BITMAP 0EE0 0EE0 0000 0780 07C0 07C0 0DE0 0CE0 0CE0 1870 1870 3FF8 3FF8 3038 603C 601C E01E ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 15 0 BBX 15 17 0 0 BITMAP 0380 0380 0000 0780 07C0 07C0 0DE0 0CE0 0CE0 1870 1870 3FF8 3FF8 3038 603C 601C E01E ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 20 0 BBX 19 14 0 0 BITMAP 00FFE0 00FFE0 01F000 03F000 037000 077000 067F80 0C7F80 0C7000 1FF000 3FF000 307000 607FE0 E07FE0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 -4 BITMAP 07F8 1FF8 7C18 7000 F000 E000 E000 E000 E000 F000 7000 7C08 1FF8 0FF0 0200 0100 0580 0780 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 13 0 BBX 10 17 2 0 BITMAP 3800 0E00 0000 FFC0 FFC0 E000 E000 E000 E000 FF00 FF00 E000 E000 E000 E000 FFC0 FFC0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 13 0 BBX 10 17 2 0 BITMAP 0700 1C00 0000 FFC0 FFC0 E000 E000 E000 E000 FF00 FF00 E000 E000 E000 E000 FFC0 FFC0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 13 0 BBX 10 17 2 0 BITMAP 1C00 7700 0000 FFC0 FFC0 E000 E000 E000 E000 FF00 FF00 E000 E000 E000 E000 FFC0 FFC0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 13 0 BBX 10 17 2 0 BITMAP 7700 7700 0000 FFC0 FFC0 E000 E000 E000 E000 FF00 FF00 E000 E000 E000 E000 FFC0 FFC0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 7 0 BBX 5 17 3 0 BITMAP E0 38 00 70 70 70 70 70 70 70 70 70 70 70 70 70 70 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 7 0 BBX 5 17 2 0 BITMAP 38 E0 00 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 7 0 BBX 7 17 4 0 BITMAP 38 EE 00 38 38 38 38 38 38 38 38 38 38 38 38 38 38 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 7 0 BBX 7 17 4 0 BITMAP EE EE 00 38 38 38 38 38 38 38 38 38 38 38 38 38 38 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 16 0 BBX 16 14 0 0 BITMAP 3FF0 3FFC 383E 380E 380F 3807 FF07 FF07 3807 3807 380E 381E 3FFC 3FF0 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 16 0 BBX 12 17 2 0 BITMAP 0FC0 1F80 0000 E030 F030 F030 F830 FC30 DE30 CE30 C730 C7B0 C3F0 C1F0 C0F0 C0F0 C070 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 17 0 BBX 16 17 1 0 BITMAP 0700 01C0 0000 07E0 1FF8 3C3C 700E F00F E007 E007 E007 E007 F00F 700E 3C3C 1FF8 07E0 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 17 0 BBX 16 17 1 0 BITMAP 00E0 0380 0000 07E0 1FF8 3C3C 700E F00F E007 E007 E007 E007 F00F 700E 3C3C 1FF8 07E0 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 17 0 BBX 16 17 1 0 BITMAP 01C0 0770 0000 07E0 1FF8 3C3C 700E F00F E007 E007 E007 E007 F00F 700E 3C3C 1FF8 07E0 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 17 0 BBX 16 17 1 0 BITMAP 03F0 07E0 0000 07E0 1FF8 3C3C 700E F00F E007 E007 E007 E007 F00F 700E 3C3C 1FF8 07E0 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 17 0 BBX 16 17 1 0 BITMAP 0770 0770 0000 07E0 1FF8 3C3C 700E F00F E007 E007 E007 E007 F00F 700E 3C3C 1FF8 07E0 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 14 0 BBX 12 12 1 0 BITMAP 4020 E070 70E0 39C0 1F80 0F00 0F00 1F80 39C0 70E0 E070 4020 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 17 0 BBX 16 14 1 0 BITMAP 07E7 1FFC 3C3C 703E F07F E0E7 E1C7 E387 E707 FE0F 7C0E 3C3C 3FF8 E7E0 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 16 0 BBX 12 17 2 0 BITMAP 1C00 0700 0000 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 70E0 7FE0 1F80 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 16 0 BBX 12 17 2 0 BITMAP 0380 0E00 0000 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 70E0 7FE0 1F80 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 16 0 BBX 12 17 2 0 BITMAP 0700 1DC0 0000 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 70E0 7FE0 1F80 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 16 0 BBX 12 17 2 0 BITMAP 1DC0 1DC0 0000 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 E070 70E0 7FE0 1F80 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 1 0 BITMAP 01C0 0700 0000 F038 7830 3860 3CE0 1CC0 0FC0 0F80 0700 0700 0700 0700 0700 0700 0700 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 13 0 BBX 10 14 2 0 BITMAP E000 E000 E000 FF00 FFC0 E3C0 E1C0 E1C0 E3C0 FF80 FE00 E000 E000 E000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 1 0 BITMAP 1F00 7FC0 E3C0 E380 E700 E600 EF00 EFC0 E7E0 E1F0 E078 E078 E7F0 E7E0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 1C00 0700 0000 3F00 7F80 41C0 01C0 3FC0 7FC0 F1C0 E1C0 E3C0 FFE0 79E0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 0380 0E00 0000 3F00 7F80 41C0 01C0 3FC0 7FC0 F1C0 E1C0 E3C0 FFE0 79E0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 0E00 3B80 0000 3F00 7F80 41C0 01C0 3FC0 7FC0 F1C0 E1C0 E3C0 FFE0 79E0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 1F80 3F00 0000 3F00 7F80 41C0 01C0 3FC0 7FC0 F1C0 E1C0 E3C0 FFE0 79E0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 3B80 3B80 0000 3F00 7F80 41C0 01C0 3FC0 7FC0 F1C0 E1C0 E3C0 FFE0 79E0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 0E00 0E00 0000 3F00 7F80 41C0 01C0 3FC0 7FC0 F1C0 E1C0 E3C0 FFE0 79E0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 18 0 BBX 17 11 0 0 BITMAP 3F3E00 7FFF00 43E700 03C380 01C380 3FFF80 FFFF80 E1C000 E3E080 FEFF80 7C7F80 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 11 0 BBX 8 15 2 -4 BITMAP 1F 7F 71 E0 E0 E0 E0 E0 70 7F 1F 30 08 2C 3C ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 0 0 BITMAP 1C00 0700 0000 1F00 3FC0 79C0 F0E0 E0E0 FFE0 FFE0 F000 7820 3FE0 1FC0 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 0 0 BITMAP 0380 0E00 0000 1F00 3FC0 79C0 F0E0 E0E0 FFE0 FFE0 F000 7820 3FE0 1FC0 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 0 0 BITMAP 0E00 3B80 0000 1F00 3FC0 79C0 F0E0 E0E0 FFE0 FFE0 F000 7820 3FE0 1FC0 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 0 0 BITMAP 3B80 3B80 0000 1F00 3FC0 79C0 F0E0 E0E0 FFE0 FFE0 F000 7820 3FE0 1FC0 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 7 0 BBX 5 14 3 0 BITMAP E0 38 00 70 70 70 70 70 70 70 70 70 70 70 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 7 0 BBX 5 14 2 0 BITMAP 38 E0 00 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 7 0 BBX 7 14 4 0 BITMAP 38 EE 00 38 38 38 38 38 38 38 38 38 38 38 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 7 0 BBX 7 14 4 0 BITMAP EE EE 00 38 38 38 38 38 38 38 38 38 38 38 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 1 0 BITMAP 0100 0180 0300 0700 FF80 FFC0 73E0 61E0 5FE0 3FF0 70F0 E070 E070 E070 E070 70E0 7FC0 1F80 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 14 0 BBX 11 14 1 0 BITMAP 1F80 3F00 0000 E780 FFC0 F0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 1 0 BITMAP 1C00 0700 0000 1F80 3FC0 70E0 E070 E070 E070 E070 E070 70E0 3FC0 1F80 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 1 0 BITMAP 0380 0E00 0000 1F80 3FC0 70E0 E070 E070 E070 E070 E070 70E0 3FC0 1F80 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 1 0 BITMAP 0700 1DC0 0000 1F80 3FC0 70E0 E070 E070 E070 E070 E070 70E0 3FC0 1F80 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 1 0 BITMAP 0FC0 1F80 0000 1F80 3FC0 70E0 E070 E070 E070 E070 E070 70E0 3FC0 1F80 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 1 0 BITMAP 1DC0 1DC0 0000 1F80 3FC0 70E0 E070 E070 E070 E070 E070 70E0 3FC0 1F80 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 14 0 BBX 12 12 1 0 BITMAP 0C00 0C00 0000 0000 0000 FFF0 FFF0 0000 0000 0000 0C00 0C00 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 13 0 BBX 12 11 1 0 BITMAP 1FF0 3FE0 71E0 E3F0 E370 E670 EC70 FC70 78E0 7FC0 FF80 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 14 0 BBX 11 14 1 0 BITMAP 1C00 0700 0000 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E1E0 7FE0 3CE0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 14 0 BBX 11 14 1 0 BITMAP 0380 0E00 0000 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E1E0 7FE0 3CE0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 14 0 BBX 11 14 1 0 BITMAP 0E00 3B80 0000 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E1E0 7FE0 3CE0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 14 0 BBX 11 14 1 0 BITMAP 3B80 3B80 0000 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E1E0 7FE0 3CE0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 13 0 BBX 12 18 0 -4 BITMAP 0380 0E00 0000 F070 7060 78E0 38C0 38C0 3D80 1D80 1F00 0F00 0E00 0E00 0E00 1C00 3C00 7800 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 1 -4 BITMAP E000 E000 E000 E7C0 EFE0 F0E0 E070 E070 E070 E070 E0F0 F0E0 FFE0 EF80 E000 E000 E000 E000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 13 0 BBX 12 18 0 -4 BITMAP 1DC0 1DC0 0000 F070 7060 78E0 38C0 38C0 3D80 1D80 1F00 0F00 0E00 0E00 0E00 1C00 3C00 7800 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 12 14 1 0 BITMAP 3FF0 7FF0 7070 FF70 FF70 7070 7070 7070 7070 7070 7070 7070 7070 7070 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 2 1 6 BITMAP FF80 FF80 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 9 17 2 -3 BITMAP 1C00 1C00 1C00 1C00 1C00 FF80 FF80 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 11 17 1 0 BITMAP 3B80 0E00 0000 FFE0 FFE0 01C0 03C0 0780 0700 0F00 1E00 1C00 3C00 7800 7000 FFE0 FFE0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 18 11 1 0 BITMAP 1F1E00 3FFF80 73F380 E1E1C0 E1C1C0 E1FFC0 E1FFC0 E1E000 73F040 3FFFC0 1FBFC0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 1 0 BITMAP 1DC0 1DC0 0000 F038 7830 3860 3CE0 1CC0 0FC0 0F80 0700 0700 0700 0700 0700 0700 0700 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 11 2 0 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 14 0 0 BITMAP 38 38 38 3A 3E 3E 38 F8 F8 38 38 38 38 38 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP 3800 3800 3800 3A00 3E00 3E00 3C00 F800 F800 B800 3800 3800 3FF0 3FF0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 9 17 2 -3 BITMAP 1C00 1C00 1C00 1C00 1C00 FF80 FF80 1C00 1C00 1C00 FF80 FF80 1C00 1C00 1C00 1C00 1C00 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 12 14 1 0 BITMAP 3FC0 7FC0 7000 FFF0 FFF0 7070 7070 7070 7070 7070 7070 7070 7070 7070 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 1 BITMAP 40 E0 70 38 1C 38 70 E0 40 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 22 0 BBX 21 14 0 0 BITMAP 07FFF0 1FFFF0 3C3C00 701C00 F01C00 E01C00 E01FE0 E01FE0 E01C00 F01C00 701C00 3C3C00 1FFFF8 07FFF8 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 19 1 1 6 BITMAP FFFFE0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 7 2 3 12 BITMAP EE 38 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 4 2 5 -3 BITMAP E0 F0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 8 2 4 12 BITMAP 3F FC ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 1 BITMAP 08 1C 38 70 E0 70 38 1C 08 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 3 2 5 12 BITMAP E0 E0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 7 2 3 12 BITMAP EE 7C ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 8 7 3 3 BITMAP FF FF FF FF FF FF FF ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 7 2 3 12 BITMAP 7E FC ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 7 2 3 12 BITMAP 38 EE ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 6 1 8 BITMAP 6180 E300 C300 E380 E380 E380 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 8 BITMAP F0 F0 F0 60 60 60 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP 3B80 0E00 0000 3F80 7F80 F080 F000 FE00 7F80 1FC0 07C0 83C0 FF80 FF00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 3 2 5 12 BITMAP E0 E0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 -3 BITMAP F0 F0 F0 F0 70 60 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 11 17 2 -3 BITMAP 03E0 0FE0 0E00 1E00 1C00 3C00 7F00 7F00 3C00 3800 7800 7800 7800 7800 7000 F000 F000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 17 7 0 7 BITMAP FEF780 FEF780 38F780 38FF80 38FF80 38DB80 38C380 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 14 14 -5 0 BITMAP 001C 0038 0070 00E0 00C0 0180 0380 0700 0600 0C00 1C00 3800 7000 E000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 5 2 4 12 BITMAP E0 38 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 26 0 BBX 26 14 0 0 BITMAP 38070000 7C0E0000 CE1C0000 C6380000 C6300000 CE600000 7CE00000 39C00000 038F0F80 073FDFC0 0630D8C0 0C30D8C0 1C3FDFC0 380F0F80 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 16 2 2 0 BITMAP C183 C183 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 6 1 8 BITMAP E380 E380 E380 6180 6380 C300 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 17 1 0 BITMAP 3B80 0E00 0000 1FC0 7FC0 F040 F000 F800 7E00 3F00 1FC0 03E0 00E0 00E0 C1E0 FFC0 FF00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 7 1 -3 BITMAP E380 E380 E380 6180 6180 4300 C300 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP 3B80 0E00 0000 FFC0 FFC0 0780 0700 0F00 1E00 3C00 7800 F000 FFC0 FFC0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/luBS18.bdf100644 1750 1750 112645 5413747520 15056 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Bold-R-Normal-Sans-25-180-100-100-P-158-ISO8859-1 SIZE 18 100 100 FONTBOUNDINGBOX 49 28 -17 -5 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Bold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 25 POINT_SIZE 180 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 158 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 23 FONT_DESCENT 6 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 9 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 9 0 BBX 5 18 2 0 BITMAP F8 F8 F8 F8 F8 F8 F8 F8 70 70 70 70 70 00 00 F8 F8 F8 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 13 0 BBX 11 8 1 11 BITMAP FBE0 FBE0 F3E0 F3E0 71C0 71C0 71C0 71C0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 17 0 BBX 16 18 1 0 BITMAP 038C 030C 0318 0318 0618 3FFF 7FFF 0630 0C30 0C30 0C60 FFFE FFFC 1860 18C0 18C0 30C0 31C0 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 17 0 BBX 13 24 2 -3 BITMAP 0700 0700 0700 1FF0 3FF0 7FF0 7B10 7B00 7F00 7F00 3F00 1FC0 0FE0 07F0 07F8 06F8 0678 8678 FFF0 FFF0 7FC0 0700 0700 0700 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 22 0 BBX 22 18 0 0 BITMAP 3E00F0 7F01E0 FF83C0 E38380 E38780 E38F00 FF9E00 7F3C00 3E3800 0079F0 00F3F8 01E7FC 03C71C 07871C 07871C 0F07FC 1E03F8 3C01F0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 20 0 BBX 18 18 1 0 BITMAP 03E000 0FF800 1FFC00 1F3C00 1F3C00 1FFC00 0FF000 0FC3C0 3FE3C0 7FF3C0 F9F380 F9FF80 F8FF00 F8FF00 FC7E00 7FFE00 3FFF00 0FCF80 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 10 BITMAP F8 F8 F8 F8 F8 38 30 F0 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 10 0 BBX 8 24 1 -5 BITMAP 01 07 0F 1F 3E 3C 7C 7C 78 F8 F8 F8 F8 F8 F8 78 7C 7C 3C 3E 1F 0F 07 01 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 10 0 BBX 8 24 1 -5 BITMAP 80 E0 F0 F8 7C 3C 3E 3E 1E 1F 1F 1F 1F 1F 1F 1E 3E 3E 3C 7C F8 F0 E0 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 12 0 BBX 10 9 1 9 BITMAP 1E00 4C80 6D80 F3C0 E3C0 1200 7F00 3380 1200 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 17 0 BBX 15 15 1 0 BITMAP 0380 0380 0380 0380 0380 0380 FFFE FFFE FFFE 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 9 0 BBX 5 9 2 -4 BITMAP F8 F8 F8 F8 F8 38 70 F0 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 17 0 BBX 14 3 2 6 BITMAP FFFC FFFC FFFC ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 9 0 BBX 5 5 2 0 BITMAP F8 F8 F8 F8 F8 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 15 0 BBX 15 23 0 -4 BITMAP 001E 001C 003C 0038 0078 0070 00F0 00E0 01E0 01C0 03C0 0380 0780 0700 0F00 0E00 1E00 1C00 3C00 3800 7800 7000 F000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 17 0 BBX 15 18 1 0 BITMAP 07C0 1FF0 3FF8 7C7C 7C7C 783C F83E F83E F83E F83E F83E F83E 783C 7C7C 7C7C 3FF8 1FF0 07C0 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 17 0 BBX 8 18 4 0 BITMAP FF FF FF 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 17 0 BBX 13 18 2 0 BITMAP 3F80 FFE0 FFF0 C1F8 00F8 00F8 00F8 01F0 01F0 03E0 07C0 0F80 3E00 7C00 F800 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 17 0 BBX 13 18 2 0 BITMAP 3F80 FFE0 FFF0 83F0 01F0 01F0 03E0 3FC0 3F00 3FE0 03F0 00F8 00F8 00F8 C1F8 FFF0 FFE0 7F80 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 17 0 BBX 16 18 0 0 BITMAP 007C 00FC 01FC 03FC 07FC 0F7C 1E7C 3C7C 787C F07C FFFF FFFF FFFF 007C 007C 007C 007C 007C ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 17 0 BBX 12 18 3 0 BITMAP FFF0 FFF0 FFF0 E000 E000 E000 FE00 FF80 FFE0 07E0 03F0 01F0 01F0 01F0 83F0 FFE0 FFC0 7F00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 17 0 BBX 15 18 1 0 BITMAP 03F8 0FFC 3FFC 3F04 7C00 7C00 F800 FBF0 FFF8 FFFC FC7E F83E F83E 783E 7C7C 3FFC 1FF8 07E0 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 17 0 BBX 13 18 3 0 BITMAP FFF8 FFF8 FFF8 0078 00F0 01F0 03E0 03C0 0780 0F80 0F00 1E00 3E00 3E00 3C00 7C00 7C00 7C00 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 17 0 BBX 15 18 1 0 BITMAP 0FE0 1FF8 3FFC 7C7C 783C 7C3C 3F78 3FF0 0FF0 3FF8 7CFC 783E F81E F81E FC3E 7FFC 3FF8 0FE0 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 17 0 BBX 15 18 1 0 BITMAP 0FC0 3FF0 7FF8 7C7C F83C F83E F83E FC7E 7FFE 3FFE 1FBE 003E 007C 007C 40F8 7FF8 7FE0 3F80 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 9 0 BBX 5 13 2 0 BITMAP F8 F8 F8 F8 F8 00 00 00 F8 F8 F8 F8 F8 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 9 0 BBX 5 17 2 -4 BITMAP F8 F8 F8 F8 F8 00 00 00 F8 F8 F8 F8 F8 38 70 F0 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 17 0 BBX 14 15 2 0 BITMAP 0004 001C 007C 01FC 07F0 1FC0 3F00 FC00 3F00 1FC0 07F0 01FC 007C 001C 0004 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 17 0 BBX 14 9 2 2 BITMAP FFFC FFFC FFFC 0000 0000 0000 FFFC FFFC FFFC ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 17 0 BBX 14 15 2 0 BITMAP 8000 E000 F800 FE00 3F80 0FE0 03F0 00FC 03F0 0FE0 3F80 FE00 F800 E000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 1 0 BITMAP 7F80 FFE0 FFF0 83F0 01F0 01F0 01E0 03C0 0780 0780 0F00 1F00 1F00 0000 0000 1F00 1F00 1F00 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 21 0 BBX 19 18 3 0 BITMAP 00FC00 03FF00 0F0380 1C01C0 3800E0 30FC60 61FC60 638C60 C70860 CE3860 CE78C0 CFD9C0 CF9F80 671E00 600000 382000 1FF000 07C000 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 19 0 BBX 19 18 0 0 BITMAP 01F000 03F800 03F800 03FC00 07FC00 077C00 0F7E00 0E3E00 0E3F00 1C1F00 1FFF00 1FFF80 3FFF80 380FC0 7807C0 7007C0 7003E0 E003E0 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 17 0 BBX 14 18 2 0 BITMAP FFE0 FFF0 FFF8 F8F8 F8F8 F8F8 F9F0 FFE0 FF80 FFF0 F8F8 F87C F87C F87C F87C FFFC FFF8 FFE0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 18 0 BBX 17 18 1 0 BITMAP 03FF00 0FFF80 1FFF80 3F0180 7E0000 7C0000 F80000 F80000 F80000 F80000 F80000 F80000 7C0000 7E0000 3F8180 1FFF80 0FFF80 03FE00 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 20 0 BBX 17 18 2 0 BITMAP FFF000 FFFC00 FFFE00 F87F00 F81F00 F81F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F00 F81F00 F83F00 FFFE00 FFFC00 FFF000 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 16 0 BBX 13 18 2 0 BITMAP FFF0 FFF0 FFF0 F800 F800 F800 F800 FFE0 FFE0 FFE0 F800 F800 F800 F800 F800 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 2 0 BITMAP FFF8 FFF8 FFF8 F800 F800 F800 F800 F800 FFF0 FFF0 FFF0 F800 F800 F800 F800 F800 F800 F800 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 19 0 BBX 16 18 1 0 BITMAP 03FF 0FFF 1FFF 3F03 7E00 7C00 F800 F800 F800 F81F F81F F81F 7C1F 7C1F 3F1F 3FFF 0FFF 03FE ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 20 0 BBX 16 18 2 0 BITMAP F81F F81F F81F F81F F81F F81F F81F FFFF FFFF FFFF F81F F81F F81F F81F F81F F81F F81F F81F ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 9 0 BBX 5 18 2 0 BITMAP F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 13 0 BBX 10 22 0 -4 BITMAP 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 8FC0 FF80 FF80 7E00 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 19 0 BBX 16 18 2 0 BITMAP F81E F83C F878 F870 F8F0 F9E0 FBC0 FBC0 FFC0 FFE0 FFE0 FBF0 F9F8 F9F8 F8FC F87E F87E F83F ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 16 0 BBX 13 18 2 0 BITMAP F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 23 0 BBX 19 18 2 0 BITMAP FC07E0 FC07E0 FE0FE0 FE0FE0 FE0FE0 FF1FE0 EF1FE0 EF1FE0 EFBBE0 E7BBE0 E7BBE0 E7F3E0 E3F3E0 E3F3E0 E3E3E0 E1E3E0 E1E3E0 E003E0 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 20 0 BBX 15 18 2 0 BITMAP F00E F80E FC0E FE0E FE0E FF0E FF8E FF8E EFCE E7EE E3FE E3FE E1FE E0FE E0FE E07E E03E E01E ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 21 0 BBX 20 18 1 0 BITMAP 03FC00 0FFF00 1FFF80 3F0FC0 7E07E0 7C03E0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 7C03E0 7E07E0 3F0FC0 1FFF80 0FFF00 03FC00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 2 0 BITMAP FFF0 FFF8 FFFC F8FC F87C F87C F87C F8F8 FFF8 FFF0 FFC0 F800 F800 F800 F800 F800 F800 F800 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 21 0 BBX 23 22 1 -4 BITMAP 03FC00 0FFF00 1FFF80 3F0FC0 7E07E0 7C03E0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 7C03E0 7E07E0 3F0FC0 1FFF80 0FFF00 03FF00 000FFE 0007FC 0001F8 000030 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 18 0 BBX 16 18 2 0 BITMAP FFE0 FFF8 FFFC F8FC F87C F87C F87C F8F8 FFF0 FFE0 FFE0 F9F0 F9F8 F8F8 F8FC F87E F87E F83F ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 1FF0 7FF0 7FF0 F830 F800 FC00 FF00 7F80 7FE0 1FF0 0FF8 03F8 00F8 00F8 C1F8 FFF0 FFE0 FF80 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 18 0 BBX 19 18 0 0 BITMAP FFFFE0 FFFFE0 FFFFE0 01F000 01F000 01F000 01F000 01F000 01F000 01F000 01F000 01F000 01F000 01F000 01F000 01F000 01F000 01F000 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 20 0 BBX 15 18 2 0 BITMAP F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E 7C7C 7FFC 3FF8 0FE0 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 18 0 BBX 18 18 0 0 BITMAP F801C0 FC0380 7C0380 7E0380 3E0700 3E0700 3F0F00 1F0E00 1F0E00 1F9E00 0F9C00 0FDC00 07F800 07F800 07F800 03F000 03F000 03F000 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 23 0 BBX 23 18 0 0 BITMAP F83C0E F83C0E F83E1C 7C7E1C 7C7E1C 7C7E1C 7C7E38 3EFF38 3EEF38 3EEF38 3EEF70 1FEFF0 1FC7F0 1FC7F0 1FC7E0 1FC7E0 0F83E0 0F83E0 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 17 0 BBX 16 18 1 0 BITMAP FC0F 7E1E 7E1C 3F3C 1F78 1FF0 0FF0 0FE0 07E0 07E0 07F0 0FF0 1FF8 1CFC 3CFC 387E 783E F03F ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 18 0 BBX 17 18 1 0 BITMAP FC0780 7C0700 7E0F00 3F0E00 3F1C00 1FBC00 1FB800 0FF800 07F000 07F000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 17 0 BBX 14 18 1 0 BITMAP FFFC FFFC FFFC 00FC 01F8 03F8 03F0 07E0 0FC0 0FC0 1F80 3F00 7F00 7E00 FC00 FFFC FFFC FFFC ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 10 0 BBX 6 23 2 -4 BITMAP FC FC FC F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 FC FC FC ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 15 0 BBX 15 23 0 -4 BITMAP F000 7000 7800 3800 3C00 1C00 1E00 0E00 0F00 0700 0780 0380 03C0 01C0 01E0 00E0 00F0 0070 0078 0038 003C 001C 001E ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 10 0 BBX 6 23 2 -4 BITMAP FC FC FC 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C FC FC FC ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 17 0 BBX 14 15 2 3 BITMAP 0100 0300 0300 0780 0780 0FC0 0FC0 1FE0 1CE0 3CF0 3870 7878 7038 7038 E01C ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 13 0 BBX 11 3 1 -3 BITMAP FFE0 FFE0 FFE0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 10 BITMAP 18 78 60 E0 F8 F8 F8 F8 F8 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 16 0 BBX 14 13 1 0 BITMAP 1FC0 7FF0 7FF8 41F8 00F8 1FF8 7FF8 FFF8 F8F8 F8F8 FFFC 7FFC 3E7C ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 17 0 BBX 14 19 2 0 BITMAP F800 F800 F800 F800 F800 F800 F9E0 FBF8 FFF8 FCFC F87C F87C F87C F87C F87C FCF8 FFF8 FFF0 F3E0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 1 0 BITMAP 0FE0 3FF0 7FF0 7E10 FC00 F800 F800 F800 FC00 7E10 7FF0 3FF0 0FF0 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 17 0 BBX 14 19 1 0 BITMAP 007C 007C 007C 007C 007C 007C 1E7C 3FFC 7FFC FCFC F87C F87C F87C F87C F87C FCFC 7FFC 7F7C 1E7C ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 1 0 BITMAP 0FC0 3FE0 7FF0 78F0 F8F8 FFF8 FFF8 FFF8 F800 7C08 7FF8 3FF8 0FF0 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 12 0 BBX 12 19 0 0 BITMAP 07F0 1FF0 1FF0 3E00 3E00 3E00 FFE0 FFE0 FFE0 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 17 0 BBX 14 18 1 -5 BITMAP 1F3C 3FFC 7FFC 7CFC F87C F87C F87C F87C F87C FCFC 7FFC 7F7C 1E7C 007C 20FC 7FF8 7FF0 1FC0 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 17 0 BBX 13 19 2 0 BITMAP F800 F800 F800 F800 F800 F800 F9E0 FBF0 FFF8 FFF8 FCF8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 9 0 BBX 5 19 2 0 BITMAP F8 F8 F8 00 00 00 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 9 0 BBX 10 24 -2 -5 BITMAP 07C0 07C0 07C0 0000 0000 0000 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 FFC0 FF80 FE00 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 17 0 BBX 14 19 2 0 BITMAP F800 F800 F800 F800 F800 F800 F878 F8F0 F8E0 F9C0 FBC0 FBC0 FFC0 FFE0 FBF0 FBF0 F9F8 F8F8 F8FC ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 9 0 BBX 5 19 2 0 BITMAP F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 25 0 BBX 21 13 2 0 BITMAP FBE1F0 F7F3F8 FFFFF8 FFFFF8 FCFCF8 F8F8F8 F8F8F8 F8F8F8 F8F8F8 F8F8F8 F8F8F8 F8F8F8 F8F8F8 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 17 0 BBX 13 13 2 0 BITMAP F9E0 FBF0 FFF8 FFF8 FCF8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 17 0 BBX 15 13 1 0 BITMAP 0FE0 3FF8 7FFC 7C7C F83E F83E F83E F83E F83E 7C7C 7FFC 3FF8 0FE0 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 17 0 BBX 14 18 2 -5 BITMAP F9E0 FBF8 FFF8 FCFC F87C F87C F87C F87C F87C FCFC FFF8 FFF0 F9E0 F800 F800 F800 F800 F800 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 17 0 BBX 14 18 1 -5 BITMAP 1F3C 3FFC 7FFC 7CFC F87C F87C F87C F87C F87C FCFC 7FFC 7F7C 1E7C 007C 007C 007C 007C 007C ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 2 0 BITMAP F9C0 FBC0 FFC0 FFC0 FC00 F800 F800 F800 F800 F800 F800 F800 F800 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 16 0 BBX 12 13 2 0 BITMAP 3FC0 7FE0 FFE0 F820 F800 FF00 3FC0 0FF0 01F0 C1F0 FFF0 FFE0 7F80 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 11 0 BBX 9 17 1 0 BITMAP 1C00 7C00 7C00 7C00 FF80 FF80 FF80 7C00 7C00 7C00 7C00 7C00 7C00 7C00 7F80 3F80 1F80 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 17 0 BBX 13 13 2 0 BITMAP F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F9F8 FFF8 7EF8 3CF8 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 17 0 BBX 15 13 1 0 BITMAP F80E FC1C 7C1C 7E3C 3E38 3E38 3F78 1F70 1FF0 0FE0 0FE0 0FE0 07C0 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 22 0 BBX 21 13 1 0 BITMAP F07838 78FC70 78FC70 78FC70 78FC70 3DDEE0 3DDEE0 3DDEE0 3F9FC0 1F8FC0 1F8FC0 1F8FC0 1F0F80 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 1 0 BITMAP FC78 7CF0 3EE0 3FE0 1FC0 1F80 0F80 0FC0 1FC0 3FE0 3BF0 79F0 F0F8 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 1 -5 BITMAP F81E FC1C 7C3C 7E38 3E38 3E70 3F70 1FE0 1FE0 0FE0 0FC0 0FC0 0780 0780 0F00 0F00 1E00 3E00 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 1 0 BITMAP FFF8 FFF8 FFF8 03F8 07F0 0FE0 1FC0 3F80 7F00 FE00 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 10 0 BBX 7 23 1 -4 BITMAP 1E 3E 7E 7C 7C 7C 7C 7C 7C 78 F8 E0 F8 78 7C 7C 7C 7C 7C 7C 7E 3E 1E ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 7 0 BBX 3 23 2 -4 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 10 0 BBX 7 23 1 -4 BITMAP F0 F8 FC 7C 7C 7C 7C 7C 7C 3C 3E 0E 3E 3C 7C 7C 7C 7C 7C 7C FC F8 F0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 17 0 BBX 14 6 2 4 BITMAP 3C1C 7E1C FF9C E7FC E1F8 E0F0 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 9 0 BBX 5 18 2 -5 BITMAP F8 F8 F8 00 00 70 70 70 70 70 F8 F8 F8 F8 F8 F8 F8 F8 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 17 0 BBX 13 18 2 0 BITMAP 0380 0380 07F8 3FF8 7FF8 7C08 F800 F800 F800 F800 FC00 FE00 7FF8 7FF8 1FF8 0380 0380 0380 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 17 0 BBX 12 18 3 0 BITMAP 07F0 1FF0 1FF0 3E00 3E00 3E00 3E00 FF80 FF80 FF80 3E00 3E00 3C00 3C00 7000 FFF0 FFF0 FFF0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 17 0 BBX 17 18 0 0 BITMAP 600300 E00380 F00780 780F00 3DDE00 1FFC00 0FF800 1E3C00 1C1C00 1C1C00 1C1C00 0E3800 1FFC00 3FFE00 7FFF00 F80F80 F00780 600300 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 17 0 BBX 16 18 1 0 BITMAP FC0F 7C0E 7E1E 3F1C 3F38 1FF8 0FF0 0FF0 07E0 1FF8 1FF8 03E0 1FF8 1FF8 03E0 03E0 03E0 03E0 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 7 0 BBX 3 23 2 -4 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 00 00 00 00 00 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 17 0 BBX 13 23 2 -5 BITMAP 1FF0 7FF0 FFF0 F810 F800 FE00 7FC0 3FE0 7FF0 6FF8 E3F8 F078 FE38 FFF0 7FF0 3FF0 0FF8 03F8 00F8 C0F8 FFF0 FFF0 FFC0 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 17 0 BBX 8 3 4 15 BITMAP E7 E7 E7 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 21 0 BBX 19 18 1 0 BITMAP 01F000 0FFE00 1E0F00 380380 71F9C0 67FCC0 E704E0 CE0060 CE0060 CE0060 CE0060 E704E0 63FCC0 71F9C0 380380 1E0F00 0FFE00 01F000 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 13 0 BBX 12 10 1 8 BITMAP 7F80 FFC0 C3E0 03E0 3FE0 FFE0 F3E0 F3F0 FFF0 7CF0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 15 0 BBX 14 11 1 1 BITMAP 0410 0E3C 1F78 3C78 78F0 F9E0 78F0 3C78 1E78 0F3C 0410 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 17 0 BBX 14 9 2 2 BITMAP FFFC FFFC FFFC 001C 001C 001C 001C 001C 001C ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 7 0 BBX 5 3 1 6 BITMAP F8 F8 F8 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 17 0 BBX 13 13 2 5 BITMAP 0F80 1FE0 38F0 6FB0 EFB8 CD98 CF98 CF18 EDB8 6DB0 78F0 3FE0 0F80 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 17 0 BBX 8 3 4 15 BITMAP FF FF FF ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 6 0 BBX 4 4 1 14 BITMAP 60 90 90 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 17 0 BBX 15 15 1 0 BITMAP 0380 0380 0380 0380 FFFE FFFE FFFE 0380 0380 0380 0380 0000 FFFE FFFE FFFE ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 -16 7 BITMAP 7C FF 87 07 07 0E 1C 78 F0 FF FF ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 -16 7 BITMAP 7C FF 87 07 7E 7C 0E 07 87 FF FC ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 17 0 BBX 6 3 6 16 BITMAP 3C 70 E0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 17 0 BBX 13 17 2 -4 BITMAP F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F9F8 FFF8 FFF8 FEF8 F800 F800 F800 F800 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 17 0 BBX 11 22 2 -4 BITMAP 3FE0 7FE0 FFE0 FFE0 FFE0 FFE0 FFE0 7FE0 1FE0 07E0 07E0 07E0 07E0 07E0 07E0 07E0 07E0 07E0 07E0 07E0 07E0 07E0 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 17 0 BBX 4 3 7 6 BITMAP F0 F0 F0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 17 0 BBX 5 5 6 -5 BITMAP 30 60 38 F8 F0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 10 0 BBX 5 11 -17 7 BITMAP F8 F8 38 38 38 38 38 38 38 38 38 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 13 0 BBX 12 10 1 8 BITMAP 1F80 7FE0 7BE0 F1F0 F1F0 F1F0 F1F0 7BE0 7FE0 1F80 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 15 0 BBX 14 11 1 1 BITMAP 2080 F3C0 79E0 78F0 3C78 1E7C 3C78 78F0 7BE0 F1C0 2080 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 23 0 BBX 21 18 6 0 BITMAP F801E0 F803C0 380780 380F00 380E00 381E00 383C00 387870 38F0F0 38F1F0 39E370 03C770 078E70 070FF8 0F0FF8 1E0070 3C0070 780070 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 23 0 BBX 20 18 6 0 BITMAP F801E0 F803C0 380780 380F00 380E00 381E00 383C00 387FC0 38FFF0 38F870 39E070 03C070 0780E0 0701C0 0F0780 1E0F00 3C0FF0 780FF0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 23 0 BBX 21 18 6 0 BITMAP 7C01E0 FF03C0 870780 070F00 7E0E00 7C1E00 0E3C00 077870 87F0F0 FFF1F0 FDE370 03C770 078E70 070FF8 0F0FF8 1E0070 3C0070 780070 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 1 -5 BITMAP 0F80 0F80 0F80 0000 0000 0F80 0F80 0F00 1E00 3E00 3C00 7800 F800 F800 FC10 FFF0 7FF0 1FE0 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 19 0 BBX 19 22 0 0 BITMAP 03C000 00E000 007000 000000 01F000 03F800 03F800 03FC00 07FC00 077C00 0F7E00 0E3E00 0E3F00 1C1F00 1FFF00 1FFF80 3FFF80 380FC0 7807C0 7007C0 7003E0 E003E0 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 19 0 BBX 19 22 0 0 BITMAP 003C00 007000 00E000 000000 01F000 03F800 03F800 03FC00 07FC00 077C00 0F7E00 0E3E00 0E3F00 1C1F00 1FFF00 1FFF80 3FFF80 380FC0 7807C0 7007C0 7003E0 E003E0 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 19 0 BBX 19 22 0 0 BITMAP 01F000 03F800 071C00 000000 01F000 03F800 03F800 03FC00 07FC00 077C00 0F7E00 0E3E00 0E3F00 1C1F00 1FFF00 1FFF80 3FFF80 380FC0 7807C0 7007C0 7003E0 E003E0 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 19 0 BBX 19 22 0 0 BITMAP 03DC00 07FC00 077800 000000 01F000 03F800 03F800 03FC00 07FC00 077C00 0F7E00 0E3E00 0E3F00 1C1F00 1FFF00 1FFF80 3FFF80 380FC0 7807C0 7007C0 7003E0 E003E0 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 19 0 BBX 19 22 0 0 BITMAP 039C00 039C00 039C00 000000 01F000 03F800 03F800 03FC00 07FC00 077C00 0F7E00 0E3E00 0E3F00 1C1F00 1FFF00 1FFF80 3FFF80 380FC0 7807C0 7007C0 7003E0 E003E0 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 19 0 BBX 19 23 0 0 BITMAP 006000 009000 009000 006000 000000 01F000 03F800 03F800 03FC00 07FC00 077C00 0F7E00 0E3E00 0E3F00 1C1F00 1FFF00 1FFF80 3FFF80 380FC0 7807C0 7007C0 7003E0 E003E0 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 25 0 BBX 24 18 0 0 BITMAP 003FFE 007FFE 007FFE 00FF00 00FF00 01FF00 01DF00 03DFFC 079FFC 071FFC 0F1F00 0FFF00 1FFF00 1FFF00 3C1F00 381FFF 701FFF F01FFF ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 18 0 BBX 17 23 1 -5 BITMAP 03FF00 0FFF80 1FFF80 3F0180 7E0000 7C0000 F80000 F80000 F80000 F80000 F80000 F80000 7C0000 7E0000 3F8180 1FFF80 0FFF80 03FE00 00C000 018000 00E000 03E000 03C000 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 16 0 BBX 13 22 2 0 BITMAP 1E00 0700 0380 0000 FFF0 FFF0 FFF0 F800 F800 F800 F800 FFE0 FFE0 FFE0 F800 F800 F800 F800 F800 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 16 0 BBX 13 22 2 0 BITMAP 03C0 0700 0E00 0000 FFF0 FFF0 FFF0 F800 F800 F800 F800 FFE0 FFE0 FFE0 F800 F800 F800 F800 F800 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 16 0 BBX 13 22 2 0 BITMAP 0F80 1FC0 38E0 0000 FFF0 FFF0 FFF0 F800 F800 F800 F800 FFE0 FFE0 FFE0 F800 F800 F800 F800 F800 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 16 0 BBX 13 22 2 0 BITMAP 39C0 39C0 39C0 0000 FFF0 FFF0 FFF0 F800 F800 F800 F800 FFE0 FFE0 FFE0 F800 F800 F800 F800 F800 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 9 0 BBX 6 22 3 0 BITMAP F0 38 1C 00 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 9 0 BBX 7 22 2 0 BITMAP 1E 38 70 00 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 9 0 BBX 9 22 4 0 BITMAP 3E00 7F00 E380 0000 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 9 0 BBX 8 22 3 0 BITMAP E7 E7 E7 00 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 20 0 BBX 19 18 0 0 BITMAP 3FFC00 3FFF00 3FFF80 3E1FC0 3E07C0 3E07E0 3E03E0 FFE3E0 FFE3E0 FFE3E0 3E03E0 3E03E0 3E03C0 3E07C0 3E0FC0 3FFF80 3FFF00 3FFC00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 20 0 BBX 15 22 2 0 BITMAP 0F70 1FF0 1DE0 0000 F00E F80E FC0E FE0E FE0E FF0E FF8E FF8E EFCE E7EE E3FE E3FE E1FE E0FE E0FE E07E E03E E01E ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 21 0 BBX 20 22 1 0 BITMAP 01E000 007000 003800 000000 03FC00 0FFF00 1FFF80 3F0FC0 7E07E0 7C03E0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 7C03E0 7E07E0 3F0FC0 1FFF80 0FFF00 03FC00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 21 0 BBX 20 22 1 0 BITMAP 003C00 007000 00E000 000000 03FC00 0FFF00 1FFF80 3F0FC0 7E07E0 7C03E0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 7C03E0 7E07E0 3F0FC0 1FFF80 0FFF00 03FC00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 21 0 BBX 20 22 1 0 BITMAP 00F800 01FC00 038E00 000000 03FC00 0FFF00 1FFF80 3F0FC0 7E07E0 7C03E0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 7C03E0 7E07E0 3F0FC0 1FFF80 0FFF00 03FC00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 21 0 BBX 20 22 1 0 BITMAP 01EE00 03FE00 03BC00 000000 03FC00 0FFF00 1FFF80 3F0FC0 7E07E0 7C03E0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 7C03E0 7E07E0 3F0FC0 1FFF80 0FFF00 03FC00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 21 0 BBX 20 22 1 0 BITMAP 039C00 039C00 039C00 000000 03FC00 0FFF00 1FFF80 3F0FC0 7E07E0 7C03E0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 7C03E0 7E07E0 3F0FC0 1FFF80 0FFF00 03FC00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 17 0 BBX 14 15 2 0 BITMAP 6018 E01C F03C 7878 3CF0 1FE0 0FC0 0780 0FC0 1FE0 3CF0 7878 F03C E01C 6018 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 21 0 BBX 20 18 1 0 BITMAP 03FCF0 0FFFE0 1FFFC0 3F0FC0 7E0FE0 7C1FE0 F83DF0 F879F0 F8F1F0 F8F1F0 F9E1F0 FBC1F0 7F83E0 7F07E0 3F0FC0 3FFF80 7FFF00 F3FC00 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 20 0 BBX 15 22 2 0 BITMAP 0F00 0380 01C0 0000 F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E 7C7C 7FFC 3FF8 0FE0 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 20 0 BBX 15 22 2 0 BITMAP 00F0 01C0 0380 0000 F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E 7C7C 7FFC 3FF8 0FE0 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 20 0 BBX 15 22 2 0 BITMAP 07C0 0FE0 1C70 0000 F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E 7C7C 7FFC 3FF8 0FE0 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 20 0 BBX 15 22 2 0 BITMAP 0E70 0E70 0E70 0000 F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E F83E 7C7C 7FFC 3FF8 0FE0 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 18 0 BBX 17 22 1 0 BITMAP 007800 00E000 01C000 000000 FC0780 7C0700 7E0F00 3F0E00 3F1C00 1FBC00 1FB800 0FF800 07F000 07F000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 2 0 BITMAP F800 F800 F800 FFF0 FFF8 FFFC F8FC F87C F87C F87C F8F8 FFF8 FFF0 FFC0 F800 F800 F800 F800 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 18 0 BBX 16 19 2 0 BITMAP 0FC0 3FF0 7FF0 F8F0 F870 F8E0 F8E0 F9C0 F9E0 FBF8 F9FC F9FE F8FF F83F F81F F80F F9FF F9FE F9F8 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 1 0 BITMAP 0F00 0380 01C0 0000 1FC0 7FF0 7FF8 41F8 00F8 1FF8 7FF8 FFF8 F8F8 F8F8 FFFC 7FFC 3E7C ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 1 0 BITMAP 01E0 0380 0700 0000 1FC0 7FF0 7FF8 41F8 00F8 1FF8 7FF8 FFF8 F8F8 F8F8 FFFC 7FFC 3E7C ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 1 0 BITMAP 07C0 0FE0 1C70 0000 1FC0 7FF0 7FF8 41F8 00F8 1FF8 7FF8 FFF8 F8F8 F8F8 FFFC 7FFC 3E7C ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 1 0 BITMAP 0F70 1FF0 1DE0 0000 1FC0 7FF0 7FF8 41F8 00F8 1FF8 7FF8 FFF8 F8F8 F8F8 FFFC 7FFC 3E7C ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 1 0 BITMAP 1CE0 1CE0 1CE0 0000 1FC0 7FF0 7FF8 41F8 00F8 1FF8 7FF8 FFF8 F8F8 F8F8 FFFC 7FFC 3E7C ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 1 0 BITMAP 0300 0480 0480 0300 0000 1FC0 7FF0 7FF8 41F8 00F8 1FF8 7FF8 FFF8 F8F8 F8F8 FFFC 7FFC 3E7C ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 23 0 BBX 21 13 1 0 BITMAP 1F8FC0 7FDFE0 7FFFF0 40F9F0 00F8F8 1FFFF8 7FFFF8 FFFFF8 F8F800 F8F808 FFFFF8 7F3FF8 3E0FF0 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 1 -5 BITMAP 0FE0 3FF0 7FF0 7E10 FC00 F800 F800 F800 FC00 7E10 7FF0 3FF0 0FF0 0300 0600 0380 0F80 0F00 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 1 0 BITMAP 1E00 0700 0380 0000 0FC0 3FE0 7FF0 78F0 F8F8 FFF8 FFF8 FFF8 F800 7C08 7FF8 3FF8 0FF0 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 1 0 BITMAP 01E0 0380 0700 0000 0FC0 3FE0 7FF0 78F0 F8F8 FFF8 FFF8 FFF8 F800 7C08 7FF8 3FF8 0FF0 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 1 0 BITMAP 0F80 1FC0 38E0 0000 0FC0 3FE0 7FF0 78F0 F8F8 FFF8 FFF8 FFF8 F800 7C08 7FF8 3FF8 0FF0 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 1 0 BITMAP 1CE0 1CE0 1CE0 0000 0FC0 3FE0 7FF0 78F0 F8F8 FFF8 FFF8 FFF8 F800 7C08 7FF8 3FF8 0FF0 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 9 0 BBX 6 17 3 0 BITMAP F0 38 1C 00 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 9 0 BBX 7 17 2 0 BITMAP 1E 38 70 00 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 9 0 BBX 9 17 4 0 BITMAP 3E00 7F00 E380 0000 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 9 0 BBX 8 17 3 0 BITMAP E7 E7 E7 00 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 17 0 BBX 15 22 1 0 BITMAP 0080 01C0 03E0 F780 FF80 FFE0 3FF0 79F8 70F8 2FFC 3FFC 7FFE 7C7E F83E F83E F83E F83E F83E 7C7C 7FF8 3FF0 0FC0 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 17 0 BBX 13 17 2 0 BITMAP 1EE0 3FE0 3BC0 0000 F9E0 FBF0 FFF8 FFF8 FCF8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 17 0 BBX 15 17 1 0 BITMAP 0F00 0380 01C0 0000 0FE0 3FF8 7FFC 7C7C F83E F83E F83E F83E F83E 7C7C 7FFC 3FF8 0FE0 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 17 0 BBX 15 17 1 0 BITMAP 00F0 01C0 0380 0000 0FE0 3FF8 7FFC 7C7C F83E F83E F83E F83E F83E 7C7C 7FFC 3FF8 0FE0 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 17 0 BBX 15 17 1 0 BITMAP 07C0 0FE0 1C70 0000 0FE0 3FF8 7FFC 7C7C F83E F83E F83E F83E F83E 7C7C 7FFC 3FF8 0FE0 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 17 0 BBX 15 17 1 0 BITMAP 0F70 1FF0 1DE0 0000 0FE0 3FF8 7FFC 7C7C F83E F83E F83E F83E F83E 7C7C 7FFC 3FF8 0FE0 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 17 0 BBX 15 17 1 0 BITMAP 0E70 0E70 0E70 0000 0FE0 3FF8 7FFC 7C7C F83E F83E F83E F83E F83E 7C7C 7FFC 3FF8 0FE0 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 17 0 BBX 14 15 2 0 BITMAP 0700 0700 0700 0000 0000 0000 FFFC FFFC FFFC 0000 0000 0000 0700 0700 0700 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 17 0 BBX 15 13 1 0 BITMAP 0FFE 3FFC 7FFC 7CFC F9FE FBFE FFBE FFBE FF3E 7E7C 7FFC 7FF8 FFE0 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 17 0 BBX 13 17 2 0 BITMAP 1E00 0700 0380 0000 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F9F8 FFF8 7EF8 3CF8 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 17 0 BBX 13 17 2 0 BITMAP 01E0 0380 0700 0000 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F9F8 FFF8 7EF8 3CF8 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 17 0 BBX 13 17 2 0 BITMAP 0F80 1FC0 38E0 0000 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F9F8 FFF8 7EF8 3CF8 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 17 0 BBX 13 17 2 0 BITMAP 1CE0 1CE0 1CE0 0000 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F9F8 FFF8 7EF8 3CF8 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 16 0 BBX 15 22 1 -5 BITMAP 01E0 0380 0700 0000 F81E FC1C 7C3C 7E38 3E38 3E70 3F70 1FE0 1FE0 0FE0 0FC0 0FC0 0780 0780 0F00 0F00 1E00 3E00 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 17 0 BBX 14 23 2 -5 BITMAP F800 F800 F800 F800 F800 F9E0 FBF8 FFF8 FCFC F87C F87C F87C F87C F87C FCFC FFF8 FFF0 F9E0 F800 F800 F800 F800 F800 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 16 0 BBX 15 22 1 -5 BITMAP 0E70 0E70 0E70 0000 F81E FC1C 7C3C 7E38 3E38 3E70 3F70 1FE0 1FE0 0FE0 0FC0 0FC0 0780 0780 0F00 0F00 1E00 3E00 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 15 19 1 0 BITMAP 0FFE 1FFE 3FFE 3E3E 3E3E 3E3E FFBE FFBE FFBE 3E3E 3E3E 3E3E 3E3E 3E3E 3E3E 3E3E 3E3E 3E3E 3E3E ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 11 3 1 6 BITMAP FFE0 FFE0 FFE0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 12 22 3 -4 BITMAP 0F00 0F00 0F00 0F00 0F00 0F00 FFF0 FFF0 FFF0 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 14 22 1 0 BITMAP 1C70 0FE0 07C0 0000 FFFC FFFC FFFC 00FC 01F8 03F8 03F0 07E0 0FC0 0FC0 1F80 3F00 7F00 7E00 FC00 FFFC FFFC FFFC ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 25 0 BBX 23 13 1 0 BITMAP 0FC1E0 3FF7F8 7FFFFC 7C7E7C F83E3E F83FFE F83FFE F83FFE F83E00 7C7E02 7FFFFE 3FFFFE 0FE3FC ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 17 22 1 0 BITMAP 073800 073800 073800 000000 FC0780 7C0700 7E0F00 3F0E00 3F1C00 1FBC00 1FB800 0FF800 07F000 07F000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 13 2 0 BITMAP F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 19 0 0 BITMAP 3E00 3E00 3E00 3E00 3E00 3E00 3E80 3F80 3F80 7F00 FE00 FE00 FE00 BE00 3E00 3E00 3E00 3E00 3E00 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 0 0 BITMAP 3E00 3E00 3E00 3E00 3E00 3E80 3F80 3F80 3F00 FE00 FE00 FE00 BE00 3E00 3E00 3FFE 3FFE 3FFE ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 12 22 3 -4 BITMAP 0F00 0F00 0F00 0F00 0F00 0F00 FFF0 FFF0 FFF0 0F00 0F00 0F00 0F00 FFF0 FFF0 FFF0 0F00 0F00 0F00 0F00 0F00 0F00 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 15 19 1 0 BITMAP 0FE0 1FE0 3FE0 3E00 3E00 3E00 FFFE FFFE FFFE 3E3E 3E3E 3E3E 3E3E 3E3E 3E3E 3E3E 3E3E 3E3E 3E3E ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 1 BITMAP 20 F0 78 3C 3E 1F 3E 3C 78 F0 20 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 28 0 BBX 25 18 1 0 BITMAP 03FFFF00 0FFFFF00 3FFFFF00 3E1F8000 7C0F8000 7C0F8000 F80F8000 F80FFE00 F80FFE00 F80FFE00 F80F8000 F80F8000 7C0F8000 7C0F8000 3E1F8000 3FFFFF80 0FFFFF80 03FFFF80 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 25 0 BBX 23 2 1 6 BITMAP FFFFFE FFFFFE ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 9 3 4 16 BITMAP E380 7F00 3E00 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 5 3 6 -4 BITMAP 70 E0 78 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 9 3 5 16 BITMAP 3B80 7600 EC00 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 1 BITMAP 04 0F 1E 3C 7C F8 7C 3C 1E 0F 04 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 4 3 6 16 BITMAP F0 F0 F0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 9 3 4 16 BITMAP E380 7F00 3E00 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 10 10 4 2 BITMAP FFC0 FFC0 FFC0 FFC0 FFC0 FFC0 FFC0 FFC0 FFC0 FFC0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 9 3 4 16 BITMAP 7B80 FF80 EF00 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 9 3 4 16 BITMAP 3E00 7F00 E380 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 11 9 1 10 BITMAP 1860 79E0 61C0 E380 FBE0 FBE0 FBE0 FBE0 FBE0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 10 BITMAP F8 F8 F8 F8 F8 70 70 70 70 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 12 17 2 0 BITMAP 38E0 1FC0 0F80 0000 3FC0 7FE0 FFE0 F820 F800 FF00 3FC0 0FF0 01F0 C1F0 FFF0 FFE0 7F80 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 4 4 6 15 BITMAP 60 90 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 -4 BITMAP F8 F8 F8 F8 F8 38 70 F0 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 14 22 3 -4 BITMAP 00FC 03FC 07FC 0F80 0F80 1F00 1F00 7FC0 7FC0 7FC0 3E00 3E00 3E00 3E00 7C00 7C00 7C00 7C00 7C00 F800 F800 F800 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 22 9 0 9 BITMAP FFFE3C FFFF7C FFFF7C 1F1F7C 1F1FFC 1F1FFC 1F1FFC 1F1D7C 1F1C7C ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 18 18 -7 0 BITMAP 0003C0 000780 000F00 001E00 001C00 003C00 007800 00F000 01E000 01E000 03C000 078000 0F0000 0E0000 1E0000 3C0000 780000 F00000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 6 3 5 16 BITMAP F0 38 1C ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 33 0 BBX 32 18 0 0 BITMAP 3E00F000 7F01E000 FF83C000 E3878000 E38F0000 E38E0000 FF9E0000 7F3C0000 3E780000 0071E07C 00F7F8FE 01EFFDFF 03CF3DC7 078E1DC7 070F3DC7 0F0FFDFF 1E07F8FE 3C01E07C ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 25 0 BBX 20 3 3 0 BITMAP E0E070 E0E070 E0E070 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 11 9 1 10 BITMAP FBE0 FBE0 FBE0 FBE0 FBE0 38E0 70C0 F3C0 C300 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 13 22 1 0 BITMAP 38E0 1FC0 0F80 0000 1FF0 7FF0 7FF0 F830 F800 FC00 FF00 7F80 7FE0 1FF0 0FF8 03F8 00F8 00F8 C1F8 FFF0 FFE0 FF80 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 11 9 1 -4 BITMAP FBE0 FBE0 FBE0 FBE0 FBE0 38E0 70C0 F3C0 C300 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 1 0 BITMAP 38E0 1FC0 0F80 0000 FFF8 FFF8 FFF8 03F8 07F0 0FE0 1FC0 3F80 7F00 FE00 FFF8 FFF8 FFF8 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/luBS19.bdf100644 1750 1750 115303 5413747520 15051 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Bold-R-Normal-Sans-26-190-100-100-P-166-ISO8859-1 SIZE 19 100 100 FONTBOUNDINGBOX 51 29 -17 -5 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Bold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 26 POINT_SIZE 190 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH "166" CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." FONT_ASCENT 24 FONT_DESCENT 6 DEFAULT_CHAR 0 ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 9 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 9 0 BBX 5 19 2 0 BITMAP F8 F8 F8 F8 F8 F8 F8 F8 F8 70 70 70 70 00 00 00 F8 F8 F8 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 14 0 BBX 12 9 1 11 BITMAP F9F0 F9F0 F9F0 F9F0 F9F0 70E0 70E0 70E0 70E0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 18 0 BBX 16 19 1 0 BITMAP 038C 030C 0318 0318 0618 3FFF 7FFF 0630 0C30 0C30 0C60 FFFE FFFC 1860 18C0 18C0 30C0 30C0 31C0 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 18 0 BBX 13 25 2 -3 BITMAP 0700 0700 0700 1FF0 3FF0 7FF0 7B10 7B00 7B00 7F00 7F00 3F80 1FE0 07F0 07F0 07F8 0678 0678 C678 FFF0 FFF0 7FC0 0700 0700 0700 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 23 0 BBX 22 19 1 0 BITMAP 3E00F0 7F01E0 7F01C0 E78380 E38780 E38F00 E79E00 7F1C00 7F3C00 3E7800 00F1F0 00E3F8 01E7FC 03C71C 07871C 07071C 0F07FC 1E03F8 3C01F0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 21 0 BBX 19 19 1 0 BITMAP 03F000 0FFC00 1FFE00 1F1E00 1F1E00 1FBE00 0FFC00 07F000 1FE1E0 3FF1E0 7DF1E0 F9F9C0 F8FFC0 F8FF80 FC7F80 7C3F00 7FFF00 3FFF80 0FC7C0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 11 BITMAP F8 F8 F8 F8 F8 38 30 F0 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 10 0 BBX 8 25 1 -5 BITMAP 01 07 0F 1F 1E 3C 7C 7C 78 F8 F8 F8 F8 F8 F8 F8 78 7C 7C 3C 1E 1F 0F 07 01 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 10 0 BBX 8 25 1 -5 BITMAP 80 E0 F0 F8 78 3C 3E 3E 1E 1F 1F 1F 1F 1F 1F 1F 1E 3E 3E 3C 78 F8 F0 E0 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 9 BITMAP 1E00 0C00 4C80 7F80 F3C0 0000 3F00 7780 3300 1200 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 18 0 BBX 15 16 1 0 BITMAP 0380 0380 0380 0380 0380 0380 FFFE FFFE FFFE 0380 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 9 0 BBX 5 9 2 -4 BITMAP F8 F8 F8 F8 F8 38 70 F0 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 18 0 BBX 15 3 1 6 BITMAP FFFE FFFE FFFE ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 9 0 BBX 5 5 2 0 BITMAP F8 F8 F8 F8 F8 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 15 0 BBX 15 24 0 -4 BITMAP 001E 001C 003C 0038 0078 0070 00F0 00E0 00E0 01C0 01C0 0380 0380 0700 0700 0E00 0E00 1E00 1C00 3C00 3800 7800 7000 F000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 18 0 BBX 16 19 1 0 BITMAP 07E0 1FF8 3FFC 3C3C 7C3E 781E F81F F81F F81F F81F F81F F81F F81F 781E 7C3E 3C3C 3FFC 1FF8 07E0 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 18 0 BBX 8 19 4 0 BITMAP FF FF FF 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 18 0 BBX 14 19 2 0 BITMAP 3FC0 7FF0 7FF8 40FC 007C 007C 007C 00FC 00F8 01F0 03E0 07C0 0F80 3E00 7C00 FC00 FFFC FFFC FFFC ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 18 0 BBX 14 19 2 0 BITMAP 3FC0 FFF0 FFF0 C1F8 00F8 00F8 00F8 01F0 3FC0 3FE0 3FF0 01F8 00FC 007C 007C C0FC FFF8 FFF0 7FC0 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 18 0 BBX 16 19 1 0 BITMAP 007C 00FC 01FC 03FC 07FC 0F7C 1E7C 3E7C 3C7C 787C F07C FFFF FFFF FFFF 007C 007C 007C 007C 007C ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 18 0 BBX 13 19 3 0 BITMAP FFF8 FFF8 FFF8 E000 E000 E000 FF00 FFC0 FFE0 07F0 01F8 00F8 00F8 00F8 00F8 C1F0 FFF0 FFE0 7F80 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 18 0 BBX 16 19 1 0 BITMAP 03FC 0FFE 1FFE 3F06 7E00 7C00 F800 F9F0 FFFC FFFE FC3F F81F F81F F81F 781F 7C3E 3FFE 1FFC 07F0 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 18 0 BBX 14 19 3 0 BITMAP FFFC FFFC FFFC 003C 0078 00F0 01F0 01E0 03C0 0780 0F80 0F00 1F00 1E00 3E00 3E00 7C00 7C00 7C00 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 18 0 BBX 15 19 1 0 BITMAP 0FE0 1FF8 3FFC 7C7C 783C 783C 7E38 3FF8 1FE0 1FF8 3DFC 787C F83E F81E F81E FC3E 7FFC 3FF8 0FE0 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 18 0 BBX 16 19 1 0 BITMAP 07E0 1FF8 7FFC 7C3E F81E F81F F81F F81F FC3F 7FFF 3FFF 0F9F 001F 003E 007E 60FC 7FF8 7FF0 3FC0 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 9 0 BBX 5 14 2 0 BITMAP F8 F8 F8 F8 F8 00 00 00 00 F8 F8 F8 F8 F8 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 9 0 BBX 5 18 2 -4 BITMAP F8 F8 F8 F8 F8 00 00 00 00 F8 F8 F8 F8 F8 38 70 F0 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 18 0 BBX 15 16 1 0 BITMAP 0002 000E 003E 00FE 01F8 07E0 1F80 FE00 7E00 1F80 07E0 01F8 00FE 003E 000E 0002 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 18 0 BBX 15 10 1 2 BITMAP FFFE FFFE FFFE 0000 0000 0000 0000 FFFE FFFE FFFE ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 18 0 BBX 15 16 1 0 BITMAP 8000 E000 F800 FE00 3F00 0FC0 03F0 00FC 00FE 03F0 0FC0 3F00 FE00 F800 E000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 15 0 BBX 13 19 1 0 BITMAP 7FC0 FFF0 FFF8 C1F8 00F8 00F8 00F0 01E0 03C0 0780 0F80 0F00 1F00 0000 0000 0000 1F00 1F00 1F00 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 22 0 BBX 20 19 3 0 BITMAP 00FE00 03FF80 0783C0 1E00E0 180060 307E70 71FC30 638C30 E70C30 C61C30 CE3870 CE7860 CFD8C0 CF9F80 670F00 700000 381000 1FF000 07E000 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 20 0 BBX 19 19 1 0 BITMAP 01F000 01F800 03F800 03F800 07FC00 077C00 077E00 0F3E00 0E3E00 0E3F00 1C1F00 1FFF00 3FFF80 3FFF80 380FC0 7807C0 7007C0 7003E0 E003E0 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 17 0 BBX 15 19 2 0 BITMAP FFE0 FFF8 FFFC F8FC F87C F87C F878 F8F0 FFE0 FFE0 FFF8 F8FC F83E F83E F83E F87E FFFC FFFC FFF0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 19 0 BBX 17 19 1 0 BITMAP 01FF00 0FFF80 1FFF80 3F0180 7E0000 7C0000 FC0000 F80000 F80000 F80000 F80000 F80000 FC0000 7C0000 7E0000 3F8180 1FFF80 0FFF80 03FE00 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 21 0 BBX 18 19 2 0 BITMAP FFF800 FFFE00 FFFF00 F83F80 F81F80 F80F80 F807C0 F807C0 F807C0 F807C0 F807C0 F807C0 F807C0 F80F80 F80F80 F83F00 FFFF00 FFFC00 FFF000 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 17 0 BBX 13 19 2 0 BITMAP FFF0 FFF0 FFF0 F800 F800 F800 F800 F800 FFE0 FFE0 FFE0 F800 F800 F800 F800 F800 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 2 0 BITMAP FFF8 FFF8 FFF8 F800 F800 F800 F800 F800 FFF0 FFF0 FFF0 F800 F800 F800 F800 F800 F800 F800 F800 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 20 0 BBX 17 19 1 0 BITMAP 01FF80 0FFF80 1FFF80 3F0180 7E0000 7C0000 FC0000 F80000 F80000 F80000 F80F80 F80F80 F80F80 7C0F80 7E0F80 3F8F80 1FFF80 0FFF80 03FF00 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 21 0 BBX 17 19 2 0 BITMAP F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 FFFF80 FFFF80 FFFF80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 9 0 BBX 5 19 2 0 BITMAP F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 13 0 BBX 11 23 0 -4 BITMAP 03E0 03E0 03E0 03E0 03E0 03E0 03E0 03E0 03E0 03E0 03E0 03E0 03E0 03E0 03E0 03E0 03E0 03E0 03E0 87E0 FFC0 FF80 7F00 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 20 0 BBX 17 19 2 0 BITMAP F81E00 F81C00 F83C00 F87800 F8F000 F8E000 F9E000 FBC000 FBC000 FFC000 FFE000 FBF000 F9F800 F9F800 F8FC00 F87E00 F87E00 F83F00 F81F80 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 2 0 BITMAP F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 24 0 BBX 20 19 2 0 BITMAP FC03F0 FC03F0 FE07F0 FE07F0 FE07F0 FF0FF0 EF0FF0 EF0FF0 EF9DF0 E79DF0 E79DF0 E7F9F0 E3F9F0 E3F9F0 E3F1F0 E1F1F0 E1F1F0 E1E1F0 E001F0 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 20 0 BBX 16 19 2 0 BITMAP F007 F807 FC07 FE07 FE07 FF07 FF87 FFC7 EFC7 E7E7 E3F7 E3FF E1FF E0FF E07F E07F E03F E01F E00F ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 22 0 BBX 20 19 1 0 BITMAP 03FC00 0FFF00 1FFF80 3F0FC0 7E07E0 7C03E0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 7C03E0 7E07E0 3F0FC0 1FFF80 0FFF00 03FC00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 17 0 BBX 14 19 2 0 BITMAP FFE0 FFF8 FFFC F8FC F87C F87C F87C F8FC F9F8 FFF8 FFF0 FFC0 F800 F800 F800 F800 F800 F800 F800 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 22 0 BBX 23 23 1 -4 BITMAP 03FC00 0FFF00 1FFF80 3F0FC0 7E07E0 7C03E0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 7C03E0 7E07E0 3F0FC0 1FFF80 0FFF00 03FF00 000FFE 0007FC 0001F8 000030 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 19 0 BBX 17 19 2 0 BITMAP FFE000 FFF800 FFF800 F8FC00 F87C00 F87C00 F87C00 F8F800 FFF800 FFF000 FFE000 F9F000 F9F800 F8F800 F8FC00 F87E00 F87F00 F83F00 F83F80 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 15 0 BBX 14 19 1 0 BITMAP 0FF8 3FF8 7FF8 FC18 F800 FC00 FE00 7F80 7FE0 3FF0 0FF8 03FC 00FC 007C 007C C0FC FFF8 FFF0 FFC0 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 19 0 BBX 19 19 0 0 BITMAP FFFFE0 FFFFE0 FFFFE0 01F000 01F000 01F000 01F000 01F000 01F000 01F000 01F000 01F000 01F000 01F000 01F000 01F000 01F000 01F000 01F000 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 20 0 BBX 16 19 2 0 BITMAP F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F FC3F 7C3E 7FFE 1FFC 07F0 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 19 0 BBX 18 19 0 0 BITMAP F801C0 FC0380 7C0380 7C0380 3E0700 3E0700 3F0700 1F0E00 1F0E00 1F8E00 0F9C00 0F9C00 0FDC00 07F800 07F800 07F800 03F000 03F000 03F000 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 24 0 BBX 24 19 0 0 BITMAP F81E07 F83E07 FC3E0E 7C3E0E 7C3F0E 7C7F0E 7E7F1C 3E7F1C 3E7F1C 3E77BC 3EE7B8 1FE7B8 1FE7B8 1FE7F8 1FC3F0 0FC3F0 0FC3F0 0FC3F0 0FC1E0 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 18 0 BBX 17 19 1 0 BITMAP FC0780 7E0F00 3E1E00 3F1C00 1FBC00 1FB800 0FF000 07F000 07E000 03F000 03F000 07F800 0FF800 0EFC00 1E7C00 3C7E00 383F00 783F00 F01F80 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 19 0 BBX 17 19 1 0 BITMAP FC0780 7C0700 7E0F00 3E0E00 3F1C00 1F1C00 1FB800 0FF800 0FF000 07F000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 18 0 BBX 14 19 2 0 BITMAP FFFC FFFC FFFC 00FC 01F8 01F8 03F0 07E0 07E0 0FC0 1F80 1F80 3F00 7E00 7E00 FC00 FFFC FFFC FFFC ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 10 0 BBX 6 24 2 -4 BITMAP FC FC FC F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 FC FC FC ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 15 0 BBX 15 24 0 -4 BITMAP F000 7000 7800 3800 3C00 1C00 1E00 0E00 0E00 0700 0700 0380 0380 01C0 01C0 00E0 00E0 00F0 0070 0078 0038 003C 001C 001E ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 10 0 BBX 7 24 1 -4 BITMAP FE FE FE 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E FE FE FE ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 18 0 BBX 15 16 1 3 BITMAP 0100 0100 0380 0380 07C0 07C0 0FE0 0EE0 1EF0 1C70 1C70 3838 3838 701C 701C E00E ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 13 0 BBX 11 3 1 -3 BITMAP FFE0 FFE0 FFE0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 11 BITMAP 18 78 60 E0 F8 F8 F8 F8 F8 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 1 0 BITMAP 1FC0 7FF0 7FF8 41F8 00F8 00F8 1FF8 7FF8 FFF8 F8F8 F8F8 FFFC 7FFC 3E7C ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 18 0 BBX 15 20 2 0 BITMAP F800 F800 F800 F800 F800 F800 F9F0 FBF8 FFFC FC7C F83E F83E F83E F83E F83E F87E FC7C FFFC FFF8 F3E0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 14 0 BBX 12 14 1 0 BITMAP 0FE0 1FF0 3FF0 7E10 FC00 F800 F800 F800 F800 FC00 7E10 7FF0 3FF0 0FF0 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 18 0 BBX 15 20 1 0 BITMAP 003E 003E 003E 003E 003E 003E 1F3E 3FFE 7FFE 7C7E FC3E F83E F83E F83E F83E F83E 7C7E 7FFE 3FBE 1F3E ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 1 0 BITMAP 0FE0 3FF0 7FF8 7CF8 F87C FFFC FFFC FFFC F800 FC00 7E04 3FFC 1FFC 07F8 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 12 0 BBX 12 20 0 0 BITMAP 07F0 1FF0 1FF0 3E00 3E00 3E00 FFE0 FFE0 FFE0 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 18 0 BBX 15 19 1 -5 BITMAP 0FBE 3FFE 7FFE 7C7E FC3E F83E F83E F83E F83E F83E 7C7E 7FBE 3FBE 1E3E 003E 207E 3FFC 7FF8 1FE0 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 18 0 BBX 14 20 2 0 BITMAP F800 F800 F800 F800 F800 F800 F9F0 FBF8 FFFC FFFC FC7C F87C F87C F87C F87C F87C F87C F87C F87C F87C ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 9 0 BBX 5 20 2 0 BITMAP F8 F8 F8 00 00 00 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 9 0 BBX 10 25 -2 -5 BITMAP 07C0 07C0 07C0 0000 0000 0000 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 87C0 FF80 FF80 FE00 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 18 0 BBX 15 20 2 0 BITMAP F800 F800 F800 F800 F800 F800 F878 F870 F8F0 F9E0 F9C0 FBC0 FFC0 FBE0 FBF0 F9F0 F9F8 F8FC F8FC F87E ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 9 0 BBX 5 20 2 0 BITMAP F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 26 0 BBX 21 14 3 0 BITMAP FBE1F0 F7F3F8 FFFFF8 FFFFF8 FCFCF8 F8F8F8 F8F8F8 F8F8F8 F8F8F8 F8F8F8 F8F8F8 F8F8F8 F8F8F8 F8F8F8 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 18 0 BBX 14 14 2 0 BITMAP F9F0 FBF8 FFFC FFFC FC7C F87C F87C F87C F87C F87C F87C F87C F87C F87C ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 18 0 BBX 16 14 1 0 BITMAP 07E0 1FF8 7FFE 7C3E FC3F F81F F81F F81F F81F FC3F 7C3E 7FFE 1FF8 07E0 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 18 0 BBX 15 19 2 -5 BITMAP F9F0 FBF8 FFFC FC7C F83E F83E F83E F83E F83E F87E FC7C FFFC FFF8 F9F0 F800 F800 F800 F800 F800 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 18 0 BBX 15 19 1 -5 BITMAP 0F9E 3FFE 7FFE 7C7E FC3E F83E F83E F83E F83E F83E 7C7E 7FFE 3FBE 1F3E 003E 003E 003E 003E 003E ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 13 0 BBX 10 14 2 0 BITMAP F9C0 FBC0 FFC0 FFC0 FC00 F800 F800 F800 F800 F800 F800 F800 F800 F800 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 16 0 BBX 13 14 2 0 BITMAP 1FE0 7FF0 FFF0 F830 F800 FF00 7FC0 1FF0 07F8 01F8 C0F8 FFF0 FFF0 7FC0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 11 0 BBX 9 18 1 0 BITMAP 1C00 7C00 7C00 7C00 FF80 FF80 FF80 7C00 7C00 7C00 7C00 7C00 7C00 7C00 7C00 7F80 3F80 1F80 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 18 0 BBX 14 14 2 0 BITMAP F87C F87C F87C F87C F87C F87C F87C F87C F87C F87C F8FC FFFC 7F7C 3E7C ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 17 0 BBX 16 14 1 0 BITMAP FC0F 7C0E 7C0E 7E1E 3E1C 3F1C 1F38 1F38 1FF8 0FF0 0FF0 07E0 07E0 07E0 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 23 0 BBX 21 14 1 0 BITMAP F07838 F87C38 78FC70 78FC70 78FC70 7DFEE0 3DDEE0 3DDEE0 3DDEE0 3F8FC0 1F8FC0 1F8FC0 1F8FC0 1F0F80 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 1 0 BITMAP FC3C 7E78 3E70 3FF0 1FE0 1FC0 0FC0 0FC0 0FE0 1FE0 3FF0 39F8 78F8 F0FC ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 17 0 BBX 16 19 0 -5 BITMAP FC0F 7C0E 7C1E 7E1C 3E3C 3F38 1F78 1F70 1FF0 0FE0 0FE0 07C0 07C0 0780 0780 0F00 0F00 1F00 3E00 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 16 0 BBX 13 14 2 0 BITMAP FFF8 FFF8 FFF8 03F8 07F0 0FE0 0FC0 1F80 3F00 7F00 FE00 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 10 0 BBX 7 24 2 -4 BITMAP 1E 3E 7E 7C 7C 7C 7C 7C 7C 7C 78 F0 F0 F8 7C 7C 7C 7C 7C 7C 7C 7E 3E 1E ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 7 0 BBX 3 24 2 -4 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 10 0 BBX 7 24 1 -4 BITMAP F0 F8 FC 7C 7C 7C 7C 7C 7C 7C 3C 1E 1E 3E 7C 7C 7C 7C 7C 7C 7C FC F8 F0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 18 0 BBX 15 7 1 4 BITMAP 3C0E 7E0E 7F8E F7DE E3FC E0FC E078 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 9 0 BBX 5 19 2 -5 BITMAP F8 F8 F8 00 00 00 70 70 70 70 F8 F8 F8 F8 F8 F8 F8 F8 F8 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 18 0 BBX 13 19 2 0 BITMAP 0380 0380 07F8 1FF8 3FF8 7C08 F800 F800 F800 F800 F800 FC00 FE00 7FF8 3FF8 1FF8 0380 0380 0380 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 18 0 BBX 12 19 4 0 BITMAP 07F0 1FF0 1FF0 3F00 3E00 3E00 3E00 3E00 FF80 FF80 FF80 3E00 3E00 3C00 3C00 7000 FFF0 FFF0 FFF0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 18 0 BBX 18 19 0 0 BITMAP 600180 600180 F003C0 780780 3DEF00 1FFE00 0FFC00 1F3E00 1E1E00 1C0E00 1C0E00 1E1E00 0F3C00 1FFE00 3FFF00 7DEF80 F807C0 700380 200100 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 18 0 BBX 17 19 0 0 BITMAP FC0780 7C0700 7E0F00 3F0E00 3F1C00 1FBC00 0FB800 0FF800 07F000 07F000 1FFC00 1FFC00 03E000 1FFC00 1FFC00 03E000 03E000 03E000 03E000 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 7 0 BBX 3 24 2 -4 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 00 00 00 00 00 00 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 18 0 BBX 13 24 2 -5 BITMAP 1FF0 7FF0 FFF0 F810 F800 FE00 FF80 7FE0 3FF0 7FF8 E3F8 E0F8 F838 FF38 FFF0 7FE0 3FF0 0FF8 01F8 00F8 C0F8 FFF0 FFE0 FF80 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 18 0 BBX 8 3 5 16 BITMAP E7 E7 E7 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 21 0 BBX 19 19 1 0 BITMAP 01F000 07FC00 1E0F00 380380 31F980 67FCC0 6704C0 CE0060 CE0060 CE0060 CE0060 CF0060 6784C0 63FCC0 31F980 380380 1E0F00 07FC00 01F000 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 14 0 BBX 13 10 1 9 BITMAP 7FC0 7FE0 41F0 01F0 3FF0 7FF0 F9F0 F9F8 FFF8 7CF8 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 16 0 BBX 14 12 1 1 BITMAP 0408 0E1C 1E38 3C78 3CF0 F9E0 79E0 3CF0 3C78 1E38 0E1C 0410 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 18 0 BBX 15 10 1 2 BITMAP FFFE FFFE FFFE 000E 000E 000E 000E 000E 000E 000E ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 8 0 BBX 6 3 1 7 BITMAP FC FC FC ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 18 0 BBX 13 14 2 5 BITMAP 0F80 1FC0 38E0 6030 EFB8 CF98 CD98 CF98 CF18 EDB8 6DB0 38E0 3FE0 0F80 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 18 0 BBX 8 3 5 16 BITMAP FF FF FF ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 6 0 BBX 4 5 1 14 BITMAP 60 90 90 90 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 18 0 BBX 15 16 1 0 BITMAP 0380 0380 0380 0380 FFFE FFFE FFFE 0380 0380 0380 0380 0380 0000 FFFE FFFE FFFE ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 11 0 BBX 8 11 -16 8 BITMAP 7C FF 87 07 07 0E 1C 78 F0 FF FF ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 11 0 BBX 8 11 -17 8 BITMAP 7C FF 87 07 7E 7C 0E 07 87 FF FC ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 18 0 BBX 7 3 6 17 BITMAP 3E 78 F0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 18 0 BBX 14 18 2 -4 BITMAP F87C F87C F87C F87C F87C F87C F87C F87C F87C F87C F8FC FFFC FF7C FE7C F800 F800 F800 F800 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 18 0 BBX 11 23 2 -4 BITMAP 3FE0 7FE0 FFE0 FFE0 FFE0 FFE0 FFE0 7FE0 3FE0 0FE0 07E0 07E0 07E0 07E0 07E0 07E0 07E0 07E0 07E0 07E0 07E0 07E0 07E0 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 18 0 BBX 4 3 7 7 BITMAP F0 F0 F0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 18 0 BBX 5 5 6 -5 BITMAP 30 60 38 F8 F0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 11 0 BBX 5 11 -17 8 BITMAP F8 F8 38 38 38 38 38 38 38 38 38 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 14 0 BBX 13 10 0 9 BITMAP 1FC0 3FE0 79F0 F0F8 F0F8 F0F8 F0F8 79F0 3FE0 1FC0 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 16 0 BBX 14 12 1 1 BITMAP 2080 E1C0 71E0 78F0 3CF0 1E78 1E7C 3CF0 78E0 71E0 E1C0 4080 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 24 0 BBX 21 19 6 0 BITMAP F801E0 F803C0 380780 380700 380F00 381E00 383C00 383800 387870 38F0F0 39E1F0 01C370 03C770 078E70 0F0FF8 0E0FF8 1E0070 3C0070 780070 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 24 0 BBX 20 19 6 0 BITMAP F801E0 F803C0 380780 380700 380F00 381E00 383C00 383800 387FC0 38FFF0 39E870 01C070 03C070 0780E0 0F01C0 0E0780 1E0F00 3C0FF0 780FF0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 24 0 BBX 21 19 6 0 BITMAP 7C01E0 FF03C0 870780 070700 7E0F00 7C1E00 0E3C00 073800 877870 FFF0F0 FDE1F0 01C370 03C770 078E70 0F0FF8 0E0FF8 1E0070 3C0070 780070 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 15 0 BBX 13 19 1 -5 BITMAP 07C0 07C0 07C0 0000 0000 0000 07C0 0780 0F80 0F00 1E00 3C00 7800 F800 F800 FC18 FFF8 7FF8 1FF0 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 20 0 BBX 19 23 1 0 BITMAP 03E000 00F000 007800 000000 01F000 01F800 03F800 03F800 07FC00 077C00 077E00 0F3E00 0E3E00 0E3F00 1C1F00 1FFF00 3FFF80 3FFF80 380FC0 7807C0 7007C0 7003E0 E003E0 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 20 0 BBX 19 23 1 0 BITMAP 007C00 00F000 01E000 000000 01F000 01F800 03F800 03F800 07FC00 077C00 077E00 0F3E00 0E3E00 0E3F00 1C1F00 1FFF00 3FFF80 3FFF80 380FC0 7807C0 7007C0 7003E0 E003E0 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 20 0 BBX 19 23 1 0 BITMAP 01F000 03F800 071C00 000000 01F000 01F800 03F800 03F800 07FC00 077C00 077E00 0F3E00 0E3E00 0E3F00 1C1F00 1FFF00 3FFF80 3FFF80 380FC0 7807C0 7007C0 7003E0 E003E0 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 20 0 BBX 19 23 1 0 BITMAP 03DC00 07FC00 077800 000000 01F000 01F800 03F800 03F800 07FC00 077C00 077E00 0F3E00 0E3E00 0E3F00 1C1F00 1FFF00 3FFF80 3FFF80 380FC0 7807C0 7007C0 7003E0 E003E0 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 20 0 BBX 19 23 1 0 BITMAP 039C00 039C00 039C00 000000 01F000 01F800 03F800 03F800 07FC00 077C00 077E00 0F3E00 0E3E00 0E3F00 1C1F00 1FFF00 3FFF80 3FFF80 380FC0 7807C0 7007C0 7003E0 E003E0 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 20 0 BBX 19 24 1 0 BITMAP 00C000 012000 012000 00C000 000000 01F000 01F800 03F800 03F800 07FC00 077C00 077E00 0F3E00 0E3E00 0E3F00 1C1F00 1FFF00 3FFF80 3FFF80 380FC0 7807C0 7007C0 7003E0 E003E0 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 26 0 BBX 25 19 0 0 BITMAP 003FFF00 003FFF00 007FFF00 007F0000 00FF0000 00FF0000 01DF0000 01DF0000 039FFE00 079FFE00 071FFE00 0F1F0000 0FFF0000 1FFF0000 1FFF0000 381F0000 381FFF80 701FFF80 F01FFF80 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 19 0 BBX 17 24 1 -5 BITMAP 01FF00 0FFF80 1FFF80 3F0180 7E0000 7C0000 FC0000 F80000 F80000 F80000 F80000 F80000 FC0000 7C0000 7E0000 3F8180 1FFF80 0FFF80 03FE00 00C000 018000 00E000 03E000 03C000 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 17 0 BBX 13 23 2 0 BITMAP 3E00 0F00 0780 0000 FFF0 FFF0 FFF0 F800 F800 F800 F800 F800 FFE0 FFE0 FFE0 F800 F800 F800 F800 F800 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 17 0 BBX 13 23 2 0 BITMAP 03E0 0780 0F00 0000 FFF0 FFF0 FFF0 F800 F800 F800 F800 F800 FFE0 FFE0 FFE0 F800 F800 F800 F800 F800 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 17 0 BBX 13 23 2 0 BITMAP 0F80 1FC0 38E0 0000 FFF0 FFF0 FFF0 F800 F800 F800 F800 F800 FFE0 FFE0 FFE0 F800 F800 F800 F800 F800 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 17 0 BBX 13 23 2 0 BITMAP 39C0 39C0 39C0 0000 FFF0 FFF0 FFF0 F800 F800 F800 F800 F800 FFE0 FFE0 FFE0 F800 F800 F800 F800 F800 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 9 0 BBX 7 23 3 0 BITMAP F8 3C 1E 00 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 9 0 BBX 7 23 2 0 BITMAP 3E 78 F0 00 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 9 0 BBX 9 23 4 0 BITMAP 3E00 7F00 E380 0000 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 9 0 BBX 8 23 3 0 BITMAP E7 E7 E7 00 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 21 0 BBX 21 19 0 0 BITMAP 1FFF00 1FFFC0 1FFFE0 1F07F0 1F03F0 1F01F0 1F00F8 1F00F8 FFF0F8 FFF0F8 FFF0F8 1F00F8 1F00F8 1F01F0 1F01F0 1F07E0 1FFFE0 1FFF80 1FFE00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 20 0 BBX 16 23 2 0 BITMAP 07B8 0FF8 0EF0 0000 F007 F807 FC07 FE07 FE07 FF07 FF87 FFC7 EFC7 E7E7 E3F7 E3FF E1FF E0FF E07F E07F E03F E01F E00F ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 22 0 BBX 20 23 1 0 BITMAP 03E000 00F000 007800 000000 03FC00 0FFF00 1FFF80 3F0FC0 7E07E0 7C03E0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 7C03E0 7E07E0 3F0FC0 1FFF80 0FFF00 03FC00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 22 0 BBX 20 23 1 0 BITMAP 003E00 007800 00F000 000000 03FC00 0FFF00 1FFF80 3F0FC0 7E07E0 7C03E0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 7C03E0 7E07E0 3F0FC0 1FFF80 0FFF00 03FC00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 22 0 BBX 20 23 1 0 BITMAP 00F800 01FC00 038E00 000000 03FC00 0FFF00 1FFF80 3F0FC0 7E07E0 7C03E0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 7C03E0 7E07E0 3F0FC0 1FFF80 0FFF00 03FC00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 22 0 BBX 20 23 1 0 BITMAP 01EE00 03FE00 03BC00 000000 03FC00 0FFF00 1FFF80 3F0FC0 7E07E0 7C03E0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 7C03E0 7E07E0 3F0FC0 1FFF80 0FFF00 03FC00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 22 0 BBX 20 23 1 0 BITMAP 039C00 039C00 039C00 000000 03FC00 0FFF00 1FFF80 3F0FC0 7E07E0 7C03E0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 7C03E0 7E07E0 3F0FC0 1FFF80 0FFF00 03FC00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 18 0 BBX 15 16 1 0 BITMAP 600C 600C F01E 783C 3C78 1EF0 0FE0 07C0 07C0 0FE0 1EF0 3C78 783C F01E 600C 600C ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 22 0 BBX 20 19 1 0 BITMAP 03FCF0 0FFFE0 1FFFC0 3F0FC0 7E0FE0 7C1FE0 F81DF0 F83DF0 F879F0 F8F1F0 F9E1F0 FBC1F0 FB81F0 7F83E0 7F07E0 3F0FC0 3FFF80 7FFF00 F3FC00 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 20 0 BBX 16 23 2 0 BITMAP 0F80 03C0 01E0 0000 F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F FC3F 7C3E 7FFE 1FFC 07F0 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 20 0 BBX 16 23 2 0 BITMAP 00F8 01E0 03C0 0000 F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F FC3F 7C3E 7FFE 1FFC 07F0 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 20 0 BBX 16 23 2 0 BITMAP 03E0 07F0 0E38 0000 F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F FC3F 7C3E 7FFE 1FFC 07F0 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 20 0 BBX 16 23 2 0 BITMAP 0E70 0E70 0E70 0000 F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F FC3F 7C3E 7FFE 1FFC 07F0 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 19 0 BBX 17 23 1 0 BITMAP 00F800 01E000 03C000 000000 FC0780 7C0700 7E0F00 3E0E00 3F1C00 1F1C00 1FB800 0FF800 0FF000 07F000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 17 0 BBX 14 19 2 0 BITMAP F800 F800 F800 FFE0 FFF8 FFFC F8FC F87C F87C F87C F8FC F9F8 FFF8 FFF0 FFC0 F800 F800 F800 F800 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 19 0 BBX 16 20 2 0 BITMAP 0FC0 3FF0 7FF0 78F0 F870 F8F0 F8E0 F9C0 F9E0 FBF0 FBF8 F9FC F9FE F87F F83F F81F F81F F9FF F9FE F9F8 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 1 0 BITMAP 1F00 0780 03C0 0000 1FC0 7FF0 7FF8 41F8 00F8 00F8 1FF8 7FF8 FFF8 F8F8 F8F8 FFFC 7FFC 3E7C ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 1 0 BITMAP 01F0 03C0 0780 0000 1FC0 7FF0 7FF8 41F8 00F8 00F8 1FF8 7FF8 FFF8 F8F8 F8F8 FFFC 7FFC 3E7C ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 1 0 BITMAP 07C0 0FE0 1C70 0000 1FC0 7FF0 7FF8 41F8 00F8 00F8 1FF8 7FF8 FFF8 F8F8 F8F8 FFFC 7FFC 3E7C ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 1 0 BITMAP 0F70 1FF0 1DE0 0000 1FC0 7FF0 7FF8 41F8 00F8 00F8 1FF8 7FF8 FFF8 F8F8 F8F8 FFFC 7FFC 3E7C ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 1 0 BITMAP 1CE0 1CE0 1CE0 0000 1FC0 7FF0 7FF8 41F8 00F8 00F8 1FF8 7FF8 FFF8 F8F8 F8F8 FFFC 7FFC 3E7C ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 0 BITMAP 0300 0480 0480 0300 0000 1FC0 7FF0 7FF8 41F8 00F8 00F8 1FF8 7FF8 FFF8 F8F8 F8F8 FFFC 7FFC 3E7C ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 24 0 BBX 22 14 1 0 BITMAP 1F87C0 7FFFF0 7FFFF8 60FCF8 00F87C 00F87C 1FFFFC 7FFFFC FFFFFC F8F800 F8FC04 FFBFFC 7F9FFC 3E0FF8 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 14 0 BBX 12 19 1 -5 BITMAP 0FE0 1FF0 3FF0 7E10 FC00 F800 F800 F800 F800 FC00 7E10 7FF0 3FF0 0FF0 0300 0600 0380 0F80 0F00 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 1 0 BITMAP 1F00 0780 03C0 0000 0FE0 3FF0 7FF8 7CF8 F87C FFFC FFFC FFFC F800 FC00 7E04 3FFC 1FFC 07F8 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 1 0 BITMAP 01F0 03C0 0780 0000 0FE0 3FF0 7FF8 7CF8 F87C FFFC FFFC FFFC F800 FC00 7E04 3FFC 1FFC 07F8 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 1 0 BITMAP 07C0 0FE0 1C70 0000 0FE0 3FF0 7FF8 7CF8 F87C FFFC FFFC FFFC F800 FC00 7E04 3FFC 1FFC 07F8 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 1 0 BITMAP 1CE0 1CE0 1CE0 0000 0FE0 3FF0 7FF8 7CF8 F87C FFFC FFFC FFFC F800 FC00 7E04 3FFC 1FFC 07F8 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 9 0 BBX 7 18 4 0 BITMAP F8 3C 1E 00 3E 3E 3E 3E 3E 3E 3E 3E 3E 3E 3E 3E 3E 3E ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 9 0 BBX 7 18 2 0 BITMAP 3E 78 F0 00 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 9 0 BBX 9 18 4 0 BITMAP 3E00 7F00 E380 0000 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 9 0 BBX 8 18 3 0 BITMAP E7 E7 E7 00 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C 7C ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 18 0 BBX 15 23 1 0 BITMAP 0080 01C0 03E0 F780 FF80 FFC0 1FE0 3FF0 79F8 70FC 2FFC 3FFC 7FFE 7C7E F83E F83E F83E F83E F83C 7C7C 7FF8 3FF0 0FC0 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 18 0 BBX 14 18 2 0 BITMAP 0F70 1FF0 1DE0 0000 F9F0 FBF8 FFFC FFFC FC7C F87C F87C F87C F87C F87C F87C F87C F87C F87C ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 18 0 BBX 16 18 1 0 BITMAP 0F80 03C0 01E0 0000 07E0 1FF8 7FFE 7C3E FC3F F81F F81F F81F F81F FC3F 7C3E 7FFE 1FF8 07E0 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 18 0 BBX 16 18 1 0 BITMAP 00F8 01E0 03C0 0000 07E0 1FF8 7FFE 7C3E FC3F F81F F81F F81F F81F FC3F 7C3E 7FFE 1FF8 07E0 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 18 0 BBX 16 18 1 0 BITMAP 03E0 07F0 0E38 0000 07E0 1FF8 7FFE 7C3E FC3F F81F F81F F81F F81F FC3F 7C3E 7FFE 1FF8 07E0 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 18 0 BBX 16 18 1 0 BITMAP 07B8 0FF8 0EF0 0000 07E0 1FF8 7FFE 7C3E FC3F F81F F81F F81F F81F FC3F 7C3E 7FFE 1FF8 07E0 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 18 0 BBX 16 18 1 0 BITMAP 0E70 0E70 0E70 0000 07E0 1FF8 7FFE 7C3E FC3F F81F F81F F81F F81F FC3F 7C3E 7FFE 1FF8 07E0 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 18 0 BBX 15 16 1 0 BITMAP 0380 0380 0380 0000 0000 0000 FFFE FFFE FFFE 0000 0000 0000 0000 0380 0380 0380 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 18 0 BBX 16 14 1 0 BITMAP 07EF 1FFE 7FFE 7C7E FCFF F9FF FBDF FBDF FF9F FF3F 7E3E 7FFE 7FF8 F7E0 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 18 0 BBX 14 18 2 0 BITMAP 1F00 0780 03C0 0000 F87C F87C F87C F87C F87C F87C F87C F87C F87C F87C F8FC FFFC 7F7C 3E7C ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 18 0 BBX 14 18 2 0 BITMAP 01F0 03C0 0780 0000 F87C F87C F87C F87C F87C F87C F87C F87C F87C F87C F8FC FFFC 7F7C 3E7C ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 18 0 BBX 14 18 2 0 BITMAP 07C0 0FE0 1C70 0000 F87C F87C F87C F87C F87C F87C F87C F87C F87C F87C F8FC FFFC 7F7C 3E7C ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 18 0 BBX 14 18 2 0 BITMAP 1CE0 1CE0 1CE0 0000 F87C F87C F87C F87C F87C F87C F87C F87C F87C F87C F8FC FFFC 7F7C 3E7C ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 17 0 BBX 16 23 0 -5 BITMAP 01F0 03C0 0780 0000 FC0F 7C0E 7C1E 7E1C 3E3C 3F38 1F78 1F70 1FF0 0FE0 0FE0 07C0 07C0 0780 0780 0F00 0F00 1F00 3E00 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 18 0 BBX 15 24 2 -5 BITMAP F800 F800 F800 F800 F800 F9F0 FBF8 FBFC FC7C F83E F83E F83E F83E F83E F87E FC7C FFFC FFF8 F9F0 F800 F800 F800 F800 F800 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 17 0 BBX 16 23 0 -5 BITMAP 0E70 0E70 0E70 0000 FC0F 7C0E 7C1E 7E1C 3E3C 3F38 1F78 1F70 1FF0 0FE0 0FE0 07C0 07C0 0780 0780 0F00 0F00 1F00 3E00 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 16 20 0 0 BITMAP 0FFF 1FFF 3FFF 3E1F 3E1F 3E1F FFDF FFDF FFDF 3E1F 3E1F 3E1F 3E1F 3E1F 3E1F 3E1F 3E1F 3E1F 3E1F 3E1F ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 11 3 1 7 BITMAP FFE0 FFE0 FFE0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 14 23 2 -4 BITMAP 0780 0780 0780 0780 0780 0780 FFFC FFFC FFFC 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 14 23 2 0 BITMAP 1C70 0FE0 07C0 0000 FFFC FFFC FFFC 00FC 01F8 01F8 03F0 07E0 07E0 0FC0 1F80 1F80 3F00 7E00 7E00 FC00 FFFC FFFC FFFC ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 26 0 BBX 24 14 1 0 BITMAP 0FC1F0 1FF3FC 7FFFFE 7C7F3E FC3E1F F83E1F F83FFF F83FFF F83FFF FC3E00 7C7F03 7FFFFF 1FFFFF 0FE1FE ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 17 23 1 0 BITMAP 073800 073800 073800 000000 FC0780 7C0700 7E0F00 3E0E00 3F1C00 1F1C00 1FB800 0FF800 0FF000 07F000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 14 2 0 BITMAP F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 11 20 0 0 BITMAP 1F00 1F00 1F00 1F00 1F00 1F00 1F20 1FE0 1FE0 1FC0 7F00 FF00 FF00 DF00 1F00 1F00 1F00 1F00 1F00 1F00 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 16 19 0 0 BITMAP 1F00 1F00 1F00 1F00 1F00 1F20 1FE0 1FE0 1FC0 3F00 FF00 FF00 FF00 9F00 1F00 1F00 1FFF 1FFF 1FFF ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 14 23 2 -4 BITMAP 0780 0780 0780 0780 0780 0780 FFFC FFFC FFFC 0780 0780 0780 0780 0780 FFFC FFFC FFFC 0780 0780 0780 0780 0780 0780 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 16 20 0 0 BITMAP 07F0 1FF0 1FF0 3E00 3E00 3E00 FFFF FFFF FFFF 3E1F 3E1F 3E1F 3E1F 3E1F 3E1F 3E1F 3E1F 3E1F 3E1F 3E1F ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 1 BITMAP 20 E0 70 78 3C 1E 1F 3C 78 70 E0 40 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 29 0 BBX 26 19 1 0 BITMAP 03FFFF80 0FFFFF80 1FFFFF80 3F0FC000 7E07C000 7C07C000 F807C000 F807C000 F807FF00 F807FF00 F807FF00 F807C000 F807C000 7C07C000 7E07C000 3F0FC000 1FFFFFC0 0FFFFFC0 03FFFFC0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 26 0 BBX 24 2 1 7 BITMAP FFFFFF FFFFFF ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 9 3 4 17 BITMAP E380 7F00 3E00 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 5 3 6 -4 BITMAP 70 E0 78 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 10 3 5 17 BITMAP 3DC0 7300 EE00 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 1 BITMAP 02 07 0E 1E 3C F8 78 3C 1E 0E 07 04 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 4 3 7 17 BITMAP F0 F0 F0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 9 3 4 17 BITMAP E380 7F00 3E00 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 10 10 4 3 BITMAP FFC0 FFC0 FFC0 FFC0 FFC0 FFC0 FFC0 FFC0 FFC0 FFC0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 9 3 4 17 BITMAP 7B80 FF80 EF00 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 9 3 4 17 BITMAP 3E00 7F00 E380 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 12 9 1 11 BITMAP 1830 78F0 70E0 E1C0 F9F0 F9F0 F9F0 F9F0 F9F0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 11 BITMAP F8 F8 F8 F8 F8 70 70 70 70 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 13 18 2 0 BITMAP 38E0 1FC0 0F80 0000 1FE0 7FF0 FFF0 F830 F800 FF00 7FC0 1FF0 07F8 01F8 C0F8 FFF0 FFF0 7FC0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 4 4 6 16 BITMAP 60 90 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 -4 BITMAP F8 F8 F8 F8 F8 38 70 F0 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 14 23 3 -4 BITMAP 00FC 03FC 07FC 0780 0F80 0F00 1F00 1F00 7FC0 7FC0 7FC0 3E00 3E00 3E00 3E00 7C00 7C00 7C00 7C00 7C00 F800 F800 F800 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 23 10 0 9 BITMAP FFEF1E FFEFBE FFEFBE 1F0FBE 1F0FFE 1F0FFE 1F0FFE 1F0FFE 1F0EBE 1F0E3E ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 18 19 -7 0 BITMAP 0003C0 000780 000F00 000E00 001E00 003C00 007800 007000 00F000 01E000 03C000 038000 078000 0F0000 1E0000 1C0000 3C0000 780000 F00000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 7 3 4 17 BITMAP F8 3C 1E ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 34 0 BBX 33 19 1 0 BITMAP 3E00F00000 7F01E00000 7F01C00000 E783C00000 E387800000 E38F000000 E78E000000 7F1E000000 7F3C000000 3E78000000 0071E03E00 00E7F87F00 01EFFCFF80 03CF3CE380 078E1CE380 070F3CE380 0F0FFCFF80 1E07F87F00 3C01E03E00 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 26 0 BBX 20 3 3 0 BITMAP E0E070 E0E070 E0E070 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 12 9 1 11 BITMAP F9F0 F9F0 F9F0 F9F0 F9F0 3870 70E0 F1E0 C180 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 14 23 1 0 BITMAP 1C70 0FE0 07C0 0000 0FF8 3FF8 7FF8 FC18 F800 FC00 FE00 7F80 7FE0 3FF0 0FF8 03FC 00FC 007C 007C C0FC FFF8 FFF0 FFC0 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 12 9 1 -4 BITMAP F9F0 F9F0 F9F0 F9F0 F9F0 3870 70E0 F1E0 C180 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 13 18 2 0 BITMAP 38E0 1FC0 0F80 0000 FFF8 FFF8 FFF8 03F8 07F0 0FE0 0FC0 1F80 3F00 7F00 FE00 FFF8 FFF8 FFF8 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/luBS24.bdf100644 1750 1750 152122 5413747521 15046 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Bold-R-Normal-Sans-34-240-100-100-P-216-ISO8859-1 SIZE 24 100 100 FONTBOUNDINGBOX 86 40 -24 -7 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Bold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 34 POINT_SIZE 240 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 216 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 31 FONT_DESCENT 8 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 12 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 12 0 BBX 7 25 2 0 BITMAP FE FE FE FE FE FE FE FE FC FC FC 7C 7C 7C 78 78 78 00 00 00 FE FE FE FE FE ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 18 0 BBX 16 11 1 15 BITMAP FE7F FE7F FC7F FC7E FC7E FC7E 7C3E 7C3E 783C 783C 783C ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 23 0 BBX 21 25 1 0 BITMAP 00E1E0 00E1C0 00E1C0 00E1C0 01C3C0 01C380 01C380 3FFFF8 3FFFF8 3FFFF0 038700 038700 070700 070E00 070E00 FFFFE0 FFFFE0 FFFFE0 0E1C00 0E1C00 1C1C00 1C3800 1C3800 1C3800 383800 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 23 0 BBX 17 33 3 -4 BITMAP 01E000 01E000 01E000 01E000 07FE00 1FFF00 3FFF00 7FFF00 7EE100 7CE000 7EE000 7EE000 7FE000 3FE000 3FE000 1FF800 07FC00 03FE00 01FF00 01FF00 01FF80 01DF80 01DF80 81DF80 E1DF80 FFFF00 FFFF00 FFFE00 3FF800 01E000 01E000 01E000 01E000 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 30 0 BBX 29 25 1 0 BITMAP 0F8007E0 3FE00F80 7FF00F80 7FF01F00 FDF83E00 F8F87C00 F8F87C00 F8F8F800 FDF9F000 7FF3E000 7FF3E000 3FE7C000 0F8F8000 001F0F80 003F3FE0 003E7FF0 007CFFF8 00F8FDF8 01F8F8F8 01F0F8F8 03E0FDF8 07C0FFF8 0F807FF0 0F803FE0 3F000F80 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 27 0 BBX 25 25 1 0 BITMAP 00FE0000 03FF8000 07FFC000 0FFFE000 0FE7E000 0FE7E000 0FE7E000 07EFC000 07FFC000 03FF0000 03FE1F80 0FFE1F80 3FFF1F80 7FFF1F80 7E7F9F00 FE3FDF00 FE3FFE00 FE1FFE00 FE1FFC00 FF0FF800 7F87F000 7FFFF800 3FFFFC00 0FFEFE00 03F87F00 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 1 14 BITMAP FE FE FE FE FE FE FE 1E 3C 3C F8 E0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 13 0 BBX 10 32 1 -6 BITMAP 0040 01C0 03C0 07C0 0FC0 1F80 1F80 3F00 3F00 7F00 7E00 7E00 FE00 FE00 FE00 FE00 FE00 FE00 FE00 FE00 7E00 7E00 7F00 3F00 3F00 1F80 1F80 0FC0 07C0 03C0 01C0 0040 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 13 0 BBX 10 32 2 -6 BITMAP 8000 E000 F000 F800 FC00 7E00 7E00 3F00 3F00 3F80 1F80 1F80 1FC0 1FC0 1FC0 1FC0 1FC0 1FC0 1FC0 1FC0 1F80 1F80 3F80 3F00 3F00 7E00 7E00 FC00 F800 F000 E000 8000 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 16 0 BBX 13 13 1 12 BITMAP 0F80 0700 4710 6730 7DF0 F8F8 F8F8 0880 1DC0 3DE0 7DF0 18C0 0880 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 23 0 BBX 20 21 2 0 BITMAP 00F000 00F000 00F000 00F000 00F000 00F000 00F000 00F000 FFFFF0 FFFFF0 FFFFF0 FFFFF0 00F000 00F000 00F000 00F000 00F000 00F000 00F000 00F000 00F000 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 12 0 BBX 7 13 2 -6 BITMAP FE FE FE FE FE FE FE 1E 1E 3C 3C F8 E0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 23 0 BBX 20 4 2 8 BITMAP FFFFF0 FFFFF0 FFFFF0 FFFFF0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 12 0 BBX 7 7 2 0 BITMAP FE FE FE FE FE FE FE ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 20 0 BBX 20 32 0 -6 BITMAP 0001F0 0003F0 0003E0 0007E0 0007C0 000FC0 000F80 001F80 001F00 003F00 003E00 007E00 007C00 00FC00 00F800 01F800 01F800 01F000 03F000 03E000 07E000 07C000 0FC000 0F8000 1F8000 1F0000 3F0000 3E0000 7E0000 7C0000 FC0000 F80000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 23 0 BBX 21 25 1 0 BITMAP 01FC00 07FF00 0FFF80 1FFFC0 3F8FE0 3F07E0 7F07F0 7E03F0 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 7E03F0 7F07F0 3F07E0 3F8FE0 1FFFC0 0FFF80 07FF00 01FC00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 23 0 BBX 10 25 5 0 BITMAP FFC0 FFC0 FFC0 FFC0 1FC0 1FC0 1FC0 1FC0 1FC0 1FC0 1FC0 1FC0 1FC0 1FC0 1FC0 1FC0 1FC0 1FC0 1FC0 1FC0 1FC0 1FC0 1FC0 1FC0 1FC0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 23 0 BBX 18 25 2 0 BITMAP 0FF800 7FFE00 7FFF00 7FFF80 707FC0 403FC0 001FC0 001FC0 001FC0 003F80 003F80 007F00 00FE00 01FC00 03F800 07F000 0FC000 1F8000 3F0000 FE0000 FFFFC0 FFFFC0 FFFFC0 FFFFC0 FFFFC0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 23 0 BBX 18 25 3 0 BITMAP 1FF000 FFFC00 FFFF00 FFFF00 C07F80 003F80 003F80 003F80 007F00 00FF00 3FFC00 3FF000 3FFC00 3FFE00 00FF00 003F80 001FC0 001FC0 001FC0 003FC0 C07FC0 FFFF80 FFFF00 FFFE00 7FF000 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 23 0 BBX 21 25 1 0 BITMAP 000FE0 001FE0 003FE0 007FE0 00FFE0 01FFE0 03FFE0 07EFE0 07CFE0 0F8FE0 1F0FE0 3E0FE0 7E0FE0 FC0FE0 FFFFF8 FFFFF8 FFFFF8 FFFFF8 FFFFF8 000FE0 000FE0 000FE0 000FE0 000FE0 000FE0 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 23 0 BBX 17 25 4 0 BITMAP FFFF00 FFFF00 FFFF00 FFFF00 FFFF00 F00000 F00000 F00000 F00000 FFC000 FFF000 FFFC00 FFFE00 03FF00 00FF00 007F80 003F80 003F80 003F80 007F80 C0FF00 FFFF00 FFFE00 FFF800 3FE000 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 23 0 BBX 20 25 1 0 BITMAP 00FF80 03FFE0 0FFFE0 1FFFE0 3FE060 3F8000 7F0000 7F0000 7E0000 FE3E00 FEFF80 FFFFC0 FFFFE0 FF0FE0 FF0FF0 FE07F0 FE07F0 7E07F0 7E07F0 7F0FF0 3F0FE0 1FFFC0 1FFF80 07FF00 01FC00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 23 0 BBX 18 25 4 0 BITMAP FFFFC0 FFFFC0 FFFFC0 FFFFC0 FFFFC0 000FC0 001F80 001F00 003E00 007E00 00FC00 01F800 01F000 03F000 07E000 07C000 0FC000 1FC000 1F8000 3F8000 3F8000 3F0000 7F0000 7F0000 7F0000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 23 0 BBX 20 25 2 0 BITMAP 03FC00 0FFF80 1FFFC0 3FFFE0 7F0FE0 7E07E0 7E07E0 7F07E0 3F87C0 3FEF80 1FFF00 07FE00 0FFF80 1FFFC0 3F3FE0 7E0FE0 FE07F0 FE03F0 FE03F0 FF03F0 FF87E0 7FFFE0 3FFFC0 1FFF00 03FC00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 23 0 BBX 20 25 2 0 BITMAP 03F800 0FFE00 1FFF80 3FFF80 7F0FC0 7F0FE0 FE07E0 FE07E0 FE07F0 FE07F0 FF0FF0 7F0FF0 7FFFF0 3FFFF0 1FF7F0 07C7F0 0007E0 000FE0 000FE0 001FC0 607FC0 7FFF80 7FFF00 7FFC00 1FF000 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 12 0 BBX 7 18 2 0 BITMAP FE FE FE FE FE FE FE 00 00 00 00 FE FE FE FE FE FE FE ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 12 0 BBX 7 24 2 -6 BITMAP FE FE FE FE FE FE FE 00 00 00 00 00 FE FE FE FE FE FE 1E 1E 3C 3C F8 E0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 23 0 BBX 20 21 2 0 BITMAP 000010 000070 0001F0 0007F0 001FF0 007FC0 01FF00 03FC00 0FF000 3FC000 FF8000 3FC000 0FF000 03FC00 01FF00 007FC0 001FF0 0007F0 0001F0 000070 000010 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 23 0 BBX 20 13 2 3 BITMAP FFFFF0 FFFFF0 FFFFF0 FFFFF0 000000 000000 000000 000000 000000 FFFFF0 FFFFF0 FFFFF0 FFFFF0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 23 0 BBX 20 21 2 0 BITMAP 800000 E00000 F80000 FE0000 FF8000 3FE000 0FF800 03FC00 00FF00 003FC0 000FF0 003FC0 00FF00 03FC00 0FF800 3FE000 FF8000 FE0000 F80000 E00000 800000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 19 0 BBX 17 25 1 0 BITMAP 3FF000 FFFC00 FFFF00 FFFF00 E07F80 803F80 003F80 003F80 003F00 007E00 007C00 00F800 01F800 03F000 07E000 0FE000 0FE000 0FE000 000000 000000 0FE000 0FE000 0FE000 0FE000 0FE000 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 28 0 BBX 27 25 3 0 BITMAP 000FF000 007FFC00 01FFFE00 03F01F00 07C00780 0F0003C0 1E0001C0 3C0FF1E0 383FE0E0 787860E0 70F060E0 F0E0E0E0 E1E1E0E0 E1C1C1E0 E3C3C1C0 E3C7C3C0 E3CEC780 E3FCFF00 73F8FE00 79E0F800 3C000000 3F030000 1FFF0000 07FF8000 01FC0000 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 26 0 BBX 25 25 1 0 BITMAP 007F0000 007F8000 00FF8000 00FF8000 00FFC000 01FFC000 01FFE000 01EFE000 03CFE000 03CFF000 07C7F000 0787F000 0787F800 0F83F800 0F03FC00 0FFFFC00 1FFFFC00 1FFFFE00 1FFFFE00 3C00FE00 3C007F00 7C007F00 78003F80 78003F80 F0003F80 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 23 0 BBX 19 25 3 0 BITMAP FFFC00 FFFF00 FFFF80 FFFFC0 FE3FC0 FE1FC0 FE1FC0 FE1FC0 FE3F80 FE3F00 FFFE00 FFF800 FFFC00 FFFF00 FE3FC0 FE1FC0 FE0FE0 FE0FE0 FE0FE0 FE0FE0 FE1FE0 FFFFC0 FFFFC0 FFFF80 FFFE00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 25 0 BBX 23 25 1 0 BITMAP 003FF8 01FFFE 07FFFE 1FFFFE 1FF00E 3FC000 7F8000 7F0000 7F0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FF0000 7F0000 7F8000 7FC002 3FF00E 1FFFFE 1FFFFE 07FFFE 03FFFE 007FE0 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 28 0 BBX 24 25 3 0 BITMAP FFFF00 FFFFE0 FFFFF0 FFFFF8 FE07FC FE01FE FE01FE FE00FE FE007F FE007F FE007F FE007F FE007F FE007F FE007F FE007F FE00FE FE00FE FE01FE FE07FC FFFFFC FFFFF8 FFFFF0 FFFFC0 FFFF00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 22 0 BBX 18 25 3 0 BITMAP FFFF80 FFFF80 FFFF80 FFFF80 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FFFE00 FFFE00 FFFE00 FFFE00 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FFFFC0 FFFFC0 FFFFC0 FFFFC0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 20 0 BBX 17 25 3 0 BITMAP FFFF80 FFFF80 FFFF80 FFFF80 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FFFE00 FFFE00 FFFE00 FFFE00 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 26 0 BBX 22 25 1 0 BITMAP 007FFC 03FFFC 07FFFC 1FFFFC 3FF00C 3FC000 7F8000 7F0000 FF0000 FE0000 FE0000 FE0000 FE0000 FE01FC FE01FC FE01FC FF01FC 7F01FC 7F81FC 3FC1FC 3FF1FC 1FFFFC 0FFFFC 03FFFC 007FE0 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 28 0 BBX 22 25 3 0 BITMAP FE01FC FE01FC FE01FC FE01FC FE01FC FE01FC FE01FC FE01FC FE01FC FE01FC FFFFFC FFFFFC FFFFFC FFFFFC FE01FC FE01FC FE01FC FE01FC FE01FC FE01FC FE01FC FE01FC FE01FC FE01FC FE01FC ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 12 0 BBX 7 25 3 0 BITMAP FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 17 0 BBX 14 31 0 -6 BITMAP 01FC 01FC 01FC 01FC 01FC 01FC 01FC 01FC 01FC 01FC 01FC 01FC 01FC 01FC 01FC 01FC 01FC 01FC 01FC 01FC 01FC 01FC 01FC 01FC 01FC 01FC 83F8 FFF8 FFF0 FFF0 7FC0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 26 0 BBX 23 25 3 0 BITMAP FE01F0 FE03E0 FE03C0 FE07C0 FE0F80 FE0F00 FE1F00 FE3E00 FE7C00 FE7C00 FEF800 FFFC00 FFFC00 FFFE00 FFFF00 FEFF00 FE7F80 FE7FC0 FE3FC0 FE1FE0 FE1FF0 FE0FF0 FE0FF8 FE07FC FE03FE ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 21 0 BBX 18 25 3 0 BITMAP FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FFFFC0 FFFFC0 FFFFC0 FFFFC0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 32 0 BBX 26 25 3 0 BITMAP FF803FC0 FF803FC0 FF807FC0 FFC07FC0 FFC07FC0 FFC0FFC0 FFE0FFC0 FFE0FFC0 FFE1FFC0 FFF1FFC0 FBF1FFC0 FBF3DFC0 FBFBDFC0 F9FBDFC0 F9FF9FC0 F9FF9FC0 F8FF9FC0 F8FF9FC0 F8FF1FC0 F8FF1FC0 F87F1FC0 F87E1FC0 F87E1FC0 F8001FC0 F8001FC0 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 27 0 BBX 21 25 3 0 BITMAP FC00F8 FE00F8 FF00F8 FF00F8 FF80F8 FFC0F8 FFE0F8 FFE0F8 FFF0F8 FFF8F8 FFF8F8 FBFCF8 FBFEF8 F9FEF8 F8FFF8 F8FFF8 F87FF8 F83FF8 F83FF8 F81FF8 F80FF8 F807F8 F807F8 F803F8 F801F8 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 29 0 BBX 27 25 1 0 BITMAP 007FC000 03FFF800 07FFFC00 0FFFFE00 1FE0FF00 3FC07F80 7F803FC0 7F001FC0 7F001FC0 FE000FE0 FE000FE0 FE000FE0 FE000FE0 FE000FE0 FE000FE0 FE000FE0 7F001FC0 7F001FC0 7F803FC0 3FC07F80 1FE0FF00 0FFFFE00 07FFFC00 03FFF800 007FC000 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 22 0 BBX 19 25 3 0 BITMAP FFFE00 FFFF80 FFFFC0 FFFFE0 FE1FE0 FE0FE0 FE0FE0 FE0FE0 FE0FE0 FE1FE0 FE3FC0 FFFFC0 FFFF80 FFFF00 FFF800 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 29 0 BBX 31 31 1 -6 BITMAP 007FC000 03FFF800 07FFFC00 0FFFFE00 1FE0FF00 3FC07F80 7F803FC0 7F001FC0 7F001FC0 FE000FE0 FE000FE0 FE000FE0 FE000FE0 FE000FE0 FE000FE0 FE000FE0 7F001FC0 7F001FC0 7F803FC0 3FC07F80 1FE0FF00 0FFFFE00 07FFFC00 03FFF800 007FFC00 0001FFF0 00007FFE 00003FFC 00001FF8 000007F0 000000E0 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 25 0 BBX 23 25 3 0 BITMAP FFFE00 FFFF80 FFFFC0 FFFFC0 FE1FE0 FE0FE0 FE0FE0 FE0FE0 FE0FE0 FE1FC0 FE3FC0 FFFF80 FFFF00 FFFE00 FFFF00 FE7F80 FE3F80 FE3FC0 FE1FC0 FE1FE0 FE0FF0 FE0FF0 FE07F8 FE07FC FE03FE ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 20 0 BBX 18 25 1 0 BITMAP 07FF00 1FFF00 3FFF00 7FFF00 FF0300 FE0000 FE0000 FF0000 FFC000 FFE000 7FF800 3FFC00 1FFF00 0FFF80 03FF80 00FFC0 007FC0 001FC0 001FC0 001FC0 C03F80 FFFF80 FFFF00 FFFE00 FFF000 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 25 0 BBX 25 25 0 0 BITMAP FFFFFF80 FFFFFF80 FFFFFF80 FFFFFF80 007F0000 007F0000 007F0000 007F0000 007F0000 007F0000 007F0000 007F0000 007F0000 007F0000 007F0000 007F0000 007F0000 007F0000 007F0000 007F0000 007F0000 007F0000 007F0000 007F0000 007F0000 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 27 0 BBX 21 25 3 0 BITMAP FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 7F07F0 7F8FF0 3FFFE0 1FFFE0 0FFF80 01FE00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 25 0 BBX 24 25 0 0 BITMAP FE000F FF001E 7F001E 7F003E 7F803C 3F803C 3F807C 3FC078 1FC078 1FE0F8 1FE0F0 0FE0F0 0FF1F0 07F1E0 07F1E0 07FBE0 03FBC0 03FBC0 03FFC0 01FF80 01FF80 01FF80 00FF00 00FF00 00FE00 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 32 0 BBX 31 25 1 0 BITMAP FE03E01E FE07F01E FE07F03C FF07F03C 7F07F03C 7F07F03C 7F0FF878 7F0FF878 7F8FF878 3F8FF878 3F9FF8F0 3F9EFCF0 3FDEFCF0 1FDEFCF0 1FDEFDE0 1FFCFFE0 1FFC7FE0 0FFC7FE0 0FFC7FE0 0FF87FC0 0FF83FC0 07F83FC0 07F83FC0 07F83F80 07F03F80 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 24 0 BBX 22 25 1 0 BITMAP FF00FC 7F80F8 7F81F0 3FC1E0 1FE3E0 1FE7C0 0FF780 0FFF80 07FF00 07FF00 03FE00 01FE00 01FE00 01FF00 01FF00 03FF80 07FF80 07FFC0 0F9FE0 0F1FE0 1F0FF0 3E0FF0 3C07F8 7C07F8 F803FC ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 25 0 BBX 23 25 1 0 BITMAP FF003E FF003C 7F807C 3FC0F8 3FC0F0 1FE1F0 1FE1E0 0FF3E0 0FF7C0 07FFC0 07FF80 03FF80 03FF00 01FE00 00FE00 00FE00 00FE00 00FE00 00FE00 00FE00 00FE00 00FE00 00FE00 00FE00 00FE00 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 23 0 BBX 19 25 2 0 BITMAP 7FFFE0 7FFFE0 7FFFE0 7FFFE0 001FE0 003FC0 007FC0 007F80 00FF00 01FF00 01FE00 03FC00 07FC00 07F800 0FF000 1FF000 1FE000 3FC000 7FC000 7F8000 FF0000 FFFFE0 FFFFE0 FFFFE0 FFFFE0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 13 0 BBX 9 32 2 -6 BITMAP FF80 FF80 FF80 FF80 FC00 FC00 FC00 FC00 FC00 FC00 FC00 FC00 FC00 FC00 FC00 FC00 FC00 FC00 FC00 FC00 FC00 FC00 FC00 FC00 FC00 FC00 FC00 FC00 FF80 FF80 FF80 FF80 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 20 0 BBX 20 32 0 -6 BITMAP F80000 FC0000 7C0000 7E0000 3E0000 3F0000 1F0000 1F8000 0F8000 0FC000 07C000 07E000 03E000 03F000 01F000 01F800 01F800 00F800 00FC00 007C00 007E00 003E00 003F00 001F00 001F80 000F80 000FC0 0007C0 0007E0 0003E0 0003F0 0001F0 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 13 0 BBX 9 32 2 -6 BITMAP FF80 FF80 FF80 FF80 1F80 1F80 1F80 1F80 1F80 1F80 1F80 1F80 1F80 1F80 1F80 1F80 1F80 1F80 1F80 1F80 1F80 1F80 1F80 1F80 1F80 1F80 1F80 1F80 FF80 FF80 FF80 FF80 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 23 0 BBX 20 21 2 4 BITMAP 002000 006000 006000 00F000 00F000 01F800 01F800 03FC00 03FC00 07FE00 079E00 0F9F00 0F0F00 1F0F80 1E0780 3E07C0 3C03C0 3C03C0 7C03E0 7801E0 F801F0 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 17 0 BBX 15 4 1 -5 BITMAP FFFE FFFE FFFE FFFE ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 1 14 BITMAP 0E 3E 78 78 F0 FE FE FE FE FE FE FE ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 21 0 BBX 19 18 1 0 BITMAP 0FF800 3FFE00 3FFF00 3FFF80 307F80 203F80 003F80 0FFF80 3FFF80 7FFF80 FFFF80 FF3F80 FE3F80 FE7F80 FFFFE0 7FFFE0 3FDFE0 1F8FE0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 24 0 BBX 20 26 3 0 BITMAP FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE3F00 FE7F80 FEFFC0 FFFFE0 FFFFE0 FF0FF0 FE0FF0 FE07F0 FE07F0 FE07F0 FE07F0 FE07F0 FE0FE0 FF1FE0 FFFFE0 FFFFC0 FDFF80 FC7E00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 19 0 BBX 16 18 1 0 BITMAP 03FE 0FFF 1FFF 3FFF 7F83 7F00 FF00 FE00 FE00 FE00 FE00 FE00 7F00 7F81 3FFF 3FFF 0FFF 03FF ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 24 0 BBX 20 26 1 0 BITMAP 0007F0 0007F0 0007F0 0007F0 0007F0 0007F0 0007F0 0007F0 07C7F0 1FF7F0 3FFFF0 7FFFF0 7F8FF0 FF07F0 FE07F0 FE07F0 FE07F0 FE07F0 FE07F0 FF07F0 FF0FF0 7FFFF0 7FFFF0 3FF7F0 1FE7F0 0FC7F0 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 21 0 BBX 18 18 1 0 BITMAP 03F800 0FFE00 3FFF00 3FFF80 7E3F80 7E1FC0 FFFFC0 FFFFC0 FFFFC0 FFFFC0 FE0000 FE0000 7F80C0 7FFFC0 3FFFC0 1FFFC0 0FFFC0 01FE00 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 16 0 BBX 15 26 1 0 BITMAP 03FC 0FFE 1FFE 1FFE 3FC2 3F80 3F80 3F80 FFF8 FFF8 FFF8 FFF8 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 24 0 BBX 20 25 1 -7 BITMAP 07E3F0 1FFBF0 3FFFF0 3FFFF0 7F8FF0 7F07F0 FE07F0 FE07F0 FE07F0 FE07F0 FE07F0 FF0FF0 FF0FF0 7FFFF0 7FF7F0 3FF7F0 1FE7F0 0F87F0 0007F0 300FF0 3FFFE0 3FFFE0 3FFFC0 3FFF00 07FC00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 24 0 BBX 18 26 3 0 BITMAP FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE3E00 FE7F80 FEFF80 FFFFC0 FFFFC0 FFFFC0 FF1FC0 FF1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 12 0 BBX 7 26 3 0 BITMAP FE FE FE FE FE 00 00 00 FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 12 0 BBX 13 33 -2 -7 BITMAP 03F8 03F8 03F8 03F8 03F8 0000 0000 0000 03F8 03F8 03F8 03F8 03F8 03F8 03F8 03F8 03F8 03F8 03F8 03F8 03F8 03F8 03F8 03F8 03F8 03F8 03F8 03F8 87F8 FFF0 FFF0 FFE0 7F80 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 23 0 BBX 21 26 3 0 BITMAP FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE07C0 FE0F80 FE1F00 FE1F00 FE3E00 FE7C00 FE7C00 FEFC00 FFFC00 FFFE00 FEFF00 FEFF00 FE7F80 FE7FC0 FE3FC0 FE1FE0 FE1FF0 FE0FF8 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 12 0 BBX 7 26 3 0 BITMAP FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 34 0 BBX 29 18 3 0 BITMAP FE3E07E0 FEFF8FF0 FDFF9FF8 FFFFFFF8 FFFFFFF8 FFFFFFF8 FF1FE3F8 FE1FC3F8 FE1FC3F8 FE1FC3F8 FE1FC3F8 FE1FC3F8 FE1FC3F8 FE1FC3F8 FE1FC3F8 FE1FC3F8 FE1FC3F8 FE1FC3F8 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 24 0 BBX 18 18 3 0 BITMAP FE3E00 FEFF80 FEFF80 FFFFC0 FFFFC0 FFFFC0 FF1FC0 FF1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 23 0 BBX 20 18 1 0 BITMAP 03FC00 0FFF00 1FFF80 3FFFC0 7F9FE0 7F0FE0 FE07F0 FE07F0 FE07F0 FE07F0 FE07F0 FE07F0 7F0FE0 7F9FE0 3FFFC0 1FFF80 0FFF00 03FC00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 24 0 BBX 20 25 3 -7 BITMAP FE3F00 FE7F80 FEFFC0 FFFFE0 FFFFE0 FF0FF0 FE0FF0 FE07F0 FE07F0 FE07F0 FE07F0 FE07F0 FE0FF0 FF1FE0 FFFFE0 FFFFC0 FEFF80 FE3E00 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 24 0 BBX 20 25 1 -7 BITMAP 07E3F0 1FFBF0 3FFFF0 7FFFF0 7F8FF0 7F07F0 FE07F0 FE07F0 FE07F0 FE07F0 FE07F0 FF07F0 FF0FF0 7FFFF0 7FFFF0 3FF7F0 1FE7F0 0FC7F0 0007F0 0007F0 0007F0 0007F0 0007F0 0007F0 0007F0 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 17 0 BBX 14 18 3 0 BITMAP FE3C FE7C FEFC FFFC FFFC FFFC FF80 FF00 FE00 FE00 FE00 FE00 FE00 FE00 FE00 FE00 FE00 FE00 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 21 0 BBX 17 18 2 0 BITMAP 0FFC00 3FFE00 7FFE00 FFFE00 FE0200 FE0000 FF0000 7FE000 3FFC00 1FFF00 03FF80 007F80 003F80 C03F80 FFFF80 FFFF00 FFFE00 3FF000 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 15 0 BBX 13 23 1 0 BITMAP 0380 3F80 3F80 3F80 3F80 FFF8 FFF8 FFF8 FFF8 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3FC0 3FF8 1FF8 1FF8 07F8 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 24 0 BBX 18 18 3 0 BITMAP FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE3FC0 FE3FC0 FFFFC0 FFFFC0 7FDFC0 7FDFC0 1F1FC0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 23 0 BBX 21 18 1 0 BITMAP FF00F8 FF00F0 7F00F0 7F81F0 3F81E0 3FC3E0 3FC3C0 1FC3C0 1FE7C0 0FE780 0FF780 0FFF00 07FF00 07FF00 03FE00 03FE00 01FC00 01FC00 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 30 0 BBX 28 18 1 0 BITMAP FC0FC0F0 FC1FC1F0 FE1FC1E0 7E1FC1E0 7E1FE1E0 7E3FE3C0 7F3FE3C0 3F3FE3C0 3F7FF7C0 3F79F780 3FF9F780 1FF9FF80 1FF1FF00 1FF0FF00 1FF0FF00 0FF0FF00 0FE0FE00 0FE07E00 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 19 0 BBX 18 18 1 0 BITMAP FF07C0 7F0F80 3F9F00 3F9E00 1FFE00 0FFC00 0FFC00 07F800 07F800 03F800 07FC00 0FFC00 0FFE00 1FFE00 3E7F00 3C3F80 7C3F80 F81FC0 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 22 0 BBX 21 25 1 -7 BITMAP FF00F8 FF00F0 7F01F0 7F81E0 3F83E0 3F83C0 3FC7C0 1FC780 1FEF80 0FEF00 0FFF00 0FFE00 07FE00 07FC00 07FC00 03F800 03F800 01F800 01F000 03F000 03E000 07E000 0FC000 1FC000 3F8000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 21 0 BBX 17 18 2 0 BITMAP FFFF80 FFFF80 FFFF80 FFFF80 00FF80 01FF00 03FE00 07FC00 0FFC00 1FF800 3FF000 7FE000 FFC000 FF8000 FFFF80 FFFF80 FFFF80 FFFF80 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 13 0 BBX 10 32 2 -6 BITMAP 07C0 0FC0 1FC0 3FC0 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F00 FE00 FC00 FC00 FE00 3F00 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3FC0 1FC0 0FC0 07C0 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 9 0 BBX 4 32 3 -6 BITMAP F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 13 0 BBX 10 32 2 -6 BITMAP F800 FC00 FE00 FF00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 3F00 1FC0 0FC0 0FC0 1FC0 3F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 FF00 FE00 FC00 F800 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 23 0 BBX 20 7 2 6 BITMAP 1F00F0 7FC0F0 7FF9F0 FFFFF0 F9FFE0 F03FE0 F00F80 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 12 0 BBX 7 25 2 -7 BITMAP FE FE FE FE FE 00 00 78 78 78 7C 7C 7C 7C FC FC FC FE FE FE FE FE FE FE FE ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 23 0 BBX 17 25 3 0 BITMAP 007800 007800 007800 01FF80 0FFF80 1FFF80 3FFF80 7F8180 7F0000 FE0000 FE0000 FE0000 FE0000 FE0000 FF0000 FF0000 7FC000 7FFF80 3FFF80 1FFF80 07FF80 007800 007800 007800 007800 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 23 0 BBX 17 25 4 0 BITMAP 00FF80 07FF80 0FFF80 0FFF80 1FE000 1FC000 1FC000 1FC000 1FC000 1FC000 7FF800 7FF800 7FF800 7FF800 1FC000 1FC000 1F8000 1F8000 1F0000 3C0000 FFFF80 FFFF80 FFFF80 FFFF80 FFFF80 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 23 0 BBX 23 25 0 0 BITMAP 200008 70001C F8003E FC007E 7C007C 3E00F8 1F7DF0 0FFFE0 07FFC0 07FFC0 0FFFE0 0FC7E0 0F83E0 0F83E0 0F83E0 07C7C0 07FFC0 0FFFE0 1FFFF0 3FFFF8 3E7CF8 7C007C F8003E 70001C 200008 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 23 0 BBX 22 25 1 0 BITMAP FF007C FF0078 7F80F8 3FC1F0 3FC1F0 1FE3E0 1FE3C0 0FF7C0 0FF780 07FF80 07FF00 03FE00 01FE00 0FFFC0 0FFFC0 0FFFC0 00FE00 0FFFC0 0FFFC0 0FFFC0 00FE00 00FE00 00FE00 00FE00 00FE00 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 9 0 BBX 4 32 3 -6 BITMAP F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 00 00 00 00 00 00 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 23 0 BBX 17 32 3 -7 BITMAP 0FFF00 3FFF00 7FFF00 7FFF00 FE0300 FC0000 FE0000 FFC000 7FF000 7FFC00 3FFE00 3FFF00 7FFF00 7BFF80 F8FF80 FC3F80 FE0F80 FF8F80 FFEF00 7FFF00 7FFE00 3FFE00 0FFF00 03FF80 00FF80 003F80 001F80 603F80 7FFF00 7FFF00 7FFC00 7FF000 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 23 0 BBX 11 4 6 21 BITMAP F1E0 F1E0 F1E0 F1E0 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 28 0 BBX 26 25 1 0 BITMAP 007F8000 01FFE000 07FFF800 0FC0FC00 1F003E00 3C000F00 383FC700 78FFC780 71F04380 F1E003C0 E3C001C0 E3C001C0 E3C001C0 E3C001C0 E3C001C0 F1E003C0 71F04380 787FC780 383FC700 3C000F00 1F003E00 0FC0FC00 07FFF800 01FFE000 007F8000 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 18 0 BBX 17 14 1 11 BITMAP 1FE000 7FF800 7FFC00 41FE00 00FE00 00FE00 1FFE00 7FFE00 FFFE00 FCFE00 FCFF80 FFFF80 7FBF80 3F1F80 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 21 0 BBX 19 16 1 1 BITMAP 030180 0383C0 07C7E0 0FEFE0 1F8FC0 3F9F80 7F3F80 FEFF00 FE7F00 7F3F80 3F9F80 1F8FC0 0FCFE0 07E7E0 0383C0 030180 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 23 0 BBX 20 13 2 3 BITMAP FFFFF0 FFFFF0 FFFFF0 FFFFF0 0000F0 0000F0 0000F0 0000F0 0000F0 0000F0 0000F0 0000F0 0000F0 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 10 0 BBX 7 4 1 9 BITMAP FE FE FE FE ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 23 0 BBX 17 18 3 7 BITMAP 03E000 0FF800 1FFC00 3C1E00 7FFF00 77FF00 F73F80 E73B80 E77380 E7E380 E77380 F77780 777F00 780F00 3C1E00 1FFC00 0FF800 03E000 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 23 0 BBX 11 4 6 21 BITMAP FFE0 FFE0 FFE0 FFE0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 8 0 BBX 6 6 1 19 BITMAP 78 FC CC CC FC 78 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 23 0 BBX 20 21 2 0 BITMAP 00F000 00F000 00F000 00F000 00F000 00F000 FFFFF0 FFFFF0 FFFFF0 FFFFF0 00F000 00F000 00F000 00F000 00F000 000000 000000 FFFFF0 FFFFF0 FFFFF0 FFFFF0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 14 0 BBX 11 15 -22 10 BITMAP 7F00 FFC0 C1E0 00E0 00E0 00E0 01C0 0380 0700 0E00 3C00 7800 F800 FFE0 FFE0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 14 0 BBX 11 15 -23 10 BITMAP 7F00 FFC0 C1E0 00E0 00E0 01C0 7F80 7F00 03C0 01E0 00E0 00E0 C1E0 FFC0 FF00 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 23 0 BBX 9 5 8 21 BITMAP 1F80 1E00 3C00 7800 F000 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 24 0 BBX 18 24 3 -6 BITMAP FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE3FC0 FE3FC0 FFFFC0 FFFFC0 FFFFC0 FFDFC0 FF9FC0 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 23 0 BBX 14 31 3 -6 BITMAP 1FFC 7FFC 7FFC FFFC FFFC FFFC FFFC FFFC FFFC 7FFC 7FFC 3FFC 0FFC 03FC 03FC 03FC 03FC 03FC 03FC 03FC 03FC 03FC 03FC 03FC 03FC 03FC 03FC 03FC 03FC 03FC 03FC ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 23 0 BBX 5 5 9 7 BITMAP F8 F8 F8 F8 F8 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 23 0 BBX 7 7 8 -7 BITMAP 38 30 78 1E 1E FE FC ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 14 0 BBX 5 15 -24 10 BITMAP F8 F8 38 38 38 38 38 38 38 38 38 38 38 38 38 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 18 0 BBX 17 14 1 11 BITMAP 07F000 1FFC00 3FFE00 7E7F00 FC3F80 FC3F80 FC3F80 FC3F80 FC3F80 FC3F80 7E7F00 3FFE00 1FFC00 07F000 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 21 0 BBX 19 16 1 1 BITMAP 301800 783800 FCFC00 FE7E00 7E3F00 3F3F80 3F9FC0 1FCFE0 1FEFE0 3F9FC0 3F3F80 7E3F00 FEFE00 FC7C00 783800 301000 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 31 0 BBX 26 25 7 0 BITMAP F8003F00 F8007E00 3800FE00 3800FC00 3801F800 3803F000 3807F000 3807E000 380FC000 381F8000 383F8380 383F0780 387E0F80 38FC1F80 39FC3B80 01F87380 03F06380 07E0C380 0FE1C380 0FC1FFC0 1F81FFC0 3F000380 7F000380 7E000380 FC000380 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 31 0 BBX 26 25 7 0 BITMAP F8003F00 F8007E00 3800FE00 3800FC00 3801F800 3803F000 3807F000 3807E000 380FC000 381F8000 383FFE00 383FFF80 387F83C0 38FC01C0 39FC01C0 01F801C0 03F00380 07E00700 0FE00E00 0FC01C00 1F807800 3F00F000 7F01F000 7E01FFC0 FC01FFC0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 31 0 BBX 28 25 9 0 BITMAP 7F000FC0 FFC01F80 C1E03F80 00E03F00 00E07E00 01C0FC00 7F81FC00 7F01F800 03C3F000 01E7E000 00EFE0E0 00EFC1E0 C1FF83E0 FFFF07E0 FF7F0EE0 007E1CE0 00FC18E0 01F830E0 03F870E0 03F07FF0 07E07FF0 0FC000E0 1FC000E0 1F8000E0 3F0000E0 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 19 0 BBX 17 25 1 -7 BITMAP 03F800 03F800 03F800 03F800 03F800 000000 000000 03F800 03F800 03F800 03F000 07E000 0FC000 1F8000 3F0000 3F0000 7E0000 FE0000 FE0000 FE0080 FF0380 7FFF80 7FFF80 1FFF80 07FE00 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 26 0 BBX 25 32 1 0 BITMAP 00FC0000 003C0000 001E0000 000F0000 00078000 00000000 00000000 007F0000 007F8000 00FF8000 00FF8000 00FFC000 01FFC000 01FFE000 01EFE000 03CFE000 03CFF000 07C7F000 0787F000 0787F800 0F83F800 0F03FC00 0FFFFC00 1FFFFC00 1FFFFE00 1FFFFE00 3C00FE00 3C007F00 7C007F00 78003F80 78003F80 F0003F80 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 26 0 BBX 25 32 1 0 BITMAP 0007E000 00078000 000F0000 001E0000 003C0000 00000000 00000000 007F0000 007F8000 00FF8000 00FF8000 00FFC000 01FFC000 01FFE000 01EFE000 03CFE000 03CFF000 07C7F000 0787F000 0787F800 0F83F800 0F03FC00 0FFFFC00 1FFFFC00 1FFFFE00 1FFFFE00 3C00FE00 3C007F00 7C007F00 78003F80 78003F80 F0003F80 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 26 0 BBX 25 32 1 0 BITMAP 003F0000 003F0000 007F8000 00F3C000 01E1E000 00000000 00000000 007F0000 007F8000 00FF8000 00FF8000 00FFC000 01FFC000 01FFE000 01EFE000 03CFE000 03CFF000 07C7F000 0787F000 0787F800 0F83F800 0F03FC00 0FFFFC00 1FFFFC00 1FFFFE00 1FFFFE00 3C00FE00 3C007F00 7C007F00 78003F80 78003F80 F0003F80 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 26 0 BBX 25 32 1 0 BITMAP 0078E000 00FFE000 00FFC000 01FFC000 01C78000 00000000 00000000 007F0000 007F8000 00FF8000 00FF8000 00FFC000 01FFC000 01FFE000 01EFE000 03CFE000 03CFF000 07C7F000 0787F000 0787F800 0F83F800 0F03FC00 0FFFFC00 1FFFFC00 1FFFFE00 1FFFFE00 3C00FE00 3C007F00 7C007F00 78003F80 78003F80 F0003F80 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 26 0 BBX 25 31 1 0 BITMAP 00F1E000 00F1E000 00F1E000 00F1E000 00000000 00000000 007F0000 007F8000 00FF8000 00FF8000 00FFC000 01FFC000 01FFE000 01EFE000 03CFE000 03CFF000 07C7F000 0787F000 0787F800 0F83F800 0F03FC00 0FFFFC00 1FFFFC00 1FFFFE00 1FFFFE00 3C00FE00 3C007F00 7C007F00 78003F80 78003F80 F0003F80 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 26 0 BBX 25 33 1 0 BITMAP 001C0000 003E0000 00360000 00360000 003E0000 001C0000 00000000 00000000 007F0000 007F8000 00FF8000 00FF8000 00FFC000 01FFC000 01FFE000 01EFE000 03CFE000 03CFF000 07C7F000 0787F000 0787F800 0F83F800 0F03FC00 0FFFFC00 1FFFFC00 1FFFFE00 1FFFFE00 3C00FE00 3C007F00 7C007F00 78003F80 78003F80 F0003F80 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 34 0 BBX 32 25 0 0 BITMAP 0007FFFE 0007FFFE 000FFFFE 000FFFFE 001FF800 003FF800 003FF800 007FF800 007BF800 00FBF800 00F3FFF8 01F3FFF8 01E3FFF8 03E3FFF8 03C3F800 07FFF800 07FFF800 0FFFF800 1FFFF800 1E03F800 3E03F800 3C03FFFF 7C03FFFF 7803FFFF F803FFFF ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 25 0 BBX 23 32 1 -7 BITMAP 003FF8 01FFFE 07FFFE 1FFFFE 1FF00E 3FC000 7F8000 7F0000 7F0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FF0000 7F0000 7F8000 7FC002 3FF00E 1FFFFE 1FFFFE 07FFFE 03FFFE 007FE0 003800 003000 007800 001E00 001E00 00FE00 00FC00 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 22 0 BBX 18 32 3 0 BITMAP 1F8000 078000 03C000 01E000 00F000 000000 000000 FFFF80 FFFF80 FFFF80 FFFF80 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FFFE00 FFFE00 FFFE00 FFFE00 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FFFFC0 FFFFC0 FFFFC0 FFFFC0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 22 0 BBX 18 32 3 0 BITMAP 00FC00 00F000 01E000 03C000 078000 000000 000000 FFFF80 FFFF80 FFFF80 FFFF80 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FFFE00 FFFE00 FFFE00 FFFE00 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FFFFC0 FFFFC0 FFFFC0 FFFFC0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 22 0 BBX 18 32 3 0 BITMAP 03F000 03F000 07F800 0F3C00 1E1E00 000000 000000 FFFF80 FFFF80 FFFF80 FFFF80 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FFFE00 FFFE00 FFFE00 FFFE00 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FFFFC0 FFFFC0 FFFFC0 FFFFC0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 22 0 BBX 18 31 3 0 BITMAP 1E3C00 1E3C00 1E3C00 1E3C00 000000 000000 FFFF80 FFFF80 FFFF80 FFFF80 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FFFE00 FFFE00 FFFE00 FFFE00 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FFFFC0 FFFFC0 FFFFC0 FFFFC0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 12 0 BBX 9 32 4 0 BITMAP FC00 3C00 1E00 0F00 0780 0000 0000 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 12 0 BBX 10 32 3 0 BITMAP 0FC0 0F00 1E00 3C00 7800 0000 0000 FE00 FE00 FE00 FE00 FE00 FE00 FE00 FE00 FE00 FE00 FE00 FE00 FE00 FE00 FE00 FE00 FE00 FE00 FE00 FE00 FE00 FE00 FE00 FE00 FE00 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 12 0 BBX 12 32 5 0 BITMAP 1F80 1F80 3FC0 79E0 F0F0 0000 0000 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 12 0 BBX 11 31 4 0 BITMAP F1E0 F1E0 F1E0 F1E0 0000 0000 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 7F00 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 28 0 BBX 27 25 0 0 BITMAP 1FFFE000 1FFFFC00 1FFFFE00 1FFFFF00 1FC0FF80 1FC03FC0 1FC03FC0 1FC01FC0 1FC00FE0 1FC00FE0 FFFE0FE0 FFFE0FE0 FFFE0FE0 FFFE0FE0 1FC00FE0 1FC00FE0 1FC01FC0 1FC01FC0 1FC03FC0 1FC0FF80 1FFFFF80 1FFFFF00 1FFFFE00 1FFFF800 1FFFE000 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 27 0 BBX 21 32 3 0 BITMAP 01E380 03FF80 03FF00 07FF00 071E00 000000 000000 FC00F8 FE00F8 FF00F8 FF00F8 FF80F8 FFC0F8 FFE0F8 FFE0F8 FFF0F8 FFF8F8 FFF8F8 FBFCF8 FBFEF8 F9FEF8 F8FFF8 F8FFF8 F87FF8 F83FF8 F83FF8 F81FF8 F80FF8 F807F8 F807F8 F803F8 F801F8 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 29 0 BBX 27 32 1 0 BITMAP 007E0000 001E0000 000F0000 00078000 0003C000 00000000 00000000 007FC000 03FFF800 07FFFC00 0FFFFE00 1FE0FF00 3FC07F80 7F803FC0 7F001FC0 7F001FC0 FE000FE0 FE000FE0 FE000FE0 FE000FE0 FE000FE0 FE000FE0 FE000FE0 7F001FC0 7F001FC0 7F803FC0 3FC07F80 1FE0FF00 0FFFFE00 07FFFC00 03FFF800 007FC000 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 29 0 BBX 27 32 1 0 BITMAP 0003F000 0003C000 00078000 000F0000 001E0000 00000000 00000000 007FC000 03FFF800 07FFFC00 0FFFFE00 1FE0FF00 3FC07F80 7F803FC0 7F001FC0 7F001FC0 FE000FE0 FE000FE0 FE000FE0 FE000FE0 FE000FE0 FE000FE0 FE000FE0 7F001FC0 7F001FC0 7F803FC0 3FC07F80 1FE0FF00 0FFFFE00 07FFFC00 03FFF800 007FC000 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 29 0 BBX 27 32 1 0 BITMAP 001F8000 001F8000 003FC000 0079E000 00F0F000 00000000 00000000 007FC000 03FFF800 07FFFC00 0FFFFE00 1FE0FF00 3FC07F80 7F803FC0 7F001FC0 7F001FC0 FE000FE0 FE000FE0 FE000FE0 FE000FE0 FE000FE0 FE000FE0 FE000FE0 7F001FC0 7F001FC0 7F803FC0 3FC07F80 1FE0FF00 0FFFFE00 07FFFC00 03FFF800 007FC000 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 29 0 BBX 27 32 1 0 BITMAP 003C7000 007FF000 007FE000 00FFE000 00E3C000 00000000 00000000 007FC000 03FFF800 07FFFC00 0FFFFE00 1FE0FF00 3FC07F80 7F803FC0 7F001FC0 7F001FC0 FE000FE0 FE000FE0 FE000FE0 FE000FE0 FE000FE0 FE000FE0 FE000FE0 7F001FC0 7F001FC0 7F803FC0 3FC07F80 1FE0FF00 0FFFFE00 07FFFC00 03FFF800 007FC000 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 29 0 BBX 27 31 1 0 BITMAP 0078F000 0078F000 0078F000 0078F000 00000000 00000000 007FC000 03FFF800 07FFFC00 0FFFFE00 1FE0FF00 3FC07F80 7F803FC0 7F001FC0 7F001FC0 FE000FE0 FE000FE0 FE000FE0 FE000FE0 FE000FE0 FE000FE0 FE000FE0 7F001FC0 7F001FC0 7F803FC0 3FC07F80 1FE0FF00 0FFFFE00 07FFFC00 03FFF800 007FC000 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 23 0 BBX 20 21 2 0 BITMAP 200040 7000E0 F801F0 7C03E0 3E07C0 3F0FC0 1F9F80 0FFF00 07FE00 03FC00 01F800 03FC00 07FE00 0FFF00 1F9F80 3F0FC0 3E07C0 7C03E0 F801F0 7000E0 200040 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 29 0 BBX 27 25 1 0 BITMAP 007FC7E0 03FFFFC0 07FFFF80 0FFFFF00 1FE0FF00 3FC07F80 7F80FFC0 7F01FFC0 7F03FFC0 FE07EFE0 FE07CFE0 FE0F8FE0 FE1F0FE0 FE3E0FE0 FE7C0FE0 FEFC0FE0 7FF81FC0 7FF01FC0 7FE03FC0 3FC07F80 1FE0FF00 1FFFFE00 3FFFFC00 7FFFF800 FC7FC000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 27 0 BBX 21 32 3 0 BITMAP 03F000 00F000 007800 003C00 001E00 000000 000000 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 7F07F0 7F8FF0 3FFFE0 1FFFE0 0FFF80 01FE00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 27 0 BBX 21 32 3 0 BITMAP 001F80 001E00 003C00 007800 00F000 000000 000000 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 7F07F0 7F8FF0 3FFFE0 1FFFE0 0FFF80 01FE00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 27 0 BBX 21 32 3 0 BITMAP 00FC00 00FC00 01FE00 03CF00 078780 000000 000000 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 7F07F0 7F8FF0 3FFFE0 1FFFE0 0FFF80 01FE00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 27 0 BBX 21 31 3 0 BITMAP 03C780 03C780 03C780 03C780 000000 000000 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 FE03F8 7F07F0 7F8FF0 3FFFE0 1FFFE0 0FFF80 01FE00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 25 0 BBX 23 32 1 0 BITMAP 000FC0 000F00 001E00 003C00 007800 000000 000000 FF003E FF003C 7F807C 3FC0F8 3FC0F0 1FE1F0 1FE1E0 0FF3E0 0FF7C0 07FFC0 07FF80 03FF80 03FF00 01FE00 00FE00 00FE00 00FE00 00FE00 00FE00 00FE00 00FE00 00FE00 00FE00 00FE00 00FE00 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 22 0 BBX 19 25 3 0 BITMAP FE0000 FE0000 FE0000 FE0000 FE0000 FFFE00 FFFF80 FFFFC0 FFFFE0 FE1FE0 FE0FE0 FE0FE0 FE0FE0 FE0FE0 FE1FE0 FE3FC0 FFFFC0 FFFF80 FFFF00 FFF800 FE0000 FE0000 FE0000 FE0000 FE0000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 25 0 BBX 21 26 3 0 BITMAP 07F800 1FFE00 3FFF00 7FFF00 7F1F00 FE0F00 FE0F00 FE1E00 FE1E00 FE3C00 FE7C00 FE7E00 FE7F00 FE7FC0 FE7FE0 FE7FF0 FE3FF0 FE1FF8 FE07F8 FE03F8 FE01F8 FE01F8 FE3FF8 FE3FF0 FE3FE0 FE3FC0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 21 0 BBX 19 25 1 0 BITMAP 07E000 01E000 00F000 007800 003C00 000000 000000 0FF800 3FFE00 3FFF00 3FFF80 307F80 203F80 003F80 0FFF80 3FFF80 7FFF80 FFFF80 FF3F80 FE3F80 FE7F80 FFFFE0 7FFFE0 3FDFE0 1F8FE0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 21 0 BBX 19 25 1 0 BITMAP 003F00 003C00 007800 00F000 01E000 000000 000000 0FF800 3FFE00 3FFF00 3FFF80 307F80 203F80 003F80 0FFF80 3FFF80 7FFF80 FFFF80 FF3F80 FE3F80 FE7F80 FFFFE0 7FFFE0 3FDFE0 1F8FE0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 21 0 BBX 19 25 1 0 BITMAP 01F800 01F800 03FC00 079E00 0F0F00 000000 000000 0FF800 3FFE00 3FFF00 3FFF80 307F80 203F80 003F80 0FFF80 3FFF80 7FFF80 FFFF80 FF3F80 FE3F80 FE7F80 FFFFE0 7FFFE0 3FDFE0 1F8FE0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 21 0 BBX 19 25 1 0 BITMAP 03C700 07FF00 07FE00 0FFE00 0E3C00 000000 000000 0FF800 3FFE00 3FFF00 3FFF80 307F80 203F80 003F80 0FFF80 3FFF80 7FFF80 FFFF80 FF3F80 FE3F80 FE7F80 FFFFE0 7FFFE0 3FDFE0 1F8FE0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 21 0 BBX 19 24 1 0 BITMAP 078F00 078F00 078F00 078F00 000000 000000 0FF800 3FFE00 3FFF00 3FFF80 307F80 203F80 003F80 0FFF80 3FFF80 7FFF80 FFFF80 FF3F80 FE3F80 FE7F80 FFFFE0 7FFFE0 3FDFE0 1F8FE0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 21 0 BBX 19 26 1 0 BITMAP 00E000 01F000 01B000 01B000 01F000 00E000 000000 000000 0FF800 3FFE00 3FFF00 3FFF80 307F80 203F80 003F80 0FFF80 3FFF80 7FFF80 FFFF80 FF3F80 FE3F80 FE7F80 FFFFE0 7FFFE0 3FDFE0 1F8FE0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 31 0 BBX 29 18 1 0 BITMAP 0FF07F00 3FFCFFC0 3FFFFFE0 3FFFFFF0 383FC7F0 201FC3F0 001F83F8 07FFFFF8 3FFFFFF8 7FFFFFF8 FFFFFFF8 FF1F8000 FE1FC000 FE3FE018 FFFFFFF8 7FF7FFF8 3FE1FFF8 1F807FE0 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 19 0 BBX 16 25 1 -7 BITMAP 03FE 0FFF 1FFF 3FFF 7F83 7F00 FF00 FE00 FE00 FE00 FE00 FE00 7F00 7F81 3FFF 3FFF 0FFF 03FF 01C0 0180 03C0 00F0 00F0 07F0 07E0 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 21 0 BBX 18 25 1 0 BITMAP 0FC000 03C000 01E000 00F000 007800 000000 000000 03F800 0FFE00 3FFF00 3FFF80 7E3F80 7E1FC0 FFFFC0 FFFFC0 FFFFC0 FFFFC0 FE0000 FE0000 7F80C0 7FFFC0 3FFFC0 1FFFC0 0FFFC0 01FE00 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 21 0 BBX 18 25 1 0 BITMAP 007E00 007800 00F000 01E000 03C000 000000 000000 03F800 0FFE00 3FFF00 3FFF80 7E3F80 7E1FC0 FFFFC0 FFFFC0 FFFFC0 FFFFC0 FE0000 FE0000 7F80C0 7FFFC0 3FFFC0 1FFFC0 0FFFC0 01FE00 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 21 0 BBX 18 25 1 0 BITMAP 01F800 01F800 03FC00 079E00 0F0F00 000000 000000 03F800 0FFE00 3FFF00 3FFF80 7E3F80 7E1FC0 FFFFC0 FFFFC0 FFFFC0 FFFFC0 FE0000 FE0000 7F80C0 7FFFC0 3FFFC0 1FFFC0 0FFFC0 01FE00 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 21 0 BBX 18 24 1 0 BITMAP 0F1E00 0F1E00 0F1E00 0F1E00 000000 000000 03F800 0FFE00 3FFF00 3FFF80 7E3F80 7E1FC0 FFFFC0 FFFFC0 FFFFC0 FFFFC0 FE0000 FE0000 7F80C0 7FFFC0 3FFFC0 1FFFC0 0FFFC0 01FE00 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 12 0 BBX 9 25 5 0 BITMAP FC00 3C00 1E00 0F00 0780 0000 0000 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 12 0 BBX 9 25 3 0 BITMAP 1F80 1E00 3C00 7800 F000 0000 0000 FE00 FE00 FE00 FE00 FE00 FE00 FE00 FE00 FE00 FE00 FE00 FE00 FE00 FE00 FE00 FE00 FE00 FE00 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 12 0 BBX 12 25 5 0 BITMAP 1F80 1F80 3FC0 79E0 F0F0 0000 0000 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 12 0 BBX 11 24 5 0 BITMAP F1E0 F1E0 F1E0 F1E0 0000 0000 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 3F80 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 23 0 BBX 20 30 1 0 BITMAP 003000 007800 007C00 00F800 F9F000 FFE000 FFF000 FFFC00 1FFE00 3EFF00 7C3F80 383FC0 1BFFC0 0FFFE0 1FFFE0 3FFFE0 7F8FF0 7F0FF0 FE07F0 FE07F0 FE07F0 FE07F0 FE07F0 FE07E0 7F0FE0 7F9FE0 3FFFC0 1FFF80 0FFF00 03F800 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 24 0 BBX 18 25 3 0 BITMAP 078E00 0FFE00 0FFC00 1FFC00 1C7800 000000 000000 FE3E00 FEFF80 FEFF80 FFFFC0 FFFFC0 FFFFC0 FF1FC0 FF1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 23 0 BBX 20 25 1 0 BITMAP 07E000 01E000 00F000 007800 003C00 000000 000000 03FC00 0FFF00 1FFF80 3FFFC0 7F9FE0 7F0FE0 FE07F0 FE07F0 FE07F0 FE07F0 FE07F0 FE07F0 7F0FE0 7F9FE0 3FFFC0 1FFF80 0FFF00 03FC00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 23 0 BBX 20 25 1 0 BITMAP 003F00 003C00 007800 00F000 01E000 000000 000000 03FC00 0FFF00 1FFF80 3FFFC0 7F9FE0 7F0FE0 FE07F0 FE07F0 FE07F0 FE07F0 FE07F0 FE07F0 7F0FE0 7F9FE0 3FFFC0 1FFF80 0FFF00 03FC00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 23 0 BBX 20 25 1 0 BITMAP 01F800 01F800 03FC00 079E00 0F0F00 000000 000000 03FC00 0FFF00 1FFF80 3FFFC0 7F9FE0 7F0FE0 FE07F0 FE07F0 FE07F0 FE07F0 FE07F0 FE07F0 7F0FE0 7F9FE0 3FFFC0 1FFF80 0FFF00 03FC00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 23 0 BBX 20 25 1 0 BITMAP 03C700 07FF00 07FE00 0FFE00 0E3C00 000000 000000 03FC00 0FFF00 1FFF80 3FFFC0 7F9FE0 7F0FE0 FE07F0 FE07F0 FE07F0 FE07F0 FE07F0 FE07F0 7F0FE0 7F9FE0 3FFFC0 1FFF80 0FFF00 03FC00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 23 0 BBX 20 24 1 0 BITMAP 078F00 078F00 078F00 078F00 000000 000000 03FC00 0FFF00 1FFF80 3FFFC0 7F9FE0 7F0FE0 FE07F0 FE07F0 FE07F0 FE07F0 FE07F0 FE07F0 7F0FE0 7F9FE0 3FFFC0 1FFF80 0FFF00 03FC00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 23 0 BBX 20 21 2 0 BITMAP 01F000 01F000 01F000 01F000 01F000 000000 000000 000000 FFFFF0 FFFFF0 FFFFF0 FFFFF0 000000 000000 000000 000000 01F000 01F000 01F000 01F000 01F000 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 23 0 BBX 21 18 1 0 BITMAP 03FDF8 0FFFF0 1FFFE0 3FFFC0 7F9FE0 7F1FE0 FE3FF0 FE7FF0 FEFFF0 FFFFF0 FFF7F0 FFE7F0 7FCFE0 7F9FE0 3FFFC0 3FFF80 7FFF00 FFFC00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 24 0 BBX 18 25 3 0 BITMAP 0FC000 03C000 01E000 00F000 007800 000000 000000 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE3FC0 FE3FC0 FFFFC0 FFFFC0 7FDFC0 7FDFC0 1F1FC0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 24 0 BBX 18 25 3 0 BITMAP 007E00 007800 00F000 01E000 03C000 000000 000000 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE3FC0 FE3FC0 FFFFC0 FFFFC0 7FDFC0 7FDFC0 1F1FC0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 24 0 BBX 18 25 3 0 BITMAP 03F000 03F000 07F800 0F3C00 1E1E00 000000 000000 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE3FC0 FE3FC0 FFFFC0 FFFFC0 7FDFC0 7FDFC0 1F1FC0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 24 0 BBX 18 24 3 0 BITMAP 0F1E00 0F1E00 0F1E00 0F1E00 000000 000000 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE1FC0 FE3FC0 FE3FC0 FFFFC0 FFFFC0 7FDFC0 7FDFC0 1F1FC0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 22 0 BBX 21 32 1 -7 BITMAP 003F00 003C00 007800 00F000 01E000 000000 000000 FF00F8 FF00F0 7F01F0 7F81E0 3F83E0 3F83C0 3FC7C0 1FC780 1FEF80 0FEF00 0FFF00 0FFE00 07FE00 07FC00 07FC00 03F800 03F800 01F800 01F000 03F000 03E000 07E000 0FC000 1FC000 3F8000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 24 0 BBX 20 31 3 -7 BITMAP FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE3F00 FE7F80 FEFFC0 FFFFE0 FFFFE0 FF0FF0 FE0FF0 FE07F0 FE07F0 FE07F0 FE07F0 FE07F0 FE0FF0 FF1FE0 FFFFE0 FFFFC0 FEFF80 FE3E00 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 FE0000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 22 0 BBX 21 31 1 -7 BITMAP 078F00 078F00 078F00 078F00 000000 000000 FF00F8 FF00F0 7F01F0 7F81E0 3F83E0 3F83C0 3FC7C0 1FC780 1FEF80 0FEF00 0FFF00 0FFE00 07FE00 07FC00 07FC00 03F800 03F800 01F800 01F000 03F000 03E000 07E000 0FC000 1FC000 3F8000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 24 0 BBX 20 26 1 0 BITMAP 03FFF0 0FFFF0 1FFFF0 1FFFF0 3FC7F0 3F87F0 3F87F0 3F87F0 FFF7F0 FFF7F0 FFF7F0 FFF7F0 3F87F0 3F87F0 3F87F0 3F87F0 3F87F0 3F87F0 3F87F0 3F87F0 3F87F0 3F87F0 3F87F0 3F87F0 3F87F0 3F87F0 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 15 4 1 8 BITMAP FFFE FFFE FFFE FFFE ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 18 31 3 -6 BITMAP 03F000 03F000 03F000 03F000 03F000 03F000 03F000 03F000 FFFFC0 FFFFC0 FFFFC0 FFFFC0 03F000 03F000 03F000 03F000 03F000 03F000 03F000 03F000 03F000 03F000 03F000 03F000 03F000 03F000 03F000 03F000 03F000 03F000 03F000 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 19 32 2 0 BITMAP 0F0F00 079E00 03FC00 01F800 01F800 000000 000000 7FFFE0 7FFFE0 7FFFE0 7FFFE0 001FE0 003FC0 007FC0 007F80 00FF00 01FF00 01FE00 03FC00 07FC00 07F800 0FF000 1FF000 1FE000 3FC000 7FC000 7F8000 FF0000 FFFFE0 FFFFE0 FFFFE0 FFFFE0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 34 0 BBX 31 18 1 0 BITMAP 03F80FC0 0FFE3FE0 1FFF7FF8 3FFFFFF8 7F8FF1FC 7F07F0FC FE07F0FE FE07FFFE FE07FFFE FE07FFFE FE07FFFE FE07F000 7F07F000 7F8FF806 3FFFFFFE 1FFFFFFE 0FFF7FFE 03FC1FF8 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 25 0 BBX 23 31 1 0 BITMAP 01E3C0 01E3C0 01E3C0 01E3C0 000000 000000 FF003E FF003C 7F807C 3FC0F8 3FC0F0 1FE1F0 1FE1E0 0FF3E0 0FF7C0 07FFC0 07FF80 03FF80 03FF00 01FE00 00FE00 00FE00 00FE00 00FE00 00FE00 00FE00 00FE00 00FE00 00FE00 00FE00 00FE00 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 18 3 0 BITMAP FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 13 26 0 0 BITMAP 1FC0 1FC0 1FC0 1FC0 1FC0 1FC0 1FC0 1FC0 1FC8 1FF8 1FF8 1FF8 1FF0 7FC0 FFC0 FFC0 FFC0 DFC0 9FC0 1FC0 1FC0 1FC0 1FC0 1FC0 1FC0 1FC0 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 21 25 0 0 BITMAP 1FC000 1FC000 1FC000 1FC000 1FC000 1FC000 1FC000 1FC800 1FF800 1FF800 1FF800 1FF000 3FE000 FFC000 FFC000 FFC000 FFC000 9FC000 1FC000 1FC000 1FC000 1FFFF8 1FFFF8 1FFFF8 1FFFF8 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 18 31 3 -6 BITMAP 03F000 03F000 03F000 03F000 03F000 03F000 03F000 03F000 FFFFC0 FFFFC0 FFFFC0 FFFFC0 03F000 03F000 03F000 03F000 03F000 03F000 FFFFC0 FFFFC0 FFFFC0 FFFFC0 03F000 03F000 03F000 03F000 03F000 03F000 03F000 03F000 03F000 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 24 0 BBX 20 26 1 0 BITMAP 03FC00 0FFC00 1FFC00 1FFC00 3FC400 3F8000 3F8000 3F8000 FFFFF0 FFFFF0 FFFFF0 FFFFF0 3F87F0 3F87F0 3F87F0 3F87F0 3F87F0 3F87F0 3F87F0 3F87F0 3F87F0 3F87F0 3F87F0 3F87F0 3F87F0 3F87F0 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 16 1 1 BITMAP 3000 7800 FC00 FC00 7E00 3F00 3F80 1FC0 1FC0 3F80 3F00 7E00 FC00 FC00 7800 3000 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 37 0 BBX 35 25 1 0 BITMAP 007FFFFFC0 03FFFFFFC0 07FFFFFFC0 1FFFFFFFC0 1FE1FF0000 3F80FF0000 7F807F0000 7F007F0000 7F007F0000 FE007F0000 FE007FFF00 FE007FFF00 FE007FFF00 FE007FFF00 FE007F0000 FE007F0000 7F007F0000 7F007F0000 7F807F0000 3F80FF0000 1FE1FF0000 1FFFFFFFE0 07FFFFFFE0 03FFFFFFE0 007FFFFFE0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 34 0 BBX 32 3 1 8 BITMAP FFFFFFFF FFFFFFFF FFFFFFFF ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 12 5 5 21 BITMAP F0F0 79E0 3FC0 1F80 1F80 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 6 5 9 -6 BITMAP 70 E0 E0 FC 7C ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 13 5 7 21 BITMAP 1E78 3CF0 39E0 71C0 E380 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 16 1 1 BITMAP 0300 0780 0FC0 0FC0 1F80 3F00 7F00 FE00 FE00 7F00 3F00 1F80 0FC0 0FC0 0780 0300 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 5 5 9 21 BITMAP F8 F8 F8 F8 F8 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 12 5 5 21 BITMAP F0F0 FFE0 7FE0 3FC0 1F00 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 13 13 5 4 BITMAP FFF8 FFF8 FFF8 FFF8 FFF8 FFF8 FFF8 FFF8 FFF8 FFF8 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 12 5 5 21 BITMAP 3C70 7FF0 7FE0 FFE0 E3C0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 12 5 5 21 BITMAP 1F80 1F80 3FC0 79E0 F0F0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 16 12 1 14 BITMAP 0E07 3E1F 783C 703C F07C FE7F FE7F FE7F FE7F FE7F FE7F FE7F ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 1 14 BITMAP FE FE FE FC FC FC 7C 7C 7C 78 78 78 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 17 25 2 0 BITMAP 1E1E00 0F3C00 07F800 03F000 03F000 000000 000000 0FFC00 3FFE00 7FFE00 FFFE00 FE0200 FE0000 FF0000 7FE000 3FFC00 1FFF00 03FF80 007F80 003F80 C03F80 FFFF80 FFFF00 FFFE00 3FF000 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 5 6 8 20 BITMAP 70 F8 D8 D8 F8 70 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 -6 BITMAP FE FE FE FE FE FE FE 1E 1E 3C 3C F8 E0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 19 31 4 -6 BITMAP 001FE0 007FE0 00FFE0 01FFE0 03F800 03F000 07F000 07E000 0FE000 0FE000 7FF800 7FF800 7FF800 7FF800 1FC000 1FC000 1FC000 1F8000 3F8000 3F8000 3F8000 3F8000 3F0000 7F0000 7F0000 7F0000 7F0000 7E0000 FE0000 FE0000 FE0000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 31 0 BBX 30 13 0 12 BITMAP FFFEF87C FFFEFCFC FFFEFCFC FFFEFCFC 0FE0FDFC 0FE0FDFC 0FE0FFFC 0FE0FFFC 0FE0FFFC 0FE0FFFC 0FE0F5FC 0FE0F5FC 0FE0F1FC ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 24 25 -10 0 BITMAP 00003F 00007E 0000FE 0000FC 0001F8 0003F0 0007F0 0007E0 000FC0 001F80 003F80 003F00 007E00 00FC00 01FC00 01F800 03F000 07E000 0FE000 0FC000 1F8000 3F0000 7F0000 7E0000 FC0000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 9 5 6 21 BITMAP FC00 3C00 1E00 0F00 0780 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 45 0 BBX 43 25 1 0 BITMAP 0F8007E00000 3FE00F800000 7FF00F800000 7FF01F000000 FDF83E000000 F8F87C000000 F8F87C000000 F8F8F8000000 FDF9F0000000 7FF3E0000000 7FF3E0000000 3FE7C0000000 0F8F80000000 001F0F803E00 003F3FE0FF80 003E7FF1FFC0 007CFFFBFFE0 00F8FDFBF7E0 01F8F8FBE3E0 01F0F8FBE3E0 03E0FDFBF7E0 07C0FFFBFFE0 0F807FF1FFC0 0F803FE0FF80 3F000F803E00 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 34 0 BBX 27 4 4 0 BITMAP F01E01E0 F01E01E0 F01E01E0 F01E01E0 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 16 12 1 14 BITMAP FE7F FE7F FE7F FE7F FE7F FE7F FE7F 3E0F 3C0E 3C1E F87C E070 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 18 32 1 0 BITMAP 1E1E00 0F3C00 07F800 03F000 03F000 000000 000000 07FF00 1FFF00 3FFF00 7FFF00 FF0300 FE0000 FE0000 FF0000 FFC000 FFE000 7FF800 3FFC00 1FFF00 0FFF80 03FF80 00FFC0 007FC0 001FC0 001FC0 001FC0 C03F80 FFFF80 FFFF00 FFFE00 FFF000 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 16 13 1 -6 BITMAP FE7F FE7F FE7F FE7F FE7F FE7F FE7F 3E0F 3E0F 3C1E 3C1E F87C E070 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 17 25 2 0 BITMAP 1E1E00 0F3C00 07F800 03F000 03F000 000000 000000 FFFF80 FFFF80 FFFF80 FFFF80 00FF80 01FF00 03FE00 07FC00 0FFC00 1FF800 3FF000 7FE000 FFC000 FF8000 FFFF80 FFFF80 FFFF80 FFFF80 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/luIS08.bdf100644 1750 1750 56557 5413747521 15056 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Medium-I-Normal-Sans-11-80-100-100-P-62-ISO8859-1 SIZE 8 100 100 FONTBOUNDINGBOX 20 12 -6 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Medium" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 11 POINT_SIZE 80 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 62 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 10 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 3 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 1 0 BITMAP 20 20 40 40 40 40 00 80 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 4 0 BBX 3 3 2 5 BITMAP A0 A0 A0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 0 BITMAP 1A 14 7E 28 28 FC 50 B0 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 2 -1 BITMAP 10 38 50 50 20 30 28 30 F0 40 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 1 0 BITMAP 33 52 54 68 16 2A 4A 8C ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 0 BITMAP 1C 24 2C 30 D2 9E 8C 74 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 2 0 BBX 2 3 2 5 BITMAP 40 C0 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 1 -2 BITMAP 10 20 40 40 80 80 80 80 80 40 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 0 -2 BITMAP 20 20 10 10 10 20 20 20 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 2 4 BITMAP 20 F0 60 A0 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 08 10 10 FE 10 10 20 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 1 -2 BITMAP 40 C0 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 7 0 BBX 7 1 1 3 BITMAP FE ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 3 0 BBX 2 1 1 0 BITMAP C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 5 0 BBX 7 10 0 -2 BITMAP 02 04 08 08 10 10 20 40 40 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 38 4C 44 84 84 88 98 70 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 7 0 BBX 3 8 3 0 BITMAP E0 20 40 40 40 40 C0 80 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 38 64 04 08 10 20 40 F8 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 78 0C 08 70 18 08 18 F0 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 0C 1C 38 28 48 FC 08 10 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 3C 40 40 70 18 08 18 F0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 1C 60 40 F8 C8 88 88 70 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 2 0 BITMAP 7C 0C 18 30 20 40 C0 80 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 38 44 4C 30 58 88 88 70 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 38 44 44 4C 7C 08 18 E0 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 3 0 BBX 2 6 1 0 BITMAP 40 00 00 00 00 80 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 1 -2 BITMAP 20 00 00 00 00 C0 80 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 02 0C 30 C0 60 18 04 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 7 0 BBX 7 4 1 1 BITMAP FE 00 00 FE ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 0 BITMAP 40 30 0C 06 18 60 80 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 1 0 BITMAP F0 10 10 20 40 C0 00 80 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 1 0 BITMAP 1E 63 9D A5 B9 BE C0 78 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 0 0 BITMAP 0C 0C 14 34 24 7E 42 82 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 7C 44 48 78 48 C8 88 F0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 0 BITMAP 1E 60 40 C0 80 80 C4 78 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 1 0 BITMAP 3E 63 41 41 41 42 86 F8 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 0 BITMAP 7C 40 40 78 40 C0 80 F8 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 0 BITMAP 7C 40 40 40 78 C0 80 80 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 0 BITMAP 1E 60 40 80 84 84 C4 78 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 1 0 BITMAP 21 43 42 7E 42 42 86 84 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 1 0 BITMAP 20 20 40 40 40 40 80 80 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 4 0 BBX 5 10 0 -2 BITMAP 08 08 18 10 10 10 10 10 20 E0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 0 BITMAP 26 4C 58 70 70 50 88 8C ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 60 40 40 40 40 C0 80 F8 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 1 0 BITMAP 2180 6180 5300 5500 5500 5900 9900 8200 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 1 0 BITMAP 21 61 52 52 4A 4A 86 84 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 1 0 BITMAP 1E 22 43 81 82 82 C4 78 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 0 BITMAP 7C 44 44 48 70 C0 80 80 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 -2 BITMAP 1E 22 43 81 82 82 C4 78 0C 03 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 7C 44 44 48 70 D0 88 8C ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 0 BITMAP 3C 60 60 30 18 08 88 F0 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 0 BITMAP FE 10 10 20 20 20 20 60 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 0 BITMAP 42 42 44 C4 84 84 88 78 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 2 0 BITMAP 82 84 C4 48 58 50 60 60 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 10 0 BBX 9 8 2 0 BITMAP 8880 8880 9900 9900 AA00 AA00 CC00 CC00 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 7 0 BBX 8 8 0 0 BITMAP 23 32 14 18 18 2C 44 C6 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 2 0 BITMAP 8C 48 50 70 20 60 40 40 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 6 0 BBX 7 8 0 0 BITMAP 3E 04 08 18 30 60 40 FC ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 1 -2 BITMAP 30 20 40 40 40 40 40 80 80 C0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 5 0 BBX 3 10 2 -2 BITMAP 80 80 40 40 40 40 40 40 20 20 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 0 -2 BITMAP 30 10 10 20 20 20 20 20 40 C0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 1 BITMAP 08 18 18 28 68 44 84 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 6 0 BBX 5 1 0 -1 BITMAP F8 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 2 0 BBX 2 3 2 5 BITMAP 40 80 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 3C 64 4C 98 B8 E8 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 20 40 5C 74 64 48 98 F0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 38 40 80 80 90 70 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 04 04 3C 48 48 98 B8 F8 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 38 48 90 E0 88 70 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 4 0 BBX 5 11 1 -2 BITMAP 18 20 20 F0 40 40 40 40 C0 80 80 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 -2 BITMAP 1C 24 4C C8 58 68 88 F0 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 20 60 5C 74 64 44 88 88 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 1 0 BITMAP 20 00 60 40 40 40 80 80 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 4 0 BBX 5 10 0 -2 BITMAP 08 00 18 10 10 10 10 10 20 C0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 0 BITMAP 20 40 4C 50 60 70 90 88 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 1 0 BITMAP 20 20 40 40 40 40 80 80 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 10 0 BBX 9 6 1 0 BITMAP 5980 6A80 6C80 C880 8900 8900 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 5C 74 64 44 88 88 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 38 48 88 88 98 70 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 -2 BITMAP 7C 74 64 48 48 F0 80 80 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 -2 BITMAP 3C 64 48 98 B8 E8 08 10 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 58 60 60 C0 80 80 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 38 40 60 30 90 F0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 4 0 BBX 4 7 1 0 BITMAP 60 F0 40 40 80 80 60 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 44 44 88 98 B8 E8 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 2 0 BITMAP 88 90 90 A0 A0 40 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 9 0 BBX 8 6 1 0 BITMAP 99 9A AA AC CC C8 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP 64 28 30 30 50 88 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 -2 BITMAP C4 48 58 50 60 60 40 80 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 7C 08 10 20 40 F8 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 1 -2 BITMAP 30 20 60 40 C0 40 40 80 80 40 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 3 0 BBX 3 10 0 -2 BITMAP 20 20 40 40 40 40 40 40 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 0 -2 BITMAP 20 10 20 20 30 20 40 40 40 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 7 0 BBX 7 3 1 2 BITMAP 62 92 8C ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 1 -2 BITMAP 20 00 40 40 40 40 80 80 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 2 0 BITMAP 10 38 50 90 90 A0 78 40 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 1C 20 20 70 20 40 40 F8 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 7 0 BBX 8 8 0 0 BITMAP 41 3A 24 24 44 24 7C 86 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 2 0 BITMAP C6 44 68 30 F8 F8 20 40 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 3 0 BBX 3 10 0 -2 BITMAP 20 20 20 40 00 00 40 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 -2 BITMAP 3C 60 40 70 48 48 38 08 88 F0 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 3 7 BITMAP A0 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 2 0 BITMAP 3C 42 9D A1 A1 B9 42 3C ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 1 3 BITMAP 70 50 90 F0 E0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 28 50 B0 A0 50 50 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 7 0 BBX 7 4 1 1 BITMAP FE 02 02 02 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 3 0 BBX 3 1 1 3 BITMAP E0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 7 0 BBX 5 5 2 3 BITMAP 70 B8 A8 A8 70 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 3 7 BITMAP E0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 3 0 BBX 2 2 2 6 BITMAP C0 C0 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 0 BITMAP 08 08 7E 10 10 00 FC ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 -5 3 BITMAP 70 10 20 40 E0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 -5 3 BITMAP 60 20 60 20 C0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 4 7 BITMAP E0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 -2 BITMAP 44 44 4C 48 58 E8 80 80 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 2 -2 BITMAP F8 E8 E8 70 30 50 50 50 50 60 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 7 0 BBX 2 1 3 3 BITMAP C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 6 0 BBX 2 3 2 -2 BITMAP 40 40 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 4 0 BBX 2 5 -6 3 BITMAP C0 40 80 80 80 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 1 3 BITMAP 30 50 90 90 E0 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 50 50 28 78 50 A0 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 10 0 BBX 8 8 4 0 BITMAP C1 42 84 89 93 23 47 82 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 10 0 BBX 8 8 4 0 BITMAP C1 42 84 8F 91 22 44 8E ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 10 0 BBX 9 8 5 0 BITMAP 6080 2100 6200 2480 C980 1180 2380 4100 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 0 -2 BITMAP 10 00 10 20 40 80 80 70 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 0 0 BITMAP 0C 0C 0C 14 34 24 7E 42 82 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 0 0 BITMAP 0E 0C 0C 14 34 24 7E 42 82 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 0 0 BITMAP 1C 0C 0C 14 34 24 7E 42 82 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 0 0 BITMAP 1E 0C 0C 14 34 24 7E 42 82 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 0 0 BITMAP 0A 0C 0C 14 34 24 7E 42 82 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 0 BITMAP 0C 0C 0C 0C 14 34 24 7E 42 82 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 10 0 BBX 11 8 0 0 BITMAP 03E0 0600 0A00 1BC0 1200 3E00 4400 87C0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 1 -2 BITMAP 1E 60 40 C0 80 80 C4 78 20 60 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 1 0 BITMAP 10 7C 40 40 78 40 C0 80 F8 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 1 0 BITMAP 08 7C 40 40 78 40 C0 80 F8 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 1 0 BITMAP 28 7C 40 40 78 40 C0 80 F8 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 1 0 BITMAP 28 7C 40 40 78 40 C0 80 F8 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 3 0 BBX 3 9 1 0 BITMAP 60 20 20 40 40 40 40 80 80 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 3 0 BBX 4 9 1 0 BITMAP 70 20 20 40 40 40 40 80 80 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 3 0 BBX 4 9 1 0 BITMAP 70 20 20 40 40 40 40 80 80 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 3 0 BBX 4 9 1 0 BITMAP 50 20 20 40 40 40 40 80 80 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 1 0 BITMAP 3E 23 61 F1 41 42 46 FC ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 1 0 BITMAP 1E 21 61 52 52 4A 4A 86 84 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 04 1E 22 43 81 82 82 C4 78 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 04 1E 22 43 81 82 82 C4 78 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 14 1E 22 43 81 82 82 C4 78 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 1E 1E 22 43 81 82 82 C4 78 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 14 1E 22 43 81 82 82 C4 78 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 42 24 28 10 28 4C 84 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 1 0 BITMAP 1F80 2300 4700 8D00 9A00 B200 E400 F800 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 18 42 42 44 C4 84 84 88 78 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 1C 42 42 44 C4 84 84 88 78 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 1C 42 42 44 C4 84 84 88 78 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 14 42 42 44 C4 84 84 88 78 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 2 0 BITMAP 38 8C 48 50 70 20 60 40 40 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 0 BITMAP 20 60 7C 44 4C 70 80 80 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 -2 BITMAP 38 24 28 70 50 48 44 44 D8 80 80 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 08 3C 64 4C 98 B8 E8 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 08 3C 64 4C 98 B8 E8 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 28 3C 64 4C 98 B8 E8 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 3C 3C 64 4C 98 B8 E8 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 14 3C 64 4C 98 B8 E8 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 18 18 3C 64 4C 98 B8 E8 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 10 0 BBX 9 6 1 0 BITMAP 3F80 6480 C900 9E00 B880 E700 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 -2 BITMAP 38 40 80 80 90 70 20 60 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 10 38 48 90 E0 88 70 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 1 0 BITMAP 0C 38 48 90 E0 88 70 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 28 38 48 90 E0 88 70 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 28 38 48 90 E0 88 70 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 3 0 BBX 3 7 1 0 BITMAP 60 40 40 40 80 80 80 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 3 0 BBX 4 7 1 0 BITMAP 70 40 40 40 80 80 80 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 3 0 BBX 3 7 1 0 BITMAP E0 40 40 40 80 80 80 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 3 0 BBX 4 7 1 0 BITMAP 50 40 40 40 80 80 80 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 78 38 38 48 88 88 98 70 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 3C 5C 74 64 44 88 88 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 08 38 48 88 88 98 70 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 1 0 BITMAP 0C 38 48 88 88 98 70 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 28 38 48 88 88 98 70 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 1 0 BITMAP 3C 38 48 88 88 98 70 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 28 38 48 88 88 98 70 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 1 0 BITMAP 18 00 00 FE 00 30 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP 3C 48 98 A8 D8 F0 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 18 44 44 88 98 B8 E8 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 1C 44 44 88 98 B8 E8 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 38 44 44 88 98 B8 E8 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 28 44 44 88 98 B8 E8 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 1 -2 BITMAP 1C C4 48 58 50 60 60 40 80 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 -2 BITMAP 20 20 5C 74 64 48 48 F0 80 80 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 1 -2 BITMAP 28 C4 48 58 50 60 60 40 80 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 11 1 -2 BITMAP 1E 22 26 74 44 44 44 44 48 80 80 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 1 1 3 BITMAP F8 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 2 -2 BITMAP 10 20 20 F8 20 20 40 40 40 40 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 7 9 0 0 BITMAP 18 3E 04 08 18 30 60 40 FC ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 6 1 0 BITMAP 3B80 4C80 8900 8E00 9880 7700 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 2 0 BITMAP 28 8C 48 50 70 20 60 40 40 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 6 1 0 BITMAP 40 40 40 80 80 80 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 4 8 0 0 BITMAP 20 20 30 20 C0 40 40 40 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP 30 20 30 20 E0 40 40 7C ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 2 -2 BITMAP 10 10 20 78 20 20 F0 20 40 40 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 11 1 -2 BITMAP 18 22 20 7E 44 44 44 44 48 80 80 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 1 0 BITMAP 40 40 20 60 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 8 1 0 BITMAP 1FE0 2200 4200 83C0 8200 8600 C400 7FC0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 1 1 3 BITMAP FFC0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 4 7 BITMAP E0 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 2 1 2 -2 BITMAP C0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 1 3 7 BITMAP F0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 1 0 BITMAP 20 40 C0 80 40 40 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 1 1 4 7 BITMAP 80 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 1 3 7 BITMAP F0 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 3 2 2 BITMAP 70 F0 E0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 1 3 7 BITMAP F0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 3 7 BITMAP E0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 3 2 5 BITMAP 60 A0 A0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 1 3 2 5 BITMAP 80 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 7 1 0 BITMAP 30 38 40 60 30 90 F0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 2 2 4 7 BITMAP C0 C0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 2 4 0 -2 BITMAP 40 C0 40 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 2 -2 BITMAP 38 20 40 40 E0 40 40 40 80 80 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 4 2 4 BITMAP E9 4B 4F 5E ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 8 8 -2 0 BITMAP 01 02 04 08 10 20 40 80 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 2 1 4 7 BITMAP C0 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 8 1 0 BITMAP 3200 5400 5800 6800 16C0 2B20 4B20 8DC0 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 1 1 0 BITMAP 8880 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 3 2 5 BITMAP E0 A0 A0 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 1 0 BITMAP 18 3C 60 60 30 18 08 88 F0 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 0 -2 BITMAP 60 A0 A0 A0 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP 18 7C 08 10 20 40 F8 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/luIS10.bdf100644 1750 1750 64001 5413747521 15026 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Medium-I-Normal-Sans-14-100-100-100-P-80-ISO8859-1 SIZE 10 100 100 FONTBOUNDINGBOX 28 16 -9 -3 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Medium" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 14 POINT_SIZE 100 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 13 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 4 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 2 0 BITMAP 60 60 60 40 40 40 40 00 00 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 2 6 BITMAP D0 D0 D0 90 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 1 0 BITMAP 0480 0900 0900 7F80 1200 2400 FF00 4800 4800 9000 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 2 -2 BITMAP 08 3E 68 68 30 30 18 14 14 2C F8 20 20 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 10 0 BBX 11 10 1 0 BITMAP 3860 6880 4900 4A00 7400 0F80 1EC0 34C0 6480 C700 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 0 BITMAP 0E00 1B00 1300 1600 3800 E980 CD00 C700 C600 7B00 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 2 6 BITMAP C0 C0 40 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 5 0 BBX 5 13 1 -3 BITMAP 08 10 20 60 40 C0 C0 C0 C0 C0 C0 40 40 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 5 0 BBX 5 13 0 -3 BITMAP 20 10 10 18 18 18 18 10 10 30 60 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 7 0 BBX 6 5 2 5 BITMAP 20 A4 58 60 90 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 1 0 BITMAP 08 08 08 08 FF 10 10 10 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 4 0 BBX 2 5 1 -3 BITMAP 40 C0 40 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 9 0 BBX 8 1 1 4 BITMAP FF ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 4 0 BBX 2 1 1 0 BITMAP C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 7 0 BBX 9 13 0 -3 BITMAP 0180 0100 0300 0200 0400 0C00 0800 1800 1000 2000 6000 4000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 1E 33 63 43 C3 C3 C2 C6 CC 78 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 9 0 BBX 3 10 4 0 BITMAP E0 20 60 40 40 40 40 C0 80 80 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 1E 23 03 03 06 0C 30 60 C0 FC ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 3C 06 02 06 38 0C 06 06 0C F8 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 06 0E 1C 34 64 CC FE 08 08 18 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 2 0 BITMAP 3F 20 20 20 78 0C 06 04 0C F8 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 2 0 BITMAP 0F 31 60 40 FC E6 C2 C6 C4 78 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 2 0 BITMAP 7F 02 04 0C 18 30 20 60 C0 C0 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 2 0 BITMAP 1E 33 23 36 1C 6C C6 C6 C4 78 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 1E 23 63 43 67 3F 02 06 8C F8 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 4 0 BBX 3 7 1 0 BITMAP 60 00 00 00 00 00 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 1 -3 BITMAP 60 00 00 00 00 00 C0 40 40 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 1 0 BITMAP 0080 0700 1C00 F000 6000 1800 0600 0300 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 9 0 BBX 9 4 1 2 BITMAP FF80 0000 0000 FF80 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 0 0 BITMAP 6000 3000 0C00 0300 0780 1C00 7000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 6 0 BBX 6 10 2 0 BITMAP F8 8C 0C 18 30 60 40 00 00 C0 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 12 0 BBX 12 10 1 0 BITMAP 0FC0 1820 6790 4890 9990 9110 9330 DDC0 6000 3F00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 0 0 BITMAP 0600 0600 0F00 1B00 1900 3100 3F00 6180 4180 C180 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 0 BITMAP 3E 23 23 66 7C 44 46 46 CE FC ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 2 0 BITMAP 0F80 3080 6000 6000 C000 C000 C000 C000 4300 3E00 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 1 0 BITMAP 3F80 21C0 20C0 60C0 60C0 40C0 4080 4180 C300 FC00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 0 BITMAP 3F 20 20 60 7C 40 40 40 C0 FC ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 0 BITMAP 3F 20 20 60 7C 40 40 40 C0 C0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 2 0 BITMAP 0F80 3080 6000 4000 C000 C000 C300 C300 6300 3E00 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 1 0 BITMAP 30C0 20C0 2080 6080 7F80 4180 4180 4100 C100 C300 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 2 0 BITMAP 60 60 60 60 40 40 C0 C0 C0 C0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 6 0 BBX 7 13 0 -3 BITMAP 06 06 06 04 0C 0C 0C 0C 08 08 18 18 F0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 1 0 BITMAP 3180 2300 2600 6C00 7800 5000 4800 4400 C400 C200 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 30 20 60 60 60 40 40 C0 C0 FC ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 1 0 BITMAP 3060 30E0 78E0 79C0 7940 4AC0 4EC0 CCC0 CC80 C180 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 1 0 BITMAP 30C0 30C0 3880 7880 4C80 4C80 4780 4700 C300 C300 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 0F80 30C0 60C0 4040 C040 C0C0 C0C0 C180 6300 3C00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 0 BITMAP 3E 23 23 63 66 78 40 40 C0 C0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 -3 BITMAP 0F80 30C0 60C0 4040 C040 C0C0 C0C0 C180 6300 3E00 0200 01C0 0080 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 3F 23 23 62 64 78 4C 44 C6 C3 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 0 BITMAP 1F 31 20 30 18 0E 06 06 86 F8 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 2 0 BITMAP FF80 0800 1800 1800 1800 1000 1000 3000 3000 3000 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 2 0 BITMAP 6180 6180 6100 4100 C100 C300 C300 C200 C600 7C00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 2 0 BITMAP C180 C100 C300 4200 6600 6C00 6C00 7800 3000 3000 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 12 0 BBX 13 10 2 0 BITMAP C618 C630 CE20 CA60 DA40 D2C0 F280 E380 E300 4300 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 9 0 BBX 10 10 0 0 BITMAP 30C0 1980 1B00 0E00 0C00 0C00 1E00 3600 6300 C380 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 2 0 BITMAP C3 C6 64 68 30 30 30 20 20 60 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 8 0 BBX 9 10 0 0 BITMAP 3F80 0180 0300 0600 0C00 1800 3000 6000 E000 FE00 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 5 0 BBX 5 13 1 -3 BITMAP 38 20 20 20 20 60 40 40 40 40 C0 80 E0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 7 0 BBX 4 13 2 -3 BITMAP 80 C0 C0 40 40 40 60 20 20 20 30 30 10 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 5 0 BBX 5 13 0 -3 BITMAP 38 08 18 10 10 10 10 30 20 20 20 20 E0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 1 2 BITMAP 04 04 0C 16 32 22 43 C1 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 0 -2 BITMAP FC ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 2 6 BITMAP 40 80 80 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 0 BITMAP 1E 26 66 CC CC D4 EC ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 2 0 BITMAP 30 20 60 6E 56 66 66 CC C8 F0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 1E 60 40 C0 C0 C4 78 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 03 03 02 1E 32 66 C6 CC D4 EC ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 1C 64 4C F8 C0 C4 78 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 5 0 BBX 7 14 1 -3 BITMAP 0E 18 30 30 78 20 20 60 60 60 40 40 C0 C0 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 -3 BITMAP 0F 33 62 66 46 4A 76 04 84 F8 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 30 20 20 6E 56 66 66 44 C4 CC ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 2 0 BITMAP 20 00 00 60 40 40 40 C0 C0 C0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 5 0 BBX 7 13 -1 -3 BITMAP 06 00 00 04 04 0C 0C 0C 08 08 18 10 E0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 30 20 20 66 6C 58 70 58 D8 CC ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 1 0 BITMAP 30 30 20 20 60 60 40 40 C0 C0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 13 0 BBX 12 7 1 0 BITMAP 2E70 72B0 7330 6630 4620 4420 8460 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 0 BITMAP 6E 56 66 66 44 C4 CC ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 1C 62 42 C2 C6 CC 78 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 -3 BITMAP 37 2B 73 63 46 4C 78 C0 C0 80 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 -3 BITMAP 1E 26 66 CC CC D4 EC 0C 08 08 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 2 0 BITMAP 6C 50 60 60 40 C0 C0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 3C 64 60 30 18 98 F0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 5 0 BBX 5 9 1 0 BITMAP 20 20 F8 60 60 40 C0 C0 70 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 2 0 BITMAP 46 46 44 4C 8C DC EC ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 2 0 BITMAP C6 C4 CC D8 50 70 60 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 11 0 BBX 10 7 2 0 BITMAP CC40 CC80 D480 D500 6700 6600 4600 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 0 0 BITMAP 33 36 1C 18 3C 6C C6 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 -3 BITMAP C3 42 64 6C 68 70 30 60 40 C0 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 7E 0E 1C 38 70 E0 FC ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 5 0 BBX 5 13 1 -3 BITMAP 18 30 20 20 20 60 80 40 40 40 C0 C0 40 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 3 0 BBX 4 13 0 -3 BITMAP 10 30 20 20 20 20 60 40 40 40 40 C0 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 5 0 BBX 5 13 0 -3 BITMAP 10 18 18 10 10 10 08 30 20 20 20 60 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 9 0 BBX 9 3 1 2 BITMAP 7080 C980 8700 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 1 -3 BITMAP 60 00 00 40 40 40 40 C0 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 2 0 BITMAP 0C 0E 38 48 D0 D0 D0 D4 7C 20 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 2 0 BITMAP 0F 18 10 10 78 30 30 20 60 FC ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 9 0 BBX 10 8 0 1 BITMAP 6040 3E80 1100 2100 2100 3200 7F00 8180 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 2 0 BITMAP C3 66 6C 38 FC 30 F8 20 20 20 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 3 0 BBX 4 13 1 -3 BITMAP 10 30 20 20 20 00 00 00 40 40 40 C0 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 -3 BITMAP 1F 30 20 30 3C 66 62 72 3C 0E 06 84 F8 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 8 0 BBX 4 1 4 9 BITMAP 90 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 1 0 BITMAP 1F00 60C0 4760 8820 9020 9020 9820 4E60 60C0 1F00 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 5 0 BBX 6 5 2 5 BITMAP 3C 48 D8 A8 D8 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 12 24 48 D0 C8 68 24 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 9 0 BBX 8 4 1 2 BITMAP FF 01 03 02 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 4 0 BBX 3 1 2 4 BITMAP E0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 9 0 BBX 7 6 2 4 BITMAP 7C DE BA AA EE 7C ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 8 0 BBX 4 1 4 9 BITMAP F0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 4 0 BBX 3 2 2 8 BITMAP E0 E0 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 0 0 BITMAP 0400 0C00 0C00 7F80 0800 0800 0000 FF00 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 -7 4 BITMAP 78 08 18 20 40 F0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 -8 4 BITMAP 70 10 60 10 10 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 8 0 BBX 3 2 5 8 BITMAP 60 80 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 -3 BITMAP 23 23 62 66 46 4E 76 C0 C0 80 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 2 -3 BITMAP 7C F4 F4 F8 78 28 28 28 30 30 30 50 50 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 9 0 BBX 2 1 4 4 BITMAP C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 8 0 BBX 2 3 3 -3 BITMAP 40 40 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 5 0 BBX 2 6 -9 4 BITMAP C0 40 40 80 80 80 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 5 0 BBX 6 5 1 5 BITMAP 3C 4C CC C8 F0 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 48 24 24 12 24 48 90 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 6 0 BITMAP C060 40C0 4180 8300 8640 8CC0 1940 3140 63C0 C080 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 6 0 BITMAP C060 40C0 4180 8300 87E0 8C20 1860 3080 6100 C3C0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 12 0 BBX 12 10 7 0 BITMAP 7030 1060 60C0 1180 1320 E660 0CA0 18A0 31E0 6040 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 6 0 BBX 6 10 0 -3 BITMAP 0C 00 00 18 10 20 C0 C0 CC 78 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 0 0 BITMAP 0400 0200 0000 0600 0600 0F00 1B00 1900 3100 3F00 6180 4180 C180 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 0 0 BITMAP 0180 0200 0000 0600 0600 0F00 1B00 1900 3100 3F00 6180 4180 C180 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 0 0 BITMAP 0600 0D00 0000 0600 0600 0F00 1B00 1900 3100 3F00 6180 4180 C180 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 0 0 BITMAP 0780 0000 0600 0600 0F00 1B00 1900 3100 3F00 6180 4180 C180 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 0 0 BITMAP 0480 0000 0600 0600 0F00 1B00 1900 3100 3F00 6180 4180 C180 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 0 0 BITMAP 0300 0300 0000 0600 0600 0F00 1B00 1900 3100 3F00 6180 4180 C180 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 12 0 BBX 14 10 0 0 BITMAP 01FC 0380 0380 0680 0DF0 1980 3F00 3300 6300 C3F0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 2 -3 BITMAP 0F80 3080 6000 6000 C000 C000 C000 C000 4300 3E00 1000 1000 3000 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 8 0 BBX 8 13 1 0 BITMAP 08 04 00 3F 20 20 60 7C 40 40 40 C0 FC ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 8 0 BBX 8 13 1 0 BITMAP 06 08 00 3F 20 20 60 7C 40 40 40 C0 FC ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 8 0 BBX 8 13 1 0 BITMAP 0C 1A 00 3F 20 20 60 7C 40 40 40 C0 FC ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 1 0 BITMAP 12 00 3F 20 20 60 7C 40 40 40 C0 FC ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 4 0 BBX 3 13 2 0 BITMAP 40 20 00 60 60 60 60 40 40 C0 C0 C0 C0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 4 0 BBX 5 13 2 0 BITMAP 18 20 00 60 60 60 60 40 40 C0 C0 C0 C0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 4 0 BBX 4 13 2 0 BITMAP 60 D0 00 60 60 60 60 40 40 C0 C0 C0 C0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 4 0 BBX 5 12 2 0 BITMAP 48 00 60 60 60 60 40 40 C0 C0 C0 C0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 1 0 BITMAP 3F80 31C0 30C0 20C0 F8C0 60C0 6080 6180 4300 7E00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 1 0 BITMAP 0F00 0000 30C0 30C0 3880 7880 4C80 4C80 4780 4700 C300 C300 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0400 0200 0000 0F80 30C0 60C0 4040 C040 C0C0 C0C0 C180 6300 3C00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0300 0400 0000 0F80 30C0 60C0 4040 C040 C0C0 C0C0 C180 6300 3C00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0600 0D00 0000 0F80 30C0 60C0 4040 C040 C0C0 C0C0 C180 6300 3C00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 1 0 BITMAP 0F00 0000 0F80 30C0 60C0 4040 C040 C0C0 C0C0 C180 6300 3C00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 1 0 BITMAP 0900 0000 0F80 30C0 60C0 4040 C040 C0C0 C0C0 C180 6300 3C00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 1 0 BITMAP 6080 2300 1600 1C00 1800 3400 6200 8100 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 11 0 BBX 12 10 2 0 BITMAP 07F0 1860 30E0 21A0 6220 6460 6860 70C0 7180 DE00 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 2 0 BITMAP 0800 0400 0000 6180 6180 6100 4100 C100 C300 C300 C200 C600 7C00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 2 0 BITMAP 0600 0800 0000 6180 6180 6100 4100 C100 C300 C300 C200 C600 7C00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 2 0 BITMAP 0C00 1A00 0000 6180 6180 6100 4100 C100 C300 C300 C200 C600 7C00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 2 0 BITMAP 1200 0000 6180 6180 6100 4100 C100 C300 C300 C200 C600 7C00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 2 0 BITMAP 0C 10 00 C3 C6 64 68 30 30 30 20 20 60 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 20 20 7C 66 46 46 4C F8 C0 C0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 8 0 BBX 8 14 1 -3 BITMAP 1E 13 32 36 28 2C 2E 67 63 43 5E 40 C0 C0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 08 04 00 1E 26 66 CC CC D4 EC ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 06 08 00 1E 26 66 CC CC D4 EC ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 0C 1A 00 1E 26 66 CC CC D4 EC ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 1E 00 1E 26 66 CC CC D4 EC ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 12 00 1E 26 66 CC CC D4 EC ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 0C 0C 00 1E 26 66 CC CC D4 EC ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 12 0 BBX 12 7 1 0 BITMAP 1FE0 3330 6220 C7C0 CE00 DE10 F3E0 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 1 -3 BITMAP 1E 60 40 C0 C0 C4 78 20 20 60 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 08 04 00 1C 64 4C F8 C0 C4 78 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 1 0 BITMAP 06 08 00 1C 64 4C F8 C0 C4 78 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 1 0 BITMAP 0C 1A 00 1C 64 4C F8 C0 C4 78 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 1 0 BITMAP 12 00 1C 64 4C F8 C0 C4 78 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 1 0 BITMAP 20 10 00 60 60 60 40 40 C0 C0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 4 0 BBX 5 10 1 0 BITMAP 18 20 00 60 60 60 40 40 C0 C0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 4 0 BBX 5 10 1 0 BITMAP 30 68 00 60 60 60 40 40 C0 C0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 4 0 BBX 5 9 1 0 BITMAP 48 00 60 60 60 40 40 C0 C0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 3E 0C 16 3E 66 42 C2 C6 CC 78 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 1E 00 6E 56 66 66 44 C4 CC ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 08 04 00 1C 62 42 C2 C6 CC 78 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 06 08 00 1C 62 42 C2 C6 CC 78 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 0C 1A 00 1C 62 42 C2 C6 CC 78 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 1E 00 1C 62 42 C2 C6 CC 78 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 12 00 1C 62 42 C2 C6 CC 78 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 1 0 BITMAP 08 00 00 FF 00 00 10 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 1 0 BITMAP 1F 66 4E DA F6 EC F8 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 2 0 BITMAP 08 04 00 46 46 44 4C 8C DC EC ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 2 0 BITMAP 06 08 00 46 46 44 4C 8C DC EC ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 2 0 BITMAP 0C 1A 00 46 46 44 4C 8C DC EC ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 2 0 BITMAP 12 00 46 46 44 4C 8C DC EC ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 8 0 BBX 8 13 1 -3 BITMAP 06 08 00 C3 42 64 6C 68 70 30 60 40 C0 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 -3 BITMAP 30 30 20 27 2B 73 63 46 4C 78 C0 C0 80 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 1 -3 BITMAP 12 00 C3 42 64 6C 68 70 30 60 40 C0 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 14 1 -3 BITMAP 0F80 1180 3180 3100 7900 2300 2300 6300 6200 6200 4600 4000 C000 C000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 1 4 BITMAP FC ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 3 -3 BITMAP 10 10 10 30 FC 30 20 20 20 60 60 60 40 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 9 13 0 0 BITMAP 0B00 0600 0000 3F80 0180 0300 0600 0C00 1800 3000 6000 E000 FE00 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 12 7 1 0 BITMAP 1CE0 6330 4320 C3C0 C600 CE30 7BE0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 2 0 BITMAP 24 00 C3 C6 64 68 30 30 30 20 20 60 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 7 1 0 BITMAP 60 60 60 40 40 C0 C0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 5 10 1 0 BITMAP 30 30 30 28 30 E0 E0 60 60 40 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 10 30 30 38 30 E0 A0 60 60 7E ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 2 -3 BITMAP 08 08 18 18 7E 10 10 10 FC 30 30 20 20 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 14 1 -3 BITMAP 0E00 1980 3000 3000 7F00 2100 2300 6300 6200 6200 4600 4000 C000 C000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 0 BITMAP 40 20 20 10 20 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 10 1 0 BITMAP 0FFC 3180 6080 4180 C1F0 C180 C100 C100 6300 3FF0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 13 1 1 3 BITMAP FFF8 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 4 2 4 8 BITMAP B0 60 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 2 2 3 -3 BITMAP C0 C0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 2 4 8 BITMAP 38 E0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 0 BITMAP 10 20 40 80 C0 40 20 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 2 1 5 9 BITMAP C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 2 4 8 BITMAP 88 70 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 4 3 2 BITMAP 78 78 F0 F0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 4 1 4 9 BITMAP F0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 4 2 4 8 BITMAP 60 D0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 3 2 7 BITMAP 58 90 F0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 2 7 BITMAP C0 C0 C0 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 1 0 BITMAP 16 0C 00 3C 64 60 30 18 98 F0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 2 2 5 9 BITMAP C0 C0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 5 1 -3 BITMAP C0 C0 40 40 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 3 -3 BITMAP 1E 10 30 20 20 F8 60 60 60 40 40 C0 C0 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 5 2 5 BITMAP FE60 27E0 65C0 6540 4540 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 11 10 -3 0 BITMAP 0060 00C0 0180 0300 0600 0C00 1800 3000 6000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 2 2 5 8 BITMAP 80 40 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 17 10 0 0 BITMAP 3C3000 646000 44C000 450000 3A0000 05C700 0B6C80 126880 624980 C38F00 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 11 1 2 0 BITMAP C460 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 3 2 7 BITMAP 58 D0 B0 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 13 1 0 BITMAP 0B 06 00 1F 31 20 30 18 0E 06 06 86 F8 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 -3 BITMAP 58 D0 50 A0 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 16 0C 00 7E 0E 1C 38 70 E0 FC ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/luIS12.bdf100644 1750 1750 73075 5413747521 15043 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Medium-I-Normal-Sans-17-120-100-100-P-97-ISO8859-1 SIZE 12 100 100 FONTBOUNDINGBOX 32 19 -10 -3 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Medium" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 17 POINT_SIZE 120 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 97 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 15 FONT_DESCENT 4 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 5 0 BBX 4 12 2 0 BITMAP 30 30 20 20 60 60 60 40 40 00 C0 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 6 0 BBX 5 4 3 8 BITMAP D8 D8 D8 D8 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 11 0 BBX 11 12 1 0 BITMAP 0360 06C0 04C0 7FE0 7FE0 1900 1300 FFC0 FFC0 2600 4C00 DC00 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 2 -1 BITMAP 0400 1F80 3F80 7400 2C00 3800 0800 0C00 1E00 1B00 1200 F600 FC00 1000 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 13 0 BBX 14 12 1 0 BITMAP 1C1C 3E30 6260 7EC0 3980 03F0 07F0 0D90 1910 3330 61F0 C1E0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 12 0 BBX 12 12 1 0 BITMAP 03C0 07E0 0C60 0CC0 0F80 3E00 7630 C330 C3E0 E1C0 7FC0 3CE0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 2 8 BITMAP 60 60 60 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 6 0 BBX 6 15 2 -3 BITMAP 04 08 10 30 60 60 C0 C0 C0 C0 C0 C0 C0 60 20 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 6 0 BBX 6 15 0 -3 BITMAP 10 18 18 0C 0C 0C 0C 0C 08 18 18 30 60 C0 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 8 0 BBX 6 6 3 6 BITMAP 10 10 FC 30 D0 98 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 0600 0600 0C00 0C00 FFC0 FFC0 0C00 0C00 1800 1800 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 -3 BITMAP 60 60 60 40 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 11 0 BBX 10 2 1 4 BITMAP FFC0 FFC0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 5 0 BBX 2 2 2 0 BITMAP C0 C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 8 0 BBX 11 15 0 -3 BITMAP 0060 00C0 00C0 0180 0100 0300 0600 0400 0C00 1800 1000 3000 6000 6000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 2 0 BITMAP 0F00 1F80 3180 60C0 60C0 C080 C180 C180 C300 E700 7E00 3C00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 11 0 BBX 4 12 5 0 BITMAP F0 F0 30 20 20 60 60 60 40 40 C0 C0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 2 0 BITMAP 1F00 3F80 2180 0180 0180 0700 0E00 1800 3000 6000 FE00 FE00 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 2 0 BITMAP 1F00 3F80 0180 0180 0300 3C00 3F00 0700 0300 8700 FE00 FC00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP 0380 0780 0700 0D00 1B00 3300 6200 FF80 FF80 0600 0600 0600 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 2 0 BITMAP 1F80 3F80 2000 2000 3C00 3E00 0700 0300 0300 0600 FE00 F800 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 2 0 BITMAP 0780 1FC0 3840 6000 7F00 FF00 E180 C180 C180 E300 7E00 3C00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 3 0 BITMAP 3F80 7F80 0380 0700 0E00 1C00 3800 3000 7000 6000 C000 C000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 2 0 BITMAP 0F00 1F80 30C0 3080 3380 3E00 7F00 E180 C180 C380 FF00 7C00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 2 0 BITMAP 0F00 3F80 31C0 60C0 60C0 61C0 7F80 3D80 0300 8700 FE00 7800 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 5 0 BBX 3 9 2 0 BITMAP 60 60 00 00 00 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 5 0 BBX 4 12 1 -3 BITMAP 30 30 00 00 00 00 00 60 40 40 40 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 11 0 BBX 12 10 2 0 BITMAP 0010 00F0 03C0 0F00 3800 F800 1E00 0780 03C0 00C0 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 11 0 BBX 11 5 1 2 BITMAP 7FE0 7FE0 0000 FFC0 FFC0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 11 0 BBX 12 10 0 0 BITMAP 3000 3800 1E00 0780 01F0 01C0 0F00 3C00 F000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 8 0 BBX 7 12 2 0 BITMAP 7C 7E 86 06 0C 18 30 60 60 00 C0 C0 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 15 0 BBX 14 12 2 0 BITMAP 07E0 1FF0 3818 63CC 4FC4 888C 998C 9EF8 CCF0 6080 7F80 1E00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 0 0 BITMAP 0380 0380 0780 0680 0CC0 18C0 18C0 3FC0 3FC0 60E0 6060 C060 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 3F00 3F80 3180 3180 2300 7E00 7F00 6300 6380 4300 FF00 FC00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 2 0 BITMAP 07C0 1FE0 3820 7000 6000 E000 C000 C000 C000 E080 7F80 3E00 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 13 0 BBX 12 12 1 0 BITMAP 3FC0 3FE0 3070 3030 2030 6030 6030 6060 40E0 41C0 FF80 FE00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 2 0 BITMAP 3F80 3F80 3000 2000 6000 7E00 7E00 6000 4000 C000 FE00 FE00 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 2 0 BITMAP 3F80 3F80 3000 2000 6000 7E00 7E00 6000 6000 C000 C000 C000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 2 0 BITMAP 07C0 1FE0 3820 7000 6000 C000 C0C0 C0C0 C080 E180 7F80 3F00 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 12 0 BBX 12 12 1 0 BITMAP 3030 3030 3020 3060 2060 7FE0 7FE0 6040 60C0 40C0 C0C0 C0C0 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 5 0 BBX 4 12 2 0 BITMAP 30 30 30 60 60 60 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 7 0 BBX 8 15 0 -3 BITMAP 03 03 03 06 06 06 06 06 0C 0C 0C 0C 18 F8 F0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 11 0 BBX 11 12 1 0 BITMAP 38E0 31C0 3380 3700 2C00 7800 7C00 6C00 6600 4700 C380 C1C0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 0 BITMAP 38 30 30 30 20 60 60 60 40 40 FF FF ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 14 0 BBX 13 12 2 0 BITMAP 3838 3838 2878 2C50 6CF0 6CB0 6DB0 6D30 4F20 C660 C660 C060 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 13 0 BBX 12 12 2 0 BITMAP 3830 3830 3820 2C20 2C60 6660 6660 6340 4340 41C0 C1C0 C1C0 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 13 0 BBX 12 12 2 0 BITMAP 07C0 1FF0 3870 7030 6030 E030 C030 C070 C060 E1C0 7F80 3E00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 2 0 BITMAP 3F00 3F80 3180 2180 6180 6300 7E00 7C00 6000 C000 C000 C000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 2 -3 BITMAP 07C0 1FE0 3870 7030 6030 E030 C030 C070 C060 E1C0 7F80 3F00 0380 01F0 0060 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 2 0 BITMAP 3F00 3F80 3180 2180 6100 6200 7C00 7C00 6600 C600 C300 C380 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 9 0 BBX 10 12 1 0 BITMAP 0F80 1FC0 3840 3000 3800 1E00 0F00 0300 0380 8300 FF00 7E00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 11 0 BBX 11 12 2 0 BITMAP FFE0 FFE0 0C00 0C00 0C00 0C00 1800 1800 1800 1800 1800 3000 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 2 0 BITMAP 30C0 60C0 60C0 6080 6180 6180 C180 C100 C100 E300 FE00 7C00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 3 0 BITMAP C060 C0C0 C0C0 6180 6180 6300 6200 6600 3C00 3C00 3800 3800 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 15 0 BBX 15 12 3 0 BITMAP C386 C38C C78C C798 C598 CDB0 C9B0 D9E0 D1E0 71C0 61C0 6180 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 11 0 BBX 12 12 0 0 BITMAP 3830 1860 0CC0 0D80 0700 0600 0F00 0F00 1B80 3180 6180 C0C0 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 3 0 BITMAP C1C0 6180 6300 7700 3E00 3C00 1800 1800 3000 3000 3000 3000 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 10 0 BBX 11 12 1 0 BITMAP 1FE0 1FE0 00C0 0180 0300 0600 0C00 1800 3000 6000 FF80 FF80 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 6 0 BBX 6 15 1 -3 BITMAP 1C 1C 30 30 20 20 20 60 60 40 40 40 C0 E0 E0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 8 0 BBX 5 15 3 -3 BITMAP C0 C0 C0 40 60 60 60 20 30 30 30 10 18 18 18 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 6 0 BBX 6 15 1 -3 BITMAP 1C 1C 0C 08 08 08 18 18 10 10 10 30 30 E0 E0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 11 0 BBX 10 11 1 2 BITMAP 0200 0200 0700 0700 0D00 1D00 1980 3080 7080 60C0 C0C0 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 9 0 BBX 7 2 1 -1 BITMAP FE FE ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 2 8 BITMAP 60 40 C0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 0F80 1F80 3180 6300 4700 C700 DF00 FF00 7600 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 2 0 BITMAP 1000 3000 3000 2700 3F80 7D80 7980 7100 6300 4600 FC00 F800 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 0F 3F 70 60 C0 C0 C2 FE 78 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 1 0 BITMAP 00C0 00C0 0080 0F80 1F80 3180 6380 4300 C700 CF00 FF00 7600 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 0E 3F 62 66 FC C0 C3 FE 7C ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 6 0 BBX 8 16 1 -3 BITMAP 0F 1F 18 30 7C 7C 30 30 20 60 60 60 60 40 C0 C0 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 1 -3 BITMAP 07C0 1FC0 3880 3080 6180 6380 6580 7D00 7300 8300 FE00 7C00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 2 0 BITMAP 1800 3000 3000 3780 2F80 7D80 7980 7100 6300 6300 C300 C300 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 5 0 BBX 4 12 2 0 BITMAP 30 30 00 20 60 60 60 60 40 C0 C0 C0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 6 0 BBX 8 15 -1 -3 BITMAP 03 03 00 06 06 06 06 04 0C 0C 0C 0C 18 F0 E0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 2 0 BITMAP 1800 3000 3000 3380 2700 6E00 7C00 7800 5C00 4C00 C600 C300 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 5 0 BBX 4 12 2 0 BITMAP 30 30 30 20 60 60 60 60 40 C0 C0 C0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 16 0 BBX 14 9 2 0 BITMAP 271C 6FFC 7D6C 7BCC 7388 6398 C318 C218 C618 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 11 0 BBX 9 9 2 0 BITMAP 3780 2F80 7D80 7980 7100 6300 6300 C300 C300 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 0F00 3F80 7180 6180 C180 C300 C700 FE00 7800 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 1 -3 BITMAP 3380 3FC0 3CC0 38C0 3180 6180 6300 7E00 7C00 4000 C000 C000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 -3 BITMAP 0F80 1F80 3100 6300 4700 CF00 DF00 FE00 7200 0600 0600 0600 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 1 0 BITMAP 33 2F 7C 78 70 60 40 C0 C0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 1C 3E 32 30 18 1C 8C FC 78 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 2 0 BITMAP 20 20 F8 F8 60 60 60 40 C0 E0 70 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 11 0 BBX 9 9 2 0 BITMAP 6180 6180 6300 6300 C700 CF00 DF00 FA00 F600 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 3 0 BITMAP C3 C6 C6 CC 4C 58 70 70 60 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 13 0 BBX 12 9 2 0 BITMAP C630 CE30 CE60 DE60 5AC0 5AC0 7380 7380 6300 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 9 0 BBX 10 9 0 0 BITMAP 30C0 1980 1B00 0E00 0C00 1E00 3600 6300 C380 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 9 0 BBX 10 12 2 -3 BITMAP 61C0 6380 6300 6600 6E00 6C00 3800 3800 3000 3000 6000 C000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 1 0 BITMAP 3F80 3F80 0700 0E00 1C00 3800 7000 FF00 FF00 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 6 0 BBX 6 15 1 -3 BITMAP 1C 1C 38 30 30 30 30 E0 E0 60 60 60 C0 E0 60 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 4 0 BBX 4 15 1 -3 BITMAP 30 30 30 20 20 20 60 60 60 40 40 40 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 6 0 BBX 6 15 0 -3 BITMAP 18 1C 0C 08 18 18 0C 0C 30 30 30 30 30 E0 E0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 11 0 BBX 10 4 1 3 BITMAP 7040 7CC0 CF80 8380 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 5 0 BBX 4 12 1 -3 BITMAP 30 30 00 20 20 60 60 60 40 40 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 11 0 BBX 8 12 3 0 BITMAP 04 0F 3F 78 68 C8 C8 D0 D2 FE 7C 30 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 2 0 BITMAP 0780 0F80 1800 1800 1800 7C00 7C00 3000 3000 2000 7E00 FE00 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 11 0 BBX 13 10 0 1 BITMAP 7030 3778 1FE0 18C0 3040 30C0 3180 3FC0 6EE0 C040 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 3 0 BITMAP E1C0 6300 3E00 1C00 7E00 FE00 1000 FE00 FE00 3000 3000 3000 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 4 0 BBX 4 15 1 -3 BITMAP 30 30 30 20 20 60 00 00 00 60 40 40 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 1 -3 BITMAP 0FC0 1F80 3800 3000 1800 3E00 6700 6180 7980 1F00 0600 0300 8700 FF00 7C00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 10 0 BBX 5 2 5 10 BITMAP D8 D8 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 15 0 BBX 14 12 2 0 BITMAP 0FC0 3FF0 7038 4388 CFCC 9844 9884 DF8C 4F08 7038 3FF0 0FC0 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 2 6 BITMAP 38 7E C4 DC FC EC ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 2 0 BITMAP 11 3B 76 6C D8 DC 6C 26 24 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 11 0 BBX 10 5 2 2 BITMAP FFC0 FFC0 00C0 0080 0080 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 5 0 BBX 4 2 2 4 BITMAP F0 F0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 11 0 BBX 8 7 3 5 BITMAP 3C 7E DF 99 EB 7E 3C ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 10 0 BBX 5 2 5 10 BITMAP F8 F8 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 3 9 BITMAP E0 A0 E0 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 1 0 BITMAP 0200 0200 0600 7FE0 7FE0 0400 0400 0000 FFC0 FFC0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 -8 5 BITMAP 38 64 04 18 20 40 F8 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 -8 5 BITMAP 78 08 08 70 18 18 F0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 10 0 BBX 4 3 6 9 BITMAP 30 60 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 1 -3 BITMAP 30C0 30C0 3080 2180 6180 6380 6780 7D00 7B00 C000 C000 C000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 11 0 BBX 8 15 2 -3 BITMAP 7F FF FA FA FA 7A 12 14 14 14 34 2C 28 28 68 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 11 0 BBX 2 2 5 4 BITMAP C0 C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 10 0 BBX 3 3 3 -3 BITMAP 60 20 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 6 0 BBX 2 7 -10 5 BITMAP C0 40 40 80 80 80 80 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 2 6 BITMAP 1C 7E C6 C6 FC 70 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 2C 66 36 3B 1B 36 6E DC 88 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 15 0 BBX 13 12 7 0 BITMAP C018 4030 4060 80C0 8180 8330 8630 0C50 18A0 31F0 6020 C020 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 15 0 BBX 13 12 7 0 BITMAP C018 4030 4060 80C0 8180 8370 86C8 0C08 1830 3040 6080 C1F0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 15 0 BBX 14 12 8 0 BITMAP 780C 0818 0830 7060 18C0 1998 F318 0628 0C50 18F8 3010 6010 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 8 0 BBX 7 12 1 -3 BITMAP 06 06 00 0C 0C 18 30 60 C0 C2 FC 7C ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 12 0 BBX 11 16 0 0 BITMAP 0300 0100 0180 0000 0380 0380 0780 0680 0CC0 18C0 18C0 3FC0 3FC0 60E0 6060 C060 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 12 0 BBX 11 16 0 0 BITMAP 0060 00C0 0180 0000 0380 0380 0780 0680 0CC0 18C0 18C0 3FC0 3FC0 60E0 6060 C060 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 12 0 BBX 11 16 0 0 BITMAP 0180 0380 0640 0000 0380 0380 0780 0680 0CC0 18C0 18C0 3FC0 3FC0 60E0 6060 C060 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 0 0 BITMAP 01A0 02C0 0000 0380 0380 0780 0680 0CC0 18C0 18C0 3FC0 3FC0 60E0 6060 C060 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 0 0 BITMAP 06C0 06C0 0000 0380 0380 0780 0680 0CC0 18C0 18C0 3FC0 3FC0 60E0 6060 C060 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 12 0 BBX 11 16 0 0 BITMAP 01C0 0140 01C0 0000 0380 0380 0780 0680 0CC0 18C0 18C0 3FC0 3FC0 60E0 6060 C060 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 15 0 BBX 17 12 0 0 BITMAP 007F80 00FF80 01E000 03E000 037E00 067E00 0C4000 1FC000 1FC000 30C000 60FE00 C0FE00 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 2 -3 BITMAP 07C0 1FE0 3820 7000 6000 E000 C000 C000 C000 E080 7F80 3E00 1000 0800 3800 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 9 0 BBX 9 16 2 0 BITMAP 0C00 0400 0600 0000 3F80 3F80 3000 2000 6000 7E00 7E00 6000 4000 C000 FE00 FE00 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 9 0 BBX 9 16 2 0 BITMAP 0300 0600 0C00 0000 3F80 3F80 3000 2000 6000 7E00 7E00 6000 4000 C000 FE00 FE00 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 9 0 BBX 9 16 2 0 BITMAP 0600 0E00 1900 0000 3F80 3F80 3000 2000 6000 7E00 7E00 6000 4000 C000 FE00 FE00 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 9 0 BBX 9 15 2 0 BITMAP 1B00 1B00 0000 3F80 3F80 3000 2000 6000 7E00 7E00 6000 4000 C000 FE00 FE00 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 5 0 BBX 5 16 2 0 BITMAP 30 10 18 00 30 30 30 60 60 60 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 5 0 BBX 6 16 2 0 BITMAP 0C 18 30 00 30 30 30 60 60 60 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 5 0 BBX 6 16 2 0 BITMAP 18 38 64 00 30 30 30 60 60 60 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 5 0 BBX 6 15 2 0 BITMAP 6C 6C 00 30 30 30 60 60 60 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 13 0 BBX 12 12 1 0 BITMAP 1FC0 1FE0 3870 3030 3030 FC30 FC30 3060 60E0 61C0 7F80 7F00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 2 0 BITMAP 0340 0580 0000 3830 3830 3820 2C20 2C60 6660 6660 6340 4340 41C0 C1C0 C1C0 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 13 0 BBX 12 16 2 0 BITMAP 0300 0100 0180 0000 07C0 1FF0 3870 7030 6030 E030 C030 C070 C060 E1C0 7F80 3E00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 13 0 BBX 12 16 2 0 BITMAP 00C0 0180 0300 0000 07C0 1FF0 3870 7030 6030 E030 C030 C070 C060 E1C0 7F80 3E00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 13 0 BBX 12 16 2 0 BITMAP 0180 0380 0640 0000 07C0 1FF0 3870 7030 6030 E030 C030 C070 C060 E1C0 7F80 3E00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 2 0 BITMAP 0340 0580 0000 07C0 1FF0 3870 7030 6030 E030 C030 C070 C060 E1C0 7F80 3E00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 2 0 BITMAP 06C0 06C0 0000 07C0 1FF0 3870 7030 6030 E030 C030 C070 C060 E1C0 7F80 3E00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 1 0 BITMAP 6060 30E0 1980 1B00 0E00 0E00 1F00 3380 E180 C0C0 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 13 0 BBX 14 12 3 0 BITMAP 03EC 0FF8 1C38 3878 30D8 7398 6718 6E38 7C30 78E0 7FC0 FF00 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 12 0 BBX 10 16 2 0 BITMAP 0C00 0400 0600 0000 30C0 60C0 60C0 6080 6180 6180 C180 C100 C100 E300 FE00 7C00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 12 0 BBX 10 16 2 0 BITMAP 0180 0300 0600 0000 30C0 60C0 60C0 6080 6180 6180 C180 C100 C100 E300 FE00 7C00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 12 0 BBX 10 16 2 0 BITMAP 0600 0E00 1900 0000 30C0 60C0 60C0 6080 6180 6180 C180 C100 C100 E300 FE00 7C00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 2 0 BITMAP 1B00 1B00 0000 30C0 60C0 60C0 6080 6180 6180 C180 C100 C100 E300 FE00 7C00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 10 0 BBX 10 16 3 0 BITMAP 0300 0600 0C00 0000 C1C0 6180 6300 7700 3E00 3C00 1800 1800 3000 3000 3000 3000 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 2 0 BITMAP 3000 3000 3F00 3F80 2180 6180 6180 6700 7E00 7C00 C000 C000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 10 0 BBX 9 16 1 -3 BITMAP 0F00 1F80 1980 1300 3600 3C00 3C00 2E00 2300 6180 6180 6F80 7F00 4000 C000 C000 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 0 BITMAP 0600 0200 0300 0000 0F80 1F80 3180 6300 4700 C700 DF00 FF00 7600 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 0 BITMAP 0180 0300 0600 0000 0F80 1F80 3180 6300 4700 C700 DF00 FF00 7600 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 0 BITMAP 0300 0700 0C80 0000 0F80 1F80 3180 6300 4700 C700 DF00 FF00 7600 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 0680 0B00 0000 0F80 1F80 3180 6300 4700 C700 DF00 FF00 7600 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 0D80 0D80 0000 0F80 1F80 3180 6300 4700 C700 DF00 FF00 7600 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 0 BITMAP 0700 0500 0700 0000 0F80 1F80 3180 6300 4700 C700 DF00 FF00 7600 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 15 0 BBX 14 9 1 0 BITMAP 0FBC 1FFC 31CC 6388 C7F0 C700 DF04 FDFC 70F0 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 -3 BITMAP 0F 3F 70 60 C0 C0 C2 FE 78 20 10 70 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 0 BITMAP 0C 04 06 00 0E 3F 62 66 FC C0 C3 FE 7C ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 0 BITMAP 03 06 0C 00 0E 3F 62 66 FC C0 C3 FE 7C ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 0 BITMAP 06 0E 19 00 0E 3F 62 66 FC C0 C3 FE 7C ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 0 BITMAP 1B 1B 00 0E 3F 62 66 FC C0 C3 FE 7C ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 5 0 BBX 4 13 2 0 BITMAP 60 20 30 00 60 60 60 60 40 40 C0 C0 C0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 5 0 BBX 6 13 2 0 BITMAP 0C 18 30 00 60 60 60 60 40 40 C0 C0 C0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 5 0 BBX 5 13 2 0 BITMAP 30 70 C8 00 60 60 60 60 40 40 C0 C0 C0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 5 0 BBX 6 12 2 0 BITMAP 6C 6C 00 60 60 60 60 40 40 C0 C0 C0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 1 0 BITMAP 3F00 3E00 1F00 1F00 3F80 7380 6180 C180 C300 C700 FE00 7800 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 2 0 BITMAP 0680 0B00 0000 3780 2F80 7D80 7980 7100 6300 6300 C300 C300 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 0 BITMAP 0C00 0400 0600 0000 0F00 3F80 7180 6180 C180 C300 C700 FE00 7800 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 0 BITMAP 0180 0300 0600 0000 0F00 3F80 7180 6180 C180 C300 C700 FE00 7800 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 0 BITMAP 0600 0E00 1900 0000 0F00 3F80 7180 6180 C180 C300 C700 FE00 7800 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 0680 0B00 0000 0F00 3F80 7180 6180 C180 C300 C700 FE00 7800 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 0D80 0D80 0000 0F00 3F80 7180 6180 C180 C300 C700 FE00 7800 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 1 0 BITMAP 0600 0400 0000 FFC0 FFC0 0000 0000 0800 1800 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 1 0 BITMAP 0FC0 3F80 7380 6780 CD80 DB00 F700 FE00 F800 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 2 0 BITMAP 0C00 0400 0600 0000 6180 6180 6300 6300 C700 CF00 DF00 FA00 F600 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 2 0 BITMAP 0180 0300 0600 0000 6180 6180 6300 6300 C700 CF00 DF00 FA00 F600 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 2 0 BITMAP 0600 0E00 1900 0000 6180 6180 6300 6300 C700 CF00 DF00 FA00 F600 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 2 0 BITMAP 1B00 1B00 0000 6180 6180 6300 6300 C700 CF00 DF00 FA00 F600 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 9 0 BBX 10 16 2 -3 BITMAP 0300 0600 0C00 0000 61C0 6380 6300 6600 6E00 6C00 3800 3800 3000 3000 6000 C000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 10 0 BBX 10 15 1 -3 BITMAP 1800 1800 3000 3380 3FC0 3CC0 38C0 7180 6180 6300 7E00 7C00 C000 C000 C000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 9 0 BBX 10 15 2 -3 BITMAP 1B00 1B00 0000 61C0 6380 6300 6600 6E00 6C00 3800 3800 3000 3000 6000 C000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 16 1 -3 BITMAP 07E0 0FE0 1840 1840 7EC0 7CC0 30C0 3080 3180 2180 6180 6180 6300 4000 C000 C000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 2 2 4 BITMAP FE FE ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 7 15 3 -3 BITMAP 18 18 18 10 FE FE 10 30 30 30 30 20 60 60 60 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 11 16 1 0 BITMAP 04C0 0380 0300 0000 1FE0 1FE0 00C0 0180 0300 0600 0C00 1800 3000 6000 FF80 FF80 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 14 9 1 0 BITMAP 0F3C 3F7C 71C4 618C C1F0 C380 C784 FDFC 78F8 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 15 3 0 BITMAP 1B00 1B00 0000 C1C0 6180 6300 7700 3E00 3C00 1800 1800 3000 3000 3000 3000 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 9 2 0 BITMAP 60 60 60 60 40 40 C0 C0 C0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 6 12 1 0 BITMAP 18 18 10 14 3C 30 F0 A0 20 60 60 60 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 0 0 BITMAP 1800 1800 1800 1E00 3C00 3000 F000 B000 2000 2000 7F80 7F80 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 15 2 -3 BITMAP 0C 0C 0C 08 7F 7F 18 18 18 FE FE 10 30 30 30 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 1 -3 BITMAP 0700 1FC0 18C0 3000 7F80 7F80 3180 3180 2180 6100 6300 6300 6300 4000 C000 C000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 60 30 30 38 18 30 60 C0 C0 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 17 12 2 0 BITMAP 07BF80 1FFF80 386000 706000 606000 C07E00 C07E00 C04000 C0C000 E1C000 7FFE00 3EFE00 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 16 2 1 4 BITMAP FFFF FFFF ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 5 3 5 9 BITMAP 98 70 60 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 3 3 3 -3 BITMAP 60 80 E0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 3 5 9 BITMAP 3C 78 F0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 2 0 BITMAP 18 38 30 60 C0 C0 60 20 30 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 2 2 6 10 BITMAP C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 3 5 9 BITMAP 84 C8 70 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 5 3 3 BITMAP 7C 7C FC F8 F8 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 5 2 5 10 BITMAP 68 B0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 5 3 5 9 BITMAP 30 70 C8 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 4 2 8 BITMAP 4C 58 D8 F8 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 2 4 3 8 BITMAP C0 C0 C0 C0 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 13 1 0 BITMAP 13 0E 0C 00 1C 3E 32 30 18 1C 8C FC 78 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 3 3 6 10 BITMAP E0 A0 E0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 0 -3 BITMAP 60 E0 60 40 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 15 4 -3 BITMAP 0F 1F 18 30 30 30 F8 F8 20 60 60 60 40 C0 C0 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 13 6 2 6 BITMAP FF98 FFB8 33B0 22F0 62D0 62B0 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 13 12 -3 0 BITMAP 0018 0030 0060 00C0 0180 0300 0600 0C00 1800 3000 6000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 3 3 6 9 BITMAP C0 40 60 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 19 12 0 0 BITMAP 1C0C00 3E1800 623000 7E6000 38C000 01F1E0 03F3E0 059320 091220 333660 61F3E0 C1E3C0 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 13 2 2 0 BITMAP C218 C218 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 4 2 8 BITMAP 6C 58 48 90 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 10 16 1 0 BITMAP 0980 0700 0600 0000 0F80 1FC0 3840 3000 3800 1E00 0F00 0300 0380 8300 FF00 7E00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 5 0 -3 BITMAP 4C 58 48 48 90 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 13 1 0 BITMAP 0980 0700 0600 0000 3F80 3F80 0700 0E00 1C00 3800 7000 FF00 FF00 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/luIS14.bdf100644 1750 1750 100332 5413747522 15051 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Medium-I-Normal-Sans-20-140-100-100-P-114-ISO8859-1 SIZE 14 100 100 FONTBOUNDINGBOX 38 22 -12 -4 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Medium" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 20 POINT_SIZE 140 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 114 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 18 FONT_DESCENT 5 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 6 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 6 0 BBX 5 14 2 0 BITMAP 18 18 30 30 30 30 30 20 60 60 00 00 C0 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 7 0 BBX 5 5 4 9 BITMAP D8 D8 D8 C8 C8 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 2 0 BITMAP 0330 0270 0660 04E0 7FF0 7FF0 0880 1980 1100 FFE0 FFE0 2600 6E00 DC00 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 13 0 BBX 10 18 3 -2 BITMAP 0200 0600 1FC0 3FC0 3400 2400 3400 1C00 0C00 0E00 0B00 0B00 0B00 1300 F600 FC00 1000 1000 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 2 0 BITMAP 1C0C 3E18 6230 6660 7CC0 3980 0170 02F0 0590 0D18 1910 3130 61F0 C0E0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 14 0 BBX 12 14 2 0 BITMAP 03C0 07E0 0C60 0C60 0CC0 0F80 3E00 7630 C330 C370 C1E0 E1C0 7FC0 3C60 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 3 9 BITMAP 70 70 60 E0 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 7 0 BBX 7 18 2 -4 BITMAP 06 04 08 18 30 60 60 60 C0 C0 C0 C0 C0 C0 C0 60 60 20 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 7 0 BBX 7 18 0 -4 BITMAP 08 18 0C 0C 04 06 06 06 04 0C 0C 0C 18 18 30 60 C0 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 3 7 BITMAP 18 10 D6 6C 30 C8 48 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 13 0 BBX 12 12 1 0 BITMAP 0300 0300 0300 0600 0600 FFF0 FFF0 0600 0600 0C00 0C00 0C00 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 -4 BITMAP 70 70 70 20 60 60 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 13 0 BBX 12 2 1 5 BITMAP FFF0 FFF0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 6 0 BBX 3 2 2 0 BITMAP E0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 10 0 BBX 13 18 0 -4 BITMAP 0018 0030 0020 0060 00C0 00C0 0180 0100 0300 0600 0400 0C00 1800 1800 3000 2000 6000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 2 0 BITMAP 0780 1FC0 38C0 3060 6060 6060 C060 C0C0 C0C0 C0C0 C180 E300 7F00 3C00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 13 0 BBX 5 14 5 0 BITMAP 78 F8 10 30 30 30 30 60 60 60 60 60 C0 C0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 2 0 BITMAP 0F80 1FE0 10E0 0060 0060 00C0 0180 0300 0E00 1800 3000 6000 FF80 FF80 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 13 0 BBX 10 14 2 0 BITMAP 1F80 1FC0 10C0 00C0 00C0 0380 1E00 1F80 0380 0180 0180 8300 FF00 FC00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 13 0 BBX 10 14 2 0 BITMAP 01C0 01C0 0380 0680 0D80 1980 3180 2100 6100 FFC0 FFC0 0300 0300 0600 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 3 0 BITMAP 1FE0 1FC0 1000 3000 3000 3E00 3F00 0380 0180 0180 0180 8300 FE00 FC00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 3 0 BITMAP 07C0 0FE0 1820 3000 6000 6F00 FF80 E1C0 C0C0 C0C0 C180 E380 7F00 3C00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 3 0 BITMAP 3FE0 3FE0 00E0 01C0 0380 0700 0E00 1C00 3800 3000 7000 6000 E000 C000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 13 0 BBX 10 14 3 0 BITMAP 0F80 1FC0 38C0 30C0 3180 3B80 1E00 7F00 6380 C180 C180 E380 FF00 3C00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 2 0 BITMAP 0F80 1FC0 38C0 3060 6060 6060 71E0 3FC0 1EC0 00C0 0180 8700 FE00 7C00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 6 0 BBX 4 11 2 0 BITMAP 30 30 00 00 00 00 00 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 6 0 BBX 5 15 1 -4 BITMAP 18 18 00 00 00 00 00 00 00 60 60 60 40 40 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 13 0 BBX 13 12 2 0 BITMAP 0008 0038 00E0 0780 1E00 7800 F000 3C00 0F00 03C0 01E0 0060 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 13 0 BBX 13 6 1 3 BITMAP 7FF8 7FF8 0000 0000 FFF0 FFF0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 13 0 BBX 13 12 0 0 BITMAP 3000 3C00 1E00 0780 01E0 0078 00F0 03C0 0F00 3800 E000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 9 0 BBX 8 14 3 0 BITMAP 7E 7F 87 03 03 06 1C 38 70 60 60 00 C0 C0 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 17 0 BBX 16 14 2 0 BITMAP 03F0 0FFC 1C0E 31F2 63E3 4621 8423 8CE2 8CE6 8F7C C638 7040 3FC0 0F80 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 0 0 BITMAP 00C0 01E0 01E0 0360 0360 0660 0C70 0C30 1830 1FF0 3FF0 6038 6018 C018 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 2 0 BITMAP 1F80 1FC0 30C0 30E0 30C0 3180 3F00 7F80 6180 60C0 60C0 6380 FF80 FE00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 2 0 BITMAP 03F0 0FF8 1C08 3800 7000 6000 E000 C000 C000 C000 C000 6020 7FE0 1F00 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 2 0 BITMAP 1FF0 1FF8 383C 301C 300C 300C 300C 601C 6018 6038 6030 40E0 FFC0 FF00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 2 0 BITMAP 1FE0 1FE0 3800 3000 3000 3000 3F80 7F00 6000 6000 6000 6000 FF80 FF80 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 2 0 BITMAP 1FE0 1FE0 3800 3000 3000 3000 3F80 7F00 6000 6000 6000 6000 C000 C000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 2 0 BITMAP 03F0 0FF8 1C08 3800 7000 6000 E000 C030 C060 C060 E060 7060 7FE0 1F80 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 2 0 BITMAP 180C 180C 3018 3018 3018 3018 3FF8 7FF0 6030 6030 6030 6030 C060 C060 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 6 0 BBX 5 14 2 0 BITMAP 18 18 30 30 30 30 30 60 60 60 60 60 C0 C0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 8 0 BBX 10 18 0 -4 BITMAP 00C0 00C0 0180 0180 0180 0180 0180 0300 0300 0300 0300 0300 0600 0600 0600 0C00 FC00 F800 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 13 0 BBX 13 14 2 0 BITMAP 1838 1860 38C0 3180 3300 3600 3C00 6E00 6600 6700 6380 6180 C0C0 C0E0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 2 0 BITMAP 1800 1800 3000 3000 3000 3000 2000 6000 6000 6000 6000 4000 FF80 FF80 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 17 0 BBX 16 14 2 0 BITMAP 1C07 1C0F 3C0E 3C1E 3416 3636 2666 6664 66CC 668C 478C 430C C318 C018 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 2 0 BITMAP 180C 1C0C 3C08 3C08 3618 3618 2318 6310 61B0 61B0 40F0 40F0 C0E0 C060 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 2 0 BITMAP 03E0 0FF8 1C3C 381C 700C 600C E00C C00C C018 C038 E070 70E0 7FC0 1F00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 2 0 BITMAP 1FC0 1FE0 3860 3060 3060 30C0 31C0 7F80 7E00 6000 6000 6000 C000 C000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 2 -4 BITMAP 03E0 0FF8 1C38 381C 700C 600C E00C C00C C018 C038 E070 70E0 7FC0 1F80 01C0 00F0 007C 0018 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 2 0 BITMAP 1FC0 1FE0 30E0 3060 3060 30C0 3180 7E00 7F00 6300 6380 6180 C0C0 C0C0 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 1 0 BITMAP 07C0 1FE0 1820 3000 3800 1C00 0E00 0700 0380 0180 0180 8380 FF00 7E00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 12 0 BBX 13 14 2 0 BITMAP FFF8 FFF8 0600 0600 0600 0E00 0C00 0C00 0C00 0C00 1800 1800 1800 1800 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 14 0 BBX 12 14 3 0 BITMAP 3030 3030 7030 6060 6060 6060 6060 C060 C0C0 C0C0 C0C0 E180 FF80 7E00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 3 0 BITMAP C018 C030 E030 6060 60C0 60C0 6180 7180 3300 3600 3600 3C00 3C00 1800 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 18 0 BBX 17 14 3 0 BITMAP C1C180 C1C300 C3C300 C3C600 C2C600 C6CC00 C4CC00 CCD800 C8D800 58F000 50F000 70E000 70E000 60C000 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 12 0 BBX 15 14 0 0 BITMAP 1C0E 0C1C 0638 0630 0360 03C0 0180 0380 07C0 0CC0 1860 3860 7030 E038 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 3 0 BITMAP C070 60E0 60C0 3180 3300 3F00 1E00 1C00 1800 1800 1800 1800 3000 3000 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 12 0 BBX 13 14 1 0 BITMAP 1FF8 1FF8 0070 00E0 00C0 0180 0300 0600 0C00 1800 3800 7000 FFE0 FFC0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 7 0 BBX 8 18 1 -4 BITMAP 0F 0F 18 18 18 18 30 30 30 30 20 60 60 60 40 40 F0 F0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 10 0 BBX 6 18 3 -4 BITMAP C0 C0 40 40 60 60 20 20 30 30 10 10 18 18 08 08 0C 0C ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 7 0 BBX 8 18 0 -4 BITMAP 0F 0F 02 02 06 06 06 04 0C 0C 0C 0C 18 18 18 18 F0 F0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 13 0 BBX 12 12 1 2 BITMAP 0080 0180 0380 0380 06C0 0EC0 0C40 1860 3860 7020 6020 C030 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 10 0 BBX 8 2 1 -2 BITMAP FF FF ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 3 9 BITMAP 30 60 40 E0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 12 0 BBX 11 11 2 0 BITMAP 07E0 1FE0 3860 30C0 60C0 61C0 C3C0 C7C0 CF80 FD80 7180 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 2 0 BITMAP 1800 1800 1000 31C0 37E0 3E60 3C60 7860 70C0 60C0 6180 4380 FF00 FC00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 10 0 BBX 9 11 2 0 BITMAP 0F80 1F80 3800 6000 6000 C000 C000 C000 C100 7E00 3C00 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 2 0 BITMAP 0030 0030 0060 07E0 0FE0 1860 30E0 60C0 61C0 C3C0 C7C0 CF80 FD80 7180 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 11 0 BBX 9 11 2 0 BITMAP 0F00 1F80 3180 6100 4300 FC00 F000 C080 C300 7F00 3C00 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 8 0 BBX 10 20 1 -4 BITMAP 03C0 07C0 0C00 1800 1800 7F00 7F00 1000 3000 3000 3000 3000 2000 6000 6000 6000 6000 4000 C000 C000 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 1 -4 BITMAP 07E0 0FE0 1C60 3840 30C0 60C0 61C0 62C0 6680 7D80 3980 0180 8300 FE00 7C00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP 1800 1800 3000 3380 37C0 3EC0 3CC0 78C0 7080 7180 6180 4180 C180 C380 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 6 0 BBX 5 14 2 0 BITMAP 18 18 00 30 30 30 60 60 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 7 0 BBX 10 18 -1 -4 BITMAP 00C0 00C0 0000 0180 0180 0180 0180 0300 0300 0300 0300 0700 0600 0600 0600 0C00 F800 F000 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP 1800 1800 3000 31C0 3380 3700 2E00 6C00 7800 6C00 6600 4600 C300 C380 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 6 0 BBX 5 14 2 0 BITMAP 18 18 10 30 30 30 30 60 60 60 60 40 C0 C0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 19 0 BBX 17 11 2 0 BITMAP 31C700 37CF80 3EDD80 7CF980 78F180 70E300 70C300 61C300 E18300 C18300 C18600 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 12 0 BBX 10 11 2 0 BITMAP 3380 37C0 2EC0 7CC0 78C0 7080 7180 6180 C180 C180 C380 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 11 0 BBX 10 11 2 0 BITMAP 0F00 1F80 31C0 60C0 60C0 C0C0 C180 C180 C300 7E00 3C00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 1 -4 BITMAP 19C0 37E0 3E60 3C60 3860 38C0 30C0 6180 6380 7F00 7C00 6000 C000 C000 C000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 2 -4 BITMAP 07E0 1FE0 3860 30C0 60C0 61C0 C3C0 C7C0 CF80 FD80 7180 0180 0180 0300 0300 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 10 0 BBX 9 11 2 0 BITMAP 3180 3780 3E00 6C00 7800 7000 6000 6000 C000 C000 C000 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 2 0 BITMAP 1E 3F 31 30 38 1C 0E 06 86 FE 7C ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 8 0 BBX 6 13 3 0 BITMAP 30 30 FC FC 60 60 60 60 60 40 C0 F0 70 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 12 0 BBX 10 11 2 0 BITMAP 70C0 60C0 60C0 6180 6380 C380 C780 CF80 DD00 FB00 7300 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 11 0 BBX 10 11 3 0 BITMAP C0C0 C180 C100 C300 4600 4600 6C00 6800 7800 7000 7000 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 16 0 BBX 15 11 2 0 BITMAP C386 C38C C78C C798 CD98 CDB0 59B0 59E0 71E0 71C0 61C0 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 11 0 BBX 12 11 0 0 BITMAP 1830 1860 0CC0 0D80 0700 0600 0F00 1B00 3180 6180 C0C0 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 11 0 BBX 11 15 2 -4 BITMAP 6060 60C0 61C0 6180 6380 3300 3600 3E00 3C00 3800 3800 3000 3000 6000 C000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 11 0 BBX 10 11 1 0 BITMAP 3FC0 3FC0 0180 0300 0600 0C00 1800 3000 6000 FF80 FF80 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 7 0 BBX 7 18 2 -4 BITMAP 0E 1E 18 18 18 18 30 30 E0 C0 60 20 60 60 C0 C0 F0 60 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 5 0 BBX 5 18 1 -4 BITMAP 18 18 18 10 10 30 30 30 20 20 60 60 60 40 40 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 7 0 BBX 7 18 0 -4 BITMAP 08 1E 06 04 0C 0C 08 0C 06 0E 18 30 30 30 30 30 F0 E0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 13 0 BBX 12 4 1 4 BITMAP 3810 7E30 C7E0 81C0 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 6 0 BBX 5 15 1 -4 BITMAP 18 18 00 00 30 30 30 20 60 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 13 0 BBX 9 14 3 0 BITMAP 0200 0600 1F80 3F80 7400 6400 C400 C400 C800 C800 7F00 3E00 0800 1000 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 3 0 BITMAP 03E0 07E0 0E20 0C00 0C00 0C00 3E00 7E00 1800 1800 1000 2000 FF00 FF00 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 13 0 BBX 14 12 1 1 BITMAP 3008 3BBC 1FF0 0C60 1820 1020 1020 1060 18C0 3FE0 6770 8020 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 3 0 BITMAP E030 60C0 3180 3B00 1E00 1C00 7F80 FF00 1800 FF00 FF00 1800 1800 3000 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 5 0 BBX 5 18 1 -4 BITMAP 18 18 10 10 10 30 30 00 00 00 00 60 60 40 40 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 13 0 BBX 11 18 2 -4 BITMAP 07E0 1FE0 1840 3000 1000 1C00 3F00 3380 60C0 70C0 3D80 1F80 0700 0180 0180 8380 FF00 3C00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 11 0 BBX 6 2 6 12 BITMAP CC CC ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 17 0 BBX 15 14 3 0 BITMAP 0FC0 1FF0 3038 63CC C7E4 8C24 9806 9806 98C4 CF84 678C 3038 1FF0 0FC0 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 3 7 BITMAP 18 7F 62 C6 DE F6 EC ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 2 0 BITMAP 08C0 1DC0 3B80 7700 EE00 CE00 6600 2700 3300 1100 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 13 0 BBX 12 6 2 3 BITMAP FFF0 FFF0 0030 0020 0020 0020 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 6 0 BBX 5 2 2 6 BITMAP F8 F8 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 13 0 BBX 7 8 5 6 BITMAP 3C 7E DE 9A B2 EE 7E 3C ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 11 0 BBX 6 2 6 12 BITMAP FC FC ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 4 11 BITMAP E0 A0 E0 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 13 0 BBX 13 12 1 0 BITMAP 0180 0100 0100 7FF8 7FF8 0300 0200 0200 0200 0000 FFF0 FFF0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 -10 5 BITMAP 3C 26 02 06 0C 10 60 40 FC ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 -10 5 BITMAP 38 04 04 08 38 08 08 08 F0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 11 0 BBX 5 3 7 11 BITMAP 38 60 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 13 0 BBX 11 15 2 -4 BITMAP 3860 3060 3060 30C0 30C0 21C0 61C0 62C0 6680 7D80 7980 4000 C000 C000 C000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 13 0 BBX 9 18 3 -4 BITMAP 7F80 FF80 FD80 FD00 FD00 7900 7900 1B00 1A00 1A00 1200 1200 1600 3400 3400 2400 2400 2C00 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 13 0 BBX 3 2 6 6 BITMAP E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 11 0 BBX 3 5 4 -4 BITMAP 60 40 20 60 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 8 0 BBX 3 9 -12 5 BITMAP E0 20 40 40 40 40 40 80 80 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 2 7 BITMAP 1E 3F 63 C3 C6 FC 78 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 6200 3300 3B80 1980 1DC0 1DC0 3B80 7700 EE00 C400 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 17 0 BBX 15 14 7 0 BITMAP E006 200C 4018 4030 4060 40CC 418C 8318 8628 0C48 18C8 30FC 6008 C010 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 17 0 BBX 15 14 7 0 BITMAP E006 200C 4018 4030 4060 40FC 41A6 8302 8606 0C0C 1810 3060 6040 C0FC ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 17 0 BBX 17 14 9 0 BITMAP 380180 040300 040600 080C00 381800 083300 086300 08C600 F18A00 031200 063200 0C3F00 180200 300400 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 9 0 BBX 8 15 1 -4 BITMAP 03 03 00 00 06 06 0C 18 30 60 C0 C0 E1 FE 7E ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 0 0 BITMAP 01C0 00C0 0060 0000 00C0 01E0 01E0 0360 0360 0660 0C70 0C30 1830 1FF0 3FF0 6038 6018 C018 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 0 0 BITMAP 0038 0060 00C0 0000 00C0 01E0 01E0 0360 0360 0660 0C70 0C30 1830 1FF0 3FF0 6038 6018 C018 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 0 0 BITMAP 00E0 01A0 0330 0000 00C0 01E0 01E0 0360 0360 0660 0C70 0C30 1830 1FF0 3FF0 6038 6018 C018 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 0 0 BITMAP 01D0 02E0 0000 00C0 01E0 01E0 0360 0360 0660 0C70 0C30 1830 1FF0 3FF0 6038 6018 C018 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 0 0 BITMAP 0330 0330 0000 00C0 01E0 01E0 0360 0360 0660 0C70 0C30 1830 1FF0 3FF0 6038 6018 C018 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 0 0 BITMAP 00E0 00A0 00E0 0000 00C0 01E0 01E0 0360 0360 0660 0C70 0C30 1830 1FF0 3FF0 6038 6018 C018 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 18 0 BBX 20 14 0 0 BITMAP 001FF0 003FF0 007800 00F800 01D800 019FC0 033F80 063000 0FF000 1FF000 183000 306000 607FC0 E07FC0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 2 -4 BITMAP 03F0 0FF8 1C08 3800 7000 6000 E000 C000 C000 C000 C000 6020 7FE0 1F00 0800 0400 0C00 1800 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 11 0 BBX 11 18 2 0 BITMAP 0E00 0600 0300 0000 1FE0 1FE0 3800 3000 3000 3000 3F80 7F00 6000 6000 6000 6000 FF80 FF80 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 11 0 BBX 11 18 2 0 BITMAP 01C0 0300 0600 0000 1FE0 1FE0 3800 3000 3000 3000 3F80 7F00 6000 6000 6000 6000 FF80 FF80 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 11 0 BBX 11 18 2 0 BITMAP 0700 0D00 1980 0000 1FE0 1FE0 3800 3000 3000 3000 3F80 7F00 6000 6000 6000 6000 FF80 FF80 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 11 0 BBX 11 17 2 0 BITMAP 0CC0 0CC0 0000 1FE0 1FE0 3800 3000 3000 3000 3F80 7F00 6000 6000 6000 6000 FF80 FF80 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 6 0 BBX 6 18 2 0 BITMAP 38 18 0C 00 18 18 30 30 30 30 30 60 60 60 60 60 C0 C0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 6 0 BBX 7 18 2 0 BITMAP 0E 18 30 00 18 18 30 30 30 30 30 60 60 60 60 60 C0 C0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 6 0 BBX 7 18 2 0 BITMAP 1C 34 66 00 18 18 30 30 30 30 30 60 60 60 60 60 C0 C0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 6 0 BBX 7 17 2 0 BITMAP 66 66 00 18 18 30 30 30 30 30 60 60 60 60 60 C0 C0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 15 0 BBX 15 14 1 0 BITMAP 0FF8 1FFC 181E 180E 1806 1806 FF06 FF0E 300C 301C 3038 6070 7FE0 7F80 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 2 0 BITMAP 01D0 02E0 0000 180C 1C0C 3C08 3C08 3618 3618 2318 6310 61B0 61B0 40F0 40F0 C0E0 C060 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 2 0 BITMAP 0380 0180 00C0 0000 03E0 0FF8 1C3C 381C 700C 600C E00C C00C C018 C038 E070 70E0 7FC0 1F00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 2 0 BITMAP 0070 00C0 0180 0000 03E0 0FF8 1C3C 381C 700C 600C E00C C00C C018 C038 E070 70E0 7FC0 1F00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 2 0 BITMAP 01C0 0340 0660 0000 03E0 0FF8 1C3C 381C 700C 600C E00C C00C C018 C038 E070 70E0 7FC0 1F00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 2 0 BITMAP 01D0 02E0 0000 03E0 0FF8 1C3C 381C 700C 600C E00C C00C C018 C038 E070 70E0 7FC0 1F00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 2 0 BITMAP 0330 0330 0000 03E0 0FF8 1C3C 381C 700C 600C E00C C00C C018 C038 E070 70E0 7FC0 1F00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 13 0 BBX 13 12 1 0 BITMAP 2008 3038 1870 0CC0 0580 0700 0700 0F80 19C0 70C0 E060 8060 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 16 0 BBX 17 14 3 0 BITMAP 01F380 07FE00 0E1E00 1C1E00 383600 306600 70C600 618600 630C00 661C00 7C3800 387000 3FE000 EF8000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 3 0 BITMAP 0700 0300 0180 0000 3030 3030 7030 6060 6060 6060 6060 C060 C0C0 C0C0 C0C0 E180 FF80 7E00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 3 0 BITMAP 00E0 0180 0300 0000 3030 3030 7030 6060 6060 6060 6060 C060 C0C0 C0C0 C0C0 E180 FF80 7E00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 3 0 BITMAP 0380 0680 0CC0 0000 3030 3030 7030 6060 6060 6060 6060 C060 C0C0 C0C0 C0C0 E180 FF80 7E00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 3 0 BITMAP 0CC0 0CC0 0000 3030 3030 7030 6060 6060 6060 6060 C060 C0C0 C0C0 C0C0 E180 FF80 7E00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 12 0 BBX 12 18 3 0 BITMAP 01C0 0300 0600 0000 C070 60E0 60C0 3180 3300 3F00 1E00 1C00 1800 1800 1800 1800 3000 3000 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP 1800 3000 3000 3F80 3FC0 30C0 60C0 61C0 6380 7F00 7C00 C000 C000 C000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 12 0 BBX 11 20 1 -4 BITMAP 07C0 0FC0 0CE0 18C0 18C0 1980 1B00 3600 3300 3380 30C0 3060 6060 6060 67C0 6780 6000 C000 C000 C000 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 2 0 BITMAP 0700 0300 0180 0000 07E0 1FE0 3860 30C0 60C0 61C0 C3C0 C7C0 CF80 FD80 7180 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 2 0 BITMAP 00E0 0180 0300 0000 07E0 1FE0 3860 30C0 60C0 61C0 C3C0 C7C0 CF80 FD80 7180 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 2 0 BITMAP 0380 0680 0CC0 0000 07E0 1FE0 3860 30C0 60C0 61C0 C3C0 C7C0 CF80 FD80 7180 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 2 0 BITMAP 03A0 05C0 0000 07E0 1FE0 3860 30C0 60C0 61C0 C3C0 C7C0 CF80 FD80 7180 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 2 0 BITMAP 0660 0660 0000 07E0 1FE0 3860 30C0 60C0 61C0 C3C0 C7C0 CF80 FD80 7180 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 2 0 BITMAP 0380 0280 0380 0000 07E0 1FE0 3860 30C0 60C0 61C0 C3C0 C7C0 CF80 FD80 7180 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 18 0 BBX 16 11 2 0 BITMAP 07FE 1FFF 38F3 30C3 61C6 63FC C3E0 C781 CEC3 FCFE 7878 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 10 0 BBX 9 15 2 -4 BITMAP 0F80 1F80 3800 6000 6000 C000 C000 C000 C100 7E00 3C00 1000 0800 1800 3000 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 11 0 BBX 9 15 2 0 BITMAP 0E00 0600 0300 0000 0F00 1F80 3180 6100 4300 FC00 F000 C080 C300 7F00 3C00 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 2 0 BITMAP 01C0 0300 0600 0000 0F00 1F80 3180 6100 4300 FC00 F000 C080 C300 7F00 3C00 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 11 0 BBX 9 15 2 0 BITMAP 0700 0D00 1980 0000 0F00 1F80 3180 6100 4300 FC00 F000 C080 C300 7F00 3C00 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 2 0 BITMAP 1980 1980 0000 0F00 1F80 3180 6100 4300 FC00 F000 C080 C300 7F00 3C00 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 6 0 BBX 6 15 2 0 BITMAP 38 18 0C 00 30 30 30 60 60 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 6 0 BBX 7 15 2 0 BITMAP 0E 18 30 00 30 30 30 60 60 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 6 0 BBX 7 15 2 0 BITMAP 1C 34 66 00 30 30 30 60 60 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 6 0 BBX 7 14 2 0 BITMAP 66 66 00 30 30 30 60 60 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 2 0 BITMAP 3F80 3F00 1F00 0F80 1F80 31C0 60C0 60C0 C080 C180 C180 E300 7E00 3C00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP 0740 0B80 0000 3380 37C0 2EC0 7CC0 78C0 7080 7180 6180 C180 C180 C380 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 2 0 BITMAP 0700 0300 0180 0000 0F00 1F80 31C0 60C0 60C0 C0C0 C180 C180 C300 7E00 3C00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 2 0 BITMAP 01C0 0300 0600 0000 0F00 1F80 31C0 60C0 60C0 C0C0 C180 C180 C300 7E00 3C00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 2 0 BITMAP 0380 0680 0CC0 0000 0F00 1F80 31C0 60C0 60C0 C0C0 C180 C180 C300 7E00 3C00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 2 0 BITMAP 0740 0B80 0000 0F00 1F80 31C0 60C0 60C0 C0C0 C180 C180 C300 7E00 3C00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 2 0 BITMAP 0CC0 0CC0 0000 0F00 1F80 31C0 60C0 60C0 C0C0 C180 C180 C300 7E00 3C00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 13 0 BBX 12 11 1 0 BITMAP 0300 0700 0000 0000 0000 FFF0 FFF0 0000 0000 0E00 0C00 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 11 0 BBX 12 11 3 0 BITMAP 07B0 0FE0 18E0 31E0 3360 6660 6CC0 78C0 7180 7F00 DE00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 2 0 BITMAP 0700 0300 0180 0000 70C0 60C0 60C0 6180 6380 C380 C780 CF80 DD00 FB00 7300 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 2 0 BITMAP 01C0 0300 0600 0000 70C0 60C0 60C0 6180 6380 C380 C780 CF80 DD00 FB00 7300 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 2 0 BITMAP 0380 0680 0CC0 0000 70C0 60C0 60C0 6180 6380 C380 C780 CF80 DD00 FB00 7300 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP 0CC0 0CC0 0000 70C0 60C0 60C0 6180 6380 C380 C780 CF80 DD00 FB00 7300 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 11 0 BBX 11 19 2 -4 BITMAP 01C0 0300 0600 0000 6060 60C0 61C0 6180 6380 3300 3600 3E00 3C00 3800 3800 3000 3000 6000 C000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 12 0 BBX 11 18 1 -4 BITMAP 1800 1800 1800 19C0 37E0 3E60 3C60 3860 38C0 30C0 6180 6380 7F00 7C00 6000 C000 C000 C000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 11 0 BBX 11 18 2 -4 BITMAP 0CC0 0CC0 0000 6060 60C0 61C0 6180 6380 3300 3600 3E00 3C00 3800 3800 3000 3000 6000 C000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 13 20 1 -4 BITMAP 03F8 07F8 0C38 1830 1830 7F30 7F30 1830 3060 3060 3060 3060 2060 60C0 60C0 60C0 6000 4000 C000 C000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 2 2 5 BITMAP FF FF ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 9 18 4 -4 BITMAP 0600 0400 0C00 0C00 0C00 FF80 FF80 0800 1800 1800 1000 1000 3000 3000 3000 2000 6000 6000 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 13 18 1 0 BITMAP 0330 0160 01C0 0000 1FF8 1FF8 0070 00E0 00C0 0180 0300 0600 0C00 1800 3800 7000 FFE0 FFC0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 16 11 2 0 BITMAP 0F8F 1F9F 30F3 60E3 60C6 C0FC C0E0 C1C1 C3C3 7EFF 3C7C ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 17 3 0 BITMAP 1980 1980 0000 C070 60E0 60C0 3180 3300 3F00 1E00 1C00 1800 1800 1800 1800 3000 3000 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 11 2 0 BITMAP 30 30 30 60 60 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 7 14 1 0 BITMAP 0C 08 18 1A 1E 1C 30 F0 B0 30 30 20 60 60 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 0C00 0C00 1800 1A00 1E00 1C00 3800 F000 B000 3000 3000 3000 7FC0 7FC0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 10 18 3 -4 BITMAP 0300 0200 0600 0600 0600 7FC0 7FC0 0C00 0C00 0C00 0C00 FF80 FF80 1800 1800 1800 1000 3000 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 12 20 2 -4 BITMAP 0380 0F80 0C30 1830 1800 7FE0 7FE0 3060 3060 3040 30C0 30C0 60C0 60C0 6080 6180 6000 C000 C000 C000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 20 30 38 18 1C 1C 38 70 E0 C0 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 20 14 2 0 BITMAP 03EFF0 0FFFF0 1C1C00 381800 701800 601800 E01FC0 C03F80 C03000 C03000 E07000 70E000 7FFFC0 1F7FC0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 18 2 2 5 BITMAP FFFFC0 FFFFC0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 3 6 11 BITMAP CC 58 70 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 3 4 -4 BITMAP 60 80 E0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 7 3 6 11 BITMAP 3E 68 F0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 2 0 BITMAP 0C 1C 38 70 E0 C0 60 20 30 10 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 2 2 8 12 BITMAP C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 3 6 11 BITMAP 84 C8 70 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 7 6 4 4 BITMAP 7E 7E 7E FC FC FC ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 2 6 12 BITMAP 74 B8 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 3 5 11 BITMAP 38 68 CC ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 4 3 10 BITMAP 24 4C DC D8 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 2 4 4 10 BITMAP C0 C0 C0 C0 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 15 2 0 BITMAP 0CC0 0580 0700 0000 1E00 3F00 3100 3000 3800 1C00 0E00 0600 8600 FE00 7C00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 3 7 13 BITMAP E0 A0 E0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 7 1 -4 BITMAP 60 E0 E0 60 40 40 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 9 18 4 -4 BITMAP 0780 0F80 1800 1800 1000 3000 3000 FC00 FC00 3000 3000 6000 6000 6000 6000 4000 C000 C000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 15 7 3 7 BITMAP FEC6 FCCE 31CC 31D4 2174 216C 630C ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 15 14 -4 0 BITMAP 0006 000C 0018 0030 0060 00C0 0180 0300 0600 0C00 1800 3000 6000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 4 3 6 11 BITMAP E0 60 30 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 22 14 1 0 BITMAP 1E0300 3F0600 210C00 631800 7E3000 3C6000 00B838 017C7C 02C4C4 04C684 088484 108C8C 20F8F8 C07070 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 16 2 2 0 BITMAP C183 C183 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 4 3 10 BITMAP 6C 6C 4C 98 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 18 1 0 BITMAP 0660 02C0 0380 0000 07C0 1FE0 1820 3000 3800 1C00 0E00 0700 0380 0180 0180 8380 FF00 7E00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 -4 BITMAP 6C 6C 6C 44 4C 48 90 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 15 1 0 BITMAP 0660 02C0 0380 0000 3FC0 3FC0 0180 0300 0600 0C00 1800 3000 6000 FF80 FF80 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/luIS18.bdf100644 1750 1750 112121 5413747522 15054 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Medium-I-Normal-Sans-25-180-100-100-P-141-ISO8859-1 SIZE 18 100 100 FONTBOUNDINGBOX 48 28 -15 -5 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Medium" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 25 POINT_SIZE 180 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 141 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 23 FONT_DESCENT 6 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 8 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 8 0 BBX 6 18 3 0 BITMAP 1C 1C 1C 18 18 18 38 30 30 30 30 20 60 00 00 00 E0 E0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 9 0 BBX 7 6 4 12 BITMAP CE CE CC CC CC CC ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 2 0 BITMAP 00C6 008C 018C 0118 0318 7FFE 7FFE 0620 0460 0C40 08C0 FFFC FFFC 3180 3380 6300 6700 C600 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 16 0 BBX 12 22 3 -2 BITMAP 0180 0180 03F0 0FF0 1F90 3900 3100 3300 3A00 1E00 0E00 0700 0580 04C0 04C0 04C0 0CC0 89C0 FF80 FE00 0800 1800 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 19 0 BBX 18 18 2 0 BITMAP 0F01C0 1F8300 398600 318600 318C00 219800 333000 3F6000 1EC000 019E00 033F00 037300 066300 0C4300 184300 306600 607E00 C03800 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 18 0 BBX 16 18 2 0 BITMAP 00F8 01FC 038C 030C 031C 0338 03F0 07E0 1F83 7983 71C7 E0C6 E0E6 E07C E038 7078 7FDC 1F1E ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 4 12 BITMAP 70 70 70 60 60 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 8 0 BBX 8 22 2 -4 BITMAP 01 03 06 0C 1C 18 30 70 60 60 E0 E0 C0 C0 C0 C0 C0 C0 60 60 30 10 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 8 0 BBX 8 22 1 -4 BITMAP 08 0C 06 06 03 03 03 03 03 03 03 07 07 06 0E 0C 1C 18 30 60 C0 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 12 0 BBX 9 9 4 9 BITMAP 0C00 0C00 4800 EB80 3700 1800 2400 E600 4400 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 16 0 BBX 15 15 2 0 BITMAP 00C0 00C0 0180 0180 0180 0180 FFFE FFFE 0300 0300 0300 0300 0300 0600 0600 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 8 0 BBX 4 8 2 -5 BITMAP 70 70 70 20 20 60 60 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 16 0 BBX 15 2 2 6 BITMAP FFFE FFFE ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 8 0 BBX 4 2 2 0 BITMAP 70 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 12 0 BBX 16 22 0 -4 BITMAP 0003 0006 000C 000C 0018 0038 0030 0060 0060 00C0 0180 0180 0300 0600 0600 0C00 1C00 1800 3000 3000 6000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 16 0 BBX 13 18 3 0 BITMAP 03E0 07F0 1C38 1818 3018 7018 6018 6018 E018 E018 E038 C030 C070 C060 E0E0 71C0 7F80 1E00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 16 0 BBX 6 18 7 0 BITMAP 7C FC 18 18 18 38 38 30 30 30 70 70 60 60 60 E0 E0 C0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 2 0 BITMAP 07F0 0FF8 183C 001C 001C 001C 0018 0038 0070 00E0 0380 0700 0C00 3800 7000 7000 FFE0 FFE0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 16 0 BBX 13 18 3 0 BITMAP 0FC0 0FF0 1870 0038 0038 0070 00E0 0FC0 1F80 01E0 00E0 0060 0060 0060 00E0 C1C0 FF80 7E00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 16 0 BBX 13 18 2 0 BITMAP 0038 0078 00F0 01F0 03B0 0730 0E70 1C60 1860 3060 6060 FFF8 FFF8 00C0 00C0 01C0 01C0 0180 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 16 0 BBX 13 18 3 0 BITMAP 0FF8 1FF8 1800 1800 1800 1000 3F00 3FC0 01E0 00E0 0060 0060 0060 00E0 00C0 C3C0 FF80 FE00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 3 0 BITMAP 01F8 07FC 0E08 1800 3800 3000 67C0 7FE0 F870 E030 E030 E030 C030 E070 E0E0 71C0 7F80 1F00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 4 0 BITMAP 3FFC 3FFC 003C 0078 00F0 00E0 01C0 0380 0700 0E00 1C00 1C00 3800 3800 7000 7000 E000 E000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 16 0 BBX 13 18 3 0 BITMAP 03E0 0FF0 1C30 1838 3830 3830 1CE0 1FC0 0F80 3FC0 71E0 60E0 E060 C060 E0E0 E1C0 7F80 3F00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 3 0 BITMAP 03E0 0FF0 1C38 3818 3018 301C 7018 7018 7038 3878 3FF8 0FB0 0030 0060 00E0 C1C0 FF80 7E00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 8 0 BBX 5 13 3 0 BITMAP 38 38 00 00 00 00 00 00 00 00 00 E0 E0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 8 0 BBX 6 18 2 -5 BITMAP 1C 1C 00 00 00 00 00 00 00 00 00 70 60 20 60 60 C0 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 16 0 BBX 16 15 2 0 BITMAP 0001 0007 001E 0078 03E0 0F80 3C00 F000 3C00 1E00 0780 01E0 00F0 0038 0008 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 16 0 BBX 16 6 1 4 BITMAP 7FFF 7FFF 0000 0000 FFFE FFFE ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 16 0 BBX 16 15 1 0 BITMAP 1000 1C00 0F00 0780 01E0 0078 003C 000F 003C 01F0 07C0 1E00 7800 E000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 12 0 BBX 10 18 3 0 BITMAP 3F00 7F80 41C0 01C0 01C0 0180 0380 0700 0E00 1C00 3800 3000 7000 0000 0000 0000 E000 E000 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 21 0 BBX 19 18 3 0 BITMAP 00FC00 03FF00 0F0380 1C01C0 30FCC0 21FC40 630860 460860 C61860 843840 8C70C0 8CD980 CF9F80 471E00 600000 381000 1FF000 07C000 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 17 0 BBX 16 18 1 0 BITMAP 0038 0078 0078 00F8 01D8 019C 039C 030C 070C 060C 0C0E 0FFE 1FFE 3806 3006 7007 6007 E007 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 2 0 BITMAP 1FE0 1FF8 1C38 1838 1838 3838 3870 38E0 3F80 3FE0 70F0 7070 7030 6070 6070 E1E0 FFE0 FF80 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 17 0 BBX 17 18 2 0 BITMAP 00FF00 03FF80 0F0180 1E0000 3C0000 380000 700000 700000 E00000 E00000 E00000 E00000 E00000 E00000 700000 780C00 3FFC00 0FE000 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 19 0 BBX 17 18 2 0 BITMAP 1FFC00 1FFE00 1C1F00 180780 180380 380380 380380 380380 300380 300380 700300 700700 700600 600E00 601C00 E07800 FFF000 FFC000 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 2 0 BITMAP 0FFC 1FFC 1C00 1C00 1800 1800 3800 3800 3FE0 3FE0 3000 7000 7000 7000 6000 6000 FFE0 FFE0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 13 0 BBX 14 18 2 0 BITMAP 0FFC 1FFC 1C00 1C00 1800 1800 3800 3800 3FE0 3FE0 3000 7000 7000 7000 6000 6000 E000 E000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 18 0 BBX 16 18 3 0 BITMAP 00FE 07FF 0F03 1C00 3800 3000 7000 6000 E000 E000 E00C E00C E01C E01C 701C 7838 3FF8 0FC0 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 18 0 BBX 17 18 2 0 BITMAP 1C0380 1C0380 1C0380 180300 180300 380700 380700 380700 3FFE00 3FFE00 700600 700E00 700E00 600C00 600C00 E01C00 E01C00 E01C00 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 7 0 BBX 6 18 2 0 BITMAP 1C 1C 1C 18 18 38 38 38 30 30 70 70 70 60 60 E0 E0 E0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 10 0 BBX 12 22 0 -4 BITMAP 0070 0070 0070 0060 0060 00E0 00E0 00E0 00C0 00C0 01C0 01C0 01C0 0180 0180 0380 0380 0300 0300 8600 FE00 F800 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 16 0 BBX 16 18 2 0 BITMAP 0C07 1C0C 1C18 1C30 1860 18C0 3980 3B00 3E00 3700 3300 7180 71C0 70C0 6060 6070 E030 E018 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 14 0 BBX 11 18 3 0 BITMAP 1C00 1C00 1C00 1800 1800 3800 3800 3800 3000 3000 7000 7000 7000 6000 6000 E000 FFE0 FFE0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 21 0 BBX 20 18 2 0 BITMAP 0E00F0 1E00F0 1F01E0 1F01E0 1F0360 1B07E0 3B06E0 330CC0 330CC0 3398C0 3399C0 71B1C0 61F180 61E180 61C180 61C380 C00380 C00300 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 19 0 BBX 17 18 3 0 BITMAP 1C0180 1E0180 1E0380 1E0300 1F0300 3B0300 338300 318700 31C600 31C600 70C600 60E600 606E00 607C00 603C00 E03C00 C03C00 C01C00 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 19 0 BBX 18 18 3 0 BITMAP 00FC00 03FF00 0F0700 1C0380 380180 3801C0 7001C0 6001C0 E00180 E00380 E00380 E00300 E00700 E00E00 701C00 787800 3FF000 0FC000 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 2 0 BITMAP 0FF0 1FF8 1C1C 1C1C 181C 181C 3818 3838 38F0 3FE0 3F00 7000 7000 7000 6000 6000 E000 E000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 19 0 BBX 18 23 3 -5 BITMAP 00FC00 03FF00 0F0700 1C0380 380180 3801C0 7001C0 6001C0 E00180 E00380 E00380 E00380 E00700 E00E00 701E00 787C00 3FF000 0FE000 007000 003C00 001F80 000F00 000300 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 2 0 BITMAP 0FF0 1FFC 1C1C 1C1C 181C 181C 3838 3870 3FE0 3F80 31C0 71C0 70E0 60E0 6070 6070 E038 E038 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 2 0 BITMAP 03F8 07FC 0E0C 1C00 1C00 1C00 1E00 0F00 0780 03C0 01E0 0070 0070 0070 0070 C0E0 FFC0 7F00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 16 0 BBX 16 18 3 0 BITMAP FFFF FFFF 0380 0380 0380 0300 0300 0700 0700 0700 0600 0600 0E00 0E00 0E00 0C00 0C00 1C00 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 17 0 BBX 15 18 3 0 BITMAP 3806 380E 380E 300C 300C 700C 701C 701C 6018 6018 E018 E038 E030 E030 E070 F0E0 7FC0 3F80 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 17 0 BBX 16 18 4 0 BITMAP E007 E006 E00E 600C 601C 7038 7030 7070 3060 30E0 38C0 39C0 3980 1B00 1F00 1E00 1E00 1C00 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 22 0 BBX 21 18 4 0 BITMAP C07018 C07030 E0F030 E0F060 E0F060 E1B0E0 E1B0C0 E331C0 E33180 E63380 663300 6C3700 6C3600 7C3E00 783C00 783C00 703800 703800 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 16 0 BBX 18 18 0 0 BITMAP 0E01C0 060380 070700 030E00 039C00 039800 01F000 01F000 00E000 01E000 03F000 037000 063800 0C3800 1C1800 381C00 700C00 E00E00 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 4 0 BITMAP E00E 601C 7038 3030 3860 38C0 1DC0 1F80 0F00 0E00 0E00 0E00 0C00 0C00 1C00 1C00 1C00 1800 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 14 0 BBX 16 18 1 0 BITMAP 0FFF 0FFF 000E 001C 0038 0078 0070 00E0 01C0 0380 0700 0E00 1E00 3C00 3800 7000 FFF8 FFF8 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 8 0 BBX 9 22 2 -4 BITMAP 0F80 0F80 0C00 0C00 1C00 1800 1800 1800 1800 3800 3000 3000 3000 3000 7000 6000 6000 6000 6000 C000 F800 F800 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 12 0 BBX 7 22 4 -4 BITMAP C0 C0 40 60 60 60 20 30 30 30 30 18 18 18 18 08 0C 0C 0C 04 06 06 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 8 0 BBX 9 22 1 -4 BITMAP 0F80 0F80 0180 0300 0300 0300 0300 0700 0600 0600 0600 0600 0E00 0C00 0C00 0C00 0C00 1C00 1800 1800 F800 F800 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 16 0 BBX 14 15 2 3 BITMAP 0040 0040 00E0 01E0 01E0 0360 0730 0630 0C30 1C10 1818 3818 7018 600C E00C ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 13 0 BBX 10 2 1 -3 BITMAP FFC0 FFC0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 4 12 BITMAP 30 60 40 C0 E0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 2 0 BITMAP 03F8 07F8 1E38 3830 3030 7070 60F0 E1F0 E1E0 E360 E760 FCE0 78E0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 3 0 BITMAP 0C00 1C00 1C00 1800 1800 18F0 39F8 3738 3638 3C38 3C38 7830 7070 6060 60E0 63C0 FF00 FE00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 2 0 BITMAP 03E0 0FE0 1C20 3800 7000 6000 E000 E000 E000 E000 E0C0 7F80 3F00 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 2 0 BITMAP 000E 000E 000C 000C 001C 01FC 07FC 0E18 1C18 3838 7038 6070 E0F0 E1F0 E3F0 E770 FE60 7860 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 2 0 BITMAP 07C0 0FE0 18E0 30E0 60C0 6180 FF00 FC00 C000 E020 E0C0 7FC0 3F00 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 10 0 BBX 12 25 2 -5 BITMAP 01F0 03F0 0700 0600 0E00 0C00 0C00 7F80 7F80 1800 1800 1800 3800 3800 3000 3000 3000 7000 7000 7000 6000 6000 E000 E000 E000 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 1 -5 BITMAP 01FC 07FC 0F18 1C18 1818 3838 3038 7070 70F0 71B0 7330 3E70 3C60 0060 0060 C0C0 FF80 7E00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 16 0 BBX 13 18 2 0 BITMAP 0C00 0C00 1C00 1C00 1800 1870 39F8 3BB8 3738 3E38 3C38 7830 7030 7070 6070 6060 E060 E060 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 7 0 BBX 6 18 2 0 BITMAP 1C 1C 00 00 00 18 38 38 30 30 30 70 70 60 60 60 E0 E0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 8 0 BBX 12 23 -2 -5 BITMAP 0070 0070 0000 0000 0000 0060 00E0 00E0 00C0 00C0 00C0 01C0 01C0 0180 0180 0380 0380 0380 0300 0700 8E00 FC00 F800 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 2 0 BITMAP 0C00 0C00 1C00 1800 1800 1838 3860 39C0 3380 3700 3E00 7E00 7700 6300 6380 61C0 E0E0 E070 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 7 0 BBX 6 18 3 0 BITMAP 0C 1C 1C 18 18 18 38 38 30 30 30 70 70 60 60 60 E0 E0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 23 0 BBX 21 13 2 0 BITMAP 187070 19F9F8 3BBBB8 373F38 3E3E38 3C3C30 383830 707830 707070 606070 606060 606060 C0E0E0 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 16 0 BBX 13 13 2 0 BITMAP 1870 39F8 3BB8 3738 3E38 3C38 7830 7030 7070 6070 6060 E060 E060 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 2 0 BITMAP 07C0 0FE0 1C70 3030 7030 6030 E030 E070 E060 E0E0 E1C0 7F80 3E00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 2 -5 BITMAP 1C78 1CFC 1B9C 1F1C 1E1C 3E1C 3C18 3838 3030 3070 71E0 7F80 7F00 6000 6000 E000 E000 C000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 2 -5 BITMAP 03F8 07F8 1E38 3830 3030 7070 60F0 E1F0 E1E0 E360 E760 FCE0 78E0 00C0 00C0 00C0 01C0 01C0 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 3 0 BITMAP 38E0 39E0 3300 3600 3C00 7C00 7800 7000 6000 6000 E000 E000 E000 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 2 0 BITMAP 07C0 1FE0 1860 3800 1C00 1E00 0F00 0780 0380 0180 C380 FF80 7E00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 10 0 BBX 8 16 3 0 BITMAP 18 18 18 FF FF 30 30 30 70 70 60 60 E0 60 7C 38 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 16 0 BBX 13 13 3 0 BITMAP 3018 3038 3030 3030 6070 6070 60F0 61E0 E3E0 C760 EEE0 FCE0 70C0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 4 0 BITMAP C070 C060 E0E0 E0C0 6180 6380 6300 6600 6600 6C00 7C00 7800 3000 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 20 0 BBX 18 13 3 0 BITMAP C0C0C0 C1C180 C1C180 E3C300 E3C300 666600 666E00 6C6C00 6C7C00 787800 787800 707000 707000 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 14 0 BBX 15 13 0 0 BITMAP 1C0E 0E1C 0638 0770 03E0 03C0 0380 07C0 0EC0 1CE0 3860 7070 E038 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 2 -5 BITMAP 601C 7018 7030 7070 3060 30C0 31C0 3980 3B80 3B00 1E00 1E00 1C00 1800 3800 3000 6000 E000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 1 0 BITMAP 1FF8 1FF8 0070 00E0 01C0 0380 0700 0E00 1C00 3800 7000 FFE0 FFE0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 8 0 BBX 9 22 2 -4 BITMAP 0380 0F00 0E00 0C00 0C00 1C00 1C00 1C00 1800 3800 F000 E000 3000 3000 3000 7000 6000 6000 C000 C000 7000 3000 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 6 0 BBX 6 22 1 -4 BITMAP 0C 0C 0C 08 18 18 18 18 10 30 30 30 30 20 60 60 60 60 40 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 8 0 BBX 9 22 1 -4 BITMAP 0E00 0F00 0300 0300 0300 0700 0600 0600 0600 0600 0380 0F00 0C00 1C00 1800 1800 1800 1800 3800 F000 F000 C000 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 16 0 BBX 15 5 2 5 BITMAP 3C06 7F06 638C C1FC C078 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 8 0 BBX 6 18 2 -5 BITMAP 1C 1C 00 00 00 18 10 30 30 30 30 70 60 60 60 E0 E0 E0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 16 0 BBX 12 18 4 0 BITMAP 0080 0180 03F0 0FF0 1D00 3900 7300 6200 E200 E200 E600 E400 E440 E4C0 7FC0 3F00 0800 0800 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 3 0 BITMAP 00FC 01FC 0384 0300 0700 0600 0600 0E00 3F80 3F80 0C00 0C00 0C00 1C00 1800 3000 FFE0 FFC0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 16 0 BBX 18 16 1 1 BITMAP 100180 3803C0 1DE300 0FF600 071C00 0C0C00 0C0C00 180C00 180C00 180C00 181800 0C3000 1FF800 73DC00 E00E00 400400 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 4 0 BITMAP E00E 701C 3038 3830 3860 1CC0 1D80 0F00 0F00 7FE0 7FC0 0E00 FFC0 FFC0 0C00 1C00 1C00 1800 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 6 0 BBX 6 22 1 -4 BITMAP 0C 0C 0C 18 18 18 18 18 30 00 00 00 00 30 60 60 60 60 40 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 16 0 BBX 13 23 2 -5 BITMAP 03F8 07F8 0E08 1C00 1800 1C00 0E00 0F00 1FC0 38E0 3070 3030 3830 3C70 1FE0 07C0 01E0 0060 0060 00E0 C1C0 FFC0 7F00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 14 0 BBX 7 2 7 16 BITMAP C6 C6 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 21 0 BBX 19 18 3 0 BITMAP 03F000 0FFE00 1C0F00 300380 60F980 41FCC0 C38840 C60040 860040 8C0060 CC0040 C61040 47F0C0 63E180 300380 1C0F00 0FFE00 03F000 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 3 8 BITMAP 0E00 3FC0 3180 6180 6380 C780 CF00 DB00 F300 6700 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 13 0 BBX 12 11 2 1 BITMAP 0420 0E70 1CE0 39C0 7380 E700 6300 7380 3180 18C0 1080 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 16 0 BBX 15 6 2 4 BITMAP FFFE FFFE 0006 0004 000C 000C ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 8 0 BBX 6 2 2 7 BITMAP FC FC ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 16 0 BBX 9 11 6 7 BITMAP 1E00 7F00 6380 DF80 9280 9C80 9C80 F480 6380 7F00 1E00 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 14 0 BBX 7 2 7 16 BITMAP FE FE ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 7 0 BBX 4 4 5 14 BITMAP 70 90 90 70 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 16 0 BBX 16 15 1 0 BITMAP 0060 0040 00C0 00C0 00C0 3FFF 3FFF 0080 0180 0180 0180 0000 0000 FFFC FFFC ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 -13 7 BITMAP 1E 3F 23 03 06 0E 18 30 60 FC FC ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 -13 7 BITMAP 3E 3F 03 02 3C 3C 06 06 06 FC F8 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 14 0 BBX 6 4 9 14 BITMAP 1C 30 60 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 2 -4 BITMAP 1C1C 181C 1818 1818 3818 3838 3038 3070 30F0 71B0 7330 7F70 7C60 6000 E000 E000 C000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 16 0 BBX 11 22 4 -4 BITMAP 3FE0 7FE0 FE60 FE40 FE40 FEC0 7EC0 7CC0 1C80 0C80 0C80 0D80 0980 0900 1900 1900 1B00 1300 1200 3200 3200 3600 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 16 0 BBX 4 3 7 6 BITMAP 70 F0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 14 0 BBX 4 5 5 -5 BITMAP 20 60 30 30 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 9 0 BBX 4 11 -15 7 BITMAP F0 F0 20 20 20 60 60 40 40 C0 C0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 3 8 BITMAP 0F80 1F80 39C0 71C0 61C0 C180 C380 E700 FE00 7800 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 13 0 BBX 12 11 1 1 BITMAP 3180 3180 18C0 1CE0 0C60 0E70 1CE0 39C0 7380 E700 4200 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 22 0 BBX 19 18 10 0 BITMAP F000E0 F001C0 200380 200700 200E00 601C00 601800 4030C0 4061C0 C0C380 C18680 030D80 071180 0E3FC0 1C3FC0 380100 700300 E00300 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 22 0 BBX 19 18 10 0 BITMAP F000E0 F001C0 200380 200700 200E00 601C00 601800 403780 406FC0 C0C8C0 C180C0 030180 070380 0E0600 1C0C00 381800 703F00 E03F00 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 22 0 BBX 21 18 12 0 BITMAP 3E0038 3F0070 0300E0 0201C0 3C0380 3C0700 060600 060C30 061870 FC30E0 F861A0 00C360 01C460 038FF0 070FF0 0E0040 1C00C0 3800C0 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 12 0 BBX 10 18 1 -5 BITMAP 01C0 01C0 0000 0000 0000 0380 0300 0700 0E00 1C00 3800 7000 E000 E000 E000 F080 7F80 3F00 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 17 0 BBX 16 23 1 0 BITMAP 0070 0030 0030 0018 0000 0038 0078 0078 00F8 01D8 019C 039C 030C 070C 060C 0C0E 0FFE 1FFE 3806 3006 7007 6007 E007 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 17 0 BBX 16 23 1 0 BITMAP 0007 000C 0018 0030 0000 0038 0078 0078 00F8 01D8 019C 039C 030C 070C 060C 0C0E 0FFE 1FFE 3806 3006 7007 6007 E007 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 17 0 BBX 16 23 1 0 BITMAP 003C 007C 00EC 01C6 0000 0038 0078 0078 00F8 01D8 019C 039C 030C 070C 060C 0C0E 0FFE 1FFE 3806 3006 7007 6007 E007 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 17 0 BBX 16 21 1 0 BITMAP 007B 00DE 0000 0038 0078 0078 00F8 01D8 019C 039C 030C 070C 060C 0C0E 0FFE 1FFE 3806 3006 7007 6007 E007 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 17 0 BBX 16 21 1 0 BITMAP 00C6 00C6 0000 0038 0078 0078 00F8 01D8 019C 039C 030C 070C 060C 0C0E 0FFE 1FFE 3806 3006 7007 6007 E007 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 17 0 BBX 16 23 1 0 BITMAP 0018 0024 0024 0018 0000 0038 0078 0078 00F8 01D8 019C 039C 030C 070C 060C 0C0E 0FFE 1FFE 3806 3006 7007 6007 E007 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 22 0 BBX 25 18 0 0 BITMAP 0003FF80 0007FF80 000F8000 001F8000 003B0000 00330000 00770000 00E7FC00 01C7FC00 01860000 03060000 07FE0000 0FFE0000 1C0E0000 180C0000 380C0000 701FFC00 E01FFC00 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 17 0 BBX 17 23 2 -5 BITMAP 00FF00 03FF80 0F0180 1E0000 3C0000 380000 700000 700000 E00000 E00000 E00000 E00000 E00000 E00000 700000 780C00 3FFC00 0FE000 020000 060000 030000 030000 0E0000 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 14 0 BBX 14 23 2 0 BITMAP 0380 0180 0180 00C0 0000 0FFC 1FFC 1C00 1C00 1800 1800 3800 3800 3FE0 3FE0 3000 7000 7000 7000 6000 6000 FFE0 FFE0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 14 0 BBX 14 23 2 0 BITMAP 0070 00C0 0180 0300 0000 0FFC 1FFC 1C00 1C00 1800 1800 3800 3800 3FE0 3FE0 3000 7000 7000 7000 6000 6000 FFE0 FFE0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 14 0 BBX 14 23 2 0 BITMAP 01E0 03E0 0760 0E30 0000 0FFC 1FFC 1C00 1C00 1800 1800 3800 3800 3FE0 3FE0 3000 7000 7000 7000 6000 6000 FFE0 FFE0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 14 0 BBX 14 21 2 0 BITMAP 0630 0630 0000 0FFC 1FFC 1C00 1C00 1800 1800 3800 3800 3FE0 3FE0 3000 7000 7000 7000 6000 6000 FFE0 FFE0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 7 0 BBX 7 23 2 0 BITMAP 1C 0C 0C 06 00 1C 1C 1C 18 18 38 38 38 30 30 70 70 70 60 60 E0 E0 E0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 7 0 BBX 9 23 2 0 BITMAP 0380 0600 0C00 1800 0000 1C00 1C00 1C00 1800 1800 3800 3800 3800 3000 3000 7000 7000 7000 6000 6000 E000 E000 E000 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 7 0 BBX 9 23 2 0 BITMAP 0F00 1F00 3B00 7180 0000 1C00 1C00 1C00 1800 1800 3800 3800 3800 3000 3000 7000 7000 7000 6000 6000 E000 E000 E000 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 7 0 BBX 8 21 2 0 BITMAP 63 63 00 1C 1C 1C 18 18 38 38 38 30 30 70 70 70 60 60 E0 E0 E0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 19 0 BBX 18 18 1 0 BITMAP 0FFE00 0FFF00 0E0F80 0C03C0 0C01C0 0C01C0 1C01C0 1C01C0 FFC1C0 FF81C0 180180 380380 380300 300700 300E00 303C00 7FF800 7FE000 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 19 0 BBX 17 21 3 0 BITMAP 00F600 01BC00 000000 1C0180 1E0180 1E0380 1E0300 1F0300 3B0300 338300 318700 31C600 31C600 70C600 60E600 606E00 607C00 603C00 E03C00 C03C00 C01C00 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 19 0 BBX 18 23 3 0 BITMAP 00E000 006000 006000 003000 000000 00FC00 03FF00 0F0700 1C0380 380180 3801C0 7001C0 6001C0 E00180 E00380 E00380 E00300 E00700 E00E00 701C00 787800 3FF000 0FC000 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 19 0 BBX 18 23 3 0 BITMAP 000E00 001800 003000 006000 000000 00FC00 03FF00 0F0700 1C0380 380180 3801C0 7001C0 6001C0 E00180 E00380 E00380 E00300 E00700 E00E00 701C00 787800 3FF000 0FC000 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 19 0 BBX 18 23 3 0 BITMAP 007800 00F800 01D800 038C00 000000 00FC00 03FF00 0F0700 1C0380 380180 3801C0 7001C0 6001C0 E00180 E00380 E00380 E00300 E00700 E00E00 701C00 787800 3FF000 0FC000 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 19 0 BBX 18 21 3 0 BITMAP 00F600 01BC00 000000 00FC00 03FF00 0F0700 1C0380 380180 3801C0 7001C0 6001C0 E00180 E00380 E00380 E00300 E00700 E00E00 701C00 787800 3FF000 0FC000 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 19 0 BBX 18 21 3 0 BITMAP 018C00 018C00 000000 00FC00 03FF00 0F0700 1C0380 380180 3801C0 7001C0 6001C0 E00180 E00380 E00380 E00300 E00700 E00E00 701C00 787800 3FF000 0FC000 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 16 0 BBX 17 15 1 0 BITMAP 300100 180380 1C0700 0E0E00 061800 037000 01E000 01C000 03E000 076000 0C3000 383800 701C00 E00C00 400600 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 19 0 BBX 21 18 4 0 BITMAP 007E38 01FFE0 0783C0 0E01C0 1C03C0 1C06E0 380CE0 3018E0 7030C0 7061C0 70C1C0 718180 730380 760700 3C0E00 3C3C00 3FF800 E7E000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 17 0 BBX 15 23 3 0 BITMAP 01C0 00C0 00C0 0060 0000 3806 380E 380E 300C 300C 700C 701C 701C 6018 6018 E018 E038 E030 E030 E070 F0E0 7FC0 3F80 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 17 0 BBX 15 23 3 0 BITMAP 0038 0060 00C0 0180 0000 3806 380E 380E 300C 300C 700C 701C 701C 6018 6018 E018 E038 E030 E030 E070 F0E0 7FC0 3F80 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 17 0 BBX 15 23 3 0 BITMAP 00F0 01F0 03B0 0718 0000 3806 380E 380E 300C 300C 700C 701C 701C 6018 6018 E018 E038 E030 E030 E070 F0E0 7FC0 3F80 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 17 0 BBX 15 21 3 0 BITMAP 0630 0630 0000 3806 380E 380E 300C 300C 700C 701C 701C 6018 6018 E018 E038 E030 E030 E070 F0E0 7FC0 3F80 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 15 0 BBX 15 23 4 0 BITMAP 0070 00C0 0180 0300 0000 E00E 601C 7038 3030 3860 38C0 1DC0 1F80 0F00 0E00 0E00 0E00 0C00 0C00 1C00 1C00 1C00 1800 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 2 0 BITMAP 1C00 1C00 1C00 1C00 1FE0 3FF8 3838 3838 3038 3038 7070 70E0 7FC0 7F00 6000 E000 E000 E000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 15 0 BBX 13 25 2 -5 BITMAP 01E0 07F0 0630 0C30 0C30 0C60 1CC0 1D80 1B80 1B80 1B80 19C0 38E0 3870 3038 3018 3018 7238 77F0 63E0 6000 6000 E000 E000 C000 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 2 0 BITMAP 01C0 00C0 00C0 0060 0000 03F8 07F8 1E38 3830 3030 7070 60F0 E1F0 E1E0 E360 E760 FCE0 78E0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 2 0 BITMAP 0038 0060 00C0 0180 0000 03F8 07F8 1E38 3830 3030 7070 60F0 E1F0 E1E0 E360 E760 FCE0 78E0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 2 0 BITMAP 00F0 01F0 03B0 0718 0000 03F8 07F8 1E38 3830 3030 7070 60F0 E1F0 E1E0 E360 E760 FCE0 78E0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 15 0 BBX 13 16 2 0 BITMAP 03D8 06F0 0000 03F8 07F8 1E38 3830 3030 7070 60F0 E1F0 E1E0 E360 E760 FCE0 78E0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 15 0 BBX 13 16 2 0 BITMAP 0318 0318 0000 03F8 07F8 1E38 3830 3030 7070 60F0 E1F0 E1E0 E360 E760 FCE0 78E0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 2 0 BITMAP 00C0 0120 0120 00C0 0000 03F8 07F8 1E38 3830 3030 7070 60F0 E1F0 E1E0 E360 E760 FCE0 78E0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 22 0 BBX 20 13 2 0 BITMAP 03FBE0 07FFF0 1E1E70 383830 303870 7070E0 60FF80 E0FE00 E1F000 E3F010 E73070 FE3FE0 781F80 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 13 0 BBX 11 18 2 -5 BITMAP 03E0 0FE0 1C20 3800 7000 6000 E000 E000 E000 E000 E0C0 7F80 3F00 0800 1800 0C00 0C00 3800 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 13 0 BBX 11 18 2 0 BITMAP 0380 0180 0180 00C0 0000 07C0 0FE0 18E0 30E0 60C0 6180 FF00 FC00 C000 E020 E0C0 7FC0 3F00 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 13 0 BBX 12 18 2 0 BITMAP 0070 00C0 0180 0300 0000 07C0 0FE0 18E0 30E0 60C0 6180 FF00 FC00 C000 E020 E0C0 7FC0 3F00 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 13 0 BBX 12 18 2 0 BITMAP 01E0 03E0 0760 0E30 0000 07C0 0FE0 18E0 30E0 60C0 6180 FF00 FC00 C000 E020 E0C0 7FC0 3F00 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 13 0 BBX 12 16 2 0 BITMAP 0630 0630 0000 07C0 0FE0 18E0 30E0 60C0 6180 FF00 FC00 C000 E020 E0C0 7FC0 3F00 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 7 0 BBX 7 18 2 0 BITMAP 1C 0C 0C 06 00 18 38 38 30 30 30 70 70 60 60 60 E0 E0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 7 0 BBX 9 18 2 0 BITMAP 0380 0600 0C00 1800 0000 1800 3800 3800 3000 3000 3000 7000 7000 6000 6000 6000 E000 E000 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 7 0 BBX 9 18 2 0 BITMAP 0F00 1F00 3B00 7180 0000 1800 3800 3800 3000 3000 3000 7000 7000 6000 6000 6000 E000 E000 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 7 0 BBX 8 16 2 0 BITMAP 63 63 00 18 38 38 30 30 30 70 70 60 60 60 E0 E0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 2 0 BITMAP 1FE0 3FE0 03C0 0FE0 0660 07F0 1FF0 3C70 3030 7030 6030 E030 E070 E060 E0E0 F1C0 7F80 3E00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 16 0 BBX 13 16 2 0 BITMAP 03D8 06F0 0000 1870 39F8 3BB8 3738 3E38 3C38 7830 7030 7070 6070 6060 E060 E060 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 2 0 BITMAP 0380 0180 0180 00C0 0000 07C0 0FE0 1C70 3030 7030 6030 E030 E070 E060 E0E0 E1C0 7F80 3E00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 2 0 BITMAP 0038 0060 00C0 0180 0000 07C0 0FE0 1C70 3030 7030 6030 E030 E070 E060 E0E0 E1C0 7F80 3E00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 2 0 BITMAP 01E0 03E0 0760 0E30 0000 07C0 0FE0 1C70 3030 7030 6030 E030 E070 E060 E0E0 E1C0 7F80 3E00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 14 0 BBX 13 16 2 0 BITMAP 03D8 06F0 0000 07C0 0FE0 1C70 3030 7030 6030 E030 E070 E060 E0E0 E1C0 7F80 3E00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 14 0 BBX 12 16 2 0 BITMAP 0630 0630 0000 07C0 0FE0 1C70 3030 7030 6030 E030 E070 E060 E0E0 E1C0 7F80 3E00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 16 0 BBX 15 13 2 0 BITMAP 01C0 01C0 0000 0000 0000 0000 FFFE FFFE 0000 0000 0000 0700 0700 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 14 0 BBX 15 13 3 0 BITMAP 03EE 07FC 0E38 1878 38F8 31D8 7398 7738 7E30 7C70 78E0 7FC0 FF00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 16 0 BBX 13 18 3 0 BITMAP 0380 0180 0180 00C0 0000 3018 3038 3030 3030 6070 6070 60F0 61E0 E3E0 C760 EEE0 FCE0 70C0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 16 0 BBX 13 18 3 0 BITMAP 0038 0060 00C0 0180 0000 3018 3038 3030 3030 6070 6070 60F0 61E0 E3E0 C760 EEE0 FCE0 70C0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 16 0 BBX 13 18 3 0 BITMAP 01E0 03E0 0760 0E30 0000 3018 3038 3030 3030 6070 6070 60F0 61E0 E3E0 C760 EEE0 FCE0 70C0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 16 0 BBX 13 16 3 0 BITMAP 0630 0630 0000 3018 3038 3030 3030 6070 6070 60F0 61E0 E3E0 C760 EEE0 FCE0 70C0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 14 0 BBX 14 23 2 -5 BITMAP 0070 00C0 0180 0300 0000 601C 7018 7030 7070 3060 30C0 31C0 3980 3B80 3B00 1E00 1E00 1C00 1800 3800 3000 6000 E000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 15 0 BBX 14 22 2 -5 BITMAP 0E00 0C00 0C00 0C00 1C78 1DFC 1B9C 1F1C 1E1C 3E1C 3C18 3838 3030 3070 71E0 7F80 7F00 6000 6000 E000 E000 C000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 14 0 BBX 14 21 2 -5 BITMAP 0630 0630 0000 601C 7018 7030 7070 3060 30C0 31C0 3980 3B80 3B00 1E00 1E00 1C00 1800 3800 3000 6000 E000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 16 25 2 -5 BITMAP 00FF 03FF 0707 0606 0E06 0C0E 0C0E 7FCE 7F8C 1C0C 180C 181C 181C 3818 3818 3018 3038 3038 7030 7030 6000 6000 6000 E000 E000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 11 2 2 6 BITMAP FFE0 FFE0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 11 22 5 -4 BITMAP 0300 0300 0700 0600 0600 0600 FFE0 FFE0 0C00 0C00 0C00 0C00 1800 1800 1800 1800 1800 3800 3000 3000 3000 7000 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 16 23 1 0 BITMAP 018E 00DC 00D8 0070 0000 0FFF 0FFF 000E 001C 0038 0078 0070 00E0 01C0 0380 0700 0E00 1E00 3C00 3800 7000 FFF8 FFF8 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 22 0 BBX 20 13 2 0 BITMAP 07C3E0 0FE7F0 1C7C70 307870 703860 6030E0 E07F80 E07E00 E07000 E0F010 E1F070 7FBFE0 3E1F80 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 15 21 4 0 BITMAP 0C60 0C60 0000 E00E 601C 7038 3030 3860 38C0 1DC0 1F80 0F00 0E00 0E00 0E00 0C00 0C00 1C00 1C00 1C00 1800 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 13 2 0 BITMAP 18 38 38 30 30 30 70 70 60 60 60 E0 E0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 9 18 1 0 BITMAP 0600 0600 0600 0E00 0E00 0C80 0F80 0F00 1C00 7800 D800 9800 3800 3800 3800 3000 3000 7000 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 1 0 BITMAP 0700 0600 0600 0E00 0E00 0E80 0D80 0F80 1E00 7C00 FC00 9800 1800 3800 3800 3800 3FF8 3FF8 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 12 22 3 -4 BITMAP 0180 0180 0380 0300 0300 0300 3FF0 7FF0 0700 0600 0600 0600 0600 0E00 FFE0 FFC0 0C00 0C00 0C00 1C00 1800 1800 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 15 25 2 -5 BITMAP 01F0 03E0 070E 060E 0E00 0C00 0C00 7FFC 7FFC 181C 1818 1818 3818 3838 3038 3030 3030 7030 7070 7070 6000 6000 E000 E000 E000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 1 1 BITMAP 30 30 18 1C 0C 0E 1C 38 70 E0 40 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 25 0 BBX 25 18 3 0 BITMAP 00FDFF80 03FFFF80 0F078000 1C038000 38038000 38030000 70070000 60070000 E007FC00 E007FC00 E0060000 E00E0000 E00E0000 E00E0000 701C0000 783C0000 3FFFFC00 0FDFFC00 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 25 0 BBX 23 2 2 6 BITMAP FFFFFE FFFFFE ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 8 4 7 14 BITMAP C7 6E 6C 38 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 4 4 4 -4 BITMAP 60 C0 C0 70 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 8 4 7 14 BITMAP 1B 36 6C D8 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 3 1 BITMAP 04 0E 1C 38 70 E0 60 70 30 18 10 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 3 2 9 16 BITMAP E0 E0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 8 4 7 14 BITMAP C3 C2 7E 78 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 9 8 5 3 BITMAP 7F80 7F80 7F80 7F00 7F00 FF00 FF00 FF00 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 8 2 7 16 BITMAP 7B DE ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 8 4 7 14 BITMAP 1E 3E 76 E3 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 6 4 12 BITMAP 31 66 46 CE EE CE ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 4 12 BITMAP E0 E0 E0 E0 E0 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 13 18 2 0 BITMAP 0638 0370 0360 01C0 0000 07C0 1FE0 1860 3800 1C00 1E00 0F00 0780 0380 0180 C380 FF80 7E00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 4 4 9 16 BITMAP 60 90 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 -4 BITMAP 70 70 F0 20 60 60 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 12 22 5 -4 BITMAP 01F0 07F0 0600 0C00 0C00 1C00 1C00 1800 FF00 FE00 3800 3800 3000 3000 3000 7000 7000 6000 6000 6000 E000 E000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 19 10 3 8 BITMAP FF38E0 FF38E0 1879E0 1879C0 387BC0 307AC0 305EC0 304CC0 30CD80 70C180 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 19 18 -5 0 BITMAP 0000E0 0001C0 000380 000700 000E00 001C00 001800 003000 006000 00C000 018000 030000 070000 0E0000 1C0000 380000 700000 E00000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 4 4 9 14 BITMAP E0 60 60 30 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 26 0 BBX 24 18 2 0 BITMAP 0F01C0 1F8300 398700 318600 318C00 219800 333000 3F6000 1EC000 019E0E 03BF3F 037333 066361 0C4361 184363 306667 607E7E C0383C ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 25 0 BBX 19 2 3 0 BITMAP E0E060 E0E0E0 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 6 4 12 BITMAP 77 67 22 62 46 88 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 23 2 0 BITMAP 031C 01B8 01B0 00E0 0000 03F8 07FC 0E0C 1C00 1C00 1C00 1E00 0F00 0780 03C0 01E0 0070 0070 0070 0070 C0E0 FFC0 7F00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 0 -5 BITMAP 77 67 67 22 62 66 CC 88 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 14 18 1 0 BITMAP 031C 01B8 01B0 00E0 0000 1FF8 1FF8 0070 00E0 01C0 0380 0700 0E00 1C00 3800 7000 FFE0 FFE0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/luIS19.bdf100644 1750 1750 115645 5413747522 15073 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Medium-I-Normal-Sans-26-190-100-100-P-147-ISO8859-1 SIZE 19 100 100 FONTBOUNDINGBOX 50 29 -17 -5 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Medium" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 26 POINT_SIZE 190 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH "147" CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." FONT_ASCENT 24 FONT_DESCENT 6 DEFAULT_CHAR 0 ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 8 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 8 0 BBX 6 19 3 0 BITMAP 1C 1C 1C 18 18 18 38 30 30 30 30 30 60 60 00 00 00 E0 E0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 9 0 BBX 7 6 5 13 BITMAP EE CE C6 C6 C6 C6 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 16 0 BBX 16 19 2 0 BITMAP 0067 00C6 00CE 018C 011C 7FFF 7FFF 0630 0630 0C60 0C60 FFFE FFFE 11C0 3180 3180 6300 6300 C600 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 16 0 BBX 13 22 4 -2 BITMAP 0080 01F0 07F8 1FC8 1D00 3900 3900 3B00 1F00 0E00 0700 0380 07C0 04E0 04E0 04E0 04E0 8DC0 FF80 FF00 0800 0800 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 19 0 BBX 20 19 2 0 BITMAP 078070 1FC0C0 18C1C0 304380 30C300 30C600 31CC00 3F9800 1E3000 006780 00CFC0 0198C0 0330C0 0630C0 0C30C0 1830C0 383180 703F00 E01E00 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 18 0 BBX 17 19 2 0 BITMAP 007800 01FC00 038C00 030C00 030C00 031C00 037800 03F000 0FC000 3D8380 71C300 E0C300 E0E700 E06600 E07C00 E03C00 707800 7FDC00 1F1E00 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 4 12 BITMAP 38 78 70 30 70 E0 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 8 0 BBX 9 23 3 -4 BITMAP 0180 0100 0600 0E00 0C00 1800 3800 3000 7000 6000 6000 E000 E000 C000 C000 C000 C000 C000 6000 6000 7000 3000 1000 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 8 0 BBX 9 23 1 -4 BITMAP 0400 0C00 0600 0300 0300 0300 0300 0300 0380 0300 0300 0300 0300 0700 0600 0E00 0C00 1C00 1800 3000 6000 C000 8000 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 12 0 BBX 10 9 4 10 BITMAP 0600 0400 4C00 FDC0 3380 1C00 3600 E600 4300 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 16 0 BBX 15 16 2 0 BITMAP 00C0 00C0 0180 0180 0180 0180 0180 FFFE FFFE 0300 0300 0300 0300 0300 0600 0600 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 8 0 BBX 5 9 2 -5 BITMAP 78 78 78 70 30 30 30 60 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 16 0 BBX 15 2 2 7 BITMAP FFFE FFFE ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 8 0 BBX 4 3 2 0 BITMAP 70 F0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 13 0 BBX 17 23 0 -4 BITMAP 000380 000300 000600 000600 000C00 001800 001800 003000 007000 006000 00C000 01C000 018000 030000 070000 060000 0C0000 0C0000 180000 300000 300000 600000 E00000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 3 0 BITMAP 03E0 07F0 0E38 1C1C 381C 301C 701C 601C 601C E01C E018 E038 E038 E030 E070 E0E0 71C0 7F80 1E00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 16 0 BBX 6 19 7 0 BITMAP 7C FC 1C 18 18 18 38 38 30 30 30 70 70 60 60 60 E0 E0 C0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 3 0 BITMAP 03E0 0FF8 0C3C 101C 001C 001C 001C 0038 0070 00E0 01C0 0380 0E00 1C00 3800 7000 7000 FFE0 FFE0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 3 0 BITMAP 0FE0 0FF0 0838 0038 0018 0038 0070 00E0 0F80 1FC0 01E0 0070 0070 0070 0070 00E0 C1C0 FF80 7E00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 2 0 BITMAP 001C 003C 0078 00F8 01D8 03B8 0738 0E30 1C30 3830 7030 6060 FFFC FFFC 0060 00E0 00E0 00C0 00C0 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 3 0 BITMAP 0FFC 0FFC 0800 1800 1800 1800 1800 1F00 3FC0 01E0 0070 0070 0070 0070 0060 00E0 C1C0 FF80 FE00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 3 0 BITMAP 01F8 07FC 0E0C 1C00 3800 3000 7000 77C0 7FF0 F870 F038 E038 E038 E030 E070 E060 70E0 3FC0 1F00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 4 0 BITMAP 3FFC 3FFC 003C 0038 0070 00E0 01C0 0380 0700 0700 0E00 1C00 1C00 3800 7800 7000 7000 E000 E000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 3 0 BITMAP 03F0 07F8 0E1C 180C 180C 181C 1C38 1EF0 0FC0 1FE0 39F0 7070 E038 E038 E038 E070 F0F0 7FE0 1F80 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 3 0 BITMAP 03E0 0FF8 1E38 181C 381C 301C 701C 701C 703C 387C 3FF8 0FB8 0038 0030 0070 00E0 C1C0 FF80 7E00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 8 0 BBX 5 14 3 0 BITMAP 38 38 00 00 00 00 00 00 00 00 00 00 E0 E0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 8 0 BBX 6 19 2 -5 BITMAP 1C 1C 00 00 00 00 00 00 00 00 00 70 70 60 20 60 60 C0 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 16 0 BBX 17 16 2 0 BITMAP 000080 000380 000F00 003C00 00F000 07C000 1F0000 FC0000 780000 3E0000 0F0000 03C000 00F000 007800 001C00 000400 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 16 0 BBX 16 7 2 4 BITMAP 7FFF 7FFF 0000 0000 0000 FFFE FFFE ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 16 0 BBX 17 16 0 0 BITMAP 100000 1C0000 0F0000 078000 01E000 007800 003E00 000F00 001F80 007C00 01F000 078000 1E0000 780000 E00000 800000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 12 0 BBX 10 19 3 0 BITMAP 3F00 7FC0 41C0 00C0 00C0 01C0 0180 0380 0600 0C00 1800 3000 7000 7000 0000 0000 0000 E000 E000 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 22 0 BBX 20 19 3 0 BITMAP 00FE00 03FF80 0703C0 1C00E0 187E60 31FE20 638430 420C30 C60C30 C61C30 841820 8C2860 CE58C0 C7DF80 470F00 600000 381000 1FF000 07E000 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 18 0 BBX 17 19 1 0 BITMAP 003800 003C00 007C00 007C00 00EC00 00CC00 01CE00 038E00 030E00 070600 060600 0E0700 0FFF00 1FFF00 180700 380300 700380 600380 E00380 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 15 0 BBX 14 19 2 0 BITMAP 0FF0 1FF8 1C3C 1C1C 181C 1838 3838 38F0 3FC0 3FC0 30F0 7070 7038 7038 7038 6070 E0F0 FFE0 FF80 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 18 0 BBX 17 19 3 0 BITMAP 00FF00 03FF80 0F8180 1E0000 3C0000 380000 700000 700000 700000 E00000 E00000 E00000 E00000 E00000 E00000 700400 781C00 3FFC00 0FE000 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 19 0 BBX 18 19 2 0 BITMAP 0FFC00 1FFF00 1C0F80 1C03C0 1C01C0 1801C0 3801C0 3801C0 3801C0 3801C0 300180 700380 700380 700700 700E00 601E00 E03C00 FFF000 FFC000 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 14 0 BBX 14 19 3 0 BITMAP 0FFC 1FFC 1C00 1C00 1800 1800 3800 3800 3FE0 3FE0 3000 7000 7000 7000 6000 6000 E000 FFE0 FFE0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 14 0 BBX 14 19 3 0 BITMAP 0FFC 1FFC 1C00 1C00 1800 1800 3800 3800 3FE0 3FE0 3000 7000 7000 7000 7000 6000 E000 E000 E000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 18 0 BBX 17 19 3 0 BITMAP 00FF00 03FF80 0F8180 1E0000 3C0000 380000 700000 700000 600000 E00000 E00000 E00600 E00E00 E00E00 E00E00 700C00 781C00 3FFC00 0FE000 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 19 0 BBX 18 19 2 0 BITMAP 0C01C0 1C01C0 1C01C0 1C0180 180380 180380 380380 380380 3FFF00 3FFF00 300700 700700 700700 700600 700E00 600E00 E00E00 E00E00 E00C00 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 8 0 BBX 6 19 3 0 BITMAP 1C 1C 1C 18 18 38 38 38 38 30 70 70 70 70 60 60 E0 E0 E0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 11 0 BBX 13 23 0 -4 BITMAP 0038 0038 0030 0030 0070 0070 0070 0060 0060 00E0 00E0 00E0 00C0 00C0 01C0 01C0 01C0 0180 0380 0380 8700 FE00 FC00 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 17 0 BBX 16 19 3 0 BITMAP 0C07 1C0E 1C1C 1C38 1870 18E0 39C0 3B80 3F00 3600 3300 7300 7180 71C0 70C0 6060 E070 E030 E018 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 14 0 BBX 12 19 2 0 BITMAP 0C00 0C00 1C00 1C00 1C00 1800 1800 3800 3800 3800 3000 3000 7000 7000 7000 6000 6000 FFF0 FFF0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 22 0 BBX 20 19 3 0 BITMAP 0E00F0 1E00F0 1F01F0 1F01E0 1F0360 1B03E0 3B06E0 3306E0 338CC0 339CC0 3398C0 73B9C0 71B1C0 61E180 61E180 61C180 E1C380 E00380 C00300 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 19 0 BBX 18 19 3 0 BITMAP 0C00C0 1E01C0 1E01C0 1F0180 1F0180 1B8180 3B8380 39C380 31C300 30C300 30E300 70E700 707700 607600 603E00 603E00 E01E00 E01E00 C01C00 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 20 0 BBX 18 19 3 0 BITMAP 00FC00 03FF00 078780 0E03C0 1C01C0 3801C0 7001C0 7001C0 6001C0 E001C0 E001C0 E00180 E00380 E00700 E00700 701E00 783C00 3FF000 0FC000 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 15 0 BBX 14 19 3 0 BITMAP 0FF0 1FF8 1C1C 1C1C 181C 181C 3818 3838 38F0 3FE0 3F00 7000 7000 7000 6000 6000 E000 E000 E000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 20 0 BBX 18 24 3 -5 BITMAP 00FC00 03FF00 078780 0E03C0 1C01C0 3801C0 7001C0 7001C0 6001C0 E001C0 E001C0 E001C0 E00380 E00700 E00700 701E00 783C00 3FF800 0FE000 003800 001E00 000FC0 000780 000100 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 3 0 BITMAP 0FF0 1FFC 1C1C 1C1C 181C 181C 3818 3838 3860 3FC0 3F80 71C0 71C0 70E0 70E0 6070 E070 E038 E038 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 14 0 BBX 15 19 2 0 BITMAP 01F8 07FE 0E04 1C00 1C00 1C00 1C00 0F00 0780 03C0 01E0 00F0 0070 0030 0030 0070 C0E0 FFC0 7F00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 16 0 BBX 16 19 4 0 BITMAP FFFF FFFF 0380 0380 0380 0300 0300 0700 0700 0700 0700 0600 0E00 0E00 0E00 0E00 0C00 0C00 1C00 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 18 0 BBX 16 19 3 0 BITMAP 3803 3807 3807 3806 3006 7006 700E 700E 700C 600C E00C E01C E018 E018 E038 E030 7070 7FE0 1F80 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 18 0 BBX 17 19 4 0 BITMAP E00380 E00300 E00700 600E00 700C00 701C00 701800 703800 303000 387000 38E000 38C000 39C000 198000 1F8000 1F0000 1F0000 1E0000 1E0000 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 23 0 BBX 22 19 4 0 BITMAP E0301C E07018 E07038 E0F030 E0F030 E1F860 E1B860 E1B8C0 E338C0 E339C0 663980 663B80 6E3B00 6C3F00 7C3E00 783E00 783C00 703C00 703800 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 16 0 BBX 19 19 0 0 BITMAP 0E00E0 0701C0 070380 038700 038E00 01DC00 01D800 00F800 00F000 00F000 01F000 03F000 033800 063800 0E1C00 1C1C00 380E00 700E00 E00700 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 4 0 BITMAP E00E 601C 7038 7030 3860 38E0 1DC0 1D80 0F00 0F00 0E00 0E00 0E00 0C00 0C00 1C00 1C00 1C00 1800 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 15 0 BBX 17 19 1 0 BITMAP 0FFF80 0FFF80 000700 000E00 001C00 003C00 007800 007000 00E000 01C000 038000 070000 0F0000 1E0000 3C0000 380000 700000 FFFC00 FFFC00 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 8 0 BBX 10 23 1 -4 BITMAP 07C0 0FC0 0E00 0C00 0C00 0C00 1C00 1C00 1800 1800 1800 3800 3000 3000 3000 3000 7000 6000 6000 6000 6000 FC00 F800 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 13 0 BBX 7 23 4 -4 BITMAP C0 C0 40 60 60 60 60 30 30 30 30 10 18 18 18 18 0C 0C 0C 0C 04 06 06 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 8 0 BBX 10 23 0 -4 BITMAP 07C0 0FC0 0180 0180 0180 0180 0380 0300 0300 0300 0300 0700 0600 0600 0600 0E00 0E00 0C00 0C00 0C00 1C00 F800 F800 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 16 0 BBX 15 16 1 3 BITMAP 0020 0060 0060 00E0 01F0 01B0 0330 0718 0618 0E18 0C18 180C 380C 300C 6006 E006 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 13 0 BBX 11 2 1 -2 BITMAP FFE0 FFE0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 4 12 BITMAP 18 30 60 60 70 F0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 2 0 BITMAP 01FC 07FC 0E1C 1C18 3818 7038 7078 6078 E0F0 E1F0 E3F0 E770 FE70 7860 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 2 0 BITMAP 0E00 0C00 0C00 1C00 1C00 1878 19FC 3B9C 3F1C 361C 3C1C 3818 7838 7038 6070 60E0 61C0 FF80 FE00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 2 0 BITMAP 03F0 0FF0 1C10 3800 7000 6000 E000 E000 E000 E000 E040 E1C0 7FC0 3E00 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 2 0 BITMAP 000E 000E 000C 000C 001C 01FC 07FC 0E18 1C18 3838 7038 7078 60F0 E0F0 E1F0 E3F0 E770 FE60 7860 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 14 0 BBX 11 14 2 0 BITMAP 03C0 0FE0 1C60 3060 7060 60C0 E780 FF00 F000 E000 E020 E0E0 7FC0 3F00 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 10 0 BBX 13 25 2 -5 BITMAP 00F8 03F8 0788 0600 0E00 0C00 7FC0 7FC0 1C00 1C00 1800 1800 1800 3800 3800 3000 3000 3000 7000 7000 6000 6000 6000 E000 E000 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 1 -5 BITMAP 00FE 03FE 070C 0E0C 1C0C 381C 381C 3038 7078 70D8 71B8 73B8 3F30 3C30 0070 0060 C0E0 FFC0 7F00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 3 0 BITMAP 0C00 0C00 1C00 1C00 1800 1870 19F8 3BB8 3F38 3E38 3C38 3C30 7830 7070 6070 6070 6060 E060 E0E0 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 8 0 BBX 6 19 3 0 BITMAP 1C 1C 00 00 00 18 38 38 30 30 30 70 70 60 60 60 E0 E0 E0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 8 0 BBX 13 24 -2 -5 BITMAP 0038 0038 0000 0000 0000 0070 0070 0060 0060 00E0 00E0 00E0 00C0 00C0 01C0 01C0 01C0 0180 0180 0380 0300 8600 FE00 F800 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 15 0 BBX 14 19 2 0 BITMAP 0E00 0C00 0C00 1C00 1C00 183C 1870 18E0 39C0 3B80 3700 3E00 7700 7380 6380 61C0 60E0 E060 E070 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 8 0 BBX 7 19 2 0 BITMAP 0E 0E 0C 0C 1C 1C 18 18 38 38 38 30 30 70 70 60 60 E0 E0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 24 0 BBX 22 14 2 0 BITMAP 187838 19F8FC 1B99DC 3F1B9C 361F1C 3C3E1C 3C3C18 383818 703838 603038 607030 607030 606030 C06070 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 16 0 BBX 13 14 3 0 BITMAP 1870 39F8 3BB8 3738 3E38 3C38 7830 7830 7070 6070 6070 E060 E060 E0E0 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 15 0 BBX 13 14 2 0 BITMAP 03C0 0FF0 1C30 3838 7038 6038 E038 E030 E070 E070 E0E0 E1C0 7F80 3E00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 1 -5 BITMAP 0C3C 1CFE 1DCE 1F8E 1F0E 1E0E 3C0C 3C1C 381C 3038 3070 70E0 7FC0 7F00 6000 6000 E000 E000 E000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 2 -5 BITMAP 01FC 07FC 0E18 1C18 3818 7038 7078 6070 E0F0 E1B0 E3F0 E770 FE60 7860 0060 00E0 00E0 00C0 00C0 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 2 0 BITMAP 1870 18F0 3BA0 3B00 3600 3C00 3C00 7800 7000 6000 6000 6000 E000 E000 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 2 0 BITMAP 07C0 1FE0 1C60 3800 1800 1C00 0E00 0700 0380 0180 0180 C380 FF80 7E00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 10 0 BBX 8 17 3 0 BITMAP 18 18 18 FF FF 38 30 30 70 70 70 60 60 E0 60 7C 38 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 16 0 BBX 13 14 3 0 BITMAP 3038 3038 3038 3030 6030 6070 60F0 60F0 61E0 E3E0 E760 EEE0 FCE0 70C0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 3 0 BITMAP C038 E030 E060 E0E0 60C0 61C0 6180 6300 6700 7600 7C00 7C00 3800 3800 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 20 0 BBX 19 14 3 0 BITMAP C0E0E0 E0E0C0 E1E1C0 E1E180 E36380 E36300 666700 666600 6C6E00 6C6C00 7C7C00 787800 787800 707000 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 14 0 BBX 15 14 1 0 BITMAP 1C0E 0E1C 0E38 0670 0760 03C0 0380 0380 07C0 0EC0 1CE0 3860 7070 E038 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 14 0 BBX 14 19 3 -5 BITMAP 601C 7018 7030 7030 3060 30E0 30C0 3980 3980 3B00 1F00 1E00 1C00 1C00 1800 3800 3000 6000 E000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 2 0 BITMAP 1FF8 1FF8 0070 00E0 01C0 0380 0780 0F00 0E00 1C00 3800 7000 FFE0 FFE0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 8 0 BBX 9 23 2 -4 BITMAP 0380 0780 0E00 0C00 0C00 0C00 0C00 1C00 1C00 3800 F000 E000 3000 3000 3000 3000 7000 6000 6000 C000 E000 7800 3000 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 6 0 BBX 7 23 1 -4 BITMAP 06 06 04 0C 0C 0C 0C 18 18 18 18 10 30 30 30 30 60 60 60 60 40 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 8 0 BBX 9 23 1 -4 BITMAP 0600 0F00 0380 0380 0300 0300 0600 0600 0600 0600 0380 0780 0E00 0C00 1800 1800 1800 1800 1800 3800 F000 F000 C000 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 16 0 BBX 16 6 2 5 BITMAP 1C03 3F03 6386 61C6 C0FC C038 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 8 0 BBX 6 19 2 -5 BITMAP 1C 1C 00 00 00 18 18 30 30 30 30 30 70 60 60 60 E0 E0 E0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 4 0 BITMAP 0080 0080 01F0 07F0 1F10 3900 3100 7300 6200 E200 E200 E600 E400 E440 F4C0 7FC0 3F00 0800 0800 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 3 0 BITMAP 00FC 01FC 0384 0300 0700 0600 0600 0E00 3F80 3F80 0C00 0C00 0C00 1C00 1800 3800 7000 FFE0 FFC0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 16 0 BBX 18 17 1 1 BITMAP 080080 1801C0 1DF380 0FFF00 071E00 060C00 0C0600 0C0600 080400 180C00 180C00 0C1800 0E3800 1FFC00 73EE00 E00600 400400 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 4 0 BITMAP E00E 701C 7018 3830 3860 18E0 1CC0 0D80 0F00 0F00 7FE0 7FC0 0E00 FFC0 FFC0 0C00 1C00 1C00 1800 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 6 0 BBX 7 23 1 -4 BITMAP 06 06 04 0C 0C 0C 0C 18 18 00 00 00 00 00 30 30 60 60 60 60 40 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 16 0 BBX 14 24 2 -5 BITMAP 01FC 07FC 0E0C 1C00 1C00 1C00 0E00 0F00 0FC0 19F0 3870 3030 3030 3C30 1E70 0FE0 03E0 00E0 0070 0060 0060 C0E0 FFC0 7F00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 15 0 BBX 8 2 7 17 BITMAP E3 C7 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 22 0 BBX 20 19 3 0 BITMAP 01F800 0FFE00 1E0780 3801C0 607CC0 61FE60 C38420 C70030 860030 840030 8C0030 CE0030 C60820 67F860 61F0C0 3801C0 1E0780 0FFE00 01F800 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 3 9 BITMAP 0E00 1FC0 31C0 6180 6380 C780 C580 DB80 F300 6700 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 14 0 BBX 12 12 3 1 BITMAP 0420 0E70 1CE0 39C0 7380 E700 E700 6300 3380 3180 18C0 1080 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 16 0 BBX 15 7 3 4 BITMAP FFFE FFFE 0006 0004 000C 000C 000C ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 8 0 BBX 6 2 3 8 BITMAP FC FC ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 16 0 BBX 12 12 5 7 BITMAP 1F00 3FC0 70E0 CF60 C920 8F30 8E30 CA20 DB60 70E0 3FC0 1F00 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 15 0 BBX 8 2 7 17 BITMAP FF FF ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 7 0 BBX 4 5 5 14 BITMAP 70 90 90 90 70 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 16 0 BBX 17 16 1 0 BITMAP 006000 006000 006000 006000 006000 3FFF80 3FFF80 00C000 00C000 00C000 008000 018000 000000 000000 FFFE00 FFFE00 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 10 0 BBX 9 11 -14 8 BITMAP 1F00 3F80 2180 0180 0300 0600 1C00 3000 6000 FE00 FE00 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 -14 8 BITMAP 3E 3F 03 03 3C 3C 06 02 86 FE F8 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 15 0 BBX 6 4 9 15 BITMAP 1C 30 60 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 2 -4 BITMAP 1C0E 1C0E 1C0C 180C 180C 381C 381C 3838 3078 30D8 70F8 73B8 7F30 7E30 6000 E000 E000 E000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 16 0 BBX 12 23 4 -4 BITMAP 3FF0 7FF0 FF20 FF20 FF20 FE60 FE60 7E40 3E40 0E40 04C0 0CC0 0C80 0C80 0880 0980 1980 1900 1900 1100 1300 3300 3200 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 16 0 BBX 4 3 8 7 BITMAP 70 F0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 15 0 BBX 4 6 5 -5 BITMAP 20 60 30 30 30 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 10 0 BBX 4 11 -17 8 BITMAP F0 F0 20 20 20 60 60 40 40 C0 C0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 3 9 BITMAP 0780 1FC0 39C0 70C0 60C0 C1C0 C180 E700 FE00 7C00 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 14 0 BBX 12 12 2 1 BITMAP 1080 3180 18C0 1CE0 0C60 0E70 0E70 1CE0 39C0 7380 E700 4200 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 23 0 BBX 20 19 11 0 BITMAP 780070 7800E0 1001C0 100380 100700 300E00 301C00 201800 203060 6060E0 60C1C0 018340 0386C0 070CC0 0E1FE0 1C1FE0 380080 700180 E00180 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 23 0 BBX 20 19 11 0 BITMAP 780070 7800E0 1001C0 100380 100700 300E00 301C00 201800 2033E0 6067F0 60C430 018030 038060 0700C0 0E0380 1C0600 380C00 701FC0 E01FC0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 23 0 BBX 21 19 12 0 BITMAP 3E0038 3F0070 0300E0 0301C0 3C0380 3C0700 060E00 020C00 861830 FE3070 F860E0 00C1A0 01C360 038660 070FF0 0E0FF0 1C0040 3800C0 7000C0 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 12 0 BBX 10 19 1 -5 BITMAP 00C0 01C0 0000 0000 0000 0180 0380 0300 0700 0E00 1C00 3800 7000 E000 E000 E000 F040 7FC0 3F80 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 18 0 BBX 17 24 1 0 BITMAP 007000 003800 001800 000C00 000000 003800 003C00 007C00 007C00 00EC00 00CC00 01CE00 038E00 030E00 070600 060600 0E0700 0FFF00 1FFF00 180700 380300 700380 600380 E00380 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 18 0 BBX 17 24 1 0 BITMAP 000700 000C00 001800 003000 000000 003800 003C00 007C00 007C00 00EC00 00CC00 01CE00 038E00 030E00 070600 060600 0E0700 0FFF00 1FFF00 180700 380300 700380 600380 E00380 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 18 0 BBX 17 24 1 0 BITMAP 001E00 003E00 007600 00E300 000000 003800 003C00 007C00 007C00 00EC00 00CC00 01CE00 038E00 030E00 070600 060600 0E0700 0FFF00 1FFF00 180700 380300 700380 600380 E00380 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 18 0 BBX 17 22 1 0 BITMAP 007B00 00DE00 000000 003800 003C00 007C00 007C00 00EC00 00CC00 01CE00 038E00 030E00 070600 060600 0E0700 0FFF00 1FFF00 180700 380300 700380 600380 E00380 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 18 0 BBX 17 22 1 0 BITMAP 00E300 00C700 000000 003800 003C00 007C00 007C00 00EC00 00CC00 01CE00 038E00 030E00 070600 060600 0E0700 0FFF00 1FFF00 180700 380300 700380 600380 E00380 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 18 0 BBX 17 24 1 0 BITMAP 001800 002400 002400 001800 000000 003800 003C00 007C00 007C00 00EC00 00CC00 01CE00 038E00 030E00 070600 060600 0E0700 0FFF00 1FFF00 180700 380300 700380 600380 E00380 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 23 0 BBX 26 19 0 0 BITMAP 0003FFC0 0007FFC0 0007C000 000F8000 001F8000 003B8000 00338000 00738000 00E3FE00 01C7FE00 01870000 03070000 07FF0000 0FFE0000 1C0E0000 180E0000 380E0000 700FFE00 E00FFE00 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 18 0 BBX 17 24 3 -5 BITMAP 00FF00 03FF80 0F8180 1E0000 3C0000 380000 700000 700000 700000 E00000 E00000 E00000 E00000 E00000 E00000 700400 781C00 3FFC00 0FE000 060000 030000 030000 030000 0E0000 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 14 0 BBX 14 24 3 0 BITMAP 0380 01C0 00C0 0060 0000 0FFC 1FFC 1C00 1C00 1800 1800 3800 3800 3FE0 3FE0 3000 7000 7000 7000 6000 6000 E000 FFE0 FFE0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 14 0 BBX 14 24 3 0 BITMAP 0038 0060 00C0 0180 0000 0FFC 1FFC 1C00 1C00 1800 1800 3800 3800 3FE0 3FE0 3000 7000 7000 7000 6000 6000 E000 FFE0 FFE0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 14 0 BBX 14 24 3 0 BITMAP 01E0 03E0 0760 0E30 0000 0FFC 1FFC 1C00 1C00 1800 1800 3800 3800 3FE0 3FE0 3000 7000 7000 7000 6000 6000 E000 FFE0 FFE0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 14 0 BBX 14 22 3 0 BITMAP 0E30 0C70 0000 0FFC 1FFC 1C00 1C00 1800 1800 3800 3800 3FE0 3FE0 3000 7000 7000 7000 6000 6000 E000 FFE0 FFE0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 8 0 BBX 7 24 3 0 BITMAP 38 1C 0C 06 00 1C 1C 1C 18 18 38 38 38 38 30 70 70 70 70 60 60 E0 E0 E0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 8 0 BBX 9 24 3 0 BITMAP 0380 0600 0C00 1800 0000 1C00 1C00 1C00 1800 1800 3800 3800 3800 3800 3000 7000 7000 7000 7000 6000 6000 E000 E000 E000 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 8 0 BBX 9 24 3 0 BITMAP 0F00 1F00 3B00 7180 0000 1C00 1C00 1C00 1800 1800 3800 3800 3800 3800 3000 7000 7000 7000 7000 6000 6000 E000 E000 E000 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 8 0 BBX 9 22 3 0 BITMAP 7180 6380 0000 1C00 1C00 1C00 1800 1800 3800 3800 3800 3800 3000 7000 7000 7000 7000 6000 6000 E000 E000 E000 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 19 0 BBX 19 19 1 0 BITMAP 07FE00 0FFF80 0E07C0 0E01E0 0E00E0 0C00E0 1C00E0 1C00E0 FFC0E0 FFC0E0 1800C0 1801C0 3801C0 380380 380700 300700 301E00 7FF800 7FE000 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 19 0 BBX 18 22 3 0 BITMAP 00F600 01BC00 000000 0C00C0 1E01C0 1E01C0 1F0180 1F0180 1B8180 3B8380 39C380 31C300 30C300 30E300 70E700 707700 607600 603E00 603E00 E01E00 E01E00 C01C00 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 20 0 BBX 18 24 3 0 BITMAP 00E000 007000 003000 001800 000000 00FC00 03FF00 078780 0E03C0 1C01C0 3801C0 7001C0 7001C0 6001C0 E001C0 E001C0 E00180 E00380 E00700 E00700 701E00 783C00 3FF000 0FC000 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 20 0 BBX 18 24 3 0 BITMAP 000E00 001800 003000 006000 000000 00FC00 03FF00 078780 0E03C0 1C01C0 3801C0 7001C0 7001C0 6001C0 E001C0 E001C0 E00180 E00380 E00700 E00700 701E00 783C00 3FF000 0FC000 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 20 0 BBX 18 24 3 0 BITMAP 003C00 007C00 00EC00 01C600 000000 00FC00 03FF00 078780 0E03C0 1C01C0 3801C0 7001C0 7001C0 6001C0 E001C0 E001C0 E00180 E00380 E00700 E00700 701E00 783C00 3FF000 0FC000 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 20 0 BBX 18 22 3 0 BITMAP 00F600 01BC00 000000 00FC00 03FF00 078780 0E03C0 1C01C0 3801C0 7001C0 7001C0 6001C0 E001C0 E001C0 E00180 E00380 E00700 E00700 701E00 783C00 3FF000 0FC000 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 20 0 BBX 18 22 3 0 BITMAP 01C600 018E00 000000 00FC00 03FF00 078780 0E03C0 1C01C0 3801C0 7001C0 7001C0 6001C0 E001C0 E001C0 E00180 E00380 E00700 E00700 701E00 783C00 3FF000 0FC000 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 16 0 BBX 17 16 1 0 BITMAP 300100 180380 1C0700 0C0E00 061C00 033800 03F000 01C000 01C000 07E000 0E7000 1C3000 381800 701C00 E00E00 400400 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 20 0 BBX 22 19 5 0 BITMAP 003F1C 00FFF0 01E1E0 0380F0 0701F0 0E0370 1C0670 1C0C70 181870 383070 386070 38C060 3980E0 3B01C0 3E01C0 1C0780 1E0F00 3FFC00 E3F000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 18 0 BBX 16 24 3 0 BITMAP 01C0 00E0 0060 0030 0000 3803 3807 3807 3806 3006 7006 700E 700E 700C 600C E00C E01C E018 E018 E038 E030 7070 7FE0 1F80 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 18 0 BBX 16 24 3 0 BITMAP 001C 0030 0060 00C0 0000 3803 3807 3807 3806 3006 7006 700E 700E 700C 600C E00C E01C E018 E018 E038 E030 7070 7FE0 1F80 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 18 0 BBX 16 24 3 0 BITMAP 00F0 01F0 03B0 0718 0000 3803 3807 3807 3806 3006 7006 700E 700E 700C 600C E00C E01C E018 E018 E038 E030 7070 7FE0 1F80 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 18 0 BBX 16 22 3 0 BITMAP 038C 031C 0000 3803 3807 3807 3806 3006 7006 700E 700E 700C 600C E00C E01C E018 E018 E038 E030 7070 7FE0 1F80 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 16 0 BBX 15 24 4 0 BITMAP 0070 00C0 0180 0300 0000 E00E 601C 7038 7030 3860 38E0 1DC0 1D80 0F00 0F00 0E00 0E00 0E00 0C00 0C00 1C00 1C00 1C00 1800 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 15 0 BBX 14 19 2 0 BITMAP 0E00 0C00 1C00 1C00 1FF0 1FF8 181C 381C 381C 381C 3038 3038 70F0 7FC0 7F00 6000 6000 E000 E000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 15 0 BBX 14 25 2 -5 BITMAP 01F0 03F8 0718 0E18 0E18 0C30 0C60 0CC0 1D80 1D80 19C0 18E0 1870 3838 381C 300C 300C 321C 73F8 73E0 6000 6000 6000 E000 E000 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 2 0 BITMAP 01C0 00E0 0060 0030 0000 01FC 07FC 0E1C 1C18 3818 7038 7078 6078 E0F0 E1F0 E3F0 E770 FE70 7860 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 2 0 BITMAP 001C 0030 0060 00C0 0000 01FC 07FC 0E1C 1C18 3818 7038 7078 6078 E0F0 E1F0 E3F0 E770 FE70 7860 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 2 0 BITMAP 00F0 01F0 03B0 0718 0000 01FC 07FC 0E1C 1C18 3818 7038 7078 6078 E0F0 E1F0 E3F0 E770 FE70 7860 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 2 0 BITMAP 01EC 0378 0000 01FC 07FC 0E1C 1C18 3818 7038 7078 6078 E0F0 E1F0 E3F0 E770 FE70 7860 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 2 0 BITMAP 038C 031C 0000 01FC 07FC 0E1C 1C18 3818 7038 7078 6078 E0F0 E1F0 E3F0 E770 FE70 7860 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 2 0 BITMAP 0060 0090 0090 0060 0000 01FC 07FC 0E1C 1C18 3818 7038 7078 6078 E0F0 E1F0 E3F0 E770 FE70 7860 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 23 0 BBX 21 14 2 0 BITMAP 01FDF0 07FFF8 0E1E38 1C1C38 381830 703870 7079E0 60FF80 E0FC00 E1B000 E3B008 E73838 FE1FF0 780FC0 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 13 0 BBX 12 19 2 -5 BITMAP 03F0 0FF0 1C10 3800 7000 6000 E000 E000 E000 E000 E040 E1C0 7FC0 3E00 1800 0C00 0C00 0C00 3800 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 14 0 BBX 11 19 2 0 BITMAP 0380 01C0 00C0 0060 0000 03C0 0FE0 1C60 3060 7060 60C0 E780 FF00 F000 E000 E020 E0E0 7FC0 3F00 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 14 0 BBX 13 19 2 0 BITMAP 0038 0060 00C0 0180 0000 03C0 0FE0 1C60 3060 7060 60C0 E780 FF00 F000 E000 E020 E0E0 7FC0 3F00 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 14 0 BBX 12 19 2 0 BITMAP 01E0 03E0 0760 0E30 0000 03C0 0FE0 1C60 3060 7060 60C0 E780 FF00 F000 E000 E020 E0E0 7FC0 3F00 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 2 0 BITMAP 0E30 0C70 0000 03C0 0FE0 1C60 3060 7060 60C0 E780 FF00 F000 E000 E020 E0E0 7FC0 3F00 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 8 0 BBX 7 19 3 0 BITMAP 38 1C 0C 06 00 18 38 38 30 30 30 70 70 60 60 60 E0 E0 E0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 8 0 BBX 9 19 3 0 BITMAP 0380 0600 0C00 1800 0000 1800 3800 3800 3000 3000 3000 7000 7000 6000 6000 6000 E000 E000 E000 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 8 0 BBX 9 19 3 0 BITMAP 0F00 1F00 3B00 7180 0000 1800 3800 3800 3000 3000 3000 7000 7000 6000 6000 6000 E000 E000 E000 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 8 0 BBX 9 17 3 0 BITMAP 7180 6380 0000 1800 3800 3800 3000 3000 3000 7000 7000 6000 6000 6000 E000 E000 E000 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 14 0 BBX 13 19 2 0 BITMAP 1FE0 1FF0 03C0 0FE0 0670 07F0 0FF0 1C78 3838 7038 6038 E030 E030 E030 E060 E0E0 F1C0 7F80 3E00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 16 0 BBX 13 17 3 0 BITMAP 03D8 06F0 0000 1870 39F8 3BB8 3738 3E38 3C38 7830 7830 7070 6070 6070 E060 E060 E0E0 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 15 0 BBX 13 19 2 0 BITMAP 0380 01C0 00C0 0060 0000 03C0 0FF0 1C30 3838 7038 6038 E038 E030 E070 E070 E0E0 E1C0 7F80 3E00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 15 0 BBX 13 19 2 0 BITMAP 0038 0060 00C0 0180 0000 03C0 0FF0 1C30 3838 7038 6038 E038 E030 E070 E070 E0E0 E1C0 7F80 3E00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 15 0 BBX 13 19 2 0 BITMAP 00F0 01F0 03B0 0718 0000 03C0 0FF0 1C30 3838 7038 6038 E038 E030 E070 E070 E0E0 E1C0 7F80 3E00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 2 0 BITMAP 03D8 06F0 0000 03C0 0FF0 1C30 3838 7038 6038 E038 E030 E070 E070 E0E0 E1C0 7F80 3E00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 2 0 BITMAP 0718 0638 0000 03C0 0FF0 1C30 3838 7038 6038 E038 E030 E070 E070 E0E0 E1C0 7F80 3E00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 16 0 BBX 15 14 2 0 BITMAP 01C0 01C0 0000 0000 0000 0000 FFFE FFFE 0000 0000 0000 0000 0700 0700 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 15 0 BBX 15 14 3 0 BITMAP 01EE 07FC 0E38 1C7C 387C 30DC 719C 7318 7638 7C38 7C70 78E0 7FC0 FF00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 3 0 BITMAP 0380 01C0 00C0 0060 0000 3038 3038 3038 3030 6030 6070 60F0 60F0 61E0 E3E0 E760 EEE0 FCE0 70C0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 3 0 BITMAP 0038 0060 00C0 0180 0000 3038 3038 3038 3030 6030 6070 60F0 60F0 61E0 E3E0 E760 EEE0 FCE0 70C0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 3 0 BITMAP 01E0 03E0 0760 0E30 0000 3038 3038 3038 3030 6030 6070 60F0 60F0 61E0 E3E0 E760 EEE0 FCE0 70C0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 16 0 BBX 13 17 3 0 BITMAP 0718 0638 0000 3038 3038 3038 3030 6030 6070 60F0 60F0 61E0 E3E0 E760 EEE0 FCE0 70C0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 14 0 BBX 14 24 3 -5 BITMAP 0070 00C0 0180 0300 0000 601C 7018 7030 7030 3060 30E0 30C0 3980 3980 3B00 1F00 1E00 1C00 1C00 1800 3800 3000 6000 E000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 16 0 BBX 15 23 1 -5 BITMAP 0E00 0E00 0E00 0C00 0C3C 1CFE 1DCE 1F8E 1B0E 1E0E 3C0C 3C1C 381C 3038 3070 70E0 7FC0 7F00 6000 6000 E000 E000 E000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 14 0 BBX 14 22 3 -5 BITMAP 0E30 0C70 0000 601C 7018 7030 7030 3060 30E0 30C0 3980 3980 3B00 1F00 1E00 1C00 1C00 1800 3800 3000 6000 E000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 16 25 2 -5 BITMAP 00FF 03FF 0707 0E06 0E06 0C0E 7FCE 7F8E 1C0C 1C0C 181C 181C 381C 3818 3818 3038 3038 7038 7030 7030 6000 6000 E000 E000 E000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 11 2 3 7 BITMAP FFE0 FFE0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 11 23 5 -4 BITMAP 0300 0700 0700 0600 0600 0600 0600 FFE0 FFE0 0C00 0C00 0C00 0C00 1C00 1800 1800 1800 1800 3800 3000 3000 3000 7000 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 17 24 1 0 BITMAP 018E00 00DC00 00D800 007000 000000 0FFF80 0FFF80 000700 000E00 001C00 003C00 007800 007000 00E000 01C000 038000 070000 0F0000 1E0000 3C0000 380000 700000 FFFC00 FFFC00 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 20 14 3 0 BITMAP 07C1E0 0FE7F0 1C7E70 303C30 703870 6030E0 E033C0 E07F80 E07C00 E07000 E0F010 E1F870 7FBFE0 3E1F80 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 15 22 4 0 BITMAP 0E30 0C70 0000 E00E 601C 7038 7030 3860 38E0 1DC0 1D80 0F00 0F00 0E00 0E00 0E00 0C00 0C00 1C00 1C00 1C00 1800 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 14 3 0 BITMAP 18 38 38 30 30 30 70 70 60 60 60 E0 E0 E0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 10 19 1 0 BITMAP 0300 0700 0700 0600 0600 0640 0FC0 0F80 0E00 3C00 FC00 DC00 1800 1800 3800 3800 3800 3000 3000 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 13 19 1 0 BITMAP 0700 0700 0600 0E00 0E00 0E80 0D80 0F80 1F00 3C00 FC00 DC00 9800 1800 3800 3800 3800 3FF8 3FF8 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 13 23 3 -4 BITMAP 01C0 01C0 0180 0180 0180 0180 0100 3FF8 3FF8 0300 0300 0300 0600 0600 0600 FFE0 FFE0 0C00 0C00 0C00 0C00 1C00 1C00 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 16 25 2 -5 BITMAP 00F0 03F7 0717 0600 0E00 0C00 7FFE 7FFE 1C0E 1C0C 180C 181C 381C 381C 3818 3018 3038 7038 7038 7030 6000 6000 E000 E000 E000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 2 1 BITMAP 10 30 18 1C 0C 0E 0E 1C 38 70 E0 40 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 26 0 BBX 26 19 3 0 BITMAP 00FDFFC0 03FFFFC0 0787C000 0E038000 1C038000 38038000 70038000 70038000 6003FE00 E003FE00 E0070000 E0070000 E0070000 E0060000 E00E0000 701E0000 783E0000 3FFFFE00 0FCFFE00 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 26 0 BBX 24 2 2 7 BITMAP FFFFFF FFFFFF ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 4 8 15 BITMAP C7 6E 6C 38 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 4 4 5 -4 BITMAP 60 C0 C0 70 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 9 4 7 15 BITMAP 1F80 3600 6C00 D800 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 3 1 BITMAP 04 0E 1C 38 70 E0 E0 60 30 30 18 10 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 3 2 10 17 BITMAP E0 E0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 4 8 15 BITMAP C3 C2 7E 78 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 9 8 5 4 BITMAP 7F80 7F80 7F80 7F00 7F00 FF00 FF00 FF00 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 2 7 17 BITMAP 7B DE ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 4 7 15 BITMAP 1E 3E 76 E3 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 6 4 13 BITMAP 31 62 46 46 EE EE ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 6 5 13 BITMAP E0 E0 E0 E0 E0 60 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 13 19 2 0 BITMAP 0638 0370 0360 01C0 0000 07C0 1FE0 1C60 3800 1800 1C00 0E00 0700 0380 0180 0180 C380 FF80 7E00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 4 4 9 16 BITMAP 60 90 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 -4 BITMAP 70 70 70 F0 20 60 60 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 12 23 6 -4 BITMAP 01F0 07F0 0600 0C00 0C00 1C00 1C00 1800 FF00 FE00 3800 3800 3800 3000 3000 7000 7000 7000 6000 6000 E000 E000 E000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 20 10 3 9 BITMAP FFB870 FFB8F0 183CF0 183DE0 182D60 386F60 306E60 306EE0 306CC0 3040C0 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 20 19 -6 0 BITMAP 000070 0000E0 0001C0 000380 000700 000E00 001C00 001800 003000 006000 00C000 018000 038000 070000 0E0000 1C0000 380000 700000 E00000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 5 4 8 15 BITMAP E0 70 30 18 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 27 0 BBX 28 19 1 0 BITMAP 07807000 1FC0E000 18C1C000 30418000 30C30000 30C60000 31CC0000 3F980000 1E300000 006783C0 00CFC7E0 0198CE70 0330CC30 0630D830 0C30D830 1830D860 38319CE0 703F0FC0 E01E0780 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 26 0 BBX 20 2 3 0 BITMAP E06070 E06070 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 6 4 13 BITMAP 73 67 23 62 46 8C ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 15 24 2 0 BITMAP 031C 01B8 01B0 00E0 0000 01F8 07FE 0E04 1C00 1C00 1C00 1C00 0F00 0780 03C0 01E0 00F0 0070 0030 0030 0070 C0E0 FFC0 7F00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 0 -5 BITMAP 73 77 67 23 62 62 C4 88 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 19 2 0 BITMAP 031C 01B8 01B0 00E0 0000 1FF8 1FF8 0070 00E0 01C0 0380 0780 0F00 0E00 1C00 3800 7000 FFE0 FFE0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/luIS24.bdf100644 1750 1750 146414 5413747523 15066 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Medium-I-Normal-Sans-34-240-100-100-P-192-ISO8859-1 SIZE 24 100 100 FONTBOUNDINGBOX 66 39 -22 -7 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Medium" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 34 POINT_SIZE 240 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 192 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 31 FONT_DESCENT 8 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 11 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 11 0 BBX 8 25 4 0 BITMAP 07 0F 0F 0E 0E 0E 0E 1C 1C 1C 1C 1C 18 38 38 38 30 30 00 00 00 00 70 F0 E0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 12 0 BBX 9 8 6 18 BITMAP E380 E380 E380 E380 E380 E380 E380 E380 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 21 0 BBX 21 25 3 0 BITMAP 000C38 001870 001870 0030E0 0030E0 0061C0 0061C0 3FFFF8 3FFFF8 3FFFF8 018300 018600 030600 030C00 060C00 FFFFE0 FFFFE0 FFFFE0 0C3800 187000 187000 30E000 30E000 61C000 E3C000 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 21 0 BBX 17 30 5 -3 BITMAP 003000 003000 00FE00 03FF80 07FF80 0F6100 1E6000 1C6000 1C4000 1C4000 1CC000 0EC000 0FC000 078000 01E000 01F000 01F800 01BC00 011C00 031C00 031C00 031C00 031C00 423800 FEF000 FFE000 7FC000 060000 060000 040000 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 25 0 BBX 26 25 2 0 BITMAP 03E003C0 07F00700 0FF80600 1E380C00 1C181C00 38183800 38387000 3830E000 3871C000 1FE38000 1FE70000 0F8E0000 001C7800 0039FC00 0033FE00 00678E00 00E70600 01C60600 038E0600 070E0600 0E0E0E00 1C0F1C00 3807FC00 7007F800 E003E000 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 24 0 BBX 20 25 3 0 BITMAP 001E00 007F80 00FF80 01E3C0 01C1C0 01C180 03C380 01C780 01CF00 01FE00 03F800 0FE000 1FF070 3C7070 787070 F078F0 F038E0 E03DE0 E01FC0 F01FC0 F00F80 7C3F00 7FFF80 3FF380 0FC3C0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 5 16 BITMAP 3C 3C 7C 7C 38 38 38 70 F0 E0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 11 0 BBX 11 32 3 -6 BITMAP 0020 0060 00E0 01C0 0380 0700 0600 0E00 1C00 1C00 3800 3800 7800 7000 7000 F000 F000 E000 E000 E000 E000 E000 E000 E000 E000 6000 7000 7000 3800 3C00 1800 0800 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 11 0 BBX 11 32 1 -6 BITMAP 0200 0300 0380 0380 01C0 01C0 00E0 00E0 00E0 00E0 00E0 00E0 00E0 00E0 00E0 00E0 00E0 01E0 01C0 01C0 0380 0380 0780 0700 0E00 0E00 1C00 3800 7000 E000 C000 8000 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 16 0 BBX 13 12 5 13 BITMAP 0380 0300 0300 4308 7278 FDF8 0400 0F00 1B80 7180 71C0 2100 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 21 0 BBX 20 21 3 0 BITMAP 003800 003800 003800 003800 003800 007000 007000 007000 007000 FFFFF0 FFFFF0 FFFFF0 00E000 00E000 00E000 00E000 01C000 01C000 01C000 01C000 01C000 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 11 0 BBX 6 12 2 -7 BITMAP 3C 3C 7C 78 78 18 38 38 30 70 E0 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 21 0 BBX 20 3 3 9 BITMAP FFFFF0 FFFFF0 FFFFF0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 11 0 BBX 5 4 3 0 BITMAP 78 78 F0 F0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 16 0 BBX 22 32 0 -6 BITMAP 00001C 000038 000038 000070 0000E0 0000E0 0001C0 0001C0 000380 000700 000700 000E00 000E00 001C00 003800 003800 007000 007000 00E000 01C000 01C000 038000 038000 070000 0E0000 0E0000 1C0000 1C0000 380000 700000 700000 E00000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 21 0 BBX 18 25 4 0 BITMAP 007C00 01FF00 03FF80 078780 0F03C0 1E01C0 1C01C0 3801C0 3801C0 7801C0 7001C0 7001C0 F003C0 F003C0 E00380 E00380 E00780 E00700 E00F00 F00E00 701C00 787C00 3FF800 3FE000 0F8000 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 21 0 BBX 8 25 9 0 BITMAP 7F 7F 7F 0E 0E 0E 0E 1E 1C 1C 1C 1C 3C 38 38 38 38 78 70 70 70 70 F0 E0 E0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 21 0 BBX 19 25 3 0 BITMAP 00FE00 03FF80 07FFC0 0703E0 0401E0 0001E0 0001E0 0001E0 0001C0 0003C0 000780 000F00 001E00 003C00 00F800 01E000 03C000 078000 1E0000 1C0000 380000 780000 FFFE00 FFFE00 FFFE00 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 21 0 BBX 17 25 4 0 BITMAP 03FC00 07FF00 07FF80 040F80 000380 000380 000380 000700 000F00 003E00 07F800 07E000 0FF800 007E00 001E00 000E00 000F00 000E00 000E00 001E00 003C00 407C00 FFF800 FFE000 7F8000 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 21 0 BBX 18 25 3 0 BITMAP 0003C0 0007C0 000F80 001F80 003F80 007B80 007380 00E700 01C700 038700 070700 0F0700 1E0E00 3C0E00 380E00 700E00 FFFFC0 FFFFC0 FFFFC0 001C00 001C00 001C00 003800 003800 003800 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 21 0 BBX 18 25 5 0 BITMAP 07FFC0 07FFC0 07FFC0 060000 0E0000 0E0000 0C0000 0C0000 0C0000 1FC000 1FF800 1FFC00 007E00 001E00 000E00 000E00 000E00 000E00 001E00 001E00 003C00 40F800 FFF000 FFE000 7F8000 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 21 0 BBX 18 25 4 0 BITMAP 003F80 00FFC0 03FFC0 07C0C0 0F0000 1E0000 1C0000 3C0000 380000 79F800 7FFE00 7FFF00 FE0F00 F80700 F00780 F00780 E00700 E00700 E00700 F00E00 701E00 783C00 3FF800 1FF000 0FC000 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 21 0 BBX 19 25 5 0 BITMAP 1FFFE0 1FFFE0 1FFFE0 0003C0 0007C0 000F80 001F00 003E00 007C00 00F800 00F000 01E000 03C000 07C000 078000 0F0000 1F0000 1E0000 3C0000 3C0000 780000 780000 700000 F00000 F00000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 21 0 BBX 18 25 4 0 BITMAP 007E00 01FF00 07FF80 0F83C0 0E01C0 1E01C0 1E0180 1E0380 1E0700 0F1E00 07FC00 07F000 0FF800 1F7C00 3C3E00 780F00 700F00 E00700 E00700 E00F00 F00E00 F83E00 7FFC00 3FF000 0FC000 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 21 0 BBX 18 25 4 0 BITMAP 007C00 01FF00 07FF80 0F8780 0E03C0 1C01C0 3C01C0 3801C0 3801C0 3801C0 3803C0 3C07C0 3E0FC0 1FFFC0 0FFB80 07E780 000780 000700 000F00 001E00 003C00 C07800 FFF000 FFE000 3F8000 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 11 0 BBX 7 18 4 0 BITMAP 0E 1E 1C 00 00 00 00 00 00 00 00 00 00 00 00 70 F0 E0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 11 0 BBX 8 24 3 -6 BITMAP 07 0F 0E 00 00 00 00 00 00 00 00 00 00 00 00 38 78 78 30 30 30 60 C0 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 21 0 BBX 22 21 3 0 BITMAP 000004 00001C 00007C 0001F8 0007C0 001F00 007C00 03F000 0FC000 3F0000 FC0000 7E0000 1F8000 07E000 03F000 00FC00 003F00 001F80 0007E0 0001C0 000040 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 21 0 BBX 21 9 2 5 BITMAP 7FFFF8 7FFFF8 7FFFF8 000000 000000 000000 FFFFF0 FFFFF0 FFFFF0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 21 0 BBX 22 21 1 0 BITMAP 080000 0E0000 1F8000 07C000 03F000 00FC00 003F00 001F80 0007E0 0001F8 0000FC 0003F0 000FC0 003F00 00FC00 03E000 0F8000 3E0000 780000 E00000 800000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 16 0 BBX 14 25 5 0 BITMAP 1FC0 7FF0 7FF8 4078 0038 003C 0038 0038 0070 00F0 01E0 03C0 0700 0E00 1C00 3C00 3800 3800 7800 0000 0000 0000 7000 F000 E000 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 29 0 BBX 26 25 4 0 BITMAP 000FE000 007FF800 01FFFE00 03F01F00 07800780 0E000380 1C0FF1C0 383FE0C0 307FE0C0 60E060C0 61C0E0C0 C180C0C0 C381C0C0 C302C1C0 C3078380 C39D8780 C3F9FF00 C3F1FC00 61E0F800 70000000 38000000 3E030000 1FFF0000 07FF0000 01FC0000 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 23 0 BBX 22 25 1 0 BITMAP 000380 0007C0 000FC0 000FC0 001FC0 001DC0 003DE0 0039E0 0071E0 0070E0 00E0E0 01E0E0 01C0F0 03C0F0 038070 078070 07FFF0 0FFFF8 0FFFF8 1C0078 3C0078 380038 78003C 70003C E0003C ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 20 0 BBX 18 25 3 0 BITMAP 07FE00 07FF80 0FFF80 0F07C0 0F03C0 0E03C0 0E03C0 1E0380 1E0780 1C0F00 1C3E00 1FF800 3FF800 3FFE00 3C3F00 380F00 380700 780780 780780 780700 700F00 703F00 FFFE00 FFFC00 FFE000 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 23 0 BBX 22 25 4 0 BITMAP 001FF0 007FFC 01FFFC 03E00C 0FC000 0F0000 1E0000 3E0000 3C0000 780000 780000 700000 F00000 F00000 F00000 F00000 F00000 F00000 F00000 F80000 780040 7E03C0 3FFFC0 1FFF00 03F800 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 25 0 BBX 23 25 3 0 BITMAP 07FFC0 07FFF0 0FFFF8 0F01FC 0E007C 0E003E 0E001E 1E001E 1E001E 1C001E 1C001E 1C001E 3C001E 3C001C 38003C 38003C 380078 780078 7800F0 7001E0 7003E0 700FC0 FFFF80 FFFE00 FFF000 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 19 0 BBX 19 25 3 0 BITMAP 07FFE0 07FFE0 0FFFE0 0F0000 0F0000 0F0000 0E0000 1E0000 1E0000 1E0000 1E0000 1FFE00 3FFE00 3FFE00 3C0000 3C0000 380000 780000 780000 780000 700000 700000 FFFE00 FFFE00 FFFE00 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 18 0 BBX 19 25 3 0 BITMAP 07FFE0 07FFE0 0FFFE0 0F0000 0F0000 0E0000 0E0000 1E0000 1E0000 1E0000 1C0000 1FFE00 3FFE00 3FFC00 3C0000 380000 380000 780000 780000 780000 700000 700000 F00000 F00000 F00000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 24 0 BBX 22 25 4 0 BITMAP 001FF0 007FFC 01FFFC 03F00C 0F8000 0F0000 1E0000 3C0000 3C0000 780000 780000 700000 F00000 F00000 F000F0 F000E0 F000E0 F000E0 F001E0 F801E0 7C01C0 7E03C0 3FFFC0 1FFFC0 03FC00 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 25 0 BBX 24 25 3 0 BITMAP 07000F 07000F 0F000F 0F000E 0F000E 0E001E 0E001E 1E001E 1E001C 1E003C 1FFFFC 1FFFFC 3FFFFC 3C0038 3C0038 380078 380078 780078 780070 780070 7000F0 7000F0 F000F0 F000E0 F000E0 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 10 0 BBX 8 25 3 0 BITMAP 0F 0F 0F 0E 0E 0E 1E 1E 1C 1C 1C 3C 3C 3C 38 38 38 78 78 70 70 70 F0 F0 F0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 14 0 BBX 16 31 0 -6 BITMAP 000F 000F 000F 000E 000E 001E 001E 001E 001C 001C 001C 003C 003C 003C 0038 0038 0078 0078 0078 0070 0070 0070 00F0 00F0 00E0 00E0 01E0 C3C0 FF80 FF00 FE00 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 22 0 BBX 21 25 3 0 BITMAP 070078 0700F0 0F01E0 0F03C0 0E0780 0E0F00 0E1E00 1E3C00 1E7800 1CF000 1DE000 1FC000 3FC000 3DC000 38E000 38F000 387000 787800 783C00 781C00 701E00 700F00 F00700 F00780 F003C0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 19 0 BBX 15 25 3 0 BITMAP 0700 0F00 0F00 0F00 0E00 0E00 0E00 1E00 1E00 1C00 1C00 1C00 3C00 3C00 3800 3800 3800 7800 7800 7000 7000 7000 FFFE FFFE FFFE ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 28 0 BBX 27 25 3 0 BITMAP 07C003E0 07C007E0 0FC007E0 0FC00FC0 0FC00FC0 0FE01DC0 0FE01FC0 1CE03BC0 1CE03B80 1CE07380 1CE06380 1CE0E780 38F1C780 38F1C700 38738700 38738700 38770F00 70770F00 707E0E00 707C0E00 707C0E00 70380E00 E0381E00 E0001C00 E0001C00 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 25 0 BBX 24 25 3 0 BITMAP 078007 078007 0F8007 0FC00E 0FC00E 0FE00E 0EE00E 1CF00E 1CF01C 1C781C 1C781C 1C381C 383C1C 381C38 381E38 381E38 380F38 700F38 700770 7007F0 7003F0 7003F0 E001F0 E001E0 E001E0 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 26 0 BBX 24 25 4 0 BITMAP 001FC0 007FF8 01FFFC 03F07E 07C01E 0F001E 1E000F 3C000F 3C000F 78000F 78000F 70000F F0000F F0000E F0001E F0001E F0003C F0003C F00078 7800F0 7C03E0 7E0FC0 3FFF80 1FFE00 03F800 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 20 0 BBX 19 25 3 0 BITMAP 07FF00 07FFC0 0FFFC0 0F03E0 0F01E0 0E01E0 0E01E0 1E01E0 1E01C0 1E03C0 1C0780 1C1F00 3FFE00 3FF800 3FE000 380000 380000 780000 780000 780000 700000 700000 F00000 F00000 F00000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 26 0 BBX 24 32 4 -7 BITMAP 001FC0 007FF0 01FFFC 03F07C 07C01E 0F001E 1E000F 3C000F 3C000F 78000F 78000F 70000F F0000F F0000E F0001E F0001E F0003C F0003C F00078 7800F0 7C03F0 7E0FE0 3FFF80 1FFF00 03FE00 000F00 0007C0 0003F8 0001FF 0000FE 00003C 000008 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 21 0 BBX 19 25 3 0 BITMAP 07FF00 07FFC0 0FFFE0 0F03E0 0F01E0 0E01E0 0E01E0 1E01C0 1E01C0 1E0380 1E0700 1C1E00 3FFC00 3FF000 3FF800 3C3800 383C00 781C00 781E00 780E00 700F00 700700 F00780 F00380 F003C0 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 19 0 BBX 19 25 2 0 BITMAP 007F80 01FFE0 03FFE0 07C060 0F0000 0F0000 0F0000 0F0000 0F0000 078000 07E000 03F000 00F800 007C00 003E00 001F00 000F00 000700 000700 000F00 400F00 F03E00 FFFC00 FFF800 1FE000 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 21 0 BBX 21 25 5 0 BITMAP FFFFF8 FFFFF8 FFFFF8 00F000 00F000 00F000 00E000 00E000 01E000 01E000 01E000 01C000 01C000 03C000 03C000 03C000 038000 038000 038000 078000 078000 070000 070000 070000 0F0000 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 24 0 BBX 21 25 4 0 BITMAP 1E0038 1E0038 1E0078 1C0070 3C0070 3C0070 3C0070 3C00F0 3800E0 7800E0 7800E0 7800E0 7801E0 7001C0 F001C0 F001C0 F001C0 F00380 F00380 F00780 F80700 7C1E00 7FFE00 3FF800 0FE000 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 23 0 BBX 22 25 5 0 BITMAP F0003C F00038 F00078 700070 7000F0 7800E0 7801C0 7803C0 380380 380780 3C0700 3C0F00 3C0E00 3C1E00 1C1C00 1E3800 1E3800 1E7000 1EF000 0EE000 0FE000 0FC000 0FC000 0F8000 070000 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 30 0 BBX 29 25 6 0 BITMAP E0070038 E00F0070 E00F0070 E01F00E0 E01F00E0 F01F01C0 F03F01C0 F0370380 F0770380 F0770700 70E70700 70E70E00 71C78E00 71C79C00 71879C00 7387B800 7387B800 7707F800 7707F000 7E07F000 7E03E000 7C03E000 7C03C000 7803C000 78038000 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 21 0 BBX 25 25 0 0 BITMAP 03C00780 03C00F00 01E01E00 01E03C00 00E07800 00F07000 0070E000 0079E000 007BC000 003F8000 003F0000 001E0000 001E0000 003F0000 007F0000 00F78000 01E78000 03C38000 0383C000 0701C000 0F01E000 1E01E000 3C00F000 7800F000 F0007800 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 21 0 BBX 20 25 5 0 BITMAP F000F0 7001E0 7803C0 780380 3C0780 3C0F00 1C1E00 1E3C00 0E3800 0F7800 0FF000 07E000 07C000 03C000 038000 078000 078000 078000 070000 070000 0F0000 0F0000 0E0000 0E0000 1E0000 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 20 0 BBX 22 25 1 0 BITMAP 03FFFC 07FFFC 07FFFC 000078 0000F0 0001E0 0003C0 000780 000F80 001F00 001E00 003C00 007800 00F000 01E000 03E000 07C000 0F8000 0F0000 1E0000 3C0000 780000 FFFFC0 FFFFC0 FFFFC0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 11 0 BBX 13 32 2 -6 BITMAP 03F8 03F8 03F8 0380 0700 0700 0700 0700 0700 0E00 0E00 0E00 0E00 0E00 1C00 1C00 1C00 1C00 1C00 3800 3800 3800 3800 3800 7000 7000 7000 7000 7000 FE00 FE00 FE00 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 16 0 BBX 10 32 5 -6 BITMAP E000 E000 6000 6000 7000 7000 3000 3000 3800 3800 3800 1800 1800 1C00 1C00 0C00 0C00 0E00 0E00 0600 0600 0700 0700 0700 0300 0300 0380 0380 0180 0180 01C0 01C0 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 11 0 BBX 13 32 1 -6 BITMAP 03F8 03F8 03F8 0070 0070 0070 0070 0070 00E0 00E0 00E0 00E0 00E0 01C0 01C0 01C0 01C0 01C0 0380 0380 0380 0380 0380 0700 0700 0700 0700 0700 0E00 FE00 FE00 FE00 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 21 0 BBX 20 21 2 4 BITMAP 000400 000400 000E00 001E00 001E00 003F00 007F00 007300 00F300 01E380 01C380 03C180 0781C0 0701C0 0F00C0 1E00C0 1C00E0 3C00E0 780060 700070 F00070 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 17 0 BBX 14 3 1 -4 BITMAP FFFC FFFC FFFC ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 5 16 BITMAP 0C 38 30 70 60 60 78 F8 F0 F0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 21 0 BBX 18 18 3 0 BITMAP 007FC0 01FFC0 03FFC0 078380 0F0380 1E0380 3C0780 380780 780F00 701F00 F03F00 F07F00 F0FF00 F1FE00 F3EE00 FFCE00 7F1E00 3C1E00 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 21 0 BBX 18 26 3 0 BITMAP 070000 070000 070000 0F0000 0F0000 0E0000 0E0000 0E0000 1E0F00 1E3F80 1CFFC0 1DF3C0 1FE1C0 3FC3C0 3F83C0 3F03C0 3E0380 3C0780 780700 780F00 701E00 703C00 707800 FFF000 FFE000 FF8000 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 17 0 BBX 15 18 3 0 BITMAP 00FE 03FE 07FE 0F82 1E00 3C00 7800 7000 7000 F000 F000 F000 F000 F008 F838 7FF8 3FF0 1F80 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 21 0 BBX 20 26 3 0 BITMAP 000070 0000F0 0000E0 0000E0 0000E0 0000E0 0001E0 0001C0 007FC0 01FFC0 03FFC0 07C3C0 0F0380 1E0380 3C0380 380780 780F80 701F00 F03F00 F07F00 F0FF00 F1FF00 F3EE00 FFCE00 7F0E00 3C1E00 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 18 0 BBX 15 18 3 0 BITMAP 00F8 03FC 0FFE 1F1E 1C0E 381C 781C 7078 71F0 FFC0 FE00 E000 E002 F00C F83C 7FFC 3FF0 1FC0 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 13 0 BBX 17 34 2 -7 BITMAP 001F80 007F80 00FF80 01F080 01C000 03C000 038000 078000 070000 3FF800 3FF800 3FF800 0F0000 0E0000 0E0000 0E0000 0E0000 1E0000 1C0000 1C0000 1C0000 1C0000 3C0000 380000 380000 380000 380000 780000 700000 700000 700000 700000 F00000 E00000 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 21 0 BBX 19 25 2 -7 BITMAP 003FE0 00FFE0 01FFE0 03E1C0 0781C0 0F01C0 1E01C0 1E03C0 3C0780 3C0780 380F80 381B80 783F80 387700 38E700 3FC700 3F8700 1E0F00 000E00 000E00 801C00 F03C00 FFF800 FFF000 1FC000 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 21 0 BBX 18 26 3 0 BITMAP 078000 070000 070000 070000 0F0000 0F0000 0E0000 0E0000 0E0F80 1E3FC0 1E7FC0 1CF3C0 1DE1C0 1FC3C0 3F83C0 3F8380 3F0380 3E0380 3C0780 780780 780700 700700 700700 700F00 F00F00 E00E00 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 10 0 BBX 8 25 3 0 BITMAP 07 0F 0E 00 00 00 00 1E 1C 1C 1C 1C 3C 38 38 38 38 78 78 70 70 70 F0 F0 E0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 11 0 BBX 16 32 -3 -7 BITMAP 0007 000F 000E 0000 0000 0000 0000 001E 001C 001C 001C 001C 003C 003C 0038 0038 0038 0078 0078 0070 0070 0070 00F0 00F0 00E0 00E0 01E0 01C0 C780 FF80 FF00 FC00 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 20 0 BBX 18 26 3 0 BITMAP 078000 070000 070000 070000 0F0000 0F0000 0E0000 0E0000 0E03C0 1E0F00 1E1E00 1C3C00 1C7800 1CF000 3DE000 3BC000 3F8000 3BC000 39E000 78E000 70F000 707800 703C00 703C00 F01E00 E00F00 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 10 0 BBX 9 26 3 0 BITMAP 0380 0780 0700 0700 0700 0700 0F00 0E00 0E00 0E00 1E00 1C00 1C00 1C00 1C00 3C00 3800 3800 3800 7800 7800 7000 7000 7000 F000 E000 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 32 0 BBX 28 18 3 0 BITMAP 0E0F01E0 1E3F87F0 1C7F9FF0 1CF7BEF0 1DE3BC70 1FC7F8F0 3F87F0F0 3F07E0E0 3E07C0E0 3E07C0E0 3C0F81E0 780F01C0 780E01C0 700E01C0 700E01C0 701E03C0 E01E0380 E01C0380 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 21 0 BBX 18 18 3 0 BITMAP 0E0F80 1E3FC0 1E7FC0 1CF3C0 1DE1C0 1FC3C0 3F83C0 3F8380 3F0380 3E0380 3C0780 7C0780 780700 700700 700700 700F00 F00F00 E00E00 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 19 0 BBX 17 18 3 0 BITMAP 00F800 03FE00 0FFF00 1F0F00 1C0780 380780 780780 700780 700700 F00700 F00700 F00E00 F01E00 F03C00 F07800 7FF000 3FE000 1F8000 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 21 0 BBX 19 25 2 -7 BITMAP 070780 0F1FC0 0E7FE0 0EF9E0 0EF1E0 0FE1E0 0FC1E0 1F81E0 1F01C0 1E03C0 1E0380 1C0780 380F00 381E00 383C00 3FF800 3FF000 7FC000 700000 700000 700000 700000 F00000 F00000 E00000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 21 0 BBX 18 25 3 -7 BITMAP 007FC0 01FFC0 03FFC0 078380 0F0380 1E0380 3C0780 380F80 780F00 701F00 F03F00 F07F00 F0FF00 F1FE00 F3EE00 FFCE00 7F0E00 3C1E00 001C00 001C00 001C00 001C00 003C00 003800 003800 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 3 0 BITMAP 1E0E 1C3E 1C7C 1CE0 1DC0 3F80 3F80 3F00 3E00 3C00 7C00 7800 7000 7000 7000 F000 F000 E000 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 17 0 BBX 14 18 3 0 BITMAP 03F0 0FFC 0FFC 1E0C 1C00 1E00 1E00 0F80 07C0 03E0 01E0 00F0 0070 8070 E0F0 FFF0 FFE0 3F80 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 13 0 BBX 11 23 4 0 BITMAP 0E00 0E00 0E00 0E00 1E00 FFE0 FFE0 FFE0 1C00 1C00 3C00 3800 3800 3800 3800 7000 7000 7000 7000 7800 7F00 7F00 1E00 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 21 0 BBX 17 18 4 0 BITMAP 1C0380 1C0780 380780 380700 380700 380700 380F00 701F00 703E00 703E00 707E00 70FE00 E1FE00 E1FC00 F3DC00 FF9C00 FE1C00 7C3C00 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 18 0 BBX 17 18 5 0 BITMAP E00380 E00700 E00E00 F00E00 701C00 703800 703800 707000 707000 70E000 71C000 79C000 3B8000 3F0000 3F0000 3E0000 3E0000 3C0000 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 27 0 BBX 25 18 4 0 BITMAP E03C0380 E03C0700 E07C0700 E07C0E00 E0FC0E00 F0EC1C00 71EE1C00 71CE3800 73CE7800 738E7000 738EF000 770EE000 770FE000 7E0FC000 7E0FC000 7C0F8000 7C0F8000 380F0000 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 18 0 BBX 20 18 1 0 BITMAP 0F00F0 0701E0 0383C0 038380 01C700 01CE00 00FC00 00F800 007000 00F800 01F800 03BC00 071C00 0E1E00 1E0E00 3C0F00 780700 F00780 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 19 0 BBX 19 25 3 -7 BITMAP 7801E0 7801C0 3803C0 380780 380700 380F00 3C0E00 3C1C00 1C3C00 1C3800 1C7800 1EF000 1EE000 1FE000 0FC000 0F8000 0F8000 0F0000 0F0000 0E0000 1C0000 1C0000 380000 700000 F00000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 18 0 BBX 18 18 2 0 BITMAP 0FFFC0 0FFFC0 1FFF80 000F80 001F00 003E00 007C00 00F800 01F000 03E000 07C000 0F8000 1F0000 3E0000 7C0000 7FFF00 FFFF00 FFFE00 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 11 0 BBX 12 32 3 -6 BITMAP 0030 01F0 03E0 03E0 0780 0700 0700 0700 0700 0700 0700 0700 0E00 0E00 1C00 F800 F000 F000 3800 1800 1800 3800 3800 3800 7000 7000 7000 E000 E000 7C00 7C00 1C00 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 8 0 BBX 9 32 2 -6 BITMAP 0380 0380 0300 0300 0300 0700 0700 0600 0600 0600 0E00 0E00 0C00 0C00 0C00 1C00 1C00 1800 1800 1800 3800 3800 3000 3000 3000 7000 7000 6000 6000 6000 E000 E000 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 11 0 BBX 12 32 1 -6 BITMAP 0300 03C0 03E0 00E0 00E0 00E0 00E0 01C0 01C0 01C0 0380 0380 0380 01C0 01F0 00E0 03E0 0780 0700 0E00 0E00 0E00 0E00 0E00 0E00 0E00 1E00 3C00 FC00 F800 F000 C000 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 21 0 BBX 21 7 2 6 BITMAP 0F0000 3FC038 3FF030 70F870 607FE0 E01FE0 000780 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 11 0 BBX 8 25 3 -7 BITMAP 07 0F 0E 00 00 00 00 0C 0C 1C 1C 1C 18 38 38 38 38 38 70 70 70 70 F0 F0 E0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 21 0 BBX 16 25 6 0 BITMAP 0030 0020 0020 00FF 03FE 07FE 0F60 1C40 3CC0 78C0 70C0 70C0 F080 F080 F180 F180 F180 F108 7938 7FF8 3FF8 1FE0 0300 0200 0600 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 21 0 BBX 19 25 4 0 BITMAP 000FC0 003FE0 007FE0 00F060 00E000 01E000 01C000 01C000 01C000 03C000 038000 1FF800 1FF800 3FF000 078000 070000 070000 070000 0F0000 0E0000 0C0000 180000 7FFE00 FFFC00 FFFC00 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 21 0 BBX 24 21 1 2 BITMAP 040006 0E000E 1E001F 0F1E3C 07FFF8 03FFF0 03E1E0 0380E0 0700E0 060060 0600E0 0E00E0 0601C0 0601C0 078780 0FFFC0 1DFFE0 38F8E0 7000F0 E00078 400020 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 21 0 BBX 20 25 6 0 BITMAP F000F0 7801E0 3803C0 3C0780 1E0F00 1E1E00 0F3C00 0F7800 07F000 07E000 03C000 7FFC00 7FFC00 7FFC00 038000 078000 FFFC00 FFF800 FFF800 070000 070000 0F0000 0F0000 0E0000 0E0000 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 8 0 BBX 9 32 2 -6 BITMAP 0380 0380 0300 0300 0300 0700 0700 0600 0600 0600 0E00 0E00 0C00 0000 0000 0000 0000 0000 0000 3800 3800 3800 3000 3000 7000 7000 7000 6000 6000 E000 E000 E000 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 21 0 BBX 18 32 3 -7 BITMAP 007F80 01FFC0 03FFC0 0780C0 0F0000 0E0000 0E0000 0E0000 070000 07C000 03E000 0FF800 0E7E00 1C1F00 1C0F00 3C0700 3C0700 1E0700 1F0700 0FCE00 07FC00 01F800 007C00 001E00 000E00 000E00 000E00 401E00 F03C00 FFF800 FFF000 1FC000 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 19 0 BBX 10 3 10 22 BITMAP 61C0 E1C0 E380 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 29 0 BBX 25 25 4 0 BITMAP 007F0000 03FFE000 07FFF000 0F80F800 1E001C00 38000E00 700F8700 603FE300 60F04380 C1C00180 C1800180 C3800180 C3000180 C3000180 C3800180 C3C10180 63FF0380 61FF0300 707E0700 38000E00 1E001C00 0F80F800 07FFF000 03FFE000 007F0000 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 13 0 BBX 13 14 4 11 BITMAP 0380 0FF8 1FF8 3C78 3830 7070 70F0 E1F0 E3F0 E760 EEE0 FCE0 F8E0 71E0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 18 0 BBX 16 16 4 1 BITMAP 0102 0387 078E 0F1C 1E38 3C78 78F0 F3E0 E1C0 71E0 30E0 38F0 1870 1C38 0C38 0610 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 21 0 BBX 20 9 3 5 BITMAP FFFFF0 FFFFF0 FFFFF0 000060 000060 000060 0000E0 0000E0 0000C0 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 11 0 BBX 8 3 3 9 BITMAP FF FF FF ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 21 0 BBX 14 15 7 10 BITMAP 0FC0 1FF0 3878 77D8 67EC C46C C444 CF84 CF84 CD8C 6C8C 78D8 3878 1FF0 0FC0 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 19 0 BBX 10 3 10 22 BITMAP FFC0 FFC0 FFC0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 9 0 BBX 6 6 6 19 BITMAP 78 F8 CC CC F8 78 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 21 0 BBX 22 21 1 0 BITMAP 000E00 000C00 000C00 000C00 001C00 001C00 1FFFFC 3FFFFC 3FFFFC 003800 003800 003800 003000 003000 007000 000000 000000 000000 FFFFF0 FFFFF0 FFFFF0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 13 0 BBX 11 15 -19 10 BITMAP 0F80 1FC0 10E0 0060 0060 00C0 00C0 0380 0700 0C00 1800 3000 6000 FF80 FF80 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 13 0 BBX 10 15 -19 10 BITMAP 1F80 1FC0 10C0 00C0 00C0 0180 1F00 1F00 0380 0180 0180 0180 8380 FF00 FC00 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 19 0 BBX 8 5 12 21 BITMAP 0F 1C 38 70 E0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 21 0 BBX 19 24 2 -6 BITMAP 0F00E0 0E01E0 0E01E0 0E01C0 0E01C0 1E01C0 1C03C0 1C03C0 1C0780 1C0780 1C0F80 381B80 383F80 387700 38F700 3FE700 7FCF00 7F0F00 700000 700000 700000 F00000 E00000 E00000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 21 0 BBX 15 31 5 -6 BITMAP 1FFE 7FFE 7FFE FFCC FFCC FFCC FF8C FF8C FF98 7F98 3F98 1F18 0718 0310 0330 0330 0730 0630 0630 0660 0660 0E60 0C60 0C60 0CC0 0CC0 0CC0 18C0 18C0 1980 1980 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 21 0 BBX 5 4 10 9 BITMAP 78 78 F0 F0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 19 0 BBX 5 8 7 -7 BITMAP 10 30 70 38 18 38 F8 F0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 13 0 BBX 5 15 -22 10 BITMAP 78 F8 18 30 30 30 30 30 60 60 60 60 60 C0 C0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 13 0 BBX 13 14 4 11 BITMAP 03E0 07F0 1FF8 3C78 3838 7038 7038 E038 E070 E0F0 F1E0 FFC0 7F80 3E00 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 18 0 BBX 16 16 2 1 BITMAP 0830 3C70 1C38 0E3C 0F1C 071E 078E 038F 07CF 0F1E 1E3C 3C78 38F0 71E0 E1C0 4080 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 30 0 BBX 26 25 14 0 BITMAP 3C0003C0 7C000780 0C000F00 18001E00 18001C00 18003800 18007000 1800E000 3001C000 30038000 30070380 300F0780 301E0F00 603C1F00 60381B00 00703300 00E06200 01C0C200 03818600 0703FF80 0E03FF80 1E000600 3C000400 78000C00 F0000C00 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 30 0 BBX 26 25 14 0 BITMAP 3C0003C0 7C000780 0C000F00 18001E00 18001C00 18003800 18007000 1800E000 3001C000 30038000 30071F00 300F3F80 301E21C0 603C00C0 603800C0 00700180 00E00180 01C00700 03800E00 07001800 0E003000 1E006000 3C00C000 7801FF00 F001FF00 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 30 0 BBX 28 25 16 0 BITMAP 1F8000F0 1FC001E0 10C003C0 00C00780 00C00700 01800E00 1F001C00 1F003800 03807000 0180E000 0181C0E0 0183C1E0 838783C0 FF0F07C0 FC0E06C0 001C0CC0 00381880 00703080 00E06180 01C0FFE0 0380FFE0 07800180 0F000100 1E000300 3C000300 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 16 0 BBX 13 25 1 -7 BITMAP 0038 0038 0038 0000 0000 0000 0070 0070 00F0 00E0 01C0 03C0 0780 0F00 1C00 3C00 7800 7000 F000 F000 F000 F818 7FF8 7FF0 1FE0 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 23 0 BBX 22 32 1 0 BITMAP 000780 000380 0001C0 0001C0 0000E0 000000 000000 000380 0007C0 000FC0 000FC0 001FC0 001DC0 003DE0 0039E0 0071E0 0070E0 00E0E0 01E0E0 01C0F0 03C0F0 038070 078070 07FFF0 0FFFF8 0FFFF8 1C0078 3C0078 380038 78003C 70003C E0003C ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 23 0 BBX 22 32 1 0 BITMAP 000078 0000E0 0001C0 000380 000700 000000 000000 000380 0007C0 000FC0 000FC0 001FC0 001DC0 003DE0 0039E0 0071E0 0070E0 00E0E0 01E0E0 01C0F0 03C0F0 038070 078070 07FFF0 0FFFF8 0FFFF8 1C0078 3C0078 380038 78003C 70003C E0003C ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 23 0 BBX 22 32 1 0 BITMAP 0001E0 0003E0 000670 000C70 003838 000000 000000 000380 0007C0 000FC0 000FC0 001FC0 001DC0 003DE0 0039E0 0071E0 0070E0 00E0E0 01E0E0 01C0F0 03C0F0 038070 078070 07FFF0 0FFFF8 0FFFF8 1C0078 3C0078 380038 78003C 70003C E0003C ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 23 0 BBX 22 30 1 0 BITMAP 00078C 000FF8 0018F0 000000 000000 000380 0007C0 000FC0 000FC0 001FC0 001DC0 003DE0 0039E0 0071E0 0070E0 00E0E0 01E0E0 01C0F0 03C0F0 038070 078070 07FFF0 0FFFF8 0FFFF8 1C0078 3C0078 380038 78003C 70003C E0003C ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 23 0 BBX 22 30 1 0 BITMAP 000C38 001C38 001C70 000000 000000 000380 0007C0 000FC0 000FC0 001FC0 001DC0 003DE0 0039E0 0071E0 0070E0 00E0E0 01E0E0 01C0F0 03C0F0 038070 078070 07FFF0 0FFFF8 0FFFF8 1C0078 3C0078 380038 78003C 70003C E0003C ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 23 0 BBX 22 32 1 0 BITMAP 0001C0 000360 000220 000360 0001C0 000000 000000 000380 0007C0 000FC0 000FC0 001FC0 001DC0 003DE0 0039E0 0071E0 0070E0 00E0E0 01E0E0 01C0F0 03C0F0 038070 078070 07FFF0 0FFFF8 0FFFF8 1C0078 3C0078 380038 78003C 70003C E0003C ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 30 0 BBX 34 25 0 0 BITMAP 00001FFFC0 00003FFFC0 00007FFFC0 0000FE0000 0000FE0000 0001FE0000 0003DC0000 00079C0000 00073C0000 000E3C0000 001E3C0000 003C3FFC00 00383FFC00 00707FFC00 00F0780000 01E0780000 01FFF00000 03FFF00000 07FFF00000 0F00F00000 0E00F00000 1C00E00000 3800FFFC00 7001FFFC00 F001FFFC00 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 23 0 BBX 22 32 4 -7 BITMAP 001FF0 007FFC 01FFFC 03E00C 0FC000 0F0000 1E0000 3E0000 3C0000 780000 780000 700000 F00000 F00000 F00000 F00000 F00000 F00000 F00000 F80000 780040 7E03C0 3FFFC0 1FFF00 03F800 018000 038000 01C000 00C000 01C000 07C000 078000 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 19 0 BBX 19 32 3 0 BITMAP 00F000 007000 003800 003800 001C00 000000 000000 07FFE0 07FFE0 0FFFE0 0F0000 0F0000 0F0000 0E0000 1E0000 1E0000 1E0000 1E0000 1FFE00 3FFE00 3FFE00 3C0000 3C0000 380000 780000 780000 780000 700000 700000 FFFE00 FFFE00 FFFE00 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 19 0 BBX 19 32 3 0 BITMAP 000780 000E00 001C00 003800 007000 000000 000000 07FFE0 07FFE0 0FFFE0 0F0000 0F0000 0F0000 0E0000 1E0000 1E0000 1E0000 1E0000 1FFE00 3FFE00 3FFE00 3C0000 3C0000 380000 780000 780000 780000 700000 700000 FFFE00 FFFE00 FFFE00 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 19 0 BBX 19 32 3 0 BITMAP 003C00 007C00 00CE00 018E00 070700 000000 000000 07FFE0 07FFE0 0FFFE0 0F0000 0F0000 0F0000 0E0000 1E0000 1E0000 1E0000 1E0000 1FFE00 3FFE00 3FFE00 3C0000 3C0000 380000 780000 780000 780000 700000 700000 FFFE00 FFFE00 FFFE00 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 19 0 BBX 19 30 3 0 BITMAP 018700 038700 038E00 000000 000000 07FFE0 07FFE0 0FFFE0 0F0000 0F0000 0F0000 0E0000 1E0000 1E0000 1E0000 1E0000 1FFE00 3FFE00 3FFE00 3C0000 3C0000 380000 780000 780000 780000 700000 700000 FFFE00 FFFE00 FFFE00 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 10 0 BBX 9 32 3 0 BITMAP 1E00 0E00 0700 0700 0380 0000 0000 0F00 0F00 0F00 0E00 0E00 0E00 1E00 1E00 1C00 1C00 1C00 3C00 3C00 3C00 3800 3800 3800 7800 7800 7000 7000 7000 F000 F000 F000 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 10 0 BBX 12 32 3 0 BITMAP 00F0 01C0 0380 0700 0E00 0000 0000 0F00 0F00 0F00 0E00 0E00 0E00 1E00 1E00 1C00 1C00 1C00 3C00 3C00 3C00 3800 3800 3800 7800 7800 7000 7000 7000 F000 F000 F000 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 10 0 BBX 12 32 3 0 BITMAP 03C0 07C0 0CE0 18E0 7070 0000 0000 0F00 0F00 0F00 0E00 0E00 0E00 1E00 1E00 1C00 1C00 1C00 3C00 3C00 3C00 3800 3800 3800 7800 7800 7000 7000 7000 F000 F000 F000 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 10 0 BBX 12 30 3 0 BITMAP 1870 3870 38E0 0000 0000 0F00 0F00 0F00 0E00 0E00 0E00 1E00 1E00 1C00 1C00 1C00 3C00 3C00 3C00 3800 3800 3800 7800 7800 7000 7000 7000 F000 F000 F000 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 25 0 BBX 25 25 2 0 BITMAP 03FFF000 03FFFC00 03FFFE00 03807F00 07801F00 07800F80 07800780 07000780 07000780 0F000780 0F000780 FFF80780 FFF80780 FFF80700 0E000F00 1E000F00 1E001E00 1C001E00 1C003C00 1C007800 3C00F000 3C03E000 3FFFC000 3FFF8000 7FFC0000 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 25 0 BBX 24 30 3 0 BITMAP 001E30 003FE0 0063C0 000000 000000 078007 078007 0F8007 0FC00E 0FC00E 0FE00E 0EE00E 1CF00E 1CF01C 1C781C 1C781C 1C381C 383C1C 381C38 381E38 381E38 380F38 700F38 700770 7007F0 7003F0 7003F0 E001F0 E001E0 E001E0 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 26 0 BBX 24 32 4 0 BITMAP 001E00 000E00 000700 000700 000380 000000 000000 001FC0 007FF8 01FFFC 03F07E 07C01E 0F001E 1E000F 3C000F 3C000F 78000F 78000F 70000F F0000F F0000E F0001E F0001E F0003C F0003C F00078 7800F0 7C03E0 7E0FC0 3FFF80 1FFE00 03F800 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 26 0 BBX 24 32 4 0 BITMAP 0000F0 0001C0 000380 000700 000E00 000000 000000 001FC0 007FF8 01FFFC 03F07E 07C01E 0F001E 1E000F 3C000F 3C000F 78000F 78000F 70000F F0000F F0000E F0001E F0001E F0003C F0003C F00078 7800F0 7C03E0 7E0FC0 3FFF80 1FFE00 03F800 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 26 0 BBX 24 32 4 0 BITMAP 0003C0 0007C0 000CE0 0018E0 007070 000000 000000 001FC0 007FF8 01FFFC 03F07E 07C01E 0F001E 1E000F 3C000F 3C000F 78000F 78000F 70000F F0000F F0000E F0001E F0001E F0003C F0003C F00078 7800F0 7C03E0 7E0FC0 3FFF80 1FFE00 03F800 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 26 0 BBX 24 30 4 0 BITMAP 001E30 003FE0 0063C0 000000 000000 001FC0 007FF8 01FFFC 03F07E 07C01E 0F001E 1E000F 3C000F 3C000F 78000F 78000F 70000F F0000F F0000E F0001E F0001E F0003C F0003C F00078 7800F0 7C03E0 7E0FC0 3FFF80 1FFE00 03F800 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 26 0 BBX 24 30 4 0 BITMAP 001870 003870 0038E0 000000 000000 001FC0 007FF8 01FFFC 03F07E 07C01E 0F001E 1E000F 3C000F 3C000F 78000F 78000F 70000F F0000F F0000E F0001E F0001E F0003C F0003C F00078 7800F0 7C03E0 7E0FC0 3FFF80 1FFE00 03F800 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 21 0 BBX 23 21 1 0 BITMAP 040004 1C000E 0E001C 070038 0780F0 0381E0 01C3C0 00E780 007F00 007E00 003800 007C00 01FE00 03CF00 078700 0F0780 1E03C0 3801E0 7000F0 E000F0 400040 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 26 0 BBX 28 25 6 0 BITMAP 0007F0F0 001FFFE0 007FFFC0 00FC1F80 01F00F80 03C01F80 07803FC0 0F007BC0 0F00F3C0 1E01E3C0 1E03C3C0 1C0783C0 3C0F03C0 3C1E0380 3C3C0780 3C780780 3CF00F00 3DE00F00 3FC01E00 1F803C00 1F00F800 1F83F000 3FFFE000 7FFF8000 F0FE0000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 24 0 BBX 21 32 4 0 BITMAP 007800 003800 001C00 001C00 000E00 000000 000000 1E0038 1E0038 1E0078 1C0070 3C0070 3C0070 3C0070 3C00F0 3800E0 7800E0 7800E0 7800E0 7801E0 7001C0 F001C0 F001C0 F001C0 F00380 F00380 F00780 F80700 7C1E00 7FFE00 3FF800 0FE000 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 24 0 BBX 21 32 4 0 BITMAP 0003C0 000700 000E00 001C00 003800 000000 000000 1E0038 1E0038 1E0078 1C0070 3C0070 3C0070 3C0070 3C00F0 3800E0 7800E0 7800E0 7800E0 7801E0 7001C0 F001C0 F001C0 F001C0 F00380 F00380 F00780 F80700 7C1E00 7FFE00 3FF800 0FE000 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 24 0 BBX 21 32 4 0 BITMAP 000F00 001F00 003380 006380 01C1C0 000000 000000 1E0038 1E0038 1E0078 1C0070 3C0070 3C0070 3C0070 3C00F0 3800E0 7800E0 7800E0 7800E0 7801E0 7001C0 F001C0 F001C0 F001C0 F00380 F00380 F00780 F80700 7C1E00 7FFE00 3FF800 0FE000 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 24 0 BBX 21 30 4 0 BITMAP 00C380 01C380 01C700 000000 000000 1E0038 1E0038 1E0078 1C0070 3C0070 3C0070 3C0070 3C00F0 3800E0 7800E0 7800E0 7800E0 7801E0 7001C0 F001C0 F001C0 F001C0 F00380 F00380 F00780 F80700 7C1E00 7FFE00 3FF800 0FE000 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 21 0 BBX 20 32 5 0 BITMAP 000F00 001C00 003800 007000 00E000 000000 000000 F000F0 7001E0 7803C0 780380 3C0780 3C0F00 1C1E00 1E3C00 0E3800 0F7800 0FF000 07E000 07C000 03C000 038000 078000 078000 078000 070000 070000 0F0000 0F0000 0E0000 0E0000 1E0000 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 20 0 BBX 18 25 3 0 BITMAP 078000 070000 0F0000 0F0000 0F0000 0FFE00 0FFF80 1FFF80 1E07C0 1E03C0 1C03C0 1C03C0 3C03C0 3C0380 3C0780 380F00 383E00 7FFC00 7FF000 7FC000 700000 700000 F00000 F00000 F00000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 20 0 BBX 18 34 2 -7 BITMAP 003E00 00FF00 01FF80 03C780 038380 038380 078780 070700 071E00 073C00 0F7800 0F7000 0E7000 0E7800 0E7800 0E3E00 1E1F00 1C0F80 1C0780 1C03C0 1C01C0 3C01C0 3801C0 3883C0 38FF80 39FF00 78FC00 780000 700000 700000 700000 F00000 F00000 E00000 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 21 0 BBX 18 25 3 0 BITMAP 007800 003800 001C00 001C00 000E00 000000 000000 007FC0 01FFC0 03FFC0 078380 0F0380 1E0380 3C0780 380780 780F00 701F00 F03F00 F07F00 F0FF00 F1FE00 F3EE00 FFCE00 7F1E00 3C1E00 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 21 0 BBX 18 25 3 0 BITMAP 0003C0 000700 000E00 001C00 003800 000000 000000 007FC0 01FFC0 03FFC0 078380 0F0380 1E0380 3C0780 380780 780F00 701F00 F03F00 F07F00 F0FF00 F1FE00 F3EE00 FFCE00 7F1E00 3C1E00 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 21 0 BBX 18 25 3 0 BITMAP 000F00 001F00 003380 006380 01C1C0 000000 000000 007FC0 01FFC0 03FFC0 078380 0F0380 1E0380 3C0780 380780 780F00 701F00 F03F00 F07F00 F0FF00 F1FE00 F3EE00 FFCE00 7F1E00 3C1E00 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 21 0 BBX 18 23 3 0 BITMAP 0078C0 00FF80 018F00 000000 000000 007FC0 01FFC0 03FFC0 078380 0F0380 1E0380 3C0780 380780 780F00 701F00 F03F00 F07F00 F0FF00 F1FE00 F3EE00 FFCE00 7F1E00 3C1E00 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 21 0 BBX 18 23 3 0 BITMAP 00C380 01C380 01C700 000000 000000 007FC0 01FFC0 03FFC0 078380 0F0380 1E0380 3C0780 380780 780F00 701F00 F03F00 F07F00 F0FF00 F1FE00 F3EE00 FFCE00 7F1E00 3C1E00 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 21 0 BBX 18 25 3 0 BITMAP 001C00 003600 002200 003600 001C00 000000 000000 007FC0 01FFC0 03FFC0 078380 0F0380 1E0380 3C0780 380780 780F00 701F00 F03F00 F07F00 F0FF00 F1FE00 F3EE00 FFCE00 7F1E00 3C1E00 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 30 0 BBX 27 18 3 0 BITMAP 007FCFC0 01FFFFE0 03FFFFE0 07C3F0E0 0F03E0E0 1E03C0E0 3C0781C0 380F83C0 780F1F00 701FFE00 F03FF000 F07F0000 F0F70020 F1F70060 F3E783E0 FFC7FFE0 7F83FF80 3E00FC00 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 17 0 BBX 15 25 3 -7 BITMAP 00FE 03FE 07FE 0F82 1E00 3C00 7800 7000 7000 F000 F000 F000 F000 F008 F838 7FF8 3FF0 1F80 0600 0E00 0700 0300 0700 1F00 1E00 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 18 0 BBX 15 25 3 0 BITMAP 00F0 0070 0038 0038 001C 0000 0000 00F8 03FC 0FFE 1F1E 1C0E 381C 781C 7078 71F0 FFC0 FE00 E000 E002 F00C F83C 7FFC 3FF0 1FC0 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 18 0 BBX 16 25 3 0 BITMAP 000F 001C 0038 0070 00E0 0000 0000 00F8 03FC 0FFE 1F1E 1C0E 381C 781C 7078 71F0 FFC0 FE00 E000 E002 F00C F83C 7FFC 3FF0 1FC0 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 18 0 BBX 16 25 3 0 BITMAP 003C 007C 00CE 018E 0707 0000 0000 00F8 03FC 0FFE 1F1E 1C0E 381C 781C 7078 71F0 FFC0 FE00 E000 E002 F00C F83C 7FFC 3FF0 1FC0 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 18 0 BBX 16 23 3 0 BITMAP 0187 0387 038E 0000 0000 00F8 03FC 0FFE 1F1E 1C0E 381C 781C 7078 71F0 FFC0 FE00 E000 E002 F00C F83C 7FFC 3FF0 1FC0 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 10 0 BBX 9 25 3 0 BITMAP 1E00 0E00 0700 0700 0380 0000 0000 0E00 1E00 1C00 1C00 1C00 1C00 3C00 3800 3800 3800 3800 7800 7000 7000 7000 7000 F000 E000 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 10 0 BBX 12 25 3 0 BITMAP 00F0 01C0 0380 0700 0E00 0000 0000 0E00 1E00 1C00 1C00 1C00 1C00 3C00 3800 3800 3800 3800 7800 7000 7000 7000 7000 F000 E000 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 10 0 BBX 12 25 3 0 BITMAP 03C0 07C0 0CE0 18E0 7070 0000 0000 0E00 1E00 1C00 1C00 1C00 1C00 3C00 3800 3800 3800 3800 7800 7000 7000 7000 7000 F000 E000 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 10 0 BBX 12 23 3 0 BITMAP 1870 3870 38E0 0000 0000 0E00 1E00 1C00 1C00 1C00 1C00 3C00 3800 3800 3800 3800 7800 7000 7000 7000 7000 F000 E000 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 19 0 BBX 16 26 3 0 BITMAP 0FC6 0FFE 1FFF 00FC 01FC 07FE 03CE 010F 00FF 03FF 0FFF 1F0F 1C07 3C07 7807 7007 7007 F007 F006 F00E F01E F03C F878 7FF0 3FE0 1F80 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 21 0 BBX 18 23 3 0 BITMAP 0078C0 00FF80 018F00 000000 000000 0E0F80 1E3FC0 1E7FC0 1CF3C0 1DE1C0 1FC3C0 3F83C0 3F8380 3F0380 3E0380 3C0780 7C0780 780700 700700 700700 700F00 F00F00 E00E00 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 19 0 BBX 17 25 3 0 BITMAP 00F000 007000 003800 003800 001C00 000000 000000 00F800 03FE00 0FFF00 1F0F00 1C0780 380780 780780 700780 700700 F00700 F00700 F00E00 F01E00 F03C00 F07800 7FF000 3FE000 1F8000 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 19 0 BBX 17 25 3 0 BITMAP 000780 000E00 001C00 003800 007000 000000 000000 00F800 03FE00 0FFF00 1F0F00 1C0780 380780 780780 700780 700700 F00700 F00700 F00E00 F01E00 F03C00 F07800 7FF000 3FE000 1F8000 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 19 0 BBX 17 25 3 0 BITMAP 001E00 003E00 006700 00C700 038380 000000 000000 00F800 03FE00 0FFF00 1F0F00 1C0780 380780 780780 700780 700700 F00700 F00700 F00E00 F01E00 F03C00 F07800 7FF000 3FE000 1F8000 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 19 0 BBX 17 23 3 0 BITMAP 00F180 01FF00 031E00 000000 000000 00F800 03FE00 0FFF00 1F0F00 1C0780 380780 780780 700780 700700 F00700 F00700 F00E00 F01E00 F03C00 F07800 7FF000 3FE000 1F8000 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 19 0 BBX 17 23 3 0 BITMAP 00C380 01C380 01C700 000000 000000 00F800 03FE00 0FFF00 1F0F00 1C0780 380780 780780 700780 700700 F00700 F00700 F00E00 F01E00 F03C00 F07800 7FF000 3FE000 1F8000 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 21 0 BBX 20 17 3 1 BITMAP 003C00 007800 007800 000000 000000 000000 000000 FFFFF0 FFFFF0 FFFFF0 000000 000000 000000 000000 01E000 01E000 03C000 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 19 0 BBX 20 18 4 0 BITMAP 007CF0 01FFE0 07FFC0 0F8780 0E0FC0 1C0FC0 3C1FC0 383BC0 387380 78E380 79C380 7B8700 7F0F00 7E1E00 7E3C00 3FF800 7FF000 FFC000 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 21 0 BBX 17 25 4 0 BITMAP 00F000 007000 003800 003800 001C00 000000 000000 1C0380 1C0780 380780 380700 380700 380700 380F00 701F00 703E00 703E00 707E00 70FE00 E1FE00 E1FC00 F3DC00 FF9C00 FE1C00 7C3C00 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 21 0 BBX 17 25 4 0 BITMAP 000780 000E00 001C00 003800 007000 000000 000000 1C0380 1C0780 380780 380700 380700 380700 380F00 701F00 703E00 703E00 707E00 70FE00 E1FE00 E1FC00 F3DC00 FF9C00 FE1C00 7C3C00 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 21 0 BBX 17 25 4 0 BITMAP 001E00 003E00 006700 00C700 038380 000000 000000 1C0380 1C0780 380780 380700 380700 380700 380F00 701F00 703E00 703E00 707E00 70FE00 E1FE00 E1FC00 F3DC00 FF9C00 FE1C00 7C3C00 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 21 0 BBX 17 23 4 0 BITMAP 018700 038700 038E00 000000 000000 1C0380 1C0780 380780 380700 380700 380700 380F00 701F00 703E00 703E00 707E00 70FE00 E1FE00 E1FC00 F3DC00 FF9C00 FE1C00 7C3C00 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 19 0 BBX 19 32 3 -7 BITMAP 000780 000E00 001C00 003800 007000 000000 000000 7801E0 7801C0 3803C0 380780 380700 380F00 3C0E00 3C1C00 1C3C00 1C3800 1C7800 1EF000 1EE000 1FE000 0FC000 0F8000 0F8000 0F0000 0F0000 0E0000 1C0000 1C0000 380000 700000 F00000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 21 0 BBX 19 31 2 -7 BITMAP 038000 078000 078000 070000 070000 070000 0F0780 0F1FC0 0E7FE0 0EF9E0 0EF1E0 0FE1E0 1FC1E0 1F81E0 1F01C0 1E03C0 1E0380 3C0780 380F00 381E00 383C00 3FF800 3FF000 7FC000 700000 700000 700000 700000 F00000 F00000 E00000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 19 0 BBX 19 30 3 -7 BITMAP 018700 038700 038E00 000000 000000 7801E0 7801C0 3803C0 380780 380700 380F00 3C0E00 3C1C00 1C3C00 1C3800 1C7800 1EF000 1EE000 1FE000 0FC000 0F8000 0F8000 0F0000 0F0000 0E0000 1C0000 1C0000 380000 700000 F00000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 22 0 BBX 21 34 3 -7 BITMAP 001FF8 007FF8 00FFF8 01E0F0 03C070 038070 078070 0700F0 0700E0 3FF8E0 3FF0E0 3FF0E0 0F01E0 0E01C0 0E01C0 0E01C0 1E01C0 1E03C0 1C0380 1C0380 1C0380 3C0380 3C0780 380780 380700 380700 780700 780000 700000 700000 700000 F00000 F00000 E00000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 14 3 3 9 BITMAP FFFC FFFC FFFC ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 15 31 6 -6 BITMAP 00E0 00E0 01E0 01C0 01C0 01C0 01C0 0180 0180 FFFE FFFE 0300 0300 0300 0700 0700 0700 0600 0E00 0E00 0E00 0E00 0E00 1C00 1C00 1C00 1C00 1C00 3C00 3800 3800 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 22 32 1 0 BITMAP 007070 0038E0 0039C0 001F80 001F00 000000 000000 03FFFC 07FFFC 07FFFC 000078 0000F0 0001E0 0003C0 000780 000F80 001F00 001E00 003C00 007800 00F000 01E000 03E000 07C000 0F8000 0F0000 1E0000 3C0000 780000 FFFFC0 FFFFC0 FFFFC0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 31 0 BBX 27 18 3 0 BITMAP 00FC0FC0 03FE1FE0 0FFF7FE0 1F0F70E0 1C07E0E0 3807C0E0 780781C0 700783C0 70079F00 F007FE00 F007F000 F00F0000 F01F0020 F01F8060 F07F83E0 7FF3FFE0 3FE3FF80 1F80FC00 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 20 30 5 0 BITMAP 030E00 070E00 071C00 000000 000000 F000F0 7001E0 7803C0 780380 3C0780 3C0F00 1C1E00 1E3C00 0E3800 0F7800 0FF000 07E000 07C000 03C000 038000 078000 078000 078000 070000 070000 0F0000 0F0000 0E0000 0E0000 1E0000 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 7 18 3 0 BITMAP 0E 1E 1C 1C 1C 1C 3C 38 38 38 38 78 70 70 70 70 F0 E0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 13 26 1 0 BITMAP 01E0 01E0 01C0 01C0 01C0 03C0 0380 0380 0388 07B8 07F0 07F0 0FC0 3F00 7F00 FF00 CE00 0E00 0E00 1E00 1C00 1C00 1C00 1C00 3C00 3800 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 18 25 1 0 BITMAP 01E000 01C000 01C000 01C000 03C000 03C000 038000 038800 07B800 07F800 07F000 0FC000 1F0000 7F0000 FF0000 EF0000 8E0000 0E0000 1E0000 1E0000 1E0000 1C0000 1FFFC0 3FFFC0 3FFFC0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 17 31 4 -6 BITMAP 003800 003800 007800 007000 007000 007000 007000 006000 006000 3FFF80 3FFF80 00E000 01E000 01C000 01C000 01C000 01C000 03C000 038000 FFFE00 FFFE00 030000 030000 070000 070000 070000 070000 070000 0E0000 0E0000 0E0000 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 22 0 BBX 21 34 2 -7 BITMAP 001F00 007F00 00FF38 01E178 01C070 038000 038000 078000 070000 3FFFF0 3FFFE0 3FFFE0 0F00E0 0E00E0 0E01E0 0E01C0 0E01C0 1E01C0 1C01C0 1C03C0 1C0380 1C0380 3C0380 380380 380780 380700 380700 780000 700000 700000 700000 700000 F00000 E00000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 2 1 BITMAP 0800 1C00 1E00 0E00 0F00 0780 0380 03C0 03C0 0780 0F00 1E00 3800 7000 E000 4000 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 34 0 BBX 34 25 4 0 BITMAP 001FCFFFC0 007FFFFFC0 01FFFFFFC0 03F07E0000 07C03E0000 0F001E0000 1E001C0000 3C001C0000 3C001C0000 78003C0000 78003C0000 70003FFC00 F0003FFC00 F0007FFC00 F000780000 F000780000 F000700000 F000F00000 F000F00000 7801F00000 7C03F00000 7E07E00000 3FFFFFFC00 0FFFFFFC00 03F9FFFC00 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 34 0 BBX 31 2 3 9 BITMAP FFFFFFFE FFFFFFFE ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 11 5 10 21 BITMAP E0E0 71C0 7380 3F00 3E00 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 6 5 6 -6 BITMAP 38 60 E0 F4 7C ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 11 5 10 21 BITMAP 0EE0 1D80 3B00 7600 EC00 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 3 1 BITMAP 0080 01C0 0380 0700 1E00 3C00 7800 F000 F000 7000 3800 3800 1C00 0C00 0E00 0400 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 4 3 13 22 BITMAP 70 F0 E0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 11 5 10 21 BITMAP C060 C0C0 E1C0 7F80 3E00 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 12 10 7 6 BITMAP 3FF0 3FF0 7FE0 7FE0 7FE0 7FE0 7FE0 FFC0 FFC0 FFC0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 11 3 9 22 BITMAP 3C60 7FC0 C780 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 11 5 9 21 BITMAP 0780 0F80 19C0 31C0 E0E0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 9 5 17 BITMAP 0820 38C0 31C0 6180 6380 6380 F3C0 F380 E780 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 9 6 17 BITMAP F0 F0 F0 F0 F0 F0 70 60 60 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 17 25 3 0 BITMAP 038380 01C700 01CE00 00FC00 00F800 000000 000000 03F000 0FFC00 0FFC00 1E0C00 1C0000 1E0000 1E0000 0F8000 07C000 03E000 01E000 00F000 007000 807000 E0F000 FFF000 FFE000 3F8000 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 5 5 12 22 BITMAP 70 D8 88 D8 70 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 -6 BITMAP 3C 3C 7C 78 78 38 38 38 30 70 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 16 31 7 -6 BITMAP 007F 00FF 01FF 03C3 0380 0700 0700 0700 0F00 0E00 0E00 7FC0 FFC0 FFC0 1C00 1C00 1C00 1C00 3C00 3C00 3800 3800 3800 7800 7800 7000 7000 7000 F000 F000 E000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 27 0 BBX 26 13 5 12 BITMAP FFE783C0 FFE783C0 FFE787C0 0E07C780 0E07CF80 0C07CF80 1C0FDB80 1C0FDB80 1C0CF300 1C0CE700 180CE700 381CC700 381C0700 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 26 25 -8 0 BITMAP 000003C0 00000780 00000F00 00001E00 00001C00 00003800 00007000 0000E000 0001C000 00038000 00070000 000F0000 001E0000 003C0000 00380000 00700000 00E00000 01C00000 03800000 07000000 0E000000 1E000000 3C000000 78000000 F0000000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 6 5 11 21 BITMAP F0 70 38 38 1C ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 35 0 BBX 35 25 2 0 BITMAP 03E0038000 07F0070000 0FF80E0000 1E381C0000 1C18180000 3818300000 3838700000 3830E00000 3871C00000 1FE3800000 1FE7000000 0F8E000000 001C780780 0039FC1FC0 0033FE3FE0 00678E78E0 00C7067060 01C6066060 038E066060 070E06E0E0 0E0E0EE0E0 1C0F1CF1C0 3807FC7F80 7007F87F80 E003E01E00 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 34 0 BBX 26 3 4 0 BITMAP 700E01C0 F01E03C0 E01C0380 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 9 5 17 BITMAP 39E0 79C0 71C0 30C0 30C0 3080 6180 E300 8200 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 19 32 2 0 BITMAP 00E0E0 0071C0 007380 003F00 003E00 000000 000000 007F80 01FFE0 03FFE0 07C060 0F0000 0F0000 0F0000 0F0000 0F0000 078000 07E000 03F000 00F800 007C00 003E00 001F00 000F00 000700 000700 000F00 400F00 F03E00 FFFC00 FFF800 1FE000 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 11 1 -7 BITMAP 39E0 79E0 79C0 71C0 30C0 30C0 30C0 2180 6180 C300 8200 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 19 25 2 0 BITMAP 00E0E0 0071C0 007380 003F00 003E00 000000 000000 0FFFC0 0FFFC0 1FFF80 000F80 001F00 003E00 007C00 00F800 01F000 03E000 07C000 0F8000 1F0000 3E0000 7C0000 7FFF00 FFFF00 FFFE00 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/luRS08.bdf100644 1750 1750 56402 5413747523 15056 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Medium-R-Normal-Sans-11-80-100-100-P-63-ISO8859-1 SIZE 8 100 100 FONTBOUNDINGBOX 17 12 -6 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 11 POINT_SIZE 80 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 63 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 10 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 3 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 3 0 BBX 1 8 1 0 BITMAP 80 80 80 80 80 80 00 80 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 4 0 BBX 3 3 1 5 BITMAP A0 A0 A0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 14 34 7E 28 28 FC 58 50 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 -1 BITMAP 20 78 A0 A0 60 30 28 28 F0 20 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 44 A8 B8 50 28 74 54 88 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 8 0 BBX 5 8 1 0 BITMAP 70 50 50 60 A8 B8 90 68 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 0 5 BITMAP C0 40 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 4 0 BBX 2 10 1 -2 BITMAP 40 40 80 80 80 80 80 80 40 40 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 4 0 BBX 2 10 1 -2 BITMAP 80 80 40 40 40 40 40 40 80 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 1 4 BITMAP 40 F0 60 60 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 0 BITMAP 10 10 10 FE 10 10 10 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 1 -2 BITMAP C0 C0 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 0 3 BITMAP FC ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 3 0 BBX 1 1 1 0 BITMAP 80 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 5 0 BBX 5 10 0 -2 BITMAP 08 10 10 10 20 20 40 40 40 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 78 48 84 84 84 84 48 78 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 7 0 BBX 2 8 2 0 BITMAP C0 40 40 40 40 40 40 40 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 70 88 08 18 30 60 C0 F8 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP F0 08 08 70 08 08 08 F0 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 18 18 28 48 C8 FC 08 08 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 7 0 BBX 4 8 1 0 BITMAP F0 80 80 E0 10 10 10 E0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 78 40 80 F0 88 88 88 70 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP F8 08 10 30 20 40 C0 80 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 70 88 88 70 D8 88 88 70 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 70 98 88 88 78 08 10 F0 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 3 0 BBX 1 6 1 0 BITMAP 80 00 00 00 00 80 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 3 0 BBX 1 8 1 -2 BITMAP 80 00 00 00 00 80 80 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 04 18 30 C0 30 18 04 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 7 0 BBX 6 3 0 2 BITMAP FC 00 FC ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 80 60 30 0C 30 60 80 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 0 0 BITMAP E0 10 10 20 40 40 00 40 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 2 0 BITMAP 1E 63 5D A9 A9 B6 40 3C ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 0 0 BITMAP 10 38 28 28 44 7C 44 82 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP F0 88 88 F0 90 88 88 F0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 8 0 BBX 6 8 1 0 BITMAP 3C 44 80 80 80 80 44 3C ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 0 BITMAP F8 84 82 82 82 82 84 F8 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP F8 80 80 F0 80 80 80 F8 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 0 BITMAP F0 80 80 80 F0 80 80 80 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 8 0 BBX 6 8 1 0 BITMAP 3C 44 80 80 84 84 44 3C ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 8 0 BBX 6 8 1 0 BITMAP 84 84 84 FC 84 84 84 84 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 3 0 BBX 1 8 1 0 BITMAP 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 3 0 BBX 3 10 0 -2 BITMAP 20 20 20 20 20 20 20 20 20 C0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 8C 90 A0 E0 E0 B0 98 8C ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 80 80 80 80 80 80 80 F8 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP C6 C6 C6 AA AA AA 92 82 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 8 0 BBX 6 8 1 0 BITMAP 84 C4 E4 A4 94 9C 8C 84 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP 38 44 82 82 82 82 44 38 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP F0 88 88 98 F0 80 80 80 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 -2 BITMAP 38 44 82 82 82 82 46 3C 06 03 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP F0 88 88 90 E0 90 88 8C ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 0 BITMAP 70 80 80 60 10 08 88 F0 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP FE 10 10 10 10 10 10 10 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 8 0 BBX 6 8 1 0 BITMAP 84 84 84 84 84 84 84 78 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 82 46 44 44 28 28 38 10 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 0 0 BITMAP 8880 8880 5500 5500 5500 5500 3600 2200 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP C6 44 28 18 38 28 44 C6 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP C6 44 28 28 10 10 10 10 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP FC 08 18 10 20 40 40 FC ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 4 0 BBX 2 10 1 -2 BITMAP C0 80 80 80 80 80 80 80 80 C0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 5 0 BBX 5 10 0 -2 BITMAP 80 40 40 40 20 20 10 10 10 08 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 4 0 BBX 2 10 0 -2 BITMAP C0 40 40 40 40 40 40 40 40 C0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 1 BITMAP 10 30 30 48 48 48 84 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 6 0 BBX 5 1 0 -1 BITMAP F8 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 0 5 BITMAP C0 80 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 70 90 70 90 90 68 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 80 80 F0 88 88 88 98 F0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 0 BITMAP 70 C0 80 80 C0 70 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 08 08 78 C8 88 88 88 78 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP 70 88 F8 80 C0 78 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 0 0 BITMAP 30 40 40 E0 40 40 40 40 40 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 -2 BITMAP 78 C8 88 88 88 78 08 F0 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 80 80 B0 C8 88 88 88 88 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 3 0 BBX 1 8 1 0 BITMAP 80 00 80 80 80 80 80 80 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 3 0 BBX 3 10 0 -2 BITMAP 20 00 20 20 20 20 20 20 20 C0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 80 80 98 A0 E0 E0 B0 98 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 3 0 BBX 1 8 1 0 BITMAP 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 10 0 BBX 9 6 1 0 BITMAP BB00 CC80 8880 8880 8880 8880 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 0 BITMAP B0 C8 88 88 88 88 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP 78 CC 84 84 CC 78 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 -2 BITMAP F0 88 88 88 98 F0 80 80 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 -2 BITMAP 78 C8 88 88 88 78 08 08 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 0 BITMAP A0 C0 80 80 80 80 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 0 BITMAP 70 80 C0 30 90 E0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 4 0 BBX 4 7 0 0 BITMAP 40 F0 40 40 40 40 30 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 0 BITMAP 88 88 88 88 98 68 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 84 48 48 78 30 30 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 8 0 BBX 8 6 0 0 BITMAP 99 99 5A 6A 66 64 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP CC 68 30 30 48 CC ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 -2 BITMAP 84 48 48 38 30 30 20 60 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP F8 10 30 60 40 F8 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 0 -2 BITMAP 20 40 40 40 40 C0 40 40 40 20 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 3 0 BBX 1 10 1 -2 BITMAP 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 1 -2 BITMAP 80 40 40 40 60 40 40 40 40 80 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 7 0 BBX 6 3 0 2 BITMAP 64 B4 98 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 3 0 BBX 1 8 1 -2 BITMAP 80 00 80 80 80 80 80 80 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 20 78 A0 A0 A0 A0 78 20 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 7 0 BBX 4 8 2 0 BITMAP 30 40 40 E0 40 40 40 F0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 82 7C 6C 44 44 6C 7C 82 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 8C 48 70 30 78 78 20 20 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 3 0 BBX 1 10 1 -2 BITMAP 80 80 80 80 00 00 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 -2 BITMAP 78 80 80 70 98 C8 70 08 88 F0 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 7 0 BBX 3 1 2 7 BITMAP A0 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 1 0 BITMAP 3C 46 9B A1 A1 9B 46 3C ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 4 BITMAP F0 70 90 F0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP 28 50 F0 D0 50 28 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 7 0 BBX 6 3 0 2 BITMAP FC 04 04 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 4 0 BBX 2 1 1 3 BITMAP C0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 7 0 BBX 4 5 1 3 BITMAP 60 F0 D0 F0 60 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 7 0 BBX 3 1 2 7 BITMAP E0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 3 0 BBX 3 2 2 6 BITMAP E0 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 0 BITMAP 10 10 FE 10 10 00 FE ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 -6 3 BITMAP E0 20 60 C0 E0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 -6 3 BITMAP E0 60 C0 20 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 7 0 BBX 2 1 3 7 BITMAP C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 -2 BITMAP 88 88 88 88 98 E8 80 80 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 7 0 BBX 4 10 1 -2 BITMAP F0 F0 F0 70 30 30 30 30 30 30 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 7 0 BBX 1 1 3 3 BITMAP 80 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 7 0 BBX 2 3 3 -2 BITMAP 80 40 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 4 0 BBX 2 5 -6 3 BITMAP C0 40 40 40 40 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 4 BITMAP 60 90 90 60 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP A0 50 58 78 50 A0 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 3 0 BITMAP C6 44 48 5A 76 2A 4F C2 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 3 0 BITMAP C6 44 48 5E 72 26 4C CE ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 3 0 BITMAP E6 64 C8 3A F6 2A 4F C2 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 0 -2 BITMAP 20 00 20 20 40 80 80 70 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 0 0 BITMAP 30 10 38 28 28 44 7C 44 82 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 0 0 BITMAP 18 10 38 28 28 44 7C 44 82 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 0 0 BITMAP 3C 10 38 28 28 44 7C 44 82 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 0 0 BITMAP 3C 10 38 28 28 44 7C 44 82 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 0 0 BITMAP 28 10 38 28 28 44 7C 44 82 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 0 BITMAP 18 24 18 38 28 28 44 7C 44 82 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 10 0 BBX 10 8 0 0 BITMAP 0FC0 0C00 1400 1780 2400 7C00 4400 87C0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 -2 BITMAP 3C 44 80 80 80 80 44 3C 10 30 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 20 F8 80 80 F0 80 80 80 F8 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 40 F8 80 80 F0 80 80 80 F8 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 60 F8 80 80 F0 80 80 80 F8 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 50 F8 80 80 F0 80 80 80 F8 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 3 0 BBX 2 9 2 0 BITMAP C0 40 40 40 40 40 40 40 40 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 3 0 BBX 2 9 1 0 BITMAP C0 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 3 0 BBX 4 9 2 0 BITMAP F0 40 40 40 40 40 40 40 40 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 3 0 BBX 3 9 2 0 BITMAP A0 40 40 40 40 40 40 40 40 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 0 0 BITMAP 7C 42 41 F1 41 41 42 7C ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 78 84 C4 E4 A4 94 9C 8C 84 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 10 38 44 82 82 82 82 44 38 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 10 38 44 82 82 82 82 44 38 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 1C 38 44 82 82 82 82 44 38 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 3C 38 44 82 82 82 82 44 38 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 28 38 44 82 82 82 82 44 38 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 84 48 78 30 78 48 84 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 0 BITMAP 3E 44 8A 9A B2 A2 44 F8 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 30 84 84 84 84 84 84 84 78 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 30 84 84 84 84 84 84 84 78 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 78 84 84 84 84 84 84 84 78 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 50 84 84 84 84 84 84 84 78 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 18 C6 44 28 28 10 10 10 10 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 80 F0 88 88 88 98 F0 80 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP E0 90 90 A0 A0 90 88 88 B0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 20 70 90 70 90 90 68 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 20 70 90 70 90 90 68 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP E0 70 90 70 90 90 68 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP F0 70 90 70 90 90 68 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 50 70 90 70 90 90 68 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 60 90 70 90 70 90 90 68 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 9 0 BBX 7 6 1 0 BITMAP 6C 92 7E 90 98 EE ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 1 -2 BITMAP 70 C0 80 80 C0 70 20 60 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 0 0 BITMAP 20 70 88 F8 80 C0 78 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 0 0 BITMAP 20 70 88 F8 80 C0 78 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 0 0 BITMAP 38 70 88 F8 80 C0 78 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 0 0 BITMAP 50 70 88 F8 80 C0 78 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 3 0 BBX 2 7 2 0 BITMAP C0 40 40 40 40 40 40 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 3 0 BBX 2 7 1 0 BITMAP C0 80 80 80 80 80 80 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 3 0 BBX 4 7 2 0 BITMAP F0 40 40 40 40 40 40 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 3 0 BBX 3 7 2 0 BITMAP A0 40 40 40 40 40 40 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP E0 50 70 88 88 88 D8 70 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP F0 B0 C8 88 88 88 88 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 10 78 CC 84 84 CC 78 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 20 78 CC 84 84 CC 78 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 30 78 CC 84 84 CC 78 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 78 78 CC 84 84 CC 78 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 50 78 CC 84 84 CC 78 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP 10 00 00 FE 00 10 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP 7C CC 94 A4 CC F8 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 60 88 88 88 88 98 68 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 30 88 88 88 88 98 68 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 78 88 88 88 88 98 68 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 50 88 88 88 88 98 68 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 -2 BITMAP 30 84 48 48 38 30 30 20 60 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 -2 BITMAP 80 80 F0 88 88 88 98 F0 80 80 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 -2 BITMAP 50 84 48 48 38 30 30 20 60 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 7C 44 44 F4 44 44 44 44 44 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 1 1 3 BITMAP F0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 -2 BITMAP 20 20 20 F8 20 20 20 20 20 20 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 30 FC 08 18 10 20 40 40 FC ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 6 1 0 BITMAP 7700 C880 8F80 8800 CC00 7780 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 28 C6 44 28 28 10 10 10 10 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 1 6 1 0 BITMAP 80 80 80 80 80 80 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 0 0 BITMAP 40 40 60 40 C0 40 40 40 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP 40 40 60 60 C0 40 40 7C ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 -2 BITMAP 20 20 20 F8 20 20 F8 20 20 20 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 30 44 40 FC 44 44 44 44 44 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 0 0 BITMAP 80 40 60 60 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 8 0 0 BITMAP 3FE0 4200 8200 83C0 8200 8200 4200 3FE0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 1 1 3 BITMAP FFC0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 1 7 BITMAP F0 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 1 3 -2 BITMAP C0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 1 2 7 BITMAP E0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 0 0 BITMAP 20 40 C0 C0 40 20 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 1 1 3 7 BITMAP 80 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 1 7 BITMAP F0 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 3 2 2 BITMAP E0 E0 E0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 1 7 BITMAP F0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 1 7 BITMAP F0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 3 1 5 BITMAP A0 A0 A0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 1 3 1 5 BITMAP 80 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP E0 70 80 C0 30 90 E0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 3 3 7 BITMAP 60 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 1 4 1 -2 BITMAP 80 80 80 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 -2 BITMAP 38 20 40 40 E0 40 40 C0 80 80 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 4 0 4 BITMAP EF 4F 4F 49 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 0 0 BBX 7 8 -2 0 BITMAP 06 04 08 18 30 20 40 C0 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 1 2 7 BITMAP C0 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 8 1 0 BITMAP 4400 A800 B800 5000 2900 7680 5680 8900 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 1 2 0 BITMAP 91 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 3 1 5 BITMAP A0 A0 A0 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 0 0 BITMAP 38 70 80 80 60 10 08 88 F0 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 1 -2 BITMAP A0 A0 A0 A0 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 30 F8 10 30 60 40 F8 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/luRS10.bdf100644 1750 1750 62416 5413747523 15051 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Medium-R-Normal-Sans-14-100-100-100-P-80-ISO8859-1 SIZE 10 100 100 FONTBOUNDINGBOX 22 16 -8 -3 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 14 POINT_SIZE 100 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 13 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 4 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 4 0 BBX 1 10 2 0 BITMAP 80 80 80 80 80 80 80 00 00 80 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 5 0 BBX 3 2 1 8 BITMAP A0 A0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP 0900 1A00 1200 7F80 1200 2400 FF00 2400 2C00 4800 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 9 0 BBX 5 13 2 -2 BITMAP 20 78 A0 A0 A0 60 30 28 28 A8 F8 30 20 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 9 0 BBX 11 10 0 0 BITMAP 7060 88C0 8980 8B00 7600 0DC0 1A20 3220 6220 C1C0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 0 0 BITMAP 1C00 2200 2200 3C00 7800 8C80 8480 8380 C300 3D80 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 1 7 BITMAP C0 40 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 5 0 BBX 3 13 1 -3 BITMAP 20 40 40 80 80 80 80 80 80 80 40 40 20 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 5 0 BBX 3 13 1 -3 BITMAP 80 80 40 20 20 20 20 20 20 20 40 80 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 7 0 BBX 5 4 1 6 BITMAP 20 F8 50 50 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 0 0 BITMAP 0800 0800 0800 0800 FF80 0800 0800 0800 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 4 0 BBX 2 5 1 -3 BITMAP C0 C0 40 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 9 0 BBX 8 1 0 3 BITMAP FF ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 4 0 BBX 2 1 1 0 BITMAP C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 7 0 BBX 7 13 0 -3 BITMAP 02 04 04 08 08 18 10 30 20 20 40 40 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 38 44 82 82 82 82 82 82 44 38 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 9 0 BBX 3 10 2 0 BITMAP E0 20 20 20 20 20 20 20 20 20 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 1 0 BITMAP 78 8C 04 04 0C 18 20 40 C0 FC ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 9 0 BBX 5 10 2 0 BITMAP F0 88 08 08 70 08 08 08 98 F0 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 0C 0C 14 24 44 C4 FE 04 04 04 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 9 0 BBX 5 10 2 0 BITMAP F8 80 80 80 F0 18 08 08 18 F0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 3C 44 C0 80 BC C6 82 82 44 38 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP FC 0C 08 18 10 30 20 20 40 40 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 7C 82 82 C6 38 4C 82 82 C6 7C ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 78 C4 82 82 C6 7A 02 02 04 78 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 4 0 BBX 1 7 2 0 BITMAP 80 00 00 00 00 00 80 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 4 0 BBX 1 10 2 -3 BITMAP 80 00 00 00 00 00 80 80 80 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 0 0 BITMAP 01 06 18 E0 60 18 06 01 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 9 0 BBX 8 4 0 2 BITMAP FF 00 00 FF ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 0 0 BITMAP 80 60 18 06 07 18 60 80 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 6 0 BBX 5 10 0 0 BITMAP F0 88 08 18 30 60 40 00 00 40 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 2 0 BITMAP 0F80 30C0 6720 4920 9220 9220 9640 9B80 6000 3E00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 0 0 BITMAP 0800 1400 1400 1400 2200 2200 7F00 4100 4100 8080 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP F8 84 84 8C F8 88 84 84 84 F8 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 1F 61 40 80 80 80 80 40 61 1E ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 2 0 BITMAP FC 86 83 81 81 81 81 81 82 FC ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP FC 80 80 80 F8 80 80 80 80 FC ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 8 0 BBX 5 10 2 0 BITMAP F8 80 80 80 F0 80 80 80 80 80 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 1F 61 40 80 80 81 81 C1 61 3F ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 81 81 81 81 FF 81 81 81 81 81 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 4 0 BBX 1 10 2 0 BITMAP 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 4 0 BBX 4 13 0 -3 BITMAP 10 10 10 10 10 10 10 10 10 10 10 10 E0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 86 8C 98 B0 A0 E0 90 88 84 83 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 80 80 80 80 80 80 80 80 80 FC ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 12 0 BBX 9 10 2 0 BITMAP C180 C180 E380 A280 A280 9480 9480 9480 8880 8080 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 81 C1 A1 B1 91 89 8D 85 83 81 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 3E00 6300 4100 8080 8080 8080 8080 4100 6300 3E00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP F8 84 84 84 88 F0 80 80 80 80 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 -3 BITMAP 3E00 6300 4100 8080 8080 8080 8080 4180 6300 3E00 0380 01C0 0080 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP F8 84 84 84 88 F0 98 88 84 84 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 78 88 80 C0 60 18 04 04 8C F8 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP FF80 0800 0800 0800 0800 0800 0800 0800 0800 0800 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 10 0 BBX 7 10 1 0 BITMAP 82 82 82 82 82 82 82 82 C6 7C ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP 8080 4100 4100 2100 2200 2200 1400 1400 1C00 0800 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 12 0 BBX 12 10 0 0 BITMAP 8610 4630 4620 4620 4920 2940 2940 2940 3080 1080 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP C3 62 24 1C 18 18 3C 24 42 C3 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP C3 42 24 24 18 10 10 10 10 10 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP FE 04 04 08 10 10 20 40 40 FE ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 5 0 BBX 3 13 1 -3 BITMAP E0 80 80 80 80 80 80 80 80 80 80 80 E0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 7 0 BBX 7 13 0 -3 BITMAP 80 40 40 20 20 30 10 18 08 08 04 04 02 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 5 0 BBX 3 13 0 -3 BITMAP E0 20 20 20 20 20 20 20 20 20 20 20 E0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 0 2 BITMAP 08 18 18 24 24 42 42 81 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 1 -2 BITMAP FC ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 1 7 BITMAP C0 80 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 7C 44 04 7C 84 84 7E ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 80 80 80 BC C6 82 82 82 C4 B8 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 78 C0 80 80 80 C0 78 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 02 02 02 3A 46 82 82 82 C6 7A ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP 78 44 84 FC 80 40 3C ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 5 0 BBX 5 11 1 0 BITMAP 38 40 40 40 F0 40 40 40 40 40 40 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 -3 BITMAP 3A 46 82 82 82 C6 7A 02 42 7C ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 1 0 BITMAP 80 80 80 B8 C4 84 84 84 84 84 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 4 0 BBX 1 10 2 0 BITMAP 80 00 00 80 80 80 80 80 80 80 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 4 0 BBX 4 13 0 -3 BITMAP 10 00 00 10 10 10 10 10 10 10 10 10 E0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 2 0 BITMAP 80 80 80 88 90 A0 C0 A0 90 8C ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 4 0 BBX 1 10 2 0 BITMAP 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 13 0 BBX 11 7 1 0 BITMAP B9C0 C620 8420 8420 8420 8420 8420 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 9 0 BBX 6 7 1 0 BITMAP B8 C4 84 84 84 84 84 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 0 BITMAP 38 44 82 82 82 44 38 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 -3 BITMAP BC C6 82 82 82 C4 B8 80 80 80 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 -3 BITMAP 3A 46 82 82 82 C6 7A 02 02 02 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP B0 C0 80 80 80 80 80 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 70 80 C0 70 08 88 F0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 5 0 BBX 4 9 1 0 BITMAP 40 40 F0 40 40 40 40 40 30 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 9 0 BBX 6 7 1 0 BITMAP 84 84 84 84 84 8C 74 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 0 BITMAP 82 44 44 68 28 28 10 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 11 0 BBX 11 7 0 0 BITMAP 8420 4A40 4A40 4A40 3280 3180 3180 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 0 BITMAP C6 6C 28 10 28 4C C6 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 0 -3 BITMAP 82 44 44 2C 28 28 10 10 30 20 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP FC 08 10 30 60 40 FC ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 5 0 BBX 3 13 0 -3 BITMAP 20 40 40 40 40 40 80 40 40 40 40 40 20 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 4 0 BBX 1 13 1 -3 BITMAP 80 80 80 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 5 0 BBX 3 13 1 -3 BITMAP 80 40 40 40 40 40 20 40 40 40 40 40 80 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 9 0 BBX 8 3 0 2 BITMAP 61 99 86 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 4 0 BBX 1 10 2 -3 BITMAP 80 00 00 80 80 80 80 80 80 80 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 1 0 BITMAP 10 3C 54 90 90 90 90 50 3C 10 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 9 0 BBX 5 10 2 0 BITMAP 38 40 40 40 E0 40 40 40 80 F8 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 0 1 BITMAP 81 7E 66 42 42 66 7E 81 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP C6 44 28 10 7C 10 7C 10 10 10 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 4 0 BBX 1 13 1 -3 BITMAP 80 80 80 80 80 00 00 00 80 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 2 -3 BITMAP 7C 80 80 C0 70 8C 84 C4 38 0C 04 84 F8 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 9 0 BBX 4 1 2 9 BITMAP 90 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 0 0 BITMAP 1F00 2080 4E40 9820 9020 9020 9820 4E40 2080 1F00 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 5 BITMAP F0 90 70 90 F8 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 24 28 58 90 58 28 24 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 9 0 BBX 8 4 0 2 BITMAP FF 01 01 01 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 1 4 BITMAP E0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 9 0 BBX 7 6 1 4 BITMAP 7C FE AA B2 EE 7C ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 9 0 BBX 4 1 2 9 BITMAP F0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 4 0 BBX 3 2 2 8 BITMAP E0 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 0 0 BITMAP 0800 0800 0800 FF80 0800 0800 0000 FF80 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 -8 4 BITMAP E0 10 10 60 C0 F0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 -8 4 BITMAP E0 10 60 30 10 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 9 0 BBX 3 1 3 9 BITMAP E0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 1 -3 BITMAP 84 84 84 84 84 8C F4 80 80 80 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 1 -3 BITMAP 7C F4 F4 F4 74 14 14 14 14 14 14 14 14 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 9 0 BBX 2 1 3 4 BITMAP C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 9 0 BBX 2 3 4 -3 BITMAP C0 40 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 5 0 BBX 2 6 -8 4 BITMAP C0 40 40 40 40 40 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 0 5 BITMAP 70 88 88 88 70 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 90 50 68 24 68 50 90 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 3 0 BITMAP C180 4100 4200 4400 4D80 5B80 1680 27C0 4080 C080 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 3 0 BITMAP C180 4100 4200 4400 4F00 5880 1080 2300 4600 C780 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 3 0 BITMAP E180 1100 6200 3400 1D80 FB80 1680 27C0 4080 C080 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 6 0 BBX 5 10 0 -3 BITMAP 10 00 00 10 30 60 C0 80 88 78 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 0 0 BITMAP 1C00 0000 0800 1400 1400 1400 2200 2200 7F00 4100 4100 8080 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 0 0 BITMAP 1C00 0000 0800 1400 1400 1400 2200 2200 7F00 4100 4100 8080 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 0 0 BITMAP 3E00 0000 0800 1400 1400 1400 2200 2200 7F00 4100 4100 8080 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 0 0 BITMAP 3E00 0000 0800 1400 1400 1400 2200 2200 7F00 4100 4100 8080 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 0 0 BITMAP 1200 0000 0800 1400 1400 1400 2200 2200 7F00 4100 4100 8080 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 0 0 BITMAP 0C00 1200 0C00 0800 1400 1400 1400 2200 2200 7F00 4100 4100 8080 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 13 0 BBX 12 10 0 0 BITMAP 07F0 0600 0A00 0A00 13E0 1200 3E00 6200 4200 C3F0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 -3 BITMAP 1F 61 40 80 80 80 80 40 61 1E 08 08 18 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 8 0 BBX 6 12 1 0 BITMAP 70 00 FC 80 80 80 F8 80 80 80 80 FC ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 8 0 BBX 6 12 1 0 BITMAP 70 00 FC 80 80 80 F8 80 80 80 80 FC ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 8 0 BBX 6 12 1 0 BITMAP F8 00 FC 80 80 80 F8 80 80 80 80 FC ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 8 0 BBX 6 12 1 0 BITMAP 48 00 FC 80 80 80 F8 80 80 80 80 FC ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 4 0 BBX 3 12 3 0 BITMAP E0 00 40 40 40 40 40 40 40 40 40 40 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 4 0 BBX 3 12 3 0 BITMAP E0 00 40 40 40 40 40 40 40 40 40 40 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 4 0 BBX 5 12 4 0 BITMAP F8 00 20 20 20 20 20 20 20 20 20 20 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 4 0 BBX 4 12 4 0 BITMAP 90 00 20 20 20 20 20 20 20 20 20 20 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 0 BITMAP 3F00 2180 20C0 2040 F840 2040 2040 2040 2080 3F00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 3E 00 81 C1 A1 B1 91 89 8D 85 83 81 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP 1C00 0000 3E00 6300 4100 8080 8080 8080 8080 4100 6300 3E00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP 1C00 0000 3E00 6300 4100 8080 8080 8080 8080 4100 6300 3E00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP 3E00 0000 3E00 6300 4100 8080 8080 8080 8080 4100 6300 3E00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP 3E00 0000 3E00 6300 4100 8080 8080 8080 8080 4100 6300 3E00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP 1200 0000 3E00 6300 4100 8080 8080 8080 8080 4100 6300 3E00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 0 0 BITMAP 81 42 24 18 18 24 42 81 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 3F80 6300 4300 8480 8C80 9880 9080 6100 6300 FE00 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 10 0 BBX 7 12 1 0 BITMAP 38 00 82 82 82 82 82 82 82 82 C6 7C ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 10 0 BBX 7 12 1 0 BITMAP 38 00 82 82 82 82 82 82 82 82 C6 7C ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 10 0 BBX 7 12 1 0 BITMAP 7C 00 82 82 82 82 82 82 82 82 C6 7C ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 10 0 BBX 7 12 1 0 BITMAP 48 00 82 82 82 82 82 82 82 82 C6 7C ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 0 0 BITMAP 1C 00 C3 42 24 24 18 10 10 10 10 10 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 80 80 F8 84 84 84 88 F0 80 80 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 2 0 BITMAP 70 88 88 90 A0 A0 90 8C 84 A4 B8 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 70 00 7C 44 04 7C 84 84 7E ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 38 00 7C 44 04 7C 84 84 7E ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 7C 00 7C 44 04 7C 84 84 7E ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 7C 00 7C 44 04 7C 84 84 7E ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 48 00 7C 44 04 7C 84 84 7E ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 30 48 00 7C 44 04 7C 84 84 7E ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 12 0 BBX 9 7 1 0 BITMAP 7700 4C80 0880 7F80 8800 8C00 7780 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 -3 BITMAP 78 C0 80 80 80 C0 78 10 10 30 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 70 00 78 44 84 FC 80 40 3C ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 38 00 78 44 84 FC 80 40 3C ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 7C 00 78 44 84 FC 80 40 3C ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 48 00 78 44 84 FC 80 40 3C ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 4 0 BBX 3 9 3 0 BITMAP E0 00 40 40 40 40 40 40 40 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 4 0 BBX 3 9 3 0 BITMAP E0 00 40 40 40 40 40 40 40 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 4 0 BBX 5 9 4 0 BITMAP F8 00 20 20 20 20 20 20 20 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 4 0 BITMAP 90 00 20 20 20 20 20 20 20 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP F8 78 8C 3C 46 82 82 82 44 38 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 9 0 BBX 6 9 1 0 BITMAP F8 00 B8 C4 84 84 84 84 84 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 38 00 38 44 82 82 82 44 38 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 38 00 38 44 82 82 82 44 38 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 7C 00 38 44 82 82 82 44 38 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 7C 00 38 44 82 82 82 44 38 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 48 00 38 44 82 82 82 44 38 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 0 BITMAP 10 00 00 FE 00 00 10 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 0 BITMAP 3E 44 8A 92 A2 44 F8 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 9 0 BBX 6 9 1 0 BITMAP 70 00 84 84 84 84 84 8C 74 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 9 0 BBX 6 9 1 0 BITMAP 38 00 84 84 84 84 84 8C 74 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 9 0 BBX 6 9 1 0 BITMAP 7C 00 84 84 84 84 84 8C 74 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 9 0 BBX 6 9 1 0 BITMAP 48 00 84 84 84 84 84 8C 74 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 38 00 82 44 44 2C 28 28 10 10 30 20 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 -3 BITMAP 80 80 80 BC C6 82 82 82 C4 B8 80 80 80 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 48 00 82 44 44 2C 28 28 10 10 30 20 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 3E 42 42 42 FA 42 42 42 42 42 42 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 1 3 BITMAP FC ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 13 2 -3 BITMAP 20 20 20 20 F8 20 20 20 20 20 20 20 20 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 12 1 0 BITMAP 7C 00 FE 04 04 08 10 10 20 40 40 FE ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 12 7 0 0 BITMAP 3DE0 4710 8210 83F0 8200 4700 3DF0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 0 0 BITMAP 24 00 C3 42 24 24 18 10 10 10 10 10 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 1 7 2 0 BITMAP 80 80 80 80 80 80 80 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 5 10 0 0 BITMAP 20 20 20 28 30 E0 20 20 20 20 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 8 10 0 0 BITMAP 20 20 20 28 30 E0 A0 20 20 3F ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 13 2 -3 BITMAP 20 20 20 20 F8 20 20 20 F8 20 20 20 20 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 38 42 40 40 FE 42 42 42 42 42 42 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 7 1 0 BITMAP 80 40 40 20 40 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 13 10 1 0 BITMAP 3FF8 6300 4100 8100 81F0 8100 8100 4100 6300 3FF8 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 13 1 1 3 BITMAP FFF8 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 1 2 9 BITMAP F8 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 2 1 4 -3 BITMAP C0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 4 1 3 9 BITMAP F0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 7 1 0 BITMAP 20 40 40 80 40 40 20 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 1 1 4 9 BITMAP 80 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 1 2 9 BITMAP F8 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 4 3 2 3 BITMAP F0 F0 F0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 1 2 9 BITMAP F8 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 1 2 9 BITMAP F8 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 1 7 BITMAP A0 A0 A0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 1 3 1 7 BITMAP 80 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP F8 00 70 80 C0 70 08 88 F0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 4 3 4 9 BITMAP 60 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 5 1 -3 BITMAP C0 C0 40 40 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 -3 BITMAP 0E 10 10 20 20 F0 40 40 40 C0 80 80 80 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 5 0 5 BITMAP FB60 2360 2360 22A0 22A0 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 9 10 -3 0 BITMAP 0180 0100 0200 0400 0C00 1800 1000 2000 4000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 3 1 2 9 BITMAP E0 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 10 0 0 BITMAP 6180 9100 9200 9400 6C00 1B18 14A4 24A4 44A4 C318 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 11 1 2 0 BITMAP 8420 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 1 7 BITMAP A0 A0 A0 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 12 1 0 BITMAP 7C 00 78 88 80 C0 60 18 04 04 8C F8 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 4 1 -3 BITMAP A0 A0 A0 A0 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 7C 00 FC 08 10 30 60 40 FC ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/luRS12.bdf100644 1750 1750 70020 5413747524 15042 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Medium-R-Normal-Sans-17-120-100-100-P-96-ISO8859-1 SIZE 12 100 100 FONTBOUNDINGBOX 29 19 -11 -3 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 17 POINT_SIZE 120 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 96 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 15 FONT_DESCENT 4 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 5 0 BBX 2 12 2 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 00 C0 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 6 0 BBX 4 4 1 8 BITMAP F0 F0 F0 F0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 11 0 BBX 11 12 0 0 BITMAP 0CC0 0D80 0D80 7FE0 7FE0 1B00 1B00 FFC0 FFC0 3600 3600 6600 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 11 0 BBX 6 14 2 -1 BITMAP 30 7C F4 F0 F0 F0 70 38 3C 3C 3C FC F8 30 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 11 0 BBX 12 12 2 0 BITMAP 3870 7CC0 6DC0 7D80 3B00 07C0 0FE0 0F60 1B60 3B60 33E0 E1C0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 12 0 BBX 9 12 1 0 BITMAP 1C00 3E00 3600 3600 3C00 7800 FD80 CD80 CF00 E700 7D00 3980 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 0 8 BITMAP E0 E0 60 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 6 0 BBX 4 15 1 -3 BITMAP 10 30 20 60 40 C0 C0 C0 C0 C0 C0 60 60 30 10 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 6 0 BBX 4 15 1 -3 BITMAP 80 C0 40 60 20 30 30 30 30 30 30 60 60 C0 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 8 0 BBX 6 6 1 6 BITMAP 30 10 FC 28 78 48 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 0 0 BITMAP 0C00 0C00 0C00 0C00 FFC0 FFC0 0C00 0C00 0C00 0C00 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 -3 BITMAP E0 E0 60 60 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 11 0 BBX 10 2 0 4 BITMAP FFC0 FFC0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 5 0 BBX 2 2 2 0 BITMAP C0 C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 8 0 BBX 8 15 0 -3 BITMAP 03 03 06 06 0C 0C 1C 18 38 30 30 60 60 C0 C0 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP 3E00 7F00 6300 C180 C180 C180 C180 C180 C180 6300 7F00 3E00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 11 0 BBX 4 12 2 0 BITMAP F0 F0 30 30 30 30 30 30 30 30 30 30 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 11 0 BBX 8 12 1 0 BITMAP 7C FF 87 03 03 07 1E 38 70 60 FF FF ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 11 0 BBX 7 12 2 0 BITMAP 7C FE 8E 06 04 78 7C 06 06 8E FC F8 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 0 0 BITMAP 0700 0F00 0F00 1B00 3B00 7300 E300 FFC0 FFC0 0300 0300 0300 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 11 0 BBX 6 12 2 0 BITMAP FC FC C0 C0 F0 FC 1C 0C 0C 1C F8 F0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 11 0 BBX 8 12 1 0 BITMAP 1E 7E 62 E0 DC FE E7 C3 C3 67 7E 3C ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 11 0 BBX 8 12 2 0 BITMAP FF FF 07 06 0E 1C 18 38 30 70 60 60 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 11 0 BBX 8 12 2 0 BITMAP 3E FF C3 C3 66 3C 7E C7 C3 E7 FE 3C ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 11 0 BBX 8 12 1 0 BITMAP 3C 7E E6 C3 C3 E7 7F 3B 03 46 7C 78 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 5 0 BBX 2 9 2 0 BITMAP C0 C0 00 00 00 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 5 0 BBX 2 12 2 -3 BITMAP C0 C0 00 00 00 00 00 C0 C0 C0 C0 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 1 0 BITMAP 0060 01E0 07C0 1F00 FC00 7C00 1F00 07C0 01E0 0060 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 11 0 BBX 10 5 0 2 BITMAP FFC0 FFC0 0000 FFC0 FFC0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 0 0 BITMAP C000 F000 7C00 1F00 07C0 07E0 1F00 7C00 F000 C000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 7 0 BBX 7 12 0 0 BITMAP 78 FE 8E 06 0E 1C 38 30 30 00 30 30 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 15 0 BBX 14 12 2 0 BITMAP 07E0 1FF8 3C38 73CC 67CC CC8C CDEC CE78 EC70 7040 3FC0 0F80 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 0 0 BITMAP 0E00 0E00 1E00 1B00 1B00 3380 3180 7F80 7FC0 60C0 C0E0 C060 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 10 0 BBX 7 12 2 0 BITMAP FC FE C6 C6 CC F8 FC CE C6 C6 FE FC ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 1 0 BITMAP 1F80 3FC0 7040 E000 C000 C000 C000 C000 E000 7040 3FC0 1F80 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 13 0 BBX 10 12 2 0 BITMAP FE00 FF00 C380 C1C0 C0C0 C0C0 C0C0 C0C0 C0C0 C180 FF00 FE00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 2 0 BITMAP FE FE C0 C0 C0 FC FC C0 C0 C0 FE FE ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 2 0 BITMAP FE FE C0 C0 C0 FC FC C0 C0 C0 C0 C0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 1 0 BITMAP 1F80 3FC0 7040 E000 C000 C000 C0C0 C0C0 E0C0 70C0 3FC0 1F80 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 12 0 BBX 9 12 2 0 BITMAP C180 C180 C180 C180 C180 FF80 FF80 C180 C180 C180 C180 C180 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 5 0 BBX 2 12 1 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 5 0 BBX 6 15 -1 -3 BITMAP 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C F8 F0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 2 0 BITMAP C380 C600 CE00 DC00 D800 F800 F800 DC00 CC00 C600 C700 C380 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 FF FF ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 15 0 BBX 11 12 2 0 BITMAP E0E0 E0E0 F1E0 F1E0 F1E0 DB60 DB60 DB60 CF60 CE60 CE60 C060 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 13 0 BBX 9 12 2 0 BITMAP C180 E180 F180 F180 F980 D980 CD80 CF80 C780 C780 C380 C180 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 13 0 BBX 11 12 1 0 BITMAP 1F00 3F80 71C0 E0E0 C060 C060 C060 C060 E0E0 71C0 3F80 1F00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 0 BITMAP FE FF C3 C3 C3 C7 FE F8 C0 C0 C0 C0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 1 -3 BITMAP 1F00 3F80 71C0 E0E0 C060 C060 C060 C060 E0E0 71C0 3F80 1F00 01C0 00F0 0020 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 2 0 BITMAP FC00 FE00 C600 C600 C600 CC00 F800 F800 CC00 C600 C700 C380 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 1 0 BITMAP 7C FC C4 C0 E0 78 1C 0E 06 8E FE 78 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 0 0 BITMAP FFC0 FFC0 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 12 0 BBX 9 12 1 0 BITMAP C180 C180 C180 C180 C180 C180 C180 C180 C180 E380 7F00 3E00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 11 0 BBX 11 12 0 0 BITMAP C060 E060 60C0 60C0 31C0 3180 3980 1B00 1B00 0F00 0E00 0E00 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 15 0 BBX 15 12 0 0 BITMAP C386 C386 638E 678C 66CC 66CC 36D8 3ED8 3C78 3C70 1C70 1C70 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 0 0 BITMAP E0C0 6180 3380 3F00 1E00 0E00 1E00 1E00 3300 7380 6180 C1C0 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 0 0 BITMAP C0C0 6180 7180 3300 3F00 1E00 0E00 0C00 0C00 0C00 0C00 0C00 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP FF80 FF80 0380 0700 0E00 0C00 1800 3800 7000 E000 FF80 FF80 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 6 0 BBX 4 15 1 -3 BITMAP F0 F0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 F0 F0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 8 0 BBX 8 15 0 -3 BITMAP C0 C0 60 60 30 30 38 18 1C 0C 0C 06 06 03 03 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 6 0 BBX 4 15 0 -3 BITMAP F0 F0 30 30 30 30 30 30 30 30 30 30 30 F0 F0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 11 0 BBX 10 11 0 2 BITMAP 0400 0C00 0C00 1E00 1E00 3F00 3300 7380 6180 E1C0 C0C0 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 9 0 BBX 7 2 1 -1 BITMAP FE FE ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 0 8 BITMAP 60 C0 E0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 3C 7E 46 3E 7E C6 C6 FF 73 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 11 0 BBX 8 12 2 0 BITMAP C0 C0 C0 DC FE E7 C3 C3 C3 C7 FE DC ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 3E 7E E0 C0 C0 C0 E2 7E 3C ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 11 0 BBX 8 12 1 0 BITMAP 03 03 03 3B 7F E3 C3 C3 C3 E7 7F 3B ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 3C 7E C3 FF FF C0 E1 7F 3E ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 6 0 BBX 6 13 1 0 BITMAP 3C 7C 60 60 F8 F8 60 60 60 60 60 60 60 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 11 0 BBX 8 12 1 -3 BITMAP 3B 7F E3 C3 C3 C3 E7 7F 3B 43 7E 7C ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 11 0 BBX 7 12 2 0 BITMAP C0 C0 C0 DC DE E6 C6 C6 C6 C6 C6 C6 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 5 0 BBX 2 12 1 0 BITMAP C0 C0 00 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 5 0 BBX 5 15 0 -3 BITMAP 18 18 00 18 18 18 18 18 18 18 18 18 18 F8 F0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 2 0 BITMAP C0 C0 C0 C7 CC DC F8 F0 D8 CC CE C7 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 5 0 BBX 2 12 1 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 16 0 BBX 12 9 2 0 BITMAP DCE0 DEF0 E730 C630 C630 C630 C630 C630 C630 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 11 0 BBX 7 9 2 0 BITMAP DC DE E6 C6 C6 C6 C6 C6 C6 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 3E00 7F00 E380 C180 C180 C180 E380 7F00 3E00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 11 0 BBX 8 12 2 -3 BITMAP DC FE E7 C3 C3 C3 C7 FE DC C0 C0 C0 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 11 0 BBX 8 12 1 -3 BITMAP 3B 7F E3 C3 C3 C3 E7 7F 3B 03 03 03 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 2 0 BITMAP D8 F8 E0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 9 0 BBX 6 9 1 0 BITMAP 78 F8 C0 F0 78 1C 8C FC 78 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 6 0 BBX 5 11 1 0 BITMAP 60 60 F8 F8 60 60 60 60 60 78 38 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 11 0 BBX 7 9 2 0 BITMAP C6 C6 C6 C6 C6 C6 CE F6 76 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 0 0 BITMAP C180 C380 6300 6300 3600 3600 3E00 1C00 1C00 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 13 0 BBX 13 9 0 0 BITMAP C718 C718 E730 6DB0 6DB0 6DE0 39E0 38E0 38C0 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP E380 7300 3600 1E00 1C00 3E00 7600 6300 C380 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 0 -3 BITMAP C180 E380 6300 6300 3600 3600 1E00 1C00 1C00 1800 3800 3000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 10 0 BBX 8 9 1 0 BITMAP FF FF 06 0C 18 30 60 FF FF ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 6 0 BBX 5 15 0 -3 BITMAP 18 38 30 30 30 30 30 C0 F0 30 30 30 30 38 18 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 4 0 BBX 2 15 1 -3 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 6 0 BBX 5 15 1 -3 BITMAP C0 E0 60 60 60 60 78 18 60 60 60 60 60 E0 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 11 0 BBX 10 4 0 3 BITMAP 70C0 FCC0 CFC0 C380 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 5 0 BBX 2 12 2 -3 BITMAP C0 C0 00 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 11 0 BBX 7 12 2 0 BITMAP 18 18 7E 5E D8 D8 D8 D8 DA 7E 3E 18 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 11 0 BBX 8 12 2 0 BITMAP 0F 1F 30 30 30 FC FC 30 30 20 7F FF ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 1 BITMAP C180 FF80 7F00 7700 6300 6300 7700 7F00 FF80 C180 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 0 0 BITMAP E1C0 7380 3F00 1E00 7F00 7F00 0C00 7F00 7F00 0C00 0C00 0C00 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 4 0 BBX 2 15 1 -3 BITMAP C0 C0 C0 C0 C0 C0 00 00 00 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 11 0 BBX 7 15 2 -3 BITMAP 3E FE C0 C0 70 7C DE C6 F6 7C 1C 06 8E FE 7C ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 10 0 BBX 5 2 3 10 BITMAP 98 98 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 15 0 BBX 14 12 0 0 BITMAP 0FC0 3FE0 7878 6718 CF8C CC0C CC0C CF8C 6718 7878 3FE0 0FC0 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 6 BITMAP 7C FC FC FC F6 76 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 2 0 BITMAP 1B 1B 36 7E EC 7E 36 1B 1B ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 11 0 BBX 10 5 0 2 BITMAP FFC0 FFC0 00C0 00C0 00C0 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 6 0 BBX 4 2 1 4 BITMAP F0 F0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 11 0 BBX 8 7 1 5 BITMAP 3C 7E FF FB FF 7E 3C ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 10 0 BBX 5 2 3 10 BITMAP F8 F8 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 1 9 BITMAP E0 A0 E0 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 0 0 BITMAP 0C00 0C00 0C00 FFC0 FFC0 0C00 0C00 0000 FFC0 FFC0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 -10 5 BITMAP E0 90 10 30 40 80 F0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 -10 5 BITMAP E0 10 30 60 10 10 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 10 0 BBX 4 2 4 10 BITMAP 70 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 11 0 BBX 7 12 2 -3 BITMAP C6 C6 C6 C6 C6 C6 CE FE F6 C0 C0 C0 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 11 0 BBX 6 15 2 -3 BITMAP 7C FC FC FC FC 7C 1C 1C 1C 1C 1C 1C 1C 1C 1C ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 11 0 BBX 2 2 4 4 BITMAP C0 C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 10 0 BBX 3 3 4 -3 BITMAP C0 60 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 6 0 BBX 2 7 -11 5 BITMAP C0 40 40 40 40 40 40 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 6 BITMAP 78 FC CC CC FC 78 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP D8 D8 6C 7E 37 7E 6C D8 D8 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 13 0 BBX 11 12 3 0 BITMAP C060 40C0 4180 4380 4700 4640 4CC0 1D40 3B40 33E0 6040 C040 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 13 0 BBX 11 12 3 0 BITMAP C060 40C0 4180 4380 4700 47C0 4D20 1C20 3860 3080 6100 C1E0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 13 0 BBX 11 12 3 0 BITMAP E060 10C0 3180 6380 1700 1640 ECC0 1D40 3B40 33E0 6040 C040 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 7 0 BBX 7 12 0 -3 BITMAP 18 18 00 18 18 38 70 E0 C0 E2 FE 3C ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 0 0 BITMAP 1C00 0600 0000 0E00 0E00 1E00 1B00 1B00 3380 3180 7F80 7FC0 60C0 C0E0 C060 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 0 0 BITMAP 0700 0C00 0000 0E00 0E00 1E00 1B00 1B00 3380 3180 7F80 7FC0 60C0 C0E0 C060 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 0 0 BITMAP 0F00 1980 0000 0E00 0E00 1E00 1B00 1B00 3380 3180 7F80 7FC0 60C0 C0E0 C060 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 0 0 BITMAP 1E80 1700 0000 0E00 0E00 1E00 1B00 1B00 3380 3180 7F80 7FC0 60C0 C0E0 C060 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 0 0 BITMAP 1300 1300 0000 0E00 0E00 1E00 1B00 1B00 3380 3180 7F80 7FC0 60C0 C0E0 C060 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 12 0 BBX 11 16 0 0 BITMAP 0E00 0A00 0E00 0000 0E00 0E00 1E00 1B00 1B00 3380 3180 7F80 7FC0 60C0 C0E0 C060 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 15 0 BBX 16 12 1 0 BITMAP 01FF 01FF 03C0 07C0 06FE 0EFE 0CC0 1FC0 3FC0 30C0 70FF E0FF ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 1 -3 BITMAP 1F80 3FC0 7040 E000 C000 C000 C000 C000 E000 7040 3FC0 1F80 0400 0600 0E00 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 9 0 BBX 7 15 2 0 BITMAP 70 18 00 FE FE C0 C0 C0 FC FC C0 C0 C0 FE FE ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 9 0 BBX 7 15 2 0 BITMAP 38 60 00 FE FE C0 C0 C0 FC FC C0 C0 C0 FE FE ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 9 0 BBX 7 15 2 0 BITMAP 78 CC 00 FE FE C0 C0 C0 FC FC C0 C0 C0 FE FE ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 9 0 BBX 7 15 2 0 BITMAP 98 98 00 FE FE C0 C0 C0 FC FC C0 C0 C0 FE FE ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 5 0 BBX 4 15 2 0 BITMAP E0 30 00 60 60 60 60 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 5 0 BBX 4 15 2 0 BITMAP 70 C0 00 60 60 60 60 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 5 0 BBX 6 15 3 0 BITMAP 78 CC 00 30 30 30 30 30 30 30 30 30 30 30 30 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 5 0 BBX 5 15 2 0 BITMAP 98 98 00 60 60 60 60 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 13 0 BBX 12 12 0 0 BITMAP 3F80 3FC0 30E0 3070 3030 FE30 FE30 3030 3030 3060 3FC0 3F80 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 13 0 BBX 9 15 2 0 BITMAP 3D00 2E00 0000 C180 E180 F180 F180 F980 D980 CD80 CF80 C780 C780 C380 C180 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 13 0 BBX 11 15 1 0 BITMAP 1C00 0600 0000 1F00 3F80 71C0 E0E0 C060 C060 C060 C060 E0E0 71C0 3F80 1F00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 13 0 BBX 11 15 1 0 BITMAP 0700 0C00 0000 1F00 3F80 71C0 E0E0 C060 C060 C060 C060 E0E0 71C0 3F80 1F00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 13 0 BBX 11 15 1 0 BITMAP 0F00 1980 0000 1F00 3F80 71C0 E0E0 C060 C060 C060 C060 E0E0 71C0 3F80 1F00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 13 0 BBX 11 15 1 0 BITMAP 1E80 1700 0000 1F00 3F80 71C0 E0E0 C060 C060 C060 C060 E0E0 71C0 3F80 1F00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 13 0 BBX 11 15 1 0 BITMAP 1300 1300 0000 1F00 3F80 71C0 E0E0 C060 C060 C060 C060 E0E0 71C0 3F80 1F00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 0 0 BITMAP C0C0 E1C0 7380 3F00 1E00 1E00 3F00 7380 E1C0 C0C0 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 13 0 BBX 11 12 1 0 BITMAP 1F60 3FC0 71C0 E3E0 C760 C660 CC60 DC60 F8E0 71C0 7F80 DF00 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 1 0 BITMAP 3800 0C00 0000 C180 C180 C180 C180 C180 C180 C180 C180 C180 E380 7F00 3E00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 1 0 BITMAP 0E00 1800 0000 C180 C180 C180 C180 C180 C180 C180 C180 C180 E380 7F00 3E00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 1 0 BITMAP 1E00 3300 0000 C180 C180 C180 C180 C180 C180 C180 C180 C180 E380 7F00 3E00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 1 0 BITMAP 2600 2600 0000 C180 C180 C180 C180 C180 C180 C180 C180 C180 E380 7F00 3E00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 0 0 BITMAP 0E00 1800 0000 C0C0 6180 7180 3300 3F00 1E00 0E00 0C00 0C00 0C00 0C00 0C00 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 0 BITMAP C0 C0 FE FF C3 C3 C3 C7 FE F8 C0 C0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 2 0 BITMAP 78 FC CC CC DC D8 DC CE C6 C3 D3 DF CE ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 0 BITMAP 70 18 00 3C 7E 46 3E 7E C6 C6 FF 73 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 0 BITMAP 1C 30 00 3C 7E 46 3E 7E C6 C6 FF 73 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 0 BITMAP 3C 66 00 3C 7E 46 3E 7E C6 C6 FF 73 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 0 BITMAP 7A 5C 00 3C 7E 46 3E 7E C6 C6 FF 73 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 0 BITMAP 4C 4C 00 3C 7E 46 3E 7E C6 C6 FF 73 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 0 BITMAP 38 28 38 00 3C 7E 46 3E 7E C6 C6 FF 73 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 14 0 BBX 12 9 1 0 BITMAP 39E0 7FE0 4630 3FF0 7FF0 C600 C710 FBF0 71E0 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 1 -3 BITMAP 3E 7E E0 C0 C0 C0 E2 7E 3C 10 18 38 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 0 BITMAP 38 0C 00 3C 7E C3 FF FF C0 E1 7F 3E ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 0 BITMAP 0E 18 00 3C 7E C3 FF FF C0 E1 7F 3E ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 0 BITMAP 3C 66 00 3C 7E C3 FF FF C0 E1 7F 3E ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 0 BITMAP 26 26 00 3C 7E C3 FF FF C0 E1 7F 3E ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 5 0 BBX 4 12 2 0 BITMAP E0 30 00 60 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 5 0 BBX 4 12 2 0 BITMAP 70 C0 00 60 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 5 0 BBX 6 12 3 0 BITMAP 78 CC 00 30 30 30 30 30 30 30 30 30 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 5 0 BBX 5 12 2 0 BITMAP 98 98 00 60 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP F8 F0 2C 3E 7E E7 C3 C3 C3 E7 7E 3C ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 11 0 BBX 7 12 2 0 BITMAP F4 B8 00 DC DE E6 C6 C6 C6 C6 C6 C6 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 3800 0C00 0000 3E00 7F00 E380 C180 C180 C180 E380 7F00 3E00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 0E00 1800 0000 3E00 7F00 E380 C180 C180 C180 E380 7F00 3E00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 1E00 3300 0000 3E00 7F00 E380 C180 C180 C180 E380 7F00 3E00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 3D00 2E00 0000 3E00 7F00 E380 C180 C180 C180 E380 7F00 3E00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 2600 2600 0000 3E00 7F00 E380 C180 C180 C180 E380 7F00 3E00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 0 0 BITMAP 0C00 0C00 0000 FFC0 FFC0 0000 0000 0C00 0C00 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 3F80 7F00 E780 CF80 DD80 F980 F380 7F00 FE00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 11 0 BBX 7 12 2 0 BITMAP 70 18 00 C6 C6 C6 C6 C6 C6 CE F6 76 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 11 0 BBX 7 12 2 0 BITMAP 1C 30 00 C6 C6 C6 C6 C6 C6 CE F6 76 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 11 0 BBX 7 12 2 0 BITMAP 3C 66 00 C6 C6 C6 C6 C6 C6 CE F6 76 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 11 0 BBX 7 12 2 0 BITMAP 4C 4C 00 C6 C6 C6 C6 C6 C6 CE F6 76 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 9 0 BBX 9 15 0 -3 BITMAP 0E00 1800 0000 C180 E380 6300 6300 3600 3600 1E00 1C00 1C00 1800 3800 3000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 11 0 BBX 8 15 2 -3 BITMAP C0 C0 C0 DC FE E7 C3 C3 C3 C7 FE DC C0 C0 C0 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 9 0 BBX 9 15 0 -3 BITMAP 2600 2600 0000 C180 E380 6300 6300 3600 3600 1E00 1C00 1C00 1800 3800 3000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 1 0 BITMAP 3F 7F 63 63 F3 F3 63 63 63 63 63 63 63 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 2 1 4 BITMAP FE FE ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 15 1 -3 BITMAP 18 18 18 18 FF FF 18 18 18 18 18 18 18 18 18 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 15 1 0 BITMAP 6600 3C00 0000 FF80 FF80 0380 0700 0E00 0C00 1800 3800 7000 E000 FF80 FF80 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 13 9 1 0 BITMAP 3CF0 7DF0 E718 C3F8 C3F8 C300 E788 7DF8 3CF0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 0 0 BITMAP 1300 1300 0000 C0C0 6180 7180 3300 3F00 1E00 0E00 0C00 0C00 0C00 0C00 0C00 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 2 9 1 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 6 12 0 0 BITMAP 30 30 30 34 3C 70 F0 30 30 30 30 30 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 10 12 0 0 BITMAP 3000 3000 3000 3400 3C00 7000 F000 3000 3000 3000 3FC0 3FC0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 15 1 -3 BITMAP 18 18 18 18 FF FF 18 18 18 FF FF 18 18 18 18 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 1 0 BITMAP 38 7B 63 60 FF FF 63 63 63 63 63 63 63 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP C0 C0 60 70 38 70 60 C0 C0 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 15 12 1 0 BITMAP 1EFE 3FFE 71C0 E0C0 C0C0 C0FC C0FC C0C0 E0C0 71C0 3FFE 1EFE ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 15 2 1 4 BITMAP FFFE FFFE ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 2 2 10 BITMAP CC 78 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 3 2 4 -3 BITMAP C0 E0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 5 2 3 10 BITMAP 78 E0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 2 0 BITMAP 18 18 30 70 E0 70 30 18 18 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 2 2 4 10 BITMAP C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 2 2 10 BITMAP 84 78 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 5 5 3 3 BITMAP F8 F8 F8 F8 F8 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 2 2 10 BITMAP F4 B8 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 2 2 10 BITMAP 78 CC ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 4 1 8 BITMAP 58 F0 F8 F8 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 2 4 1 8 BITMAP C0 C0 C0 C0 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 6 12 1 0 BITMAP CC 78 00 78 F8 C0 F0 78 1C 8C FC 78 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 3 3 4 10 BITMAP E0 A0 E0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 2 5 1 -3 BITMAP C0 C0 C0 C0 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 15 2 -3 BITMAP 0F 1F 18 30 30 30 F8 F8 30 30 60 60 60 C0 C0 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 13 6 0 6 BITMAP FBB8 FBB8 33F8 33F8 33F8 3358 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 11 12 -4 0 BITMAP 0060 00C0 0180 0380 0700 0600 0C00 1C00 3800 3000 6000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 4 2 3 10 BITMAP E0 30 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 16 12 2 0 BITMAP 3870 7CC0 6DC0 7D80 3B00 07CE 0FFF 0F7B 1B7B 3B7B 33FF E1CE ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 13 2 2 0 BITMAP C318 C318 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 4 1 8 BITMAP F8 F8 78 D0 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 15 1 0 BITMAP 66 3C 00 7C FC C4 C0 E0 78 1C 0E 06 8E FE 78 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 -3 BITMAP F8 F8 78 78 D0 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 66 3C 00 FF FF 06 0C 18 30 60 FF FF ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/luRS14.bdf100644 1750 1750 76501 5413747524 15056 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Medium-R-Normal-Sans-20-140-100-100-P-114-ISO8859-1 SIZE 14 100 100 FONTBOUNDINGBOX 33 22 -13 -4 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 20 POINT_SIZE 140 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 114 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 18 FONT_DESCENT 5 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 6 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 6 0 BBX 2 14 2 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 00 00 C0 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 7 0 BBX 5 5 1 9 BITMAP D8 D8 D8 D8 D8 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 0 0 BITMAP 06E0 0EC0 0CC0 0CC0 7FF0 7FF0 1980 1980 1980 FFE0 FFE0 3300 3300 7600 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 13 0 BBX 8 18 2 -2 BITMAP 18 18 7F FD D8 D8 D8 78 38 1C 1E 1B 1B 1B FF 7E 1C 18 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 13 0 BBX 13 14 0 0 BITMAP 7838 FC30 CC60 CCE0 FDC0 7B80 03F0 06F0 0F98 1D98 3998 3198 60F0 E0F0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 0 0 BITMAP 0F80 1FC0 18C0 18C0 1BC0 1F80 7E00 6718 C398 C1D8 E0F0 F0E0 7FE0 1F38 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 9 BITMAP E0 E0 60 60 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 7 0 BBX 5 17 1 -3 BITMAP 08 18 30 60 60 C0 C0 C0 C0 C0 C0 C0 60 60 30 18 08 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 7 0 BBX 5 17 1 -3 BITMAP 80 C0 60 30 30 18 18 18 18 18 18 18 30 30 60 C0 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 10 0 BBX 8 7 1 7 BITMAP 18 18 DB 24 18 64 26 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 13 0 BBX 12 12 0 0 BITMAP 0600 0600 0600 0600 0600 FFF0 FFF0 0600 0600 0600 0600 0600 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 6 0 BBX 3 7 2 -4 BITMAP E0 E0 E0 60 60 60 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 13 0 BBX 12 2 0 5 BITMAP FFF0 FFF0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 6 0 BBX 2 2 2 0 BITMAP C0 C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 10 0 BBX 10 17 0 -3 BITMAP 00C0 01C0 0180 0380 0300 0700 0600 0E00 0C00 1C00 1800 3800 3000 7000 6000 E000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 13 0 BBX 10 14 1 0 BITMAP 1E00 3F00 7380 6180 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 6180 7380 3F00 1E00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 13 0 BBX 4 14 3 0 BITMAP F0 F0 30 30 30 30 30 30 30 30 30 30 30 30 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 13 0 BBX 9 14 1 0 BITMAP 3E00 FF00 C380 0180 0180 0180 0700 0F00 1C00 3800 7000 E000 FF80 FF80 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 13 0 BBX 8 14 2 0 BITMAP 7C FE 87 03 03 06 78 7E 07 03 03 87 FE FC ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 1 0 BITMAP 0380 0780 0780 0D80 1D80 3980 7180 E180 FFE0 FFE0 0180 0180 0180 0180 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 13 0 BBX 8 14 2 0 BITMAP FF FF C0 C0 C0 F8 FE 07 03 03 03 87 FE F8 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 13 0 BBX 10 14 1 0 BITMAP 1F80 3F80 7080 6000 C000 CF00 DF80 E1C0 C0C0 C0C0 40C0 6180 3F80 1E00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 13 0 BBX 9 14 2 0 BITMAP FF80 FF80 0380 0300 0700 0600 0C00 1C00 1800 3800 3000 7000 6000 6000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 13 0 BBX 10 14 2 0 BITMAP 1F00 3FC0 71C0 60C0 60C0 3900 3E00 7F80 E1C0 C0C0 C0C0 E1C0 7F80 3F00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 13 0 BBX 10 14 1 0 BITMAP 3E00 7F00 E180 C080 C0C0 C0C0 E1C0 7EC0 3CC0 00C0 0180 4380 7F00 7C00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 6 0 BBX 2 11 2 0 BITMAP C0 C0 00 00 00 00 00 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 6 0 BBX 2 15 2 -4 BITMAP C0 C0 00 00 00 00 00 00 00 C0 C0 C0 C0 C0 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 13 0 BBX 13 12 1 0 BITMAP 0018 0078 01F0 07C0 1F00 FC00 7C00 1F00 07C0 01F0 0078 0018 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 13 0 BBX 12 6 0 3 BITMAP FFF0 FFF0 0000 0000 FFF0 FFF0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 13 0 BBX 13 12 0 0 BITMAP C000 F000 7C00 1F00 07C0 01F0 01F8 07C0 1F00 7C00 F000 C000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 8 0 BBX 8 14 0 0 BITMAP 7C FE 87 03 07 0E 1C 38 30 30 30 00 30 30 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 17 0 BBX 15 14 3 0 BITMAP 03E0 0FF8 1C1C 31EE 63C6 6646 CC86 CD86 CDEC CE7C EC78 7820 3FE0 0FC0 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 0 0 BITMAP 0700 0700 0F80 0D80 0D80 18C0 18C0 30E0 3FE0 3FE0 6030 6030 E030 C018 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 0 BITMAP FC00 FE00 C300 C300 C300 C600 FC00 FE00 C380 C180 C180 C380 FF00 FE00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 14 0 BBX 12 14 1 0 BITMAP 0FE0 3FF0 7810 6000 E000 C000 C000 C000 C000 E000 6000 7810 3FF0 0FC0 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 15 0 BBX 12 14 2 0 BITMAP FF00 FFC0 C1E0 C060 C030 C030 C030 C030 C030 C030 C060 C0E0 FFC0 FF00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 11 0 BBX 8 14 2 0 BITMAP FF FF C0 C0 C0 C0 FE FE C0 C0 C0 C0 FF FF ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 11 0 BBX 8 14 2 0 BITMAP FF FF C0 C0 C0 C0 FE FE C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 14 0 BBX 12 14 1 0 BITMAP 0FE0 3FF0 7810 6000 E000 C000 C000 C030 C030 E030 6030 7830 3FF0 0FE0 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 15 0 BBX 11 14 2 0 BITMAP C060 C060 C060 C060 C060 C060 FFE0 FFE0 C060 C060 C060 C060 C060 C060 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 6 0 BBX 2 14 2 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 6 0 BBX 6 17 -1 -3 BITMAP 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C F8 F0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 2 0 BITMAP C1C0 C380 C700 C600 CC00 DC00 F800 F800 DC00 CE00 C700 C380 C1C0 C0E0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 2 0 BITMAP C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 FF80 FF80 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 17 0 BBX 13 14 2 0 BITMAP E038 E038 F078 F078 F878 D8D8 D8D8 DCD8 CD98 CD98 CF98 C718 C718 C018 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 15 0 BBX 11 14 2 0 BITMAP E060 E060 F060 F060 D860 DC60 CC60 C660 C760 C360 C1E0 C1E0 C0E0 C060 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 1 0 BITMAP 0FC0 3FF0 7878 6018 E01C C00C C00C C00C C00C E01C 6018 7878 3FF0 0FC0 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 2 0 BITMAP FE00 FF00 C380 C180 C180 C180 C700 FF00 FC00 C000 C000 C000 C000 C000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 1 -3 BITMAP 0FC0 3FF0 7878 6018 E01C C00C C00C C00C C00C E01C 6018 7878 3FF0 0FE0 0078 003E 000C ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 2 0 BITMAP FE00 FF00 C380 C180 C180 C100 C700 FC00 FE00 C600 C700 C380 C1C0 C0E0 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP 3F00 7F00 E100 C000 C000 7000 3C00 0F00 0380 0180 0180 8380 FF00 7E00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 0 0 BITMAP FFF0 FFF0 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 14 0 BBX 10 14 2 0 BITMAP C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 E1C0 7F80 3F00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 13 0 BBX 13 14 0 0 BITMAP C018 6038 6030 7030 3060 3060 18E0 18C0 1CC0 0D80 0D80 0780 0700 0700 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 17 0 BBX 17 14 0 0 BITMAP C1C180 C1C180 61C380 61C300 636300 736300 336600 336600 363600 3E3C00 1E3C00 1E3C00 1C1C00 0C1800 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 0 0 BITMAP E070 7060 30C0 19C0 1D80 0F00 0700 0F00 0F00 1980 39C0 70C0 6060 C070 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP E030 6060 70E0 30C0 1980 1F80 0F00 0700 0600 0600 0600 0600 0600 0600 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP FFC0 FFC0 0180 0380 0300 0600 0E00 1C00 1800 3000 7000 E000 FFC0 FFC0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 7 0 BBX 4 17 2 -3 BITMAP F0 F0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 F0 F0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 10 0 BBX 10 17 0 -3 BITMAP C000 E000 6000 7000 3000 3800 1800 1C00 0C00 0E00 0600 0700 0300 0380 0180 01C0 00C0 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 7 0 BBX 4 17 1 -3 BITMAP F0 F0 30 30 30 30 30 30 30 30 30 30 30 30 30 F0 F0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 0 2 BITMAP 0200 0600 0600 0F00 0F00 1F80 1980 39C0 30C0 70E0 6060 E070 C030 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 10 0 BBX 8 2 1 -2 BITMAP FF FF ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 9 BITMAP 60 C0 C0 E0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 11 0 BBX 10 11 1 0 BITMAP 3E00 7F00 4300 0300 3F00 7F00 E300 C300 C700 FDC0 79C0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 13 0 BBX 10 14 2 0 BITMAP C000 C000 C000 CF00 DF80 E1C0 C0C0 C0C0 C0C0 C0C0 C1C0 E180 FF80 DE00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 1F 7F 60 C0 C0 C0 C0 C0 61 7F 1E ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 13 0 BBX 10 14 1 0 BITMAP 00C0 00C0 00C0 1EC0 7FC0 61C0 E0C0 C0C0 C0C0 C0C0 C0C0 E1C0 7EC0 3CC0 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 11 0 BBX 9 11 1 0 BITMAP 1E00 7F00 6100 C180 FF80 FF80 C000 E000 7080 7F80 1F00 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 7 0 BBX 8 16 0 0 BITMAP 0F 1F 30 30 30 FE FE 30 30 30 30 30 30 30 30 30 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 1 -4 BITMAP 1EC0 7FC0 61C0 E0C0 C0C0 C0C0 C0C0 C0C0 61C0 7EC0 3CC0 00C0 4180 7F80 3E00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 0 BITMAP C000 C000 C000 CF00 DF80 F180 E180 C180 C180 C180 C180 C180 C180 C180 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 6 0 BBX 2 14 2 0 BITMAP C0 C0 00 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 6 0 BBX 6 18 -1 -4 BITMAP 0C 0C 00 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 8C F8 F0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 0 BITMAP C000 C000 C000 C700 C600 CE00 DC00 F800 F800 D800 CC00 CE00 C700 C380 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 6 0 BBX 2 14 2 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 19 0 BBX 14 11 2 0 BITMAP CE38 DF7C E38C C30C C30C C30C C30C C30C C30C C30C C30C ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 12 0 BBX 9 11 2 0 BITMAP CF00 DF80 F180 E180 C180 C180 C180 C180 C180 C180 C180 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 12 0 BBX 10 11 1 0 BITMAP 1E00 7F80 6180 C0C0 C0C0 C0C0 C0C0 C0C0 6180 7F80 1E00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 13 0 BBX 10 15 2 -4 BITMAP CF00 DF80 E1C0 C0C0 C0C0 C0C0 C0C0 C1C0 E180 FF80 CE00 C000 C000 C000 C000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 13 0 BBX 10 15 1 -4 BITMAP 1EC0 7FC0 61C0 E0C0 C0C0 C0C0 C0C0 C0C0 E1C0 7EC0 3CC0 00C0 00C0 00C0 00C0 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 2 0 BITMAP CC DC F0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 10 0 BBX 7 11 2 0 BITMAP 7C FC C0 C0 F0 7C 1E 06 86 FE 7C ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 7 0 BBX 6 13 1 0 BITMAP 60 60 FC FC 60 60 60 60 60 60 60 7C 3C ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 12 0 BBX 9 11 2 0 BITMAP C180 C180 C180 C180 C180 C180 C180 C380 C780 FD80 7980 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 10 0 BBX 10 11 0 0 BITMAP C0C0 E1C0 6180 6180 7300 3300 3300 1E00 1E00 1E00 0C00 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 15 0 BBX 15 11 0 0 BITMAP C386 C386 638C 66CC 66CC 66D8 36D8 3C78 3C78 3C70 1870 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 12 0 BBX 11 11 1 0 BITMAP E0E0 71C0 3980 1B00 0F00 0E00 1F00 3B00 3180 61C0 E0E0 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 10 0 BBX 10 15 0 -4 BITMAP C0C0 E1C0 6180 6180 3300 3300 3300 1E00 1E00 1E00 0C00 0C00 1800 1800 3800 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 11 0 BBX 9 11 1 0 BITMAP FF80 FF80 0300 0600 0E00 1C00 3800 7000 6000 FF80 FF80 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 7 0 BBX 5 17 0 -3 BITMAP 18 38 30 30 30 30 30 20 C0 E0 30 30 30 30 30 38 18 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 5 0 BBX 2 17 2 -3 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 7 0 BBX 5 17 1 -3 BITMAP C0 E0 60 60 60 60 60 38 18 20 60 60 60 60 60 E0 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 13 0 BBX 12 4 0 4 BITMAP 7830 FE30 C7E0 C1E0 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 6 0 BBX 2 15 2 -4 BITMAP C0 C0 00 00 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 13 0 BBX 8 14 2 0 BITMAP 18 18 3F 7F D8 D8 D8 D8 D8 D9 7F 3E 18 18 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 13 0 BBX 8 14 3 0 BITMAP 0F 1F 30 30 30 30 FC FC 30 30 30 20 FF FF ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 13 0 BBX 11 12 1 1 BITMAP C060 EEE0 7FC0 3180 60C0 60C0 60C0 60C0 3180 7FC0 EEE0 C060 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 0 0 BITMAP E070 70E0 38C0 1980 0F80 0700 3FC0 3FC0 0600 3FC0 3FC0 0600 0600 0600 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 5 0 BBX 2 17 2 -3 BITMAP C0 C0 C0 C0 C0 C0 C0 00 00 00 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 13 0 BBX 8 18 2 -4 BITMAP 3E 7F E1 C0 C0 70 7C CE C3 E3 73 3E 0E 03 03 87 FF 7C ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 12 0 BBX 6 2 3 12 BITMAP CC CC ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 17 0 BBX 15 14 1 0 BITMAP 07C0 1FF0 3838 739C E78C CE86 CC06 CC06 CE86 E78C 739C 3838 1FF0 07C0 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 0 7 BITMAP 7C 7E 7E FE C6 FF 73 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 1 BITMAP 1980 3B80 7700 EE00 CC00 E600 7700 3B80 1980 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 13 0 BBX 12 6 0 3 BITMAP FFF0 FFF0 0030 0030 0030 0030 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 1 6 BITMAP F0 F0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 13 0 BBX 8 8 2 6 BITMAP 3C 7E FF FF FF FF 7E 3C ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 12 0 BBX 6 2 3 12 BITMAP FC FC ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 6 0 BBX 3 3 1 11 BITMAP E0 A0 E0 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 13 0 BBX 12 12 0 0 BITMAP 0600 0600 0600 FFF0 FFF0 0600 0600 0600 0600 0000 FFF0 FFF0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 8 0 BBX 5 9 -12 5 BITMAP 70 88 08 08 10 20 40 80 F8 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 8 0 BBX 5 9 -12 5 BITMAP F0 08 08 08 70 08 08 08 F0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 12 0 BBX 4 3 5 11 BITMAP 30 60 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 13 0 BBX 9 14 2 -3 BITMAP C180 C180 C180 C180 C180 C180 C180 C180 C380 FD80 FD80 C000 C000 C000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 13 0 BBX 8 17 2 -3 BITMAP 7F FF FF FF FF 7F 3F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 13 0 BBX 2 2 5 6 BITMAP C0 C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 12 0 BBX 3 5 5 -4 BITMAP 40 C0 60 60 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 8 0 BBX 2 9 -13 5 BITMAP C0 40 40 40 40 40 40 40 40 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 7 BITMAP 38 7C C6 C6 C6 7C 38 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 1 BITMAP CC00 EE00 7700 3B80 1980 3B80 7700 EE00 CC00 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 5 0 BITMAP 6038 2030 2060 20E0 21C0 2398 2318 2628 2E48 1CC8 38FC 3008 6008 E008 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 16 0 BBX 13 14 5 0 BITMAP 6038 2030 2060 20E0 21C0 23F0 2388 2608 2E08 1C10 3820 3040 6080 E0F8 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 5 0 BITMAP F038 0830 0860 08E0 71C0 0B98 0B18 0E28 FE48 1CC8 38FC 3008 6008 E008 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 8 0 BBX 8 15 0 -4 BITMAP 0C 0C 00 00 0C 0C 1C 38 70 E0 C0 C0 E1 7F 3E ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 0 0 BITMAP 0C00 0600 0300 0000 0700 0700 0F80 0D80 0D80 18C0 18C0 30E0 3FE0 3FE0 6030 6030 E030 C018 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 0 0 BITMAP 0180 0300 0600 0000 0700 0700 0F80 0D80 0D80 18C0 18C0 30E0 3FE0 3FE0 6030 6030 E030 C018 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 0 0 BITMAP 0700 0D80 18C0 0000 0700 0700 0F80 0D80 0D80 18C0 18C0 30E0 3FE0 3FE0 6030 6030 E030 C018 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 0 0 BITMAP 1E40 1380 0000 0700 0700 0F80 0D80 0D80 18C0 18C0 30E0 3FE0 3FE0 6030 6030 E030 C018 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 0 0 BITMAP 0CC0 0CC0 0000 0700 0700 0F80 0D80 0D80 18C0 18C0 30E0 3FE0 3FE0 6030 6030 E030 C018 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 0 0 BITMAP 0700 0500 0700 0000 0700 0700 0F80 0D80 0D80 18C0 18C0 30E0 3FE0 3FE0 6030 6030 E030 C018 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 18 0 BBX 17 14 0 0 BITMAP 00FF80 01FF80 03E000 03E000 076000 067F00 0E7F00 0C6000 1FE000 3FE000 306000 706000 607F80 C07F80 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 1 -4 BITMAP 0FE0 3FF0 7810 6000 E000 C000 C000 C000 C000 E000 6000 7810 3FF0 0FC0 0200 0300 0300 0600 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 11 0 BBX 8 18 2 0 BITMAP 60 30 18 00 FF FF C0 C0 C0 C0 FE FE C0 C0 C0 C0 FF FF ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 11 0 BBX 8 18 2 0 BITMAP 0C 18 30 00 FF FF C0 C0 C0 C0 FE FE C0 C0 C0 C0 FF FF ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 11 0 BBX 8 18 2 0 BITMAP 38 6C C6 00 FF FF C0 C0 C0 C0 FE FE C0 C0 C0 C0 FF FF ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 11 0 BBX 8 17 2 0 BITMAP CC CC 00 FF FF C0 C0 C0 C0 FE FE C0 C0 C0 C0 FF FF ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 6 0 BBX 4 18 3 0 BITMAP C0 60 30 00 60 60 60 60 60 60 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 6 0 BBX 4 18 2 0 BITMAP 30 60 C0 00 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 6 0 BBX 7 18 4 0 BITMAP 38 6C C6 00 30 30 30 30 30 30 30 30 30 30 30 30 30 30 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 6 0 BBX 6 17 4 0 BITMAP CC CC 00 30 30 30 30 30 30 30 30 30 30 30 30 30 30 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 15 0 BBX 14 14 0 0 BITMAP 3FC0 3FF0 3078 3018 300C 300C FE0C FE0C 300C 300C 3018 3038 3FF0 3FC0 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 15 0 BBX 11 17 2 0 BITMAP 3C80 2700 0000 E060 E060 F060 F060 D860 DC60 CC60 C660 C760 C360 C1E0 C1E0 C0E0 C060 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 1 0 BITMAP 0600 0300 0180 0000 0FC0 3FF0 7878 6018 E01C C00C C00C C00C C00C E01C 6018 7878 3FF0 0FC0 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 1 0 BITMAP 00C0 0180 0300 0000 0FC0 3FF0 7878 6018 E01C C00C C00C C00C C00C E01C 6018 7878 3FF0 0FC0 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 1 0 BITMAP 0380 06C0 0C60 0000 0FC0 3FF0 7878 6018 E01C C00C C00C C00C C00C E01C 6018 7878 3FF0 0FC0 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 1 0 BITMAP 0F20 09C0 0000 0FC0 3FF0 7878 6018 E01C C00C C00C C00C C00C E01C 6018 7878 3FF0 0FC0 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 1 0 BITMAP 0CC0 0CC0 0000 0FC0 3FF0 7878 6018 E01C C00C C00C C00C C00C E01C 6018 7878 3FF0 0FC0 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 13 0 BBX 12 12 0 0 BITMAP 4020 E070 70E0 39C0 1F80 0F00 0F00 1F80 39C0 70E0 E070 4020 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 1 0 BITMAP 0FDC 3FF8 7878 6078 E0DC C1CC C38C C70C CE0C EC1C 7818 7878 7FF0 EFC0 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 14 0 BBX 10 18 2 0 BITMAP 1800 0C00 0600 0000 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 E1C0 7F80 3F00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 14 0 BBX 10 18 2 0 BITMAP 0600 0C00 1800 0000 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 E1C0 7F80 3F00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 14 0 BBX 10 18 2 0 BITMAP 0E00 1B00 3180 0000 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 E1C0 7F80 3F00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 14 0 BBX 10 17 2 0 BITMAP 3300 3300 0000 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 E1C0 7F80 3F00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 12 0 BBX 12 18 0 0 BITMAP 0180 0300 0600 0000 E030 6060 70E0 30C0 1980 1F80 0F00 0700 0600 0600 0600 0600 0600 0600 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 2 0 BITMAP C000 C000 FE00 FF00 C380 C180 C180 C180 C380 C700 FE00 FC00 C000 C000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 12 0 BBX 10 16 2 0 BITMAP 7C00 FF00 E300 C300 C700 C600 CC00 CC00 CE00 C700 C380 C0C0 C0C0 D0C0 DFC0 CF80 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 1 0 BITMAP 3000 1800 0C00 0000 3E00 7F00 4300 0300 3F00 7F00 E300 C300 C700 FDC0 79C0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 1 0 BITMAP 0600 0C00 1800 0000 3E00 7F00 4300 0300 3F00 7F00 E300 C300 C700 FDC0 79C0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 1 0 BITMAP 1C00 3600 6300 0000 3E00 7F00 4300 0300 3F00 7F00 E300 C300 C700 FDC0 79C0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 7900 4E00 0000 3E00 7F00 4300 0300 3F00 7F00 E300 C300 C700 FDC0 79C0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 3300 3300 0000 3E00 7F00 4300 0300 3F00 7F00 E300 C300 C700 FDC0 79C0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 1 0 BITMAP 1C00 1400 1C00 0000 3E00 7F00 4300 0300 3F00 7F00 E300 C300 C700 FDC0 79C0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 17 0 BBX 14 11 1 0 BITMAP 3CF0 7FF8 438C 030C 3FFC 7FFC E300 C300 C584 F9FC 70F8 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 10 0 BBX 8 15 1 -4 BITMAP 1F 7F 60 C0 C0 C0 C0 C0 61 7F 1E 08 0C 0C 18 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 11 0 BBX 9 15 1 0 BITMAP 3000 1800 0C00 0000 1E00 7F00 6100 C180 FF80 FF80 C000 E000 7080 7F80 1F00 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 11 0 BBX 9 15 1 0 BITMAP 0600 0C00 1800 0000 1E00 7F00 6100 C180 FF80 FF80 C000 E000 7080 7F80 1F00 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 11 0 BBX 9 15 1 0 BITMAP 1C00 3600 6300 0000 1E00 7F00 6100 C180 FF80 FF80 C000 E000 7080 7F80 1F00 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP 3300 3300 0000 1E00 7F00 6100 C180 FF80 FF80 C000 E000 7080 7F80 1F00 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 6 0 BBX 4 15 3 0 BITMAP C0 60 30 00 60 60 60 60 60 60 60 60 60 60 60 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 6 0 BBX 4 15 2 0 BITMAP 30 60 C0 00 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 6 0 BBX 7 15 4 0 BITMAP 38 6C C6 00 30 30 30 30 30 30 30 30 30 30 30 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 6 0 BBX 6 14 4 0 BITMAP CC CC 00 30 30 30 30 30 30 30 30 30 30 30 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP FE00 FC00 2200 1F00 7F80 6180 C0C0 C0C0 C0C0 C0C0 C0C0 6180 7F80 1E00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 0 BITMAP 7900 4E00 0000 CF00 DF80 F180 E180 C180 C180 C180 C180 C180 C180 C180 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 1 0 BITMAP 1800 0C00 0600 0000 1E00 7F80 6180 C0C0 C0C0 C0C0 C0C0 C0C0 6180 7F80 1E00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 1 0 BITMAP 0300 0600 0C00 0000 1E00 7F80 6180 C0C0 C0C0 C0C0 C0C0 C0C0 6180 7F80 1E00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 1 0 BITMAP 0E00 1B00 3180 0000 1E00 7F80 6180 C0C0 C0C0 C0C0 C0C0 C0C0 6180 7F80 1E00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP 3C80 2700 0000 1E00 7F80 6180 C0C0 C0C0 C0C0 C0C0 C0C0 6180 7F80 1E00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP 3300 3300 0000 1E00 7F80 6180 C0C0 C0C0 C0C0 C0C0 C0C0 6180 7F80 1E00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 13 0 BBX 12 11 0 0 BITMAP 0600 0600 0000 0000 0000 FFF0 FFF0 0000 0000 0600 0600 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 12 0 BBX 10 11 1 0 BITMAP 1FC0 7F80 6380 C7C0 CEC0 CCC0 DCC0 F8C0 7180 7F80 FE00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 2 0 BITMAP 3000 1800 0C00 0000 C180 C180 C180 C180 C180 C180 C180 C380 C780 FD80 7980 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 2 0 BITMAP 0600 0C00 1800 0000 C180 C180 C180 C180 C180 C180 C180 C380 C780 FD80 7980 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 2 0 BITMAP 1C00 3600 6300 0000 C180 C180 C180 C180 C180 C180 C180 C380 C780 FD80 7980 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 0 BITMAP 3300 3300 0000 C180 C180 C180 C180 C180 C180 C180 C380 C780 FD80 7980 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 10 0 BBX 10 19 0 -4 BITMAP 0600 0C00 1800 0000 C0C0 E1C0 6180 6180 3300 3300 3300 1E00 1E00 1E00 0C00 0C00 1800 1800 3800 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 13 0 BBX 10 17 2 -4 BITMAP C000 C000 CF00 DF80 E1C0 C0C0 C0C0 C0C0 C0C0 C1C0 E180 FF80 DE00 C000 C000 C000 C000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 10 0 BBX 10 18 0 -4 BITMAP 3300 3300 0000 C0C0 E1C0 6180 6180 3300 3300 3300 1E00 1E00 1E00 0C00 0C00 1800 1800 3800 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 11 16 0 0 BITMAP 1FE0 3FE0 3060 3060 3060 FE60 FE60 3060 3060 3060 3060 3060 3060 3060 3060 3060 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 2 1 5 BITMAP FF FF ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 8 17 2 -3 BITMAP 18 18 18 18 18 FF FF 18 18 18 18 18 18 18 18 18 18 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 18 1 0 BITMAP 3180 1B00 0E00 0000 FFC0 FFC0 0180 0380 0300 0600 0E00 1C00 1800 3000 7000 E000 FFC0 FFC0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 17 11 1 0 BITMAP 1E1E00 7F3F00 61E180 E0C180 C0FF80 C0FF80 C0C000 E0E000 61F080 7F3F80 1E1F00 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 17 0 0 BITMAP 1980 1980 0000 E030 6060 70E0 30C0 1980 1F80 0F00 0700 0600 0600 0600 0600 0600 0600 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 2 11 2 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 14 0 0 BITMAP 30 30 30 34 3C 38 70 B0 30 30 30 30 30 30 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 0 BITMAP 3000 3000 3000 3000 3400 3C00 3800 F000 B000 3000 3000 3000 3FE0 3FE0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 8 17 2 -3 BITMAP 18 18 18 18 FF FF 18 18 18 18 FF FF 18 18 18 18 18 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 11 16 0 0 BITMAP 0F00 1F00 3060 3060 3000 FFE0 FFE0 3060 3060 3060 3060 3060 3060 3060 3060 3060 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 1 BITMAP C0 E0 70 38 18 38 70 E0 C0 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 18 14 1 0 BITMAP 0FBFC0 3FFFC0 707000 603000 E03000 C03000 C03F80 C03F80 C03000 E03000 603000 707000 3FFFC0 0FBFC0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 18 2 1 5 BITMAP FFFFC0 FFFFC0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 3 3 11 BITMAP C6 6C 38 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 3 3 5 -3 BITMAP 40 80 E0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 6 3 4 11 BITMAP 3C 58 F0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 1 BITMAP 18 38 70 E0 C0 E0 70 38 18 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 2 2 5 12 BITMAP C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 3 3 11 BITMAP 82 7C 38 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 6 6 3 4 BITMAP FC FC FC FC FC FC ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 2 3 12 BITMAP F2 9C ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 3 3 11 BITMAP 38 6C C6 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 4 1 10 BITMAP 4C D8 DC DC ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 2 4 1 10 BITMAP C0 C0 C0 C0 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 7 15 2 0 BITMAP C6 6C 38 00 7C FC C0 C0 F0 7C 1E 06 86 FE 7C ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 3 3 5 13 BITMAP E0 A0 E0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 2 6 1 -3 BITMAP C0 C0 C0 C0 C0 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 10 17 2 -3 BITMAP 07C0 0FC0 1C00 1800 1000 3000 FC00 FC00 3000 3000 6000 6000 6000 6000 6000 C000 C000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 15 7 0 7 BITMAP FDCE FDCE 31FE 31FE 31BE 31B6 3186 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 13 14 -5 0 BITMAP 0038 0030 0060 00E0 01C0 0380 0300 0600 0E00 1C00 3800 3000 6000 E000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 4 3 4 11 BITMAP C0 60 30 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 20 14 0 0 BITMAP 783800 FC3000 CC6000 CCE000 FDC000 7B8000 03F1E0 06F1E0 0F9B30 1D9B30 399B30 319B30 60F1E0 E0F1E0 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 15 2 3 0 BITMAP C186 C186 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 4 1 10 BITMAP EC EC 6C C8 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 18 1 0 BITMAP 6300 3600 1C00 0000 3F00 7F00 E100 C000 C000 7000 3C00 0F00 0380 0180 0180 8380 FF00 7E00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 -4 BITMAP EC EC 6C 6C 6C CC 88 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 15 1 0 BITMAP 6300 3600 1C00 0000 FF80 FF80 0300 0600 0E00 1C00 3800 7000 6000 FF80 FF80 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/luRS18.bdf100644 1750 1750 110770 5413747524 15077 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Medium-R-Normal-Sans-25-180-100-100-P-142-ISO8859-1 SIZE 18 100 100 FONTBOUNDINGBOX 42 28 -16 -5 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 25 POINT_SIZE 180 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 142 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 23 FONT_DESCENT 6 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 8 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 8 0 BBX 2 18 3 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 00 00 C0 C0 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 9 0 BBX 6 6 2 12 BITMAP CC CC CC CC CC CC ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 0 0 BITMAP 0318 0318 0330 0630 0630 7FFE 7FFE 0660 0C60 0C60 0CC0 FFFC FFFC 18C0 19C0 1980 3180 3180 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 16 0 BBX 11 22 2 -2 BITMAP 0600 0600 1FC0 3FE0 7600 6600 6600 6600 3600 3E00 0E00 0780 07C0 06E0 0660 0660 0660 86E0 FFC0 7F80 0600 0600 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 17 0 BBX 17 18 0 0 BITMAP 3C0380 7E0700 E70600 C30C00 C31800 E73800 7E7000 3CE000 00DE00 01BF00 03F380 076180 0E6180 0C6180 186180 307380 703F00 E01E00 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 17 0 BBX 16 18 1 0 BITMAP 03C0 07E0 0E30 0E30 0E30 0E70 07E0 0FC0 3F87 7387 E1C7 E0E6 E066 E07E F03C 7838 3FEC 0F8F ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 6 0 BBX 3 6 1 12 BITMAP E0 E0 E0 60 60 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 8 0 BBX 6 22 1 -4 BITMAP 04 0C 18 38 30 70 60 E0 E0 E0 E0 E0 E0 E0 E0 60 70 30 38 18 0C 04 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 8 0 BBX 6 22 1 -4 BITMAP 80 C0 60 70 30 38 18 1C 1C 1C 1C 1C 1C 1C 1C 18 38 30 70 60 C0 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 12 0 BBX 9 9 2 9 BITMAP 0800 0800 4880 EB80 3600 1400 3600 6200 2300 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 16 0 BBX 14 15 1 0 BITMAP 0300 0300 0300 0300 0300 0300 FFFC FFFC 0300 0300 0300 0300 0300 0300 0300 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 8 0 BBX 3 8 2 -5 BITMAP E0 E0 E0 60 60 60 C0 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 16 0 BBX 14 2 1 6 BITMAP FFFC FFFC ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 8 0 BBX 3 3 2 0 BITMAP E0 E0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 12 0 BBX 12 22 0 -4 BITMAP 0030 0060 0060 00E0 00C0 01C0 0180 0180 0300 0300 0600 0600 0C00 0C00 1800 1800 3800 3000 7000 6000 6000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 16 0 BBX 13 18 1 0 BITMAP 0F80 1FC0 38E0 7070 7070 E038 E038 E038 E038 E038 E038 E038 E038 7070 7070 38E0 1FC0 0F80 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 16 0 BBX 6 18 3 0 BITMAP FC FC 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 16 0 BBX 11 18 2 0 BITMAP 3F00 FFC0 C1C0 00E0 00E0 00E0 00E0 01C0 01C0 0380 0F00 1C00 3800 3000 7000 E000 FFE0 FFE0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 16 0 BBX 11 18 2 0 BITMAP 7F00 FFC0 C1E0 00E0 00E0 00E0 00C0 0300 3E00 3F80 03C0 00E0 00E0 00E0 00E0 83C0 FF80 FF00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 16 0 BBX 12 18 2 0 BITMAP 01C0 01C0 03C0 07C0 06C0 0CC0 1CC0 38C0 30C0 60C0 E0C0 FFF0 FFF0 00C0 00C0 00C0 00C0 00C0 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 16 0 BBX 9 18 3 0 BITMAP FF80 FF80 C000 C000 C000 C000 F800 FE00 0F00 0780 0380 0380 0380 0380 0780 8F00 FE00 FC00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 16 0 BBX 12 18 2 0 BITMAP 0FC0 1FE0 3820 7000 7000 E000 E000 E780 EFE0 F8E0 E070 E070 E070 6070 7070 38E0 3FC0 0F80 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 16 0 BBX 12 18 3 0 BITMAP FFF0 FFF0 0070 0060 00C0 01C0 0180 0380 0700 0600 0E00 1C00 1C00 3800 3800 3800 7000 7000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 16 0 BBX 12 18 2 0 BITMAP 0F80 1FC0 38E0 3060 3060 3060 38C0 1F80 1F80 3FC0 73E0 E0F0 E070 E070 E070 70E0 7FC0 1F80 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 16 0 BBX 12 18 2 0 BITMAP 1F00 3FC0 71E0 70E0 E060 E070 E070 E070 F070 71F0 3F70 1E70 0060 00E0 00E0 41C0 7F80 7E00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 8 0 BBX 3 13 2 0 BITMAP E0 E0 E0 00 00 00 00 00 00 00 E0 E0 E0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 8 0 BBX 3 18 2 -5 BITMAP E0 E0 E0 00 00 00 00 00 00 00 00 E0 E0 60 60 60 C0 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 16 0 BBX 14 15 1 0 BITMAP 0004 001C 007C 01F0 07C0 0F00 3C00 F000 3C00 0F00 07C0 01F0 0078 001C 0004 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 16 0 BBX 14 6 1 4 BITMAP FFFC FFFC 0000 0000 FFFC FFFC ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 16 0 BBX 14 15 1 0 BITMAP 8000 E000 7800 3E00 0F80 03C0 00F0 003C 00F0 03C0 0F80 3E00 F800 E000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 11 0 BBX 10 18 0 0 BITMAP 7E00 FF80 83C0 01C0 01C0 01C0 0380 0300 0600 0E00 1C00 1C00 1C00 0000 0000 1C00 1C00 1C00 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 21 0 BBX 20 18 3 0 BITMAP 00FE00 03FF80 0F83C0 1C00E0 387E60 30FC30 618430 630C30 C21C30 C61830 C63860 C64CE0 C7CFC0 630700 700000 3C0800 1FF800 07E000 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 17 0 BBX 17 18 0 0 BITMAP 01C000 01E000 03E000 03E000 037000 067000 067800 0E3800 0C3800 0C1C00 181C00 1FFE00 3FFE00 300E00 300700 600700 600780 C00380 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 14 0 BBX 11 18 2 0 BITMAP FE00 FF80 E3C0 E1C0 E1C0 E1C0 E380 E300 FE00 FF80 E3C0 E1E0 E0E0 E0E0 E0E0 E1E0 FFC0 FF00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 17 0 BBX 15 18 1 0 BITMAP 03FC 0FFE 3E06 3800 7000 7000 E000 E000 E000 E000 E000 E000 F000 7000 7802 3E0E 1FFE 07F8 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 19 0 BBX 15 18 2 0 BITMAP FFC0 FFF0 E078 E03C E01C E01E E00E E00E E00E E00E E00E E00E E00C E01C E038 E078 FFE0 FF80 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 14 0 BBX 11 18 2 0 BITMAP FFC0 FFC0 E000 E000 E000 E000 E000 E000 FF80 FF80 E000 E000 E000 E000 E000 E000 FFE0 FFE0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 13 0 BBX 11 18 2 0 BITMAP FFE0 FFE0 E000 E000 E000 E000 E000 E000 FFC0 FFC0 E000 E000 E000 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 18 0 BBX 15 18 1 0 BITMAP 03FC 0FFE 3E06 3800 7000 7000 E000 E000 E000 E000 E00E E00E F00E 700E 780E 3E0E 1FFE 07F8 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 18 0 BBX 14 18 2 0 BITMAP E01C E01C E01C E01C E01C E01C E01C E01C FFFC FFFC E01C E01C E01C E01C E01C E01C E01C E01C ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 7 0 BBX 3 18 2 0 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 8 0 BBX 8 22 -1 -4 BITMAP 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 0E FC F8 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 2 0 BITMAP E038 E060 E0E0 E1C0 E180 E300 E700 EE00 FC00 FE00 EF00 E780 E3C0 E1E0 E1E0 E0F0 E078 E03C ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 13 0 BBX 11 18 2 0 BITMAP E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 FFE0 FFE0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 22 0 BBX 17 18 2 0 BITMAP F00780 F00780 F80780 F80F80 F80F80 DC1F80 DC1B80 DC1B80 CE3380 CE3380 CF3380 C76380 C76380 C7E380 C3C380 C3C380 C3C380 C00380 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 19 0 BBX 14 18 2 0 BITMAP E00C F00C F00C F80C FC0C DC0C DE0C CF0C C70C C38C C3CC C1EC C0EC C0FC C07C C03C C03C C01C ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 19 0 BBX 17 18 1 0 BITMAP 07F000 1FFC00 3C1E00 780F00 700700 700700 E00380 E00380 E00380 E00380 E00380 E00380 700700 700700 780F00 3C1E00 1FFC00 07F000 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 14 0 BBX 11 18 2 0 BITMAP FF80 FFC0 E1E0 E0E0 E0E0 E0E0 E0E0 E1E0 E3C0 FF80 FE00 E000 E000 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 19 0 BBX 19 22 1 -4 BITMAP 07F000 1FFC00 3C1E00 780E00 700700 700700 E00380 E00380 E00380 E00380 E00380 E00380 700780 700700 780F00 3C1E00 1FFC00 07F000 001E00 000FE0 0003C0 0000C0 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 16 0 BBX 13 18 2 0 BITMAP FF00 FFC0 E1E0 E0E0 E0E0 E0E0 E0E0 E1C0 E380 FE00 FF00 E780 E380 E1C0 E1E0 E0F0 E070 E078 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 13 0 BBX 11 18 1 0 BITMAP 1F80 7FC0 70C0 E000 E000 E000 F800 7C00 3F00 0F80 03C0 01E0 00E0 00E0 00E0 C1C0 FF80 7F00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 0 0 BITMAP FFFE FFFE 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 17 0 BBX 13 18 2 0 BITMAP E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 F038 7870 3FE0 1FC0 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 16 0 BBX 16 18 0 0 BITMAP E003 E006 7006 7006 780C 380C 381C 1C18 1C18 1E30 0E30 0E30 0F60 0760 07E0 03C0 03C0 0380 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 21 0 BBX 21 18 0 0 BITMAP E07018 E07038 E07830 70F830 70F830 70F860 70DC60 38DC60 399C60 399CC0 399EC0 1D8EC0 1F0EC0 1F0F80 1F0F80 0F0780 0F0700 0E0700 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 0 0 BITMAP F00E 781C 3818 3C30 1E70 0E60 0FC0 07C0 0380 03C0 07C0 0FE0 0CF0 1870 3878 303C 601C E01E ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 0 0 BITMAP E00E 700C 7818 3818 3C30 1C70 1E60 0FE0 07C0 0780 0380 0380 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 7FF8 7FF8 0078 0070 00E0 01E0 03C0 0380 0780 0F00 0E00 1E00 3C00 7800 7000 F000 FFF8 FFF8 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 8 0 BBX 5 22 2 -4 BITMAP F8 F8 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 F8 F8 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 12 0 BBX 12 22 0 -4 BITMAP C000 6000 6000 7000 3000 3800 1800 1800 0C00 0C00 0600 0600 0300 0300 0180 0180 01C0 00C0 00E0 0060 0060 0030 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 8 0 BBX 5 22 1 -4 BITMAP F8 F8 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 F8 F8 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 16 0 BBX 14 15 1 3 BITMAP 0100 0300 0300 0780 0780 0FC0 0CC0 1CE0 1860 3870 3030 3030 6018 6018 C00C ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 13 0 BBX 10 2 1 -2 BITMAP FFC0 FFC0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 6 0 BBX 3 6 1 12 BITMAP 60 C0 C0 E0 E0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 1 0 BITMAP 1F80 7FC0 41C0 01C0 01C0 1FC0 7FC0 F1C0 E1C0 E1C0 E3C0 7EF0 3C70 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 16 0 BBX 12 18 2 0 BITMAP E000 E000 E000 E000 E000 E780 EFE0 F8E0 E0F0 E070 E070 E070 E070 E070 E0E0 F1E0 FFC0 CF80 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 1 0 BITMAP 0FE0 3FE0 7820 7000 E000 E000 E000 E000 E000 7000 7820 3FE0 0FC0 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 16 0 BBX 12 18 1 0 BITMAP 0070 0070 0070 0070 0070 1E70 3FF0 78F0 7070 E070 E070 E070 E070 E070 F070 71F0 7F70 1E70 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 14 0 BBX 11 13 1 0 BITMAP 1F00 3F80 71C0 60E0 E0E0 FFE0 FFE0 E000 E000 7000 7820 3FE0 0FC0 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 9 0 BBX 10 20 0 0 BITMAP 07C0 1FC0 1C40 3800 3800 3800 3800 FF00 FF00 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 16 0 BBX 12 18 1 -5 BITMAP 1E70 3FF0 78F0 7070 E070 E070 E070 E070 E070 E070 71F0 7F70 1E70 0070 0060 40E0 7FC0 3F80 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 16 0 BBX 11 18 2 0 BITMAP E000 E000 E000 E000 E000 E780 EFC0 F8E0 F0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 7 0 BBX 3 18 2 0 BITMAP E0 E0 E0 00 00 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 8 0 BBX 8 23 -1 -5 BITMAP 07 07 07 00 00 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 8E FE F8 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 2 0 BITMAP E000 E000 E000 E000 E000 E0E0 E1C0 E380 E700 E600 EC00 FE00 EF00 EF80 E780 E3C0 E1E0 E0F0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 7 0 BBX 3 18 2 0 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 23 0 BBX 19 13 2 0 BITMAP E7C780 EFCFC0 F8F9E0 F0F0E0 E0E0E0 E0E0E0 E0E0E0 E0E0E0 E0E0E0 E0E0E0 E0E0E0 E0E0E0 E0E0E0 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 16 0 BBX 11 13 2 0 BITMAP E780 EFC0 F8E0 F0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 1 0 BITMAP 0F80 3FE0 78F0 7070 E038 E038 E038 E038 E038 7070 78F0 3FE0 0F80 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 16 0 BBX 12 18 2 -5 BITMAP E780 EFE0 F8E0 E0F0 E070 E070 E070 E070 E070 E0E0 F1E0 FFC0 E780 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 16 0 BBX 12 18 1 -5 BITMAP 1E70 3FF0 78F0 7070 E070 E070 E070 E070 E070 F070 71F0 7F70 1E70 0070 0070 0070 0070 0070 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 2 0 BITMAP E7 EF F8 F0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 13 0 BBX 9 13 2 0 BITMAP 3F00 7F00 E100 E000 F000 FE00 7F00 1F80 0380 0380 8780 FF00 7E00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 9 0 BBX 8 16 1 0 BITMAP 38 38 38 FF FF 38 38 38 38 38 38 38 38 38 1F 0F ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 16 0 BBX 11 13 2 0 BITMAP E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E1E0 E3E0 7EE0 3CE0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 0 0 BITMAP E038 E030 7030 7060 7860 38E0 38C0 1CC0 1D80 1F80 0F00 0F00 0F00 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 19 0 BBX 19 13 0 0 BITMAP C0E060 60E0C0 60E0C0 61B0C0 61B180 31B180 333980 331B00 1B1B00 1E1B00 1E0E00 1E0E00 0C0E00 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 1 0 BITMAP E038 7070 38E0 1CC0 0DC0 0780 0700 0F80 1D80 18C0 30E0 7070 E038 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 13 0 BBX 13 18 0 -5 BITMAP E018 F030 7030 7070 7860 3860 3CC0 1CC0 1D80 1F80 0F80 0F00 0700 0600 0600 0E00 0C00 1C00 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 14 0 BBX 11 13 2 0 BITMAP FFE0 FFE0 00C0 0180 0300 0700 0E00 1C00 3800 3000 6000 FFE0 FFE0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 8 0 BBX 6 22 0 -4 BITMAP 0C 1C 30 30 30 30 30 30 30 30 E0 E0 30 30 30 30 30 30 30 30 1C 0C ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 7 0 BBX 2 22 2 -4 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 8 0 BBX 6 22 2 -4 BITMAP C0 E0 30 30 30 30 30 30 30 30 1C 1C 30 30 30 30 30 30 30 30 E0 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 16 0 BBX 14 6 1 4 BITMAP 380C 7E0C 670C C398 C1F8 C070 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 8 0 BBX 2 18 3 -5 BITMAP C0 C0 C0 00 00 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 16 0 BBX 10 18 3 0 BITMAP 0600 0600 0FC0 3FC0 7640 7600 E600 E600 E600 E600 E600 E600 7600 7640 3FC0 1F80 0600 0600 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 16 0 BBX 11 18 3 0 BITMAP 03E0 0FE0 0C20 1C00 1C00 1C00 1C00 1C00 FF80 FF80 1C00 1C00 1C00 1C00 1800 3000 FFE0 FFE0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 16 0 BBX 15 16 0 1 BITMAP 4004 E00E 77DC 3FF8 1C70 3838 3018 3018 3018 3018 3838 1C70 3FF8 77DC E00E 4004 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 1 0 BITMAP F00E 700C 7818 3C38 1C70 1E60 0FE0 07C0 0780 3FF0 3FF0 0380 3FF0 3FF0 0380 0380 0380 0380 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 7 0 BBX 2 22 2 -4 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 00 00 00 00 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 16 0 BBX 11 23 3 -5 BITMAP 1FC0 7FC0 6040 C000 C000 E000 F800 7F00 7F80 C7C0 C1E0 C060 F060 7C60 7FC0 1F80 03C0 00E0 0060 0060 C0E0 FFC0 7F00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 15 0 BBX 7 2 4 16 BITMAP C6 C6 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 21 0 BBX 19 18 1 0 BITMAP 03F000 0FFE00 1E0F00 380380 71E1C0 63F0C0 C310E0 C60060 C60060 C60060 C60060 C310E0 63F0C0 71F1C0 380380 1E0F00 0FFE00 03F000 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 8 BITMAP 7E00 7F00 4700 0300 3F00 7F00 E300 C300 FF80 7B80 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 13 0 BBX 11 11 1 1 BITMAP 0C40 1CE0 39C0 3380 6300 E700 6300 3380 39C0 1CE0 0C40 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 16 0 BBX 14 6 1 4 BITMAP FFFC FFFC 000C 000C 000C 000C ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 8 0 BBX 5 2 2 7 BITMAP F8 F8 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 16 0 BBX 11 11 2 7 BITMAP 1F00 3F80 71C0 FFE0 DB60 DE60 DE60 FBE0 71C0 3F80 1F00 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 15 0 BBX 7 2 4 16 BITMAP FE FE ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 7 0 BBX 4 4 1 14 BITMAP 60 90 90 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 16 0 BBX 14 15 1 0 BITMAP 0300 0300 0300 0300 0300 FFFC FFFC 0300 0300 0300 0300 0000 0000 FFFC FFFC ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 -16 7 BITMAP 7C FE 8E 06 0E 1C 38 70 60 FE FE ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 -16 7 BITMAP 7C FE 86 06 78 78 06 06 8E FE F8 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 15 0 BBX 5 4 6 14 BITMAP 38 30 60 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 16 0 BBX 11 17 2 -4 BITMAP E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E1E0 E3E0 FEE0 FCE0 E000 E000 E000 E000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 16 0 BBX 10 22 3 -4 BITMAP 3FC0 7FC0 FEC0 FEC0 FEC0 FEC0 7EC0 7EC0 1EC0 06C0 06C0 06C0 06C0 06C0 06C0 06C0 06C0 06C0 06C0 06C0 06C0 06C0 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 16 0 BBX 3 3 6 6 BITMAP E0 E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 15 0 BBX 4 5 6 -5 BITMAP 60 40 30 30 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 9 0 BBX 4 11 -16 7 BITMAP F0 F0 30 30 30 30 30 30 30 30 30 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 8 BITMAP 3E00 7F00 6700 C380 C380 C380 C380 6700 7F00 3E00 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 13 0 BBX 11 11 1 1 BITMAP 4600 E700 7380 3980 18C0 1CE0 18C0 3980 7380 E700 C600 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 20 0 BBX 18 18 5 0 BITMAP F00700 F00E00 300C00 301800 303800 307000 306000 30C380 31C780 338780 330D80 061D80 0E3980 1C3FC0 183FC0 300180 700180 E00180 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 20 0 BBX 17 18 5 0 BITMAP F00700 F00E00 300C00 301800 303800 307000 306000 30DF00 31FF80 33A380 330180 060380 0E0700 1C0E00 181C00 301800 703F80 E03F80 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 20 0 BBX 18 18 5 0 BITMAP 7C0700 FE0E00 860C00 061800 783800 787000 066000 06C380 8FC780 FF8780 FB0D80 061D80 0E3980 1C3FC0 183FC0 300180 700180 E00180 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 11 0 BBX 10 18 0 -5 BITMAP 0E00 0E00 0E00 0000 0000 0E00 0E00 0E00 1C00 3800 3000 7000 E000 E000 E000 F040 7FC0 1F80 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 17 0 BBX 17 23 0 0 BITMAP 070000 030000 018000 00C000 000000 01C000 01E000 03E000 03E000 037000 067000 067800 0E3800 0C3800 0C1C00 181C00 1FFE00 3FFE00 300E00 300700 600700 600780 C00380 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 17 0 BBX 17 23 0 0 BITMAP 007000 006000 00C000 018000 000000 01C000 01E000 03E000 03E000 037000 067000 067800 0E3800 0C3800 0C1C00 181C00 1FFE00 3FFE00 300E00 300700 600700 600780 C00380 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 17 0 BBX 17 23 0 0 BITMAP 01E000 01E000 033000 061800 000000 01C000 01E000 03E000 03E000 037000 067000 067800 0E3800 0C3800 0C1C00 181C00 1FFE00 3FFE00 300E00 300700 600700 600780 C00380 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 17 0 BBX 17 22 0 0 BITMAP 038800 07F800 067000 000000 01C000 01E000 03E000 03E000 037000 067000 067800 0E3800 0C3800 0C1C00 181C00 1FFE00 3FFE00 300E00 300700 600700 600780 C00380 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 17 0 BBX 17 21 0 0 BITMAP 063000 063000 000000 01C000 01E000 03E000 03E000 037000 067000 067800 0E3800 0C3800 0C1C00 181C00 1FFE00 3FFE00 300E00 300700 600700 600780 C00380 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 17 0 BBX 17 23 0 0 BITMAP 00C000 012000 012000 00C000 000000 01C000 01E000 03E000 03E000 037000 067000 067800 0E3800 0C3800 0C1C00 181C00 1FFE00 3FFE00 300E00 300700 600700 600780 C00380 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 23 0 BBX 22 18 0 0 BITMAP 003FF8 003FF8 007C00 00FC00 00DC00 01DC00 019C00 031C00 071FF0 061FF0 0E1C00 0FFC00 1FFC00 181C00 301C00 701C00 601FFC E01FFC ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 17 0 BBX 15 23 1 -5 BITMAP 03FC 0FFE 3E06 3800 7000 7000 E000 E000 E000 E000 E000 E000 F000 7000 7802 3E0E 1FFE 07F8 0100 0100 00C0 00C0 0380 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 14 0 BBX 11 23 2 0 BITMAP 3800 1800 0C00 0600 0000 FFC0 FFC0 E000 E000 E000 E000 E000 E000 FF80 FF80 E000 E000 E000 E000 E000 E000 FFE0 FFE0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 14 0 BBX 11 23 2 0 BITMAP 0700 0600 0C00 1800 0000 FFC0 FFC0 E000 E000 E000 E000 E000 E000 FF80 FF80 E000 E000 E000 E000 E000 E000 FFE0 FFE0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 14 0 BBX 11 23 2 0 BITMAP 1E00 1E00 3300 6180 0000 FFC0 FFC0 E000 E000 E000 E000 E000 E000 FF80 FF80 E000 E000 E000 E000 E000 E000 FFE0 FFE0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 14 0 BBX 11 21 2 0 BITMAP 6300 6300 0000 FFC0 FFC0 E000 E000 E000 E000 E000 E000 FF80 FF80 E000 E000 E000 E000 E000 E000 FFE0 FFE0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 7 0 BBX 5 23 4 0 BITMAP E0 60 30 18 00 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 7 0 BBX 5 23 2 0 BITMAP 38 30 60 C0 00 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 7 0 BBX 8 23 4 0 BITMAP 3C 3C 66 C3 00 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 7 0 BBX 7 21 4 0 BITMAP C6 C6 00 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 19 0 BBX 18 18 0 0 BITMAP 1FF800 1FFE00 1C0F00 1C0780 1C0380 1C03C0 1C01C0 1C01C0 FFC1C0 FFC1C0 1C01C0 1C01C0 1C0180 1C0380 1C0700 1C0F00 1FFC00 1FF000 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 19 0 BBX 14 22 2 0 BITMAP 0E20 1FE0 19C0 0000 E00C F00C F00C F80C FC0C DC0C DE0C CF0C C70C C38C C3CC C1EC C0EC C0FC C07C C03C C03C C01C ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 19 0 BBX 17 23 1 0 BITMAP 070000 030000 018000 00C000 000000 07F000 1FFC00 3C1E00 780F00 700700 700700 E00380 E00380 E00380 E00380 E00380 E00380 700700 700700 780F00 3C1E00 1FFC00 07F000 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 19 0 BBX 17 23 1 0 BITMAP 007000 006000 00C000 018000 000000 07F000 1FFC00 3C1E00 780F00 700700 700700 E00380 E00380 E00380 E00380 E00380 E00380 700700 700700 780F00 3C1E00 1FFC00 07F000 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 19 0 BBX 17 23 1 0 BITMAP 01E000 01E000 033000 061800 000000 07F000 1FFC00 3C1E00 780F00 700700 700700 E00380 E00380 E00380 E00380 E00380 E00380 700700 700700 780F00 3C1E00 1FFC00 07F000 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 19 0 BBX 17 22 1 0 BITMAP 038800 07F800 067000 000000 07F000 1FFC00 3C1E00 780F00 700700 700700 E00380 E00380 E00380 E00380 E00380 E00380 700700 700700 780F00 3C1E00 1FFC00 07F000 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 19 0 BBX 17 21 1 0 BITMAP 063000 063000 000000 07F000 1FFC00 3C1E00 780F00 700700 700700 E00380 E00380 E00380 E00380 E00380 E00380 700700 700700 780F00 3C1E00 1FFC00 07F000 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 16 0 BBX 14 15 1 0 BITMAP 4008 E01C 7038 3870 1CE0 0CC0 0780 0300 0780 0CC0 1CE0 3870 7038 E01C 4008 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 19 0 BBX 17 18 1 0 BITMAP 07F380 1FFF00 3C1E00 780F00 701F00 703F00 E07380 E0E380 E0C380 E18380 E38380 E70380 7E0700 7C0700 780F00 3C1E00 7FFC00 E7F000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 17 0 BBX 13 23 2 0 BITMAP 1C00 0C00 0600 0300 0000 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 F038 7870 3FE0 1FC0 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 17 0 BBX 13 23 2 0 BITMAP 01C0 0180 0300 0600 0000 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 F038 7870 3FE0 1FC0 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 17 0 BBX 13 23 2 0 BITMAP 0780 0780 0CC0 1860 0000 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 F038 7870 3FE0 1FC0 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 17 0 BBX 13 21 2 0 BITMAP 18C0 18C0 0000 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 F038 7870 3FE0 1FC0 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 16 0 BBX 15 23 0 0 BITMAP 00E0 00C0 0180 0300 0000 E00E 700C 7818 3818 3C30 1C70 1E60 0FE0 07C0 0780 0380 0380 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 14 0 BBX 11 18 2 0 BITMAP E000 E000 E000 FF80 FFC0 E1E0 E0E0 E0E0 E0E0 E0E0 E0E0 E1C0 E3C0 FF80 FE00 E000 E000 E000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 15 0 BBX 12 20 2 0 BITMAP 3E00 7F00 F780 E380 E380 E300 E300 E600 E600 E700 E780 E3C0 E3E0 E0F0 E070 E030 E030 E470 E7E0 E7C0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 1 0 BITMAP 1C00 0C00 0600 0300 0000 1F80 7FC0 41C0 01C0 01C0 1FC0 7FC0 F1C0 E1C0 E1C0 E3C0 7EF0 3C70 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 1 0 BITMAP 0380 0300 0600 0C00 0000 1F80 7FC0 41C0 01C0 01C0 1FC0 7FC0 F1C0 E1C0 E1C0 E3C0 7EF0 3C70 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 1 0 BITMAP 0F00 0F00 1980 30C0 0000 1F80 7FC0 41C0 01C0 01C0 1FC0 7FC0 F1C0 E1C0 E1C0 E3C0 7EF0 3C70 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 1 0 BITMAP 1C40 3FC0 3380 0000 1F80 7FC0 41C0 01C0 01C0 1FC0 7FC0 F1C0 E1C0 E1C0 E3C0 7EF0 3C70 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 14 0 BBX 12 16 1 0 BITMAP 3180 3180 0000 1F80 7FC0 41C0 01C0 01C0 1FC0 7FC0 F1C0 E1C0 E1C0 E3C0 7EF0 3C70 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 1 0 BITMAP 0600 0900 0900 0600 0000 1F80 7FC0 41C0 01C0 01C0 1FC0 7FC0 F1C0 E1C0 E1C0 E3C0 7EF0 3C70 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 21 0 BBX 18 13 1 0 BITMAP 1F1E00 7FFF80 41E380 01C1C0 01C1C0 1FFFC0 7FFFC0 F1C000 E1C000 E1E000 E37040 7E3FC0 3C1F80 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 13 0 BBX 11 18 1 -5 BITMAP 0FE0 3FE0 7820 7000 E000 E000 E000 E000 E000 7000 7820 3FE0 0FC0 0400 0400 0300 0300 0E00 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 14 0 BBX 11 18 1 0 BITMAP 1C00 0C00 0600 0300 0000 1F00 3F80 71C0 60E0 E0E0 FFE0 FFE0 E000 E000 7000 7820 3FE0 0FC0 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 14 0 BBX 11 18 1 0 BITMAP 0380 0300 0600 0C00 0000 1F00 3F80 71C0 60E0 E0E0 FFE0 FFE0 E000 E000 7000 7820 3FE0 0FC0 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 14 0 BBX 11 18 1 0 BITMAP 0F00 0F00 1980 30C0 0000 1F00 3F80 71C0 60E0 E0E0 FFE0 FFE0 E000 E000 7000 7820 3FE0 0FC0 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 14 0 BBX 11 16 1 0 BITMAP 3180 3180 0000 1F00 3F80 71C0 60E0 E0E0 FFE0 FFE0 E000 E000 7000 7820 3FE0 0FC0 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 7 0 BBX 5 18 4 0 BITMAP E0 60 30 18 00 38 38 38 38 38 38 38 38 38 38 38 38 38 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 7 0 BBX 5 18 2 0 BITMAP 38 30 60 C0 00 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 7 0 BBX 8 18 4 0 BITMAP 3C 3C 66 C3 00 38 38 38 38 38 38 38 38 38 38 38 38 38 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 7 0 BBX 7 16 4 0 BITMAP C6 C6 00 38 38 38 38 38 38 38 38 38 38 38 38 38 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 2 0 BITMAP FE00 8F00 3E00 3300 2180 1FC0 3FE0 78E0 F0F0 E070 E070 E070 E070 E070 70E0 78E0 3FC0 1F80 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 16 0 BBX 11 17 2 0 BITMAP 3880 7F80 6700 0000 E780 EFC0 F8E0 F0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 1C00 0C00 0600 0300 0000 0F80 3FE0 78F0 7070 E038 E038 E038 E038 E038 7070 78F0 3FE0 0F80 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 01C0 0180 0300 0600 0000 0F80 3FE0 78F0 7070 E038 E038 E038 E038 E038 7070 78F0 3FE0 0F80 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 0780 0780 0CC0 1860 0000 0F80 3FE0 78F0 7070 E038 E038 E038 E038 E038 7070 78F0 3FE0 0F80 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 1 0 BITMAP 0E20 1FE0 19C0 0000 0F80 3FE0 78F0 7070 E038 E038 E038 E038 E038 7070 78F0 3FE0 0F80 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 15 0 BBX 13 16 1 0 BITMAP 18C0 18C0 0000 0F80 3FE0 78F0 7070 E038 E038 E038 E038 E038 7070 78F0 3FE0 0F80 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 16 0 BBX 15 13 0 0 BITMAP 0380 0380 0380 0000 0000 0000 FFFE FFFE 0000 0000 0380 0380 0380 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 1 0 BITMAP 0FB8 3FF0 78F0 70F0 E1B8 E3B8 E738 EE38 EC38 7870 78F0 7FE0 EF80 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 16 0 BBX 11 18 2 0 BITMAP 3800 1800 0C00 0600 0000 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E1E0 E3E0 7EE0 3CE0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 16 0 BBX 11 18 2 0 BITMAP 0380 0300 0600 0C00 0000 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E1E0 E3E0 7EE0 3CE0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 16 0 BBX 11 18 2 0 BITMAP 0F00 0F00 1980 30C0 0000 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E1E0 E3E0 7EE0 3CE0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 16 0 BBX 11 16 2 0 BITMAP 3180 3180 0000 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E1E0 E3E0 7EE0 3CE0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 13 0 BBX 13 23 0 -5 BITMAP 01C0 0180 0300 0600 0000 E018 F030 7030 7070 7860 3860 3CC0 1CC0 1D80 1F80 0F80 0F00 0700 0600 0600 0E00 0C00 1C00 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 16 0 BBX 12 22 2 -5 BITMAP E000 E000 E000 E000 E780 EFE0 F8E0 E0F0 E070 E070 E070 E070 E070 E0E0 F1E0 FFC0 EF80 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 13 0 BBX 13 21 0 -5 BITMAP 18C0 18C0 0000 E018 F030 7030 7070 7860 3860 3CC0 1CC0 1D80 1F80 0F80 0F00 0700 0600 0600 0E00 0C00 1C00 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 13 20 1 0 BITMAP 0FF8 1FF8 3C38 3838 3838 3838 3838 FE38 FE38 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 10 2 1 6 BITMAP FFC0 FFC0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 10 22 3 -4 BITMAP 0C00 0C00 0C00 0C00 0C00 0C00 FFC0 FFC0 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 13 23 1 0 BITMAP 1860 0CC0 0780 0780 0000 7FF8 7FF8 0078 0070 00E0 01E0 03C0 0380 0780 0F00 0E00 1E00 3C00 7800 7000 F000 FFF8 FFF8 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 20 13 1 0 BITMAP 0F8F80 3FDFE0 78F8E0 70F070 E07070 E07FF0 E07FF0 E07000 E07000 70F800 78FC10 3FDFF0 1F87E0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 15 21 0 0 BITMAP 0C60 0C60 0000 E00E 700C 7818 3818 3C30 1C70 1E60 0FE0 07C0 0780 0380 0380 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 13 2 0 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 9 18 0 0 BITMAP 1C00 1C00 1C00 1C00 1C00 1C80 1F80 1F00 3C00 FC00 9C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 14 18 0 0 BITMAP 1C00 1C00 1C00 1C00 1C00 1C80 1D80 1F80 1E00 7C00 FC00 9C00 1C00 1C00 1C00 1C00 1FFC 1FFC ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 10 22 3 -4 BITMAP 0C00 0C00 0C00 0C00 0C00 0C00 FFC0 FFC0 0C00 0C00 0C00 0C00 0C00 0C00 FFC0 FFC0 0C00 0C00 0C00 0C00 0C00 0C00 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 13 20 1 0 BITMAP 0F80 1F80 38B8 3838 3838 3800 3800 FFF8 FFF8 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 1 BITMAP 40 E0 70 30 18 1C 18 30 70 E0 C0 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 25 0 BBX 23 18 1 0 BITMAP 07EFFC 1FFFFC 3C3E00 781E00 700E00 F00E00 E00E00 E00E00 E00FF8 E00FF8 E00E00 E00E00 F00E00 700E00 781E00 3C3E00 1FFFFE 07EFFE ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 25 0 BBX 23 2 1 6 BITMAP FFFFFE FFFFFE ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 4 4 14 BITMAP C3 66 3C 3C ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 4 4 6 -4 BITMAP 60 C0 C0 70 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 7 4 5 14 BITMAP 36 2C 48 D0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 1 BITMAP 0C 1C 38 30 60 E0 60 30 38 1C 08 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 2 3 7 15 BITMAP C0 C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 4 4 14 BITMAP C3 C3 7E 3C ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 8 8 4 3 BITMAP FF FF FF FF FF FF FF FF ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 3 4 15 BITMAP 71 FF CE ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 4 4 14 BITMAP 3C 3C 66 C3 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 6 1 12 BITMAP 66 CC CC EE EE EE ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 12 BITMAP F0 F0 F0 60 60 60 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 9 18 2 0 BITMAP 6180 3300 1E00 1E00 0000 3F00 7F00 E100 E000 F000 FE00 7F00 1F80 0380 0380 8780 FF00 7E00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 4 4 6 16 BITMAP 60 90 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 7 1 -4 BITMAP E0 E0 E0 60 60 60 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 12 22 3 -4 BITMAP 01F0 07F0 0600 0E00 0E00 1C00 1C00 1C00 FF00 FF00 1C00 1C00 3800 3800 3800 3800 7000 7000 7000 7000 E000 E000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 18 9 0 9 BITMAP FF71C0 FF71C0 187BC0 187BC0 187FC0 186EC0 186EC0 186EC0 1860C0 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 16 18 -7 0 BITMAP 0007 000E 000C 0018 0038 0070 0060 00C0 01C0 0380 0300 0600 0E00 1C00 1800 3000 7000 E000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 5 4 5 14 BITMAP E0 60 30 18 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 25 0 BBX 26 18 0 0 BITMAP 3C038000 7E070000 E7060000 C30C0000 C3180000 E7380000 7E700000 3CE00000 00DE0F00 01BF1F80 03F3B9C0 0761B0C0 0E61B0C0 0C61B0C0 1861B0C0 3073B9C0 703F1F80 E01E0F00 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 25 0 BBX 19 3 3 0 BITMAP E0E0E0 E0E0E0 E0E0E0 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 6 1 12 BITMAP EE EE EE 66 66 CC ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 11 23 1 0 BITMAP 30C0 1980 0F00 0F00 0000 1F80 7FC0 70C0 E000 E000 E000 F800 7C00 3F00 0F80 03C0 01E0 00E0 00E0 00E0 C1C0 FF80 7F00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 -5 BITMAP EE EE EE 66 66 66 CC 88 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 11 18 2 0 BITMAP 30C0 1980 0F00 0F00 0000 FFE0 FFE0 00C0 0180 0300 0700 0E00 1C00 3800 3000 6000 FFE0 FFE0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/luRS19.bdf100644 1750 1750 112770 5413747525 15103 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Medium-R-Normal-Sans-26-190-100-100-P-147-ISO8859-1 SIZE 19 100 100 FONTBOUNDINGBOX 43 29 -17 -5 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 26 POINT_SIZE 190 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH "147" CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." FONT_ASCENT 24 FONT_DESCENT 6 DEFAULT_CHAR 0 ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 8 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 8 0 BBX 2 19 3 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 00 00 C0 C0 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 10 0 BBX 6 6 2 13 BITMAP CC CC CC CC CC CC ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 16 0 BBX 16 19 0 0 BITMAP 018C 0318 0318 0318 0338 7FFF 7FFF 0630 0630 0C60 0C60 FFFE FFFE 1CC0 18C0 18C0 18C0 39C0 3180 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 16 0 BBX 11 22 3 -2 BITMAP 0600 1FC0 3FE0 7620 6600 6600 6600 7600 3E00 1E00 0F00 0780 06C0 0660 0660 0660 0660 C6E0 FFC0 7F80 0600 0600 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 17 0 BBX 17 19 0 0 BITMAP 3C0380 7E0700 E70600 C30C00 C31C00 C33800 E73000 7E6000 3CE000 01DE00 03BF00 037380 066180 0E6180 1C6180 186180 307380 703F00 E01E00 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 18 0 BBX 16 19 1 0 BITMAP 03C0 07E0 0E30 0E30 0E30 0E70 07E0 07C0 1F00 3B87 7187 E1C7 E0E6 E07E F03C F03C 7C38 3FEC 0F8F ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 6 0 BBX 3 7 1 12 BITMAP E0 E0 E0 60 60 60 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 8 0 BBX 6 23 2 -4 BITMAP 04 0C 18 38 30 70 70 60 E0 E0 E0 E0 E0 E0 E0 60 70 70 30 38 18 0C 04 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 8 0 BBX 6 23 1 -4 BITMAP 80 C0 60 70 30 38 38 18 1C 1C 1C 1C 1C 1C 1C 18 38 38 30 70 60 C0 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 13 0 BBX 10 9 1 10 BITMAP 0C00 0C00 4C40 EDC0 3300 0E00 1A00 7300 2180 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 16 0 BBX 16 16 0 0 BITMAP 0180 0180 0180 0180 0180 0180 0180 FFFF FFFF 0180 0180 0180 0180 0180 0180 0180 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 8 0 BBX 3 9 3 -5 BITMAP E0 E0 E0 E0 60 60 60 C0 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 16 0 BBX 15 2 1 7 BITMAP FFFE FFFE ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 8 0 BBX 3 3 3 0 BITMAP E0 E0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 13 0 BBX 13 23 0 -4 BITMAP 0018 0030 0030 0060 0060 00C0 00C0 0180 0180 0380 0300 0700 0600 0E00 0C00 0C00 1800 1800 3000 3000 6000 6000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 2 0 BITMAP 0F80 1FC0 38E0 7070 7070 E038 E038 E038 E038 E038 E038 E038 E038 E038 7070 7070 38E0 1FC0 0F80 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 16 0 BBX 6 19 4 0 BITMAP FC FC 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 2 0 BITMAP 3F80 FFC0 E1E0 8070 0070 0070 0070 0060 00E0 01C0 0380 0F00 1C00 3800 3000 7000 E000 FFF0 FFF0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 16 0 BBX 11 19 3 0 BITMAP 7F00 FFC0 C1E0 00E0 00E0 00E0 00C0 0380 3E00 3F00 03C0 01E0 00E0 00E0 00E0 01E0 83C0 FF80 FF00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 0 BITMAP 00E0 00E0 01E0 03E0 0760 0660 0C60 1C60 1860 3060 7060 E060 FFFC FFFC 0060 0060 0060 0060 0060 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 16 0 BBX 10 19 3 0 BITMAP FFC0 FFC0 C000 C000 C000 C000 C000 FC00 FF00 0780 03C0 01C0 01C0 01C0 01C0 03C0 8780 FF00 FC00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 2 0 BITMAP 07E0 1FF0 3C10 7800 7000 7000 E000 E7C0 EFE0 F8F0 F078 E038 E038 E038 6038 7070 38F0 1FE0 0F80 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 3 0 BITMAP FFF0 FFF0 0070 0060 00E0 01C0 0180 0380 0300 0700 0E00 0E00 1C00 1C00 3800 3800 3800 7000 7000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 2 0 BITMAP 07C0 1FE0 1870 3030 3030 3030 3860 1EC0 0F80 1FC0 3BF0 70F0 E078 E038 E038 E038 7070 3FE0 1F80 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 2 0 BITMAP 0F80 3FC0 78E0 7070 E030 E038 E038 E038 F078 78F8 3FB8 1F38 0038 0070 0070 0060 41E0 7FC0 7F00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 8 0 BBX 3 14 3 0 BITMAP E0 E0 E0 00 00 00 00 00 00 00 00 E0 E0 E0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 8 0 BBX 3 19 3 -5 BITMAP E0 E0 E0 00 00 00 00 00 00 00 00 E0 E0 E0 60 60 60 C0 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 16 0 BBX 15 16 1 0 BITMAP 0002 000E 003E 00F8 01E0 0780 1E00 F800 7800 1E00 0780 01E0 00F8 003E 000E 0002 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 16 0 BBX 15 7 1 4 BITMAP FFFE FFFE 0000 0000 0000 FFFE FFFE ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 16 0 BBX 15 16 1 0 BITMAP 8000 E000 F800 3E00 0F00 03C0 00F0 003C 003E 00F0 03C0 0F00 3E00 F800 E000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 11 0 BBX 10 19 0 0 BITMAP 7E00 FF80 83C0 01C0 01C0 01C0 0380 0380 0700 0E00 0C00 1C00 1C00 1C00 0000 0000 1C00 1C00 1C00 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 22 0 BBX 20 19 3 0 BITMAP 00FE00 03FF80 0783C0 1C00E0 187E60 30FC30 618430 630C30 C20C30 C61830 C63870 C63860 C64CE0 E7CFC0 630700 700000 3C0800 1FF800 07E000 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 18 0 BBX 17 19 0 0 BITMAP 01C000 01E000 03E000 03E000 037000 067000 067000 063800 0C3800 0C3C00 1C1C00 181C00 1FFE00 3FFE00 300E00 700700 600700 600380 C00380 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 15 0 BBX 11 19 3 0 BITMAP FE00 FF80 E3C0 E1C0 E1C0 E1C0 E380 E380 FE00 FE00 E380 E1C0 E0E0 E0E0 E0E0 E0E0 E1C0 FFC0 FF00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 18 0 BBX 15 19 1 0 BITMAP 03FC 0FFE 3E06 3800 7000 7000 E000 E000 E000 E000 E000 E000 E000 7000 7000 3802 3E0E 1FFE 03F8 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 19 0 BBX 16 19 2 0 BITMAP FFC0 FFF0 E07C E01C E00E E00E E007 E007 E007 E007 E007 E007 E007 E00E E00E E01C E078 FFF0 FFC0 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 14 0 BBX 11 19 2 0 BITMAP FFC0 FFC0 E000 E000 E000 E000 E000 E000 FF80 FF80 E000 E000 E000 E000 E000 E000 E000 FFE0 FFE0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 14 0 BBX 11 19 2 0 BITMAP FFE0 FFE0 E000 E000 E000 E000 E000 E000 FFC0 FFC0 E000 E000 E000 E000 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 19 0 BBX 15 19 1 0 BITMAP 03FC 0FFE 3E06 3800 7000 7000 E000 E000 E000 E000 E00E E00E E00E 700E 700E 380E 3E0E 1FFE 07F8 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 19 0 BBX 14 19 3 0 BITMAP E01C E01C E01C E01C E01C E01C E01C E01C FFFC FFFC E01C E01C E01C E01C E01C E01C E01C E01C E01C ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 7 0 BBX 3 19 2 0 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 8 0 BBX 8 23 -1 -4 BITMAP 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 8E FC F8 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 17 0 BBX 14 19 2 0 BITMAP E038 E070 E0E0 E0C0 E180 E380 E700 EE00 EC00 FE00 EE00 EF00 E780 E3C0 E1E0 E0E0 E0F0 E078 E03C ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 14 0 BBX 11 19 2 0 BITMAP E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 FFE0 FFE0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 22 0 BBX 18 19 2 0 BITMAP F003C0 F003C0 F807C0 F807C0 F807C0 DC0DC0 DC0DC0 DE0DC0 CE19C0 CE19C0 CF39C0 C731C0 C731C0 C3E1C0 C3E1C0 C3E1C0 C1C1C0 C1C1C0 C001C0 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 19 0 BBX 14 19 3 0 BITMAP E00C F00C F00C F80C FC0C DC0C DE0C CF0C C70C C78C C38C C1CC C1EC C0EC C0FC C07C C03C C03C C01C ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 20 0 BBX 18 19 1 0 BITMAP 03F000 0FFC00 1E1E00 380700 700380 700380 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 700380 700380 380700 1C0E00 0FFC00 03F000 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 14 0 BBX 11 19 3 0 BITMAP FF80 FFC0 E1E0 E0E0 E0E0 E0E0 E0E0 E1E0 E3C0 FF80 FE00 E000 E000 E000 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 20 0 BBX 20 23 1 -4 BITMAP 03F000 0FFC00 1E1E00 380700 700380 700380 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 700380 700380 380700 1C0F00 0FFC00 03FC00 001F00 0007F0 0001E0 000060 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 3 0 BITMAP FF00 FFC0 E1E0 E0E0 E0E0 E0E0 E0E0 E1C0 E380 FF00 FF00 E700 E380 E3C0 E1C0 E1E0 E0F0 E070 E078 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 14 0 BBX 11 19 1 0 BITMAP 1F80 7FC0 70C0 E000 E000 E000 F000 7C00 3E00 1F80 07C0 03C0 01E0 00E0 00E0 00E0 C1C0 FF80 7F00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 16 0 BBX 17 19 0 0 BITMAP FFFF80 FFFF80 01C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 18 0 BBX 13 19 3 0 BITMAP E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 7038 7870 3FE0 1FC0 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 17 0 BBX 16 19 1 0 BITMAP E003 E006 7006 7006 700C 380C 380C 3C18 1C18 1C18 1E30 0E30 0E70 0760 0760 07C0 03C0 03C0 0380 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 22 0 BBX 22 19 0 0 BITMAP E0380C E0781C E07818 707818 707C18 707C30 70DC30 38DC30 38DE30 38CE60 398E60 1D8E60 1D8EE0 1D87C0 1F87C0 0F07C0 0F0780 0F0380 0F0380 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 0 0 BITMAP F00E 701C 3818 3C38 1C30 1E60 0FE0 07C0 0780 03C0 07C0 07E0 0EE0 0CF0 1878 3838 303C 601C E01E ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 16 0 BBX 16 19 0 0 BITMAP E007 7006 780C 381C 3C18 1C30 1E30 0F60 07E0 07C0 0380 0380 0380 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 1 0 BITMAP 7FF8 7FF8 0078 0070 00F0 01E0 01C0 03C0 0780 0700 0F00 1E00 1C00 3C00 7800 7000 F000 FFF8 FFF8 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 8 0 BBX 5 23 3 -4 BITMAP F8 F8 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 F8 F8 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 13 0 BBX 13 23 0 -4 BITMAP C000 6000 6000 3000 3000 1800 1800 0C00 0C00 0E00 0600 0700 0300 0380 0180 0180 00C0 00C0 0060 0060 0030 0030 0018 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 8 0 BBX 5 23 1 -4 BITMAP F8 F8 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 F8 F8 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 16 0 BBX 15 16 1 3 BITMAP 0100 0100 0380 0380 07C0 06C0 0EE0 0C60 1C70 1830 1830 3018 3018 600C 600C C006 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 13 0 BBX 11 2 1 -2 BITMAP FFE0 FFE0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 6 0 BBX 3 7 1 12 BITMAP 60 C0 C0 C0 E0 E0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 14 0 BBX 12 14 2 0 BITMAP 1F80 7FC0 41C0 01C0 01C0 01C0 1FC0 7FC0 F1C0 E1C0 E1C0 E3C0 7EF0 3C70 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 3 0 BITMAP E000 E000 E000 E000 E000 E780 EFE0 F8E0 F0F0 E070 E070 E070 E070 E070 E070 E0E0 F1E0 FFC0 CF80 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 1 0 BITMAP 0FE0 3FE0 7820 7000 E000 E000 E000 E000 E000 E000 7000 7820 3FE0 0FC0 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 2 0 BITMAP 0070 0070 0070 0070 0070 1E70 3FF0 78F0 7070 E070 E070 E070 E070 E070 E070 F0F0 71F0 7F70 1E70 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 14 0 BBX 12 14 1 0 BITMAP 0F80 3FC0 70E0 7060 E070 E070 FFF0 FFF0 E000 E000 7000 7C10 1FF0 0FE0 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 10 0 BBX 10 20 1 0 BITMAP 0FC0 1FC0 3840 3800 3800 3800 FF00 FF00 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 2 -5 BITMAP 1E70 3FF0 78F0 7070 E070 E070 E070 E070 E070 E070 F0F0 71F0 3F70 1E70 0070 0060 40E0 7FC0 3F80 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 16 0 BBX 11 19 3 0 BITMAP E000 E000 E000 E000 E000 E780 EFC0 F8E0 F0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 8 0 BBX 3 19 2 0 BITMAP E0 E0 E0 00 00 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 8 0 BBX 8 24 -1 -5 BITMAP 07 07 07 00 00 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 8E FE F8 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 15 0 BBX 13 19 2 0 BITMAP E000 E000 E000 E000 E000 E070 E0C0 E1C0 E380 E700 EE00 FC00 FE00 EF00 E780 E3C0 E1E0 E0F0 E078 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 8 0 BBX 3 19 2 0 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 24 0 BBX 19 14 3 0 BITMAP E7C780 EFCFC0 F8F9E0 F0F0E0 E0E0E0 E0E0E0 E0E0E0 E0E0E0 E0E0E0 E0E0E0 E0E0E0 E0E0E0 E0E0E0 E0E0E0 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 16 0 BBX 11 14 3 0 BITMAP E780 EFC0 F8E0 F0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 16 0 BBX 13 14 1 0 BITMAP 0F80 3FE0 78F0 7070 E038 E038 E038 E038 E038 E038 7070 78F0 3FE0 0F80 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 3 -5 BITMAP E780 EFE0 F8E0 F0F0 E070 E070 E070 E070 E070 E070 E0E0 F1E0 FFC0 E780 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 2 -5 BITMAP 1E70 3FF0 78F0 7070 E070 E070 E070 E070 E070 E070 F0F0 71F0 7F70 1E70 0070 0070 0070 0070 0070 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 11 0 BBX 8 14 2 0 BITMAP E7 EF F8 F0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 13 0 BBX 9 14 2 0 BITMAP 3F00 7F00 F100 E000 E000 F800 7E00 3F00 0780 0380 0380 8780 FF00 7E00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 10 0 BBX 9 17 0 0 BITMAP 3800 3800 3800 FF80 FF80 3800 3800 3800 3800 3800 3800 3800 3800 3800 3C00 1F80 0F80 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 16 0 BBX 11 14 2 0 BITMAP E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E1E0 E3E0 7EE0 3CE0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 13 0 BBX 13 14 0 0 BITMAP E018 E030 7030 7070 7060 3860 38C0 3CC0 1DC0 1D80 1F80 0F00 0F00 0700 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 20 0 BBX 20 14 0 0 BITMAP C06030 60F060 60F060 60F060 71F0C0 3198C0 3198C0 319980 1B1D80 1B0D80 1B0F00 1E0F00 0E0F00 0E0600 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 1 0 BITMAP E01C 3030 3870 1C60 0CC0 07C0 0780 0780 0F80 1CC0 1860 3070 7038 E01C ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 14 0 BBX 13 19 0 -5 BITMAP E018 F030 7030 7070 7860 3860 38C0 1CC0 1DC0 1D80 0F80 0F00 0F00 0700 0600 0600 0E00 0C00 1C00 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 15 0 BBX 12 14 1 0 BITMAP FFF0 FFF0 0060 00C0 0180 0380 0700 0E00 1C00 3800 3000 6000 FFF0 FFF0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 8 0 BBX 7 23 0 -4 BITMAP 0E 1E 38 30 30 38 18 18 18 18 10 E0 F0 18 18 18 18 38 30 30 38 1E 06 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 7 0 BBX 2 23 2 -4 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 8 0 BBX 7 23 1 -4 BITMAP C0 F0 38 18 18 38 30 30 30 30 1E 0E 10 30 30 30 30 38 18 18 38 F0 E0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 16 0 BBX 15 6 1 5 BITMAP 3C06 7E06 6786 C3CC C0FC C078 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 8 0 BBX 2 19 3 -5 BITMAP C0 C0 C0 00 00 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 16 0 BBX 11 19 2 0 BITMAP 0600 0600 0FE0 3FE0 7E20 7600 E600 E600 E600 E600 E600 E600 E600 7600 7620 3FE0 1FC0 0600 0600 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 3 0 BITMAP 03F0 0FF0 0E10 1C00 1C00 1C00 1C00 1C00 FF80 FF80 1C00 1C00 1C00 1C00 1C00 3800 7000 FFF0 FFF0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 1 1 BITMAP 4004 E00E 77DC 3FF8 1C70 1830 3018 3018 3018 3018 3018 1830 1C70 3FF8 77DC E00E 4004 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 1 0 BITMAP F00E 700C 7818 3838 3C30 1C70 0E60 0FC0 07C0 0780 3FF0 3FF0 0380 3FF0 3FF0 0380 0380 0380 0380 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 7 0 BBX 2 23 2 -4 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 00 00 00 00 00 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 16 0 BBX 11 24 3 -5 BITMAP 1FC0 7FC0 6040 C000 C000 E000 F800 7E00 7F80 CFC0 C1E0 C0E0 E060 F060 7E40 3FC0 0FC0 03E0 00E0 0060 0060 C0E0 FFC0 7F00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 16 0 BBX 7 2 4 17 BITMAP C6 C6 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 22 0 BBX 20 19 1 0 BITMAP 01F800 07FE00 1E0780 3801C0 70F0C0 63F860 638860 C70030 C60030 C60030 C60030 C70030 638860 63F860 70F0C0 3801C0 1E0780 07FE00 01F800 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 9 BITMAP 7E00 7F00 4700 0300 3F00 7F00 E300 C300 FF80 7B80 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 14 0 BBX 11 12 2 1 BITMAP 0C40 0CE0 18C0 3180 7380 E700 E700 7380 3180 18C0 0CE0 0C40 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 16 0 BBX 15 7 1 4 BITMAP FFFE FFFE 0006 0006 0006 0006 0006 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 8 0 BBX 6 2 1 7 BITMAP FC FC ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 16 0 BBX 11 12 3 7 BITMAP 1F00 3F80 71C0 FFE0 DB60 DF60 DE60 DF60 FBE0 71C0 3F80 1F00 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 16 0 BBX 7 2 4 17 BITMAP FE FE ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 7 0 BBX 4 5 2 14 BITMAP 60 90 90 90 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 16 0 BBX 16 16 0 0 BITMAP 0180 0180 0180 0180 0180 FFFF FFFF 0180 0180 0180 0180 0180 0000 0000 FFFF FFFF ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 10 0 BBX 7 11 -16 8 BITMAP 7C FE 8E 06 0E 1C 38 70 60 FE FE ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 10 0 BBX 7 11 -16 8 BITMAP 7C FE 86 06 78 78 06 06 8E FE F8 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 16 0 BBX 6 4 6 15 BITMAP 1C 38 70 E0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 16 0 BBX 11 18 3 -4 BITMAP E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E1E0 E3E0 FEE0 FCE0 E000 E000 E000 E000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 16 0 BBX 10 23 3 -4 BITMAP 3FC0 7FC0 FEC0 FEC0 FEC0 FEC0 FEC0 7EC0 3EC0 0EC0 06C0 06C0 06C0 06C0 06C0 06C0 06C0 06C0 06C0 06C0 06C0 06C0 06C0 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 16 0 BBX 3 3 7 7 BITMAP E0 E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 16 0 BBX 4 6 6 -5 BITMAP 60 40 70 30 30 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 10 0 BBX 4 11 -17 8 BITMAP F0 F0 30 30 30 30 30 30 30 30 30 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 9 BITMAP 3E00 7F00 6700 C380 C380 C380 C380 6700 7F00 3E00 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 14 0 BBX 11 12 1 1 BITMAP 4600 E600 6300 3180 39C0 1CE0 1CE0 39C0 3180 6300 E600 4600 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 21 0 BBX 19 19 6 0 BITMAP F00380 F00700 300600 300E00 301C00 301800 303000 307000 30E380 30C780 31C780 038D80 031D80 063980 0E3FE0 1C3FE0 180180 380180 700180 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 21 0 BBX 17 19 6 0 BITMAP F00380 F00700 300600 300E00 301C00 301800 303000 307000 30FF00 30FF80 31E380 038180 030380 060700 0E0E00 1C1C00 181800 383F80 703F80 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 21 0 BBX 19 19 6 0 BITMAP 7C0380 FE0700 860600 060E00 781C00 781800 063000 067000 8EE380 FEC780 F9C780 038D80 031D80 063980 0E3FE0 1C3FE0 180180 380180 700180 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 11 0 BBX 10 19 0 -5 BITMAP 0E00 0E00 0E00 0000 0000 0E00 0E00 0E00 0C00 1C00 3800 7000 6000 E000 E000 E000 F040 7FC0 1F80 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 18 0 BBX 17 24 0 0 BITMAP 070000 038000 01C000 00E000 000000 01C000 01E000 03E000 03E000 037000 067000 067000 063800 0C3800 0C3C00 1C1C00 181C00 1FFE00 3FFE00 300E00 700700 600700 600380 C00380 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 18 0 BBX 17 24 0 0 BITMAP 007000 00E000 01C000 038000 000000 01C000 01E000 03E000 03E000 037000 067000 067000 063800 0C3800 0C3C00 1C1C00 181C00 1FFE00 3FFE00 300E00 700700 600700 600380 C00380 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 18 0 BBX 17 24 0 0 BITMAP 01E000 01E000 033000 061800 000000 01C000 01E000 03E000 03E000 037000 067000 067000 063800 0C3800 0C3C00 1C1C00 181C00 1FFE00 3FFE00 300E00 700700 600700 600380 C00380 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 18 0 BBX 17 23 0 0 BITMAP 038800 07F800 067000 000000 01C000 01E000 03E000 03E000 037000 067000 067000 063800 0C3800 0C3C00 1C1C00 181C00 1FFE00 3FFE00 300E00 700700 600700 600380 C00380 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 18 0 BBX 17 22 0 0 BITMAP 063000 063000 000000 01C000 01E000 03E000 03E000 037000 067000 067000 063800 0C3800 0C3C00 1C1C00 181C00 1FFE00 3FFE00 300E00 700700 600700 600380 C00380 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 18 0 BBX 17 24 0 0 BITMAP 00C000 012000 012000 00C000 000000 01C000 01E000 03E000 03E000 037000 067000 067000 063800 0C3800 0C3C00 1C1C00 181C00 1FFE00 3FFE00 300E00 700700 600700 600380 C00380 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 24 0 BBX 23 19 0 0 BITMAP 001FFC 003FFC 003E00 006E00 006E00 00CE00 00CE00 018E00 038FF8 030FF8 060E00 060E00 0FFE00 1FFE00 180E00 380E00 300E00 600FFE E00FFE ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 18 0 BBX 15 24 1 -5 BITMAP 03FC 0FFE 3E06 3800 7000 7000 E000 E000 E000 E000 E000 E000 E000 7000 7000 3802 3E0E 1FFE 03F8 0100 01C0 00C0 00C0 0380 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 14 0 BBX 11 24 2 0 BITMAP 7000 3800 1C00 0E00 0000 FFC0 FFC0 E000 E000 E000 E000 E000 E000 FF80 FF80 E000 E000 E000 E000 E000 E000 E000 FFE0 FFE0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 14 0 BBX 11 24 2 0 BITMAP 0700 0E00 1C00 3800 0000 FFC0 FFC0 E000 E000 E000 E000 E000 E000 FF80 FF80 E000 E000 E000 E000 E000 E000 E000 FFE0 FFE0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 14 0 BBX 11 24 2 0 BITMAP 1E00 1E00 3300 6180 0000 FFC0 FFC0 E000 E000 E000 E000 E000 E000 FF80 FF80 E000 E000 E000 E000 E000 E000 E000 FFE0 FFE0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 14 0 BBX 11 22 2 0 BITMAP 6300 6300 0000 FFC0 FFC0 E000 E000 E000 E000 E000 E000 FF80 FF80 E000 E000 E000 E000 E000 E000 E000 FFE0 FFE0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 7 0 BBX 6 24 4 0 BITMAP E0 70 38 1C 00 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 7 0 BBX 6 24 3 0 BITMAP 1C 38 70 E0 00 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 70 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 7 0 BBX 8 24 4 0 BITMAP 3C 3C 66 C3 00 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 7 0 BBX 7 22 4 0 BITMAP C6 C6 00 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 19 0 BBX 19 19 0 0 BITMAP 1FF800 1FFE00 1C0F80 1C0380 1C01C0 1C01C0 1C00E0 1C00E0 FFC0E0 FFC0E0 1C00E0 1C00E0 1C00E0 1C01C0 1C01C0 1C0380 1C0F00 1FFE00 1FF800 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 19 0 BBX 14 23 3 0 BITMAP 0E20 1FE0 19C0 0000 E00C F00C F00C F80C FC0C DC0C DE0C CF0C C70C C78C C38C C1CC C1EC C0EC C0FC C07C C03C C03C C01C ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 20 0 BBX 18 24 1 0 BITMAP 070000 038000 01C000 00E000 000000 03F000 0FFC00 1E1E00 380700 700380 700380 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 700380 700380 380700 1C0E00 0FFC00 03F000 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 20 0 BBX 18 24 1 0 BITMAP 003800 007000 00E000 01C000 000000 03F000 0FFC00 1E1E00 380700 700380 700380 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 700380 700380 380700 1C0E00 0FFC00 03F000 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 20 0 BBX 18 24 1 0 BITMAP 01E000 01E000 033000 061800 000000 03F000 0FFC00 1E1E00 380700 700380 700380 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 700380 700380 380700 1C0E00 0FFC00 03F000 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 20 0 BBX 18 23 1 0 BITMAP 038800 07F800 067000 000000 03F000 0FFC00 1E1E00 380700 700380 700380 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 700380 700380 380700 1C0E00 0FFC00 03F000 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 20 0 BBX 18 22 1 0 BITMAP 063000 063000 000000 03F000 0FFC00 1E1E00 380700 700380 700380 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 700380 700380 380700 1C0E00 0FFC00 03F000 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 16 0 BBX 15 16 1 0 BITMAP 4004 E00E 701C 3838 1C70 0EE0 06C0 0380 0380 06C0 0EE0 1C70 3838 701C E00E 4004 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 20 0 BBX 18 19 1 0 BITMAP 03F1C0 0FFF80 1E1F00 380700 700F80 701F80 E039C0 E071C0 E061C0 E0C1C0 E181C0 E381C0 E701C0 7E0380 7C0380 380700 3C0E00 7FFC00 E3F000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 18 0 BBX 13 24 3 0 BITMAP 1C00 0E00 0700 0380 0000 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 7038 7870 3FE0 1FC0 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 18 0 BBX 13 24 3 0 BITMAP 01C0 0380 0700 0E00 0000 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 7038 7870 3FE0 1FC0 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 18 0 BBX 13 24 3 0 BITMAP 0780 0780 0CC0 1860 0000 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 7038 7870 3FE0 1FC0 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 18 0 BBX 13 22 3 0 BITMAP 18C0 18C0 0000 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 E018 7038 7870 3FE0 1FC0 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 16 0 BBX 16 24 0 0 BITMAP 0070 00E0 01C0 0380 0000 E007 7006 780C 381C 3C18 1C30 1E30 0F60 07E0 07C0 0380 0380 0380 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 14 0 BBX 11 19 3 0 BITMAP E000 E000 E000 E000 FF80 FFC0 E1E0 E0E0 E0E0 E0E0 E0E0 E1E0 E3C0 FF80 FE00 E000 E000 E000 E000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 16 0 BBX 13 20 2 0 BITMAP 3F00 7F80 F3C0 E1C0 E1C0 E180 E300 E700 E600 E700 E780 E3C0 E1F0 E0F0 E038 E018 E018 E438 E7F0 E3E0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 14 0 BBX 12 19 2 0 BITMAP 3800 1C00 0E00 0700 0000 1F80 7FC0 41C0 01C0 01C0 01C0 1FC0 7FC0 F1C0 E1C0 E1C0 E3C0 7EF0 3C70 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 14 0 BBX 12 19 2 0 BITMAP 0380 0700 0E00 1C00 0000 1F80 7FC0 41C0 01C0 01C0 01C0 1FC0 7FC0 F1C0 E1C0 E1C0 E3C0 7EF0 3C70 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 14 0 BBX 12 19 2 0 BITMAP 0F00 0F00 1980 30C0 0000 1F80 7FC0 41C0 01C0 01C0 01C0 1FC0 7FC0 F1C0 E1C0 E1C0 E3C0 7EF0 3C70 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 2 0 BITMAP 1C40 3FC0 3380 0000 1F80 7FC0 41C0 01C0 01C0 01C0 1FC0 7FC0 F1C0 E1C0 E1C0 E3C0 7EF0 3C70 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 2 0 BITMAP 3180 3180 0000 1F80 7FC0 41C0 01C0 01C0 01C0 1FC0 7FC0 F1C0 E1C0 E1C0 E3C0 7EF0 3C70 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 14 0 BBX 12 19 2 0 BITMAP 0600 0900 0900 0600 0000 1F80 7FC0 41C0 01C0 01C0 01C0 1FC0 7FC0 F1C0 E1C0 E1C0 E3C0 7EF0 3C70 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 22 0 BBX 19 14 1 0 BITMAP 1F9F00 7FFF80 60F1C0 00F0C0 00E0E0 00E0E0 0FFFE0 7FFFE0 70E000 E0E000 E0F000 F17820 7E3FE0 3C0FC0 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 13 0 BBX 11 19 1 -5 BITMAP 0FE0 3FE0 7820 7000 E000 E000 E000 E000 E000 E000 7000 7820 3FE0 0FC0 0400 0700 0300 0300 0E00 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 14 0 BBX 12 19 1 0 BITMAP 1C00 0E00 0700 0380 0000 0F80 3FC0 70E0 7060 E070 E070 FFF0 FFF0 E000 E000 7000 7C10 1FF0 0FE0 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 14 0 BBX 12 19 1 0 BITMAP 01C0 0380 0700 0E00 0000 0F80 3FC0 70E0 7060 E070 E070 FFF0 FFF0 E000 E000 7000 7C10 1FF0 0FE0 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 14 0 BBX 12 19 1 0 BITMAP 0F00 0F00 1980 30C0 0000 0F80 3FC0 70E0 7060 E070 E070 FFF0 FFF0 E000 E000 7000 7C10 1FF0 0FE0 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 1 0 BITMAP 18C0 18C0 0000 0F80 3FC0 70E0 7060 E070 E070 FFF0 FFF0 E000 E000 7000 7C10 1FF0 0FE0 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 8 0 BBX 6 19 4 0 BITMAP E0 70 38 1C 00 38 38 38 38 38 38 38 38 38 38 38 38 38 38 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 8 0 BBX 6 19 3 0 BITMAP 1C 38 70 E0 00 70 70 70 70 70 70 70 70 70 70 70 70 70 70 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 8 0 BBX 8 19 4 0 BITMAP 3C 3C 66 C3 00 38 38 38 38 38 38 38 38 38 38 38 38 38 38 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 8 0 BBX 7 17 4 0 BITMAP C6 C6 00 38 38 38 38 38 38 38 38 38 38 38 38 38 38 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 1 0 BITMAP FF00 8F80 3E00 3980 21C0 0FE0 3FE0 78F0 7070 E038 E038 E038 E038 E038 E038 7070 78F0 3FE0 0F80 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 16 0 BBX 11 18 3 0 BITMAP 3880 7F80 6700 0000 E780 EFC0 F8E0 F0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 1 0 BITMAP 1C00 0E00 0700 0380 0000 0F80 3FE0 78F0 7070 E038 E038 E038 E038 E038 E038 7070 78F0 3FE0 0F80 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 1 0 BITMAP 01C0 0380 0700 0E00 0000 0F80 3FE0 78F0 7070 E038 E038 E038 E038 E038 E038 7070 78F0 3FE0 0F80 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 1 0 BITMAP 0780 0780 0CC0 1860 0000 0F80 3FE0 78F0 7070 E038 E038 E038 E038 E038 E038 7070 78F0 3FE0 0F80 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 16 0 BBX 13 18 1 0 BITMAP 0E20 1FE0 19C0 0000 0F80 3FE0 78F0 7070 E038 E038 E038 E038 E038 E038 7070 78F0 3FE0 0F80 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 16 0 BBX 13 17 1 0 BITMAP 18C0 18C0 0000 0F80 3FE0 78F0 7070 E038 E038 E038 E038 E038 E038 7070 78F0 3FE0 0F80 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 16 0 BBX 15 14 1 0 BITMAP 0380 0380 0380 0000 0000 0000 FFFE FFFE 0000 0000 0000 0380 0380 0380 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 16 0 BBX 13 14 1 0 BITMAP 0FB8 3FF0 78F0 70F0 E1F8 E3B8 E338 E638 EE38 FC38 7870 78F0 7FE0 EF80 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 16 0 BBX 11 19 2 0 BITMAP 3800 1C00 0E00 0700 0000 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E1E0 E3E0 7EE0 3CE0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 16 0 BBX 11 19 2 0 BITMAP 0380 0700 0E00 1C00 0000 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E1E0 E3E0 7EE0 3CE0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 16 0 BBX 11 19 2 0 BITMAP 0F00 0F00 1980 30C0 0000 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E1E0 E3E0 7EE0 3CE0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 16 0 BBX 11 17 2 0 BITMAP 3180 3180 0000 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E1E0 E3E0 7EE0 3CE0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 14 0 BBX 13 24 0 -5 BITMAP 01C0 0380 0700 0E00 0000 E018 F030 7030 7070 7860 3860 38C0 1CC0 1DC0 1D80 0F80 0F00 0F00 0700 0600 0600 0E00 0C00 1C00 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 16 0 BBX 12 23 3 -5 BITMAP E000 E000 E000 E000 E780 EFE0 F8E0 F0F0 E070 E070 E070 E070 E070 E070 E0E0 F1E0 FFC0 EF80 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 14 0 BBX 13 22 0 -5 BITMAP 18C0 18C0 0000 E018 F030 7030 7070 7860 3860 38C0 1CC0 1DC0 1D80 0F80 0F00 0F00 0700 0600 0600 0E00 0C00 1C00 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 13 20 1 0 BITMAP 0FF8 1FF8 3838 3838 3838 3838 FE38 FE38 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 10 2 2 7 BITMAP FFC0 FFC0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 10 23 3 -4 BITMAP 0C00 0C00 0C00 0C00 0C00 0C00 0C00 FFC0 FFC0 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 13 24 1 0 BITMAP 1860 0CC0 0780 0780 0000 7FF8 7FF8 0078 0070 00F0 01E0 01C0 03C0 0780 0700 0F00 1E00 1C00 3C00 7800 7000 F000 FFF8 FFF8 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 24 0 BBX 20 14 2 0 BITMAP 0F8F80 3FDFE0 78D8E0 70F870 E07070 E07070 E07FF0 E07FF0 E07000 E07000 70F800 78DC10 3FDFF0 0F87E0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 16 22 0 0 BITMAP 0630 0630 0000 E007 7006 780C 381C 3C18 1C30 1E30 0F60 07E0 07C0 0380 0380 0380 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 3 14 2 0 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 9 19 0 0 BITMAP 1C00 1C00 1C00 1C00 1C00 1C80 1F80 1F00 1C00 7C00 DC00 9C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 19 0 0 BITMAP 1C00 1C00 1C00 1C00 1C00 1C00 1C80 1F80 1F00 3C00 FC00 DC00 9C00 1C00 1C00 1C00 1C00 1FFC 1FFC ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 10 23 3 -4 BITMAP 0C00 0C00 0C00 0C00 0C00 0C00 0C00 FFC0 FFC0 0C00 0C00 0C00 0C00 0C00 0C00 FFC0 FFC0 0C00 0C00 0C00 0C00 0C00 0C00 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 13 20 1 0 BITMAP 0F80 1FB8 38B8 3838 3800 3800 FFF8 FFF8 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 6 12 1 1 BITMAP 40 E0 60 30 38 1C 1C 38 30 60 E0 40 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 26 0 BBX 24 19 1 0 BITMAP 03F7FE 0FFFFE 3C1F00 380F00 700700 700700 E00700 E00700 E007FC E007FC E00700 E00700 E00700 700700 700700 380F00 3C1F00 0FFFFF 03F7FF ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 26 0 BBX 23 2 2 7 BITMAP FFFFFE FFFFFE ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 8 4 4 15 BITMAP C3 66 3C 3C ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 4 4 6 -4 BITMAP 60 C0 C0 70 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 8 4 5 15 BITMAP 1B 36 6C D8 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 6 12 2 1 BITMAP 08 1C 18 30 70 E0 E0 70 30 18 1C 08 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 2 3 7 16 BITMAP C0 C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 8 4 4 15 BITMAP C3 C3 7E 3C ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 8 8 4 4 BITMAP FF FF FF FF FF FF FF FF ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 8 3 4 16 BITMAP 71 FF CE ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 8 4 4 15 BITMAP 3C 3C 66 C3 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 7 6 1 13 BITMAP 66 CC CC EE EE EE ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 13 BITMAP F0 F0 F0 60 60 60 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 9 19 2 0 BITMAP 6180 3300 1E00 1E00 0000 3F00 7F00 F100 E000 E000 F800 7E00 3F00 0780 0380 0380 8780 FF00 7E00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 4 4 6 16 BITMAP 60 90 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 8 1 -4 BITMAP E0 E0 E0 E0 60 60 40 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 12 23 3 -4 BITMAP 01F0 07F0 0600 0E00 0E00 1C00 1C00 1C00 FF00 FF00 1C00 1C00 3800 3800 3800 3800 7800 7000 7000 7000 7000 E000 E000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 20 10 0 9 BITMAP FF3870 FF3870 183CF0 183CF0 1837F0 1837B0 1837B0 183330 183330 183030 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 16 19 -7 0 BITMAP 0007 000E 000C 001C 0038 0030 0060 00E0 01C0 0180 0380 0700 0600 0C00 1C00 3800 3000 7000 E000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 6 4 4 15 BITMAP E0 70 38 1C ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 26 0 BBX 26 19 0 0 BITMAP 3C038000 7E070000 E7060000 C30C0000 C31C0000 C3380000 E7300000 7E600000 3CE00000 01DE0F00 03BF1F80 0373B9C0 0661B0C0 0E61B0C0 1C61B0C0 1861B0C0 3073B9C0 703F1F80 E01E0F00 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 26 0 BBX 20 3 3 0 BITMAP E07070 E07070 E07070 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 7 6 1 13 BITMAP EE EE EE 66 66 CC ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 11 24 1 0 BITMAP 30C0 1980 0F00 0F00 0000 1F80 7FC0 70C0 E000 E000 E000 F000 7C00 3E00 1F80 07C0 03C0 01E0 00E0 00E0 00E0 C1C0 FF80 7F00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 7 8 1 -5 BITMAP EE EE EE 66 66 66 CC 88 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 12 19 1 0 BITMAP 30C0 1980 0F00 0F00 0000 FFF0 FFF0 0060 00C0 0180 0380 0700 0E00 1C00 3800 3000 6000 FFF0 FFF0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/luRS24.bdf100644 1750 1750 137522 5413747526 15102 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-Lucida-Medium-R-Normal-Sans-34-240-100-100-P-191-ISO8859-1 SIZE 24 100 100 FONTBOUNDINGBOX 84 39 -22 -7 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "Lucida" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 34 POINT_SIZE 240 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 191 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 31 FONT_DESCENT 8 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 11 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 11 0 BBX 3 25 4 0 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 00 00 00 E0 E0 E0 E0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 13 0 BBX 8 8 2 18 BITMAP E7 E7 E7 E7 E7 E7 E7 E7 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 21 0 BBX 21 25 0 0 BITMAP 0071C0 00E1C0 00E1C0 00E380 00E380 01C380 01C380 3FFFF8 3FFFF8 3FFFF8 038700 038F00 038E00 078E00 070E00 FFFFE0 FFFFE0 FFFFE0 0E1C00 0E1C00 0E3800 0E3800 1C3800 1C3800 1C7000 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 21 0 BBX 15 30 3 -3 BITMAP 0180 0180 0FF8 3FFE 3FCE 7D80 7980 7180 7180 7180 3980 3F80 1F80 0F80 03E0 01F0 01F8 01BC 019E 018E 018E 018E 019E C1BE FFFC FFF8 1FF0 01C0 0180 0180 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 23 0 BBX 21 25 1 0 BITMAP 1E0078 7F8070 7380F0 E1C1E0 E1C3C0 E1C380 E1C780 E1CF00 E1CE00 739E00 7FBC00 1E7800 0073C0 00F7E0 01EE70 03DC38 039C38 079C38 0F1C38 0E1C38 1E1C38 3C1C38 780E70 7007E0 F003C0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 24 0 BBX 21 25 1 0 BITMAP 00F800 03FE00 03FE00 07CF00 078700 078700 078700 078E00 03FE00 03FC00 0FF800 1FE000 3EF078 78F078 707878 F03C70 F03C70 F01EF0 F00FE0 F807E0 7C03C0 7E0780 3FFFC0 1FFCE0 07F0F8 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 8 0 BBX 5 10 1 16 BITMAP F8 F8 F8 F8 38 38 38 30 70 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 11 0 BBX 9 32 1 -6 BITMAP 0080 0180 0380 0700 0E00 1C00 1C00 3800 3800 7800 7800 7000 F000 F000 F000 F000 F000 F000 F000 F000 7000 7000 7800 3800 3800 1C00 1C00 0E00 0700 0380 0180 0080 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 11 0 BBX 9 32 1 -6 BITMAP 8000 C000 E000 7000 3800 1C00 1C00 0E00 0E00 0F00 0F00 0700 0780 0780 0780 0780 0780 0780 0780 0780 0700 0700 0F00 0E00 0E00 1C00 1C00 3800 7000 E000 C000 8000 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 16 0 BBX 13 12 2 13 BITMAP 0700 0700 0700 4210 F278 FDF0 0880 0D00 0D80 18C0 38E0 1040 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 21 0 BBX 21 21 0 0 BITMAP 007000 007000 007000 007000 007000 007000 007000 007000 007000 FFFFF8 FFFFF8 FFFFF8 007000 007000 007000 007000 007000 007000 007000 007000 007000 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 11 0 BBX 5 11 3 -6 BITMAP F8 F8 F8 F8 F8 38 38 38 70 F0 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 21 0 BBX 20 3 1 9 BITMAP FFFFF0 FFFFF0 FFFFF0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 11 0 BBX 4 4 3 0 BITMAP F0 F0 F0 F0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 17 0 BBX 16 32 0 -6 BITMAP 0007 000F 000E 000E 001C 001C 003C 0038 0078 0070 0070 00F0 00E0 01E0 01C0 01C0 0380 0380 0780 0700 0F00 0E00 0E00 1C00 1C00 3C00 3800 3800 7000 7000 F000 E000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 21 0 BBX 17 25 2 0 BITMAP 03E000 0FF800 1FFC00 3E3E00 3C1E00 780F00 780F00 780F00 F00780 F00780 F00780 F00780 F00780 F00780 F00780 F00780 F00780 780F00 780F00 780F00 3C1E00 3E3E00 1FFC00 0FF800 03E000 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 21 0 BBX 8 25 5 0 BITMAP FF FF FF 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 21 0 BBX 15 25 3 0 BITMAP 0FC0 7FF0 7FF8 707C 403E 001E 001E 001E 001E 001E 003C 007C 00F8 01F0 03E0 0780 0F00 1E00 3C00 7800 7800 F000 FFFE FFFE FFFE ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 21 0 BBX 15 25 3 0 BITMAP 3FC0 FFF0 FFF8 C0FC 007C 003C 003C 003C 0078 00F0 3FE0 3F00 3FF0 00F8 003C 001E 001E 001E 001E 001E 003E C0FC FFF8 FFF0 7FC0 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 21 0 BBX 17 25 2 0 BITMAP 003C00 007C00 007C00 00FC00 01FC00 01DC00 03DC00 079C00 071C00 0F1C00 1E1C00 3C1C00 381C00 781C00 F01C00 FFFF80 FFFF80 FFFF80 001C00 001C00 001C00 001C00 001C00 001C00 001C00 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 21 0 BBX 13 25 4 0 BITMAP FFF8 FFF8 FFF8 E000 E000 E000 E000 E000 E000 FE00 FFC0 FFE0 03F0 00F0 00F8 0078 0078 0078 0078 00F8 00F0 83F0 FFE0 FFC0 FF00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 21 0 BBX 17 25 2 0 BITMAP 01FC00 07FF00 0FFF00 1F0300 3C0000 7C0000 780000 780000 F00000 F1F800 F3FC00 F7FE00 FE1F00 F80F00 F00780 F00780 F00780 700780 700780 780700 380F00 3E1E00 1FFE00 0FF800 03F000 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 21 0 BBX 16 25 4 0 BITMAP FFFF FFFF FFFF 000F 000E 001E 003C 0038 0078 00F0 00F0 01E0 03C0 03C0 0780 0F80 0F00 1F00 1E00 3E00 3C00 3C00 7C00 7800 7800 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 21 0 BBX 16 25 3 0 BITMAP 03E0 0FF8 1FF8 1C3C 381C 381C 381C 381C 3C38 1E30 0F60 07E0 1FF8 3DFC 787E 783F F01F F00F F00F F00F F81F 7C3E 7FFC 1FF8 07E0 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 21 0 BBX 17 25 2 0 BITMAP 07E000 1FF800 3FFC00 7C3E00 780F00 F00F00 F00700 F00780 F00780 F00780 F00780 780F80 7C1F80 3FF780 1FE780 0FC780 000700 000F00 000F00 001E00 001E00 607C00 7FF800 7FF000 1FC000 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 11 0 BBX 4 18 3 0 BITMAP F0 F0 F0 F0 00 00 00 00 00 00 00 00 00 00 F0 F0 F0 F0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 11 0 BBX 4 24 3 -6 BITMAP F0 F0 F0 F0 00 00 00 00 00 00 00 00 00 00 00 F0 F0 F0 70 70 70 60 E0 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 21 0 BBX 20 21 1 0 BITMAP 000010 000070 0001F0 0007F0 001FC0 007F00 01FC00 07F000 1FC000 3F0000 FC0000 3F0000 1FC000 07F000 01FC00 007E00 001F80 0007E0 0001F0 000070 000010 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 21 0 BBX 20 9 1 5 BITMAP FFFFF0 FFFFF0 FFFFF0 000000 000000 000000 FFFFF0 FFFFF0 FFFFF0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 21 0 BBX 20 21 1 0 BITMAP 800000 E00000 F80000 7E0000 1F8000 0FE000 03F800 00FE00 003F80 000FC0 0003F0 000FC0 003F80 00FE00 03F800 0FE000 3F8000 FE0000 F80000 E00000 800000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 14 0 BBX 14 25 0 0 BITMAP 3FC0 FFF0 FFF8 C0FC 007C 003C 003C 003C 0078 00F8 00F0 01E0 03C0 0780 0700 0F00 0F00 0F00 0F00 0000 0000 0F00 0F00 0F00 0F00 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 29 0 BBX 27 25 4 0 BITMAP 000FE000 007FFC00 01FFFE00 03F01F80 07C00780 0F0003C0 1E07E1C0 3C1FE0E0 383FE0E0 707040E0 70E0C0E0 F0E1C0E0 E0C3C0E0 E1C381C0 E1C6C3C0 E1CEE780 E1FCFF80 F1F8FE00 70F07C00 78000000 3C000000 1F80C000 0FFFC000 07FF8000 00FE0000 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 23 0 BBX 23 25 0 0 BITMAP 003C00 007C00 007E00 00FE00 00FE00 00FF00 01EF00 01CF80 03C780 038780 0387C0 0783C0 0703C0 0F01E0 0E01E0 0FFFF0 1FFFF0 1FFFF0 1C00F8 380078 38007C 78003C 70003C 70003E E0001E ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 20 0 BBX 15 25 3 0 BITMAP FFC0 FFF0 FFF8 F0FC F03C F03C F03C F03C F038 F070 F1E0 FFC0 FFC0 FFF0 F0F8 F03C F03E F01E F01E F01E F03E F07C FFFC FFF8 FFE0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 24 0 BBX 20 25 2 0 BITMAP 00FF00 03FFF0 0FFFF0 1F80F0 3E0010 3C0000 7C0000 780000 F80000 F00000 F00000 F00000 F00000 F00000 F00000 F00000 F80000 780000 7C0000 3C0000 3E0010 1F80F0 0FFFF0 03FFE0 00FF00 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 25 0 BBX 21 25 3 0 BITMAP FFF800 FFFE00 FFFF80 F00FC0 F003E0 F001F0 F000F0 F000F0 F000F8 F00078 F00078 F00078 F00078 F00078 F00078 F00078 F00070 F000F0 F000F0 F001E0 F003E0 F00FC0 FFFF80 FFFE00 FFF800 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 18 0 BBX 15 25 3 0 BITMAP FFFC FFFC FFFC F000 F000 F000 F000 F000 F000 F000 F000 FFF8 FFF8 FFF8 F000 F000 F000 F000 F000 F000 F000 F000 FFFE FFFE FFFE ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 18 0 BBX 14 25 3 0 BITMAP FFFC FFFC FFFC F000 F000 F000 F000 F000 F000 F000 F000 FFF0 FFF0 FFF0 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 25 0 BBX 20 25 2 0 BITMAP 00FF80 03FFF0 0FFFF0 1F80F0 3E0010 3C0000 7C0000 780000 F80000 F00000 F00000 F00000 F00000 F000F0 F000F0 F000F0 F800F0 7800F0 7800F0 3C00F0 3E00F0 1F80F0 0FFFF0 07FFF0 00FF80 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 25 0 BBX 19 25 3 0 BITMAP F001E0 F001E0 F001E0 F001E0 F001E0 F001E0 F001E0 F001E0 F001E0 F001E0 FFFFE0 FFFFE0 FFFFE0 F001E0 F001E0 F001E0 F001E0 F001E0 F001E0 F001E0 F001E0 F001E0 F001E0 F001E0 F001E0 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 10 0 BBX 4 25 3 0 BITMAP F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 11 0 BBX 11 31 -2 -6 BITMAP 01E0 01E0 01E0 01E0 01E0 01E0 01E0 01E0 01E0 01E0 01E0 01E0 01E0 01E0 01E0 01E0 01E0 01E0 01E0 01E0 01E0 01E0 01E0 01E0 01E0 01E0 03C0 83C0 FF80 FF00 FC00 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 22 0 BBX 19 25 3 0 BITMAP F00700 F00E00 F01E00 F03C00 F03800 F07800 F0F000 F1E000 F1C000 F3C000 F78000 FF0000 FF8000 FF8000 F7C000 F3E000 F1F000 F0F800 F0F800 F07C00 F03E00 F01F00 F01F80 F00F80 F007E0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 18 0 BBX 15 25 3 0 BITMAP F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 FFFE FFFE FFFE ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 29 0 BBX 23 25 3 0 BITMAP F8003E FC003E FC007E FC007E FE00FE FE00FE FE00FE EF01FE EF01DE EF81DE E7839E E7839E E7C39E E3C71E E3C71E E3E71E E1EE1E E1EE1E E1FE1E E0FC1E E0FC1E E0FC1E E0781E E0001E E0001E ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 25 0 BBX 19 25 3 0 BITMAP F000E0 F800E0 F800E0 FC00E0 FE00E0 FE00E0 FF00E0 EF80E0 E780E0 E7C0E0 E3E0E0 E1E0E0 E1F0E0 E0F8E0 E0F8E0 E07CE0 E03EE0 E03EE0 E01FE0 E00FE0 E00FE0 E007E0 E003E0 E003E0 E001E0 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 26 0 BBX 23 25 2 0 BITMAP 00FE00 07FFC0 0FFFE0 1F83F0 3E00F8 3C0078 78003C 78003C F8003E F0001E F0001E F0001E F0001E F0001E F0001E F0001E F8003E 78003C 78003C 3C0078 3E00F8 1F83F0 0FFFE0 07FFC0 00FE00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 19 0 BBX 15 25 3 0 BITMAP FFE0 FFF8 FFFC F07C F03E F01E F01E F01E F01E F03E F03C F0FC FFF8 FFF0 FFC0 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 26 0 BBX 25 31 2 -6 BITMAP 00FE0000 07FF8000 0FFFE000 1F83F000 3E00F800 3C007800 78003C00 78003C00 F8003C00 F0001E00 F0001E00 F0001E00 F0001E00 F0001E00 F0001E00 F0001E00 F8003E00 78003C00 78003C00 3C007C00 3E00F800 1F83F000 0FFFE000 07FFC000 00FF8000 0003F000 0001FE00 0000FF80 00003F00 00000F00 00000200 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 21 0 BBX 18 25 3 0 BITMAP FFE000 FFF800 FFFC00 F07E00 F03E00 F01E00 F01E00 F01E00 F01E00 F03C00 F03C00 F0F800 FFE000 FFC000 FFE000 F1F000 F0F000 F0F800 F07C00 F03E00 F03E00 F01F00 F00F80 F00F80 F007C0 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 18 0 BBX 15 25 2 0 BITMAP 0FF0 3FF8 7FF8 7C38 F008 F000 F000 F000 F800 7E00 3F80 1FC0 0FF0 03F8 00FC 007E 003E 001E 001E 001E 803E F07C FFF8 FFF0 3FC0 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 21 0 BBX 22 25 0 0 BITMAP FFFFFC FFFFFC FFFFFC 007800 007800 007800 007800 007800 007800 007800 007800 007800 007800 007800 007800 007800 007800 007800 007800 007800 007800 007800 007800 007800 007800 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 24 0 BBX 18 25 3 0 BITMAP F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F803C0 780380 7E0780 3FFF00 1FFE00 07F800 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 22 0 BBX 21 25 1 0 BITMAP F00038 F00078 F80070 780070 7800F0 3C00E0 3C00E0 3E01C0 1E01C0 1E01C0 1F0380 0F0380 0F0380 0F8700 078700 078700 03CE00 03CE00 03FE00 01FC00 01FC00 01FC00 00F800 00F800 00F000 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 29 0 BBX 29 25 0 0 BITMAP F0078038 F00F8038 F00F8070 780F8070 780FC070 781FC0F0 781FC0E0 3C1FC0E0 3C1FE0E0 3C1DE1E0 3C39E1C0 1E39E1C0 1E39F1C0 1E38F380 1E70F380 0F70F380 0F70FB80 0F707F00 0FF07F00 07E07F00 07E07E00 07E07E00 07E03E00 03C03E00 03C03C00 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 21 0 BBX 20 25 0 0 BITMAP F800F0 7C01E0 3C01C0 3E03C0 1F0780 1F0700 0F8F00 079E00 07DC00 03FC00 01F800 01F000 00F800 01F800 01FC00 03FC00 07BE00 071F00 0F0F00 1E0F80 1C07C0 3C07C0 7803E0 7001E0 F001F0 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 21 0 BBX 21 25 0 0 BITMAP F00078 780070 7C00F0 3C01E0 3E01C0 1E03C0 1F0380 0F8700 078F00 07CE00 03DE00 03FC00 01F800 01F800 00F000 00F000 00F000 00F000 00F000 00F000 00F000 00F000 00F000 00F000 00F000 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 21 0 BBX 17 25 2 0 BITMAP 7FFF80 7FFF80 7FFF80 000F80 001F00 001F00 003E00 007C00 007C00 00F800 01F000 01F000 03E000 07C000 07C000 0F8000 1F0000 1F0000 3E0000 7C0000 7C0000 F80000 FFFF80 FFFF80 FFFF80 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 11 0 BBX 7 32 3 -6 BITMAP FE FE FE E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 FE FE FE ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 17 0 BBX 16 32 0 -6 BITMAP E000 F000 7000 7000 3800 3800 3C00 1C00 1C00 0E00 0E00 0F00 0700 0780 0380 0380 01C0 01C0 01E0 00E0 00F0 0070 0070 0078 0038 003C 001C 001C 000E 000E 000F 0007 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 11 0 BBX 7 32 1 -6 BITMAP FE FE FE 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E FE FE FE ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 21 0 BBX 20 22 1 4 BITMAP 002000 006000 006000 006000 00F000 00F000 01F800 01F800 039C00 039C00 079E00 070E00 0F0F00 0E0700 1E0780 1C0380 3C03C0 3801C0 7801E0 7000E0 F000F0 E00070 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 17 0 BBX 14 3 2 -4 BITMAP FFFC FFFC FFFC ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 8 0 BBX 5 10 1 16 BITMAP 38 70 E0 E0 E0 F8 F8 F8 F8 F8 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 19 0 BBX 17 18 1 0 BITMAP 07F000 3FF800 3FFC00 307C00 203C00 003C00 003C00 07FC00 1FFC00 7FFC00 7C3C00 F83C00 F03C00 F03C00 F87C00 7FFF80 7FCF80 1F0780 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 21 0 BBX 16 26 3 0 BITMAP F000 F000 F000 F000 F000 F000 F000 F000 F1F0 F3FC F7FC FC3E F81E F00F F00F F00F F00F F00F F00F F00F F01E F81E FC3E FFFC F7F8 E1E0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 17 0 BBX 14 18 2 0 BITMAP 07FC 1FFC 3FFC 7E0C 7C00 7800 F000 F000 F000 F000 F000 F000 7800 7C00 3E04 3FFC 0FFC 07F0 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 21 0 BBX 16 26 2 0 BITMAP 000F 000F 000F 000F 000F 000F 000F 000F 078F 1FEF 3FFF 7C3F 781F 780F F00F F00F F00F F00F F00F F00F F00F 781F 7C3F 3FEF 3FCF 0F8F ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 19 0 BBX 15 18 2 0 BITMAP 07E0 1FF0 3FF8 3C3C 781C 701E F01E FFFE FFFE FFFE F000 F000 7800 7C00 3E06 1FFE 0FFE 03F8 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 12 0 BBX 13 27 1 0 BITMAP 03F0 07F8 0FF8 0F08 1E00 1E00 1E00 1E00 1E00 FFE0 FFE0 FFE0 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 21 0 BBX 16 25 2 -7 BITMAP 078F 1FEF 3FFF 7C3F 781F 780F F00F F00F F00F F00F F00F F00F F00F 781F 7C3F 3FEF 1FCF 0F8F 000F 000E 001E 203E 3FFC 7FF8 1FE0 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 21 0 BBX 15 26 3 0 BITMAP F000 F000 F000 F000 F000 F000 F000 F000 F0F0 F3FC F7FC FE3E FC1E F81E F01E F01E F01E F01E F01E F01E F01E F01E F01E F01E F01E F01E ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 10 0 BBX 4 25 3 0 BITMAP F0 F0 F0 F0 00 00 00 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 10 0 BBX 10 32 -2 -7 BITMAP 03C0 03C0 03C0 03C0 0000 0000 0000 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 8780 FF80 FF00 7E00 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 20 0 BBX 18 26 3 0 BITMAP F00000 F00000 F00000 F00000 F00000 F00000 F00000 F00000 F01E00 F03C00 F07800 F07000 F0F000 F1E000 F3C000 F78000 FF8000 FFC000 F7E000 F3F000 F1F000 F0F800 F07C00 F03E00 F01F00 F00FC0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 10 0 BBX 4 26 3 0 BITMAP F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 32 0 BBX 26 18 3 0 BITMAP F0F81E00 F3FC7F80 F7FCFF80 FE3FC7C0 FC1F83C0 F81F03C0 F01E03C0 F01E03C0 F01E03C0 F01E03C0 F01E03C0 F01E03C0 F01E03C0 F01E03C0 F01E03C0 F01E03C0 F01E03C0 F01E03C0 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 21 0 BBX 15 18 3 0 BITMAP F0F0 F3FC F7FC FE3E FC1E F81E F01E F01E F01E F01E F01E F01E F01E F01E F01E F01E F01E F01E ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 21 0 BBX 17 18 2 0 BITMAP 07F000 1FFC00 3FFE00 7C1F00 780F00 780F00 F00780 F00780 F00780 F00780 F00780 F00780 780F00 780F00 7C1F00 3FFE00 1FFC00 07F000 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 21 0 BBX 16 25 3 -7 BITMAP F1F0 F3FC F7FC FC3E F81E F00F F00F F00F F00F F00F F00F F00F F01E F81E FC3E FFFC F7F8 F1E0 F000 F000 F000 F000 F000 F000 F000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 21 0 BBX 16 25 2 -7 BITMAP 078F 1FEF 3FFF 7C3F 781F 780F F00F F00F F00F F00F F00F F00F F00F 781F 7C3F 3FEF 3FCF 0F8F 000F 000F 000F 000F 000F 000F 000F ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 14 0 BBX 11 18 3 0 BITMAP F0E0 F3E0 F7E0 FE00 FC00 F800 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 17 0 BBX 12 18 3 0 BITMAP 1FE0 7FE0 7FE0 F860 F000 F000 FC00 7F00 7FC0 1FE0 07F0 01F0 00F0 80F0 E1F0 FFE0 FFC0 3F80 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 13 0 BBX 11 23 1 0 BITMAP 3C00 3C00 3C00 3C00 3C00 FFE0 FFE0 FFE0 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3E00 1FE0 1FE0 07E0 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 21 0 BBX 15 18 3 0 BITMAP F01E F01E F01E F01E F01E F01E F01E F01E F01E F01E F01E F01E F03E F07E F8FE 7FDE 7F9E 1E1E ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 18 0 BBX 17 18 0 0 BITMAP F00380 F00780 F80700 780F00 780E00 3C0E00 3C1E00 3E1C00 1E1C00 1E3800 1F3800 0F7800 0F7000 0FF000 07E000 07E000 03E000 03C000 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 26 0 BBX 26 18 0 0 BITMAP E01E01C0 F01E03C0 703F0380 703F0380 703F0780 383F0700 38738700 38738F00 3C738E00 1CE38E00 1CE1DE00 1CE1DC00 0FE1DC00 0FC1FC00 0FC0F800 0FC0F800 0780F800 0780F000 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 21 0 BBX 18 18 1 0 BITMAP F003C0 780780 3C0F00 1E0E00 0F1E00 073C00 07B800 03F800 01F000 03E000 07F000 077800 0F3C00 1E1C00 3C1E00 380F00 780780 F003C0 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 18 0 BBX 17 25 0 -7 BITMAP F00380 F80700 780700 780700 7C0E00 3C0E00 3C1E00 3E1C00 1E1C00 1E3800 1F3800 0F7800 0F7000 07F000 07E000 07E000 03E000 03C000 03C000 03C000 038000 078000 070000 070000 0F0000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 19 0 BBX 15 18 2 0 BITMAP 7FFE 7FFE 7FFE 003C 0078 00F0 00F0 01E0 03C0 0780 0F00 1E00 3C00 3C00 7800 FFFE FFFE FFFE ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 11 0 BBX 8 32 1 -6 BITMAP 07 1F 1F 3C 38 38 38 3C 3C 1C 1C 1C 1C 18 38 F0 F0 F8 38 1C 1C 1C 1C 1C 3C 38 38 38 3C 1F 0F 07 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 9 0 BBX 3 32 3 -6 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 11 0 BBX 8 32 2 -6 BITMAP E0 F0 F8 3C 1C 1C 1C 3C 38 38 38 38 38 1C 1F 0F 0F 1C 18 38 38 38 38 3C 3C 1C 1C 1C 3C F8 F8 E0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 21 0 BBX 20 7 1 6 BITMAP 1F0000 3FC070 7FE070 F1F8E0 E07FE0 E01FC0 000F80 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 11 0 BBX 3 25 4 -7 BITMAP E0 E0 E0 E0 00 00 00 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 21 0 BBX 14 25 3 0 BITMAP 0180 0180 0180 07F8 0FFC 3FFC 3D84 7980 7180 F180 F180 F180 F180 F180 F180 F180 7980 7980 3D8C 3FFC 1FFC 07F8 0180 0180 0180 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 21 0 BBX 14 25 4 0 BITMAP 01F8 07FC 0FFC 0F04 1E00 1E00 1E00 1E00 1E00 1E00 1E00 FFE0 FFE0 FFE0 1E00 1E00 1E00 1E00 1E00 1C00 3800 3000 FFFC FFFC FFFC ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 21 0 BBX 19 21 1 2 BITMAP 6000C0 E000E0 F1F1E0 7BFBC0 3FFF80 1F1F00 1C0700 1C0700 380380 380380 380380 380380 380380 1C0700 1C0700 1E0F00 3FFF80 7BFBC0 F1F1E0 E000E0 6000C0 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 21 0 BBX 20 25 1 0 BITMAP F800F0 7C01E0 7C01C0 3E03C0 1F0780 0F8F00 0F9E00 07DE00 03FC00 03F800 01F000 1FFF00 1FFF00 1FFF00 00F000 00F000 1FFF00 1FFF00 1FFF00 00F000 00F000 00F000 00F000 00F000 00F000 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 9 0 BBX 3 32 3 -6 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 00 00 00 00 00 00 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 21 0 BBX 14 32 4 -7 BITMAP 0FE0 3FF8 7FF8 7818 F000 E000 E000 F000 F800 7E00 3FC0 7FE0 77F8 E1F8 E07C E03C F01C F81C 7E1C 7FF8 3FF0 0FE0 03F0 0078 003C 001C 001C 803C E07C FFF8 FFF0 1FC0 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 21 0 BBX 9 3 6 22 BITMAP E380 E380 E380 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 29 0 BBX 26 25 2 0 BITMAP 007F8000 01FFE000 07FFF800 0FC0FC00 1F003E00 3C000F00 383F8700 707F8780 70F08380 F0E003C0 E1C001C0 E1C001C0 E1C001C0 E1C001C0 E1E001C0 F0F083C0 70FF8380 707F8780 381E0700 3C000F00 1F003E00 0FC0FC00 07FFF800 01FFE000 007F8000 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 1 11 BITMAP 3F80 7FC0 7FE0 41E0 00E0 0FE0 3FE0 7FE0 F0E0 E0E0 E1E0 FF78 7F78 3C38 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 18 0 BBX 15 16 2 1 BITMAP 020C 078E 0F1E 1E3C 3C78 3CF0 79F0 F3E0 F1E0 79F0 3CF0 1C78 1E3C 0F1C 078E 020C ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 21 0 BBX 20 9 1 5 BITMAP FFFFF0 FFFFF0 FFFFF0 000070 000070 000070 000070 000070 000070 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 11 0 BBX 7 3 2 9 BITMAP FE FE FE ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 21 0 BBX 15 15 3 10 BITMAP 07C0 1FF0 3838 7FDC 6FEC CCE6 CCE6 CF86 CF86 CD86 6CCC 7C7C 3838 1FF0 07C0 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 21 0 BBX 9 3 6 22 BITMAP FF80 FF80 FF80 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 9 0 BBX 6 6 2 19 BITMAP 78 FC CC CC FC 78 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 21 0 BBX 21 21 0 0 BITMAP 007000 007000 007000 007000 007000 007000 FFFFF8 FFFFF8 FFFFF8 007000 007000 007000 007000 007000 007000 000000 000000 000000 FFFFF8 FFFFF8 FFFFF8 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 13 0 BBX 9 15 -21 10 BITMAP 3E00 FF00 C380 0180 0180 0180 0300 0700 0E00 1C00 3000 6000 E000 FF80 FF80 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 13 0 BBX 8 15 -21 10 BITMAP 7C FE 87 03 03 06 7C 7C 06 03 03 03 87 FE FC ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 21 0 BBX 7 5 8 21 BITMAP 1E 3C 38 70 E0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 21 0 BBX 15 24 3 -6 BITMAP F01E F01E F01E F01E F01E F01E F01E F01E F01E F01E F01E F01E F03E F03E F87E FFDE FFDE FF9E F000 F000 F000 F000 F000 F000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 21 0 BBX 14 31 3 -6 BITMAP 1FFC 7FFC 7FFC FFDC FFDC FFDC FFDC FFDC FFDC 7FDC 3FDC 1FDC 07DC 01DC 01DC 01DC 01DC 01DC 01DC 01DC 01DC 01DC 01DC 01DC 01DC 01DC 01DC 01DC 01DC 01DC 01DC ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 21 0 BBX 4 4 9 8 BITMAP F0 F0 F0 F0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 21 0 BBX 5 8 9 -7 BITMAP 30 60 60 38 38 38 F8 F0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 13 0 BBX 4 15 -22 10 BITMAP F0 F0 30 30 30 30 30 30 30 30 30 30 30 30 30 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 14 0 BBX 12 14 1 11 BITMAP 1F80 3FC0 7FE0 71E0 E0F0 E0F0 E0F0 E0F0 E0F0 E0F0 71E0 7FE0 3FC0 1F80 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 18 0 BBX 15 16 1 1 BITMAP 6080 E3C0 F1E0 78F0 3C70 1E78 1F3C 0F1E 0F9E 1F3C 1E78 3C78 78F0 71E0 E3C0 6080 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 27 0 BBX 23 25 7 0 BITMAP 780078 7800F0 1800E0 1801E0 1803C0 180380 180780 180F00 180E00 181C00 183C38 187838 187078 18F0F8 19E1D8 01C198 038318 078718 0F0E18 0E0FFE 1E0FFE 3C0018 380018 700018 F00018 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 27 0 BBX 22 25 7 0 BITMAP 780078 7800F0 1800E0 1801E0 1803C0 180380 180780 180F00 180E00 181C00 183DF0 187FF8 18761C 18F00C 19E00C 01C00C 038018 078038 0F0070 0E00E0 1E0180 3C0300 380700 7007FC F007FC ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 27 0 BBX 23 25 7 0 BITMAP 7C0078 FE00F0 8700E0 0301E0 0303C0 060380 7C0780 7C0F00 060E00 031C00 033C38 037838 877078 FEF0F8 FDE1D8 01C198 038318 078718 0F0E18 0E0FFE 1E0FFE 3C0018 380018 700018 F00018 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 14 0 BBX 14 25 0 -7 BITMAP 03C0 03C0 03C0 03C0 0000 0000 03C0 03C0 03C0 03C0 0380 0780 0F00 1E00 3C00 7C00 7800 F000 F000 F000 F800 FC0C 7FFC 3FFC 0FF0 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 23 0 BBX 23 32 0 0 BITMAP 01E000 00F000 007000 003800 001C00 000000 000000 003C00 007C00 007E00 00FE00 00FE00 00FF00 01EF00 01CF80 03C780 038780 0387C0 0783C0 0703C0 0F01E0 0E01E0 0FFFF0 1FFFF0 1FFFF0 1C00F8 380078 38007C 78003C 70003C 70003E E0001E ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 23 0 BBX 23 32 0 0 BITMAP 000F00 001E00 001C00 003800 007000 000000 000000 003C00 007C00 007E00 00FE00 00FE00 00FF00 01EF00 01CF80 03C780 038780 0387C0 0783C0 0703C0 0F01E0 0E01E0 0FFFF0 1FFFF0 1FFFF0 1C00F8 380078 38007C 78003C 70003C 70003E E0001E ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 23 0 BBX 23 32 0 0 BITMAP 007C00 007C00 00EE00 01C700 038380 000000 000000 003C00 007C00 007E00 00FE00 00FE00 00FF00 01EF00 01CF80 03C780 038780 0387C0 0783C0 0703C0 0F01E0 0E01E0 0FFFF0 1FFFF0 1FFFF0 1C00F8 380078 38007C 78003C 70003C 70003E E0001E ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 23 0 BBX 23 31 0 0 BITMAP 01E180 03FF80 03FF00 030E00 000000 000000 003C00 007C00 007E00 00FE00 00FE00 00FF00 01EF00 01CF80 03C780 038780 0387C0 0783C0 0703C0 0F01E0 0E01E0 0FFFF0 1FFFF0 1FFFF0 1C00F8 380078 38007C 78003C 70003C 70003E E0001E ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 23 0 BBX 23 30 0 0 BITMAP 01C700 01C700 01C700 000000 000000 003C00 007C00 007E00 00FE00 00FE00 00FF00 01EF00 01CF80 03C780 038780 0387C0 0783C0 0703C0 0F01E0 0E01E0 0FFFF0 1FFFF0 1FFFF0 1C00F8 380078 38007C 78003C 70003C 70003E E0001E ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 23 0 BBX 23 32 0 0 BITMAP 003800 006C00 004400 006C00 003800 000000 000000 003C00 007C00 007E00 00FE00 00FE00 00FF00 01EF00 01CF80 03C780 038780 0387C0 0783C0 0703C0 0F01E0 0E01E0 0FFFF0 1FFFF0 1FFFF0 1C00F8 380078 38007C 78003C 70003C 70003E E0001E ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 31 0 BBX 30 25 0 0 BITMAP 0003FFF8 0007FFF8 0007FFF8 000FE000 001FE000 001FE000 003DE000 0039E000 0079E000 0071E000 00E1FFF0 01E1FFF0 01C1FFF0 03C1E000 0381E000 07FFE000 07FFE000 0FFFE000 1E01E000 1C01E000 3C01E000 3801E000 7801FFFC 7001FFFC F001FFFC ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 24 0 BBX 20 32 2 -7 BITMAP 00FF00 03FFF0 0FFFF0 1F80F0 3E0010 3C0000 7C0000 780000 F80000 F00000 F00000 F00000 F00000 F00000 F00000 F00000 F80000 780000 7C0000 3C0000 3E0010 1F80F0 0FFFF0 03FFE0 00FF00 006000 006000 003800 003800 003800 00F800 00F000 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 18 0 BBX 15 32 3 0 BITMAP 3C00 1E00 0E00 0700 0380 0000 0000 FFFC FFFC FFFC F000 F000 F000 F000 F000 F000 F000 F000 FFF8 FFF8 FFF8 F000 F000 F000 F000 F000 F000 F000 F000 FFFE FFFE FFFE ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 18 0 BBX 15 32 3 0 BITMAP 01E0 03C0 0380 0700 0E00 0000 0000 FFFC FFFC FFFC F000 F000 F000 F000 F000 F000 F000 F000 FFF8 FFF8 FFF8 F000 F000 F000 F000 F000 F000 F000 F000 FFFE FFFE FFFE ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 18 0 BBX 15 32 3 0 BITMAP 0F80 0F80 1DC0 38E0 7070 0000 0000 FFFC FFFC FFFC F000 F000 F000 F000 F000 F000 F000 F000 FFF8 FFF8 FFF8 F000 F000 F000 F000 F000 F000 F000 F000 FFFE FFFE FFFE ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 18 0 BBX 15 30 3 0 BITMAP 38E0 38E0 38E0 0000 0000 FFFC FFFC FFFC F000 F000 F000 F000 F000 F000 F000 F000 FFF8 FFF8 FFF8 F000 F000 F000 F000 F000 F000 F000 F000 FFFE FFFE FFFE ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 10 0 BBX 7 32 5 0 BITMAP F0 78 38 1C 0E 00 00 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 10 0 BBX 7 32 4 0 BITMAP 1E 3C 38 70 E0 00 00 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 10 0 BBX 11 32 6 0 BITMAP 1F00 1F00 3B80 71C0 E0E0 0000 0000 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 10 0 BBX 9 30 5 0 BITMAP E380 E380 E380 0000 0000 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 25 0 BBX 25 25 0 0 BITMAP 0FFF8000 0FFFE000 0FFFF800 0F00FC00 0F003E00 0F001F00 0F000F00 0F000F00 0F000F80 0F000780 0F000780 FFFC0780 FFFC0780 FFFC0780 0F000780 0F000780 0F000700 0F000F00 0F000F00 0F001E00 0F003E00 0F00FC00 0FFFF800 0FFFE000 0FFF8000 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 25 0 BBX 19 31 3 0 BITMAP 078600 0FFE00 0FFC00 0C3800 000000 000000 F000E0 F800E0 F800E0 FC00E0 FE00E0 FE00E0 FF00E0 EF80E0 E780E0 E7C0E0 E3E0E0 E1E0E0 E1F0E0 E0F8E0 E0F8E0 E07CE0 E03EE0 E03EE0 E01FE0 E00FE0 E00FE0 E007E0 E003E0 E003E0 E001E0 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 26 0 BBX 23 32 2 0 BITMAP 01E000 00F000 007000 003800 001C00 000000 000000 00FE00 07FFC0 0FFFE0 1F83F0 3E00F8 3C0078 78003C 78003C F8003E F0001E F0001E F0001E F0001E F0001E F0001E F0001E F8003E 78003C 78003C 3C0078 3E00F8 1F83F0 0FFFE0 07FFC0 00FE00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 26 0 BBX 23 32 2 0 BITMAP 000F00 001E00 001C00 003800 007000 000000 000000 00FE00 07FFC0 0FFFE0 1F83F0 3E00F8 3C0078 78003C 78003C F8003E F0001E F0001E F0001E F0001E F0001E F0001E F0001E F8003E 78003C 78003C 3C0078 3E00F8 1F83F0 0FFFE0 07FFC0 00FE00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 26 0 BBX 23 32 2 0 BITMAP 007C00 007C00 00EE00 01C700 038380 000000 000000 00FE00 07FFC0 0FFFE0 1F83F0 3E00F8 3C0078 78003C 78003C F8003E F0001E F0001E F0001E F0001E F0001E F0001E F0001E F8003E 78003C 78003C 3C0078 3E00F8 1F83F0 0FFFE0 07FFC0 00FE00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 26 0 BBX 23 31 2 0 BITMAP 01E180 03FF80 03FF00 030E00 000000 000000 00FE00 07FFC0 0FFFE0 1F83F0 3E00F8 3C0078 78003C 78003C F8003E F0001E F0001E F0001E F0001E F0001E F0001E F0001E F8003E 78003C 78003C 3C0078 3E00F8 1F83F0 0FFFE0 07FFC0 00FE00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 26 0 BBX 23 30 2 0 BITMAP 01C700 01C700 01C700 000000 000000 00FE00 07FFC0 0FFFE0 1F83F0 3E00F8 3C0078 78003C 78003C F8003E F0001E F0001E F0001E F0001E F0001E F0001E F0001E F8003E 78003C 78003C 3C0078 3E00F8 1F83F0 0FFFE0 07FFC0 00FE00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 21 0 BBX 20 21 1 0 BITMAP 600060 E00070 F000F0 7801E0 3C03C0 1E0780 0F0F00 079E00 03FC00 01F800 00F000 01F800 03FC00 079E00 0F0F00 1E0780 3C03C0 7801E0 F000F0 E00070 600060 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 26 0 BBX 23 25 2 0 BITMAP 00FE1E 07FFFC 0FFFF8 1F83F8 3E00F8 3C01F8 7803FC 7803BC F807BE F00F1E F01E1E F03C1E F0381E F0781E F0F01E F1E01E FBC03E 7B803C 7F803C 3F0078 3E00F8 3F83F0 3FFFE0 7FFFC0 F0FE00 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 24 0 BBX 18 32 3 0 BITMAP 078000 03C000 01C000 00E000 007000 000000 000000 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F803C0 780380 7E0780 3FFF00 1FFE00 07F800 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 24 0 BBX 18 32 3 0 BITMAP 007800 00F000 00E000 01C000 038000 000000 000000 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F803C0 780380 7E0780 3FFF00 1FFE00 07F800 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 24 0 BBX 18 32 3 0 BITMAP 01F000 01F000 03B800 071C00 0E0E00 000000 000000 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F803C0 780380 7E0780 3FFF00 1FFE00 07F800 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 24 0 BBX 18 30 3 0 BITMAP 0E3800 0E3800 0E3800 000000 000000 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F001C0 F803C0 780380 7E0780 3FFF00 1FFE00 07F800 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 21 0 BBX 21 32 0 0 BITMAP 001E00 003C00 003800 007000 00E000 000000 000000 F00078 780070 7C00F0 3C01E0 3E01C0 1E03C0 1F0380 0F8700 078F00 07CE00 03DE00 03FC00 01F800 01F800 00F000 00F000 00F000 00F000 00F000 00F000 00F000 00F000 00F000 00F000 00F000 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 19 0 BBX 15 25 3 0 BITMAP F000 F000 F000 F000 F000 FFE0 FFF8 FFFC F07E F03E F01E F01E F01E F01E F03E F03C F0FC FFF8 FFF0 FFC0 F000 F000 F000 F000 F000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 20 0 BBX 17 27 3 0 BITMAP 1FC000 3FF000 7FF000 78F800 F07800 F07800 F07800 F07000 F0F000 F0E000 F1C000 F1C000 F1E000 F1F000 F1F800 F0FC00 F07E00 F03F00 F01F00 F00780 F00780 F00380 F00380 F30780 F3FF00 F3FE00 F0FC00 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 19 0 BBX 17 25 1 0 BITMAP 0F0000 078000 038000 01C000 00E000 000000 000000 07F000 3FF800 3FFC00 307C00 203C00 003C00 003C00 07FC00 1FFC00 7FFC00 7C3C00 F83C00 F03C00 F03C00 F87C00 7FFF80 7FCF80 1F0780 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 19 0 BBX 17 25 1 0 BITMAP 00F000 01E000 01C000 038000 070000 000000 000000 07F000 3FF800 3FFC00 307C00 203C00 003C00 003C00 07FC00 1FFC00 7FFC00 7C3C00 F83C00 F03C00 F03C00 F87C00 7FFF80 7FCF80 1F0780 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 19 0 BBX 17 25 1 0 BITMAP 03E000 03E000 077000 0E3800 1C1C00 000000 000000 07F000 3FF800 3FFC00 307C00 203C00 003C00 003C00 07FC00 1FFC00 7FFC00 7C3C00 F83C00 F03C00 F03C00 F87C00 7FFF80 7FCF80 1F0780 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 19 0 BBX 17 24 1 0 BITMAP 0F0C00 1FFC00 1FF800 187000 000000 000000 07F000 3FF800 3FFC00 307C00 203C00 003C00 003C00 07FC00 1FFC00 7FFC00 7C3C00 F83C00 F03C00 F03C00 F87C00 7FFF80 7FCF80 1F0780 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 19 0 BBX 17 23 1 0 BITMAP 0E3800 0E3800 0E3800 000000 000000 07F000 3FF800 3FFC00 307C00 203C00 003C00 003C00 07FC00 1FFC00 7FFC00 7C3C00 F83C00 F03C00 F03C00 F87C00 7FFF80 7FCF80 1F0780 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 19 0 BBX 17 25 1 0 BITMAP 01C000 036000 022000 036000 01C000 000000 000000 07F000 3FF800 3FFC00 307C00 203C00 003C00 003C00 07FC00 1FFC00 7FFC00 7C3C00 F83C00 F03C00 F03C00 F87C00 7FFF80 7FCF80 1F0780 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 29 0 BBX 24 18 2 0 BITMAP 0FC1F0 3FF7FC 3FFFFC 307F1E 203E0E 003C0F 003C0F 07FFFF 1FFFFF 7FFFFF 7C3C00 F83C00 F03E00 F03F00 F86F81 7FCFFF 7F87FF 1E01FC ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 17 0 BBX 14 25 2 -7 BITMAP 07FC 1FFC 3FFC 7E0C 7C00 7800 F000 F000 F000 F000 F000 F000 7800 7C00 3E04 3FFC 0FFC 07F0 0300 0300 01C0 01C0 01C0 07C0 0780 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 19 0 BBX 15 25 2 0 BITMAP 1E00 0F00 0700 0380 01C0 0000 0000 07E0 1FF0 3FF8 3C3C 781C 701E F01E FFFE FFFE FFFE F000 F000 7800 7C00 3E06 1FFE 0FFE 03F8 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 19 0 BBX 15 25 2 0 BITMAP 00F0 01E0 01C0 0380 0700 0000 0000 07E0 1FF0 3FF8 3C3C 781C 701E F01E FFFE FFFE FFFE F000 F000 7800 7C00 3E06 1FFE 0FFE 03F8 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 19 0 BBX 15 25 2 0 BITMAP 07C0 07C0 0EE0 1C70 3838 0000 0000 07E0 1FF0 3FF8 3C3C 781C 701E F01E FFFE FFFE FFFE F000 F000 7800 7C00 3E06 1FFE 0FFE 03F8 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 19 0 BBX 15 23 2 0 BITMAP 1C70 1C70 1C70 0000 0000 07E0 1FF0 3FF8 3C3C 781C 701E F01E FFFE FFFE FFFE F000 F000 7800 7C00 3E06 1FFE 0FFE 03F8 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 10 0 BBX 7 25 5 0 BITMAP F0 78 38 1C 0E 00 00 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 10 0 BBX 7 25 4 0 BITMAP 1E 3C 38 70 E0 00 00 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 10 0 BBX 11 25 6 0 BITMAP 1F00 1F00 3B80 71C0 E0E0 0000 0000 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 10 0 BBX 9 23 5 0 BITMAP E380 E380 E380 0000 0000 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 20 0 BBX 17 26 2 0 BITMAP FC4000 FFE000 C7E000 0FC000 3FE000 1EF000 187800 103C00 07FE00 1FFE00 3FFF00 7C1F00 780F80 F80F80 F00780 F00780 F00780 F00780 F00780 F00780 780F00 780F00 3E1E00 3FFE00 1FF800 07F000 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 21 0 BBX 15 24 3 0 BITMAP 1E18 3FF8 3FF0 30E0 0000 0000 F0F0 F3FC F7FC FE3E FC1E F81E F01E F01E F01E F01E F01E F01E F01E F01E F01E F01E F01E F01E ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 21 0 BBX 17 25 2 0 BITMAP 0F0000 078000 038000 01C000 00E000 000000 000000 07F000 1FFC00 3FFE00 7C1F00 780F00 780F00 F00780 F00780 F00780 F00780 F00780 F00780 780F00 780F00 7C1F00 3FFE00 1FFC00 07F000 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 21 0 BBX 17 25 2 0 BITMAP 007800 00F000 00E000 01C000 038000 000000 000000 07F000 1FFC00 3FFE00 7C1F00 780F00 780F00 F00780 F00780 F00780 F00780 F00780 F00780 780F00 780F00 7C1F00 3FFE00 1FFC00 07F000 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 21 0 BBX 17 25 2 0 BITMAP 03E000 03E000 077000 0E3800 1C1C00 000000 000000 07F000 1FFC00 3FFE00 7C1F00 780F00 780F00 F00780 F00780 F00780 F00780 F00780 F00780 780F00 780F00 7C1F00 3FFE00 1FFC00 07F000 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 21 0 BBX 17 24 2 0 BITMAP 0F0C00 1FFC00 1FF800 187000 000000 000000 07F000 1FFC00 3FFE00 7C1F00 780F00 780F00 F00780 F00780 F00780 F00780 F00780 F00780 780F00 780F00 7C1F00 3FFE00 1FFC00 07F000 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 21 0 BBX 17 23 2 0 BITMAP 0E3800 0E3800 0E3800 000000 000000 07F000 1FFC00 3FFE00 7C1F00 780F00 780F00 F00780 F00780 F00780 F00780 F00780 F00780 780F00 780F00 7C1F00 3FFE00 1FFC00 07F000 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 21 0 BBX 20 17 1 1 BITMAP 00F000 00F000 00F000 00F000 000000 000000 000000 FFFFF0 FFFFF0 FFFFF0 000000 000000 000000 00F000 00F000 00F000 00F000 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 21 0 BBX 17 18 2 0 BITMAP 07F780 1FFF00 3FFE00 7C1F00 783F00 787F00 F07780 F0F780 F1E780 F3C780 F78780 F70780 7F0F00 7E0F00 7C1F00 3FFE00 7FFC00 F7F000 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 21 0 BBX 15 25 3 0 BITMAP 1E00 0F00 0700 0380 01C0 0000 0000 F01E F01E F01E F01E F01E F01E F01E F01E F01E F01E F01E F01E F03E F07E F8FE 7FDE 7F9E 1E1E ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 21 0 BBX 15 25 3 0 BITMAP 00F0 01E0 01C0 0380 0700 0000 0000 F01E F01E F01E F01E F01E F01E F01E F01E F01E F01E F01E F01E F03E F07E F8FE 7FDE 7F9E 1E1E ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 21 0 BBX 15 25 3 0 BITMAP 07C0 07C0 0EE0 1C70 3838 0000 0000 F01E F01E F01E F01E F01E F01E F01E F01E F01E F01E F01E F01E F03E F07E F8FE 7FDE 7F9E 1E1E ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 21 0 BBX 15 23 3 0 BITMAP 1C70 1C70 1C70 0000 0000 F01E F01E F01E F01E F01E F01E F01E F01E F01E F01E F01E F01E F03E F07E F8FE 7FDE 7F9E 1E1E ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 18 0 BBX 17 32 0 -7 BITMAP 007800 00F000 00E000 01C000 038000 000000 000000 F00380 F80700 780700 780700 7C0E00 3C0E00 3C1E00 3E1C00 1E1C00 1E3800 1F3800 0F7800 0F7000 07F000 07E000 07E000 03E000 03C000 03C000 03C000 038000 078000 070000 070000 0F0000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 21 0 BBX 16 31 3 -7 BITMAP F000 F000 F000 F000 F000 F000 F1F0 F3FC F7FC FC3E F81E F00F F00F F00F F00F F00F F00F F00F F01E F81E FC3E FFFC F7F8 F1E0 F000 F000 F000 F000 F000 F000 F000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 18 0 BBX 17 30 0 -7 BITMAP 0E3800 0E3800 0E3800 000000 000000 F00380 F80700 780700 780700 7C0E00 3C0E00 3C1E00 3E1C00 1E1C00 1E3800 1F3800 0F7800 0F7000 07F000 07E000 07E000 03E000 03C000 03C000 03C000 038000 078000 070000 070000 0F0000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 22 0 BBX 18 27 1 0 BITMAP 03FFC0 07FFC0 0FFFC0 1F07C0 1E03C0 1E03C0 1E03C0 1E03C0 1E03C0 FFC3C0 FFC3C0 FFC3C0 1E03C0 1E03C0 1E03C0 1E03C0 1E03C0 1E03C0 1E03C0 1E03C0 1E03C0 1E03C0 1E03C0 1E03C0 1E03C0 1E03C0 1E03C0 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 14 3 2 9 BITMAP FFFC FFFC FFFC ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 15 31 3 -6 BITMAP 0380 0380 0380 0380 0380 0380 0380 0380 0380 FFFE FFFE 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 17 32 2 0 BITMAP 1C1C00 0E3800 077000 03E000 03E000 000000 000000 7FFF80 7FFF80 7FFF80 000F80 001F00 001F00 003E00 007C00 007C00 00F800 01F000 01F000 03E000 07C000 07C000 0F8000 1F0000 1F0000 3E0000 7C0000 7C0000 F80000 FFFF80 FFFF80 FFFF80 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 32 0 BBX 27 18 2 0 BITMAP 07E07E00 1FF8FF80 3FF9FF80 7C3FC3C0 781F81C0 781F01E0 F00F01E0 F00FFFE0 F00FFFE0 F00FFFE0 F00F0000 F00F0000 781F8000 781FC000 7C3FE060 3FFDFFE0 1FF8FFE0 07E03F80 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 21 30 0 0 BITMAP 038E00 038E00 038E00 000000 000000 F00078 780070 7C00F0 3C01E0 3E01C0 1E03C0 1F0380 0F8700 078F00 07CE00 03DE00 03FC00 01F800 01F800 00F000 00F000 00F000 00F000 00F000 00F000 00F000 00F000 00F000 00F000 00F000 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 4 18 3 0 BITMAP F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 12 26 0 0 BITMAP 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F10 0F70 0FF0 0FE0 1F00 7F00 FF00 CF00 8F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 19 25 0 0 BITMAP 0F0000 0F0000 0F0000 0F0000 0F0000 0F0000 0F0000 0F0000 0F3000 0FF000 0FF000 0FC000 3F0000 FF0000 FF0000 CF0000 0F0000 0F0000 0F0000 0F0000 0F0000 0F0000 0FFFE0 0FFFE0 0FFFE0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 15 31 3 -6 BITMAP 0380 0380 0380 0380 0380 0380 0380 0380 0380 FFFE FFFE 0380 0380 0380 0380 0380 0380 0380 0380 FFFE FFFE 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 22 0 BBX 18 27 1 0 BITMAP 03E000 07F000 0FF3C0 0F13C0 1E03C0 1E03C0 1E0000 1E0000 1E0000 FFFFC0 FFFFC0 FFFFC0 1E03C0 1E03C0 1E03C0 1E03C0 1E03C0 1E03C0 1E03C0 1E03C0 1E03C0 1E03C0 1E03C0 1E03C0 1E03C0 1E03C0 1E03C0 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 16 1 1 BITMAP 40 E0 F0 78 3C 1C 1E 0F 0F 1E 1C 3C 78 F0 E0 40 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 34 0 BBX 31 25 2 0 BITMAP 01FEFFFC 07FFFFFC 0FFFFFFC 1F03F000 3E01F000 3C01F000 7800F000 7800F000 F000F000 F000F000 F000F000 F000FFF8 F000FFF8 F000FFF8 F000F000 F000F000 F000F000 7800F000 7800F000 3C01F000 3E01F000 1F03F000 0FFFFFFE 07FFFFFE 01FCFFFE ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 34 0 BBX 31 2 2 9 BITMAP FFFFFFFE FFFFFFFE ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 11 5 5 21 BITMAP E0E0 71C0 3B80 1F00 1F00 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 6 5 8 -6 BITMAP 38 E0 E0 F4 7C ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 10 5 7 21 BITMAP 1DC0 1B80 3300 6600 CC00 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 16 2 1 BITMAP 02 07 0F 1E 3C 38 78 F0 F0 78 38 3C 1E 0F 07 02 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 3 4 9 21 BITMAP E0 E0 E0 E0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 11 5 5 21 BITMAP C060 E0E0 7FC0 3F80 1F00 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 10 10 6 6 BITMAP FFC0 FFC0 FFC0 FFC0 FFC0 FFC0 FFC0 FFC0 FFC0 FFC0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 11 4 5 21 BITMAP 7860 FFE0 FFC0 C380 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 11 5 5 21 BITMAP 1F00 1F00 3B80 71C0 E0E0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 9 9 2 17 BITMAP 3180 7380 6300 E700 E700 F780 F780 F780 F780 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 9 1 17 BITMAP F8 F8 F8 F8 F8 70 70 70 70 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 12 25 3 0 BITMAP 7070 38E0 1DC0 0F80 0F80 0000 0000 1FE0 7FE0 7FE0 F860 F000 F000 FC00 7F00 7FC0 1FE0 07F0 01F0 00F0 80F0 E1F0 FFE0 FFC0 3F80 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 5 5 8 22 BITMAP 70 D8 88 D8 70 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 4 11 2 -6 BITMAP F0 F0 F0 F0 F0 70 70 70 60 E0 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 16 31 4 -6 BITMAP 007F 00FF 01FF 03C1 0780 0780 0780 0F80 0F00 0F00 0F00 7FC0 7FC0 7FC0 0F00 0F00 1E00 1E00 1E00 1E00 3C00 3C00 3C00 3C00 3C00 7800 7800 7800 7800 F000 F000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 27 0 BBX 26 13 0 12 BITMAP FFE783C0 FFE7C3C0 FFE7C7C0 0E07C7C0 0E07EFC0 0E07EFC0 0E07FDC0 0E077DC0 0E077DC0 0E0739C0 0E0739C0 0E0739C0 0E0701C0 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 21 25 -9 0 BITMAP 000078 0000F0 0000E0 0001E0 0003C0 000380 000780 000F00 000E00 001C00 003C00 007800 007000 00F000 01E000 01C000 038000 078000 0F0000 0E0000 1E0000 3C0000 380000 700000 F00000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 7 5 6 21 BITMAP F0 78 38 1C 0E ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 34 0 BBX 32 25 1 0 BITMAP 1E007800 7F807000 7380F000 E1C1E000 E1C3C000 E1C38000 E1C78000 E1CF0000 E1CE0000 739E0000 7FBC0000 1E780000 0073C078 00F7E0FC 01EE71CE 03DC3B87 039C3B87 079C3B87 0F1C3B87 0E1C3B87 1E1C3B87 3C1C3B87 780E71CE 7007E0FC F003C078 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 34 0 BBX 26 4 4 0 BITMAP F01E03C0 F01E03C0 F01E03C0 F01E03C0 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 9 9 2 17 BITMAP F780 F780 F780 F780 7380 7380 6300 E700 C600 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 15 32 2 0 BITMAP 3838 1C70 0EE0 07C0 07C0 0000 0000 0FF0 3FF8 7FF8 7C38 F008 F000 F000 F000 F800 7E00 3F80 1FC0 0FF0 03F8 00FC 007E 003E 001E 001E 001E 803E F07C FFF8 FFF0 3FC0 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 9 10 2 -6 BITMAP F780 F780 F780 F780 7380 7380 7380 6300 E700 8400 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 15 25 2 0 BITMAP 3838 1C70 0EE0 07C0 07C0 0000 0000 7FFE 7FFE 7FFE 003C 0078 00F0 00F0 01E0 03C0 0780 0F00 1E00 3C00 3C00 7800 FFFE FFFE FFFE ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lubB08.bdf100644 1750 1750 60327 5413747526 15061 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-DemiBold-R-Normal--11-80-100-100-P-66-ISO8859-1 SIZE 8 100 100 FONTBOUNDINGBOX 19 13 -6 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "DemiBold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 11 POINT_SIZE 80 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 66 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 10 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 4 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 3 0 BBX 2 9 0 0 BITMAP C0 C0 C0 C0 40 40 00 C0 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 5 BITMAP D8 D8 50 50 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 14 24 7E 28 28 FC 48 50 50 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 -1 BITMAP 78 E8 E0 60 30 38 38 B8 F0 20 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 63 F2 F4 F8 78 16 2F 4F C6 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 38 6C 6C 30 73 DA CE EE 7F ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 0 5 BITMAP C0 C0 C0 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 4 0 BBX 3 11 0 -2 BITMAP 20 40 40 C0 C0 C0 C0 C0 40 40 20 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 4 0 BBX 3 11 0 -2 BITMAP 80 40 40 60 60 60 60 60 40 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 5 BITMAP 60 F0 E0 70 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 10 10 10 10 FE 10 10 10 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 0 -2 BITMAP C0 C0 C0 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 0 3 BITMAP FC ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 3 0 BBX 2 2 0 0 BITMAP C0 C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 6 0 BBX 6 11 0 -2 BITMAP 04 08 08 10 10 30 20 20 40 40 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 30 48 CC CC CC CC CC 48 30 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 7 0 BBX 4 9 2 0 BITMAP E0 60 60 60 60 60 60 60 F0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP F8 8C 0C 0C 18 20 40 FC FC ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP F8 8C 0C 08 70 1C 0C 8C F8 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 0C 1C 2C 4C FE FE 0C 0C 1E ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP F8 F8 80 80 F0 38 18 98 F0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 3C 64 C0 F8 CC CC CC 4C 38 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP F8 F8 10 10 20 60 40 C0 C0 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 78 CC CC 68 38 CC CC CC 78 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 70 C8 CC CC CC 7C 0C 98 F0 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 3 0 BBX 2 6 0 0 BITMAP C0 C0 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 3 0 BBX 2 8 0 -2 BITMAP C0 C0 00 00 C0 C0 C0 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 04 0C 30 C0 40 30 08 04 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 7 0 BBX 6 3 0 2 BITMAP FC 00 FC ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 80 C0 30 18 0C 30 40 80 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 0 0 BITMAP F0 98 18 10 20 60 60 60 60 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 1 0 BITMAP 1E00 2100 5880 9E80 B280 B680 BB80 4000 3E00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 0 0 BITMAP 0800 1C00 1C00 3E00 2600 3F00 4300 4300 C380 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP F8 6C 6C 68 70 6C 6C 6C F8 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 0 0 BITMAP 3E 62 C0 C0 C0 C0 C0 62 3E ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 0 0 BITMAP FC 66 63 63 63 63 63 66 FC ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP FC 64 60 68 78 68 60 64 FC ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP FC 64 60 68 78 68 60 60 E0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 3E 62 C0 C0 C0 CF C6 66 3E ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 0 0 BITMAP F780 6300 6300 6300 7F00 6300 6300 6300 F780 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 0 0 BITMAP F0 60 60 60 60 60 60 60 F0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 5 0 BBX 5 11 0 -2 BITMAP 78 30 30 30 30 30 30 30 30 B0 E0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP F2 66 6C 78 78 7C 6E 66 F7 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 6 0 BBX 7 9 0 0 BITMAP F0 60 60 60 60 60 60 62 FE ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 0 0 BITMAP E1C0 7180 7380 7380 5D80 5D80 4D80 4980 E3C0 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 0 0 BITMAP E7 62 72 72 5A 5E 4E 46 E6 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 0 0 BITMAP 3C 66 C3 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP F8 6C 6C 6C 78 60 60 60 F0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 9 0 BBX 9 11 1 -2 BITMAP 3C00 6600 C300 C300 C300 C300 C300 6600 3C00 0780 0100 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP F8 6C 6C 6C 78 78 6C 6E FE ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP 78 C8 C0 E0 78 1C 0C 8C F8 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP FF 99 18 18 18 18 18 18 3C ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP F7 62 62 62 62 62 62 62 3C ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP E3 62 62 72 34 34 1C 18 18 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 10 0 BBX 11 9 0 0 BITMAP E660 6640 6640 6E40 7B80 3B80 3380 3100 1100 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP F3 62 36 3C 18 2C 6E 46 CF ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP E3 62 72 34 38 18 18 18 3C ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP FC 8C 18 38 30 70 60 C4 FC ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 4 0 BBX 3 11 0 -2 BITMAP E0 C0 C0 C0 C0 C0 C0 C0 C0 C0 E0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 6 0 BBX 6 11 0 -2 BITMAP 80 40 40 20 20 30 10 10 08 08 04 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 4 0 BBX 3 11 0 -2 BITMAP E0 60 60 60 60 60 60 60 60 60 E0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 1 BITMAP 10 30 30 30 48 48 C4 84 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 5 0 BBX 5 1 0 -1 BITMAP F8 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 0 5 BITMAP C0 C0 C0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 70 18 F8 D8 D8 6C ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP E0 60 60 6C 7E 66 66 66 7C ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP 78 C8 C0 C0 E0 78 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 1C 0C 0C 7C CC CC CC FC 6E ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP 70 D8 F8 C0 E0 78 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 5 0 BBX 5 9 0 0 BITMAP 38 68 60 F0 60 60 60 60 F0 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 -2 BITMAP 7C D8 D8 70 FC 7C CC F8 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP E0 60 60 6C 7C 6C 6C 6C FE ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 0 0 BITMAP 60 60 00 E0 60 60 60 60 F0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 0 -2 BITMAP 30 30 00 70 30 30 30 30 30 B0 F0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP E0 60 60 64 6C 78 78 6C FE ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 0 0 BITMAP E0 60 60 60 60 60 60 60 F0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 11 0 BBX 10 6 0 0 BITMAP E980 7F80 6D80 6D80 6D80 FFC0 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP EC 7C 6C 6C 6C FE ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP 78 CC CC CC CC 78 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 -2 BITMAP EC 7E 66 66 66 7C 60 F0 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 -2 BITMAP 7C CC CC CC FC 6C 0C 1E ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 0 0 BITMAP E8 78 60 60 60 F0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP 70 D0 F0 78 98 F0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 0 0 BITMAP 60 60 60 F0 60 60 60 60 70 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP FC 6C 6C 6C 7C 6E ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP E6 64 64 38 38 10 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 10 0 BBX 10 6 0 0 BITMAP E4C0 6E80 6E80 7F00 3300 3300 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP F6 74 38 38 4C CE ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 -2 BITMAP E6 64 64 38 38 10 10 60 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP F8 B8 30 60 E8 F8 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 4 0 BBX 3 11 1 -2 BITMAP 60 60 60 C0 C0 80 C0 C0 60 60 60 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 3 0 BBX 1 11 1 -2 BITMAP 80 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 4 0 BBX 3 11 0 -2 BITMAP C0 C0 C0 60 60 20 60 60 C0 C0 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 7 0 BBX 6 3 0 2 BITMAP 64 B4 98 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 3 0 BBX 2 8 0 -2 BITMAP C0 C0 40 40 C0 C0 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 10 7C D4 D0 D0 D0 50 7C 10 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 38 68 60 60 F0 60 40 F8 F8 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 82 7C 6C 44 44 44 6C 7C 82 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 7 0 BBX 8 9 0 0 BITMAP F3 62 76 3C 7C 18 7C 18 3C ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 3 0 BBX 1 11 1 -2 BITMAP 80 80 80 80 80 00 80 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 -2 BITMAP 78 C8 C0 70 F8 D8 F8 70 18 98 F0 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 7 0 BBX 3 2 2 7 BITMAP A0 A0 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 3C 66 DB B9 B1 B1 DB 66 3C ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 5 0 BBX 6 5 0 4 BITMAP F8 18 78 D8 EC ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP 28 58 F0 D0 48 28 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 7 0 BBX 6 3 0 2 BITMAP FC 04 04 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 3 0 BBX 3 2 0 2 BITMAP E0 E0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 3 BITMAP 78 CC B4 B4 EC 78 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 7 0 BBX 3 1 2 8 BITMAP E0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 0 6 BITMAP C0 C0 C0 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 10 10 10 FE 10 10 00 FE ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 -6 4 BITMAP E0 A0 40 C0 E0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 -6 4 BITMAP E0 A0 40 A0 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 7 0 BBX 3 2 2 7 BITMAP 60 80 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 0 -2 BITMAP FC 6C 6C 6C 7C 7E 60 60 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 7 0 BBX 4 11 1 -2 BITMAP 70 F0 F0 F0 70 30 30 30 30 30 30 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 7 0 BBX 1 2 3 2 BITMAP 80 80 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 3 -2 BITMAP 80 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 -6 4 BITMAP C0 40 40 40 E0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 4 BITMAP 70 D8 D8 D8 70 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP A0 90 58 78 D0 A0 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 4 0 BITMAP 6380 2700 2600 2C00 7F00 1F00 3780 7100 E380 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 4 0 BITMAP 6380 2700 2600 2C00 7F80 1A80 3100 7300 E380 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 4 0 BITMAP 7380 5700 2600 5C00 7F00 1F00 3780 7100 E380 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 -2 BITMAP 30 30 30 20 40 C0 C8 78 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 9 0 BBX 9 11 0 0 BITMAP 1800 0400 0800 1C00 1C00 3E00 2600 3F00 4300 4300 C380 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 9 0 BBX 9 11 0 0 BITMAP 0C00 1000 0800 1C00 1C00 3E00 2600 3F00 4300 4300 C380 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 9 0 BBX 9 11 0 0 BITMAP 0C00 1200 0800 1C00 1C00 3E00 2600 3F00 4300 4300 C380 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 9 0 BBX 9 11 0 0 BITMAP 1E00 1E00 0800 1C00 1C00 3E00 2600 3F00 4300 4300 C380 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 9 0 BBX 9 11 0 0 BITMAP 1400 1400 0800 1C00 1C00 3E00 2600 3F00 4300 4300 C380 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 9 0 BBX 9 11 0 0 BITMAP 0C00 0C00 0800 1C00 1C00 3E00 2600 3F00 4300 4300 C380 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 0 0 BITMAP 0FC0 0E40 1E80 1780 2680 3E00 4600 C640 CFC0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 0 -2 BITMAP 3E 62 C0 C0 C0 C0 C0 62 3E 10 18 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 0 0 BITMAP 60 10 FC 64 60 68 78 68 60 64 FC ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 0 0 BITMAP 18 20 FC 64 60 68 78 68 60 64 FC ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 0 0 BITMAP 30 48 FC 64 60 68 78 68 60 64 FC ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 0 0 BITMAP 28 28 FC 64 60 68 78 68 60 64 FC ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 0 0 BITMAP C0 20 F0 60 60 60 60 60 60 60 F0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 0 0 BITMAP 30 40 F0 60 60 60 60 60 60 60 F0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 0 0 BITMAP 60 90 F0 60 60 60 60 60 60 60 F0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 0 0 BITMAP A0 A0 F0 60 60 60 60 60 60 60 F0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 0 0 BITMAP FC 66 63 63 FB 63 63 66 FC ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 0 0 BITMAP 3C 3C E7 62 72 72 5A 5E 4E 46 E6 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 0 0 BITMAP 30 08 3C 66 C3 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 0 0 BITMAP 0C 10 3C 66 C3 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 0 0 BITMAP 18 24 3C 66 C3 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 0 0 BITMAP 3C 3C 3C 66 C3 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 0 0 BITMAP 28 28 3C 66 C3 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 84 4C 48 30 30 48 C8 84 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 0 0 BITMAP 3D 66 C7 CB DB D3 E3 66 BC ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 8 0 BBX 8 11 0 0 BITMAP 30 08 F7 62 62 62 62 62 62 62 3C ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 8 0 BBX 8 11 0 0 BITMAP 0C 10 F7 62 62 62 62 62 62 62 3C ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 8 0 BBX 8 11 0 0 BITMAP 18 24 F7 62 62 62 62 62 62 62 3C ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 8 0 BBX 8 11 0 0 BITMAP 28 28 F7 62 62 62 62 62 62 62 3C ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 8 0 BBX 8 11 0 0 BITMAP 0C 10 E3 62 72 34 38 18 18 18 3C ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP F0 60 78 6C 6C 6C 78 60 F0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 0 0 BITMAP 38 6C 68 70 78 7C 6E 76 FC ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP 60 10 70 18 F8 D8 D8 6C ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP 18 20 70 18 F8 D8 D8 6C ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP 30 48 70 18 F8 D8 D8 6C ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP 78 78 70 18 F8 D8 D8 6C ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP 50 50 70 18 F8 D8 D8 6C ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP 30 30 70 18 F8 D8 D8 6C ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 9 0 BBX 9 6 0 0 BITMAP 7700 0D80 7F80 CC00 CE00 7780 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 -2 BITMAP 78 C8 C0 C0 E0 78 20 30 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 0 BITMAP 60 10 70 D8 F8 C0 E0 78 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 0 BITMAP 30 40 70 D8 F8 C0 E0 78 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 0 BITMAP 30 48 70 D8 F8 C0 E0 78 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 0 BITMAP 50 50 70 D8 F8 C0 E0 78 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 4 0 BBX 4 8 0 0 BITMAP C0 20 E0 60 60 60 60 F0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 4 0 BBX 4 8 0 0 BITMAP 30 40 E0 60 60 60 60 F0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 4 0 BBX 4 8 0 0 BITMAP 60 90 E0 60 60 60 60 F0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 4 0 BBX 4 8 0 0 BITMAP A0 A0 E0 60 60 60 60 F0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP F0 20 D8 78 CC CC CC CC 78 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 78 78 EC 7C 6C 6C 6C FE ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 60 10 78 CC CC CC CC 78 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 18 20 78 CC CC CC CC 78 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 30 48 78 CC CC CC CC 78 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 78 78 78 CC CC CC CC 78 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 50 50 78 CC CC CC CC 78 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 7 0 BBX 8 6 0 0 BITMAP 18 18 00 FF 18 18 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP 74 CC DC EC CC B8 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 30 08 FC 6C 6C 6C 7C 6E ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 18 20 FC 6C 6C 6C 7C 6E ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 18 24 FC 6C 6C 6C 7C 6E ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 28 28 FC 6C 6C 6C 7C 6E ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 0 -2 BITMAP 18 20 E6 64 64 38 38 10 10 60 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 7 0 BBX 7 11 0 -2 BITMAP E0 60 60 6C 7E 66 66 66 7C 60 F0 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 0 -2 BITMAP 28 28 E6 64 64 38 38 10 10 60 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 3C 6C 6C EC 6C 6C 6C 6C FE ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 1 0 3 BITMAP F8 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 0 -2 BITMAP 30 30 B4 FC 30 30 30 30 30 30 30 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 0 0 BITMAP 48 30 FC 8C 18 38 30 70 60 C4 FC ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 6 1 0 BITMAP 7300 CD80 CF80 CC00 CE00 7780 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 11 0 0 BITMAP 28 28 E3 62 72 34 38 18 18 18 3C ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 0 0 BITMAP E0 60 60 60 60 F0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 5 9 1 0 BITMAP 70 30 30 38 70 B0 30 30 78 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 7 9 0 0 BITMAP F0 60 60 70 E0 60 60 62 FE ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 0 -2 BITMAP 30 30 B4 FC 30 30 B4 FC 30 30 30 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 7C 7C 60 FC 6C 6C 6C 6C EE ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 0 0 BITMAP 80 40 60 60 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 9 0 0 BITMAP 3FE0 6620 C600 C640 C7C0 C640 C600 6620 3FE0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 1 1 3 BITMAP FFC0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 1 7 BITMAP 90 60 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 3 -2 BITMAP C0 C0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 2 7 BITMAP 50 A0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 0 0 BITMAP 20 40 C0 C0 40 20 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 1 2 3 7 BITMAP 80 80 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 1 7 BITMAP 90 60 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 4 1 2 BITMAP 60 F0 F0 60 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 1 7 BITMAP F0 F0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 1 7 BITMAP 60 90 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 1 5 BITMAP 50 E0 F0 F0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 4 0 5 BITMAP E0 E0 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 0 BITMAP 90 60 70 D0 F0 78 98 F0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 2 7 BITMAP C0 C0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 0 -2 BITMAP C0 C0 C0 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 -2 BITMAP 1C 34 20 60 F0 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 5 0 4 BITMAP FE60 B7C0 33C0 33C0 7EE0 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 9 9 -1 0 BITMAP 0380 0700 0600 0C00 1C00 1800 3000 7000 E000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 2 2 7 BITMAP C0 20 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 12 9 0 0 BITMAP 6300 F200 F400 6800 1E60 1FF0 2FF0 4FF0 C660 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 2 2 0 BITMAP DB DB ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 1 5 BITMAP F0 F0 F0 A0 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 11 0 0 BITMAP 48 30 78 C8 C0 E0 78 1C 0C 8C F8 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 1 -2 BITMAP F0 F0 F0 F0 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 48 30 F8 B8 30 60 E8 F8 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lubB10.bdf100644 1750 1750 64524 5413747527 15056 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-DemiBold-R-Normal--14-100-100-100-P-84-ISO8859-1 SIZE 10 100 100 FONTBOUNDINGBOX 23 16 -8 -3 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "DemiBold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 14 POINT_SIZE 100 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 84 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 13 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 4 0 BBX 2 10 1 0 BITMAP C0 C0 C0 C0 C0 40 40 00 C0 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 6 0 BBX 6 4 0 6 BITMAP CC CC 48 48 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP 0900 1200 1200 7F80 1200 2400 FF00 2400 2400 4800 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 1 -2 BITMAP 10 7C D4 D4 F0 30 18 1C 9C DC F8 10 10 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 0 0 BITMAP 70C0 D980 DB00 DA00 7400 0B80 16C0 36C0 66C0 C380 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 0 0 BITMAP 1C00 3600 3600 3C00 39C0 4880 CC80 C700 E700 3DC0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 4 0 BBX 2 4 1 6 BITMAP C0 C0 C0 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 5 0 BBX 4 13 0 -3 BITMAP 10 20 60 40 C0 C0 C0 C0 C0 40 60 20 10 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 5 0 BBX 4 13 0 -3 BITMAP 80 40 60 20 30 30 30 30 30 20 60 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 5 BITMAP 20 A8 D0 D0 50 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 0 0 BITMAP 0800 0800 0800 0800 FF80 0800 0800 0800 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 4 0 BBX 2 5 1 -3 BITMAP C0 C0 C0 C0 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 9 0 BBX 8 1 0 3 BITMAP FF ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 4 0 BBX 2 2 1 0 BITMAP C0 C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 7 0 BBX 7 13 0 -3 BITMAP 02 04 04 08 08 10 10 10 20 20 40 40 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP 3C 66 C3 C3 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 1 0 BITMAP F0 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP FC CE 86 06 0C 18 30 40 FE FE ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP FC 8E 86 04 78 0C 06 86 8E F8 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP 0E 0E 16 26 46 FF FF 06 06 0F ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP FC FC 80 80 F8 1C 0C 8C 9C F0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP 3E 62 42 C0 DE E7 C3 C3 67 3C ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP FE FE 04 08 18 30 20 60 C0 C0 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 7C C6 C6 E4 38 5C C6 C6 E6 7C ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP 3C E6 C3 C3 E7 7B 03 42 46 7C ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 4 0 BBX 2 7 1 0 BITMAP C0 C0 00 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 4 0 BBX 2 10 1 -3 BITMAP C0 C0 00 00 00 C0 C0 C0 C0 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 0 0 BITMAP 01 06 18 E0 60 18 06 01 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 9 0 BBX 8 4 0 2 BITMAP FF 00 00 FF ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 0 0 BITMAP 80 60 18 06 07 18 60 80 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP F8 9C 8C 08 10 20 60 00 60 60 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 12 0 BBX 12 10 0 0 BITMAP 0FC0 1060 6710 4C90 9990 9990 9BA0 9DC0 6100 1E00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 0 0 BITMAP 0400 0E00 0E00 1700 1300 2380 3F80 41C0 40C0 E1E0 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP FE 63 63 67 7C 66 63 63 67 FE ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 0 0 BITMAP 1F80 7080 6080 C000 C000 C000 C000 6000 7080 1F00 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 0 0 BITMAP FF00 6180 60C0 60C0 60C0 60C0 60C0 6080 6180 FE00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP FE 62 60 64 7C 64 60 60 62 FE ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 0 BITMAP FE 62 60 64 7C 64 60 60 60 F0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 0 0 BITMAP 1F80 7180 6080 C000 C000 C3C0 C180 6180 7180 1F80 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP F3C0 6180 6180 6180 7F80 6180 6180 6180 6180 F3C0 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 5 0 BBX 4 10 0 0 BITMAP F0 60 60 60 60 60 60 60 60 F0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 6 0 BBX 6 13 0 -3 BITMAP 3C 18 18 18 18 18 18 18 18 18 18 98 F0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 0 BITMAP F380 6100 6600 6C00 7800 7C00 6E00 6700 6380 F7C0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP F0 60 60 60 60 60 60 61 61 FF ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 13 0 BBX 12 10 0 0 BITMAP F070 70E0 70E0 59E0 5960 4E60 4E60 4460 4460 E0F0 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 0 0 BITMAP E1C0 7080 7080 5880 5C80 4E80 4680 4380 4380 E180 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 1E00 6180 6180 C0C0 C0C0 C0C0 C0C0 6180 6180 1E00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP FE 63 63 63 62 7C 60 60 60 F0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 11 0 BBX 12 13 1 -3 BITMAP 1E00 6180 6180 C0C0 C0C0 C0C0 C0C0 61C0 6180 1F00 0180 00F0 0060 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 0 BITMAP FE00 6300 6300 6300 6600 7C00 6E00 6700 6380 F1C0 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 7C C4 C4 E0 78 1C 0E 86 8E F8 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 0 BITMAP FFC0 8C40 0C00 0C00 0C00 0C00 0C00 0C00 0C00 1E00 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 0 BITMAP F1C0 6080 6080 6080 6080 6080 6080 6080 7180 3F00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 0 0 BITMAP F8E0 7040 30C0 3080 1980 1900 0D00 0E00 0600 0400 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 13 0 BBX 13 10 0 0 BITMAP F338 6310 6310 7720 35A0 35A0 39C0 18C0 18C0 10C0 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 0 BITMAP F9C0 7080 3900 1A00 1E00 1E00 1600 2300 4380 E3C0 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 0 BITMAP F1C0 7080 3100 1B00 1E00 0C00 0C00 0C00 0C00 1E00 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP FF 87 0E 0C 1C 38 30 70 E1 FF ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 5 0 BBX 3 13 1 -3 BITMAP E0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 E0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 7 0 BBX 7 13 0 -3 BITMAP 80 40 40 20 20 10 10 18 08 08 04 04 02 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 5 0 BBX 3 13 1 -3 BITMAP E0 60 60 60 60 60 60 60 60 60 60 60 E0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 0 2 BITMAP 08 18 18 24 24 42 42 81 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 1 -2 BITMAP FC ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 4 0 BBX 2 4 1 6 BITMAP C0 C0 C0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 0 0 BITMAP 78 4C 0C 7C CC CC 76 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP E0 60 60 6E 7F 63 63 63 67 7E ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP 3C 44 C4 C0 C0 60 3C ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 0E 06 06 7E C6 C6 C6 C6 FE 77 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 0 0 BITMAP 38 44 C6 FE C0 60 3E ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 6 0 BBX 6 10 0 0 BITMAP 3C 64 60 F8 60 60 60 60 60 F0 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 -3 BITMAP 3F 66 66 66 3C 7F 7F 43 C3 7C ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP E000 6000 6000 6E00 7F00 6300 6300 6300 6300 F780 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 5 0 BBX 4 10 0 0 BITMAP 60 60 00 E0 60 60 60 60 60 F0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 5 0 BBX 5 13 0 -3 BITMAP 18 18 00 38 18 18 18 18 18 18 18 98 F0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP E000 6000 6000 6700 6600 6C00 7800 6E00 6700 F380 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 5 0 BBX 4 10 0 0 BITMAP E0 60 60 60 60 60 60 60 60 F0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 14 0 BBX 14 7 0 0 BITMAP EE70 7FF8 6318 6318 6318 6318 F7BC ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 9 0 BBX 9 7 0 0 BITMAP EE00 7F00 6300 6300 6300 6300 F780 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 0 0 BITMAP 3C 66 C3 C3 C3 66 3C ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 -3 BITMAP EE 7F 63 63 63 67 7E 60 60 F0 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 -3 BITMAP 7E E6 C6 C6 C6 FE 76 06 06 0F ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 0 0 BITMAP EC 7C 64 60 60 60 F0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 78 C8 E8 7C 9C 8C F8 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 5 0 BBX 5 9 0 0 BITMAP 60 60 F8 60 60 60 60 60 78 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 9 0 BBX 9 7 0 0 BITMAP E700 6300 6300 6300 6300 7F00 3B80 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 9 0 BBX 9 7 0 0 BITMAP F380 6100 3200 3200 1C00 1C00 0800 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 12 0 BBX 12 7 0 0 BITMAP F270 6720 6720 3740 39C0 1980 1080 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 9 0 BBX 9 7 0 0 BITMAP FB80 7300 3E00 1C00 3E00 6700 E780 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 -3 BITMAP F380 6100 3300 3200 1C00 1C00 1800 0800 1000 7000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP FE 8C 1C 38 70 E2 FE ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 5 0 BBX 4 13 1 -3 BITMAP 30 60 60 60 60 60 C0 60 60 60 60 60 30 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 4 0 BBX 1 13 1 -3 BITMAP 80 80 80 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 5 0 BBX 4 13 1 -3 BITMAP C0 60 60 60 60 60 30 60 60 60 60 60 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 9 0 BBX 8 3 0 2 BITMAP 61 99 86 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 4 0 BBX 2 10 1 -3 BITMAP C0 C0 00 40 40 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 1 0 BITMAP 10 3C 54 D4 D0 D0 D0 50 3C 10 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP 3C 64 64 60 F8 60 60 40 FC FC ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP 81 C3 7E 66 42 42 66 7E C3 81 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP F380 6100 7200 3C00 3E00 1800 3E00 1800 1800 3C00 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 4 0 BBX 1 13 1 -3 BITMAP 80 80 80 80 80 80 00 80 80 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 -3 BITMAP 7E C2 C2 E0 7C DE C6 F6 7C 1E 86 86 FC ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 9 0 BBX 4 2 2 8 BITMAP 90 90 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 0 0 BITMAP 1F00 2080 4F40 9A20 9820 9820 9820 4E40 2080 1F00 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 7 0 BBX 6 5 1 5 BITMAP F8 18 78 D8 EC ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 0 0 BITMAP 12 24 6C D8 6C 24 12 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 9 0 BBX 8 4 0 2 BITMAP FF 01 01 01 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 4 0 BBX 3 2 1 3 BITMAP E0 E0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 9 0 BBX 6 7 1 3 BITMAP 78 CC B4 B4 B4 CC 78 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 9 0 BBX 4 1 2 9 BITMAP F0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 4 0 BBX 3 2 2 8 BITMAP E0 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 0 0 BITMAP 0800 0800 0800 FF80 0800 0800 0000 FF80 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 -8 4 BITMAP E0 90 10 60 40 F0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 -8 4 BITMAP F0 90 60 10 90 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 9 0 BBX 3 2 3 8 BITMAP 60 80 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 0 -3 BITMAP E700 6300 6300 6300 6300 7F00 7B80 6000 6000 6000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 1 -3 BITMAP 7C F4 F4 F4 74 14 14 14 14 14 14 14 14 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 9 0 BBX 2 2 3 3 BITMAP C0 C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 9 0 BBX 2 3 3 -3 BITMAP 40 C0 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 -8 4 BITMAP C0 40 40 40 40 E0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 7 0 BBX 6 5 0 5 BITMAP 78 CC CC CC 78 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 90 48 6C 36 6C 48 90 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 2 0 BITMAP 60E0 2180 2380 2700 26C0 7DC0 1F40 3BE0 3040 E0E0 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 2 0 BITMAP 60E0 2180 2380 2700 2780 7E40 1C40 3980 3100 E3C0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 2 0 BITMAP F0E0 9180 6380 1700 96C0 EDC0 1F40 3BE0 3040 E0E0 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 -3 BITMAP 18 18 00 18 10 20 40 C4 E4 7C ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 0C00 0200 0000 0400 0E00 0E00 1700 1300 2380 3F80 41C0 40C0 E1E0 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 0600 0800 0000 0400 0E00 0E00 1700 1300 2380 3F80 41C0 40C0 E1E0 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 0E00 1B00 0000 0400 0E00 0E00 1700 1300 2380 3F80 41C0 40C0 E1E0 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 1D00 1700 0000 0400 0E00 0E00 1700 1300 2380 3F80 41C0 40C0 E1E0 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 0900 0900 0000 0400 0E00 0E00 1700 1300 2380 3F80 41C0 40C0 E1E0 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 0C00 0C00 0000 0400 0E00 0E00 1700 1300 2380 3F80 41C0 40C0 E1E0 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 13 0 BBX 13 10 0 0 BITMAP 03F8 0708 0700 0B10 1BF0 1300 3F00 6300 4308 C7F8 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 0 -3 BITMAP 1F80 7080 6080 C000 C000 C000 C000 6000 7080 1F00 0400 0C00 0C00 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 1 0 BITMAP 30 08 00 FE 62 60 64 7C 64 60 60 62 FE ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 1 0 BITMAP 18 20 00 FE 62 60 64 7C 64 60 60 62 FE ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 1 0 BITMAP 38 6C 00 FE 62 60 64 7C 64 60 60 62 FE ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 1 0 BITMAP 24 24 00 FE 62 60 64 7C 64 60 60 62 FE ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 5 0 BBX 4 13 0 0 BITMAP C0 20 00 F0 60 60 60 60 60 60 60 60 F0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 5 0 BBX 4 13 0 0 BITMAP 30 40 00 F0 60 60 60 60 60 60 60 60 F0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 5 0 BBX 5 13 1 0 BITMAP 70 D8 00 78 30 30 30 30 30 30 30 30 78 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 5 0 BBX 4 13 0 0 BITMAP 90 90 00 F0 60 60 60 60 60 60 60 60 F0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 0 0 BITMAP FF00 6180 60C0 60C0 F8C0 60C0 60C0 6080 6180 FF00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 0 0 BITMAP 1D00 1700 0000 E1C0 7080 7080 5880 5C80 4E80 4680 4380 4380 E180 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 1800 0400 0000 1E00 6180 6180 C0C0 C0C0 C0C0 C0C0 6180 6180 1E00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0600 0800 0000 1E00 6180 6180 C0C0 C0C0 C0C0 C0C0 6180 6180 1E00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 1C00 3600 0000 1E00 6180 6180 C0C0 C0C0 C0C0 C0C0 6180 6180 1E00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 3A00 2E00 0000 1E00 6180 6180 C0C0 C0C0 C0C0 C0C0 6180 6180 1E00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 1200 1200 0000 1E00 6180 6180 C0C0 C0C0 C0C0 C0C0 6180 6180 1E00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 0 0 BITMAP 81 42 24 18 18 24 42 81 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 1E40 6180 61C0 C2C0 C4C0 C8C0 D0C0 E180 6180 9E00 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP 1800 0400 0000 F1C0 6080 6080 6080 6080 6080 6080 6080 7180 3F00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP 0600 0800 0000 F1C0 6080 6080 6080 6080 6080 6080 6080 7180 3F00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP 0E00 1B00 0000 F1C0 6080 6080 6080 6080 6080 6080 6080 7180 3F00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP 1200 1200 0000 F1C0 6080 6080 6080 6080 6080 6080 6080 7180 3F00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP 0600 0800 0000 F1C0 7080 3100 1B00 1E00 0C00 0C00 0C00 0C00 1E00 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP F0 60 7E 63 63 63 62 7C 60 F0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 3C 66 64 64 68 6E 67 63 6B FE ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 0 BITMAP 30 08 00 78 4C 0C 7C CC CC 76 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 0 BITMAP 18 20 00 78 4C 0C 7C CC CC 76 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 0 BITMAP 38 6C 00 78 4C 0C 7C CC CC 76 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 0 BITMAP 74 5C 00 78 4C 0C 7C CC CC 76 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 0 BITMAP 48 48 00 78 4C 0C 7C CC CC 76 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 0 BITMAP 30 30 00 78 4C 0C 7C CC CC 76 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 12 0 BBX 11 7 0 0 BITMAP 79C0 4E40 0C60 7FE0 CC00 CE00 73E0 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 -3 BITMAP 3C 44 C4 C0 C0 60 3C 10 30 30 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 0 BITMAP 30 08 00 38 44 C6 FE C0 60 3E ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 0 BITMAP 0C 10 00 38 44 C6 FE C0 60 3E ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 0 BITMAP 38 6C 00 38 44 C6 FE C0 60 3E ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 0 BITMAP 24 24 00 38 44 C6 FE C0 60 3E ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 5 0 BBX 4 10 0 0 BITMAP C0 20 00 E0 60 60 60 60 60 F0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 5 0 BBX 4 10 0 0 BITMAP 30 40 00 E0 60 60 60 60 60 F0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 5 0 BBX 5 10 1 0 BITMAP 70 D8 00 70 30 30 30 30 30 78 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 5 0 BBX 4 10 0 0 BITMAP 90 90 00 E0 60 60 60 60 60 F0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 0C F8 3C 4E 3F 67 C3 C3 C3 66 3C ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP 3A00 2E00 0000 EE00 7F00 6300 6300 6300 6300 F780 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP 30 08 00 3C 66 C3 C3 C3 66 3C ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP 0C 10 00 3C 66 C3 C3 C3 66 3C ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP 1C 36 00 3C 66 C3 C3 C3 66 3C ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP 3A 2E 00 3C 66 C3 C3 C3 66 3C ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP 24 24 00 3C 66 C3 C3 C3 66 3C ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 0 0 BITMAP 18 18 00 FF 00 18 18 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 0 0 BITMAP 3D 66 C7 DB E3 66 BC ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP 1800 0400 0000 E700 6300 6300 6300 6300 7F00 3B80 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP 0600 0800 0000 E700 6300 6300 6300 6300 7F00 3B80 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP 1C00 3600 0000 E700 6300 6300 6300 6300 7F00 3B80 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP 1200 1200 0000 E700 6300 6300 6300 6300 7F00 3B80 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 9 0 BBX 9 13 0 -3 BITMAP 0C00 1000 0000 F380 6100 3300 3200 1C00 1C00 1800 0800 1000 7000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 0 -3 BITMAP E0 60 60 6E 7F 63 63 63 67 7E 60 60 F0 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 9 0 BBX 9 13 0 -3 BITMAP 2400 2400 0000 F380 6100 3300 3200 1C00 1C00 1800 0800 1000 7000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP 3F00 6300 6300 FB00 6300 6300 6300 6300 6300 F780 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 1 4 BITMAP FC ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 1 -3 BITMAP 30 30 30 B4 FC 30 30 30 30 30 30 30 30 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 0 0 BITMAP 36 1C 00 FF 87 0E 0C 1C 38 30 70 E1 FF ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 12 7 0 0 BITMAP 3DE0 6720 C630 C7F0 C600 6700 3DF0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP 1200 1200 0000 F1C0 7080 3100 1B00 1E00 0C00 0C00 0C00 0C00 1E00 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 0 0 BITMAP E0 60 60 60 60 60 F0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 10 0 0 BITMAP E0 60 60 60 70 E0 60 60 60 F0 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP F0 60 60 70 60 E0 60 61 61 FF ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 1 -3 BITMAP 30 30 30 B4 FC 30 30 B4 FC 30 30 30 30 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP 3B00 6B00 6000 FF00 6300 6300 6300 6300 6300 F780 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 0 BITMAP 80 40 60 30 60 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 14 10 0 0 BITMAP 1FFC 6384 6180 C188 C1F8 C188 C180 6180 6384 1FFC ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 13 1 1 3 BITMAP FFF8 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 2 2 8 BITMAP D8 70 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 2 2 3 -3 BITMAP C0 C0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 2 2 8 BITMAP 78 A0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 0 0 BITMAP 10 20 60 C0 60 20 10 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 2 2 3 8 BITMAP C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 2 2 8 BITMAP 88 70 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 5 2 1 BITMAP 70 F8 F8 F8 70 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 2 2 8 BITMAP E8 B8 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 2 2 8 BITMAP 70 D8 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 4 1 6 BITMAP D8 F0 F8 F8 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 0 6 BITMAP E0 E0 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP D8 70 00 78 C8 E8 7C 9C 8C F8 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 2 2 3 8 BITMAP C0 C0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 2 5 1 -3 BITMAP C0 C0 C0 C0 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 -3 BITMAP 0E 12 30 30 30 F8 60 60 60 60 E0 C0 C0 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 13 5 1 5 BITMAP FFB8 B5B0 31B0 31F0 7B38 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 11 10 -2 0 BITMAP 00E0 0180 0380 0700 0600 0C00 1C00 3800 3000 E000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 3 2 2 8 BITMAP C0 20 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 15 10 0 0 BITMAP 70C0 D980 DB00 DA00 7400 0B9C 16F6 36F6 66F6 C39C ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 11 2 2 0 BITMAP CC60 CC60 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 4 1 6 BITMAP D8 D8 D8 D8 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 1 0 BITMAP 6C 38 00 7C C4 C4 E0 78 1C 0E 86 8E F8 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 5 1 -3 BITMAP D8 D8 D8 D8 90 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 6C 38 00 FE 8C 1C 38 70 E2 FE ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lubB12.bdf100644 1750 1750 72746 5413747527 15065 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-DemiBold-R-Normal--17-120-100-100-P-101-ISO8859-1 SIZE 12 100 100 FONTBOUNDINGBOX 31 19 -11 -3 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "DemiBold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 17 POINT_SIZE 120 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 101 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 15 FONT_DESCENT 4 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 6 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 4 0 BBX 2 13 1 0 BITMAP C0 C0 C0 C0 C0 C0 40 40 40 00 00 C0 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 8 0 BBX 6 5 1 8 BITMAP CC CC CC 48 48 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 0480 0880 0880 0880 7FE0 1100 1100 1100 FFC0 2200 2200 2200 2400 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 11 0 BBX 7 15 2 -1 BITMAP 10 7E D2 D2 D0 F0 70 38 1C 16 16 96 D6 FC 10 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 0 0 BITMAP 7818 8420 8460 84C0 8480 8500 7A00 04F0 0908 1908 3108 2108 C0F0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 0 0 BITMAP 1F00 3180 3180 3180 1B00 3C00 6E78 CE30 C720 C3E0 C1C0 60E0 3FF8 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 1 8 BITMAP E0 E0 20 20 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 6 0 BBX 4 16 1 -3 BITMAP 10 20 20 40 40 C0 C0 C0 C0 C0 C0 40 40 20 20 10 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 6 0 BBX 4 16 1 -3 BITMAP 80 40 40 20 20 30 30 30 30 30 30 20 20 40 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 7 0 BBX 7 5 0 8 BITMAP 10 D6 6C 28 6C ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 11 0 BBX 9 11 1 0 BITMAP 0800 0800 0800 0800 0800 FF80 0800 0800 0800 0800 0800 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 1 -3 BITMAP E0 E0 E0 20 20 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 11 0 BBX 10 1 0 5 BITMAP FFC0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 4 0 BBX 3 2 1 0 BITMAP E0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 9 0 BBX 9 16 0 -3 BITMAP 0080 0100 0100 0200 0200 0400 0400 0800 0800 1000 1000 2000 2000 4000 4000 8000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 0 0 BITMAP 1E00 3300 6180 4080 C0C0 C0C0 C0C0 C0C0 C0C0 4080 6180 3300 1E00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 11 0 BBX 6 13 2 0 BITMAP F0 30 30 30 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 1 0 BITMAP 7C C6 83 03 03 02 06 08 10 20 40 FF FF ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 11 0 BBX 7 13 2 0 BITMAP F8 8E 86 06 04 08 78 0C 06 06 86 8C F8 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 0300 0700 0B00 1B00 1300 2300 4300 C300 FF80 0300 0300 0300 0780 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 11 0 BBX 7 13 2 0 BITMAP FE 80 80 80 F8 1C 0E 06 06 06 86 8C F8 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 1F00 3100 6100 C000 C000 DE00 E300 C180 C180 C180 4180 6300 1E00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 2 0 BITMAP FF FF 03 06 04 0C 18 18 30 30 60 60 60 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 3E00 6380 C180 C180 F100 7E00 3E00 4700 C380 C180 C180 6300 3E00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP 3C00 6300 C100 C180 C180 C180 6380 3D80 0180 0180 4300 4600 7C00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 4 0 BBX 2 9 1 0 BITMAP C0 C0 00 00 00 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 4 0 BBX 2 12 1 -3 BITMAP C0 C0 00 00 00 00 00 C0 C0 40 40 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 11 0 BBX 10 11 0 0 BITMAP 0040 00C0 0300 0C00 3000 C000 3000 0C00 0300 00C0 0040 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 11 0 BBX 10 5 0 2 BITMAP FFC0 0000 0000 0000 FFC0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 11 0 BBX 10 11 0 0 BITMAP 8000 C000 3000 0C00 0300 00C0 0300 0C00 3000 C000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP F8 CE 86 06 04 08 10 10 30 00 00 30 30 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 1 0 BITMAP 07C0 1830 3010 6708 4888 8988 9188 9318 9730 9DE0 4000 6100 1E00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 14 0 BBX 14 13 0 0 BITMAP 0200 0300 0700 0580 0D80 09C0 08C0 10E0 1FE0 2070 2030 4038 E07C ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP FF00 6380 6180 6180 6180 6300 7E00 6300 6180 6180 6180 6380 FE00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 0 0 BITMAP 0FE0 3060 6020 6000 C000 C000 C000 C000 C000 6000 6000 3820 0FC0 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 1 0 BITMAP FF80 60C0 6060 6030 6030 6030 6030 6030 6030 6020 6060 60C0 FF80 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 0 BITMAP FF00 6100 6000 6000 6000 6200 7E00 6200 6000 6000 6000 6080 FF80 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP FF 61 60 60 60 62 7E 62 60 60 60 60 F8 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 1 0 BITMAP 0FE0 3860 6020 6000 C000 C000 C000 C0F0 C060 6060 6060 3860 0FE0 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 1 0 BITMAP F0F0 6060 6060 6060 6060 6060 7FE0 6060 6060 6060 6060 6060 F0F0 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 6 0 BBX 4 13 1 0 BITMAP F0 60 60 60 60 60 60 60 60 60 60 60 F0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 8 0 BBX 7 16 0 -3 BITMAP 1E 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 8C 88 F0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 1 0 BITMAP F1E0 60C0 6100 6200 6400 7800 7800 6C00 6600 6300 6380 61C0 F3F0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 0 BITMAP F000 6000 6000 6000 6000 6000 6000 6000 6000 6000 6080 6080 FF80 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 15 0 BBX 14 13 1 0 BITMAP F03C 7038 7838 5878 5858 4CD8 4C98 4698 4718 4718 4218 4018 E03C ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 1 0 BITMAP E070 7020 7020 5820 5C20 4E20 4620 4320 43A0 41A0 40E0 4060 E060 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 1 0 BITMAP 1F80 30C0 6060 6060 C030 C030 C030 C030 C030 6060 6060 30C0 1F80 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 0 BITMAP FF00 6380 6180 6180 6180 6180 6300 7C00 6000 6000 6000 6000 F800 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 14 0 BBX 14 16 1 -3 BITMAP 1F80 30C0 6060 6060 C030 C030 C030 C030 C030 6070 6060 30E0 1F80 00E0 0078 001C ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 1 0 BITMAP FF00 6380 6180 6180 6180 6300 7F00 6600 6700 6300 6380 6180 F0E0 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 0 BITMAP 3E 62 C2 C0 E0 78 3C 0E 03 03 83 C6 FC ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP FFC0 8C40 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 3F00 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 0 0 BITMAP F070 6020 6020 6020 6020 6020 6020 6020 6020 6020 6020 3040 1F80 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 0 0 BITMAP F878 7010 3020 3820 1860 1C40 0C40 0C80 0680 0780 0700 0300 0200 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 16 0 BBX 16 13 0 0 BITMAP F887 7082 31C4 31C4 31C4 3AC4 1A68 1A68 1C68 1C30 0C30 0C30 0830 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 0 0 BITMAP FC70 3860 1840 1880 0D80 0F00 0600 0B00 1380 1180 21C0 60E0 F1F0 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 0 0 BITMAP FCF0 7020 3840 18C0 0C80 0D00 0700 0600 0600 0600 0600 0600 0F00 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 1 0 BITMAP FF80 C300 8300 0600 0E00 0C00 1C00 1800 3800 3000 6080 6080 FF80 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 6 0 BBX 4 16 1 -3 BITMAP F0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 F0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 9 0 BBX 9 16 0 -3 BITMAP C000 4000 4000 2000 2000 1000 1000 0800 0800 0400 0400 0200 0200 0100 0100 0080 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 6 0 BBX 4 16 1 -3 BITMAP F0 30 30 30 30 30 30 30 30 30 30 30 30 30 30 F0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 11 0 BBX 10 11 0 2 BITMAP 0400 0C00 0C00 0C00 1200 1200 2100 2100 4080 4080 8040 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 8 0 BBX 7 1 1 -1 BITMAP FE ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 1 8 BITMAP 60 80 80 E0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 7C 46 46 06 7E E6 C6 C6 7F ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 0 0 BITMAP E000 6000 6000 6000 6F00 7180 60C0 60C0 60C0 60C0 60C0 7180 6F00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 0 0 BITMAP 3F 61 C1 C0 C0 C0 C0 60 3F ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0380 0180 0180 0180 3D80 6380 C180 C180 C180 C180 C180 6380 3DC0 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 10 0 BBX 8 9 1 0 BITMAP 3C 62 C3 C3 FF C0 C0 61 3F ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 7 0 BBX 6 13 1 0 BITMAP 3C 64 64 60 F8 60 60 60 60 60 60 60 F0 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 -3 BITMAP 1FC0 63C0 6300 6300 6300 3E00 2000 6000 3F80 C180 C380 7E00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP E000 6000 6000 6000 6F00 7180 6180 6180 6180 6180 6180 6180 F3C0 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 6 0 BBX 4 13 1 0 BITMAP 60 60 00 00 E0 60 60 60 60 60 60 60 F0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 6 0 BBX 6 16 0 -3 BITMAP 0C 0C 00 00 3C 0C 0C 0C 0C 0C 0C 0C 0C 8C 8C F8 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP E000 6000 6000 6000 63C0 6180 6600 6C00 7C00 6E00 6700 6380 F1E0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 6 0 BBX 4 13 1 0 BITMAP E0 60 60 60 60 60 60 60 60 60 60 60 F0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 16 0 BBX 16 9 0 0 BITMAP EF3C 71C6 6186 6186 6186 6186 6186 6186 F3CF ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 1 0 BITMAP EF00 7180 6180 6180 6180 6180 6180 6180 F3C0 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 3E00 6300 C180 C180 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 0 -3 BITMAP EF00 7180 60C0 60C0 60C0 60C0 60C0 7180 6F00 6000 6000 F000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 1 -3 BITMAP 3D80 6380 C180 C180 C180 C180 C180 6380 3D80 0180 0180 03C0 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP EC 74 64 60 60 60 60 60 F8 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 7C C4 C4 F0 7C 1E 86 86 FC ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 7 0 BBX 5 12 1 0 BITMAP 60 60 60 F8 60 60 60 60 60 60 60 38 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 0 0 BITMAP E380 6180 6180 6180 6180 6180 6180 6380 3DC0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 11 0 BBX 11 9 0 0 BITMAP F8E0 7040 3080 1880 1900 0D00 0E00 0600 0400 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 15 0 BBX 15 9 0 0 BITMAP F98E 7184 31C8 32C8 3AD8 1C70 1C70 0C60 0820 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 0 0 BITMAP FBC0 7180 3B00 1E00 0C00 1600 3700 6380 E7C0 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 11 0 BBX 11 12 0 -3 BITMAP F8E0 7040 3080 1880 1900 1F00 0E00 0C00 0400 0800 1800 3000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 10 0 BBX 8 9 1 0 BITMAP FF 86 0E 1C 18 30 70 61 FF ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 6 0 BBX 4 16 1 -3 BITMAP 30 60 60 60 60 60 60 C0 40 60 60 60 60 60 60 30 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 4 0 BBX 1 16 2 -3 BITMAP 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 6 0 BBX 4 16 1 -3 BITMAP C0 60 60 60 60 60 60 30 20 60 60 60 60 60 60 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 11 0 BBX 10 4 0 3 BITMAP 7040 8840 8440 8380 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 4 0 BBX 2 12 1 -3 BITMAP C0 C0 00 40 40 40 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 1 0 BITMAP 08 3F 69 49 C8 C8 C8 C8 C8 48 68 3F 08 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 2 0 BITMAP 0F 11 31 30 30 30 FC 30 30 30 60 FF FF ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 11 0 BBX 11 11 0 1 BITMAP 8020 4040 3F80 3180 2080 2080 2080 3180 3F80 4040 8020 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP F9C0 7080 3080 3100 1900 1A00 0C00 3F00 0C00 3F00 0C00 0C00 1E00 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 4 0 BBX 1 16 2 -3 BITMAP 80 80 80 80 80 80 80 00 00 80 80 80 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 11 0 BBX 8 16 1 -3 BITMAP 3E E2 C2 C0 F0 7C 9F 83 C1 F9 3E 0F 03 83 C7 FC ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 10 0 BBX 5 1 3 12 BITMAP D8 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 1 0 BITMAP 0F80 3040 6020 4790 8888 9008 9008 9008 8808 4790 6030 3060 0F80 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 6 BITMAP F8 8C 0C 7C CC CC 7E ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 10 0 BBX 8 7 1 1 BITMAP 11 32 66 CC 66 32 11 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 11 0 BBX 10 5 0 2 BITMAP FFC0 0040 0040 0040 0040 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 5 0 BBX 4 1 0 5 BITMAP F0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 11 0 BBX 9 9 1 4 BITMAP 3E00 6300 DF80 9280 9C80 9480 D780 6300 3E00 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 10 0 BBX 5 1 3 12 BITMAP F8 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 1 9 BITMAP 40 A0 A0 40 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 11 0 BBX 9 11 1 0 BITMAP 0800 0800 0800 0800 FF80 0800 0800 0800 0800 0000 FF80 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 -10 5 BITMAP E0 90 10 10 20 40 80 F0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 -10 5 BITMAP E0 90 10 60 10 10 90 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 10 0 BBX 4 2 4 11 BITMAP 70 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 1 -3 BITMAP E380 6180 6180 6180 6180 6180 6180 6380 7DC0 6000 6000 6000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 11 0 BBX 6 16 2 -3 BITMAP 7C F4 F4 F4 F4 74 34 14 14 14 14 14 14 14 14 14 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 11 0 BBX 2 2 4 4 BITMAP C0 C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 10 0 BBX 3 3 4 -3 BITMAP C0 20 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 6 0 BBX 3 8 -11 5 BITMAP C0 40 40 40 40 40 40 E0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 6 BITMAP 38 6C C6 C6 C6 6C 38 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 10 0 BBX 8 7 1 1 BITMAP 88 4C 66 33 66 4C 88 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 3 0 BITMAP C060 40C0 4080 4100 4300 4260 44E0 E9A0 1B20 13F0 2020 6020 C070 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 14 0 BBX 11 13 3 0 BITMAP C060 40C0 4080 4100 4300 43C0 4520 E820 1820 1040 2080 6100 C1E0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 3 0 BITMAP E060 90C0 1080 6100 1300 1260 94E0 E9A0 1B20 13F0 2020 6020 C070 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 1 -3 BITMAP 18 18 00 18 18 10 20 40 C0 C2 E6 3E ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 14 0 BBX 14 16 0 0 BITMAP 0E00 0300 0000 0200 0300 0700 0580 0D80 09C0 08C0 10E0 1FE0 2070 2030 4038 E07C ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 14 0 BBX 14 16 0 0 BITMAP 01C0 0300 0000 0200 0300 0700 0580 0D80 09C0 08C0 10E0 1FE0 2070 2030 4038 E07C ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 14 0 BBX 14 16 0 0 BITMAP 0780 0CC0 0000 0200 0300 0700 0580 0D80 09C0 08C0 10E0 1FE0 2070 2030 4038 E07C ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 14 0 BBX 14 16 0 0 BITMAP 0740 0B80 0000 0200 0300 0700 0580 0D80 09C0 08C0 10E0 1FE0 2070 2030 4038 E07C ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 14 0 BBX 14 15 0 0 BITMAP 06C0 0000 0200 0300 0700 0580 0D80 09C0 08C0 10E0 1FE0 2070 2030 4038 E07C ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 14 0 BBX 14 16 0 0 BITMAP 0380 0380 0000 0200 0300 0700 0580 0D80 09C0 08C0 10E0 1FE0 2070 2030 4038 E07C ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 16 0 BBX 16 13 0 0 BITMAP 00FF 01C1 03C0 02C0 04C2 04FE 08C2 10C0 1FC0 20C0 20C0 40C1 E1FF ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 12 0 BBX 11 16 0 -3 BITMAP 0FE0 3060 6020 6000 C000 C000 C000 C000 C000 6000 6000 3820 0FC0 0400 0200 0E00 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 10 0 BBX 9 16 1 0 BITMAP 3800 0C00 0000 FF00 6100 6000 6000 6000 6200 7E00 6200 6000 6000 6000 6080 FF80 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 10 0 BBX 9 16 1 0 BITMAP 0E00 1800 0000 FF00 6100 6000 6000 6000 6200 7E00 6200 6000 6000 6000 6080 FF80 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 10 0 BBX 9 16 1 0 BITMAP 1E00 3300 0000 FF00 6100 6000 6000 6000 6200 7E00 6200 6000 6000 6000 6080 FF80 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 10 0 BBX 9 15 1 0 BITMAP 3600 0000 FF00 6100 6000 6000 6000 6200 7E00 6200 6000 6000 6000 6080 FF80 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 6 0 BBX 5 16 2 0 BITMAP E0 30 00 78 30 30 30 30 30 30 30 30 30 30 30 78 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 6 0 BBX 5 16 1 0 BITMAP 38 60 00 F0 60 60 60 60 60 60 60 60 60 60 60 F0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 6 0 BBX 6 16 2 0 BITMAP 78 CC 00 78 30 30 30 30 30 30 30 30 30 30 30 78 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 6 0 BBX 5 15 2 0 BITMAP D8 00 78 30 30 30 30 30 30 30 30 30 30 30 78 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 0 0 BITMAP FFC0 3060 3030 3018 3018 3018 FE18 3018 3018 3010 3030 3060 FFC0 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 13 0 BBX 12 16 1 0 BITMAP 0E80 1700 0000 E070 7020 7020 5820 5C20 4E20 4620 4320 43A0 41A0 40E0 4060 E060 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 14 0 BBX 12 16 1 0 BITMAP 1C00 0600 0000 1F80 30C0 6060 6060 C030 C030 C030 C030 C030 6060 6060 30C0 1F80 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 14 0 BBX 12 16 1 0 BITMAP 0380 0600 0000 1F80 30C0 6060 6060 C030 C030 C030 C030 C030 6060 6060 30C0 1F80 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 14 0 BBX 12 16 1 0 BITMAP 0F00 1980 0000 1F80 30C0 6060 6060 C030 C030 C030 C030 C030 6060 6060 30C0 1F80 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 14 0 BBX 12 16 1 0 BITMAP 0E80 1700 0000 1F80 30C0 6060 6060 C030 C030 C030 C030 C030 6060 6060 30C0 1F80 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 14 0 BBX 12 15 1 0 BITMAP 1B00 0000 1F80 30C0 6060 6060 C030 C030 C030 C030 C030 6060 6060 30C0 1F80 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 11 0 BBX 10 11 0 0 BITMAP 8040 40C0 2100 1300 1E00 0C00 1E00 3200 2100 C080 8040 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 1 0 BITMAP 1F10 30E0 6060 60F0 C1B0 C330 C630 CC30 D830 F060 6060 70C0 9F80 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 13 0 BBX 12 16 0 0 BITMAP 1C00 0600 0000 F070 6020 6020 6020 6020 6020 6020 6020 6020 6020 6020 3040 1F80 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 13 0 BBX 12 16 0 0 BITMAP 0380 0600 0000 F070 6020 6020 6020 6020 6020 6020 6020 6020 6020 6020 3040 1F80 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 13 0 BBX 12 16 0 0 BITMAP 0F00 1980 0000 F070 6020 6020 6020 6020 6020 6020 6020 6020 6020 6020 3040 1F80 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 0 0 BITMAP 0D80 0000 F070 6020 6020 6020 6020 6020 6020 6020 6020 6020 6020 3040 1F80 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 12 0 BBX 12 16 0 0 BITMAP 0380 0600 0000 FCF0 7020 3840 18C0 0C80 0D00 0700 0600 0600 0600 0600 0600 0F00 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 0 BITMAP F000 6000 6000 7F00 6380 6180 6180 6180 6300 7C00 6000 6000 F000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 3E00 6300 6300 6200 6400 6C00 6E00 6700 6380 61C0 60C0 64C0 F780 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 0 BITMAP 70 18 00 7C 46 46 06 7E E6 C6 C6 7F ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 0 BITMAP 1C 30 00 7C 46 46 06 7E E6 C6 C6 7F ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 0 BITMAP 3C 66 00 7C 46 46 06 7E E6 C6 C6 7F ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 0 BITMAP 3A 5C 00 7C 46 46 06 7E E6 C6 C6 7F ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 6C 00 7C 46 46 06 7E E6 C6 C6 7F ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 0 BITMAP 38 38 00 7C 46 46 06 7E E6 C6 C6 7F ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 15 0 BBX 13 9 1 0 BITMAP 3CE0 4710 4618 0618 7FF8 E600 C600 C708 79F8 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 0 -3 BITMAP 3F 61 C1 C0 C0 C0 C0 60 3F 08 04 1C ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 38 0C 00 3C 62 C3 C3 FF C0 C0 61 3F ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 0E 18 00 3C 62 C3 C3 FF C0 C0 61 3F ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 3C 66 00 3C 62 C3 C3 FF C0 C0 61 3F ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 36 00 3C 62 C3 C3 FF C0 C0 61 3F ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 6 0 BBX 5 12 2 0 BITMAP E0 30 00 70 30 30 30 30 30 30 30 78 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 6 0 BBX 4 12 1 0 BITMAP 70 C0 00 E0 60 60 60 60 60 60 60 F0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 6 0 BBX 6 12 2 0 BITMAP 78 CC 00 70 30 30 30 30 30 30 30 78 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 6 0 BBX 5 11 2 0 BITMAP D8 00 70 30 30 30 30 30 30 30 78 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP 0600 FC00 3C00 2E00 4700 3F00 6380 C180 C180 C180 C180 C100 6300 3E00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 1 0 BITMAP 1D00 2E00 0000 EF00 7180 6180 6180 6180 6180 6180 6180 F3C0 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 3800 0C00 0000 3E00 6300 C180 C180 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 0E00 1800 0000 3E00 6300 C180 C180 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 3C00 6600 0000 3E00 6300 C180 C180 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 3A00 5C00 0000 3E00 6300 C180 C180 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 10 0 BBX 9 11 1 0 BITMAP 3600 0000 3E00 6300 C180 C180 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 11 0 BBX 9 9 1 0 BITMAP 0800 0000 0000 0000 FF80 0000 0000 0000 0800 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 0 0 BITMAP 3EC0 6180 C1C0 C2C0 CCC0 F0C0 E0C0 6180 DF00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 0 0 BITMAP 1C00 0600 0000 E380 6180 6180 6180 6180 6180 6180 6380 3DC0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 0 0 BITMAP 0700 0C00 0000 E380 6180 6180 6180 6180 6180 6180 6380 3DC0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 0 0 BITMAP 1E00 3300 0000 E380 6180 6180 6180 6180 6180 6180 6380 3DC0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 11 0 BBX 10 11 0 0 BITMAP 1B00 0000 E380 6180 6180 6180 6180 6180 6180 6380 3DC0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 11 0 BBX 11 15 0 -3 BITMAP 0700 0C00 0000 F8E0 7040 3080 1880 1900 1F00 0E00 0C00 0400 0800 1800 3000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 0 -3 BITMAP E000 6000 6000 6000 6F00 7180 60C0 60C0 60C0 60C0 60C0 7180 6F00 6000 6000 F000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 0 -3 BITMAP 1B00 0000 F8E0 7040 3080 1880 1900 1F00 0E00 0C00 0400 0800 1800 3000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 3F80 6180 6180 6180 FD80 6180 6180 6180 6180 6180 6180 6180 F3C0 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 1 1 5 BITMAP FE ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 16 1 -3 BITMAP 18 18 18 18 18 FF 18 18 18 18 18 18 18 18 18 18 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 16 1 0 BITMAP 3300 1E00 0000 FF80 C300 8300 0600 0E00 0C00 1C00 1800 3800 3000 6080 6080 FF80 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 15 9 0 0 BITMAP 3E78 67C4 C386 C306 C3FE C300 C300 67C2 3E7E ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 15 0 0 BITMAP 0D80 0000 FCF0 7020 3840 18C0 0C80 0D00 0700 0600 0600 0600 0600 0600 0F00 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 9 1 0 BITMAP E0 60 60 60 60 60 60 60 F0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 13 0 0 BITMAP F0 30 30 30 30 3C 30 F0 30 30 30 30 FC ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP F800 3000 3000 3000 3400 3800 7000 B000 3000 3000 3040 3040 FFC0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 16 1 -3 BITMAP 18 18 18 18 18 FF 18 18 18 18 FF 18 18 18 18 18 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 3D80 6580 6400 6000 FF80 6180 6180 6180 6180 6180 6180 6180 FBC0 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 1 BITMAP 80 40 60 30 60 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 17 13 0 0 BITMAP 0F7F80 30E080 606080 606000 C06000 C06100 C07F00 C06100 C06000 606000 606080 30E080 0F7F80 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 16 1 1 5 BITMAP FFFF ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 2 2 11 BITMAP CC 78 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 3 2 4 -3 BITMAP C0 E0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 2 3 11 BITMAP 6C B0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 1 BITMAP 10 20 60 C0 60 20 10 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 2 2 4 11 BITMAP C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 2 2 11 BITMAP 84 78 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 5 2 3 BITMAP 78 FC FC FC 78 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 2 2 11 BITMAP 74 B8 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 2 2 11 BITMAP 78 CC ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 5 1 8 BITMAP 22 CC 88 CC CC ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 1 8 BITMAP E0 E0 E0 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 1 0 BITMAP CC 78 00 7C C4 C4 F0 7C 1E 86 86 FC ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 3 2 4 11 BITMAP E0 E0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 1 -3 BITMAP E0 E0 E0 20 20 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 16 1 -3 BITMAP 0780 0C80 1880 1800 3800 3800 FC00 3000 3000 3000 6000 6000 6000 6000 6000 C000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 17 7 0 6 BITMAP FE7380 923300 103B00 103F00 102D00 102D00 386180 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 11 13 -4 0 BITMAP 0060 00C0 0080 0100 0300 0200 0400 0800 1800 1000 2000 6000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 4 2 3 11 BITMAP E0 30 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 20 13 0 0 BITMAP 781800 842000 846000 84C000 848000 790000 02F1E0 050A10 090A10 190A10 310A10 210A10 C0F1E0 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 13 1 2 0 BITMAP 8208 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 5 2 8 BITMAP 66 66 22 66 88 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 16 1 0 BITMAP 66 3C 00 3E 62 C2 C0 E0 78 3C 0E 03 03 83 C6 FC ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 6 1 -3 BITMAP CC CC 44 44 44 88 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 66 3C 00 FF 86 0E 1C 18 30 70 61 FF ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lubB14.bdf100644 1750 1750 101544 5413747527 15074 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-DemiBold-R-Normal--20-140-100-100-P-118-ISO8859-1 SIZE 14 100 100 FONTBOUNDINGBOX 35 23 -12 -4 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "DemiBold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 20 POINT_SIZE 140 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 118 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 18 FONT_DESCENT 5 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 7 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 5 0 BBX 3 15 1 0 BITMAP E0 E0 E0 E0 E0 E0 E0 40 40 40 40 00 E0 E0 E0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 9 0 BBX 7 6 1 9 BITMAP EE EE EE 44 44 44 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 1 0 BITMAP 0440 0440 0440 0440 0880 7FF0 0880 0880 1100 1100 FFE0 1100 2200 2200 2200 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 12 0 BBX 9 18 2 -2 BITMAP 0800 3F80 7980 E880 E800 E800 7800 7800 1E00 0F00 0F80 0B80 8B80 8B80 CB00 FE00 0800 0800 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 15 0 BBX 15 15 0 0 BITMAP 3806 4408 C610 C630 C660 C640 4480 3900 0238 0444 0CC6 18C6 10C6 2044 C038 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 15 0 BBX 14 15 1 0 BITMAP 0F00 19C0 39C0 39C0 1980 1F00 1C00 7E7C 6618 E718 E390 E3F0 F1E0 70F0 1F7C ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 9 BITMAP E0 E0 E0 60 60 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 7 0 BBX 5 19 1 -4 BITMAP 08 18 30 30 60 60 E0 E0 E0 E0 E0 E0 E0 60 60 30 30 18 08 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 7 0 BBX 5 19 1 -4 BITMAP 80 C0 60 60 30 30 38 38 38 38 38 38 38 30 30 60 60 C0 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 0 8 BITMAP 18 59 FF 66 3C 66 24 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 1 0 BITMAP 0400 0400 0400 0400 0400 0400 FFE0 0400 0400 0400 0400 0400 0400 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 5 0 BBX 3 7 1 -3 BITMAP E0 E0 E0 E0 60 60 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 12 0 BBX 12 1 0 6 BITMAP FFF0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 1 0 BITMAP E0 E0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 11 0 BBX 11 18 0 -3 BITMAP 0060 0040 0080 0080 0100 0100 0200 0200 0400 0400 0800 0800 1000 1000 2000 2000 4000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 1 0 BITMAP 1F00 3180 71C0 60C0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 60C0 71C0 3180 1F00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 2 0 BITMAP FC00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 3E00 FF80 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 1 0 BITMAP 7F00 C380 C1C0 81C0 01C0 01C0 0380 0300 0400 1800 3000 6000 7FC0 FFC0 FFC0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 2 0 BITMAP FE00 C700 8380 0380 0380 0300 0600 7E00 0F00 0380 0380 0380 8380 8700 FC00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 12 0 BBX 12 15 0 0 BITMAP 01C0 03C0 03C0 05C0 09C0 11C0 31C0 61C0 41C0 FFF0 FFF0 01C0 01C0 01C0 07F0 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 2 0 BITMAP FF80 FF80 8000 8000 8000 8000 FC00 0F00 0780 0380 0380 0380 8380 8700 FC00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 1 0 BITMAP 0FC0 3840 7040 7000 E000 E000 EF80 F1C0 E0E0 E0E0 E0E0 60E0 70C0 31C0 1F00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 2 0 BITMAP FFC0 FFC0 FFC0 0080 0100 0300 0600 0400 0C00 1800 1800 3800 3000 7000 7000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 1 0 BITMAP 1F00 3380 71C0 71C0 71C0 7980 3E00 1F80 63C0 E1E0 E0E0 E0E0 E0E0 71C0 1F00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 1 0 BITMAP 1F00 7180 61C0 E0C0 E0E0 E0E0 E0E0 71E0 3EE0 00E0 00E0 01C0 41C0 4380 7E00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 5 0 BBX 3 11 1 0 BITMAP E0 E0 E0 00 00 00 00 00 E0 E0 E0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 5 0 BBX 3 14 1 -3 BITMAP E0 E0 E0 00 00 00 00 00 E0 E0 E0 60 60 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 -1 0 BITMAP 0020 0060 0180 0600 1800 3000 C000 3000 1800 0600 0180 0060 0020 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 12 0 BBX 12 6 0 3 BITMAP FFF0 0000 0000 0000 0000 FFF0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 0 0 BITMAP 8000 C000 3000 0C00 0300 0180 0060 0180 0300 0C00 3000 C000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 10 0 BBX 9 15 1 0 BITMAP FE00 C700 8380 0380 0380 0300 0400 0C00 1800 3800 3800 0000 3800 3800 3800 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 17 0 BBX 16 15 1 0 BITMAP 03F0 0E0C 1806 21C2 6331 4631 8631 8C31 8C61 8CE2 8CE4 4778 6000 3020 0FC0 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 16 0 BBX 16 15 0 0 BITMAP 0180 0180 03C0 03C0 07E0 04E0 04F0 0870 0870 1FF8 1038 201C 201C 601E F03F ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 0 0 BITMAP FF80 39C0 38E0 38E0 38E0 38C0 3980 3F80 38E0 3870 3870 3870 3870 38E0 FFC0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 14 0 BBX 13 15 1 0 BITMAP 07F0 1C18 3808 7008 E000 E000 E000 E000 E000 E000 E000 7000 3800 1C08 07F0 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 16 0 BBX 15 15 0 0 BITMAP FFE0 3878 381C 381C 380E 380E 380E 380E 380E 380E 380C 381C 3818 3830 FFE0 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 12 0 BBX 12 15 0 0 BITMAP FFE0 3820 3820 3800 3800 3800 3840 3FC0 3840 3800 3800 3800 3810 3830 FFF0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 0 0 BITMAP FFE0 3820 3820 3800 3800 3800 3840 3FC0 3840 3800 3800 3800 3800 3800 FE00 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 15 0 BBX 14 15 1 0 BITMAP 0FE0 1C30 3010 7010 E000 E000 E000 E000 E1FC E070 E070 7070 7070 3870 0FE0 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 16 0 BBX 16 15 0 0 BITMAP FE7F 381C 381C 381C 381C 381C 381C 3FFC 381C 381C 381C 381C 381C 381C FE7F ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 7 0 BBX 7 15 0 0 BITMAP FE 38 38 38 38 38 38 38 38 38 38 38 38 38 FE ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 9 0 BBX 9 18 0 -3 BITMAP 3F80 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 8E00 9C00 F800 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 15 0 BBX 15 15 0 0 BITMAP FC3C 3830 3820 3840 3880 3900 3B00 3F00 3F80 3BC0 39E0 38F0 3878 387C FCFE ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 12 0 BBX 12 15 0 0 BITMAP FE00 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3830 3810 FFF0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 18 0 BBX 18 15 0 0 BITMAP F807C0 3C0700 3C0F00 3E0F00 2E1F00 2E1700 273700 272700 27A700 23C700 23C700 218700 218700 200700 F00FC0 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 16 0 BBX 15 15 0 0 BITMAP F03E 3808 3C08 3C08 3E08 2F08 2788 2388 23C8 21E8 20E8 20F8 2078 2038 F818 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 16 0 BBX 15 15 1 0 BITMAP 0FE0 1C70 3018 701C E00E E00E E00E E00E E00E E00E E00E 701C 3018 1C70 0FE0 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 12 0 BBX 12 15 0 0 BITMAP FFC0 38E0 3870 3870 3870 3870 3860 38E0 3F80 3800 3800 3800 3800 3800 FE00 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 16 0 BBX 17 19 1 -4 BITMAP 0FE000 1C7000 301800 701C00 E00E00 E00E00 E00E00 E00E00 E00E00 E00E00 E00E00 701C00 301C00 1C7800 0FE000 007800 003E00 000F80 000600 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 14 0 BBX 15 15 0 0 BITMAP FFC0 38E0 3870 3870 3870 3870 39E0 3FC0 3BC0 39E0 38E0 38F0 3878 387C FC3E ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 1 0 BITMAP 3F00 7180 E080 E080 E000 F800 7E00 3F00 0F80 03C0 01C0 81C0 81C0 C380 7E00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 14 0 BBX 13 15 1 0 BITMAP FFF8 C708 8708 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 1FC0 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 15 0 BBX 15 15 0 0 BITMAP FE3E 3808 3808 3808 3808 3808 3808 3808 3808 3808 3808 3808 1C10 1C10 07E0 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 15 0 BBX 15 15 0 0 BITMAP FC1E 780C 3808 3C08 1C10 1C10 0E30 0E20 0F20 0740 0740 0380 0380 0380 0100 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 19 0 BBX 19 15 0 0 BITMAP FC61E0 7060C0 787080 387080 38F080 3CF100 1CB900 1D3900 1D3A00 1F1E00 0E1E00 0E1C00 0E0C00 040C00 040C00 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 14 0 BBX 14 15 0 0 BITMAP FE3C 3818 3C10 1C20 0E40 0FC0 0780 0780 07C0 09C0 19E0 10E0 20F0 6078 F0FC ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 14 0 BBX 15 15 0 0 BITMAP FE1E 780C 3C08 1C10 1E30 0F20 0740 07C0 0380 0380 0380 0380 0380 0380 0FE0 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 13 0 BBX 11 15 1 0 BITMAP 7FE0 41E0 41C0 03C0 0380 0700 0F00 0E00 1E00 1C00 3800 7800 7020 F060 FFE0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 7 0 BBX 5 18 1 -3 BITMAP F8 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 F8 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 11 0 BBX 11 18 0 -3 BITMAP C000 4000 2000 2000 1000 1000 0800 0800 0400 0400 0200 0200 0100 0100 0080 0080 0040 0060 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 7 0 BBX 5 18 0 -3 BITMAP F8 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 F8 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 12 0 BBX 12 12 0 2 BITMAP 0200 0600 0600 0900 0900 1080 1080 2040 2040 6060 4020 C030 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 10 0 BBX 8 1 1 -2 BITMAP FF ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 9 BITMAP 60 C0 C0 E0 E0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 11 0 BBX 10 11 1 0 BITMAP 3E00 6300 4380 0380 0380 3F80 F380 E380 E380 E380 7DC0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 13 0 BBX 13 15 0 0 BITMAP F800 3800 3800 3800 39E0 3BF0 3C70 3838 3838 3838 3838 3838 3870 3C70 3BC0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 11 0 BBX 9 11 1 0 BITMAP 1F80 7080 6080 E000 E000 E000 E000 E000 7000 3880 1F80 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 13 0 BBX 13 15 0 0 BITMAP 03E0 00E0 00E0 00E0 1EE0 71E0 60E0 E0E0 E0E0 E0E0 E0E0 E0E0 71E0 7EF0 3CF8 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 11 0 BBX 10 11 0 0 BITMAP 1F00 7380 6180 E1C0 E1C0 FFC0 E000 E000 7000 3840 1FC0 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 8 0 BBX 9 15 0 0 BITMAP 1F80 3880 3880 3800 FF00 3800 3800 3800 3800 3800 3800 3800 3800 3800 FE00 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 12 0 BBX 12 15 0 -4 BITMAP 1FF0 31A0 71C0 71C0 71C0 3180 1F00 1000 3000 7FC0 1FE0 E0E0 E0E0 F1C0 3F00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 13 0 BBX 14 15 0 0 BITMAP F800 3800 3800 3800 39E0 3BF0 3C70 3870 3870 3870 3870 3870 3870 3870 FFFC ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 7 0 BBX 7 15 0 0 BITMAP 38 38 38 00 F8 38 38 38 38 38 38 38 38 38 FE ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 7 0 BBX 7 19 0 -4 BITMAP 0E 0E 0E 00 3E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 8E 8E FC ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 12 0 BBX 13 15 0 0 BITMAP F800 3800 3800 3800 38F0 3860 3880 3900 3B00 3F80 3B80 3BC0 39E0 38F0 FCF8 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 7 0 BBX 7 15 0 0 BITMAP F8 38 38 38 38 38 38 38 38 38 38 38 38 38 FE ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 19 0 BBX 19 11 0 0 BITMAP FBCF00 3FFF80 3CF380 38E380 38E380 38E380 38E380 38E380 38E380 38E380 FDF7E0 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 13 0 BBX 14 11 0 0 BITMAP F9E0 7BF0 3C70 3870 3870 3870 3870 3870 3870 3870 FFFC ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 12 0 BBX 11 11 1 0 BITMAP 1F00 71C0 71C0 E0E0 E0E0 E0E0 E0E0 E0E0 71C0 31C0 1F00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 13 0 BBX 13 15 0 -4 BITMAP F9E0 7BF0 3C70 3838 3838 3838 3838 3838 3870 3C70 3BC0 3800 3800 3800 FE00 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 13 0 BBX 13 15 0 -4 BITMAP 1EE0 71E0 70E0 E0E0 E0E0 E0E0 E0E0 E0E0 71E0 7EE0 3CE0 00E0 00E0 00E0 03F8 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 9 0 BBX 9 11 0 0 BITMAP F980 3F80 3C80 3800 3800 3800 3800 3800 3800 3800 FE00 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 10 0 BBX 9 11 1 0 BITMAP 3F00 7100 E100 F000 FC00 7F00 1F80 8780 8380 C700 7E00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 8 0 BBX 7 14 0 0 BITMAP 30 70 70 FE 70 70 70 70 70 70 70 70 70 3E ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 13 0 BBX 14 11 0 0 BITMAP F9F0 3870 3870 3870 3870 3870 3870 3870 38F0 3F78 1E7C ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 13 0 BBX 13 11 0 0 BITMAP FC78 7830 3820 3C40 1C40 1E80 0E80 0F80 0700 0700 0200 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 18 0 BBX 18 11 0 0 BITMAP FC63C0 706180 38F100 38F100 39F200 1D3A00 1D3A00 1E3C00 0E1C00 0C1C00 040800 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 12 0 BBX 12 11 0 0 BITMAP FCF0 7840 3C80 1D80 0F00 0F00 0F80 1B80 33C0 61E0 F3F0 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 13 0 BBX 13 15 0 -4 BITMAP FC78 7830 3820 3C40 1C40 1C80 0E80 0F00 0700 0600 0600 0400 0C00 1800 3800 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 12 0 BBX 10 11 1 0 BITMAP FFC0 C3C0 8780 0700 0E00 1E00 3C00 3800 7840 F0C0 FFC0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 7 0 BBX 5 18 1 -3 BITMAP 38 70 70 70 70 70 70 70 E0 60 70 70 70 70 70 70 70 38 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 5 0 BBX 1 18 2 -3 BITMAP 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 7 0 BBX 5 18 1 -3 BITMAP E0 70 70 70 70 70 70 70 38 30 70 70 70 70 70 70 70 E0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 12 0 BBX 12 4 0 4 BITMAP 7810 4C10 8320 81E0 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 5 0 BBX 3 15 1 -4 BITMAP E0 E0 E0 00 40 40 40 40 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 1 0 BITMAP 0400 0400 1F80 7580 6480 E400 E400 E400 E400 E400 6400 3480 1F80 0400 0400 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 2 0 BITMAP 0F80 1880 3880 3800 3800 3800 FE00 3800 3800 3800 3000 6000 FF80 FF80 FF80 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 12 0 BBX 13 13 0 1 BITMAP 8008 4010 3FE0 38E0 3060 2020 2020 2020 3060 38E0 3FE0 4010 8008 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 12 0 BBX 13 15 0 0 BITMAP FC78 7810 3820 3C60 1E40 0E80 0700 3FC0 0700 0700 3FC0 0700 0700 0700 1FC0 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 5 0 BBX 1 18 2 -3 BITMAP 80 80 80 80 80 80 80 80 00 00 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 12 0 BBX 9 19 2 -4 BITMAP 3F00 7100 E100 E000 F000 FC00 7F00 5F80 C780 C180 F180 FD00 7E00 1F00 0780 0380 8380 C700 FE00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 12 0 BBX 6 2 3 13 BITMAP CC CC ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 17 0 BBX 16 15 1 0 BITMAP 07E0 1818 300C 63E6 4622 8C01 8C01 8C01 8C01 8C01 4622 63E6 300C 1818 07E0 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 10 0 BBX 9 8 1 7 BITMAP FE00 8700 0700 3F00 F700 E700 E700 7B80 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 0 1 BITMAP 0840 1880 3180 7300 E700 7300 3180 1880 0840 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 12 0 BBX 12 6 0 3 BITMAP FFF0 0010 0010 0010 0010 0010 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 6 0 BBX 5 2 0 6 BITMAP F8 F8 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 12 0 BBX 9 10 2 5 BITMAP 3E00 6300 5F00 9280 9280 9C80 9480 5700 6300 3E00 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 12 0 BBX 6 1 3 14 BITMAP FC ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 5 0 BBX 3 4 1 11 BITMAP 40 A0 A0 40 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 1 0 BITMAP 0400 0400 0400 0400 0400 FFE0 0400 0400 0400 0400 0000 0000 FFE0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 -11 6 BITMAP F8 8C 8C 0C 18 20 40 FC FC ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 -12 6 BITMAP F8 8C 0C 08 70 1C 0C 8C F8 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 12 0 BBX 5 3 4 12 BITMAP 38 60 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 14 0 BBX 14 14 0 -3 BITMAP F9F0 3870 3870 3870 3870 3870 3870 3870 38F0 3FF0 3E7C 3800 3800 3800 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 12 0 BBX 8 18 1 -3 BITMAP 7F F9 F9 F9 F9 79 39 09 09 09 09 09 09 09 09 09 09 09 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 12 0 BBX 2 3 5 5 BITMAP C0 C0 C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 12 0 BBX 3 5 5 -4 BITMAP 40 C0 60 60 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 -12 6 BITMAP F0 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 10 0 BBX 9 8 0 7 BITMAP 3E00 7700 E380 E380 E380 E380 7700 3E00 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 1 1 BITMAP 8400 4600 6300 3380 39C0 3380 6300 4600 8400 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 16 0 BBX 15 15 3 0 BITMAP F01C 3018 3030 3070 30E0 30C0 318C 339C FF2C 064C 0EFE 1CFE 180C 300C 701E ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 16 0 BBX 14 15 3 0 BITMAP F01C 3018 3030 3070 30E0 30C0 31F8 338C FF8C 060C 0E18 1C20 1840 30FC 70FC ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 16 0 BBX 15 15 3 0 BITMAP F81C 8C18 0C30 0870 70E0 1CC0 0D8C 8F9C FB2C 064C 0EFE 1CFE 180C 300C 701E ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 10 0 BBX 9 15 1 -4 BITMAP 0E00 0E00 0E00 0000 0E00 0E00 0C00 1800 1000 6000 E000 E000 E080 7180 3F80 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 16 0 BBX 16 19 0 0 BITMAP 0700 0180 00C0 0000 0180 0180 03C0 03C0 07E0 04E0 04F0 0870 0870 1FF8 1038 201C 201C 601E F03F ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 16 0 BBX 16 19 0 0 BITMAP 00E0 0180 0300 0000 0180 0180 03C0 03C0 07E0 04E0 04F0 0870 0870 1FF8 1038 201C 201C 601E F03F ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 16 0 BBX 16 19 0 0 BITMAP 01C0 0360 0630 0000 0180 0180 03C0 03C0 07E0 04E0 04F0 0870 0870 1FF8 1038 201C 201C 601E F03F ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 16 0 BBX 16 19 0 0 BITMAP 0390 07F0 04E0 0000 0180 0180 03C0 03C0 07E0 04E0 04F0 0870 0870 1FF8 1038 201C 201C 601E F03F ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 16 0 BBX 16 18 0 0 BITMAP 0660 0660 0000 0180 0180 03C0 03C0 07E0 04E0 04F0 0870 0870 1FF8 1038 201C 201C 601E F03F ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 16 0 BBX 16 19 0 0 BITMAP 0380 0280 0380 0000 0180 0180 03C0 03C0 07E0 04E0 04F0 0870 0870 1FF8 1038 201C 201C 601E F03F ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 19 0 BBX 19 15 0 0 BITMAP 007FE0 007820 00B820 00B800 013800 023800 023840 043FC0 043840 083800 1FF800 103800 203820 403820 F0FFE0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 14 0 BBX 13 19 1 -4 BITMAP 07F0 1C18 3808 7008 E000 E000 E000 E000 E000 E000 E000 7000 3800 1C08 07F0 0200 0300 0300 0600 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 12 0 BBX 12 19 0 0 BITMAP 1C00 0600 0300 0000 FFE0 3820 3820 3800 3800 3800 3840 3FC0 3840 3800 3800 3800 3810 3830 FFF0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 12 0 BBX 12 19 0 0 BITMAP 0380 0600 0C00 0000 FFE0 3820 3820 3800 3800 3800 3840 3FC0 3840 3800 3800 3800 3810 3830 FFF0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 12 0 BBX 12 19 0 0 BITMAP 0700 0D80 18C0 0000 FFE0 3820 3820 3800 3800 3800 3840 3FC0 3840 3800 3800 3800 3810 3830 FFF0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 12 0 BBX 12 18 0 0 BITMAP 1980 1980 0000 FFE0 3820 3820 3800 3800 3800 3840 3FC0 3840 3800 3800 3800 3810 3830 FFF0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 7 0 BBX 7 19 0 0 BITMAP E0 30 18 00 FE 38 38 38 38 38 38 38 38 38 38 38 38 38 FE ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 7 0 BBX 7 19 0 0 BITMAP 0E 18 30 00 FE 38 38 38 38 38 38 38 38 38 38 38 38 38 FE ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 7 0 BBX 7 19 0 0 BITMAP 38 6C C6 00 FE 38 38 38 38 38 38 38 38 38 38 38 38 38 FE ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 7 0 BBX 7 18 0 0 BITMAP CC CC 00 FE 38 38 38 38 38 38 38 38 38 38 38 38 38 FE ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 16 0 BBX 15 15 0 0 BITMAP FFE0 3878 381C 381C 380E 380E 380E FF0E 380E 380E 380C 381C 3818 3838 FFE0 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 0 0 BITMAP 0720 0FE0 09C0 0000 F03E 3808 3C08 3C08 3E08 2F08 2788 2388 23C8 21E8 20E8 20F8 2078 2038 F818 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 1 0 BITMAP 0E00 0300 0180 0000 0FE0 1C70 3018 701C E00E E00E E00E E00E E00E E00E E00E 701C 3018 1C70 0FE0 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 1 0 BITMAP 00E0 0180 0300 0000 0FE0 1C70 3018 701C E00E E00E E00E E00E E00E E00E E00E 701C 3018 1C70 0FE0 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 1 0 BITMAP 0380 06C0 0C60 0000 0FE0 1C70 3018 701C E00E E00E E00E E00E E00E E00E E00E 701C 3018 1C70 0FE0 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 1 0 BITMAP 0720 0FE0 09C0 0000 0FE0 1C70 3018 701C E00E E00E E00E E00E E00E E00E E00E 701C 3018 1C70 0FE0 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 1 0 BITMAP 0CC0 0CC0 0000 0FE0 1C70 3018 701C E00E E00E E00E E00E E00E E00E E00E 701C 3018 1C70 0FE0 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 0 0 BITMAP C010 4030 2040 1080 1980 0F00 0600 0F00 1980 1080 2040 C020 8030 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 16 0 BBX 15 15 1 0 BITMAP 0FE6 1C3C 301C 701C E02E E04E E08E E10E E20E E40E E80E 701C 7018 7870 C7E0 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 15 0 BBX 15 19 0 0 BITMAP 0E00 0300 0180 0000 FE3E 3808 3808 3808 3808 3808 3808 3808 3808 3808 3808 3808 1C10 1C10 07E0 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 15 0 BBX 15 19 0 0 BITMAP 00E0 0180 0300 0000 FE3E 3808 3808 3808 3808 3808 3808 3808 3808 3808 3808 3808 1C10 1C10 07E0 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 15 0 BBX 15 19 0 0 BITMAP 0380 06C0 0C60 0000 FE3E 3808 3808 3808 3808 3808 3808 3808 3808 3808 3808 3808 1C10 1C10 07E0 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 0 0 BITMAP 0CC0 0CC0 0000 FE3E 3808 3808 3808 3808 3808 3808 3808 3808 3808 3808 3808 1C10 1C10 07E0 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 14 0 BBX 15 19 0 0 BITMAP 00E0 0180 0300 0000 FE1E 780C 3C08 1C10 1E30 0F20 0740 07C0 0380 0380 0380 0380 0380 0380 0FE0 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 12 0 BBX 12 15 0 0 BITMAP FE00 3800 3800 3FC0 38E0 3870 3870 3870 3870 3860 38E0 3F80 3800 3800 FE00 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 14 0 BBX 13 15 1 0 BITMAP 0F80 18E0 38E0 38E0 3880 3900 3B00 3BC0 3BE0 39F0 38F8 3838 3938 3938 FDF0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 1 0 BITMAP 3800 0C00 0600 0000 3E00 6300 4380 0380 0380 3F80 F380 E380 E380 E380 7DC0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 1 0 BITMAP 0700 0C00 1800 0000 3E00 6300 4380 0380 0380 3F80 F380 E380 E380 E380 7DC0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 1 0 BITMAP 1C00 3600 6300 0000 3E00 6300 4380 0380 0380 3F80 F380 E380 E380 E380 7DC0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 1 0 BITMAP 3900 7F00 4E00 0000 3E00 6300 4380 0380 0380 3F80 F380 E380 E380 E380 7DC0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 3300 3300 0000 3E00 6300 4380 0380 0380 3F80 F380 E380 E380 E380 7DC0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 1 0 BITMAP 1C00 1400 1C00 0000 3E00 6300 4380 0380 0380 3F80 F380 E380 E380 E380 7DC0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 17 0 BBX 16 11 0 0 BITMAP 3E7C 63CE 4386 0387 0387 3FFF F380 E380 E3C0 F3E1 7C7F ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 11 0 BBX 9 15 1 -4 BITMAP 1F80 7080 6080 E000 E000 E000 E000 E000 7000 3880 1F80 0800 0C00 0C00 1800 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 0 0 BITMAP 3800 0C00 0600 0000 1F00 7380 6180 E1C0 E1C0 FFC0 E000 E000 7000 3840 1FC0 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 0 0 BITMAP 0700 0C00 1800 0000 1F00 7380 6180 E1C0 E1C0 FFC0 E000 E000 7000 3840 1FC0 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 0 0 BITMAP 0E00 1B00 3180 0000 1F00 7380 6180 E1C0 E1C0 FFC0 E000 E000 7000 3840 1FC0 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 0 0 BITMAP 3300 3300 0000 1F00 7380 6180 E1C0 E1C0 FFC0 E000 E000 7000 3840 1FC0 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 7 0 BBX 7 15 0 0 BITMAP E0 30 18 00 F8 38 38 38 38 38 38 38 38 38 FE ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 7 0 BBX 7 15 0 0 BITMAP 0E 18 30 00 F8 38 38 38 38 38 38 38 38 38 FE ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 7 0 BBX 7 15 0 0 BITMAP 38 6C C6 00 F8 38 38 38 38 38 38 38 38 38 FE ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 7 0 BBX 7 14 0 0 BITMAP CC CC 00 F8 38 38 38 38 38 38 38 38 38 FE ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 13 0 BBX 11 16 1 0 BITMAP 0300 FC00 1C00 3700 4380 1FC0 71C0 71E0 E0E0 E0E0 E0E0 E0E0 E0E0 71C0 3180 1F00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 13 0 BBX 14 15 0 0 BITMAP 0E40 1FC0 1380 0000 F9E0 7BF0 3C70 3870 3870 3870 3870 3870 3870 3870 FFFC ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 1 0 BITMAP 3800 0C00 0600 0000 1F00 71C0 71C0 E0E0 E0E0 E0E0 E0E0 E0E0 71C0 31C0 1F00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 1 0 BITMAP 0380 0600 0C00 0000 1F00 71C0 71C0 E0E0 E0E0 E0E0 E0E0 E0E0 71C0 31C0 1F00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 1 0 BITMAP 0E00 1B00 3180 0000 1F00 71C0 71C0 E0E0 E0E0 E0E0 E0E0 E0E0 71C0 31C0 1F00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 1 0 BITMAP 1C80 3F80 2700 0000 1F00 71C0 71C0 E0E0 E0E0 E0E0 E0E0 E0E0 71C0 31C0 1F00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 1980 1980 0000 1F00 71C0 71C0 E0E0 E0E0 E0E0 E0E0 E0E0 71C0 31C0 1F00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 12 0 BBX 12 11 0 0 BITMAP 0600 0600 0000 0000 0000 FFF0 0000 0000 0000 0600 0600 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 12 0 BBX 13 11 0 0 BITMAP 0F98 18E0 38E0 70F0 7170 7270 7470 7870 38E0 38C0 CF80 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 13 0 BBX 14 15 0 0 BITMAP 0E00 0300 0180 0000 F9F0 3870 3870 3870 3870 3870 3870 3870 38F0 3F78 1E7C ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 13 0 BBX 14 15 0 0 BITMAP 01C0 0300 0600 0000 F9F0 3870 3870 3870 3870 3870 3870 3870 38F0 3F78 1E7C ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 13 0 BBX 14 15 0 0 BITMAP 0380 06C0 0C60 0000 F9F0 3870 3870 3870 3870 3870 3870 3870 38F0 3F78 1E7C ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 13 0 BBX 14 14 0 0 BITMAP 0CC0 0CC0 0000 F9F0 3870 3870 3870 3870 3870 3870 3870 38F0 3F78 1E7C ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 13 0 BBX 13 19 0 -4 BITMAP 01C0 0300 0600 0000 FC78 7830 3820 3C40 1C40 1C80 0E80 0F00 0700 0600 0600 0400 0C00 1800 3800 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 13 0 BBX 13 18 0 -4 BITMAP F800 3800 3800 39E0 3BF0 3C70 3838 3838 3838 3838 3838 3870 3C70 3BC0 3800 3800 3800 FE00 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 13 0 BBX 13 18 0 -4 BITMAP 1980 1980 0000 FC78 7830 3820 3C40 1C40 1C80 0E80 0F00 0700 0600 0600 0400 0C00 1800 3800 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 14 15 0 0 BITMAP 0FF0 18F0 3870 3870 FE70 3870 3870 3870 3870 3870 3870 3870 3870 3870 FCFC ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 1 1 7 BITMAP FF80 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 18 2 -3 BITMAP 1C00 1C00 1C00 1C00 1C00 1C00 FF80 DD80 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 11 19 1 0 BITMAP 3180 1B00 0E00 0000 7FE0 41E0 41C0 03C0 0380 0700 0F00 0E00 1E00 1C00 3800 7800 7020 F060 FFE0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 17 11 1 0 BITMAP 1F1E00 71E300 70E300 E0E380 E0E380 E0FF80 E0E000 E0E000 70F000 31F880 1F3F80 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 15 18 0 0 BITMAP 0CC0 0CC0 0000 FE1E 780C 3C08 1C10 1E30 0F20 0740 07C0 0380 0380 0380 0380 0380 0380 0FE0 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 11 0 0 BITMAP F8 38 38 38 38 38 38 38 38 38 FE ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 15 0 0 BITMAP F8 38 38 38 38 3A 3C 38 F8 B8 38 38 38 38 FE ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 15 0 0 BITMAP FE00 3800 3800 3800 3A00 3E00 3800 7800 F800 3800 3800 3800 3810 3830 FFF0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 18 2 -3 BITMAP 1C00 1C00 1C00 1C00 1C00 1C00 FF80 DD80 1C00 1C00 1C00 1C00 FF80 DD80 1C00 1C00 1C00 1C00 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 14 15 0 0 BITMAP 1F70 3970 3970 3800 FFF0 3870 3870 3870 3870 3870 3870 3870 3870 3870 FDFC ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 1 BITMAP 80 C0 60 30 38 30 60 C0 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 19 15 1 0 BITMAP 0FBFE0 387820 703820 703800 E03800 E03800 E03840 E03FC0 E03840 E03800 E03800 703800 303820 187820 0FBFE0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 18 1 1 6 BITMAP FFFFC0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 3 3 12 BITMAP C6 6C 38 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 4 3 4 -3 BITMAP 60 C0 F0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 3 4 12 BITMAP 36 68 90 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 1 BITMAP 08 18 30 60 E0 60 30 18 08 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 2 3 5 12 BITMAP C0 C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 3 3 12 BITMAP 82 7C 38 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 7 3 3 BITMAP 38 7C FE FE FE 7C 38 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 3 3 12 BITMAP 72 FE 9C ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 3 3 12 BITMAP 38 6C C6 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 6 1 9 BITMAP 22 44 CC EE EE EE ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 1 9 BITMAP E0 E0 E0 40 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 15 1 0 BITMAP 6300 3600 1C00 0000 3F00 7100 E100 F000 FC00 7F00 1F80 8780 8380 C700 7E00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 3 3 5 12 BITMAP E0 A0 E0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 7 1 -3 BITMAP E0 E0 E0 E0 60 60 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 18 2 -3 BITMAP 03C0 0E40 0C40 1C00 1C00 3800 3800 7E00 3800 3800 7000 7000 7000 7000 7000 E000 E000 E000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 20 8 0 7 BITMAP FF3CF0 991CE0 991EE0 181FE0 181760 181760 181660 3C3070 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 13 15 -5 0 BITMAP 0038 0030 0060 00E0 01C0 0180 0300 0700 0600 0C00 1C00 3800 3000 6000 E000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 5 3 3 12 BITMAP E0 30 18 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 23 15 0 0 BITMAP 380600 440800 C61000 C63000 C66000 444000 388000 013838 024444 04C6C6 0CC6C6 18C6C6 10C6C6 204444 C03838 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 15 2 3 0 BITMAP C186 C186 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 6 1 9 BITMAP EE EE EE 66 44 88 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 19 1 0 BITMAP 6300 3600 1C00 0000 3F00 7180 E080 E080 E000 F800 7E00 3F00 0F80 03C0 01C0 81C0 81C0 C380 7E00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 -3 BITMAP EE EE EE 66 66 66 CC ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 1 0 BITMAP 3180 1B00 0E00 0000 FFC0 C3C0 8780 0700 0E00 1E00 3C00 3800 7840 F0C0 FFC0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lubB18.bdf100644 1750 1750 113502 5413747530 15067 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-DemiBold-R-Normal--25-180-100-100-P-149-ISO8859-1 SIZE 18 100 100 FONTBOUNDINGBOX 44 28 -15 -5 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "DemiBold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 25 POINT_SIZE 180 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 149 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 23 FONT_DESCENT 6 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 8 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 6 0 BBX 4 18 1 0 BITMAP F0 F0 F0 F0 F0 F0 E0 E0 60 60 60 40 40 00 F0 F0 F0 F0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 12 0 BBX 9 7 1 12 BITMAP F780 F780 E380 E380 6300 4100 4100 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 17 0 BBX 16 18 0 0 BITMAP 018C 030C 0318 0318 0718 7FFF 7FFF 0630 0630 0C70 0C60 FFFE FFFE 18E0 18C0 18C0 38C0 3180 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 16 0 BBX 12 22 2 -3 BITMAP 0400 1FE0 3CE0 7C60 7C60 7C00 7C00 7C00 3C00 1F00 0FC0 07E0 05F0 04F0 04F0 C4F0 C4E0 E5E0 FFC0 0600 0400 0400 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 19 0 BBX 19 18 0 0 BITMAP 3E00E0 6301C0 E38380 E38700 E38E00 E39C00 E3B800 633000 3E6000 00CF80 0198C0 03B8E0 0738E0 0E38E0 1C38E0 3838E0 7018C0 E00F80 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 19 0 BBX 18 18 1 0 BITMAP 07E000 0E7000 1E7800 1E7800 1E7800 0E7000 07C000 0F0000 1B8FC0 738380 71C300 F1E300 F0F200 F0FE00 F87C00 7C3E00 3FEF80 0F8F80 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 7 0 BBX 4 8 1 11 BITMAP F0 F0 F0 F0 70 70 60 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 8 0 BBX 7 23 1 -4 BITMAP 02 06 0C 18 38 78 70 70 F0 F0 F0 F0 F0 F0 F0 70 70 78 38 18 0C 06 02 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 8 0 BBX 7 23 1 -4 BITMAP 80 C0 60 30 38 3C 1C 1C 1E 1E 1E 1E 1E 1E 1E 1C 1C 3C 38 30 60 C0 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 1 9 BITMAP 0C00 0C00 4C80 FFC0 7380 1600 3B00 7380 1200 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 16 0 BBX 14 15 1 0 BITMAP 0300 0300 0300 0300 0300 0300 0300 FFFC FFFC 0300 0300 0300 0300 0300 0300 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 7 0 BBX 4 8 1 -4 BITMAP F0 F0 F0 F0 70 70 60 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 16 0 BBX 14 2 1 6 BITMAP FFFC FFFC ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 7 0 BBX 4 4 1 0 BITMAP F0 F0 F0 F0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 13 0 BBX 13 23 0 -4 BITMAP 0018 0030 0030 0060 0060 00C0 00C0 01C0 0180 0380 0300 0700 0600 0E00 0C00 1C00 1800 1800 3000 3000 6000 6000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 1 0 BITMAP 0780 1CE0 3870 7878 7038 F03C F03C F03C F03C F03C F03C F03C F03C 7038 7878 3870 1CE0 0780 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 16 0 BBX 10 18 3 0 BITMAP FE00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 3F00 FFC0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 16 0 BBX 12 18 1 0 BITMAP 7F80 E3E0 C1E0 C0F0 00F0 00F0 00E0 01E0 0180 0300 0400 0800 1000 3000 7FF0 7FF0 FFF0 FFF0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 16 0 BBX 12 18 2 0 BITMAP 7F00 E3C0 C1E0 C1E0 01E0 01E0 01C0 0380 3F00 03C0 01E0 00F0 00F0 00F0 C0F0 C1E0 E3C0 FF00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 0 0 BITMAP 0078 0078 00F8 0178 0278 0478 0878 1078 3078 6078 FFFE FFFE FFFE 0078 0078 0078 0078 01FE ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 16 0 BBX 11 18 3 0 BITMAP FFE0 FFE0 FFE0 8000 8000 8000 8000 FE00 0F80 03C0 03E0 01E0 01E0 01E0 C1E0 C3C0 E380 FE00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 1 0 BITMAP 07F0 1E38 3818 7818 7000 7000 F3E0 F7F0 F8F8 F07C F03C F03C F03C 703C 7038 3878 1C70 0FC0 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 16 0 BBX 12 18 3 0 BITMAP FFF0 FFF0 FFF0 FFE0 0060 00C0 0080 0180 0300 0600 0600 0C00 1C00 3C00 3800 3800 7800 7800 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 16 0 BBX 13 18 1 0 BITMAP 0FC0 3DE0 78F0 78F0 78F0 78F0 3CE0 1F80 0F80 1FE0 71F0 F0F8 F078 F078 F078 7070 78E0 1F80 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 1 0 BITMAP 0FC0 38E0 7870 7038 F038 F03C F03C F03C F83C 7C7C 3FBC 1F3C 0038 0038 6078 6070 71E0 3F80 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 6 0 BBX 4 13 1 0 BITMAP F0 F0 F0 F0 00 00 00 00 00 F0 F0 F0 F0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 6 0 BBX 4 17 1 -4 BITMAP F0 F0 F0 F0 00 00 00 00 00 F0 F0 F0 F0 70 70 60 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 16 0 BBX 14 15 1 0 BITMAP 0004 001C 0078 01F0 07C0 0F00 3C00 F000 3C00 0F00 07C0 01F0 0078 001C 0004 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 16 0 BBX 14 6 1 4 BITMAP FFFC FFFC 0000 0000 FFFC FFFC ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 16 0 BBX 14 15 1 0 BITMAP 8000 E000 7800 3E00 0F80 03C0 00F0 003C 00F0 03C0 0F80 3E00 7800 E000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 13 0 BBX 12 18 0 0 BITMAP 7F80 E3E0 C1F0 C0F0 00F0 00F0 00E0 0180 0300 0600 0E00 1E00 1E00 0000 1E00 1E00 1E00 1E00 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 22 0 BBX 19 18 2 0 BITMAP 00FC00 030300 0C0080 180040 30F060 218E20 430C20 470C20 861C20 8E1C20 8E3C40 8E7C40 8FDD80 471E00 400000 200000 181800 07F000 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 20 0 BBX 20 18 0 0 BITMAP 006000 006000 007000 00F000 017800 017800 017C00 023C00 023E00 041E00 041F00 080F00 0FFF80 100780 1007C0 2003C0 2003E0 F80FF0 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 1 0 BITMAP FFE0 3CF0 3C78 3C78 3C78 3C78 3C70 3CE0 3F80 3CE0 3C78 3C38 3C3C 3C3C 3C3C 3C3C 3C78 FFE0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 18 0 BBX 16 18 1 0 BITMAP 03FE 0E07 3C03 3803 7800 7000 F000 F000 F000 F000 F000 F000 7800 7800 3C00 3F03 0FFF 03FC ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 20 0 BBX 18 18 1 0 BITMAP FFF800 3C1E00 3C0F00 3C0780 3C0780 3C03C0 3C03C0 3C03C0 3C03C0 3C03C0 3C03C0 3C03C0 3C0380 3C0780 3C0700 3C0F00 3C1E00 FFF800 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP FFF8 3C18 3C18 3C00 3C00 3C00 3C00 3C20 3FE0 3C20 3C00 3C00 3C00 3C00 3C00 3C18 3C18 FFF8 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP FFF8 3C18 3C18 3C00 3C00 3C00 3C00 3C20 3FE0 3C20 3C00 3C00 3C00 3C00 3C00 3C00 3C00 FF00 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 19 0 BBX 18 18 1 0 BITMAP 03FE00 0E0700 3C0300 380300 780000 700000 F00000 F00000 F00000 F00000 F03FC0 F00F00 700F00 780F00 380F00 3C0F00 0E0F00 03FE00 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 20 0 BBX 19 18 0 0 BITMAP FF1FE0 3C0780 3C0780 3C0780 3C0780 3C0780 3C0780 3C0780 3FFF80 3C0780 3C0780 3C0780 3C0780 3C0780 3C0780 3C0780 3C0780 FF1FE0 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 9 0 BBX 8 18 0 0 BITMAP FF 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C FF ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 11 0 BBX 11 22 0 -4 BITMAP 1FE0 07C0 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 C700 CF00 FC00 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 19 0 BBX 18 18 1 0 BITMAP FF0F80 3C0600 3C0C00 3C1800 3C3000 3C6000 3CC000 3D8000 3FC000 3FE000 3DF000 3DF000 3CF800 3C7C00 3C3E00 3C1F00 3C1F80 FF3FC0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 0 0 BITMAP FF00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C0C 3C0C 3C0C FFFC ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 23 0 BBX 22 18 0 0 BITMAP FE00FC 3E01F0 3F01F0 3F03F0 3F83F0 3783F0 3786F0 37C6F0 33CCF0 33ECF0 31F8F0 31F8F0 30F8F0 30F0F0 30F0F0 3060F0 3000F0 FC03FC ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 20 0 BBX 18 18 1 0 BITMAP F80FC0 3C0300 3E0300 3E0300 3F0300 3F8300 37C300 37C300 33E300 31F300 30F300 30FB00 307F00 303F00 303F00 301F00 300F00 FC0700 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 20 0 BBX 18 18 1 0 BITMAP 03F000 1E1E00 3C0F00 780780 780780 700380 F003C0 F003C0 F003C0 F003C0 F003C0 F003C0 700380 780780 380700 3C0F00 0E1C00 03F000 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 1 0 BITMAP FFE0 3C78 3C38 3C3C 3C3C 3C3C 3C3C 3C38 3C78 3C70 3FC0 3C00 3C00 3C00 3C00 3C00 3C00 FF00 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 20 0 BBX 21 22 1 -4 BITMAP 03F000 0E1E00 3C0F00 380780 780780 700380 F003C0 F003C0 F003C0 F003C0 F003C0 F003C0 7003C0 780780 380780 3C0F00 0E1E00 03F800 000F00 0007F8 0003F0 000060 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 18 0 BBX 17 18 1 0 BITMAP FFE000 3C7800 3C3800 3C3C00 3C3C00 3C3C00 3C3C00 3C7800 3CF000 3FE000 3DE000 3CF000 3CF800 3C7C00 3C7C00 3C3E00 3C1F00 FF1F80 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 1 0 BITMAP 1FC0 38E0 7060 F060 F000 F800 FC00 7F00 3F80 1FE0 07E0 01F0 00F0 00F0 C0F0 C0E0 E1C0 7F00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 18 0 BBX 18 18 0 0 BITMAP FFFFC0 E1E0C0 C1E0C0 C1E0C0 01E000 01E000 01E000 01E000 01E000 01E000 01E000 01E000 01E000 01E000 01E000 01E000 01E000 07F800 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 19 0 BBX 18 18 0 0 BITMAP FF0FC0 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 1C0200 1E0600 0F0C00 03F800 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 19 0 BBX 19 18 0 0 BITMAP FF03E0 7C0180 3E0180 1E0100 1E0100 1F0200 0F0200 0F8600 078400 07C400 03C800 03C800 01F000 01F000 01F000 00E000 00E000 004000 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 24 0 BBX 24 18 0 0 BITMAP FE0C1F 780C04 3C1E04 3C1E08 3E1E08 3E3F08 1E2F10 1E2F10 1F4F10 0F47B0 0F47A0 0FC7A0 0F83E0 0783C0 0783C0 0701C0 030180 030180 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 18 0 BBX 18 18 0 0 BITMAP 7F07C0 3E0300 1E0200 1F0600 0F8C00 078800 07D000 03F000 03E000 03F000 03F800 067800 0E7C00 1C3E00 183E00 381F00 700F80 F83FC0 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 18 0 BBX 18 18 0 0 BITMAP FF07C0 7C0300 3E0300 1E0200 1F0400 0F8400 078800 07D000 03D000 03E000 01E000 01E000 01E000 01E000 01E000 01E000 01E000 07F800 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 16 0 BBX 13 18 1 0 BITMAP 7FF8 60F8 60F8 01F0 01E0 03E0 03C0 07C0 0F80 0F80 1F00 1E00 3E00 3C00 7C00 F818 F818 FFF8 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 8 0 BBX 7 23 1 -4 BITMAP FE F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 FE ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 13 0 BBX 13 23 0 -4 BITMAP C000 6000 6000 3000 3000 1800 1800 1C00 0C00 0E00 0600 0700 0300 0380 0180 01C0 00C0 00E0 0060 0060 0030 0030 0018 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 8 0 BBX 7 23 0 -4 BITMAP FE 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E FE ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 16 0 BBX 14 15 1 3 BITMAP 0100 0300 0300 0780 0780 0FC0 0CC0 1CE0 1860 3870 3030 3030 6018 6018 C00C ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 12 0 BBX 10 2 1 -3 BITMAP FFC0 FFC0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 7 0 BBX 4 8 1 11 BITMAP 30 60 E0 E0 F0 F0 F0 F0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 14 0 BBX 14 13 0 0 BITMAP 3F80 70E0 60F0 00F0 00F0 1FF0 78F0 F0F0 F0F0 F0F0 F8F0 7F70 3E3C ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 0 0 BITMAP FC00 3C00 3C00 3C00 3C00 3C00 3CF0 3DFC 3FFC 3E3E 3C1E 3C1E 3C1E 3C1E 3C1E 3C3C 3E3C 3BF8 39F0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 14 0 BBX 11 13 1 0 BITMAP 0FE0 38E0 7060 7060 F000 F000 F000 F000 F000 7800 7C20 3FE0 0FC0 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 1 0 BITMAP 01F8 0078 0078 0078 0078 0078 1E78 3FF8 78F8 7078 F078 F078 F078 F078 F078 F8F8 7FF8 7F7C 1E7E ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 1 0 BITMAP 0F80 39C0 70E0 70F0 F0F0 FFF0 F000 F000 F000 7800 7C10 3FF0 0FE0 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 10 0 BBX 11 19 0 0 BITMAP 0FC0 1C60 3C60 3C00 3C00 3C00 FFC0 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 FF00 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 1 -5 BITMAP 0FFC 38E8 78F0 78F0 78F0 78F0 38E0 18E0 07C0 3800 7FF0 3FF8 1FF8 7078 F078 F070 78E0 3FC0 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 16 0 BBX 16 19 0 0 BITMAP FC00 3C00 3C00 3C00 3C00 3C00 3C70 3DF8 3DFC 3E3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C FFFF ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 8 0 BBX 8 19 0 0 BITMAP 3C 3C 3C 3C 00 00 FC 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C FF ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 9 0 BBX 8 24 0 -5 BITMAP 0F 0F 0F 0F 00 00 1F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F 0F CF CF CE FC ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 15 0 BBX 16 19 0 0 BITMAP FC00 3C00 3C00 3C00 3C00 3C00 3C3E 3C18 3C30 3C60 3CC0 3DC0 3FE0 3DE0 3DF0 3CF8 3C7C 3C7E FF3F ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 8 0 BBX 8 19 0 0 BITMAP FC 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C FF ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 24 0 BBX 24 13 0 0 BITMAP FCF0F0 3DF9F8 3FFFFC 3E3E3C 3C3C3C 3C3C3C 3C3C3C 3C3C3C 3C3C3C 3C3C3C 3C3C3C 3C3C3C FFFFFF ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 16 0 BBX 16 13 0 0 BITMAP FC70 7DF8 3DFC 3E3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C FFFF ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 15 0 BBX 14 13 1 0 BITMAP 0FC0 3CF0 7878 7038 F03C F03C F03C F03C F03C 7038 7878 3CF0 0FC0 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 0 -5 BITMAP FCF0 7DFC 3FFC 3E3E 3C1E 3C1E 3C1E 3C1E 3C1E 3C3C 3E3C 3FF8 3CF0 3C00 3C00 3C00 3C00 FF00 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 1 -5 BITMAP 1E78 3FF8 78F8 7878 F078 F078 F078 F078 F078 F8F8 7FF8 7F78 1E78 0078 0078 0078 0078 01FE ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 0 0 BITMAP FCE0 3DE0 3FE0 3E60 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 FF00 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 1 0 BITMAP 1F80 79C0 F0C0 F0C0 FC00 FF80 7FC0 1FE0 07E0 C1E0 C1E0 E3C0 7F00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 10 0 BBX 9 17 0 0 BITMAP 0C00 3C00 3C00 3C00 FF80 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 1F80 0F80 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 16 0 BBX 16 13 0 0 BITMAP FCFC 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C7C 3FBC 1FBE 0E3F ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 16 0 BBX 16 13 0 0 BITMAP FE1F 7C04 3C0C 1E08 1E18 1F10 0F30 0FA0 07E0 07C0 03C0 0380 0180 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 22 0 BBX 22 13 0 0 BITMAP FE187C 781C10 3C3C30 3C3E20 3E3E20 1E5E60 1E4F40 0F8F40 0F8F80 0F0780 070780 070300 060300 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 15 0 BBX 15 13 0 0 BITMAP FF3E 7C18 3E30 1F20 0FC0 0F80 07C0 07E0 05F0 09F0 10F8 307C F8FE ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 16 0 BBX 16 18 0 -5 BITMAP FE1F 7C04 3C0C 3E08 1E18 1F10 0F30 0FA0 07C0 07C0 0380 0380 0300 0100 0200 0600 0C00 3C00 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 15 0 BBX 12 13 1 0 BITMAP FFF0 C1F0 C3E0 03C0 07C0 0F80 1F00 1F00 3E00 7C00 7C30 F830 FFF0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 9 0 BBX 6 23 2 -4 BITMAP 1C 38 78 78 78 78 78 78 78 78 70 C0 70 70 78 78 78 78 78 78 78 38 1C ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 6 0 BBX 2 23 2 -4 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 9 0 BBX 6 23 1 -4 BITMAP E0 70 78 78 78 78 78 78 78 38 38 0C 38 78 78 78 78 78 78 78 78 70 E0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 16 0 BBX 14 6 1 4 BITMAP 3800 7E04 4704 8388 81F8 8070 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 6 0 BBX 4 18 1 -5 BITMAP F0 F0 F0 F0 00 40 40 60 60 60 E0 E0 F0 F0 F0 F0 F0 F0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 16 0 BBX 12 18 1 0 BITMAP 0100 0100 0FF0 3D70 7930 7130 F100 F100 F100 F100 F100 F100 7900 3D10 1FF0 0FE0 0100 0100 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 16 0 BBX 11 18 3 0 BITMAP 07C0 1C60 1C60 3C60 3C00 3C00 3C00 3C00 FF00 3C00 3C00 3C00 3800 6000 FFE0 FFE0 FFE0 FFE0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 16 0 BBX 15 16 0 1 BITMAP 8002 4004 27C8 1FF0 1C70 3838 3018 3018 3018 3018 3838 1C70 3FF8 27C8 4004 8002 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 16 0 BBX 16 18 0 0 BITMAP FE0F 7C06 3C04 3E08 1F18 1F10 0FA0 07E0 07C0 1FF8 03C0 03C0 1FF8 03C0 03C0 03C0 03C0 0FF0 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 6 0 BBX 2 23 2 -4 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 00 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 16 0 BBX 12 23 2 -5 BITMAP 1FC0 78E0 F060 F060 F000 FC00 FF00 7FC0 3FE0 67F0 E1F0 E0F0 F870 FE60 7FC0 3FC0 0FE0 03F0 00F0 C0F0 C0F0 E1E0 7F80 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 15 0 BBX 8 3 4 15 BITMAP E7 E7 E7 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 21 0 BBX 19 18 1 0 BITMAP 01F000 0E0E00 180300 200080 61F8C0 470C40 870820 8E0020 8E0020 8E0020 8E0020 870020 438840 61F8C0 200080 180300 0E0E00 01F000 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 1 8 BITMAP 7F00 C380 C3C0 03C0 3FC0 7BC0 F3C0 F3C0 FFE0 79E0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 14 0 BBX 12 11 1 1 BITMAP 0410 0C30 1860 38C0 71C0 F380 71C0 38C0 1860 0C30 0410 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 16 0 BBX 14 6 1 4 BITMAP FFFC FFFC 000C 000C 000C 000C ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 7 0 BBX 6 3 1 6 BITMAP FC FC FC ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 16 0 BBX 12 12 2 6 BITMAP 1F80 30C0 4020 DFB0 8890 8890 8F10 8B10 D9B0 4020 30C0 1F80 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 15 0 BBX 8 2 4 16 BITMAP FF FF ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 6 0 BBX 4 4 1 14 BITMAP 60 90 90 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 16 0 BBX 14 15 1 0 BITMAP 0300 0300 0300 0300 0300 FFFC FFFC 0300 0300 0300 0300 0000 0000 FFFC FFFC ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 -14 7 BITMAP FC CE 86 06 04 0C 10 20 40 FE FE ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 -14 7 BITMAP FC 8E 86 06 0C 78 0E 06 86 8E F8 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 15 0 BBX 6 4 5 15 BITMAP 3C 30 60 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 18 0 BBX 16 17 1 -4 BITMAP FCFC 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C7C 3FFC 3FBC 3F3F 3C00 3C00 3C00 3C00 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 16 0 BBX 10 22 2 -4 BITMAP 3FC0 7FC0 FC40 FC40 FC40 FC40 FC40 7C40 3C40 0440 0440 0440 0440 0440 0440 0440 0440 0440 0440 0440 0440 0440 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 16 0 BBX 3 4 6 5 BITMAP E0 E0 E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 15 0 BBX 4 5 6 -5 BITMAP 60 C0 70 70 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 9 0 BBX 6 11 -15 7 BITMAP F0 30 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 1 8 BITMAP 1F00 7BC0 71C0 F1E0 F1E0 F1E0 F1E0 71C0 7BC0 1F00 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 14 0 BBX 12 11 1 1 BITMAP 8200 C300 6180 31C0 38E0 1CF0 38E0 31C0 6180 C300 8200 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 20 0 BBX 18 18 5 0 BITMAP 7803C0 180700 180F00 181E00 181C00 183800 187800 18F180 18E380 19C580 7FCD80 079980 071180 0E3FC0 1E3FC0 3C0180 380180 F003C0 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 20 0 BBX 18 18 5 0 BITMAP 7803C0 180700 180F00 181E00 181C00 183800 187800 18FF80 18F9C0 19D0C0 7FC0C0 078080 070180 0E0200 1E0400 3C0800 381FC0 F01FC0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 20 0 BBX 18 18 5 0 BITMAP FC03C0 8E0700 860F00 061E00 0C1C00 783800 0E7800 06F180 86E380 8FC580 FBCD80 079980 071180 0E3FC0 1E3FC0 3C0180 380180 F003C0 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 13 0 BBX 12 18 0 -5 BITMAP 0780 0780 0780 0780 0000 0780 0780 0700 0600 0C00 1800 7000 F000 F000 F030 F830 7C70 1FE0 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 20 0 BBX 20 23 0 0 BITMAP 03C000 00C000 006000 003000 000000 006000 006000 007000 00F000 017800 017800 017C00 023C00 023E00 041E00 041F00 080F00 0FFF80 100780 1007C0 2003C0 2003E0 F80FF0 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 20 0 BBX 20 23 0 0 BITMAP 003C00 003000 006000 00C000 000000 006000 006000 007000 00F000 017800 017800 017C00 023C00 023E00 041E00 041F00 080F00 0FFF80 100780 1007C0 2003C0 2003E0 F80FF0 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 20 0 BBX 20 23 0 0 BITMAP 007000 00F800 01DC00 030600 000000 006000 006000 007000 00F000 017800 017800 017C00 023C00 023E00 041E00 041F00 080F00 0FFF80 100780 1007C0 2003C0 2003E0 F80FF0 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 20 0 BBX 20 23 0 0 BITMAP 01C400 03FC00 03FC00 023800 000000 006000 006000 007000 00F000 017800 017800 017C00 023C00 023E00 041E00 041F00 080F00 0FFF80 100780 1007C0 2003C0 2003E0 F80FF0 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 20 0 BBX 20 22 0 0 BITMAP 039C00 039C00 039C00 000000 006000 006000 007000 00F000 017800 017800 017C00 023C00 023E00 041E00 041F00 080F00 0FFF80 100780 1007C0 2003C0 2003E0 F80FF0 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 20 0 BBX 20 23 0 0 BITMAP 006000 009000 009000 006000 000000 006000 006000 007000 00F000 017800 017800 017C00 023C00 023E00 041E00 041F00 080F00 0FFF80 100780 1007C0 2003C0 2003E0 F80FF0 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 24 0 BBX 23 18 0 0 BITMAP 001FFC 003E0C 003E0C 005E00 005E00 009E00 011E00 011E18 021FF8 021E18 041E18 0C1E00 0FFE00 101E00 101E00 201E06 601E06 F07FFE ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 18 0 BBX 16 23 1 -5 BITMAP 03FE 0E07 3C03 3803 7800 7000 F000 F000 F000 F000 F000 F000 7800 7800 3C00 3F03 0FFF 03FC 0180 0300 01C0 01C0 0380 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 15 0 BBX 13 23 1 0 BITMAP 1E00 0600 0300 0180 0000 FFF8 3C18 3C18 3C00 3C00 3C00 3C00 3C20 3FE0 3C20 3C00 3C00 3C00 3C00 3C00 3C18 3C18 FFF8 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 15 0 BBX 13 23 1 0 BITMAP 03C0 0300 0600 0C00 0000 FFF8 3C18 3C18 3C00 3C00 3C00 3C00 3C20 3FE0 3C20 3C00 3C00 3C00 3C00 3C00 3C18 3C18 FFF8 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 15 0 BBX 13 23 1 0 BITMAP 0700 0F80 1DC0 3060 0000 FFF8 3C18 3C18 3C00 3C00 3C00 3C00 3C20 3FE0 3C20 3C00 3C00 3C00 3C00 3C00 3C18 3C18 FFF8 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 15 0 BBX 13 22 1 0 BITMAP 1CE0 1CE0 1CE0 0000 FFF8 3C18 3C18 3C00 3C00 3C00 3C00 3C20 3FE0 3C20 3C00 3C00 3C00 3C00 3C00 3C18 3C18 FFF8 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 9 0 BBX 8 23 0 0 BITMAP F0 30 18 0C 00 FF 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C FF ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 9 0 BBX 8 23 0 0 BITMAP 0F 0C 18 30 00 FF 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C FF ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 9 0 BBX 9 23 1 0 BITMAP 1C00 3E00 7700 C180 0000 7F80 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 7F80 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 9 0 BBX 8 22 0 0 BITMAP E7 E7 E7 00 FF 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C FF ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 20 0 BBX 19 18 0 0 BITMAP 7FFC00 1E0F00 1E0780 1E03C0 1E03C0 1E01E0 1E01E0 1E01E0 FFE1E0 1E01E0 1E01E0 1E01E0 1E01C0 1E03C0 1E0380 1E0780 3F0F00 7FFC00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 20 0 BBX 18 23 1 0 BITMAP 038800 07F800 07F800 047000 000000 F80FC0 3C0300 3E0300 3E0300 3F0300 3F8300 37C300 37C300 33E300 31F300 30F300 30FB00 307F00 303F00 303F00 301F00 300F00 FC0700 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 20 0 BBX 18 23 1 0 BITMAP 078000 018000 00C000 006000 000000 03F000 1E1E00 3C0F00 780780 780780 700380 F003C0 F003C0 F003C0 F003C0 F003C0 F003C0 700380 780780 380700 3C0F00 0E1C00 03F000 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 20 0 BBX 18 23 1 0 BITMAP 007800 006000 00C000 018000 000000 03F000 1E1E00 3C0F00 780780 780780 700380 F003C0 F003C0 F003C0 F003C0 F003C0 F003C0 700380 780780 380700 3C0F00 0E1C00 03F000 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 20 0 BBX 18 23 1 0 BITMAP 01C000 03E000 077000 0C1800 000000 03F000 1E1E00 3C0F00 780780 780780 700380 F003C0 F003C0 F003C0 F003C0 F003C0 F003C0 700380 780780 380700 3C0F00 0E1C00 03F000 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 20 0 BBX 18 23 1 0 BITMAP 038800 07F800 07F800 047000 000000 03F000 1E1E00 3C0F00 780780 780780 700380 F003C0 F003C0 F003C0 F003C0 F003C0 F003C0 700380 780780 380700 3C0F00 0E1C00 03F000 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 20 0 BBX 18 22 1 0 BITMAP 073800 073800 073800 000000 03F000 1E1E00 3C0F00 780780 780780 700380 F003C0 F003C0 F003C0 F003C0 F003C0 F003C0 700380 780780 380700 3C0F00 0E1C00 03F000 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 16 0 BBX 14 15 1 0 BITMAP 4008 E01C 7038 3870 1CE0 0CC0 0780 0300 0780 0CC0 1CE0 3870 7038 E01C 4008 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 20 0 BBX 18 18 1 0 BITMAP 03F0C0 0E1D00 3C0F00 380700 780F80 701B80 F033C0 F023C0 F043C0 F083C0 F103C0 F203C0 760380 7C0780 380700 3C0F00 7E1C00 C3F000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 19 0 BBX 18 23 0 0 BITMAP 078000 018000 00C000 006000 000000 FF0FC0 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 1C0200 1E0600 0F0C00 03F800 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 19 0 BBX 18 23 0 0 BITMAP 007800 006000 00C000 018000 000000 FF0FC0 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 1C0200 1E0600 0F0C00 03F800 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 19 0 BBX 18 23 0 0 BITMAP 01C000 03E000 077000 0C1800 000000 FF0FC0 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 1C0200 1E0600 0F0C00 03F800 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 19 0 BBX 18 22 0 0 BITMAP 073800 073800 073800 000000 FF0FC0 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 3C0300 1C0200 1E0600 0F0C00 03F800 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 18 0 BBX 18 23 0 0 BITMAP 007800 006000 00C000 018000 000000 FF07C0 7C0300 3E0300 1E0200 1F0400 0F8400 078800 07D000 03D000 03E000 01E000 01E000 01E000 01E000 01E000 01E000 01E000 07F800 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 1 0 BITMAP FF00 3E00 3C00 3C00 3FF0 3C78 3C3C 3C3C 3C3C 3C3C 3C3C 3C38 3C70 3FC0 3C00 3C00 3E00 FF00 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 17 0 BBX 16 19 1 0 BITMAP 0FE0 1CF0 3C78 3C78 3C70 3C60 3CC0 3CC0 3DC0 3DF0 3DF8 3CFC 3C7E 3C3F 3C1F 3C0F 3CCF 3CCE FEFC ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 0 0 BITMAP 1E00 0600 0300 0180 0000 3F80 70E0 60F0 00F0 00F0 1FF0 78F0 F0F0 F0F0 F0F0 F8F0 7F70 3E3C ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 0 0 BITMAP 01E0 0180 0300 0600 0000 3F80 70E0 60F0 00F0 00F0 1FF0 78F0 F0F0 F0F0 F0F0 F8F0 7F70 3E3C ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 0 0 BITMAP 0700 0F80 1DC0 3060 0000 3F80 70E0 60F0 00F0 00F0 1FF0 78F0 F0F0 F0F0 F0F0 F8F0 7F70 3E3C ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 0 0 BITMAP 0E20 1FE0 1FE0 11C0 0000 3F80 70E0 60F0 00F0 00F0 1FF0 78F0 F0F0 F0F0 F0F0 F8F0 7F70 3E3C ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 14 0 BBX 14 17 0 0 BITMAP 1CE0 1CE0 1CE0 0000 3F80 70E0 60F0 00F0 00F0 1FF0 78F0 F0F0 F0F0 F0F0 F8F0 7F70 3E3C ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 0 0 BITMAP 0300 0480 0480 0300 0000 3F80 70E0 60F0 00F0 00F0 1FF0 78F0 F0F0 F0F0 F0F0 F8F0 7F70 3E3C ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 21 0 BBX 20 13 0 0 BITMAP 3F8F80 70F1C0 60F0E0 00F0F0 00F0F0 1FFFF0 78F000 F0F000 F0F000 F0F800 F8FC10 7F3FF0 3E0FC0 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 14 0 BBX 11 18 1 -5 BITMAP 0FE0 38E0 7060 7060 F000 F000 F000 F000 F000 7800 7C20 3FE0 0FC0 0600 0C00 0700 0700 0E00 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 1 0 BITMAP 1E00 0600 0300 0180 0000 0F80 39C0 70E0 70F0 F0F0 FFF0 F000 F000 F000 7800 7C10 3FF0 0FE0 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 1 0 BITMAP 03C0 0300 0600 0C00 0000 0F80 39C0 70E0 70F0 F0F0 FFF0 F000 F000 F000 7800 7C10 3FF0 0FE0 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 1 0 BITMAP 0700 0F80 1DC0 3060 0000 0F80 39C0 70E0 70F0 F0F0 FFF0 F000 F000 F000 7800 7C10 3FF0 0FE0 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 1 0 BITMAP 39C0 39C0 39C0 0000 0F80 39C0 70E0 70F0 F0F0 FFF0 F000 F000 F000 7800 7C10 3FF0 0FE0 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 8 0 BBX 8 18 0 0 BITMAP F0 30 18 0C 00 FC 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C FF ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 8 0 BBX 8 18 0 0 BITMAP 0F 0C 18 30 00 FC 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C FF ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 8 0 BBX 9 18 1 0 BITMAP 1C00 3E00 7700 C180 0000 7E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 7F80 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 8 0 BBX 8 17 0 0 BITMAP E7 E7 E7 00 FC 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C FF ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 16 0 BBX 14 20 1 0 BITMAP 0080 F1C0 1E00 0700 1BC0 71E0 40F0 0FF8 3CF8 787C 703C F03C F03C F03C F03C F03C 7038 7870 3CE0 0FC0 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 16 0 BBX 16 18 0 0 BITMAP 0710 0FF0 0FF0 08E0 0000 FC70 7DF8 3DFC 3E3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C FFFF ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 1 0 BITMAP 1E00 0600 0300 0180 0000 0FC0 3CF0 7878 7038 F03C F03C F03C F03C F03C 7038 7878 3CF0 0FC0 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 1 0 BITMAP 01E0 0180 0300 0600 0000 0FC0 3CF0 7878 7038 F03C F03C F03C F03C F03C 7038 7878 3CF0 0FC0 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 1 0 BITMAP 0700 0F80 1DC0 3060 0000 0FC0 3CF0 7878 7038 F03C F03C F03C F03C F03C 7038 7878 3CF0 0FC0 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 1 0 BITMAP 0E20 1FE0 1FE0 11C0 0000 0FC0 3CF0 7878 7038 F03C F03C F03C F03C F03C 7038 7878 3CF0 0FC0 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 1 0 BITMAP 1CE0 1CE0 1CE0 0000 0FC0 3CF0 7878 7038 F03C F03C F03C F03C F03C 7038 7878 3CF0 0FC0 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 16 0 BBX 15 13 0 0 BITMAP 0380 0380 0380 0000 0000 0000 FFFE FFFE 0000 0000 0380 0380 0380 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 15 0 BBX 16 13 0 0 BITMAP 07E3 1E7C 3C3C 383C 787E 78DE 799E 7B1E 7E1E 3C1C 3C3C 3C78 C7E0 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 16 0 BBX 16 18 0 0 BITMAP 0F00 0300 0180 00C0 0000 FCFC 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C7C 3FBC 1FBE 0E3F ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 16 0 BBX 16 18 0 0 BITMAP 00F0 00C0 0180 0300 0000 FCFC 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C7C 3FBC 1FBE 0E3F ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 16 0 BBX 16 18 0 0 BITMAP 01C0 03E0 0770 0C18 0000 FCFC 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C7C 3FBC 1FBE 0E3F ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 16 0 BBX 16 17 0 0 BITMAP 0E70 0E70 0E70 0000 FCFC 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C7C 3FBC 1FBE 0E3F ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 16 0 BBX 16 23 0 -5 BITMAP 00F0 00C0 0180 0300 0000 FE1F 7C04 3C0C 3E08 1E18 1F10 0F30 0FA0 07C0 07C0 0380 0380 0300 0100 0200 0600 0C00 3C00 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 16 0 BBX 15 22 0 -5 BITMAP FC00 3C00 3C00 3C00 3CF0 3DFC 3FFC 3E3E 3C1E 3C1E 3C1E 3C1E 3C1E 3C3C 3E3C 3FF8 3CF0 3C00 3C00 3C00 3C00 FF00 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 16 0 BBX 16 22 0 -5 BITMAP 0E70 0E70 0E70 0000 FE1F 7C04 3C0C 3E08 1E18 1F10 0F30 0FA0 07C0 07C0 0380 0380 0300 0100 0200 0600 0C00 3C00 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 16 19 1 0 BITMAP 07FC 1C7C 1C3C 3C3C 3C3C 3C3C FF3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C 3C3C FFFF ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 2 1 7 BITMAP FFE0 FFE0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 12 22 2 -4 BITMAP 0F00 0F00 0F00 0F00 0F00 0F00 CF30 FFF0 CF30 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 13 23 1 0 BITMAP 3060 1DC0 0F80 0700 0000 7FF8 60F8 60F8 01F0 01E0 03E0 03C0 07C0 0F80 0F80 1F00 1E00 3E00 3C00 7C00 F818 F818 FFF8 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 24 0 BBX 21 13 1 0 BITMAP 0FC7C0 3C6CE0 787C70 703C78 F03C78 F03FF8 F03C00 F03C00 F03C00 703E00 783F08 3C4FF8 0F87F0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 18 22 0 0 BITMAP 073800 073800 073800 000000 FF07C0 7C0300 3E0300 1E0200 1F0400 0F8400 078800 07D000 03D000 03E000 01E000 01E000 01E000 01E000 01E000 01E000 01E000 07F800 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 13 0 0 BITMAP FC 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C FF ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 19 0 0 BITMAP FC 3C 3C 3C 3C 3C 3D 3F 3E 3C 7C BC 3C 3C 3C 3C 3C 3C FF ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 0 0 BITMAP FF00 3C00 3C00 3C00 3C00 3C80 3F80 3E00 3C00 FC00 BC00 3C00 3C00 3C00 3C0C 3C0C 3C0C FFFC ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 12 22 2 -4 BITMAP 0F00 0F00 0F00 0F00 0F00 0F00 CF30 FFF0 CF30 0F00 0F00 0F00 0F00 CF30 FFF0 CF30 0F00 0F00 0F00 0F00 0F00 0F00 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 17 19 0 0 BITMAP 0FDE00 1CDE00 3CDE00 3C1E00 3C0000 3C0000 FFFE00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 FE7F80 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 2 1 BITMAP 80 C0 60 70 38 1C 38 70 60 C0 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 26 0 BBX 24 18 1 0 BITMAP 07EFFE 1E3F06 3C1F06 780F00 780F00 700F00 F00F00 F00F0C F00FFC F00F0C F00F00 F00F00 700F00 780F00 780F00 3C1F03 1E3F03 07EFFF ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 25 0 BBX 23 2 1 6 BITMAP FFFFFE FFFFFE ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 9 4 3 15 BITMAP C180 7700 3E00 1C00 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 4 4 6 -4 BITMAP 60 C0 D0 70 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 9 4 4 15 BITMAP 1B80 3600 6400 C800 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 1 BITMAP 04 0C 18 38 70 E0 70 38 18 0C 04 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 3 4 6 14 BITMAP E0 E0 E0 E0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 9 4 3 15 BITMAP C180 FF80 7F00 3E00 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 9 9 3 3 BITMAP 3E00 7F00 FF80 FF80 FF80 FF80 FF80 7F00 3E00 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 4 4 14 BITMAP 71 FF FF 8E ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 9 4 3 15 BITMAP 1C00 3E00 7700 C180 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 7 1 12 BITMAP 7380 E700 E700 F780 F780 F780 F780 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 8 2 11 BITMAP E0 E0 E0 E0 40 40 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 11 18 1 0 BITMAP 60C0 3B80 1F00 0E00 0000 1F80 79C0 F0C0 F0C0 FC00 FF80 7FC0 1FE0 07E0 C1E0 C1E0 E3C0 7F00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 4 4 6 15 BITMAP 60 90 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 8 1 -4 BITMAP F0 F0 F0 F0 70 70 60 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 13 22 2 -4 BITMAP 00F8 0318 0718 0F18 0E00 1E00 1E00 1E00 7F80 3C00 3C00 3C00 3C00 3C00 7800 7800 7800 7800 7800 F000 F000 F000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 26 0 BBX 24 10 1 8 BITMAP FFCF0F 8E479E 8E479E 8E47DE 0E07FE 0E06EE 0E06EE 0E06EE 0E064E 1F0E0F ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 18 18 -5 0 BITMAP 0003C0 000700 000F00 001E00 001C00 003800 007800 00F000 00E000 01C000 03C000 078000 070000 0E0000 1E0000 3C0000 380000 F00000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 6 4 4 15 BITMAP F0 30 18 0C ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 28 0 BBX 29 18 0 0 BITMAP 3E00E000 6301C000 E3838000 E3870000 E38E0000 E39C0000 E3B80000 63300000 3E600000 00CF83E0 0198C630 03B8EE38 0738EE38 0E38EE38 1C38EE38 3838EE38 7018C630 E00F83E0 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 25 0 BBX 19 3 3 0 BITMAP E0E0E0 E0E0E0 E0E0E0 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 7 1 12 BITMAP F780 F780 F780 F780 7380 7380 E700 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 12 23 1 0 BITMAP 60C0 3B80 1F00 0E00 0000 1FC0 38E0 7060 F060 F000 F800 FC00 7F00 3F80 1FE0 07E0 01F0 00F0 00F0 C0F0 C0E0 E1C0 7F00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 8 1 -4 BITMAP F780 F780 F780 F780 7380 7380 6300 C600 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 1 0 BITMAP 3060 1DC0 0F80 0700 0000 FFF0 C1F0 C3E0 03C0 07C0 0F80 1F00 1F00 3E00 7C00 7C30 F830 FFF0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lubB19.bdf100644 1750 1750 117163 5413747530 15077 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-DemiBold-R-Normal--26-190-100-100-P-155-ISO8859-1 SIZE 19 100 100 FONTBOUNDINGBOX 46 29 -17 -5 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "DemiBold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 26 POINT_SIZE 190 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH "155" CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." FONT_ASCENT 24 FONT_DESCENT 6 DEFAULT_CHAR 0 ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 8 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 7 0 BBX 4 19 1 0 BITMAP F0 F0 F0 F0 F0 F0 E0 E0 E0 60 60 40 40 40 00 F0 F0 F0 F0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 12 0 BBX 9 8 2 12 BITMAP F780 F780 E380 E380 6300 6300 4100 4100 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 17 0 BBX 16 19 1 0 BITMAP 018C 030C 0318 0318 0718 7FFF 7FFF 0630 0630 0C70 0C60 FFFE FFFE 1860 18C0 18C0 18C0 30C0 3180 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 16 0 BBX 12 23 2 -3 BITMAP 0400 1FE0 3CE0 7C60 7C60 7C00 7C00 7C00 3C00 1E00 0F80 07C0 07E0 05F0 04F0 04F0 C4F0 C4E0 E5E0 FF80 0600 0400 0400 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 20 0 BBX 19 19 0 0 BITMAP 3E00E0 6301C0 E38380 E38700 E38600 E38C00 E39800 633800 3E7000 00EF80 01D8C0 0198C0 0338E0 0638E0 0E38E0 1C38E0 3818C0 7018C0 E00F80 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 20 0 BBX 18 19 1 0 BITMAP 07E000 0E7000 1E7800 1E7800 1E7800 1E7000 0FE000 078000 1B0FC0 338380 71C300 F1E300 F0E300 F0F600 F07C00 787C00 7C7E00 3FEF80 0F8F80 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 7 0 BBX 4 8 1 12 BITMAP F0 F0 F0 F0 70 70 60 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 8 0 BBX 7 24 1 -4 BITMAP 02 06 0C 18 38 38 70 70 F0 F0 F0 F0 F0 F0 F0 F0 70 70 38 38 18 0C 06 02 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 8 0 BBX 7 24 1 -4 BITMAP 80 C0 60 30 38 38 1C 1C 1E 1E 1E 1E 1E 1E 1E 1E 1C 1C 38 38 30 60 C0 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 9 BITMAP 0C00 0C00 4C80 EDC0 F3C0 0000 1E00 3300 7380 1200 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 16 0 BBX 16 16 0 0 BITMAP 0180 0180 0180 0180 0180 0180 0180 FFFF FFFF 0180 0180 0180 0180 0180 0180 0180 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 7 0 BBX 4 9 1 -4 BITMAP F0 F0 F0 F0 F0 70 70 60 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 16 0 BBX 15 2 1 7 BITMAP FFFE FFFE ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 7 0 BBX 4 4 1 0 BITMAP F0 F0 F0 F0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 14 0 BBX 14 24 0 -4 BITMAP 000C 0018 0018 0030 0030 0060 0060 00C0 00C0 0180 0180 0300 0300 0600 0600 0C00 0C00 1800 1800 3000 3000 6000 6000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 1 0 BITMAP 07C0 1C70 3838 3838 783C 701C F01E F01E F01E F01E F01E F01E F01E 701C 783C 3838 3838 1C70 07C0 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 16 0 BBX 10 19 3 0 BITMAP FE00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 3F00 FFC0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 1 0 BITMAP 3F80 E1E0 C0F0 C078 0078 0078 0078 0070 00E0 0180 0300 0400 0800 1000 3000 7FF8 7FF8 FFF8 FFF8 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 2 0 BITMAP 7F00 E3C0 C1E0 C1E0 01E0 01E0 01C0 0380 3F00 0380 01E0 00E0 00F0 00F0 00F0 C0F0 C1E0 E3C0 FF00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 0 0 BITMAP 0038 0078 00F8 0178 0278 0678 0C78 0878 1078 2078 4078 FFFE FFFE FFFE 0078 0078 0078 0078 01FE ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 16 0 BBX 11 19 3 0 BITMAP FFE0 FFE0 FFE0 8000 8000 8000 8000 8000 FE00 0F80 03C0 03E0 01E0 01E0 01E0 C1E0 C3C0 E380 FE00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 0 BITMAP 07F0 1E38 3C18 3818 7800 7000 F000 F3E0 F7F0 F8F8 F07C F03C F03C F03C 703C 7038 3878 1C70 0FC0 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 3 0 BITMAP FFF8 FFF8 FFF8 FFF0 0030 0060 0040 0080 0180 0300 0700 0600 0E00 1C00 3C00 3800 3800 7800 7800 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 0 BITMAP 0FC0 3CF0 3878 7878 7878 7878 7C70 3FE0 0F80 0FE0 39F8 70F8 F07C F03C F03C F03C 7878 3C70 1FC0 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 0 BITMAP 0FC0 38E0 7870 7038 F038 F03C F03C F03C F83C 7C7C 3FBC 1F3C 003C 0038 0078 6070 60F0 71E0 3F80 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 7 0 BBX 4 14 1 0 BITMAP F0 F0 F0 F0 00 00 00 00 00 00 F0 F0 F0 F0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 7 0 BBX 4 18 1 -4 BITMAP F0 F0 F0 F0 00 00 00 00 00 00 F0 F0 F0 F0 70 70 60 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 16 0 BBX 15 16 1 0 BITMAP 0002 000E 003E 00F8 01E0 0780 1E00 F800 7800 1E00 0780 01E0 00F8 003E 000E 0002 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 16 0 BBX 15 7 1 4 BITMAP FFFE FFFE 0000 0000 0000 FFFE FFFE ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 16 0 BBX 15 16 1 0 BITMAP 8000 E000 F800 3E00 0F00 03C0 00F0 003C 003E 00F0 03C0 0F00 3E00 F800 E000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 13 0 BBX 12 19 1 0 BITMAP 7F80 E3E0 C1F0 C0F0 00F0 00F0 00E0 01C0 0380 0700 0E00 1E00 1E00 1E00 0000 1E00 1E00 1E00 1E00 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 22 0 BBX 20 19 2 0 BITMAP 007E00 038180 0400C0 080020 107020 218E10 430E10 470E10 C60E10 8E0C10 8E1C10 8E3420 8E6E20 8FCEC0 478F00 400000 200000 181800 07F000 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 21 0 BBX 21 19 0 0 BITMAP 003000 007000 007000 007800 00F800 00FC00 013C00 013E00 021E00 021F00 040F00 040F80 0FFF80 0807C0 1803C0 1003C0 3001E0 7001E0 F807F8 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 17 0 BBX 15 19 1 0 BITMAP FFE0 3C78 3C3C 3C3C 3C3C 3C3C 3C38 3C78 3CE0 3FE0 3C78 3C3C 3C1E 3C1E 3C1E 3C1E 3C3C 3C7C FFF0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 18 0 BBX 16 19 1 0 BITMAP 03FE 0E07 1C03 3803 7800 7000 F000 F000 F000 F000 F000 F000 F000 7800 7800 3C00 1F03 0FFF 03FC ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 21 0 BBX 19 19 1 0 BITMAP FFF800 3C1E00 3C0780 3C0380 3C03C0 3C01C0 3C01E0 3C01E0 3C01E0 3C01E0 3C01E0 3C01E0 3C01E0 3C01C0 3C03C0 3C0380 3C0700 3E0E00 FFF800 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 0 BITMAP FFFC 3C0C 3C0C 3C00 3C00 3C00 3C00 3C00 3C10 3FF0 3C10 3C10 3C00 3C00 3C00 3C00 3C0C 3C0C FFFC ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 15 0 BBX 14 19 0 0 BITMAP FFFC 3C0C 3C0C 3C00 3C00 3C00 3C00 3C00 3C10 3FF0 3C10 3C00 3C00 3C00 3C00 3C00 3C00 3E00 FF80 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 20 0 BBX 18 19 1 0 BITMAP 03FE00 0E0700 1C0300 380300 780000 700000 F00000 F00000 F00000 F00000 F00000 F03FC0 F00F00 780F00 780F00 380F00 1C0F00 0F0F00 03FE00 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 21 0 BBX 20 19 0 0 BITMAP FF0FF0 3C03C0 3C03C0 3C03C0 3C03C0 3C03C0 3C03C0 3C03C0 3FFFC0 3C03C0 3C03C0 3C03C0 3C03C0 3C03C0 3C03C0 3C03C0 3C03C0 3E07C0 FF0FF0 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 9 0 BBX 8 19 1 0 BITMAP FF 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C FF ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 12 0 BBX 11 23 0 -4 BITMAP 1FE0 07C0 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 C780 C700 CF00 FC00 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 19 0 BBX 19 19 1 0 BITMAP FF0FC0 3C0700 3C0400 3C0800 3C1000 3C2000 3C4000 3C8000 3DC000 3FE000 3FE000 3DF000 3CF800 3C7C00 3C3E00 3C3E00 3C1F00 3C0F80 FF3FE0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 15 0 BBX 14 19 1 0 BITMAP FF00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C0C 3C0C 3C0C FFFC ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 23 0 BBX 22 19 1 0 BITMAP FE00FC 3E01F0 3F01F0 3F01F0 3F03F0 3783F0 3786F0 37C6F0 33CEF0 33CCF0 33ECF0 31F8F0 31F8F0 30F0F0 30F0F0 30F0F0 3060F0 3000F0 FC03FC ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 20 0 BBX 19 19 1 0 BITMAP F807E0 3C0180 3E0180 3F0180 3F0180 3F8180 37C180 33C180 33E180 31F180 30F980 30F980 307D80 303F80 301F80 301F80 300F80 300780 FC0380 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 21 0 BBX 19 19 1 0 BITMAP 03F800 0E0E00 1C0700 380380 7803C0 7001C0 F001E0 F001E0 F001E0 F001E0 F001E0 F001E0 F001E0 7001C0 7803C0 380380 1C0700 0E0E00 03F800 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 0 0 BITMAP FFF0 3C3C 3C1C 3C1E 3C1E 3C1E 3C1E 3C1C 3C3C 3C78 3FE0 3C00 3C00 3C00 3C00 3C00 3C00 3E00 FF00 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 21 0 BBX 22 23 1 -4 BITMAP 03F800 0E0E00 1C0700 380380 7803C0 7001C0 F001E0 F001E0 F001E0 F001E0 F001E0 F001E0 F001E0 7001C0 7803C0 3803C0 1C0780 0E0E00 03FC00 000F80 0007FC 0001F0 000060 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 19 0 BBX 18 19 1 0 BITMAP FFF000 3C3C00 3C1C00 3C1E00 3C1E00 3C1E00 3C1E00 3C1C00 3C3C00 3C7800 3FF000 3CF000 3CF800 3C7C00 3C3C00 3C3E00 3C1F00 3C1F80 FF0FC0 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 14 0 BBX 13 19 1 0 BITMAP 0FE0 3870 7030 F030 F000 F000 FC00 7F00 3F80 1FE0 07F0 01F8 00F8 0078 0078 C078 C070 E0E0 7F80 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 19 0 BBX 18 19 0 0 BITMAP FFFFC0 E1E0C0 C1E0C0 C1E0C0 01E000 01E000 01E000 01E000 01E000 01E000 01E000 01E000 01E000 01E000 01E000 01E000 01E000 01F000 07F800 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 19 0 BBX 19 19 0 0 BITMAP FF07E0 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 1C0300 1E0300 0F0600 03F800 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 20 0 BBX 20 19 0 0 BITMAP FF01F0 3E00C0 3E00C0 1E0080 1F0180 0F0100 0F0100 0F8200 078200 07C600 03C400 03E400 01E800 01E800 00F000 00F000 00F000 006000 006000 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 25 0 BBX 25 19 0 0 BITMAP FE040F80 7C0E0200 3C0E0600 3C0E0400 3E1F0400 1E1F0400 1E1F0800 1E2F8800 1F278800 0F279000 0F47D000 0FC3D000 07C3F000 0783E000 0781E000 0781E000 0381C000 0300C000 0300C000 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 18 0 BBX 18 19 0 0 BITMAP 7F07C0 3E0300 1E0200 1F0600 0F0400 0F8800 07D800 03D000 03E000 01F000 03F000 07F800 067800 0C7C00 1C3E00 183E00 301F00 700F80 F83FC0 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 19 0 BBX 18 19 0 0 BITMAP FF07C0 7C0380 3E0300 1E0200 1F0400 0F0400 0F8800 07C800 03D000 03F000 01E000 01E000 01E000 01E000 01E000 01E000 01E000 01E000 07F800 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 17 0 BBX 14 19 1 0 BITMAP 7FFC 607C 6078 60F8 00F0 01F0 03E0 03C0 07C0 0780 0F80 0F00 1F00 3E00 3C00 7C00 780C F80C FFFC ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 8 0 BBX 7 24 1 -4 BITMAP FE F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 FE ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 14 0 BBX 14 24 0 -4 BITMAP C000 6000 6000 3000 3000 1800 1800 0C00 0C00 0600 0600 0300 0300 0180 0180 00C0 00C0 0060 0060 0030 0030 0018 0018 000C ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 8 0 BBX 7 24 0 -4 BITMAP FE 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E FE ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 16 0 BBX 15 16 1 3 BITMAP 0100 0100 0380 0380 07C0 06C0 0EE0 0C60 1C70 1830 1830 3018 3018 600C 600C C006 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 13 0 BBX 11 2 1 -3 BITMAP FFE0 FFE0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 7 0 BBX 4 8 1 12 BITMAP 30 60 E0 E0 F0 F0 F0 F0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 14 0 BBX 14 14 0 0 BITMAP 1F80 71E0 60F0 60F0 00F0 00F0 1FF0 78F0 F0F0 F0F0 F0F0 F8F0 7F70 3E3C ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 17 0 BBX 16 20 0 0 BITMAP FC00 3C00 3C00 3C00 3C00 3C00 3C78 3DFC 3DFE 3E1E 3C0F 3C0F 3C0F 3C0F 3C0F 3C0F 3C1E 3E3E 3FFC 39F0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 14 0 BBX 12 14 1 0 BITMAP 0FF0 3870 7830 7030 F000 F000 F000 F000 F000 F800 7800 3C10 1FF0 0FE0 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 17 0 BBX 16 20 1 0 BITMAP 00FC 003C 003C 003C 003C 003C 1F3C 3FFC 787C 783C F03C F03C F03C F03C F03C F03C 787C 7FBC 3FBE 1E3F ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 15 0 BBX 13 14 1 0 BITMAP 0FC0 38E0 7870 7070 F078 F078 FFF8 F000 F000 F800 7800 3C08 1FF8 07F0 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 11 0 BBX 11 20 0 0 BITMAP 0FC0 1C60 3C60 3C60 3C00 3C00 FFC0 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 FF00 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 -5 BITMAP 0FFC 38E8 38F0 78F0 78F0 78F0 78E0 38E0 0FC0 1800 3800 7FF0 3FF8 1FF8 7078 F078 F070 78E0 3FC0 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 17 0 BBX 17 20 0 0 BITMAP FC0000 3C0000 3C0000 3C0000 3C0000 3C0000 3C7800 3CFC00 3DFE00 3F1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 FF7F80 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 8 0 BBX 8 20 0 0 BITMAP 3C 3C 3C 3C 00 00 FC 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C FF ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 9 0 BBX 9 25 -1 -5 BITMAP 0780 0780 0780 0780 0000 0000 1F80 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 C780 C780 C700 FE00 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 16 0 BBX 17 20 0 0 BITMAP FC0000 3C0000 3C0000 3C0000 3C0000 3C0000 3C3F00 3C1C00 3C1000 3C2000 3C4000 3DC000 3FE000 3DE000 3DF000 3CF800 3C7C00 3C7E00 3C3F00 FF1F80 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 8 0 BBX 8 20 0 0 BITMAP FC 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C FF ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 25 0 BBX 24 14 1 0 BITMAP FCF0F0 3DF9F8 3FFFFC 3E3E3C 3C3C3C 3C3C3C 3C3C3C 3C3C3C 3C3C3C 3C3C3C 3C3C3C 3C3C3C 3C3C3C FFFFFF ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 17 0 BBX 17 14 0 0 BITMAP FC7800 7CFC00 3DFE00 3F1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 FF7F80 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 1 0 BITMAP 0FC0 3CF0 7878 7038 F03C F03C F03C F03C F03C F03C 7038 7878 3CF0 0FC0 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 17 0 BBX 16 19 0 -5 BITMAP FC78 7DFC 3DFE 3E1E 3C0F 3C0F 3C0F 3C0F 3C0F 3C0F 3C1E 3E3E 3FFC 3CF8 3C00 3C00 3C00 3C00 FF00 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 17 0 BBX 16 19 1 -5 BITMAP 1F3C 3FFC 7C7C 783C F03C F03C F03C F03C F03C F03C 787C 7FBC 3FBC 1E3C 003C 003C 003C 003C 00FF ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 0 0 BITMAP FCE0 3DE0 3FE0 3E60 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 FF00 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 14 0 BBX 11 14 2 0 BITMAP 1F80 79C0 F0C0 F0C0 F800 FE00 7F80 3FC0 0FE0 03E0 C1E0 C1E0 E3C0 7F00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 10 0 BBX 9 18 1 0 BITMAP 0C00 3C00 3C00 3C00 FF80 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 3C00 1F80 0F80 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 17 0 BBX 17 14 0 0 BITMAP FC7E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C7E00 3FDE00 1F9F00 0F1F80 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 17 0 BBX 17 14 0 0 BITMAP FF0F80 7C0600 3E0400 1E0400 1F0800 0F0800 0F9000 079000 07A000 03E000 03E000 01C000 01C000 018000 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 23 0 BBX 23 14 0 0 BITMAP FE0C3E 7C1C08 3C1E18 3C1E10 1E3E10 1E2F30 1E4F20 0F4FA0 0FC7C0 0F87C0 0783C0 070380 070380 020180 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 16 0 BBX 16 14 0 0 BITMAP FF3F 3E0C 3E18 1F10 0FA0 07C0 07C0 03E0 07F0 05F0 08F8 107C 303E F8FF ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 17 0 BBX 17 19 0 -5 BITMAP FF0F80 7C0600 3E0600 1E0400 1E0800 0F0800 0F1000 0F9000 07A000 07E000 03C000 03C000 018000 018000 010000 030000 060000 0C0000 1C0000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 15 0 BBX 13 14 1 0 BITMAP FFF8 E0F8 C1F0 03E0 03E0 07C0 0F80 0F00 1F00 3E00 7C00 7C18 F818 FFF8 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 9 0 BBX 7 24 1 -4 BITMAP 1E 3C 78 78 78 7C 7C 3C 3C 3C 38 F0 70 38 3C 3C 3C 7C 7C 78 78 78 38 1E ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 7 0 BBX 2 24 2 -4 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 9 0 BBX 7 24 1 -4 BITMAP F0 38 3C 3C 3C 7C 7C 78 78 78 38 1E 1C 38 78 78 78 7C 7C 3C 3C 3C 38 F0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 16 0 BBX 15 5 1 5 BITMAP 3C00 7F02 C7C6 81FC 8078 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 7 0 BBX 4 19 1 -5 BITMAP F0 F0 F0 F0 00 40 40 40 60 60 E0 E0 E0 F0 F0 F0 F0 F0 F0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 2 0 BITMAP 0100 0100 0FF0 1D70 3930 7130 F100 F100 F100 F100 F100 F100 7100 7900 3D10 1FF0 07E0 0100 0100 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 3 0 BITMAP 03E0 0E30 0E30 1E30 1E00 1E00 1E00 1E00 FF80 1E00 1E00 1E00 1E00 1C00 3000 FFF0 FFF0 FFF0 FFF0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 1 1 BITMAP 8002 4004 27C8 3FF8 1C70 1830 3018 3018 3018 3018 3018 1830 1C70 3FF8 27C8 4004 8002 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 16 0 BBX 17 19 0 0 BITMAP FE0F80 7C0300 3C0200 3E0400 1E0C00 1F0800 0F9000 0FB000 07E000 03C000 1FFC00 03C000 03C000 1FFC00 03C000 03C000 03C000 03E000 0FF000 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 7 0 BBX 2 24 2 -4 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 00 00 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 16 0 BBX 12 24 2 -5 BITMAP 1FC0 78E0 7060 F060 F000 F800 FE00 7F80 3FE0 67E0 E3F0 E0F0 F070 F870 7E60 7FC0 3FE0 0FF0 03F0 00F0 C0F0 C0E0 E1E0 7F80 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 16 0 BBX 8 3 4 16 BITMAP E7 E7 E7 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 22 0 BBX 21 19 1 0 BITMAP 01FC00 060300 080080 300060 20FE20 41C210 438210 870008 870008 870008 870008 870008 438010 41C210 20FE20 300060 080080 060300 01FC00 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 13 0 BBX 11 10 1 9 BITMAP 7F00 C380 C3C0 03C0 3FC0 7BC0 F3C0 F3C0 FFE0 79E0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 15 0 BBX 13 12 1 1 BITMAP 0408 0E18 1C30 3870 78E0 F3C0 F1C0 78E0 3870 1C30 0C18 0608 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 16 0 BBX 15 7 1 4 BITMAP FFFE FFFE 0006 0006 0006 0006 0006 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 8 0 BBX 6 3 1 7 BITMAP FC FC FC ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 16 0 BBX 13 13 2 6 BITMAP 0F80 3060 6030 5F90 8848 8848 8F88 8908 8908 59D0 6030 3060 0F80 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 16 0 BBX 8 2 4 17 BITMAP FF FF ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 7 0 BBX 4 4 1 15 BITMAP 60 90 90 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 16 0 BBX 16 16 0 0 BITMAP 0180 0180 0180 0180 0180 FFFF FFFF 0180 0180 0180 0180 0180 0000 0000 FFFF FFFF ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 10 0 BBX 7 11 -16 8 BITMAP FC CE 86 06 04 0C 10 20 40 FE FE ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 10 0 BBX 7 11 -16 8 BITMAP FC 8E 86 06 0C 78 0E 06 86 8E F8 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 16 0 BBX 6 4 6 16 BITMAP 3C 30 60 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 18 0 BBX 17 18 1 -4 BITMAP FC7E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C3E00 3FFE00 3FDE00 3F9F80 3C0000 3C0000 3C0000 3C0000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 16 0 BBX 10 23 2 -4 BITMAP 3FC0 7FC0 FC40 FC40 FC40 FC40 FC40 7C40 3C40 1C40 0440 0440 0440 0440 0440 0440 0440 0440 0440 0440 0440 0440 0440 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 16 0 BBX 3 4 7 6 BITMAP E0 E0 E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 16 0 BBX 4 6 6 -5 BITMAP 60 40 F0 70 70 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 10 0 BBX 6 11 -17 8 BITMAP F0 30 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 13 0 BBX 11 10 1 9 BITMAP 1F00 7BC0 71C0 F1E0 F1E0 F1E0 F1E0 71C0 7BC0 1F00 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 15 0 BBX 13 12 1 1 BITMAP 8300 C180 61C0 30E0 38F0 1C78 1E78 38F0 30E0 61C0 C380 8100 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 21 0 BBX 19 19 5 0 BITMAP 7803E0 180380 180780 180F00 181E00 181C00 183C00 187800 18F0C0 18E1C0 7FE2C0 03C6C0 078CC0 0708C0 0F1FE0 1E1FE0 3C00C0 3800C0 F801E0 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 21 0 BBX 19 19 5 0 BITMAP 7803E0 180380 180780 180F00 181E00 181C00 183C00 187800 18FF80 18F9C0 7FF0C0 03C0C0 078080 070180 0F0200 1E0400 3C0800 381FC0 F81FC0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 21 0 BBX 19 19 5 0 BITMAP FC03E0 8E0380 860780 060F00 0C1E00 781C00 0E3C00 067800 86F0C0 8EE1C0 F9E2C0 03C6C0 078CC0 0708C0 0F1FE0 1E1FE0 3C00C0 3800C0 F801E0 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 13 0 BBX 12 19 1 -5 BITMAP 0780 0780 0780 0780 0000 0780 0780 0780 0700 0E00 1C00 3800 7000 F000 F000 F030 F830 7C70 1FE0 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 21 0 BBX 21 24 0 0 BITMAP 01E000 006000 003000 001800 000000 003000 007000 007000 007800 00F800 00FC00 013C00 013E00 021E00 021F00 040F00 040F80 0FFF80 0807C0 1803C0 1003C0 3001E0 7001E0 F807F8 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 21 0 BBX 21 24 0 0 BITMAP 003C00 003000 006000 00C000 000000 003000 007000 007000 007800 00F800 00FC00 013C00 013E00 021E00 021F00 040F00 040F80 0FFF80 0807C0 1803C0 1003C0 3001E0 7001E0 F807F8 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 21 0 BBX 21 24 0 0 BITMAP 007000 00F800 01DC00 030600 000000 003000 007000 007000 007800 00F800 00FC00 013C00 013E00 021E00 021F00 040F00 040F80 0FFF80 0807C0 1803C0 1003C0 3001E0 7001E0 F807F8 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 21 0 BBX 21 24 0 0 BITMAP 01C200 03FE00 03FC00 021C00 000000 003000 007000 007000 007800 00F800 00FC00 013C00 013E00 021E00 021F00 040F00 040F80 0FFF80 0807C0 1803C0 1003C0 3001E0 7001E0 F807F8 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 21 0 BBX 21 23 0 0 BITMAP 01CE00 01CE00 01CE00 000000 003000 007000 007000 007800 00F800 00FC00 013C00 013E00 021E00 021F00 040F00 040F80 0FFF80 0807C0 1803C0 1003C0 3001E0 7001E0 F807F8 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 21 0 BBX 21 24 0 0 BITMAP 006000 009000 009000 006000 000000 003000 007000 007000 007800 00F800 00FC00 013C00 013E00 021E00 021F00 040F00 040F80 0FFF80 0807C0 1803C0 1003C0 3001E0 7001E0 F807F8 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 25 0 BBX 24 19 0 0 BITMAP 001FFE 001F06 002F06 002F00 004F00 00CF00 008F00 010F0C 010FFC 020F0C 060F0C 040F00 0FFF00 080F00 100F00 100F00 200F03 601F83 F83FFF ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 18 0 BBX 16 24 1 -5 BITMAP 03FE 0E07 1C03 3803 7800 7000 F000 F000 F000 F000 F000 F000 F000 7800 7800 3C00 1F03 0FFF 03FC 0100 03C0 01C0 01C0 0380 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 16 0 BBX 14 24 1 0 BITMAP 1E00 0600 0300 0180 0000 FFFC 3C0C 3C0C 3C00 3C00 3C00 3C00 3C00 3C10 3FF0 3C10 3C10 3C00 3C00 3C00 3C00 3C0C 3C0C FFFC ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 16 0 BBX 14 24 1 0 BITMAP 01E0 0180 0300 0600 0000 FFFC 3C0C 3C0C 3C00 3C00 3C00 3C00 3C00 3C10 3FF0 3C10 3C10 3C00 3C00 3C00 3C00 3C0C 3C0C FFFC ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 16 0 BBX 14 24 1 0 BITMAP 0380 07C0 0EE0 1830 0000 FFFC 3C0C 3C0C 3C00 3C00 3C00 3C00 3C00 3C10 3FF0 3C10 3C10 3C00 3C00 3C00 3C00 3C0C 3C0C FFFC ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 16 0 BBX 14 23 1 0 BITMAP 1CE0 1CE0 1CE0 0000 FFFC 3C0C 3C0C 3C00 3C00 3C00 3C00 3C00 3C10 3FF0 3C10 3C10 3C00 3C00 3C00 3C00 3C0C 3C0C FFFC ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 9 0 BBX 8 24 1 0 BITMAP F0 30 18 0C 00 FF 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C FF ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 9 0 BBX 8 24 1 0 BITMAP 0F 0C 18 30 00 FF 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C FF ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 9 0 BBX 9 24 2 0 BITMAP 1C00 3E00 7700 C180 0000 7F80 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 7F80 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 9 0 BBX 8 23 1 0 BITMAP E7 E7 E7 00 FF 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C FF ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 21 0 BBX 20 19 0 0 BITMAP 7FFC00 3E0F00 1E03C0 1E01C0 1E01E0 1E00E0 1E00F0 1E00F0 1E00F0 FFE0F0 1E00F0 1E00F0 1E00F0 1E00E0 1E01E0 1E01C0 1E0380 3F0700 7FFC00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 20 0 BBX 19 24 1 0 BITMAP 038400 07FC00 07F800 043800 000000 F807E0 3C0180 3E0180 3F0180 3F0180 3F8180 37C180 33C180 33E180 31F180 30F980 30F980 307D80 303F80 301F80 301F80 300F80 300780 FC0380 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 21 0 BBX 19 24 1 0 BITMAP 03C000 00C000 006000 003000 000000 03F800 0E0E00 1C0700 380380 7803C0 7001C0 F001E0 F001E0 F001E0 F001E0 F001E0 F001E0 F001E0 7001C0 7803C0 380380 1C0700 0E0E00 03F800 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 21 0 BBX 19 24 1 0 BITMAP 007800 006000 00C000 018000 000000 03F800 0E0E00 1C0700 380380 7803C0 7001C0 F001E0 F001E0 F001E0 F001E0 F001E0 F001E0 F001E0 7001C0 7803C0 380380 1C0700 0E0E00 03F800 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 21 0 BBX 19 24 1 0 BITMAP 00E000 01F000 03B800 060C00 000000 03F800 0E0E00 1C0700 380380 7803C0 7001C0 F001E0 F001E0 F001E0 F001E0 F001E0 F001E0 F001E0 7001C0 7803C0 380380 1C0700 0E0E00 03F800 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 21 0 BBX 19 24 1 0 BITMAP 038400 07FC00 07F800 043800 000000 03F800 0E0E00 1C0700 380380 7803C0 7001C0 F001E0 F001E0 F001E0 F001E0 F001E0 F001E0 F001E0 7001C0 7803C0 380380 1C0700 0E0E00 03F800 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 21 0 BBX 19 23 1 0 BITMAP 073800 073800 073800 000000 03F800 0E0E00 1C0700 380380 7803C0 7001C0 F001E0 F001E0 F001E0 F001E0 F001E0 F001E0 F001E0 7001C0 7803C0 380380 1C0700 0E0E00 03F800 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 16 0 BBX 15 16 1 0 BITMAP 4004 E00E 701C 3838 1C70 0EE0 06C0 0380 0380 06C0 0EE0 1C70 3838 701C E00E 4004 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 21 0 BBX 19 19 1 0 BITMAP 03F860 0E0E80 1C0780 380380 7807C0 700DC0 F009E0 F011E0 F021E0 F041E0 F081E0 F101E0 F201E0 7601C0 7C03C0 380380 3C0700 6E0E00 C3F800 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 19 0 BBX 19 24 0 0 BITMAP 03C000 00C000 006000 003000 000000 FF07E0 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 1C0300 1E0300 0F0600 03F800 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 19 0 BBX 19 24 0 0 BITMAP 007800 006000 00C000 018000 000000 FF07E0 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 1C0300 1E0300 0F0600 03F800 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 19 0 BBX 19 24 0 0 BITMAP 00E000 01F000 03B800 060C00 000000 FF07E0 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 1C0300 1E0300 0F0600 03F800 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 19 0 BBX 19 23 0 0 BITMAP 073800 073800 073800 000000 FF07E0 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 3C0180 1C0300 1E0300 0F0600 03F800 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 19 0 BBX 18 24 0 0 BITMAP 007800 006000 00C000 018000 000000 FF07C0 7C0380 3E0300 1E0200 1F0400 0F0400 0F8800 07C800 03D000 03F000 01E000 01E000 01E000 01E000 01E000 01E000 01E000 01E000 07F800 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 0 0 BITMAP FF00 3E00 3C00 3C00 3FF0 3C3C 3C1C 3C1E 3C1E 3C1E 3C1E 3C1C 3C3C 3C78 3FE0 3C00 3C00 3E00 FF00 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 18 0 BBX 16 20 1 0 BITMAP 07E0 1EF0 1C78 3C78 3C78 3C70 3CE0 3CC0 3DC0 3DE0 3DF0 3CF8 3CFC 3C7E 3C1F 3C0F 3C0F 3CCF 3CCE FEFC ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 14 0 BBX 14 19 0 0 BITMAP 1E00 0600 0300 0180 0000 1F80 71E0 60F0 60F0 00F0 00F0 1FF0 78F0 F0F0 F0F0 F0F0 F8F0 7F70 3E3C ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 14 0 BBX 14 19 0 0 BITMAP 01E0 0180 0300 0600 0000 1F80 71E0 60F0 60F0 00F0 00F0 1FF0 78F0 F0F0 F0F0 F0F0 F8F0 7F70 3E3C ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 14 0 BBX 14 19 0 0 BITMAP 0700 0F80 1DC0 3060 0000 1F80 71E0 60F0 60F0 00F0 00F0 1FF0 78F0 F0F0 F0F0 F0F0 F8F0 7F70 3E3C ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 14 0 BBX 14 19 0 0 BITMAP 1C20 3FE0 3FC0 21C0 0000 1F80 71E0 60F0 60F0 00F0 00F0 1FF0 78F0 F0F0 F0F0 F0F0 F8F0 7F70 3E3C ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 0 0 BITMAP 1CE0 1CE0 1CE0 0000 1F80 71E0 60F0 60F0 00F0 00F0 1FF0 78F0 F0F0 F0F0 F0F0 F8F0 7F70 3E3C ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 14 0 BBX 14 19 0 0 BITMAP 0300 0480 0480 0300 0000 1F80 71E0 60F0 60F0 00F0 00F0 1FF0 78F0 F0F0 F0F0 F0F0 F8F0 7F70 3E3C ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 22 0 BBX 20 14 1 0 BITMAP 3F8F80 71F9C0 60F0E0 60F0E0 00F0F0 00F0F0 1FFFF0 78F000 F0F000 F0F000 F0F800 F8FC10 7F3FF0 3E0FC0 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 14 0 BBX 12 19 1 -5 BITMAP 0FF0 3870 7830 7030 F000 F000 F000 F000 F000 F800 7800 3C10 1FF0 0FE0 0200 0780 0380 0380 0700 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 15 0 BBX 13 19 1 0 BITMAP 1E00 0600 0300 0180 0000 0FC0 38E0 7870 7070 F078 F078 FFF8 F000 F000 F800 7800 3C08 1FF8 07F0 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 15 0 BBX 13 19 1 0 BITMAP 01E0 0180 0300 0600 0000 0FC0 38E0 7870 7070 F078 F078 FFF8 F000 F000 F800 7800 3C08 1FF8 07F0 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 15 0 BBX 13 19 1 0 BITMAP 0700 0F80 1DC0 3060 0000 0FC0 38E0 7870 7070 F078 F078 FFF8 F000 F000 F800 7800 3C08 1FF8 07F0 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 1CE0 1CE0 1CE0 0000 0FC0 38E0 7870 7070 F078 F078 FFF8 F000 F000 F800 7800 3C08 1FF8 07F0 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 8 0 BBX 8 19 0 0 BITMAP F0 30 18 0C 00 FC 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C FF ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 8 0 BBX 8 19 0 0 BITMAP 0F 0C 18 30 00 FC 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C FF ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 8 0 BBX 9 19 1 0 BITMAP 1C00 3E00 7700 C180 0000 7E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 7F80 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 8 0 BBX 8 18 0 0 BITMAP E7 E7 E7 00 FC 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C FF ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 17 0 BBX 14 21 2 0 BITMAP 0080 F1C0 1E00 0700 1B80 71E0 40F0 0FF0 3CF8 7878 703C F03C F03C F03C F03C F03C F038 7038 7870 3CE0 0FC0 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 17 0 BBX 17 19 0 0 BITMAP 070800 0FF800 0FF000 087000 000000 FC7800 7CFC00 3DFE00 3F1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 FF7F80 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 0 BITMAP 1E00 0600 0300 0180 0000 0FC0 3CF0 7878 7038 F03C F03C F03C F03C F03C F03C 7038 7878 3CF0 0FC0 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 0 BITMAP 01E0 0180 0300 0600 0000 0FC0 3CF0 7878 7038 F03C F03C F03C F03C F03C F03C 7038 7878 3CF0 0FC0 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 0 BITMAP 0700 0F80 1DC0 3060 0000 0FC0 3CF0 7878 7038 F03C F03C F03C F03C F03C F03C 7038 7878 3CF0 0FC0 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 0 BITMAP 1C20 3FE0 3FC0 21C0 0000 0FC0 3CF0 7878 7038 F03C F03C F03C F03C F03C F03C 7038 7878 3CF0 0FC0 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 1 0 BITMAP 1CE0 1CE0 1CE0 0000 0FC0 3CF0 7878 7038 F03C F03C F03C F03C F03C F03C 7038 7878 3CF0 0FC0 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 16 0 BBX 15 14 1 0 BITMAP 0380 0380 0380 0000 0000 0000 FFFE FFFE 0000 0000 0000 0380 0380 0380 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 16 0 BBX 17 14 0 0 BITMAP 07F180 1E3E00 3C1C00 3C1E00 783F00 786F00 78CF00 798F00 7B0F00 7E0F00 3C1E00 1C1C00 3E3800 C7E000 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 17 0 BBX 17 19 0 0 BITMAP 078000 018000 00C000 006000 000000 FC7E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C7E00 3FDE00 1F9F00 0F1F80 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 17 0 BBX 17 19 0 0 BITMAP 00F000 00C000 018000 030000 000000 FC7E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C7E00 3FDE00 1F9F00 0F1F80 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 17 0 BBX 17 19 0 0 BITMAP 01C000 03E000 077000 0C1800 000000 FC7E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C7E00 3FDE00 1F9F00 0F1F80 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 17 0 BBX 17 18 0 0 BITMAP 073800 073800 073800 000000 FC7E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C7E00 3FDE00 1F9F00 0F1F80 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 17 0 BBX 17 24 0 -5 BITMAP 00F000 00C000 018000 030000 000000 FF0F80 7C0600 3E0600 1E0400 1E0800 0F0800 0F1000 0F9000 07A000 07E000 03C000 03C000 018000 018000 010000 030000 060000 0C0000 1C0000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 17 0 BBX 16 23 0 -5 BITMAP FC00 7C00 3C00 3C00 3C78 3DFC 3DFE 3E1E 3C0F 3C0F 3C0F 3C0F 3C0F 3C0F 3C1E 3E3E 3FFC 3CF8 3C00 3C00 3C00 3C00 FF00 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 17 0 BBX 17 23 0 -5 BITMAP 0E7000 0E7000 0E7000 000000 FF0F80 7C0600 3E0600 1E0400 1E0800 0F0800 0F1000 0F9000 07A000 07E000 03C000 03C000 018000 018000 010000 030000 060000 0C0000 1C0000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 17 20 0 0 BITMAP 07FE00 1E3E00 1C1E00 3C1E00 3C1E00 3C1E00 FF9E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 FF7F80 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 11 2 1 7 BITMAP FFE0 FFE0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 14 23 1 -4 BITMAP 0780 0780 0780 0780 0780 0780 E79C FFFC E79C 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 14 24 1 0 BITMAP 1830 0EE0 07C0 0380 0000 7FFC 607C 6078 60F8 00F0 01F0 03E0 03C0 07C0 0780 0F80 0F00 1F00 3E00 3C00 7C00 780C F80C FFFC ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 25 0 BBX 22 14 1 0 BITMAP 0FC3E0 3C6E70 787C38 703C38 F03C3C F03C3C F03FFC F03C00 F03C00 F03C00 703E00 787F04 3C6FFC 0FC3F8 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 18 23 0 0 BITMAP 073800 073800 073800 000000 FF07C0 7C0380 3E0300 1E0200 1F0400 0F0400 0F8800 07C800 03D000 03F000 01E000 01E000 01E000 01E000 01E000 01E000 01E000 01E000 07F800 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 14 0 0 BITMAP FC 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C 3C FF ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 10 20 0 0 BITMAP 7E00 3E00 1E00 1E00 1E00 1E00 1E00 1EC0 1F80 1E00 3E00 FE00 9E00 1E00 1E00 1E00 1E00 1E00 3F00 7F80 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 14 19 1 0 BITMAP FF00 3C00 3C00 3C00 3C00 3C80 3D80 3F00 3C00 7C00 FC00 BC00 3C00 3C00 3C00 3C0C 3C0C 3E0C FFFC ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 14 23 1 -4 BITMAP 0780 0780 0780 0780 0780 0780 E79C FFFC E79C 0780 0780 0780 0780 0780 E79C FFFC E79C 0780 0780 0780 0780 0780 0780 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 17 20 0 0 BITMAP 0FDE00 1CDE00 3CDE00 3CDE00 3C0000 3C0000 FFFE00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 3C1E00 FE7F80 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 1 1 BITMAP C0 E0 70 38 3C 1E 1E 3C 38 70 E0 C0 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 27 0 BBX 26 19 1 0 BITMAP 03F7FF80 0E1F8380 1C0F8180 38078180 78078000 70078000 F0078000 F0078000 F0078300 F007FF00 F0078300 F0078300 F0078000 70078000 78078000 380780C0 1C0F80C0 0E1FC1C0 03F7FFC0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 26 0 BBX 24 2 1 7 BITMAP FFFFFF FFFFFF ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 9 4 4 16 BITMAP C180 7700 3E00 1C00 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 5 4 6 -4 BITMAP 70 C0 E8 78 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 9 4 5 16 BITMAP 1B80 3600 6400 C800 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 1 1 BITMAP 06 0E 1C 38 78 F0 F0 78 38 1C 0E 06 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 3 4 7 15 BITMAP E0 E0 E0 E0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 9 4 4 16 BITMAP C180 FF80 7F00 3E00 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 9 9 4 4 BITMAP 3E00 7F00 FF80 FF80 FF80 FF80 FF80 7F00 3E00 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 9 4 4 15 BITMAP 7080 FF80 FF00 8700 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 9 4 4 16 BITMAP 1C00 3E00 7700 C180 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 8 2 12 BITMAP 1080 6300 E700 E700 F780 F780 F780 F780 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 8 2 12 BITMAP E0 E0 E0 E0 40 40 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 11 19 2 0 BITMAP 60C0 3B80 1F00 0E00 0000 1F80 79C0 F0C0 F0C0 F800 FE00 7F80 3FC0 0FE0 03E0 C1E0 C1E0 E3C0 7F00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 4 4 6 16 BITMAP 60 90 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 9 1 -4 BITMAP F0 F0 F0 F0 F0 70 70 60 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 13 23 3 -4 BITMAP 00F8 0318 0718 0718 0E00 0E00 1E00 1E00 1E00 7F80 3C00 3C00 3C00 3C00 3C00 7800 7800 7800 7800 7800 F000 F000 F000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 27 0 BBX 26 10 0 9 BITMAP FFE7C7C0 8E23C700 8E23E700 8E23EF00 0E03EF00 0E037700 0E037700 0E037700 0E032700 1F0707C0 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 19 19 -6 0 BITMAP 0003E0 000380 000780 000F00 001E00 001C00 003C00 007800 00F000 00E000 01E000 03C000 078000 070000 0F0000 1E0000 3C0000 380000 F80000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 6 4 4 16 BITMAP F0 30 18 0C ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 30 0 BBX 29 19 0 0 BITMAP 3E00E000 6301C000 63038000 E3870000 E3860000 E38C0000 E3980000 63380000 63700000 3EE00000 01CF83E0 0198C630 0338EE38 0638EE38 0E38EE38 1C38EE38 3838EE38 7018C630 E00F83E0 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 26 0 BBX 20 3 3 0 BITMAP E0E070 E0E070 E0E070 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 8 2 12 BITMAP F780 F780 F780 F780 7380 7380 6300 8400 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 13 24 1 0 BITMAP 3060 1DC0 0F80 0700 0000 0FE0 3870 7030 F030 F000 F000 FC00 7F00 3F80 1FE0 07F0 01F8 00F8 0078 0078 C078 C070 E0E0 7F80 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 8 2 -4 BITMAP F780 F780 F780 F780 7380 7380 6300 C600 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 13 19 1 0 BITMAP 3060 1DC0 0F80 0700 0000 FFF8 E0F8 C1F0 03E0 03E0 07C0 0F80 0F00 1F00 3E00 7C00 7C18 F818 FFF8 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lubB24.bdf100644 1750 1750 150704 5413747530 15071 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-DemiBold-R-Normal--34-240-100-100-P-202-ISO8859-1 SIZE 24 100 100 FONTBOUNDINGBOX 83 39 -21 -7 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "DemiBold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 34 POINT_SIZE 240 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 202 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 31 FONT_DESCENT 8 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 11 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 9 0 BBX 5 25 2 0 BITMAP F8 F8 F8 F8 F8 F8 F8 F8 78 78 78 70 70 70 70 30 30 30 00 00 F8 F8 F8 F8 F8 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 16 0 BBX 13 10 1 16 BITMAP F8F8 F8F8 F8F8 78F0 78F0 7070 7070 7070 3060 3060 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 23 0 BBX 21 25 1 0 BITMAP 00F1E0 00E1C0 00E1C0 00E1C0 01E380 01C380 01C380 3FFFF8 3FFFF8 3FFFF8 038700 038700 038F00 078E00 070E00 070E00 FFFFE0 FFFFE0 FFFFE0 0E1C00 0E1C00 0E3800 1C3800 1C3800 3C7800 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 21 0 BBX 16 31 3 -4 BITMAP 0180 0180 0FFC 1FFE 3F9E 7D8E 7D8E 7D8E 7D80 7D80 3F80 3F80 1F80 0FC0 07F0 01F8 01FC 01FE 01BF 019F 019F E19F E19F E19E F9BE FFFC 7FF8 01C0 0180 0180 0180 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 26 0 BBX 25 25 0 0 BITMAP 1F800780 3FC00F00 79E01E00 70E03C00 F0F07800 F0F07800 F0F0F000 F0F1E000 F0F3C000 70E78000 79EF0000 3FDE0000 1F9E0000 003CFC00 0079FE00 00F3CF00 01E78780 03C78780 07878780 07078780 0F078780 1E078780 3C03CF00 7801FE00 F000FC00 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 26 0 BBX 25 25 1 0 BITMAP 00FE0000 03FF0000 07CF8000 0F87C000 0F87C000 0F87C000 0F87C000 07CF8000 07CE0000 03FC0000 07F00000 0FF07F80 3CF87F80 787C1E00 787E1E00 F83E1C00 F81F1C00 F81F9800 F80FF000 FC07F000 7E03F000 7F07F800 3FFEFE00 0FFCFF00 03F07F00 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 9 0 BBX 5 11 2 15 BITMAP F8 F8 F8 F8 F8 78 78 78 70 F0 E0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 11 0 BBX 9 32 1 -6 BITMAP 0080 0180 0300 0700 0E00 1C00 1C00 3C00 3C00 7800 7800 7800 F800 F800 F800 F800 F800 F800 F800 F800 7800 7800 7800 3C00 3C00 1C00 1C00 0E00 0600 0300 0180 0080 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 11 0 BBX 9 32 1 -6 BITMAP 8000 C000 6000 7000 3800 1C00 1C00 1E00 1E00 0F00 0F00 0F00 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F00 0F00 0F00 1E00 1E00 1C00 1C00 3800 3000 6000 C000 8000 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 15 0 BBX 13 12 1 13 BITMAP 0700 0700 0700 6730 FAF8 F8F8 0000 0D80 1DC0 78E0 38F0 1080 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 21 0 BBX 21 21 0 0 BITMAP 007000 007000 007000 007000 007000 007000 007000 007000 007000 FFFFF8 FFFFF8 FFFFF8 007000 007000 007000 007000 007000 007000 007000 007000 007000 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 9 0 BBX 5 12 2 -6 BITMAP F8 F8 F8 F8 F8 F8 78 78 70 F0 E0 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 21 0 BBX 20 3 1 8 BITMAP FFFFF0 FFFFF0 FFFFF0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 9 0 BBX 5 5 2 0 BITMAP F8 F8 F8 F8 F8 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 18 0 BBX 18 32 0 -6 BITMAP 0001C0 0003C0 000380 000780 000700 000F00 000E00 001E00 001C00 003C00 003800 007800 007000 007000 00E000 00E000 01C000 01C000 038000 038000 078000 070000 0F0000 0E0000 1E0000 1C0000 3C0000 380000 780000 700000 F00000 E00000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 21 0 BBX 19 25 1 0 BITMAP 01F000 07FC00 0F1E00 1E0F00 3C0780 7C07C0 7C07C0 7803C0 F803E0 F803E0 F803E0 F803E0 F803E0 F803E0 F803E0 F803E0 F803E0 7803C0 7C07C0 7C07C0 3C0780 1E0F00 0F1E00 07FC00 01F000 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 21 0 BBX 13 25 4 0 BITMAP FF80 FF80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 1FC0 FFF8 FFF8 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 21 0 BBX 16 25 2 0 BITMAP 0FE0 7FF8 707E 603E 603F 701F 001F 001F 001F 001E 003C 007C 0070 00E0 01C0 0300 0E00 1C00 1800 3800 7FFF 7FFF FFFF FFFF FFFF ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 21 0 BBX 16 25 3 0 BITMAP 3FE0 FFF8 F0FC E07E E03E E03E 003E 003E 003C 0078 00F0 1FC0 1FF0 00FC 007E 003E 001F 001F 001F E01F E03F E03E F0FC FFF8 3FE0 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 21 0 BBX 20 25 0 0 BITMAP 000F80 001F80 003F80 003F80 006F80 00CF80 01CF80 038F80 070F80 0E0F80 0C0F80 180F80 300F80 700F80 FFFFF0 FFFFF0 FFFFF0 FFFFF0 000F80 000F80 000F80 000F80 001FC0 007FF0 007FF0 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 21 0 BBX 14 25 4 0 BITMAP FFFC FFFC FFFC FFFC C000 C000 C000 C000 C000 C000 FF00 FFE0 07F0 01F8 00FC 007C 007C 007C 007C E07C E078 E0F8 F1F0 FFE0 7F80 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 21 0 BBX 19 25 1 0 BITMAP 00FF00 07FFC0 0F83C0 1F01C0 3E01C0 3C01C0 7C0000 780000 F80000 F8FC00 F9FF00 FBFF80 FE1FC0 FC07C0 F807E0 F803E0 F803E0 7803E0 7803E0 7C03C0 3C07C0 3E0780 1F0F00 0FFE00 03F800 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 21 0 BBX 17 25 3 0 BITMAP FFFF80 FFFF80 FFFF80 FFFF80 FFFF80 000700 000E00 001C00 001C00 003800 007000 00E000 01E000 01C000 03C000 078000 0F8000 0F0000 1F0000 1E0000 3E0000 3E0000 3C0000 7C0000 7C0000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 21 0 BBX 18 25 2 0 BITMAP 03F800 0FFE00 3E3F00 3E1F80 7C0F80 7C0F80 7C0F80 7E0F00 3F0F00 3F9C00 1FF800 07F800 07FC00 1CFF00 3C3F80 781F80 F80FC0 F807C0 F807C0 F807C0 FC0780 7C0F80 7E1F00 1FFE00 07F000 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 21 0 BBX 19 25 1 0 BITMAP 03F800 0FFE00 3E1F00 3C0F80 7C0780 7807C0 F803C0 F803E0 F803E0 F803E0 FC03E0 7C07E0 7F0FE0 3FFBE0 1FF3E0 07E3E0 0003C0 0003C0 0007C0 700780 700F80 701F00 783E00 7FFC00 1FE000 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 9 0 BBX 5 18 2 0 BITMAP F8 F8 F8 F8 F8 00 00 00 00 00 00 00 00 F8 F8 F8 F8 F8 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 9 0 BBX 5 24 2 -6 BITMAP F8 F8 F8 F8 F8 00 00 00 00 00 00 00 00 F8 F8 F8 F8 F8 78 78 78 70 E0 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 21 0 BBX 20 21 1 0 BITMAP 000010 000070 0001F0 0007E0 001F80 007F00 01FC00 07F000 1FC000 7F0000 FC0000 7F0000 1FC000 07F000 01FC00 007F00 001F80 0007E0 0001F0 000070 000010 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 21 0 BBX 20 9 1 5 BITMAP FFFFF0 FFFFF0 FFFFF0 000000 000000 000000 FFFFF0 FFFFF0 FFFFF0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 21 0 BBX 20 21 1 0 BITMAP 800000 E00000 F80000 7E0000 1F8000 0FE000 03F800 00FE00 003F80 000FE0 0003F0 000FE0 003F80 00FE00 03F800 0FE000 1F8000 7E0000 F80000 E00000 800000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 17 0 BBX 15 25 1 0 BITMAP 3FC0 FFF8 F0FC E07E E03E E03E 003E 003E 003C 0038 0070 00E0 01C0 0380 0780 0780 0F80 0F80 0000 0000 0F80 0F80 0F80 0F80 0F80 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 29 0 BBX 27 25 2 0 BITMAP 000FE000 007FFC00 00F01E00 03C00700 07000180 0E0F01C0 1C1F80C0 38787060 30707060 60E07060 61E07060 61C0E060 C1C0E060 C3C0E060 C3C1E0C0 C3C360C0 C3E6E180 C3FCF300 61F8FE00 70E0F800 30000000 1C000000 0F01C000 07FFC000 00FF0000 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 27 0 BBX 27 25 0 0 BITMAP 000E0000 000E0000 001F0000 001F0000 003F8000 003F8000 003FC000 006FC000 0067C000 00C7E000 00C3E000 0183F000 0181F000 0301F800 0300F800 07FFFC00 07FFFC00 0E007E00 0C003E00 1C003F00 18001F00 38001F80 78001F80 FE007FE0 FE007FE0 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 22 0 BBX 20 25 1 0 BITMAP FFFE00 FFFF80 3F0FC0 1F07E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03C0 1F07C0 1F1F00 1FFC00 1FFE00 1F0F80 1F07C0 1F03E0 1F01F0 1F01F0 1F01F0 1F01F0 1F01F0 1F03E0 3F87E0 FFFFC0 FFFE00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 24 0 BBX 21 25 1 0 BITMAP 007FC0 03FFF8 0FC0F8 1F0038 3E0038 3C0038 7C0000 7C0000 F80000 F80000 F80000 F80000 F80000 F80000 F80000 F80000 FC0000 7C0000 7E0000 3E0000 3F8008 1FC078 0FFFF8 03FFF0 007FC0 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 27 0 BBX 25 25 1 0 BITMAP FFFF8000 FFFFF000 3F03F800 1F007C00 1F003E00 1F001F00 1F001F00 1F001F00 1F000F80 1F000F80 1F000F80 1F000F80 1F000F80 1F000F80 1F000F80 1F000F80 1F000F00 1F001F00 1F001F00 1F001E00 1F003E00 1F007C00 3F81F800 FFFFE000 FFFF8000 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 20 0 BBX 19 25 1 0 BITMAP FFFFE0 FFFFE0 3F01E0 1F00E0 1F00E0 1F0000 1F0000 1F0000 1F0000 1F0300 1F0300 1FFF00 1FFF00 1F0300 1F0300 1F0000 1F0000 1F0000 1F0000 1F0000 1F00E0 1F00E0 3F80E0 FFFFE0 FFFFE0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 20 0 BBX 18 25 1 0 BITMAP FFFFC0 FFFFC0 3F03C0 1F01C0 1F01C0 1F0000 1F0000 1F0000 1F0000 1F0300 1F0300 1FFF00 1FFF00 1F0300 1F0300 1F0000 1F0000 1F0000 1F0000 1F0000 1F0000 1F0000 3F8000 FFE000 FFE000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 26 0 BBX 24 25 1 0 BITMAP 007FC0 03FFF8 0FC0F8 1F0038 3E0038 3C0038 7C0000 7C0000 F80000 F80000 F80000 F80000 F80000 F80000 F807FF F807FF F801FC 7C00F8 7C00F8 3E00F8 3E00F8 1F00F8 0FC0F8 03FFF8 007FC0 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 27 0 BBX 26 25 1 0 BITMAP FFE1FFC0 FFE1FFC0 3F807F00 1F003E00 1F003E00 1F003E00 1F003E00 1F003E00 1F003E00 1F003E00 1F003E00 1FFFFE00 1FFFFE00 1F003E00 1F003E00 1F003E00 1F003E00 1F003E00 1F003E00 1F003E00 1F003E00 1F003E00 3F807F00 FFE1FFC0 FFE1FFC0 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 12 0 BBX 11 25 0 0 BITMAP FFE0 FFE0 3F80 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 3F80 FFE0 FFE0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 15 0 BBX 15 31 0 -6 BITMAP 0FFE 0FFE 03F8 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 E1E0 E1E0 E3E0 FFC0 FF00 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 25 0 BBX 25 25 1 0 BITMAP FFC0FE00 FFC0FE00 3F807800 1F007000 1F00E000 1F018000 1F070000 1F0E0000 1F1C0000 1F380000 1F700000 1FF80000 1FFC0000 1FFE0000 1F7F0000 1F3F8000 1F1F8000 1F0FC000 1F07E000 1F07F000 1F03F800 1F01FC00 3F80FE00 FFC7FF80 FFC7FF80 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 20 0 BBX 19 25 1 0 BITMAP FFE000 FFE000 3F8000 1F0000 1F0000 1F0000 1F0000 1F0000 1F0000 1F0000 1F0000 1F0000 1F0000 1F0000 1F0000 1F0000 1F0000 1F0000 1F0000 1F00E0 1F00E0 1F00E0 3F80E0 FFFFE0 FFFFE0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 31 0 BBX 30 25 0 0 BITMAP FF8003FC FFC007FC 3FC007F0 1FC00FE0 1FE00FE0 1FE01FE0 1FF01FE0 1DF03FE0 1DF83BE0 1CF83BE0 1CF873E0 1CFC73E0 1C7CF3E0 1C7EE3E0 1C3FE3E0 1C3FC3E0 1C3FC3E0 1C1F83E0 1C1F83E0 1C0F03E0 1C0F03E0 1C0603E0 3E0007F0 FF000FFC FF000FFC ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 27 0 BBX 25 25 1 0 BITMAP FE00FF80 FF00FF80 3F003E00 1F801C00 1FC01C00 1FC01C00 1FE01C00 1FF01C00 1DF81C00 1DF81C00 1CFC1C00 1C7E1C00 1C7E1C00 1C3F1C00 1C1F9C00 1C1FDC00 1C0FDC00 1C07FC00 1C03FC00 1C03FC00 1C01FC00 1C00FC00 3E00FC00 FF807C00 FF803C00 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 28 0 BBX 25 25 1 0 BITMAP 00FF8000 03FFE000 0FC1F800 1F007C00 3E003E00 3C001E00 7C001F00 7C001F00 F8000F80 F8000F80 F8000F80 F8000F80 F8000F80 F8000F80 F8000F80 F8000F80 F8000F80 7C001F00 7C001F00 3E003E00 3E003E00 1F007C00 0FC1F800 03FFE000 00FF8000 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 21 0 BBX 20 25 0 0 BITMAP FFFF00 FFFFC0 3F07E0 1F03E0 1F01F0 1F01F0 1F01F0 1F01F0 1F01F0 1F01F0 1F03E0 1F03C0 1F0FC0 1FFF00 1FFC00 1F0000 1F0000 1F0000 1F0000 1F0000 1F0000 1F0000 3F8000 FFE000 FFE000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 28 0 BBX 29 30 1 -5 BITMAP 00FF8000 03FFE000 0FC1F800 1F007C00 3E003E00 3C001E00 7C001F00 7C001F00 F8000F80 F8000F80 F8000F80 F8000F80 F8000F80 F8000F80 F8000F80 F8000F80 F8000F80 7C001F00 7C001F00 3E003F00 3E003E00 1F007C00 0FC1F800 03FFF000 00FFC000 0000F800 00007F80 00003FF8 00000FE0 000007C0 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 24 0 BBX 24 25 1 0 BITMAP FFFF00 FFFFC0 3F07E0 1F03E0 1F01F0 1F01F0 1F01F0 1F01F0 1F01F0 1F03E0 1F07E0 1F0FC0 1FFF80 1FFF00 1F3F00 1F1F80 1F0FC0 1F0FC0 1F07E0 1F03F0 1F03F0 1F01F8 3F81FC FFC0FF FFC07F ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 19 0 BBX 16 25 2 0 BITMAP 07F8 1FFE 3E1E 7C0E F80E F80E F800 FC00 FE00 7F00 7FC0 3FF0 0FF8 03FC 01FE 007F 003F 001F 001F E01F E01F E03E F87C FFF8 3FE0 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 24 0 BBX 23 25 1 0 BITMAP FFFFFE FFFFFE E07C1E E07C0E E07C0E 007C00 007C00 007C00 007C00 007C00 007C00 007C00 007C00 007C00 007C00 007C00 007C00 007C00 007C00 007C00 007C00 007C00 00FE00 03FF80 03FF80 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 25 0 BBX 25 25 0 0 BITMAP FFE0FF80 FFE0FF80 3F803E00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 0F003C00 0F803800 0F807800 07E0F000 03FFE000 007F8000 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 26 0 BBX 26 25 0 0 BITMAP FFE01FC0 FFE01FC0 3F800700 1F800600 1F800600 0F800E00 0FC00C00 07C01C00 07E01800 03E03800 03F03000 03F03000 01F07000 01F86000 00F8E000 00FCC000 007CC000 007F8000 003F8000 003F8000 003F0000 001F0000 001E0000 000E0000 000C0000 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 32 0 BBX 32 25 0 0 BITMAP FF80C03F FF80E03F 7E01E00C 3F01E01C 3F01F018 1F03F018 1F03F010 1F83F030 0F87F830 0F86F830 0FC6F860 0FCEFC60 07CC7C60 07CC7CC0 07FC7EC0 03F83EC0 03F83F80 03F83F80 03F01F80 01F01F80 01F01F00 01E00F00 00E00F00 00E00E00 00C00600 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 24 0 BBX 24 25 0 0 BITMAP 7FE07F 7FE07F 3F801C 1FC038 0FC030 07E070 07E0E0 03F0C0 01F180 01FB80 00FF00 007E00 007E00 00FF00 01FF80 03DF80 038FC0 0787E0 0F07E0 0E03F0 1E03F8 3C01F8 7800FC FE07FF FE07FF ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 24 0 BBX 25 25 0 0 BITMAP FFE03F80 FFE03F80 3F800E00 1F800C00 0FC01C00 0FC03800 07E03000 03F07000 03F06000 01F8C000 00FDC000 00FD8000 007F0000 003F0000 003E0000 003E0000 003E0000 003E0000 003E0000 003E0000 003E0000 003E0000 007F0000 01FFC000 01FFC000 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 22 0 BBX 18 25 2 0 BITMAP 7FFFC0 7FFFC0 700FC0 701F80 701F80 003F00 003E00 007E00 00FC00 00FC00 01F800 01F000 03F000 03E000 07E000 0FC000 0FC000 1F8000 1F0000 3F0000 7E01C0 7E01C0 FC01C0 FFFFC0 FFFFC0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 11 0 BBX 8 32 2 -6 BITMAP FF FF F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 FF FF ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 18 0 BBX 18 32 0 -6 BITMAP E00000 F00000 700000 780000 380000 3C0000 1C0000 1E0000 0E0000 0F0000 070000 078000 038000 03C000 01C000 01C000 00E000 00E000 007000 007000 003800 003800 003C00 001C00 001E00 000E00 000F00 000700 000780 000380 0003C0 0001C0 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 11 0 BBX 8 32 1 -6 BITMAP FF FF 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F FF FF ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 21 0 BBX 20 22 1 4 BITMAP 002000 006000 006000 006000 00F000 00F000 01F800 01F800 039C00 039C00 079E00 070E00 0F0F00 0E0700 1E0780 1C0380 3C03C0 3801C0 7801E0 7000E0 F000F0 E00070 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 17 0 BBX 14 3 2 -4 BITMAP FFFC FFFC FFFC ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 9 0 BBX 5 11 2 15 BITMAP 38 78 70 F0 F0 F8 F8 F8 F8 F8 F8 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 19 0 BBX 17 18 1 0 BITMAP 0FF000 3FF800 387C00 383E00 383E00 003E00 003E00 0FFE00 3FFE00 7E3E00 FC3E00 F83E00 F83E00 F83E00 FC7E00 7FDE00 7F9F80 1F0F80 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 22 0 BBX 21 26 0 0 BITMAP FF0000 FF0000 3F0000 1F0000 1F0000 1F0000 1F0000 1F0000 1F0F80 1F3FC0 1F7FE0 1F7FF0 1FC3F0 1F81F8 1F00F8 1F00F8 1F00F8 1F00F8 1F00F8 1F00F8 1F01F0 1F01F0 1FC3F0 1FFFE0 1F7FC0 1E1F00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 18 0 BBX 16 18 1 0 BITMAP 03FE 0FFF 3E0F 3C07 7C07 7807 F800 F800 F800 F800 F800 F800 7C00 7E00 3F01 1FFF 0FFF 03FC ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 22 0 BBX 21 26 1 0 BITMAP 003FC0 003FC0 000FC0 0007C0 0007C0 0007C0 0007C0 0007C0 07C7C0 1FF7C0 3FFFC0 7E1FC0 7C07C0 7807C0 F807C0 F807C0 F807C0 F807C0 F807C0 F807C0 FC0FC0 7E1FC0 7FF7C0 3FF7E0 1FE7F8 0F87F8 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 19 0 BBX 16 18 1 0 BITMAP 07F0 1FF8 3C3C 7C1E 781E 781F F81F FFFF FFFF F800 F800 F800 7C00 7E00 3F01 1FFF 0FFF 03FC ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 14 0 BBX 14 26 1 0 BITMAP 03F8 07FC 0F9C 1F1C 1F1C 1F00 1F00 1F00 FFF0 FFF0 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 3F80 FFE0 FFE0 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 20 0 BBX 19 25 1 -7 BITMAP 07FFE0 1FFFE0 3E3EC0 3C1E00 7C1F00 7C1F00 7C1F00 7C1F00 3C1F00 3C1E00 1E3E00 07FC00 0FF000 3C0000 3FFE00 3FFF80 3FFFC0 0FFFC0 3807C0 F807C0 F807C0 F80F80 FE1F00 7FFE00 0FF800 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 22 0 BBX 22 26 0 0 BITMAP FF0000 FF0000 3F0000 1F0000 1F0000 1F0000 1F0000 1F0000 1F0F00 1F3FC0 1F7FC0 1F7FE0 1FC3E0 1F83E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 3F87F0 FFFFFC FFFFFC ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 11 0 BBX 11 26 0 0 BITMAP 1F00 1F00 1F00 1F00 1F00 0000 0000 0000 FF00 FF00 3F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 3F80 FFE0 FFE0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 12 0 BBX 11 33 -1 -7 BITMAP 03E0 03E0 03E0 03E0 03E0 0000 0000 0000 0FE0 0FE0 03E0 03E0 03E0 03E0 03E0 03E0 03E0 03E0 03E0 03E0 03E0 03E0 03E0 03E0 03E0 03E0 03E0 E3E0 E3E0 E3C0 F7C0 FF80 7F00 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 21 0 BBX 22 26 0 0 BITMAP FF0000 FF0000 3F0000 1F0000 1F0000 1F0000 1F0000 1F0000 1F07F0 1F07F0 1F01C0 1F0380 1F0700 1F1E00 1F3800 1F7800 1FFC00 1FFC00 1F7E00 1F3F00 1F1F80 1F1FC0 1F0FE0 3F07F0 FFC3FC FFC3FC ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 11 0 BBX 11 26 0 0 BITMAP FF00 FF00 3F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 3F80 FFE0 FFE0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 33 0 BBX 33 18 0 0 BITMAP FF1F01E000 FF3FC7F800 3F7FCFF800 1FFFFFFC00 1FC7F87C00 1F83F07C00 1F03E07C00 1F03E07C00 1F03E07C00 1F03E07C00 1F03E07C00 1F03E07C00 1F03E07C00 1F03E07C00 1F03E07C00 3F03E07E00 FFCFF9FF80 FFCFF9FF80 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 22 0 BBX 22 18 0 0 BITMAP FF0F00 FF3FC0 7F7FC0 1F7FE0 1FC3E0 1F83E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 3F87F0 FFFFFC FFFFFC ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 21 0 BBX 19 18 1 0 BITMAP 03F800 0FFE00 3F1F80 3C0780 7C07C0 7803C0 F803E0 F803E0 F803E0 F803E0 F803E0 F803E0 7803C0 7C07C0 3C0780 3F1F80 0FFE00 03F800 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 22 0 BBX 21 25 0 -7 BITMAP FF0F80 FF3FC0 3F7FE0 1F7FF0 1FC3F0 1F81F8 1F00F8 1F00F8 1F00F8 1F00F8 1F00F8 1F00F8 1F01F0 1F01F0 1FC3F0 1FFFE0 1F7FC0 1F1F00 1F0000 1F0000 1F0000 1F0000 3F8000 FFE000 FFE000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 22 0 BBX 21 25 1 -7 BITMAP 07C7C0 1FF7C0 3FFFC0 7E1FC0 7C07C0 7C07C0 F807C0 F807C0 F807C0 F807C0 F807C0 F807C0 FC0FC0 7E1FC0 7FF7C0 3FF7C0 1FE7C0 0F87C0 0007C0 0007C0 0007C0 0007C0 000FE0 003FF8 003FF8 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 0 0 BITMAP FF0E FF3E 3F7E 1FFE 1F8E 1F0E 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 3F80 FFE0 FFE0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 18 0 BBX 15 18 2 0 BITMAP 0FE0 3FF8 7C78 F838 F838 FC38 FF00 7FE0 7FF8 3FFC 0FFE 01FE E07E E03E E03E F87C FFF8 3FE0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 13 0 BBX 11 23 1 0 BITMAP 0600 3E00 3E00 3E00 3E00 FFE0 FFE0 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3F00 1FE0 1FE0 07E0 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 22 0 BBX 22 18 0 0 BITMAP FF1FE0 FF1FE0 3F07E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F07E0 1F0FE0 1FFBE0 0FFBF8 0FF3FC 03C3FC ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 22 0 BBX 22 18 0 0 BITMAP FFC1FC FFC1FC 3F0070 1F0060 1F80E0 0F80C0 0FC1C0 07C180 07E380 03E300 03F700 01F600 01FE00 00FC00 00FC00 007800 007800 003000 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 30 0 BBX 30 18 0 0 BITMAP FFC1C1FC FFC1C1FC 7E03E070 3F03E060 1F07E060 1F07F0E0 1F87F0C0 0F8FF8C0 0F8CF9C0 07DCF980 07D8FF80 07F87F00 03F07F00 03F03F00 03E03E00 01E01E00 01C01C00 00C01C00 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 21 0 BBX 21 18 0 0 BITMAP FFE3F8 FFE3F8 3F81E0 1F8180 0FC380 07E700 03FE00 03FC00 01F800 00FC00 01FE00 03FF00 073F80 0E1F80 1C0FC0 3807E0 FE1FF8 FE1FF8 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 22 0 BBX 22 25 0 -7 BITMAP FFC0FC FFC0FC 3F0070 1F0060 1F8060 0F80C0 0FC0C0 07C180 07E380 07E300 03E700 03F600 01FE00 01FC00 00F800 00F800 007000 007000 002000 006000 00C000 01C000 038000 078000 1F0000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 20 0 BBX 16 18 2 0 BITMAP 7FFF 7FFF 607F 607E 70FC 01F8 01F8 03F0 07E0 0FE0 0FC0 1F80 3F00 3F07 7E07 FC07 FFFF FFFF ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 12 0 BBX 9 32 2 -6 BITMAP 0780 0F80 1F00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3C00 7C00 F000 F000 7800 3C00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 1F00 0F80 0780 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 9 0 BBX 3 32 3 -6 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 12 0 BBX 9 32 2 -6 BITMAP F000 F800 7C00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 1E00 0F00 0780 0780 1F00 1E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 3E00 7C00 F800 F000 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 21 0 BBX 20 7 1 6 BITMAP 1E0000 3F8030 7FE030 E1F870 C07FE0 C01FC0 000F80 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 9 0 BBX 5 25 2 -7 BITMAP F8 F8 F8 F8 F8 00 00 30 30 30 70 70 70 70 78 78 78 F8 F8 F8 F8 F8 F8 F8 F8 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 21 0 BBX 17 25 1 0 BITMAP 006000 006000 006000 03FF00 0FFF80 1F6780 3C6380 7C6380 786380 F86000 F86000 F86000 F86000 F86000 F86000 F86000 7C6000 7C6000 3F6180 1FFF80 0FFF80 03FF00 006000 006000 006000 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 21 0 BBX 15 25 4 0 BITMAP 01F8 07FE 079E 0F0E 0F0E 1F0E 1F00 1F00 1F00 1F00 1F00 7FE0 7FE0 1F00 1F00 1F00 1F00 1E00 1C00 3000 FFFE FFFE FFFE FFFE FFFE ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 21 0 BBX 21 23 0 1 BITMAP 400010 E00038 700070 38F8E0 1FFFC0 0FFF80 078F00 0F0780 0E0380 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1E0380 0F0780 078F00 0FFF80 1FFFC0 38F8E0 700070 E00038 400010 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 21 0 BBX 22 25 0 0 BITMAP FFC0FC FFC0FC 7F0038 3F0070 1F80E0 1FC1C0 0FE180 07F300 03F600 01FE00 01FC00 0FFFC0 0FFFC0 00F800 00F800 00F800 0FFFC0 0FFFC0 00F800 00F800 00F800 00F800 01FC00 07FF00 07FF00 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 9 0 BBX 3 32 3 -6 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 00 00 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 21 0 BBX 16 31 3 -6 BITMAP 0FF8 3FFE 7E1E FC0E F80E F80E F800 FC00 7F80 7FE0 1FF8 3FFC 73FE F0FF F03F F81F FC0F FF0F 7FCE 3FFC 1FF8 0FFC 01FE 007F 001F E01F E01F E03F F83E FFFC 3FF0 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 21 0 BBX 10 4 5 21 BITMAP E1C0 E1C0 E1C0 E1C0 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 29 0 BBX 26 25 2 0 BITMAP 007F8000 01FFE000 07C0F800 0F003C00 1C000E00 383F8700 30FFC300 61F0C180 61E0C180 E3C001C0 C3C000C0 C3C000C0 C3C000C0 C3C000C0 C3C000C0 E1E001C0 61E00180 60F04180 307FC300 381F8700 1C000E00 0F003C00 07C0F800 01FFE000 007F8000 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 17 0 BBX 15 14 2 11 BITMAP 1FC0 7FF0 79F8 70F8 00F8 00F8 1FF8 7FF8 7CF8 F8F8 F9F8 FFF8 7F7E 3E3E ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 19 0 BBX 16 16 1 1 BITMAP 0102 0307 0706 0E0E 1E1C 3C3C 7C78 F8F8 F8F8 7C78 3C3C 1E1C 0E0E 0706 0303 0102 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 21 0 BBX 20 9 1 5 BITMAP FFFFF0 FFFFF0 FFFFF0 000070 000070 000070 000070 000070 000070 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 10 0 BBX 8 4 1 8 BITMAP FF FF FF FF ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 21 0 BBX 16 17 3 8 BITMAP 07E0 1FF8 3C3C 700E 6FC6 EFE7 C663 C663 C7C3 C7C3 C663 EE77 6E76 700E 3C3C 1FF8 07E0 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 21 0 BBX 10 3 5 22 BITMAP FFC0 FFC0 FFC0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 9 0 BBX 6 6 1 19 BITMAP 78 FC CC CC FC 78 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 21 0 BBX 21 21 0 0 BITMAP 007000 007000 007000 007000 007000 007000 FFFFF8 FFFFF8 FFFFF8 007000 007000 007000 007000 007000 007000 000000 000000 000000 FFFFF8 FFFFF8 FFFFF8 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 13 0 BBX 10 15 -20 10 BITMAP 7F00 C380 C1C0 81C0 01C0 01C0 0380 0300 0400 1800 3000 6000 7FC0 FFC0 FFC0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 13 0 BBX 10 15 -20 10 BITMAP FF00 C380 81C0 01C0 01C0 0180 0200 7F00 0780 03C0 01C0 01C0 81C0 8380 FE00 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 21 0 BBX 8 5 8 21 BITMAP 1F 3C 38 70 E0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 24 0 BBX 22 24 1 -6 BITMAP FF1FE0 FF1FE0 3F07E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F0FE0 1FFFE0 1FFBF0 1FF3FC 1FE3FC 1F0000 1F0000 1F0000 1F0000 1F0000 1F0000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 21 0 BBX 14 31 2 -6 BITMAP 1FFC 3FFC 7FFC FF8C FF8C FF8C FF8C FF8C FF8C 7F8C 7F8C 3F8C 0F8C 018C 018C 018C 018C 018C 018C 018C 018C 018C 018C 018C 018C 018C 018C 018C 018C 018C 018C ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 21 0 BBX 4 5 9 7 BITMAP F0 F0 F0 F0 F0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 21 0 BBX 6 7 8 -7 BITMAP 30 60 78 3C 3C FC F8 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 13 0 BBX 9 15 -21 10 BITMAP FC00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 3E00 FF80 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 17 0 BBX 15 14 1 11 BITMAP 0FE0 3FF8 7C7C 7C7C F83E F83E F83E F83E F83E F83E 7C7C 7C7C 3FF8 0FE0 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 19 0 BBX 16 16 2 1 BITMAP 4080 E0C0 60E0 7070 3878 3C3C 1E3E 1F1F 1F1F 1E3E 3C3C 3878 7070 60E0 E0C0 4080 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 27 0 BBX 24 25 6 0 BITMAP FC003F 1C003E 1C007C 1C00F8 1C01F0 1C01F0 1C03E0 1C07C0 1C0F80 1C0F80 1C1F1C 1C3E3C 1C7E3C 3E7C5C FFF89C 01F11C 01F31C 03E61C 07C41C 0F8FFF 0F8FFF 1F001C 3E001C 7C001C FC007F ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 27 0 BBX 24 25 6 0 BITMAP FC003F 1C003E 1C007C 1C00F8 1C01F0 1C01F0 1C03E0 1C07C0 1C0F80 1C0F80 1C1FF8 1C3E1C 1C7E0E 3E7C0E FFF80E 01F00E 01F01C 03E018 07C020 0F80C0 0F8180 1F0300 3E03FE 7C07FE FC07FE ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 27 0 BBX 25 25 7 0 BITMAP FF001F80 C3801F00 81C03E00 01C07C00 01C0F800 0180F800 0201F000 7F03E000 0787C000 03C7C000 01CF8E00 01DF1E00 81FF1E00 83BE2E00 FE7C4E00 00F88E00 00F98E00 01F30E00 03E20E00 07C7FF80 07C7FF80 0F800E00 1F000E00 3E000E00 7E003F80 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 17 0 BBX 15 25 1 -7 BITMAP 03E0 03E0 03E0 03E0 03E0 0000 0000 03E0 03E0 03C0 03C0 0380 0700 0E00 1C00 3800 7800 F800 F800 F80E F80E FC0E 7E1E 3FFE 0FF8 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 27 0 BBX 27 32 0 0 BITMAP 00F80000 00380000 001C0000 000E0000 00070000 00000000 00000000 000E0000 000E0000 001F0000 001F0000 003F8000 003F8000 003FC000 006FC000 0067C000 00C7E000 00C3E000 0183F000 0181F000 0301F800 0300F800 07FFFC00 07FFFC00 0E007E00 0C003E00 1C003F00 18001F00 38001F80 78001F80 FE007FE0 FE007FE0 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 27 0 BBX 27 32 0 0 BITMAP 0003E000 00078000 00070000 000E0000 001C0000 00000000 00000000 000E0000 000E0000 001F0000 001F0000 003F8000 003F8000 003FC000 006FC000 0067C000 00C7E000 00C3E000 0183F000 0181F000 0301F800 0300F800 07FFFC00 07FFFC00 0E007E00 0C003E00 1C003F00 18001F00 38001F80 78001F80 FE007FE0 FE007FE0 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 27 0 BBX 27 32 0 0 BITMAP 003F0000 003F0000 00738000 00E1C000 01C0E000 00000000 00000000 000E0000 000E0000 001F0000 001F0000 003F8000 003F8000 003FC000 006FC000 0067C000 00C7E000 00C3E000 0183F000 0181F000 0301F800 0300F800 07FFFC00 07FFFC00 0E007E00 0C003E00 1C003F00 18001F00 38001F80 78001F80 FE007FE0 FE007FE0 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 27 0 BBX 27 32 0 0 BITMAP 00786000 00FFE000 01FFE000 01FFC000 01838000 00000000 00000000 000E0000 000E0000 001F0000 001F0000 003F8000 003F8000 003FC000 006FC000 0067C000 00C7E000 00C3E000 0183F000 0181F000 0301F800 0300F800 07FFFC00 07FFFC00 0E007E00 0C003E00 1C003F00 18001F00 38001F80 78001F80 FE007FE0 FE007FE0 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 27 0 BBX 27 31 0 0 BITMAP 0070E000 0070E000 0070E000 0070E000 00000000 00000000 000E0000 000E0000 001F0000 001F0000 003F8000 003F8000 003FC000 006FC000 0067C000 00C7E000 00C3E000 0183F000 0181F000 0301F800 0300F800 07FFFC00 07FFFC00 0E007E00 0C003E00 1C003F00 18001F00 38001F80 78001F80 FE007FE0 FE007FE0 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 27 0 BBX 27 32 0 0 BITMAP 000E0000 001B0000 00110000 001B0000 000E0000 00000000 00000000 000E0000 000E0000 001F0000 001F0000 003F8000 003F8000 003FC000 006FC000 0067C000 00C7E000 00C3E000 0183F000 0181F000 0301F800 0300F800 07FFFC00 07FFFC00 0E007E00 0C003E00 1C003F00 18001F00 38001F80 78001F80 FE007FE0 FE007FE0 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 33 0 BBX 31 25 0 0 BITMAP 0001FFFC 0003FFFC 0003F03C 0007F01C 000FF01C 000DF000 001DF000 0019F000 0031F000 0071F038 0061F038 00E1FFF8 00C1FFF8 0181F038 0181F038 0301F000 07FFF000 07FFF000 0C01F000 0C01F000 1801F006 3001F006 7003F80E FC0FFFFE FC0FFFFE ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 24 0 BBX 21 32 1 -7 BITMAP 007FC0 03FFF8 0FC0F8 1F0038 3E0038 3C0038 7C0000 7C0000 F80000 F80000 F80000 F80000 F80000 F80000 F80000 F80000 FC0000 7C0000 7E0000 3E0000 3F8008 1FC078 0FFFF8 03FFF0 007FC0 003000 006000 007800 003C00 003C00 00FC00 00F800 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 20 0 BBX 19 32 1 0 BITMAP 07C000 01C000 00E000 007000 003800 000000 000000 FFFFE0 FFFFE0 3F01E0 1F00E0 1F00E0 1F0000 1F0000 1F0000 1F0000 1F0300 1F0300 1FFF00 1FFF00 1F0300 1F0300 1F0000 1F0000 1F0000 1F0000 1F0000 1F00E0 1F00E0 3F80E0 FFFFE0 FFFFE0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 20 0 BBX 19 32 1 0 BITMAP 003E00 007800 007000 00E000 01C000 000000 000000 FFFFE0 FFFFE0 3F01E0 1F00E0 1F00E0 1F0000 1F0000 1F0000 1F0000 1F0300 1F0300 1FFF00 1FFF00 1F0300 1F0300 1F0000 1F0000 1F0000 1F0000 1F0000 1F00E0 1F00E0 3F80E0 FFFFE0 FFFFE0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 20 0 BBX 19 32 1 0 BITMAP 01F800 01F800 039C00 070E00 0E0700 000000 000000 FFFFE0 FFFFE0 3F01E0 1F00E0 1F00E0 1F0000 1F0000 1F0000 1F0000 1F0300 1F0300 1FFF00 1FFF00 1F0300 1F0300 1F0000 1F0000 1F0000 1F0000 1F0000 1F00E0 1F00E0 3F80E0 FFFFE0 FFFFE0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 20 0 BBX 19 31 1 0 BITMAP 070E00 070E00 070E00 070E00 000000 000000 FFFFE0 FFFFE0 3F01E0 1F00E0 1F00E0 1F0000 1F0000 1F0000 1F0000 1F0300 1F0300 1FFF00 1FFF00 1F0300 1F0300 1F0000 1F0000 1F0000 1F0000 1F0000 1F00E0 1F00E0 3F80E0 FFFFE0 FFFFE0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 12 0 BBX 11 32 0 0 BITMAP F800 3800 1C00 0E00 0700 0000 0000 FFE0 FFE0 3F80 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 3F80 FFE0 FFE0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 12 0 BBX 11 32 0 0 BITMAP 03E0 0780 0700 0E00 1C00 0000 0000 FFE0 FFE0 3F80 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 3F80 FFE0 FFE0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 12 0 BBX 12 32 1 0 BITMAP 1F80 1F80 39C0 70E0 E070 0000 0000 7FF0 7FF0 1FC0 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 1FC0 7FF0 7FF0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 12 0 BBX 11 31 0 0 BITMAP E1C0 E1C0 E1C0 E1C0 0000 0000 FFE0 FFE0 3F80 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 3F80 FFE0 FFE0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 27 0 BBX 25 25 0 0 BITMAP 7FFF8000 7FFFF000 3F03F800 1F007C00 1F003E00 1F001F00 1F001F00 1F001F00 1F000F80 1F000F80 1F000F80 FFFC0F80 FFFC0F80 1F000F80 1F000F80 1F000F80 1F000F00 1F001F00 1F001F00 1F001E00 1F003E00 1F007C00 3F81F800 7FFFF000 7FFF8000 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 27 0 BBX 25 32 1 0 BITMAP 00786000 00FFE000 01FFE000 01FFC000 01838000 00000000 00000000 FE00FF80 FF00FF80 3F003E00 1F801C00 1FC01C00 1FC01C00 1FE01C00 1FF01C00 1DF81C00 1DF81C00 1CFC1C00 1C7E1C00 1C7E1C00 1C3F1C00 1C1F9C00 1C1FDC00 1C0FDC00 1C07FC00 1C03FC00 1C03FC00 1C01FC00 1C00FC00 3E00FC00 FF807C00 FF803C00 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 28 0 BBX 25 32 1 0 BITMAP 01F00000 00700000 00380000 001C0000 000E0000 00000000 00000000 00FF8000 03FFE000 0FC1F800 1F007C00 3E003E00 3C001E00 7C001F00 7C001F00 F8000F80 F8000F80 F8000F80 F8000F80 F8000F80 F8000F80 F8000F80 F8000F80 F8000F80 7C001F00 7C001F00 3E003E00 3E003E00 1F007C00 0FC1F800 03FFE000 00FF8000 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 28 0 BBX 25 32 1 0 BITMAP 0007C000 000F0000 000E0000 001C0000 00380000 00000000 00000000 00FF8000 03FFE000 0FC1F800 1F007C00 3E003E00 3C001E00 7C001F00 7C001F00 F8000F80 F8000F80 F8000F80 F8000F80 F8000F80 F8000F80 F8000F80 F8000F80 F8000F80 7C001F00 7C001F00 3E003E00 3E003E00 1F007C00 0FC1F800 03FFE000 00FF8000 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 28 0 BBX 25 32 1 0 BITMAP 007E0000 007E0000 00E70000 01C38000 0381C000 00000000 00000000 00FF8000 03FFE000 0FC1F800 1F007C00 3E003E00 3C001E00 7C001F00 7C001F00 F8000F80 F8000F80 F8000F80 F8000F80 F8000F80 F8000F80 F8000F80 F8000F80 F8000F80 7C001F00 7C001F00 3E003E00 3E003E00 1F007C00 0FC1F800 03FFE000 00FF8000 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 28 0 BBX 25 32 1 0 BITMAP 00F0C000 01FFC000 03FFC000 03FF8000 03070000 00000000 00000000 00FF8000 03FFE000 0FC1F800 1F007C00 3E003E00 3C001E00 7C001F00 7C001F00 F8000F80 F8000F80 F8000F80 F8000F80 F8000F80 F8000F80 F8000F80 F8000F80 F8000F80 7C001F00 7C001F00 3E003E00 3E003E00 1F007C00 0FC1F800 03FFE000 00FF8000 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 28 0 BBX 25 31 1 0 BITMAP 01C38000 01C38000 01C38000 01C38000 00000000 00000000 00FF8000 03FFE000 0FC1F800 1F007C00 3E003E00 3C001E00 7C001F00 7C001F00 F8000F80 F8000F80 F8000F80 F8000F80 F8000F80 F8000F80 F8000F80 F8000F80 F8000F80 7C001F00 7C001F00 3E003E00 3E003E00 1F007C00 0FC1F800 03FFE000 00FF8000 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 21 0 BBX 20 21 1 0 BITMAP 600060 E00070 F000F0 7801E0 3C03C0 1E0780 0F0F00 079E00 03FC00 01F800 00F000 01F800 03FC00 079E00 0F0F00 1E0780 3C03C0 7801E0 F000F0 E00070 600060 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 28 0 BBX 25 25 1 0 BITMAP 00FF0380 03FFE700 0FC0F600 1F007C00 3E003E00 3E003E00 7C007F00 7C00FF00 F801CF80 F8038F80 F8070F80 F80E0F80 F81C0F80 F8380F80 F8700F80 F8E00F80 F9C00F00 7F801F00 7F001F00 7E001E00 3E003E00 1F007C00 3781F800 73FFE000 E07F0000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 25 0 BBX 25 32 0 0 BITMAP 01F00000 00700000 00380000 001C0000 000E0000 00000000 00000000 FFE0FF80 FFE0FF80 3F803E00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 0F003C00 0F803800 0F807800 07E0F000 03FFE000 007F8000 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 25 0 BBX 25 32 0 0 BITMAP 0007C000 000F0000 000E0000 001C0000 00380000 00000000 00000000 FFE0FF80 FFE0FF80 3F803E00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 0F003C00 0F803800 0F807800 07E0F000 03FFE000 007F8000 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 25 0 BBX 25 32 0 0 BITMAP 007E0000 007E0000 00E70000 01C38000 0381C000 00000000 00000000 FFE0FF80 FFE0FF80 3F803E00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 0F003C00 0F803800 0F807800 07E0F000 03FFE000 007F8000 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 25 0 BBX 25 31 0 0 BITMAP 01C38000 01C38000 01C38000 01C38000 00000000 00000000 FFE0FF80 FFE0FF80 3F803E00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 1F001C00 0F003C00 0F803800 0F807800 07E0F000 03FFE000 007F8000 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 24 0 BBX 25 32 0 0 BITMAP 0007C000 000F0000 000E0000 001C0000 00380000 00000000 00000000 FFE03F80 FFE03F80 3F800E00 1F800C00 0FC01C00 0FC03800 07E03000 03F07000 03F06000 01F8C000 00FDC000 00FD8000 007F0000 003F0000 003E0000 003E0000 003E0000 003E0000 003E0000 003E0000 003E0000 003E0000 007F0000 01FFC000 01FFC000 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 21 0 BBX 20 25 0 0 BITMAP FFE000 FFE000 3F8000 1F0000 1F0000 1FFF00 1FFFC0 1F07E0 1F03E0 1F01F0 1F01F0 1F01F0 1F01F0 1F01F0 1F01F0 1F03E0 1F03C0 1F0FC0 1FFF00 1FFC00 1F0000 1F0000 3F8000 FFE000 FFE000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 24 0 BBX 21 26 1 0 BITMAP 01FC00 07FF00 0F9F80 0F0F80 1F0F80 1F0F80 1F0F00 1F0E00 1F1C00 1F3800 1F3800 1F7800 1F7C00 1F7F00 1F3F80 1F3FC0 1F0FE0 1F07F0 1F03F8 1F01F8 1F00F8 1F38F8 1F38F8 3F39F0 FFBFE0 FF9F80 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 19 0 BBX 17 25 1 0 BITMAP 1F0000 070000 038000 01C000 00E000 000000 000000 0FF000 3FF800 387C00 383E00 383E00 003E00 003E00 0FFE00 3FFE00 7E3E00 FC3E00 F83E00 F83E00 F83E00 FC7E00 7FDE00 7F9F80 1F0F80 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 19 0 BBX 17 25 1 0 BITMAP 00F800 01E000 01C000 038000 070000 000000 000000 0FF000 3FF800 387C00 383E00 383E00 003E00 003E00 0FFE00 3FFE00 7E3E00 FC3E00 F83E00 F83E00 F83E00 FC7E00 7FDE00 7F9F80 1F0F80 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 19 0 BBX 17 25 1 0 BITMAP 07E000 07E000 0E7000 1C3800 381C00 000000 000000 0FF000 3FF800 387C00 383E00 383E00 003E00 003E00 0FFE00 3FFE00 7E3E00 FC3E00 F83E00 F83E00 F83E00 FC7E00 7FDE00 7F9F80 1F0F80 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 19 0 BBX 17 25 1 0 BITMAP 0F0C00 1FFC00 3FFC00 3FF800 307000 000000 000000 0FF000 3FF800 387C00 383E00 383E00 003E00 003E00 0FFE00 3FFE00 7E3E00 FC3E00 F83E00 F83E00 F83E00 FC7E00 7FDE00 7F9F80 1F0F80 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 19 0 BBX 17 24 1 0 BITMAP 1C3800 1C3800 1C3800 1C3800 000000 000000 0FF000 3FF800 387C00 383E00 383E00 003E00 003E00 0FFE00 3FFE00 7E3E00 FC3E00 F83E00 F83E00 F83E00 FC7E00 7FDE00 7F9F80 1F0F80 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 19 0 BBX 17 25 1 0 BITMAP 01C000 036000 022000 036000 01C000 000000 000000 0FF000 3FF800 387C00 383E00 383E00 003E00 003E00 0FFE00 3FFE00 7E3E00 FC3E00 F83E00 F83E00 F83E00 FC7E00 7FDE00 7F9F80 1F0F80 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 29 0 BBX 27 18 1 0 BITMAP 0FF07C00 3FF9FF00 383F8780 381F03C0 001F03C0 001F03E0 001F03E0 07FFFFE0 3FFFFFE0 7E1F0000 FC1F0000 F81F0000 F81F8000 F81FC000 FC3FE020 7FE7FFE0 3FC3FFE0 1F00FF00 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 18 0 BBX 16 25 1 -7 BITMAP 03FE 0FFF 3E0F 3C07 7C07 7807 F800 F800 F800 F800 F800 F800 7C00 7E00 3F01 1FFF 0FFF 03FC 00C0 0180 01E0 00F0 00F0 03F0 03E0 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 19 0 BBX 16 25 1 0 BITMAP 1F00 0700 0380 01C0 00E0 0000 0000 07F0 1FF8 3C3C 7C1E 781E 781F F81F FFFF FFFF F800 F800 F800 7C00 7E00 3F01 1FFF 0FFF 03FC ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 19 0 BBX 16 25 1 0 BITMAP 00F8 01E0 01C0 0380 0700 0000 0000 07F0 1FF8 3C3C 7C1E 781E 781F F81F FFFF FFFF F800 F800 F800 7C00 7E00 3F01 1FFF 0FFF 03FC ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 19 0 BBX 16 25 1 0 BITMAP 07E0 07E0 0E70 1C38 381C 0000 0000 07F0 1FF8 3C3C 7C1E 781E 781F F81F FFFF FFFF F800 F800 F800 7C00 7E00 3F01 1FFF 0FFF 03FC ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 19 0 BBX 16 24 1 0 BITMAP 1C38 1C38 1C38 1C38 0000 0000 07F0 1FF8 3C3C 7C1E 781E 781F F81F FFFF FFFF F800 F800 F800 7C00 7E00 3F01 1FFF 0FFF 03FC ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 11 0 BBX 11 25 0 0 BITMAP F800 3800 1C00 0E00 0700 0000 0000 FF00 FF00 3F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 3F80 FFE0 FFE0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 11 0 BBX 11 25 0 0 BITMAP 07C0 0F00 0E00 1C00 3800 0000 0000 FF00 FF00 3F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 3F80 FFE0 FFE0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 11 0 BBX 12 25 1 0 BITMAP 1F80 1F80 39C0 70E0 E070 0000 0000 7F80 7F80 1F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 1FC0 7FF0 7FF0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 11 0 BBX 11 24 0 0 BITMAP E1C0 E1C0 E1C0 E1C0 0000 0000 FF00 FF00 3F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 3F80 FFE0 FFE0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 22 0 BBX 19 28 2 0 BITMAP 001800 003C00 FE7000 FFE000 1FE000 07F800 0FFC00 1C7E00 783F00 301F80 03FF80 0FFFC0 3F1FC0 3C07C0 7C07E0 7803E0 F803E0 F803E0 F803E0 F803E0 F803E0 F803C0 7807C0 7C07C0 3C0F80 1F1F00 0FFE00 03F800 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 22 0 BBX 22 25 0 0 BITMAP 01E180 03FF80 07FF80 07FF00 060E00 000000 000000 FF0F00 FF3FC0 7F7FC0 1F7FE0 1FC3E0 1F83E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 3F87F0 FFFFFC FFFFFC ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 21 0 BBX 19 25 1 0 BITMAP 0F8000 038000 01C000 00E000 007000 000000 000000 03F800 0FFE00 3F1F80 3C0780 7C07C0 7803C0 F803E0 F803E0 F803E0 F803E0 F803E0 F803E0 7803C0 7C07C0 3C0780 3F1F80 0FFE00 03F800 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 21 0 BBX 19 25 1 0 BITMAP 003E00 007800 007000 00E000 01C000 000000 000000 03F800 0FFE00 3F1F80 3C0780 7C07C0 7803C0 F803E0 F803E0 F803E0 F803E0 F803E0 F803E0 7803C0 7C07C0 3C0780 3F1F80 0FFE00 03F800 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 21 0 BBX 19 25 1 0 BITMAP 03F000 03F000 073800 0E1C00 1C0E00 000000 000000 03F800 0FFE00 3F1F80 3C0780 7C07C0 7803C0 F803E0 F803E0 F803E0 F803E0 F803E0 F803E0 7803C0 7C07C0 3C0780 3F1F80 0FFE00 03F800 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 21 0 BBX 19 25 1 0 BITMAP 078600 0FFE00 1FFE00 1FFC00 183800 000000 000000 03F800 0FFE00 3F1F80 3C0780 7C07C0 7803C0 F803E0 F803E0 F803E0 F803E0 F803E0 F803E0 7803C0 7C07C0 3C0780 3F1F80 0FFE00 03F800 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 21 0 BBX 19 24 1 0 BITMAP 0E1C00 0E1C00 0E1C00 0E1C00 000000 000000 03F800 0FFE00 3F1F80 3C0780 7C07C0 7803C0 F803E0 F803E0 F803E0 F803E0 F803E0 F803E0 7803C0 7C07C0 3C0780 3F1F80 0FFE00 03F800 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 21 0 BBX 20 17 1 1 BITMAP 00F000 00F000 00F000 00F000 000000 000000 000000 FFFFF0 FFFFF0 FFFFF0 000000 000000 000000 00F000 00F000 00F000 00F000 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 21 0 BBX 21 18 0 0 BITMAP 01FC38 07FF20 1F8FC0 1E03C0 3E03E0 3C07E0 7C0FF0 7C1DF0 7C79F0 7CE1F0 7DC1F0 7F81F0 3F03E0 3E03E0 1E07C0 1F0F80 23FF00 E1FC00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 22 0 BBX 22 25 0 0 BITMAP 03E000 00E000 007000 003800 001C00 000000 000000 FF1FE0 FF1FE0 3F07E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F07E0 1F0FE0 1FFBE0 0FFBF8 0FF3FC 03C3FC ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 22 0 BBX 22 25 0 0 BITMAP 001F00 003C00 003800 007000 00E000 000000 000000 FF1FE0 FF1FE0 3F07E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F07E0 1F0FE0 1FFBE0 0FFBF8 0FF3FC 03C3FC ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 22 0 BBX 22 25 0 0 BITMAP 00FC00 00FC00 01CE00 038700 070380 000000 000000 FF1FE0 FF1FE0 3F07E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F07E0 1F0FE0 1FFBE0 0FFBF8 0FF3FC 03C3FC ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 22 0 BBX 22 24 0 0 BITMAP 038700 038700 038700 038700 000000 000000 FF1FE0 FF1FE0 3F07E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F07E0 1F0FE0 1FFBE0 0FFBF8 0FF3FC 03C3FC ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 22 0 BBX 22 32 0 -7 BITMAP 001F00 003C00 003800 007000 00E000 000000 000000 FFC0FC FFC0FC 3F0070 1F0060 1F8060 0F80C0 0FC0C0 07C180 07E380 07E300 03E700 03F600 01FE00 01FC00 00F800 00F800 007000 007000 002000 006000 00C000 01C000 038000 078000 1F0000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 22 0 BBX 21 31 0 -7 BITMAP FF0000 FF0000 3F0000 1F0000 1F0000 1F0000 1F0F80 1F3FC0 1F7FE0 1F7FF0 1FC3F0 1F81F8 1F00F8 1F00F8 1F00F8 1F00F8 1F00F8 1F00F8 1F01F0 1F01F0 1FC3F0 1FFFE0 1F7FC0 1F1F00 1F0000 1F0000 1F0000 1F0000 3F8000 FFE000 FFE000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 22 0 BBX 22 31 0 -7 BITMAP 038700 038700 038700 038700 000000 000000 FFC0FC FFC0FC 3F0070 1F0060 1F8060 0F80C0 0FC0C0 07C180 07E380 07E300 03E700 03F600 01FE00 01FC00 00F800 00F800 007000 007000 002000 006000 00C000 01C000 038000 078000 1F0000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 22 26 1 0 BITMAP 01FFE0 07FFE0 0F8FE0 0F03E0 1F03E0 1F03E0 1F03E0 1F03E0 FFE3E0 FFE3E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 3F87F0 FFCFFC FFCFFC ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 15 3 1 9 BITMAP FFFE FFFE FFFE ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 17 31 2 -6 BITMAP 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 E3E380 FFFF80 FFFF80 E3E380 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 22 0 BBX 18 32 2 0 BITMAP 1C0E00 0E1C00 073800 03F000 03F000 000000 000000 7FFFC0 7FFFC0 700FC0 701F80 701F80 003F00 003E00 007E00 00FC00 00FC00 01F800 01F000 03F000 03E000 07E000 0FC000 0FC000 1F8000 1F0000 3F0000 7E01C0 7E01C0 FC01C0 FFFFC0 FFFFC0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 32 0 BBX 29 18 1 0 BITMAP 03F01F00 0FFC7FC0 3F1EE1E0 7C0FE0F0 7C0FC0F0 7807C0F8 F807C0F8 F807FFF8 F807FFF8 F807C000 F807C000 F807C000 7807E000 7C07F000 7C0FF808 3F1EFFF8 0FFC7FF8 03F01FE0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 24 0 BBX 25 31 0 0 BITMAP 01C38000 01C38000 01C38000 01C38000 00000000 00000000 FFE03F80 FFE03F80 3F800E00 1F800C00 0FC01C00 0FC03800 07E03000 03F07000 03F06000 01F8C000 00FDC000 00FD8000 007F0000 003F0000 003E0000 003E0000 003E0000 003E0000 003E0000 003E0000 003E0000 003E0000 007F0000 01FFC000 01FFC000 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 18 0 0 BITMAP FF00 FF00 3F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 3F80 FFE0 FFE0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 26 0 0 BITMAP 7F00 7F00 3F00 1F00 1F00 1F00 1F00 1F00 1F00 1F20 1FE0 1FC0 1F00 1F00 7F00 DF00 9F00 1F00 1F00 1F00 1F00 1F00 1F00 3F80 7FC0 7FC0 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 19 25 0 0 BITMAP 7FE000 7FE000 3F8000 1F0000 1F0000 1F0000 1F0000 1F2000 1F6000 1FE000 1F8000 1F0000 3F0000 FF0000 DF0000 1F0000 1F0000 1F0000 1F0000 1F00E0 1F00E0 1F00E0 3F80E0 7FFFE0 7FFFE0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 17 31 2 -6 BITMAP 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 E3E380 FFFF80 FFFF80 E3E380 03E000 03E000 03E000 03E000 03E000 03E000 E3E380 FFFF80 FFFF80 E3E380 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 22 26 1 0 BITMAP 03F3E0 07FBE0 0F3BE0 1F3BE0 1F3BE0 1F0000 1F0000 1F0000 FFFFE0 FFFFE0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 1F03E0 3F07F0 FF8FFC FF8FFC ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 16 2 1 BITMAP 4000 E000 7000 7800 3C00 3E00 1F00 0F80 0F80 1F00 3E00 3C00 7800 7000 E000 4000 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 35 0 BBX 32 25 2 0 BITMAP 00FCFFFE 07FFFFFE 0F87F81E 1F01F80E 3E01F80E 3C00F800 7C00F800 7C00F800 F800F800 F800F81C F800F81C F800FFFC F800FFFC F800F81C F800F81C F800F800 F800F800 7C00F800 7C00F800 3C00F800 3E01F803 1F01F803 0F87FC07 07FFFFFF 00FCFFFF ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 34 0 BBX 31 3 2 8 BITMAP FFFFFFFE FFFFFFFE FFFFFFFE ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 12 5 4 21 BITMAP E070 70E0 39C0 1F80 1F80 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 6 5 8 -6 BITMAP 38 E0 E0 FC 7C ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 12 5 6 21 BITMAP 1EF0 19C0 3180 6300 C600 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 16 1 1 BITMAP 0100 0380 0700 0F00 1E00 3E00 7C00 F800 F800 7C00 3E00 1E00 0F00 0700 0380 0100 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 4 5 9 20 BITMAP F0 F0 F0 F0 F0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 12 5 4 21 BITMAP C030 E070 7FE0 3FC0 1F80 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 12 12 5 4 BITMAP 1F80 3FC0 7FE0 FFF0 FFF0 FFF0 FFF0 FFF0 FFF0 7FE0 3FC0 1F80 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 12 5 4 20 BITMAP 3C30 7FF0 FFF0 FFE0 C1C0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 12 5 4 21 BITMAP 1F80 1F80 39C0 70E0 E070 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 12 10 2 16 BITMAP 1830 38F0 71E0 F3C0 F3C0 FBF0 FBF0 FBF0 FBF0 FBF0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 6 11 1 15 BITMAP FC FC FC 78 78 78 78 78 30 30 30 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 15 25 2 0 BITMAP 7038 3870 1CE0 0FC0 0FC0 0000 0000 0FE0 3FF8 7C78 F838 F838 FC38 FF00 7FE0 7FF8 3FFC 0FFE 01FE E07E E03E E03E F87C FFF8 3FE0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 5 5 8 21 BITMAP 70 D8 88 D8 70 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 12 2 -6 BITMAP F8 F8 F8 F8 F8 F8 78 78 70 F0 E0 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 18 31 3 -6 BITMAP 001FC0 007FC0 00F3C0 01E1C0 03E1C0 03C000 07C000 07C000 07C000 0FC000 0F8000 0F8000 7FF800 7FF800 0F8000 1F0000 1F0000 1F0000 1F0000 1F0000 3E0000 3E0000 3E0000 3E0000 7E0000 7C0000 7C0000 7C0000 7C0000 FC0000 F80000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 35 0 BBX 33 14 1 11 BITMAP FFFDFC1F80 FFFDFC3F80 C78C7C3E00 C78C7E3E00 C78C7E7E00 07807F7E00 07807FDE00 078077DE00 078077DE00 0780779E00 0780739E00 0780739E00 1FE1F11F80 1FE1F01F80 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 24 25 -8 0 BITMAP 00003F 00003E 00007C 0000F8 0001F0 0001F0 0003E0 0007C0 000F80 000F80 001F00 003E00 007E00 007C00 00F800 01F000 01F000 03E000 07C000 0F8000 0F8000 1F0000 3E0000 7C0000 FC0000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 8 5 5 21 BITMAP F8 38 1C 0E 07 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 39 0 BBX 38 25 0 0 BITMAP 1F80078000 3FC00F0000 79E01E0000 F0F03C0000 F0F0780000 F0F0780000 F0F0F00000 F0F1E00000 F0F3C00000 79E7800000 3FCF000000 1F9E000000 001EFC07E0 003DFE0FF0 007BCF1E78 00F3871C38 01E787BC3C 03C787BC3C 078787BC3C 070787BC3C 0F0787BC3C 1E03871C38 3C03CF1E78 7801FE0FF0 F000FC07E0 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 34 0 BBX 26 4 4 0 BITMAP F01E03C0 F01E03C0 F01E03C0 F01E03C0 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 12 10 2 16 BITMAP F9F0 F9F0 F9F0 F9F0 F9F0 78F0 78F0 70E0 E1C0 C180 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 16 32 2 0 BITMAP 381C 1C38 0E70 07E0 07E0 0000 0000 07F8 1FFE 3E1E 7C0E F80E F80E F800 FC00 FE00 7F00 7FC0 3FF0 0FF8 03FC 01FE 007F 003F 001F 001F E01F E01F E03E F87C FFF8 3FE0 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 12 11 2 -6 BITMAP F9F0 F9F0 F9F0 F9F0 F9F0 78F0 78F0 78F0 70E0 E1C0 C180 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 16 25 2 0 BITMAP 381C 1C38 0E70 07E0 07E0 0000 0000 7FFF 7FFF 607F 607E 70FC 01F8 01F8 03F0 07E0 0FE0 0FC0 1F80 3F00 3F07 7E07 FC07 FFFF FFFF ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lubBI08.bdf100644 1750 1750 60253 5413747531 15164 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-DemiBold-I-Normal--11-80-100-100-P-66-ISO8859-1 SIZE 8 100 100 FONTBOUNDINGBOX 19 13 -6 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "DemiBold" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 11 POINT_SIZE 80 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 66 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 10 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 4 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 3 0 BBX 3 9 1 0 BITMAP 60 60 60 40 40 40 00 00 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 2 5 BITMAP F0 90 90 90 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 1 0 BITMAP 1A 14 7E 28 28 FC 50 90 A0 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 -1 BITMAP 3C 74 70 30 10 38 28 B8 F0 40 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 2 0 BITMAP 62 F4 A8 68 1C 2A 2A 4E 8C ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 8 0 BBX 9 9 0 0 BITMAP 0E00 1200 1200 1C00 7B80 C900 CD00 C600 7F00 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 2 5 BITMAP C0 C0 40 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 1 -2 BITMAP 10 20 60 40 C0 C0 C0 C0 80 40 40 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 0 -2 BITMAP 20 20 10 30 30 30 30 20 60 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 2 5 BITMAP 20 F0 60 A0 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 0 BITMAP 08 10 10 10 FE 10 10 20 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 0 -2 BITMAP C0 C0 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 7 0 BBX 7 1 1 3 BITMAP FE ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 3 0 BBX 2 2 1 0 BITMAP C0 C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 6 0 BBX 7 11 0 -2 BITMAP 02 04 04 08 18 10 30 20 40 40 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 18 64 44 C4 C4 CC CC D8 70 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 38 18 18 10 30 30 30 30 F8 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 1 0 BITMAP 3C 66 06 06 0C 30 60 40 FC ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 38 4C 04 08 78 08 0C 98 F0 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 0C 1C 38 68 C8 FC 18 18 38 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 3C 40 40 70 18 08 0C 98 F0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 1C 24 40 F8 CC CC CC C8 70 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 2 0 BITMAP FC 08 08 10 20 20 40 C0 C0 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 1 0 BITMAP 3C 64 66 38 38 CC C4 CC 70 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 38 64 44 44 4C 7C 0C 98 F0 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 0 0 BITMAP 60 60 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 0 -2 BITMAP 60 60 00 00 40 C0 40 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 0 BITMAP 02 0C 10 E0 40 30 08 04 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 7 0 BBX 7 4 1 1 BITMAP FE 00 00 FE ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 40 20 18 04 0E 10 60 80 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 5 0 BBX 5 9 1 0 BITMAP F0 98 18 10 20 40 C0 00 C0 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 2 0 BITMAP 1C 22 59 AD AD FD BE 40 78 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 04 0C 14 16 16 3E 42 42 C7 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 7E 36 26 24 38 64 66 6C FC ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 1 0 BITMAP 1F 31 61 C0 C0 C0 C0 E0 7E ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 0 0 BITMAP 7F00 3180 3180 3180 2180 6180 6300 6600 FC00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 1 0 BITMAP 7E 32 20 24 3C 68 60 64 FC ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 1 0 BITMAP 7E 32 20 24 3C 68 60 60 E0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 1F 31 61 C0 C0 CF C6 E6 7E ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 9 0 BBX 10 9 0 0 BITMAP 7BC0 3180 3180 3180 3F00 6100 6300 6300 F700 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 4 0 BBX 5 9 0 0 BITMAP 78 30 30 30 20 60 60 60 F0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 5 0 BBX 7 11 0 -2 BITMAP 1E 0C 0C 0C 08 18 18 18 18 B0 E0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 8 0 BBX 9 9 0 0 BITMAP 3980 3300 3200 3C00 3800 2C00 6600 6600 E700 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 78 30 30 20 20 60 60 64 FC ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 10 0 BBX 11 9 0 0 BITMAP 70E0 30C0 31C0 32C0 2A80 4A80 4D80 4180 E3C0 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 9 0 BBX 10 9 0 0 BITMAP 31C0 3080 3880 2880 2D00 2500 4700 4300 E300 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 1E 33 61 C1 C1 C3 C2 C6 78 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 1 0 BITMAP 7C 36 26 24 38 60 60 60 E0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 9 0 BBX 9 11 1 -2 BITMAP 1E00 3300 6100 C100 C100 C300 C200 C600 7800 0C00 0380 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 7E 26 26 24 38 68 6C 6C E6 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 1 0 BITMAP 3C 64 60 60 30 18 08 98 F0 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 1 0 BITMAP FF 99 18 10 30 30 30 30 78 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 2 0 BITMAP F3 62 42 C2 C2 C4 C4 C4 78 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 2 0 BITMAP E3 42 62 64 64 68 38 30 30 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 2 0 BITMAP E4C0 4C80 4C80 4C80 5500 5500 6600 4400 4400 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 7 0 BBX 9 9 0 0 BITMAP 3980 1100 1A00 1C00 0C00 1C00 2400 4600 CF00 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 7 0 BBX 8 9 1 0 BITMAP E3 62 64 28 30 30 30 30 F0 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 3F 26 04 0C 18 30 60 62 FE ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 1 -2 BITMAP 30 20 60 40 40 40 40 40 C0 80 C0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 6 0 BBX 3 11 2 -2 BITMAP 80 80 80 40 40 40 40 40 20 20 20 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 0 -2 BITMAP 30 10 30 20 20 20 20 20 60 40 C0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 1 BITMAP 08 18 18 28 28 48 44 84 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 5 0 BBX 5 1 0 -1 BITMAP F8 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 2 5 BITMAP 40 80 C0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 3C 4C CC C8 F8 FC ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 60 60 60 7C 6C 6C C8 C8 F0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP 3C 68 C0 C0 C0 78 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 1 0 BITMAP 0E 06 06 3C 64 4C CC DC EC ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 38 48 D8 F0 C8 70 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 5 0 BBX 6 11 1 -2 BITMAP 1C 34 20 78 60 60 60 40 40 C0 C0 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 -2 BITMAP 1E 26 44 4C DC 6C 88 F0 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 60 60 60 6C 7C 6C CC C8 CC ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 4 0 BBX 3 9 1 0 BITMAP 60 00 00 E0 40 40 C0 C0 C0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 4 0 BBX 6 11 0 -2 BITMAP 0C 00 00 18 08 18 18 18 10 B0 E0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 60 60 60 6C 58 70 D0 D8 CC ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 4 0 BBX 3 9 1 0 BITMAP 60 60 60 40 40 40 C0 C0 C0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 11 0 BBX 10 6 1 0 BITMAP EDC0 77C0 6EC0 CCC0 CC80 C9C0 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP FC 7C 6C CC C8 CC ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 38 6C CC CC C8 70 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 -2 BITMAP 6E 76 66 66 4C 78 C0 C0 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 -2 BITMAP 3C 4C CC D8 D8 F8 18 18 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 5 0 BBX 6 6 1 0 BITMAP EC 78 60 60 C0 C0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 38 68 60 30 98 F0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 1 0 BITMAP 20 60 60 F0 40 40 C0 C0 E0 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP CC 4C CC D8 F8 DC ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP CC 44 68 70 20 20 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 9 0 BBX 9 6 1 0 BITMAP C980 4D80 7D00 7600 6600 2400 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 6C 24 38 30 58 8C ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 6 0 BBX 7 8 0 -2 BITMAP 66 22 34 38 10 10 20 C0 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP 7C 48 10 20 68 F8 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 1 -2 BITMAP 30 60 60 60 60 C0 40 40 C0 C0 C0 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 3 0 BBX 3 11 1 -2 BITMAP 20 20 20 40 40 40 40 40 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 0 -2 BITMAP 30 30 30 20 20 30 60 60 60 60 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 7 0 BBX 7 3 1 2 BITMAP 62 92 8C ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 0 -2 BITMAP 60 00 40 40 40 40 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 08 3C 74 D0 D0 D0 D0 78 20 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 1 0 BITMAP 1E 12 30 30 78 30 20 40 FC ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 7 0 BBX 8 9 0 0 BITMAP 41 39 26 24 24 24 24 7C 82 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 7 0 BBX 8 9 1 0 BITMAP E3 66 38 78 30 F8 30 20 70 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 3 0 BBX 3 11 1 -2 BITMAP 20 20 20 40 40 00 40 40 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 -2 BITMAP 3C 64 60 30 58 48 68 38 18 98 F0 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 3 8 BITMAP F0 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 2 0 BITMAP 3C 42 9D A5 A1 A1 B9 42 3C ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 3 BITMAP 38 58 D0 B0 F0 D8 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP 24 28 58 D0 58 68 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 7 0 BBX 7 4 1 1 BITMAP FE 02 02 02 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 3 0 BBX 3 1 1 3 BITMAP E0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 7 0 BBX 4 6 2 3 BITMAP 70 90 F0 F0 90 70 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 3 8 BITMAP F0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 2 6 BITMAP C0 C0 C0 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 08 08 08 7E 10 10 00 FC ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 -6 4 BITMAP 70 50 30 40 E0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 -6 4 BITMAP 70 60 60 A0 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 7 0 BBX 3 2 4 7 BITMAP 60 80 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 -2 BITMAP 6E 66 66 6C 5C 6E C0 C0 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 2 -2 BITMAP 78 E8 F0 F0 50 50 50 50 50 50 60 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 7 0 BBX 2 1 3 3 BITMAP C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 2 -2 BITMAP C0 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 -6 4 BITMAP 60 20 40 40 E0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 3 BITMAP 30 58 C8 98 D0 60 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 58 68 2C 68 50 90 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 1 0 BITMAP 6180 2100 4200 4400 EB00 1500 2F00 4200 C700 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 1 0 BITMAP 6180 2100 4200 4400 EF00 1500 2300 4400 CE00 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 9 0 BBX 10 9 2 0 BITMAP 70C0 6080 6100 A200 E580 0A80 1780 2100 6380 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 0 -2 BITMAP 18 00 18 30 40 C0 C8 78 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 8 0 BBX 8 11 0 0 BITMAP 04 02 04 0C 14 16 16 3E 42 42 C7 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 8 0 BBX 8 11 0 0 BITMAP 03 04 04 0C 14 16 16 3E 42 42 C7 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 8 0 BBX 8 11 0 0 BITMAP 06 09 04 0C 14 16 16 3E 42 42 C7 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 0F 04 0C 14 16 16 3E 42 42 C7 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 0F 04 0C 14 16 16 3E 42 42 C7 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 8 0 BBX 8 11 0 0 BITMAP 06 06 04 0C 14 16 16 3E 42 42 C7 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 11 0 BBX 11 9 0 0 BITMAP 03E0 0720 0A40 13C0 1640 3E00 2600 4640 CFC0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 8 0 BBX 8 11 1 -2 BITMAP 1F 31 61 C0 C0 C0 C0 E0 7E 30 30 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 7 0 BBX 7 11 1 0 BITMAP 10 08 7E 32 20 24 3C 68 60 64 FC ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 7 0 BBX 7 11 1 0 BITMAP 06 08 7E 32 20 24 3C 68 60 64 FC ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 7 0 BBX 7 11 1 0 BITMAP 0C 12 7E 32 20 24 3C 68 60 64 FC ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 1 0 BITMAP 12 7E 32 20 24 3C 68 60 64 FC ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 4 0 BBX 5 11 0 0 BITMAP 20 10 78 30 30 30 20 60 60 60 F0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 4 0 BBX 5 11 0 0 BITMAP 18 20 78 30 30 30 20 60 60 60 F0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 4 0 BBX 5 11 0 0 BITMAP 30 48 78 30 30 30 20 60 60 60 F0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 4 0 BBX 5 10 0 0 BITMAP 48 78 30 30 30 20 60 60 60 F0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 0 0 BITMAP 7F00 3180 3180 2180 F980 2180 6300 6600 FC00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 9 0 BBX 10 10 0 0 BITMAP 0F00 31C0 3080 3880 2880 2D00 2500 4700 4300 E300 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 08 04 1E 33 61 C1 C1 C3 C2 C6 78 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 06 08 1E 33 61 C1 C1 C3 C2 C6 78 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 0C 12 1E 33 61 C1 C1 C3 C2 C6 78 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 1E 1E 33 61 C1 C1 C3 C2 C6 78 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 12 1E 33 61 C1 C1 C3 C2 C6 78 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 0 BITMAP 42 64 28 10 10 28 4C 84 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 9 0 BBX 10 9 1 0 BITMAP 0EC0 1180 2380 6780 6D80 5980 6300 6200 FC00 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 2 0 BITMAP 10 08 F3 62 42 C2 C2 C4 C4 C4 78 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 2 0 BITMAP 0C 10 F3 62 42 C2 C2 C4 C4 C4 78 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 2 0 BITMAP 18 24 F3 62 42 C2 C2 C4 C4 C4 78 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 2 0 BITMAP 2C F3 62 42 C2 C2 C4 C4 C4 78 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 7 0 BBX 8 11 1 0 BITMAP 0C 10 E3 62 64 28 30 30 30 30 F0 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 78 30 3E 26 26 66 78 60 E0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 7 0 BBX 7 11 0 -2 BITMAP 1C 36 34 28 68 6C 66 52 5C C0 C0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 10 08 3C 4C CC C8 F8 FC ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 0C 10 3C 4C CC C8 F8 FC ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 18 24 3C 4C CC C8 F8 FC ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 3C 3C 4C CC C8 F8 FC ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 24 3C 4C CC C8 F8 FC ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 18 18 3C 4C CC C8 F8 FC ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 10 0 BBX 9 6 1 0 BITMAP 3F80 6C80 4D80 CF00 D880 E700 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 -2 BITMAP 3C 68 C0 C0 C0 78 60 60 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 10 08 38 48 D8 F0 C8 70 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 0 BITMAP 0C 10 38 48 D8 F0 C8 70 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 0 BITMAP 18 24 38 48 D8 F0 C8 70 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 1 0 BITMAP 24 38 48 D8 F0 C8 70 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 4 0 BBX 3 8 1 0 BITMAP 40 20 E0 60 40 40 C0 E0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 4 0 BBX 5 8 1 0 BITMAP 18 20 E0 60 40 40 C0 E0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 4 0 BBX 4 8 1 0 BITMAP 60 90 E0 60 40 40 C0 E0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 4 0 BBX 5 7 1 0 BITMAP 58 E0 60 40 40 C0 E0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 78 18 2C 3C 4C CC CC C8 70 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 3C FC 7C 6C CC C8 CC ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 10 08 38 6C CC CC C8 70 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 0C 10 38 6C CC CC C8 70 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 18 24 38 6C CC CC C8 70 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 3C 38 6C CC CC C8 70 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 24 38 6C CC CC C8 70 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 1 0 BITMAP 18 00 00 FE 00 30 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP 1E 66 5E E4 CC F0 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 10 08 CC 4C CC D8 F8 DC ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 0C 10 CC 4C CC D8 F8 DC ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 18 24 CC 4C CC D8 F8 DC ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 3C CC 4C CC D8 F8 DC ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 6 0 BBX 7 10 0 -2 BITMAP 06 08 66 22 34 38 10 10 20 C0 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 7 0 BBX 7 11 0 -2 BITMAP 70 20 20 6E 76 66 66 4C 78 C0 C0 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 6 0 BBX 7 9 0 -2 BITMAP 1E 66 22 34 38 10 10 20 C0 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 11 1 -2 BITMAP 1E 26 26 74 64 64 4C 4C CC C0 C0 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 1 1 3 BITMAP F8 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 2 -2 BITMAP 30 30 20 F8 20 20 60 60 60 40 40 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 11 0 0 BITMAP 12 0C 3F 26 04 0C 18 30 60 62 FE ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 6 1 0 BITMAP 3980 4E80 CC80 CF00 CC40 7780 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 8 10 1 0 BITMAP 3C E3 62 64 28 30 30 30 30 F0 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 1 0 BITMAP E0 60 40 40 C0 E0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 1 0 BITMAP 70 20 20 60 F0 60 40 40 E0 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 78 30 20 28 F0 60 60 64 FC ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 -2 BITMAP 18 10 10 7C 10 30 30 F8 20 20 60 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 11 1 -2 BITMAP 1E 20 20 7E 64 64 4C 4C 4C C0 C0 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 1 0 BITMAP 40 40 60 60 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 9 1 0 BITMAP 1FE0 2320 6200 C240 C3C0 C640 C600 C440 7FC0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 1 1 3 BITMAP FFC0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 3 7 BITMAP 90 60 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 2 -2 BITMAP C0 C0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 4 7 BITMAP 70 C0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 1 0 BITMAP 20 40 C0 C0 40 40 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 1 4 8 BITMAP C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 3 7 BITMAP 90 60 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 4 2 2 BITMAP 60 F0 F0 60 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 3 8 BITMAP F0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 2 3 7 BITMAP 60 90 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 1 5 BITMAP 48 D0 D8 D0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 2 5 BITMAP C0 C0 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 6 8 1 0 BITMAP 24 18 38 68 60 30 98 F0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 4 7 BITMAP C0 C0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 0 -2 BITMAP C0 C0 40 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 2 -2 BITMAP 1C 34 20 60 F0 60 60 40 C0 C0 C0 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 5 2 4 BITMAP FE60 23C0 65C0 6540 E4C0 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 9 9 -2 0 BITMAP 0180 0100 0200 0400 0800 1000 2000 4000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 4 7 BITMAP 80 40 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 10 9 2 0 BITMAP 6200 F400 A800 6800 1CC0 2B40 2B40 4F40 8D80 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 1 1 0 BITMAP 8880 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 1 5 BITMAP D8 48 58 90 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 11 1 0 BITMAP 24 18 3C 64 60 60 30 18 08 98 F0 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 4 0 -2 BITMAP 58 D8 58 90 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 0 BITMAP 24 18 7C 48 10 20 68 F8 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lubBI10.bdf100644 1750 1750 65157 5413747531 15165 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-DemiBold-I-Normal--14-100-100-100-P-84-ISO8859-1 SIZE 10 100 100 FONTBOUNDINGBOX 24 16 -8 -3 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "DemiBold" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 14 POINT_SIZE 100 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 84 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 13 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 4 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 1 0 BITMAP 30 30 20 60 60 60 40 00 C0 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 6 0 BBX 5 4 2 6 BITMAP D8 D8 D8 90 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 1 0 BITMAP 0480 0900 0900 7F80 1200 2400 FF00 4800 4800 9000 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 2 -2 BITMAP 04 1F 39 29 38 18 0C 16 96 9C F8 20 20 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 7840 4880 C900 DA00 7400 0BC0 1A40 3640 66C0 C380 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 1 0 BITMAP 0F00 1900 1900 1E00 2DE0 CCC0 C680 C700 E300 7FC0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 2 6 BITMAP 60 E0 40 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 5 0 BBX 5 13 1 -3 BITMAP 08 10 20 60 60 C0 C0 C0 C0 C0 C0 40 20 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 5 0 BBX 5 13 0 -3 BITMAP 10 10 18 18 18 18 18 18 10 30 20 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 2 5 BITMAP 30 A8 D0 F0 90 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 1 0 BITMAP 08 08 08 08 FF 10 10 10 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 0 -3 BITMAP 60 60 E0 40 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 9 0 BBX 8 1 1 3 BITMAP FF ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 4 0 BBX 3 2 1 0 BITMAP E0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 7 0 BBX 10 13 0 -3 BITMAP 00C0 0080 0100 0300 0200 0400 0C00 0800 1000 3000 2000 4000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 1E 33 63 63 C3 C3 C3 C6 CC 78 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP 3C 0C 18 18 18 18 18 30 30 FC ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 1E 27 23 03 0E 18 20 40 FE FC ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 3E 23 23 06 38 06 06 86 8E F8 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 03 07 0A 16 26 46 FF 0C 0C 1E ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 2 0 BITMAP 3F 20 20 78 0C 06 06 86 8C F8 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 2 0 BITMAP 0F 31 61 60 FE E6 C3 C6 46 38 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 2 0 BITMAP 7F 7F 02 04 08 10 30 60 C0 C0 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 1E 33 33 32 1C 6E C3 C3 E6 7C ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 1E 33 63 63 67 3B 07 86 8C F8 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 4 0 BBX 4 7 1 0 BITMAP 30 70 00 00 00 E0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 0 -3 BITMAP 30 30 00 00 00 60 60 E0 40 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 1 0 BITMAP 0080 0300 1C00 E000 6000 1800 0600 0300 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 9 0 BBX 9 4 1 2 BITMAP FF80 0000 0000 FF80 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 0 0 BITMAP 6000 3000 0C00 0300 0380 1C00 6000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 2 0 BITMAP 78 CC 8C 08 10 20 60 00 C0 C0 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 1 0 BITMAP 0F80 3060 4620 49A0 9120 9320 9720 9DC0 4200 3C00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 0 0 BITMAP 0100 0300 0580 0580 0980 1180 1FC0 20C0 40C0 E1E0 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 1 0 BITMAP 3F80 1980 1180 3300 3E00 3200 3300 2300 6700 FE00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 1 0 BITMAP 0FC0 38C0 60C0 6000 E000 C000 C000 E000 6100 3E00 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 1 0 BITMAP 3F80 18C0 1860 3060 3060 3060 30C0 30C0 6380 FE00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 1 0 BITMAP 3F80 1880 1800 3200 3E00 3200 3000 6000 6100 FE00 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 8 0 BBX 9 10 1 0 BITMAP 3F80 1880 1000 3200 3E00 3200 3000 2000 6000 F000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 0 BITMAP 0FC0 38C0 7040 6000 E000 C7C0 C180 C380 6300 3F00 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 12 0 BBX 13 10 0 0 BITMAP 3EF8 1870 1860 1860 3FE0 3060 30C0 30C0 70C0 FBE0 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 5 0 BBX 6 10 1 0 BITMAP 3C 18 38 30 30 30 30 60 60 F0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 7 0 BBX 9 13 0 -3 BITMAP 0F80 0700 0600 0600 0600 0600 0E00 0C00 0C00 0C00 DC00 9800 F000 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 10 0 BBX 11 10 0 0 BITMAP 3CE0 18C0 1900 3A00 3C00 3E00 3700 3300 6180 F3C0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 3C 18 18 30 30 30 30 31 61 FF ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 13 0 BBX 14 10 0 0 BITMAP 381C 1838 1C70 2CB0 2CB0 2F30 2630 2660 4060 E0F0 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 11 0 BBX 12 10 1 0 BITMAP 3870 1820 1C60 2C40 2640 2640 2340 2380 4180 E080 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 2 0 BITMAP 0F80 38C0 70C0 60E0 E0E0 C0C0 C0C0 C180 6300 3C00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 1 0 BITMAP 3F00 1980 1180 3180 3300 3E00 3000 6000 6000 F000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 2 -3 BITMAP 0F80 38C0 70C0 60E0 E0E0 C0C0 C0C0 C1C0 6380 3F00 0400 0300 00F0 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 0 BITMAP 3FC0 18C0 18C0 1980 3F00 3600 3300 3300 7180 F1C0 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 0 BITMAP 1F 31 71 30 38 1E 06 86 8E F8 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 2 0 BITMAP FFC0 8C40 0C00 1C00 1800 1800 1800 1800 3800 7C00 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 2 0 BITMAP F9C0 6080 6080 6080 E100 C100 C100 C100 E200 7C00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 10 0 BBX 11 10 2 0 BITMAP F0E0 6040 6080 7180 3100 3200 3600 3C00 1800 1800 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 13 0 BBX 13 10 2 0 BITMAP F238 6310 6720 6720 6B40 6B40 7380 7380 6300 6300 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 9 0 BBX 11 10 0 0 BITMAP 3CE0 1840 0C80 0D00 0E00 0E00 1700 2300 4380 E780 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 9 0 BBX 10 10 2 0 BITMAP F1C0 6080 7100 3200 3C00 1800 1800 3000 3000 7800 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 1 0 BITMAP 3FC0 2180 0300 0700 0E00 1C00 3800 3000 6180 FF00 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 5 0 BBX 6 13 0 -3 BITMAP 1C 30 30 30 30 20 60 60 60 40 40 C0 E0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 7 0 BBX 4 13 2 -3 BITMAP 80 80 40 40 40 40 60 20 20 20 20 10 10 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 5 0 BBX 6 13 0 -3 BITMAP 1C 0C 08 18 18 18 18 10 30 30 30 30 E0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 1 2 BITMAP 04 04 0C 12 32 22 43 81 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 0 -2 BITMAP FC ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 2 6 BITMAP 60 40 E0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 1 0 BITMAP 1F 23 62 C6 CE D6 E7 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 70 30 30 67 7B 73 63 46 C4 F8 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 1E 22 62 C0 C0 C4 78 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 1 0 BITMAP 0380 0180 0300 1F00 2300 6300 C700 CE00 DE00 F700 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 1C 66 4C F8 C0 C6 7C ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 6 0 BBX 8 14 1 -3 BITMAP 0F 19 19 30 7C 30 30 70 60 60 60 60 C0 C0 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 -3 BITMAP 0F80 3180 2300 6300 E700 6B00 7700 8600 C600 F800 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 70 30 30 67 6B 73 67 66 C6 C7 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 1 0 BITMAP 30 30 00 E0 60 60 60 E0 C0 E0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 5 0 BBX 8 13 0 -3 BITMAP 03 03 00 0E 06 06 0E 0C 0C 0C 98 98 F0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 70 30 30 73 66 6C 78 6C CE C7 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 1 0 BITMAP 70 30 70 60 60 60 60 E0 C0 E0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 14 0 BBX 12 7 1 0 BITMAP E670 6FF0 77B0 6730 4660 C660 CE70 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 1 0 BITMAP F7 6B 73 67 66 C6 C7 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 1 0 BITMAP 1E 23 63 C3 C6 CC 78 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 1 -3 BITMAP 7780 3D80 3980 7180 6300 6200 7C00 6000 C000 C000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 -3 BITMAP 1F 23 63 C6 CE DE E6 0E 0C 0C ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP E6 6C 70 60 60 C0 C0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 3E 64 70 38 9C 8C F8 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 5 0 BBX 5 9 1 0 BITMAP 70 60 F8 60 60 60 C0 C0 70 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 1 0 BITMAP E7 63 66 E6 CE D6 EF ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 1 0 BITMAP E3 63 62 34 38 30 20 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 12 0 BBX 11 7 1 0 BITMAP E460 6660 6640 2E80 3380 3300 2200 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 66 36 3C 18 38 CC CE ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 8 0 BBX 10 10 0 -3 BITMAP 79C0 38C0 1880 1900 1A00 0C00 0C00 0800 1000 E000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 1 0 BITMAP 3F 46 0C 18 30 62 FE ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 5 0 BBX 5 13 1 -3 BITMAP 38 30 30 30 30 60 C0 40 60 60 C0 C0 60 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 4 0 BBX 4 13 1 -3 BITMAP 10 10 20 20 20 20 60 40 40 40 40 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 5 0 BBX 5 13 0 -3 BITMAP 30 18 18 30 30 10 18 30 60 60 60 60 E0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 9 0 BBX 8 3 1 2 BITMAP 71 99 8E ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 0 -3 BITMAP 30 30 00 20 20 40 40 40 40 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 2 0 BITMAP 04 1E 3A 6A C8 C8 D0 D0 7C 20 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 2 0 BITMAP 0F 19 18 30 7C 30 30 60 FC FC ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 9 0 BBX 10 10 1 0 BITMAP 6040 2080 1F00 1100 2100 2100 3300 3E00 4100 8080 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 9 0 BBX 10 10 2 0 BITMAP F1C0 6180 3200 1C00 7E00 1800 7E00 3000 3000 7800 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 4 0 BBX 4 13 1 -3 BITMAP 10 10 20 20 20 20 00 40 40 40 40 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 -3 BITMAP 1F 31 31 30 3C 6E 62 72 3C 0E 86 8C F8 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 8 0 BBX 5 1 4 9 BITMAP D8 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 12 0 BBX 12 10 1 0 BITMAP 1F00 20C0 4FA0 98A0 9020 9030 9020 4F20 20C0 1F00 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 2 4 BITMAP 3C 6C CC D8 E8 DC ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 12 34 6C D8 48 6C 24 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 9 0 BBX 8 4 1 2 BITMAP FF 01 01 02 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 4 0 BBX 3 1 1 4 BITMAP E0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 2 3 BITMAP 38 44 BA AA BA 44 38 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 8 0 BBX 4 1 4 9 BITMAP F0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 4 0 BBX 2 2 3 8 BITMAP C0 C0 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 0 0 BITMAP 0400 0400 0400 7F80 0800 0800 0000 FF00 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 -8 4 BITMAP 78 48 18 30 40 F0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 -8 4 BITMAP 70 58 70 10 90 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 8 0 BBX 4 2 5 8 BITMAP 70 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 -3 BITMAP 7380 3180 3300 6300 6700 6B00 7780 4000 C000 C000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 2 -3 BITMAP 7C F4 E4 E8 68 28 28 28 48 48 48 50 50 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 9 0 BBX 2 2 4 3 BITMAP C0 C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 8 0 BBX 3 3 2 -3 BITMAP 60 20 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 -8 4 BITMAP 60 20 20 40 40 E0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 2 4 BITMAP 3C 6C CC CC C8 70 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 48 6C 24 36 6C 58 90 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 2 0 BITMAP 6060 20C0 2180 4300 46C0 EDC0 1A80 37C0 6080 C1C0 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 2 0 BITMAP 6060 20C0 2180 4300 47C0 EE40 18C0 3180 6200 C780 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 11 0 BBX 12 10 3 0 BITMAP 7030 5860 70C0 1180 9360 E6E0 0D40 1BE0 3040 60E0 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 0 -3 BITMAP 0C 0C 00 18 10 20 40 C4 C4 78 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 0300 0080 0000 0100 0300 0580 0580 0980 1180 1FC0 20C0 40C0 E1E0 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 01C0 0300 0000 0100 0300 0580 0580 0980 1180 1FC0 20C0 40C0 E1E0 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 0180 0640 0000 0100 0300 0580 0580 0980 1180 1FC0 20C0 40C0 E1E0 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 0340 0580 0000 0100 0300 0580 0580 0980 1180 1FC0 20C0 40C0 E1E0 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 11 0 BBX 11 12 0 0 BITMAP 06C0 0000 0100 0300 0580 0580 0980 1180 1FC0 20C0 40C0 E1E0 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 0180 0180 0000 0100 0300 0580 0580 0980 1180 1FC0 20C0 40C0 E1E0 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 13 0 BBX 15 10 0 0 BITMAP 00FE 01C2 02C0 04C8 04F8 0980 1F80 2180 418C E7F8 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 1 -3 BITMAP 0FC0 38C0 60C0 6000 E000 C000 C000 E000 6100 3E00 1000 0800 3800 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 9 0 BBX 9 13 1 0 BITMAP 0C00 0200 0000 3F80 1880 1800 3200 3E00 3200 3000 6000 6100 FE00 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 9 0 BBX 9 13 1 0 BITMAP 0380 0600 0000 3F80 1880 1800 3200 3E00 3200 3000 6000 6100 FE00 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 9 0 BBX 9 13 1 0 BITMAP 0600 1900 0000 3F80 1880 1800 3200 3E00 3200 3000 6000 6100 FE00 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 1 0 BITMAP 0D80 0000 3F80 1880 1800 3200 3E00 3200 3000 6000 6100 FE00 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 5 0 BBX 6 13 1 0 BITMAP 30 08 00 3C 18 38 30 30 30 30 60 60 F0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 5 0 BBX 7 13 1 0 BITMAP 0E 18 00 3C 18 38 30 30 30 30 60 60 F0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 5 0 BBX 7 13 1 0 BITMAP 0C 32 00 3C 18 38 30 30 30 30 60 60 F0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 5 0 BBX 7 12 1 0 BITMAP 36 00 3C 18 38 30 30 30 30 60 60 F0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 1 0 BITMAP 3F80 18C0 3860 3060 7C60 3060 30C0 70C0 6380 FE00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 11 0 BBX 12 13 1 0 BITMAP 0340 0580 0000 3870 1820 1C60 2C40 2640 2640 2340 2380 4180 E080 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 2 0 BITMAP 0600 0100 0000 0F80 38C0 70C0 60E0 E0E0 C0C0 C0C0 C180 6300 3C00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 2 0 BITMAP 0380 0600 0000 0F80 38C0 70C0 60E0 E0E0 C0C0 C0C0 C180 6300 3C00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 2 0 BITMAP 0300 0C80 0000 0F80 38C0 70C0 60E0 E0E0 C0C0 C0C0 C180 6300 3C00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 2 0 BITMAP 0680 0B00 0000 0F80 38C0 70C0 60E0 E0E0 C0C0 C0C0 C180 6300 3C00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 12 0 BBX 11 12 2 0 BITMAP 0D80 0000 0F80 38C0 70C0 60E0 E0E0 C0C0 C0C0 C180 6300 3C00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 1 0 BITMAP 6080 2100 1200 1C00 1C00 2400 4200 8300 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 12 0 BBX 13 10 1 0 BITMAP 07D8 1860 3060 31E0 6370 6460 6860 70C0 7180 DE00 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 2 0 BITMAP 0C00 0200 0000 F9C0 6080 6080 6080 E100 C100 C100 C100 E200 7C00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 2 0 BITMAP 0700 0C00 0000 F9C0 6080 6080 6080 E100 C100 C100 C100 E200 7C00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 2 0 BITMAP 0600 1900 0000 F9C0 6080 6080 6080 E100 C100 C100 C100 E200 7C00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 2 0 BITMAP 1B00 0000 F9C0 6080 6080 6080 E100 C100 C100 C100 E200 7C00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 9 0 BBX 10 13 2 0 BITMAP 0700 0C00 0000 F1C0 6080 7100 3200 3C00 1800 1800 3000 3000 7800 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 1 0 BITMAP 3C00 1800 1F00 3180 3180 3180 3300 3E00 6000 F000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 9 0 BBX 8 14 1 -3 BITMAP 1E 13 32 34 34 3C 66 67 63 6B 7E C0 C0 C0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 0C 02 00 1F 23 62 C6 CE D6 E7 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 07 0C 00 1F 23 62 C6 CE D6 E7 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 06 19 00 1F 23 62 C6 CE D6 E7 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 0D 16 00 1F 23 62 C6 CE D6 E7 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 1B 00 1F 23 62 C6 CE D6 E7 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 06 06 00 1F 23 62 C6 CE D6 E7 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 13 0 BBX 12 7 1 0 BITMAP 1FF0 2330 6330 C7C0 CE00 D310 E3E0 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 1 -3 BITMAP 1E 22 62 C0 C0 C4 78 20 10 70 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 18 04 00 1C 66 4C F8 C0 C6 7C ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 0E 18 00 1C 66 4C F8 C0 C6 7C ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 0C 32 00 1C 66 4C F8 C0 C6 7C ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 36 00 1C 66 4C F8 C0 C6 7C ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 4 0 BBX 5 10 1 0 BITMAP 30 08 00 F0 70 60 60 60 E0 F0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 4 0 BBX 6 10 1 0 BITMAP 1C 30 00 F0 70 60 60 60 E0 F0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 4 0 BBX 6 10 1 0 BITMAP 18 64 00 F0 70 60 60 60 E0 F0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 4 0 BBX 6 9 1 0 BITMAP 6C 00 F0 70 60 60 60 E0 F0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 02 3C 0E 16 1F 27 63 C2 C6 E4 78 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 0D 16 00 F7 6B 73 67 66 C6 C7 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 0 BITMAP 18 04 00 1E 23 63 C3 C6 CC 78 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 0 BITMAP 07 0C 00 1E 23 63 C3 C6 CC 78 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 0 BITMAP 06 19 00 1E 23 63 C3 C6 CC 78 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 0 BITMAP 0D 16 00 1E 23 63 C3 C6 CC 78 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 1 0 BITMAP 1B 00 1E 23 63 C3 C6 CC 78 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 1 0 BITMAP 08 00 00 FF 00 00 10 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 8 0 BBX 9 7 1 0 BITMAP 0E80 3300 6700 6B00 7300 6600 F800 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 0C 02 00 E7 63 66 E6 CE D6 EF ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 07 0C 00 E7 63 66 E6 CE D6 EF ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 06 19 00 E7 63 66 E6 CE D6 EF ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 1B 00 E7 63 66 E6 CE D6 EF ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 8 0 BBX 10 13 0 -3 BITMAP 0380 0600 0000 79C0 38C0 1880 1900 1A00 0C00 0C00 0800 1000 E000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 9 0 BBX 9 13 1 -3 BITMAP 7800 3000 3000 3780 3D80 7980 7180 6300 6200 7C00 E000 C000 C000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 8 0 BBX 10 12 0 -3 BITMAP 0D80 0000 79C0 38C0 1880 1900 1A00 0C00 0C00 0800 1000 E000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 14 1 -3 BITMAP 0F80 1980 3180 3300 7F00 3300 2300 6300 6600 6600 6700 4000 C000 C000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 1 4 BITMAP FC ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 2 -3 BITMAP 18 18 18 18 FE 10 30 30 30 30 60 60 60 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 1 0 BITMAP 0980 0600 0000 3FC0 2180 0300 0700 0E00 1C00 3800 3000 6180 FF00 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 12 7 1 0 BITMAP 1EF0 6330 6330 C3C0 C600 C710 7BE0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 10 12 2 0 BITMAP 1B00 0000 F1C0 6080 7100 3200 3C00 1800 1800 3000 3000 7800 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 7 1 0 BITMAP F0 70 60 60 60 E0 F0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 5 10 1 0 BITMAP 70 30 30 30 38 E0 60 60 60 F0 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 3C 18 18 30 7C B0 30 31 61 FF ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 -3 BITMAP 0C 0C 0C 0C 7F 18 18 18 FE 10 30 30 30 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 14 1 -3 BITMAP 0E00 1380 3780 3000 7F00 3300 2300 6300 6300 6600 6700 4000 C000 C000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 7 1 0 BITMAP 40 60 20 30 60 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 15 10 1 0 BITMAP 0FFE 38C2 60C0 60CC E1F8 C188 C180 C180 638C 3FF8 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 13 1 1 3 BITMAP FFF8 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 2 4 8 BITMAP 98 60 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 3 2 2 -3 BITMAP 40 E0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 2 5 8 BITMAP 78 A0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 7 1 0 BITMAP 10 20 60 C0 40 60 20 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 2 2 5 8 BITMAP C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 2 4 8 BITMAP 88 70 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 5 5 3 1 BITMAP 70 F8 F8 F8 70 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 2 4 8 BITMAP 68 B0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 2 4 8 BITMAP 30 C8 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 4 2 6 BITMAP 6C 48 DC D8 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 2 6 BITMAP C0 C0 C0 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 8 10 1 0 BITMAP 13 0C 00 3E 64 70 38 9C 8C F8 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 2 2 5 9 BITMAP C0 C0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 0 -3 BITMAP 60 60 E0 40 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 3 -3 BITMAP 0E 12 32 30 20 F8 60 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 14 5 2 5 BITMAP FD9C B5D8 21F8 2150 7318 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 11 10 -3 0 BITMAP 0060 00C0 0180 0300 0600 0C00 1800 3000 6000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 3 2 4 8 BITMAP C0 20 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 15 10 1 0 BITMAP 7840 4880 C900 DA00 7400 0BDC 1A52 3672 66F6 C39C ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 11 1 2 0 BITMAP C460 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 4 2 6 BITMAP EC 6C 48 D8 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 13 1 0 BITMAP 13 0C 00 1F 31 71 30 38 1E 06 86 8E F8 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 5 0 -3 BITMAP 6C 6C EC 48 D8 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 0 BITMAP 13 0C 00 3F 46 0C 18 30 62 FE ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lubBI12.bdf100644 1750 1750 74730 5413747531 15164 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-DemiBold-I-Normal--17-120-100-100-P-101-ISO8859-1 SIZE 12 100 100 FONTBOUNDINGBOX 31 21 -11 -4 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "DemiBold" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 17 POINT_SIZE 120 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 101 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 15 FONT_DESCENT 4 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 4 0 BBX 5 13 1 0 BITMAP 38 38 38 30 30 30 20 60 60 00 00 E0 E0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 8 0 BBX 6 5 3 8 BITMAP CC CC CC 4C 48 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 1 0 BITMAP 0220 0240 0440 0480 7FE0 0900 1100 1200 FFC0 2400 4400 4800 C800 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 11 0 BBX 9 15 2 -2 BITMAP 1F80 3580 3580 3400 3400 1800 0C00 0E00 0F00 0B00 D700 D600 FC00 1000 1000 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 2 0 BITMAP 3830 6C60 CCC0 CD80 D900 7200 06E0 0D20 0B20 1320 3360 6360 C1C0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 1 0 BITMAP 0780 0DC0 1CC0 1D80 0D80 0E00 3EF0 6660 C760 C340 E380 6180 3FE0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 2 7 BITMAP 70 70 70 20 60 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 6 0 BBX 6 16 1 -3 BITMAP 04 08 18 30 70 60 60 E0 C0 C0 C0 C0 C0 40 60 20 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 6 0 BBX 6 16 0 -3 BITMAP 10 18 08 0C 0C 0C 0C 0C 0C 1C 18 18 30 20 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 8 0 BBX 7 6 2 7 BITMAP 18 52 EE 38 E8 4C ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 11 0 BBX 10 11 1 0 BITMAP 0600 0400 0400 0400 0400 FFC0 0800 0800 0800 0800 1800 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 0 -3 BITMAP 70 70 70 20 60 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 11 0 BBX 10 1 1 5 BITMAP FFC0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 4 0 BBX 3 3 1 0 BITMAP E0 E0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 9 0 BBX 12 16 0 -3 BITMAP 0030 0020 0040 00C0 0080 0100 0300 0200 0400 0C00 0800 1000 3000 2000 4000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 2 0 BITMAP 0F00 1980 31C0 71C0 61C0 E1C0 E1C0 E1C0 E180 E380 E300 6600 3C00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 11 0 BBX 7 13 2 0 BITMAP 3E 0E 0E 0C 0C 1C 1C 1C 18 18 18 38 FE ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 1F00 31C0 21C0 01C0 01C0 0380 0600 0C00 1000 2000 6000 FF00 FF00 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 2 0 BITMAP 1F00 1380 2180 0180 0180 0600 3E00 0700 0380 0380 C300 C700 FC00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 01C0 03C0 0780 0D80 1980 3180 6380 C300 FFC0 0300 0300 0700 0F80 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 2 0 BITMAP 1FC0 3FC0 2000 2000 2000 3C00 0700 0300 0300 0380 C300 C600 F800 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 2 0 BITMAP 07C0 18C0 30C0 7000 6000 EF00 F380 E180 C180 C180 E300 6700 3C00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 3 0 BITMAP 7F80 7F80 0100 0200 0600 0C00 0800 1800 3000 6000 6000 E000 E000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0F80 19C0 30C0 30C0 3980 1F00 3F00 6780 E180 E180 E180 E300 3C00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0F00 3980 31C0 60C0 60C0 61C0 73C0 3DC0 0180 0380 C300 C600 F800 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 1 0 BITMAP 30 70 00 00 00 00 00 E0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 4 0 BBX 5 12 0 -3 BITMAP 38 38 00 00 00 00 00 70 60 60 60 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 11 0 BBX 11 11 1 0 BITMAP 0020 00E0 0380 0E00 3800 E000 3000 1C00 0700 0180 0080 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 11 0 BBX 11 5 1 2 BITMAP 7FE0 0000 0000 0000 FFC0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 11 0 BBX 11 11 0 0 BITMAP 2000 3000 1C00 0700 0180 00E0 0380 0E00 3800 E000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 3 0 BITMAP 7C CE 8E 06 0C 08 10 20 60 00 00 E0 C0 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 2 0 BITMAP 07C0 1830 2010 4708 48C8 9888 9188 9388 9390 9DE0 4000 6100 1E00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 0 0 BITMAP 00C0 01C0 01C0 02C0 02C0 04E0 08E0 0860 1FE0 1070 2070 4070 F0F8 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 1 0 BITMAP 3FC0 1CE0 1CE0 18E0 18C0 1980 1F00 39C0 30C0 30C0 30C0 71C0 FF00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 2 0 BITMAP 07F0 1C30 3830 3030 6000 6000 E000 E000 E000 E000 6000 70C0 1F80 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 14 0 BBX 14 13 1 0 BITMAP 3FF0 1C38 1C1C 1C1C 1C1C 181C 181C 381C 3818 3838 3070 70E0 FF80 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 1 0 BITMAP 3FE0 1C60 1C00 1C00 1800 1880 3F80 3880 3800 3000 3000 7080 FF80 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 10 0 BBX 11 13 1 0 BITMAP 3FE0 1C60 1C00 1800 1800 1880 3F80 3880 3800 3000 3000 7000 F800 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 2 0 BITMAP 07F0 1C30 3830 3000 7000 6000 E000 E1F0 E0E0 E0C0 60C0 71C0 1F80 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 14 0 BBX 15 13 1 0 BITMAP 3F3E 1C1C 1C18 1C18 1838 1838 1FF0 3830 3830 3070 3070 7070 F9F8 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 6 0 BBX 8 13 0 0 BITMAP 3F 0E 0C 1C 1C 1C 18 18 38 38 38 70 FC ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 8 0 BBX 10 16 0 -3 BITMAP 07C0 0380 0300 0300 0700 0700 0700 0600 0600 0600 0E00 0E00 0E00 CC00 D800 F000 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 1 0 BITMAP 3E38 1C30 1C40 1880 1900 1A00 1F00 3F00 3B80 31C0 31C0 70E0 F9F0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 1 0 BITMAP 3F00 1C00 1C00 1C00 1C00 1800 1800 3800 3800 3800 3040 70C0 FF80 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 16 0 BBX 17 13 1 0 BITMAP 3C0780 1C0F00 1E0E00 161600 161600 162E00 174C00 334C00 238C00 230C00 211C00 601C00 F03E00 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 14 0 BBX 15 13 0 0 BITMAP 3C1E 1C0C 1E08 1608 1708 1318 1390 3190 21D0 20D0 20F0 6060 F060 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 2 0 BITMAP 07C0 0C70 3830 3038 7038 6038 E038 E030 E070 E060 E0C0 7180 3E00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 1 0 BITMAP 3FC0 1CE0 18E0 18E0 18E0 18C0 3980 3F00 3000 3000 3000 7000 F800 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 14 0 BBX 14 16 2 -3 BITMAP 07C0 0C70 3830 3038 7038 6038 E038 E038 E070 E070 E0E0 71C0 3F80 0200 01C0 007C ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 0 0 BITMAP 3FE0 0C70 1C70 1C70 1C60 18E0 1F80 3B80 3980 39C0 30C0 70E0 F870 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 1 0 BITMAP 0FC0 18C0 30C0 3000 3800 3C00 1E00 0700 0380 0380 C380 C700 FC00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 2 0 BITMAP FFF0 C630 8630 0E00 0E00 0C00 0C00 0C00 1C00 1C00 1C00 1800 7E00 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 3 0 BITMAP FC78 7020 7020 7020 6040 6040 E040 E040 E040 E080 E080 6100 3E00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 2 0 BITMAP F838 7010 7020 7060 3040 3880 3880 3900 1B00 1A00 1C00 1C00 1800 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 16 0 BBX 16 13 2 0 BITMAP F087 6182 6184 6384 6388 75C8 75D0 75D0 78E0 78E0 30C0 30C0 2080 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 11 0 BBX 13 13 0 0 BITMAP 1E38 1C30 0E20 0E40 0680 0700 0300 0780 0B80 1180 21C0 60C0 E3E0 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 11 0 BBX 12 13 2 0 BITMAP F870 7060 7040 3880 3900 1A00 1E00 1C00 1C00 1800 1800 3800 7E00 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 1 0 BITMAP 1FF0 10E0 10E0 01C0 0380 0700 0E00 0E00 1C00 3800 7040 70C0 FFC0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 6 0 BBX 7 16 1 -3 BITMAP 1E 18 18 38 30 30 30 30 70 60 60 60 60 E0 C0 F0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 9 0 BBX 5 16 3 -3 BITMAP 80 80 40 40 40 40 20 20 20 20 10 10 10 10 08 08 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 6 0 BBX 7 16 0 -3 BITMAP 1E 06 0E 0C 0C 0C 0C 1C 18 18 18 18 38 30 30 F0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 11 0 BBX 10 11 1 2 BITMAP 0200 0200 0700 0500 0900 0900 1180 3080 2080 40C0 C0C0 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 8 0 BBX 7 1 1 -2 BITMAP FE ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 2 7 BITMAP 30 60 40 E0 E0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 1 0 BITMAP 0FC0 11C0 3180 6180 E380 E780 EF80 FB80 63C0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 7800 3800 3800 3000 3380 35C0 79C0 71C0 7180 6180 6300 E200 FC00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 1 0 BITMAP 0F80 3100 6100 6000 E000 E000 E000 E100 7E00 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 1 0 BITMAP 01E0 00E0 00C0 00C0 0FC0 11C0 31C0 6180 6380 E380 E780 EB80 73C0 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 0E 33 63 63 E6 FC E0 E1 7E ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 7 0 BBX 9 16 1 -3 BITMAP 0780 0C80 1880 1800 7E00 3800 3000 3000 3000 7000 7000 6000 6000 6000 E000 C000 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 1 -3 BITMAP 07C0 19C0 31C0 7180 6380 6380 6780 6B80 7300 8300 C600 FC00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 7800 3800 3800 3800 3180 37C0 79C0 79C0 7180 6180 6380 E380 E3C0 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 5 0 BBX 5 13 2 0 BITMAP 38 38 00 00 F0 70 70 70 60 60 E0 E0 F0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 6 0 BBX 9 17 0 -4 BITMAP 0180 0380 0000 0000 0F00 0700 0700 0700 0600 0600 0600 0E00 0E00 0C00 CC00 D800 F000 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 2 0 BITMAP 7800 3800 3000 3000 3380 7380 7700 6E00 7C00 6C00 EE00 E700 C380 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 5 0 BBX 5 13 1 0 BITMAP 78 38 38 30 30 70 70 70 60 60 E0 E0 F0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 16 0 BBX 15 9 2 0 BITMAP F39C 77BE 79AE 71CE 73CC 638C 630C E31C C31E ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 1 0 BITMAP F380 35C0 79C0 79C0 7180 6180 6380 E380 E3C0 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 0F00 3180 7180 6180 E180 E380 E300 E600 7C00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 11 0 BBX 11 12 1 -3 BITMAP 79C0 3AE0 3CE0 38E0 38E0 70C0 7180 7100 7E00 6000 E000 E000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 1 -3 BITMAP 0FC0 11C0 3180 6180 E380 E380 E780 EB00 7300 0300 0700 0700 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 8 0 BBX 9 9 1 0 BITMAP F180 3700 7C00 7800 7000 6000 6000 E000 E000 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 1 0 BITMAP 1F 31 33 38 1C 0E 86 CE FC ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 6 0 BBX 6 12 2 0 BITMAP 30 30 30 FC 70 60 60 60 E0 E0 E0 70 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 2 0 BITMAP F3C0 71C0 7180 6180 6380 E780 E780 FB00 E3C0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 1 0 BITMAP F1C0 70C0 7080 3180 3B00 3A00 3C00 1800 1000 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 14 0 BBX 14 9 1 0 BITMAP E11C 710C 3388 3390 35B0 3DA0 39C0 31C0 3080 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 1 0 BITMAP 7180 3980 1900 1E00 0C00 3E00 6600 C700 C780 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 10 0 BBX 12 12 0 -3 BITMAP 3870 1C30 1C20 0C60 0CC0 0F80 0F00 0600 0400 0800 1000 F000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 1 0 BITMAP 3FC0 2180 2300 0600 0C00 1800 3880 7180 FF80 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 6 0 BBX 6 16 2 -3 BITMAP 1C 38 38 30 30 30 30 20 C0 60 60 60 E0 C0 C0 60 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 4 0 BBX 4 16 1 -3 BITMAP 10 30 30 20 20 20 20 60 60 40 40 40 40 C0 C0 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 6 0 BBX 6 16 1 -3 BITMAP 18 0C 0C 1C 18 18 18 0C 10 30 30 30 30 70 70 E0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 11 0 BBX 10 4 1 3 BITMAP 7040 9840 8440 8380 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 4 0 BBX 5 12 0 -3 BITMAP 38 38 00 30 30 30 60 60 60 E0 E0 E0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 2 0 BITMAP 0600 0400 1F80 3580 7500 6400 E400 E800 E800 E900 7E00 1000 1000 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 2 0 BITMAP 07C0 0EC0 0CC0 1C00 1C00 1800 7E00 1800 3800 3000 2000 FF00 FF00 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 11 0 BBX 12 13 1 0 BITMAP 2010 1010 1F20 08C0 10C0 1040 3040 10C0 1080 1900 2F80 4040 8040 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 11 0 BBX 12 13 2 0 BITMAP F870 7060 3040 3880 3900 1A00 1E00 7F00 1C00 7F00 1800 3800 7C00 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 4 0 BBX 4 16 1 -3 BITMAP 10 30 30 20 20 20 60 00 00 60 40 40 40 C0 C0 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 1 -3 BITMAP 0FC0 18C0 30C0 3000 3C00 1F00 2780 6180 7180 7900 1E00 0F00 0300 C300 C700 FC00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 10 0 BBX 5 1 5 12 BITMAP D8 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 2 0 BITMAP 0F80 3060 6030 47D0 8C48 9808 9008 9008 9808 4F90 6030 3060 0F80 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 2 5 BITMAP 1E 66 66 CE CE DC EC CE ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 1 0 BITMAP 0880 1980 3300 6600 CC00 6E00 6600 3200 2300 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 11 0 BBX 10 5 2 2 BITMAP FFC0 00C0 00C0 0080 0080 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 5 0 BBX 4 1 2 5 BITMAP F0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 11 0 BBX 8 9 3 4 BITMAP 3C 42 BD 95 BD A9 AD 42 3C ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 10 0 BBX 5 1 5 12 BITMAP F8 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 4 9 BITMAP C0 A0 A0 C0 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 11 0 BBX 11 11 0 0 BITMAP 0200 0200 0200 0200 7FE0 0400 0400 0400 0400 0000 FFC0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 -10 5 BITMAP 38 44 04 0C 10 60 40 F8 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 -10 5 BITMAP 38 48 08 70 18 08 98 F0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 10 0 BBX 5 2 6 11 BITMAP 38 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 1 -3 BITMAP 7BC0 31C0 31C0 3180 7180 7380 6780 6780 7BC0 E000 E000 C000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 11 0 BBX 7 16 3 -3 BITMAP 7E F2 F2 F2 F2 74 34 24 24 24 24 24 28 48 48 48 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 11 0 BBX 2 2 5 4 BITMAP C0 C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 10 0 BBX 3 3 3 -3 BITMAP 60 20 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 -11 5 BITMAP 70 30 30 20 20 20 60 F0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 2 5 BITMAP 1E 26 67 C6 C6 C6 CC 78 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 1 0 BITMAP 6200 2600 3300 3B00 1B80 3300 6600 CC00 8800 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 14 0 BBX 14 13 3 0 BITMAP 700C 3010 3030 2060 20C0 2198 6338 F650 0C90 19F8 3030 2030 C070 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 14 0 BBX 14 13 3 0 BITMAP 700C 3010 3030 2060 20C0 21F0 6388 F608 0C18 1820 30C0 2080 C1F0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 14 0 BBX 14 13 3 0 BITMAP 380C 4810 0830 7060 18C0 0998 9B38 F650 0C90 19F8 3030 2030 C070 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 8 0 BBX 7 12 1 -3 BITMAP 06 0E 00 0C 0C 18 10 60 E0 C2 E6 7C ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 13 0 BBX 13 16 0 0 BITMAP 0180 0040 0000 00C0 01C0 01C0 02C0 02C0 04E0 08E0 0860 1FE0 1070 2070 4070 F0F8 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 13 0 BBX 13 16 0 0 BITMAP 0070 0180 0000 00C0 01C0 01C0 02C0 02C0 04E0 08E0 0860 1FE0 1070 2070 4070 F0F8 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 13 0 BBX 13 16 0 0 BITMAP 00E0 0330 0000 00C0 01C0 01C0 02C0 02C0 04E0 08E0 0860 1FE0 1070 2070 4070 F0F8 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 13 0 BBX 13 16 0 0 BITMAP 01D0 02E0 0000 00C0 01C0 01C0 02C0 02C0 04E0 08E0 0860 1FE0 1070 2070 4070 F0F8 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 13 0 BBX 13 15 0 0 BITMAP 01B0 0000 00C0 01C0 01C0 02C0 02C0 04E0 08E0 0860 1FE0 1070 2070 4070 F0F8 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 0 0 BITMAP 00E0 00A0 00E0 0000 00C0 01C0 01C0 02C0 02C0 04E0 08E0 0860 1FE0 1070 2070 4070 F0F8 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 16 0 BBX 18 13 0 0 BITMAP 003FC0 0078C0 00B000 013000 017100 027F00 046100 086000 0FE000 10E000 20E000 60E100 E3FF00 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 13 0 BBX 12 16 2 -3 BITMAP 07F0 1C30 3830 3030 6000 6000 E000 E000 E000 E000 6000 70C0 1F80 1000 0800 3800 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 11 0 BBX 11 16 1 0 BITMAP 0600 0100 0000 3FE0 1C60 1C00 1C00 1800 1880 3F80 3880 3800 3000 3000 7080 FF80 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 11 0 BBX 11 16 1 0 BITMAP 01C0 0600 0000 3FE0 1C60 1C00 1C00 1800 1880 3F80 3880 3800 3000 3000 7080 FF80 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 11 0 BBX 11 16 1 0 BITMAP 0380 0CC0 0000 3FE0 1C60 1C00 1C00 1800 1880 3F80 3880 3800 3000 3000 7080 FF80 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 11 0 BBX 11 15 1 0 BITMAP 06C0 0000 3FE0 1C60 1C00 1C00 1800 1880 3F80 3880 3800 3000 3000 7080 FF80 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 6 0 BBX 8 16 0 0 BITMAP 0C 02 00 3F 0E 0C 1C 1C 1C 18 18 38 38 38 70 FC ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 6 0 BBX 9 16 0 0 BITMAP 0380 0C00 0000 3F00 0E00 0C00 1C00 1C00 1C00 1800 1800 3800 3800 3800 7000 FC00 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 6 0 BBX 8 16 0 0 BITMAP 0E 33 00 3F 0E 0C 1C 1C 1C 18 18 38 38 38 70 FC ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 6 0 BBX 8 15 0 0 BITMAP 1B 00 3F 0E 0C 1C 1C 1C 18 18 38 38 38 70 FC ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 14 0 BBX 14 13 1 0 BITMAP 3FF0 1C38 1C1C 1C1C 1C1C 181C 7F1C 381C 3818 3838 3070 70E0 FF80 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 14 0 BBX 15 16 0 0 BITMAP 01D0 02E0 0000 3C1E 1C0C 1E08 1608 1708 1318 1390 3190 21D0 20D0 20F0 6060 F060 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 14 0 BBX 13 16 2 0 BITMAP 0300 0080 0000 07C0 0C70 3830 3038 7038 6038 E038 E030 E070 E060 E0C0 7180 3E00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 14 0 BBX 13 16 2 0 BITMAP 00E0 0300 0000 07C0 0C70 3830 3038 7038 6038 E038 E030 E070 E060 E0C0 7180 3E00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 14 0 BBX 13 16 2 0 BITMAP 01C0 0660 0000 07C0 0C70 3830 3038 7038 6038 E038 E030 E070 E060 E0C0 7180 3E00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 14 0 BBX 13 16 2 0 BITMAP 03A0 05C0 0000 07C0 0C70 3830 3038 7038 6038 E038 E030 E070 E060 E0C0 7180 3E00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 14 0 BBX 13 15 2 0 BITMAP 06C0 0000 07C0 0C70 3830 3038 7038 6038 E038 E030 E070 E060 E0C0 7180 3E00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 11 0 BBX 11 11 1 0 BITMAP 2020 3040 1080 1900 0E00 0400 0E00 1300 2100 4180 8080 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 14 0 BBX 15 13 1 0 BITMAP 03F6 063C 1C1C 183C 305C 309C 711C 7218 7418 7830 7070 38C0 CF80 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 13 0 BBX 13 16 3 0 BITMAP 0600 0100 0000 FC78 7020 7020 7020 6040 6040 E040 E040 E040 E080 E080 6100 3E00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 13 0 BBX 13 16 3 0 BITMAP 01C0 0600 0000 FC78 7020 7020 7020 6040 6040 E040 E040 E040 E080 E080 6100 3E00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 13 0 BBX 13 16 3 0 BITMAP 0380 0CC0 0000 FC78 7020 7020 7020 6040 6040 E040 E040 E040 E080 E080 6100 3E00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 13 0 BBX 13 15 3 0 BITMAP 0D80 0000 FC78 7020 7020 7020 6040 6040 E040 E040 E040 E080 E080 6100 3E00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 11 0 BBX 12 16 2 0 BITMAP 01C0 0600 0000 F870 7060 7040 3880 3900 1A00 1E00 1C00 1C00 1800 1800 3800 7E00 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 1 0 BITMAP 3F00 1C00 1C00 1FC0 18E0 18E0 18E0 38C0 39C0 3F00 3000 7000 F800 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 1 -3 BITMAP 0780 1DC0 19C0 1980 3900 3A00 3700 3380 31C0 71C0 60C0 64C0 6F80 6000 E000 C000 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 1 0 BITMAP 0600 0100 0000 0FC0 11C0 3180 6180 E380 E780 EF80 FB80 63C0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 1 0 BITMAP 01C0 0600 0000 0FC0 11C0 3180 6180 E380 E780 EF80 FB80 63C0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 1 0 BITMAP 0380 0CC0 0000 0FC0 11C0 3180 6180 E380 E780 EF80 FB80 63C0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 1 0 BITMAP 0740 0B80 0000 0FC0 11C0 3180 6180 E380 E780 EF80 FB80 63C0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 11 0 BBX 10 11 1 0 BITMAP 0D80 0000 0FC0 11C0 3180 6180 E380 E780 EF80 FB80 63C0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0380 0280 0380 0000 0FC0 11C0 3180 6180 E380 E780 EF80 FB80 63C0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 15 0 BBX 14 9 1 0 BITMAP 0FB8 11CC 318C 618C 6398 E7E0 E700 EB8C 71F8 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 1 -3 BITMAP 0F80 3100 6100 6000 E000 E000 E000 E100 7E00 2000 1000 7000 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 0 BITMAP 0C 02 00 0E 33 63 63 E6 FC E0 E1 7E ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 1 0 BITMAP 0380 0C00 0000 0E00 3300 6300 6300 E600 FC00 E000 E100 7E00 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 1 0 BITMAP 0700 1980 0000 0E00 3300 6300 6300 E600 FC00 E000 E100 7E00 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 1B 00 0E 33 63 63 E6 FC E0 E1 7E ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 5 0 BBX 5 12 2 0 BITMAP 30 08 00 F0 70 70 60 60 60 E0 E0 F0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 5 0 BBX 7 12 2 0 BITMAP 0E 30 00 F0 70 70 60 60 60 E0 E0 F0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 5 0 BBX 6 12 2 0 BITMAP 38 CC 00 F0 70 70 60 60 60 E0 E0 F0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 5 0 BBX 6 11 2 0 BITMAP 6C 00 F0 70 70 60 60 60 E0 E0 F0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 0 BITMAP 3F00 0E00 0B00 1380 0F80 3380 6180 6180 E180 E180 E300 E600 7C00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 1 0 BITMAP 0740 0B80 0000 F380 35C0 79C0 79C0 7180 6180 6380 E380 E3C0 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 0600 0100 0000 0F00 3180 7180 6180 E180 E380 E300 E600 7C00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 1 0 BITMAP 01C0 0600 0000 0F00 3180 7180 6180 E180 E380 E300 E600 7C00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 0700 1980 0000 0F00 3180 7180 6180 E180 E380 E300 E600 7C00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 0E80 1700 0000 0F00 3180 7180 6180 E180 E380 E300 E600 7C00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 10 0 BBX 9 11 1 0 BITMAP 0D80 0000 0F00 3180 7180 6180 E180 E380 E300 E600 7C00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 1 0 BITMAP 0600 0400 0000 0000 FFC0 0000 0000 1800 1800 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 10 0 BBX 11 9 1 0 BITMAP 07E0 19C0 31C0 72C0 64C0 6980 7180 7300 FC00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 2 0 BITMAP 0600 0100 0000 F3C0 71C0 7180 6180 6380 E780 E780 FB00 E3C0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 2 0 BITMAP 01C0 0600 0000 F3C0 71C0 7180 6180 6380 E780 E780 FB00 E3C0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 2 0 BITMAP 0700 1980 0000 F3C0 71C0 7180 6180 6380 E780 E780 FB00 E3C0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 11 0 BBX 10 11 2 0 BITMAP 0D80 0000 F3C0 71C0 7180 6180 6380 E780 E780 FB00 E3C0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 10 0 BBX 12 15 0 -3 BITMAP 00E0 0300 0000 3870 1C30 1C20 0C60 0CC0 0F80 0F00 0600 0400 0800 1000 F000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 11 0 BBX 11 16 1 -3 BITMAP 7C00 3800 1800 1800 39C0 3AE0 3CE0 38E0 38E0 70C0 7180 7100 7E00 6000 E000 E000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 10 0 BBX 12 14 0 -3 BITMAP 0360 0000 3870 1C30 1C20 0C60 0CC0 0F80 0F00 0600 0400 0800 1000 F000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 16 1 -3 BITMAP 07E0 0CE0 18E0 38C0 7EC0 30C0 31C0 31C0 7180 7180 6180 6380 63C0 E000 E000 C000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 1 2 5 BITMAP FE ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 16 3 -3 BITMAP 0C 0C 1C 18 18 FF 18 18 18 30 30 30 30 30 70 60 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 16 1 0 BITMAP 0660 0380 0000 1FF0 10E0 10E0 01C0 0380 0700 0E00 0E00 1C00 3800 7040 70C0 FFC0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 15 9 1 0 BITMAP 0F3C 31CC 61CE 618C E198 E1F0 E380 E786 7CF8 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 12 15 2 0 BITMAP 0D80 0000 F870 7060 7040 3880 3900 1A00 1E00 1C00 1C00 1800 1800 3800 7E00 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 9 2 0 BITMAP F0 70 70 60 60 60 E0 E0 F0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 6 13 1 0 BITMAP 38 18 18 38 30 3C 30 F0 70 70 60 60 70 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 1 0 BITMAP 3F00 1C00 1C00 1C00 1C00 1E00 7800 7800 3800 3800 3040 70C0 FFC0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 16 2 -3 BITMAP 0600 0600 0E00 0C00 0C00 7F80 0C00 0C00 1C00 1800 FF00 1800 1800 1800 3800 3000 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 16 1 -3 BITMAP 0760 09E0 1800 3800 7FC0 30C0 31C0 31C0 7180 7180 6180 6380 63C0 E000 E000 C000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 9 1 0 BITMAP 60 20 30 30 18 30 60 C0 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 18 13 2 0 BITMAP 07FFC0 0C78C0 3870C0 307000 607000 607100 E07F00 E06100 E0E000 E0E000 60E000 71E100 1FFF00 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 16 1 1 5 BITMAP FFFF ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 2 5 11 BITMAP CC 70 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 3 2 3 -3 BITMAP 40 E0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 2 6 11 BITMAP 7C B0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 9 1 0 BITMAP 08 18 30 60 C0 60 60 20 30 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 2 2 6 11 BITMAP C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 2 5 11 BITMAP 84 78 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 6 3 2 BITMAP 78 FC FC FC FC 78 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 2 5 11 BITMAP 74 B8 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 2 4 11 BITMAP 38 CC ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 6 2 7 BITMAP 26 6C 4C EC EC CC ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 3 7 BITMAP E0 C0 C0 40 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 9 12 1 0 BITMAP 1980 0E00 0000 1F00 3100 3300 3800 1C00 0E00 8600 CE00 FC00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 3 3 6 10 BITMAP E0 A0 E0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 0 -3 BITMAP 70 70 70 20 60 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 16 3 -3 BITMAP 0780 0D80 1980 3800 3800 3000 FC00 3000 7000 7000 7000 6000 6000 E000 E000 E000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 17 7 2 6 BITMAP FEE380 9A7700 107700 307A00 30FE00 30D600 798700 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 14 13 -4 0 BITMAP 000C 0010 0030 0060 00C0 0180 0300 0600 0C00 1800 3000 2000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 3 2 6 11 BITMAP C0 20 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 17 13 2 0 BITMAP 383000 6C6000 CCC000 CD8000 D90000 720000 06E700 0D2D80 0B2D80 133980 336980 636900 C1CE00 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 13 2 2 0 BITMAP C318 C618 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 6 2 7 BITMAP 66 6E 6E 64 6C C8 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 16 1 0 BITMAP 0CC0 0700 0000 0FC0 18C0 30C0 3000 3800 3C00 1E00 0700 0380 0380 C380 C700 FC00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 6 0 -3 BITMAP 66 6E 6E 64 6C C8 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 1 0 BITMAP 0CC0 0700 0000 3FC0 2180 2300 0600 0C00 1800 3880 7180 FF80 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lubBI14.bdf100644 1750 1750 102733 5413747532 15202 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-DemiBold-I-Normal--20-140-100-100-P-119-ISO8859-1 SIZE 14 100 100 FONTBOUNDINGBOX 36 23 -12 -4 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "DemiBold" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 20 POINT_SIZE 140 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 119 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 18 FONT_DESCENT 5 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 6 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 5 0 BBX 6 15 1 0 BITMAP 1C 1C 38 38 38 38 30 30 30 20 20 00 00 F0 E0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 9 0 BBX 7 6 4 9 BITMAP EE E6 C6 46 46 44 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 2 0 BITMAP 0130 0320 0220 0640 0440 7FF0 0880 0980 1900 1100 FFE0 2200 6600 4400 CC00 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 13 0 BBX 11 18 2 -2 BITMAP 0100 0FE0 1E60 3A60 3A60 3A00 1E00 1E00 0F00 0780 0780 09C0 0980 C980 CB00 FE00 0800 1000 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 15 0 BBX 15 15 2 0 BITMAP 3C06 760C 6718 E730 C660 6EC0 7980 01BC 0366 06C6 0CC6 18CE 30CC 60CC C070 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 15 0 BBX 15 15 1 0 BITMAP 03E0 0670 0E70 0E70 0E60 0EC0 0F00 373E 671C E398 E398 E1F0 E1E0 70E0 3F78 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 3 9 BITMAP 70 70 70 20 60 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 7 0 BBX 7 19 2 -4 BITMAP 02 04 0C 18 30 30 70 60 E0 E0 E0 E0 E0 E0 E0 60 60 20 10 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 7 0 BBX 7 19 0 -4 BITMAP 08 08 0C 06 06 06 06 06 0E 0E 0E 0E 0C 1C 18 30 20 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 3 8 BITMAP 0C 49 EB 66 38 EE 48 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 1 0 BITMAP 0300 0300 0200 0200 0200 0200 FFF0 0400 0400 0400 0400 0C00 0C00 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 1 -4 BITMAP 70 70 70 70 20 60 60 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 12 0 BBX 12 1 1 6 BITMAP FFF0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 5 0 BBX 4 3 1 0 BITMAP 70 F0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 10 0 BBX 14 19 0 -4 BITMAP 000C 0008 0010 0030 0020 0040 00C0 0080 0100 0300 0200 0400 0C00 0800 1000 1000 2000 6000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 2 0 BITMAP 0780 0CE0 1860 3070 7070 7070 E070 E0F0 E0E0 E0E0 E0E0 E1C0 6180 7300 3E00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 13 0 BBX 8 15 3 0 BITMAP 3F 07 07 0E 0E 0E 0E 0E 0C 1C 1C 1C 1C 3C FF ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 1 0 BITMAP 0FC0 18E0 1070 1070 0070 00E0 00C0 0180 0600 0800 1000 2000 6000 FFC0 FFC0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 13 0 BBX 11 15 2 0 BITMAP 1F80 18E0 10E0 00E0 00E0 00C0 0300 1F80 03C0 01C0 01C0 01C0 C180 C380 FE00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 13 0 BBX 11 15 2 0 BITMAP 00E0 01E0 03C0 02C0 04C0 09C0 11C0 2180 4180 FFE0 FFE0 0380 0300 0300 0FC0 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 2 0 BITMAP 1FF0 1FE0 1000 3000 2000 3E00 0700 0380 01C0 01C0 01C0 C1C0 C380 C300 FC00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 2 0 BITMAP 03F0 0C30 1820 3000 7000 7F80 F1C0 F0E0 E0E0 E0E0 E0E0 E1C0 6180 7380 1E00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 13 0 BBX 11 15 3 0 BITMAP 7FE0 7FE0 0040 0080 0100 0300 0600 0C00 1C00 1800 3000 7000 7000 E000 E000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 2 0 BITMAP 07C0 1C60 1870 3870 3860 1EC0 1F80 1FC0 33E0 61E0 E0E0 E0E0 E0C0 7180 3E00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 2 0 BITMAP 0780 1CC0 3860 3070 7070 7070 7070 70F0 39E0 1EE0 00C0 01C0 C180 C300 FC00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 5 0 BBX 5 11 1 0 BITMAP 38 38 38 00 00 00 00 00 E0 E0 E0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 5 0 BBX 6 15 0 -4 BITMAP 1C 1C 38 00 00 00 00 00 00 70 70 30 30 60 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 12 0 BBX 13 13 1 0 BITMAP 0008 0038 00E0 0380 0E00 3800 E000 3800 1C00 0700 01C0 00E0 0020 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 12 0 BBX 13 6 1 3 BITMAP 7FF8 0000 0000 0000 0000 FFF0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 12 0 BBX 13 13 0 0 BITMAP 2000 3800 1C00 0700 01C0 00E0 0038 00E0 0380 0E00 3800 E000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 10 0 BBX 9 15 3 0 BITMAP 7E00 4780 C380 0380 0300 0600 0400 1800 3000 7000 7000 0000 0000 E000 E000 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 17 0 BBX 17 15 2 0 BITMAP 01F800 060C00 180200 21C100 623100 463100 843180 8C7100 8C6100 8CE300 8DE600 873800 400000 304000 0F8000 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 15 0 BBX 15 15 0 0 BITMAP 0060 00E0 00F0 01F0 0170 0270 0270 0438 0C38 0FF8 1838 1018 201C 601C F07E ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 13 0 BBX 13 15 1 0 BITMAP 1FF0 0E38 0E38 0C38 0C38 1C70 1CE0 1F80 1CE0 1870 3870 3870 3870 38E0 FFC0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 15 0 BBX 14 15 2 0 BITMAP 03FC 0E1C 1C0C 3808 3000 7000 7000 E000 E000 E000 E000 F000 7000 3830 1FC0 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 16 0 BBX 16 15 1 0 BITMAP 1FF8 0E1E 0E0E 0E07 0C07 1C07 1C07 1C07 1C07 1C0E 380E 381C 3838 3870 FFC0 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 13 0 BBX 13 15 1 0 BITMAP 1FF8 0E18 0E18 0E00 1C00 1C00 1C60 1FC0 1C40 1800 3800 3800 3820 3860 FFE0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 12 0 BBX 13 15 1 0 BITMAP 1FF8 0E18 0E18 0E00 1C00 1C00 1C60 1FC0 1C40 1800 3800 3800 3800 3800 FC00 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 16 0 BBX 14 15 2 0 BITMAP 03FC 0E1C 1C0C 3808 3800 7000 7000 E000 E0FC E070 E070 E070 7070 3860 1FC0 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 17 0 BBX 18 15 1 0 BITMAP 1F8FC0 0E0700 0E0700 0E0700 0E0700 1C0E00 1C0E00 1FFE00 1C0E00 1C0E00 381C00 381C00 381C00 381C00 FC7E00 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 7 0 BBX 9 15 1 0 BITMAP 1F80 0E00 0E00 0E00 0E00 1C00 1C00 1C00 1C00 1C00 3800 3800 3800 3800 FC00 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 10 0 BBX 12 18 0 -3 BITMAP 03F0 01E0 01C0 01C0 01C0 0380 0380 0380 0380 0380 0380 0700 0700 0700 0700 CE00 CC00 F800 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 15 0 BBX 15 15 1 0 BITMAP 1F9E 0E08 0E10 0C20 1C40 1D80 1F00 1F80 1B80 19C0 39E0 38E0 3870 3878 FCFC ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 12 0 BBX 12 15 1 0 BITMAP 1F80 0F00 0E00 0E00 0E00 1E00 1C00 1C00 1C00 1C00 3C00 3800 3830 3830 FFE0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 19 0 BBX 20 15 1 0 BITMAP 1E01F0 0F01C0 0F03C0 0F03C0 0F05C0 1B8980 1B8B80 139380 139380 11E380 31C300 31C700 218700 200700 F81F80 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 16 0 BBX 17 15 1 0 BITMAP 1E0F80 0E0200 0F0200 0F0600 0B8600 1B8400 19C400 11C400 10EC00 10EC00 307800 307800 203800 203800 F81800 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 17 0 BBX 15 15 2 0 BITMAP 01F0 0E1C 1C0C 380E 300E 700E 700E E00E E00E E01C E01C E038 7070 70E0 1F80 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 13 0 BBX 14 15 0 0 BITMAP 1FF0 0E1C 0E1C 0E1C 0E1C 1E18 1C38 1C70 1FC0 1C00 3C00 3800 3800 3800 FE00 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 17 0 BBX 17 19 2 -4 BITMAP 01F000 0E1800 1C0C00 380E00 300E00 700E00 700E00 E00E00 E00E00 E01E00 E01C00 E03C00 707800 70F000 1FE000 018000 00C000 007000 001F80 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 14 0 BBX 14 15 1 0 BITMAP 1FF8 0E3C 0E1C 0E1C 0E1C 1E38 1C70 1FE0 1DC0 1CE0 38E0 3870 3870 3838 FC3C ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 12 0 BBX 12 15 1 0 BITMAP 07E0 1C30 1830 3820 3800 3C00 1F00 0F80 03C0 01C0 01E0 41C0 C1C0 C380 7E00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 14 0 BBX 14 15 3 0 BITMAP FFFC C38C C708 0700 0700 0700 0700 0E00 0E00 0E00 0E00 0E00 1C00 1C00 7F00 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 16 0 BBX 15 15 3 0 BITMAP FE3E 3818 7018 7018 7010 7010 7010 E010 E030 E020 E020 E020 E040 7080 3F00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 15 0 BBX 15 15 3 0 BITMAP FC1E 700C 7808 3810 3810 3820 3860 3C40 1C80 1C80 1D00 1F00 0E00 0C00 0C00 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 18 0 BBX 19 15 2 0 BITMAP F861E0 7060C0 70E080 70E180 71E100 716300 726200 726600 367400 347C00 347800 387800 387000 307000 306000 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 13 0 BBX 16 15 0 0 BITMAP 1F8F 0F04 070C 0718 03B0 03A0 03C0 01C0 03C0 06E0 0CE0 1870 1070 6078 F0FC ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 13 0 BBX 14 15 2 0 BITMAP FC3C 7818 3830 3820 3C40 1C80 1D00 0F00 0E00 0E00 1E00 1C00 1C00 1C00 7F00 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 14 0 BBX 14 15 1 0 BITMAP 1FFC 1838 1878 00F0 01E0 01C0 03C0 0780 0F00 0E00 1C00 3C00 7830 7030 FFE0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 7 0 BBX 8 19 1 -4 BITMAP 0F 1C 1C 18 18 18 38 38 30 30 30 70 70 60 60 60 E0 E0 F8 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 10 0 BBX 6 19 3 -4 BITMAP 80 40 40 40 40 20 20 20 20 30 10 10 10 10 08 08 08 08 04 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 7 0 BBX 8 19 0 -4 BITMAP 1F 07 07 06 06 06 0E 0E 0C 0C 0C 1C 1C 18 18 18 38 38 F0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 1 2 BITMAP 0080 0180 0180 0380 02C0 04C0 0C40 0840 1860 3060 2020 6030 C030 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 10 0 BBX 8 1 1 -2 BITMAP FF ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 3 9 BITMAP 30 60 40 E0 E0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 13 0 BBX 12 11 1 0 BITMAP 07F0 0870 3070 30E0 70E0 61E0 E1E0 E2E0 E5C0 F9C0 71F0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 2 0 BITMAP 7C00 1C00 1C00 3800 38E0 39F0 3A70 3C70 7870 7860 70E0 70C0 6080 F100 FE00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 10 0 BBX 10 11 2 0 BITMAP 07C0 18C0 30C0 70C0 6000 E000 E000 E000 E000 7080 3F00 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 13 0 BBX 13 15 1 0 BITMAP 00F8 0038 0070 0070 07F0 0870 1070 30E0 70E0 60E0 E1E0 E2E0 E5C0 F9C0 71F0 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 11 0 BBX 10 11 2 0 BITMAP 0780 19C0 31C0 71C0 6380 E700 FE00 E000 E000 70C0 3F00 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 8 0 BBX 11 20 1 -4 BITMAP 03E0 0660 0C60 0C00 1C00 7F80 1C00 3800 3800 3800 3800 3800 7000 7000 7000 7000 7000 E000 E000 E000 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 1 -4 BITMAP 03F0 0C70 1870 3860 30E0 70E0 71E0 72E0 77C0 7DC0 79C0 01C0 8180 E300 7C00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 13 0 BBX 11 15 2 0 BITMAP 7C00 1800 3800 3800 39C0 3BE0 36E0 74E0 78E0 71C0 71C0 61C0 E1C0 E1C0 E1E0 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 6 0 BBX 6 15 2 0 BITMAP 1C 1C 1C 00 F8 38 38 30 70 70 70 70 60 E0 F8 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 8 0 BBX 11 19 -1 -4 BITMAP 00E0 00E0 00E0 0000 07C0 01C0 01C0 0380 0380 0380 0380 0380 0700 0700 0700 0600 C600 CC00 F800 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 13 0 BBX 11 15 2 0 BITMAP 7C00 1C00 1800 3800 38E0 38E0 39C0 3380 7E00 7E00 7700 7700 6380 E3C0 E1E0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 6 0 BBX 6 15 2 0 BITMAP 7C 1C 18 38 38 38 38 30 70 70 70 70 60 E0 F8 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 19 0 BBX 18 11 2 0 BITMAP F8E380 3BE7C0 3EEDC0 34F9C0 78F1C0 70E380 70E380 61C380 61C380 E1C380 E1C7C0 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 13 0 BBX 11 11 2 0 BITMAP F9C0 3BE0 36E0 74E0 78E0 71C0 71C0 61C0 E1C0 E1C0 E1E0 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 12 0 BBX 11 11 2 0 BITMAP 0780 18C0 30E0 70E0 70E0 E0E0 E0C0 E1C0 E180 7300 3C00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 1 -4 BITMAP 7CE0 39F0 3A70 3C70 3C70 3870 30E0 70E0 70C0 7180 7E00 6000 E000 E000 E000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 1 -4 BITMAP 07F0 0870 3070 30E0 70E0 61E0 E1E0 E2E0 E5C0 F9C0 71C0 01C0 01C0 0380 0380 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 10 0 BBX 10 11 2 0 BITMAP F8C0 3B80 3B80 7400 7800 7800 7000 7000 E000 E000 E000 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 10 0 BBX 9 11 1 0 BITMAP 0F80 3880 3880 3800 3C00 1E00 0F00 0700 C700 C700 7C00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 7 0 BBX 7 14 2 0 BITMAP 18 38 38 FE 70 70 70 70 70 E0 E0 E0 E8 78 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 13 0 BBX 11 11 2 0 BITMAP F1E0 70E0 70E0 70C0 71C0 71C0 E3C0 E5C0 ED80 FB80 73E0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 12 0 BBX 12 11 1 0 BITMAP F0F0 7070 3870 3860 38C0 1C80 1D00 1E00 1E00 1C00 1800 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 16 0 BBX 16 11 2 0 BITMAP F087 7087 31C6 39C6 3BC4 3AE8 3EF8 1CF0 18E0 1860 1040 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 11 0 BBX 11 11 1 0 BITMAP 78E0 1C60 1CC0 0E80 0F00 0600 1F00 3700 6380 C380 E1E0 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 12 0 BBX 14 15 0 -4 BITMAP 3C3C 1E1C 0E1C 0E18 0E10 0720 0740 07C0 0780 0700 0600 0400 0800 3800 F000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 11 0 BBX 11 11 1 0 BITMAP 3FE0 31C0 23C0 0380 0700 0E00 1C00 3800 7840 70C0 FF80 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 7 0 BBX 7 19 2 -4 BITMAP 0E 1C 18 38 38 38 38 38 30 C0 60 30 70 70 60 E0 E0 E0 70 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 5 0 BBX 5 19 1 -4 BITMAP 18 18 18 10 10 30 30 30 20 20 20 60 60 60 40 40 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 7 0 BBX 7 19 1 -4 BITMAP 1C 0E 0E 0E 0E 1C 1C 18 0C 06 18 38 38 38 38 38 30 70 E0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 12 0 BBX 12 5 1 3 BITMAP 3810 4C10 8610 8320 81C0 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 5 0 BBX 6 15 0 -4 BITMAP 1C 3C 00 00 10 10 30 30 30 70 70 70 60 E0 E0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 13 0 BBX 10 15 3 0 BITMAP 0100 0200 0FC0 1AC0 32C0 7200 6200 E400 E400 E400 E400 F480 7F00 0800 0800 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 2 0 BITMAP 01F0 0730 0630 0E00 0E00 0E00 0C00 3F80 1C00 1C00 1C00 3800 3000 FFC0 FF80 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 13 0 BBX 14 13 1 1 BITMAP 2004 100C 0FD0 0460 0820 1830 1030 1020 1860 18C0 3FE0 4020 8010 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 13 0 BBX 14 15 2 0 BITMAP FC3C 7818 3820 3860 1CC0 1F80 0F00 7FC0 0E00 0E00 7F80 1C00 1C00 1C00 7E00 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 5 0 BBX 5 19 1 -4 BITMAP 18 18 18 10 10 30 30 30 20 00 20 60 60 60 40 40 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 13 0 BBX 12 19 1 -4 BITMAP 07F0 0C30 1830 1800 1C00 1F00 0F80 13C0 30E0 7060 3840 3EC0 1F80 07C0 01C0 01C0 C1C0 C380 FE00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 12 0 BBX 6 2 6 13 BITMAP CC CC ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 17 0 BBX 17 15 2 0 BITMAP 07E000 1C1800 300400 61FA00 471100 860100 8C0080 8C0080 8C0080 8C0100 460100 63E200 300400 1C1800 07E000 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 2 6 BITMAP 1F80 3300 6300 6700 E700 CF00 F600 F700 6780 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 2 1 BITMAP 0840 1CC0 1980 3300 6600 EE00 6700 3300 3300 1100 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 12 0 BBX 12 6 2 3 BITMAP FFF0 0030 0030 0020 0020 0020 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 6 0 BBX 5 1 2 7 BITMAP F8 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 13 0 BBX 11 10 3 5 BITMAP 1F00 6080 5F40 8940 8920 9E20 9240 5340 6080 1F00 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 12 0 BBX 6 1 6 14 BITMAP FC ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 5 0 BBX 3 4 4 11 BITMAP 60 A0 A0 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 12 0 BBX 13 13 1 0 BITMAP 0180 0100 0100 0100 0100 7FF8 0300 0200 0200 0200 0000 0000 FFF0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 -12 6 BITMAP 3C 26 66 06 0C 30 60 C0 FC ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 -12 6 BITMAP 3C 26 04 0C 38 0C 0C 8C F8 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 12 0 BBX 5 3 7 12 BITMAP 38 60 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 14 0 BBX 12 15 2 -4 BITMAP 78F0 3870 3870 3860 38E0 30E0 71E0 73E0 76C0 7DC0 79F0 6000 E000 E000 E000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 13 0 BBX 9 19 3 -4 BITMAP 3F80 7900 F900 F900 F900 F900 7100 3200 1200 1200 1200 1200 2400 2400 2400 2400 2400 4400 4800 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 12 0 BBX 3 2 6 6 BITMAP E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 12 0 BBX 4 5 3 -4 BITMAP 20 40 30 30 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 8 0 BBX 5 9 -12 6 BITMAP 38 18 18 10 30 30 30 30 F8 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 2 6 BITMAP 0F00 3380 6380 6380 E380 E300 E300 E600 7800 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 1 BITMAP 2200 3300 3300 3980 1DC0 1980 3300 6600 CE00 8400 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 16 0 BBX 16 15 4 0 BITMAP 3803 1804 1808 1018 3030 3060 30C6 318E FB14 0624 0C4C 18FE 300C 2008 C03C ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 16 0 BBX 16 15 4 0 BITMAP 3803 1804 1808 1018 3030 3060 30FC 31A6 FB66 0606 0C0C 1830 3060 20C0 C0FC ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 16 0 BBX 16 15 4 0 BITMAP 3C03 2604 0408 0C18 3830 0C60 0CC6 8D8E FB14 0624 0C4C 18FE 300C 2008 C03C ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 10 0 BBX 9 15 0 -4 BITMAP 0380 0380 0000 0000 0700 0700 0600 0C00 1000 3000 6000 E000 E180 F100 3F00 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 15 0 BBX 15 19 0 0 BITMAP 00E0 0060 0030 0000 0060 00E0 00F0 01F0 0170 0270 0270 0438 0C38 0FF8 1838 1018 201C 601C F07E ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 15 0 BBX 15 19 0 0 BITMAP 001C 0030 0060 0000 0060 00E0 00F0 01F0 0170 0270 0270 0438 0C38 0FF8 1838 1018 201C 601C F07E ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 15 0 BBX 15 19 0 0 BITMAP 0078 00F8 018C 0000 0060 00E0 00F0 01F0 0170 0270 0270 0438 0C38 0FF8 1838 1018 201C 601C F07E ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 15 0 BBX 15 19 0 0 BITMAP 00E4 01FC 0138 0000 0060 00E0 00F0 01F0 0170 0270 0270 0438 0C38 0FF8 1838 1018 201C 601C F07E ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 0 0 BITMAP 00CC 00CC 0000 0060 00E0 00F0 01F0 0170 0270 0270 0438 0C38 0FF8 1838 1018 201C 601C F07E ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 15 0 BBX 15 19 0 0 BITMAP 0070 0050 0070 0000 0060 00E0 00F0 01F0 0170 0270 0270 0438 0C38 0FF8 1838 1018 201C 601C F07E ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 19 0 BBX 21 15 0 0 BITMAP 001FF8 001E18 003C18 005C00 00DC00 009C00 011C60 021FE0 063840 043800 0FF800 103800 203860 607060 F1FFE0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 15 0 BBX 14 19 2 -4 BITMAP 03FC 0E1C 1C0C 3808 3000 7000 7000 E000 E000 E000 E000 F000 7000 3830 1FC0 1000 0C00 0C00 3800 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 13 0 BBX 13 19 1 0 BITMAP 0380 0180 00C0 0000 1FF8 0E18 0E18 0E00 1C00 1C00 1C60 1FC0 1C40 1800 3800 3800 3820 3860 FFE0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 13 0 BBX 13 19 1 0 BITMAP 0070 00C0 0180 0000 1FF8 0E18 0E18 0E00 1C00 1C00 1C60 1FC0 1C40 1800 3800 3800 3820 3860 FFE0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 13 0 BBX 13 19 1 0 BITMAP 01E0 03E0 0630 0000 1FF8 0E18 0E18 0E00 1C00 1C00 1C60 1FC0 1C40 1800 3800 3800 3820 3860 FFE0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 13 0 BBX 13 18 1 0 BITMAP 0330 0330 0000 1FF8 0E18 0E18 0E00 1C00 1C00 1C60 1FC0 1C40 1800 3800 3800 3820 3860 FFE0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 7 0 BBX 9 19 1 0 BITMAP 0E00 0600 0300 0000 1F80 0E00 0E00 0E00 0E00 1C00 1C00 1C00 1C00 1C00 3800 3800 3800 3800 FC00 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 7 0 BBX 10 19 1 0 BITMAP 01C0 0300 0600 0000 1F80 0E00 0E00 0E00 0E00 1C00 1C00 1C00 1C00 1C00 3800 3800 3800 3800 FC00 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 7 0 BBX 10 19 1 0 BITMAP 0780 0F80 18C0 0000 1F80 0E00 0E00 0E00 0E00 1C00 1C00 1C00 1C00 1C00 3800 3800 3800 3800 FC00 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 7 0 BBX 9 18 1 0 BITMAP 1980 1980 0000 1F80 0E00 0E00 0E00 0E00 1C00 1C00 1C00 1C00 1C00 3800 3800 3800 3800 FC00 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 16 0 BBX 16 15 1 0 BITMAP 1FF8 0E1E 0E0E 0E07 1E07 1C07 1C07 7F87 1C07 1C0E 380E 381C 3838 3870 FFC0 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 16 0 BBX 17 19 1 0 BITMAP 00E400 01FC00 013800 000000 1E0F80 0E0200 0F0200 0F0600 0B8600 1B8400 19C400 11C400 10EC00 10EC00 307800 307800 203800 203800 F81800 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 17 0 BBX 15 19 2 0 BITMAP 01C0 00C0 0060 0000 01F0 0E1C 1C0C 380E 300E 700E 700E E00E E00E E01C E01C E038 7070 70E0 1F80 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 17 0 BBX 15 19 2 0 BITMAP 0038 0060 00C0 0000 01F0 0E1C 1C0C 380E 300E 700E 700E E00E E00E E01C E01C E038 7070 70E0 1F80 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 17 0 BBX 15 19 2 0 BITMAP 00F0 01F0 0318 0000 01F0 0E1C 1C0C 380E 300E 700E 700E E00E E00E E01C E01C E038 7070 70E0 1F80 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 17 0 BBX 15 19 2 0 BITMAP 01C8 03F8 0270 0000 01F0 0E1C 1C0C 380E 300E 700E 700E E00E E00E E01C E01C E038 7070 70E0 1F80 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 17 0 BBX 15 18 2 0 BITMAP 0330 0330 0000 01F0 0E1C 1C0C 380E 300E 700E 700E E00E E00E E01C E01C E038 7070 70E0 1F80 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 12 0 BBX 13 13 1 0 BITMAP 2008 3018 1830 0860 0CC0 0700 0200 0700 1980 3080 60C0 C060 8020 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 17 0 BBX 18 15 1 0 BITMAP 00F8C0 030F00 0E0700 0C0F00 181F00 383700 386700 38C700 718700 730700 740E00 781C00 381800 3C7000 CFC000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 3 0 BITMAP 0380 0180 00C0 0000 FE3E 3818 7018 7018 7010 7010 7010 E010 E030 E020 E020 E020 E040 7080 3F00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 3 0 BITMAP 00E0 0180 0300 0000 FE3E 3818 7018 7018 7010 7010 7010 E010 E030 E020 E020 E020 E040 7080 3F00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 3 0 BITMAP 03C0 07C0 0C60 0000 FE3E 3818 7018 7018 7010 7010 7010 E010 E030 E020 E020 E020 E040 7080 3F00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 3 0 BITMAP 0660 0660 0000 FE3E 3818 7018 7018 7010 7010 7010 E010 E030 E020 E020 E020 E040 7080 3F00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 13 0 BBX 14 19 2 0 BITMAP 00E0 0180 0300 0000 FC3C 7818 3830 3820 3C40 1C80 1D00 0F00 0E00 0E00 1E00 1C00 1C00 1C00 7F00 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 13 0 BBX 13 15 1 0 BITMAP 1F80 0E00 0E00 0FF0 0E78 1C38 1C38 1C38 1C30 1C70 38E0 3F80 3800 3800 FC00 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 13 0 BBX 12 20 1 -4 BITMAP 03C0 0E60 0C70 1C60 1C40 1C80 1900 3B80 3BC0 39E0 38E0 3870 7030 7230 7660 77C0 7000 E000 E000 E000 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 1 0 BITMAP 0380 0180 00C0 0000 07F0 0870 3070 30E0 70E0 61E0 E1E0 E2E0 E5C0 F9C0 71F0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 1 0 BITMAP 0070 00C0 0180 0000 07F0 0870 3070 30E0 70E0 61E0 E1E0 E2E0 E5C0 F9C0 71F0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 1 0 BITMAP 03C0 07C0 0C60 0000 07F0 0870 3070 30E0 70E0 61E0 E1E0 E2E0 E5C0 F9C0 71F0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 1 0 BITMAP 0390 07F0 04E0 0000 07F0 0870 3070 30E0 70E0 61E0 E1E0 E2E0 E5C0 F9C0 71F0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 1 0 BITMAP 0660 0660 0000 07F0 0870 3070 30E0 70E0 61E0 E1E0 E2E0 E5C0 F9C0 71F0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 1 0 BITMAP 01C0 0140 01C0 0000 07F0 0870 3070 30E0 70E0 61E0 E1E0 E2E0 E5C0 F9C0 71F0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 18 0 BBX 17 11 1 0 BITMAP 07FF00 08F380 30E380 30E380 70E300 61C600 E1FC00 E2C000 E4C000 F8E180 707E00 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 10 0 BBX 10 15 2 -4 BITMAP 07C0 18C0 30C0 70C0 6000 E000 E000 E000 E000 7080 3F00 2000 1800 1800 7000 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 2 0 BITMAP 0700 0300 0180 0000 0780 19C0 31C0 71C0 6380 E700 FE00 E000 E000 70C0 3F00 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 2 0 BITMAP 01C0 0300 0600 0000 0780 19C0 31C0 71C0 6380 E700 FE00 E000 E000 70C0 3F00 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 2 0 BITMAP 0780 0F80 18C0 0000 0780 19C0 31C0 71C0 6380 E700 FE00 E000 E000 70C0 3F00 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 2 0 BITMAP 0CC0 0CC0 0000 0780 19C0 31C0 71C0 6380 E700 FE00 E000 E000 70C0 3F00 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 6 0 BBX 6 15 2 0 BITMAP 38 18 0C 00 F8 38 38 70 70 70 70 70 E0 E0 F8 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 6 0 BBX 8 15 2 0 BITMAP 07 0C 18 00 F8 38 38 70 70 70 70 70 E0 E0 F8 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 6 0 BBX 8 15 2 0 BITMAP 1E 3E 63 00 F8 38 38 70 70 70 70 70 E0 E0 F8 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 6 0 BBX 7 14 2 0 BITMAP 66 66 00 F8 38 38 70 70 70 70 70 E0 E0 F8 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 12 0 BBX 11 16 2 0 BITMAP 0040 3F80 0780 0FC0 11C0 07E0 18E0 30E0 70E0 60E0 E0E0 E0C0 E1C0 E180 7300 3C00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 13 0 BBX 11 15 2 0 BITMAP 0720 0FE0 09C0 0000 F9C0 3BE0 36E0 74E0 78E0 71C0 71C0 61C0 E1C0 E1C0 E1E0 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 2 0 BITMAP 0700 0300 0180 0000 0780 18C0 30E0 70E0 70E0 E0E0 E0C0 E1C0 E180 7300 3C00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 2 0 BITMAP 00E0 0180 0300 0000 0780 18C0 30E0 70E0 70E0 E0E0 E0C0 E1C0 E180 7300 3C00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 2 0 BITMAP 03C0 07C0 0C60 0000 0780 18C0 30E0 70E0 70E0 E0E0 E0C0 E1C0 E180 7300 3C00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 2 0 BITMAP 0720 0FE0 09C0 0000 0780 18C0 30E0 70E0 70E0 E0E0 E0C0 E1C0 E180 7300 3C00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 2 0 BITMAP 0660 0660 0000 0780 18C0 30E0 70E0 70E0 E0E0 E0C0 E1C0 E180 7300 3C00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 12 0 BBX 12 11 1 0 BITMAP 0300 0700 0000 0000 0000 FFF0 0000 0000 0000 0C00 0C00 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 12 0 BBX 13 11 1 0 BITMAP 03D8 0CF0 1870 38F0 7170 7270 7460 78E0 70C0 7180 DE00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 13 0 BBX 11 15 2 0 BITMAP 0700 0300 0180 0000 F1E0 70E0 70E0 70C0 71C0 71C0 E3C0 E5C0 ED80 FB80 73E0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 13 0 BBX 11 15 2 0 BITMAP 00E0 0180 0300 0000 F1E0 70E0 70E0 70C0 71C0 71C0 E3C0 E5C0 ED80 FB80 73E0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 13 0 BBX 11 15 2 0 BITMAP 03C0 07C0 0C60 0000 F1E0 70E0 70E0 70C0 71C0 71C0 E3C0 E5C0 ED80 FB80 73E0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 2 0 BITMAP 0CC0 0CC0 0000 F1E0 70E0 70E0 70C0 71C0 71C0 E3C0 E5C0 ED80 FB80 73E0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 12 0 BBX 14 19 0 -4 BITMAP 0038 0060 00C0 0000 3C3C 1E1C 0E1C 0E18 0E10 0720 0740 07C0 0780 0700 0600 0400 0800 3800 F000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 13 0 BBX 12 18 1 -4 BITMAP 3C00 1C00 1C00 1CE0 39F0 3A70 3C70 3C70 3870 30E0 70E0 70C0 7180 7E00 6000 E000 E000 E000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 12 0 BBX 14 18 0 -4 BITMAP 0198 0198 0000 3C3C 1E1C 0E1C 0E18 0E10 0720 0740 07C0 0780 0700 0600 0400 0800 3800 F000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 13 20 1 -4 BITMAP 03F8 0638 0C38 1C30 1C70 7F70 1870 3870 3860 38E0 38E0 30E0 70E0 70C0 70C0 71F0 6000 E000 E000 E000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 1 2 7 BITMAP FF80 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 10 19 3 -4 BITMAP 0700 0600 0E00 0E00 0E00 0C00 FFC0 CCC0 1C00 1C00 1C00 1800 1800 3800 3800 3800 3800 3000 7000 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 19 1 0 BITMAP 0318 01F0 01E0 0000 1FFC 1838 1878 00F0 01E0 01C0 03C0 0780 0F00 0E00 1C00 3C00 7830 7030 FFE0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 17 11 2 0 BITMAP 078F00 18D380 30F180 70E180 60E300 E0E700 E0FC00 E1C000 E1C000 73E180 3E7F00 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 14 18 2 0 BITMAP 0660 0660 0000 FC3C 7818 3830 3820 3C40 1C80 1D00 0F00 0E00 0E00 1E00 1C00 1C00 1C00 7F00 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 11 2 0 BITMAP F8 38 38 70 70 70 70 70 E0 E0 F8 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 8 15 1 0 BITMAP 3E 0E 1E 1C 1C 1C 1F 3C F8 38 38 38 70 70 7C ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 15 1 0 BITMAP 1F80 0F00 0E00 0E00 0E00 1E80 1F00 7C00 5C00 1C00 3C00 3800 3830 3830 FFE0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 11 19 2 -4 BITMAP 0380 0300 0300 0700 0700 0700 7FE0 6660 0600 0E00 0E00 0C00 FFC0 CCC0 1C00 1C00 1C00 1C00 3800 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 13 20 1 -4 BITMAP 03C0 06B8 0CB8 1CB8 1C00 7FF0 1870 3870 3870 3860 38E0 30E0 70E0 70E0 70C0 71F0 6000 E000 E000 E000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 10 1 1 BITMAP 20 30 30 18 1C 18 30 60 C0 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 21 15 2 0 BITMAP 03EFF8 0E3E18 1C1C18 381C00 301C00 701C00 701C60 E03FE0 E03840 E03800 E03800 E07800 707020 38F060 1FFFE0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 19 1 2 6 BITMAP FFFFE0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 3 6 12 BITMAP C6 7C 78 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 4 3 4 -4 BITMAP 60 C0 F0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 3 7 12 BITMAP 36 68 90 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 10 1 1 BITMAP 04 0C 18 30 60 E0 60 30 30 10 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 3 2 7 13 BITMAP E0 E0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 3 6 12 BITMAP 82 FC 78 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 7 7 4 3 BITMAP 38 7C FE FE FE 7C 38 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 3 6 12 BITMAP 72 FE 9C ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 3 5 12 BITMAP 3C 7C C6 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 6 2 9 BITMAP 3180 6300 6600 F700 E700 E700 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 3 9 BITMAP E0 E0 E0 60 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 11 15 1 0 BITMAP 0C60 07C0 0780 0000 0F80 3880 3880 3800 3C00 1E00 0F00 0700 C700 C700 7C00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 3 3 8 13 BITMAP E0 A0 E0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 1 -4 BITMAP 70 70 70 70 20 60 60 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 11 19 4 -4 BITMAP 03E0 0660 0C60 1C00 1C00 1C00 3800 FF00 3800 3800 3800 7000 7000 7000 7000 7000 E000 E000 E000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 20 8 3 7 BITMAP FFF8F0 993CE0 183DC0 183FC0 183EC0 382CC0 302DC0 7CE1E0 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 16 15 -5 0 BITMAP 0003 0004 0008 0018 0030 0060 00C0 0180 0300 0600 0C00 1800 3000 2000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 4 3 7 12 BITMAP E0 60 30 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 23 15 1 0 BITMAP 3C0600 760C00 671800 E73000 C66000 6EC000 798000 01BC3C 036466 06C6E6 0CC6C6 18CEC6 30CCCE 60CCCC C07078 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 16 2 2 0 BITMAP E183 C187 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 6 2 9 BITMAP 7380 7380 7780 3300 6300 C600 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 19 1 0 BITMAP 0630 03E0 03C0 0000 07E0 1C30 1830 3820 3800 3C00 1F00 0F80 03C0 01C0 01E0 41C0 C1C0 C380 7E00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 0 -4 BITMAP 7380 7380 7380 7780 3300 2300 6300 C600 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 12 15 1 0 BITMAP 0630 03E0 03C0 0000 3FE0 31C0 23C0 0380 0700 0E00 1C00 3800 7840 70C0 FF80 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lubBI18.bdf100644 1750 1750 116426 5413747532 15212 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-DemiBold-I-Normal--25-180-100-100-P-149-ISO8859-1 SIZE 18 100 100 FONTBOUNDINGBOX 78 28 -15 -5 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "DemiBold" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 25 POINT_SIZE 180 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 149 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 23 FONT_DESCENT 6 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 8 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 6 0 BBX 7 18 1 0 BITMAP 1E 1E 1C 1C 1C 1C 18 38 38 38 30 30 30 00 00 F0 F0 F0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 11 0 BBX 9 7 4 11 BITMAP F780 E380 E380 6300 6300 6300 4100 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 16 0 BBX 16 18 2 0 BITMAP 0063 00C2 00C6 0084 018C 0108 7FFF 0210 0630 0420 0C60 0860 FFFE 1080 3180 6100 6300 C600 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 16 0 BBX 14 23 3 -3 BITMAP 0040 0040 07FC 0E9C 1C8C 1C88 1C80 1D80 1F00 0F00 07C0 03E0 03F0 02F0 0270 0270 4670 C4E0 E5C0 FF80 0400 0C00 0C00 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 19 0 BBX 20 18 1 0 BITMAP 0F0070 3980E0 71C1C0 71C380 61C700 E18E00 639C00 673800 3E7000 00E3C0 01CE60 038C70 071C70 0E1C70 0C1870 1818E0 301CC0 E00F80 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 19 0 BBX 20 18 1 0 BITMAP 007C00 01CE00 038700 038700 038E00 038E00 03F800 03E000 1DC3F0 39E1C0 71E1C0 F0F180 F0F180 F07B00 F03E00 703E00 783F00 1FCFC0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 3 11 BITMAP 3C 7C 78 38 38 30 E0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 8 0 BBX 9 23 2 -5 BITMAP 0080 0100 0600 0E00 0C00 1C00 3800 3800 7000 7000 F000 F000 E000 E000 E000 E000 E000 E000 6000 7000 3000 1000 1800 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 8 0 BBX 9 23 0 -5 BITMAP 0400 0400 0600 0300 0300 0380 0380 0380 0380 0380 0380 0780 0780 0700 0700 0E00 0E00 1C00 1800 3800 3000 4000 8000 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 3 9 BITMAP 0E00 0600 44C0 F7C0 7380 1400 3600 E700 2200 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 16 0 BBX 15 15 2 0 BITMAP 00C0 00C0 0080 0180 0180 0180 0180 FFFE 0300 0300 0300 0300 0200 0600 0600 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 -5 BITMAP 3C 7C 78 78 38 38 30 F0 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 16 0 BBX 15 1 2 7 BITMAP FFFE ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 7 0 BBX 5 4 1 0 BITMAP 78 78 F0 F0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 13 0 BBX 17 22 0 -4 BITMAP 000180 000300 000200 000400 000C00 000800 001000 003000 002000 004000 008000 008000 010000 020000 020000 040000 080000 080000 100000 200000 600000 C00000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 2 0 BITMAP 01F0 0638 0C1C 1C1C 381C 381E 781E 701E F01C F01C F03C F03C F038 F078 F070 70E0 39C0 1F00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 16 0 BBX 10 18 3 0 BITMAP 1FC0 03C0 03C0 0380 0380 0780 0780 0780 0700 0700 0F00 0F00 0F00 0E00 0E00 1E00 1E00 FFC0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 2 0 BITMAP 03F0 0C3C 181E 181E 001E 001E 003C 0038 0060 0180 0200 0400 1800 3000 7000 7FF8 FFF0 FFF0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 3 0 BITMAP 0FF0 0C78 083C 183C 003C 0038 0070 00E0 1FC0 01E0 0070 0078 0078 0078 4070 C0F0 E1C0 7F00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 2 0 BITMAP 001C 0038 0078 00B8 0138 0238 0470 0870 1070 2070 7FFC FFFC FFFC 00E0 00E0 00E0 01E0 07F8 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 3 0 BITMAP 0FFE 0FFC 0FFC 1800 1800 1000 1000 3F00 03C0 00F0 00F0 0070 0078 0070 40F0 C0E0 E1C0 FE00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 3 0 BITMAP 01FC 070E 0E04 1C04 3C0C 3800 7800 73E0 FC78 F838 F038 F038 F038 F038 7070 7070 38E0 1F80 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 4 0 BITMAP 3FFC 7FFC 7FF8 0018 0030 0060 00C0 0180 0300 0700 0E00 1C00 3C00 3800 7800 7000 F000 F000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 2 0 BITMAP 01F8 071C 0E1E 1C1E 1C1E 1E1C 1F38 0FE0 07E0 19F8 38F8 707C F03C F03C F038 F030 7860 1F80 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 2 0 BITMAP 03E0 0E38 1C1C 3C1C 381E 781E 781E 781E 383E 3C7C 0FBC 003C 0038 4078 C070 C0E0 E180 7E00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 6 0 BBX 6 13 1 0 BITMAP 3C 3C 3C 38 00 00 00 00 00 70 F0 F0 F0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 6 0 BBX 7 18 1 -5 BITMAP 1E 1E 1E 1C 00 00 00 00 00 00 00 78 78 38 30 30 70 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 16 0 BBX 16 15 2 0 BITMAP 0001 0007 001E 0070 01C0 0700 3C00 F000 3C00 0F00 0780 01E0 0078 001C 0008 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 16 0 BBX 16 6 1 4 BITMAP 7FFF 0000 0000 0000 0000 FFFE ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 16 0 BBX 16 15 1 0 BITMAP 1000 1800 1E00 0780 01E0 00F0 003C 000F 003C 00E0 0380 0E00 3800 E000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 12 0 BBX 11 18 3 0 BITMAP 3F80 63C0 41E0 C1E0 01E0 01C0 0180 0300 0600 1C00 3800 3800 7800 0000 0000 F000 F000 F000 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 22 0 BBX 19 18 3 0 BITMAP 00FE00 030380 0C00C0 180040 30F020 211C20 430C20 460C20 861C20 8C3820 8C3860 8C7840 8ED880 471F00 400000 200000 183000 07E000 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 19 0 BBX 19 18 0 0 BITMAP 000C00 001C00 001C00 003E00 007E00 005E00 00CE00 018E00 010F00 030F00 020F00 060700 0FFF80 080780 180780 100380 3003C0 F80FE0 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 16 0 BBX 16 18 1 0 BITMAP 1FFC 070F 070F 070F 070F 0F0E 0E1E 0E3C 0FF0 0E38 1E1C 1C1E 1C1E 1C1E 1C1E 3C3C 3C78 FFF0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 18 0 BBX 17 18 3 0 BITMAP 00FF00 038780 0E0180 1E0100 1C0300 380000 780000 780000 F00000 F00000 F00000 F00000 F00000 F00000 780000 780000 3E0C00 0FF000 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 21 0 BBX 20 18 1 0 BITMAP 1FFF00 0787C0 0781E0 0700E0 0700F0 0F00F0 0F00F0 0F00F0 0E00F0 0E00F0 1E00E0 1E01E0 1E01C0 1E03C0 1C0380 3C0700 3C1E00 FFF800 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 16 0 BBX 17 18 1 0 BITMAP 1FFF80 078180 078100 078000 078000 0F0000 0F0000 0F0C00 0FF800 0E0800 1E0000 1E0000 1E0000 1E0000 1C0000 3C0600 3C0C00 FFFC00 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 15 0 BBX 17 18 1 0 BITMAP 1FFF80 078180 078300 078000 070000 070000 0F0000 0F0C00 0FF800 0E0800 0E0000 1E0000 1E0000 1E0000 1C0000 3C0000 3C0000 FF0000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 19 0 BBX 17 18 3 0 BITMAP 00FF80 038380 0F0180 1E0300 1C0000 380000 780000 780000 F00000 F00000 F03F80 F01E00 F01E00 F01C00 781C00 781C00 3C3C00 0FF000 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 21 0 BBX 23 18 1 0 BITMAP 1FF1FE 07C078 078078 0780F0 0780F0 0700F0 0F00F0 0F00E0 0FFFE0 0F01E0 0E01E0 1E01E0 1E01C0 1E03C0 1E03C0 3C03C0 3C07C0 FF1FF0 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 9 0 BBX 11 18 1 0 BITMAP 1FE0 0780 0780 0700 0F00 0F00 0F00 0F00 0E00 0E00 1E00 1E00 1E00 1C00 1C00 3C00 3C00 FF00 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 12 0 BBX 15 22 0 -4 BITMAP 01FE 0078 0078 0070 00F0 00F0 00F0 00F0 00E0 00E0 01E0 01E0 01E0 01E0 01C0 03C0 03C0 03C0 6380 C700 C600 FC00 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 19 0 BBX 19 18 1 0 BITMAP 1FE3E0 078180 070300 070600 070C00 0F1000 0F6000 0EC000 0FE000 0FE000 1EF000 1EF800 1C7C00 1C3C00 1C3E00 3C1F00 3C0F00 FE3FC0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 1 0 BITMAP 1FF0 07C0 0780 0780 0780 0700 0F00 0F00 0F00 0F00 0E00 1E00 1E00 1E00 1E06 3C06 3C0C FFFC ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 23 0 BBX 25 18 1 0 BITMAP 1F801F80 07801E00 07803E00 07C07C00 05C05C00 0DC0BC00 0DC1BC00 0CE13C00 0CE33800 08E23800 18E43800 187C7800 18787800 18707000 10707000 3020F000 3000F000 FC03FC00 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 20 0 BBX 22 18 1 0 BITMAP 1F80FC 078030 07C030 07C060 07E060 0DE060 0CF060 0CF060 0C78C0 0C78C0 183CC0 181CC0 181E80 180F80 180F80 300780 300780 FC0300 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 21 0 BBX 19 18 3 0 BITMAP 00FE00 038780 0703C0 1E01C0 1C01E0 3801E0 7801E0 7801E0 F001E0 F001E0 F003C0 F003C0 F00380 F00700 700E00 781C00 3C3800 0FC000 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 16 0 BBX 17 18 1 0 BITMAP 1FFE00 078F00 078780 078780 070780 0F0780 0F0700 0F0F00 0F0E00 0E3C00 1FF000 1E0000 1E0000 1E0000 1C0000 3C0000 3C0000 FF0000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 21 0 BBX 21 23 3 -5 BITMAP 00FE00 038700 070380 1E01C0 1C01E0 3801E0 7801E0 7801E0 F001E0 F001E0 F003E0 F003C0 F003C0 F00780 700F80 781F00 3C3E00 0FFC00 007800 002000 001000 000E00 0001F8 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 18 0 BBX 17 18 1 0 BITMAP 1FFE00 078F80 078780 070780 070780 0F0780 0F0700 0F0E00 0F1C00 0FF800 1E7800 1E7800 1E3C00 1C3C00 1C1E00 3C1E00 3C0F00 FE0F80 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 2 0 BITMAP 01FC 070E 0E06 1C0C 1C00 1E00 1F00 1F80 0FE0 03F0 01F8 00F8 0078 0078 6078 C070 E0E0 7F80 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 18 0 BBX 18 18 3 0 BITMAP 7FFFC0 E1E0C0 C1E080 C1E180 03C000 03C000 03C000 03C000 03C000 038000 078000 078000 078000 078000 070000 0F0000 0F0000 7FC000 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 19 0 BBX 19 18 4 0 BITMAP FF07E0 3C0380 3C0300 380300 380200 780200 780200 780200 700600 F00400 F00400 F00400 F00400 F00800 F00800 701000 382000 1FC000 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 19 0 BBX 19 18 3 0 BITMAP FE03E0 7C0080 3C0180 3C0100 3C0200 3C0600 1E0400 1E0800 1E0800 1E1000 1E3000 0F2000 0F4000 0FC000 0F8000 070000 070000 060000 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 23 0 BBX 23 18 3 0 BITMAP FC183E 78180C 783818 783810 387830 387C20 38FC60 38BC40 399CC0 391C80 3B1D80 3A1D00 3E1F00 3C1E00 3C1E00 381C00 381C00 301800 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 17 0 BBX 20 18 0 0 BITMAP 0FE1F0 07C0C0 03C180 03C100 01E200 01E600 00EC00 00F800 00F000 00F800 01F800 033C00 023C00 041C00 081E00 181E00 300F00 F83F80 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 17 0 BBX 17 18 3 0 BITMAP FE0F80 7C0600 3C0400 3C0C00 1C1800 1E3000 1E2000 0F6000 0FC000 078000 070000 0F0000 0F0000 0F0000 0F0000 0E0000 1E0000 7F8000 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 17 0 BBX 17 18 2 0 BITMAP 0FFF80 0C0F00 081F00 001E00 003C00 007800 00F800 01F000 01E000 03C000 078000 0F8000 0F0000 1E0000 3C0000 7C0C00 F80C00 FFFC00 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 8 0 BBX 10 22 1 -4 BITMAP 0FC0 0E00 0E00 0E00 0E00 1C00 1C00 1C00 1C00 1C00 3800 3800 3800 3800 3800 7000 7000 7000 7000 7000 E000 FC00 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 13 0 BBX 8 22 4 -4 BITMAP C0 40 40 40 20 20 20 10 10 10 10 08 08 08 08 04 04 04 02 02 02 03 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 8 0 BBX 10 22 0 -4 BITMAP 0FC0 01C0 0380 0380 0380 0380 0380 0700 0700 0700 0700 0700 0E00 0E00 0E00 0E00 0E00 1C00 1C00 1C00 1C00 FC00 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 16 0 BBX 14 15 2 3 BITMAP 0040 0040 00E0 01E0 01E0 0360 0230 0630 0C30 0C30 1818 3018 3018 600C C00C ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 12 0 BBX 11 1 1 -3 BITMAP FFE0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 3 11 BITMAP 1C 30 70 70 78 F8 F0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 16 0 BBX 15 13 2 0 BITMAP 01FE 063E 0C1C 181C 383C 703C 707C F0B8 F1F8 F378 FE78 FC78 787C ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 2 0 BITMAP 3F00 1E00 1E00 1E00 1E00 1C3C 1C7E 3CFE 3D9E 3F1E 3A1E 7C1C 781C 7838 7030 7060 F8C0 FF00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 2 0 BITMAP 03F0 0E38 1C30 3830 7800 7000 F000 F000 F000 F000 F000 7820 3FC0 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 16 0 BBX 16 18 2 0 BITMAP 003F 000F 000E 000E 001E 01FE 063E 0C1C 183C 383C 703C 7078 F0B8 F1F8 F378 FE78 FC78 78FC ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 2 0 BITMAP 03E0 0CF0 1870 3870 7070 70E0 F3C0 FF00 F000 F000 F010 7870 3F80 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 10 0 BBX 14 25 1 -5 BITMAP 00FC 018C 030C 0708 0708 0F00 0F00 3FE0 1E00 1E00 1E00 1C00 1C00 3C00 3C00 3C00 3800 3800 7800 7800 7800 7000 7000 F000 F000 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 1 -5 BITMAP 01FE 061E 0C1E 1C1C 181C 383C 787C 787C 78B8 79B8 7F78 7E78 3870 0070 80F0 C0E0 71C0 7F00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 2 0 BITMAP 3E00 1E00 1E00 1E00 1C00 1C38 3CFC 3DFC 3DBC 3A3C 3E38 7C38 7878 7878 7078 7070 F070 F0FC ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 8 0 BBX 7 18 2 0 BITMAP 1E 1E 1C 00 00 FC 3C 3C 38 38 78 78 78 70 70 F0 F0 FC ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 10 0 BBX 14 23 -1 -5 BITMAP 003C 003C 0038 0000 0000 01F8 0070 0070 00F0 00F0 00F0 00E0 00E0 01E0 01E0 01E0 01C0 03C0 03C0 4380 C300 C600 FC00 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 2 0 BITMAP 3F00 1E00 1E00 1E00 1E00 1C3C 3C3C 3C38 3C70 39E0 3F80 7B80 7BC0 7BC0 71E0 70F0 F0F8 F07C ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 8 0 BBX 7 18 2 0 BITMAP 3E 1E 1E 1C 1C 3C 3C 3C 38 38 78 78 78 70 70 F0 F0 F8 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 24 0 BBX 22 13 2 0 BITMAP FC3838 3CFCFC 3DFDFC 3B3D3C 3A3A3C 3C3E38 7C3C38 787838 707878 707078 707070 F07070 F0F0FC ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 16 0 BBX 14 13 2 0 BITMAP FC38 3CFC 3CFC 393C 3A3C 3C38 7C38 7878 7878 7078 7070 F070 F0FC ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 15 0 BBX 14 13 2 0 BITMAP 03E0 0E38 1C38 383C 783C 703C F03C F038 F078 F070 F0E0 79C0 3F00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 16 0 BBX 16 18 1 -5 BITMAP 7E1E 1E3F 1E7F 1ECF 1D0F 1D0F 3E0E 3C0E 3C1C 3818 3830 7C60 7F80 7800 7000 7000 F000 F000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 2 -5 BITMAP 01FE 063E 0C1C 181C 383C 703C 707C F0B8 F1B8 F378 FE78 FC78 7870 00F0 00F0 00F0 00F0 00E0 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 12 0 BBX 13 13 2 0 BITMAP 7C38 3C70 3CF0 3D80 3E00 3E00 7C00 7800 7800 7000 7000 F000 F000 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 1 0 BITMAP 07E0 1C70 1C20 3C60 1E00 1F00 0F80 07C0 03C0 41C0 C1C0 E380 7F00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 9 0 BBX 9 17 2 0 BITMAP 0C00 1C00 3C00 3C00 FF80 3C00 3800 3800 7800 7800 7800 7000 F000 F000 F000 7200 3C00 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 16 0 BBX 14 13 3 0 BITMAP FCFC 383C 3838 7838 7878 7878 70F8 70F0 F170 F370 FEF0 FCF0 70FC ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 15 0 BBX 15 13 2 0 BITMAP F83E 780E 3C0E 3C0C 1C18 1E30 1E30 1E60 0EC0 0F80 0F00 0E00 0C00 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 21 0 BBX 20 13 2 0 BITMAP F820F0 783070 387060 3C7060 3C78C0 1CB880 1CB900 1D3B00 1F3A00 1E1C00 1C1C00 181800 181000 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 1 0 BITMAP 3C38 1E38 1E38 0F30 0F60 0780 0780 0F80 1BC0 31C0 61E0 E1E0 E0F0 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 15 0 BBX 17 18 0 -5 BITMAP 3F0780 0F0380 0F0380 078300 078600 078600 038C00 039800 03B000 03E000 03C000 01C000 018000 030000 060000 0C0000 180000 F80000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 14 0 BBX 14 13 1 0 BITMAP 1FFC 1878 3078 00F0 01E0 03C0 0780 0F00 1E00 3C00 7C18 7830 FFF0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 9 0 BBX 9 22 2 -4 BITMAP 0780 0E00 0E00 1E00 1E00 1E00 1E00 1C00 1C00 1800 3000 E000 3800 3800 3800 7800 7000 F000 F000 E000 F000 3800 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 6 0 BBX 6 22 2 -4 BITMAP 0C 0C 0C 18 18 18 18 18 30 30 30 30 30 30 60 60 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 9 0 BBX 9 22 1 -4 BITMAP 0E00 0700 0380 0380 0780 0700 0F00 0E00 0E00 0600 0200 0780 0E00 1C00 1C00 3C00 3C00 3C00 3C00 3C00 3800 F000 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 16 0 BBX 15 6 2 4 BITMAP 1C02 2702 4304 4184 81C8 8070 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 6 0 BBX 7 18 1 -5 BITMAP 1E 1E 1E 00 00 18 18 38 38 38 38 78 78 78 F0 F0 F0 F0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 16 0 BBX 13 18 3 0 BITMAP 00C0 0080 03F8 0EB8 1C98 3910 7900 7100 F100 F300 F200 F200 F200 7A20 3FC0 0400 0400 0400 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 3 0 BITMAP 007C 01C6 0386 0384 0780 0780 0700 0F00 3FE0 0F00 0E00 0E00 1E00 1C00 3000 FFF0 FFF0 FFE0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 16 0 BBX 18 16 1 1 BITMAP 100040 080080 0C0100 07F200 031C00 060C00 0C0400 0C0600 0C0C00 0C0C00 0C1800 0E3800 1FF800 300C00 400600 800200 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 16 0 BBX 17 18 3 0 BITMAP FE0F80 780200 3C0400 3C0800 1E1000 1E3000 0F6000 0F4000 078000 3FF000 070000 0F0000 7FE000 0F0000 0E0000 0E0000 1E0000 7F8000 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 6 0 BBX 6 22 2 -4 BITMAP 0C 0C 0C 18 18 18 18 18 30 30 00 00 30 30 60 60 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 16 0 BBX 14 23 2 -5 BITMAP 03FC 071C 0E0C 1C08 1C00 1E00 1F80 0FE0 0FF0 19F0 3878 3838 3830 3E20 1FE0 0FE0 03E0 00F0 00F0 40E0 C0E0 E1C0 7F00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 15 0 BBX 8 3 7 15 BITMAP E7 E7 E7 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 21 0 BBX 20 18 3 0 BITMAP 01F800 060600 180100 300080 60FC40 438660 C70420 860020 8E0020 8C0030 8C0020 CE0020 470860 61F040 300080 180100 060600 01F800 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 3 8 BITMAP 0FE0 19C0 31C0 71C0 63C0 E7C0 ED80 FB80 F3C0 63E0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 13 0 BBX 13 11 2 1 BITMAP 0210 0738 1C70 3CE0 79C0 F780 7380 79C0 38C0 18E0 0C40 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 16 0 BBX 15 6 2 4 BITMAP FFFE 0006 0006 000C 000C 000C ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 2 8 BITMAP FC ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 16 0 BBX 11 12 5 6 BITMAP 1F00 2080 4040 CFA0 89A0 8920 8E20 9A20 DB20 4040 2080 1F00 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 15 0 BBX 8 1 7 17 BITMAP FF ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 6 0 BBX 4 4 5 14 BITMAP 60 90 90 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 16 0 BBX 16 15 1 0 BITMAP 0060 0040 00C0 00C0 00C0 3FFF 0080 0180 0180 0180 0180 0180 0000 0000 FFFC ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 10 0 BBX 9 11 -14 7 BITMAP 1F00 3380 2180 0180 0300 0600 1800 2000 4000 FF00 FE00 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 -15 7 BITMAP 3E 23 23 03 06 3C 06 07 86 8E FC ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 15 0 BBX 7 4 9 14 BITMAP 1E 38 70 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 17 0 BBX 15 17 2 -4 BITMAP 7E7E 1C1E 1C1E 1C1C 3C1C 3C3C 383C 387C 38F8 79B8 7F78 7F78 7C7E 7000 F000 F000 F000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 16 0 BBX 11 22 4 -4 BITMAP 3FE0 7E60 FC40 FC40 FC40 FC40 FCC0 7C80 3880 0880 0880 0980 1900 1100 1100 1100 1300 3300 2200 2200 2200 2600 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 16 0 BBX 4 3 7 6 BITMAP 70 F0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 15 0 BBX 5 5 4 -5 BITMAP 30 60 18 18 F0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 10 0 BBX 6 11 -15 7 BITMAP 3C 0C 1C 18 18 18 18 38 30 30 FC ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 3 8 BITMAP 07C0 18E0 30E0 70E0 60E0 E0E0 E1C0 E180 F300 3C00 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 13 0 BBX 13 11 1 1 BITMAP 1180 38C0 18E0 1C70 0E70 0F78 1CF0 38E0 7180 E700 4200 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 20 0 BBX 20 18 4 0 BITMAP 3C0070 0C00C0 1C0180 180300 180600 180C00 181800 3830C0 3071C0 30E380 FCCD80 019980 033180 066180 0C7FC0 180300 300300 E00F80 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 20 0 BBX 20 18 4 0 BITMAP 3C0070 0C00C0 1C0180 180300 180600 180C00 181800 3837C0 307CE0 30E860 FCC060 0180C0 030180 060600 0C0800 181000 303FC0 E03F80 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 20 0 BBX 21 18 5 0 BITMAP 3E0038 230060 2300C0 030180 060300 3C0600 060C00 071860 8638E0 8E71C0 FC66C0 00CCC0 0198C0 0330C0 063FE0 0C0180 180180 7007C0 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 12 0 BBX 11 18 1 -5 BITMAP 01E0 01E0 01E0 0000 0000 03C0 0380 0380 0700 0C00 1800 3000 7000 F000 F060 F040 78C0 3F80 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 19 0 BBX 19 23 0 0 BITMAP 003800 001C00 000C00 000600 000000 000C00 001C00 001C00 003E00 007E00 005E00 00CE00 018E00 010F00 030F00 020F00 060700 0FFF80 080780 180780 100380 3003C0 F80FE0 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 19 0 BBX 19 23 0 0 BITMAP 0003C0 000700 000E00 001800 000000 000C00 001C00 001C00 003E00 007E00 005E00 00CE00 018E00 010F00 030F00 020F00 060700 0FFF80 080780 180780 100380 3003C0 F80FE0 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 19 0 BBX 19 23 0 0 BITMAP 000E00 001F00 003B00 006180 000000 000C00 001C00 001C00 003E00 007E00 005E00 00CE00 018E00 010F00 030F00 020F00 060700 0FFF80 080780 180780 100380 3003C0 F80FE0 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 19 0 BBX 19 22 0 0 BITMAP 001C40 003F80 004700 000000 000C00 001C00 001C00 003E00 007E00 005E00 00CE00 018E00 010F00 030F00 020F00 060700 0FFF80 080780 180780 100380 3003C0 F80FE0 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 19 0 BBX 19 22 0 0 BITMAP 0039C0 0039C0 0039C0 000000 000C00 001C00 001C00 003E00 007E00 005E00 00CE00 018E00 010F00 030F00 020F00 060700 0FFF80 080780 180780 100380 3003C0 F80FE0 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 19 0 BBX 19 23 0 0 BITMAP 000600 000900 000900 000600 000000 000C00 001C00 001C00 003E00 007E00 005E00 00CE00 018E00 010F00 030F00 020F00 060700 0FFF80 080780 180780 100380 3003C0 F80FE0 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 24 0 BBX 26 18 0 0 BITMAP 0003FFC0 0007C0C0 0007C080 000BC000 001BC000 00338000 00278000 00478600 00C7FE00 01878600 01070600 02070000 07FF0000 0C0F0000 180F0000 100E0300 301E0600 F87FFE00 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 18 0 BBX 17 23 3 -5 BITMAP 00FF00 038780 0E0180 1E0100 1C0300 380000 780000 780000 F00000 F00000 F00000 F00000 F00000 F00000 780000 780000 3E0C00 0FF000 060000 0C0000 030000 030000 1E0000 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 16 0 BBX 17 23 1 0 BITMAP 00E000 007000 003000 001800 000000 1FFF80 078180 078100 078000 078000 0F0000 0F0000 0F0C00 0FF800 0E0800 1E0000 1E0000 1E0000 1E0000 1C0000 3C0600 3C0C00 FFFC00 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 16 0 BBX 17 23 1 0 BITMAP 000F00 001C00 003800 006000 000000 1FFF80 078180 078100 078000 078000 0F0000 0F0000 0F0C00 0FF800 0E0800 1E0000 1E0000 1E0000 1E0000 1C0000 3C0600 3C0C00 FFFC00 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 16 0 BBX 17 23 1 0 BITMAP 003800 007C00 00EC00 018600 000000 1FFF80 078180 078100 078000 078000 0F0000 0F0000 0F0C00 0FF800 0E0800 1E0000 1E0000 1E0000 1E0000 1C0000 3C0600 3C0C00 FFFC00 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 16 0 BBX 17 22 1 0 BITMAP 01CE00 01CE00 01CE00 000000 1FFF80 078180 078100 078000 078000 0F0000 0F0000 0F0C00 0FF800 0E0800 1E0000 1E0000 1E0000 1E0000 1C0000 3C0600 3C0C00 FFFC00 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 9 0 BBX 11 23 1 0 BITMAP 0700 0380 0180 00C0 0000 1FE0 0780 0780 0700 0F00 0F00 0F00 0F00 0E00 0E00 1E00 1E00 1E00 1C00 1C00 3C00 3C00 FF00 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 9 0 BBX 12 23 1 0 BITMAP 00F0 01C0 0380 0600 0000 1FE0 0780 0780 0700 0F00 0F00 0F00 0F00 0E00 0E00 1E00 1E00 1E00 1C00 1C00 3C00 3C00 FF00 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 9 0 BBX 11 23 1 0 BITMAP 0380 07C0 0EC0 1860 0000 1FE0 0780 0780 0700 0F00 0F00 0F00 0F00 0E00 0E00 1E00 1E00 1E00 1C00 1C00 3C00 3C00 FF00 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 9 0 BBX 12 22 1 0 BITMAP 0E70 0E70 0E70 0000 1FE0 0780 0780 0700 0F00 0F00 0F00 0F00 0E00 0E00 1E00 1E00 1E00 1C00 1C00 3C00 3C00 FF00 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 21 0 BBX 20 18 1 0 BITMAP 1FFF00 0787C0 0781E0 0700E0 0F00F0 0F00F0 0F00F0 0F00F0 7FF0F0 1E00F0 1E00E0 1E01E0 1E01C0 1E03C0 1C0380 3C0700 3C1E00 FFF800 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 20 0 BBX 22 22 1 0 BITMAP 001C40 003F80 004700 000000 1F80FC 078030 07C030 07C060 07E060 0DE060 0CF060 0CF060 0C78C0 0C78C0 183CC0 181CC0 181E80 180F80 180F80 300780 300780 FC0300 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 21 0 BBX 19 23 3 0 BITMAP 007000 003800 001800 000C00 000000 00FE00 038780 0703C0 1E01C0 1C01E0 3801E0 7801E0 7801E0 F001E0 F001E0 F003C0 F003C0 F00380 F00700 700E00 781C00 3C3800 0FC000 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 21 0 BBX 19 23 3 0 BITMAP 000F00 001C00 003800 006000 000000 00FE00 038780 0703C0 1E01C0 1C01E0 3801E0 7801E0 7801E0 F001E0 F001E0 F003C0 F003C0 F00380 F00700 700E00 781C00 3C3800 0FC000 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 21 0 BBX 19 23 3 0 BITMAP 003800 007C00 00EC00 018600 000000 00FE00 038780 0703C0 1E01C0 1C01E0 3801E0 7801E0 7801E0 F001E0 F001E0 F003C0 F003C0 F00380 F00700 700E00 781C00 3C3800 0FC000 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 21 0 BBX 19 22 3 0 BITMAP 007100 00FE00 011C00 000000 00FE00 038780 0703C0 1E01C0 1C01E0 3801E0 7801E0 7801E0 F001E0 F001E0 F003C0 F003C0 F00380 F00700 700E00 781C00 3C3800 0FC000 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 21 0 BBX 19 22 3 0 BITMAP 00E700 00E700 00E700 000000 00FE00 038780 0703C0 1E01C0 1C01E0 3801E0 7801E0 7801E0 F001E0 F001E0 F003C0 F003C0 F00380 F00700 700E00 781C00 3C3800 0FC000 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 16 0 BBX 17 15 1 0 BITMAP 300100 180380 1C0700 0E0C00 061800 033000 03E000 01C000 03E000 066000 0C3000 183800 701C00 E00C00 400600 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 21 0 BBX 22 18 1 0 BITMAP 003F8C 00C1F0 0380E0 0700F0 0E01F0 1E0378 1C0678 3C0C78 3C10F0 3C20F0 3C40F0 3C80E0 3D01E0 3E01C0 3C0380 1C0700 3E0C00 E7F000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 19 0 BBX 19 23 4 0 BITMAP 01C000 00E000 006000 003000 000000 FF07E0 3C0380 3C0300 380300 380200 780200 780200 780200 700600 F00400 F00400 F00400 F00400 F00800 F00800 701000 382000 1FC000 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 19 0 BBX 19 23 4 0 BITMAP 001E00 003800 007000 00C000 000000 FF07E0 3C0380 3C0300 380300 380200 780200 780200 780200 700600 F00400 F00400 F00400 F00400 F00800 F00800 701000 382000 1FC000 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 19 0 BBX 19 23 4 0 BITMAP 007000 00F800 01D800 030C00 000000 FF07E0 3C0380 3C0300 380300 380200 780200 780200 780200 700600 F00400 F00400 F00400 F00400 F00800 F00800 701000 382000 1FC000 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 19 0 BBX 19 22 4 0 BITMAP 039C00 039C00 039C00 000000 FF07E0 3C0380 3C0300 380300 380200 780200 780200 780200 700600 F00400 F00400 F00400 F00400 F00800 F00800 701000 382000 1FC000 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 17 0 BBX 17 23 3 0 BITMAP 003C00 007000 00E000 018000 000000 FE0F80 7C0600 3C0400 3C0C00 1C1800 1E3000 1E2000 0F6000 0FC000 078000 070000 0F0000 0F0000 0F0000 0F0000 0E0000 1E0000 7F8000 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 16 0 BBX 16 18 1 0 BITMAP 1FE0 0780 0780 0700 07FC 0F1E 0F0F 0F0F 0E0F 0E0F 1E0E 1E1C 1E38 1FE0 1C00 3C00 3C00 FF00 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 16 0 BBX 15 25 1 -5 BITMAP 01F8 039C 071C 071C 0F1C 0E18 0E30 1E60 1E40 1EE0 1CF0 1CF8 3C7C 3C3C 3C1E 380E 380E 798E 799C 79F8 7000 7000 F000 F000 F000 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 2 0 BITMAP 01C0 00E0 0060 0030 0000 01FE 063E 0C1C 181C 383C 703C 707C F0B8 F1F8 F378 FE78 FC78 787C ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 2 0 BITMAP 001E 0038 0070 00C0 0000 01FE 063E 0C1C 181C 383C 703C 707C F0B8 F1F8 F378 FE78 FC78 787C ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 2 0 BITMAP 0070 00F8 01D8 030C 0000 01FE 063E 0C1C 181C 383C 703C 707C F0B8 F1F8 F378 FE78 FC78 787C ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 2 0 BITMAP 00E2 01FC 0238 0000 01FE 063E 0C1C 181C 383C 703C 707C F0B8 F1F8 F378 FE78 FC78 787C ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 2 0 BITMAP 039C 039C 039C 0000 01FE 063E 0C1C 181C 383C 703C 707C F0B8 F1F8 F378 FE78 FC78 787C ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 2 0 BITMAP 0030 0048 0048 0030 0000 01FE 063E 0C1C 181C 383C 703C 707C F0B8 F1F8 F378 FE78 FC78 787C ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 23 0 BBX 21 13 2 0 BITMAP 03FDF0 043E78 1C3C38 183C38 383878 703870 7079E0 F0FF80 F1F800 F37800 FE3808 FC3C38 780FC0 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 13 0 BBX 13 18 2 -5 BITMAP 03F0 0E38 1C30 3830 7800 7000 F000 F000 F000 F000 F000 7820 3FC0 1800 3000 0C00 0C00 7800 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 2 0 BITMAP 0380 01C0 00C0 0060 0000 03E0 0CF0 1870 3870 7070 70E0 F3C0 FF00 F000 F000 F010 7870 3F80 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 2 0 BITMAP 0078 00E0 01C0 0300 0000 03E0 0CF0 1870 3870 7070 70E0 F3C0 FF00 F000 F000 F010 7870 3F80 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 2 0 BITMAP 00E0 01F0 03B0 0618 0000 03E0 0CF0 1870 3870 7070 70E0 F3C0 FF00 F000 F000 F010 7870 3F80 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 2 0 BITMAP 0738 0738 0738 0000 03E0 0CF0 1870 3870 7070 70E0 F3C0 FF00 F000 F000 F010 7870 3F80 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 8 0 BBX 7 18 2 0 BITMAP 38 1C 0C 06 00 FC 3C 3C 38 38 78 78 78 70 70 F0 F0 FC ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 8 0 BBX 10 18 2 0 BITMAP 03C0 0700 0E00 1800 0000 FC00 3C00 3C00 3800 3800 7800 7800 7800 7000 7000 F000 F000 FC00 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 8 0 BBX 9 18 2 0 BITMAP 0E00 1F00 3B00 6180 0000 FC00 3C00 3C00 3800 3800 7800 7800 7800 7000 7000 F000 F000 FC00 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 8 0 BBX 9 17 2 0 BITMAP 7380 7380 7380 0000 FC00 3C00 3C00 3800 3800 7800 7800 7800 7000 7000 F000 F000 FC00 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 15 0 BBX 14 20 2 0 BITMAP 0010 0038 1FC0 03E0 01F0 0678 0078 03F8 0C7C 183C 383C 703C 7038 F038 F038 F070 F070 F060 7880 3F00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 2 0 BITMAP 01C4 03F8 0470 0000 FC38 3CFC 3CFC 393C 3A3C 3C38 7C38 7878 7878 7078 7070 F070 F0FC ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 2 0 BITMAP 0380 01C0 00C0 0060 0000 03E0 0E38 1C38 383C 783C 703C F03C F038 F078 F070 F0E0 79C0 3F00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 2 0 BITMAP 003C 0070 00E0 0180 0000 03E0 0E38 1C38 383C 783C 703C F03C F038 F078 F070 F0E0 79C0 3F00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 2 0 BITMAP 00E0 01F0 03B0 0618 0000 03E0 0E38 1C38 383C 783C 703C F03C F038 F078 F070 F0E0 79C0 3F00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 2 0 BITMAP 01C4 03F8 0470 0000 03E0 0E38 1C38 383C 783C 703C F03C F038 F078 F070 F0E0 79C0 3F00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 2 0 BITMAP 0738 0738 0738 0000 03E0 0E38 1C38 383C 783C 703C F03C F038 F078 F070 F0E0 79C0 3F00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 16 0 BBX 15 13 2 0 BITMAP 01C0 01C0 01C0 0000 0000 0000 FFFE 0000 0000 0000 0700 0700 0700 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 15 0 BBX 16 13 1 0 BITMAP 01FB 073E 0E1E 1C3E 3C7E 38DE 799E 7B1C 7E1C 7C38 7870 3CE0 DF80 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 3 0 BITMAP 0380 01C0 00C0 0060 0000 FCFC 383C 3838 7838 7878 7878 70F8 70F0 F170 F370 FEF0 FCF0 70FC ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 3 0 BITMAP 003C 0070 00E0 0180 0000 FCFC 383C 3838 7838 7878 7878 70F8 70F0 F170 F370 FEF0 FCF0 70FC ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 3 0 BITMAP 00E0 01F0 03B0 0618 0000 FCFC 383C 3838 7838 7878 7878 70F8 70F0 F170 F370 FEF0 FCF0 70FC ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 3 0 BITMAP 0738 0738 0738 0000 FCFC 383C 3838 7838 7878 7878 70F8 70F0 F170 F370 FEF0 FCF0 70FC ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 15 0 BBX 17 23 0 -5 BITMAP 000F00 001C00 003800 006000 000000 3F0780 0F0380 0F0380 078300 078600 078600 038C00 039800 03B000 03E000 03C000 01C000 018000 030000 060000 0C0000 180000 F80000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 16 0 BBX 16 22 1 -5 BITMAP 3F00 1F00 0F00 0E00 0E1E 1E3F 1E7F 1ECF 1D8F 1D0F 3E0E 3C0E 3C1C 3818 3830 7C60 7F80 7800 7000 7000 F000 F000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 15 0 BBX 17 22 0 -5 BITMAP 00E700 00E700 00E700 000000 3F0780 0F0380 0F0380 078300 078600 078600 038C00 039800 03B000 03E000 03C000 01C000 018000 030000 060000 0C0000 180000 F80000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 17 25 1 -5 BITMAP 00FF80 018F80 030780 070700 070F00 0F0F00 0E0F00 3FCF00 1E0E00 1E0E00 1E1E00 1C1E00 3C1E00 3C1C00 3C1C00 3C3C00 383C00 783C00 783C00 787E00 780000 700000 F00000 F00000 F00000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 1 2 8 BITMAP FFE0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 12 22 4 -4 BITMAP 0380 0380 0780 0700 0700 0700 E730 FFF0 CE70 0E00 0E00 0E00 0E00 1E00 1C00 1C00 1C00 1C00 3C00 3800 3800 3800 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 17 23 2 0 BITMAP 00C300 006600 007C00 003800 000000 0FFF80 0C0F00 081F00 001E00 003C00 007800 00F800 01F000 01E000 03C000 078000 0F8000 0F0000 1E0000 3C0000 7C0C00 F80C00 FFFC00 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 21 13 2 0 BITMAP 03F0F0 0C3B38 183E38 383C38 703C38 703C70 F038E0 F03F80 F07800 F07800 F0F808 79FC38 3F0FE0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 17 22 3 0 BITMAP 073800 073800 073800 000000 FE0F80 7C0600 3C0400 3C0C00 1C1800 1E3000 1E2000 0F6000 0FC000 078000 070000 0F0000 0F0000 0F0000 0F0000 0E0000 1E0000 7F8000 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 13 2 0 BITMAP FC 3C 3C 38 38 78 78 78 70 70 F0 F0 FC ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 9 18 1 0 BITMAP 3F00 0F00 0E00 0E00 0E00 1E00 1E00 1D80 1F00 7C00 BC00 3C00 3800 3800 3800 7800 7800 7C00 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 1 0 BITMAP 1FF0 07C0 0780 0780 0780 0700 0F20 0FE0 1F00 7F00 4E00 1E00 1E00 1E00 1E06 1C06 3C0E FFFC ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 14 22 2 -4 BITMAP 01E0 01E0 01E0 01C0 01C0 01C0 33CC 3FFC 739C 0380 0380 0700 0700 E738 FFF0 C730 0F00 0E00 0E00 0E00 1E00 1E00 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 17 25 1 -5 BITMAP 00F000 01B800 031380 071780 073700 0F0000 0E0000 3FFF00 1E0F00 1E0E00 1E1E00 1C1E00 1C1E00 3C1E00 3C1C00 3C3C00 383C00 383C00 783C00 783E00 780000 700000 700000 F00000 F00000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 1 1 BITMAP 10 30 38 1C 1C 0E 1C 38 70 E0 40 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 27 0 BBX 26 18 3 0 BITMAP 00FDFFC0 0387C0C0 0603C080 1E03C000 1C03C000 38038000 78078000 78078600 F007FE00 F0070600 F0070000 F00F0000 F00F0000 F00F0000 701E0000 781E0300 3C3E0600 0FFFFE00 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 25 0 BBX 23 1 2 7 BITMAP FFFFFE ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 4 8 14 BITMAP C3 66 7C 38 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 4 4 5 -4 BITMAP 60 C0 D0 70 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 9 4 8 14 BITMAP 1F80 3600 6400 D800 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 2 1 BITMAP 04 0E 1C 38 70 E0 70 70 38 18 10 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 4 3 9 15 BITMAP 70 F0 E0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 9 4 7 14 BITMAP 8180 E300 7E00 3C00 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 9 9 5 3 BITMAP 3E00 7F00 FF80 FF80 FF80 FF80 FF80 7F00 3E00 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 9 3 7 15 BITMAP 3880 7F00 8E00 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 4 7 14 BITMAP 1C 3E 76 C3 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 7 3 11 BITMAP 18E0 31C0 6180 6380 7BC0 F3C0 F3C0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 4 11 BITMAP F0 F0 E0 60 60 60 60 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 13 18 1 0 BITMAP 0618 0330 03E0 01C0 0000 07E0 1C70 1C20 3C60 1E00 1F00 0F80 07C0 03C0 41C0 C1C0 E380 7F00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 4 4 9 16 BITMAP 60 90 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 -5 BITMAP 3C 7C 78 78 38 38 30 F0 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 13 22 5 -4 BITMAP 01F8 0318 0718 0E10 0E00 1E00 1E00 1C00 FF80 3C00 3C00 3C00 3800 3800 7800 7800 7800 7000 7000 F000 F000 F000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 26 0 BBX 25 10 4 8 BITMAP FFEF8F80 CE678E00 8E479E00 0C079E00 1C07EE00 1C0DEE00 1C0DCC00 1C0DDC00 1C0C9C00 7E3C1E00 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 20 18 -6 0 BITMAP 000070 0000C0 000180 000300 000600 000C00 001800 003000 007000 00E000 00C000 018000 030000 060000 0C0000 180000 300000 E00000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 5 4 8 14 BITMAP E0 70 30 18 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 29 0 BBX 30 18 1 0 BITMAP 0F007000 3980E000 71C1C000 71C38000 61C70000 E18E0000 639C0000 67380000 3E700000 00E3C0F8 01CE619C 038C738C 071C770C 0E1C771C 0C18771C 1818E718 301CC338 E00F81E0 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 25 0 BBX 20 3 3 0 BITMAP E07070 E06070 E0E070 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 7 3 11 BITMAP 39E0 79E0 7BC0 38C0 30C0 7180 E300 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 15 23 2 0 BITMAP 030C 0198 01F0 00E0 0000 01FC 070E 0E06 1C0C 1C00 1E00 1F00 1F80 0FE0 03F0 01F8 00F8 0078 0078 6078 C070 E0E0 7F80 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 9 0 -5 BITMAP 39E0 79E0 79E0 7BC0 30C0 30C0 7180 E380 8200 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 1 0 BITMAP 030C 0198 01F0 00E0 0000 1FFC 1878 3078 00F0 01E0 03C0 0780 0F00 1E00 3C00 7C18 7830 FFF0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lubBI19.bdf100644 1750 1750 121156 5413747532 15207 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-DemiBold-I-Normal--26-190-100-100-P-156-ISO8859-1 SIZE 19 100 100 FONTBOUNDINGBOX 49 29 -17 -5 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "DemiBold" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 26 POINT_SIZE 190 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH "156" CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." FONT_ASCENT 24 FONT_DESCENT 6 DEFAULT_CHAR 0 ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 8 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 7 0 BBX 8 19 1 0 BITMAP 0F 0F 1E 1E 1E 1E 1C 1C 1C 18 38 38 38 30 00 00 78 F0 F0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 12 0 BBX 9 8 5 12 BITMAP F380 F380 E380 6380 6380 6380 6100 6100 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 17 0 BBX 16 19 2 0 BITMAP 0063 00C2 00C6 0084 018C 0108 7FFF 0210 0630 0420 0C60 0C60 FFFE 1080 3180 2180 6300 6300 C600 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 17 0 BBX 14 24 3 -3 BITMAP 0040 0040 07FC 0E9C 1C8C 1C88 1C80 1C80 1F80 1F00 0F80 07C0 03E0 03F0 02F0 0270 0270 4670 C4E0 E5C0 FF80 0400 0C00 0C00 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 20 0 BBX 21 19 1 0 BITMAP 0F0038 398060 31C0C0 71C180 61C300 E1C700 618E00 639C00 733800 3E7000 00E3E0 01C670 038E30 071C30 0E1C30 1C1C70 381C70 700CE0 E00780 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 20 0 BBX 20 19 1 0 BITMAP 007C00 01C700 03C700 038700 038700 038E00 03CE00 03F800 07E000 1DE3F0 39E0E0 70F0C0 F0F1C0 F07980 F07B00 F03E00 701E00 3C3F00 1FCFC0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 4 11 BITMAP 3C 7C 78 78 38 38 70 F0 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 9 0 BBX 9 25 2 -5 BITMAP 0080 0180 0300 0600 0E00 1C00 1C00 3800 3800 7800 7000 F000 F000 F000 F000 F000 F000 F000 E000 6000 7000 7000 3000 1800 0800 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 9 0 BBX 9 25 0 -5 BITMAP 0400 0600 0600 0300 0380 0380 0380 0380 0380 0380 0380 0380 0380 0780 0780 0700 0700 0E00 0E00 1C00 1800 3000 6000 4000 8000 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 4 9 BITMAP 0E00 0600 4440 65C0 F3C0 0000 1600 F700 6700 2400 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 16 0 BBX 15 16 2 0 BITMAP 00C0 00C0 0080 0180 0180 0180 0180 0180 FFFE 0300 0300 0300 0300 0200 0600 0600 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 0 -5 BITMAP 3C 7C 7C 78 78 38 38 30 E0 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 16 0 BBX 15 1 2 8 BITMAP FFFE ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 7 0 BBX 5 4 1 0 BITMAP 78 78 F0 F0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 13 0 BBX 16 24 -1 -4 BITMAP 0001 0003 0002 0004 000C 0008 0010 0030 0020 0040 00C0 0080 0100 0300 0200 0400 0C00 0800 1000 3000 2000 4000 C000 8000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 17 0 BBX 15 19 3 0 BITMAP 01F0 0738 0E1C 1C1E 3C1E 381E 781E 781E 701E F01E F01E F01C F03C F03C F038 F070 70E0 39C0 1F00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 17 0 BBX 11 19 3 0 BITMAP 1FE0 01E0 01E0 03C0 03C0 03C0 03C0 03C0 0780 0780 0780 0780 0780 0F00 0F00 0F00 0F00 1F00 FFE0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 17 0 BBX 16 19 2 0 BITMAP 01F8 0E1E 0C0F 0C0F 180F 000F 001E 001C 0038 0060 0180 0200 0400 0800 3000 7000 7FFC FFF8 FFF8 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 17 0 BBX 15 19 3 0 BITMAP 0FF0 0C3C 083C 181C 001E 003C 0038 00F0 1FC0 00E0 0070 0078 0078 0078 0078 4078 C0F0 E1E0 7F00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 17 0 BBX 15 19 2 0 BITMAP 001E 003C 003C 005C 009C 013C 0238 0438 0838 1038 2078 7FFE FFFE FFFE 0070 00F0 00F0 01E0 07FC ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 17 0 BBX 15 19 3 0 BITMAP 0FFE 0FFE 0FFE 1800 1800 1000 1000 1F00 03E0 00F0 0078 0078 0078 0078 0078 4070 C0E0 E1C0 FF00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 17 0 BBX 15 19 3 0 BITMAP 00FC 0386 0E06 1C06 3C06 3800 7800 7BF0 7C78 F83C F03C F03C F03C F03C F038 7078 7070 38E0 0F80 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 17 0 BBX 14 19 5 0 BITMAP 3FFC 7FFC 7FF8 0018 0030 0060 00C0 0180 0180 0300 0600 0E00 1C00 3C00 3800 7800 7000 F000 F000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 17 0 BBX 15 19 2 0 BITMAP 01F8 071C 0E0E 1E0E 1E0E 1E1E 1F1C 0FB8 07E0 0FF0 38F8 787C 703C F01C F01C F018 F038 7860 1F80 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 17 0 BBX 15 19 2 0 BITMAP 03F0 0638 1C1C 1C1E 381E 380E 780E 781E 781E 381E 3C7E 0F9E 003C 003C 4038 4070 C0E0 E1C0 7F00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 7 0 BBX 7 14 1 0 BITMAP 1E 1E 3C 3C 00 00 00 00 00 00 78 78 F0 F0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 7 0 BBX 7 19 1 -5 BITMAP 1E 1E 1E 1C 00 00 00 00 00 00 00 78 78 78 38 30 30 60 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 16 0 BBX 17 16 2 0 BITMAP 000080 000380 000F00 003C00 00E000 038000 0E0000 F80000 780000 1E0000 0F8000 03C000 00F000 003C00 001C00 000400 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 16 0 BBX 16 7 2 4 BITMAP 7FFF 0000 0000 0000 0000 0000 FFFE ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 16 0 BBX 17 16 0 0 BITMAP 100000 1C0000 1E0000 078000 01E000 00F800 003C00 000F00 000F80 003800 00E000 038000 1E0000 780000 E00000 800000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 13 0 BBX 11 19 4 0 BITMAP 3F80 63C0 41E0 C1E0 01E0 01C0 0180 0300 0600 0C00 1800 3800 7800 7800 0000 0000 F000 F000 F000 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 22 0 BBX 20 19 3 0 BITMAP 00FE00 030380 0400C0 180040 107020 218E20 430C30 460C30 C60C30 861C20 8C3820 8C2860 8C7840 8ED880 471F00 400000 200000 181000 07E000 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 20 0 BBX 20 19 0 0 BITMAP 000E00 000E00 001E00 003E00 002F00 006F00 004F00 00CF00 018700 010780 030780 020780 07FF80 0C03C0 0803C0 1803C0 1003C0 3003E0 F80FF0 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 17 0 BBX 17 19 1 0 BITMAP 0FFE00 078F00 078780 078780 070780 070780 070700 0F0E00 0F1C00 0FF000 0E3C00 0E1E00 1E0F00 1E0F00 1E0F00 1C0F00 3C1E00 3C3C00 FFF000 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 19 0 BBX 18 19 3 0 BITMAP 007F80 0383C0 0701C0 0E0180 1C0180 3C0000 380000 780000 780000 F00000 F00000 F00000 F00000 F00000 F80000 780000 7C0000 3E0600 0FF800 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 21 0 BBX 21 19 1 0 BITMAP 1FFF80 0783E0 0780F0 0780F0 078078 078078 0F0078 0F0078 0F0078 0F0078 0F00F0 0E00F0 1E00F0 1E01E0 1E01E0 1E03C0 3E0780 3E1E00 FFF800 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 16 0 BBX 18 19 1 0 BITMAP 0FFFC0 07C0C0 078180 078000 078000 078000 078000 0F8000 0F0600 0FFC00 0F0400 0F0C00 1E0000 1E0000 1E0000 1E0000 1E0600 3E0600 FFFE00 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 16 0 BBX 17 19 1 0 BITMAP 1FFF80 078180 078300 078000 078000 070000 0F0000 0F0000 0F0C00 0FF800 0E0800 1E0000 1E0000 1E0000 1E0000 1C0000 3C0000 3C0000 FF0000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 20 0 BBX 18 19 3 0 BITMAP 00FF80 03C3C0 0701C0 0E0180 1C0180 3C0000 380000 780000 780000 F00000 F03FC0 F00F00 F00F00 F00E00 F01E00 781E00 781E00 3E1E00 0FF000 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 22 0 BBX 23 19 1 0 BITMAP 1FF1FE 07C078 078078 0780F0 0780F0 0780F0 0F00F0 0F00F0 0F00E0 0FFFE0 0F01E0 1E01E0 1E01E0 1E01C0 1E03C0 1E03C0 3C03C0 3C07C0 FF1FF0 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 10 0 BBX 12 19 1 0 BITMAP 0FF0 07C0 0780 0780 0780 0780 0780 0F00 0F00 0F00 0F00 0F00 1E00 1E00 1E00 1E00 1E00 3E00 FF00 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 12 0 BBX 16 23 0 -4 BITMAP 00FF 007C 007C 0078 0078 0078 0078 00F0 00F0 00F0 00F0 00F0 00E0 01E0 01E0 01E0 01E0 01C0 03C0 63C0 C380 E700 FC00 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 19 0 BBX 20 19 1 0 BITMAP 1FE1F0 07C0C0 078180 078300 078400 070800 0F3000 0F6000 0FE000 0FF000 0EF000 0E7800 1E7C00 1E3C00 1E3E00 1C1F00 3C0F00 3C0F80 FF1FE0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 1 0 BITMAP 1FF0 07C0 0780 0780 0780 0780 0F00 0F00 0F00 0F00 0F00 1E00 1E00 1E00 1E00 1E06 3C06 3C0C FFFC ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 24 0 BBX 26 19 1 0 BITMAP 0F800FC0 07801F00 07C01F00 07C02E00 07C03E00 07C05E00 04E0DE00 0CE09C00 0CE11C00 0CE31C00 0C723C00 08763C00 18743C00 18783800 18383800 18307800 30207800 30007800 FC01FC00 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 21 0 BBX 23 19 1 0 BITMAP 0F807E 078038 07C030 07C030 07E030 07F030 06F030 0C7860 0C7860 0C3C60 0C3C60 0C1E60 181E40 180FC0 180FC0 1807C0 1803C0 380380 FC0180 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 22 0 BBX 20 19 3 0 BITMAP 007E00 01C380 0701C0 0E01E0 1C01E0 3C00F0 7800F0 7800F0 7800F0 F801E0 F001E0 F001E0 F001C0 F003C0 F00780 780700 780E00 3C3800 0FE000 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 16 0 BBX 18 19 1 0 BITMAP 0FFF00 07C780 0783C0 0783C0 0783C0 0783C0 078380 0F0780 0F0F00 0F1E00 0FF000 0E0000 1E0000 1E0000 1E0000 1E0000 1E0000 3E0000 FF8000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 22 0 BBX 22 24 3 -5 BITMAP 007E00 018380 0701C0 0E01E0 1C01E0 3C00F0 7800F0 7800F0 7800F0 F001F0 F001E0 F001E0 F001E0 F003C0 F007C0 780780 780F00 3C3E00 0FFC00 007800 002000 001800 000700 0001FC ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 18 0 BBX 18 19 1 0 BITMAP 0FFF00 078780 0783C0 0783C0 0783C0 0783C0 070780 0F0780 0F1F00 0FFC00 0F7800 0E3C00 1E3C00 1E1E00 1E1E00 1E0F00 1C0F00 3C0F80 FF07C0 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 15 0 BBX 15 19 2 0 BITMAP 01FC 070E 0E06 1E0C 1E00 1E00 1F00 1F80 0FC0 07E0 03F0 00F8 0078 0078 0078 6078 C0F0 E1E0 7F80 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 19 0 BBX 18 19 4 0 BITMAP 7FFFC0 E1E0C0 C1E080 C1E180 01C000 03C000 03C000 03C000 03C000 03C000 078000 078000 078000 078000 078000 0F0000 0F0000 0F0000 7FC000 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 20 0 BBX 19 19 4 0 BITMAP FF07E0 3E0180 3C0180 3C0100 3C0100 780100 780300 780200 780200 780200 F00200 F00600 F00400 F00400 F00400 F00800 701800 383000 1FC000 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 19 0 BBX 20 19 3 0 BITMAP FF01F0 7C00C0 3C0080 3C0080 3C0100 1E0300 1E0200 1E0400 1E0C00 1E0800 0F1000 0F1000 0F2000 0F6000 0F4000 078000 078000 070000 060000 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 24 0 BBX 24 19 4 0 BITMAP FE0C1F 781C06 781C0C 383C08 383C18 387C10 385C30 38DC20 389C60 399C40 3D1EC0 3D1E80 3E1F80 3E1F00 3C1F00 3C0E00 3C0E00 380C00 380C00 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 17 0 BBX 20 19 0 0 BITMAP 0FE1F0 07C0C0 03C180 03C100 01E300 01E600 01EC00 00F800 00F000 007800 00F800 01F800 033C00 063C00 0C1E00 081E00 101E00 300F00 F83F80 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 17 0 BBX 18 19 3 0 BITMAP FF07C0 7C0300 3C0200 3C0600 1E0C00 1E1800 1E3000 0F2000 0F6000 07C000 078000 078000 078000 0F0000 0F0000 0F0000 0F0000 1F0000 7FC000 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 18 0 BBX 18 19 2 0 BITMAP 0FFFC0 0C0780 0C0F80 001F00 001E00 003C00 007C00 00F800 01F000 01E000 03C000 07C000 0F8000 0F0000 1E0000 3E0000 7C0600 F80E00 FFFE00 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 9 0 BBX 11 24 1 -4 BITMAP 07E0 0700 0F00 0F00 0E00 0E00 0E00 1E00 1E00 1C00 1C00 1C00 3C00 3C00 3800 3800 3800 7800 7800 7000 7000 7000 F000 FC00 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 13 0 BBX 8 24 4 -4 BITMAP C0 40 40 40 20 20 20 20 10 10 10 10 08 08 08 08 04 04 04 04 02 02 02 03 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 9 0 BBX 11 24 0 -4 BITMAP 07E0 01E0 01C0 01C0 01C0 03C0 03C0 0380 0380 0380 0780 0780 0700 0700 0700 0F00 0F00 0E00 0E00 0E00 1E00 1E00 1C00 FC00 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 16 0 BBX 15 16 1 3 BITMAP 0020 0020 0060 00E0 00F0 01B0 0330 0318 0618 0C18 0C18 180C 300C 300C 6006 C006 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 13 0 BBX 11 1 1 -3 BITMAP FFE0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 4 11 BITMAP 0C 3C 30 70 70 78 78 F8 F0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 16 0 BBX 15 14 2 0 BITMAP 01FE 063E 0C1E 181C 383C 783C 707C 707C F0B8 F1F8 F378 FE78 FC78 787C ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 16 0 BBX 15 20 2 0 BITMAP 3F00 1E00 1E00 1E00 1E00 1E00 1C3C 3C7E 3CFE 3D9E 3F1E 3A1E 7C1C 781C 783C 7838 7030 F060 F8C0 FF00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 2 0 BITMAP 01F8 0638 1C18 3818 3800 7800 7000 F000 F000 F000 F000 F000 7820 1FC0 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 16 0 BBX 16 20 2 0 BITMAP 003F 000F 000F 000E 001E 001E 01FE 063E 0C1C 183C 383C 783C 703C 7078 F0B8 F1F8 F378 FE78 FC78 78FC ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 2 0 BITMAP 03E0 0470 1C78 3878 3870 7070 70E0 F3C0 FF00 F000 F000 F010 7870 1F80 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 11 0 BBX 14 25 2 -5 BITMAP 00FC 038C 070C 0708 0F00 0F00 3FE0 1E00 1E00 1E00 1E00 1C00 3C00 3C00 3C00 3C00 3800 7800 7800 7800 7800 7000 F000 F000 F000 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 16 0 BBX 16 19 1 -5 BITMAP 00FF 031F 060F 0C0E 1C0E 3C1E 383E 783E 785C 78FC 79BC 7F3C 7E38 3C38 0078 8070 C070 70C0 7F00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 17 0 BBX 15 20 2 0 BITMAP 3F00 1F00 0E00 1E00 1E00 1E00 1E1C 1C7E 3CFE 3D9E 3F1E 3E1C 3C1C 7C3C 783C 783C 7838 7078 F078 F07E ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 8 0 BBX 8 19 2 0 BITMAP 0F 0F 1E 00 00 7E 3C 3C 3C 3C 3C 38 78 78 78 78 70 F8 FC ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 10 0 BBX 14 24 -1 -5 BITMAP 003C 003C 0038 0000 0000 01F8 0078 0070 00F0 00F0 00F0 00E0 00E0 01E0 01E0 01E0 01C0 01C0 03C0 03C0 4380 C300 C600 FC00 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 16 0 BBX 14 20 2 0 BITMAP 3F00 1E00 1E00 1E00 1E00 1C00 1C3C 3C3C 3C38 3C70 3CE0 3B80 7F80 7B80 7BC0 79E0 71E0 F0F0 F0F8 F07C ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 8 0 BBX 8 20 2 0 BITMAP 3F 0F 0E 1E 1E 1E 1E 1C 3C 3C 3C 3C 38 78 78 78 78 70 F0 FC ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 25 0 BBX 23 14 2 0 BITMAP 7E381C 3C7C7E 3CFCFE 3D9D9E 3F3D1E 3E3E1C 7C3E1C 783C3C 78383C 70783C 707838 F07838 F07078 F0707E ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 17 0 BBX 15 14 2 0 BITMAP 7E1C 3C7E 3CFE 3D9E 3D1E 3E1C 3C1C 7C3C 783C 783C 7838 7078 F078 F07E ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 2 0 BITMAP 01F0 0638 1C3C 3C3C 383C 783C 703C F03C F038 F038 F070 F060 78C0 3F00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 17 0 BBX 16 19 1 -5 BITMAP 7E1E 1E3F 1E7F 1ECF 1F8F 1D0F 3E0F 3C0E 3C1E 3C1C 3818 7830 7C60 7F80 7800 7000 F000 F000 F000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 2 -5 BITMAP 01FE 063E 0C1E 181C 383C 783C 703C 707C F0B8 F1F8 F378 FE78 FC78 7870 00F0 00F0 00F0 00F0 00E0 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 13 0 BBX 13 14 2 0 BITMAP 7C38 3C70 3CF0 3D90 3F00 3A00 7C00 7800 7800 7800 7000 F000 F000 F000 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 1 0 BITMAP 07F0 0C30 1C30 1C30 1C00 1E00 0F80 07C0 03C0 01E0 41E0 C1C0 E380 7F00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 10 0 BBX 9 18 3 0 BITMAP 0C00 1C00 3C00 3C00 FF80 3C00 3800 7800 7800 7800 7800 7000 F000 F000 F000 F000 7200 3C00 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 17 0 BBX 15 14 3 0 BITMAP FC7E 3C1E 3C1C 383C 783C 783C 787C 7078 70F8 F1F8 F378 FE78 FC78 70FC ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 15 0 BBX 15 14 2 0 BITMAP F83E 7C1E 3C0E 3C0C 3C1C 1E18 1E30 1E60 1EC0 0E80 0F80 0F00 0E00 0C00 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 21 0 BBX 21 14 2 0 BITMAP F81078 783078 383830 3C3830 3C7860 1C7840 1CFCC0 1C9C80 1F1D00 1F1F00 1E1E00 1C1C00 0C1800 081800 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 14 0 BBX 14 14 1 0 BITMAP 3E3C 1E1C 0E1C 0F18 0730 07E0 0780 07C0 0FC0 19E0 71E0 60F0 E0F0 E078 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 15 0 BBX 18 19 0 -5 BITMAP 1F07C0 0F03C0 0781C0 078180 078380 038300 03C600 03CC00 03D800 03F000 01E000 01E000 01C000 018000 030000 060000 0C0000 1C0000 F80000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 15 0 BBX 15 14 1 0 BITMAP 1FFE 183C 1878 3078 00F0 01E0 03C0 0780 0F00 1E00 3E00 7C08 7818 FFF8 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 9 0 BBX 9 24 3 -4 BITMAP 0780 0E00 1E00 1E00 1E00 1E00 1E00 1E00 1C00 1C00 3800 F000 2000 3800 3800 3800 7800 7800 7000 F000 F000 E000 7000 3800 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 7 0 BBX 7 24 1 -4 BITMAP 06 06 0C 0C 0C 0C 0C 18 18 18 18 18 30 30 30 30 30 60 60 60 60 60 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 9 0 BBX 9 24 1 -4 BITMAP 0E00 0700 0380 0380 0780 0780 0F00 0F00 0E00 0E00 0600 0200 0780 0E00 1C00 1C00 3C00 3C00 3C00 3C00 3C00 3C00 3800 F000 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 16 0 BBX 16 6 2 5 BITMAP 1E01 2703 4382 41C2 80E4 8078 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 7 0 BBX 8 19 0 -5 BITMAP 0F 0F 1E 00 00 0C 1C 1C 1C 18 38 38 38 78 78 78 78 F0 F0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 17 0 BBX 13 19 3 0 BITMAP 0040 00C0 01F8 0698 1C98 3898 3998 7900 7100 F100 F100 F100 F300 F200 7A30 3FC0 0600 0400 0400 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 17 0 BBX 15 19 3 0 BITMAP 007C 01CE 0386 0384 0780 0780 0700 0F00 3FE0 0F00 0F00 0E00 1E00 1C00 1C00 3000 FFF0 FFF0 FFE0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 17 0 BBX 19 17 1 1 BITMAP 100020 0800E0 0C0180 07FB00 030E00 060600 0C0600 0C0600 0C0600 0C0600 0C0C00 0C0C00 0E3800 1BFC00 300600 400200 800100 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 17 0 BBX 18 19 3 0 BITMAP FE07C0 7C0300 3C0200 3C0400 1E0C00 1E1800 0F1000 0F2000 07C000 078000 3FF000 078000 070000 7FF000 0F0000 0F0000 0F0000 1F0000 7F8000 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 7 0 BBX 7 24 1 -4 BITMAP 06 06 0C 0C 0C 0C 0C 18 18 18 18 00 00 30 30 30 30 60 60 60 60 60 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 17 0 BBX 15 24 2 -5 BITMAP 01FC 070E 0E06 0E04 1E00 1E00 1F80 0FE0 07F0 09F8 187C 383C 3818 3C18 3F30 1FE0 07F0 01F0 00F0 0070 4070 C060 E1C0 7F00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 16 0 BBX 8 3 8 16 BITMAP E7 E7 E7 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 22 0 BBX 20 19 3 0 BITMAP 01F800 060600 180100 300080 20FC40 418660 430420 C60030 860030 8E0030 8E0030 CE0030 460020 470860 21F040 300080 180100 060600 01F800 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 12 0 BBX 11 11 3 8 BITMAP 0FE0 18E0 31E0 71C0 71C0 E3C0 E7C0 EDC0 F9C0 F3C0 63E0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 14 0 BBX 13 12 2 1 BITMAP 0210 0738 0E70 1CE0 39C0 77C0 F380 73C0 39C0 38C0 18E0 0C40 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 16 0 BBX 15 7 3 4 BITMAP FFFE 0006 0006 000C 000C 000C 000C ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 8 0 BBX 6 1 2 9 BITMAP FC ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 17 0 BBX 11 13 5 6 BITMAP 1F00 3080 4040 4FA0 89A0 89A0 8F20 8A20 9B20 5B20 4040 3080 1F00 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 16 0 BBX 8 1 8 18 BITMAP FF ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 7 0 BBX 4 5 5 14 BITMAP 60 90 90 90 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 16 0 BBX 17 16 1 0 BITMAP 006000 006000 006000 006000 006000 006000 3FFF80 00C000 00C000 00C000 00C000 008000 018000 000000 000000 FFFE00 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 10 0 BBX 9 11 -16 8 BITMAP 1F00 2380 2180 0380 0300 0E00 1800 2000 4000 FF00 FE00 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 10 0 BBX 9 11 -16 8 BITMAP 3F00 3380 2380 0300 0600 3E00 0700 0300 8700 8600 FC00 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 16 0 BBX 7 4 9 16 BITMAP 1E 38 70 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 18 0 BBX 16 18 2 -4 BITMAP 7E3F 1E0F 1E0F 1E0E 1C1E 3C1E 3C1E 3C3E 3C7C 38FC 79BC 7FBC 7F3C 7E7E 7000 F000 F000 F000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 17 0 BBX 11 23 4 -4 BITMAP 3FE0 7E20 FE20 FE60 FC60 FC40 FC40 7C40 3CC0 08C0 0880 0880 0880 1980 1180 1100 1100 1100 3100 3300 2200 2200 2200 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 16 0 BBX 4 3 8 7 BITMAP 70 F0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 16 0 BBX 5 6 4 -5 BITMAP 30 60 38 18 18 F0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 10 0 BBX 6 11 -17 8 BITMAP 3C 0C 1C 18 18 18 18 38 30 30 FC ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 12 0 BBX 12 11 3 8 BITMAP 07C0 1CE0 38E0 70F0 70F0 E0E0 E0E0 E0C0 E180 7300 3C00 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 14 0 BBX 13 12 1 1 BITMAP 1180 38C0 18E0 1CE0 1E70 0E78 1F70 1CE0 39C0 7380 E700 4200 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 21 0 BBX 21 19 4 0 BITMAP 3C0038 0C0060 1C00C0 180180 180300 180600 180C00 381800 303860 3070E0 FCE1C0 00C6C0 018CC0 0318C0 0630C0 0C3FE0 180180 300180 E007C0 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 21 0 BBX 21 19 4 0 BITMAP 3C0038 0C0060 1C00C0 180180 180300 180600 180C00 381800 303FC0 3078E0 FCE860 00C0E0 0180C0 030380 060600 0C0800 181000 303FC0 E03F80 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 21 0 BBX 22 19 5 0 BITMAP 3F001C 338030 238060 0300C0 060180 3E0300 070600 030C00 871C30 863870 FC70E0 006360 00C660 018C60 031860 061FF0 0C00C0 1800C0 7003E0 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 13 0 BBX 11 19 1 -5 BITMAP 01E0 01E0 01E0 0000 0000 03C0 03C0 0380 0300 0600 0C00 1800 3000 7000 F000 F060 F040 78C0 3F80 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 20 0 BBX 20 24 0 0 BITMAP 001C00 000E00 000600 000300 000000 000E00 000E00 001E00 003E00 002F00 006F00 004F00 00CF00 018700 010780 030780 020780 07FF80 0C03C0 0803C0 1803C0 1003C0 3003E0 F80FF0 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 20 0 BBX 20 24 0 0 BITMAP 0001E0 000380 000700 000C00 000000 000E00 000E00 001E00 003E00 002F00 006F00 004F00 00CF00 018700 010780 030780 020780 07FF80 0C03C0 0803C0 1803C0 1003C0 3003E0 F80FF0 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 20 0 BBX 20 24 0 0 BITMAP 000F00 001F80 003980 0060C0 000000 000E00 000E00 001E00 003E00 002F00 006F00 004F00 00CF00 018700 010780 030780 020780 07FF80 0C03C0 0803C0 1803C0 1003C0 3003E0 F80FF0 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 20 0 BBX 20 23 0 0 BITMAP 000E20 001FC0 002380 000000 000E00 000E00 001E00 003E00 002F00 006F00 004F00 00CF00 018700 010780 030780 020780 07FF80 0C03C0 0803C0 1803C0 1003C0 3003E0 F80FF0 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 20 0 BBX 20 23 0 0 BITMAP 0039C0 0039C0 0039C0 000000 000E00 000E00 001E00 003E00 002F00 006F00 004F00 00CF00 018700 010780 030780 020780 07FF80 0C03C0 0803C0 1803C0 1003C0 3003E0 F80FF0 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 20 0 BBX 20 24 0 0 BITMAP 000600 000900 000900 000600 000000 000E00 000E00 001E00 003E00 002F00 006F00 004F00 00CF00 018700 010780 030780 020780 07FF80 0C03C0 0803C0 1803C0 1003C0 3003E0 F80FF0 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 25 0 BBX 27 19 0 0 BITMAP 0001FFE0 0003E060 0007E0C0 000DC000 000BC000 0013C000 0033C000 0063C300 0043FF00 00878300 01878300 03078000 03FF8000 06070000 0C0F0000 180F0000 380F0300 700F0300 F87FFF00 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 19 0 BBX 18 24 3 -5 BITMAP 007F80 0383C0 0701C0 0E0180 1C0180 3C0000 380000 780000 780000 F00000 F00000 F00000 F00000 F00000 F80000 780000 7C0000 3E0600 0FF800 040000 070000 030000 030000 1E0000 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 16 0 BBX 18 24 1 0 BITMAP 007000 003800 001800 000C00 000000 0FFFC0 07C0C0 078180 078000 078000 078000 078000 0F8000 0F0600 0FFC00 0F0400 0F0C00 1E0000 1E0000 1E0000 1E0000 1E0600 3E0600 FFFE00 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 16 0 BBX 18 24 1 0 BITMAP 000F00 001C00 003800 006000 000000 0FFFC0 07C0C0 078180 078000 078000 078000 078000 0F8000 0F0600 0FFC00 0F0400 0F0C00 1E0000 1E0000 1E0000 1E0000 1E0600 3E0600 FFFE00 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 16 0 BBX 18 24 1 0 BITMAP 003C00 007E00 00E600 018300 000000 0FFFC0 07C0C0 078180 078000 078000 078000 078000 0F8000 0F0600 0FFC00 0F0400 0F0C00 1E0000 1E0000 1E0000 1E0000 1E0600 3E0600 FFFE00 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 16 0 BBX 18 23 1 0 BITMAP 00E700 00E700 00E700 000000 0FFFC0 07C0C0 078180 078000 078000 078000 078000 0F8000 0F0600 0FFC00 0F0400 0F0C00 1E0000 1E0000 1E0000 1E0000 1E0600 3E0600 FFFE00 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 10 0 BBX 12 24 1 0 BITMAP 0700 0380 0180 00C0 0000 0FF0 07C0 0780 0780 0780 0780 0780 0F00 0F00 0F00 0F00 0F00 1E00 1E00 1E00 1E00 1E00 3E00 FF00 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 10 0 BBX 13 24 1 0 BITMAP 0078 00E0 01C0 0300 0000 0FF0 07C0 0780 0780 0780 0780 0780 0F00 0F00 0F00 0F00 0F00 1E00 1E00 1E00 1E00 1E00 3E00 FF00 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 10 0 BBX 13 24 1 0 BITMAP 01E0 03F0 0730 0C18 0000 0FF0 07C0 0780 0780 0780 0780 0780 0F00 0F00 0F00 0F00 0F00 1E00 1E00 1E00 1E00 1E00 3E00 FF00 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 10 0 BBX 12 23 1 0 BITMAP 0E70 0E70 0E70 0000 0FF0 07C0 0780 0780 0780 0780 0780 0F00 0F00 0F00 0F00 0F00 1E00 1E00 1E00 1E00 1E00 3E00 FF00 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 21 0 BBX 21 19 1 0 BITMAP 1FFF80 0783E0 0780F0 0780F0 078078 078078 0F0078 0F0078 0F0078 7FF078 0F00F0 1E00F0 1E00F0 1E01E0 1E01E0 1E03C0 3E0780 3E1E00 FFF800 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 21 0 BBX 23 23 1 0 BITMAP 000E20 001FC0 002380 000000 0F807E 078038 07C030 07C030 07E030 07F030 06F030 0C7860 0C7860 0C3C60 0C3C60 0C1E60 181E40 180FC0 180FC0 1807C0 1803C0 380380 FC0180 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 22 0 BBX 20 24 3 0 BITMAP 007000 003800 001800 000C00 000000 007E00 01C380 0701C0 0E01E0 1C01E0 3C00F0 7800F0 7800F0 7800F0 F801E0 F001E0 F001E0 F001C0 F003C0 F00780 780700 780E00 3C3800 0FE000 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 22 0 BBX 20 24 3 0 BITMAP 000780 000E00 001C00 003000 000000 007E00 01C380 0701C0 0E01E0 1C01E0 3C00F0 7800F0 7800F0 7800F0 F801E0 F001E0 F001E0 F001C0 F003C0 F00780 780700 780E00 3C3800 0FE000 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 22 0 BBX 20 24 3 0 BITMAP 003C00 007E00 00E600 018300 000000 007E00 01C380 0701C0 0E01E0 1C01E0 3C00F0 7800F0 7800F0 7800F0 F801E0 F001E0 F001E0 F001C0 F003C0 F00780 780700 780E00 3C3800 0FE000 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 22 0 BBX 20 23 3 0 BITMAP 003880 007F00 008E00 000000 007E00 01C380 0701C0 0E01E0 1C01E0 3C00F0 7800F0 7800F0 7800F0 F801E0 F001E0 F001E0 F001C0 F003C0 F00780 780700 780E00 3C3800 0FE000 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 22 0 BBX 20 23 3 0 BITMAP 00E700 00E700 00E700 000000 007E00 01C380 0701C0 0E01E0 1C01E0 3C00F0 7800F0 7800F0 7800F0 F801E0 F001E0 F001E0 F001C0 F003C0 F00780 780700 780E00 3C3800 0FE000 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 16 0 BBX 18 16 1 0 BITMAP 080080 1801C0 1C0380 0E0700 070C00 031800 01B000 01E000 01E000 036000 063000 0C3800 381C00 700E00 E00600 400400 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 22 0 BBX 23 19 1 0 BITMAP 001F86 00E1E8 0180F0 078078 0700F8 0E01F8 1E0378 1C0478 3C0878 3C1078 3C2078 3C4070 3C80F0 3F00E0 3E01E0 3C03C0 1E0700 3F0E00 E3F000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 20 0 BBX 19 24 4 0 BITMAP 01C000 00E000 006000 003000 000000 FF07E0 3E0180 3C0180 3C0100 3C0100 780100 780300 780200 780200 780200 F00200 F00600 F00400 F00400 F00400 F00800 701800 383000 1FC000 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 20 0 BBX 19 24 4 0 BITMAP 001E00 003800 007000 00C000 000000 FF07E0 3E0180 3C0180 3C0100 3C0100 780100 780300 780200 780200 780200 F00200 F00600 F00400 F00400 F00400 F00800 701800 383000 1FC000 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 20 0 BBX 19 24 4 0 BITMAP 007800 00FC00 01CC00 030600 000000 FF07E0 3E0180 3C0180 3C0100 3C0100 780100 780300 780200 780200 780200 F00200 F00600 F00400 F00400 F00400 F00800 701800 383000 1FC000 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 20 0 BBX 19 23 4 0 BITMAP 039C00 039C00 039C00 000000 FF07E0 3E0180 3C0180 3C0100 3C0100 780100 780300 780200 780200 780200 F00200 F00600 F00400 F00400 F00400 F00800 701800 383000 1FC000 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 17 0 BBX 18 24 3 0 BITMAP 003C00 007000 00E000 018000 000000 FF07C0 7C0300 3C0200 3C0600 1E0C00 1E1800 1E3000 0F2000 0F6000 07C000 078000 078000 078000 0F0000 0F0000 0F0000 0F0000 1F0000 7FC000 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 16 0 BBX 17 19 1 0 BITMAP 0FF000 07C000 078000 078000 07FE00 078F00 070780 0F0780 0F0780 0F0780 0F0700 0E0F00 1E0E00 1E3C00 1FF000 1E0000 3C0000 3C0000 FF0000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 17 0 BBX 16 25 1 -5 BITMAP 00FC 039E 078E 070E 0F0E 0F1C 0F18 0E30 1E60 1E70 1EF8 1E7C 1C3E 3C1E 3C0F 3C07 3C07 3987 798E 79F8 7800 7800 7000 F000 F000 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 2 0 BITMAP 01C0 00E0 0060 0030 0000 01FE 063E 0C1E 181C 383C 783C 707C 707C F0B8 F1F8 F378 FE78 FC78 787C ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 2 0 BITMAP 001E 0038 0070 00C0 0000 01FE 063E 0C1E 181C 383C 783C 707C 707C F0B8 F1F8 F378 FE78 FC78 787C ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 2 0 BITMAP 0078 00FC 01CC 0306 0000 01FE 063E 0C1E 181C 383C 783C 707C 707C F0B8 F1F8 F378 FE78 FC78 787C ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 2 0 BITMAP 00E2 01FC 0238 0000 01FE 063E 0C1E 181C 383C 783C 707C 707C F0B8 F1F8 F378 FE78 FC78 787C ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 2 0 BITMAP 039C 039C 039C 0000 01FE 063E 0C1E 181C 383C 783C 707C 707C F0B8 F1F8 F378 FE78 FC78 787C ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 2 0 BITMAP 0030 0048 0048 0030 0000 01FE 063E 0C1E 181C 383C 783C 707C 707C F0B8 F1F8 F378 FE78 FC78 787C ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 24 0 BBX 22 14 2 0 BITMAP 01FEF8 063F3C 0C1E3C 181C1C 383C3C 783C38 703C78 707CE0 F0FF80 F1B800 F33800 FE3C04 FC1E1C 780FE0 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 14 0 BBX 13 19 2 -5 BITMAP 01F8 0638 1C18 3818 3800 7800 7000 F000 F000 F000 F000 F000 7820 1FC0 3000 1C00 0C00 0C00 7800 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 14 0 BBX 13 19 2 0 BITMAP 0380 01C0 00C0 0060 0000 03E0 0470 1C78 3878 3870 7070 70E0 F3C0 FF00 F000 F000 F010 7870 1F80 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 14 0 BBX 14 19 2 0 BITMAP 003C 0070 00E0 0180 0000 03E0 0470 1C78 3878 3870 7070 70E0 F3C0 FF00 F000 F000 F010 7870 1F80 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 14 0 BBX 13 19 2 0 BITMAP 01E0 03F0 0730 0C18 0000 03E0 0470 1C78 3878 3870 7070 70E0 F3C0 FF00 F000 F000 F010 7870 1F80 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 2 0 BITMAP 0738 0738 0738 0000 03E0 0470 1C78 3878 3870 7070 70E0 F3C0 FF00 F000 F000 F010 7870 1F80 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 8 0 BBX 8 19 2 0 BITMAP 1C 0E 06 03 00 7E 3E 3C 3C 3C 3C 38 38 78 78 78 78 F8 FC ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 8 0 BBX 11 19 2 0 BITMAP 01E0 0380 0700 0C00 0000 7E00 3E00 3C00 3C00 3C00 3C00 3800 3800 7800 7800 7800 7800 F800 FC00 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 8 0 BBX 10 19 2 0 BITMAP 0F00 1F80 3980 60C0 0000 7E00 3E00 3C00 3C00 3C00 3C00 3800 3800 7800 7800 7800 7800 F800 FC00 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 8 0 BBX 10 18 2 0 BITMAP 39C0 39C0 39C0 0000 7E00 3E00 3C00 3C00 3C00 3C00 3800 3800 7800 7800 7800 7800 F800 FC00 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 16 0 BBX 14 20 2 0 BITMAP 1F08 07F0 01E0 0370 0670 0038 03FC 063C 1C3C 383C 383C 703C 703C F03C F038 F038 F070 F860 78C0 1F00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 17 0 BBX 15 18 2 0 BITMAP 00E2 01FC 0238 0000 7E1C 3C7E 3CFE 3D9E 3D1E 3E1C 3C1C 7C3C 783C 783C 7838 7078 F078 F07E ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 2 0 BITMAP 01C0 00E0 0060 0030 0000 01F0 0638 1C3C 3C3C 383C 783C 703C F03C F038 F038 F070 F060 78C0 3F00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 2 0 BITMAP 003C 0070 00E0 0180 0000 01F0 0638 1C3C 3C3C 383C 783C 703C F03C F038 F038 F070 F060 78C0 3F00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 2 0 BITMAP 00F0 01F8 0398 060C 0000 01F0 0638 1C3C 3C3C 383C 783C 703C F03C F038 F038 F070 F060 78C0 3F00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 2 0 BITMAP 01C4 03F8 0470 0000 01F0 0638 1C3C 3C3C 383C 783C 703C F03C F038 F038 F070 F060 78C0 3F00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 2 0 BITMAP 039C 039C 039C 0000 01F0 0638 1C3C 3C3C 383C 783C 703C F03C F038 F038 F070 F060 78C0 3F00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 16 0 BBX 15 14 2 0 BITMAP 01C0 01C0 01C0 0000 0000 0000 0000 FFFE 0000 0000 0000 0700 0700 0700 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 16 0 BBX 17 14 1 0 BITMAP 00FB80 031E00 0E1E00 1C1F00 1C3F00 3C6F00 38CE00 798E00 7B1E00 7E1C00 7C3800 783000 3C6000 DF8000 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 17 0 BBX 15 19 3 0 BITMAP 01C0 00E0 0060 0030 0000 FC7E 3C1E 3C1C 383C 783C 783C 787C 7078 70F8 F1F8 F378 FE78 FC78 70FC ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 17 0 BBX 15 19 3 0 BITMAP 003C 0070 00E0 0180 0000 FC7E 3C1E 3C1C 383C 783C 783C 787C 7078 70F8 F1F8 F378 FE78 FC78 70FC ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 17 0 BBX 15 19 3 0 BITMAP 00F0 01F8 0398 060C 0000 FC7E 3C1E 3C1C 383C 783C 783C 787C 7078 70F8 F1F8 F378 FE78 FC78 70FC ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 17 0 BBX 15 18 3 0 BITMAP 039C 039C 039C 0000 FC7E 3C1E 3C1C 383C 783C 783C 787C 7078 70F8 F1F8 F378 FE78 FC78 70FC ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 15 0 BBX 18 24 0 -5 BITMAP 000780 000E00 001C00 003000 000000 1F07C0 0F03C0 0781C0 078180 078380 038300 03C600 03CC00 03D800 03F000 01E000 01E000 01C000 018000 030000 060000 0C0000 1C0000 F80000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 17 0 BBX 16 23 1 -5 BITMAP 3F00 1F00 0F00 0E00 0E1E 1E3F 1E7F 1ECF 1F8F 1D0F 3E0F 3C0E 3C1E 3C1C 3818 7830 7C60 7F80 7800 7000 F000 F000 F000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 15 0 BBX 18 23 0 -5 BITMAP 00E700 00E700 00E700 000000 1F07C0 0F03C0 0781C0 078180 078380 038300 03C600 03CC00 03D800 03F000 01E000 01E000 01C000 018000 030000 060000 0C0000 1C0000 F80000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 18 25 1 -5 BITMAP 00FFC0 0187C0 038380 070780 0F0780 0F0780 3FE780 0E0700 1E0F00 1E0F00 1E0F00 1E0F00 1C0E00 3C1E00 3C1E00 3C1E00 3C1E00 381C00 783C00 783F00 780000 780000 700000 F00000 F00000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 11 1 3 9 BITMAP FFE0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 13 23 4 -4 BITMAP 03C0 03C0 0380 0380 0380 0780 E718 FFF8 C738 0700 0F00 0E00 0E00 0E00 1E00 1E00 1E00 1C00 1C00 3C00 3C00 3C00 3C00 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 18 24 2 0 BITMAP 00C180 006700 007E00 003C00 000000 0FFFC0 0C0780 0C0F80 001F00 001E00 003C00 007C00 00F800 01F000 01E000 03C000 07C000 0F8000 0F0000 1E0000 3E0000 7C0600 F80E00 FFFE00 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 24 0 BBX 22 14 2 0 BITMAP 03F0F8 06391C 1C3E1C 381E1C 383E1C 703C1C 703C38 F03CF0 F03FC0 F03C00 F07C00 F07C04 78FE1C 1F8FF0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 18 23 3 0 BITMAP 039C00 039C00 039C00 000000 FF07C0 7C0300 3C0200 3C0600 1E0C00 1E1800 1E3000 0F2000 0F6000 07C000 078000 078000 078000 0F0000 0F0000 0F0000 0F0000 1F0000 7FC000 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 14 2 0 BITMAP 7E 3E 3C 3C 3C 3C 38 38 78 78 78 78 F8 FC ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 10 20 1 0 BITMAP 1F80 0F80 0700 0F00 0F00 0F00 0F00 0E00 1EC0 1F80 7E00 DE00 1C00 3C00 3C00 3C00 3C00 7800 7800 7E00 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 1 0 BITMAP 1FF0 07C0 0780 0780 0780 0700 0F00 0FE0 0F80 3F00 6F00 0E00 1E00 1E00 1E00 1E06 3C06 3C0E FFFC ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 14 23 3 -4 BITMAP 01E0 01E0 01E0 01C0 01C0 01C0 33CC 3FFC 739C 0380 0380 0780 0700 0700 E738 FFF0 C730 0F00 0E00 0E00 0E00 1E00 1E00 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 17 25 2 -5 BITMAP 00F800 03B380 071780 073700 0F0000 0F0000 3FFF00 1E0F00 1E0E00 1E0E00 1C1E00 1C1E00 3C1E00 3C1C00 3C1C00 383C00 383C00 783C00 783C00 783E00 780000 700000 F00000 F00000 F00000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 1 1 BITMAP 10 38 1C 1C 0E 0F 0E 1C 38 70 E0 40 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 28 0 BBX 27 19 3 0 BITMAP 007FFFE0 0387E060 0703E060 0E03C0C0 1C03C000 3C03C000 7803C000 7803C000 7803C300 F007FF00 F0078300 F0078300 F0078000 F0078000 F00F0000 780F0000 781F0300 3C3F0300 0FFFFF00 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 26 0 BBX 24 1 3 8 BITMAP FFFFFF ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 9 4 8 16 BITMAP C180 6700 7E00 3C00 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 5 4 5 -4 BITMAP 70 E0 E8 78 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 10 4 8 16 BITMAP 1DC0 3300 6600 CC00 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 2 1 BITMAP 02 07 0E 1C 38 70 F0 70 38 38 1C 08 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 4 3 9 16 BITMAP 70 F0 E0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 9 4 8 16 BITMAP 8180 E300 7E00 3C00 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 9 9 5 4 BITMAP 3E00 7F00 FF80 FF80 FF80 FF80 FF80 7F00 3E00 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 9 3 7 16 BITMAP 3880 7F00 8E00 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 9 4 7 16 BITMAP 1E00 3F00 7300 C180 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 8 4 12 BITMAP 0820 38E0 31C0 6180 6380 7BC0 F3C0 F3C0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 4 12 BITMAP F0 F0 F0 60 60 60 60 60 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 14 19 1 0 BITMAP 060C 0338 03F0 01E0 0000 07F0 0C30 1C30 1C30 1C00 1E00 0F80 07C0 03C0 01E0 41E0 C1C0 E380 7F00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 4 4 10 16 BITMAP 60 90 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 0 -5 BITMAP 3C 7C 7C 78 78 38 38 30 E0 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 14 23 5 -4 BITMAP 00FC 039C 070C 0708 0F00 0E00 1E00 1E00 1E00 FFC0 1C00 3C00 3C00 3C00 3C00 3800 7800 7800 7800 7800 7000 F000 F000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 27 0 BBX 26 10 4 9 BITMAP FFEF87C0 CE23C700 8E67CF00 0E07DF00 0C07D700 1C06F600 1C06EE00 1C06CE00 1C0CCE00 7E1C0F00 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 21 19 -7 0 BITMAP 000038 000060 0000C0 000180 000300 000600 000C00 001800 003800 007000 00E000 00C000 018000 030000 060000 0C0000 180000 300000 E00000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 5 4 9 16 BITMAP E0 70 30 18 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 30 0 BBX 31 19 1 0 BITMAP 0F003800 39806000 31C0C000 71C18000 61C30000 E1C70000 618E0000 639C0000 73380000 3E700000 00E3E078 01C671CC 038E338E 071C338E 0E1C330E 1C1C770E 381C731C 700CE398 E00781F0 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 26 0 BBX 21 3 3 0 BITMAP E07038 E07038 E07038 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 8 4 12 BITMAP 39E0 79E0 79E0 7BC0 38C0 30C0 7180 C300 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 15 24 2 0 BITMAP 0306 019C 01F8 00F0 0000 01FC 070E 0E06 1E0C 1E00 1E00 1F00 1F80 0FC0 07E0 03F0 00F8 0078 0078 0078 6078 C0F0 E1E0 7F80 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 9 0 -5 BITMAP 39E0 79E0 79E0 7BC0 38C0 30C0 7180 E380 8200 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 15 19 1 0 BITMAP 0306 019C 01F8 00F0 0000 1FFE 183C 1878 3078 00F0 01E0 03C0 0780 0F00 1E00 3E00 7C08 7818 FFF8 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lubBI24.bdf100644 1750 1750 154333 5413747533 15207 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-DemiBold-I-Normal--34-240-100-100-P-203-ISO8859-1 SIZE 24 100 100 FONTBOUNDINGBOX 87 39 -22 -7 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "DemiBold" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 34 POINT_SIZE 240 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 203 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 31 FONT_DESCENT 8 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 11 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 9 0 BBX 10 25 2 0 BITMAP 07C0 07C0 0F80 0F80 0F80 0F80 0F80 0F00 0F00 0F00 1E00 1E00 1E00 1E00 1C00 1C00 1C00 1800 0000 0000 0000 7C00 7C00 F800 F800 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 15 0 BBX 12 10 6 16 BITMAP F9F0 F8F0 F8F0 70F0 70F0 70E0 70E0 7060 7060 2060 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 22 0 BBX 21 25 3 0 BITMAP 000C38 001830 001870 003060 0030E0 0060C0 0061C0 3FFFF8 3FFFF8 01C300 018700 038600 030E00 070C00 060C00 FFFFE0 FFFFE0 0C3000 183000 186000 306000 30E000 70C000 60C000 E18000 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 22 0 BBX 19 32 4 -4 BITMAP 000C00 000C00 001800 00FFC0 03FFE0 07D9E0 0798E0 0F10C0 0F10C0 0F3000 0F3000 0FB000 07E000 07E000 03F000 00F800 007E00 00FF00 00DF00 00CF00 008F00 018F00 618F00 619F00 619E00 F97C00 FFF800 7FE000 030000 030000 030000 020000 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 26 0 BBX 26 25 2 0 BITMAP 07C001C0 1FF00380 3C700700 38780E00 78781C00 78783800 70787000 7070F000 70F1E000 79E3C000 3FC78000 1F0F0000 000E3E00 001C7F80 0038F380 0071E3C0 00E3C3C0 01C3C3C0 0383C3C0 070383C0 0F038380 1E038780 3C03CF00 7801FE00 F000F800 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 26 0 BBX 26 25 2 0 BITMAP 000F8000 003FE000 00F8F000 00F0F000 01F0F000 01E0F000 01E0F000 01F1E000 01F3C000 00FF0000 01FC0000 07F83FC0 1E783FC0 3C7C0F00 783C0E00 783E0E00 F81F1C00 F81F1800 F80FB800 F80FF000 F807E000 7C07E000 7E07F000 1FFDFE00 07E1FE00 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 5 15 BITMAP 3F 3F 3E 3E 7E 1E 1C 1C 38 F0 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 11 0 BBX 12 32 3 -6 BITMAP 0010 0030 0060 01C0 0380 0380 0700 0F00 1E00 1E00 3C00 3C00 7C00 7C00 7800 F800 F800 F800 F800 F800 F800 F800 F800 F800 7800 7800 7800 3800 3800 1C00 0C00 0400 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 11 0 BBX 12 32 0 -6 BITMAP 0200 0300 0180 01C0 01C0 00E0 00E0 00F0 00F0 00F0 00F0 00F0 00F0 00F0 01F0 01F0 01F0 01F0 01E0 03E0 03E0 03C0 03C0 0780 0700 0F00 0E00 1C00 3800 7000 C000 8000 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 15 0 BBX 13 12 5 13 BITMAP 0380 0380 0300 6318 7B78 FCF8 0000 0B00 3D80 79C0 71E0 2100 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 21 0 BBX 20 21 3 0 BITMAP 001800 003800 003800 003800 003000 003000 003000 007000 007000 007000 FFFFF0 FFFFF0 00E000 00E000 00E000 00C000 00C000 00C000 01C000 01C000 018000 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 -7 BITMAP 3F 3F 3F 3E 7E 7E 1E 1E 1C 3C 38 F0 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 21 0 BBX 20 2 3 10 BITMAP FFFFF0 FFFFF0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 9 0 BBX 6 5 2 0 BITMAP 7C 7C FC F8 F8 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 17 0 BBX 23 32 0 -6 BITMAP 00000E 00000C 000018 000038 000030 000060 0000E0 0000C0 000180 000380 000300 000700 000600 000C00 001C00 001800 003000 007000 006000 00E000 00C000 018000 038000 030000 060000 0E0000 0C0000 1C0000 380000 300000 700000 E00000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 22 0 BBX 20 25 3 0 BITMAP 007E00 01FF80 03C3C0 0783E0 0F01E0 1F01E0 1E01F0 3E01F0 3E01F0 7C01F0 7C01F0 7C01F0 FC03F0 F803E0 F803E0 F803E0 F807C0 F807C0 F80780 F80F80 781F00 7C1E00 3C7C00 1FF800 07C000 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 22 0 BBX 14 25 4 0 BITMAP 0FFC 0FFC 00FC 00F8 00F8 00F8 00F8 00F8 01F0 01F0 01F0 01F0 01F0 03E0 03E0 03E0 03E0 03E0 07C0 07C0 07C0 07C0 1FC0 FFFC FFFC ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 22 0 BBX 20 25 3 0 BITMAP 007F00 07FFC0 0787E0 0703F0 0601F0 0E01F0 0C01F0 0001F0 0003E0 0007E0 000780 000F00 003E00 007800 00E000 038000 070000 0E0000 1C0000 380000 380000 7FFF80 FFFF80 FFFF00 FFFF00 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 22 0 BBX 19 25 3 0 BITMAP 01FE00 07FF80 070FC0 0603E0 0603E0 0E03E0 0003E0 0003C0 000780 000F00 003E00 07F000 07FE00 003F00 001F80 000F80 000F80 000F80 000F80 600F80 601F00 E03F00 F07E00 FFF800 3FE000 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 22 0 BBX 19 25 3 0 BITMAP 0003E0 0007C0 000FC0 001FC0 001BC0 0037C0 006780 00C780 018780 038780 070F80 0E0F00 1C0F00 380F00 700F00 7FFFE0 FFFFE0 FFFFC0 001E00 001E00 003E00 003E00 007E00 01FF80 01FF80 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 22 0 BBX 20 25 4 0 BITMAP 07FFF0 07FFF0 07FFF0 07FFE0 040000 0C0000 0C0000 0C0000 080000 0FC000 1FF800 00FE00 003F00 001F00 000F80 000F80 000F80 000F80 000F80 600F00 601F00 603E00 F07C00 FFF000 7F8000 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 22 0 BBX 20 25 4 0 BITMAP 003FC0 00FFF0 01E0F0 07C070 0F8060 1F0060 1F0000 3E0000 3E0000 7C7E00 7DFF00 7F0F80 FE07C0 FC07C0 F807C0 F807C0 F807C0 F807C0 F807C0 F80780 780F80 7C1F00 3E3E00 1FF800 07E000 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 22 0 BBX 19 25 6 0 BITMAP 3FFFE0 3FFFE0 3FFFE0 7FFFC0 000180 000300 000700 000E00 001C00 003800 003000 007000 00E000 01C000 03C000 078000 0F0000 1F0000 3E0000 3E0000 7C0000 7C0000 FC0000 F80000 F80000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 22 0 BBX 20 25 3 0 BITMAP 003F80 01FFC0 03E3E0 0781F0 0F80F0 0F00F0 0F81F0 0F81E0 0FC3C0 07F780 03FE00 01FE00 07FF00 1E7F80 3C1FC0 7C0FE0 7807E0 F803E0 F803E0 F803C0 FC03C0 FC0780 7E0F00 3FFC00 0FE000 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 22 0 BBX 20 25 3 0 BITMAP 007E00 01FF80 07C7C0 0F83E0 0F01E0 1E01F0 3E01F0 3E01F0 3E01F0 3E01F0 3E01F0 3E03F0 3E07F0 1F0FE0 0FFBE0 07E3E0 0007C0 0007C0 000F80 600F80 601F00 E03E00 F07800 FFF000 3FC000 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 9 0 BBX 9 18 2 0 BITMAP 0F80 0F80 1F00 1F00 1F00 0000 0000 0000 0000 0000 0000 0000 0000 7C00 7C00 7C00 F800 F800 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 9 0 BBX 10 25 1 -7 BITMAP 07C0 07C0 0F80 0F80 0F80 0000 0000 0000 0000 0000 0000 0000 0000 0000 3E00 3E00 3E00 7E00 1C00 1C00 1C00 3800 7800 F000 C000 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 21 0 BBX 22 21 3 0 BITMAP 000004 00001C 00007C 0001F0 0007C0 001F00 007C00 03F000 0FC000 3E0000 F80000 3E0000 0F8000 07E000 01F000 007C00 003F00 000F80 0003E0 0000C0 000040 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 21 0 BBX 21 9 2 5 BITMAP 7FFFF8 7FFFF8 000000 000000 000000 000000 000000 FFFFF0 FFFFF0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 21 0 BBX 22 21 1 0 BITMAP 080000 0C0000 1F0000 07C000 03F000 00F800 003E00 001F80 0007C0 0001F0 00007C 0001F0 000FC0 003F00 00F800 03E000 0F8000 3E0000 F80000 E00000 800000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 17 0 BBX 15 25 5 0 BITMAP 0FF0 7FF8 78FC 707E 603E E03E 003E 003C 0078 0070 00E0 01C0 0380 0F00 1E00 1E00 3E00 7C00 0000 0000 0000 7C00 7800 F800 F800 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 29 0 BBX 26 25 4 0 BITMAP 000FE000 007FF800 01F03E00 03800700 06000300 0C0F0180 183F8080 3071E0C0 30E0E0C0 61C0E0C0 4180E0C0 C381C0C0 C381C0C0 C383C0C0 C383C180 C3858180 C38D8300 C399CE00 43F1FC00 61C1F000 30000000 38000000 1E010000 07FF0000 01FC0000 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 26 0 BBX 26 25 0 0 BITMAP 0000E000 0001E000 0001F000 0003F000 0003F000 0007F000 000FF000 000CF800 0018F800 0038F800 0030F800 00607C00 00607C00 00C07C00 01807C00 01FFFC00 03FFFE00 07003E00 06003E00 0C003E00 0C001F00 18001F00 38001F80 FE00FFC0 FE00FFC0 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 22 0 BBX 22 25 1 0 BITMAP 07FFE0 07FFF8 01F1FC 01E07C 01E07C 01E07C 03E07C 03E078 03C0F8 03C1F0 07C7E0 07FF80 07FF00 0787C0 0783E0 0F81F0 0F81F0 0F80F8 0F01F8 0F01F8 1F01F0 1F03F0 3F0FE0 FFFFC0 FFFE00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 25 0 BBX 24 25 4 0 BITMAP 000FFC 007FFF 01F81F 03E00E 07C006 0F8006 1F000E 1E0000 3E0000 7E0000 7C0000 7C0000 FC0000 FC0000 FC0000 FC0000 FC0000 FC0000 FC0000 7C0000 7E0000 3F0000 1F8070 0FFFF0 03FF00 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 28 0 BBX 28 25 1 0 BITMAP 07FFFC00 07FFFF00 01F01FC0 01F007E0 01F003E0 01F003F0 03F003F0 03E001F0 03E001F0 03E001F0 03E001F0 07E001F0 07C003F0 07C003E0 07C003E0 07C003E0 0FC007C0 0F8007C0 0F800F80 0F801F80 1F803F00 1F807E00 3F81F800 FFFFF000 FFFF8000 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 21 0 BBX 23 25 1 0 BITMAP 07FFFE 07FFFE 01F00E 01F00C 01F00C 01F000 03E000 03E000 03E000 03E060 03E0C0 07FFC0 07FFC0 07C0C0 07C0C0 07C000 0F8000 0F8000 0F8000 0F8000 1F8070 1F0060 3F00E0 FFFFE0 FFFFE0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 20 0 BBX 23 25 1 0 BITMAP 07FFFE 07FFFE 01F00E 01F00C 01F00C 01F000 03E000 03E000 03E000 03E060 03E0C0 07FFC0 07FFC0 07C0C0 07C0C0 07C000 0F8000 0F8000 0F8000 0F8000 1F8000 1F8000 3F8000 FFE000 FFE000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 26 0 BBX 24 25 4 0 BITMAP 000FFC 007FFF 01F81F 03E00F 07C006 0F8006 1F000E 1F0000 3E0000 3E0000 7C0000 7C0000 FC0000 FC07FF FC07FF FC00FC FC00F8 FC00F8 FC01F0 7C01F0 7E01F0 3E01F0 1F81F0 0FFFE0 03FE00 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 28 0 BBX 31 25 1 0 BITMAP 07FF0FFE 07FE0FFE 01F803F8 01F003F0 01F003F0 01F003E0 03F003E0 03E003E0 03E007E0 03E007C0 03E007C0 07FFFFC0 07FFFFC0 07C00FC0 07C00F80 07C00F80 0FC00F80 0F800F80 0F801F80 0F801F00 1F801F00 1F801F00 3F803F00 FFE0FFC0 FFE1FFC0 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 13 0 BBX 15 25 1 0 BITMAP 07FE 0FFE 01F8 01F0 03F0 03E0 03E0 03E0 03E0 03E0 07C0 07C0 07C0 07C0 07C0 0F80 0F80 0F80 0F80 0F80 1F00 1F00 3F00 FFE0 FFC0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 16 0 BBX 21 31 0 -6 BITMAP 003FF8 003FF8 000FE0 000FC0 000FC0 000F80 000F80 000F80 000F80 001F80 001F00 001F00 001F00 001F00 003F00 003E00 003E00 003E00 003E00 007E00 007C00 007C00 007C00 007C00 00FC00 70F800 60F800 60F000 E1E000 FFC000 FE0000 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 25 0 BBX 26 25 1 0 BITMAP 07FE1FC0 07FE1FC0 01F80700 01F00C00 01E01800 03E07000 03E0E000 03E1C000 03E30000 03C60000 07DC0000 07FE0000 07FE0000 07FF0000 079F8000 0F9F8000 0F8FC000 0F87E000 0F87F000 0F03F000 1F01F800 1F01FC00 3F00FE00 FFC3FF00 FFC3FF00 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 21 0 BBX 20 25 1 0 BITMAP 07FE00 07FE00 01F800 01F000 01F000 01F000 03E000 03E000 03E000 03E000 03E000 07C000 07C000 07C000 07C000 07C000 0F8000 0F8000 0F8000 0F8070 1F8070 1F8070 3F8060 FFFFE0 FFFFE0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 31 0 BBX 34 25 1 0 BITMAP 07F0003FC0 07F0003FC0 01F0007F00 01F8007E00 01F800FE00 01F801BC00 03F8017C00 03BC037C00 033C067C00 033C067800 033E0C7800 071E08F800 071E18F800 061E30F800 061F20F000 060F60F000 0E0FC1F000 0E0F81F000 0C0781F000 0C0701E000 1C0601E000 1C0003E000 3C0007E000 FF001FF800 FF001FF800 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 27 0 BBX 30 25 1 0 BITMAP 07E003FC 07F003FC 01F000F0 01F800E0 01FC00E0 01FC00C0 03FE00C0 03BE01C0 03BF01C0 031F0180 031F8180 070F8180 0707C380 0707C380 0603E300 0603E300 0E01F700 0E01F700 0C00FF00 0C00FE00 1C007E00 1C003E00 3C003E00 FF001E00 FF001C00 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 28 0 BBX 26 25 4 0 BITMAP 000FF000 007FFC00 00F83E00 03E01F00 07C00F80 0F800F80 1F000F80 1F000FC0 3E000FC0 7E000FC0 7C000FC0 7C000FC0 FC000F80 FC000F80 FC000F80 FC001F00 FC001F00 FC003E00 FC003C00 7C007C00 7C00F800 3E01E000 1F07C000 0FFF0000 03F80000 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 21 0 BBX 23 25 1 0 BITMAP 07FFF0 07FFF8 01F07C 01F03E 01F03E 01E03E 03E03E 03E03E 03E07C 03E07C 03C0F8 07C1F0 07C3E0 07FFC0 07FE00 078000 0F8000 0F8000 0F8000 0F8000 1F0000 1F0000 3F0000 FFE000 FFE000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 28 0 BBX 29 32 4 -7 BITMAP 000FF000 007FFC00 00F83E00 03E01F00 07C00F00 0F800F80 1F000F80 1F000FC0 3E000FC0 7E000FC0 7C000FC0 7C000FC0 FC000FC0 FC000F80 FC000F80 FC001F80 FC001F80 FC003F00 FC003F00 7C007E00 7C00FC00 3E01FC00 3F07F800 0FFFF000 03FFC000 001F8000 000E0000 00030000 0001C000 0000F800 00003FF8 00000FC0 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 24 0 BBX 23 25 1 0 BITMAP 07FFF0 07FFFC 01F07E 01F03E 01F03E 03E03E 03E03E 03E03C 03E07C 03E078 07C0F0 07C3E0 07FFC0 07FF80 07CF80 0F8FC0 0F87C0 0F87E0 0F83E0 0F83F0 1F01F0 1F01F8 3F00F8 FFC0FE FFC07E ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 20 0 BBX 20 25 2 0 BITMAP 003FC0 01FFF0 03E0F0 078070 0F8060 0F8060 0F8000 0F8000 0FC000 0FE000 07F000 03FC00 01FE00 00FF00 007F80 001F80 000FC0 000FC0 000FC0 600F80 600F80 E01F00 F83E00 FFFC00 3FE000 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 24 0 BBX 24 25 5 0 BITMAP 7FFFFF 7FFFFF 703E06 E07C06 E07C06 007C00 007C00 007C00 00F800 00F800 00F800 00F800 01F800 01F000 01F000 01F000 01F000 03F000 03E000 03E000 03E000 07E000 07E000 3FFC00 3FF800 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 26 0 BBX 25 25 5 0 BITMAP 7FE07F80 FFE07F80 1F800E00 1F000C00 3F001C00 3E001800 3E001800 3E001800 3E001800 7E003800 7C003000 7C003000 7C003000 7C003000 FC007000 F8006000 F8006000 F8006000 F800C000 F800C000 FC018000 7C038000 3E070000 1FFE0000 07F00000 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 25 0 BBX 26 25 4 0 BITMAP FFC00FC0 FFC01FC0 3F000700 3F000600 1F000E00 1F000C00 1F001800 1F003800 1F803000 0F807000 0F806000 0F80C000 0FC1C000 0FC18000 07C30000 07C70000 07C60000 07EE0000 03FC0000 03F80000 03F80000 03F00000 01E00000 01E00000 01C00000 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 31 0 BBX 32 25 4 0 BITMAP FF80C03F FF81C03F 7E01C01C 3E03C018 3E03E018 3E07E030 3E07E030 3E0FE060 3E0FE060 3E1BE0C0 3E1BE0C0 3E31E180 1E31E180 1E21E300 1E61E300 1E41F600 1EC1F600 1F81FC00 1F81FC00 1F01F800 1F01F800 1E01F000 1E01E000 1C00E000 1C00C000 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 23 0 BBX 27 25 0 0 BITMAP 03FE07E0 07FE0FE0 01F80380 00F80700 00FC0E00 007C1C00 007C1800 007E3000 003E6000 003FC000 001F8000 001F8000 000F8000 001F8000 0037C000 0067C000 00C7E000 0183E000 0303F000 0701F000 0E01F000 1C00F800 3800FC00 FE03FE00 FC07FE00 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 23 0 BBX 23 25 5 0 BITMAP FFC07E FFC0FE 7E0038 3F0030 1F0060 1F00C0 1F8180 0F8380 0F8300 07C600 07CC00 07F800 03F800 03F000 03E000 03E000 03E000 03E000 07E000 07C000 07C000 07C000 0FC000 7FF800 7FF000 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 23 0 BBX 23 25 2 0 BITMAP 03FFFE 07FFFE 0700FC 0701F8 0601F8 0003F0 0007E0 000FC0 000FC0 001F80 003F00 007E00 00FC00 00FC00 01F800 03F000 07E000 07E000 0FC000 1F8000 3F0070 7F0060 7E00E0 FFFFE0 FFFFE0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 11 0 BBX 14 32 1 -6 BITMAP 03FC 03FC 03C0 03C0 07C0 0780 0780 0780 0780 0F80 0F00 0F00 0F00 0F00 1F00 1E00 1E00 1E00 1E00 3E00 3C00 3C00 3C00 3C00 7C00 7800 7800 7800 7800 F800 FF00 FF00 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 17 0 BBX 10 32 6 -6 BITMAP C000 6000 6000 6000 6000 3000 3000 3000 3000 3000 1800 1800 1800 1800 0C00 0C00 0C00 0C00 0600 0600 0600 0600 0300 0300 0300 0300 0300 0180 0180 0180 0180 00C0 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 11 0 BBX 14 32 0 -6 BITMAP 03FC 03FC 007C 0078 0078 0078 00F8 00F8 00F0 00F0 00F0 01F0 01F0 01E0 01E0 01E0 03E0 03E0 03C0 03C0 03C0 03C0 07C0 0780 0780 0780 0780 0F80 0F00 0F00 FF00 FF00 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 21 0 BBX 20 21 2 4 BITMAP 000400 000400 000E00 000E00 001E00 003E00 003700 007700 00E300 00C380 01C380 038380 0301C0 0701C0 0E01C0 0C00C0 1C00E0 3800E0 300060 700070 E00070 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 17 0 BBX 14 2 1 -4 BITMAP FFFC FFFC ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 5 15 BITMAP 03 0F 1C 38 38 78 7E 7C 7C FC FC ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 22 0 BBX 20 18 2 0 BITMAP 003FF0 01FFF0 0383E0 0703E0 0E03E0 1E03E0 3C03E0 3C07C0 7C07C0 7C0FC0 F81FC0 F837C0 F87780 F8EF80 FFCF80 FF8F80 7F0FE0 3C1FE0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 21 0 BBX 20 26 3 0 BITMAP 1FC000 3FC000 07C000 07C000 0F8000 0F8000 0F8000 0F8000 0F83C0 1F0FE0 1F1FF0 1F3FF0 1F71F0 1FE1F0 3EC1F0 3F81E0 3F03E0 3E03E0 3E03C0 7C03C0 7C0780 7C0700 7C0E00 7C1C00 FFF000 FFC000 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 18 0 BBX 17 18 3 0 BITMAP 007F00 01FF80 07C780 0F0380 1E0380 3E0300 3C0000 7C0000 7C0000 F80000 F80000 F80000 F80000 F80000 FC0000 7E0600 3FFC00 0FE000 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 22 0 BBX 21 26 3 0 BITMAP 0007F8 0007F8 0000F8 0001F0 0001F0 0001F0 0001F0 0001F0 003FE0 01FFE0 0387E0 0703E0 0E03E0 1E03C0 3C07C0 3C07C0 7C0FC0 780FC0 F81F80 F83F80 F87F80 F8EF80 FFCF80 FF8F80 7F1FE0 3C1FE0 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 19 0 BBX 17 18 3 0 BITMAP 007C00 01FF00 071F00 0E0F00 1E0F80 3C0F00 3C1F00 7C3E00 78FC00 FFF000 FFC000 F80000 F80000 F80000 FC0300 7E0F00 3FFE00 0FF000 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 14 0 BBX 18 34 2 -7 BITMAP 001F80 007FC0 00F1C0 01E1C0 01E180 03C180 03C000 07C000 07C000 3FFE00 3FFC00 0F8000 0F8000 0F8000 0F8000 0F0000 1F0000 1F0000 1F0000 1F0000 1E0000 3E0000 3E0000 3E0000 3E0000 3C0000 7C0000 7C0000 7C0000 7C0000 780000 F80000 F80000 F80000 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 21 0 BBX 21 25 1 -7 BITMAP 001FF8 00FFF8 01C1F8 0380F0 0781F0 0F01F0 1F01F0 1E03F0 3E07E0 3E07E0 3C0FE0 7C1FE0 7C3FE0 7E77C0 7FE7C0 7FC7C0 3F87C0 1E0F80 000F80 800F80 C00F00 F01E00 7C1C00 7FF800 3FC000 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 22 0 BBX 19 26 3 0 BITMAP 3FC000 3FC000 0F8000 0F8000 0F8000 0F8000 0F8000 0F8000 1F03C0 1F0FE0 1F1FE0 1F3FE0 1F73E0 3EE3E0 3EC3C0 3F87C0 3F07C0 3E07C0 7E07C0 7C0780 7C0F80 7C0F80 7C0F80 F80F80 F80FE0 F81FE0 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 11 0 BBX 10 25 3 0 BITMAP 07C0 07C0 0780 0F80 0000 0000 0000 7F80 7F00 1F00 1F00 1F00 1E00 3E00 3E00 3E00 3E00 3C00 7C00 7C00 7C00 7C00 7C00 FF00 FF00 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 13 0 BBX 18 32 -2 -7 BITMAP 0007C0 0007C0 000780 000F80 000000 000000 000000 007F00 007F00 001F00 001F00 001F00 001E00 003E00 003E00 003E00 003E00 003C00 007C00 007C00 007C00 007C00 007800 00F800 00F800 00F800 60F000 61F000 E1E000 E3C000 FF8000 7E0000 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 21 0 BBX 19 26 3 0 BITMAP 3FC000 3FC000 07C000 07C000 0F8000 0F8000 0F8000 0F8000 0F83E0 1F03E0 1F03C0 1F07C0 1F0780 1F1E00 3E3C00 3EF000 3FF000 3EF800 3CF800 7C7C00 7C7C00 7C3E00 7C3F00 781F80 F80FE0 F80FE0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 11 0 BBX 10 26 3 0 BITMAP 3FC0 3FC0 0FC0 0F80 0F80 0F80 0F80 0F80 1F00 1F00 1F00 1F00 1F00 3E00 3E00 3E00 3E00 3E00 7C00 7C00 7C00 7C00 7C00 FC00 FF00 FF00 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 33 0 BBX 30 18 3 0 BITMAP 7F87C0F8 7F0FC3F8 1F1FE7FC 1F3FEFFC 1F63EE7C 1EC3DC7C 3E83F878 3F87F0F8 3F07E0F8 3E07E0F8 3C07C0F8 7C0F80F0 7C0F81F0 7C0F81F0 780F81F0 780F01F0 F81F01FC F81F03FC ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 22 0 BBX 19 18 3 0 BITMAP 7F07C0 7F0FE0 1F1FE0 1F3FE0 1F73E0 3EE3E0 3FC3C0 3F87C0 3F07C0 3F07C0 7E07C0 7C0780 7C0F80 7C0F80 7C0F80 F80F80 F80FE0 F81FE0 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 20 0 BBX 19 18 3 0 BITMAP 007E00 01FF80 0787C0 0F07C0 1E03E0 3E03E0 3C03E0 7C03E0 7C03E0 FC07C0 F807C0 F80780 F80F80 FC0F00 FC1E00 7E3C00 3FF000 0FC000 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 22 0 BBX 21 25 2 -7 BITMAP 3FC1E0 3FC7F0 0F8FF8 0F9FF8 0FB8F8 0FF0F8 1F60F8 1FC0F8 1F81F0 1F01F0 1F01E0 1E01E0 3E03C0 3E0380 3E0700 3F0E00 3FFC00 7FE000 7C0000 7C0000 7C0000 7C0000 F80000 F80000 F80000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 21 0 BBX 20 25 2 -7 BITMAP 003FF0 01FFF0 0383F0 0703E0 0E03E0 1E03E0 3C03E0 3C07E0 7C07C0 780FC0 F81FC0 F837C0 F877C0 F8EF80 FFCF80 FF8F80 7F0F80 3C0F80 001F00 001F00 001F00 001F00 001F00 003E00 003E00 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 17 0 BBX 17 18 3 0 BITMAP 7F0780 7F0F80 1F3F00 1F7F00 1F7200 3EE000 3FC000 3F8000 3F0000 3E0000 7E0000 7C0000 7C0000 7C0000 7C0000 F80000 F80000 F80000 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 16 0 BBX 16 18 2 0 BITMAP 01FE 07FF 0F07 0F06 1F06 1F06 0F80 0FC0 07F0 03F8 01F8 00FC 607C 607C E07C F0F8 FFF0 3FC0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 13 0 BBX 12 23 3 0 BITMAP 0380 0F00 1F00 1F00 1F00 FFF0 FFF0 1E00 3E00 3E00 3E00 3E00 7C00 7C00 7C00 7C00 7C00 F800 F800 F800 FC00 7F80 3F00 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 22 0 BBX 19 18 4 0 BITMAP FF1FE0 FF1FE0 3E07E0 3E07C0 3E07C0 3E07C0 3C07C0 7C07C0 7C0F80 7C1F80 7C3F80 786F80 F8EF80 F9CF00 FF9F00 FF1F00 FE1FC0 781FC0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 20 0 BBX 20 18 3 0 BITMAP FE03F0 FE01F0 3F01F0 3F01F0 1F01E0 1F01C0 1F8380 0F8380 0F8700 0F8E00 0F9C00 07D800 07F000 07E000 07C000 078000 078000 070000 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 28 0 BBX 28 18 3 0 BITMAP FC0303F0 FE0301F0 3E0380F0 1E0781E0 1F0781E0 1F0FC1C0 0F0FC380 0F1FC380 0F9BC700 0FBBCE00 0FF3EC00 0FE1FC00 0FE1F800 07C1F000 0781E000 0701E000 0701C000 06018000 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 18 0 BBX 18 18 1 0 BITMAP 3F07C0 3F83C0 0F83C0 07C380 07C380 03E600 03EC00 01F800 01F000 01F000 03F800 0EF800 1C7C00 387C00 703E00 F03E00 F01F80 F01F80 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 20 0 BBX 23 25 0 -7 BITMAP 1FC07E 1FC03E 07E01E 03E01E 03E01C 01F03C 01F038 01F070 01F0E0 00F0C0 00F9C0 00FB80 00FF00 00FE00 00FC00 007800 007000 007000 006000 00C000 038000 070000 0F0000 1E0000 FE0000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 19 0 BBX 19 18 2 0 BITMAP 0FFFE0 0FFFE0 1C07C0 1C0F80 181F00 003E00 007E00 00FC00 01F800 03F000 07E000 0FC000 0F8000 1F0180 3F0180 7E0380 FFFF00 FFFF00 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 12 0 BBX 12 32 3 -6 BITMAP 00F0 03F0 07C0 0780 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F00 0F00 1E00 1E00 F800 F000 3800 1C00 1C00 1E00 3E00 3C00 7C00 7C00 F800 F800 F800 F800 F800 7C00 1C00 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 9 0 BBX 9 32 2 -6 BITMAP 0380 0380 0380 0300 0700 0700 0700 0700 0600 0E00 0E00 0E00 0E00 0C00 1C00 1C00 1C00 1C00 1800 3800 3800 3800 3800 3000 7000 7000 7000 7000 6000 E000 E000 E000 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 12 0 BBX 12 32 1 -6 BITMAP 0380 03E0 00F0 00F0 00F0 01F0 01F0 03E0 03E0 03C0 07C0 07C0 0380 0380 01C0 00F0 01F0 0380 0780 0F00 0F00 1F00 1F00 1F00 1F00 1F00 1F00 1F00 1E00 3E00 FC00 F000 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 21 0 BBX 21 7 2 6 BITMAP 0F8000 3FC018 31E010 60F830 403C20 C01FE0 C00F80 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 9 0 BBX 10 25 0 -7 BITMAP 07C0 07C0 0F80 0F80 0000 0000 0000 0700 0E00 0E00 0E00 1E00 1E00 1E00 3E00 3E00 3E00 3C00 7C00 7C00 7C00 7C00 FC00 F800 F800 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 22 0 BBX 18 25 5 0 BITMAP 001800 001800 001800 007F80 01FFC0 07B380 0F3180 1F3180 3E2380 3C2000 7C6000 7C6000 F86000 F84000 F84000 F84000 F8C000 F8C000 FC8000 7E8200 7FFE00 1FF800 078000 010000 010000 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 22 0 BBX 20 25 4 0 BITMAP 000FC0 003FF0 0078F0 00F870 00F060 01F060 01F000 01E000 03E000 03E000 03E000 1FFE00 1FFC00 07C000 07C000 07C000 07C000 0F8000 0F0000 0E0000 380000 7FFF00 7FFF00 FFFE00 FFFE00 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 22 0 BBX 25 23 1 1 BITMAP 04000100 0C000380 06000600 07000C00 033F1800 01FFB000 01E1E000 01C0E000 03806000 03007000 07007000 07007000 06006000 0700E000 0700E000 0301C000 07878000 0FFFC000 1CFEC000 38006000 70003000 E0001800 40001000 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 22 0 BBX 23 25 4 0 BITMAP FF807E FF807E 7E0038 3F0070 1F0060 1F00C0 0F81C0 0F8380 07C700 07CE00 03FC00 03F800 03F000 3FFF00 3FFF00 03E000 03E000 3FFE00 7FFE00 07C000 07C000 07C000 0FC000 3FF000 3FF000 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 9 0 BBX 9 32 2 -6 BITMAP 0380 0380 0380 0300 0700 0700 0700 0700 0600 0E00 0E00 0E00 0E00 0C00 1C00 0000 0000 1C00 1800 3800 3800 3800 3800 3000 7000 7000 7000 7000 6000 E000 E000 E000 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 22 0 BBX 20 32 3 -7 BITMAP 003FC0 01FFF0 03E0F0 07C070 078060 0F8060 0F8000 0F8000 07E000 07F800 03FE00 03FF00 067F80 0E1FC0 1C07C0 1C03C0 3E03C0 3F0380 1FC380 1FF700 0FFE00 03FE00 00FF00 003F00 000F80 000F80 600F00 600F00 E01E00 F03C00 FFF800 1FE000 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 20 0 BBX 11 3 10 22 BITMAP 71E0 F1E0 F1C0 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 29 0 BBX 26 25 4 0 BITMAP 003F8000 01FFE000 07C0F800 0E001C00 1C000E00 380FC300 307FF300 60F06180 41E06080 C1C000C0 C38000C0 C3800040 C3800040 C3800040 C38000C0 C38000C0 43C00080 61E08180 31FF8300 387F0300 1C000E00 0E001C00 07C0F800 01FFE000 003F8000 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 16 0 BBX 15 14 4 11 BITMAP 03FE 0FFC 1E3C 3C3C 383C 787C 70F8 F0F8 F1F8 F378 FE78 FEF8 FCFE 70FE ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 18 0 BBX 17 16 3 1 BITMAP 008100 01C380 038700 070F00 0F1E00 1E3C00 3C7800 78F000 F9F000 78F000 3C7800 3C7800 1E3C00 0E1C00 0E1C00 040800 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 21 0 BBX 20 9 3 5 BITMAP FFFFF0 FFFFF0 000070 000060 000060 0000E0 0000E0 0000E0 0000C0 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 10 0 BBX 8 3 3 10 BITMAP 7F FF FE ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 22 0 BBX 15 17 6 8 BITMAP 07C0 1FF0 3838 700C 67F6 C7F6 C632 C632 C7E2 C7C2 C4C2 CCE6 7C66 700C 3838 1FF0 07C0 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 20 0 BBX 11 2 10 23 BITMAP FFE0 FFE0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 9 0 BBX 6 6 7 19 BITMAP 70 F8 C8 CC F8 70 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 21 0 BBX 22 21 1 0 BITMAP 000E00 000C00 000C00 000C00 001C00 001C00 001C00 1FFFFC 3FFFFC 001800 003800 003800 003000 003000 003000 007000 000000 000000 000000 FFFFF0 FFFFF0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 -21 10 BITMAP 0FC0 18E0 1070 1070 0070 00E0 00C0 0380 0600 0800 1000 2000 6000 FFC0 FFC0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 13 0 BBX 11 15 -21 10 BITMAP 1FC0 18E0 10E0 00E0 00E0 00C0 0300 1F80 03C0 01C0 01C0 01C0 C1C0 C380 FE00 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 20 0 BBX 9 5 12 21 BITMAP 0F80 1E00 3C00 7000 E000 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 23 0 BBX 21 24 2 -6 BITMAP 3FC7F8 3F87F8 0F81F8 0F81F0 0F81F0 0F01F0 1F01F0 1F01F0 1F03E0 1F07E0 1E07E0 3E0FE0 3E1BE0 3E7FC0 3FF7C0 3FE7C0 7FC7D0 7F8FF0 7C0000 7C0000 7C0000 F80000 F80000 F80000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 22 0 BBX 15 31 6 -6 BITMAP 1FFE 3FFE 7F84 7F84 FF8C FF8C FF0C FF0C FF08 7F18 7F18 3E18 0E18 0610 0610 0630 0430 0430 0C20 0C20 0C60 0C60 0860 1840 1840 18C0 18C0 10C0 10C0 3080 3180 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 21 0 BBX 5 4 10 8 BITMAP 78 78 F0 F0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 20 0 BBX 6 8 6 -7 BITMAP 18 30 78 1C 1C 1C FC F8 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 13 0 BBX 8 15 -22 10 BITMAP 3F 07 07 0E 0E 0E 0E 0E 0C 1C 1C 1C 1C 3C FF ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 16 0 BBX 15 14 4 11 BITMAP 01F8 07FC 0E3E 1C1E 381E 781E 781E F01C F03C F038 F870 F8E0 7FC0 1F00 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 18 0 BBX 17 16 2 1 BITMAP 081000 1C3800 1C3800 1E3C00 0F1E00 0F1E00 078F00 07CF80 078F00 0F1E00 1E3C00 3C7800 787000 70E000 E1C000 408000 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 28 0 BBX 28 25 6 0 BITMAP 3F0000F0 070001C0 07000380 0E000780 0E000F00 0E001E00 0E001C00 0E003800 0C007000 1C00E000 1C01C1C0 1C0383C0 1C070580 3C0E0B80 FF1C1380 00382380 00706300 00E0C300 01C18300 0383FFC0 0783FFC0 0F000600 0E000600 1C000E00 78003F80 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 28 0 BBX 28 25 6 0 BITMAP 3F0000F0 070001C0 07000380 0E000780 0E000F00 0E001E00 0E001C00 0E003800 0C007000 1C00E000 1C01FF00 1C03E380 1C0741C0 3C0E41C0 FF1C01C0 00380380 00700300 00E00E00 01C01800 03802000 07804000 0F008000 0E018000 1C03FF00 7803FF00 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 28 0 BBX 28 25 6 0 BITMAP 1FC000F0 18E001C0 10E00380 00E00780 00E00F00 00C01E00 03001C00 1F803800 03C07000 01C0E000 01C1C1C0 01C383C0 C1C70580 C38E0B80 FE1C1380 00382380 00706300 00E0C300 01C18300 0383FFC0 0783FFC0 0F000600 0E000600 1C000E00 78003F80 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 17 0 BBX 15 25 1 -7 BITMAP 003E 003E 003C 007C 0000 0000 0000 007C 00F8 00F0 00F0 01E0 0180 0300 0E00 1C00 3C00 7800 F800 F80E F80C FC1C 7E1C 3FFC 1FE0 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 26 0 BBX 26 32 0 0 BITMAP 0003E000 0000E000 00007000 00003000 00001800 00000000 00000000 0000E000 0001E000 0001F000 0003F000 0003F000 0007F000 000FF000 000CF800 0018F800 0038F800 0030F800 00607C00 00607C00 00C07C00 01807C00 01FFFC00 03FFFE00 07003E00 06003E00 0C003E00 0C001F00 18001F00 38001F80 FE00FFC0 FE00FFC0 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 26 0 BBX 26 32 0 0 BITMAP 00001F00 00003C00 00007800 0000E000 0001C000 00000000 00000000 0000E000 0001E000 0001F000 0003F000 0003F000 0007F000 000FF000 000CF800 0018F800 0038F800 0030F800 00607C00 00607C00 00C07C00 01807C00 01FFFC00 03FFFE00 07003E00 06003E00 0C003E00 0C001F00 18001F00 38001F80 FE00FFC0 FE00FFC0 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 26 0 BBX 26 32 0 0 BITMAP 00007C00 0000FC00 0001FE00 00038E00 00070300 00000000 00000000 0000E000 0001E000 0001F000 0003F000 0003F000 0007F000 000FF000 000CF800 0018F800 0038F800 0030F800 00607C00 00607C00 00C07C00 01807C00 01FFFC00 03FFFE00 07003E00 06003E00 0C003E00 0C001F00 18001F00 38001F80 FE00FFC0 FE00FFC0 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 26 0 BBX 26 31 0 0 BITMAP 0001E180 0003FF00 0003FF00 00061E00 00000000 00000000 0000E000 0001E000 0001F000 0003F000 0003F000 0007F000 000FF000 000CF800 0018F800 0038F800 0030F800 00607C00 00607C00 00C07C00 01807C00 01FFFC00 03FFFE00 07003E00 06003E00 0C003E00 0C001F00 18001F00 38001F80 FE00FFC0 FE00FFC0 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 26 0 BBX 26 30 0 0 BITMAP 00038F00 00078F00 00078E00 00000000 00000000 0000E000 0001E000 0001F000 0003F000 0003F000 0007F000 000FF000 000CF800 0018F800 0038F800 0030F800 00607C00 00607C00 00C07C00 01807C00 01FFFC00 03FFFE00 07003E00 06003E00 0C003E00 0C001F00 18001F00 38001F80 FE00FFC0 FE00FFC0 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 26 0 BBX 26 32 0 0 BITMAP 00007000 0000D800 00008800 0000D800 00007000 00000000 00000000 0000E000 0001E000 0001F000 0003F000 0003F000 0007F000 000FF000 000CF800 0018F800 0038F800 0030F800 00607C00 00607C00 00C07C00 01807C00 01FFFC00 03FFFE00 07003E00 06003E00 0C003E00 0C001F00 18001F00 38001F80 FE00FFC0 FE00FFC0 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 33 0 BBX 35 25 0 0 BITMAP 00001FFFE0 00001FFFE0 00003F00E0 00007F00C0 0000DF00C0 0001DF0000 00019F0000 00033E0000 00063E0000 000E3E0600 000C3E0600 00183FFE00 00307FFE00 00607C0E00 00607C0C00 00C07C0000 01FFFC0000 03FFF80000 0600F80000 0600F80000 0C00F80700 1800F80700 3801F80E00 FC07FFFE00 FC0FFFFE00 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 25 0 BBX 24 32 4 -7 BITMAP 000FFC 007FFF 01F81F 03E00E 07C006 0F8006 1F000E 1E0000 3E0000 7E0000 7C0000 7C0000 FC0000 FC0000 FC0000 FC0000 FC0000 FC0000 FC0000 7C0000 7E0000 3F0000 1F8070 0FFFF0 03FF00 018000 03C000 00E000 00E000 00E000 07E000 07C000 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 21 0 BBX 23 32 1 0 BITMAP 001F00 000700 000380 000180 0000C0 000000 000000 07FFFE 07FFFE 01F00E 01F00C 01F00C 01F000 03E000 03E000 03E000 03E060 03E0C0 07FFC0 07FFC0 07C0C0 07C0C0 07C000 0F8000 0F8000 0F8000 0F8000 1F8070 1F0060 3F00E0 FFFFE0 FFFFE0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 21 0 BBX 23 32 1 0 BITMAP 0000F8 0001E0 0003C0 000700 000E00 000000 000000 07FFFE 07FFFE 01F00E 01F00C 01F00C 01F000 03E000 03E000 03E000 03E060 03E0C0 07FFC0 07FFC0 07C0C0 07C0C0 07C000 0F8000 0F8000 0F8000 0F8000 1F8070 1F0060 3F00E0 FFFFE0 FFFFE0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 21 0 BBX 23 32 1 0 BITMAP 0007C0 000FC0 001FE0 0038E0 007030 000000 000000 07FFFE 07FFFE 01F00E 01F00C 01F00C 01F000 03E000 03E000 03E000 03E060 03E0C0 07FFC0 07FFC0 07C0C0 07C0C0 07C000 0F8000 0F8000 0F8000 0F8000 1F8070 1F0060 3F00E0 FFFFE0 FFFFE0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 21 0 BBX 23 30 1 0 BITMAP 001C78 003C78 003C70 000000 000000 07FFFE 07FFFE 01F00E 01F00C 01F00C 01F000 03E000 03E000 03E000 03E060 03E0C0 07FFC0 07FFC0 07C0C0 07C0C0 07C000 0F8000 0F8000 0F8000 0F8000 1F8070 1F0060 3F00E0 FFFFE0 FFFFE0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 13 0 BBX 15 32 1 0 BITMAP 03E0 00E0 0070 0030 0018 0000 0000 07FE 0FFE 01F8 01F0 03F0 03E0 03E0 03E0 03E0 03E0 07C0 07C0 07C0 07C0 07C0 0F80 0F80 0F80 0F80 0F80 1F00 1F00 3F00 FFE0 FFC0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 13 0 BBX 16 32 1 0 BITMAP 001F 003C 0078 00E0 01C0 0000 0000 07FE 0FFE 01F8 01F0 03F0 03E0 03E0 03E0 03E0 03E0 07C0 07C0 07C0 07C0 07C0 0F80 0F80 0F80 0F80 0F80 1F00 1F00 3F00 FFE0 FFC0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 13 0 BBX 16 32 1 0 BITMAP 007C 00FC 01FE 038E 0703 0000 0000 07FE 0FFE 01F8 01F0 03F0 03E0 03E0 03E0 03E0 03E0 07C0 07C0 07C0 07C0 07C0 0F80 0F80 0F80 0F80 0F80 1F00 1F00 3F00 FFE0 FFC0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 13 0 BBX 16 30 1 0 BITMAP 038F 078F 078E 0000 0000 07FE 0FFE 01F8 01F0 03F0 03E0 03E0 03E0 03E0 03E0 07C0 07C0 07C0 07C0 07C0 0F80 0F80 0F80 0F80 0F80 1F00 1F00 3F00 FFE0 FFC0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 28 0 BBX 28 25 1 0 BITMAP 07FFFC00 07FFFF00 01F01FC0 01F007E0 01F003E0 01F003F0 03F003F0 03E001F0 03E001F0 03E001F0 07E001F0 3FFF01F0 3FFF03F0 07C003E0 07C003E0 0FC003E0 0FC007C0 0F8007C0 0F800F80 0F801F80 1F803F00 1F807E00 3F81F800 FFFFF000 FFFF8000 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 27 0 BBX 30 31 1 0 BITMAP 0003C300 0007FE00 0007FE00 000C3C00 00000000 00000000 07E003FC 07F003FC 01F000F0 01F800E0 01FC00E0 01FC00C0 03FE00C0 03BE01C0 03BF01C0 031F0180 031F8180 070F8180 0707C380 0707C380 0603E300 0603E300 0E01F700 0E01F700 0C00FF00 0C00FE00 1C007E00 1C003E00 3C003E00 FF001E00 FF001C00 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 28 0 BBX 26 32 4 0 BITMAP 000F8000 00038000 0001C000 0000C000 00006000 00000000 00000000 000FF000 007FFC00 00F83E00 03E01F00 07C00F80 0F800F80 1F000F80 1F000FC0 3E000FC0 7E000FC0 7C000FC0 7C000FC0 FC000F80 FC000F80 FC000F80 FC001F00 FC001F00 FC003E00 FC003C00 7C007C00 7C00F800 3E01E000 1F07C000 0FFF0000 03F80000 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 28 0 BBX 26 32 4 0 BITMAP 00007C00 0000F000 0001E000 00038000 00070000 00000000 00000000 000FF000 007FFC00 00F83E00 03E01F00 07C00F80 0F800F80 1F000F80 1F000FC0 3E000FC0 7E000FC0 7C000FC0 7C000FC0 FC000F80 FC000F80 FC000F80 FC001F00 FC001F00 FC003E00 FC003C00 7C007C00 7C00F800 3E01E000 1F07C000 0FFF0000 03F80000 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 28 0 BBX 26 32 4 0 BITMAP 0003E000 0007E000 000FF000 001C7000 00381800 00000000 00000000 000FF000 007FFC00 00F83E00 03E01F00 07C00F80 0F800F80 1F000F80 1F000FC0 3E000FC0 7E000FC0 7C000FC0 7C000FC0 FC000F80 FC000F80 FC000F80 FC001F00 FC001F00 FC003E00 FC003C00 7C007C00 7C00F800 3E01E000 1F07C000 0FFF0000 03F80000 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 28 0 BBX 26 31 4 0 BITMAP 000F0C00 001FF800 001FF800 0030F000 00000000 00000000 000FF000 007FFC00 00F83E00 03E01F00 07C00F80 0F800F80 1F000F80 1F000FC0 3E000FC0 7E000FC0 7C000FC0 7C000FC0 FC000F80 FC000F80 FC000F80 FC001F00 FC001F00 FC003E00 FC003C00 7C007C00 7C00F800 3E01E000 1F07C000 0FFF0000 03F80000 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 28 0 BBX 26 30 4 0 BITMAP 001C7800 003C7800 003C7000 00000000 00000000 000FF000 007FFC00 00F83E00 03E01F00 07C00F80 0F800F80 1F000F80 1F000FC0 3E000FC0 7E000FC0 7C000FC0 7C000FC0 FC000F80 FC000F80 FC000F80 FC001F00 FC001F00 FC003E00 FC003C00 7C007C00 7C00F800 3E01E000 1F07C000 0FFF0000 03F80000 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 21 0 BBX 23 21 1 0 BITMAP 040004 1C000E 0E001C 070038 078070 0381E0 01C3C0 00E780 00FE00 007C00 003800 007C00 00FE00 03CE00 078700 0F0380 1C03C0 3801C0 7000E0 E00070 400040 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 28 0 BBX 30 25 2 0 BITMAP 0003FC1C 001FFF38 003E0FF0 00F807E0 01F003E0 03E003E0 07C007F0 07C01FF0 0F8039F0 1F8073F0 1F00E3F0 1F01C3F0 3F0383F0 3F0703E0 3F1C03E0 3F3807E0 3F7007C0 3FE00F80 3FC00F80 1F801F00 1F003E00 0F807C00 1FC1F000 33FFE000 E0FF0000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 26 0 BBX 25 32 5 0 BITMAP 007C0000 001C0000 000E0000 00060000 00030000 00000000 00000000 7FE07F80 FFE07F80 1F800E00 1F000C00 3F001C00 3E001800 3E001800 3E001800 3E001800 7E003800 7C003000 7C003000 7C003000 7C003000 FC007000 F8006000 F8006000 F8006000 F800C000 F800C000 FC018000 7C038000 3E070000 1FFE0000 07F00000 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 26 0 BBX 25 32 5 0 BITMAP 0001F000 0003C000 00078000 000E0000 001C0000 00000000 00000000 7FE07F80 FFE07F80 1F800E00 1F000C00 3F001C00 3E001800 3E001800 3E001800 3E001800 7E003800 7C003000 7C003000 7C003000 7C003000 FC007000 F8006000 F8006000 F8006000 F800C000 F800C000 FC018000 7C038000 3E070000 1FFE0000 07F00000 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 26 0 BBX 25 32 5 0 BITMAP 000F8000 001F8000 003FC000 0071C000 00E06000 00000000 00000000 7FE07F80 FFE07F80 1F800E00 1F000C00 3F001C00 3E001800 3E001800 3E001800 3E001800 7E003800 7C003000 7C003000 7C003000 7C003000 FC007000 F8006000 F8006000 F8006000 F800C000 F800C000 FC018000 7C038000 3E070000 1FFE0000 07F00000 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 26 0 BBX 25 30 5 0 BITMAP 0071E000 00F1E000 00F1C000 00000000 00000000 7FE07F80 FFE07F80 1F800E00 1F000C00 3F001C00 3E001800 3E001800 3E001800 3E001800 7E003800 7C003000 7C003000 7C003000 7C003000 FC007000 F8006000 F8006000 F8006000 F800C000 F800C000 FC018000 7C038000 3E070000 1FFE0000 07F00000 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 23 0 BBX 23 32 5 0 BITMAP 0007C0 000F00 001E00 003800 007000 000000 000000 FFC07E FFC0FE 7E0038 3F0030 1F0060 1F00C0 1F8180 0F8380 0F8300 07C600 07CC00 07F800 03F800 03F000 03E000 03E000 03E000 03E000 07E000 07C000 07C000 07C000 0FC000 7FF800 7FF000 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 21 0 BBX 22 25 1 0 BITMAP 07FE00 07FE00 01F800 01F000 01F000 01FFE0 03FFF8 03E1F8 03E0FC 03E07C 07C07C 07C07C 07C07C 07C0F8 07C0F8 0F81F0 0F81F0 0F87C0 0FFF80 0FFE00 1F0000 1F0000 3F0000 FFE000 FFC000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 22 0 BBX 21 34 2 -7 BITMAP 001F80 007FE0 00F1F0 01E0F0 03E0F0 03E0F0 03E0E0 07C1C0 07C180 07C300 07C600 07CE00 0F9E00 0F9F00 0F9F80 0F8FC0 0F87E0 1F03F0 1F01F0 1F00F8 1F0078 1F0078 3E3078 3E3070 3E70F0 3E7FE0 3E3F80 7C0000 7C0000 7C0000 7C0000 7C0000 F80000 F80000 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 22 0 BBX 20 25 2 0 BITMAP 003E00 000E00 000700 000300 000180 000000 000000 003FF0 01FFF0 0383E0 0703E0 0E03E0 1E03E0 3C03E0 3C07C0 7C07C0 7C0FC0 F81FC0 F837C0 F87780 F8EF80 FFCF80 FF8F80 7F0FE0 3C1FE0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 22 0 BBX 20 25 2 0 BITMAP 0001F0 0003C0 000780 000E00 001C00 000000 000000 003FF0 01FFF0 0383E0 0703E0 0E03E0 1E03E0 3C03E0 3C07C0 7C07C0 7C0FC0 F81FC0 F837C0 F87780 F8EF80 FFCF80 FF8F80 7F0FE0 3C1FE0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 22 0 BBX 20 25 2 0 BITMAP 000F80 001F80 003FC0 0071C0 00E060 000000 000000 003FF0 01FFF0 0383E0 0703E0 0E03E0 1E03E0 3C03E0 3C07C0 7C07C0 7C0FC0 F81FC0 F837C0 F87780 F8EF80 FFCF80 FF8F80 7F0FE0 3C1FE0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 22 0 BBX 20 24 2 0 BITMAP 003C30 007FE0 007FE0 00C3C0 000000 000000 003FF0 01FFF0 0383E0 0703E0 0E03E0 1E03E0 3C03E0 3C07C0 7C07C0 7C0FC0 F81FC0 F837C0 F87780 F8EF80 FFCF80 FF8F80 7F0FE0 3C1FE0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 22 0 BBX 20 23 2 0 BITMAP 0071E0 00F1E0 00F1C0 000000 000000 003FF0 01FFF0 0383E0 0703E0 0E03E0 1E03E0 3C03E0 3C07C0 7C07C0 7C0FC0 F81FC0 F837C0 F87780 F8EF80 FFCF80 FF8F80 7F0FE0 3C1FE0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 22 0 BBX 20 25 2 0 BITMAP 000700 000D80 000880 000D80 000700 000000 000000 003FF0 01FFF0 0383E0 0703E0 0E03E0 1E03E0 3C03E0 3C07C0 7C07C0 7C0FC0 F81FC0 F837C0 F87780 F8EF80 FFCF80 FF8F80 7F0FE0 3C1FE0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 31 0 BBX 29 18 2 0 BITMAP 007FF3E0 01FFFFF0 0387F8F8 0703F0F8 0E03E0F8 1E03E0F8 3E03C0F0 3C03C0E0 7C07C1C0 7C0FC780 F81FFE00 F81F8000 F8378000 F867C000 F8C7C018 FF83E0F8 7F01FFE0 3C00FF00 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 18 0 BBX 17 25 3 -7 BITMAP 007F00 01FF80 07C780 0F0380 1E0380 3E0300 3C0000 7C0000 7C0000 F80000 F80000 F80000 F80000 F80000 FC0000 7E0600 3FFC00 0FE000 0C0000 1E0000 070000 070000 070000 3F0000 3E0000 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 19 0 BBX 17 25 3 0 BITMAP 00F800 003800 001C00 000C00 000600 000000 000000 007C00 01FF00 071F00 0E0F00 1E0F80 3C0F00 3C1F00 7C3E00 78FC00 FFF000 FFC000 F80000 F80000 F80000 FC0300 7E0F00 3FFE00 0FF000 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 19 0 BBX 18 25 3 0 BITMAP 0007C0 000F00 001E00 003800 007000 000000 000000 007C00 01FF00 071F00 0E0F00 1E0F80 3C0F00 3C1F00 7C3E00 78FC00 FFF000 FFC000 F80000 F80000 F80000 FC0300 7E0F00 3FFE00 0FF000 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 19 0 BBX 17 25 3 0 BITMAP 003E00 007E00 00FF00 01C700 038180 000000 000000 007C00 01FF00 071F00 0E0F00 1E0F80 3C0F00 3C1F00 7C3E00 78FC00 FFF000 FFC000 F80000 F80000 F80000 FC0300 7E0F00 3FFE00 0FF000 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 19 0 BBX 17 23 3 0 BITMAP 01C780 03C780 03C700 000000 000000 007C00 01FF00 071F00 0E0F00 1E0F80 3C0F00 3C1F00 7C3E00 78FC00 FFF000 FFC000 F80000 F80000 F80000 FC0300 7E0F00 3FFE00 0FF000 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 11 0 BBX 11 25 3 0 BITMAP 0F80 0380 01C0 00C0 0060 0000 0000 7F80 7F80 1F00 1F00 1F00 1F00 1E00 3E00 3E00 3E00 3E00 3C00 7C00 7C00 7C00 7C00 FF00 FF00 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 11 0 BBX 14 25 3 0 BITMAP 007C 00F0 01E0 0380 0700 0000 0000 7F80 7F80 1F00 1F00 1F00 1F00 1E00 3E00 3E00 3E00 3E00 3C00 7C00 7C00 7C00 7C00 FF00 FF00 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 11 0 BBX 13 25 3 0 BITMAP 03E0 07E0 0FF0 1C70 3818 0000 0000 7F80 7F80 1F00 1F00 1F00 1F00 1E00 3E00 3E00 3E00 3E00 3C00 7C00 7C00 7C00 7C00 FF00 FF00 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 11 0 BBX 13 23 3 0 BITMAP 1C78 3C78 3C70 0000 0000 7F80 7F80 1F00 1F00 1F00 1F00 1E00 3E00 3E00 3E00 3E00 3C00 7C00 7C00 7C00 7C00 FF00 FF00 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 21 0 BBX 18 27 3 0 BITMAP 000080 0FC380 0FFE00 01FC00 007E00 007F00 03CF80 010F80 0007C0 007FC0 01FFC0 078FC0 0F07C0 1E07C0 3C03C0 3C03C0 7C03C0 7803C0 F807C0 F80780 F80780 F80F00 FC0F00 FC1E00 7E3C00 3FF000 0FC000 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 22 0 BBX 19 24 3 0 BITMAP 007860 00FFC0 00FFC0 018780 000000 000000 7F07C0 7F0FE0 1F1FE0 1F3FE0 1F73E0 3EE3E0 3FC3C0 3F87C0 3F07C0 3F07C0 7E07C0 7C0780 7C0F80 7C0F80 7C0F80 F80F80 F80FE0 F81FE0 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 20 0 BBX 19 25 3 0 BITMAP 007C00 001C00 000E00 000600 000300 000000 000000 007E00 01FF80 0787C0 0F07C0 1E03E0 3E03E0 3C03E0 7C03E0 7C03E0 FC07C0 F807C0 F80780 F80F80 FC0F00 FC1E00 7E3C00 3FF000 0FC000 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 20 0 BBX 19 25 3 0 BITMAP 0003E0 000780 000F00 001C00 003800 000000 000000 007E00 01FF80 0787C0 0F07C0 1E03E0 3E03E0 3C03E0 7C03E0 7C03E0 FC07C0 F807C0 F80780 F80F80 FC0F00 FC1E00 7E3C00 3FF000 0FC000 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 20 0 BBX 19 25 3 0 BITMAP 001F00 003F00 007F80 00E380 01C0C0 000000 000000 007E00 01FF80 0787C0 0F07C0 1E03E0 3E03E0 3C03E0 7C03E0 7C03E0 FC07C0 F807C0 F80780 F80F80 FC0F00 FC1E00 7E3C00 3FF000 0FC000 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 20 0 BBX 19 24 3 0 BITMAP 007860 00FFC0 00FFC0 018780 000000 000000 007E00 01FF80 0787C0 0F07C0 1E03E0 3E03E0 3C03E0 7C03E0 7C03E0 FC07C0 F807C0 F80780 F80F80 FC0F00 FC1E00 7E3C00 3FF000 0FC000 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 20 0 BBX 19 23 3 0 BITMAP 00E3C0 01E3C0 01E380 000000 000000 007E00 01FF80 0787C0 0F07C0 1E03E0 3E03E0 3C03E0 7C03E0 7C03E0 FC07C0 F807C0 F80780 F80F80 FC0F00 FC1E00 7E3C00 3FF000 0FC000 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 21 0 BBX 20 18 3 0 BITMAP 003C00 003800 007800 007800 000000 000000 000000 000000 FFFFF0 FFFFF0 000000 000000 000000 000000 01E000 01E000 01C000 03C000 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 20 0 BBX 22 18 1 0 BITMAP 003F9C 00FFF0 01E3E0 0781F0 0F81F0 0F03F0 1F07F0 3E1DF0 3E39F0 3E71F0 3EC1E0 7F83E0 7F03C0 7E0780 3E0700 3F1E00 3FFC00 E7E000 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 22 0 BBX 19 25 4 0 BITMAP 007C00 001C00 000E00 000600 000300 000000 000000 FF1FE0 FF1FE0 3E07E0 3E07C0 3E07C0 3E07C0 3C07C0 7C07C0 7C0F80 7C1F80 7C3F80 786F80 F8EF80 F9CF00 FF9F00 FF1F00 FE1FC0 781FC0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 22 0 BBX 19 25 4 0 BITMAP 0003E0 000780 000F00 001C00 003800 000000 000000 FF1FE0 FF1FE0 3E07E0 3E07C0 3E07C0 3E07C0 3C07C0 7C07C0 7C0F80 7C1F80 7C3F80 786F80 F8EF80 F9CF00 FF9F00 FF1F00 FE1FC0 781FC0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 22 0 BBX 19 25 4 0 BITMAP 001F00 003F00 007F80 00E380 01C0C0 000000 000000 FF1FE0 FF1FE0 3E07E0 3E07C0 3E07C0 3E07C0 3C07C0 7C07C0 7C0F80 7C1F80 7C3F80 786F80 F8EF80 F9CF00 FF9F00 FF1F00 FE1FC0 781FC0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 22 0 BBX 19 23 4 0 BITMAP 00E3C0 01E3C0 01E380 000000 000000 FF1FE0 FF1FE0 3E07E0 3E07C0 3E07C0 3E07C0 3C07C0 7C07C0 7C0F80 7C1F80 7C3F80 786F80 F8EF80 F9CF00 FF9F00 FF1F00 FE1FC0 781FC0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 20 0 BBX 23 32 0 -7 BITMAP 00007C 0000F0 0001E0 000380 000700 000000 000000 1FC07E 1FC03E 07E01E 03E01E 03E01C 01F03C 01F038 01F070 01F0E0 00F0C0 00F9C0 00FB80 00FF00 00FE00 00FC00 007800 007000 007000 006000 00C000 038000 070000 0F0000 1E0000 FE0000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 22 0 BBX 21 31 2 -7 BITMAP 1FE000 1FC000 07C000 07C000 07C000 07C000 07C1E0 0F87F0 0F8FF8 0F9FF8 0FB8F8 0FF0F8 1F60F8 1FC0F8 1F81F0 1F81F0 1F01E0 3E01E0 3E03C0 3E0380 3E0700 3F0E00 3FFC00 7FE000 7C0000 7C0000 7C0000 7C0000 F80000 F80000 F80000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 20 0 BBX 23 30 0 -7 BITMAP 001C78 003C78 003C70 000000 000000 1FC07E 1FC03E 07E01E 03E01E 03E01C 01F03C 01F038 01F070 01F0E0 00F0C0 00F9C0 00FB80 00FF00 00FE00 00FC00 007800 007000 007000 006000 00C000 038000 070000 0F0000 1E0000 FE0000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 23 34 2 -7 BITMAP 001FFE 003FFE 00F0FE 00E03C 01E07C 03E07C 03C07C 07C07C 07C078 1FFCF8 3FFCF8 0780F8 0F80F8 0F80F0 0F81F0 0F81F0 0F01F0 1F01F0 1F01E0 1F03E0 1F03E0 1E03E0 3E03E0 3E03E0 3E07C0 3E07F8 3C07F8 7C0000 7C0000 7C0000 7C0000 780000 F80000 F80000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 15 2 3 10 BITMAP FFFE FFFE ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 22 0 BBX 17 31 5 -6 BITMAP 00F800 00F800 00F800 00F000 01F000 01F000 01F000 01E000 01E000 71E380 FFFF80 FFFF80 E3C700 03C000 03C000 03C000 07C000 07C000 078000 078000 078000 0F8000 0F8000 0F0000 0F0000 1F0000 1F0000 1F0000 1F0000 1E0000 3E0000 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 23 32 2 0 BITMAP 003038 001870 001DE0 000FC0 000F80 000000 000000 03FFFE 07FFFE 0700FC 0701F8 0601F8 0003F0 0007E0 000FC0 000FC0 001F80 003F00 007E00 00FC00 00FC00 01F800 03F000 07E000 07E000 0FC000 1F8000 3F0070 7F0060 7E00E0 FFFFE0 FFFFE0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 31 0 BBX 29 18 3 0 BITMAP 007E03E0 01FF8FF0 0787D8F8 0F07F078 1E03E078 3C03E078 3C03E0F0 7C03C1F0 7803C7E0 F807FF80 F807FE00 F807C000 F80FC000 F80FC000 FC1FC018 7C3FF078 3FF9FFE0 0FC0FF00 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 23 30 5 0 BITMAP 00E3C0 01E3C0 01E380 000000 000000 FFC07E FFC0FE 7E0038 3F0030 1F0060 1F00C0 1F8180 0F8380 0F8300 07C600 07CC00 07F800 03F800 03F000 03E000 03E000 03E000 03E000 07E000 07C000 07C000 07C000 0FC000 7FF800 7FF000 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 18 3 0 BITMAP 7F80 7F80 1F00 1F00 1F00 1F00 1E00 3E00 3E00 3E00 3E00 3C00 7C00 7C00 7C00 7C00 FF00 FF00 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 13 26 2 0 BITMAP 0FF0 0FE0 03E0 03E0 03E0 07C0 07C0 07C0 07C0 07C0 0F88 0FF8 0FE0 3F80 FF80 9F00 1F00 1F00 1F00 1F00 3E00 3E00 3E00 3E00 3F80 7F80 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 20 25 1 0 BITMAP 07FE00 07FE00 01F800 01F000 01F000 01F000 03F000 03E000 03E000 03EE00 03FC00 07F000 3FC000 7FC000 07C000 07C000 0F8000 0F8000 0F8000 0F8070 1F8070 1F8070 3F8060 FFFFE0 FFFFE0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 22 0 BBX 19 31 3 -6 BITMAP 003E00 003E00 003E00 003C00 007C00 007C00 007C00 007800 007800 1C78E0 3FFFE0 3FFFE0 38F1C0 00F000 00F000 00F000 01F000 01E000 01E000 71E380 FFFF80 FFFF80 E3C700 03C000 03C000 03C000 07C000 07C000 07C000 078000 0F8000 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 23 34 2 -7 BITMAP 001F80 007F80 00F3BE 00E3BE 01E33C 03E33C 03C000 07C000 07C000 3FFFFC 3FFFF8 0780F8 0F80F8 0F80F8 0F80F0 0F81F0 0F01F0 1F01F0 1F01F0 1F03E0 1F03E0 1E03E0 3E03E0 3E03E0 3E07E0 3E07F8 3C07F8 7C0000 7C0000 7C0000 7C0000 780000 F80000 F80000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 2 1 BITMAP 0800 1C00 1C00 1E00 0F00 0F00 0780 07C0 0780 0F00 1E00 3C00 3800 7000 E000 4000 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 36 0 BBX 35 25 4 0 BITMAP 000FCFFFE0 007FFFFFE0 01F07F00E0 03E03F00C0 07C01F00C0 0F801F0000 1F001F0000 1F003E0000 3E003E0000 7E003E0700 7C003E0600 7C003FFE00 FC007FFE00 FC007C0E00 FC007C0E00 FC007C0000 FC007C0000 F800F80000 FC00F80000 7C00F80000 7C01F80700 3E03F80600 1F07F80E00 0FFFFFFE00 03FDFFFE00 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 34 0 BBX 32 2 3 10 BITMAP FFFFFFFF FFFFFFFF ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 11 5 11 21 BITMAP C0E0 61C0 7780 3F00 3E00 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 6 5 6 -6 BITMAP 38 60 E0 FC 7C ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 13 5 11 21 BITMAP 0F78 1CE0 39C0 7300 C600 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 3 1 BITMAP 0080 01C0 0380 0780 0F00 1E00 3C00 7800 F800 7800 3C00 3C00 1E00 0E00 0E00 0400 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 5 4 12 21 BITMAP 78 78 F0 F0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 12 5 10 21 BITMAP C030 E060 7FC0 7F80 1F00 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 22 0 BBX 12 12 7 4 BITMAP 1F80 3FC0 7FE0 FFF0 FFF0 FFF0 FFF0 FFF0 FFF0 7FE0 3FC0 1F80 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 12 4 9 21 BITMAP 3C30 7FE0 7FE0 C3C0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 11 5 9 21 BITMAP 0F80 1F80 3FC0 71C0 E060 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 15 11 4 15 BITMAP 0606 0E1E 1C38 3838 3070 7070 7C7C 7CFC FCF8 F8F8 F8F8 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 11 6 15 BITMAP F8 F8 F8 78 78 70 70 70 70 30 30 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 18 25 2 0 BITMAP 0181C0 00C380 00EF00 007E00 007C00 000000 000000 01FE00 07FF00 0F0700 0F0600 1F0600 1F0600 0F8000 0FC000 07F000 03F800 01F800 00FC00 607C00 607C00 E07C00 F0F800 FFF000 3FC000 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 5 5 13 22 BITMAP 70 D8 88 D8 70 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 -7 BITMAP 3F 3F 3F 3E 7E 7E 1E 1E 1C 3C 38 F0 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 22 0 BBX 18 31 7 -6 BITMAP 001FC0 007FC0 00E1C0 01E1C0 03C180 03C180 07C000 07C000 0F8000 0F8000 0F8000 0F8000 7FF800 7FF000 1F0000 1F0000 1F0000 1F0000 1E0000 3E0000 3E0000 3E0000 3E0000 3C0000 7C0000 7C0000 7C0000 7C0000 780000 F80000 F80000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 35 0 BBX 34 14 5 11 BITMAP 7FFEFE0FC0 FFFCFE1FC0 C7843E1F00 C78C3E3E00 07803F3E00 07807F7E00 07007FDE00 07007FDE00 0F00679E00 0F00679C00 0F00E73C00 0F00E63C00 3F83E63F00 7F83E03F00 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 27 24 -9 0 BITMAP 00000380 00000700 00000F00 00001E00 00003C00 00003800 00007000 0000E000 0001C000 00038000 00070000 000E0000 001C0000 00380000 00700000 00E00000 01C00000 03800000 07000000 0F000000 1E000000 1C000000 38000000 F0000000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 7 5 11 21 BITMAP F8 38 1C 0C 06 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 39 0 BBX 39 25 2 0 BITMAP 07C001C000 1FF0038000 3C70070000 38780E0000 78781C0000 7878380000 7078700000 7070F00000 70F1E00000 79E3C00000 3FC7800000 1F0F000000 000E3E00F8 001C7F83FC 0038F3879E 0071E3CF0E 00E3C3CE1E 01C3C3DE1E 0383C3DE1E 070383DE1E 0F03839E1C 1E03879E3C 3C03CF0E78 7801FE0FF0 F000F803C0 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 34 0 BBX 27 4 4 0 BITMAP 700F01E0 F00E01E0 F00E01E0 F01E01C0 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 15 11 4 15 BITMAP 3E3E 3E3E 3E7E 7E7C 7C7C 1C1C 1C3C 3838 3870 F0E0 C0C0 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 20 32 2 0 BITMAP 006070 0030E0 003BC0 001F80 001F00 000000 000000 003FC0 01FFF0 03E0F0 078070 0F8060 0F8060 0F8000 0F8000 0FC000 0FE000 07F000 03FC00 01FE00 00FF00 007F80 001F80 000FC0 000FC0 000FC0 600F80 600F80 E01F00 F83E00 FFFC00 3FE000 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 15 12 0 -7 BITMAP 3E3E 3E3E 3E7E 7E7C 7C7C 1C1C 1C1C 1C38 3838 7070 E0E0 C0C0 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 20 25 2 0 BITMAP 006070 0030E0 003BC0 001F80 001F00 000000 000000 0FFFE0 0FFFE0 1C07C0 1C0F80 181F00 003E00 007E00 00FC00 01F800 03F000 07E000 0FC000 0F8000 1F0180 3F0180 7E0380 FFFF00 FFFF00 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lubI08.bdf100644 1750 1750 60174 5413747533 15066 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-Medium-I-Normal--11-80-100-100-P-63-ISO8859-1 SIZE 8 100 100 FONTBOUNDINGBOX 17 14 -5 -3 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "Medium" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 11 POINT_SIZE 80 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 63 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 10 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 3 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 3 0 BBX 3 9 1 0 BITMAP 20 20 40 40 40 40 40 00 80 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 2 5 BITMAP A0 A0 A0 A0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 1 0 BITMAP 1A 14 7E 28 28 FC 50 90 B0 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 2 -1 BITMAP 78 60 60 60 20 70 50 D0 E0 40 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 1 0 BITMAP 71 52 54 6C 16 19 29 4A 86 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 1 0 BITMAP 1C 24 24 38 57 92 8C CC 76 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 2 5 BITMAP C0 40 40 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 3 0 BBX 4 12 1 -3 BITMAP 30 20 40 40 80 80 80 80 80 80 80 40 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 3 0 BBX 4 11 0 -2 BITMAP 20 30 10 10 10 30 20 20 20 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 2 5 BITMAP 20 F0 60 A0 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 10 10 10 10 FC 20 20 20 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 0 -2 BITMAP 40 C0 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 1 3 BITMAP FC ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 3 0 BBX 2 1 1 0 BITMAP C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 5 0 BBX 7 11 0 -2 BITMAP 02 04 04 08 10 10 20 20 40 40 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 38 6C 44 84 84 88 88 98 70 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 7 0 BBX 4 9 1 0 BITMAP 70 10 10 20 20 20 20 20 F0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 38 44 04 04 18 20 60 40 F8 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 38 4C 04 08 30 18 08 98 F0 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 0C 14 28 48 88 FC 08 10 38 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 3C 40 40 70 18 08 08 90 F0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 1C 24 40 F8 C8 88 88 98 70 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 2 0 BITMAP 7C 08 08 10 20 20 40 C0 80 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 38 44 44 78 70 88 88 88 70 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 38 6C 44 44 4C 7C 08 90 E0 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 3 0 BBX 2 6 1 0 BITMAP 40 00 00 00 00 80 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 0 -2 BITMAP 60 00 00 00 40 C0 40 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 0 BITMAP 02 0C 10 E0 40 30 08 04 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 7 0 BBX 7 3 0 2 BITMAP FE 00 FE ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 40 30 08 04 06 18 60 80 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 5 0 BBX 4 9 2 0 BITMAP F0 90 10 30 60 40 80 00 80 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 1 0 BITMAP 1F00 2080 4E80 9280 A280 A480 9B00 4000 3C00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 04 0C 0C 14 32 3E 42 42 C7 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 3E 12 22 24 38 24 66 44 F8 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 1E 22 40 C0 80 80 80 C4 78 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 8 0 BBX 9 9 0 0 BITMAP 3F00 3180 2080 2080 2080 2180 6100 4200 FC00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 6 0 BBX 7 9 0 0 BITMAP 3E 32 20 24 3C 28 60 44 FC ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 6 0 BBX 7 9 0 0 BITMAP 3E 32 20 24 3C 28 40 40 E0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 1E 22 40 C0 80 8E 84 C4 7C ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 9 0 BBX 10 9 0 0 BITMAP 39C0 3080 2180 2100 3F00 2100 6100 4300 E700 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 4 0 BBX 5 9 0 0 BITMAP 38 10 30 20 20 20 60 40 E0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 5 0 BBX 6 11 0 -2 BITMAP 1C 08 08 18 10 10 10 10 10 A0 E0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 7B 32 24 38 30 78 48 44 EE ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP 78 30 20 20 20 20 40 44 FC ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 10 0 BBX 11 9 0 0 BITMAP 30E0 30C0 3140 3B80 2A80 2C80 4C80 4180 E380 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 8 0 BBX 10 9 0 0 BITMAP 21C0 3100 3100 2900 2900 2500 4700 4200 E200 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 1E 22 43 C1 83 82 82 C4 78 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 6 0 BBX 7 9 0 0 BITMAP 3C 32 22 24 38 60 40 40 E0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 9 0 BBX 9 11 1 -2 BITMAP 1C00 2200 4300 C100 8300 8200 8200 C400 7800 0800 0780 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 0 0 BITMAP 7C 26 22 24 38 68 48 44 E6 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 1 0 BITMAP 3C 64 44 20 18 08 8C 88 F0 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 2 0 BITMAP FE 92 10 30 20 20 20 20 F0 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 2 0 BITMAP E7 42 42 44 84 84 84 C8 78 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 7 0 BBX 8 9 1 0 BITMAP E3 42 42 44 4C 68 30 30 20 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 1 0 BITMAP E4C0 4C80 4C80 5500 5500 6600 6600 6400 4400 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 7 0 BBX 9 9 0 0 BITMAP 3980 1100 1200 0C00 0800 1400 2400 4200 C700 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 2 0 BITMAP E6 44 4C 38 30 20 20 20 70 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 1 0 BITMAP 3E 24 4C 08 10 20 60 44 FC ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 3 0 BBX 4 11 1 -2 BITMAP 30 20 60 40 40 40 40 40 80 80 C0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 5 0 BBX 3 11 2 -2 BITMAP 80 80 40 40 40 40 40 40 40 20 20 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 3 0 BBX 4 11 0 -2 BITMAP 30 10 10 20 20 20 20 20 20 40 C0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 1 BITMAP 08 18 28 28 48 44 84 84 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 5 0 BBX 5 1 0 -1 BITMAP F8 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 2 5 BITMAP 40 80 80 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 3C 44 48 88 B8 EC ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 60 20 40 5C 64 64 48 88 F0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP 38 48 80 80 80 70 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 0C 04 04 38 48 48 88 B8 E8 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 38 48 90 E0 88 70 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 4 0 BBX 5 11 1 -2 BITMAP 18 28 20 70 40 40 40 40 C0 80 80 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 -2 BITMAP 1C 24 44 48 D8 68 88 F0 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 60 20 40 5C 74 44 48 88 8C ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 3 0 BBX 3 9 1 0 BITMAP 20 00 00 E0 40 40 40 80 C0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 4 0 BBX 5 11 0 -2 BITMAP 08 00 00 18 10 10 10 10 10 A0 C0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 1 0 BITMAP 60 20 40 44 58 60 70 98 8C ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 3 0 BBX 3 9 1 0 BITMAP 60 20 40 40 40 40 40 80 C0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 10 0 BBX 9 6 1 0 BITMAP DB80 6E80 6C80 4900 8900 9980 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP DC 54 64 48 88 8C ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 38 48 C8 88 98 F0 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 -2 BITMAP DC 74 64 48 48 F0 80 80 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 -2 BITMAP 3C 44 48 88 B8 E8 08 10 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 1 0 BITMAP D8 68 60 40 80 80 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 1 0 BITMAP 70 50 40 20 90 E0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 1 0 BITMAP 20 40 40 F0 40 40 80 80 E0 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP CC 44 4C 98 98 EC ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 1 0 BITMAP C4 44 2C 28 30 20 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 9 0 BBX 9 6 1 0 BITMAP C980 4980 5D00 3600 2600 2400 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP C4 28 30 70 D8 8C ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 6 0 BBX 7 8 0 -2 BITMAP 66 22 24 28 18 20 20 C0 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 7C 48 10 20 48 F8 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 1 -2 BITMAP 30 20 20 20 40 80 40 40 80 80 C0 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 3 0 BBX 3 11 1 -2 BITMAP 20 20 40 40 40 40 40 40 40 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 4 0 BBX 4 11 1 -2 BITMAP 20 10 10 20 20 30 40 40 40 40 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 7 0 BBX 7 3 0 2 BITMAP 62 92 8C ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 0 -2 BITMAP 20 00 40 40 40 40 80 80 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 2 0 BITMAP 08 18 78 A0 A0 A0 B0 F0 40 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 1C 14 20 20 70 20 40 40 F8 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 7 0 BBX 8 9 0 0 BITMAP 43 3A 2C 44 44 44 48 74 86 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 1 0 BITMAP E6 44 68 30 78 20 F0 20 E0 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 3 0 BBX 3 11 1 -2 BITMAP 20 20 20 20 40 00 40 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 -2 BITMAP 1C 24 20 30 58 44 34 08 04 88 F8 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 3 8 BITMAP A0 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 3C 43 9D 95 A1 A1 9D 43 3C ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 1 3 BITMAP 70 50 90 B0 F0 F0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 28 50 90 A0 50 50 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 7 0 BBX 6 4 1 1 BITMAP FC 04 04 04 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 3 0 BBX 3 1 1 3 BITMAP E0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 2 3 BITMAP 70 E8 C8 E8 E8 70 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 6 0 BBX 3 1 3 8 BITMAP E0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 2 6 BITMAP C0 C0 C0 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 08 08 7E 10 10 10 00 FC ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 4 0 BBX 4 5 -5 4 BITMAP 70 50 60 80 E0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 -5 4 BITMAP 60 60 60 A0 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 6 0 BBX 3 2 4 7 BITMAP 60 80 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 -2 BITMAP CC 44 44 48 58 EC 80 80 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 2 -2 BITMAP 78 F0 F0 F0 50 50 50 50 50 50 60 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 7 0 BBX 1 1 3 3 BITMAP 80 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 6 0 BBX 2 3 2 -2 BITMAP 40 40 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 -5 4 BITMAP 60 20 40 40 E0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 4 0 BBX 4 6 1 3 BITMAP 30 50 90 90 90 E0 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP 50 50 28 48 50 A0 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 2 0 BITMAP 6080 2100 4200 4400 EB00 0900 1700 2100 4300 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 2 0 BITMAP 6080 2100 4200 4400 EB80 0A80 1300 2400 4700 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 2 0 BITMAP 6080 6100 6200 A400 EB00 0900 1700 2100 4300 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 5 0 BBX 4 8 0 -2 BITMAP 10 00 10 20 40 80 90 70 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 8 0 BBX 8 11 0 0 BITMAP 04 02 04 0C 0C 14 32 3E 42 42 C7 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 8 0 BBX 8 11 0 0 BITMAP 03 04 04 0C 0C 14 32 3E 42 42 C7 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 8 0 BBX 8 11 0 0 BITMAP 04 0A 04 0C 0C 14 32 3E 42 42 C7 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 0F 04 0C 0C 14 32 3E 42 42 C7 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 0A 04 0C 0C 14 32 3E 42 42 C7 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 8 0 BBX 8 11 0 0 BITMAP 06 06 04 0C 0C 14 32 3E 42 42 C7 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 10 0 BBX 11 9 0 0 BITMAP 03E0 0620 0E40 13C0 1240 3E00 2400 C440 CFC0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 1 -2 BITMAP 1E 22 40 C0 80 80 80 C4 78 20 60 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 6 0 BBX 7 11 0 0 BITMAP 10 08 3E 32 20 24 3C 28 60 44 FC ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 6 0 BBX 7 11 0 0 BITMAP 06 08 3E 32 20 24 3C 28 60 44 FC ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 6 0 BBX 7 11 0 0 BITMAP 08 14 3E 32 20 24 3C 28 60 44 FC ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 6 0 BBX 7 10 0 0 BITMAP 14 3E 32 20 24 3C 28 60 44 FC ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 4 0 BBX 5 11 0 0 BITMAP 20 10 38 10 30 20 20 20 60 40 E0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 4 0 BBX 6 11 0 0 BITMAP 0C 10 38 10 30 20 20 20 60 40 E0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 4 0 BBX 5 11 0 0 BITMAP 10 28 38 10 30 20 20 20 60 40 E0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 4 0 BBX 5 10 0 0 BITMAP 28 38 10 30 20 20 20 60 40 E0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 8 0 BBX 9 9 0 0 BITMAP 3F00 3180 2080 2080 7880 2180 2100 4200 FC00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 8 0 BBX 10 10 0 0 BITMAP 0F00 21C0 3100 3100 2900 2900 2500 4700 4200 E200 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 08 04 1E 22 43 C1 83 82 82 C4 78 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 06 08 1E 22 43 C1 83 82 82 C4 78 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 08 14 1E 22 43 C1 83 82 82 C4 78 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 1E 1E 22 43 C1 83 82 82 C4 78 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 14 1E 22 43 C1 83 82 82 C4 78 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 42 64 24 18 30 48 4C 84 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 1 0 BITMAP 0E80 3100 2100 4700 4900 5100 6200 4600 BC00 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 8 0 BBX 8 11 2 0 BITMAP 10 08 E7 42 42 44 84 84 84 C8 78 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 8 0 BBX 8 11 2 0 BITMAP 0C 10 E7 42 42 44 84 84 84 C8 78 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 8 0 BBX 8 11 2 0 BITMAP 08 14 E7 42 42 44 84 84 84 C8 78 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 2 0 BITMAP 14 E7 42 42 44 84 84 84 C8 78 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 7 0 BBX 7 11 2 0 BITMAP 0C 10 E6 44 4C 38 30 20 20 20 70 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 6 0 BBX 7 9 0 0 BITMAP 38 10 3E 22 22 24 78 40 E0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 -2 BITMAP 18 24 28 70 50 48 44 54 F8 80 80 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 10 08 3C 44 48 88 B8 EC ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 0C 10 3C 44 48 88 B8 EC ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 08 14 3C 44 48 88 B8 EC ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 3C 3C 44 48 88 B8 EC ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 14 3C 44 48 88 B8 EC ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 18 18 3C 44 48 88 B8 EC ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 10 0 BBX 9 6 1 0 BITMAP 3F80 4480 4880 9F00 B880 EF00 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 1 -2 BITMAP 38 48 80 80 80 70 40 C0 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 20 10 38 48 90 E0 88 70 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 0 BITMAP 0C 10 38 48 90 E0 88 70 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 10 28 38 48 90 E0 88 70 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 28 38 48 90 E0 88 70 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 1 0 BITMAP 40 20 C0 40 40 40 80 C0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 3 0 BBX 4 8 1 0 BITMAP 30 40 C0 40 40 40 80 C0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 3 0 BBX 3 8 1 0 BITMAP 40 A0 C0 40 40 40 80 C0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 3 0 BBX 4 7 1 0 BITMAP 50 C0 40 40 40 80 C0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 78 38 48 38 48 88 88 98 70 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 3C DC 54 64 48 88 8C ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 10 08 38 48 C8 88 98 F0 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 1 0 BITMAP 0C 10 38 48 C8 88 98 F0 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 10 28 38 48 C8 88 98 F0 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 6 0 BBX 6 7 1 0 BITMAP 3C 38 48 C8 88 98 F0 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 28 38 48 C8 88 98 F0 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 10 00 00 FC 00 20 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP 3C 64 54 F4 48 F0 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 10 08 CC 44 4C 98 98 EC ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 0C 10 CC 44 4C 98 98 EC ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 08 14 CC 44 4C 98 98 EC ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 14 CC 44 4C 98 98 EC ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 6 0 BBX 7 10 0 -2 BITMAP 06 08 66 22 24 28 18 20 20 C0 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 -2 BITMAP 60 20 40 5C 74 64 48 48 F0 80 80 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 6 0 BBX 7 9 0 -2 BITMAP 14 66 22 24 28 18 20 20 C0 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 11 1 -2 BITMAP 1E 22 24 74 44 44 44 4C 4C 80 80 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 1 1 3 BITMAP F8 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 2 -2 BITMAP 10 20 20 F8 20 20 40 40 40 40 40 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 11 1 0 BITMAP 0A 04 3E 24 4C 08 10 20 60 44 FC ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 6 1 0 BITMAP 3B80 4C80 8880 8F00 9880 6700 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 2 0 BITMAP 28 E6 44 4C 38 30 20 20 20 70 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 6 1 0 BITMAP C0 40 40 40 80 C0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 4 9 0 0 BITMAP 70 20 20 20 F0 40 40 40 E0 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP 38 30 20 30 60 A0 60 44 FC ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 1 -2 BITMAP 10 10 10 7C 20 20 20 F8 20 20 40 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 11 1 -2 BITMAP 1A 28 20 7E 64 44 44 44 4C 80 80 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 1 0 BITMAP 40 40 20 20 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 9 1 0 BITMAP 1FE0 2220 4200 C240 83C0 8640 8400 C440 7FC0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 1 1 3 BITMAP FFC0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 2 4 7 BITMAP A0 40 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 2 2 2 -2 BITMAP C0 C0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 2 3 7 BITMAP 70 C0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 1 0 BITMAP 20 40 80 80 40 40 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 1 1 4 8 BITMAP 80 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 2 3 7 BITMAP 90 E0 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 3 2 2 BITMAP E0 E0 E0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 1 3 8 BITMAP F0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 2 3 7 BITMAP 40 A0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 2 5 BITMAP 50 A0 A0 F0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 1 4 2 5 BITMAP 80 80 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 1 0 BITMAP 28 10 70 50 40 20 90 E0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 2 2 4 7 BITMAP C0 C0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 0 -2 BITMAP 40 C0 40 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 2 -2 BITMAP 18 28 60 40 E0 40 40 40 C0 80 80 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 5 1 4 BITMAP FEC0 4680 4B80 4A80 C880 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 8 9 -2 0 BITMAP 01 02 04 08 10 10 20 40 80 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 2 2 3 7 BITMAP 80 40 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 9 1 0 BITMAP 7300 5200 5400 6800 16E0 29A0 29A0 4AA0 86C0 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 1 1 0 BITMAP 8880 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 2 5 BITMAP F0 50 50 A0 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 11 1 0 BITMAP 14 08 3C 64 44 20 18 08 8C 88 F0 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 0 -2 BITMAP 50 F0 50 A0 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 0 BITMAP 14 08 7C 48 10 20 48 F8 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lubI10.bdf100644 1750 1750 64631 5413747533 15061 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-Medium-I-Normal--14-100-100-100-P-80-ISO8859-1 SIZE 10 100 100 FONTBOUNDINGBOX 22 16 -6 -3 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "Medium" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 14 POINT_SIZE 100 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 13 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 4 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 1 0 BITMAP 20 60 60 40 40 40 40 00 00 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 5 0 BBX 4 3 3 7 BITMAP B0 A0 A0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 1 0 BITMAP 0480 0900 0900 7F80 1200 2400 FF00 4800 4800 9000 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 2 -2 BITMAP 08 3C 74 54 50 30 18 2C AC A8 F0 40 40 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 2 0 BITMAP 3080 4900 4A00 5400 7400 0B00 1480 2480 4500 8700 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 0 BITMAP 0C00 1200 3200 1C00 3000 5B80 8900 8E00 C400 7F00 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 2 6 BITMAP 60 60 40 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 4 0 BBX 5 13 1 -3 BITMAP 18 20 20 40 40 C0 80 80 80 80 80 80 40 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 4 0 BBX 5 13 0 -3 BITMAP 10 10 10 10 18 18 10 10 10 20 20 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 6 0 BBX 6 5 2 5 BITMAP 20 A4 58 60 90 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 1 0 BITMAP 08 08 08 08 FF 10 10 10 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 4 0 BBX 2 5 1 -3 BITMAP 40 C0 40 80 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 9 0 BBX 8 1 1 3 BITMAP FF ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 4 0 BBX 2 2 1 0 BITMAP C0 C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 6 0 BBX 9 13 0 -3 BITMAP 0080 0100 0200 0200 0400 0400 0800 1000 1000 2000 4000 4000 8000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 2 0 BITMAP 1C 22 62 43 C2 82 86 84 CC 78 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 9 0 BBX 5 10 2 0 BITMAP 38 18 10 10 10 10 30 20 20 F8 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 1E 23 21 03 06 08 30 40 40 FE ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 3C 22 22 06 38 04 04 84 8C F8 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 02 0E 14 24 44 84 FE 08 08 1C ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 2 0 BITMAP 3F 20 20 78 0C 04 04 84 8C F0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 2 0 BITMAP 1E 33 62 40 FC C6 86 86 CC 78 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 2 0 BITMAP 7F 02 02 0C 08 10 20 60 40 C0 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 2 0 BITMAP 1C 26 66 64 38 4C 84 84 CC 78 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 1C 22 42 43 46 3E 06 84 88 F0 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 4 0 BBX 3 7 1 0 BITMAP 60 60 00 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 0 -3 BITMAP 30 30 00 00 00 00 E0 40 40 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 1 0 BITMAP 0080 0300 1C00 E000 6000 1800 0400 0300 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 9 0 BBX 9 4 1 2 BITMAP FF80 0000 0000 FF80 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 0 0 BITMAP 6000 1800 0400 0300 0380 1C00 6000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 2 0 BITMAP 78 88 8C 18 30 60 40 40 00 C0 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 2 0 BITMAP 0F80 3040 4F20 5120 9220 9220 B640 9B80 4200 3C00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 0 BITMAP 0200 0300 0700 0900 0900 1100 3F80 2180 4180 E3C0 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 8 0 BBX 9 10 0 0 BITMAP 3F00 1980 1080 1100 1E00 3200 2100 2100 6300 FE00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 2 0 BITMAP 0F80 3080 6080 4000 C000 C000 C000 C000 6100 3E00 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 0 0 BITMAP 3F80 18C0 1060 1060 3060 3060 2040 20C0 6180 FE00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 8 0 BBX 9 10 0 0 BITMAP 3F80 1880 1000 1200 3E00 3200 2000 2000 6100 FE00 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 8 0 BBX 9 10 0 0 BITMAP 3F80 1880 1000 1200 3E00 3200 2000 2000 6000 F000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 2 0 BITMAP 1F80 3080 6080 4000 C000 C780 C300 C200 6200 3E00 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 11 0 BBX 12 10 0 0 BITMAP 3CF0 1860 1040 1040 3FC0 30C0 2080 2080 6180 F3C0 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 5 0 BBX 6 10 0 0 BITMAP 3C 18 10 10 30 30 20 20 60 F0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 6 0 BBX 8 13 0 -3 BITMAP 0F 06 04 04 0C 0C 0C 08 08 18 18 90 E0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 10 0 BBX 11 10 0 0 BITMAP 3CE0 18C0 1100 1600 3C00 3C00 2600 2300 6180 F3C0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 3C 18 10 10 30 30 20 20 61 FF ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 12 0 BBX 13 10 1 0 BITMAP 3838 1870 1860 28A0 2DA0 2D60 2640 2640 4040 E1E0 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 11 0 BBX 12 10 0 0 BITMAP 3070 1820 1840 2C40 2640 2240 2340 2140 4180 E080 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 2 0 BITMAP 0F00 3180 60C0 40C0 C0C0 C0C0 C080 C100 4300 3C00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 8 0 BBX 9 10 0 0 BITMAP 3F00 1980 1180 1180 3300 3E00 2000 2000 6000 F000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 2 -3 BITMAP 0F00 3180 60C0 40C0 C0C0 C0C0 C080 C180 4300 3E00 0400 0600 01E0 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 0 0 BITMAP 3F00 1180 1180 3100 3200 3C00 2600 2200 6300 F180 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 0 BITMAP 1E 33 22 20 38 0C 04 86 8C F8 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 2 0 BITMAP FF80 8880 0800 1800 1800 1000 1000 3000 3000 7800 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 2 0 BITMAP F1C0 6080 4100 4100 4100 C100 8100 8200 C600 7C00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 9 0 BBX 10 10 2 0 BITMAP F1C0 4080 6180 6100 2200 2600 2400 3800 3800 1000 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 12 0 BBX 13 10 2 0 BITMAP F238 4210 4620 4620 4A40 6B40 7380 7380 6300 4300 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 9 0 BBX 11 10 0 0 BITMAP 3CE0 1840 0880 0F00 0600 0600 0A00 1300 6100 E380 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 2 0 BITMAP F380 6100 6200 2400 3800 1800 1000 3000 3000 7800 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 1 0 BITMAP 3F80 2100 0200 0600 0C00 1800 3000 2000 4100 FE00 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 4 0 BBX 5 13 1 -3 BITMAP 38 20 20 20 20 60 40 40 40 40 C0 80 E0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 6 0 BBX 4 13 2 -3 BITMAP 80 80 40 40 40 40 40 20 20 20 20 10 10 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 4 0 BBX 5 13 0 -3 BITMAP 38 08 18 10 10 10 10 30 20 20 20 20 E0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 1 2 BITMAP 04 04 0C 12 22 22 41 81 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 1 -2 BITMAP FC ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 2 6 BITMAP 60 40 C0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 1 0 BITMAP 1F 23 42 C2 86 9E F7 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 0 BITMAP 70 20 20 27 79 71 63 42 C4 F8 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 1C 64 44 80 80 C4 78 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 07 03 02 1E 22 42 C6 8C 94 E6 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 1C 64 44 F8 80 CC 78 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 5 0 BBX 7 14 1 -3 BITMAP 0E 12 12 20 7C 20 20 60 60 40 40 40 C0 80 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 -3 BITMAP 1F 23 22 42 46 4A 76 04 84 F8 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 2 0 BITMAP 60 20 20 6E 56 66 44 44 C4 8E ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 2 0 BITMAP 20 00 00 E0 40 40 40 40 80 C0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 5 0 BBX 7 13 0 -3 BITMAP 06 00 00 0C 04 04 0C 0C 08 08 98 90 E0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 60 20 20 66 6C 50 70 58 CC 8E ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 1 0 BITMAP 70 30 20 20 60 60 40 40 C0 E0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 13 0 BBX 12 7 1 0 BITMAP EE70 7BB0 7330 6620 4620 C420 8470 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 2 0 BITMAP EE 56 66 44 44 C4 8E ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 1C 66 46 C6 C4 CC 70 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 -3 BITMAP 67 39 71 63 42 44 78 C0 C0 80 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 -3 BITMAP 1F 23 42 C2 C6 9E F6 04 04 04 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 2 0 BITMAP EC 54 60 60 40 C0 80 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 38 48 68 30 90 90 F0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 5 0 BBX 4 9 2 0 BITMAP 60 40 F0 40 40 C0 C0 80 E0 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 2 0 BITMAP EE 46 46 44 CC D4 EE ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 1 0 BITMAP E3 61 22 36 3C 18 10 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 11 0 BBX 11 7 1 0 BITMAP C260 6620 2660 2AC0 3A80 3300 2300 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 1 0 BITMAP 66 26 38 18 68 CC 86 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 8 0 BBX 9 10 0 -3 BITMAP 6180 3180 1100 1200 1600 1400 1800 1000 2000 C000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 3E 44 08 10 20 44 FC ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 5 0 BBX 5 13 1 -3 BITMAP 18 30 20 20 20 20 C0 40 40 C0 80 80 40 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 3 0 BBX 3 13 1 -3 BITMAP 20 20 20 40 40 40 40 40 40 40 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 5 0 BBX 5 13 1 -3 BITMAP 30 08 18 10 10 10 18 20 20 20 20 60 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 9 0 BBX 9 3 1 2 BITMAP 7080 9880 8700 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 1 -3 BITMAP 20 00 00 40 40 40 40 C0 C0 80 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP 08 1C 34 50 D0 90 90 E4 78 20 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 07 09 11 10 10 7C 30 20 20 FC ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 9 0 BBX 10 10 1 0 BITMAP 4000 20C0 2F80 1300 2100 2100 2100 2200 5F00 8100 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 2 0 BITMAP E380 6300 2200 3C00 7C00 1000 FC00 3000 2000 7000 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 3 0 BBX 3 13 1 -3 BITMAP 20 20 20 40 40 40 00 40 40 40 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 -3 BITMAP 1F 31 20 20 38 4C 42 72 1C 04 84 8C F8 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 8 0 BBX 4 1 4 9 BITMAP 90 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 1 0 BITMAP 1F00 6080 4F40 9120 9020 A020 9020 5E40 6080 1F00 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 2 4 BITMAP 38 48 C8 98 B8 D8 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 24 28 58 90 50 48 48 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 9 0 BBX 8 4 1 2 BITMAP FF 01 01 03 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 4 0 BBX 3 1 2 4 BITMAP E0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 9 0 BBX 5 6 3 4 BITMAP 70 F8 A8 A8 D8 70 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 8 0 BBX 4 1 4 9 BITMAP F0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 4 0 BBX 2 2 3 8 BITMAP C0 C0 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 0 0 BITMAP 0400 0400 7F80 0800 0800 0800 0000 FF00 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 5 0 BBX 5 6 -6 4 BITMAP 38 48 18 60 80 F0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 -6 4 BITMAP 70 50 60 10 90 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 8 0 BBX 3 2 5 8 BITMAP 60 80 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 -3 BITMAP 67 23 62 42 46 4E 77 C0 C0 80 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 2 -3 BITMAP 7C F4 F8 E8 68 28 28 28 50 50 50 50 50 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 9 0 BBX 2 1 4 4 BITMAP C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 8 0 BBX 2 3 2 -3 BITMAP 40 40 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 -6 4 BITMAP 60 20 40 40 40 E0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 2 4 BITMAP 38 48 88 88 90 60 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 48 48 28 24 28 50 90 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 3 0 BITMAP 6020 2040 4080 4100 42C0 E540 0A40 13C0 2080 41C0 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 3 0 BITMAP 6020 2040 4080 4100 42E0 E520 0860 1180 2200 43C0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 3 0 BITMAP 7020 5040 6080 1100 92C0 E540 0A40 13C0 2080 41C0 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 -3 BITMAP 0C 00 08 18 10 60 C0 88 C8 78 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP 0300 0080 0000 0200 0300 0700 0900 0900 1100 3F80 2180 4180 E3C0 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP 0180 0200 0000 0200 0300 0700 0900 0900 1100 3F80 2180 4180 E3C0 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP 0300 0480 0000 0200 0300 0700 0900 0900 1100 3F80 2180 4180 E3C0 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 07C0 0000 0200 0300 0700 0900 0900 1100 3F80 2180 4180 E3C0 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 0480 0000 0200 0300 0700 0900 0900 1100 3F80 2180 4180 E3C0 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP 0300 0300 0000 0200 0300 0700 0900 0900 1100 3F80 2180 4180 E3C0 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 13 0 BBX 14 10 0 0 BITMAP 00FC 01C4 0280 0498 0DF0 1190 1F00 2100 4308 E7F0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 2 -3 BITMAP 0F80 3080 6080 4000 C000 C000 C000 C000 6100 3E00 1000 1000 3000 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 8 0 BBX 9 13 0 0 BITMAP 0C00 0200 0000 3F80 1880 1000 1200 3E00 3200 2000 2000 6100 FE00 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 8 0 BBX 9 13 0 0 BITMAP 0300 0400 0000 3F80 1880 1000 1200 3E00 3200 2000 2000 6100 FE00 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 8 0 BBX 9 13 0 0 BITMAP 0600 0900 0000 3F80 1880 1000 1200 3E00 3200 2000 2000 6100 FE00 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 8 0 BBX 9 12 0 0 BITMAP 0900 0000 3F80 1880 1000 1200 3E00 3200 2000 2000 6100 FE00 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 5 0 BBX 6 13 0 0 BITMAP 18 04 00 3C 18 10 10 30 30 20 20 60 F0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 5 0 BBX 6 13 0 0 BITMAP 0C 10 00 3C 18 10 10 30 30 20 20 60 F0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 5 0 BBX 6 13 0 0 BITMAP 18 24 00 3C 18 10 10 30 30 20 20 60 F0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 5 0 BBX 6 12 0 0 BITMAP 24 00 3C 18 10 10 30 30 20 20 60 F0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 11 0 BBX 11 10 0 0 BITMAP 3F80 10C0 1060 1060 7C60 3060 2040 20C0 6180 FE00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 11 0 BBX 12 12 0 0 BITMAP 07C0 0000 3070 1820 1840 2C40 2640 2240 2340 2140 4180 E080 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 2 0 BITMAP 0C00 0200 0000 0F00 3180 60C0 40C0 C0C0 C0C0 C080 C100 4300 3C00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 2 0 BITMAP 0300 0400 0000 0F00 3180 60C0 40C0 C0C0 C0C0 C080 C100 4300 3C00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 2 0 BITMAP 0600 0900 0000 0F00 3180 60C0 40C0 C0C0 C0C0 C080 C100 4300 3C00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 2 0 BITMAP 0F80 0000 0F00 3180 60C0 40C0 C0C0 C0C0 C080 C100 4300 3C00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 2 0 BITMAP 0900 0000 0F00 3180 60C0 40C0 C0C0 C0C0 C080 C100 4300 3C00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 1 0 BITMAP 4080 2100 1200 1C00 1C00 2400 4200 8100 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 11 0 BBX 12 10 1 0 BITMAP 07B0 18C0 3060 21E0 6260 4C40 5040 7080 6100 9E00 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 2 0 BITMAP 0C00 0200 0000 F1C0 6080 4100 4100 4100 C100 8100 8200 C600 7C00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 2 0 BITMAP 0300 0400 0000 F1C0 6080 4100 4100 4100 C100 8100 8200 C600 7C00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 2 0 BITMAP 0C00 1200 0000 F1C0 6080 4100 4100 4100 C100 8100 8200 C600 7C00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 2 0 BITMAP 1200 0000 F1C0 6080 4100 4100 4100 C100 8100 8200 C600 7C00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 9 0 BBX 9 13 2 0 BITMAP 0600 0800 0000 F380 6100 6200 2400 3800 1800 1000 3000 3000 7800 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 8 0 BBX 9 10 0 0 BITMAP 3C00 1800 1F00 1180 1180 3180 3300 3E00 6000 F000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 8 0 BBX 8 14 1 -3 BITMAP 1E 12 32 24 28 28 6C 62 42 53 5C C0 C0 80 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 0C 02 00 1F 23 42 C2 86 9E F7 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 03 04 00 1F 23 42 C2 86 9E F7 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 0C 12 00 1F 23 42 C2 86 9E F7 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 1F 00 1F 23 42 C2 86 9E F7 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 09 00 1F 23 42 C2 86 9E F7 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 06 06 00 1F 23 42 C2 86 9E F7 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 12 0 BBX 11 7 1 0 BITMAP 1FE0 2320 4220 C7C0 CE00 9E20 E3C0 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 -3 BITMAP 1C 64 44 80 80 C4 78 20 20 60 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 0 BITMAP 18 04 00 1C 64 44 F8 80 CC 78 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 1 0 BITMAP 06 08 00 1C 64 44 F8 80 CC 78 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 1 0 BITMAP 0C 12 00 1C 64 44 F8 80 CC 78 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 1 0 BITMAP 12 00 1C 64 44 F8 80 CC 78 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 1 0 BITMAP 60 10 00 E0 60 40 40 40 C0 E0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 4 0 BBX 5 10 1 0 BITMAP 18 20 00 E0 60 40 40 40 C0 E0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 4 0 BBX 5 10 1 0 BITMAP 30 48 00 E0 60 40 40 40 C0 E0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 4 0 BBX 5 9 1 0 BITMAP 48 00 E0 60 40 40 40 C0 E0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 1 0 BITMAP 06 38 1C 26 3E 66 46 C6 84 CC 70 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 2 0 BITMAP 1F 00 EE 56 66 44 44 C4 8E ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 18 04 00 1C 66 46 C6 C4 CC 70 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 06 08 00 1C 66 46 C6 C4 CC 70 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 0C 12 00 1C 66 46 C6 C4 CC 70 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 1 0 BITMAP 1F 00 1C 66 46 C6 C4 CC 70 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 12 00 1C 66 46 C6 C4 CC 70 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 1 0 BITMAP 08 00 00 FF 00 00 10 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 1 0 BITMAP 1D 22 67 5A 62 44 F8 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 2 0 BITMAP 18 04 00 EE 46 46 44 CC D4 EE ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 2 0 BITMAP 06 08 00 EE 46 46 44 CC D4 EE ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 2 0 BITMAP 0C 12 00 EE 46 46 44 CC D4 EE ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 2 0 BITMAP 12 00 EE 46 46 44 CC D4 EE ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 8 0 BBX 9 13 0 -3 BITMAP 0300 0400 0000 6180 3180 1100 1200 1600 1400 1800 1000 2000 C000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 1 -3 BITMAP 70 20 20 27 39 71 63 42 44 78 C0 C0 80 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 8 0 BBX 9 12 0 -3 BITMAP 0900 0000 6180 3180 1100 1200 1600 1400 1800 1000 2000 C000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 14 1 -3 BITMAP 0F80 1180 1100 3100 7D00 2100 2300 6200 6200 4200 4700 4000 C000 8000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 1 4 BITMAP FC ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 2 -3 BITMAP 10 10 10 10 FC 20 20 20 20 20 60 40 40 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 13 1 0 BITMAP 0900 0600 0000 3F80 2100 0200 0600 0C00 1800 3000 2000 4100 FE00 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 7 1 0 BITMAP 1CC0 6560 4640 C780 8600 CE20 73C0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 2 0 BITMAP 1200 0000 F380 6100 6200 2400 3800 1800 1000 3000 3000 7800 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 7 1 0 BITMAP E0 60 40 40 40 C0 E0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 5 10 1 0 BITMAP 70 10 30 30 38 E0 60 60 40 70 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 3C 18 10 14 3C 70 70 20 61 FF ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 2 -3 BITMAP 08 08 08 7E 10 10 10 10 FC 20 20 20 20 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 14 1 -3 BITMAP 0E00 1380 1200 3000 7F00 2100 2100 6300 6200 4200 4300 4000 C000 8000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 0 BITMAP 40 20 20 10 20 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 10 1 0 BITMAP 0FFC 3184 6084 4098 C1F0 C190 C100 C108 4318 3FF0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 13 1 1 3 BITMAP FFF8 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 4 2 4 8 BITMAP 90 60 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 2 2 2 -3 BITMAP C0 C0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 2 4 8 BITMAP 78 A0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 0 BITMAP 10 20 40 80 40 40 20 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 2 1 5 9 BITMAP C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 2 4 8 BITMAP 88 F0 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 4 4 3 2 BITMAP 60 F0 F0 60 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 1 4 9 BITMAP F8 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 4 2 4 8 BITMAP 60 90 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 4 2 6 BITMAP 48 50 90 D8 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 2 7 BITMAP C0 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 7 10 1 0 BITMAP 12 0C 00 38 48 68 30 90 90 F0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 2 2 5 9 BITMAP C0 C0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 2 5 1 -3 BITMAP 40 C0 40 80 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 2 -3 BITMAP 0E 12 32 20 20 F8 60 60 40 40 40 C0 80 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 12 5 2 5 BITMAP FF30 2360 25A0 4540 EC60 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 10 10 -2 0 BITMAP 0040 0080 0100 0200 0400 0800 1000 2000 4000 8000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 3 2 4 8 BITMAP C0 20 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 16 10 0 0 BITMAP 3830 4440 4480 4900 7200 05C7 0A29 1229 2249 C38E ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 11 1 2 0 BITMAP C460 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 4 2 6 BITMAP D8 48 50 90 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 13 1 0 BITMAP 09 06 00 1E 33 22 20 38 0C 04 86 8C F8 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 1 -3 BITMAP 58 D8 48 50 90 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 0 BITMAP 09 06 00 3E 44 08 10 20 44 FC ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lubI12.bdf100644 1750 1750 73644 5413747534 15070 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-Medium-I-Normal--17-120-100-100-P-96-ISO8859-1 SIZE 12 100 100 FONTBOUNDINGBOX 29 21 -10 -4 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "Medium" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 17 POINT_SIZE 120 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 96 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 15 FONT_DESCENT 4 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 4 0 BBX 4 13 1 0 BITMAP 30 30 30 20 20 20 40 40 40 40 00 00 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 6 0 BBX 4 4 3 9 BITMAP D0 90 90 90 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 1 0 BITMAP 0640 0480 0480 0900 7FC0 1100 1200 2200 FF80 2400 4800 4800 9800 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 10 0 BBX 7 14 3 -1 BITMAP 1E 2A 6A 68 68 30 18 1C 14 14 94 98 F0 20 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 1 0 BITMAP 3810 6420 4440 4480 4D00 3900 02E0 0520 0B30 1320 2220 4360 C1C0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 12 0 BBX 13 13 1 0 BITMAP 0380 0CC0 08C0 0880 0F00 1C00 64F8 C620 C620 C340 C380 6180 3EE0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 3 8 BITMAP 60 60 60 40 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 5 0 BBX 6 16 2 -3 BITMAP 0C 10 10 20 60 40 40 C0 C0 C0 80 80 80 80 40 20 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 5 0 BBX 6 16 0 -3 BITMAP 10 08 08 08 08 0C 08 08 08 18 18 10 20 20 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 8 0 BBX 6 6 3 7 BITMAP 10 10 FC 30 D0 58 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 10 0 BBX 10 11 1 0 BITMAP 0400 0400 0400 0400 0400 FFC0 0800 0800 0800 0800 0800 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 1 -3 BITMAP 60 60 60 40 40 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 10 0 BBX 10 1 1 5 BITMAP FFC0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 4 0 BBX 2 2 1 0 BITMAP C0 C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 8 0 BBX 11 16 0 -3 BITMAP 0020 0040 0080 0080 0100 0300 0200 0400 0400 0800 1000 1000 2000 2000 4000 8000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 2 0 BITMAP 0E00 1100 2180 6180 4180 C180 C180 C180 C100 C300 C200 4600 3800 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 10 0 BBX 6 13 2 0 BITMAP 3C 0C 0C 08 08 18 18 18 10 10 30 30 FC ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 2 0 BITMAP 1F00 3180 2180 0180 0180 0300 0200 0C00 1000 2000 4000 C000 FE00 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 2 0 BITMAP 1E00 3300 2180 0180 0100 0600 3C00 0200 0300 0300 8300 8600 F800 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 0 BITMAP 0080 0380 0500 0900 1300 2300 2300 4200 FF80 0600 0600 0600 1F00 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 2 0 BITMAP 1F80 2000 2000 2000 3C00 0600 0300 0300 0300 0300 8600 8C00 F800 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 2 0 BITMAP 0F80 1880 3080 6000 6000 5E00 E300 C100 C100 C300 C300 4600 3800 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 3 0 BITMAP 7F80 0100 0100 0200 0400 0800 0800 1000 2000 6000 6000 C000 C000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 2 0 BITMAP 0F00 3180 2180 2180 3300 3E00 2E00 4700 C300 C300 C300 C600 7C00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 2 0 BITMAP 0E00 3100 2180 6080 6180 6180 6380 3D80 0300 0300 8600 8C00 7800 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 1 0 BITMAP 30 70 00 00 00 00 00 E0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 4 0 BBX 4 12 1 -3 BITMAP 30 30 00 00 00 00 00 60 C0 40 40 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 10 0 BBX 11 11 1 0 BITMAP 0020 00C0 0300 0C00 3000 C000 3000 1800 0600 0100 0080 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 10 0 BBX 11 4 1 3 BITMAP 7FE0 0000 0000 FFC0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 10 0 BBX 11 11 0 0 BITMAP 2000 1000 0C00 0300 0180 0060 0180 0600 1800 6000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 3 0 BITMAP 7C CC 86 06 0C 18 30 60 40 40 00 00 C0 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 15 0 BBX 14 13 2 0 BITMAP 03E0 0C18 3004 43E4 4444 8844 88C4 88C4 8B88 8E70 4000 2080 1F00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 0 0 BITMAP 00C0 00C0 01C0 03C0 02C0 0460 0C60 0860 1FE0 1060 6020 4030 F0F8 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 1 0 BITMAP 3F80 18C0 18C0 18C0 1880 1100 1E00 3180 3180 3080 3180 6380 FE00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 2 0 BITMAP 07E0 1860 3020 6000 6000 C000 C000 C000 C000 C000 C000 6080 3F00 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 1 0 BITMAP 3FE0 0870 0818 1818 1818 1818 1018 1018 3030 3030 3060 71C0 FF00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 10 0 BBX 11 13 0 0 BITMAP 3FE0 0C20 0800 0800 1800 1880 1F80 1080 3000 3000 3080 3080 FF80 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 9 0 BBX 11 13 0 0 BITMAP 3FE0 0C20 0800 1800 1800 1880 1F80 1080 3000 3000 3000 3000 F800 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 2 0 BITMAP 07F0 1C30 3020 2000 6000 4000 C000 C1F0 C0C0 C0C0 C0C0 70C0 3F00 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 13 0 BBX 15 13 0 0 BITMAP 3E3E 0C18 0818 1818 1818 1810 1FF0 1030 3030 3030 3020 3060 F8F8 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 6 0 BBX 7 13 1 0 BITMAP 3E 1C 18 18 18 18 10 30 30 30 30 70 F8 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 7 0 BBX 10 16 0 -3 BITMAP 07C0 0300 0300 0300 0300 0200 0600 0600 0600 0600 0400 0C00 0C00 8C00 9800 F000 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 12 0 BBX 13 13 0 0 BITMAP 3E78 0C30 0860 1880 1B00 1E00 1E00 1600 3300 3180 31C0 30C0 F9F0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP 3F00 0C00 0800 0800 1800 1800 1800 1000 1000 3000 3040 30C0 FFC0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 15 0 BBX 16 13 1 0 BITMAP 3C0F 0C0E 0C1C 141C 162C 1668 1648 1298 2298 2318 2310 6030 F07C ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 13 0 BBX 15 13 0 0 BITMAP 381E 0C08 0C08 1608 1610 1310 1110 1190 20D0 20D0 2060 2060 F020 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 2 0 BITMAP 07C0 1860 3030 2030 6030 4030 C030 C020 C060 C040 C0C0 6180 3E00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 10 0 BBX 11 13 0 0 BITMAP 3FC0 0C60 0860 1860 1860 18C0 1980 1F00 3000 3000 3000 3000 F800 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 13 0 BBX 14 16 2 -3 BITMAP 07C0 1860 3020 2030 6030 4030 C030 C020 C060 C060 C0C0 6180 3F00 0200 0100 00FC ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 1 0 BITMAP 3FC0 18E0 1860 1840 18C0 1180 1E00 3300 3300 3180 3180 70C0 F8E0 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 9 0 BBX 9 13 1 0 BITMAP 0F00 1980 3100 3100 3000 1800 0C00 0600 0200 0300 8200 8600 FC00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 2 0 BITMAP FFE0 8420 8C20 0C00 0C00 0C00 0800 1800 1800 1800 1800 3000 7C00 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 3 0 BITMAP F8F0 6040 6040 6040 6040 4080 C080 C080 C080 C080 C100 6300 3C00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 11 0 BBX 12 13 2 0 BITMAP F070 6020 6040 6040 2080 3180 3100 3200 3200 1400 1C00 1800 1000 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 15 0 BBX 16 13 2 0 BITMAP F08F 6182 6184 6384 6388 6488 6490 6890 28A0 30E0 30C0 20C0 2080 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 11 0 BBX 13 13 0 0 BITMAP 1E38 0C30 0C20 0640 0680 0300 0300 0700 0980 1180 10C0 60C0 E1E0 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 2 0 BITMAP F0E0 6040 6080 3100 3200 1E00 1C00 1800 1800 1800 1000 3000 7C00 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 1 0 BITMAP 1FE0 30C0 2080 0180 0300 0600 0400 0C00 1800 3000 6080 6080 FF80 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 5 0 BBX 6 16 1 -3 BITMAP 1C 10 30 30 30 20 20 60 60 60 40 40 40 C0 C0 E0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 8 0 BBX 5 16 2 -3 BITMAP 80 80 40 40 40 40 20 20 20 20 10 10 10 10 08 08 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 5 0 BBX 6 16 0 -3 BITMAP 1C 0C 0C 08 08 08 18 18 18 10 10 30 30 30 20 E0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 10 0 BBX 10 11 1 2 BITMAP 0200 0200 0500 0500 0900 1900 1080 2080 2080 4040 8040 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 8 0 BBX 7 1 1 -1 BITMAP FE ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 3 8 BITMAP 60 40 C0 C0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 0F80 1180 2180 4100 4300 C300 C700 CB00 7380 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 2 0 BITMAP 7000 3000 3000 2000 2700 2980 7180 7180 6100 4100 4200 C400 F800 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 1 0 BITMAP 1F 23 42 40 C0 C0 C0 C2 7C ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 1 0 BITMAP 01C0 00C0 0080 0080 0F80 1180 2180 4100 4100 C300 C700 CB00 7380 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 1E 22 62 46 F8 C0 C0 C6 7C ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 6 0 BBX 8 16 1 -3 BITMAP 0F 19 11 10 7C 30 30 20 60 60 60 60 40 C0 C0 C0 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 1 -3 BITMAP 0FC0 10C0 30C0 2080 6180 6380 4580 4500 7B00 0300 C200 7C00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 11 0 BBX 9 13 2 0 BITMAP 7000 3000 3000 3000 2700 2980 7180 6100 6100 4300 4300 C300 C380 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 5 0 BBX 4 13 2 0 BITMAP 30 00 00 00 E0 60 60 60 40 40 40 C0 E0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 6 0 BBX 8 16 0 -3 BITMAP 03 00 00 00 0E 06 06 06 04 04 04 0C 0C 88 98 E0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 0 BITMAP 7000 3000 3000 3000 2180 2100 6600 7800 7800 4C00 4E00 C600 C380 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 5 0 BBX 4 13 2 0 BITMAP 70 30 30 20 20 60 60 60 40 40 C0 C0 E0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 16 0 BBX 14 9 2 0 BITMAP E738 696C 79CC 7388 6308 4318 C218 C218 C61C ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 11 0 BBX 9 9 2 0 BITMAP E300 6D80 7180 6100 6100 4300 4300 C300 C380 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 10 0 BBX 8 9 1 0 BITMAP 1E 33 61 41 C3 C3 C2 C4 78 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 1 -3 BITMAP 7380 34C0 38C0 30C0 3080 6080 6100 6200 7C00 4000 C000 C000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 -3 BITMAP 0F80 1180 2100 4100 4300 C300 C700 CA00 7200 0600 0600 0600 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 2 0 BITMAP F3 2E 78 70 60 40 40 C0 C0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 7 0 BBX 8 9 0 0 BITMAP 1F 31 31 38 1C 06 82 86 7C ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 6 0 BBX 5 12 2 0 BITMAP 20 20 60 F8 60 60 40 40 C0 C0 C0 60 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 11 0 BBX 9 9 2 0 BITMAP E380 6180 6100 6100 4300 4700 C700 DB00 6380 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 9 0 BBX 10 9 1 0 BITMAP E0C0 70C0 3080 3180 1100 1200 1C00 1800 1000 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 14 0 BBX 13 9 1 0 BITMAP E118 6108 2308 3390 35B0 3DA0 18C0 10C0 1080 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 1 0 BITMAP 7180 3180 1B00 1C00 0C00 3C00 6600 C600 C380 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 9 0 BBX 11 12 0 -3 BITMAP 70E0 1840 1840 1880 0900 0900 0A00 0C00 0800 1000 2000 E000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 1 0 BITMAP 3F80 2300 0600 0C00 0800 1000 3000 6100 FF00 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 6 0 BBX 6 16 1 -3 BITMAP 0C 10 30 30 30 30 20 20 C0 60 60 40 C0 C0 C0 60 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 4 0 BBX 4 16 1 -3 BITMAP 10 10 30 20 20 20 20 20 40 40 40 40 40 C0 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 6 0 BBX 6 16 1 -3 BITMAP 18 0C 0C 08 18 18 18 0C 10 10 30 20 20 20 60 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 10 0 BBX 10 4 1 3 BITMAP 7040 9840 8E40 8380 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 4 0 BBX 4 12 1 -3 BITMAP 30 00 00 20 20 20 40 40 40 40 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 2 0 BITMAP 04 07 1D 29 48 C8 C8 C8 C8 CA 7C 10 10 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 2 0 BITMAP 0780 0880 0880 1800 1800 1000 7C00 1000 3000 3000 2000 4000 FE00 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 10 0 BBX 12 11 1 1 BITMAP 2020 1770 18C0 1080 2080 2080 2080 2080 3100 4E80 8040 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 10 0 BBX 11 13 2 0 BITMAP F0E0 6040 3180 3200 1C00 7E00 1800 1800 7E00 1000 1000 3000 7800 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 4 0 BBX 4 16 1 -3 BITMAP 10 10 30 20 20 20 20 00 00 40 40 40 40 C0 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 10 0 BBX 9 16 2 -3 BITMAP 0F80 1080 3080 2000 3000 3C00 2E00 6300 6300 3200 1C00 0600 0600 8600 8400 F800 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 10 0 BBX 5 1 5 12 BITMAP D8 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 2 0 BITMAP 0F80 3060 6010 43C8 8C48 8808 8808 8808 8808 4788 6010 3060 0F80 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 2 5 BITMAP 3E 64 44 CC CC 9C BC EC ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 09 12 24 4C D8 48 44 24 22 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 10 0 BBX 10 5 1 2 BITMAP FFC0 0040 0040 0080 0080 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 5 0 BBX 4 1 2 5 BITMAP F0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 10 0 BBX 7 8 3 5 BITMAP 38 46 9E 96 9A AE 46 3C ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 10 0 BBX 5 1 5 12 BITMAP F8 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 5 0 BBX 3 4 3 9 BITMAP C0 A0 A0 C0 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 10 0 BBX 11 11 0 0 BITMAP 0200 0200 0200 0200 7FE0 0400 0400 0400 0000 0000 FFC0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 -9 5 BITMAP 38 44 04 08 30 40 80 F8 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 -10 5 BITMAP 38 48 08 70 08 08 90 F0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 10 0 BBX 4 2 6 11 BITMAP 30 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 1 -3 BITMAP 71C0 30C0 3080 2080 6180 6180 6380 6500 7BC0 C000 C000 C000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 10 0 BBX 7 16 3 -3 BITMAP 7E FA F2 F2 F4 74 34 14 24 28 28 28 28 28 28 48 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 10 0 BBX 2 1 5 5 BITMAP C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 10 0 BBX 3 3 3 -3 BITMAP 60 20 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 -10 5 BITMAP 70 10 20 20 20 20 20 F0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 2 5 BITMAP 1C 24 46 C4 84 84 C8 70 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 44 24 22 12 1B 32 24 48 90 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 3 0 BITMAP 7018 1030 2060 2040 2080 2130 2250 F490 0920 11F0 3020 6020 C060 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 3 0 BITMAP 7018 1030 2060 2040 2080 2170 2288 F408 0810 1060 3080 6100 C1F0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 14 0 BBX 13 13 3 0 BITMAP 3818 4830 0860 7040 0880 0930 9250 F490 0920 11F0 3020 6020 C060 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 1 -4 BITMAP 06 00 00 0C 0C 08 10 20 40 C0 C6 C4 7C ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 13 0 BBX 13 16 0 0 BITMAP 00C0 0020 0000 00C0 00C0 01C0 03C0 02C0 0460 0C60 0860 1FE0 1060 6020 4030 F0F8 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 13 0 BBX 13 16 0 0 BITMAP 0030 00C0 0000 00C0 00C0 01C0 03C0 02C0 0460 0C60 0860 1FE0 1060 6020 4030 F0F8 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 13 0 BBX 13 16 0 0 BITMAP 0060 0190 0000 00C0 00C0 01C0 03C0 02C0 0460 0C60 0860 1FE0 1060 6020 4030 F0F8 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 13 0 BBX 13 16 0 0 BITMAP 00C8 0130 0000 00C0 00C0 01C0 03C0 02C0 0460 0C60 0860 1FE0 1060 6020 4030 F0F8 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 13 0 BBX 13 15 0 0 BITMAP 01B0 0000 00C0 00C0 01C0 03C0 02C0 0460 0C60 0860 1FE0 1060 6020 4030 F0F8 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 0 0 BITMAP 00E0 00A0 00E0 0000 00C0 00C0 01C0 03C0 02C0 0460 0C60 0860 1FE0 1060 6020 4030 F0F8 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 15 0 BBX 17 13 0 0 BITMAP 003F80 007080 00A000 016000 026000 026200 047E00 086000 0FC000 10C000 20C000 40C200 E3FE00 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 12 0 BBX 11 16 2 -3 BITMAP 07E0 1860 3020 6000 6000 C000 C000 C000 C000 C000 C000 6080 3F00 1000 0800 3800 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 10 0 BBX 11 16 0 0 BITMAP 0300 0080 0000 3FE0 0C20 0800 0800 1800 1880 1F80 1080 3000 3000 3080 3080 FF80 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 10 0 BBX 11 16 0 0 BITMAP 00C0 0300 0000 3FE0 0C20 0800 0800 1800 1880 1F80 1080 3000 3000 3080 3080 FF80 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 10 0 BBX 11 16 0 0 BITMAP 0180 0640 0000 3FE0 0C20 0800 0800 1800 1880 1F80 1080 3000 3000 3080 3080 FF80 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 10 0 BBX 11 15 0 0 BITMAP 06C0 0000 3FE0 0C20 0800 0800 1800 1880 1F80 1080 3000 3000 3080 3080 FF80 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 6 0 BBX 7 16 1 0 BITMAP 18 04 00 3E 1C 18 18 18 18 10 30 30 30 30 70 F8 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 6 0 BBX 8 16 1 0 BITMAP 03 0C 00 3E 1C 18 18 18 18 10 30 30 30 30 70 F8 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 6 0 BBX 7 16 1 0 BITMAP 0C 32 00 3E 1C 18 18 18 18 10 30 30 30 30 70 F8 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 6 0 BBX 8 15 1 0 BITMAP 1B 00 3E 1C 18 18 18 18 10 30 30 30 30 70 F8 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 1 0 BITMAP 3FE0 0870 1818 1818 1818 1818 7E18 1018 3030 3030 3060 31C0 FF00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 13 0 BBX 15 16 0 0 BITMAP 0190 0260 0000 381E 0C08 0C08 1608 1610 1310 1110 1190 20D0 20D0 2060 2060 F020 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 13 0 BBX 12 16 2 0 BITMAP 0300 0080 0000 07C0 1860 3030 2030 6030 4030 C030 C020 C060 C040 C0C0 6180 3E00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 13 0 BBX 12 16 2 0 BITMAP 00C0 0300 0000 07C0 1860 3030 2030 6030 4030 C030 C020 C060 C040 C0C0 6180 3E00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 13 0 BBX 12 16 2 0 BITMAP 0180 0640 0000 07C0 1860 3030 2030 6030 4030 C030 C020 C060 C040 C0C0 6180 3E00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 13 0 BBX 12 16 2 0 BITMAP 0320 04C0 0000 07C0 1860 3030 2030 6030 4030 C030 C020 C060 C040 C0C0 6180 3E00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 2 0 BITMAP 06C0 0000 07C0 1860 3030 2030 6030 4030 C030 C020 C060 C040 C0C0 6180 3E00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 10 0 BBX 12 11 0 0 BITMAP 2010 3020 1040 0880 0500 0600 0E00 1100 2080 40C0 8040 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 13 0 BBX 14 13 1 0 BITMAP 03E4 0C38 1818 1038 3058 2098 6118 6618 6830 7030 6060 70C0 9F00 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 12 0 BBX 12 16 3 0 BITMAP 0600 0100 0000 F8F0 6040 6040 6040 6040 4080 C080 C080 C080 C080 C100 6300 3C00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 12 0 BBX 12 16 3 0 BITMAP 0180 0600 0000 F8F0 6040 6040 6040 6040 4080 C080 C080 C080 C080 C100 6300 3C00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 12 0 BBX 12 16 3 0 BITMAP 0300 0C80 0000 F8F0 6040 6040 6040 6040 4080 C080 C080 C080 C080 C100 6300 3C00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 12 0 BBX 12 15 3 0 BITMAP 0D80 0000 F8F0 6040 6040 6040 6040 4080 C080 C080 C080 C080 C100 6300 3C00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 11 0 BBX 11 16 2 0 BITMAP 0180 0600 0000 F0E0 6040 6080 3100 3200 1E00 1C00 1800 1800 1800 1000 3000 7C00 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 1 0 BITMAP 3E00 1800 1800 1F80 18C0 18C0 10C0 3080 3180 3E00 3000 7000 F800 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 10 0 BBX 9 16 1 -3 BITMAP 0F00 1980 1980 1100 3200 3400 3400 2700 2380 6180 6880 6980 4F00 4000 C000 C000 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 0600 0100 0000 0F80 1180 2180 4100 4300 C300 C700 CB00 7380 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 0180 0600 0000 0F80 1180 2180 4100 4300 C300 C700 CB00 7380 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 0300 0C80 0000 0F80 1180 2180 4100 4300 C300 C700 CB00 7380 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 1 0 BITMAP 0640 0980 0000 0F80 1180 2180 4100 4300 C300 C700 CB00 7380 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 10 0 BBX 9 11 1 0 BITMAP 0D80 0000 0F80 1180 2180 4100 4300 C300 C700 CB00 7380 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 0 BITMAP 0700 0500 0700 0000 0F80 1180 2180 4100 4300 C300 C700 CB00 7380 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 15 0 BBX 14 9 1 0 BITMAP 0FB8 10CC 218C 6188 43F0 C300 C500 C984 71F8 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 1 -3 BITMAP 1F 23 42 40 C0 C0 C0 C2 7C 20 10 70 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 1 0 BITMAP 0C 02 00 1E 22 62 46 F8 C0 C0 C6 7C ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 0 BITMAP 03 0C 00 1E 22 62 46 F8 C0 C0 C6 7C ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 0 BITMAP 06 19 00 1E 22 62 46 F8 C0 C0 C6 7C ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 1B 00 1E 22 62 46 F8 C0 C0 C6 7C ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 5 0 BBX 4 12 2 0 BITMAP 60 10 00 E0 60 60 40 40 40 C0 C0 E0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 5 0 BBX 6 12 2 0 BITMAP 0C 30 00 E0 60 60 40 40 40 C0 C0 E0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 5 0 BBX 6 12 2 0 BITMAP 18 64 00 E0 60 60 40 40 40 C0 C0 E0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 5 0 BBX 6 11 2 0 BITMAP 6C 00 E0 60 60 40 40 40 C0 C0 E0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 2 0 BITMAP 3F 0E 1A 23 1F 23 61 41 C1 C3 C2 C4 78 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 2 0 BITMAP 0C80 1300 0000 E300 6D80 7180 6100 6100 4300 4300 C300 C380 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 0C 02 00 1E 33 61 41 C3 C3 C2 C4 78 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 0180 0600 0000 1E00 3300 6100 4100 C300 C300 C200 C400 7800 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 06 19 00 1E 33 61 41 C3 C3 C2 C4 78 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 0C80 1300 0000 1E00 3300 6100 4100 C300 C300 C200 C400 7800 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 10 0 BBX 9 11 1 0 BITMAP 0D80 0000 1E00 3300 6100 4100 C300 C300 C200 C400 7800 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 1 0 BITMAP 0600 0000 0000 0000 FFC0 0000 0000 0000 1800 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 1 0 BITMAP 0FC0 1180 2180 6780 6980 7180 6300 6200 BC00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 2 0 BITMAP 0C00 0200 0000 E380 6180 6100 6100 4300 4700 C700 DB00 6380 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 2 0 BITMAP 0180 0600 0000 E380 6180 6100 6100 4300 4700 C700 DB00 6380 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 2 0 BITMAP 0300 0C80 0000 E380 6180 6100 6100 4300 4700 C700 DB00 6380 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 11 0 BBX 9 11 2 0 BITMAP 0D80 0000 E380 6180 6100 6100 4300 4700 C700 DB00 6380 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 9 0 BBX 11 15 0 -3 BITMAP 00C0 0300 0000 70E0 1840 1840 1880 0900 0900 0A00 0C00 0800 1000 2000 E000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 10 0 BBX 10 16 1 -3 BITMAP 7800 1000 1000 3000 3380 34C0 38C0 30C0 7080 6080 6100 6200 7C00 C000 C000 C000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 9 0 BBX 11 14 0 -3 BITMAP 06C0 0000 70E0 1840 1840 1880 0900 0900 0A00 0C00 0800 1000 2000 E000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 16 1 -3 BITMAP 07E0 0860 1840 1040 7EC0 30C0 30C0 2080 2080 6180 6180 6180 41C0 4000 C000 C000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 1 2 5 BITMAP FE ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 16 3 -3 BITMAP 0C 08 08 08 08 FF 10 10 10 10 30 20 20 20 60 60 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 16 1 0 BITMAP 04C0 0300 0000 1FE0 30C0 2080 0180 0300 0600 0400 0C00 1800 3000 6080 6080 FF80 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 14 9 1 0 BITMAP 0E38 334C 618C 4108 C1F0 C300 C300 C58C 79F0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 15 2 0 BITMAP 0D80 0000 F0E0 6040 6080 3100 3200 1E00 1C00 1800 1800 1800 1000 3000 7C00 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 9 2 0 BITMAP E0 60 60 40 40 40 C0 C0 E0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 6 13 1 0 BITMAP 38 18 18 18 10 3C F0 30 20 60 60 60 70 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 13 0 0 BITMAP 3E00 1C00 1800 1800 1A00 1C00 3800 7000 7000 3000 3080 3080 FF80 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 16 2 -3 BITMAP 0600 0400 0400 0800 7F80 0800 0800 0800 0800 0800 FF00 1000 1000 1000 3000 3000 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 1 -3 BITMAP 0EC0 1A00 1200 3000 7F80 3180 3180 2180 6100 6100 6300 6300 4380 C000 C000 C000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 20 20 30 10 18 30 20 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 17 13 2 0 BITMAP 07BF80 187080 306080 206000 606000 406200 C07E00 C04200 C0C000 C0C000 C0C200 61C200 3FFE00 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 16 1 1 5 BITMAP FFFF ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 5 2 5 11 BITMAP 98 60 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 3 3 3 -3 BITMAP 60 80 E0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 2 5 11 BITMAP 7C B0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 08 10 20 60 C0 40 60 20 20 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 2 1 6 12 BITMAP C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 2 5 11 BITMAP 84 F8 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 5 5 4 3 BITMAP 70 F8 F8 F8 70 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 2 4 11 BITMAP 64 98 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 5 2 5 11 BITMAP 30 C8 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 5 3 8 BITMAP 6C 48 C8 D8 D8 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 2 5 3 8 BITMAP C0 C0 C0 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 9 12 0 0 BITMAP 0980 0600 0000 1F00 3100 3100 3800 1C00 0600 8200 8600 7C00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 3 3 6 10 BITMAP E0 A0 E0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 1 -3 BITMAP 60 60 60 40 40 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 16 3 -3 BITMAP 07 19 11 30 30 30 F8 20 60 60 60 60 40 C0 C0 C0 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 15 7 2 6 BITMAP FDCE 30CC 21D8 2168 2168 2148 F61C ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 13 13 -4 0 BITMAP 0018 0030 0060 0040 0080 0100 0200 0400 0800 1000 3000 6000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 3 2 5 11 BITMAP C0 20 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 18 13 1 0 BITMAP 381800 642000 444000 44C000 4C8000 390000 02E380 052640 0B3440 132440 2224C0 436480 C1C700 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 13 1 2 0 BITMAP C218 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 5 3 8 BITMAP 6C 6C 4C 48 D8 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 16 1 0 BITMAP 0980 0600 0000 0F00 1980 3100 3100 3000 1800 0C00 0600 0200 0300 8200 8600 FC00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 6 1 -3 BITMAP 6C 6C 6C 48 48 98 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 1 0 BITMAP 0980 0600 0000 3F80 2300 0600 0C00 0800 1000 3000 6100 FF00 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lubI14.bdf100644 1750 1750 102001 5413747534 15066 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-Medium-I-Normal--20-140-100-100-P-113-ISO8859-1 SIZE 14 100 100 FONTBOUNDINGBOX 33 23 -10 -4 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "Medium" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 20 POINT_SIZE 140 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 113 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 18 FONT_DESCENT 5 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 6 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 5 0 BBX 5 15 2 0 BITMAP 18 18 10 30 30 30 20 20 20 20 20 40 00 00 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 8 0 BBX 5 5 4 10 BITMAP D8 D8 D8 48 48 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 12 0 BBX 12 15 2 0 BITMAP 0130 0220 0220 0640 0440 7FF0 0880 0880 1100 1100 FFE0 2200 2400 4400 C800 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 12 0 BBX 9 18 3 -2 BITMAP 0200 1F80 3480 2480 6400 6400 3800 3800 0C00 1600 1300 1300 1300 9300 D600 F800 2000 2000 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 15 0 BBX 16 15 1 0 BITMAP 1E03 3304 6308 6310 4220 6640 3C80 0138 0264 06C4 0C86 1884 3084 60C8 C070 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 15 0 BBX 14 15 2 0 BITMAP 03C0 0640 0C60 0C40 0CC0 0D80 1E00 267C 4610 C330 C320 C1E0 C1C0 61C0 3EF0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 3 9 BITMAP 70 70 20 60 C0 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 6 0 BBX 7 19 2 -4 BITMAP 06 08 08 10 30 20 60 60 C0 C0 C0 C0 C0 C0 C0 40 40 40 20 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 6 0 BBX 7 19 0 -4 BITMAP 08 08 04 04 04 04 04 06 04 0C 0C 0C 08 18 10 10 20 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 3 8 BITMAP 18 10 D6 2C 30 C8 48 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 1 0 BITMAP 0300 0200 0200 0200 0200 0200 FFF0 0400 0400 0400 0400 0C00 0800 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 -4 BITMAP 70 70 70 20 20 60 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 12 0 BBX 12 1 1 6 BITMAP FFF0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 5 0 BBX 3 2 1 0 BITMAP E0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 9 0 BBX 13 19 0 -4 BITMAP 0018 0010 0020 0020 0040 00C0 0080 0100 0300 0200 0600 0400 0800 1800 1000 2000 2000 4000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 2 0 BITMAP 0780 18C0 30C0 3060 6060 6060 C060 C0C0 C0C0 C0C0 C0C0 C180 C100 6200 3C00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 12 0 BBX 8 15 2 0 BITMAP 1F 03 06 06 06 06 06 0C 0C 0C 0C 0C 18 18 FF ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 2 0 BITMAP 0F80 18C0 1060 1060 0060 00C0 00C0 0180 0200 0C00 1000 2000 6000 C000 FF80 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 2 0 BITMAP 1F80 10C0 10C0 00C0 00C0 0380 1E00 0300 0180 0180 0180 0180 8300 C700 FC00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 1 0 BITMAP 0060 00C0 01C0 02C0 04C0 08C0 1080 2180 4180 FFE0 0100 0100 0300 0300 0FC0 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 2 0 BITMAP 1FE0 2000 2000 2000 2000 3E00 0300 0180 0180 0180 0180 0180 8300 C600 FC00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 2 0 BITMAP 07C0 0C60 1040 3000 6000 6F00 7180 E0C0 C0C0 C0C0 C0C0 C180 C180 6300 3C00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 3 0 BITMAP 3FE0 0060 0040 0080 0100 0200 0400 0400 0800 1000 3000 6000 6000 E000 C000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 2 0 BITMAP 0780 18C0 3060 3060 3040 39C0 1F00 1F00 6380 41C0 C0C0 C0C0 C180 6300 3E00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 2 0 BITMAP 0780 18C0 30C0 3060 6060 6060 6060 60C0 31C0 1EC0 0180 0180 8300 C600 FC00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 5 0 BBX 5 11 1 0 BITMAP 38 38 00 00 00 00 00 00 00 E0 E0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 5 0 BBX 5 15 1 -4 BITMAP 38 38 00 00 00 00 00 00 00 60 60 60 60 40 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 12 0 BBX 13 13 1 0 BITMAP 0008 0030 00C0 0300 0C00 3000 C000 3000 1C00 0600 0180 00C0 0020 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 12 0 BBX 12 6 1 3 BITMAP 7FF0 0000 0000 0000 0000 FFE0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 12 0 BBX 13 13 0 0 BITMAP 2000 1800 0C00 0300 01C0 0060 0018 0060 0180 0600 1800 6000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 9 0 BBX 8 15 3 0 BITMAP 3C 47 C3 83 07 06 0C 10 20 60 60 00 00 00 C0 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 17 0 BBX 16 15 2 0 BITMAP 03F0 0C0C 1006 21F2 4221 4421 8861 8861 88E2 88C2 8944 8E78 4000 3040 0F80 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 15 0 BBX 15 15 0 0 BITMAP 0020 0060 00E0 00F0 0130 0330 0230 0430 0438 0FF8 1018 1018 2018 601C F07E ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 12 0 BBX 12 15 1 0 BITMAP 1FE0 0C70 0C30 0C30 0C30 0860 18C0 1F00 18C0 1860 1860 3060 3060 31C0 FF80 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 14 0 BBX 13 15 2 0 BITMAP 03F8 0C18 1818 3018 6000 6000 6000 C000 C000 C000 C000 C000 6000 7060 1F80 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 15 0 BBX 16 15 0 0 BITMAP 1FF8 0E1E 0C06 0C07 0C03 0C03 0C03 1803 1807 1806 180E 380C 3018 3070 FFC0 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 11 0 BBX 13 15 0 0 BITMAP 1FF8 0608 0C18 0C00 0C00 0C00 0C20 1FC0 1840 1800 1800 1800 3020 3060 FFE0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 11 0 BBX 13 15 0 0 BITMAP 1FF8 0608 0C18 0C00 0C00 0C00 0C20 1FC0 1840 1800 1800 1800 3000 3000 FC00 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 15 0 BBX 14 15 2 0 BITMAP 03FC 0E08 1808 3000 7000 6000 6000 C000 C0FC C030 C030 E060 6060 7060 1F80 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 16 0 BBX 17 15 1 0 BITMAP 1F1F80 0E0600 0C0600 0C0600 0C0E00 0C0C00 180C00 1FFC00 180C00 181C00 181800 301800 301800 303800 FC7C00 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 7 0 BBX 9 15 0 0 BITMAP 1F80 0600 0600 0C00 0C00 0C00 0C00 1C00 1800 1800 1800 1800 3000 3000 FC00 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 8 0 BBX 11 19 0 -4 BITMAP 07E0 0180 0180 0180 0380 0300 0300 0300 0300 0300 0700 0600 0600 0600 0600 0400 CC00 C800 F000 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 14 0 BBX 15 15 1 0 BITMAP 1F1E 0E0C 0C10 0C20 0CC0 0D80 1B00 1F00 1B00 1980 19C0 30C0 3060 3070 FCF8 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 11 0 BBX 11 15 1 0 BITMAP 1F00 0E00 0C00 0C00 0C00 0C00 1800 1800 1800 1800 1800 3000 3020 3060 FFE0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 17 0 BBX 19 15 1 0 BITMAP 1E01E0 0E0380 0E0380 0E0580 0B0F00 0B0B00 131300 131300 112300 11E200 11C600 318600 208600 200E00 F81F00 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 15 0 BBX 17 15 0 0 BITMAP 1C0780 0E0300 0E0200 0F0200 0B0200 098400 118400 10C400 10C400 106400 107400 203800 203800 201800 F80800 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 16 0 BBX 14 15 2 0 BITMAP 03E0 0C38 1818 300C 600C 600C 600C C00C C00C C018 C018 C030 6060 70C0 1F00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 12 0 BBX 13 15 0 0 BITMAP 1FF0 0E38 0C18 0C18 0C18 0C30 0C30 18E0 1F80 1800 1800 3800 3000 3000 FC00 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 16 0 BBX 16 19 2 -4 BITMAP 03E0 0C38 1818 300C 600C 600C 600C C00C C01C C018 C018 C030 6070 70E0 1FC0 0100 0080 00C0 003F ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 14 0 BBX 13 15 1 0 BITMAP 1FF0 0C70 0C30 0C38 0C30 1C20 18C0 1F80 1980 19C0 18C0 30C0 3060 3070 FC38 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 11 0 BBX 11 15 1 0 BITMAP 07C0 1860 1820 3020 3800 1800 1C00 0700 0380 0180 0180 C180 8180 C300 7E00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 13 0 BBX 13 15 3 0 BITMAP FFF8 C708 8618 0600 0600 0600 0E00 0C00 0C00 0C00 0C00 1C00 1800 1800 7E00 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 15 0 BBX 14 15 3 0 BITMAP FC7C 3010 3010 6010 6020 6020 6020 6020 C020 C040 C040 C040 C080 6180 3E00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 13 0 BBX 14 15 2 0 BITMAP F83C 6008 6010 3030 3020 3040 3040 3080 1980 1900 1A00 1A00 1C00 1C00 0800 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 18 0 BBX 18 15 3 0 BITMAP F843C0 60C180 60C100 61C300 61C200 62C600 22C400 244C00 344800 3C7800 387000 387000 306000 306000 204000 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 12 0 BBX 16 15 0 0 BITMAP 1F8F 0606 0608 0318 0330 01E0 01C0 01C0 01C0 02E0 0460 0860 1030 2030 F0FC ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 13 0 BBX 13 15 3 0 BITMAP F878 7030 3020 3040 3880 1900 1B00 0E00 0C00 0C00 0C00 1800 1800 1800 7E00 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 13 0 BBX 13 15 1 0 BITMAP 1FF8 1030 1070 0060 00C0 0180 0300 0700 0600 0C00 1800 3800 7020 6060 FFE0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 6 0 BBX 8 19 1 -4 BITMAP 0F 08 18 18 18 18 10 30 30 30 30 20 60 60 60 40 40 C0 F0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 9 0 BBX 5 19 3 -4 BITMAP 80 80 C0 40 40 40 40 60 20 20 20 20 10 10 10 10 18 08 08 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 6 0 BBX 7 19 1 -4 BITMAP 1E 06 06 04 04 0C 0C 0C 0C 08 08 18 18 18 10 10 30 30 F0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 1 2 BITMAP 0080 0180 0180 0280 0280 0440 0840 0840 1020 3020 2020 4020 C010 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 10 0 BBX 8 1 1 -2 BITMAP FF ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 3 9 BITMAP 30 60 40 40 E0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 12 0 BBX 11 11 1 0 BITMAP 07E0 0860 1060 20C0 60C0 60C0 C1C0 C2C0 C580 CD80 71E0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 2 0 BITMAP 7800 1800 1800 1000 31C0 3660 3C60 2860 7060 6040 60C0 6080 4180 E300 FC00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 10 0 BBX 9 11 2 0 BITMAP 0F80 1180 2080 6000 4000 C000 C000 C000 C000 6300 3C00 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 12 0 BBX 12 15 1 0 BITMAP 00F0 0030 0060 0060 07E0 0860 1060 20C0 60C0 60C0 C1C0 C2C0 C580 CD80 71E0 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 10 0 BBX 9 11 2 0 BITMAP 0F00 1180 2180 6100 4300 C600 F800 C000 C180 6300 3C00 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 8 0 BBX 10 20 1 -4 BITMAP 03C0 0440 0CC0 0800 1800 7F00 1800 3000 3000 3000 3000 3000 6000 6000 6000 6000 6000 C000 C000 C000 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 1 -4 BITMAP 07E0 0860 1060 3040 30C0 60C0 61C0 61C0 6280 6580 3980 0180 8100 C200 7C00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 13 0 BBX 11 15 2 0 BITMAP 7800 1800 1800 3000 31C0 3260 3460 2840 70C0 60C0 60C0 60C0 4080 C180 C1E0 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 6 0 BBX 5 15 2 0 BITMAP 18 00 00 00 F0 30 30 20 60 60 60 60 40 C0 F0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 7 0 BBX 10 19 -1 -4 BITMAP 00C0 0000 0000 0000 0780 0180 0180 0180 0300 0300 0300 0300 0300 0600 0600 0600 8400 8800 F000 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 2 0 BITMAP 7800 1800 1000 3000 30C0 3080 3180 2600 6800 7800 6C00 6E00 4600 C300 C3C0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 6 0 BBX 5 15 2 0 BITMAP 78 18 10 30 30 30 30 20 60 60 60 60 40 C0 F0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 19 0 BBX 17 11 2 0 BITMAP F1C700 36C980 3CD180 78F180 70E300 60C300 618300 618300 C18200 C18600 C18780 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 13 0 BBX 11 11 2 0 BITMAP F1C0 3260 3460 2840 70C0 60C0 60C0 60C0 4080 C180 C1E0 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 11 0 BBX 10 11 2 0 BITMAP 0F00 1980 30C0 60C0 60C0 C0C0 C180 C180 C300 E600 7C00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 2 -4 BITMAP 79C0 3260 3460 3860 3860 3040 20C0 6080 6180 6100 7E00 4000 C000 C000 C000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 1 -4 BITMAP 07E0 0860 1060 20C0 60C0 60C0 C1C0 C2C0 C580 CD80 7180 0180 0180 0300 0300 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 9 0 BBX 9 11 2 0 BITMAP F180 3700 3C00 6800 7000 6000 6000 6000 C000 C000 C000 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 9 0 BBX 9 11 1 0 BITMAP 0F00 1880 3080 3000 1800 0E00 0600 8300 8300 C700 7C00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 7 0 BBX 6 14 2 0 BITMAP 30 30 30 FC 60 60 60 60 60 C0 C0 C0 C0 70 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 13 0 BBX 11 11 2 0 BITMAP F1E0 3060 2060 60C0 60C0 60C0 61C0 42C0 C780 CD80 71E0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 11 0 BBX 11 11 1 0 BITMAP F060 3020 3060 1860 1840 1880 1900 0B00 0E00 0C00 0800 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 16 0 BBX 16 11 1 0 BITMAP E087 30C3 31C2 31C6 13C4 1A4C 1E68 1C70 1C70 1860 1040 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 10 0 BBX 10 11 1 0 BITMAP 70C0 38C0 1880 1900 0E00 0C00 1600 2600 4300 C380 C1C0 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 11 0 BBX 13 15 0 -4 BITMAP 7830 1818 1810 0C20 0C20 0C40 0C80 0500 0500 0600 0400 0800 1000 3000 E000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 11 0 BBX 10 11 1 0 BITMAP 3FC0 2180 2300 0300 0600 0C00 1800 3000 6080 6180 FF80 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 7 0 BBX 7 19 2 -4 BITMAP 0E 18 18 18 18 10 10 10 20 C0 60 20 60 60 40 C0 C0 C0 60 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 5 0 BBX 5 19 1 -4 BITMAP 08 18 18 10 10 10 30 30 20 20 20 60 60 40 40 40 C0 C0 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 7 0 BBX 7 19 2 -4 BITMAP 0C 06 06 06 0C 0C 0C 08 08 06 08 10 10 30 30 30 30 20 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 12 0 BBX 12 6 1 3 BITMAP 3810 4C10 8610 8610 8320 81C0 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 5 0 BBX 5 15 1 -4 BITMAP 18 00 00 00 30 20 20 20 20 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 3 0 BITMAP 0200 0380 1C80 3480 6400 4400 C400 C400 C800 C800 C800 E900 7E00 1000 1000 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 2 0 BITMAP 01E0 0220 0420 0C00 0C00 0C00 1800 7F00 1800 1800 1800 3000 3000 4000 FF00 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 12 0 BBX 14 13 1 1 BITMAP 2008 101C 0FB0 0C60 1020 1020 2020 2020 1040 10C0 2F40 4020 8030 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 12 0 BBX 13 15 2 0 BITMAP F878 7020 3020 3840 1880 1D00 0C00 7F80 0C00 0C00 7F00 1800 1800 1800 7C00 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 5 0 BBX 5 19 1 -4 BITMAP 08 18 18 10 10 10 30 30 20 00 20 60 60 40 40 40 C0 C0 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 12 0 BBX 11 19 2 -4 BITMAP 07E0 1860 3040 3000 3000 1800 1E00 2780 6180 6080 7080 3D80 1F00 0300 0180 0180 8300 C700 7C00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 11 0 BBX 6 1 6 14 BITMAP CC ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 17 0 BBX 15 15 3 0 BITMAP 07C0 1830 2008 43E4 8624 8C22 8802 8802 8802 8802 8C04 47C4 2008 1830 07C0 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 2 6 BITMAP 1F 22 62 46 C6 CE DE D6 E7 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 2 1 BITMAP 0880 1100 3200 6600 CC00 4C00 6600 2200 1200 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 12 0 BBX 12 6 2 3 BITMAP FFF0 0030 0030 0020 0020 0020 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 6 0 BBX 5 1 2 7 BITMAP F8 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 12 0 BBX 8 10 4 5 BITMAP 3C 46 9E 95 9D 99 99 A6 46 3C ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 11 0 BBX 6 1 6 14 BITMAP FC ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 6 0 BBX 3 4 4 11 BITMAP 60 A0 A0 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 12 0 BBX 13 13 0 0 BITMAP 0180 0100 0100 0100 7FF8 0300 0200 0200 0200 0200 0000 0000 FFF0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 -10 6 BITMAP 3C 26 22 06 08 30 40 40 FC ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 -10 6 BITMAP 38 24 04 0C 38 08 0C 88 F0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 11 0 BBX 5 3 7 12 BITMAP 38 60 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 13 0 BBX 11 15 2 -4 BITMAP 71E0 3060 3060 3040 30C0 20C0 21C0 61C0 6280 6580 7DE0 4000 C000 C000 C000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 12 0 BBX 8 19 3 -4 BITMAP 3F 7D F9 F9 F9 FA 7A 32 12 12 12 14 14 24 24 24 24 24 28 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 12 0 BBX 2 2 6 6 BITMAP C0 C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 11 0 BBX 3 5 3 -4 BITMAP 60 40 20 20 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 -10 6 BITMAP 38 18 10 10 10 10 30 20 F8 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 2 6 BITMAP 1E 26 43 43 C2 C2 C4 CC 70 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 2 1 BITMAP 2400 2200 3300 1900 1980 3300 2600 4400 8800 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 16 0 BBX 16 15 3 0 BITMAP 3803 1806 100C 1018 1030 1020 3046 208A F914 0224 0644 0C7E 1804 3008 601C ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 16 0 BBX 16 15 3 0 BITMAP 3803 1806 100C 1018 1030 1020 305E 2093 F911 0203 0604 0C18 1820 3020 607E ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 16 0 BBX 16 15 3 0 BITMAP 3803 2406 040C 0C18 3830 0820 0C46 888A F114 0224 0644 0C7E 1804 3008 601C ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 9 0 BBX 8 15 1 -4 BITMAP 03 00 00 00 06 06 04 08 30 60 C0 C1 C2 E2 7C ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 15 0 BBX 15 19 0 0 BITMAP 00E0 0020 0010 0000 0020 0060 00E0 00F0 0130 0330 0230 0430 0438 0FF8 1018 1018 2018 601C F07E ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 15 0 BBX 15 19 0 0 BITMAP 001C 0030 0060 0000 0020 0060 00E0 00F0 0130 0330 0230 0430 0438 0FF8 1018 1018 2018 601C F07E ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 15 0 BBX 15 19 0 0 BITMAP 0038 0068 0084 0000 0020 0060 00E0 00F0 0130 0330 0230 0430 0438 0FF8 1018 1018 2018 601C F07E ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 0 0 BITMAP 0064 0098 0000 0020 0060 00E0 00F0 0130 0330 0230 0430 0438 0FF8 1018 1018 2018 601C F07E ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 15 0 BBX 15 17 0 0 BITMAP 00CC 0000 0020 0060 00E0 00F0 0130 0330 0230 0430 0438 0FF8 1018 1018 2018 601C F07E ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 15 0 BBX 15 19 0 0 BITMAP 0038 0028 0038 0000 0020 0060 00E0 00F0 0130 0330 0230 0430 0438 0FF8 1018 1018 2018 601C F07E ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 18 0 BBX 20 15 0 0 BITMAP 001FF0 001C10 003830 005800 009800 011840 011FC0 023080 043000 0FF000 083000 103000 207040 6070C0 F1FFC0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 14 0 BBX 13 19 2 -4 BITMAP 03F8 0C18 1818 3018 6000 6000 6000 C000 C000 C000 C000 C000 6000 7060 1F80 0800 0400 0400 1800 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 11 0 BBX 13 19 0 0 BITMAP 0380 0080 0040 0000 1FF8 0608 0C18 0C00 0C00 0C00 0C20 1FC0 1840 1800 1800 1800 3020 3060 FFE0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 11 0 BBX 13 19 0 0 BITMAP 0070 00C0 0180 0000 1FF8 0608 0C18 0C00 0C00 0C00 0C20 1FC0 1840 1800 1800 1800 3020 3060 FFE0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 11 0 BBX 13 19 0 0 BITMAP 00E0 01A0 0210 0000 1FF8 0608 0C18 0C00 0C00 0C00 0C20 1FC0 1840 1800 1800 1800 3020 3060 FFE0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 11 0 BBX 13 17 0 0 BITMAP 0330 0000 1FF8 0608 0C18 0C00 0C00 0C00 0C20 1FC0 1840 1800 1800 1800 3020 3060 FFE0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 7 0 BBX 9 19 0 0 BITMAP 0E00 0200 0100 0000 1F80 0600 0600 0C00 0C00 0C00 0C00 1C00 1800 1800 1800 1800 3000 3000 FC00 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 7 0 BBX 10 19 0 0 BITMAP 01C0 0300 0600 0000 1F80 0600 0600 0C00 0C00 0C00 0C00 1C00 1800 1800 1800 1800 3000 3000 FC00 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 7 0 BBX 9 19 0 0 BITMAP 0700 0D00 1080 0000 1F80 0600 0600 0C00 0C00 0C00 0C00 1C00 1800 1800 1800 1800 3000 3000 FC00 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 7 0 BBX 10 17 0 0 BITMAP 0CC0 0000 1F80 0600 0600 0C00 0C00 0C00 0C00 1C00 1800 1800 1800 1800 3000 3000 FC00 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 15 0 BBX 16 15 0 0 BITMAP 1FF8 0E1E 0C06 0C07 0C03 0C03 0C03 7F83 1807 1806 180E 180C 3018 3070 FFC0 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 15 0 BBX 17 18 0 0 BITMAP 006400 009800 000000 1C0780 0E0300 0E0200 0F0200 0B0200 098400 118400 10C400 10C400 106400 107400 203800 203800 201800 F80800 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 2 0 BITMAP 01C0 0040 0020 0000 03E0 0C38 1818 300C 600C 600C 600C C00C C00C C018 C018 C030 6060 70C0 1F00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 2 0 BITMAP 0070 00C0 0180 0000 03E0 0C38 1818 300C 600C 600C 600C C00C C00C C018 C018 C030 6060 70C0 1F00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 2 0 BITMAP 00E0 01A0 0210 0000 03E0 0C38 1818 300C 600C 600C 600C C00C C00C C018 C018 C030 6060 70C0 1F00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 2 0 BITMAP 0190 0260 0000 03E0 0C38 1818 300C 600C 600C 600C C00C C00C C018 C018 C030 6060 70C0 1F00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 2 0 BITMAP 0330 0000 03E0 0C38 1818 300C 600C 600C 600C C00C C00C C018 C018 C030 6060 70C0 1F00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 12 0 BBX 14 13 0 0 BITMAP 2004 1008 1810 0820 0440 0380 0300 0700 0C80 1040 2060 4020 8010 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 16 0 BBX 17 15 1 0 BITMAP 01F180 071E00 0C0E00 180E00 181600 302600 304600 708600 610600 620C00 640C00 781800 303000 586000 CF8000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 15 0 BBX 14 19 3 0 BITMAP 0700 0100 0080 0000 FC7C 3010 3010 6010 6020 6020 6020 6020 C020 C040 C040 C040 C080 6180 3E00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 15 0 BBX 14 19 3 0 BITMAP 00E0 0180 0300 0000 FC7C 3010 3010 6010 6020 6020 6020 6020 C020 C040 C040 C040 C080 6180 3E00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 15 0 BBX 14 19 3 0 BITMAP 0380 0680 0840 0000 FC7C 3010 3010 6010 6020 6020 6020 6020 C020 C040 C040 C040 C080 6180 3E00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 3 0 BITMAP 0660 0000 FC7C 3010 3010 6010 6020 6020 6020 6020 C020 C040 C040 C040 C080 6180 3E00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 13 0 BBX 13 19 3 0 BITMAP 01C0 0300 0600 0000 F878 7030 3020 3040 3880 1900 1B00 0E00 0C00 0C00 0C00 1800 1800 1800 7E00 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 12 0 BBX 12 15 1 0 BITMAP 1F00 0E00 0C00 0FE0 0C70 0C30 1830 1830 1870 1860 19C0 3F00 3000 3000 FC00 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 12 0 BBX 11 20 1 -4 BITMAP 0780 0CC0 08C0 18C0 1880 1900 1A00 3600 3700 3380 31C0 30E0 6060 6460 6CC0 6780 6000 C000 C000 C000 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 1 0 BITMAP 0700 0100 0080 0000 07E0 0860 1060 20C0 60C0 60C0 C1C0 C2C0 C580 CD80 71E0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 1 0 BITMAP 00E0 0180 0300 0000 07E0 0860 1060 20C0 60C0 60C0 C1C0 C2C0 C580 CD80 71E0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 1 0 BITMAP 01C0 0340 0420 0000 07E0 0860 1060 20C0 60C0 60C0 C1C0 C2C0 C580 CD80 71E0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 0320 04C0 0000 07E0 0860 1060 20C0 60C0 60C0 C1C0 C2C0 C580 CD80 71E0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 1 0 BITMAP 0660 0000 07E0 0860 1060 20C0 60C0 60C0 C1C0 C2C0 C580 CD80 71E0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 1 0 BITMAP 0380 0280 0380 0000 07E0 0860 1060 20C0 60C0 60C0 C1C0 C2C0 C580 CD80 71E0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 18 0 BBX 17 11 1 0 BITMAP 07EF00 087180 106180 206100 60C300 60C600 C1F800 C3C000 C6C080 CCE300 707C00 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 10 0 BBX 9 15 2 -4 BITMAP 0F80 1180 2080 6000 4000 C000 C000 C000 C000 6300 3C00 2000 1000 1000 6000 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 10 0 BBX 9 15 2 0 BITMAP 0E00 0200 0100 0000 0F00 1180 2180 6100 4300 C600 F800 C000 C180 6300 3C00 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 10 0 BBX 10 15 2 0 BITMAP 01C0 0300 0600 0000 0F00 1180 2180 6100 4300 C600 F800 C000 C180 6300 3C00 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 10 0 BBX 9 15 2 0 BITMAP 0700 0D00 1080 0000 0F00 1180 2180 6100 4300 C600 F800 C000 C180 6300 3C00 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 2 0 BITMAP 0CC0 0000 0F00 1180 2180 6100 4300 C600 F800 C000 C180 6300 3C00 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 6 0 BBX 6 15 2 0 BITMAP 38 08 04 00 F0 30 20 60 60 60 60 40 C0 C0 F0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 6 0 BBX 7 15 2 0 BITMAP 0E 18 30 00 F0 30 20 60 60 60 60 40 C0 C0 F0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 6 0 BBX 7 15 2 0 BITMAP 1C 34 42 00 F0 30 20 60 60 60 60 40 C0 C0 F0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 6 0 BBX 7 13 2 0 BITMAP 66 00 F0 30 20 60 60 60 60 40 C0 C0 F0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 2 0 BITMAP 00C0 3F00 0700 0D80 1180 0F80 11C0 20C0 60C0 40C0 C080 C180 C180 C100 6200 7C00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 2 0 BITMAP 0320 04C0 0000 F1C0 3260 3460 2840 70C0 60C0 60C0 60C0 4080 C180 C1E0 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 2 0 BITMAP 0700 0100 0080 0000 0F00 1980 30C0 60C0 60C0 C0C0 C180 C180 C300 E600 7C00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 2 0 BITMAP 01C0 0300 0600 0000 0F00 1980 30C0 60C0 60C0 C0C0 C180 C180 C300 E600 7C00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 2 0 BITMAP 0380 0680 0840 0000 0F00 1980 30C0 60C0 60C0 C0C0 C180 C180 C300 E600 7C00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 2 0 BITMAP 0640 0980 0000 0F00 1980 30C0 60C0 60C0 C0C0 C180 C180 C300 E600 7C00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 2 0 BITMAP 0CC0 0000 0F00 1980 30C0 60C0 60C0 C0C0 C180 C180 C300 E600 7C00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 12 0 BBX 12 11 1 0 BITMAP 0300 0000 0000 0000 0000 FFF0 0000 0000 0000 0000 0C00 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 11 0 BBX 12 11 1 0 BITMAP 07B0 08C0 10E0 3160 6260 6440 68C0 70C0 6180 7300 9C00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 13 0 BBX 11 15 2 0 BITMAP 0700 0100 0080 0000 F1E0 3060 2060 60C0 60C0 60C0 61C0 42C0 C780 CD80 71E0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 13 0 BBX 11 15 2 0 BITMAP 00E0 0180 0300 0000 F1E0 3060 2060 60C0 60C0 60C0 61C0 42C0 C780 CD80 71E0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 13 0 BBX 11 15 2 0 BITMAP 0380 0680 0840 0000 F1E0 3060 2060 60C0 60C0 60C0 61C0 42C0 C780 CD80 71E0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 2 0 BITMAP 0660 0000 F1E0 3060 2060 60C0 60C0 60C0 61C0 42C0 C780 CD80 71E0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 11 0 BBX 13 19 0 -4 BITMAP 0070 00C0 0180 0000 7830 1818 1810 0C20 0C20 0C40 0C80 0500 0500 0600 0400 0800 1000 3000 E000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 12 0 BBX 11 18 2 -4 BITMAP 7800 1800 1800 11C0 1260 3460 3860 3860 3040 20C0 6080 6180 6100 7E00 4000 C000 C000 C000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 11 0 BBX 13 17 0 -4 BITMAP 0330 0000 7830 1818 1810 0C20 0C20 0C40 0C80 0500 0500 0600 0400 0800 1000 3000 E000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 13 20 1 -4 BITMAP 03F8 0438 0C18 0830 1830 7F30 1830 1030 3060 3060 3060 3060 2060 60C0 60C0 60F0 6000 4000 C000 C000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 1 2 6 BITMAP FF ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 19 3 -4 BITMAP 0600 0400 0C00 0C00 0800 0800 FF80 0800 0800 1800 1000 1000 1000 3000 3000 3000 3000 2000 6000 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 13 19 1 0 BITMAP 0210 0160 01C0 0000 1FF8 1030 1070 0060 00C0 0180 0300 0700 0600 0C00 1800 3800 7020 6060 FFE0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 16 11 2 0 BITMAP 0F8F 19D3 30E1 60C3 60C3 C0C4 C1F8 C1C0 C3C1 E6E3 7C7C ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 3 0 BITMAP 0CC0 0000 F878 7030 3020 3040 3880 1900 1B00 0E00 0C00 0C00 0C00 1800 1800 1800 7E00 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 11 2 0 BITMAP F0 30 20 60 60 60 60 40 C0 C0 F0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 7 15 1 0 BITMAP 3C 0C 0C 18 18 18 1E 38 F0 30 30 30 60 60 78 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 15 0 0 BITMAP 1F80 0E00 0C00 0C00 0C00 0D00 1E00 1800 7800 5800 1800 3800 3020 3060 FFE0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 19 2 -4 BITMAP 0300 0200 0600 0600 0400 7FC0 0400 0400 0400 0400 0800 0800 FF80 0800 0800 1800 1800 1000 3000 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 12 20 2 -4 BITMAP 0780 0CB0 0980 1800 1800 7FE0 1060 3060 3060 30C0 30C0 30C0 60C0 60C0 6180 61E0 6000 C000 C000 C000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 2 1 BITMAP 20 20 30 10 18 30 20 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 20 15 2 0 BITMAP 03EFF0 0E3C10 181830 301800 201800 601800 601840 C03FC0 C03080 C03000 C03000 C07000 606040 70E0C0 1F7FC0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 18 1 2 6 BITMAP FFFFC0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 3 6 12 BITMAP 84 58 70 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 3 3 -4 BITMAP 60 80 E0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 7 3 6 12 BITMAP 3E 68 B0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 2 1 BITMAP 08 10 20 60 C0 40 60 20 20 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 2 1 7 14 BITMAP C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 7 3 5 12 BITMAP 82 CC 78 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 6 6 4 4 BITMAP 78 FC FC FC FC 78 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 2 6 13 BITMAP 64 98 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 6 3 5 12 BITMAP 38 68 84 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 6 4 9 BITMAP 26 44 4C CC EC CC ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 2 5 3 10 BITMAP C0 C0 C0 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 10 15 1 0 BITMAP 0840 0580 0700 0000 0F00 1880 3080 3000 1800 0E00 0600 8300 8300 C700 7C00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 3 3 7 13 BITMAP E0 A0 E0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 7 1 -4 BITMAP 70 70 70 20 20 60 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 19 4 -4 BITMAP 0780 0C80 0880 1800 1800 3000 3000 3000 FC00 3000 3000 6000 6000 6000 6000 6000 C000 C000 C000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 17 8 3 7 BITMAP FFE380 106700 10AA00 30AA00 30B600 20B600 20A600 F30700 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 15 15 -4 0 BITMAP 0006 000C 0018 0030 0060 0040 0080 0100 0200 0400 0C00 1800 3000 6000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 4 3 6 12 BITMAP E0 20 10 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 22 15 1 0 BITMAP 1E0300 330400 630800 631000 422000 664000 3C8000 01B838 036444 06C4C4 0C8684 188484 30848C 60C888 C07070 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 16 1 2 0 BITMAP C183 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 6 4 9 BITMAP 6E 6E 64 64 CC 88 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 19 1 0 BITMAP 0420 02C0 0380 0000 07C0 1860 1820 3020 3800 1800 1C00 0700 0380 0180 0180 C180 8180 C300 7E00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 -4 BITMAP 66 6E 6E 66 64 4C C8 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 15 1 0 BITMAP 0420 02C0 0380 0000 3FC0 2180 2300 0300 0600 0C00 1800 3000 6080 6180 FF80 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lubI18.bdf100644 1750 1750 114273 5413747534 15110 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-Medium-I-Normal--25-180-100-100-P-142-ISO8859-1 SIZE 18 100 100 FONTBOUNDINGBOX 42 28 -14 -5 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "Medium" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 25 POINT_SIZE 180 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 142 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 23 FONT_DESCENT 6 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 7 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 7 0 BBX 6 18 2 0 BITMAP 1C 1C 18 18 18 18 10 30 30 30 20 20 20 00 00 00 E0 E0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 9 0 BBX 6 5 5 13 BITMAP CC CC CC 44 44 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 2 0 BITMAP 00C6 0084 008C 0188 0118 0310 7FFE 0620 0420 0C60 0840 08C0 FFFC 1180 2100 2300 4200 C600 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 15 0 BBX 11 21 4 -2 BITMAP 0100 0FC0 1A60 3260 3260 3200 3400 3400 1C00 0E00 0700 0B80 0980 0980 0980 4980 C980 CB00 FC00 1000 1000 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 19 0 BBX 17 18 3 0 BITMAP 0E0180 190300 318200 218400 618800 611800 633000 326000 1CC000 019E00 013300 026300 046300 0C6300 186300 306200 606600 C03C00 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 18 0 BBX 18 18 2 0 BITMAP 00F800 019C00 030C00 030C00 030C00 031800 033000 03C000 1F8000 318FC0 61C300 E1C200 E0E600 E06400 E07800 603000 707800 1F9F00 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 7 0 BBX 4 6 4 12 BITMAP 70 70 20 20 60 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 8 0 BBX 8 22 2 -4 BITMAP 01 02 04 08 18 10 30 70 60 60 E0 E0 C0 C0 C0 C0 C0 40 40 40 20 10 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 8 0 BBX 8 22 0 -4 BITMAP 0C 04 02 02 03 03 03 03 03 03 03 07 07 06 06 0C 0C 18 10 20 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 11 0 BBX 9 9 4 9 BITMAP 0C00 0C00 4800 EB80 3600 1800 2400 E600 4400 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 15 0 BBX 15 15 2 0 BITMAP 0080 0080 0080 0180 0180 0100 0100 FFFE 0300 0300 0200 0200 0200 0200 0600 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 7 0 BBX 4 8 1 -5 BITMAP 70 70 70 20 20 60 60 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 15 0 BBX 15 1 2 7 BITMAP FFFE ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 7 0 BBX 4 3 2 0 BITMAP 70 F0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 11 0 BBX 16 22 0 -4 BITMAP 0003 0006 0004 000C 0018 0010 0030 0060 0040 00C0 0080 0100 0300 0200 0600 0C00 0800 1800 3000 2000 6000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 3 0 BITMAP 03E0 0E30 1C38 1818 3018 7018 6018 6018 E018 E018 E038 E030 E030 C060 E060 60C0 7180 1E00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 15 0 BBX 9 18 3 0 BITMAP 1F80 0380 0380 0300 0300 0300 0700 0700 0600 0600 0600 0E00 0E00 0C00 0C00 0C00 1C00 FF80 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 2 0 BITMAP 03F0 0C38 081C 181C 001C 001C 0018 0030 0060 00C0 0300 0600 0800 1000 2000 6000 FFE0 FFE0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 3 0 BITMAP 0FC0 0870 1838 1838 0038 0030 0070 00C0 1F00 00C0 0060 0060 0070 0060 4060 C0C0 C180 FE00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 2 0 BITMAP 0018 0030 0070 00B0 0130 0230 0460 0860 1060 2060 40E0 FFF8 FFF8 00C0 00C0 01C0 01C0 07F0 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 3 0 BITMAP 0FF8 0FF8 1000 1000 1000 1000 3F00 01C0 00E0 0060 0060 0060 0060 0060 40C0 C1C0 C380 FE00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 3 0 BITMAP 01F8 061C 0C08 1800 3800 3000 77C0 6860 F070 E030 E030 C030 C030 C070 E060 60C0 7180 1F00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 4 0 BITMAP 3FFC 3FFC 0008 0010 0020 0040 0080 0100 0300 0600 0400 0C00 1800 3000 7000 6000 E000 E000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 3 0 BITMAP 03C0 0C70 1830 1830 3830 3830 1C60 1FC0 0F80 13C0 61E0 60E0 C060 C060 C0E0 E0C0 6180 3F00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 3 0 BITMAP 03E0 0C30 1838 1818 3018 3018 701C 7018 7038 3038 3878 1FB0 0070 0060 00E0 C0C0 C380 7E00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 7 0 BBX 6 13 2 0 BITMAP 1C 3C 38 00 00 00 00 00 00 00 70 F0 E0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 7 0 BBX 6 18 1 -5 BITMAP 1C 1C 1C 00 00 00 00 00 00 00 00 70 70 30 20 60 60 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 15 0 BBX 16 15 2 0 BITMAP 0001 0007 001C 0060 0380 0E00 3800 E000 3800 0C00 0700 01C0 0070 0018 0008 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 15 0 BBX 16 6 1 4 BITMAP 7FFF 0000 0000 0000 0000 FFFE ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 15 0 BBX 16 15 0 0 BITMAP 1000 1800 0E00 0380 00E0 0030 001C 0007 001C 0070 01C0 0600 1800 E000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 12 0 BBX 10 18 4 0 BITMAP 3F00 6380 41C0 C1C0 01C0 0180 0300 0600 0C00 1800 3000 3000 6000 0000 0000 0000 E000 E000 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 22 0 BBX 19 18 3 0 BITMAP 00FC00 030300 0C00C0 180040 207C20 208C20 410C20 820C20 860820 861820 862820 863840 865880 838F00 400000 200000 181000 07E000 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 19 0 BBX 19 18 0 0 BITMAP 000C00 000C00 001C00 003E00 002E00 004E00 00CE00 008600 010600 010700 020700 07FF00 040300 080300 100380 100380 200380 F80FE0 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 1 0 BITMAP 1FF8 071C 070E 060E 060E 060C 0E1C 0E38 0FE0 0C30 0C18 1C1C 1C1C 1C1C 181C 1838 3870 FFE0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 18 0 BBX 17 18 3 0 BITMAP 00FF80 038380 0E0180 1C0100 380000 300000 700000 700000 E00000 E00000 E00000 E00000 E00000 E00000 600000 700000 3C0C00 0FF000 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 19 0 BBX 19 18 1 0 BITMAP 1FFE00 070780 0701C0 0700C0 0600E0 0600E0 0E00E0 0E00E0 0E00E0 0C00E0 0C00C0 1C01C0 1C01C0 1C0380 180700 180E00 383C00 FFF000 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 14 0 BBX 16 18 1 0 BITMAP 1FFF 0703 0702 0700 0700 0600 0608 0E08 0FF8 0E18 0C10 0C00 1C00 1C00 1C00 180C 3808 FFF8 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 14 0 BBX 16 18 1 0 BITMAP 1FFF 0703 0702 0700 0700 0600 0608 0E08 0FF8 0E18 0C10 0C00 1C00 1C00 1C00 1800 3C00 FF00 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 19 0 BBX 17 18 3 0 BITMAP 00FF00 038380 0E0100 1C0100 380000 300000 700000 700000 E00000 E00000 E03F80 E00E00 E00C00 E00C00 601C00 701C00 381C00 0FE000 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 19 0 BBX 22 18 0 0 BITMAP 1FE1FC 078070 070060 0700E0 0700E0 0600E0 0600C0 0E00C0 0FFFC0 0E01C0 0C01C0 0C0180 1C0180 1C0380 1C0380 180380 380780 FE1FE0 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 8 0 BBX 11 18 0 0 BITMAP 0FE0 0380 0300 0700 0700 0700 0600 0600 0E00 0E00 0C00 0C00 1C00 1C00 1C00 1800 3800 FE00 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 11 0 BBX 14 22 0 -4 BITMAP 01FC 0070 0060 0060 00E0 00E0 00E0 00C0 00C0 01C0 01C0 01C0 0180 0180 0380 0380 0380 0300 4300 C600 C600 F800 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 17 0 BBX 19 18 1 0 BITMAP 1FE3E0 078180 070300 070600 070800 061000 066000 0EC000 0F8000 0FC000 0CE000 0CE000 1C7000 1C3800 1C1C00 181C00 380E00 FE3F80 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 1 0 BITMAP 1FE0 0780 0700 0700 0700 0600 0600 0E00 0E00 0E00 0C00 0C00 1C00 1C00 1C04 180C 380C FFF8 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 22 0 BBX 24 18 1 0 BITMAP 0F001F 07803C 078038 078058 0580F8 05C0B8 05C130 0CC130 0CC230 08E470 08E470 086860 187860 187060 1060E0 1020E0 3000E0 FC03F8 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 19 0 BBX 22 18 1 0 BITMAP 1F00FC 070030 078020 078020 05C060 04C040 04E040 0C7040 087040 083880 083880 081C80 180C80 100E80 100700 100700 300300 FC0100 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 20 0 BBX 18 18 3 0 BITMAP 00FC00 030700 0E0380 1C0380 380180 3001C0 7001C0 6001C0 E00180 E00180 E00380 E00300 E00700 E00600 600C00 701800 387000 0FC000 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 14 0 BBX 16 18 1 0 BITMAP 1FFC 070E 0707 0707 0707 0607 0606 0E0E 0E1C 0E38 0FE0 0C00 1C00 1C00 1C00 1800 3800 FF00 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 20 0 BBX 20 23 3 -5 BITMAP 00FC00 030600 0E0300 1C0380 380180 300180 7001C0 600180 E00180 E00380 E00380 E00380 E00700 E00700 600E00 701C00 387800 0FE000 004000 006000 001800 000FF0 0003E0 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 17 0 BBX 17 18 0 0 BITMAP 0FFE00 030F00 030700 070300 070300 070300 060600 060C00 0E1800 0FE000 0E7000 0C3000 1C3800 1C1800 1C1C00 180C00 380E00 FF0780 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 2 0 BITMAP 03F0 061C 0C0C 1C0C 1C08 1C00 1E00 0F00 0780 03E0 00E0 0070 0070 4070 C070 C060 E0C0 3F00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 17 0 BBX 16 18 4 0 BITMAP 7FFF C183 8182 0380 0380 0300 0300 0300 0700 0700 0600 0600 0600 0E00 0E00 0E00 1E00 7F80 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 18 0 BBX 18 18 4 0 BITMAP FE0FC0 380300 380200 300200 300200 700600 700400 700400 600400 600C00 E00800 E00800 E00800 C01800 E01000 603000 706000 1F8000 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 16 0 BBX 18 18 3 0 BITMAP FE07C0 700100 300300 380200 380400 380400 180800 181800 1C1000 1C2000 1C6000 0C4000 0C8000 0C8000 0F0000 0F0000 060000 040000 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 22 0 BBX 23 18 3 0 BITMAP FC183E 701808 303818 303810 305820 305820 309840 309840 311880 311880 3A1900 3A1900 3C1E00 3C1E00 381C00 381C00 301800 300800 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 16 0 BBX 20 18 0 0 BITMAP 0FE1F0 0380C0 038080 01C100 01C200 00C400 00E800 007000 007000 007000 00B800 013800 021C00 041C00 080C00 100E00 300F00 F83F80 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 17 0 BBX 17 18 3 0 BITMAP FE0F80 780200 380400 380800 1C1000 1C3000 0E6000 0E4000 068000 070000 070000 060000 060000 0E0000 0E0000 0E0000 1E0000 7F8000 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 16 0 BBX 16 18 1 0 BITMAP 0FFF 0C06 080E 181C 0038 0070 0060 00E0 01C0 0380 0700 0600 0E00 1C00 3800 700C 6018 FFF8 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 8 0 BBX 9 22 1 -4 BITMAP 0F80 0C00 0C00 0C00 1C00 1800 1800 1800 1800 3000 3000 3000 3000 3000 6000 6000 6000 6000 6000 C000 C000 F800 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 11 0 BBX 7 22 4 -4 BITMAP C0 C0 40 40 60 60 20 20 30 30 10 10 18 18 08 08 0C 0C 04 04 06 06 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 8 0 BBX 9 22 1 -4 BITMAP 0F80 0180 0180 0300 0300 0300 0300 0700 0600 0600 0600 0600 0E00 0C00 0C00 0C00 0C00 1C00 1800 1800 1800 F800 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 15 0 BBX 15 15 1 3 BITMAP 0020 0060 0060 00E0 01B0 0110 0210 0610 0408 0808 1808 3004 2004 6004 C002 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 12 0 BBX 10 2 1 -2 BITMAP FFC0 FFC0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 7 0 BBX 4 6 4 12 BITMAP 30 60 60 60 F0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 2 0 BITMAP 03F8 0438 1830 1030 3030 6030 6070 E0E0 E160 E360 E660 FCE0 70F8 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 2 0 BITMAP 7C00 1C00 1800 1800 1800 1870 39F8 3338 3638 3438 3838 7030 7030 6060 6060 60C0 E100 FE00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 2 0 BITMAP 07E0 0860 1020 3060 6000 6000 E000 E000 E000 E000 E000 6080 3F00 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 2 0 BITMAP 003E 000E 000C 000C 001C 03FC 041C 0818 1018 3038 6038 6070 E070 E0F0 E170 E670 FC70 787C ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 2 0 BITMAP 07C0 08E0 10E0 30E0 60C0 61C0 E300 FC00 E000 E000 E060 71C0 3F00 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 9 0 BBX 12 24 2 -5 BITMAP 01F0 0230 0630 0420 0C00 0C00 3FC0 1C00 1800 1800 1800 3800 3800 3000 3000 3000 7000 7000 7000 6000 6000 E000 E000 E000 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 1 -5 BITMAP 01FC 021C 0C1C 1818 1818 3038 3038 7078 70B0 71B0 7330 7E70 3860 0060 8060 C0C0 7080 7F00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 16 0 BBX 13 18 3 0 BITMAP 7C00 1C00 1C00 1800 1800 1870 39F8 3B38 3638 3430 3830 7030 7070 6070 6060 6060 E060 E0F8 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 7 0 BBX 6 18 3 0 BITMAP 1C 1C 00 00 00 F8 38 38 30 30 30 70 60 60 60 60 E0 F8 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 9 0 BBX 12 23 -1 -5 BITMAP 0070 0070 0000 0000 0000 03E0 00E0 00E0 00C0 00C0 00C0 01C0 01C0 0180 0180 0180 0380 0380 0300 4300 C600 C400 F800 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 2 0 BITMAP 7C00 1C00 1C00 1C00 1800 1838 1830 3860 38C0 3100 3600 7E00 7700 6700 6380 61C0 E1E0 E0F8 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 7 0 BBX 6 18 2 0 BITMAP 7C 1C 18 18 18 18 38 30 30 30 30 70 60 60 60 60 E0 F8 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 24 0 BBX 21 13 3 0 BITMAP F87070 39F1F8 3B3B38 363638 3C3C30 383830 707830 707070 607070 606060 606060 E0E060 E0E0F8 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 16 0 BBX 13 13 3 0 BITMAP F870 39F8 3338 3638 3430 3830 7030 7070 6070 6060 6060 E060 E0F8 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 2 0 BITMAP 07C0 0C60 1870 3030 7030 6030 E070 E070 E060 E0E0 E0C0 F380 7E00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 2 -5 BITMAP 7C38 1CFC 199C 1B1C 1A1C 3C1C 3818 3018 3030 3020 7060 7080 7F00 6000 6000 E000 E000 E000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 2 -5 BITMAP 03F8 0438 1838 1030 3030 6030 6070 E0F0 E160 E360 E660 FCE0 70E0 00C0 00C0 00C0 01C0 01C0 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 3 0 BITMAP F860 39E0 33C0 3600 3C00 3800 7000 7000 6000 6000 6000 E000 E000 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 07C0 1C40 1840 1840 1C00 1E00 0F00 0780 0380 C180 C180 C300 7E00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 9 0 BBX 8 17 3 0 BITMAP 08 18 38 38 FF 30 30 70 70 60 60 60 E0 E0 E0 E0 78 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 16 0 BBX 13 13 3 0 BITMAP F8F8 3038 3030 3030 7030 7070 6070 60E0 6160 E360 E660 FCE0 70F8 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 14 0 BBX 14 13 1 0 BITMAP F81C 380C 180C 1C0C 0C18 0C10 0C20 0E40 0EC0 0F80 0700 0600 0400 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 20 0 BBX 20 13 2 0 BITMAP F02070 383070 383060 187060 187840 1CB8C0 1C9980 0D1900 0F1A00 0E1E00 0C1C00 0C1800 081800 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 1 0 BITMAP 7838 1C18 0C30 0E60 06C0 0700 0700 0F80 1180 21C0 60C0 C0E0 E078 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 14 0 BBX 16 18 0 -5 BITMAP 7C0F 1C07 0E06 0606 060C 0608 0710 0730 0320 0340 0380 0300 0200 0600 0C00 1800 3000 F000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 1 0 BITMAP 1FF8 1030 3060 00C0 01C0 0380 0700 0E00 1C00 3800 3030 6020 FFE0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 8 0 BBX 9 22 2 -4 BITMAP 0380 0E00 0C00 0C00 1C00 1C00 1C00 1800 1800 1800 1000 E000 2000 3000 3000 7000 6000 E000 C000 C000 C000 3000 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 6 0 BBX 6 22 2 -4 BITMAP 0C 0C 0C 08 18 18 18 18 10 30 30 30 30 20 60 60 60 60 40 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 8 0 BBX 9 22 2 -4 BITMAP 0E00 0300 0100 0300 0300 0700 0600 0600 0600 0600 0380 0400 0800 1800 1800 1800 1800 1800 1800 1800 3000 E000 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 15 0 BBX 15 6 2 4 BITMAP 1C00 3E02 4704 83C4 80FC 8078 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 7 0 BBX 6 18 1 -5 BITMAP 1C 1C 00 00 00 10 10 10 30 30 30 20 60 60 60 E0 E0 E0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 3 0 BITMAP 0080 0080 01F8 0E90 1890 3100 6100 6100 E100 C200 C200 C200 E200 7460 3F80 0400 0400 0400 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 3 0 BITMAP 0078 018C 030C 030C 0600 0600 0600 0E00 3FC0 0C00 0C00 0C00 1C00 1800 1000 2000 FFE0 FFC0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 15 0 BBX 17 16 1 1 BITMAP 100080 100100 09E200 0A1400 0C0800 080C00 180400 100400 100C00 100800 100800 081000 1C3000 37C800 400C00 800400 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 15 0 BBX 17 18 3 0 BITMAP FC0F80 780200 380400 180800 1C1000 0C2000 0E4000 068000 070000 7FE000 060000 060000 7FE000 0E0000 0E0000 0C0000 1C0000 7F0000 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 6 0 BBX 6 22 2 -4 BITMAP 0C 0C 08 08 18 18 18 10 10 30 00 00 30 20 20 60 60 60 40 40 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 15 0 BBX 14 23 2 -5 BITMAP 01F8 060C 0C04 0C04 0C00 1C00 0E00 0780 0BE0 10F0 3038 3018 3810 1E30 0FA0 03C0 00E0 0070 0030 C070 C060 E1C0 7F00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 14 0 BBX 7 2 7 16 BITMAP C6 C6 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 21 0 BBX 19 18 3 0 BITMAP 03F800 0E0600 180180 200080 40FC40 418420 830420 860020 860020 860020 860020 860020 430820 41F040 200080 180180 0E0600 03F800 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 3 8 BITMAP 0FC0 1180 2180 6180 4380 C780 C700 DB00 F300 63C0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 13 0 BBX 12 11 2 1 BITMAP 0210 0420 1840 3180 6380 E700 6300 6180 3180 1080 0840 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 15 0 BBX 15 6 2 4 BITMAP FFFE 0006 0006 0004 0004 000C ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 8 0 BBX 6 2 2 7 BITMAP FC FC ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 15 0 BBX 12 11 4 7 BITMAP 1F00 20C0 4FE0 88A0 8890 8F10 8B10 99A0 4060 30C0 0F00 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 14 0 BBX 7 1 7 17 BITMAP FE ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 7 0 BBX 4 4 5 14 BITMAP 70 90 90 70 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 15 0 BBX 16 15 0 0 BITMAP 0060 0060 0040 0040 0040 3FFF 0080 0080 0080 0080 0180 0180 0000 0000 FFFE ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 -14 7 BITMAP 1E 23 23 03 02 04 18 20 40 40 FC ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 -14 7 BITMAP 3E 22 23 02 06 38 04 06 86 8C F8 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 14 0 BBX 6 4 9 14 BITMAP 1C 30 60 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 17 0 BBX 14 17 2 -4 BITMAP 7C7C 181C 1818 1818 3818 3838 3038 3070 30F0 70B0 7330 7F70 6E7C 6000 E000 E000 C000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 15 0 BBX 11 22 4 -4 BITMAP 3FE0 7E40 FE40 FE40 FC40 FC80 7C80 7C80 1C80 0880 0880 0900 0900 0900 1100 1100 1200 1200 1200 2200 2200 2400 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 15 0 BBX 3 3 8 6 BITMAP E0 E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 14 0 BBX 4 5 4 -5 BITMAP 20 60 30 30 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 9 0 BBX 6 11 -14 7 BITMAP 3C 0C 08 08 08 18 18 10 10 30 FC ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 3 8 BITMAP 0F00 1180 21C0 60C0 4080 C180 C180 C300 E600 7800 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 13 0 BBX 12 11 2 1 BITMAP 2100 1080 18C0 1860 0C60 0E70 1C60 18C0 2180 4200 8400 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 20 0 BBX 20 18 5 0 BITMAP 3C0030 0C0060 0800C0 080180 080300 180600 180C00 101820 1030E0 306140 FCC240 018440 0308C0 0608C0 0C1FE0 180080 300180 6003C0 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 20 0 BBX 20 18 5 0 BITMAP 3C0030 0C0060 0800C0 080180 080300 180600 180C00 101BC0 103460 306460 FCC060 018040 030080 060300 0C0400 180800 300800 601F80 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 20 0 BBX 20 18 5 0 BITMAP 3E0030 220060 2300C0 020180 060300 380600 040C00 061820 8630E0 8C6140 F8C240 018440 0308C0 0608C0 0C1FE0 180080 300180 6003C0 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 12 0 BBX 10 18 1 -5 BITMAP 01C0 01C0 0000 0000 0000 0380 0300 0300 0600 0C00 1800 3000 6000 E000 E0C0 E080 7180 3F00 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 19 0 BBX 19 23 0 0 BITMAP 001C00 000C00 000400 000200 000000 000C00 000C00 001C00 003E00 002E00 004E00 00CE00 008600 010600 010700 020700 07FF00 040300 080300 100380 100380 200380 F80FE0 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 19 0 BBX 19 23 0 0 BITMAP 0001C0 000300 000600 000C00 000000 000C00 000C00 001C00 003E00 002E00 004E00 00CE00 008600 010600 010700 020700 07FF00 040300 080300 100380 100380 200380 F80FE0 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 19 0 BBX 19 23 0 0 BITMAP 000700 000F80 001880 003040 000000 000C00 000C00 001C00 003E00 002E00 004E00 00CE00 008600 010600 010700 020700 07FF00 040300 080300 100380 100380 200380 F80FE0 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 19 0 BBX 19 22 0 0 BITMAP 001C40 001F80 002380 000000 000C00 000C00 001C00 003E00 002E00 004E00 00CE00 008600 010600 010700 020700 07FF00 040300 080300 100380 100380 200380 F80FE0 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 19 0 BBX 19 21 0 0 BITMAP 003180 003180 000000 000C00 000C00 001C00 003E00 002E00 004E00 00CE00 008600 010600 010700 020700 07FF00 040300 080300 100380 100380 200380 F80FE0 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 19 0 BBX 19 23 0 0 BITMAP 000600 000900 000900 000600 000000 000C00 000C00 001C00 003E00 002E00 004E00 00CE00 008600 010600 010700 020700 07FF00 040300 080300 100380 100380 200380 F80FE0 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 23 0 BBX 25 18 0 0 BITMAP 0001FF80 00038180 00078100 000B8000 00138000 00130000 00230000 00470400 00870400 0187FC00 01070400 02060000 07FE0000 080E0000 080E0000 100C0600 201C0400 F87FFC00 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 18 0 BBX 17 23 3 -5 BITMAP 00FF80 038380 0E0180 1C0100 380000 300000 700000 700000 E00000 E00000 E00000 E00000 E00000 E00000 600000 700000 3C0C00 0FF000 020000 060000 030000 030000 0E0000 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 14 0 BBX 16 23 1 0 BITMAP 00E0 0060 0020 0010 0000 1FFF 0703 0702 0700 0700 0600 0608 0E08 0FF8 0E18 0C10 0C00 1C00 1C00 1C00 180C 3808 FFF8 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 14 0 BBX 16 23 1 0 BITMAP 000E 0018 0030 0060 0000 1FFF 0703 0702 0700 0700 0600 0608 0E08 0FF8 0E18 0C10 0C00 1C00 1C00 1C00 180C 3808 FFF8 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 14 0 BBX 16 23 1 0 BITMAP 0038 007C 00C4 0182 0000 1FFF 0703 0702 0700 0700 0600 0608 0E08 0FF8 0E18 0C10 0C00 1C00 1C00 1C00 180C 3808 FFF8 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 14 0 BBX 16 21 1 0 BITMAP 018C 018C 0000 1FFF 0703 0702 0700 0700 0600 0608 0E08 0FF8 0E18 0C10 0C00 1C00 1C00 1C00 180C 3808 FFF8 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 8 0 BBX 11 23 0 0 BITMAP 0700 0300 0100 0080 0000 0FE0 0380 0300 0700 0700 0700 0600 0600 0E00 0E00 0C00 0C00 1C00 1C00 1C00 1800 3800 FE00 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 8 0 BBX 12 23 0 0 BITMAP 0070 00C0 0180 0300 0000 0FE0 0380 0300 0700 0700 0700 0600 0600 0E00 0E00 0C00 0C00 1C00 1C00 1C00 1800 3800 FE00 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 8 0 BBX 12 23 0 0 BITMAP 01C0 03E0 0620 0C10 0000 0FE0 0380 0300 0700 0700 0700 0600 0600 0E00 0E00 0C00 0C00 1C00 1C00 1C00 1800 3800 FE00 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 8 0 BBX 12 21 0 0 BITMAP 0630 0630 0000 0FE0 0380 0300 0700 0700 0700 0600 0600 0E00 0E00 0C00 0C00 1C00 1C00 1C00 1800 3800 FE00 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 19 0 BBX 19 18 1 0 BITMAP 1FFE00 070780 0701C0 0700C0 0600E0 0600E0 0E00E0 0E00E0 7FE0E0 0C00E0 0C00C0 1C01C0 1C01C0 1C0380 180700 180E00 383C00 FFF000 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 19 0 BBX 22 22 1 0 BITMAP 003880 003F00 004700 000000 1F00FC 070030 078020 078020 05C060 04C040 04E040 0C7040 087040 083880 083880 081C80 180C80 100E80 100700 100700 300300 FC0100 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 20 0 BBX 18 23 3 0 BITMAP 007000 003000 001000 000800 000000 00FC00 030700 0E0380 1C0380 380180 3001C0 7001C0 6001C0 E00180 E00180 E00380 E00300 E00700 E00600 600C00 701800 387000 0FC000 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 20 0 BBX 18 23 3 0 BITMAP 000E00 001800 003000 006000 000000 00FC00 030700 0E0380 1C0380 380180 3001C0 7001C0 6001C0 E00180 E00180 E00380 E00300 E00700 E00600 600C00 701800 387000 0FC000 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 20 0 BBX 18 23 3 0 BITMAP 003800 007C00 00C400 018200 000000 00FC00 030700 0E0380 1C0380 380180 3001C0 7001C0 6001C0 E00180 E00180 E00380 E00300 E00700 E00600 600C00 701800 387000 0FC000 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 20 0 BBX 18 22 3 0 BITMAP 00E200 00FC00 011C00 000000 00FC00 030700 0E0380 1C0380 380180 3001C0 7001C0 6001C0 E00180 E00180 E00380 E00300 E00700 E00600 600C00 701800 387000 0FC000 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 20 0 BBX 18 21 3 0 BITMAP 00C600 00C600 000000 00FC00 030700 0E0380 1C0380 380180 3001C0 7001C0 6001C0 E00180 E00180 E00380 E00300 E00700 E00600 600C00 701800 387000 0FC000 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 15 0 BBX 17 15 1 0 BITMAP 100080 100100 080600 040C00 021800 033000 016000 008000 034000 066000 0C2000 181000 300800 600400 800400 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 20 0 BBX 21 18 1 0 BITMAP 007E18 01C3A0 0301C0 0600E0 0C01E0 1C02E0 180460 381860 3830E0 3060E0 30C0C0 7100C0 320180 340380 380300 180600 2C1C00 C7E000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 18 0 BBX 18 23 4 0 BITMAP 01C000 00C000 004000 002000 000000 FE0FC0 380300 380200 300200 300200 700600 700400 700400 600400 600C00 E00800 E00800 E00800 C01800 E01000 603000 706000 1F8000 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 18 0 BBX 18 23 4 0 BITMAP 001C00 003000 006000 00C000 000000 FE0FC0 380300 380200 300200 300200 700600 700400 700400 600400 600C00 E00800 E00800 E00800 C01800 E01000 603000 706000 1F8000 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 18 0 BBX 18 23 4 0 BITMAP 007000 00F800 018800 030400 000000 FE0FC0 380300 380200 300200 300200 700600 700400 700400 600400 600C00 E00800 E00800 E00800 C01800 E01000 603000 706000 1F8000 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 18 0 BBX 18 21 4 0 BITMAP 031800 031800 000000 FE0FC0 380300 380200 300200 300200 700600 700400 700400 600400 600C00 E00800 E00800 E00800 C01800 E01000 603000 706000 1F8000 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 17 0 BBX 17 23 3 0 BITMAP 003800 006000 00C000 018000 000000 FE0F80 780200 380400 380800 1C1000 1C3000 0E6000 0E4000 068000 070000 070000 060000 060000 0E0000 0E0000 0E0000 1E0000 7F8000 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 14 0 BBX 15 18 1 0 BITMAP 1FC0 0700 0700 0700 07F8 060C 0E0E 0E0E 0E0E 0C0E 0C1C 1C18 1C70 1FC0 1800 1800 3800 FE00 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 15 0 BBX 13 24 2 -5 BITMAP 01F0 0738 0618 0E18 0C30 0C20 0C40 1D80 1D80 1980 19C0 18F0 3878 3838 3018 3218 3218 7230 73E0 6000 6000 6000 E000 E000 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 2 0 BITMAP 01C0 00C0 0040 0020 0000 03F8 0438 1830 1030 3030 6030 6070 E0E0 E160 E360 E660 FCE0 70F8 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 2 0 BITMAP 0038 0060 00C0 0180 0000 03F8 0438 1830 1030 3030 6030 6070 E0E0 E160 E360 E660 FCE0 70F8 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 2 0 BITMAP 00E0 01F0 0310 0608 0000 03F8 0438 1830 1030 3030 6030 6070 E0E0 E160 E360 E660 FCE0 70F8 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 2 0 BITMAP 01C4 01F8 0238 0000 03F8 0438 1830 1030 3030 6030 6070 E0E0 E160 E360 E660 FCE0 70F8 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 15 0 BBX 13 16 2 0 BITMAP 0318 0318 0000 03F8 0438 1830 1030 3030 6030 6070 E0E0 E160 E360 E660 FCE0 70F8 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 2 0 BITMAP 0060 0090 0090 0060 0000 03F8 0438 1830 1030 3030 6030 6070 E0E0 E160 E360 E660 FCE0 70F8 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 22 0 BBX 20 13 2 0 BITMAP 03F9E0 043E70 181C30 103830 303870 603060 6071C0 E0FE00 E0B000 E13000 E63010 FC3860 781F80 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 12 0 BBX 11 18 2 -5 BITMAP 07E0 0860 1020 3060 6000 6000 E000 E000 E000 E000 E000 6080 3F00 1000 3000 1800 1800 7000 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 13 0 BBX 11 18 2 0 BITMAP 0380 0180 0080 0040 0000 07C0 08E0 10E0 30E0 60C0 61C0 E300 FC00 E000 E000 E060 71C0 3F00 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 13 0 BBX 12 18 2 0 BITMAP 0070 00C0 0180 0300 0000 07C0 08E0 10E0 30E0 60C0 61C0 E300 FC00 E000 E000 E060 71C0 3F00 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 13 0 BBX 12 18 2 0 BITMAP 01C0 03E0 0620 0C10 0000 07C0 08E0 10E0 30E0 60C0 61C0 E300 FC00 E000 E000 E060 71C0 3F00 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 13 0 BBX 12 16 2 0 BITMAP 0630 0630 0000 07C0 08E0 10E0 30E0 60C0 61C0 E300 FC00 E000 E000 E060 71C0 3F00 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 7 0 BBX 6 18 3 0 BITMAP 38 18 08 04 00 F8 38 30 30 30 30 70 60 60 60 60 E0 F8 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 7 0 BBX 9 18 3 0 BITMAP 0380 0600 0C00 1800 0000 F800 3800 3000 3000 3000 3000 7000 6000 6000 6000 6000 E000 F800 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 7 0 BBX 9 18 3 0 BITMAP 0E00 1F00 3100 6080 0000 F800 3800 3000 3000 3000 3000 7000 6000 6000 6000 6000 E000 F800 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 7 0 BBX 9 16 3 0 BITMAP 3180 3180 0000 F800 3800 3000 3000 3000 3000 7000 6000 6000 6000 6000 E000 F800 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 14 0 BBX 12 19 2 0 BITMAP 0030 1FE0 03C0 01C0 0E60 0060 07F0 0870 1030 3030 6030 6030 E030 E070 E060 E060 E0C0 6180 3E00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 16 0 BBX 13 17 3 0 BITMAP 0388 03F0 0470 0000 F870 39F8 3338 3638 3430 3830 7030 7070 6070 6060 6060 E060 E0F8 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 2 0 BITMAP 0380 0180 0080 0040 0000 07C0 0C60 1870 3030 7030 6030 E070 E070 E060 E0E0 E0C0 F380 7E00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 2 0 BITMAP 0038 0060 00C0 0180 0000 07C0 0C60 1870 3030 7030 6030 E070 E070 E060 E0E0 E0C0 F380 7E00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 2 0 BITMAP 00E0 01F0 0310 0608 0000 07C0 0C60 1870 3030 7030 6030 E070 E070 E060 E0E0 E0C0 F380 7E00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 14 0 BBX 13 17 2 0 BITMAP 0388 03F0 0470 0000 07C0 0C60 1870 3030 7030 6030 E070 E070 E060 E0E0 E0C0 F380 7E00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 14 0 BBX 12 16 2 0 BITMAP 0630 0630 0000 07C0 0C60 1870 3030 7030 6030 E070 E070 E060 E0E0 E0C0 F380 7E00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 15 0 BBX 15 13 2 0 BITMAP 00C0 01C0 0000 0000 0000 0000 FFFE 0000 0000 0000 0000 0700 0700 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 14 0 BBX 15 13 1 0 BITMAP 01E6 0638 0C18 1838 305C 3098 7118 7218 7430 7830 7060 38C0 DF00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 16 0 BBX 13 18 3 0 BITMAP 01C0 00C0 0040 0020 0000 F8F8 3038 3030 3030 7030 7070 6070 60E0 6160 E360 E660 FCE0 70F8 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 16 0 BBX 13 18 3 0 BITMAP 0038 0060 00C0 0180 0000 F8F8 3038 3030 3030 7030 7070 6070 60E0 6160 E360 E660 FCE0 70F8 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 16 0 BBX 13 18 3 0 BITMAP 00E0 01F0 0310 0608 0000 F8F8 3038 3030 3030 7030 7070 6070 60E0 6160 E360 E660 FCE0 70F8 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 16 0 BBX 13 16 3 0 BITMAP 0318 0318 0000 F8F8 3038 3030 3030 7030 7070 6070 60E0 6160 E360 E660 FCE0 70F8 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 14 0 BBX 16 23 0 -5 BITMAP 000E 0018 0030 0060 0000 7C0F 1C07 0E06 0606 060C 0608 0710 0730 0320 0340 0380 0300 0200 0600 0C00 1800 3000 F000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 15 0 BBX 14 22 2 -5 BITMAP 3C00 0C00 0C00 0C00 1C38 1CFC 199C 1B1C 1A1C 3C1C 3818 3018 3030 3020 7060 7080 7F00 6000 6000 E000 E000 E000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 14 0 BBX 16 21 0 -5 BITMAP 00C6 00C6 0000 7C0F 1C07 0E06 0606 060C 0608 0710 0730 0320 0340 0380 0300 0200 0600 0C00 1800 3000 F000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 16 24 2 -5 BITMAP 00FF 030F 0606 0606 0C06 0C0E 3FCE 1C0C 1C0C 180C 181C 181C 3818 3818 3018 3038 3038 7038 703E 6000 6000 6000 E000 E000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 1 3 8 BITMAP FFC0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 11 22 4 -4 BITMAP 0300 0300 0600 0600 0600 0600 E460 FFE0 0400 0C00 0C00 0C00 0800 0800 1800 1800 1800 1800 3000 3000 3000 7000 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 16 23 1 0 BITMAP 0106 008C 00F8 0070 0000 0FFF 0C06 080E 181C 0038 0070 0060 00E0 01C0 0380 0700 0600 0E00 1C00 3800 700C 6018 FFF8 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 22 0 BBX 20 13 2 0 BITMAP 03E3E0 0C6470 187830 303830 607060 6070E0 E07180 E07E00 E07000 E0F000 E1F010 73B860 3E1F80 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 17 21 3 0 BITMAP 031800 031800 000000 FE0F80 780200 380400 380800 1C1000 1C3000 0E6000 0E4000 068000 070000 070000 060000 060000 0E0000 0E0000 0E0000 1E0000 7F8000 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 13 3 0 BITMAP F8 38 30 30 30 30 70 60 60 60 60 E0 F8 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 9 18 1 0 BITMAP 3E00 0E00 0C00 0C00 0C00 0C00 1C00 1880 1F00 F800 1800 3800 3000 3000 3000 7000 7000 7C00 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 0 0 BITMAP 0FE0 0380 0300 0700 0700 0700 0640 0FC0 0F00 1E00 6E00 4C00 1C00 1C00 1C00 1804 380C FFF8 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 13 22 3 -4 BITMAP 01C0 0180 0180 0180 0100 3138 7FF0 0300 0200 0200 0200 0200 0600 0400 FFE0 C4E0 0400 0C00 0C00 0C00 1C00 1800 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 15 24 2 -5 BITMAP 01E0 062E 062E 0C60 0C00 0C00 3FFC 1C1C 181C 1818 1818 3818 3838 3030 3030 3030 7030 7070 707C 6000 6000 E000 E000 E000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 2 1 BITMAP 20 10 18 0C 0C 0E 0C 18 20 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 25 0 BBX 25 18 3 0 BITMAP 00F9FF80 03878180 0E038180 1C038100 18030000 30030000 70070400 60070400 E007FC00 E0060C00 E0060C00 E00E0000 E00E0000 E00E0000 601C0600 701C0400 383C0C00 0FDFFC00 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 25 0 BBX 23 1 2 7 BITMAP FFFFFE ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 8 4 7 14 BITMAP 83 46 7C 38 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 4 4 4 -5 BITMAP 70 C0 C0 70 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 8 4 8 14 BITMAP 1B 34 48 90 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 2 1 BITMAP 02 04 08 30 60 E0 60 20 30 10 08 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 3 2 9 16 BITMAP E0 E0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 8 4 7 14 BITMAP 81 82 FC 78 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 8 5 3 BITMAP 3C 7E FF FF FF FF 7E 3C ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 8 3 7 15 BITMAP 71 7E 8E ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 8 4 6 14 BITMAP 1C 3E 62 C1 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 6 4 12 BITMAP 3180 6300 6200 6600 F700 E700 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 6 4 12 BITMAP E0 E0 E0 40 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 13 18 1 0 BITMAP 0418 0230 03E0 01C0 0000 07C0 1C40 1840 1840 1C00 1E00 0F00 0780 0380 C180 C180 C300 7E00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 4 4 9 15 BITMAP 60 90 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 8 1 -5 BITMAP 70 70 70 20 20 60 60 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 12 22 4 -4 BITMAP 01F0 0230 0630 0C20 0C00 0C00 1C00 1C00 1800 FF00 3800 3800 3000 3000 3000 7000 7000 6000 6000 6000 E000 E000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 22 10 3 8 BITMAP FFBC3C 889C70 181E70 181EB0 1816B0 183760 102760 302660 302460 FCE070 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 19 18 -6 0 BITMAP 000060 0000C0 000180 000300 000600 000C00 001800 003000 006000 00C000 018000 030000 060000 0C0000 180000 300000 600000 C00000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 4 4 8 14 BITMAP E0 60 20 10 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 27 0 BBX 25 18 3 0 BITMAP 0E018000 19030000 31820000 21840000 61880000 61180000 63300000 32600000 1CC00000 019E0E00 01331100 02633180 04636180 0C636180 18636100 30626300 60662600 C03C3C00 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 25 0 BBX 19 2 3 0 BITMAP E0E060 E0E0E0 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 6 4 12 BITMAP 7380 7780 3100 3300 6300 C600 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 23 2 0 BITMAP 020C 0118 01F0 00E0 0000 03F0 061C 0C0C 1C0C 1C08 1C00 1E00 0F00 0780 03E0 00E0 0070 0070 4070 C070 C060 E0C0 3F00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 8 1 -5 BITMAP 7380 7380 7780 3300 3300 6300 6200 C600 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 14 18 1 0 BITMAP 020C 0118 01F0 00E0 0000 1FF8 1030 3060 00C0 01C0 0380 0700 0E00 1C00 3800 3030 6020 FFE0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lubI19.bdf100644 1750 1750 117705 5413747535 15115 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-Medium-I-Normal--26-190-100-100-P-148-ISO8859-1 SIZE 19 100 100 FONTBOUNDINGBOX 44 29 -14 -5 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "Medium" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 26 POINT_SIZE 190 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH "148" CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." FONT_ASCENT 24 FONT_DESCENT 6 DEFAULT_CHAR 0 ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 8 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 7 0 BBX 6 19 2 0 BITMAP 1C 1C 1C 18 18 18 18 30 30 30 20 20 20 20 00 00 E0 E0 E0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 10 0 BBX 7 6 5 13 BITMAP CE CC CC 44 44 44 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 16 0 BBX 16 19 2 0 BITMAP 0063 0042 00C6 0084 018C 0108 7FFF 0210 0630 0420 0C60 0840 FFFE 1080 3180 2100 6300 4200 C600 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 16 0 BBX 11 22 4 -2 BITMAP 0100 0FE0 1A60 3220 3220 3200 3200 3200 3C00 1C00 0E00 0780 0B80 09C0 09C0 09C0 4980 C980 CB00 FC00 1000 1000 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 20 0 BBX 20 19 2 0 BITMAP 0F0030 188040 30C080 30C100 60C300 60C600 618C00 331800 1E3000 006780 00CCC0 019840 033040 063040 0C30C0 1830C0 3030C0 603180 C01E00 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 19 0 BBX 19 19 2 0 BITMAP 007800 018C00 030C00 030C00 030C00 031C00 033800 03E000 0F8000 398FE0 71C300 E1C300 E0E200 E0E200 E07400 E07800 603800 787C00 1F9F00 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 4 12 BITMAP 78 78 30 30 30 E0 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 8 0 BBX 9 23 2 -4 BITMAP 0080 0300 0600 0C00 0800 1800 3000 3000 6000 6000 6000 E000 E000 C000 C000 C000 C000 C000 4000 4000 2000 2000 1000 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 8 0 BBX 9 23 0 -4 BITMAP 0400 0400 0200 0200 0300 0300 0300 0300 0380 0300 0300 0300 0300 0700 0600 0600 0C00 0C00 1800 1000 2000 4000 8000 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 12 0 BBX 10 9 4 10 BITMAP 0600 0400 4400 EDC0 3300 1C00 3600 E600 4300 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 16 0 BBX 15 16 2 0 BITMAP 00C0 00C0 0080 0080 0080 0180 0180 0180 FFFE 0100 0100 0300 0300 0200 0200 0600 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 -5 BITMAP 38 78 78 70 30 30 30 60 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 16 0 BBX 15 1 2 8 BITMAP FFFE ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 7 0 BBX 4 3 2 0 BITMAP 70 F0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 12 0 BBX 17 23 0 -4 BITMAP 000180 000300 000200 000600 000C00 000800 001800 003000 002000 006000 00C000 008000 018000 030000 020000 060000 0C0000 080000 180000 300000 200000 600000 C00000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 3 0 BITMAP 03E0 0630 0C18 181C 301C 301C 701C 601C 601C E01C E018 E018 E038 E030 E070 E060 60C0 3180 1F00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 16 0 BBX 10 19 3 0 BITMAP 0FC0 01C0 0180 0180 0180 0380 0380 0300 0300 0300 0700 0700 0600 0600 0600 0E00 0E00 1E00 FFC0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 2 0 BITMAP 03F0 0C38 081C 181C 001C 001C 0018 0038 0070 00E0 0180 0300 0400 1800 3000 2000 6000 FFE0 FFE0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 3 0 BITMAP 0FE0 0C30 0818 1818 0018 0038 0030 00E0 0F80 00C0 0060 0070 0070 0070 0070 4060 C0C0 C180 FE00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 2 0 BITMAP 000C 0018 0038 0058 0098 0138 0230 0430 0830 1030 2070 4060 FFFC FFFC 0060 00E0 00C0 01C0 07F0 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 3 0 BITMAP 0FFC 0FFC 1000 1000 1000 1000 1000 3F00 01C0 00E0 0070 0070 0070 0070 0060 40E0 C0C0 C380 FE00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 3 0 BITMAP 01F8 070C 0C0C 1C0C 3800 3000 7000 77C0 7870 F030 E038 E038 E038 E030 E030 E060 60E0 31C0 1F00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 4 0 BITMAP 3FFC 3FFC 0008 0010 0020 0040 00C0 0180 0100 0200 0600 0C00 1800 1800 3000 7000 7000 E000 E000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 3 0 BITMAP 03F0 0638 081C 181C 181C 3818 1C30 1E60 0FC0 0BC0 31F0 6070 E038 C030 C030 E030 E060 70C0 1F00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 3 0 BITMAP 03E0 0E30 1C18 181C 301C 301C 701C 701C 701C 303C 3858 0FB8 0038 0030 0070 C060 C0C0 E380 7E00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 7 0 BBX 6 14 2 0 BITMAP 1C 3C 38 00 00 00 00 00 00 00 00 70 F0 E0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 7 0 BBX 7 19 1 -5 BITMAP 0E 1E 1C 00 00 00 00 00 00 00 00 00 78 70 30 30 30 60 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 16 0 BBX 17 16 2 0 BITMAP 000080 000380 000E00 003800 00E000 070000 1C0000 F00000 700000 1C0000 0E0000 038000 00E000 003800 001C00 000400 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 16 0 BBX 16 7 1 4 BITMAP 7FFF 0000 0000 0000 0000 0000 FFFE ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 16 0 BBX 17 16 0 0 BITMAP 100000 1C0000 0E0000 038000 00E000 003800 001C00 000700 000780 001C00 007000 038000 0E0000 380000 E00000 800000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 12 0 BBX 10 19 4 0 BITMAP 3F00 63C0 41C0 C0C0 01C0 01C0 0180 0300 0400 0800 1000 3000 7000 7000 0000 0000 E000 E000 E000 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 22 0 BBX 20 19 3 0 BITMAP 007E00 038180 040040 080020 107E10 208610 410610 420410 820C10 860C10 861C10 861C20 862C20 864CC0 438F00 400000 200000 181800 07E000 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 19 0 BBX 19 19 0 0 BITMAP 000400 000C00 001C00 001C00 002E00 006E00 004E00 008600 008600 010700 030700 020700 07FF00 0C0300 080380 100380 100380 200380 F80FE0 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 16 0 BBX 16 19 1 0 BITMAP 0FFC 030E 0307 0707 0707 0707 0706 060C 0E38 0FE0 0E38 0C0C 0C0E 1C0E 1C0E 1C0E 181C 3838 FFE0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 19 0 BBX 17 19 3 0 BITMAP 00FF00 038380 060180 0C0180 180100 380000 700000 700000 600000 E00000 E00000 E00000 E00000 E00000 E00000 700000 700000 3C1C00 0FF000 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 20 0 BBX 20 19 1 0 BITMAP 0FFF00 0303C0 0300E0 0700E0 070070 070070 060070 060070 0E0070 0E0070 0E0060 0C00E0 0C00E0 1C01C0 1C01C0 1C0380 1C0700 3C1C00 FFF000 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 15 0 BBX 17 19 0 0 BITMAP 0FFF80 038180 038100 030000 030000 070000 070000 070400 060C00 0FFC00 0E0800 0E0800 0C0000 0C0000 1C0000 1C0000 1C0600 3C0C00 FFFC00 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 14 0 BBX 17 19 0 0 BITMAP 0FFF80 038180 038100 030000 030000 070000 070000 070400 060C00 0FFC00 0E0800 0E0800 0C0000 0C0000 1C0000 1C0000 1C0000 3C0000 FF0000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 20 0 BBX 18 19 3 0 BITMAP 00FF80 0381C0 070080 0C0180 1C0000 380000 700000 700000 600000 E00000 E00000 E03FC0 E00700 E00E00 E00E00 700E00 700C00 3C0C00 0FF000 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 20 0 BBX 23 19 0 0 BITMAP 0FE1FE 038078 030070 030070 070070 070070 070060 0600E0 0600E0 0FFFE0 0E00E0 0E00C0 0C01C0 1C01C0 1C01C0 1C01C0 1C0180 3C0380 FF0FE0 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 9 0 BBX 11 19 1 0 BITMAP 0FE0 0380 0700 0700 0700 0700 0600 0600 0E00 0E00 0E00 0C00 0C00 1C00 1C00 1C00 1C00 3800 FE00 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 11 0 BBX 15 23 0 -4 BITMAP 01FE 0078 0070 0070 0070 0070 0060 00E0 00E0 00E0 00E0 00C0 01C0 01C0 01C0 01C0 0180 0380 0380 4300 C300 C600 F800 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 18 0 BBX 20 19 0 0 BITMAP 0FE3F0 0380C0 030180 030200 070400 071800 073000 066000 0E8000 0FC000 0EE000 0EF000 0C7000 1C3800 1C1C00 1C1C00 1C0E00 3C0F00 FE1FC0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 15 0 BBX 15 19 0 0 BITMAP 0FE0 0380 0380 0300 0700 0700 0700 0600 0600 0E00 0E00 0E00 0C00 0C00 1C00 1C02 1C06 3C0E FFFC ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 22 0 BBX 25 19 1 0 BITMAP 0F800F80 03801E00 03801C00 07802C00 07C05C00 05C05C00 04C09800 04C19800 0CE11800 0CE23800 08623800 08643000 087C3000 18783000 18307000 10307000 10206000 3000E000 FC03F800 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 20 0 BBX 22 19 1 0 BITMAP 0F00FC 030010 038030 07C030 05C020 04E020 04E020 047020 0C7040 083840 081840 081C40 080E40 180E80 100780 100780 100380 300180 FC0100 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 20 0 BBX 18 19 3 0 BITMAP 00FC00 038700 060380 0C01C0 1801C0 3801C0 7000C0 7000C0 6000C0 E001C0 E001C0 E00180 E00380 E00300 E00700 600E00 701C00 383000 0FC000 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 15 0 BBX 17 19 0 0 BITMAP 0FFE00 038700 030380 030380 070380 070380 070300 060700 060E00 0E1C00 0FF000 0E0000 0C0000 1C0000 1C0000 1C0000 1C0000 3C0000 FF0000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 20 0 BBX 21 24 3 -5 BITMAP 00FC00 038700 060380 0C01C0 1801C0 3801C0 7001C0 7001C0 6001C0 E001C0 E001C0 E00180 E00380 E00380 E00700 600E00 701C00 383800 0FE000 004000 002000 001C00 0007F8 0001E0 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 18 0 BBX 17 19 1 0 BITMAP 0FFE00 070F00 070700 070300 070300 060700 060700 0E0E00 0E1C00 0FF000 0E7000 0C7000 0C3800 1C3800 1C1C00 1C1C00 180E00 380E00 FE0780 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 14 0 BBX 15 19 1 0 BITMAP 01FC 070E 0C06 1C06 1C06 1C00 1C00 0E00 0780 03C0 01E0 0070 0070 0030 4030 C030 C060 E0C0 3F00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 17 0 BBX 17 19 4 0 BITMAP 7FFF80 C1C180 81C100 018000 018000 038000 038000 038000 030000 030000 070000 070000 070000 060000 060000 0E0000 0E0000 0E0000 7F8000 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 19 0 BBX 18 19 4 0 BITMAP FF0FC0 3C0300 380200 380200 300200 300600 700400 700400 700400 600400 E00C00 E00800 E00800 E00800 E01800 E01000 603000 706000 1F8000 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 17 0 BBX 18 19 3 0 BITMAP FE07C0 700100 300100 380200 380600 380400 380800 180800 181000 1C3000 1C2000 1C4000 0C4000 0C8000 0F8000 0F0000 0E0000 060000 040000 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 23 0 BBX 24 19 3 0 BITMAP FE081F 781804 301808 303808 303C10 305C10 305C20 389C20 389C40 391C40 391C80 3A0C80 3A0D00 3C0D00 3C0E00 380E00 380C00 100C00 100800 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 16 0 BBX 21 19 0 0 BITMAP 0FE0F8 038060 01C040 01C080 00C100 00E200 00E400 007800 007000 003800 007800 009C00 011C00 021C00 040E00 0C0E00 180700 300700 FC1FC0 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 17 0 BBX 17 19 4 0 BITMAP FE0F80 780200 380400 380800 1C1800 1C1000 0C2000 0E4000 0E8000 078000 070000 070000 060000 060000 0E0000 0E0000 0E0000 1E0000 7F8000 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 16 0 BBX 17 19 1 0 BITMAP 0FFF80 0C0700 080600 180E00 001C00 003800 007000 007000 00E000 01C000 038000 070000 070000 0E0000 1C0000 380000 700400 700C00 FFFC00 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 8 0 BBX 10 23 1 -4 BITMAP 07C0 0600 0E00 0C00 0C00 0C00 1C00 1C00 1800 1800 1800 3800 3000 3000 3000 3000 7000 6000 6000 6000 6000 C000 F800 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 12 0 BBX 7 23 4 -4 BITMAP C0 C0 40 40 60 60 20 20 20 30 10 10 10 18 18 08 08 0C 0C 04 04 06 06 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 8 0 BBX 10 23 0 -4 BITMAP 07C0 00C0 0180 0180 0180 0180 0380 0300 0300 0300 0300 0700 0600 0600 0600 0E00 0C00 0C00 0C00 0C00 1C00 1800 F800 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 16 0 BBX 15 16 1 3 BITMAP 0020 0060 0060 00E0 00A0 0110 0310 0210 0608 0C08 0808 1808 3004 2004 6004 C002 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 13 0 BBX 11 2 1 -2 BITMAP FFE0 FFE0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 4 12 BITMAP 18 30 60 60 70 F0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 2 0 BITMAP 03FC 041C 081C 1018 3018 3038 6038 6078 E070 E0B0 E170 E270 FC70 787C ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 15 0 BBX 14 19 2 0 BITMAP 3E00 0C00 0C00 1C00 1C00 1878 18FC 399C 3A1C 3C1C 3C1C 3818 7018 7038 6030 6020 6040 E080 FF00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 13 0 BBX 12 14 2 0 BITMAP 03F0 0C70 1020 3020 6000 6000 E000 E000 E000 E000 E000 E000 70C0 3F00 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 2 0 BITMAP 003E 000E 000C 000C 001C 03FC 041C 0818 1018 3038 7038 6038 6070 E0B0 E0F0 E170 E670 FC70 707C ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 2 0 BITMAP 03C0 0CE0 1860 3060 6060 60C0 E180 EF00 F000 E000 E000 E020 70C0 3F00 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 10 0 BBX 13 25 2 -5 BITMAP 00F8 0318 0618 0610 0E00 0C00 3FC0 0C00 1C00 1C00 1800 1800 1800 3800 3800 3000 3000 3000 7000 7000 6000 6000 6000 E000 E000 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 1 -5 BITMAP 01FE 020E 040E 080C 180C 181C 301C 3038 7058 7058 70B8 7138 7E30 3C30 0070 8060 C060 7080 7F00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 3 0 BITMAP 7E00 0C00 1C00 1C00 1C00 1878 18FC 399C 3A1C 3418 3C18 3838 7038 7038 6030 6030 6070 E070 E07C ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 8 0 BBX 6 19 3 0 BITMAP 1C 1C 00 00 00 F8 38 38 30 30 30 70 70 60 60 60 E0 E0 F8 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 9 0 BBX 13 24 -1 -5 BITMAP 0038 0038 0000 0000 0000 01F0 0070 0060 0060 0060 00E0 00E0 00C0 00C0 01C0 01C0 01C0 01C0 0180 0380 4300 C300 C600 F800 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 15 0 BBX 13 19 2 0 BITMAP 7C00 1C00 1C00 1C00 1800 1838 1830 3870 38E0 3180 3200 3E00 7E00 7700 6780 6380 61C0 E1E0 E0F8 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 8 0 BBX 7 19 2 0 BITMAP 3E 0E 0C 0C 1C 1C 1C 18 38 38 38 30 30 70 70 60 60 E0 F8 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 25 0 BBX 22 14 3 0 BITMAP F87078 38F8FC 39999C 3B1B1C 363E18 3C3C18 383818 703838 703038 607030 607030 607030 E06070 E0E07C ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 3 0 BITMAP F878 38FC 399C 3A1C 3418 3C18 3838 7038 7038 6030 6030 6070 E070 E07C ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 15 0 BBX 13 14 2 0 BITMAP 03E0 0C70 1830 3038 7038 6038 E038 E030 E070 E070 E060 E0C0 7180 3E00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 2 -5 BITMAP 7C3C 1C7E 1CCE 1D0E 1A0E 1E0E 3C0C 380C 3818 3018 3010 7020 7040 7F80 6000 6000 E000 E000 E000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 2 -5 BITMAP 03FC 041C 081C 1818 3018 3038 6038 6078 E070 E0B0 E170 E270 FC70 7860 0060 00E0 00E0 00E0 00C0 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 3 0 BITMAP F870 38E0 39E0 3B00 3600 3C00 3800 7000 7000 7000 6000 6000 E000 E000 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 11 0 BBX 11 14 1 0 BITMAP 07C0 1C60 1860 1840 1800 1C00 0E00 0700 0380 0180 4180 C180 E380 7E00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 9 0 BBX 8 18 3 0 BITMAP 08 18 38 38 FF 30 30 30 70 70 60 60 60 E0 E0 E0 60 78 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 3 0 BITMAP F87C 381C 3818 3018 3018 7038 7038 7070 60B0 60B0 E170 E670 FC70 787C ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 14 0 BBX 15 14 1 0 BITMAP F81E 380E 1C0E 1C0C 0C0C 0C18 0E10 0E20 0E40 06C0 0780 0700 0600 0400 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 21 0 BBX 20 14 2 0 BITMAP F01070 383030 383830 183830 1C7860 1C5860 0C9CC0 0C9C80 0D1D80 0F0F00 0E0E00 0E0C00 0C0C00 080800 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 13 0 BBX 13 14 1 0 BITMAP 7838 1C18 1C30 0E20 0E40 0780 0700 0780 0B80 31C0 61C0 60E0 C0E0 E078 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 14 0 BBX 16 19 0 -5 BITMAP 7C07 1E03 0E03 0602 0706 0704 0708 0310 0330 0320 0340 0380 0300 0200 0600 0C00 1800 3000 F000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 14 0 BBX 14 14 1 0 BITMAP 1FFC 1838 1070 0060 00E0 01C0 0380 0700 0E00 1C00 3800 3010 6030 FFF0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 9 0 BBX 9 23 2 -4 BITMAP 0380 0600 0C00 0C00 0C00 0C00 0C00 0C00 0800 1800 1000 E000 2000 3000 3000 3000 7000 6000 E000 C000 C000 6000 3000 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 6 0 BBX 6 23 2 -4 BITMAP 0C 0C 0C 08 18 18 18 18 10 30 30 30 30 20 20 60 60 60 60 40 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 9 0 BBX 9 23 2 -4 BITMAP 0600 0300 0180 0180 0380 0300 0700 0600 0600 0600 0600 0380 0400 0C00 0800 1800 1800 1800 1800 1800 1800 3000 E000 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 16 0 BBX 16 6 1 5 BITMAP 1C00 3F01 4782 41C2 80FC 8038 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 7 0 BBX 6 19 1 -5 BITMAP 1C 1C 1C 00 00 10 10 10 10 30 30 30 60 60 60 60 E0 E0 E0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 4 0 BITMAP 0040 0040 01F8 0698 1898 3110 7100 6100 E100 E100 E100 E200 E200 E200 7220 3FC0 0400 0400 0400 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 3 0 BITMAP 0078 018C 010C 030C 0700 0600 0600 0600 0E00 3FC0 0E00 0C00 0C00 1C00 1800 1000 2000 FFE0 FFC0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 16 0 BBX 18 17 1 1 BITMAP 100080 1001C0 08E300 071E00 040C00 0C0400 080400 180400 100400 100400 100C00 180800 081000 1C3800 33CC00 400400 800200 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 16 0 BBX 17 19 3 0 BITMAP FC0F80 780200 380400 180800 1C1000 0C2000 0E4000 068000 070000 7FE000 070000 060000 060000 7FE000 0E0000 0E0000 0E0000 1C0000 7F0000 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 6 0 BBX 6 23 2 -4 BITMAP 0C 0C 0C 08 18 18 18 18 10 30 30 00 30 30 20 60 60 60 60 40 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 16 0 BBX 14 24 2 -5 BITMAP 01FC 060C 0C04 0C04 0C00 0C00 0E00 0780 0FE0 18F0 1038 3018 3818 3C18 1F30 07E0 03E0 0070 0030 0030 C070 C060 E0C0 7F00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 15 0 BBX 8 2 7 17 BITMAP E3 C7 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 22 0 BBX 19 19 3 0 BITMAP 03F800 0E0600 180180 300080 607C40 418620 830420 860020 860020 860020 860020 860020 860020 430820 61F040 300080 180180 0E0600 03F800 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 10 0 BBX 10 11 3 8 BITMAP 0FC0 11C0 31C0 6180 6180 C380 C780 C580 CB80 F300 63C0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 14 0 BBX 12 12 2 1 BITMAP 0210 0420 0840 18C0 3180 6300 E700 6300 3180 3180 1080 0840 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 16 0 BBX 15 7 2 4 BITMAP FFFE 0006 0006 0004 0004 000C 000C ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 8 0 BBX 6 2 3 8 BITMAP FC FC ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 16 0 BBX 12 12 4 7 BITMAP 1F00 20C0 4FE0 88A0 8890 8F10 8A10 8B10 59A0 4060 30C0 0F00 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 15 0 BBX 8 1 7 18 BITMAP FF ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 7 0 BBX 4 5 5 14 BITMAP 70 90 90 90 70 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 16 0 BBX 17 16 0 0 BITMAP 002000 002000 006000 006000 004000 004000 3FFF80 00C000 00C000 00C000 008000 008000 000000 000000 000000 FFFE00 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 9 0 BBX 9 11 -14 8 BITMAP 1F00 3180 2180 0180 0100 0600 0800 1000 2000 4000 FE00 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 -14 8 BITMAP 3E 23 23 03 06 3C 04 02 86 86 F8 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 15 0 BBX 6 4 9 15 BITMAP 1C 30 60 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 17 0 BBX 15 18 2 -4 BITMAP 7C3E 1C0E 1C0C 180C 180C 381C 381C 3838 3038 3058 70F8 79B8 7F38 6E3E 6000 E000 E000 E000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 16 0 BBX 11 23 4 -4 BITMAP 3FE0 7E20 FE20 FE40 FE40 FC40 FC40 7C40 3C80 0C80 0880 0880 0880 0900 0900 0900 1100 1100 1200 1200 1200 2200 2200 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 16 0 BBX 3 3 8 7 BITMAP E0 E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 15 0 BBX 4 6 4 -5 BITMAP 20 40 30 30 30 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 9 0 BBX 6 11 -14 8 BITMAP 3C 0C 08 08 08 18 18 10 10 30 FC ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 10 0 BBX 10 11 3 8 BITMAP 0F80 11C0 30C0 60C0 60C0 C0C0 C080 C180 C100 E200 7C00 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 14 0 BBX 12 12 2 1 BITMAP 2100 1080 18C0 18C0 0C60 0E70 0C60 18C0 3180 2100 4200 8400 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 21 0 BBX 20 19 4 0 BITMAP 3C0030 0C0060 0800C0 080180 080300 180600 180C00 101800 103020 3020E0 FC6140 00C240 018440 0308C0 0608C0 0C1FE0 180080 300180 6003C0 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 21 0 BBX 20 19 4 0 BITMAP 3C0030 0C0060 0800C0 080180 080300 180600 180C00 101800 1033E0 302630 FC6430 00C030 018020 0300C0 060100 0C0200 180400 300800 601FC0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 21 0 BBX 20 19 4 0 BITMAP 3E0030 230060 2300C0 030180 060300 3C0600 040C00 021800 863020 8620E0 F86140 00C240 018440 0308C0 0608C0 0C1FE0 180080 300180 6003C0 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 12 0 BBX 10 19 1 -5 BITMAP 00C0 01C0 01C0 0000 0000 0180 0180 0300 0200 0400 0800 1000 7000 6000 E000 E040 E0C0 7080 3F00 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 19 0 BBX 19 24 0 0 BITMAP 001C00 000E00 000600 000300 000000 000400 000C00 001C00 001C00 002E00 006E00 004E00 008600 008600 010700 030700 020700 07FF00 0C0300 080380 100380 100380 200380 F80FE0 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 19 0 BBX 19 24 0 0 BITMAP 0001C0 000300 000600 000C00 000000 000400 000C00 001C00 001C00 002E00 006E00 004E00 008600 008600 010700 030700 020700 07FF00 0C0300 080380 100380 100380 200380 F80FE0 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 19 0 BBX 19 24 0 0 BITMAP 000700 000F80 001880 003040 000000 000400 000C00 001C00 001C00 002E00 006E00 004E00 008600 008600 010700 030700 020700 07FF00 0C0300 080380 100380 100380 200380 F80FE0 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 19 0 BBX 19 23 0 0 BITMAP 001C40 001F80 002380 000000 000400 000C00 001C00 001C00 002E00 006E00 004E00 008600 008600 010700 030700 020700 07FF00 0C0300 080380 100380 100380 200380 F80FE0 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 19 0 BBX 19 22 0 0 BITMAP 0038C0 0031C0 000000 000400 000C00 001C00 001C00 002E00 006E00 004E00 008600 008600 010700 030700 020700 07FF00 0C0300 080380 100380 100380 200380 F80FE0 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 19 0 BBX 19 24 0 0 BITMAP 000600 000900 000900 000600 000000 000400 000C00 001C00 001C00 002E00 006E00 004E00 008600 008600 010700 030700 020700 07FF00 0C0300 080380 100380 100380 200380 F80FE0 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 24 0 BBX 26 19 0 0 BITMAP 0001FFC0 0003C0C0 0007C080 00058000 00098000 00138000 00238000 00238200 00438200 0083FE00 01070600 03070000 03FF0000 04070000 08060000 180E0000 100E0300 601E0600 F87FFE00 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 19 0 BBX 17 24 3 -5 BITMAP 00FF00 038380 060180 0C0180 180100 380000 700000 700000 600000 E00000 E00000 E00000 E00000 E00000 E00000 700000 700000 3C1C00 0FF000 080000 060000 060000 060000 1C0000 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 15 0 BBX 17 24 0 0 BITMAP 00E000 007000 003000 001800 000000 0FFF80 038180 038100 030000 030000 070000 070000 070400 060C00 0FFC00 0E0800 0E0800 0C0000 0C0000 1C0000 1C0000 1C0600 3C0C00 FFFC00 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 15 0 BBX 17 24 0 0 BITMAP 000E00 001800 003000 006000 000000 0FFF80 038180 038100 030000 030000 070000 070000 070400 060C00 0FFC00 0E0800 0E0800 0C0000 0C0000 1C0000 1C0000 1C0600 3C0C00 FFFC00 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 15 0 BBX 17 24 0 0 BITMAP 003800 007C00 00C400 018200 000000 0FFF80 038180 038100 030000 030000 070000 070000 070400 060C00 0FFC00 0E0800 0E0800 0C0000 0C0000 1C0000 1C0000 1C0600 3C0C00 FFFC00 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 15 0 BBX 17 22 0 0 BITMAP 01C600 018E00 000000 0FFF80 038180 038100 030000 030000 070000 070000 070400 060C00 0FFC00 0E0800 0E0800 0C0000 0C0000 1C0000 1C0000 1C0600 3C0C00 FFFC00 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 9 0 BBX 11 24 1 0 BITMAP 0700 0380 0180 00C0 0000 0FE0 0380 0700 0700 0700 0700 0600 0600 0E00 0E00 0E00 0C00 0C00 1C00 1C00 1C00 1C00 3800 FE00 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 9 0 BBX 12 24 1 0 BITMAP 0070 00C0 0180 0300 0000 0FE0 0380 0700 0700 0700 0700 0600 0600 0E00 0E00 0E00 0C00 0C00 1C00 1C00 1C00 1C00 3800 FE00 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 9 0 BBX 12 24 1 0 BITMAP 01C0 03E0 0620 0C10 0000 0FE0 0380 0700 0700 0700 0700 0600 0600 0E00 0E00 0E00 0C00 0C00 1C00 1C00 1C00 1C00 3800 FE00 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 9 0 BBX 12 22 1 0 BITMAP 0E30 0C70 0000 0FE0 0380 0700 0700 0700 0700 0600 0600 0E00 0E00 0E00 0C00 0C00 1C00 1C00 1C00 1C00 3800 FE00 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 20 0 BBX 20 19 1 0 BITMAP 0FFF00 0303C0 0300E0 0700E0 070070 070070 060070 060070 0E0070 7FE070 0E0060 0E00E0 0C00E0 1C01C0 1C01C0 1C0380 180700 3C1C00 FFF000 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 20 0 BBX 22 23 1 0 BITMAP 001C40 001F80 002380 000000 0F00FC 030010 038030 07C030 05C020 04E020 04E020 047020 0C7040 083840 081840 081C40 080E40 180E80 100780 100780 100380 300180 FC0100 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 20 0 BBX 18 24 3 0 BITMAP 007000 003800 001800 000C00 000000 00FC00 038700 060380 0C01C0 1801C0 3801C0 7000C0 7000C0 6000C0 E001C0 E001C0 E00180 E00380 E00300 E00700 600E00 701C00 383000 0FC000 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 20 0 BBX 18 24 3 0 BITMAP 000700 000C00 001800 003000 000000 00FC00 038700 060380 0C01C0 1801C0 3801C0 7000C0 7000C0 6000C0 E001C0 E001C0 E00180 E00380 E00300 E00700 600E00 701C00 383000 0FC000 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 20 0 BBX 18 24 3 0 BITMAP 003800 007C00 00C400 018200 000000 00FC00 038700 060380 0C01C0 1801C0 3801C0 7000C0 7000C0 6000C0 E001C0 E001C0 E00180 E00380 E00300 E00700 600E00 701C00 383000 0FC000 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 20 0 BBX 18 23 3 0 BITMAP 007100 007E00 008E00 000000 00FC00 038700 060380 0C01C0 1801C0 3801C0 7000C0 7000C0 6000C0 E001C0 E001C0 E00180 E00380 E00300 E00700 600E00 701C00 383000 0FC000 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 20 0 BBX 18 22 3 0 BITMAP 00E300 00C700 000000 00FC00 038700 060380 0C01C0 1801C0 3801C0 7000C0 7000C0 6000C0 E001C0 E001C0 E00180 E00380 E00300 E00700 600E00 701C00 383000 0FC000 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 16 0 BBX 18 16 0 0 BITMAP 100040 1800C0 080300 040600 020C00 031800 013000 00E000 01C000 036000 063000 0C1000 180800 300400 600600 800200 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 20 0 BBX 22 19 1 0 BITMAP 003F0C 00C1D0 0380E0 070060 0E00F0 1C0370 1C0670 380C70 381870 383070 304060 3080E0 3100E0 3200C0 3C0180 380300 1C0600 2E1C00 C3F000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 19 0 BBX 18 24 4 0 BITMAP 01C000 00E000 006000 003000 000000 FF0FC0 3C0300 380200 380200 300200 300600 700400 700400 700400 600400 E00C00 E00800 E00800 E00800 E01800 E01000 603000 706000 1F8000 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 19 0 BBX 18 24 4 0 BITMAP 001C00 003000 006000 00C000 000000 FF0FC0 3C0300 380200 380200 300200 300600 700400 700400 700400 600400 E00C00 E00800 E00800 E00800 E01800 E01000 603000 706000 1F8000 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 19 0 BBX 18 24 4 0 BITMAP 007000 00F800 018800 030400 000000 FF0FC0 3C0300 380200 380200 300200 300600 700400 700400 700400 600400 E00C00 E00800 E00800 E00800 E01800 E01000 603000 706000 1F8000 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 19 0 BBX 18 22 4 0 BITMAP 038C00 031C00 000000 FF0FC0 3C0300 380200 380200 300200 300600 700400 700400 700400 600400 E00C00 E00800 E00800 E00800 E01800 E01000 603000 706000 1F8000 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 17 0 BBX 17 24 4 0 BITMAP 003800 006000 00C000 018000 000000 FE0F80 780200 380400 380800 1C1800 1C1000 0C2000 0E4000 0E8000 078000 070000 070000 060000 060000 0E0000 0E0000 0E0000 1E0000 7F8000 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 15 0 BBX 16 19 1 0 BITMAP 0FE0 0380 0300 0700 07FC 070E 0707 0607 0E07 0E07 0E06 0E0E 0C1C 1C38 1FE0 1C00 1C00 3C00 FF00 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 16 0 BBX 14 25 2 -5 BITMAP 01F0 0338 0618 0618 0E18 0C30 0C60 0C80 1D80 1D80 19C0 18E0 1870 3838 381C 300C 330C 3208 7318 73E0 6000 6000 6000 E000 E000 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 2 0 BITMAP 01C0 00E0 0060 0030 0000 03FC 041C 081C 1018 3018 3038 6038 6078 E070 E0B0 E170 E270 FC70 787C ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 2 0 BITMAP 001C 0030 0060 00C0 0000 03FC 041C 081C 1018 3018 3038 6038 6078 E070 E0B0 E170 E270 FC70 787C ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 2 0 BITMAP 0070 00F8 0188 0304 0000 03FC 041C 081C 1018 3018 3038 6038 6078 E070 E0B0 E170 E270 FC70 787C ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 2 0 BITMAP 01C4 01F8 0238 0000 03FC 041C 081C 1018 3018 3038 6038 6078 E070 E0B0 E170 E270 FC70 787C ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 2 0 BITMAP 038C 031C 0000 03FC 041C 081C 1018 3018 3038 6038 6078 E070 E0B0 E170 E270 FC70 787C ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 2 0 BITMAP 0060 0090 0090 0060 0000 03FC 041C 081C 1018 3018 3038 6038 6078 E070 E0B0 E170 E270 FC70 787C ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 23 0 BBX 20 14 2 0 BITMAP 03FDE0 043E30 081C30 101830 303830 703870 6030E0 607780 E0F800 E0B000 E13000 E63810 FC3860 701F80 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 13 0 BBX 12 19 2 -5 BITMAP 03F0 0C70 1020 3020 6000 6000 E000 E000 E000 E000 E000 E000 70C0 3F00 2000 1800 1800 1800 7000 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 13 0 BBX 11 19 2 0 BITMAP 0380 01C0 00C0 0060 0000 03C0 0CE0 1860 3060 6060 60C0 E180 EF00 F000 E000 E000 E020 70C0 3F00 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 13 0 BBX 13 19 2 0 BITMAP 0038 0060 00C0 0180 0000 03C0 0CE0 1860 3060 6060 60C0 E180 EF00 F000 E000 E000 E020 70C0 3F00 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 13 0 BBX 12 19 2 0 BITMAP 01C0 03E0 0620 0C10 0000 03C0 0CE0 1860 3060 6060 60C0 E180 EF00 F000 E000 E000 E020 70C0 3F00 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 13 0 BBX 13 17 2 0 BITMAP 0718 0638 0000 03C0 0CE0 1860 3060 6060 60C0 E180 EF00 F000 E000 E000 E020 70C0 3F00 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 8 0 BBX 7 19 3 0 BITMAP 38 1C 0C 06 00 F8 38 38 30 30 30 70 70 60 60 60 E0 E0 F8 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 8 0 BBX 9 19 3 0 BITMAP 0380 0600 0C00 1800 0000 F800 3800 3800 3000 3000 3000 7000 7000 6000 6000 6000 E000 E000 F800 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 8 0 BBX 9 19 3 0 BITMAP 0E00 1F00 3100 6080 0000 F800 3800 3800 3000 3000 3000 7000 7000 6000 6000 6000 E000 E000 F800 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 8 0 BBX 9 17 3 0 BITMAP 7180 6380 0000 F800 3800 3800 3000 3000 3000 7000 7000 6000 6000 6000 E000 E000 F800 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 15 0 BBX 13 20 2 0 BITMAP 0010 1FE0 03C0 01E0 0E60 0870 03F0 0C70 1838 3038 6038 6038 E030 E030 E030 E060 E060 E0C0 7180 3E00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 3 0 BITMAP 01C4 01F8 0238 0000 F878 38FC 399C 3A1C 3418 3C18 3838 7038 7038 6030 6030 6070 E070 E07C ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 15 0 BBX 13 19 2 0 BITMAP 0380 01C0 00C0 0060 0000 03E0 0C70 1830 3038 7038 6038 E038 E030 E070 E070 E060 E0C0 7180 3E00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 15 0 BBX 13 19 2 0 BITMAP 0038 0060 00C0 0180 0000 03E0 0C70 1830 3038 7038 6038 E038 E030 E070 E070 E060 E0C0 7180 3E00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 15 0 BBX 13 19 2 0 BITMAP 00E0 01F0 0310 0608 0000 03E0 0C70 1830 3038 7038 6038 E038 E030 E070 E070 E060 E0C0 7180 3E00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 2 0 BITMAP 0388 03F0 0470 0000 03E0 0C70 1830 3038 7038 6038 E038 E030 E070 E070 E060 E0C0 7180 3E00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 2 0 BITMAP 0718 0638 0000 03E0 0C70 1830 3038 7038 6038 E038 E030 E070 E070 E060 E0C0 7180 3E00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 16 0 BBX 15 13 2 1 BITMAP 01C0 01C0 0000 0000 0000 0000 FFFE 0000 0000 0000 0000 0700 0700 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 15 0 BBX 15 14 1 0 BITMAP 01F6 063C 0C1C 183C 187C 30DC 319C 731C 7618 7C38 7830 3060 38C0 DF00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 3 0 BITMAP 01C0 00E0 0060 0030 0000 F87C 381C 3818 3018 3018 7038 7038 7070 60B0 60B0 E170 E670 FC70 787C ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 3 0 BITMAP 001C 0030 0060 00C0 0000 F87C 381C 3818 3018 3018 7038 7038 7070 60B0 60B0 E170 E670 FC70 787C ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 3 0 BITMAP 00E0 01F0 0310 0608 0000 F87C 381C 3818 3018 3018 7038 7038 7070 60B0 60B0 E170 E670 FC70 787C ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 16 0 BBX 14 17 3 0 BITMAP 038C 031C 0000 F87C 381C 3818 3018 3018 7038 7038 7070 60B0 60B0 E170 E670 FC70 787C ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 14 0 BBX 16 24 0 -5 BITMAP 0007 000C 0018 0030 0000 7C07 1E03 0E03 0602 0706 0704 0708 0310 0330 0320 0340 0380 0300 0200 0600 0C00 1800 3000 F000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 16 0 BBX 15 23 2 -5 BITMAP 3E00 0E00 0E00 0C00 0C3C 1C7E 1CCE 1D0E 1A0E 1E0E 3C0C 380C 3818 3018 3010 7020 7040 7F80 6000 6000 E000 E000 E000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 14 0 BBX 16 22 0 -5 BITMAP 00E3 00C7 0000 7C07 1E03 0E03 0602 0706 0704 0708 0310 0330 0320 0340 0380 0300 0200 0600 0C00 1800 3000 F000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 16 25 2 -5 BITMAP 00FF 030F 0607 0606 0E06 0C06 3FCE 1C0E 1C0C 1C0C 180C 181C 381C 3818 3818 3018 3038 7038 7038 703E 6000 6000 E000 E000 E000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 11 1 3 8 BITMAP FFE0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 12 23 4 -4 BITMAP 0380 0300 0300 0300 0200 0200 E270 FFF0 0400 0400 0400 0C00 0C00 0C00 0800 1800 1800 1800 1800 3800 3800 3000 3000 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 17 24 1 0 BITMAP 008300 004600 007C00 003800 000000 0FFF80 0C0700 080600 180E00 001C00 003800 007000 007000 00E000 01C000 038000 070000 070000 0E0000 1C0000 380000 700400 700C00 FFFC00 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 20 14 3 0 BITMAP 03E1E0 0C7670 187C30 303830 703830 603060 E070C0 E07380 E07C00 E07000 E0F000 E0F010 73B860 3E1F80 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 17 22 4 0 BITMAP 071800 063800 000000 FE0F80 780200 380400 380800 1C1800 1C1000 0C2000 0E4000 0E8000 078000 070000 070000 060000 060000 0E0000 0E0000 0E0000 1E0000 7F8000 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 14 3 0 BITMAP F8 38 38 30 30 30 70 70 60 60 60 E0 E0 F8 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 9 19 1 0 BITMAP 1F00 0700 0600 0600 0E00 0E00 0C00 0C00 1F80 3C00 DC00 1800 3800 3800 3800 3000 3000 7000 7C00 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 19 1 0 BITMAP 0FE0 0380 0300 0700 0700 0700 0600 06C0 0F00 0E00 3E00 4C00 0C00 1C00 1C00 1C04 180C 381C FFF8 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 13 23 3 -4 BITMAP 00C0 01C0 0180 0180 0180 0100 3118 3FF8 0100 0300 0200 0200 0200 0200 0600 FFF0 E460 0400 0C00 0C00 0C00 0C00 1C00 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 16 25 2 -5 BITMAP 01F0 0337 0637 0620 0E00 0C00 3FFE 1C0E 1C0E 1C0C 180C 181C 381C 381C 3818 3018 3038 7038 7038 703E 6000 6000 E000 E000 E000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 2 1 BITMAP 20 10 18 18 0C 0E 0C 18 30 20 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 26 0 BBX 26 19 3 0 BITMAP 007DFFC0 0387C0C0 0603C0C0 0C018080 18018000 38038000 30038000 70038200 60030200 E007FE00 E0070600 E0070600 E0070000 E0060000 E00E0000 600E0300 701E0200 383E0600 0FDFFE00 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 26 0 BBX 24 1 2 8 BITMAP FFFFFF ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 4 8 15 BITMAP 83 46 7C 38 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 4 4 4 -4 BITMAP 70 C0 C0 70 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 4 8 15 BITMAP 1B 34 48 90 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 2 1 BITMAP 02 04 08 18 30 60 E0 60 30 30 10 08 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 3 2 9 17 BITMAP E0 E0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 4 8 15 BITMAP 81 82 FC 78 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 8 8 5 4 BITMAP 3C 7E FF FF FF FF 7E 3C ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 3 7 16 BITMAP 71 7E 8E ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 4 7 15 BITMAP 1C 3E 62 C1 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 7 4 12 BITMAP 38C0 3180 6300 6300 7380 F380 E780 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 7 5 12 BITMAP E0 E0 E0 60 40 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 13 19 1 0 BITMAP 0418 0230 03E0 01C0 0000 07C0 1C60 1860 1840 1800 1C00 0E00 0700 0380 0180 4180 C180 E380 7E00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 4 4 9 16 BITMAP 60 90 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 -5 BITMAP 38 78 78 70 30 30 30 60 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 12 23 5 -4 BITMAP 01F0 0230 0630 0C20 0C00 0C00 1C00 1C00 1800 FF00 3800 3800 3800 3000 3000 7000 7000 7000 6000 6000 E000 E000 E000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 23 10 4 9 BITMAP FFBE1E 8C8E38 081E38 181E58 1817B0 1817B0 181330 303330 303230 FCE078 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 2 0 BBX 19 19 -6 0 BITMAP 000060 0000C0 000180 000300 000600 000C00 001800 003000 006000 004000 00C000 018000 030000 060000 0C0000 180000 300000 600000 C00000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 5 4 8 15 BITMAP E0 70 30 18 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 28 0 BBX 28 19 2 0 BITMAP 0F007000 18804000 30C08000 30C10000 60C20000 60C40000 618C0000 33180000 1E300000 006781E0 00CCC630 01984C30 03304C30 06304C30 0C30D830 1830C830 3030C860 60318CC0 C01E0780 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 26 0 BBX 20 3 3 0 BITMAP E06070 E06070 E06070 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 7 4 12 BITMAP 79C0 73C0 3180 3180 6180 E700 8400 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 15 24 1 0 BITMAP 0106 008C 00F8 0070 0000 01FC 070E 0C06 1C06 1C06 1C00 1C00 0E00 0780 03C0 01E0 0070 0070 0030 4030 C030 C060 E0C0 3F00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 9 1 -5 BITMAP 79C0 7BC0 73C0 7380 3180 3180 2180 6300 C600 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 15 19 1 0 BITMAP 0106 008C 00F8 0070 0000 1FFC 1838 1070 0060 00E0 01C0 0380 0700 0E00 1C00 3800 3010 6030 FFF0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lubI24.bdf100644 1750 1750 150460 5413747535 15104 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-Medium-I-Normal--34-240-100-100-P-194-ISO8859-1 SIZE 24 100 100 FONTBOUNDINGBOX 86 39 -19 -7 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "Medium" SLANT "I" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 34 POINT_SIZE 240 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 194 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 31 FONT_DESCENT 8 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 10 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 9 0 BBX 8 25 3 0 BITMAP 07 0F 0F 0E 0E 0E 0E 0C 1C 1C 1C 18 18 18 10 10 10 30 00 00 00 00 70 F0 E0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 13 0 BBX 9 9 7 17 BITMAP E780 E300 E300 E300 6300 6300 6300 4300 4300 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 21 0 BBX 21 25 2 0 BITMAP 000C18 001830 001820 001060 003060 0030C0 0060C0 006180 3FFFF8 008300 018300 018600 030600 030C00 060C00 060800 FFFFE0 0C3000 183000 186000 306000 304000 20C000 60C000 E18000 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 21 0 BBX 18 30 4 -3 BITMAP 001000 001000 01FF00 03A3C0 0720C0 0E2080 0C2180 1C2000 1C4000 1C4000 1E4000 0F4000 0FC000 03C000 01E000 00F800 00BC00 009C00 011E00 010E00 010E00 010C00 430C00 421C00 C23800 F27000 7FC000 060000 040000 040000 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 26 0 BBX 25 25 3 0 BITMAP 03C00380 0E200600 1C300E00 18301C00 38301800 38303000 30306000 3030C000 30718000 30630000 30E60000 19CC0000 0F1C0000 0038F800 00718C00 00630600 00C70600 01860600 03060600 060E0600 0C0E0E00 180E0C00 38061C00 70073800 E001E000 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 25 0 BBX 25 25 2 0 BITMAP 000F8000 0038C000 0070E000 00E06000 00E06000 01E0E000 00E0E000 00E1C000 00E38000 00E70000 01FC0000 07700000 1C707F80 38781E00 70381C00 703C1800 F01C1800 F01E1000 F00E3000 F00F2000 F0074000 70078000 7803C000 1E0FE000 0FF1FC00 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 6 16 BITMAP 3C 3C 7C 78 18 38 30 30 E0 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 11 0 BBX 12 32 3 -6 BITMAP 0010 0060 0080 0100 0300 0600 0600 0C00 1C00 1800 3800 3800 7000 7000 7000 F000 E000 E000 E000 E000 E000 E000 E000 E000 E000 6000 6000 6000 2000 1000 1800 0800 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 11 0 BBX 11 32 0 -6 BITMAP 0200 0300 0100 0080 00C0 00C0 00C0 00E0 00E0 00E0 00E0 00E0 00E0 00E0 00E0 00E0 01E0 01C0 01C0 01C0 0380 0380 0300 0700 0600 0600 0C00 1800 1000 2000 4000 8000 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 16 0 BBX 13 12 5 13 BITMAP 0380 0300 0300 4308 7238 FDF8 0400 0F00 1980 7180 71C0 2100 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 21 0 BBX 20 21 2 0 BITMAP 001800 001800 001000 003000 003000 003000 003000 003000 002000 006000 FFFFF0 006000 004000 00C000 00C000 00C000 00C000 00C000 008000 018000 018000 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 9 0 BBX 6 12 1 -7 BITMAP 3C 3C 7C 78 78 18 38 38 30 30 60 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 21 0 BBX 20 1 2 11 BITMAP FFFFF0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 9 0 BBX 5 4 2 0 BITMAP 78 78 F0 F0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 16 0 BBX 22 32 0 -6 BITMAP 00000C 000018 000030 000030 000060 0000E0 0000C0 000180 000180 000300 000600 000600 000C00 001C00 001800 003000 003000 006000 00E000 00C000 018000 018000 030000 060000 060000 0C0000 1C0000 180000 300000 300000 600000 C00000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 21 0 BBX 18 25 4 0 BITMAP 007C00 018700 030380 060380 0C01C0 1C01C0 1801C0 3801C0 3801C0 7001C0 7001C0 7001C0 F001C0 F003C0 E00380 E00380 E00380 E00700 E00700 E00E00 700C00 701C00 303800 186000 0FC000 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 21 0 BBX 13 25 4 0 BITMAP 07F8 0078 0078 0070 0070 0070 00F0 00F0 00E0 00E0 00E0 01E0 01E0 01C0 01C0 01C0 03C0 03C0 0380 0380 0380 0780 0780 0F80 FFF8 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 21 0 BBX 19 25 3 0 BITMAP 00FE00 070780 0601C0 0601E0 0C01E0 0001E0 0001E0 0001E0 0001C0 0003C0 000780 000700 001C00 003800 006000 00C000 038000 060000 0C0000 180000 380000 700000 700000 FFFF00 FFFE00 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 21 0 BBX 17 25 4 0 BITMAP 03FC00 070F00 060780 040380 0C0380 000380 000380 000380 000700 000E00 003800 07E000 003800 001E00 000E00 000F00 000F00 000F00 000F00 000E00 401E00 401C00 C03800 E0F000 7F8000 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 21 0 BBX 18 25 2 0 BITMAP 0000C0 000180 000380 000780 000B80 001380 002700 004700 008700 010700 020700 040E00 0C0E00 180E00 300E00 600E00 FFFFC0 FFFF80 001C00 001C00 001C00 003800 003800 007800 03FF00 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 21 0 BBX 18 25 4 0 BITMAP 07FFC0 07FFC0 040000 080000 080000 080000 080000 080000 180000 1FC000 007800 003C00 001E00 000E00 000E00 000F00 000E00 000E00 000E00 001E00 401C00 403800 C07000 E0E000 7F8000 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 21 0 BBX 18 25 4 0 BITMAP 003F00 00C1C0 0380C0 0700C0 0E00C0 1C0000 1C0000 3C0000 380000 79F800 7E1E00 7C0700 F80700 F00780 F00780 E00780 E00780 E00700 E00700 E00F00 700E00 701C00 303800 1C7000 0FC000 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 21 0 BBX 19 25 5 0 BITMAP 1FFFE0 1FFFE0 0000C0 000180 000100 000200 000600 000C00 001800 003000 006000 004000 00C000 018000 030000 070000 060000 0E0000 1C0000 3C0000 380000 780000 780000 F00000 F00000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 21 0 BBX 17 25 4 0 BITMAP 00FC00 038700 070380 0E0380 0E0180 1C0180 1C0380 1E0380 1E0700 0F8C00 07D800 03F000 07F800 187C00 383E00 701F00 700F00 E00F00 E00F00 E00F00 E00E00 F00E00 701C00 387000 0FC000 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 21 0 BBX 18 25 4 0 BITMAP 007C00 018700 070380 0E0380 1C01C0 1C01C0 3C01C0 3801C0 3801C0 3801C0 3801C0 3803C0 3803C0 1C07C0 0E1B80 07E780 000780 000700 000F00 000E00 401C00 C01800 C03000 F0E000 3F8000 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 9 0 BBX 8 18 2 0 BITMAP 0F 1F 1E 1E 00 00 00 00 00 00 00 00 00 00 78 78 F8 F0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 9 0 BBX 9 25 1 -7 BITMAP 0780 0780 0F00 0F00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3C00 7C00 1C00 3800 3800 3800 3000 7000 E000 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 21 0 BBX 22 21 2 0 BITMAP 000004 00001C 000078 0001E0 000780 001C00 007000 03C000 0F0000 3C0000 F00000 3C0000 0E0000 078000 01E000 007800 003C00 000F00 0003C0 0000C0 000040 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 21 0 BBX 21 9 2 5 BITMAP 7FFFF8 000000 000000 000000 000000 000000 000000 000000 FFFFF0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 21 0 BBX 22 21 0 0 BITMAP 080000 0C0000 0F0000 03C000 00F000 007800 001E00 000780 0001C0 0000F0 00003C 0000F0 0003C0 000F00 003800 00E000 038000 1E0000 780000 E00000 800000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 16 0 BBX 13 25 5 0 BITMAP 1FC0 70F0 6078 4038 C038 0038 0038 0078 0070 00C0 0180 0300 0600 0C00 1800 3800 3800 7800 0000 0000 0000 0000 7000 F000 E000 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 29 0 BBX 26 25 4 0 BITMAP 000FE000 00701C00 01800600 03000100 04000080 080000C0 100FF040 3010E040 2060E040 40C0E040 4080E040 C180C040 8181C040 8383C040 8382C080 8305C180 838D8300 8399C600 41E0F800 40000000 20000000 30000000 18000000 06010000 01FE0000 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 25 0 BBX 25 25 0 0 BITMAP 00004000 0000C000 0000E000 0001E000 0002E000 0002E000 0004E000 0004F000 0008F000 0010F000 00107000 00207000 00607800 00407800 00807800 00807800 01FFF800 03003800 02003C00 06003C00 04003C00 08001C00 18001E00 38001E00 FE00FF80 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 21 0 BBX 21 25 1 0 BITMAP 07FFC0 01E1F0 01E078 01E078 01E078 01C078 01C078 01C070 03C070 03C0E0 03C1C0 038700 03FE00 078780 0781C0 0700E0 0700F0 0700F0 0F00F0 0F00E0 0E00E0 0E01E0 1E03C0 3E0F80 FFFC00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 24 0 BBX 23 25 4 0 BITMAP 000FF8 00783E 01E00E 03800C 07000C 0E000C 1E0000 3C0000 3C0000 780000 780000 700000 F00000 F00000 F00000 F00000 F00000 F00000 F00000 700000 780000 380000 3C0060 0F03C0 03FC00 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 26 0 BBX 26 25 1 0 BITMAP 07FFF800 01E03E00 01E00F00 01E00780 01C00380 01C003C0 01C003C0 03C003C0 03C003C0 038003C0 038003C0 038003C0 078003C0 07800380 07800380 07000780 07000700 0F000F00 0F000E00 0F001E00 0E003C00 0E007800 1E00F000 3F03C000 FFFE0000 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 19 0 BBX 22 25 1 0 BITMAP 07FFFC 00E00C 00E018 01E018 01E000 01E000 01C000 01C000 01C000 03C000 03C040 03C0C0 03FFC0 078080 078080 078000 070000 070000 0F0000 0F0000 0F0000 0E0060 1E0060 3F00C0 FFFFC0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 19 0 BBX 22 25 1 0 BITMAP 07FFFC 00E00C 00E018 01E018 01E000 01E000 01C000 01C000 03C000 03C000 03C040 03C0C0 03FF80 078080 078080 078000 070000 070000 0F0000 0F0000 0F0000 0E0000 1E0000 3F0000 FFE000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 26 0 BBX 23 25 4 0 BITMAP 001FF8 00701E 01E00C 03800C 07000C 0E0000 1E0000 3C0000 3C0000 780000 780000 700000 F00000 F00000 F007FE F000F0 F000F0 F000E0 F000E0 7001E0 7801E0 7801E0 3C01C0 0F0380 03FC00 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 26 0 BBX 30 25 1 0 BITMAP 07FE0FFC 01F001F0 01E001E0 01E001C0 01E001C0 01C003C0 01C003C0 01C00380 03C00380 03C00380 03C00780 03800780 03FFFF00 07800700 07800700 07800F00 07000F00 07000E00 0F000E00 0F000E00 0F001E00 0E001E00 1E001E00 3E003E00 FFC1FF80 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 11 0 BBX 15 25 1 0 BITMAP 07FE 00F8 00F0 00E0 01E0 01E0 01C0 01C0 01C0 03C0 03C0 0380 0380 0380 0780 0780 0700 0700 0F00 0F00 0F00 0E00 1E00 3E00 FFC0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 14 0 BBX 19 31 0 -6 BITMAP 007FE0 000F80 000F00 000E00 000E00 001E00 001E00 001E00 001C00 001C00 001C00 003C00 003C00 003C00 003800 003800 007800 007800 007800 007000 007000 007000 00F000 00F000 00E000 00E000 60C000 61C000 E18000 E30000 FC0000 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 24 0 BBX 26 25 1 0 BITMAP 07FE1FC0 01F00700 01E00C00 01E01800 01E03000 01C06000 01C08000 01C10000 03C20000 03CC0000 03980000 03B80000 03F80000 07BC0000 079E0000 079E0000 070F0000 07078000 0F078000 0F03C000 0F01E000 0E01E000 1E00F000 3E00F800 FFC3FE00 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 19 0 BBX 19 25 1 0 BITMAP 07FE00 01F000 01E000 01E000 01E000 01C000 01C000 01C000 03C000 03C000 038000 038000 038000 078000 078000 070000 070000 070000 0F0000 0F0000 0F0000 0E0060 1E0060 3E00C0 FFFFC0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 29 0 BBX 33 25 1 0 BITMAP 07E0003F80 00F0003E00 00F0007C00 01F000F800 01F000B800 01F8013800 01F8017800 0138027000 0338067000 033C047000 033C087000 031C08F000 021C10E000 061E30E000 061E20E000 060E40E000 060EC1E000 040E81C000 0C0F81C000 0C0701C000 0C0601C000 0C0603C000 1C0003C000 3C0007C000 FF001FF000 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 26 0 BBX 29 25 1 0 BITMAP 07C003F8 01E000E0 01E000C0 01F000C0 01F80080 01780080 013C0080 033C0180 031E0180 031E0100 020F0100 02070100 06078300 06038300 0603C200 0601E200 0401E200 0400F600 0C00F600 0C007E00 0C003C00 08003C00 18001C00 38001C00 FF000C00 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 27 0 BBX 24 25 4 0 BITMAP 001FC0 007070 01C03C 03801C 07000E 0E000E 1C000F 3C000F 38000F 78000F 78000F 70000F F0000F F0000E F0001E F0001E F0001C F0003C F00038 F00070 7000E0 7801C0 3C0380 0E0E00 03F800 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 20 0 BBX 22 25 1 0 BITMAP 07FFE0 01E078 01E038 01E03C 01E03C 01C03C 01C03C 01C03C 03C038 03C078 038070 0380F0 0381C0 078780 07FC00 078000 070000 070000 0F0000 0F0000 0F0000 0E0000 1E0000 3E0000 FFC000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 27 0 BBX 27 32 4 -7 BITMAP 001FC000 00707000 01C03800 03801C00 07001E00 0E000E00 1C000E00 3C000F00 38000F00 78000F00 70000F00 70000F00 F0000E00 F0000E00 F0001E00 F0001E00 F0001C00 F0003C00 F0003800 F0007800 7000F000 7801E000 3C03E000 1E0F8000 03FF0000 000C0000 00080000 00060000 00010000 0000E020 00003FC0 00000F80 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 23 0 BBX 23 25 1 0 BITMAP 07FFE0 00E0F8 00E03C 00E03C 01E01C 01E03C 01C03C 01C03C 01C038 03C078 03C0F0 0383C0 03FF00 078F00 078F00 078780 070780 0703C0 0F03C0 0F01E0 0F01E0 0E00F0 1E00F0 3E0078 FFC07E ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 19 0 BBX 20 25 2 0 BITMAP 007F80 01C1F0 038060 070060 070060 0F00E0 0F0000 0F0000 0F0000 078000 03C000 01F000 00F800 007C00 003E00 001F00 000F00 000F00 000F00 600F00 600E00 E00E00 E01C00 F03800 1FC000 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 23 0 BBX 22 25 5 0 BITMAP 7FFFFC 60780C C07808 C07018 007000 007000 00F000 00F000 00E000 00E000 00E000 01E000 01E000 01E000 01C000 01C000 03C000 03C000 03C000 038000 038000 078000 078000 0F8000 7FF000 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 25 0 BBX 24 25 5 0 BITMAP FFC0FF 1F001C 1E0018 1C0010 1C0030 3C0030 3C0030 380020 380020 380060 780060 780060 700040 700040 7000C0 F000C0 F000C0 E00080 E00180 E00180 F00300 700200 780600 3C1800 0FE000 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 22 0 BBX 24 25 4 0 BITMAP FF803F 3C000C 3C0008 3C0010 1C0010 1C0020 1C0020 1E0040 1E00C0 1E0080 0E0100 0E0100 0F0200 0F0600 0F0400 070800 070800 071000 07B000 07A000 03C000 03C000 038000 038000 030000 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 30 0 BBX 31 25 4 0 BITMAP FF8180FE 3C018018 3C038030 3C038020 3C078020 3C078040 3C0FC040 3C0BC080 1C1BC080 1C13C100 1C11C100 1C21C200 1C21C200 1C41C400 1C41C400 1C81C800 1C81C800 1D01D000 1D01D000 1E01E000 1E01E000 1C01C000 1C01C000 18018000 18008000 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 21 0 BBX 27 25 0 0 BITMAP 03FE0FE0 01F00380 00F00200 00780400 00780800 00381800 003C1000 003C2000 001E4000 001E8000 000F0000 000F0000 000F0000 000F8000 00178000 0033C000 0063C000 00C1C000 0181E000 0101E000 0200F000 0400F000 0C007800 38007800 FE03FE00 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 23 0 BBX 23 25 4 0 BITMAP FF80FE 3E0038 3E0030 1E0060 1E0040 0F0080 0F0100 070200 078600 078400 038800 03D000 01E000 01E000 01C000 01C000 01C000 03C000 03C000 038000 038000 078000 078000 0F8000 3FF000 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 21 0 BBX 22 25 2 0 BITMAP 07FFFC 070038 060078 0600F0 0E01E0 0001C0 000380 000780 000F00 001E00 001C00 003C00 007800 00F000 01E000 01E000 03C000 078000 0F0000 0E0000 1E0000 3C0060 7800C0 F001C0 FFFFC0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 11 0 BBX 13 32 1 -6 BITMAP 03F8 0380 0380 0380 0700 0700 0700 0700 0700 0E00 0E00 0E00 0E00 0E00 1C00 1C00 1C00 1C00 1C00 3800 3800 3800 3800 3800 7000 7000 7000 7000 7000 E000 E000 FE00 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 16 0 BBX 9 32 5 -6 BITMAP C000 C000 4000 6000 6000 6000 6000 2000 3000 3000 3000 1000 1800 1800 1800 1800 0C00 0C00 0C00 0C00 0400 0600 0600 0600 0600 0300 0300 0300 0300 0100 0180 0180 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 11 0 BBX 13 32 0 -6 BITMAP 03F8 0038 0038 0070 0070 0070 0070 0070 00E0 00E0 00E0 00E0 00E0 01C0 01C0 01C0 01C0 01C0 0380 0380 0380 0380 0380 0700 0700 0700 0700 0700 0E00 0E00 0E00 FE00 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 21 0 BBX 19 20 1 4 BITMAP 000400 000C00 000C00 001A00 003200 003200 006300 00C100 00C100 018100 030080 030080 060080 0C00C0 0C0040 180040 300040 300020 600020 E00020 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 17 0 BBX 14 2 2 -3 BITMAP FFFC FFFC ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 6 16 BITMAP 0C 38 30 70 70 60 78 F8 F0 F0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 21 0 BBX 18 18 3 0 BITMAP 00FFC0 0107C0 0203C0 040380 0C0380 180380 380780 380780 700700 700F00 F01F00 F01F00 F02F00 F06E00 F0CE00 F18E00 7F0E00 3C1FC0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 20 0 BBX 18 26 3 0 BITMAP 3F0000 070000 070000 0F0000 0F0000 0E0000 0E0000 0E0000 0E0F00 1E1F80 1C63C0 1CC3C0 1C83C0 1D03C0 3E03C0 3A03C0 3C0380 380380 380700 780700 700600 700C00 700800 701000 F82000 FFC000 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 17 0 BBX 15 18 3 0 BITMAP 00FE 030E 0406 0C06 1806 3800 7000 7000 7000 F000 F000 F000 F000 F000 F000 7008 3830 1FC0 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 21 0 BBX 20 26 3 0 BITMAP 0007F0 0000F0 0000E0 0000E0 0000E0 0000E0 0001E0 0001C0 00FFC0 0103C0 0201C0 0403C0 0C0380 180380 380380 380380 700780 700F00 F00F00 F01700 F03700 F06F00 F0CE00 F18E00 7F0E00 3C1FC0 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 18 0 BBX 15 18 3 0 BITMAP 00F8 031C 041E 0C0E 181E 381C 701C 7038 7070 F1E0 FF00 E000 E000 F000 F006 700C 3C30 1FC0 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 13 0 BBX 17 34 2 -7 BITMAP 001F80 006180 00C180 01C100 018300 038000 038000 078000 070000 3FF800 070000 0F0000 0E0000 0E0000 0E0000 0E0000 1E0000 1C0000 1C0000 1C0000 1C0000 3C0000 3C0000 380000 380000 380000 780000 780000 700000 700000 700000 F00000 F00000 E00000 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 20 0 BBX 19 25 2 -7 BITMAP 007FE0 0083E0 0101E0 0201C0 0601C0 0E01C0 0C01C0 1C03C0 3C0380 380780 380F80 780B80 781F80 783700 786700 38C700 3F8700 1E0E00 000E00 000E00 800C00 C01C00 601800 7C2000 3FC000 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 21 0 BBX 18 26 3 0 BITMAP 3F0000 070000 070000 0F0000 0F0000 0E0000 0E0000 0E0000 1E0F00 1E1F80 1C73C0 1CC3C0 1D8380 3D0380 3E0380 3E0380 3C0780 380700 780700 780700 700700 700F00 700E00 F00E00 F00E00 E01FC0 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 10 0 BBX 8 25 4 0 BITMAP 07 0F 0E 00 00 00 00 FE 1C 1C 1C 1C 3C 38 38 38 38 78 70 70 70 70 F0 F0 FC ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 12 0 BBX 17 32 -2 -7 BITMAP 000380 000780 000700 000000 000000 000000 000000 007F00 000E00 000E00 000E00 001E00 001E00 001C00 001C00 001C00 003C00 003C00 003800 003800 003800 007800 007800 007000 007000 00F000 00E000 40E000 40C000 C18000 E30000 FC0000 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 19 0 BBX 17 26 3 0 BITMAP 3F0000 070000 070000 0F0000 0F0000 0E0000 0E0000 0E0000 1E0780 1E0700 1C0700 1C0E00 1C1C00 3C3000 3CC000 390000 3F8000 3B8000 7BC000 79E000 71E000 70F000 707800 F07C00 F03E00 E01F80 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 10 0 BBX 9 26 3 0 BITMAP 3F80 0780 0700 0700 0700 0F00 0F00 0E00 0E00 1E00 1E00 1E00 1C00 1C00 3C00 3C00 3C00 3800 3800 7800 7800 7000 7000 7000 F000 FE00 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 32 0 BBX 29 18 3 0 BITMAP FE0F01E0 1E1F83F0 1C738E70 1CC39C78 1D839870 1D03B070 3F03E070 3E07C070 3C0780F0 380780E0 380700E0 780700E0 700F01E0 700E01E0 700E01C0 700E01C0 F01E01C0 E01E03F8 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 21 0 BBX 18 18 3 0 BITMAP FE0F00 1E1F80 1C73C0 1CC3C0 1D8380 3D0380 3E0380 3E0380 3C0780 380700 780700 780700 700700 700F00 700E00 F00E00 F00E00 E01FC0 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 19 0 BBX 17 18 3 0 BITMAP 00FC00 030E00 0E0700 1C0700 1C0780 380780 780780 700780 700780 F00700 F00700 F00F00 F00E00 F01C00 F01800 703000 78E000 1F8000 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 21 0 BBX 20 25 2 -7 BITMAP 3F03C0 0F0FE0 0F18F0 0F30F0 0F60F0 0EC0F0 0E80F0 0F00F0 1E00E0 1E00E0 1C01C0 1C01C0 1C0180 3C0300 380200 380400 3C0800 3FF000 780000 700000 700000 700000 700000 F00000 E00000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 20 0 BBX 18 25 3 -7 BITMAP 00FFC0 0107C0 0203C0 040380 0C0380 180380 380380 380780 700700 700F00 F01F00 F01700 F02F00 F06E00 F0CE00 F18E00 7F0E00 3C1E00 001C00 001C00 001C00 001C00 003C00 003800 003800 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 4 0 BITMAP FE0E 1C1C 1C7C 1CF8 1CC0 3D00 3A00 3C00 3C00 3800 7800 7800 7000 7000 7000 F000 F000 E000 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 2 0 BITMAP 03F8 061C 0C0C 1C0C 1C08 1E00 0F00 0F80 07C0 03E0 01E0 00F0 0070 4070 C070 C070 F0E0 3F80 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 12 0 BBX 11 23 4 0 BITMAP 0200 0E00 1E00 1E00 1C00 FFE0 1C00 1C00 3C00 3800 3800 3800 7800 7800 7000 7000 7000 F000 F000 F000 7000 7000 3E00 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 21 0 BBX 18 18 3 0 BITMAP FE1FC0 1C03C0 1C0380 1C0380 3C0380 380380 380780 380700 380700 780F00 700F00 701F00 702E00 704E00 F08E00 F10E00 7E1E00 381FC0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 19 0 BBX 19 18 2 0 BITMAP FC01E0 3E00E0 1E00E0 0F00E0 0F00E0 0F00C0 070180 070100 078300 038600 038C00 038800 039000 03A000 03C000 038000 038000 030000 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 27 0 BBX 27 18 2 0 BITMAP FC0201E0 3C0300E0 1C0700E0 1E0700C0 0E0781C0 0E0F8180 0E0B8100 0F1B8300 0713C200 0731C400 0761CC00 0741C800 07C1D000 0781F000 0781E000 0701C000 06018000 06018000 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 17 0 BBX 17 18 2 0 BITMAP 7E0700 1E0380 0F0300 070300 078600 038800 03D000 01E000 01E000 01E000 06F000 0CF000 187800 307800 603800 E03C00 E01E00 F01F80 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 19 0 BBX 21 25 0 -7 BITMAP 3F0078 0F8038 078038 038038 038030 03C070 01C060 01C0C0 01C080 01C100 01E300 00E600 00E400 00E800 00F000 00F000 00E000 00C000 008000 010000 030000 0E0000 1C0000 380000 F80000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 18 0 BBX 18 18 2 0 BITMAP 0FFFC0 0C0380 080700 180F00 001E00 003C00 007800 00F000 00E000 01C000 038000 078000 0F0000 1E0000 3C0300 780300 700600 FFFE00 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 11 0 BBX 12 32 3 -6 BITMAP 00F0 0180 0300 0300 0700 0700 0700 0700 0700 0700 0600 0600 0600 0C00 0C00 1800 E000 3000 1800 1800 1800 3800 3800 7800 7000 7000 E000 E000 E000 E000 7000 1C00 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 8 0 BBX 8 32 2 -6 BITMAP 03 07 07 06 06 06 06 0E 0C 0C 0C 0C 0C 1C 18 18 18 18 38 30 30 30 30 30 70 60 60 60 60 E0 E0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 11 0 BBX 12 32 3 -6 BITMAP 0380 00C0 0060 0060 0070 00E0 00E0 01E0 01C0 01C0 0180 0380 0180 0180 00C0 0070 0180 0300 0600 0600 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0C00 1C00 3800 E000 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 21 0 BBX 21 8 2 6 BITMAP 0F0000 1FC008 23E018 60F010 407830 C03C20 801FE0 800780 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 9 0 BBX 8 25 2 -7 BITMAP 07 0F 0E 00 00 00 00 0C 08 08 08 18 18 18 38 38 38 30 70 70 70 70 F0 F0 E0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 21 0 BBX 15 25 5 0 BITMAP 0020 0020 0060 01FE 0346 0E46 1C46 3840 3080 7080 7080 E080 E080 E100 E100 E100 E100 F100 7108 7A38 1FE0 0200 0200 0600 0400 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 21 0 BBX 19 25 4 0 BITMAP 000FC0 0010E0 002060 006060 00E040 00C000 01C000 01C000 03C000 03C000 038000 038000 3FF800 038000 078000 070000 070000 070000 0F0000 0E0000 0C0000 180000 700000 FFFE00 FFFC00 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 21 0 BBX 23 22 1 1 BITMAP 080002 080004 040008 023E10 02C1A0 0180C0 030040 060060 060060 0C0060 0C0060 0C0060 0C0040 0C00C0 0C0080 040180 060300 0F0780 19F880 200040 400020 800020 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 21 0 BBX 23 25 4 0 BITMAP FF807E 3C0018 1C0030 1E0060 0E00C0 0F0180 070300 078600 038C00 03D800 03F000 01E000 3FFF00 01C000 01C000 01C000 03C000 7FFE00 038000 038000 038000 078000 078000 0F8000 3FE000 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 8 0 BBX 8 32 2 -6 BITMAP 03 07 07 06 06 06 06 0E 0C 0C 0C 0C 1C 1C 18 00 00 18 38 38 30 30 30 30 70 60 60 60 60 E0 E0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 21 0 BBX 18 32 3 -7 BITMAP 007F80 0181C0 030080 060080 0E0000 0E0000 0E0000 0E0000 0F0000 07C000 03F000 05FC00 0C7E00 181F00 180700 380700 380700 3C0700 1F0600 1FC400 07E800 03F800 007C00 003E00 000E00 000E00 000E00 400C00 C01C00 C03800 F07000 3FC000 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 19 0 BBX 10 2 10 23 BITMAP E1C0 E3C0 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 29 0 BBX 26 25 4 0 BITMAP 007F0000 0180E000 06003800 0C000C00 10000600 300FC200 60306100 40606180 40C04080 81800080 81800080 83800080 838000C0 83800080 83800080 83800080 43800080 41800180 60E08100 307F0200 10000600 0C000C00 06003800 0180E000 007F0000 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 4 11 BITMAP 03F8 0C78 1838 3070 3070 7070 6070 E0F0 E1F0 E360 E2E0 E4E0 F8E0 70F8 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 18 0 BBX 16 16 3 1 BITMAP 0081 0182 0306 060C 0C18 1830 38E0 71C0 F1C0 70E0 30E0 3870 1830 0C10 0C18 0408 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 21 0 BBX 20 9 3 5 BITMAP FFFFF0 000070 000070 000060 000060 000060 000060 000060 0000E0 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 11 0 BBX 8 2 3 10 BITMAP FF FF ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 21 0 BBX 13 16 7 9 BITMAP 0F80 10C0 2020 4F90 4450 8448 84C8 8788 8908 8908 8908 58D0 4010 2020 18C0 0F80 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 19 0 BBX 10 1 9 24 BITMAP FFC0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 9 0 BBX 6 6 6 19 BITMAP 70 C8 84 84 C8 70 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 21 0 BBX 22 21 0 0 BITMAP 000600 000400 000C00 000C00 000C00 000C00 000C00 000800 3FFFFC 001800 001800 001800 001000 003000 003000 003000 003000 000000 000000 000000 FFFFF0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 -18 10 BITMAP 0F80 18C0 1060 1060 0060 00C0 00C0 0180 0200 0C00 1000 2000 6000 C000 FF80 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 -19 10 BITMAP 1F80 10C0 10C0 00C0 00C0 0180 1E00 0300 0180 0180 0180 0180 8180 C700 FC00 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 19 0 BBX 8 5 12 21 BITMAP 0F 1C 38 60 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 23 0 BBX 19 24 3 -6 BITMAP 7F07E0 0E01E0 0E01E0 0E01C0 0E01C0 1E01C0 1C01C0 1C03C0 1C0380 1C0780 3C0780 380B80 381F80 383700 387700 3CE700 7FC700 778FE0 700000 700000 700000 F00000 E00000 E00000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 21 0 BBX 14 31 5 -6 BITMAP 1FFC 3F84 7F84 FF8C FF8C FF88 FF08 FF08 7F18 7F18 3F10 1F10 0610 0230 0230 0220 0620 0420 0420 0460 0440 0C40 0C40 0840 08C0 08C0 0880 1880 1080 1080 1180 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 21 0 BBX 4 3 10 9 BITMAP 70 F0 F0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 19 0 BBX 5 8 6 -7 BITMAP 10 20 70 38 18 18 38 F0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 12 0 BBX 8 15 -19 10 BITMAP 1F 03 06 06 06 06 06 0C 0C 0C 0C 0C 18 18 FF ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 14 0 BBX 13 14 4 11 BITMAP 03E0 0470 1838 3038 3038 6038 6038 E030 E030 E060 E060 E0C0 7100 3E00 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 18 0 BBX 16 16 3 1 BITMAP 1020 1830 0830 0C18 0E1C 070C 070E 038F 038E 071C 0C18 1830 3060 60C0 4180 8100 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 28 0 BBX 27 25 6 0 BITMAP 1F0000E0 030001C0 06000380 06000700 06000E00 06000C00 06001800 0C003000 0C006000 0C00C000 0C01C0C0 0C038180 18070380 180E0580 FF1C0980 00181180 00302100 00604300 00C08300 0181FFC0 03800200 07000200 0E000600 1C000600 38001F80 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 28 0 BBX 27 25 6 0 BITMAP 1F0000E0 030001C0 06000380 06000700 06000E00 06000C00 06001800 0C003000 0C006000 0C00C000 0C01DF00 0C03B180 180720C0 180E20C0 FF1C00C0 00180180 00300180 00600300 00C00400 01801800 03802000 07004000 0E00C000 1C018000 3801FF00 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 28 0 BBX 27 25 6 0 BITMAP 1F8000E0 10C001C0 10C00380 00C00700 00C00E00 01800C00 1E001800 03003000 01806000 0180C000 0181C0C0 01838180 81870380 C70E0580 FC1C0980 00181180 00302100 00604300 00C08300 0181FFC0 03800200 07000200 0E000600 1C000600 38001F80 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 16 0 BBX 13 25 1 -7 BITMAP 0038 0038 0078 0000 0000 0000 0000 0070 0070 00E0 00C0 0080 0100 0200 0400 1800 3800 7000 F000 F000 F018 F018 7018 7870 1FC0 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 25 0 BBX 25 32 0 0 BITMAP 0001E000 0000E000 00007000 00003000 00001800 00000000 00000000 00004000 0000C000 0000E000 0001E000 0002E000 0002E000 0004E000 0004F000 0008F000 0010F000 00107000 00207000 00607800 00407800 00807800 00807800 01FFF800 03003800 02003C00 06003C00 04003C00 08001C00 18001E00 38001E00 FE00FF80 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 25 0 BBX 25 32 0 0 BITMAP 00000F00 00001C00 00003800 00006000 0000C000 00000000 00000000 00004000 0000C000 0000E000 0001E000 0002E000 0002E000 0004E000 0004F000 0008F000 0010F000 00107000 00207000 00607800 00407800 00807800 00807800 01FFF800 03003800 02003C00 06003C00 04003C00 08001C00 18001E00 38001E00 FE00FF80 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 25 0 BBX 25 32 0 0 BITMAP 0000F800 0001F800 00039C00 00070C00 000C0600 00000000 00000000 00004000 0000C000 0000E000 0001E000 0002E000 0002E000 0004E000 0004F000 0008F000 0010F000 00107000 00207000 00607800 00407800 00807800 00807800 01FFF800 03003800 02003C00 06003C00 04003C00 08001C00 18001E00 38001E00 FE00FF80 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 25 0 BBX 25 31 0 0 BITMAP 0001C100 0003F300 00067E00 00043C00 00000000 00000000 00004000 0000C000 0000E000 0001E000 0002E000 0002E000 0004E000 0004F000 0008F000 0010F000 00107000 00207000 00607800 00407800 00807800 00807800 01FFF800 03003800 02003C00 06003C00 04003C00 08001C00 18001E00 38001E00 FE00FF80 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 25 0 BBX 25 29 0 0 BITMAP 00070E00 00071E00 00000000 00000000 00004000 0000C000 0000E000 0001E000 0002E000 0002E000 0004E000 0004F000 0008F000 0010F000 00107000 00207000 00607800 00407800 00807800 00807800 01FFF800 03003800 02003C00 06003C00 04003C00 08001C00 18001E00 38001E00 FE00FF80 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 25 0 BBX 25 32 0 0 BITMAP 00007000 00008800 00008800 00008800 00007000 00000000 00000000 00004000 0000C000 0000E000 0001E000 0002E000 0002E000 0004E000 0004F000 0008F000 0010F000 00107000 00207000 00607800 00407800 00807800 00807800 01FFF800 03003800 02003C00 06003C00 04003C00 08001C00 18001E00 38001E00 FE00FF80 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 31 0 BBX 34 25 0 0 BITMAP 00000FFFC0 00001E00C0 00002E0180 00007E0180 00005E0000 00009E0000 00011C0000 00031C0000 00021C0000 00043C0000 000C3C0400 00183C0C00 00103FFC00 0020380C00 0060780800 00C0780000 01FFF80000 0100700000 0300700000 0600F00000 0C00F00000 0C00F00600 1800F00600 3001F00C00 FC0FFFFC00 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 24 0 BBX 23 32 4 -7 BITMAP 000FF8 00783E 01E00E 03800C 07000C 0E000C 1E0000 3C0000 3C0000 780000 780000 700000 F00000 F00000 F00000 F00000 F00000 F00000 F00000 700000 780000 380000 3C0060 0F03C0 03FC00 010000 038000 01C000 00C000 00C000 01C000 078000 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 19 0 BBX 22 32 1 0 BITMAP 001E00 000E00 000700 000300 000180 000000 000000 07FFFC 00E00C 00E018 01E018 01E000 01E000 01C000 01C000 01C000 03C000 03C040 03C0C0 03FFC0 078080 078080 078000 070000 070000 0F0000 0F0000 0F0000 0E0060 1E0060 3F00C0 FFFFC0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 19 0 BBX 22 32 1 0 BITMAP 0000F0 0001C0 000380 000600 000C00 000000 000000 07FFFC 00E00C 00E018 01E018 01E000 01E000 01C000 01C000 01C000 03C000 03C040 03C0C0 03FFC0 078080 078080 078000 070000 070000 0F0000 0F0000 0F0000 0E0060 1E0060 3F00C0 FFFFC0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 19 0 BBX 22 32 1 0 BITMAP 0007C0 000FC0 001CE0 003860 006030 000000 000000 07FFFC 00E00C 00E018 01E018 01E000 01E000 01C000 01C000 01C000 03C000 03C040 03C0C0 03FFC0 078080 078080 078000 070000 070000 0F0000 0F0000 0F0000 0E0060 1E0060 3F00C0 FFFFC0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 19 0 BBX 22 29 1 0 BITMAP 003870 0038F0 000000 000000 07FFFC 00E00C 00E018 01E018 01E000 01E000 01C000 01C000 01C000 03C000 03C040 03C0C0 03FFC0 078080 078080 078000 070000 070000 0F0000 0F0000 0F0000 0E0060 1E0060 3F00C0 FFFFC0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 11 0 BBX 15 32 1 0 BITMAP 01E0 00E0 0070 0030 0018 0000 0000 07FE 00F8 00F0 00E0 01E0 01E0 01C0 01C0 01C0 03C0 03C0 0380 0380 0380 0780 0780 0700 0700 0F00 0F00 0F00 0E00 1E00 3E00 FFC0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 11 0 BBX 16 32 1 0 BITMAP 000F 001C 0038 0060 00C0 0000 0000 07FE 00F8 00F0 00E0 01E0 01E0 01C0 01C0 01C0 03C0 03C0 0380 0380 0380 0780 0780 0700 0700 0F00 0F00 0F00 0E00 1E00 3E00 FFC0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 11 0 BBX 16 32 1 0 BITMAP 007C 00FC 01CE 0386 0603 0000 0000 07FE 00F8 00F0 00E0 01E0 01E0 01C0 01C0 01C0 03C0 03C0 0380 0380 0380 0780 0780 0700 0700 0F00 0F00 0F00 0E00 1E00 3E00 FFC0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 11 0 BBX 16 29 1 0 BITMAP 0387 038F 0000 0000 07FE 00F8 00F0 00E0 01E0 01E0 01C0 01C0 01C0 03C0 03C0 0380 0380 0380 0780 0780 0700 0700 0F00 0F00 0F00 0E00 1E00 3E00 FFC0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 26 0 BBX 26 25 1 0 BITMAP 07FFF800 01E03E00 01E00F00 01E00780 01C00380 01C003C0 01C003C0 03C003C0 03C003C0 03C003C0 038003C0 038003C0 3FFE03C0 07800380 07800380 07000780 07000700 0F000F00 0F000E00 0F001E00 0E003C00 0E007800 1E00F000 3F03C000 FFFE0000 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 26 0 BBX 29 31 1 0 BITMAP 0001C100 0003F300 00067E00 00043C00 00000000 00000000 07C003F8 01E000E0 01E000C0 01F000C0 01F80080 01780080 013C0080 033C0180 031E0180 031E0100 020F0100 02070100 06078300 06038300 0603C200 0601E200 0401E200 0400F600 0C00F600 0C007E00 0C003C00 08003C00 18001C00 38001C00 FF000C00 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 27 0 BBX 24 32 4 0 BITMAP 000F00 000700 000380 000180 0000C0 000000 000000 001FC0 007070 01C03C 03801C 07000E 0E000E 1C000F 3C000F 38000F 78000F 78000F 70000F F0000F F0000E F0001E F0001E F0001C F0003C F00038 F00070 7000E0 7801C0 3C0380 0E0E00 03F800 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 27 0 BBX 24 32 4 0 BITMAP 000078 0000E0 0001C0 000300 000600 000000 000000 001FC0 007070 01C03C 03801C 07000E 0E000E 1C000F 3C000F 38000F 78000F 78000F 70000F F0000F F0000E F0001E F0001E F0001C F0003C F00038 F00070 7000E0 7801C0 3C0380 0E0E00 03F800 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 27 0 BBX 24 32 4 0 BITMAP 0007C0 000FC0 001CE0 003860 006030 000000 000000 001FC0 007070 01C03C 03801C 07000E 0E000E 1C000F 3C000F 38000F 78000F 78000F 70000F F0000F F0000E F0001E F0001E F0001C F0003C F00038 F00070 7000E0 7801C0 3C0380 0E0E00 03F800 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 27 0 BBX 24 31 4 0 BITMAP 000E08 001F98 0033F0 0021E0 000000 000000 001FC0 007070 01C03C 03801C 07000E 0E000E 1C000F 3C000F 38000F 78000F 78000F 70000F F0000F F0000E F0001E F0001E F0001C F0003C F00038 F00070 7000E0 7801C0 3C0380 0E0E00 03F800 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 27 0 BBX 24 29 4 0 BITMAP 003870 0038F0 000000 000000 001FC0 007070 01C03C 03801C 07000E 0E000E 1C000F 3C000F 38000F 78000F 78000F 70000F F0000F F0000E F0001E F0001E F0001C F0003C F00038 F00070 7000E0 7801C0 3C0380 0E0E00 03F800 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 21 0 BBX 23 21 1 0 BITMAP 080002 08000E 04001C 020038 030070 0100C0 008180 004300 006600 002C00 003800 007800 00EC00 01C400 030200 060100 0C0180 180080 700040 E00020 400020 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 27 0 BBX 28 25 2 0 BITMAP 0007F030 001C1E60 00700FC0 00E00780 01C00380 038007C0 07000BC0 0F0013C0 0E0061C0 1E00C3C0 1E0183C0 1C0303C0 3C0603C0 3C0C03C0 3C180380 3C300780 3C600700 3CC00F00 3D800E00 3F001C00 1E003800 0E007000 1F00E000 27838000 C0FE0000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 25 0 BBX 24 32 5 0 BITMAP 007800 003800 001C00 000C00 000600 000000 000000 FFC0FF 1F001C 1E0018 1C0010 1C0030 3C0030 3C0030 380020 380020 380060 780060 780060 700040 700040 7000C0 F000C0 F000C0 E00080 E00180 E00180 F00300 700200 780600 3C1800 0FE000 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 25 0 BBX 24 32 5 0 BITMAP 0001E0 000380 000700 000C00 001800 000000 000000 FFC0FF 1F001C 1E0018 1C0010 1C0030 3C0030 3C0030 380020 380020 380060 780060 780060 700040 700040 7000C0 F000C0 F000C0 E00080 E00180 E00180 F00300 700200 780600 3C1800 0FE000 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 25 0 BBX 24 32 5 0 BITMAP 001F00 003F00 007380 00E180 0180C0 000000 000000 FFC0FF 1F001C 1E0018 1C0010 1C0030 3C0030 3C0030 380020 380020 380060 780060 780060 700040 700040 7000C0 F000C0 F000C0 E00080 E00180 E00180 F00300 700200 780600 3C1800 0FE000 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 25 0 BBX 24 29 5 0 BITMAP 00E1C0 00E3C0 000000 000000 FFC0FF 1F001C 1E0018 1C0010 1C0030 3C0030 3C0030 380020 380020 380060 780060 780060 700040 700040 7000C0 F000C0 F000C0 E00080 E00180 E00180 F00300 700200 780600 3C1800 0FE000 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 23 0 BBX 23 32 4 0 BITMAP 0003C0 000700 000E00 001800 003000 000000 000000 FF80FE 3E0038 3E0030 1E0060 1E0040 0F0080 0F0100 070200 078600 078400 038800 03D000 01E000 01E000 01C000 01C000 01C000 03C000 03C000 038000 038000 078000 078000 0F8000 3FF000 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 20 0 BBX 21 25 1 0 BITMAP 07FE00 01F000 01E000 01E000 01E000 01FF80 01C0F0 01C070 03C078 03C078 038078 038078 038078 078070 0780F0 0780E0 0701E0 070380 0F0F00 0FF800 0F0000 0E0000 1E0000 3E0000 FFC000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 20 0 BBX 18 34 2 -7 BITMAP 003E00 00E780 01C380 0183C0 0383C0 038380 078300 070600 070C00 071800 073000 0F7000 0E7000 0E7800 0E7C00 0E3E00 1E1F00 1C0F80 1C07C0 1C03C0 1C01C0 3C01C0 3CC1C0 38C1C0 38C180 38C300 787C00 780000 700000 700000 700000 F00000 F00000 E00000 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 21 0 BBX 18 25 3 0 BITMAP 007800 003800 001C00 000C00 000600 000000 000000 00FFC0 0107C0 0203C0 040380 0C0380 180380 380780 380780 700700 700F00 F01F00 F01F00 F02F00 F06E00 F0CE00 F18E00 7F0E00 3C1FC0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 21 0 BBX 18 25 3 0 BITMAP 0003C0 000700 000E00 001800 003000 000000 000000 00FFC0 0107C0 0203C0 040380 0C0380 180380 380780 380780 700700 700F00 F01F00 F01F00 F02F00 F06E00 F0CE00 F18E00 7F0E00 3C1FC0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 21 0 BBX 18 25 3 0 BITMAP 001F00 003F00 007380 00E180 0180C0 000000 000000 00FFC0 0107C0 0203C0 040380 0C0380 180380 380780 380780 700700 700F00 F01F00 F01F00 F02F00 F06E00 F0CE00 F18E00 7F0E00 3C1FC0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 21 0 BBX 19 24 3 0 BITMAP 003820 007E60 00CFC0 008780 000000 000000 00FFC0 0107C0 0203C0 040380 0C0380 180380 380780 380780 700700 700F00 F01F00 F01F00 F02F00 F06E00 F0CE00 F18E00 7F0E00 3C1FC0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 21 0 BBX 18 22 3 0 BITMAP 00E1C0 00E3C0 000000 000000 00FFC0 0107C0 0203C0 040380 0C0380 180380 380780 380780 700700 700F00 F01F00 F01F00 F02F00 F06E00 F0CE00 F18E00 7F0E00 3C1FC0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 21 0 BBX 18 25 3 0 BITMAP 000E00 001100 001100 001100 000E00 000000 000000 00FFC0 0107C0 0203C0 040380 0C0380 180380 380780 380780 700700 700F00 F01F00 F01F00 F02F00 F06E00 F0CE00 F18E00 7F0E00 3C1FC0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 30 0 BBX 27 18 3 0 BITMAP 00FFCF80 0107B1C0 0203E1E0 0403C0E0 0C0380E0 180381C0 380701C0 38070380 70070700 700F1E00 F01FF000 F0170000 F0270000 F0470000 F0C70060 F18780C0 7E03C300 3C01FC00 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 17 0 BBX 15 25 3 -7 BITMAP 00FE 030E 0406 0C06 1806 3800 7000 7000 7000 F000 F000 F000 F000 F000 F000 7008 3830 1FC0 0800 1C00 0E00 0600 0600 0E00 3C00 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 18 0 BBX 15 25 3 0 BITMAP 00F0 0070 0038 0018 000C 0000 0000 00F8 031C 041E 0C0E 181E 381C 701C 7038 7070 F1E0 FF00 E000 E000 F000 F006 700C 3C30 1FC0 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 18 0 BBX 17 25 3 0 BITMAP 000780 000E00 001C00 003000 006000 000000 000000 00F800 031C00 041E00 0C0E00 181E00 381C00 701C00 703800 707000 F1E000 FF0000 E00000 E00000 F00000 F00600 700C00 3C3000 1FC000 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 18 0 BBX 16 25 3 0 BITMAP 007C 00FC 01CE 0386 0603 0000 0000 00F8 031C 041E 0C0E 181E 381C 701C 7038 7070 F1E0 FF00 E000 E000 F000 F006 700C 3C30 1FC0 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 18 0 BBX 16 22 3 0 BITMAP 0387 038F 0000 0000 00F8 031C 041E 0C0E 181E 381C 701C 7038 7070 F1E0 FF00 E000 E000 F000 F006 700C 3C30 1FC0 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 10 0 BBX 9 25 3 0 BITMAP 1E00 0E00 0700 0300 0180 0000 0000 FE00 1E00 1C00 1C00 1C00 1C00 3C00 3800 3800 3800 3800 7800 7000 7000 7000 7000 F000 FE00 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 10 0 BBX 12 25 3 0 BITMAP 00F0 01C0 0380 0600 0C00 0000 0000 FE00 1E00 1C00 1C00 1C00 1C00 3C00 3800 3800 3800 3800 7800 7000 7000 7000 7000 F000 FE00 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 10 0 BBX 12 25 3 0 BITMAP 07C0 0FC0 1CE0 3860 6030 0000 0000 FE00 1E00 1C00 1C00 1C00 1C00 3C00 3800 3800 3800 3800 7800 7000 7000 7000 7000 F000 FE00 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 10 0 BBX 12 22 3 0 BITMAP 3870 38F0 0000 0000 FE00 1E00 1C00 1C00 1C00 1C00 3C00 3800 3800 3800 3800 7800 7000 7000 7000 7000 F000 FE00 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 19 0 BBX 16 26 3 0 BITMAP 0FC1 03FE 0078 0038 00DC 018E 020E 000E 00FF 030F 0E07 1C07 1807 3807 7007 7007 7007 E007 E007 E006 E00E F00C F018 7030 3860 1F80 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 21 0 BBX 18 24 3 0 BITMAP 007040 00FCC0 019F80 010F00 000000 000000 FE0F00 1E1F80 1C73C0 1CC3C0 1D8380 3D0380 3E0380 3E0380 3C0780 380700 780700 780700 700700 700F00 700E00 F00E00 F00E00 E01FC0 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 19 0 BBX 17 25 3 0 BITMAP 00F000 007000 003800 001800 000C00 000000 000000 00FC00 030E00 0E0700 1C0700 1C0780 380780 780780 700780 700780 F00700 F00700 F00F00 F00E00 F01C00 F01800 703000 78E000 1F8000 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 19 0 BBX 17 25 3 0 BITMAP 000780 000E00 001C00 003000 006000 000000 000000 00FC00 030E00 0E0700 1C0700 1C0780 380780 780780 700780 700780 F00700 F00700 F00F00 F00E00 F01C00 F01800 703000 78E000 1F8000 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 19 0 BBX 17 25 3 0 BITMAP 003E00 007E00 00E700 01C300 030180 000000 000000 00FC00 030E00 0E0700 1C0700 1C0780 380780 780780 700780 700780 F00700 F00700 F00F00 F00E00 F01C00 F01800 703000 78E000 1F8000 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 19 0 BBX 18 24 3 0 BITMAP 007040 00FCC0 019F80 010F00 000000 000000 00FC00 030E00 0E0700 1C0700 1C0780 380780 780780 700780 700780 F00700 F00700 F00F00 F00E00 F01C00 F01800 703000 78E000 1F8000 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 19 0 BBX 17 22 3 0 BITMAP 01C380 01C780 000000 000000 00FC00 030E00 0E0700 1C0700 1C0780 380780 780780 700780 700780 F00700 F00700 F00F00 F00E00 F01C00 F01800 703000 78E000 1F8000 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 21 0 BBX 20 17 2 1 BITMAP 003800 003800 007800 000000 000000 000000 000000 000000 FFFFF0 000000 000000 000000 000000 000000 01C000 01C000 01C000 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 19 0 BBX 20 18 1 0 BITMAP 003E30 00C7C0 0303C0 0703C0 0E07C0 0C0DC0 1C19C0 3C11C0 3821C0 3843C0 388380 790380 3A0700 3C0700 380E00 3C0C00 3E3000 CFC000 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 21 0 BBX 18 25 3 0 BITMAP 007800 003800 001C00 000C00 000600 000000 000000 FE1FC0 1C03C0 1C0380 1C0380 3C0380 380380 380780 380700 380700 780F00 700F00 701F00 702E00 704E00 F08E00 F10E00 7E1E00 381FC0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 21 0 BBX 18 25 3 0 BITMAP 0003C0 000700 000E00 001800 003000 000000 000000 FE1FC0 1C03C0 1C0380 1C0380 3C0380 380380 380780 380700 380700 780F00 700F00 701F00 702E00 704E00 F08E00 F10E00 7E1E00 381FC0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 21 0 BBX 18 25 3 0 BITMAP 001F00 003F00 007380 00E180 0180C0 000000 000000 FE1FC0 1C03C0 1C0380 1C0380 3C0380 380380 380780 380700 380700 780F00 700F00 701F00 702E00 704E00 F08E00 F10E00 7E1E00 381FC0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 21 0 BBX 18 22 3 0 BITMAP 00E1C0 00E3C0 000000 000000 FE1FC0 1C03C0 1C0380 1C0380 3C0380 380380 380780 380700 380700 780F00 700F00 701F00 702E00 704E00 F08E00 F10E00 7E1E00 381FC0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 19 0 BBX 21 32 0 -7 BITMAP 0000F0 0001C0 000380 000600 000C00 000000 000000 3F0078 0F8038 078038 038038 038030 03C070 01C060 01C0C0 01C080 01C100 01E300 00E600 00E400 00E800 00F000 00F000 00E000 00C000 008000 010000 030000 0E0000 1C0000 380000 F80000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 21 0 BBX 20 31 2 -7 BITMAP 1F8000 078000 078000 078000 078000 070000 0703C0 070FE0 0F18F0 0F30F0 0E60F0 0EC0F0 0E80F0 1F00F0 1E00E0 1E00E0 1C01C0 1C01C0 3C0180 3C0300 380200 380400 3C0800 7FF000 780000 700000 700000 700000 F00000 F00000 E00000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 19 0 BBX 21 29 0 -7 BITMAP 003870 0038F0 000000 000000 3F0078 0F8038 078038 038038 038030 03C070 01C060 01C0C0 01C080 01C100 01E300 00E600 00E400 00E800 00F000 00F000 00E000 00C000 008000 010000 030000 0E0000 1C0000 380000 F80000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 22 0 BBX 21 34 3 -7 BITMAP 001FF8 0061F8 00C078 018070 038070 038070 038070 0700F0 0700E0 3FF8E0 0F00E0 0F00E0 0E01E0 0E01C0 0E01C0 0E01C0 1E01C0 1C03C0 1C0380 1C0380 1C0380 3C0380 380780 380780 380700 380700 7807E0 780000 700000 700000 700000 F00000 F00000 E00000 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 14 1 3 11 BITMAP FFFC ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 15 31 6 -6 BITMAP 00E0 00E0 01C0 01C0 01C0 01C0 0180 0180 0180 F18E FFFE 0300 0300 0300 0300 0300 0600 0600 0600 0600 0E00 0E00 0E00 0C00 1C00 1C00 1C00 1C00 1C00 3C00 3800 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 22 32 2 0 BITMAP 003018 001870 001CE0 000FC0 000F80 000000 000000 07FFFC 070038 060078 0600F0 0E01E0 0001C0 000380 000780 000F00 001E00 001C00 003C00 007800 00F000 01E000 01E000 03C000 078000 0F0000 0E0000 1E0000 3C0060 7800C0 F001C0 FFFFC0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 30 0 BBX 27 18 3 0 BITMAP 00FC0FC0 030E11E0 060760E0 1C07C0E0 1807C0E0 380780E0 780781E0 700781C0 70078380 F0070E00 F007F800 F00F0000 F00F0000 F00F0000 F01F8020 703F80E0 7863C380 1F81FC00 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 23 29 4 0 BITMAP 00E1C0 00E3C0 000000 000000 FF80FE 3E0038 3E0030 1E0060 1E0040 0F0080 0F0100 070200 078600 078400 038800 03D000 01E000 01E000 01C000 01C000 01C000 03C000 03C000 038000 038000 078000 078000 0F8000 3FF000 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 7 18 3 0 BITMAP FE 1E 1C 1C 1C 1C 3C 38 38 38 38 78 70 70 70 70 F0 FE ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 11 26 2 0 BITMAP 1FC0 0380 0380 0380 0380 0780 0700 0700 0700 0700 0F00 0EE0 0F80 7E00 CE00 1E00 1C00 1C00 1C00 1C00 3C00 3800 3800 3800 3800 7F00 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 19 25 0 0 BITMAP 07FE00 00F000 00E000 01E000 01E000 01E000 01C000 01C000 03C000 03CC00 03F000 03C000 038000 0F8000 378000 678000 070000 070000 0F0000 0F0000 0F0000 0E0060 1E0060 1E00C0 FFFFC0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 17 31 4 -6 BITMAP 003800 003800 003800 003000 007000 007000 006000 006000 006000 3C6380 3FFF80 004000 00C000 00C000 00C000 008000 008000 018000 018000 018000 FFFE00 E10E00 030000 030000 030000 030000 070000 070000 070000 0E0000 0E0000 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 21 34 2 -7 BITMAP 003F00 004700 00C238 018278 038670 038000 038000 070000 070000 3FFFF0 0700E0 0F00E0 0E00E0 0E01E0 0E01E0 0E01C0 1E01C0 1C01C0 1C03C0 1C03C0 1C0380 3C0380 3C0380 380780 380780 380780 7807E0 780000 700000 700000 700000 F00000 F00000 E00000 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 16 3 1 BITMAP 1000 1800 0800 0C00 0E00 0600 0700 0780 0700 0600 0C00 1800 3000 6000 4000 8000 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 34 0 BBX 34 25 4 0 BITMAP 000FCFFFC0 00707E00C0 01C03E00C0 03801E0180 07001E0180 0E001E0000 1E001C0000 1C001C0000 38003C0000 78003C0000 78003C0400 7000380C00 F0003FFC00 F000780C00 F000780800 F000780000 F000700000 F000F00000 F000F00000 F000F00000 7001F00600 7801E00600 3C03E00C00 0E0FF01C00 03FDFFFC00 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 34 0 BBX 31 1 3 10 BITMAP FFFFFFFE ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 11 5 10 21 BITMAP C060 61C0 7380 3F00 3E00 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 5 5 6 -6 BITMAP 30 60 C0 E0 78 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 11 5 11 21 BITMAP 0EE0 1980 3300 6600 CC00 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 16 3 1 BITMAP 0080 0100 0300 0600 0C00 1800 3000 7000 F000 7000 3000 3800 1800 0800 0C00 0400 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 4 3 12 22 BITMAP 70 F0 E0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 11 5 10 21 BITMAP 8020 C040 E380 7F00 3E00 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 11 10 7 6 BITMAP 1F00 3F80 7FC0 FFE0 FFE0 FFE0 FFE0 7FC0 3F80 1F00 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 11 4 9 21 BITMAP 3820 7E60 CFC0 8780 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 11 5 9 21 BITMAP 0F80 1F80 39C0 70C0 C060 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 13 10 6 16 BITMAP 0C18 1870 3060 70E0 70E0 60C0 78F0 79F0 F9E0 F1E0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 4 10 6 16 BITMAP F0 F0 F0 70 60 60 60 60 60 20 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 18 25 2 0 BITMAP 0180C0 00C380 00E700 007E00 007C00 000000 000000 03F800 061C00 0C0C00 1C0C00 1C0800 1E0000 0F0000 0F8000 07C000 03E000 01E000 00F000 007000 407000 C07000 C07000 F0E000 3F8000 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 5 5 12 21 BITMAP 70 88 88 88 70 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 6 12 1 -7 BITMAP 3C 3C 7C 78 78 18 38 38 30 30 60 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 16 31 6 -6 BITMAP 003F 00C7 0183 0382 0306 0700 0700 0700 0F00 0E00 0E00 0E00 FFE0 1E00 1C00 1C00 1C00 1C00 3C00 3C00 3800 3800 3800 7800 7800 7000 7000 7000 F000 F000 E000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 31 0 BBX 30 14 5 11 BITMAP 7FF7E0FC C631E0E0 C631F160 0601F1E0 0E0172E0 0E0172E0 0C0374E0 0C0374C0 0C033CC0 1C0239C0 1C0239C0 1C0231C0 180631C0 FF1E01F0 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 25 25 -8 0 BITMAP 00000380 00000700 00000E00 00001C00 00003800 00003000 00006000 0000C000 00018000 00030000 00070000 000E0000 001C0000 00380000 00700000 00600000 00C00000 01800000 03000000 06000000 0E000000 1C000000 38000000 70000000 E0000000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 6 5 11 21 BITMAP F0 70 38 18 0C ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 36 0 BBX 35 25 3 0 BITMAP 03C0030000 0E20060000 1C300C0000 1830180000 3830300000 3830600000 3030E00000 3031C00000 3071800000 3063000000 30E6000000 19CC000000 0F18000000 0030F80F80 00718C18C0 00E30630C0 00C7067060 01860660E0 030606E0E0 060E06E0E0 0C0E0EE0C0 180E0CE1C0 30061CE180 7007386300 E001E03E00 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 34 0 BBX 26 3 4 0 BITMAP 700E01C0 F01E03C0 E01C0380 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 13 10 6 16 BITMAP 3C78 3C78 7CF0 78F0 1870 3870 3060 30E0 E1C0 8100 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 20 32 2 0 BITMAP 006030 0030E0 0039C0 001F80 001F00 000000 000000 007F80 01C1F0 038060 070060 070060 0F00E0 0F0000 0F0000 0F0000 078000 03C000 01F000 00F800 007C00 003E00 001F00 000F00 000F00 000F00 600F00 600E00 E00E00 E01C00 F03800 1FC000 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 13 12 1 -7 BITMAP 3C78 3CF8 3CF8 7CF0 78F0 1870 3870 3870 3060 3060 60C0 C180 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 19 25 2 0 BITMAP 00C060 0061C0 007380 003F00 003E00 000000 000000 0FFFC0 0C0380 080700 180F00 001E00 003C00 007800 00F000 00E000 01C000 038000 078000 0F0000 1E0000 3C0300 780300 700600 FFFE00 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lubR08.bdf100644 1750 1750 57355 5413747535 15110 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-Medium-R-Normal--11-80-100-100-P-63-ISO8859-1 SIZE 8 100 100 FONTBOUNDINGBOX 17 13 -6 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 11 POINT_SIZE 80 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 63 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 10 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 3 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 3 0 BBX 1 9 1 0 BITMAP 80 80 80 80 80 80 80 00 80 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 4 0 BBX 2 3 1 6 BITMAP C0 C0 C0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 14 24 7E 28 28 FC 48 50 50 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 -1 BITMAP 38 E8 A0 E0 70 28 28 A8 F0 20 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 44 A8 A8 50 38 34 54 54 88 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 30 48 48 70 97 92 8A CC 7B ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 3 0 BBX 1 4 1 5 BITMAP 80 80 80 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 3 0 BBX 3 11 1 -2 BITMAP 60 80 80 80 80 80 80 80 80 80 40 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 3 0 BBX 3 11 2 -2 BITMAP 40 60 20 20 20 20 20 20 20 60 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 1 5 BITMAP 40 F0 60 60 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 10 10 10 10 FE 10 10 10 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 3 0 BBX 1 4 1 -2 BITMAP 80 80 80 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 0 3 BITMAP FC ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 3 0 BBX 1 1 1 0 BITMAP 80 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 6 0 BBX 6 11 0 -2 BITMAP 04 08 08 18 10 30 20 60 40 40 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 30 48 84 84 84 84 84 48 30 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 7 0 BBX 4 9 1 0 BITMAP E0 20 20 20 20 20 20 20 F0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 70 88 88 08 10 20 40 80 F8 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP F0 88 08 08 70 08 08 88 F0 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 18 18 28 48 C8 FC 08 08 1C ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 7 0 BBX 4 9 1 0 BITMAP F0 80 80 E0 10 10 10 90 E0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 38 48 80 F0 88 88 88 48 70 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP F8 08 10 30 20 40 40 C0 80 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 70 88 88 48 70 88 88 88 70 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 70 90 88 88 88 78 08 90 E0 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 3 0 BBX 1 6 1 0 BITMAP 80 00 00 00 00 80 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 3 0 BBX 1 8 1 -2 BITMAP 80 00 00 00 80 80 80 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 04 18 30 C0 C0 30 18 04 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 7 0 BBX 6 3 0 2 BITMAP FC 00 FC ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 80 60 30 0C 0C 30 60 80 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 5 0 BBX 5 9 0 0 BITMAP F0 88 08 10 30 20 20 00 20 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 10 0 BBX 8 9 1 0 BITMAP 1E 22 5D 99 A9 AD B6 40 3C ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 10 18 18 28 24 7C 42 82 C7 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP F8 44 44 48 78 4C 44 44 F8 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 3C 44 84 80 80 80 80 44 38 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP FC 42 41 41 41 41 41 42 FC ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP F8 48 40 50 70 50 40 48 F8 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 0 0 BITMAP F8 48 40 50 70 50 40 40 C0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 3C 44 80 80 80 8E 84 44 3C ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP E7 42 42 42 7E 42 42 42 E7 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 4 0 BBX 3 9 0 0 BITMAP E0 40 40 40 40 40 40 40 E0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 5 0 BBX 4 11 0 -2 BITMAP 30 20 20 20 20 20 20 20 20 A0 C0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP EE 44 48 50 60 50 4C 46 EF ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP E0 40 40 40 40 40 40 44 FC ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 0 0 BITMAP E180 6300 6300 5700 5500 5D00 4900 4900 E380 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP C7 62 62 52 4A 4A 46 42 E2 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 38 44 82 82 82 82 82 44 38 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP F8 44 44 4C 78 40 40 40 E0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 9 0 BBX 9 11 1 -2 BITMAP 3800 4400 8200 8200 8200 8200 8200 4400 3C00 0600 0380 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP F8 44 44 44 78 48 48 44 E6 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 6 0 BBX 5 9 1 0 BITMAP 78 88 80 C0 30 18 08 88 F0 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP FE 10 10 10 10 10 10 10 38 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP E7 42 42 42 42 42 42 66 3C ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP E3 43 42 22 24 14 14 18 08 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 0 0 BITMAP E4C0 4C80 4C80 4C80 2C80 3300 3300 3300 2200 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP E6 44 2C 38 10 28 48 44 CE ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP E6 44 24 28 18 10 10 10 38 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP F8 90 10 20 20 60 40 48 F8 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 3 0 BBX 2 11 1 -2 BITMAP C0 80 80 80 80 80 80 80 80 80 C0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 6 0 BBX 6 11 0 -2 BITMAP 80 40 40 60 20 30 10 18 08 08 04 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 3 0 BBX 2 11 0 -2 BITMAP C0 40 40 40 40 40 40 40 40 40 C0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 1 BITMAP 10 30 30 70 48 48 84 84 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 5 0 BBX 4 1 1 -1 BITMAP F0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 0 5 BITMAP C0 80 80 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 1 0 BITMAP F0 10 70 90 90 68 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP C0 40 40 78 44 44 44 44 78 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP 78 C8 80 80 C0 78 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 18 08 08 78 88 88 88 88 7C ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP 70 88 F8 80 C0 78 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 0 0 BITMAP 70 50 40 E0 40 40 40 40 E0 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 -2 BITMAP 78 90 90 60 80 78 88 F0 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP C0 40 40 7C 44 44 44 44 EE ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 3 0 BBX 3 9 0 0 BITMAP 40 00 00 C0 40 40 40 40 E0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 4 0 BBX 3 11 0 -2 BITMAP 20 00 00 60 20 20 20 20 20 A0 E0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP C0 40 40 4C 58 60 50 58 EC ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 3 0 BBX 3 9 0 0 BITMAP C0 40 40 40 40 40 40 40 E0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 10 0 BBX 11 6 0 0 BITMAP FFC0 4440 4440 4440 4440 EEE0 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP FC 44 44 44 44 EE ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP 78 CC 84 84 CC 78 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 -2 BITMAP F8 44 44 44 44 78 40 E0 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 -2 BITMAP 78 88 88 88 88 78 08 1C ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 0 0 BITMAP F0 50 40 40 40 E0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 6 0 BBX 4 6 1 0 BITMAP F0 90 C0 B0 90 E0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 0 0 BITMAP 40 40 40 F0 40 40 40 40 70 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP CC 44 44 44 44 7E ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP EC 44 48 28 30 10 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 9 0 BBX 9 6 0 0 BITMAP E980 4880 5500 5500 3200 2200 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 6 0 BBX 6 6 0 0 BITMAP EC 48 30 70 48 DC ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 6 0 BBX 6 8 0 -2 BITMAP EC 44 48 28 30 10 20 60 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 0 BITMAP F8 90 20 60 48 F8 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 4 0 BBX 3 11 0 -2 BITMAP 20 40 40 40 40 80 40 40 40 40 20 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 3 0 BBX 1 11 1 -2 BITMAP 80 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 4 0 BBX 3 11 1 -2 BITMAP 80 40 40 40 40 20 40 40 40 40 80 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 7 0 BBX 6 3 0 2 BITMAP 64 B4 9C ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 3 0 BBX 1 8 1 -2 BITMAP 80 00 80 80 80 80 80 80 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 20 78 A8 A0 A0 A0 A0 78 20 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 7 0 BBX 4 9 2 0 BITMAP 30 50 40 40 C0 40 40 40 F0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 1 BITMAP 82 7C 44 44 44 7C 82 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP E6 44 28 18 7C 10 7C 10 38 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 3 0 BBX 1 11 1 -2 BITMAP 80 80 80 80 80 00 80 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 -2 BITMAP 78 88 80 40 B0 88 68 10 08 88 F0 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 7 0 BBX 3 1 2 8 BITMAP A0 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 38 44 DE AA A2 A2 DE 44 38 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 5 0 BBX 5 5 0 4 BITMAP F0 90 70 90 F8 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP 28 50 B0 F0 50 28 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 7 0 BBX 6 3 0 2 BITMAP FC 04 04 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 4 0 BBX 3 1 0 3 BITMAP E0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 7 0 BBX 4 6 1 3 BITMAP 60 90 F0 F0 D0 60 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 7 0 BBX 3 1 2 8 BITMAP E0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 3 0 BBX 2 3 0 6 BITMAP C0 C0 C0 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 10 10 FE 10 10 10 00 FE ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 -6 4 BITMAP E0 A0 60 C0 E0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 -6 4 BITMAP E0 E0 40 A0 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 7 0 BBX 2 1 2 8 BITMAP C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 -2 BITMAP CC 44 44 44 44 7E 40 40 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 0 -2 BITMAP F8 F8 F8 F8 38 18 18 18 18 18 18 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 7 0 BBX 1 1 3 3 BITMAP 80 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 7 0 BBX 2 3 2 -2 BITMAP 80 40 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 -6 4 BITMAP C0 40 40 40 E0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 5 0 BBX 4 5 0 4 BITMAP 60 90 90 90 60 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 6 0 BBX 5 6 0 0 BITMAP A0 50 78 68 50 A0 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 2 0 BITMAP C2 44 4C 48 F6 2E 6F 42 87 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 2 0 BITMAP C2 44 4C 48 F7 25 63 46 87 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 2 0 BITMAP E2 E4 4C A8 F6 2E 6F 42 87 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 5 0 BBX 5 8 0 -2 BITMAP 20 00 20 60 40 80 88 78 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 18 10 18 18 28 24 7C 42 82 C7 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 18 10 18 18 28 24 7C 42 82 C7 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 3C 10 18 18 28 24 7C 42 82 C7 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 3C 10 18 18 28 24 7C 42 82 C7 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 28 10 18 18 28 24 7C 42 82 C7 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 8 0 BBX 8 11 0 0 BITMAP 18 24 18 18 18 28 24 7C 42 82 C7 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 0 0 BITMAP 07C0 0E40 0A80 1380 2280 3E00 4200 4240 C7C0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 -2 BITMAP 3C 44 84 80 80 80 80 44 38 10 30 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 6 0 BBX 5 10 1 0 BITMAP 20 F8 48 40 50 70 50 40 48 F8 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 6 0 BBX 5 10 1 0 BITMAP 20 F8 48 40 50 70 50 40 48 F8 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 6 0 BBX 5 10 1 0 BITMAP 30 F8 48 40 50 70 50 40 48 F8 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 6 0 BBX 5 10 1 0 BITMAP 50 F8 48 40 50 70 50 40 48 F8 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 0 0 BITMAP 40 E0 40 40 40 40 40 40 40 E0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 0 0 BITMAP 40 E0 40 40 40 40 40 40 40 E0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 4 0 BBX 4 10 1 0 BITMAP E0 70 20 20 20 20 20 20 20 70 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 0 0 BITMAP A0 E0 40 40 40 40 40 40 40 E0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP FC 42 41 41 F1 41 41 42 FC ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 3C C7 62 62 52 4A 4A 46 42 E2 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 10 38 44 82 82 82 82 82 44 38 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 10 38 44 82 82 82 82 82 44 38 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 70 38 44 82 82 82 82 82 44 38 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 3C 38 44 82 82 82 82 82 44 38 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 28 38 44 82 82 82 82 82 44 38 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 84 CC 48 30 30 48 C8 84 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 3A 46 86 8A 92 A2 C2 44 B8 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 18 E7 42 42 42 42 42 42 66 3C ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 18 E7 42 42 42 42 42 42 66 3C ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 18 E7 42 42 42 42 42 42 66 3C ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 14 E7 42 42 42 42 42 42 66 3C ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 0 0 BITMAP 18 E6 44 24 28 18 10 10 10 38 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP E0 40 78 44 44 4C 78 40 E0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 78 48 48 50 50 48 44 54 F8 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 20 F0 10 70 90 90 68 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 20 F0 10 70 90 90 68 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 60 F0 10 70 90 90 68 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP F0 F0 10 70 90 90 68 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 1 0 BITMAP 50 F0 10 70 90 90 68 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 1 0 BITMAP 60 90 F0 10 70 90 90 68 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 9 0 BBX 7 6 1 0 BITMAP EC 12 7E 90 B8 EE ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 6 0 BBX 5 8 0 -2 BITMAP 78 C8 80 80 C0 78 10 30 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 0 0 BITMAP 20 70 88 F8 80 C0 78 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 0 0 BITMAP 20 70 88 F8 80 C0 78 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 0 0 BITMAP 38 70 88 F8 80 C0 78 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 0 0 BITMAP 50 70 88 F8 80 C0 78 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 3 0 BBX 3 7 0 0 BITMAP C0 C0 40 40 40 40 E0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 3 0 BBX 3 7 0 0 BITMAP 60 C0 40 40 40 40 E0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 3 0 BBX 4 7 1 0 BITMAP F0 60 20 20 20 20 70 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 3 0 BBX 3 7 0 0 BITMAP A0 C0 40 40 40 40 E0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP F8 30 D8 7C CC 84 84 CC 78 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 0 BITMAP 78 FC 44 44 44 44 EE ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 10 78 CC 84 84 CC 78 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 20 78 CC 84 84 CC 78 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 30 78 CC 84 84 CC 78 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 78 78 CC 84 84 CC 78 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 50 78 CC 84 84 CC 78 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP 10 00 00 FE 00 10 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP 74 CC 9C E4 CC B8 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 0 BITMAP 30 CC 44 44 44 44 7E ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 0 BITMAP 18 CC 44 44 44 44 7E ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 0 BITMAP 3C CC 44 44 44 44 7E ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 0 BITMAP 28 CC 44 44 44 44 7E ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 -2 BITMAP 30 EC 44 48 28 30 10 20 60 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 7 0 BBX 6 11 0 -2 BITMAP C0 40 40 78 44 44 44 44 78 40 E0 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 -2 BITMAP 28 EC 44 48 28 30 10 20 60 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 7C 44 44 F4 44 44 44 44 EE ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 1 1 3 BITMAP F0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 -2 BITMAP 20 20 20 F8 20 20 20 20 20 20 20 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP 30 F8 90 10 20 20 60 40 48 F8 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 6 0 0 BITMAP 7700 CC80 8F80 8800 CC00 7380 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 0 0 BITMAP 28 E6 44 24 28 18 10 10 10 38 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 6 0 0 BITMAP C0 40 40 40 40 E0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 9 0 0 BITMAP C0 40 40 60 C0 C0 40 40 E0 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 9 0 0 BITMAP E0 40 40 60 C0 C0 40 44 FC ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 -2 BITMAP 20 20 20 F8 20 20 20 F8 20 20 20 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 74 50 40 FC 44 44 44 44 EE ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 0 0 BITMAP 80 40 60 60 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 9 1 0 BITMAP 37C0 4C40 8400 8480 8780 8480 8400 4C40 37C0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 10 1 1 3 BITMAP FFC0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 1 8 BITMAP F0 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 1 3 -2 BITMAP C0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 1 2 8 BITMAP E0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 6 0 0 BITMAP 20 40 C0 C0 40 20 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 1 1 3 8 BITMAP 80 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 1 8 BITMAP F0 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 3 2 2 BITMAP E0 E0 E0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 1 8 BITMAP F0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 1 8 BITMAP F0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 1 5 BITMAP B0 A0 A0 B0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 2 4 0 5 BITMAP C0 C0 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 0 BITMAP 60 F0 90 C0 B0 90 E0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 3 3 7 BITMAP 60 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 1 4 1 -2 BITMAP 80 80 80 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 11 1 -2 BITMAP 38 48 40 40 E0 40 40 80 80 80 80 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 11 5 0 4 BITMAP FF60 23C0 23C0 22C0 7660 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 0 0 BBX 7 9 -2 0 BITMAP 02 04 0C 08 10 20 60 40 80 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 1 2 8 BITMAP C0 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 9 1 0 BITMAP 4400 A800 A800 5000 3900 3680 5680 5680 8900 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 7 1 2 0 BITMAP 92 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 1 5 BITMAP 90 90 90 90 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 5 10 1 0 BITMAP E0 78 88 80 C0 30 18 08 88 F0 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 4 4 1 -2 BITMAP 90 90 90 90 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 60 F8 90 20 60 48 F8 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lubR10.bdf100644 1750 1750 63233 5413747536 15072 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-Medium-R-Normal--14-100-100-100-P-80-ISO8859-1 SIZE 10 100 100 FONTBOUNDINGBOX 22 16 -8 -3 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 14 POINT_SIZE 100 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 13 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 4 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 4 0 BBX 1 10 1 0 BITMAP 80 80 80 80 80 80 80 00 00 80 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 5 0 BBX 3 3 1 7 BITMAP A0 A0 A0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP 0900 1A00 1200 7F80 1200 2400 FF00 2400 2C00 4800 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 9 0 BBX 5 13 2 -2 BITMAP 20 78 A8 A8 A0 60 30 28 A8 A8 F0 20 20 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 9 0 BBX 11 10 0 0 BITMAP 7060 88C0 8980 8B00 7600 0DC0 1A20 3220 6220 C1C0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 0 BITMAP 1C00 2200 2200 3200 7C00 89C0 8480 8280 C100 7FC0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 4 0 BBX 2 3 1 7 BITMAP C0 40 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 4 0 BBX 3 13 1 -3 BITMAP 20 40 40 80 80 80 80 80 80 80 40 40 20 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 4 0 BBX 3 13 1 -3 BITMAP 80 40 40 20 20 20 20 20 20 20 40 80 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 7 0 BBX 5 5 1 5 BITMAP 20 A8 50 50 50 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 0 0 BITMAP 0800 0800 0800 0800 FF80 0800 0800 0800 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 4 0 BBX 2 5 1 -3 BITMAP C0 C0 40 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 9 0 BBX 8 1 0 3 BITMAP FF ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 4 0 BBX 2 1 1 0 BITMAP C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 7 0 BBX 7 13 0 -3 BITMAP 02 04 04 08 08 18 10 30 20 20 40 40 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 38 44 82 82 82 82 82 82 44 38 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 9 0 BBX 5 10 2 0 BITMAP E0 20 20 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 1 0 BITMAP 78 8C 84 04 0C 18 20 40 80 FC ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 1 0 BITMAP F8 84 84 04 78 0C 04 84 8C F8 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 0C 0C 14 24 44 C4 FE 04 04 0E ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 9 0 BBX 5 10 2 0 BITMAP F8 80 80 E0 10 08 08 88 90 F0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 3E 42 C2 80 BC C2 82 82 46 3C ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 2 0 BITMAP FC 04 08 10 10 20 60 40 C0 80 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 7C C6 82 C2 7C 8C 82 82 C6 7C ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP 78 C4 82 82 86 7A 02 84 84 F8 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 4 0 BBX 1 7 1 0 BITMAP 80 00 00 00 00 00 80 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 4 0 BBX 1 10 1 -3 BITMAP 80 00 00 00 00 00 80 80 80 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 0 0 BITMAP 01 06 18 E0 60 18 06 01 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 9 0 BBX 8 4 0 2 BITMAP FF 00 00 FF ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 0 0 BITMAP 80 60 18 06 07 18 60 80 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 0 BITMAP F0 88 88 08 10 20 20 20 00 20 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 1 0 BITMAP 0F80 30C0 6720 4A20 9220 9220 9740 9DC0 6200 3C00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 0 BITMAP 0800 0C00 1C00 1400 1200 2200 3F00 4100 4180 E3C0 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP FC 42 42 44 7C 46 42 42 46 FC ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 10 0 BBX 8 10 1 0 BITMAP 1F 61 41 80 80 80 80 40 61 3E ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP FE00 4300 4180 4080 4080 4080 4080 4080 4100 FE00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP FC 44 40 48 78 48 40 40 44 FC ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 0 BITMAP FE 42 40 44 7C 44 40 40 40 F0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 0 BITMAP 1F00 6100 4100 8000 8000 8380 8100 4100 6100 3F00 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 0 0 BITMAP E1C0 4080 4080 4080 7F80 4080 4080 4080 4080 E1C0 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 5 0 BBX 3 10 1 0 BITMAP E0 40 40 40 40 40 40 40 40 E0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 6 0 BBX 5 13 0 -3 BITMAP 38 10 10 10 10 10 10 10 10 10 10 90 E0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 0 BITMAP E780 4300 4400 5800 7000 5000 4C00 4600 4300 E7C0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 0 BITMAP E0 40 40 40 40 40 40 40 42 FE ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 12 0 BBX 11 10 1 0 BITMAP E0E0 60C0 51C0 5140 5940 4A40 4A40 4440 4440 E0E0 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP C380 6100 7100 5100 4900 4D00 4500 4300 4100 E100 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 3E00 6300 4100 8080 8080 8080 8080 4100 6300 3E00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP FC 42 42 42 46 7C 40 40 40 E0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 1 -3 BITMAP 3E00 6300 4100 8080 8080 8080 8080 4180 6300 3F00 0200 01C0 00E0 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP FC00 4200 4200 4200 4400 7800 4C00 4400 4200 E180 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 7C 84 84 C0 60 18 04 84 8C F8 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP FF80 0800 0800 0800 0800 0800 0800 0800 0800 1C00 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 0 BITMAP E380 4100 4100 4100 4100 4100 4100 4100 6300 3E00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 0 BITMAP F1C0 6080 2080 2100 1100 1300 0A00 0A00 0C00 0400 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 13 0 BBX 13 10 0 0 BITMAP F238 4210 2710 2520 2520 2520 18C0 18C0 18C0 1040 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP F380 2100 2200 1400 0C00 1C00 3400 2200 4300 E780 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP F380 6100 2300 1200 0C00 0800 0800 0800 0800 1C00 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 9 0 BBX 7 10 1 0 BITMAP FE 84 0C 08 10 10 20 40 42 FE ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 4 0 BBX 3 13 1 -3 BITMAP E0 80 80 80 80 80 80 80 80 80 80 80 E0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 7 0 BBX 7 13 0 -3 BITMAP 80 40 40 20 20 30 10 18 08 08 04 04 02 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 4 0 BBX 3 13 0 -3 BITMAP E0 20 20 20 20 20 20 20 20 20 20 20 E0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 0 2 BITMAP 08 18 18 24 24 42 42 81 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 1 -2 BITMAP FC ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 4 0 BBX 2 3 1 7 BITMAP C0 80 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 0 0 BITMAP 78 84 04 7C 84 84 7E ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 0 BITMAP C0 40 40 5E 63 41 41 41 42 7C ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 3C 44 84 80 80 40 3C ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP 06 02 02 3E 42 82 82 82 C6 7B ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 78 C4 84 FC 80 44 38 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 6 0 BBX 5 11 1 0 BITMAP 38 48 48 40 F0 40 40 40 40 40 F0 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 -3 BITMAP 3F 66 42 62 3C 40 7F 81 81 7E ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 0 BITMAP C0 40 40 5C 62 42 42 42 42 E7 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 1 0 BITMAP 40 00 00 C0 40 40 40 40 40 E0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 5 0 BBX 4 13 0 -3 BITMAP 10 00 00 30 10 10 10 10 10 10 90 90 E0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP C0 40 40 4E 4C 58 60 58 4C E7 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 4 0 BBX 3 10 1 0 BITMAP C0 40 40 40 40 40 40 40 40 E0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 13 0 BBX 13 7 0 0 BITMAP DCE0 6310 4210 4210 4210 4210 E738 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 1 0 BITMAP DC 62 42 42 42 42 E7 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 38 44 82 82 82 44 38 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 -3 BITMAP DE 63 41 41 41 42 7C 40 40 E0 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 1 -3 BITMAP 3E 42 82 82 82 C6 7A 02 02 07 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 6 0 BBX 5 7 0 0 BITMAP F8 48 48 40 40 40 E0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 78 88 88 70 88 88 F0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 5 0 BBX 4 9 1 0 BITMAP 40 40 F0 40 40 40 40 40 70 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 0 0 BITMAP C6 42 42 42 42 46 3B ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 0 0 BITMAP E3 43 22 24 14 18 08 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 11 0 BBX 11 7 0 0 BITMAP E460 4460 4E40 2A40 2980 3180 1100 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 0 0 BITMAP E7 62 34 18 2C 46 E7 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 -3 BITMAP F3 43 22 26 14 1C 18 08 10 70 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP FC 88 10 20 20 44 FC ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 5 0 BBX 4 13 0 -3 BITMAP 30 40 40 40 40 40 80 40 40 40 40 40 30 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 3 0 BBX 1 13 1 -3 BITMAP 80 80 80 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 5 0 BBX 4 13 1 -3 BITMAP C0 20 20 20 20 20 10 20 20 20 20 20 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 9 0 BBX 8 3 0 2 BITMAP 61 99 86 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 4 0 BBX 1 10 1 -3 BITMAP 80 00 00 80 80 80 80 80 80 80 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 9 0 BBX 6 10 1 0 BITMAP 10 1C 74 94 90 90 90 50 3C 10 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 9 0 BBX 5 10 2 0 BITMAP 38 48 48 40 40 E0 40 40 40 F8 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 0 1 BITMAP 81 5A 24 42 42 66 5A 81 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 9 0 BBX 9 10 0 0 BITMAP F380 6300 1600 0C00 3E00 0800 3E00 0800 0800 1C00 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 3 0 BBX 1 13 1 -3 BITMAP 80 80 80 80 80 80 00 80 80 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 1 -3 BITMAP 7C C4 84 80 60 98 84 44 38 04 84 C4 F8 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 8 0 BBX 4 1 2 9 BITMAP 90 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 0 BITMAP 1E00 6180 4E80 9240 9040 9040 9840 4E80 6180 1E00 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 6 0 BBX 6 5 0 5 BITMAP F8 88 78 88 FC ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 24 28 58 D0 58 28 24 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 9 0 BBX 8 4 0 2 BITMAP FF 01 01 01 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 5 0 BBX 3 1 1 4 BITMAP E0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 9 0 BBX 7 6 1 4 BITMAP 78 FC AA B2 6E 38 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 8 0 BBX 4 1 2 9 BITMAP F0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 4 0 BBX 3 2 2 8 BITMAP E0 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 9 0 BBX 9 8 0 0 BITMAP 0800 0800 FF80 0800 0800 0800 0000 FF80 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 -8 4 BITMAP E0 90 10 60 C0 F0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 5 0 BBX 4 6 -8 4 BITMAP F0 90 60 30 90 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 8 0 BBX 3 1 3 9 BITMAP E0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 9 0 BBX 8 10 0 -3 BITMAP C6 42 42 42 42 46 7B 40 40 40 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 9 0 BBX 6 13 1 -3 BITMAP 7C F4 F4 F4 74 34 14 14 14 14 14 14 14 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 9 0 BBX 1 1 4 4 BITMAP 80 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 8 0 BBX 2 3 3 -3 BITMAP C0 40 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 5 0 BBX 3 6 -8 4 BITMAP C0 40 40 40 40 E0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 6 0 BBX 5 5 0 5 BITMAP 70 88 88 88 70 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 90 50 68 2C 68 50 90 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 3 0 BITMAP C180 4100 4200 4400 4D80 FB80 1680 27C0 4080 C1C0 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 3 0 BITMAP C180 4100 4200 4400 4F00 FC80 1080 2300 4600 C780 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 3 0 BITMAP F180 9100 6200 3400 9D80 FB80 1680 27C0 4080 C1C0 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 -3 BITMAP 20 00 20 20 20 40 80 88 88 78 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 1C00 0000 0800 0C00 1C00 1400 1200 2200 3F00 4100 4180 E3C0 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 0E00 0000 0800 0C00 1C00 1400 1200 2200 3F00 4100 4180 E3C0 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 3E00 0000 0800 0C00 1C00 1400 1200 2200 3F00 4100 4180 E3C0 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 1F00 0000 0800 0C00 1C00 1400 1200 2200 3F00 4100 4180 E3C0 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 1200 0000 0800 0C00 1C00 1400 1200 2200 3F00 4100 4180 E3C0 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP 0C00 1200 0C00 0800 0C00 1C00 1400 1200 2200 3F00 4100 4180 E3C0 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 13 0 BBX 13 10 0 0 BITMAP 03F8 0308 0700 0D10 09F0 1110 3F00 2100 4108 E3F8 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 -3 BITMAP 1F 61 41 80 80 80 80 40 61 3E 08 08 18 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 8 0 BBX 6 12 1 0 BITMAP 70 00 FC 44 40 48 78 48 40 40 44 FC ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 8 0 BBX 6 12 1 0 BITMAP 38 00 FC 44 40 48 78 48 40 40 44 FC ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 8 0 BBX 6 12 1 0 BITMAP 7C 00 FC 44 40 48 78 48 40 40 44 FC ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 8 0 BBX 6 12 1 0 BITMAP 48 00 FC 44 40 48 78 48 40 40 44 FC ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 5 0 BBX 3 12 1 0 BITMAP E0 00 E0 40 40 40 40 40 40 40 40 E0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 5 0 BBX 3 12 1 0 BITMAP E0 00 E0 40 40 40 40 40 40 40 40 E0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 5 0 BBX 5 12 2 0 BITMAP F8 00 70 20 20 20 20 20 20 20 20 70 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 5 0 BBX 4 12 2 0 BITMAP 90 00 70 20 20 20 20 20 20 20 20 70 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP FE00 4300 4180 4080 F080 4080 4080 4080 4100 FE00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP 3E00 0000 C380 6100 7100 5100 4900 4D00 4500 4300 4100 E100 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP 1C00 0000 3E00 6300 4100 8080 8080 8080 8080 4100 6300 3E00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP 1C00 0000 3E00 6300 4100 8080 8080 8080 8080 4100 6300 3E00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP 3E00 0000 3E00 6300 4100 8080 8080 8080 8080 4100 6300 3E00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP 3E00 0000 3E00 6300 4100 8080 8080 8080 8080 4100 6300 3E00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 11 0 BBX 9 12 1 0 BITMAP 2400 0000 3E00 6300 4100 8080 8080 8080 8080 4100 6300 3E00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 0 0 BITMAP 81 42 24 18 18 24 42 81 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 0 BITMAP 3E80 6180 4180 8680 8C80 9880 B080 E100 4300 BE00 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 1C00 0000 E380 4100 4100 4100 4100 4100 4100 4100 6300 3E00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 1C00 0000 E380 4100 4100 4100 4100 4100 4100 4100 6300 3E00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 3E00 0000 E380 4100 4100 4100 4100 4100 4100 4100 6300 3E00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 1200 0000 E380 4100 4100 4100 4100 4100 4100 4100 6300 3E00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 0 0 BITMAP 1C00 0000 F380 6100 2300 1200 0C00 0800 0800 0800 0800 1C00 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP E0 40 7C 42 42 42 44 78 40 E0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 9 0 BBX 6 11 1 0 BITMAP 30 48 48 50 50 50 48 4C 44 54 F8 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 0 0 BITMAP 38 00 78 84 04 7C 84 84 7E ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 0 0 BITMAP 38 00 78 84 04 7C 84 84 7E ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 0 0 BITMAP 7C 00 78 84 04 7C 84 84 7E ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 0 0 BITMAP 7C 00 78 84 04 7C 84 84 7E ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 0 0 BITMAP 48 00 78 84 04 7C 84 84 7E ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 0 BITMAP 30 48 00 78 84 04 7C 84 84 7E ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 11 0 BBX 10 7 1 0 BITMAP 7B80 8C40 0840 7FC0 8800 8C40 7380 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 -3 BITMAP 3C 44 84 80 80 40 3C 10 10 30 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 70 00 78 C4 84 FC 80 44 38 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 38 00 78 C4 84 FC 80 44 38 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 7C 00 78 C4 84 FC 80 44 38 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 48 00 78 C4 84 FC 80 44 38 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 4 0 BBX 3 9 1 0 BITMAP E0 00 C0 40 40 40 40 40 E0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 4 0 BBX 3 9 1 0 BITMAP E0 00 C0 40 40 40 40 40 E0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 4 0 BBX 5 9 2 0 BITMAP F8 00 60 20 20 20 20 20 70 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 4 0 BBX 4 9 2 0 BITMAP 90 00 60 20 20 20 20 20 70 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP FC 38 4C 3C 46 82 82 82 44 38 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 7C 00 DC 62 42 42 42 42 E7 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 38 00 38 44 82 82 82 44 38 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 38 00 38 44 82 82 82 44 38 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 7C 00 38 44 82 82 82 44 38 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 7C 00 38 44 82 82 82 44 38 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 48 00 38 44 82 82 82 44 38 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 0 BITMAP 10 00 00 FE 00 00 10 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 3A 46 8E 92 E2 C4 B8 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 0 0 BITMAP 38 00 C6 42 42 42 42 46 3B ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 0 0 BITMAP 1C 00 C6 42 42 42 42 46 3B ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 0 0 BITMAP 3E 00 C6 42 42 42 42 46 3B ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 0 0 BITMAP 24 00 C6 42 42 42 42 46 3B ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 0 -3 BITMAP 1C 00 F3 43 22 26 14 1C 18 08 10 70 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 9 0 BBX 8 13 0 -3 BITMAP C0 40 40 5E 63 41 41 41 42 7C 40 40 E0 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 0 -3 BITMAP 24 00 F3 43 22 26 14 1C 18 08 10 70 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 3E 42 42 42 FA 42 42 42 42 42 E7 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 1 3 BITMAP FC ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 -3 BITMAP 10 10 10 10 FE 10 10 10 10 10 10 10 10 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 1 0 BITMAP 7C 00 FE 84 0C 08 10 10 20 40 42 FE ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 12 7 0 0 BITMAP 3DE0 4310 8210 83F0 8200 C300 7DF0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 0 0 BITMAP 2400 0000 F380 6100 2300 1200 0C00 0800 0800 0800 0800 1C00 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 7 1 0 BITMAP C0 40 40 40 40 40 E0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 5 10 0 0 BITMAP E0 20 20 28 38 E0 20 20 20 F8 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 0 BITMAP E0 40 40 50 70 C0 C0 40 42 FE ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 -3 BITMAP 10 10 10 10 FE 10 10 10 10 FE 10 10 10 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 38 4A 48 40 FE 42 42 42 42 42 F7 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 7 1 0 BITMAP 80 C0 40 20 40 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 13 10 1 0 BITMAP 3DF8 6308 4108 8110 81F0 8110 8100 4108 6308 3DF8 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 12 1 1 3 BITMAP FFF0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 1 2 9 BITMAP F8 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 2 1 3 -3 BITMAP C0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 4 1 3 9 BITMAP F0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 7 1 0 BITMAP 20 40 40 80 40 60 20 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 1 1 4 9 BITMAP 80 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 1 2 9 BITMAP F8 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 4 4 2 2 BITMAP 60 F0 F0 60 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 1 2 9 BITMAP F8 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 1 2 9 BITMAP F8 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 3 1 7 BITMAP B0 A0 B0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 3 0 BBX 3 3 0 7 BITMAP E0 E0 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP F8 00 78 88 88 70 88 88 F0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 4 3 4 9 BITMAP 60 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 2 5 1 -3 BITMAP C0 C0 40 40 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 -3 BITMAP 0E 12 22 20 20 F0 60 60 40 40 40 C0 C0 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 12 5 0 5 BITMAP FF70 2360 22E0 22A0 7630 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 9 10 -3 0 BITMAP 0180 0100 0200 0400 0C00 1800 1000 2000 4000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 3 1 3 9 BITMAP E0 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 10 0 0 BITMAP 6180 9100 9200 9400 6C00 1B18 14A4 24A4 44A4 C318 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 9 1 3 0 BITMAP 8880 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 3 1 7 BITMAP 90 90 90 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 12 1 0 BITMAP F8 00 7C 84 84 C0 60 18 04 84 8C F8 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 5 1 -3 BITMAP 90 90 90 90 90 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP F8 00 FC 88 10 20 20 44 FC ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lubR12.bdf100644 1750 1750 72054 5413747536 15075 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-Medium-R-Normal--17-120-100-100-P-96-ISO8859-1 SIZE 12 100 100 FONTBOUNDINGBOX 27 20 -10 -4 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 17 POINT_SIZE 120 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 96 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 15 FONT_DESCENT 4 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 5 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 4 0 BBX 2 13 3 0 BITMAP 40 40 40 40 40 40 80 80 80 80 00 00 40 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 7 0 BBX 5 4 1 9 BITMAP 88 88 50 50 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP 0980 0900 0900 0900 7FC0 1200 1200 1200 FF80 2400 2400 2400 6400 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 10 0 BBX 7 14 2 -1 BITMAP 1E F2 92 90 90 70 18 14 12 12 92 94 F8 10 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 7060 C840 8880 8900 8B00 7200 05C0 0B20 1A20 1220 2220 4220 C1C0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 0 0 BITMAP 1E00 3300 2100 2100 3200 2C00 4CF0 8420 8220 8120 C0C0 61C0 3EF0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 4 0 BBX 2 5 1 8 BITMAP C0 C0 40 40 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 5 0 BBX 3 16 1 -3 BITMAP 20 40 40 80 80 80 80 80 80 80 80 80 80 40 40 20 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 5 0 BBX 3 16 1 -3 BITMAP 80 80 40 20 20 20 20 20 20 20 20 20 20 40 80 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 8 0 BBX 7 5 1 8 BITMAP 10 D2 2C 28 44 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 10 0 BBX 9 11 1 0 BITMAP 0800 0800 0800 0800 0800 FF80 0800 0800 0800 0800 0800 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 4 0 BBX 2 5 1 -3 BITMAP C0 C0 40 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 10 0 BBX 10 1 0 5 BITMAP FFC0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 4 0 BBX 2 1 1 0 BITMAP C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 9 0 BBX 9 16 0 -3 BITMAP 0080 0100 0100 0200 0200 0400 0400 0800 0800 1000 1000 2000 2000 4000 4000 8000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 0 BITMAP 3E00 4100 4100 8080 8080 8080 8080 8080 8080 8080 4100 4100 3E00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 10 0 BBX 5 13 3 0 BITMAP E0 20 20 20 20 20 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 10 0 BBX 7 13 2 0 BITMAP 78 84 82 02 02 06 0C 18 30 60 40 80 FE ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 10 0 BBX 7 13 2 0 BITMAP F8 86 82 02 02 04 7C 06 02 02 82 C4 F8 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 0 0 BITMAP 0200 0600 0A00 1A00 1200 2200 4200 C200 FF80 0200 0200 0200 0F80 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 10 0 BBX 6 13 2 0 BITMAP FC 80 80 80 F0 18 04 04 04 04 84 88 F0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 1F 23 41 80 80 BC C2 81 81 81 41 62 3C ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 2 0 BITMAP FF 03 02 06 04 08 18 10 30 20 20 40 40 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 3C C3 81 81 C1 7E 4C 82 81 81 81 42 3C ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 3C 46 82 81 81 81 43 3D 01 01 82 C4 F8 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 4 0 BBX 1 9 2 0 BITMAP 80 00 00 00 00 00 00 00 80 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 4 0 BBX 1 12 2 -3 BITMAP 80 00 00 00 00 00 00 80 80 80 80 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 10 0 BBX 10 11 0 0 BITMAP 0040 0180 0600 0C00 3000 C000 3000 0C00 0700 0180 0040 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 10 0 BBX 10 4 0 3 BITMAP FFC0 0000 0000 FFC0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 10 0 BBX 10 11 0 0 BITMAP 8000 6000 3800 0C00 0300 00C0 0300 0C00 1800 6000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 8 0 BBX 6 13 1 0 BITMAP F8 8C 84 04 08 08 10 20 20 20 00 00 20 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 1 0 BITMAP 07C0 1830 3010 6788 4888 9088 9108 9318 9730 9DE0 4000 6100 1E00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 0 0 BITMAP 0200 0600 0600 0500 0900 0880 1080 1080 3FC0 2040 2020 4020 E0F8 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 0 0 BITMAP FF00 2180 2080 2080 2080 2300 3F00 2300 2080 2080 2080 2180 FF00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 1FC0 30C0 4040 4000 8000 8000 8000 8000 8000 4000 4000 3040 1F80 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 0 0 BITMAP FF80 20C0 2020 2010 2010 2010 2010 2010 2010 2010 2020 2040 FF80 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP FFC0 2040 2000 2000 2000 2100 3F00 2100 2000 2000 2040 2040 FFC0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 9 0 BBX 9 13 0 0 BITMAP FF80 2080 2000 2000 2000 2100 3F00 2100 2000 2000 2000 2000 F800 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 1 0 BITMAP 1F80 30C0 4040 4000 8000 8000 8000 81F0 8040 4040 4040 3040 1FC0 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 0 0 BITMAP F8F8 2020 2020 2020 2020 2020 3FE0 2020 2020 2020 2020 2020 F8F8 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 6 0 BBX 5 13 0 0 BITMAP F8 20 20 20 20 20 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 7 0 BBX 7 16 0 -3 BITMAP 3E 08 08 08 08 08 08 08 08 08 08 08 08 88 90 F0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 0 0 BITMAP F9E0 20C0 2100 2200 2400 2800 3800 2C00 2600 2300 2180 20C0 F3F0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 9 0 BBX 9 13 0 0 BITMAP F800 2000 2000 2000 2000 2000 2000 2000 2000 2000 2080 2080 FF80 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 15 0 BBX 15 13 0 0 BITMAP F01E 3018 2818 2828 2828 2448 2448 2248 2288 2188 2108 2108 F83E ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 13 0 BBX 13 13 0 0 BITMAP E0F8 3020 3020 2820 2420 2620 2220 2120 21A0 20A0 2060 2020 F820 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 1 0 BITMAP 1F00 2080 4040 C060 8020 8020 8020 8020 8020 C060 4040 2080 1F00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 0 0 BITMAP FE00 2100 2080 2080 2080 2180 2300 3E00 2000 2000 2000 2000 F800 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 13 0 BBX 13 16 1 -3 BITMAP 1F00 2080 4040 C040 8020 8020 8020 8020 8020 C060 4040 20C0 1F80 0180 00E0 0038 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP FE00 2180 2080 2080 2080 2100 3E00 2200 2200 2100 2100 2080 F0E0 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 9 0 BBX 7 13 1 0 BITMAP 3E 42 82 80 C0 60 18 04 02 02 82 84 F8 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP FFE0 0400 0400 0400 0400 0400 0400 0400 0400 0400 0400 0400 1F00 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 12 0 BBX 13 13 0 0 BITMAP F8F8 2020 2020 2020 2020 2020 2020 2020 2020 2020 2020 1040 0F80 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 0 0 BITMAP F070 6020 2020 2040 1040 10C0 0880 0880 0D00 0500 0500 0200 0200 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 16 0 BBX 16 13 0 0 BITMAP F087 6182 2182 2184 21C4 1244 1248 1248 1428 0C30 0C30 0810 0810 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP F8E0 3040 1080 1100 0B00 0E00 0C00 0A00 1300 3100 2080 40C0 E3E0 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 0 0 BITMAP F8E0 3040 3080 1080 0900 0A00 0600 0400 0400 0400 0400 0400 1F00 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 11 0 BBX 8 13 1 0 BITMAP FF 82 86 04 0C 08 10 10 20 20 41 41 FF ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 5 0 BBX 3 16 2 -3 BITMAP E0 80 80 80 80 80 80 80 80 80 80 80 80 80 80 E0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 9 0 BBX 9 16 0 -3 BITMAP 8000 4000 4000 2000 2000 1000 1000 0800 0800 0400 0400 0200 0200 0100 0100 0080 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 5 0 BBX 3 16 1 -3 BITMAP E0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 10 0 BBX 10 11 0 2 BITMAP 0400 0C00 0C00 1200 1200 3300 2100 2100 4080 4080 8040 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 8 0 BBX 7 1 1 -1 BITMAP FE ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 4 0 BBX 2 5 1 8 BITMAP 40 80 80 C0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 9 0 BBX 8 9 1 0 BITMAP 7C 86 82 02 3E C2 82 C2 7F ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP E000 2000 2000 2000 2F00 3080 2040 2040 2040 2040 2040 3080 2F00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 3E 42 C2 80 80 80 80 60 3E ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 1 0 BITMAP 0700 0100 0100 0100 3D00 4300 8100 8100 8100 8100 8100 4300 3DC0 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 9 0 BBX 7 9 1 0 BITMAP 38 44 82 82 FE 80 80 42 3C ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 7 0 BBX 7 13 0 0 BITMAP 1E 22 22 20 FC 20 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 -3 BITMAP 3FC0 6300 4100 4100 4100 2200 7C00 4000 7F80 8040 C0C0 7F00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP E000 2000 2000 2000 2F00 3080 2080 2080 2080 2080 2080 2080 FBE0 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 5 0 BBX 5 13 0 0 BITMAP 20 00 00 00 E0 20 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 6 0 BBX 5 16 0 -3 BITMAP 08 00 00 00 38 08 08 08 08 08 08 08 08 88 88 F0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP E000 2000 2000 2000 2380 2300 2600 2800 3800 2C00 2600 2300 F1C0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 5 0 BBX 5 13 0 0 BITMAP E0 20 20 20 20 20 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 16 0 BBX 17 9 0 0 BITMAP EF3C00 30C200 208200 208200 208200 208200 208200 208200 FBEF80 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 11 0 BBX 11 9 0 0 BITMAP EF00 3080 2080 2080 2080 2080 2080 2080 FBE0 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 3E00 6300 C180 8080 8080 8080 C180 6300 3E00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 11 0 BBX 10 12 0 -3 BITMAP EF00 3080 2040 2040 2040 2040 2040 3080 2F00 2000 2000 F800 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 1 -3 BITMAP 3D00 4300 8100 8100 8100 8100 8100 4300 3D00 0100 0100 07C0 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP EC 34 24 20 20 20 20 20 F8 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 9 0 BBX 6 9 1 0 BITMAP 7C 84 84 C0 30 0C 84 84 F8 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 7 0 BBX 5 12 1 0 BITMAP 40 40 40 F8 40 40 40 40 40 40 40 38 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 11 0 BBX 11 9 0 0 BITMAP E380 2080 2080 2080 2080 2080 2080 2180 1EE0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 9 0 BBX 9 9 0 0 BITMAP F380 6100 2100 2200 1200 1600 1400 0C00 0800 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 14 0 BBX 14 9 0 0 BITMAP F11C 6308 2308 2298 2490 14D0 1860 1860 1020 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 9 0 BBX 10 9 0 0 BITMAP F1C0 6180 3300 1A00 0C00 1600 2300 4180 E3C0 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 9 0 BBX 9 12 0 -3 BITMAP F380 6100 2100 2300 1200 1200 1C00 0C00 0800 0800 1000 7000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 10 0 BBX 8 9 1 0 BITMAP FF 86 04 08 10 30 20 41 FF ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 6 0 BBX 4 16 1 -3 BITMAP 30 40 40 40 40 40 40 40 80 40 40 40 40 40 40 30 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 4 0 BBX 1 16 2 -3 BITMAP 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 6 0 BBX 4 16 1 -3 BITMAP C0 20 20 20 20 20 20 20 10 20 20 20 20 20 20 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 10 0 BBX 10 4 0 3 BITMAP 7040 9840 8440 8380 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 4 0 BBX 2 12 3 -3 BITMAP 40 00 00 80 80 80 40 40 40 40 40 40 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 10 0 BBX 7 13 1 0 BITMAP 10 1E 72 52 90 90 90 90 90 90 50 3E 10 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 10 0 BBX 7 13 2 0 BITMAP 1E 22 22 20 20 20 F8 20 20 20 20 40 FE ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 10 0 BBX 9 11 1 1 BITMAP 8080 DD80 7700 4100 4100 4100 4100 6300 2200 5D00 8080 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 10 0 BBX 11 13 0 0 BITMAP F9E0 30C0 1180 0B00 0600 3F80 0400 0400 3F80 0400 0400 0400 1F00 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 4 0 BBX 1 16 2 -3 BITMAP 80 80 80 80 80 80 80 00 00 80 80 80 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 10 0 BBX 7 16 2 -3 BITMAP 3E C6 82 80 80 70 9C 86 82 62 1C 06 02 82 C6 FC ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 10 0 BBX 5 1 3 12 BITMAP D8 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 15 0 BBX 12 13 1 0 BITMAP 0F00 30C0 6060 4F20 9910 9010 9010 9010 9810 4F20 6060 30C0 0F00 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 7 0 BBX 7 7 0 6 BITMAP F8 84 04 7C C4 84 7E ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 1 BITMAP 12 24 4C D8 4C 24 12 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 10 0 BBX 10 5 0 2 BITMAP FFC0 0040 0040 0040 0040 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 6 0 BBX 4 1 1 5 BITMAP F0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 10 0 BBX 7 8 2 5 BITMAP 38 44 FA AA AA B2 6C 38 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 10 0 BBX 5 1 3 12 BITMAP F8 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 4 0 BBX 3 4 1 9 BITMAP 40 A0 A0 40 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 10 0 BBX 9 11 1 0 BITMAP 0800 0800 0800 0800 FF80 0800 0800 0800 0000 0000 FF80 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 -10 5 BITMAP E0 90 10 10 20 40 80 F0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 6 0 BBX 4 8 -10 5 BITMAP E0 90 10 60 30 10 90 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 10 0 BBX 4 1 3 12 BITMAP F0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 11 0 BBX 11 12 0 -3 BITMAP E380 2080 2080 2080 2080 2080 2080 2180 3EE0 2000 2000 2000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 10 0 BBX 7 16 1 -3 BITMAP 7E FA FA FA FA 7A 1A 0A 0A 0A 0A 0A 0A 0A 0A 0A ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 10 0 BBX 2 1 4 5 BITMAP C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 10 0 BBX 3 3 4 -3 BITMAP C0 60 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 6 0 BBX 3 8 -10 5 BITMAP C0 40 40 40 40 40 40 E0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 6 BITMAP 78 CC 84 84 84 CC 78 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 9 0 BBX 7 7 1 1 BITMAP 90 48 64 36 64 48 90 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 4 0 BITMAP C0C0 4080 4100 4300 4200 4440 4CC0 E940 1240 33E0 2040 4040 80E0 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 13 0 BBX 10 13 4 0 BITMAP C0C0 4080 4100 4300 4200 4780 4E40 E840 1040 3080 2100 4200 83C0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 5 0 BITMAP E060 9040 1080 6180 3100 1220 9660 E4A0 0920 19F0 1020 2020 4070 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 8 0 BBX 6 13 1 -4 BITMAP 10 00 00 10 10 10 20 40 40 80 84 C4 7C ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 13 0 BBX 13 15 0 0 BITMAP 0F00 0000 0200 0600 0600 0500 0900 0880 1080 1080 3FC0 2040 2020 4020 E0F8 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 13 0 BBX 13 15 0 0 BITMAP 0780 0000 0200 0600 0600 0500 0900 0880 1080 1080 3FC0 2040 2020 4020 E0F8 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 13 0 BBX 13 15 0 0 BITMAP 1F80 0000 0200 0600 0600 0500 0900 0880 1080 1080 3FC0 2040 2020 4020 E0F8 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 13 0 BBX 13 15 0 0 BITMAP 0FC0 0000 0200 0600 0600 0500 0900 0880 1080 1080 3FC0 2040 2020 4020 E0F8 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 13 0 BBX 13 15 0 0 BITMAP 0D80 0000 0200 0600 0600 0500 0900 0880 1080 1080 3FC0 2040 2020 4020 E0F8 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 13 0 BBX 13 16 0 0 BITMAP 0700 0700 0000 0200 0600 0600 0500 0900 0880 1080 1080 3FC0 2040 2020 4020 E0F8 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 16 0 BBX 15 13 0 0 BITMAP 00FE 0182 0380 0280 0480 0C84 08FC 1080 1F80 2080 6080 4082 E3FE ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 12 0 BBX 10 16 1 -3 BITMAP 1FC0 30C0 4040 4000 8000 8000 8000 8000 8000 4000 4000 3040 1F80 0400 0600 0E00 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 10 0 BBX 10 15 0 0 BITMAP 1E00 0000 FFC0 2040 2000 2000 2000 2100 3F00 2100 2000 2000 2040 2040 FFC0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 10 0 BBX 10 15 0 0 BITMAP 1E00 0000 FFC0 2040 2000 2000 2000 2100 3F00 2100 2000 2000 2040 2040 FFC0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 10 0 BBX 10 15 0 0 BITMAP 3F00 0000 FFC0 2040 2000 2000 2000 2100 3F00 2100 2000 2000 2040 2040 FFC0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 10 0 BBX 10 15 0 0 BITMAP 1B00 0000 FFC0 2040 2000 2000 2000 2100 3F00 2100 2000 2000 2040 2040 FFC0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 6 0 BBX 5 15 0 0 BITMAP F0 00 F8 20 20 20 20 20 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 6 0 BBX 5 15 0 0 BITMAP 78 00 F8 20 20 20 20 20 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 6 0 BBX 6 15 1 0 BITMAP FC 00 7C 10 10 10 10 10 10 10 10 10 10 10 7C ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 6 0 BBX 5 15 0 0 BITMAP D8 00 F8 20 20 20 20 20 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 13 0 BBX 12 13 0 0 BITMAP FF80 20C0 2020 2010 2010 2010 FC10 2010 2010 2010 2020 2040 FF80 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 13 0 BBX 13 15 0 0 BITMAP 0FC0 0000 E0F8 3020 3020 2820 2420 2620 2220 2120 21A0 20A0 2060 2020 F820 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 13 0 BBX 11 15 1 0 BITMAP 1E00 0000 1F00 2080 4040 C060 8020 8020 8020 8020 8020 C060 4040 2080 1F00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 13 0 BBX 11 15 1 0 BITMAP 0F00 0000 1F00 2080 4040 C060 8020 8020 8020 8020 8020 C060 4040 2080 1F00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 13 0 BBX 11 15 1 0 BITMAP 3F00 0000 1F00 2080 4040 C060 8020 8020 8020 8020 8020 C060 4040 2080 1F00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 13 0 BBX 11 15 1 0 BITMAP 1F80 0000 1F00 2080 4040 C060 8020 8020 8020 8020 8020 C060 4040 2080 1F00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 13 0 BBX 11 15 1 0 BITMAP 1B00 0000 1F00 2080 4040 C060 8020 8020 8020 8020 8020 C060 4040 2080 1F00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 10 0 BBX 10 11 0 0 BITMAP 8040 4080 2100 3300 1E00 0C00 1E00 1200 2100 4080 8040 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 1 0 BITMAP 1F20 20E0 4060 C0E0 8120 8220 8420 8820 9020 E060 C040 E180 9F00 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 12 0 BBX 13 15 0 0 BITMAP 0F00 0000 F8F8 2020 2020 2020 2020 2020 2020 2020 2020 2020 2020 1040 0F80 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 12 0 BBX 13 15 0 0 BITMAP 0780 0000 F8F8 2020 2020 2020 2020 2020 2020 2020 2020 2020 2020 1040 0F80 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 12 0 BBX 13 15 0 0 BITMAP 0FC0 0000 F8F8 2020 2020 2020 2020 2020 2020 2020 2020 2020 2020 1040 0F80 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 12 0 BBX 13 15 0 0 BITMAP 0D80 0000 F8F8 2020 2020 2020 2020 2020 2020 2020 2020 2020 2020 1040 0F80 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 0 0 BITMAP 0F00 0000 F8E0 3040 3080 1080 0900 0A00 0600 0400 0400 0400 0400 0400 1F00 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 10 0 BBX 10 13 0 0 BITMAP F800 2000 2000 3F00 20C0 2040 2040 2040 2180 3E00 2000 2000 F800 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 10 0 BBX 11 13 0 0 BITMAP 1F00 3180 2080 2180 2200 2200 2300 2180 20C0 2020 2020 2220 FBC0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 3C 00 7C 86 82 02 3E C2 82 C2 7F ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 3C 00 7C 86 82 02 3E C2 82 C2 7F ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 7E 00 7C 86 82 02 3E C2 82 C2 7F ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 7E 00 7C 86 82 02 3E C2 82 C2 7F ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 1 0 BITMAP 6C 00 7C 86 82 02 3E C2 82 C2 7F ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 9 0 BBX 8 12 1 0 BITMAP 38 38 00 7C 86 82 02 3E C2 82 C2 7F ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 14 0 BBX 12 9 1 0 BITMAP 79C0 8E20 8410 0410 3FF0 C400 8400 8610 79E0 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 9 0 BBX 7 12 1 -3 BITMAP 3E 42 C2 80 80 80 80 60 3E 10 18 38 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 78 00 38 44 82 82 FE 80 80 42 3C ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 3C 00 38 44 82 82 FE 80 80 42 3C ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 7E 00 38 44 82 82 FE 80 80 42 3C ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 1 0 BITMAP 6C 00 38 44 82 82 FE 80 80 42 3C ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 5 0 BBX 5 11 0 0 BITMAP F0 00 E0 20 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 5 0 BBX 5 11 0 0 BITMAP 78 00 E0 20 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 5 0 BBX 6 11 1 0 BITMAP FC 00 70 10 10 10 10 10 10 10 7C ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 5 0 BBX 5 11 0 0 BITMAP D8 00 E0 20 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 10 0 BBX 9 13 1 0 BITMAP FE00 1C00 3E00 4300 3F00 6380 C180 8080 8080 8080 C180 6300 3E00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 11 0 BBX 11 11 0 0 BITMAP 3F00 0000 EF00 3080 2080 2080 2080 2080 2080 2080 FBE0 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 10 0 BBX 9 11 1 0 BITMAP 3C00 0000 3E00 6300 C180 8080 8080 8080 C180 6300 3E00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 10 0 BBX 9 11 1 0 BITMAP 1E00 0000 3E00 6300 C180 8080 8080 8080 C180 6300 3E00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 10 0 BBX 9 11 1 0 BITMAP 7E00 0000 3E00 6300 C180 8080 8080 8080 C180 6300 3E00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 10 0 BBX 9 11 1 0 BITMAP 7E00 0000 3E00 6300 C180 8080 8080 8080 C180 6300 3E00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 10 0 BBX 9 11 1 0 BITMAP 3600 0000 3E00 6300 C180 8080 8080 8080 C180 6300 3E00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 0800 0000 0000 0000 FF80 0000 0000 0000 0800 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 3E80 6180 C380 8680 8880 B080 E180 C300 BE00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 11 0 BBX 11 11 0 0 BITMAP 1E00 0000 E380 2080 2080 2080 2080 2080 2080 2180 1EE0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 11 0 BBX 11 11 0 0 BITMAP 0F00 0000 E380 2080 2080 2080 2080 2080 2080 2180 1EE0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 11 0 BBX 11 11 0 0 BITMAP 1F80 0000 E380 2080 2080 2080 2080 2080 2080 2180 1EE0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 11 0 BBX 11 11 0 0 BITMAP 1B00 0000 E380 2080 2080 2080 2080 2080 2080 2180 1EE0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 9 0 BBX 9 14 0 -3 BITMAP 1E00 0000 F380 6100 2100 2300 1200 1200 1C00 0C00 0800 0800 1000 7000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 11 0 BBX 10 16 0 -3 BITMAP E000 2000 2000 2000 2F00 3080 2040 2040 2040 2040 2040 3080 2F00 2000 2000 F800 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 9 0 BBX 9 14 0 -3 BITMAP 3600 0000 F380 6100 2100 2300 1200 1200 1C00 0C00 0800 0800 1000 7000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 13 0 0 BITMAP 1F80 2180 2080 2080 FC80 2080 2080 2080 2080 2080 2080 2080 FBE0 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 1 1 5 BITMAP FE ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 7 16 2 -3 BITMAP 10 10 10 10 10 FE 10 10 10 10 10 10 10 10 10 10 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 15 1 0 BITMAP 7E 00 FF 82 86 04 0C 08 10 10 20 20 41 41 FF ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 14 9 1 0 BITMAP 3C70 4288 C104 8104 81FC 8100 8100 4284 3C78 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 0 0 BITMAP 1B00 0000 F8E0 3040 3080 1080 0900 0A00 0600 0400 0400 0400 0400 0400 1F00 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 9 0 0 BITMAP E0 20 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 5 13 0 0 BITMAP E0 20 20 20 20 38 60 E0 20 20 20 20 F8 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 9 13 0 0 BITMAP F800 2000 2000 2000 2800 3800 2000 E000 2000 2000 2080 2080 FF80 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 7 16 2 -3 BITMAP 10 10 10 10 10 FE 10 10 10 10 10 FE 10 10 10 10 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 12 13 0 0 BITMAP 1E40 2200 2200 2000 FFC0 2040 2040 2040 2040 2040 2040 2040 F9F0 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 1 BITMAP 80 40 60 30 20 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 16 13 1 0 BITMAP 1F7F 30C1 4041 4040 8040 8042 807E 8042 8040 4040 4041 20C1 1F7F ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 15 1 1 5 BITMAP FFFE ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 1 2 12 BITMAP FC ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 3 1 4 -3 BITMAP E0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 5 1 3 12 BITMAP F8 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 4 7 1 1 BITMAP 10 20 40 C0 40 20 10 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 2 1 4 12 BITMAP C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 1 2 12 BITMAP FC ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 5 4 3 4 BITMAP 70 F8 F8 70 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 1 2 12 BITMAP FC ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 1 2 12 BITMAP FC ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 5 1 8 BITMAP 88 90 90 90 98 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 3 5 1 8 BITMAP E0 E0 E0 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 6 11 1 0 BITMAP FC 00 7C 84 84 C0 30 0C 84 84 F8 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 3 2 4 11 BITMAP E0 E0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 4 0 BBX 2 5 1 -3 BITMAP C0 C0 40 40 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 16 2 -3 BITMAP 07 09 11 10 20 20 F8 20 60 60 60 60 40 C0 C0 C0 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 12 7 2 6 BITMAP FF70 2360 2360 22E0 22A0 22A0 7630 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 10 13 -4 0 BITMAP 00C0 0080 0100 0300 0200 0400 0C00 0800 1000 3000 2000 4000 8000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 4 1 3 12 BITMAP F0 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 17 13 0 0 BITMAP 706000 C84000 888000 890000 8B0000 720000 05C700 0B2C80 1A2880 122880 222880 422880 C1C700 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 11 1 3 0 BITMAP 8420 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 5 1 8 BITMAP 88 88 88 88 88 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 7 15 1 0 BITMAP FC 00 3E 42 82 80 C0 60 18 04 02 02 82 84 F8 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 5 1 -3 BITMAP 88 88 88 88 88 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 7E 00 FF 86 04 08 10 30 20 41 FF ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lubR14.bdf100644 1750 1750 100413 5413747536 15106 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-Medium-R-Normal--20-140-100-100-P-114-ISO8859-1 SIZE 14 100 100 FONTBOUNDINGBOX 32 23 -12 -4 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 20 POINT_SIZE 140 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 114 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 18 FONT_DESCENT 5 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 6 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 5 0 BBX 2 15 2 0 BITMAP C0 C0 C0 C0 C0 C0 C0 80 80 80 80 00 00 C0 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 8 0 BBX 6 5 1 10 BITMAP CC CC CC 48 48 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 12 0 BBX 12 15 0 0 BITMAP 0440 0440 0440 0480 0880 7FF0 0880 0900 0900 1100 FFE0 1100 1200 2200 2200 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 12 0 BBX 7 18 3 -2 BITMAP 10 3E D2 D2 D0 D0 F0 70 38 1C 16 16 96 96 DC 78 10 10 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 13 0 BBX 13 15 0 0 BITMAP 7818 C410 8420 8440 8480 8580 7900 02F0 0490 0D08 0908 1108 2108 4090 C0F0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 14 0 BBX 14 15 0 0 BITMAP 0780 1CC0 18C0 18C0 18C0 0F80 1C00 663C 4708 C388 C1C8 C0D0 E0F0 70F0 1F3C ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 5 0 BBX 2 6 2 9 BITMAP C0 C0 40 40 C0 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 6 0 BBX 5 18 1 -3 BITMAP 08 10 20 20 60 40 C0 C0 C0 C0 C0 C0 40 60 20 20 10 08 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 6 0 BBX 5 18 1 -3 BITMAP 80 40 20 20 30 10 18 18 18 18 18 18 10 30 20 20 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 9 0 BBX 8 7 1 8 BITMAP 18 18 D3 24 18 64 26 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 1 0 BITMAP 0400 0400 0400 0400 0400 0400 FFE0 0400 0400 0400 0400 0400 0400 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 5 0 BBX 2 7 2 -4 BITMAP C0 C0 C0 40 40 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 12 0 BBX 12 1 0 6 BITMAP FFF0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 5 0 BBX 2 2 2 0 BITMAP C0 C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 10 0 BBX 10 18 0 -3 BITMAP 0040 0080 0080 0100 0100 0200 0200 0400 0400 0800 0800 1000 1000 2000 2000 4000 4000 8000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 1 0 BITMAP 1E00 2100 6180 4080 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 4080 6180 2100 1E00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 12 0 BBX 8 15 2 0 BITMAP F8 18 18 18 18 18 18 18 18 18 18 18 18 18 FF ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 12 0 BBX 8 15 2 0 BITMAP 7C C6 83 83 03 03 06 0C 08 30 20 40 40 FF FF ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 12 0 BBX 8 15 2 0 BITMAP FC 86 83 03 03 02 04 7C 06 03 03 03 83 C6 FC ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 0 0 BITMAP 0180 0380 0780 0580 0980 1180 2180 6180 C180 FFE0 0180 0180 0180 0180 07E0 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 12 0 BBX 8 15 2 0 BITMAP FF FF 80 80 80 80 F8 0E 07 03 03 03 87 86 F8 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 1 0 BITMAP 1F80 3180 6080 4000 C000 DF00 E180 C0C0 C0C0 C0C0 C0C0 40C0 6180 3180 1E00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 2 0 BITMAP FF80 FF80 0180 0100 0200 0600 0400 0800 1800 1000 3000 3000 2000 6000 6000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 1 0 BITMAP 1F00 3180 60C0 60C0 60C0 3980 1E00 2F00 4380 C1C0 C0C0 C0C0 C0C0 6180 3F00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 1 0 BITMAP 1E00 6300 6180 C080 C0C0 C0C0 C0C0 C0C0 61C0 3EC0 00C0 0080 4180 6300 7E00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 5 0 BBX 2 11 2 0 BITMAP C0 C0 00 00 00 00 00 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 5 0 BBX 2 15 2 -4 BITMAP C0 C0 00 00 00 00 00 00 00 C0 C0 40 40 40 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 0 0 BITMAP 0010 0060 00C0 0300 0C00 3000 C000 3000 0C00 0300 00C0 0060 0010 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 12 0 BBX 12 6 0 3 BITMAP FFF0 0000 0000 0000 0000 FFF0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 0 0 BITMAP 8000 E000 3000 0C00 0300 00C0 0030 00C0 0300 0C00 3000 6000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 10 0 BBX 8 15 1 0 BITMAP 7C C6 83 83 03 06 0C 18 10 30 30 00 00 30 30 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 17 0 BBX 16 15 1 0 BITMAP 03F0 0E0C 1806 21F2 6221 4421 8861 8861 88C3 88C2 8944 4678 6000 3040 0F80 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 15 0 BBX 15 15 0 0 BITMAP 0100 0300 0380 0380 05C0 04C0 08E0 0860 1060 1FF0 1030 2018 2018 401C F03E ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 0 0 BITMAP FF00 3180 30C0 30C0 30C0 3080 3100 3F80 31C0 30E0 3060 3060 3060 30C0 FF80 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 14 0 BBX 12 15 1 0 BITMAP 0FE0 3830 7010 6010 C000 C000 C000 C000 C000 C000 C000 6000 3000 1810 0FE0 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 15 0 BBX 14 15 0 0 BITMAP FFC0 3070 3018 3018 300C 300C 300C 300C 300C 300C 3008 3018 3010 3070 FFC0 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 11 0 BBX 11 15 0 0 BITMAP FFC0 3040 3040 3000 3000 3000 3080 3F80 3080 3000 3000 3000 3020 3020 FFE0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 0 0 BITMAP FFC0 3040 3040 3000 3000 3000 3080 3F80 3080 3000 3000 3000 3000 3000 FC00 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 15 0 BBX 14 15 1 0 BITMAP 0FE0 3830 7010 6010 E000 C000 C000 C000 C0FC C030 C030 6030 3030 1830 0FE0 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 15 0 BBX 15 15 0 0 BITMAP FC7E 3018 3018 3018 3018 3018 3018 3FF8 3018 3018 3018 3018 3018 3018 FC7E ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 7 0 BBX 6 15 0 0 BITMAP FC 30 30 30 30 30 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 8 0 BBX 8 18 0 -3 BITMAP 3F 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 8C 98 F0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 14 0 BBX 14 15 0 0 BITMAP FCF8 3020 3040 3080 3100 3200 3400 3E00 3700 3300 3180 30C0 30E0 3070 FCFC ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 11 0 BBX 11 15 0 0 BITMAP FC00 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3000 3020 3020 FFE0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 17 0 BBX 17 15 0 0 BITMAP F00780 380E00 380E00 2C0E00 2C1600 2E1600 262600 262600 232600 234600 23C600 218600 218600 200600 F81F80 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 15 0 BBX 15 15 0 0 BITMAP F03E 3808 3808 3C08 2E08 2708 2308 2188 21C8 20E8 2068 2038 2038 2018 F808 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 16 0 BBX 13 15 1 0 BITMAP 0F80 38E0 6030 6030 C018 C018 C018 C018 C018 C018 C018 6030 6030 38E0 0F80 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 11 0 BBX 11 15 0 0 BITMAP FF80 30C0 3060 3060 3060 3060 30E0 31C0 3F00 3000 3000 3000 3000 3000 FC00 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 16 0 BBX 17 18 1 -3 BITMAP 0FC000 387000 703800 601800 C00C00 C00C00 C00C00 C00C00 C00C00 C00C00 C00C00 601800 703800 387000 0FC000 006000 001E00 000780 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 13 0 BBX 14 15 0 0 BITMAP FF80 30C0 3060 3060 3060 3060 30C0 3F80 3300 3180 31C0 30C0 3060 3070 FC3C ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 11 0 BBX 9 15 1 0 BITMAP 3E00 6300 C100 C100 C000 E000 7800 1E00 0700 0380 0180 8180 8180 C300 7E00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 1 0 BITMAP FFF0 8610 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 1F80 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 14 0 BBX 14 15 0 0 BITMAP FC7C 3010 3010 3010 3010 3010 3010 3010 3010 3010 3010 3010 3030 1860 0FC0 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 14 0 BBX 14 15 0 0 BITMAP F83C 7008 3010 3010 1810 1820 1C20 0C60 0C40 0640 0680 0780 0380 0300 0100 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 18 0 BBX 18 15 0 0 BITMAP F843C0 60C080 30C100 30E100 30E100 316200 197200 193200 1A3200 1A3400 0E1C00 0E1C00 0C1C00 0C0800 040800 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 13 0 BBX 13 15 0 0 BITMAP FC78 3030 3820 1840 0C80 0E80 0700 0700 0780 0980 19C0 10C0 2060 4070 F0F8 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 14 0 BBX 14 15 0 0 BITMAP FC3C 7018 3810 1820 0C60 0E40 0680 0380 0300 0300 0300 0300 0300 0300 0FC0 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 13 0 BBX 10 15 1 0 BITMAP FFC0 81C0 8180 0300 0700 0600 0E00 0C00 1800 1800 3000 7000 6040 C040 FFC0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 6 0 BBX 4 18 2 -3 BITMAP F0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 F0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 10 0 BBX 10 18 0 -3 BITMAP 8000 4000 4000 2000 2000 1000 1000 0800 0800 0400 0400 0200 0200 0100 0100 0080 0080 0040 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 6 0 BBX 4 18 1 -3 BITMAP F0 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 F0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 0 2 BITMAP 0200 0600 0600 0F00 0900 0900 1080 1080 2040 2040 4020 4020 8010 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 10 0 BBX 8 1 1 -2 BITMAP FF ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 5 0 BBX 2 6 2 9 BITMAP 40 80 80 80 C0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 11 0 BBX 10 11 1 0 BITMAP 3E00 6700 4300 0300 0300 3F00 6300 C300 C300 E300 7DC0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 12 0 BBX 12 15 0 0 BITMAP F000 3000 3000 3000 37C0 3860 3070 3030 3030 3030 3030 3030 3020 3860 2780 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 1F 71 61 C0 C0 C0 C0 C0 60 70 1F ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 1 0 BITMAP 03C0 00C0 00C0 00C0 1EC0 61C0 40C0 C0C0 C0C0 C0C0 C0C0 C0C0 E0C0 61C0 3EF0 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 11 0 BBX 9 11 1 0 BITMAP 1E00 6300 6100 C180 C180 FF80 C000 C000 6000 7080 1F00 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 8 0 BBX 8 16 0 0 BITMAP 1F 31 31 30 30 FE 30 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 11 0 BBX 11 15 0 -4 BITMAP 1FE0 3300 6180 6180 6180 6180 3300 1E00 6000 6000 3F80 C0C0 C0C0 E180 3F00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 13 0 BBX 13 15 0 0 BITMAP F000 3000 3000 3000 33C0 3C60 3060 3060 3060 3060 3060 3060 3060 3060 FDF8 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 6 0 BBX 6 15 0 0 BITMAP 30 30 00 00 F0 30 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 7 0 BBX 6 19 0 -4 BITMAP 0C 0C 00 00 3C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 8C 8C F8 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 12 0 BBX 12 15 0 0 BITMAP F000 3000 3000 3000 31E0 30C0 3180 3200 3400 3E00 3700 3380 3180 30C0 FC70 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 6 0 BBX 6 15 0 0 BITMAP F0 30 30 30 30 30 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 19 0 BBX 18 11 1 0 BITMAP F79E00 38E300 30C300 30C300 30C300 30C300 30C300 30C300 30C300 30C300 FFFFC0 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 13 0 BBX 13 11 0 0 BITMAP F3C0 3C60 3060 3060 3060 3060 3060 3060 3060 3060 FDF8 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 12 0 BBX 10 11 1 0 BITMAP 1E00 7380 6180 C0C0 C0C0 C0C0 C0C0 C0C0 6180 7380 1E00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 13 0 BBX 12 15 0 -4 BITMAP F7C0 3860 3070 3030 3030 3030 3030 3030 3020 3860 3780 3000 3000 3000 FC00 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 12 0 BBX 12 15 1 -4 BITMAP 1EC0 61C0 40C0 C0C0 C0C0 C0C0 C0C0 C0C0 E0C0 61C0 3EC0 00C0 00C0 00C0 03F0 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 9 0 BBX 8 11 0 0 BITMAP F7 3D 31 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 7C E6 C2 C2 F0 7E 0F 83 83 C7 7C ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 8 0 BBX 7 14 1 0 BITMAP 30 30 30 FE 30 30 30 30 30 30 30 30 30 1E ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 13 0 BBX 13 11 0 0 BITMAP F1E0 3060 3060 3060 3060 3060 3060 3060 3060 31E0 1E78 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 11 0 BBX 11 11 0 0 BITMAP F8E0 6040 7040 3080 3080 1900 1900 0F00 0E00 0E00 0400 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 16 0 BBX 16 11 0 0 BITMAP F887 6182 61C2 71C6 32E4 3264 3A68 1C38 1C38 1830 0810 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 11 0 BBX 11 11 0 0 BITMAP F9E0 70C0 3080 1900 1E00 0E00 0F00 1300 2180 41C0 E3E0 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 11 0 BBX 11 15 0 -4 BITMAP F8E0 6040 7040 3080 3080 1980 1900 0D00 0E00 0E00 0400 0400 0800 1800 3800 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 12 0 BBX 9 11 1 0 BITMAP FF80 8300 8700 0E00 0C00 1C00 3800 3000 6080 E080 FF80 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 7 0 BBX 5 18 1 -3 BITMAP 18 20 20 20 20 20 20 20 20 C0 20 20 20 20 20 20 20 18 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 5 0 BBX 1 18 2 -3 BITMAP 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 7 0 BBX 5 18 1 -3 BITMAP C0 20 20 20 60 40 40 40 20 38 60 40 40 60 20 20 20 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 12 0 BBX 12 4 0 4 BITMAP 7010 8C10 8310 81E0 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 5 0 BBX 2 15 2 -4 BITMAP C0 C0 00 00 80 80 80 80 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 1 0 BITMAP 0400 0400 0F80 3480 6480 C400 C400 C400 C400 C400 4400 2480 1F80 0400 0400 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 12 0 BBX 8 15 3 0 BITMAP 0F 11 31 30 30 30 30 FC 30 30 30 30 20 C0 FF ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 1 1 BITMAP 8020 4040 7FC0 3180 60C0 4040 4040 4040 60C0 3180 7FC0 4040 8020 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 12 0 BBX 14 15 0 0 BITMAP FC3C 3018 3830 1C60 0E40 0680 0300 1FE0 0300 0300 1FE0 0300 0300 0300 0FC0 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 5 0 BBX 1 18 2 -3 BITMAP 80 80 80 80 80 80 80 80 00 00 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 12 0 BBX 9 19 2 -4 BITMAP 3F00 6300 C100 C000 C000 6000 3C00 5E00 C700 C100 E100 7900 3E00 0700 0380 0180 8180 C300 7E00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 12 0 BBX 6 2 3 13 BITMAP CC CC ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 17 0 BBX 15 15 1 0 BITMAP 07C0 1830 3008 63C4 4444 8842 8802 8802 8802 8802 4444 43C4 2008 1830 07C0 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 9 0 BBX 8 8 1 7 BITMAP 7C 46 06 3E E6 C6 C6 7F ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 11 0 BBX 8 9 1 1 BITMAP 11 12 26 4C C8 44 26 12 11 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 12 0 BBX 12 6 0 3 BITMAP FFF0 0010 0010 0010 0010 0010 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 7 0 BBX 5 1 1 7 BITMAP F8 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 12 0 BBX 8 10 2 5 BITMAP 3C 46 C2 BD 95 95 99 76 66 3C ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 12 0 BBX 6 1 3 14 BITMAP FC ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 5 0 BBX 3 4 1 11 BITMAP 40 A0 A0 40 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 12 0 BBX 11 13 1 0 BITMAP 0400 0400 0400 0400 FFE0 0400 0400 0400 0400 0400 0000 0000 FFE0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 -12 6 BITMAP 70 88 88 08 10 20 40 80 F8 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 -12 6 BITMAP F0 88 08 08 70 08 08 88 F0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 12 0 BBX 4 3 4 12 BITMAP 30 40 80 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 13 0 BBX 13 14 0 -3 BITMAP F1E0 3060 3060 3060 3060 3060 3060 3060 3060 30E0 3F78 3000 3000 3000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 12 0 BBX 9 18 1 -3 BITMAP 7F80 FC80 FC80 FC80 FC80 7C80 3C80 0480 0480 0480 0480 0480 0480 0480 0480 0480 0480 0480 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 12 0 BBX 2 2 5 6 BITMAP C0 C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 12 0 BBX 3 5 5 -4 BITMAP 40 C0 20 20 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 -12 6 BITMAP E0 20 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 9 0 BBX 7 8 1 7 BITMAP 38 6C C6 C6 C6 C6 6C 38 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 11 0 BBX 8 9 1 1 BITMAP 88 48 64 22 13 32 64 48 88 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 15 0 BBX 13 15 3 0 BITMAP E018 2010 2020 2040 2040 2080 2130 2330 FA50 0490 0990 09F8 1010 2010 6038 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 15 0 BBX 13 15 3 0 BITMAP E018 2010 2020 2040 2040 2080 2170 2388 FA88 0408 0810 0820 1040 2080 60F8 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 15 0 BBX 13 15 3 0 BITMAP F018 8810 0820 0840 7040 0880 0930 8B30 F250 0490 0990 09F8 1010 2010 6038 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 10 0 BBX 8 15 1 -4 BITMAP 0C 0C 00 00 0C 0C 08 18 30 60 C0 C1 C1 63 3E ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 15 0 BBX 15 19 0 0 BITMAP 0600 0100 0080 0000 0100 0300 0380 0380 05C0 04C0 08E0 0860 1060 1FF0 1030 2018 2018 401C F03E ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 15 0 BBX 15 19 0 0 BITMAP 00C0 0100 0200 0000 0100 0300 0380 0380 05C0 04C0 08E0 0860 1060 1FF0 1030 2018 2018 401C F03E ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 15 0 BBX 15 19 0 0 BITMAP 0380 06C0 0C60 0000 0100 0300 0380 0380 05C0 04C0 08E0 0860 1060 1FF0 1030 2018 2018 401C F03E ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 0 0 BITMAP 0320 04C0 0000 0100 0300 0380 0380 05C0 04C0 08E0 0860 1060 1FF0 1030 2018 2018 401C F03E ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 0 0 BITMAP 0CC0 0CC0 0000 0100 0300 0380 0380 05C0 04C0 08E0 0860 1060 1FF0 1030 2018 2018 401C F03E ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 15 0 BBX 15 19 0 0 BITMAP 0380 0280 0380 0000 0100 0300 0380 0380 05C0 04C0 08E0 0860 1060 1FF0 1030 2018 2018 401C F03E ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 18 0 BBX 18 15 0 0 BITMAP 007F80 00F080 01B080 01B000 033000 023080 043F80 0C3080 083000 1FF000 103000 203000 203040 403040 F0FFC0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 14 0 BBX 12 19 1 -4 BITMAP 0FE0 3830 7010 6010 C000 C000 C000 C000 C000 C000 C000 6000 3000 1810 0FE0 0200 0100 0100 0600 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 11 0 BBX 11 19 0 0 BITMAP 1800 0400 0200 0000 FFC0 3040 3040 3000 3000 3000 3080 3F80 3080 3000 3000 3000 3020 3020 FFE0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 11 0 BBX 11 19 0 0 BITMAP 0300 0400 0800 0000 FFC0 3040 3040 3000 3000 3000 3080 3F80 3080 3000 3000 3000 3020 3020 FFE0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 11 0 BBX 11 19 0 0 BITMAP 0E00 1B00 3180 0000 FFC0 3040 3040 3000 3000 3000 3080 3F80 3080 3000 3000 3000 3020 3020 FFE0 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 11 0 BBX 11 18 0 0 BITMAP 1980 1980 0000 FFC0 3040 3040 3000 3000 3000 3080 3F80 3080 3000 3000 3000 3020 3020 FFE0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 7 0 BBX 6 19 0 0 BITMAP 60 10 08 00 FC 30 30 30 30 30 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 7 0 BBX 6 19 0 0 BITMAP 18 20 40 00 FC 30 30 30 30 30 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 7 0 BBX 7 19 1 0 BITMAP 38 6C C6 00 7E 18 18 18 18 18 18 18 18 18 18 18 18 18 7E ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 7 0 BBX 6 18 0 0 BITMAP CC CC 00 FC 30 30 30 30 30 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 15 0 BBX 14 15 0 0 BITMAP FFC0 3070 3018 3018 300C 300C 300C FE0C 300C 300C 3008 3018 3010 3070 FFC0 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 0 0 BITMAP 0320 04C0 0000 F03E 3808 3808 3C08 2E08 2708 2308 2188 21C8 20E8 2068 2038 2038 2018 F808 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 1 0 BITMAP 0C00 0200 0100 0000 0F80 38E0 6030 6030 C018 C018 C018 C018 C018 C018 C018 6030 6030 38E0 0F80 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 1 0 BITMAP 0180 0200 0400 0000 0F80 38E0 6030 6030 C018 C018 C018 C018 C018 C018 C018 6030 6030 38E0 0F80 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 1 0 BITMAP 0700 0D80 18C0 0000 0F80 38E0 6030 6030 C018 C018 C018 C018 C018 C018 C018 6030 6030 38E0 0F80 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 16 0 BBX 13 18 1 0 BITMAP 0640 0980 0000 0F80 38E0 6030 6030 C018 C018 C018 C018 C018 C018 C018 6030 6030 38E0 0F80 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 16 0 BBX 13 18 1 0 BITMAP 1980 1980 0000 0F80 38E0 6030 6030 C018 C018 C018 C018 C018 C018 C018 6030 6030 38E0 0F80 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 12 0 BBX 12 13 0 0 BITMAP 8010 4020 2040 1080 1980 0F00 0600 0F00 0980 1080 2040 4020 8010 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 16 0 BBX 13 15 1 0 BITMAP 0F88 38D0 6030 6070 C058 C098 C118 C218 C418 CC18 D818 7030 6030 58E0 8F80 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 14 0 BBX 14 19 0 0 BITMAP 0600 0100 0080 0000 FC7C 3010 3010 3010 3010 3010 3010 3010 3010 3010 3010 3010 3030 1860 0FC0 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 14 0 BBX 14 19 0 0 BITMAP 0180 0200 0400 0000 FC7C 3010 3010 3010 3010 3010 3010 3010 3010 3010 3010 3010 3030 1860 0FC0 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 14 0 BBX 14 19 0 0 BITMAP 0380 06C0 0C60 0000 FC7C 3010 3010 3010 3010 3010 3010 3010 3010 3010 3010 3010 3030 1860 0FC0 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 0 0 BITMAP 0CC0 0CC0 0000 FC7C 3010 3010 3010 3010 3010 3010 3010 3010 3010 3010 3010 3030 1860 0FC0 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 14 0 BBX 14 19 0 0 BITMAP 0180 0200 0400 0000 FC3C 7018 3810 1820 0C60 0E40 0680 0380 0300 0300 0300 0300 0300 0300 0FC0 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 11 0 BBX 11 15 0 0 BITMAP FC00 3000 3000 3F80 30C0 3060 3060 3060 3060 30C0 31C0 3F00 3000 3000 FC00 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 12 0 BBX 11 16 0 0 BITMAP 1F00 1380 3180 3180 3100 3100 3200 3300 3380 31C0 30C0 3060 3020 3220 3260 FBC0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 1 0 BITMAP 1800 0400 0200 0000 3E00 6700 4300 0300 0300 3F00 6300 C300 C300 E300 7DC0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 1 0 BITMAP 0600 0800 1000 0000 3E00 6700 4300 0300 0300 3F00 6300 C300 C300 E300 7DC0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 1 0 BITMAP 1C00 3600 6300 0000 3E00 6700 4300 0300 0300 3F00 6300 C300 C300 E300 7DC0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 1900 2600 0000 3E00 6700 4300 0300 0300 3F00 6300 C300 C300 E300 7DC0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP 3300 3300 0000 3E00 6700 4300 0300 0300 3F00 6300 C300 C300 E300 7DC0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 11 0 BBX 10 15 1 0 BITMAP 1C00 1400 1C00 0000 3E00 6700 4300 0300 0300 3F00 6300 C300 C300 E300 7DC0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 16 0 BBX 14 11 1 0 BITMAP 3CF0 6798 4308 030C 030C 3FFC 6300 C300 C380 E5C4 78F8 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 10 0 BBX 8 15 1 -4 BITMAP 1F 71 61 C0 C0 C0 C0 C0 60 70 1F 08 04 04 18 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 11 0 BBX 9 15 1 0 BITMAP 3000 0800 0400 0000 1E00 6300 6100 C180 C180 FF80 C000 C000 6000 7080 1F00 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 11 0 BBX 9 15 1 0 BITMAP 0600 0800 1000 0000 1E00 6300 6100 C180 C180 FF80 C000 C000 6000 7080 1F00 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 11 0 BBX 9 15 1 0 BITMAP 1C00 3600 6300 0000 1E00 6300 6100 C180 C180 FF80 C000 C000 6000 7080 1F00 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 11 0 BBX 9 14 1 0 BITMAP 3300 3300 0000 1E00 6300 6100 C180 C180 FF80 C000 C000 6000 7080 1F00 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 6 0 BBX 6 15 0 0 BITMAP 60 10 08 00 F0 30 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 6 0 BBX 6 15 0 0 BITMAP 18 20 40 00 F0 30 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 6 0 BBX 7 15 1 0 BITMAP 38 6C C6 00 78 18 18 18 18 18 18 18 18 18 7E ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 6 0 BBX 6 14 0 0 BITMAP CC CC 00 F0 30 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 1 0 BITMAP FE00 1C00 3E00 4300 1F00 7180 6180 C0C0 C0C0 C0C0 C0C0 C0C0 6180 7380 1E00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 13 0 BBX 13 14 0 0 BITMAP 0C80 1300 0000 F3C0 3C60 3060 3060 3060 3060 3060 3060 3060 3060 FDF8 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 1 0 BITMAP 1800 0400 0200 0000 1E00 7380 6180 C0C0 C0C0 C0C0 C0C0 C0C0 6180 7380 1E00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 1 0 BITMAP 0600 0800 1000 0000 1E00 7380 6180 C0C0 C0C0 C0C0 C0C0 C0C0 6180 7380 1E00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 1 0 BITMAP 1C00 3600 6300 0000 1E00 7380 6180 C0C0 C0C0 C0C0 C0C0 C0C0 6180 7380 1E00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP 1900 2600 0000 1E00 7380 6180 C0C0 C0C0 C0C0 C0C0 C0C0 6180 7380 1E00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP 3300 3300 0000 1E00 7380 6180 C0C0 C0C0 C0C0 C0C0 C0C0 6180 7380 1E00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 12 0 BBX 12 11 0 0 BITMAP 0600 0600 0000 0000 0000 FFF0 0000 0000 0000 0600 0600 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 12 0 BBX 10 11 1 0 BITMAP 1E40 7180 6180 C2C0 C6C0 CCC0 D8C0 D0C0 6180 7380 9E00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 13 0 BBX 13 15 0 0 BITMAP 0C00 0200 0100 0000 F1E0 3060 3060 3060 3060 3060 3060 3060 3060 31E0 1E78 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 13 0 BBX 13 15 0 0 BITMAP 0180 0200 0400 0000 F1E0 3060 3060 3060 3060 3060 3060 3060 3060 31E0 1E78 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 13 0 BBX 13 15 0 0 BITMAP 0700 0D80 18C0 0000 F1E0 3060 3060 3060 3060 3060 3060 3060 3060 31E0 1E78 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 13 0 BBX 13 14 0 0 BITMAP 0CC0 0CC0 0000 F1E0 3060 3060 3060 3060 3060 3060 3060 3060 31E0 1E78 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 11 0 BBX 11 19 0 -4 BITMAP 0300 0400 0800 0000 F8E0 6040 7040 3080 3080 1980 1900 0D00 0E00 0E00 0400 0400 0800 1800 3800 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 13 0 BBX 12 18 0 -4 BITMAP F000 3000 3000 37C0 3860 3070 3030 3030 3030 3030 3030 3020 3860 3780 3000 3000 3000 FC00 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 11 0 BBX 11 18 0 -4 BITMAP 1980 1980 0000 F8E0 6040 7040 3080 3080 1980 1900 0D00 0E00 0E00 0400 0400 0800 1800 3800 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 13 16 0 0 BITMAP 1FE0 30E0 3060 3060 3060 FE60 3060 3060 3060 3060 3060 3060 3060 3060 3060 FDF8 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 1 1 6 BITMAP FF ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 18 2 -3 BITMAP 0C00 0C00 0C00 0800 0800 0800 FF80 0800 0800 0800 0800 0800 0C00 0C00 0C00 0C00 0C00 0C00 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 10 19 1 0 BITMAP 3180 1B00 0E00 0000 FFC0 81C0 8180 0300 0700 0600 0E00 0C00 1800 1800 3000 7000 6040 C040 FFC0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 15 11 2 0 BITMAP 1C78 62C4 6186 C186 C1FE C180 C180 C180 E1C0 62E2 3C3C ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 0 0 BITMAP 0CC0 0CC0 0000 FC3C 7018 3810 1820 0C60 0E40 0680 0380 0300 0300 0300 0300 0300 0300 0FC0 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 11 0 0 BITMAP F0 30 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 6 15 0 0 BITMAP F0 30 30 30 30 34 3C 30 F0 30 30 30 30 30 FC ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 15 0 0 BITMAP FC00 3000 3000 3000 3000 3400 3C00 3000 F000 B000 3000 3000 3020 3020 FFE0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 18 2 -3 BITMAP 0C00 0C00 0C00 0800 0800 FF80 0800 0800 0800 0800 0800 FF80 0800 0800 0800 0C00 0C00 0C00 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 12 16 1 0 BITMAP 1E00 32C0 32C0 3000 3000 FFC0 30C0 30C0 30C0 30C0 30C0 30C0 30C0 30C0 30C0 F9F0 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 1 BITMAP 80 40 20 30 18 30 60 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 19 15 1 0 BITMAP 0FBFC0 38F040 607040 603000 C03000 C03000 C03080 C03F80 C03080 C03000 C03000 603000 607020 38F020 0FBFE0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 18 1 1 6 BITMAP FFFFC0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 3 3 12 BITMAP C6 6C 38 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 3 3 5 -3 BITMAP 40 80 E0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 6 3 4 12 BITMAP 3C 50 B0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 1 BITMAP 08 10 30 60 C0 60 20 10 08 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 2 2 5 13 BITMAP C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 3 3 12 BITMAP 82 7C 38 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 6 6 3 4 BITMAP 78 FC FC FC FC 78 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 6 2 3 13 BITMAP 64 98 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 3 3 12 BITMAP 38 6C C6 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 6 6 2 9 BITMAP 44 88 88 88 CC CC ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 3 5 1 10 BITMAP E0 E0 E0 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 15 1 0 BITMAP C6 6C 38 00 7C E6 C2 C2 F0 7E 0F 83 83 C7 7C ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 3 3 5 13 BITMAP E0 A0 E0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 5 0 BBX 2 7 2 -4 BITMAP C0 C0 C0 40 40 40 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 18 3 -3 BITMAP 0780 0C80 1880 1800 1000 3000 3000 FC00 3000 2000 6000 6000 6000 6000 6000 C000 C000 C000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 17 8 0 7 BITMAP FEE380 927300 107500 107500 105D00 105900 104900 7CC180 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 12 15 -5 0 BITMAP 0030 0020 0040 0080 0080 0100 0200 0600 0400 0800 1000 1000 2000 4000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 4 3 4 12 BITMAP C0 20 10 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 20 15 0 0 BITMAP 781800 C41000 842000 844000 848000 858000 790000 02F1E0 049120 0D0A10 090A10 110A10 210A10 409120 C0F1E0 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 13 2 4 0 BITMAP C618 C618 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 6 6 2 9 BITMAP CC CC 44 44 CC 88 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 9 19 1 0 BITMAP 6300 3600 1C00 0000 3E00 6300 C100 C100 C000 E000 7800 1E00 0700 0380 0180 8180 8180 C300 7E00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 6 7 2 -4 BITMAP CC CC 44 44 44 44 88 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 1 0 BITMAP 6300 3600 1C00 0000 FF80 8300 8700 0E00 0C00 1C00 3800 3000 6080 E080 FF80 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lubR18.bdf100644 1750 1750 112353 5413747537 15121 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-Medium-R-Normal--25-180-100-100-P-142-ISO8859-1 SIZE 18 100 100 FONTBOUNDINGBOX 41 28 -15 -5 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 25 POINT_SIZE 180 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 142 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 23 FONT_DESCENT 6 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 8 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 7 0 BBX 3 18 2 0 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 40 40 40 40 40 00 00 E0 E0 E0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 10 0 BBX 7 5 1 13 BITMAP EE EE EE 44 44 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 0 0 BITMAP 0318 0318 0330 0630 0630 7FFE 7FFE 0660 0C60 0C60 0CC0 FFFC FFFC 18C0 18C0 1980 3180 3180 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 15 0 BBX 10 21 3 -2 BITMAP 0400 0F80 35C0 74C0 74C0 7400 7400 7C00 3C00 1E00 0F80 0780 07C0 05C0 05C0 C5C0 C580 E780 7E00 0400 0400 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 17 0 BBX 17 18 0 0 BITMAP 3C0380 660300 C30600 C30C00 C31C00 C33800 C37000 66E000 3CC000 019E00 03B300 076180 0E6180 1C6180 186180 306180 603300 E01E00 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 17 0 BBX 16 18 1 0 BITMAP 0780 0CC0 1CE0 1CE0 1CE0 0CC0 0F80 0E00 371F 670C E38C E3CC E1E8 E1F0 F0F0 78F8 3FDE 1F1F ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 7 0 BBX 3 6 2 12 BITMAP E0 E0 60 60 60 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 8 0 BBX 6 22 1 -4 BITMAP 04 08 18 30 30 70 60 E0 E0 E0 E0 E0 E0 E0 E0 60 70 30 30 18 08 04 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 8 0 BBX 6 22 1 -4 BITMAP 80 40 60 30 30 38 18 1C 1C 1C 1C 1C 1C 1C 1C 18 38 30 30 60 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 12 0 BBX 10 9 1 9 BITMAP 0C00 0C00 4C40 EDC0 3200 0E00 1A00 7300 2180 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 15 0 BBX 16 15 0 0 BITMAP 0180 0180 0180 0180 0180 0180 FFFF FFFF 0180 0180 0180 0180 0180 0180 0180 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 7 0 BBX 3 8 2 -5 BITMAP E0 E0 E0 60 60 60 60 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 15 0 BBX 14 2 1 6 BITMAP FFFC FFFC ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 7 0 BBX 3 3 2 0 BITMAP E0 E0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 13 0 BBX 13 22 0 -4 BITMAP 0018 0038 0030 0070 0060 00E0 00C0 0180 0180 0300 0300 0600 0600 0C00 0C00 1800 3800 3000 7000 6000 E000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 0F80 18C0 3060 7070 6030 E038 E038 E038 E038 E038 E038 E038 E038 6030 7070 3060 18C0 0F80 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 15 0 BBX 9 18 3 0 BITMAP FC00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 FF80 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 15 0 BBX 10 18 2 0 BITMAP 3E00 E380 C1C0 C1C0 C1C0 01C0 01C0 0380 0300 0600 0800 1000 2000 6000 4000 FFC0 FFC0 FFC0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 15 0 BBX 11 18 2 0 BITMAP 7F00 E1C0 C0E0 C0E0 00E0 00E0 00C0 0300 3E00 0380 01C0 00E0 00E0 00E0 C0E0 C1C0 E380 FF00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 0060 00E0 01E0 02E0 06E0 04E0 08E0 10E0 30E0 60E0 40E0 FFF8 FFF8 00E0 00E0 00E0 01E0 07F8 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 15 0 BBX 9 18 3 0 BITMAP FF80 FF80 FF80 8000 8000 8000 8000 F800 0E00 0700 0380 0380 0380 0380 C380 C700 C600 FC00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 2 0 BITMAP 0FC0 18E0 3060 7060 6000 E000 E000 EF80 F8E0 E060 E070 E070 E070 6070 6070 30E0 38C0 0F80 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 2 0 BITMAP FFF0 FFF0 FFF0 0020 0040 0080 0180 0100 0200 0600 0C00 0C00 1800 3800 3800 3000 7000 7000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 2 0 BITMAP 0FC0 38E0 7070 7070 7070 7070 38E0 1E80 0F80 37C0 61E0 60F0 E070 E070 E070 7060 70C0 1F80 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 2 0 BITMAP 1F00 31C0 70C0 E060 E060 E070 E070 E070 6070 71F0 1F70 0070 0070 0060 60E0 60C0 7180 3F00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 7 0 BBX 3 13 2 0 BITMAP E0 E0 E0 00 00 00 00 00 00 00 E0 E0 E0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 7 0 BBX 3 18 2 -5 BITMAP E0 E0 E0 00 00 00 00 00 00 00 00 E0 E0 60 60 60 60 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 15 0 BBX 15 15 2 0 BITMAP 0006 001E 003C 00F0 03C0 0F00 3C00 F800 3C00 0F00 03C0 00F0 003C 001E 0006 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 15 0 BBX 14 6 1 4 BITMAP FFFC FFFC 0000 0000 FFFC FFFC ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 15 0 BBX 15 15 1 0 BITMAP C000 F000 7800 1E00 0780 01E0 0078 003E 0078 01E0 0780 1E00 7800 F000 C000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 12 0 BBX 10 18 1 0 BITMAP 7F00 E380 C1C0 C1C0 01C0 01C0 0180 0300 0600 0400 0C00 1C00 1C00 0000 0000 1C00 1C00 1C00 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 22 0 BBX 20 18 1 0 BITMAP 00FE00 038180 0C0040 180020 307820 20FE10 418410 430410 820C10 860C10 861820 866C60 87CCC0 438700 400000 300000 1C0800 07F000 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 19 0 BBX 19 18 0 0 BITMAP 004000 00E000 00E000 00F000 017000 017800 023800 023800 041C00 041C00 080E00 0FFE00 080F00 100700 100780 200380 6003C0 F80FE0 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP FFC0 38E0 3870 3870 3870 3870 38E0 3980 3FC0 39E0 3870 3838 3838 3838 3838 3878 38F0 FFE0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 17 0 BBX 14 18 2 0 BITMAP 07F0 1C3C 380C 700C 700C E000 E000 E000 E000 E000 E000 E000 7000 7000 7800 3E04 1FFC 07F0 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 19 0 BBX 17 18 1 0 BITMAP FFF000 383C00 380E00 380700 380700 380380 380380 380380 380380 380380 380380 380380 380300 380700 380700 380E00 381C00 FFF000 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 1 0 BITMAP FFF0 3830 3830 3800 3800 3800 3840 3840 3FC0 3840 3840 3800 3800 3800 3800 3818 3818 FFF8 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 1 0 BITMAP FFF0 3830 3830 3800 3800 3800 3840 3840 3FC0 3840 3840 3800 3800 3800 3800 3800 3800 FE00 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 18 0 BBX 17 18 1 0 BITMAP 03F800 1E0E00 380600 700600 700000 E00000 E00000 E00000 E00000 E00000 E03F80 E00E00 600E00 700E00 300E00 380E00 0E0E00 03FC00 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 19 0 BBX 18 18 1 0 BITMAP FE1FC0 380700 380700 380700 380700 380700 380700 380700 3FFF00 380700 380700 380700 380700 380700 380700 380700 380700 FE1FC0 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 8 0 BBX 7 18 1 0 BITMAP FE 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 FE ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 11 0 BBX 10 22 0 -4 BITMAP 1FC0 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 C700 C600 CE00 F800 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 18 0 BBX 17 18 1 0 BITMAP FE3F00 380C00 381000 382000 384000 388000 390000 3A0000 3F0000 3F8000 3BC000 39E000 38F000 387800 387800 383C00 381E00 FE3F80 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 1 0 BITMAP FE00 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3818 3818 3838 FFF8 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 22 0 BBX 20 18 1 0 BITMAP FC01F0 3C01C0 3C03C0 3E03C0 3E03C0 3705C0 3705C0 3789C0 3389C0 3389C0 31D1C0 31D1C0 31F1C0 30E1C0 30E1C0 30C1C0 3001C0 FC07F0 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 19 0 BBX 17 18 1 0 BITMAP F80F80 3C0200 3C0200 3E0200 3F0200 378200 338200 33C200 31E200 30E200 30F200 307A00 303E00 301E00 301E00 300E00 300600 FC0600 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 19 0 BBX 17 18 1 0 BITMAP 07F000 1C1C00 380E00 700700 700700 600300 E00380 E00380 E00380 E00380 E00380 E00380 600300 700700 700700 380E00 1C1C00 07F000 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 1 0 BITMAP FFC0 3870 3830 3838 3838 3838 3838 3838 3870 38E0 3FC0 3800 3800 3800 3800 3800 3800 FF00 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 19 0 BBX 20 22 1 -4 BITMAP 07F000 1C1C00 380E00 700700 700700 600300 E00380 E00380 E00380 E00380 E00380 E00380 E00380 700700 700700 380E00 1C1C00 07F000 001000 000F00 0003F0 0000C0 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 17 0 BBX 16 18 1 0 BITMAP FFC0 3870 3838 3838 3838 3838 3838 3830 3860 3F80 39C0 39E0 38E0 3870 3878 383C 383C FE1F ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 14 0 BBX 11 18 1 0 BITMAP 1F80 71C0 60C0 E0C0 E000 F000 F800 7C00 3F00 0F80 03C0 01E0 00E0 00E0 C0E0 C0C0 E180 7F00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 17 0 BBX 15 18 1 0 BITMAP FFFE C386 C386 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 03C0 1FF0 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 18 0 BBX 17 18 0 0 BITMAP FE1F80 380600 380600 380600 380600 380600 380600 380600 380600 380600 380600 380600 380600 380600 380400 1C0C00 0E1800 07F000 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 17 0 BBX 17 18 0 0 BITMAP FC0F80 700300 380200 380200 1C0400 1C0400 1E0400 0E0800 0E0800 071000 071000 079000 03A000 03A000 01E000 01C000 01C000 008000 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 23 0 BBX 23 18 0 0 BITMAP FC183E 70180C 381808 383C08 383C10 1C3C10 1C7E10 1C4E20 1C4E20 0E4E20 0E8740 0E8740 0E8740 0703C0 070380 070380 060180 020100 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 16 0 BBX 16 18 0 0 BITMAP FE1F 3804 3C08 1E08 0E10 0F20 0760 07C0 03C0 03C0 02E0 04F0 0C70 0878 1038 301C 601E F87F ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 17 0 BBX 17 18 0 0 BITMAP FE0F80 780300 3C0600 1C0400 1E0800 0F0800 071000 07B000 03A000 03C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 07F000 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 16 0 BBX 12 18 2 0 BITMAP FFF0 E0F0 C0E0 C1E0 01C0 0380 0780 0700 0F00 0E00 1E00 1C00 3C00 3800 7800 7030 E030 FFF0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 8 0 BBX 6 22 2 -4 BITMAP FC E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 FC ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 13 0 BBX 13 22 0 -4 BITMAP C000 E000 6000 7000 3000 3800 1800 0C00 0C00 0600 0600 0300 0300 0180 0180 00C0 00E0 0060 0070 0030 0038 0018 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 8 0 BBX 6 22 0 -4 BITMAP FC 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C FC ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 15 0 BBX 15 16 0 3 BITMAP 0100 0100 0380 0380 07C0 06C0 0EE0 0C60 1C70 1830 3838 3018 701C 600C E00E C006 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 12 0 BBX 10 2 1 -2 BITMAP FFC0 FFC0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 7 0 BBX 3 6 2 12 BITMAP 60 C0 C0 C0 E0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 14 0 BBX 12 13 1 0 BITMAP 3F00 7380 61C0 01C0 01C0 1FC0 71C0 E1C0 E1C0 E1C0 F1C0 7ED0 3C70 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 0 0 BITMAP F800 3800 3800 3800 3800 39E0 3BF8 3C38 383C 381C 381C 381C 381C 381C 3818 3C38 3BF0 31E0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 13 0 BBX 10 13 1 0 BITMAP 0FC0 38C0 70C0 60C0 E000 E000 E000 E000 E000 7000 7840 3FC0 0F80 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 1 0 BITMAP 01F0 0070 0070 0070 0070 1E70 3F70 70F0 6070 E070 E070 E070 E070 E070 F070 70F0 7F78 3C7C ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 13 0 BBX 11 13 1 0 BITMAP 1F00 31C0 70C0 60E0 E0E0 FFE0 E000 E000 E000 7000 7820 3FE0 0F80 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 10 0 BBX 9 19 1 0 BITMAP 0F00 1980 3980 3980 3800 3800 FE00 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 FC00 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 1 -5 BITMAP 1FF8 39C0 70E0 70E0 70E0 70E0 30E0 39C0 0F80 3000 7000 7FE0 1FF0 6070 E070 E070 70E0 3F80 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 1 0 BITMAP F800 3800 3800 3800 3800 38E0 3BF0 3E38 3838 3838 3838 3838 3838 3838 3838 3838 3838 FEFE ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 8 0 BBX 7 18 0 0 BITMAP 38 38 38 00 00 F8 38 38 38 38 38 38 38 38 38 38 38 FE ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 9 0 BBX 7 23 0 -5 BITMAP 0E 0E 0E 00 00 1E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E CE CE CC F8 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 0 0 BITMAP F800 3800 3800 3800 3800 387C 3830 3860 38C0 3980 3B00 3F80 3BC0 39E0 38F0 38F8 387C FE3E ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 8 0 BBX 7 18 0 0 BITMAP F8 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 FE ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 24 0 BBX 23 13 1 0 BITMAP F9F1E0 7BF3F0 3E7E38 383838 383838 383838 383838 383838 383838 383838 383838 383838 FEFEFE ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 16 0 BBX 15 13 1 0 BITMAP F8E0 7BF0 3E38 3838 3838 3838 3838 3838 3838 3838 3838 3838 FEFE ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 1 0 BITMAP 0F80 38E0 7070 7070 E038 E038 E038 E038 E038 6030 7070 38E0 0F80 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 1 -5 BITMAP F8E0 7BF8 3C38 383C 381C 381C 381C 381C 381C 3818 3C38 3BF0 39E0 3800 3800 3800 3800 FE00 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 1 -5 BITMAP 1E70 3F70 70F0 6070 E070 E070 E070 E070 E070 F070 70F0 7F70 3C70 0070 0070 0070 0070 01FC ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 11 0 BBX 10 13 0 0 BITMAP F9C0 3BC0 3CC0 38C0 3800 3800 3800 3800 3800 3800 3800 3800 FF00 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 13 0 BBX 10 13 1 0 BITMAP 3F00 7380 E180 E180 F000 FE00 7F80 0FC0 C3C0 C1C0 C1C0 E380 3F00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 10 0 BBX 9 17 1 0 BITMAP 1800 3800 3800 3800 FF80 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 1C00 0F80 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 16 0 BBX 15 13 0 0 BITMAP F8F8 3838 3838 3838 3838 3838 3838 3838 3838 3838 38F8 1FBC 0E3E ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 14 0 BBX 14 13 0 0 BITMAP FC3C 7008 7818 3810 3C30 1C20 1E60 0E40 0EC0 0780 0780 0300 0300 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 20 0 BBX 20 13 0 0 BITMAP FC30F0 703020 707060 787840 38B840 38BC80 3D9C80 1D1C80 1D0F00 0E0F00 0E0F00 0E0600 040600 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 14 0 BBX 14 13 0 0 BITMAP FC7C 7810 3C20 1C60 1EC0 0F80 0780 07C0 09E0 10E0 30F0 6078 F0FC ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 0 -5 BITMAP FC3C 7008 7818 3810 3C30 1C20 1E20 0E40 0E40 0780 0780 0700 0300 0200 0600 0C00 1C00 3C00 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 15 0 BBX 11 13 2 0 BITMAP FFE0 C1C0 C3C0 0780 0700 0F00 1E00 1C00 3C00 3800 7060 F060 FFE0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 9 0 BBX 7 22 0 -4 BITMAP 0E 18 30 30 30 38 18 18 18 10 20 E0 30 18 18 18 38 38 30 30 18 0E ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 6 0 BBX 2 22 2 -4 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 9 0 BBX 7 22 1 -4 BITMAP E0 30 18 18 18 38 38 30 30 10 08 0E 18 30 30 30 38 18 18 18 30 E0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 15 0 BBX 15 6 0 4 BITMAP 3800 7E02 4702 83C6 80FC 8078 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 7 0 BBX 3 18 2 -5 BITMAP E0 E0 E0 00 00 40 40 40 40 40 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 15 0 BBX 11 18 2 0 BITMAP 0200 0200 0FE0 1AE0 3260 7260 E200 E200 E200 E200 E200 E200 7200 7A00 3E20 0FC0 0200 0200 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 15 0 BBX 11 18 3 0 BITMAP 07C0 0C60 0C60 1C60 1C00 1C00 1C00 1C00 FF00 1C00 1C00 1C00 1C00 1800 1000 2000 FFE0 FFE0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 15 0 BBX 15 14 0 2 BITMAP 8002 67CC 3FF8 0C60 1830 3018 3018 3018 3018 1830 0C60 3FF8 67CC C006 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 15 0 BBX 17 18 0 0 BITMAP FE0F80 780700 3C0E00 1E0C00 0E1800 0F3800 07B000 03E000 03E000 1FFC00 01C000 01C000 1FFC00 01C000 01C000 01C000 01C000 07F000 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 6 0 BBX 2 22 2 -4 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 00 00 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 15 0 BBX 11 23 2 -5 BITMAP 1F80 71C0 E0C0 E0C0 E000 E000 7800 3E00 3F80 6780 E3C0 E0C0 F0C0 7CC0 7E80 1F00 07C0 01E0 00E0 C0E0 C0E0 E1C0 7F00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 15 0 BBX 7 3 4 15 BITMAP C6 C6 C6 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 21 0 BBX 19 18 1 0 BITMAP 03F800 0E0E00 180300 200080 60F8C0 438840 830820 860020 860020 860020 860020 830020 438840 60F8C0 200080 180300 0E0E00 03F800 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 8 BITMAP 1E00 2700 2700 0700 3F00 7700 E700 E700 FFC0 7980 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 13 0 BBX 11 11 1 1 BITMAP 0460 08E0 19C0 3380 6380 E700 7380 3180 19C0 1CE0 0C60 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 15 0 BBX 14 6 1 4 BITMAP FFFC FFFC 000C 000C 000C 000C ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 8 0 BBX 6 2 1 7 BITMAP FC FC ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 15 0 BBX 11 11 2 7 BITMAP 1F00 2180 4040 9F60 8920 8920 8E20 CA60 59C0 3180 1F00 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 15 0 BBX 7 2 4 16 BITMAP FE FE ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 6 0 BBX 4 4 1 14 BITMAP 60 90 90 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 15 0 BBX 16 15 0 0 BITMAP 0180 0180 0180 0180 FFFF FFFF 0180 0180 0180 0180 0180 0000 0000 FFFF FFFF ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 9 0 BBX 6 11 -14 7 BITMAP 78 8C 84 04 04 08 10 60 40 80 FC ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 9 0 BBX 6 11 -15 7 BITMAP F8 8C 84 04 08 78 0C 04 84 8C F8 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 15 0 BBX 5 4 5 14 BITMAP 38 70 60 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 0 -4 BITMAP F8F8 3838 3838 3838 3838 3838 3838 3838 3838 3838 38F8 3FBC 3F3E 3800 3800 3800 3800 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 15 0 BBX 11 22 1 -4 BITMAP 3FE0 7FE0 FE20 FE20 FE20 FE20 FE20 7E20 3E20 0620 0220 0220 0220 0220 0220 0220 0220 0220 0220 0220 0220 0220 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 15 0 BBX 3 3 6 6 BITMAP E0 E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 15 0 BBX 4 5 6 -5 BITMAP 60 40 30 30 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 9 0 BBX 5 11 -15 7 BITMAP E0 20 20 20 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 8 BITMAP 3E00 7700 6300 E380 E380 E380 E380 6300 7700 3E00 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 13 0 BBX 11 11 1 1 BITMAP C600 E700 7300 3180 39C0 1CE0 38C0 3980 7300 E200 C400 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 19 0 BBX 16 18 4 0 BITMAP E006 200C 201C 2038 2030 2060 20E0 21C2 2186 230A FF1A 0E12 0C22 1842 387F 7002 6002 C00F ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 19 0 BBX 15 18 4 0 BITMAP E006 200C 201C 2038 2030 2060 20E0 21FC 21C6 2342 FF02 0E02 0C04 1808 3830 7020 6040 C07E ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 19 0 BBX 17 18 5 0 BITMAP F80300 8C0600 840E00 041C00 081800 783000 0C7000 04E100 84C300 8D8500 FB8D00 070900 061100 0C2100 1C3F80 380100 300100 600780 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 12 0 BBX 10 18 1 -5 BITMAP 0E00 0E00 0E00 0000 0000 0E00 0E00 0C00 0800 1800 3000 6000 E000 E000 E0C0 E0C0 71C0 1F80 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 19 0 BBX 19 23 0 0 BITMAP 01C000 00E000 006000 003000 000000 004000 00E000 00E000 00F000 017000 017800 023800 023800 041C00 041C00 080E00 0FFE00 080F00 100700 100780 200380 6003C0 F80FE0 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 19 0 BBX 19 23 0 0 BITMAP 007000 00E000 00C000 018000 000000 004000 00E000 00E000 00F000 017000 017800 023800 023800 041C00 041C00 080E00 0FFE00 080F00 100700 100780 200380 6003C0 F80FE0 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 19 0 BBX 19 23 0 0 BITMAP 01E000 01E000 033000 061800 000000 004000 00E000 00E000 00F000 017000 017800 023800 023800 041C00 041C00 080E00 0FFE00 080F00 100700 100780 200380 6003C0 F80FE0 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 19 0 BBX 19 22 0 0 BITMAP 01C400 01F800 023800 000000 004000 00E000 00E000 00F000 017000 017800 023800 023800 041C00 041C00 080E00 0FFE00 080F00 100700 100780 200380 6003C0 F80FE0 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 19 0 BBX 19 22 0 0 BITMAP 031800 031800 031800 000000 004000 00E000 00E000 00F000 017000 017800 023800 023800 041C00 041C00 080E00 0FFE00 080F00 100700 100780 200380 6003C0 F80FE0 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 19 0 BBX 19 23 0 0 BITMAP 006000 009000 009000 006000 000000 004000 00E000 00E000 00F000 017000 017800 023800 023800 041C00 041C00 080E00 0FFE00 080F00 100700 100780 200380 6003C0 F80FE0 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 23 0 BBX 22 18 0 0 BITMAP 001FF8 003818 007818 00B800 00B800 00B800 013800 013820 023820 063FE0 043820 0C3800 0FF800 103800 303800 20380C 60380C F0FFFC ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 17 0 BBX 14 23 2 -5 BITMAP 07F0 1C3C 380C 700C 700C E000 E000 E000 E000 E000 E000 E000 7000 7000 7800 3E04 1FFC 07F0 0200 0200 0180 0180 0700 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 14 0 BBX 13 23 1 0 BITMAP 0E00 0700 0300 0180 0000 FFF0 3830 3830 3800 3800 3800 3840 3840 3FC0 3840 3840 3800 3800 3800 3800 3818 3818 FFF8 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 14 0 BBX 13 23 1 0 BITMAP 0380 0700 0600 0C00 0000 FFF0 3830 3830 3800 3800 3800 3840 3840 3FC0 3840 3840 3800 3800 3800 3800 3818 3818 FFF8 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 14 0 BBX 13 23 1 0 BITMAP 0780 0780 0CC0 1860 0000 FFF0 3830 3830 3800 3800 3800 3840 3840 3FC0 3840 3840 3800 3800 3800 3800 3818 3818 FFF8 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 14 0 BBX 13 22 1 0 BITMAP 18C0 18C0 18C0 0000 FFF0 3830 3830 3800 3800 3800 3840 3840 3FC0 3840 3840 3800 3800 3800 3800 3818 3818 FFF8 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 8 0 BBX 7 23 1 0 BITMAP 70 38 18 0C 00 FE 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 FE ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 8 0 BBX 7 23 1 0 BITMAP 1C 38 30 60 00 FE 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 FE ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 8 0 BBX 8 23 2 0 BITMAP 3C 3C 66 C3 00 7F 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 7F ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 8 0 BBX 7 22 1 0 BITMAP C6 C6 C6 00 FE 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 FE ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 19 0 BBX 18 18 0 0 BITMAP FFF800 1C1E00 1C0700 1C0380 1C0380 1C01C0 1C01C0 1C01C0 FFC1C0 1C01C0 1C01C0 1C01C0 1C0180 1C0380 1C0300 1C0700 3E0C00 FFF000 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 19 0 BBX 17 22 1 0 BITMAP 038800 03F000 047000 000000 F80F80 3C0200 3C0200 3E0200 3F0200 378200 338200 33C200 31E200 30E200 30F200 307A00 303E00 301E00 301E00 300E00 300600 FC0600 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 19 0 BBX 17 23 1 0 BITMAP 038000 01C000 00C000 006000 000000 07F000 1C1C00 380E00 700700 700700 600300 E00380 E00380 E00380 E00380 E00380 E00380 600300 700700 700700 380E00 1C1C00 07F000 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 19 0 BBX 17 23 1 0 BITMAP 00E000 01C000 018000 030000 000000 07F000 1C1C00 380E00 700700 700700 600300 E00380 E00380 E00380 E00380 E00380 E00380 600300 700700 700700 380E00 1C1C00 07F000 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 19 0 BBX 17 23 1 0 BITMAP 03C000 03C000 066000 0C3000 000000 07F000 1C1C00 380E00 700700 700700 600300 E00380 E00380 E00380 E00380 E00380 E00380 600300 700700 700700 380E00 1C1C00 07F000 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 19 0 BBX 17 22 1 0 BITMAP 038800 03F000 047000 000000 07F000 1C1C00 380E00 700700 700700 600300 E00380 E00380 E00380 E00380 E00380 E00380 600300 700700 700700 380E00 1C1C00 07F000 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 19 0 BBX 17 22 1 0 BITMAP 063000 063000 063000 000000 07F000 1C1C00 380E00 700700 700700 600300 E00380 E00380 E00380 E00380 E00380 E00380 600300 700700 700700 380E00 1C1C00 07F000 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 15 0 BBX 14 15 1 0 BITMAP C00C E01C 7038 3870 1860 0CC0 0780 0300 0780 0FC0 1CE0 3870 7038 E01C C00C ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 19 0 BBX 17 18 1 0 BITMAP 07F180 1C1900 380E00 700600 700F00 601300 E02380 E06380 E0C380 E08380 E10380 E20380 E40300 780700 380700 380E00 6C1C00 C7F000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 18 0 BBX 17 23 0 0 BITMAP 038000 01C000 00C000 006000 000000 FE1F80 380600 380600 380600 380600 380600 380600 380600 380600 380600 380600 380600 380600 380600 380400 1C0C00 0E1800 07F000 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 18 0 BBX 17 23 0 0 BITMAP 00E000 01C000 018000 030000 000000 FE1F80 380600 380600 380600 380600 380600 380600 380600 380600 380600 380600 380600 380600 380600 380400 1C0C00 0E1800 07F000 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 18 0 BBX 17 23 0 0 BITMAP 01E000 01E000 033000 061800 000000 FE1F80 380600 380600 380600 380600 380600 380600 380600 380600 380600 380600 380600 380600 380600 380400 1C0C00 0E1800 07F000 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 18 0 BBX 17 22 0 0 BITMAP 063000 063000 063000 000000 FE1F80 380600 380600 380600 380600 380600 380600 380600 380600 380600 380600 380600 380600 380600 380400 1C0C00 0E1800 07F000 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 17 0 BBX 17 23 0 0 BITMAP 00E000 01C000 018000 030000 000000 FE0F80 780300 3C0600 1C0400 1E0800 0F0800 071000 07B000 03A000 03C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 07F000 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 14 0 BBX 13 18 1 0 BITMAP FE00 3800 3800 3800 3FE0 3870 3838 3838 3838 3838 3838 3870 38E0 3F80 3800 3800 3800 FE00 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 15 0 BBX 13 19 1 0 BITMAP 0F80 19C0 38E0 38E0 38E0 38C0 3980 3B00 3B00 3B80 3BC0 39E0 38F0 3878 3838 3818 3B18 3B30 FBE0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 1 0 BITMAP 1C00 0E00 0600 0300 0000 3F00 7380 61C0 01C0 01C0 1FC0 71C0 E1C0 E1C0 E1C0 F1C0 7ED0 3C70 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 1 0 BITMAP 0380 0700 0600 0C00 0000 3F00 7380 61C0 01C0 01C0 1FC0 71C0 E1C0 E1C0 E1C0 F1C0 7ED0 3C70 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 1 0 BITMAP 0F00 0F00 1980 30C0 0000 3F00 7380 61C0 01C0 01C0 1FC0 71C0 E1C0 E1C0 E1C0 F1C0 7ED0 3C70 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 1 0 BITMAP 1C40 1F80 2380 0000 3F00 7380 61C0 01C0 01C0 1FC0 71C0 E1C0 E1C0 E1C0 F1C0 7ED0 3C70 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 14 0 BBX 12 17 1 0 BITMAP 3180 3180 3180 0000 3F00 7380 61C0 01C0 01C0 1FC0 71C0 E1C0 E1C0 E1C0 F1C0 7ED0 3C70 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 1 0 BITMAP 0600 0900 0900 0600 0000 3F00 7380 61C0 01C0 01C0 1FC0 71C0 E1C0 E1C0 E1C0 F1C0 7ED0 3C70 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 20 0 BBX 18 13 1 0 BITMAP 3F1E00 73A380 61E180 01C1C0 01C1C0 1FFFC0 71C000 E1C000 E1C000 E1E000 F3E000 7E7040 3C1F80 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 13 0 BBX 10 18 1 -5 BITMAP 0FC0 38C0 70C0 60C0 E000 E000 E000 E000 E000 7000 7840 3FC0 0F80 0800 0800 0600 0600 1C00 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 13 0 BBX 11 18 1 0 BITMAP 1C00 0E00 0600 0300 0000 1F00 31C0 70C0 60E0 E0E0 FFE0 E000 E000 E000 7000 7820 3FE0 0F80 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 13 0 BBX 11 18 1 0 BITMAP 0700 0E00 0C00 1800 0000 1F00 31C0 70C0 60E0 E0E0 FFE0 E000 E000 E000 7000 7820 3FE0 0F80 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 13 0 BBX 11 18 1 0 BITMAP 0F00 0F00 1980 30C0 0000 1F00 31C0 70C0 60E0 E0E0 FFE0 E000 E000 E000 7000 7820 3FE0 0F80 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 13 0 BBX 11 17 1 0 BITMAP 3180 3180 3180 0000 1F00 31C0 70C0 60E0 E0E0 FFE0 E000 E000 E000 7000 7820 3FE0 0F80 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 8 0 BBX 7 18 0 0 BITMAP 70 38 18 0C 00 F8 38 38 38 38 38 38 38 38 38 38 38 FE ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 8 0 BBX 7 18 0 0 BITMAP 1C 38 30 60 00 F8 38 38 38 38 38 38 38 38 38 38 38 FE ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 8 0 BBX 8 18 1 0 BITMAP 3C 3C 66 C3 00 7C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 7F ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 8 0 BBX 7 17 0 0 BITMAP C6 C6 C6 00 F8 38 38 38 38 38 38 38 38 38 38 38 FE ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP FF80 1E00 0F00 7380 21C0 1FE0 38F0 7070 7038 E038 E038 E038 E038 E038 6030 7070 38E0 0F80 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 1 0 BITMAP 0E20 0FC0 11C0 0000 F8E0 7BF0 3E38 3838 3838 3838 3838 3838 3838 3838 3838 3838 FEFE ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 0E00 0700 0300 0180 0000 0F80 38E0 7070 7070 E038 E038 E038 E038 E038 6030 7070 38E0 0F80 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 0380 0700 0600 0C00 0000 0F80 38E0 7070 7070 E038 E038 E038 E038 E038 6030 7070 38E0 0F80 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 0F00 0F00 1980 30C0 0000 0F80 38E0 7070 7070 E038 E038 E038 E038 E038 6030 7070 38E0 0F80 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 1 0 BITMAP 0E20 0FC0 11C0 0000 0F80 38E0 7070 7070 E038 E038 E038 E038 E038 6030 7070 38E0 0F80 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 1 0 BITMAP 18C0 18C0 18C0 0000 0F80 38E0 7070 7070 E038 E038 E038 E038 E038 6030 7070 38E0 0F80 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 15 0 BBX 15 12 0 1 BITMAP 0380 0380 0380 0000 0000 FFFE FFFE 0000 0000 0380 0380 0380 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 1 0 BITMAP 0F98 38D0 7060 70F0 E0B8 E138 E238 E438 EC38 7830 7070 38E0 CF80 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 0 0 BITMAP 0700 0380 0180 00C0 0000 F8F8 3838 3838 3838 3838 3838 3838 3838 3838 3838 38F8 1FBC 0E3E ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 0 0 BITMAP 00E0 01C0 0180 0300 0000 F8F8 3838 3838 3838 3838 3838 3838 3838 3838 3838 38F8 1FBC 0E3E ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 0 0 BITMAP 03C0 03C0 0660 0C30 0000 F8F8 3838 3838 3838 3838 3838 3838 3838 3838 3838 38F8 1FBC 0E3E ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 0 0 BITMAP 0C60 0C60 0C60 0000 F8F8 3838 3838 3838 3838 3838 3838 3838 3838 3838 38F8 1FBC 0E3E ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 14 0 BBX 14 23 0 -5 BITMAP 01C0 0380 0300 0600 0000 FC3C 7008 7818 3810 3C30 1C20 1E20 0E40 0E40 0780 0780 0700 0300 0200 0600 0C00 1C00 3C00 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 16 0 BBX 14 22 1 -5 BITMAP F800 3800 3800 3800 38E0 3BF8 3C38 383C 381C 381C 381C 381C 381C 3818 3C38 3BF0 39E0 3800 3800 3800 3800 FE00 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 14 0 BBX 14 22 0 -5 BITMAP 18C0 18C0 18C0 0000 FC3C 7008 7818 3810 3C30 1C20 1E20 0E40 0E40 0780 0780 0700 0300 0200 0600 0C00 1C00 3C00 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 15 19 1 0 BITMAP 0FF8 1878 3838 3838 3838 3838 FE38 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 FEFE ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 2 1 6 BITMAP FFC0 FFC0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 12 22 2 -4 BITMAP 0E00 0E00 0E00 0E00 0600 0600 E670 FFF0 0600 0600 0600 0600 0600 0600 0600 0E00 0E00 0E00 0E00 0E00 0E00 0E00 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 12 23 2 0 BITMAP 30C0 1980 0F00 0F00 0000 FFF0 E0F0 C0E0 C1E0 01C0 0380 0780 0700 0F00 0E00 1E00 1C00 3C00 3800 7800 7030 E030 FFF0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 20 13 1 0 BITMAP 0F0780 38D8E0 707860 607070 E07070 E07FF0 E07000 E07000 E07000 E07800 70DC10 788FF0 1F07C0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 17 22 0 0 BITMAP 063000 063000 063000 000000 FE0F80 780300 3C0600 1C0400 1E0800 0F0800 071000 07B000 03A000 03C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 07F000 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 0 0 BITMAP F8 38 38 38 38 38 38 38 38 38 38 38 FE ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 9 18 0 0 BITMAP 7C00 1C00 1C00 1C00 1C00 1C00 1C80 1F80 1E00 7C00 DC00 1C00 1C00 1C00 1C00 1C00 1C00 7F00 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 18 0 0 BITMAP FF00 3C00 1C00 1C00 1C00 1C00 1C80 1F80 1E00 3C00 DC00 9C00 1C00 1C00 1C00 1C0C 3C0C FFFC ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 12 22 2 -4 BITMAP 0E00 0E00 0E00 0E00 0600 0600 E670 FFF0 0600 0600 0600 0600 0600 0600 FFF0 E670 0600 0600 0E00 0E00 0E00 0E00 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 1 0 BITMAP 0F00 19B8 39B8 39B8 3800 3800 FFF8 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 FCFE ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 1 BITMAP C0 E0 60 30 38 1C 18 30 60 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 25 0 BBX 24 18 1 0 BITMAP 07CFFE 1C3E0E 381E06 700E06 700E00 E00E00 E00E08 E00E08 E00FF8 E00E08 E00E08 E00E00 E00E00 700E00 700E03 381E03 1C3E07 07EFFF ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 25 0 BBX 22 2 2 6 BITMAP FFFFFC FFFFFC ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 4 4 14 BITMAP C3 66 3C 3C ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 4 4 6 -4 BITMAP 60 C0 C0 70 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 7 4 5 14 BITMAP 36 2C 48 90 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 1 BITMAP 04 08 18 30 60 E0 70 30 18 1C 0C ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 2 3 7 15 BITMAP C0 C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 4 4 14 BITMAP 81 C3 7E 3C ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 8 4 3 BITMAP 3C 7E FF FF FF FF 7E 3C ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 3 4 15 BITMAP 71 7E 8E ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 4 4 14 BITMAP 3C 3C 66 C3 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 6 2 12 BITMAP 63 C6 C6 E7 E7 E7 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 6 2 12 BITMAP E0 E0 E0 40 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 10 18 1 0 BITMAP 6180 3300 1E00 1E00 0000 3F00 7380 E180 E180 F000 FE00 7F80 0FC0 C3C0 C1C0 C1C0 E380 3F00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 4 4 6 15 BITMAP 60 90 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 8 2 -5 BITMAP E0 E0 E0 60 60 60 60 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 12 22 3 -4 BITMAP 01F0 0230 0430 0430 0C00 0C00 1C00 1C00 1C00 FE00 3800 3000 3000 3000 3000 7000 6000 6000 6000 6000 E000 C000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 21 10 1 8 BITMAP FF7C78 993CE0 993EE0 183EE0 183F60 183F60 183760 183660 183660 3C7078 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 15 18 -6 0 BITMAP 0006 000C 001C 0038 0030 0060 00E0 01C0 0180 0300 0700 0E00 0C00 1800 3800 7000 6000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 5 4 5 14 BITMAP E0 70 30 18 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 26 0 BBX 26 18 0 0 BITMAP 3C038000 66030000 C3060000 C30C0000 C31C0000 C3380000 C3700000 66E00000 3CC00000 019E0F00 03B31980 0761B0C0 0E61B0C0 1C61B0C0 1861B0C0 3061B0C0 60331980 E01E0F00 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 25 0 BBX 16 3 5 0 BITMAP E387 E387 E387 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 6 2 12 BITMAP E7 E7 E7 63 63 C6 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 11 23 1 0 BITMAP 6180 3300 1E00 1E00 0000 1F80 71C0 60C0 E0C0 E000 F000 F800 7C00 3F00 0F80 03C0 01E0 00E0 00E0 C0E0 C0C0 E180 7F00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 8 8 2 -5 BITMAP E7 E7 E7 63 63 63 63 C6 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 11 18 2 0 BITMAP 6180 3300 1E00 1E00 0000 FFE0 C1C0 C3C0 0780 0700 0F00 1E00 1C00 3C00 3800 7060 F060 FFE0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lubR19.bdf100644 1750 1750 114703 5413747537 15123 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-Medium-R-Normal--26-190-100-100-P-149-ISO8859-1 SIZE 19 100 100 FONTBOUNDINGBOX 43 29 -17 -5 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 26 POINT_SIZE 190 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH "149" CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." FONT_ASCENT 24 FONT_DESCENT 6 DEFAULT_CHAR 0 ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 8 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 7 0 BBX 3 19 2 0 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 40 40 40 40 40 00 00 E0 E0 E0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 10 0 BBX 7 6 2 13 BITMAP EE EE EE 44 44 44 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 16 0 BBX 16 19 0 0 BITMAP 018C 0318 0318 0318 0338 7FFF 7FFF 0630 0630 0C60 0C60 FFFE FFFE 1CE0 18C0 18C0 18C0 39C0 3180 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 16 0 BBX 12 22 2 -2 BITMAP 0200 0FE0 3A70 7230 7230 7200 7200 7A00 3E00 1F00 0F80 03E0 03F0 02F0 0270 0270 C270 C260 E2C0 7F80 0200 0200 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 18 0 BBX 17 19 0 0 BITMAP 3C0380 660300 C30600 C30E00 C31C00 C33800 C33000 666000 3CE000 01DE00 03B300 036180 066180 0E6180 1C6180 386180 306180 603300 E01E00 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 18 0 BBX 18 19 0 0 BITMAP 03E000 077000 0E3800 0E3800 0E3800 0E3000 076000 034000 0F8000 33C7C0 63C300 E1E300 E0F300 E07200 F07C00 F03C00 7C3E00 3FEF80 0F87C0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 7 0 BBX 3 7 2 12 BITMAP E0 E0 60 60 60 C0 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 8 0 BBX 6 23 1 -4 BITMAP 04 08 18 30 30 70 60 60 E0 E0 E0 E0 E0 E0 E0 60 60 70 30 30 18 08 04 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 8 0 BBX 6 23 1 -4 BITMAP 80 40 60 30 30 38 18 18 1C 1C 1C 1C 1C 1C 1C 18 18 38 30 30 60 40 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 12 0 BBX 10 9 1 10 BITMAP 0C00 0C00 4C40 EDC0 3200 0E00 1A00 7300 2180 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 16 0 BBX 16 16 0 0 BITMAP 0180 0180 0180 0180 0180 0180 0180 FFFF FFFF 0180 0180 0180 0180 0180 0180 0180 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 7 0 BBX 3 9 2 -5 BITMAP E0 E0 E0 E0 60 60 60 40 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 16 0 BBX 15 2 0 7 BITMAP FFFE FFFE ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 7 0 BBX 3 3 2 0 BITMAP E0 E0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 13 0 BBX 13 23 0 -4 BITMAP 0018 0038 0030 0070 0060 00E0 00C0 01C0 0180 0380 0300 0700 0600 0E00 0C00 1C00 1800 3800 3000 7000 6000 E000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 1 0 BITMAP 0F80 18C0 3060 7070 6030 E038 E038 E038 E038 E038 E038 E038 E038 E038 6030 7070 3060 18C0 0F80 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 16 0 BBX 10 19 3 0 BITMAP FE00 1E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 1E00 FFC0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 16 0 BBX 11 19 2 0 BITMAP 3F00 E1C0 C1C0 C0E0 C0E0 00E0 00E0 00C0 0180 0300 0600 0800 1000 2000 6000 4000 FFE0 FFE0 FFE0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 16 0 BBX 11 19 2 0 BITMAP 7F00 E1C0 C0E0 C0E0 00E0 00E0 00C0 0380 3E00 0300 01C0 00E0 00E0 00E0 00E0 C0E0 C1C0 E380 FF00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 0 0 BITMAP 0030 0070 00F0 0170 0370 0270 0470 0870 1870 3070 2070 4070 FFFE FFFE 0070 0070 0070 00F8 03FE ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 16 0 BBX 10 19 3 0 BITMAP FFC0 FFC0 FFC0 8000 8000 8000 8000 8000 FC00 0F00 0380 01C0 01C0 01C0 01C0 C1C0 C380 E700 FC00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 1 0 BITMAP 07E0 1870 3030 7030 7000 6000 E000 E7C0 E860 F070 E038 E038 E038 E038 6038 7030 3070 18E0 0F80 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 3 0 BITMAP FFF0 FFF0 FFF0 0020 0040 00C0 0080 0100 0300 0600 0600 0C00 1C00 1800 3800 3800 3000 7000 7000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 1 0 BITMAP 0FC0 3870 3038 7038 7038 7038 7830 3E40 0F80 1FC0 33F0 60F0 E078 E038 E038 E038 7070 38E0 1F80 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 1 0 BITMAP 0F80 38C0 7060 6070 E030 E038 E038 E038 E038 7078 30B8 1F38 0038 0030 0070 6070 6060 70C0 3F00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 7 0 BBX 3 14 2 0 BITMAP E0 E0 E0 00 00 00 00 00 00 00 00 E0 E0 E0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 7 0 BBX 3 19 2 -5 BITMAP E0 E0 E0 00 00 00 00 00 00 00 00 00 E0 E0 60 60 60 60 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 16 0 BBX 16 16 1 0 BITMAP 0003 0007 001E 0078 01E0 0780 1E00 FC00 7C00 1E00 0780 01E0 0078 001E 0007 0003 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 16 0 BBX 15 7 0 4 BITMAP FFFE FFFE 0000 0000 0000 FFFE FFFE ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 16 0 BBX 16 16 0 0 BITMAP C000 E000 7800 1E00 0780 01E0 0078 003E 003F 0078 01E0 0780 1E00 7800 E000 C000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 12 0 BBX 10 19 1 0 BITMAP 7E00 E380 C1C0 C1C0 C1C0 01C0 0180 0300 0200 0400 0C00 1C00 1C00 1C00 0000 0000 1C00 1C00 1C00 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 23 0 BBX 20 19 1 0 BITMAP 007E00 038180 0400C0 080060 107820 20FE10 418410 430410 830410 860C10 861830 863820 866C60 87CCC0 438700 600000 300000 1C0800 07F000 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 19 0 BBX 19 19 0 0 BITMAP 004000 00E000 00E000 00F000 017000 017000 023800 023800 023C00 041C00 041C00 080E00 0FFE00 100F00 100700 100780 200380 6003C0 F80FE0 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 1 0 BITMAP FFC0 38E0 3870 3870 3870 3870 3860 38E0 3980 3FC0 39E0 3870 3838 3838 3838 3838 3878 38F0 FFE0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 18 0 BBX 15 19 1 0 BITMAP 03F8 0E1E 3806 3006 7006 6000 E000 E000 E000 E000 E000 E000 F000 7000 7800 3C00 1E02 0FFE 03F8 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 20 0 BBX 18 19 1 0 BITMAP FFF800 381E00 380700 380380 380380 380180 3801C0 3801C0 3801C0 3801C0 3801C0 3801C0 3801C0 380180 380380 380300 380600 3C1C00 FFF000 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 15 0 BBX 14 19 0 0 BITMAP FFF8 3818 3818 3800 3800 3800 3800 3820 3820 3FE0 3820 3820 3800 3800 3800 3800 380C 381C FFFC ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 14 0 BBX 12 19 1 0 BITMAP FFF0 3830 3830 3800 3800 3800 3800 3840 3840 3FC0 3840 3840 3800 3800 3800 3800 3800 3800 FE00 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 19 0 BBX 17 19 2 0 BITMAP 03F800 0E1E00 380600 300600 700600 700000 E00000 E00000 E00000 E00000 E00000 E03F80 E00E00 700E00 700E00 380E00 180E00 0E0E00 03FC00 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 20 0 BBX 18 19 1 0 BITMAP FE1FC0 380700 380700 380700 380700 380700 380700 380700 380700 3FFF00 380700 380700 380700 380700 380700 380700 380700 380700 FE1FC0 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 8 0 BBX 7 19 1 0 BITMAP FE 3C 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 FE ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 11 0 BBX 10 23 0 -4 BITMAP 1FC0 0780 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 C700 C600 CE00 F800 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 18 0 BBX 18 19 0 0 BITMAP FE1F00 380E00 380800 381000 382000 384000 388000 390000 3B0000 3F8000 3BC000 3BE000 39E000 38F000 387800 383C00 381E00 380F00 FE3FC0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 14 0 BBX 13 19 1 0 BITMAP FE00 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3818 3818 3838 FFF8 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 22 0 BBX 21 19 1 0 BITMAP FC00F8 3C00E0 3E01E0 3E01E0 3E02E0 3702E0 3702E0 3384E0 3384E0 33CCE0 31C8E0 31C8E0 31F0E0 30F0E0 30F0E0 3060E0 3060E0 3000E0 FC03F8 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 20 0 BBX 18 19 1 0 BITMAP F807C0 3C0100 3C0100 3E0100 3F0100 378100 338100 33C100 31E100 30F100 307100 307900 303D00 301F00 300F00 300F00 300700 300300 FC0300 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 20 0 BBX 18 19 1 0 BITMAP 03F000 0E1C00 380700 300300 700380 700380 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 700380 700380 300300 180700 0E1C00 03F000 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 15 0 BBX 13 19 1 0 BITMAP FFC0 3870 3830 3838 3838 3838 3838 3838 3870 38E0 3FC0 3800 3800 3800 3800 3800 3800 3C00 FF00 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 20 0 BBX 22 23 1 -4 BITMAP 03F000 0E1C00 380700 300300 700380 700380 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 700380 700380 300300 180700 0E1E00 03F800 000C00 0007C0 0001FC 000070 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 18 0 BBX 16 19 1 0 BITMAP FFC0 3870 3830 3838 3838 3838 3838 3830 3860 38C0 3FC0 39C0 38E0 38F0 3870 3878 383C 383E FE1F ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 14 0 BBX 11 19 2 0 BITMAP 1F80 71C0 60C0 E0C0 E000 E000 F000 7C00 3E00 1F80 07C0 03C0 01E0 00E0 C0E0 C0E0 C0C0 E180 7F00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 17 0 BBX 17 19 0 0 BITMAP FFFF80 C1C180 C1C180 01C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 03E000 0FF800 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 19 0 BBX 18 19 0 0 BITMAP FE0FC0 380300 380300 380300 380300 380300 380300 380300 380300 380300 380300 380300 380300 380300 380300 180200 1C0600 0E0C00 03F000 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 18 0 BBX 18 19 0 0 BITMAP FE07C0 780180 380100 380100 1C0200 1C0200 0E0600 0E0400 0F0400 070800 070800 038800 039000 03D000 01E000 01E000 00E000 00C000 00C000 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 24 0 BBX 24 19 0 0 BITMAP FE081F 781C04 381C04 381C08 381C08 1C2E08 1C2E08 1C2E10 1C4710 0E4710 0E4720 0EC7A0 0E83A0 0783A0 0783C0 0701C0 0301C0 030180 020080 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 17 0 BBX 17 19 0 0 BITMAP FF0F80 3C0200 1C0400 1E0C00 0E0800 0F1000 07A000 03A000 03C000 01E000 01E000 02F000 047000 0C3800 083C00 101C00 301E00 600F00 F83F80 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 18 0 BBX 18 19 0 0 BITMAP FE07C0 780100 380200 1C0200 1E0400 0E0800 0F0800 079000 03A000 03E000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 07F000 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 2 0 BITMAP FFF8 E078 C0F0 C0E0 01E0 01C0 03C0 0380 0780 0700 0E00 0E00 1C00 3C00 3800 7800 7018 E018 FFF8 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 8 0 BBX 6 23 2 -4 BITMAP FC E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 FC ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 13 0 BBX 13 23 0 -4 BITMAP C000 E000 6000 7000 3000 3800 1800 1C00 0C00 0E00 0600 0700 0300 0380 0180 01C0 00C0 00E0 0060 0070 0030 0038 0018 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 8 0 BBX 6 23 1 -4 BITMAP FC 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C FC ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 16 0 BBX 15 17 0 3 BITMAP 0100 0100 0100 0380 0380 06C0 06C0 0C60 0C60 1830 1830 3838 3018 701C 600C E00E C006 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 13 0 BBX 10 2 2 -2 BITMAP FFC0 FFC0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 7 0 BBX 3 7 2 12 BITMAP 60 C0 C0 C0 E0 E0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 14 0 BBX 12 14 1 0 BITMAP 3F00 7380 61C0 01C0 01C0 1FC0 79C0 61C0 E1C0 E1C0 E1C0 F3C0 7ED0 3C70 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 0 0 BITMAP F800 3800 3800 3800 3800 39E0 3BF8 3E38 383C 381C 381C 381C 381C 381C 381C 3818 3C38 3BF0 31E0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 13 0 BBX 11 14 1 0 BITMAP 0FC0 38E0 7060 7060 E000 E000 E000 E000 E000 F000 7000 7820 3FE0 0FC0 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 17 0 BBX 14 19 2 0 BITMAP 01F0 0070 0070 0070 0070 1E70 3F70 70F0 6070 E070 E070 E070 E070 E070 E070 F070 71F0 7F78 1C7C ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 14 0 BBX 11 14 1 0 BITMAP 0F00 31C0 70C0 60E0 E0E0 FFE0 E000 E000 E000 F000 7000 7820 3FE0 0F80 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 10 0 BBX 10 20 1 0 BITMAP 0F80 18C0 38C0 38C0 3800 3800 FF00 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 FE00 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 15 0 BBX 13 19 1 -5 BITMAP 1FF8 3980 70C0 70E0 70E0 70E0 70E0 30C0 19C0 1F80 7000 7000 7FE0 1FF0 6070 E070 E070 70E0 3F80 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 1 0 BITMAP F800 3800 3800 3800 3800 38E0 3BF0 3E38 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 FEFE ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 8 0 BBX 7 19 1 0 BITMAP 38 38 38 00 00 F8 38 38 38 38 38 38 38 38 38 38 38 38 FE ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 9 0 BBX 7 24 0 -5 BITMAP 0E 0E 0E 00 00 1E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E CE CE CC F8 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 1 0 BITMAP F800 3800 3800 3800 3800 387C 3830 3860 38C0 3980 3B00 3F00 3B80 3BC0 39E0 38F0 3878 383C FE3E ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 8 0 BBX 7 19 1 0 BITMAP F8 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 FE ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 25 0 BBX 23 14 1 0 BITMAP F9F1E0 7BF3F0 3E7E78 3C3C38 383838 383838 383838 383838 383838 383838 383838 383838 383838 FEFEFE ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 16 0 BBX 15 14 1 0 BITMAP F8E0 7BF0 3E38 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 FEFE ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 16 0 BBX 13 14 1 0 BITMAP 0F80 38E0 7070 7070 E038 E038 E038 E038 E038 E038 7070 7070 38E0 0F80 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 17 0 BBX 14 19 1 -5 BITMAP F8E0 7BF8 3E38 383C 381C 381C 381C 381C 381C 381C 3818 3C38 3BF0 39E0 3800 3800 3800 3800 FE00 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 2 -5 BITMAP 1E70 3F70 70F0 6070 E070 E070 E070 E070 E070 E070 F070 71F0 7F70 1C70 0070 0070 0070 0070 01FC ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 11 0 BBX 10 14 1 0 BITMAP F9C0 3BC0 3CC0 38C0 3800 3800 3800 3800 3800 3800 3800 3800 3C00 FF00 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 13 0 BBX 10 14 2 0 BITMAP 3F00 7380 E180 E180 F000 F800 7F00 3F80 07C0 C1C0 C1C0 C1C0 E380 3F00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 10 0 BBX 9 18 1 0 BITMAP 1800 3800 3800 3800 FF80 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 3800 1C00 0F80 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 16 0 BBX 15 14 0 0 BITMAP F8F8 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 38F8 1FBC 0E3E ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 14 0 BBX 14 14 0 0 BITMAP FC3C 7008 7818 3810 3830 1C20 1C20 1E40 0E40 0F80 0780 0700 0300 0300 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 21 0 BBX 21 14 0 0 BITMAP FC30F8 703010 703830 387820 387C20 38DC40 1C9C40 1C8E40 1D0E80 0F0F80 0F0780 0E0700 060300 040200 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 14 0 BBX 15 14 0 0 BITMAP FC3E 7818 3C10 1E30 0E60 0F40 0780 03C0 05E0 08E0 18F0 3078 603C F87E ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 14 0 BBX 14 19 0 -5 BITMAP FC3C 7008 7818 3810 3C10 1C20 1C20 0E40 0E40 0FC0 0780 0780 0300 0300 0200 0600 0C00 1C00 3C00 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 15 0 BBX 12 14 2 0 BITMAP FFF0 C0E0 C1E0 03C0 0380 0780 0F00 0E00 1E00 3C00 3800 7830 F030 FFF0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 9 0 BBX 7 23 1 -4 BITMAP 0E 18 30 30 30 38 18 18 18 18 30 C0 30 18 18 18 38 38 30 30 30 18 0E ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 6 0 BBX 2 23 2 -4 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 9 0 BBX 7 23 1 -4 BITMAP E0 30 18 18 18 38 38 30 30 30 18 06 18 30 30 30 30 38 18 18 18 30 E0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 16 0 BBX 15 6 0 5 BITMAP 3800 7E02 4702 83C6 80FC 8078 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 7 0 BBX 3 19 2 -5 BITMAP E0 E0 E0 00 00 40 40 40 40 40 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 16 0 BBX 11 19 2 0 BITMAP 0200 0200 0FE0 1AE0 3260 7260 E200 E200 E200 E200 E200 E200 6200 7200 3A00 1E20 0FC0 0200 0200 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 16 0 BBX 11 19 3 0 BITMAP 03C0 0C60 0C60 1C60 1C00 1C00 1C00 1C00 1C00 FF00 1C00 1C00 1C00 1C00 1800 1000 2000 FFE0 FFE0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 16 0 BBX 15 15 0 2 BITMAP 8002 4004 37C8 1FF0 1C70 3838 3018 3018 3018 3838 1C70 1FF0 27C8 4004 C006 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 16 0 BBX 17 19 0 0 BITMAP FE0F80 780700 3C0E00 1E0C00 0E1800 0F3800 07F000 03E000 03E000 1FFC00 01C000 01C000 01C000 1FFC00 01C000 01C000 01C000 01C000 07F000 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 6 0 BBX 2 23 2 -4 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 00 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 16 0 BBX 11 24 2 -5 BITMAP 1F80 71C0 E0C0 E0C0 E000 E000 F000 3C00 3F00 6F80 E3C0 E1C0 E0C0 F8C0 7C80 3F80 1F80 03C0 01E0 00E0 C0E0 C0E0 E1C0 7F00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 16 0 BBX 7 3 4 16 BITMAP C6 C6 C6 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 22 0 BBX 20 19 1 0 BITMAP 01F800 0E0700 180180 3000C0 60FC60 438420 C30430 860010 860010 860010 860010 860010 C30030 418420 60F860 3000C0 180180 0E0700 01F800 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 11 0 BBX 10 10 1 9 BITMAP 1E00 2700 2700 0700 3F00 7700 E700 E700 FFC0 7980 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 14 0 BBX 11 12 1 1 BITMAP 0420 0860 18C0 3180 6380 E700 E700 7380 3180 18C0 0C60 0420 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 16 0 BBX 15 7 0 4 BITMAP FFFE FFFE 0006 0006 0006 0006 0006 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 8 0 BBX 6 2 1 7 BITMAP FC FC ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 16 0 BBX 11 12 2 7 BITMAP 1F00 2180 4040 DF40 8920 8920 8920 8E20 4A40 59C0 3180 1F00 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 16 0 BBX 7 2 4 17 BITMAP FE FE ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 7 0 BBX 4 4 1 15 BITMAP 60 90 90 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 16 0 BBX 16 16 0 0 BITMAP 0180 0180 0180 0180 0180 FFFF FFFF 0180 0180 0180 0180 0180 0000 0000 FFFF FFFF ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 -16 8 BITMAP 78 86 82 02 06 0C 18 20 40 80 FE ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 9 0 BBX 7 11 -16 8 BITMAP FC 86 82 02 04 7C 06 02 82 C6 F8 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 16 0 BBX 6 4 5 15 BITMAP 1C 30 60 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 0 -4 BITMAP F8F8 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 38F8 3FBC 3F3E 3800 3800 3800 3800 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 16 0 BBX 11 23 1 -4 BITMAP 3FE0 7FE0 FE20 FE20 FE20 FE20 FE20 7E20 3E20 1E20 0220 0220 0220 0220 0220 0220 0220 0220 0220 0220 0220 0220 0220 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 16 0 BBX 3 3 6 7 BITMAP E0 E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 16 0 BBX 4 6 6 -5 BITMAP 60 40 60 30 30 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 9 0 BBX 5 11 -17 8 BITMAP E0 20 20 20 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 11 0 BBX 9 10 1 9 BITMAP 3E00 7700 6300 E380 E380 E380 E380 6300 7700 3E00 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 14 0 BBX 11 12 2 1 BITMAP 8400 C600 6300 3180 39C0 1CE0 1CE0 38C0 3180 6300 C200 8400 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 20 0 BBX 17 19 4 0 BITMAP E00700 200600 200E00 201C00 203800 203000 207000 20E000 21C200 218600 FB8A00 071A00 0E1200 0C2200 1C4200 387F80 700200 600200 E00F80 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 20 0 BBX 17 19 4 0 BITMAP E00700 200600 200E00 201C00 203800 203000 207000 20E000 21DE00 21A180 FBA080 070080 0E0180 0C0300 1C0600 380800 701000 602000 E03F80 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 20 0 BBX 18 19 5 0 BITMAP FC0380 860300 820700 020E00 041C00 7C1800 063800 027000 82E100 C6C300 F9C500 038D00 070900 061100 0E2100 1C3FC0 380100 300100 7007C0 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 12 0 BBX 10 19 1 -5 BITMAP 0E00 0E00 0E00 0000 0000 0E00 0E00 0E00 0C00 0800 1000 3000 6000 E000 E0C0 E0C0 E0C0 71C0 1F80 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 19 0 BBX 19 24 0 0 BITMAP 038000 00C000 006000 003000 000000 004000 00E000 00E000 00F000 017000 017000 023800 023800 023C00 041C00 041C00 080E00 0FFE00 100F00 100700 100780 200380 6003C0 F80FE0 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 19 0 BBX 19 24 0 0 BITMAP 003800 006000 00C000 018000 000000 004000 00E000 00E000 00F000 017000 017000 023800 023800 023C00 041C00 041C00 080E00 0FFE00 100F00 100700 100780 200380 6003C0 F80FE0 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 19 0 BBX 19 24 0 0 BITMAP 01E000 01E000 033000 061800 000000 004000 00E000 00E000 00F000 017000 017000 023800 023800 023C00 041C00 041C00 080E00 0FFE00 100F00 100700 100780 200380 6003C0 F80FE0 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 19 0 BBX 19 23 0 0 BITMAP 01C400 01F800 023800 000000 004000 00E000 00E000 00F000 017000 017000 023800 023800 023C00 041C00 041C00 080E00 0FFE00 100F00 100700 100780 200380 6003C0 F80FE0 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 19 0 BBX 19 23 0 0 BITMAP 031800 031800 031800 000000 004000 00E000 00E000 00F000 017000 017000 023800 023800 023C00 041C00 041C00 080E00 0FFE00 100F00 100700 100780 200380 6003C0 F80FE0 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 19 0 BBX 19 24 0 0 BITMAP 006000 009000 009000 006000 000000 004000 00E000 00E000 00F000 017000 017000 023800 023800 023C00 041C00 041C00 080E00 0FFE00 100F00 100700 100780 200380 6003C0 F80FE0 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 24 0 BBX 23 19 0 0 BITMAP 001FFC 001C0C 003C0C 005C00 005C00 009C00 009C00 011C10 031C10 021FF0 061C10 041C00 0FFC00 181C00 101C00 301C00 201C06 601C06 F07FFE ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 18 0 BBX 15 24 1 -5 BITMAP 03F8 0E1E 3806 3006 7006 6000 E000 E000 E000 E000 E000 E000 F000 7000 7800 3C00 1E02 0FFE 03F8 0100 0180 00C0 00C0 0380 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 15 0 BBX 14 24 0 0 BITMAP 0E00 0300 0180 00C0 0000 FFF8 3818 3818 3800 3800 3800 3800 3820 3820 3FE0 3820 3820 3800 3800 3800 3800 380C 381C FFFC ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 15 0 BBX 14 24 0 0 BITMAP 01C0 0300 0600 0C00 0000 FFF8 3818 3818 3800 3800 3800 3800 3820 3820 3FE0 3820 3820 3800 3800 3800 3800 380C 381C FFFC ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 15 0 BBX 14 24 0 0 BITMAP 0780 0780 0CC0 1860 0000 FFF8 3818 3818 3800 3800 3800 3800 3820 3820 3FE0 3820 3820 3800 3800 3800 3800 380C 381C FFFC ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 15 0 BBX 14 23 0 0 BITMAP 0C60 0C60 0C60 0000 FFF8 3818 3818 3800 3800 3800 3800 3820 3820 3FE0 3820 3820 3800 3800 3800 3800 380C 381C FFFC ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 8 0 BBX 7 24 1 0 BITMAP E0 30 18 0C 00 FE 3C 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 FE ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 8 0 BBX 7 24 1 0 BITMAP 0E 18 30 60 00 FE 3C 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 FE ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 8 0 BBX 8 24 2 0 BITMAP 3C 3C 66 C3 00 7F 1E 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 7F ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 8 0 BBX 7 23 1 0 BITMAP C6 C6 C6 00 FE 3C 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 FE ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 20 0 BBX 19 19 0 0 BITMAP FFF800 3C0F00 1C0380 1C01C0 1C01C0 1C00C0 1C00E0 1C00E0 1C00E0 FFC0E0 1C00E0 1C00E0 1C00E0 1C00C0 1C01C0 1C0180 1C0300 3E0E00 FFF800 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 20 0 BBX 18 23 1 0 BITMAP 038800 03F000 047000 000000 F807C0 3C0100 3C0100 3E0100 3F0100 378100 338100 33C100 31E100 30F100 307100 307900 303D00 301F00 300F00 300F00 300700 300300 FC0300 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 20 0 BBX 18 24 1 0 BITMAP 038000 00C000 006000 003000 000000 03F000 0E1C00 380700 300300 700380 700380 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 700380 700380 300300 180700 0E1C00 03F000 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 20 0 BBX 18 24 1 0 BITMAP 007000 00C000 018000 030000 000000 03F000 0E1C00 380700 300300 700380 700380 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 700380 700380 300300 180700 0E1C00 03F000 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 20 0 BBX 18 24 1 0 BITMAP 01E000 01E000 033000 061800 000000 03F000 0E1C00 380700 300300 700380 700380 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 700380 700380 300300 180700 0E1C00 03F000 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 20 0 BBX 18 23 1 0 BITMAP 038800 03F000 047000 000000 03F000 0E1C00 380700 300300 700380 700380 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 700380 700380 300300 180700 0E1C00 03F000 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 20 0 BBX 18 23 1 0 BITMAP 063000 063000 063000 000000 03F000 0E1C00 380700 300300 700380 700380 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 700380 700380 300300 180700 0E1C00 03F000 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 16 0 BBX 15 16 0 0 BITMAP 4004 E00E 701C 3838 1C70 0C60 06C0 0380 0380 07C0 0EE0 1C70 3838 701C E00E C006 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 20 0 BBX 18 19 1 0 BITMAP 03F0C0 0E1C80 180700 300300 700780 700B80 E011C0 E031C0 E061C0 E0C1C0 E081C0 E101C0 E201C0 740380 780380 380300 380600 6E1C00 C3F000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 19 0 BBX 18 24 0 0 BITMAP 038000 00C000 006000 003000 000000 FE0FC0 380300 380300 380300 380300 380300 380300 380300 380300 380300 380300 380300 380300 380300 380300 180200 1C0600 0E0C00 03F000 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 19 0 BBX 18 24 0 0 BITMAP 007000 00C000 018000 030000 000000 FE0FC0 380300 380300 380300 380300 380300 380300 380300 380300 380300 380300 380300 380300 380300 380300 180200 1C0600 0E0C00 03F000 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 19 0 BBX 18 24 0 0 BITMAP 01E000 01E000 033000 061800 000000 FE0FC0 380300 380300 380300 380300 380300 380300 380300 380300 380300 380300 380300 380300 380300 380300 180200 1C0600 0E0C00 03F000 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 19 0 BBX 18 23 0 0 BITMAP 031800 031800 031800 000000 FE0FC0 380300 380300 380300 380300 380300 380300 380300 380300 380300 380300 380300 380300 380300 380300 180200 1C0600 0E0C00 03F000 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 18 0 BBX 18 24 0 0 BITMAP 007000 00C000 018000 030000 000000 FE07C0 780100 380200 1C0200 1E0400 0E0800 0F0800 079000 03A000 03E000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 07F000 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 15 0 BBX 14 19 0 0 BITMAP FE00 3800 3800 3800 3FE0 3878 383C 381C 381C 381C 381C 3838 3838 38F0 3FC0 3800 3800 3800 FE00 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 16 0 BBX 13 20 1 0 BITMAP 0F80 19C0 38E0 38E0 38E0 38C0 3980 3900 3B00 3B80 3BC0 39E0 39F0 38F0 3878 3818 3818 3B18 3B30 FBE0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 14 0 BBX 12 19 1 0 BITMAP 3800 0C00 0600 0300 0000 3F00 7380 61C0 01C0 01C0 1FC0 79C0 61C0 E1C0 E1C0 E1C0 F3C0 7ED0 3C70 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 14 0 BBX 12 19 1 0 BITMAP 0380 0600 0C00 1800 0000 3F00 7380 61C0 01C0 01C0 1FC0 79C0 61C0 E1C0 E1C0 E1C0 F3C0 7ED0 3C70 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 14 0 BBX 12 19 1 0 BITMAP 0F00 0F00 1980 30C0 0000 3F00 7380 61C0 01C0 01C0 1FC0 79C0 61C0 E1C0 E1C0 E1C0 F3C0 7ED0 3C70 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 1 0 BITMAP 1C40 1F80 2380 0000 3F00 7380 61C0 01C0 01C0 1FC0 79C0 61C0 E1C0 E1C0 E1C0 F3C0 7ED0 3C70 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 14 0 BBX 12 18 1 0 BITMAP 3180 3180 3180 0000 3F00 7380 61C0 01C0 01C0 1FC0 79C0 61C0 E1C0 E1C0 E1C0 F3C0 7ED0 3C70 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 14 0 BBX 12 19 1 0 BITMAP 0600 0900 0900 0600 0000 3F00 7380 61C0 01C0 01C0 1FC0 79C0 61C0 E1C0 E1C0 E1C0 F3C0 7ED0 3C70 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 21 0 BBX 19 14 1 0 BITMAP 1F1F00 71F180 60F0C0 60E0C0 00E0E0 00E0E0 1FFFE0 78E000 E0E000 E0E000 E0F000 F1F000 7F3820 3C0FC0 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 13 0 BBX 11 19 1 -5 BITMAP 0FC0 38E0 7060 7060 E000 E000 E000 E000 E000 F000 7000 7820 3FE0 0FC0 0400 0600 0300 0300 0E00 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 14 0 BBX 11 19 1 0 BITMAP 3800 0C00 0600 0300 0000 0F00 31C0 70C0 60E0 E0E0 FFE0 E000 E000 E000 F000 7000 7820 3FE0 0F80 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 14 0 BBX 11 19 1 0 BITMAP 0380 0600 0C00 1800 0000 0F00 31C0 70C0 60E0 E0E0 FFE0 E000 E000 E000 F000 7000 7820 3FE0 0F80 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 14 0 BBX 11 19 1 0 BITMAP 0F00 0F00 1980 30C0 0000 0F00 31C0 70C0 60E0 E0E0 FFE0 E000 E000 E000 F000 7000 7820 3FE0 0F80 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 14 0 BBX 11 18 1 0 BITMAP 3180 3180 3180 0000 0F00 31C0 70C0 60E0 E0E0 FFE0 E000 E000 E000 F000 7000 7820 3FE0 0F80 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 8 0 BBX 7 19 1 0 BITMAP E0 30 18 0C 00 F8 38 38 38 38 38 38 38 38 38 38 38 38 FE ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 8 0 BBX 7 19 1 0 BITMAP 0E 18 30 60 00 F8 38 38 38 38 38 38 38 38 38 38 38 38 FE ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 8 0 BBX 8 19 2 0 BITMAP 3C 3C 66 C3 00 7C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 7F ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 8 0 BBX 7 18 1 0 BITMAP C6 C6 C6 00 F8 38 38 38 38 38 38 38 38 38 38 38 38 FE ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 15 0 BBX 13 19 1 0 BITMAP FF80 1E00 0E00 7380 21C0 0FE0 38E0 7070 7070 E038 E038 E038 E038 E038 E038 7070 7070 38E0 0F80 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 1 0 BITMAP 0E20 0FC0 11C0 0000 F8E0 7BF0 3E38 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 FEFE ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 1 0 BITMAP 1C00 0600 0300 0180 0000 0F80 38E0 7070 7070 E038 E038 E038 E038 E038 E038 7070 7070 38E0 0F80 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 1 0 BITMAP 01C0 0300 0600 0C00 0000 0F80 38E0 7070 7070 E038 E038 E038 E038 E038 E038 7070 7070 38E0 0F80 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 1 0 BITMAP 0F00 0F00 1980 30C0 0000 0F80 38E0 7070 7070 E038 E038 E038 E038 E038 E038 7070 7070 38E0 0F80 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 16 0 BBX 13 18 1 0 BITMAP 1C40 1F80 2380 0000 0F80 38E0 7070 7070 E038 E038 E038 E038 E038 E038 7070 7070 38E0 0F80 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 16 0 BBX 13 18 1 0 BITMAP 18C0 18C0 18C0 0000 0F80 38E0 7070 7070 E038 E038 E038 E038 E038 E038 7070 7070 38E0 0F80 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 16 0 BBX 15 13 0 1 BITMAP 0380 0380 0380 0000 0000 0000 FFFE FFFE 0000 0000 0380 0380 0380 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 16 0 BBX 13 14 1 0 BITMAP 0F98 38D0 7060 7070 E0B8 E138 E338 E238 E438 E838 7870 3070 38E0 CF80 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 0 0 BITMAP 0E00 0300 0180 00C0 0000 F8F8 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 38F8 1FBC 0E3E ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 0 0 BITMAP 00E0 0180 0300 0600 0000 F8F8 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 38F8 1FBC 0E3E ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 0 0 BITMAP 03C0 03C0 0660 0C30 0000 F8F8 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 38F8 1FBC 0E3E ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 16 0 BBX 15 18 0 0 BITMAP 0C60 0C60 0C60 0000 F8F8 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 38F8 1FBC 0E3E ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 14 0 BBX 14 24 0 -5 BITMAP 01C0 0300 0600 0C00 0000 FC3C 7008 7818 3810 3C10 1C20 1C20 0E40 0E40 0FC0 0780 0780 0300 0300 0200 0600 0C00 1C00 3C00 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 17 0 BBX 14 23 1 -5 BITMAP F800 3800 3800 3800 38E0 3BF8 3E38 383C 381C 381C 381C 381C 381C 381C 3818 3C38 3BF0 39E0 3800 3800 3800 3800 FE00 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 14 0 BBX 14 23 0 -5 BITMAP 18C0 18C0 18C0 0000 FC3C 7008 7818 3810 3C10 1C20 1C20 0E40 0E40 0FC0 0780 0780 0300 0300 0200 0600 0C00 1C00 3C00 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 15 20 1 0 BITMAP 0FF8 1878 3838 3838 3838 3838 FE38 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 FEFE ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 10 2 2 7 BITMAP FFC0 FFC0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 12 23 2 -4 BITMAP 0E00 0E00 0E00 0E00 0600 0600 E670 FFF0 0600 0600 0600 0600 0600 0600 0600 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 13 24 2 0 BITMAP 1860 0CC0 0780 0780 0000 FFF8 E078 C0F0 C0E0 01E0 01C0 03C0 0380 0780 0700 0E00 0E00 1C00 3C00 3800 7800 7018 E018 FFF8 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 24 0 BBX 21 14 1 0 BITMAP 0F87C0 384C70 707C30 703838 E03838 E03FF8 E03800 E03800 E03800 E03C00 F03C00 704E08 3847F8 1F83E0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 18 23 0 0 BITMAP 063000 063000 063000 000000 FE07C0 780100 380200 1C0200 1E0400 0E0800 0F0800 079000 03A000 03E000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 07F000 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 14 1 0 BITMAP F8 38 38 38 38 38 38 38 38 38 38 38 38 FE ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 9 19 0 0 BITMAP 7C00 3C00 1C00 1C00 1C00 1C00 1C00 1D80 1F00 1C00 7C00 9C00 1C00 1C00 1C00 1C00 1C00 3E00 7F00 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 14 19 0 0 BITMAP FF00 3C00 1C00 1C00 1C00 1C00 1C00 1D80 1E00 1C00 7C00 9C00 1C00 1C00 1C00 1C0C 1C0C 3C1C FFFC ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 12 23 2 -4 BITMAP 0E00 0E00 0E00 0E00 0600 0600 E670 FFF0 0600 0600 0600 0600 0600 0600 0600 FFF0 E670 0600 0600 0E00 0E00 0E00 0E00 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 15 20 1 0 BITMAP 0F00 19B8 39B8 39B8 3800 3800 FFF8 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 3838 FCFE ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 6 12 2 1 BITMAP 80 C0 60 70 38 1C 1C 38 30 60 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 26 0 BBX 25 19 1 0 BITMAP 03E7FF00 0E1F0700 380F0300 30070300 70070000 70070000 E0070000 E0070400 E0070400 E007FC00 E0070400 E0070400 E0070000 70070000 70070000 30070180 380F0180 0E1F0380 03E7FF80 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 26 0 BBX 23 2 2 7 BITMAP FFFFFE FFFFFE ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 8 4 4 15 BITMAP C3 66 3C 3C ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 4 4 6 -4 BITMAP 60 C0 C0 70 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 8 4 5 15 BITMAP 1B 24 48 90 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 6 12 1 1 BITMAP 04 08 18 30 60 E0 E0 70 30 18 0C 04 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 3 3 6 16 BITMAP E0 E0 E0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 8 4 4 15 BITMAP 81 C3 7E 3C ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 8 8 4 4 BITMAP 3C 7E FF FF FF FF 7E 3C ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 8 3 4 16 BITMAP 71 7E 8E ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 8 4 4 15 BITMAP 3C 3C 66 C3 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 8 7 2 12 BITMAP 63 C6 C6 C6 E7 E7 E7 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 6 0 BBX 3 6 2 13 BITMAP E0 E0 E0 40 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 13 0 BBX 10 19 2 0 BITMAP 6180 3300 1E00 1E00 0000 3F00 7380 E180 E180 F000 F800 7F00 3F80 07C0 C1C0 C1C0 C1C0 E380 3F00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 4 4 6 16 BITMAP 60 90 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 9 2 -5 BITMAP E0 E0 E0 E0 60 60 60 40 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 12 23 3 -4 BITMAP 01F0 0230 0430 0430 0C00 0C00 1C00 1C00 1C00 FE00 3800 3000 3000 3000 3000 7000 6000 6000 6000 6000 E000 E000 C000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 21 10 1 9 BITMAP FF7C78 993CE0 993EE0 183EE0 183F60 183F60 183760 183660 183660 3C7078 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 16 19 -7 0 BITMAP 0007 0006 000E 001C 0038 0030 0070 00E0 01C0 0180 0380 0700 0E00 0C00 1C00 3800 7000 6000 E000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 6 4 4 15 BITMAP E0 30 18 0C ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 27 0 BBX 26 19 0 0 BITMAP 3C038000 66030000 C3060000 C30E0000 C31C0000 C3380000 C3300000 66600000 3CE00000 01DE0F00 03B31980 0361B0C0 0661B0C0 0E61B0C0 1C61B0C0 3861B0C0 3061B0C0 60331980 E01E0F00 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 26 0 BBX 17 3 5 0 BITMAP E1C380 E1C380 E1C380 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 8 7 2 12 BITMAP E7 E7 E7 63 63 C6 84 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 14 0 BBX 11 24 2 0 BITMAP 6180 3300 1E00 1E00 0000 1F80 71C0 60C0 E0C0 E000 E000 F000 7C00 3E00 1F80 07C0 03C0 01E0 00E0 C0E0 C0E0 C0C0 E180 7F00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 8 9 2 -5 BITMAP E7 E7 E7 63 63 63 63 42 C6 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 12 19 2 0 BITMAP 30C0 1980 0F00 0F00 0000 FFF0 C0E0 C1E0 03C0 0380 0780 0F00 0E00 1E00 3C00 3800 7830 F030 FFF0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lubR24.bdf100644 1750 1750 144270 5413747537 15121 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaBright-Medium-R-Normal--34-240-100-100-P-193-ISO8859-1 SIZE 24 100 100 FONTBOUNDINGBOX 85 39 -21 -7 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaBright" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "" PIXEL_SIZE 34 POINT_SIZE 240 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "P" AVERAGE_WIDTH 193 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 31 FONT_DESCENT 8 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 10 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 9 0 BBX 3 25 3 0 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 40 40 40 40 40 40 00 00 00 00 E0 E0 E0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 13 0 BBX 9 9 2 17 BITMAP E380 E380 E380 E380 E380 4100 4100 4100 4100 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 21 0 BBX 21 25 0 0 BITMAP 0060C0 006180 006180 00C180 00C180 00C300 00C300 3FFFF8 3FFFF8 018600 018600 030600 030600 030C00 030C00 FFFFE0 FFFFE0 061C00 061800 0E1800 0C1800 0C1800 0C3000 1C3000 183000 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 21 0 BBX 14 30 3 -3 BITMAP 0100 0100 0FF0 1D1C 390C 710C 710C 7100 7100 7100 7900 3D00 1F00 0F80 07C0 01F0 01F8 017C 013C 011C 011C 011C C11C C118 C138 F170 3FC0 0100 0100 0100 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 23 0 BBX 24 25 0 0 BITMAP 1F0007 30800E 60C01C 404038 C06030 C06060 C060C0 C061C0 C06380 404700 60CE00 208C00 1F1800 0030F8 007184 00E306 01C603 038603 030603 060603 0C0603 1C0603 380306 700104 E000F8 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 23 0 BBX 22 25 1 0 BITMAP 01F800 030E00 070600 0E0700 0E0700 0E0700 0E0700 0F0E00 078C00 079800 07E000 1DE000 38F1FC 70F030 607830 E03830 E03C20 E01E20 E00F60 F00740 700380 7801C0 3E07E0 1FF9F8 07E0FC ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 9 0 BBX 4 10 3 16 BITMAP F0 F0 F0 F0 30 30 30 60 E0 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 11 0 BBX 7 32 2 -6 BITMAP 02 06 0C 08 18 10 30 30 70 60 60 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 60 60 70 30 30 30 18 08 0C 06 02 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 11 0 BBX 7 32 2 -6 BITMAP 80 C0 60 20 30 18 18 18 1C 0C 0C 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0C 0C 1C 18 18 18 30 20 60 C0 80 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 16 0 BBX 13 12 2 13 BITMAP 0700 0700 0200 4208 F278 78F0 0000 0500 0D80 18C0 38E0 1040 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 21 0 BBX 20 21 0 0 BITMAP 006000 006000 006000 006000 006000 006000 006000 006000 006000 FFFFF0 FFFFF0 006000 006000 006000 006000 006000 006000 006000 006000 006000 006000 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 9 0 BBX 4 11 3 -6 BITMAP F0 F0 F0 F0 F0 30 30 30 20 60 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 21 0 BBX 20 2 0 9 BITMAP FFFFF0 FFFFF0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 9 0 BBX 4 3 3 0 BITMAP F0 F0 F0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 17 0 BBX 17 32 0 -6 BITMAP 000180 000300 000300 000600 000600 000C00 000C00 001C00 001800 003800 003000 003000 006000 006000 00C000 00C000 018000 018000 030000 030000 060000 060000 0E0000 0C0000 1C0000 180000 180000 300000 300000 600000 600000 C00000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 21 0 BBX 17 25 2 0 BITMAP 03E000 0C1800 180C00 300600 300600 700700 600300 600300 E00380 E00380 E00380 E00380 E00380 E00380 E00380 E00380 E00380 600300 600300 700700 300600 300600 180C00 0C1800 03E000 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 21 0 BBX 12 25 4 0 BITMAP FF00 0F00 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0F80 FFF0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 21 0 BBX 15 25 3 0 BITMAP 0FE0 7838 701C 601C 600E 600E 000E 000E 000E 000C 001C 0038 0070 00C0 0180 0300 0400 0800 1800 3000 7000 7000 FFFE FFFE FFFE ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 21 0 BBX 14 25 3 0 BITMAP 3F80 F0E0 C070 C038 C038 0038 0038 0038 0030 0070 01E0 1F80 00E0 0078 0038 001C 001C 001C 001C 001C C01C C038 C070 F0E0 7F80 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 21 0 BBX 17 25 1 0 BITMAP 000C00 001C00 003C00 003C00 005C00 009C00 019C00 011C00 021C00 041C00 0C1C00 081C00 101C00 301C00 601C00 401C00 FFFF80 FFFF80 001C00 001C00 001C00 001C00 001C00 003E00 00FF80 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 21 0 BBX 13 25 4 0 BITMAP FFF8 FFF8 FFF8 8000 8000 8000 8000 8000 8000 8000 FE00 0780 00E0 0070 0030 0038 0038 0038 0038 0038 C030 C070 C0E0 E1C0 FF00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 21 0 BBX 17 25 2 0 BITMAP 01FC00 060F00 180300 180300 300300 700000 700000 600000 E00000 E3F000 EC1C00 F80600 F00700 E00300 E00380 E00380 E00380 600380 600380 700380 300700 380700 180E00 0E1C00 03F000 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 21 0 BBX 16 25 3 0 BITMAP FFFF FFFF FFFF 0002 0004 000C 0008 0010 0030 0060 0040 00C0 0180 0300 0300 0600 0E00 0C00 1C00 1C00 3800 3800 3800 7000 7000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 21 0 BBX 16 25 2 0 BITMAP 07E0 1C38 381C 300E 700E 700E 700E 780E 3C1C 3E18 1FB0 07E0 1BF0 30FC 703E 601E E00F E007 E007 E007 E007 700E 700C 1C38 07E0 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 21 0 BBX 17 25 2 0 BITMAP 07E000 1C3800 380C00 700E00 700700 E00700 E00300 E00380 E00380 E00380 E00380 600380 700780 300F80 1C1380 07E380 000380 000300 000700 000700 600600 600C00 600800 783000 1FC000 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 9 0 BBX 3 18 3 0 BITMAP E0 E0 E0 00 00 00 00 00 00 00 00 00 00 00 00 E0 E0 E0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 9 0 BBX 3 24 3 -6 BITMAP E0 E0 E0 00 00 00 00 00 00 00 00 00 00 00 00 E0 E0 E0 60 60 60 60 40 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 21 0 BBX 20 21 0 0 BITMAP 000010 000070 0001E0 0007C0 001F00 007C00 01F000 03C000 0F0000 3C0000 F00000 3C0000 0F0000 03C000 01F000 007C00 001F00 0007C0 0001E0 000070 000010 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 21 0 BBX 20 9 0 5 BITMAP FFFFF0 FFFFF0 000000 000000 000000 000000 000000 FFFFF0 FFFFF0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 21 0 BBX 20 21 0 0 BITMAP 800000 E00000 780000 3E0000 0F8000 03E000 00F800 003C00 000F00 0003C0 0000F0 0003C0 000F00 003C00 00F800 03E000 0F8000 3E0000 780000 E00000 800000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 16 0 BBX 13 25 2 0 BITMAP 3F80 E0E0 C070 C038 C038 C038 0038 0038 0070 0060 00C0 0180 0300 0200 0600 0E00 0E00 0E00 0E00 0000 0000 0000 0E00 0E00 0E00 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 30 0 BBX 26 25 2 0 BITMAP 000FE000 00703800 01800600 03000300 04000100 080F0080 101FE080 2021E040 2040E040 4080E040 4181C040 8181C040 8101C040 8303C0C0 8303C080 83058180 830D8100 83998200 41F18400 41E0F800 20000000 30000000 18000000 06030000 01FC0000 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 25 0 BBX 25 25 0 0 BITMAP 00080000 00080000 001C0000 001C0000 003E0000 002E0000 006F0000 00470000 00470000 00838000 00838000 0103C000 0101C000 0101C000 0200E000 0200E000 07FFF000 04007000 04007000 08003800 08003800 10003C00 10001C00 30001E00 FC00FF80 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 21 0 BBX 18 25 1 0 BITMAP FFF800 3C1E00 1C0700 1C0380 1C0380 1C0380 1C0380 1C0380 1C0300 1C0700 1C0E00 1C3800 1FFC00 1C3F00 1C0F80 1C0380 1C03C0 1C01C0 1C01C0 1C01C0 1C01C0 1C03C0 1C0780 3E0F00 FFFC00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 24 0 BBX 20 25 2 0 BITMAP 00FF80 0381F0 0E0070 1C0030 380030 300030 700000 700000 E00000 E00000 E00000 E00000 E00000 E00000 E00000 E00000 700000 700000 700000 380000 3C0000 1E0010 0F8070 03FFE0 00FF00 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 26 0 BBX 24 25 1 0 BITMAP FFFF00 3C03E0 1C00F0 1C0038 1C001C 1C000E 1C000E 1C000E 1C0007 1C0007 1C0007 1C0007 1C0007 1C0007 1C0007 1C0007 1C0006 1C000E 1C000E 1C000C 1C001C 1C0038 1C0070 3E03C0 FFFF00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 19 0 BBX 17 25 1 0 BITMAP FFFF00 1C0700 1C0300 1C0300 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0400 1C0400 1FFC00 1C0400 1C0400 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0180 1C0180 3E0380 FFFF80 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 19 0 BBX 16 25 1 0 BITMAP FFFF 1C07 1C03 1C03 1C00 1C00 1C00 1C00 1C00 1C00 1C04 1C04 1FFC 1C04 1C04 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 3E00 FFC0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 25 0 BBX 23 25 2 0 BITMAP 00FF80 0781F0 0E0070 1C0030 380030 700030 700000 700000 E00000 E00000 E00000 E00000 E00000 E00000 E003FE E000F8 600070 700070 700070 380070 380070 1C0070 0E0070 03C070 00FF80 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 26 0 BBX 25 25 1 0 BITMAP FF80FF80 3E003E00 1C001C00 1C001C00 1C001C00 1C001C00 1C001C00 1C001C00 1C001C00 1C001C00 1C001C00 1FFFFC00 1C001C00 1C001C00 1C001C00 1C001C00 1C001C00 1C001C00 1C001C00 1C001C00 1C001C00 1C001C00 1C001C00 3E003E00 FF80FF80 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 11 0 BBX 9 25 1 0 BITMAP FF80 3E00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 3E00 FF80 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 14 0 BBX 13 31 0 -6 BITMAP 0FF8 03E0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 C180 C180 C380 E700 FC00 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 24 0 BBX 23 25 1 0 BITMAP FF87F8 3E00E0 1C0180 1C0300 1C0200 1C0400 1C0800 1C1000 1C2000 1C4000 1C8000 1D8000 1FC000 1DE000 1CF000 1C7800 1C3C00 1C1E00 1C1E00 1C0F00 1C0780 1C03C0 1C01E0 3E01F8 FF87FE ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 19 0 BBX 18 25 1 0 BITMAP FF8000 3E0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C00C0 1C00C0 3E01C0 FFFFC0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 29 0 BBX 28 25 1 0 BITMAP FE0003F0 3E0007C0 1F000780 1F000780 1B800B80 1B800B80 1BC01B80 19C01380 19C01380 18E02380 18E02380 18F06380 18704380 18704380 18388380 18388380 183D0380 181D0380 181F0380 180E0380 180E0380 180C0380 18040380 3C0007C0 FF001FF0 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 26 0 BBX 24 25 1 0 BITMAP FC007F 3E001C 1E0008 1F0008 1F8008 1BC008 19C008 19E008 18F008 187008 183808 183C08 181E08 180E08 180F08 180788 1803C8 1801C8 1801E8 1800F8 180078 180078 180038 3C0018 FF0008 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 26 0 BBX 23 25 2 0 BITMAP 00FE00 0783C0 0E00E0 1C0070 380038 300018 70001C 70001C E0000E E0000E E0000E E0000E E0000E E0000E E0000E E0000E E0000E 70001C 70001C 300018 380038 1C0070 0E00E0 0783C0 00FE00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 19 0 BBX 18 25 1 0 BITMAP FFFC00 3C0F00 1C0380 1C0180 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C0380 1C0380 1C0700 1C1E00 1FF000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 3E0000 FF8000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 26 0 BBX 28 30 2 -5 BITMAP 00FE0000 0783C000 0E00E000 1C007000 38003800 30001800 70001C00 70001C00 E0000C00 E0000E00 E0000E00 E0000E00 E0000E00 E0000E00 E0000E00 E0000E00 E0000E00 70001C00 70001C00 30001C00 38003800 1C007800 0E00F000 0383E000 00FF8000 00010000 0000E000 00003C00 00001FC0 000007F0 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 23 0 BBX 23 25 0 0 BITMAP FFFC00 3C0F00 1C0380 1C0180 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C0180 1C0380 1C0700 1C1E00 1FF800 1C3C00 1C1C00 1C1E00 1C0F00 1C0700 1C0780 1C0380 1C01C0 1C01E0 3E00F0 FF807E ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 18 0 BBX 15 25 2 0 BITMAP 0FF0 181C 700C 600C E00C E000 E000 E000 F000 7C00 3F00 1F80 07E0 01F8 007C 003C 001E 000E 000E C00E C00C C00C E018 F870 3FC0 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 23 0 BBX 21 25 1 0 BITMAP FFFFF8 E07038 C07018 C07018 007000 007000 007000 007000 007000 007000 007000 007000 007000 007000 007000 007000 007000 007000 007000 007000 007000 007000 007000 00F800 03FE00 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 24 0 BBX 24 25 0 0 BITMAP FF80FF 3E003C 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0010 0E0030 0E0030 070060 0381C0 00FF00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 24 0 BBX 24 25 0 0 BITMAP FF803F 3C000C 1C000C 1C0008 0E0008 0E0010 0F0010 070030 070020 038020 038040 03C040 01C040 01E080 00E080 00E100 007100 007100 007A00 003A00 003E00 001C00 001C00 001800 000800 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 31 0 BBX 31 25 0 0 BITMAP FF8180FE 3C018018 3C018010 1C01C010 1C03C010 1E03C020 0E03C020 0E04E020 0E04E040 0F04E040 070CF040 07087040 07087080 03887080 03903880 03903900 03903900 01E01D00 01E01D00 01E01E00 01E00E00 00C00E00 00C00C00 00C00C00 00800400 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 22 0 BBX 22 25 0 0 BITMAP FFC0FC 3E0030 0E0060 0F0040 070080 078180 038100 01C200 01E600 00E400 00F800 007800 007800 007C00 00DC00 008E00 010F00 030700 020780 040380 0C03C0 0801C0 1001E0 3000F0 FE07FC ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 23 0 BBX 23 25 0 0 BITMAP FFC0FE 3E0018 1E0010 0F0020 070020 078040 0380C0 03C080 01C100 00E100 00F200 007400 007C00 003800 003800 003800 003800 003800 003800 003800 003800 003800 003800 007C00 01FF00 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 21 0 BBX 18 25 1 0 BITMAP 7FFFC0 700380 600780 600700 600E00 000E00 001C00 003C00 003800 007800 00F000 00E000 01E000 01C000 03C000 078000 070000 0F0000 0E0000 1E0000 3C0000 3C00C0 7800C0 7001C0 FFFFC0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 11 0 BBX 7 32 3 -6 BITMAP FE E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 FE ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 17 0 BBX 17 32 0 -6 BITMAP C00000 600000 600000 300000 300000 180000 180000 1C0000 0C0000 0E0000 060000 060000 030000 030000 018000 018000 00C000 00C000 006000 006000 003000 003000 003800 001800 001C00 000C00 000C00 000600 000600 000300 000300 000180 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 11 0 BBX 7 32 1 -6 BITMAP FE 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E FE ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 21 0 BBX 20 21 0 4 BITMAP 002000 006000 006000 00F000 00F000 01F800 019800 039C00 030C00 070E00 060600 060600 0C0300 0C0300 180180 180180 3000C0 3000C0 600060 600060 C00030 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 17 0 BBX 14 2 2 -3 BITMAP FFFC FFFC ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 9 0 BBX 4 10 3 16 BITMAP 30 60 C0 C0 C0 C0 F0 F0 F0 F0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 18 0 BBX 17 18 1 0 BITMAP 0FE000 707800 603800 601C00 001C00 001C00 001C00 03FC00 1C1C00 701C00 701C00 E01C00 E01C00 E01C00 F01C00 786C00 7FCE80 1F0780 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 21 0 BBX 19 26 0 0 BITMAP FC0000 3C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C3E00 1CFF80 1D8780 1E01C0 1C01C0 1C00E0 1C00E0 1C00E0 1C00E0 1C00E0 1C00E0 1C00E0 1C00C0 1C01C0 1C01C0 1F0380 19FF00 187C00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 17 0 BBX 14 18 2 0 BITMAP 03F8 0C1C 380C 300C 700C 6000 E000 E000 E000 E000 E000 E000 7000 7000 3800 3E04 0FFC 03F0 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 22 0 BBX 19 26 2 0 BITMAP 003F00 000F00 000700 000700 000700 000700 000700 000700 07C700 1FF700 381F00 700700 700700 600700 E00700 E00700 E00700 E00700 E00700 E00700 E00700 700700 700F00 3C3700 3FE780 0F87E0 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 18 0 BBX 15 18 1 0 BITMAP 07E0 1C38 301C 700C 600E 600E E00E FFFE E000 E000 E000 E000 7000 7000 3800 1E06 0FFE 03F8 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 14 0 BBX 13 27 1 0 BITMAP 03E0 0E38 0C18 0C18 1C18 1C00 1C00 1C00 1C00 FFE0 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 3E00 FFC0 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 19 0 BBX 18 25 1 -7 BITMAP 07FFC0 1C3C00 381C00 381E00 700E00 700E00 700E00 700E00 700E00 381C00 181800 0C3000 1FE000 380000 700000 700000 3FFE00 1FFF00 700780 E00380 E00380 E00380 F00700 381E00 0FF000 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 21 0 BBX 21 26 1 0 BITMAP FC0000 3C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C3E00 1CFF80 1DC380 1F01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 3E03E0 FF8FF8 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 10 0 BBX 9 25 1 0 BITMAP 1C00 1C00 1C00 0000 0000 0000 0000 FC00 3C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 3E00 FF80 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 12 0 BBX 10 32 0 -7 BITMAP 01C0 01C0 01C0 0000 0000 0000 0000 0FC0 03C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 C1C0 C1C0 C180 E300 FE00 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 20 0 BBX 20 26 0 0 BITMAP FC0000 3C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C1FE0 1C0300 1C0600 1C0C00 1C1000 1C2000 1C4000 1D8000 1FC000 1DE000 1CF000 1C7800 1C3C00 1C1E00 1C0F00 1C0F80 3E07C0 FF83F0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 11 0 BBX 9 26 1 0 BITMAP FC00 3C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 3E00 FF80 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 32 0 BBX 31 18 1 0 BITMAP FC3E0780 3CFF1FE0 1D8730E0 1E03C070 1C038070 1C038070 1C038070 1C038070 1C038070 1C038070 1C038070 1C038070 1C038070 1C038070 1C038070 1C038070 3E07C0F8 FF9FF3FE ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 21 0 BBX 21 18 1 0 BITMAP FC3E00 3CFF80 1DC380 1F01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 3E03E0 FF8FF8 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 20 0 BBX 17 18 2 0 BITMAP 07F000 1C1C00 380E00 700700 700700 E00380 E00380 E00380 E00380 E00380 E00380 E00380 E00380 700700 700700 380E00 1C1C00 07F000 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 22 0 BBX 19 25 1 -7 BITMAP FC3E00 3CFF80 1D8780 1E01C0 1C01C0 1C00E0 1C00E0 1C00E0 1C00E0 1C00E0 1C00E0 1C00E0 1C00C0 1C01C0 1C01C0 1F0380 1DFF00 1C7C00 1C0000 1C0000 1C0000 1C0000 1C0000 3E0000 FF8000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 21 0 BBX 19 25 2 -7 BITMAP 07C700 1FF700 381F00 700700 700700 600700 E00700 E00700 E00700 E00700 E00700 E00700 E00700 700700 700F00 3C3700 3FE700 0F8700 000700 000700 000700 000700 000700 000F80 003FE0 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP FC78 3CF8 1D18 1E18 1C18 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 3E00 FF80 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 17 0 BBX 13 18 2 0 BITMAP 1FC0 3070 6030 E030 E030 E000 F800 7E00 3F80 0FE0 03F0 0078 C038 C038 C038 E070 F0E0 3F80 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 13 0 BBX 11 23 1 0 BITMAP 0C00 1C00 1C00 1C00 1C00 FFE0 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 0E00 07E0 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 21 0 BBX 21 18 0 0 BITMAP FC0FC0 3C03C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C07C0 0E0DC0 0FF9E0 03E1F8 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 19 0 BBX 19 18 0 0 BITMAP FF03E0 7800C0 3C0080 1C0180 1C0100 0E0300 0E0200 0F0200 070400 078400 038800 038800 01D000 01D000 01E000 00E000 00C000 004000 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 27 0 BBX 27 18 0 0 BITMAP FF0207E0 780600C0 38070080 380F0080 3C0F8100 1C0B8100 1C138100 1E13C200 0E31C200 0E21C600 0F20E400 0740E400 0740F800 07C07800 03807800 03803000 03003000 01003000 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 19 0 BBX 19 18 0 0 BITMAP FF07C0 7C0180 1E0300 1E0200 0F0400 078800 039800 01D000 01E000 00F000 017800 027800 043C00 0C1E00 080F00 100F00 700780 FC1FE0 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 19 0 BBX 19 25 0 -7 BITMAP FF03E0 3C00C0 3C0080 1C0180 1C0100 0E0100 0E0200 0F0200 070400 078400 038C00 038800 01C800 01D000 01F000 00E000 00E000 004000 004000 00C000 018000 038000 070000 0F0000 1E0000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 20 0 BBX 15 18 3 0 BITMAP FFFE E03C C038 C078 00F0 00E0 01E0 03C0 0380 0780 0F00 0E00 1E00 3C00 3806 7806 F00E FFFE ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 12 0 BBX 9 32 1 -6 BITMAP 0380 0400 0800 1800 1800 1800 1800 1C00 1C00 0C00 0C00 0C00 0C00 0800 0800 1000 F000 1800 0800 0C00 0C00 0C00 0C00 1C00 1C00 1C00 1800 1800 1800 0800 0400 0380 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 8 0 BBX 2 32 3 -6 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 12 0 BBX 9 32 2 -6 BITMAP E000 1000 0800 0C00 0C00 0C00 0C00 1C00 1C00 1C00 1800 1800 1800 0800 0800 0400 0780 0C00 0800 1800 1800 1800 1800 1C00 1C00 1C00 0C00 0C00 0C00 0800 1000 E000 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 21 0 BBX 20 7 0 6 BITMAP 1E0000 3F8010 63C010 40F030 C03860 801FE0 800780 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 9 0 BBX 3 25 3 -7 BITMAP E0 E0 E0 00 00 00 00 40 40 40 40 40 40 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 21 0 BBX 13 25 3 0 BITMAP 0100 0100 0100 07F0 1D38 3918 7118 7118 6100 E100 E100 E100 E100 E100 E100 E100 6100 7100 3900 3D00 1F08 07F0 0100 0100 0100 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 21 0 BBX 14 25 4 0 BITMAP 01F0 061C 0E0C 0C0C 1C0C 1C00 1C00 1C00 1C00 1C00 1C00 1C00 7FC0 1C00 1C00 1C00 1C00 1C00 1C00 1800 1800 3000 C000 FFFC FFFC ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 21 0 BBX 19 21 1 2 BITMAP 800020 400040 61F0C0 33F980 160D00 0C0600 180300 180300 300180 300180 300180 300180 300180 180300 180300 0C0600 0F1E00 17FD00 21F080 400040 800020 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 21 0 BBX 23 25 0 0 BITMAP FFC0FE 3E0038 1E0070 0F0060 0780E0 0381C0 03C180 01E300 00E700 00F600 007C00 003C00 07FFC0 003800 003800 003800 003800 07FFC0 003800 003800 003800 003800 003800 007C00 01FF00 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 8 0 BBX 2 32 3 -6 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 00 00 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 21 0 BBX 14 31 3 -6 BITMAP 0FE0 3878 7018 6018 E018 E000 E000 F000 7800 7E00 1F80 37E0 61F0 E0F8 E038 E018 F018 F818 7E10 3FB0 0FE0 03F0 00F8 003C 001C 001C C01C C01C E038 F070 3FC0 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 20 0 BBX 9 3 6 22 BITMAP E380 E380 E380 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 29 0 BBX 26 25 2 0 BITMAP 007F8000 01C0E000 06001800 0C000C00 18000600 301F8300 6070C180 40E04080 40C04080 81800040 81800040 81800040 81800040 81800040 81800040 81800040 40C00080 40600080 60304180 301F8300 18000600 0C000C00 06001800 01C0E000 007F8000 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 15 0 BBX 13 14 1 11 BITMAP 3F80 61C0 40E0 40E0 00E0 00E0 1FE0 78E0 E0E0 E0E0 E0E0 F1E0 7FF8 3C70 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 18 0 BBX 14 16 2 1 BITMAP 0304 060C 0618 0C30 1870 38E0 70E0 F3C0 71C0 70E0 38E0 1870 0C30 0618 060C 0304 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 21 0 BBX 20 9 0 5 BITMAP FFFFF0 FFFFF0 000030 000030 000030 000030 000030 000030 000030 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 11 0 BBX 8 2 2 10 BITMAP FF FF ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 21 0 BBX 14 16 3 9 BITMAP 0F80 1860 2010 4018 4F88 8444 8444 8444 8444 8784 8484 4488 6C78 2010 1860 0780 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 20 0 BBX 9 2 6 22 BITMAP FF80 FF80 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 9 0 BBX 6 6 1 19 BITMAP 78 CC 84 84 CC 78 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 21 0 BBX 20 21 0 0 BITMAP 006000 006000 006000 006000 006000 006000 006000 FFFFF0 FFFFF0 006000 006000 006000 006000 006000 006000 006000 000000 000000 000000 FFFFF0 FFFFF0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 -20 10 BITMAP 7E00 C300 8180 8180 0180 0180 0300 0600 0C00 1000 2000 4000 4000 FF80 FF80 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 -20 10 BITMAP FE00 C300 8180 0180 0180 0100 0200 7E00 0700 0180 0180 0180 8180 C300 FC00 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 20 0 BBX 7 5 7 21 BITMAP 1E 38 30 60 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 21 0 BBX 21 24 0 -6 BITMAP FC0FC0 3C03C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C03C0 1E0DC0 1FF9E0 1FE1F8 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 21 0 BBX 15 31 1 -6 BITMAP 1FFE 7FFE 7F82 FF82 FF82 FF82 FF82 FF82 FF82 7F82 3F82 1F82 0782 0082 0082 0082 0082 0082 0082 0082 0082 0082 0082 0082 0082 0082 0082 0082 0082 0082 0082 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 21 0 BBX 3 3 9 9 BITMAP E0 E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 20 0 BBX 5 8 8 -7 BITMAP 20 60 60 30 18 18 38 F0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 12 0 BBX 8 15 -21 10 BITMAP F8 18 18 18 18 18 18 18 18 18 18 18 18 18 FF ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 15 0 BBX 12 14 1 11 BITMAP 1F80 39C0 70E0 6060 E070 E070 E070 E070 E070 E070 6060 70E0 39C0 1F80 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 18 0 BBX 14 16 2 1 BITMAP 8300 C180 6180 30C0 3860 1C70 1C38 0E38 0F3C 1C38 1C70 3860 30C0 6180 C180 8300 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 26 0 BBX 23 25 6 0 BITMAP F80038 180070 180060 1800C0 1801C0 180380 180300 180600 180E00 181C00 181818 183038 187078 18E058 FFC098 018118 038218 070618 060C18 0C0FFE 1C0018 380018 300018 600018 E0007E ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 26 0 BBX 22 25 6 0 BITMAP F80038 180070 180060 1800C0 1801C0 180380 180300 180600 180E00 181C00 181BF0 183618 18740C 18E40C FFC00C 01800C 038018 070030 060060 0C0080 1C0100 380200 300200 6007FC E007FC ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 26 0 BBX 24 25 7 0 BITMAP FE001C C30038 818030 018060 0180E0 0101C0 020180 7E0300 070700 018E00 018C0C 01981C 81B83C C3702C FC604C 00C08C 01C10C 03830C 03060C 0607FF 0E000C 1C000C 18000C 30000C 70003F ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 16 0 BBX 13 25 2 -7 BITMAP 0380 0380 0380 0000 0000 0000 0000 0380 0380 0380 0300 0300 0600 0C00 1800 3000 7000 E000 E000 E018 E018 E018 7018 3878 0FE0 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 25 0 BBX 25 32 0 0 BITMAP 00780000 001C0000 000C0000 00060000 00030000 00000000 00000000 00080000 00080000 001C0000 001C0000 003E0000 002E0000 006F0000 00470000 00470000 00838000 00838000 0103C000 0101C000 0101C000 0200E000 0200E000 07FFF000 04007000 04007000 08003800 08003800 10003C00 10001C00 30001E00 FC00FF80 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 25 0 BBX 25 32 0 0 BITMAP 000F0000 001C0000 00180000 00300000 00600000 00000000 00000000 00080000 00080000 001C0000 001C0000 003E0000 002E0000 006F0000 00470000 00470000 00838000 00838000 0103C000 0101C000 0101C000 0200E000 0200E000 07FFF000 04007000 04007000 08003800 08003800 10003C00 10001C00 30001E00 FC00FF80 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 25 0 BBX 25 32 0 0 BITMAP 003E0000 003E0000 00770000 00C18000 0180C000 00000000 00000000 00080000 00080000 001C0000 001C0000 003E0000 002E0000 006F0000 00470000 00470000 00838000 00838000 0103C000 0101C000 0101C000 0200E000 0200E000 07FFF000 04007000 04007000 08003800 08003800 10003C00 10001C00 30001E00 FC00FF80 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 25 0 BBX 25 30 0 0 BITMAP 00784000 00FF8000 010F0000 00000000 00000000 00080000 00080000 001C0000 001C0000 003E0000 002E0000 006F0000 00470000 00470000 00838000 00838000 0103C000 0101C000 0101C000 0200E000 0200E000 07FFF000 04007000 04007000 08003800 08003800 10003C00 10001C00 30001E00 FC00FF80 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 25 0 BBX 25 30 0 0 BITMAP 00E38000 00E38000 00E38000 00000000 00000000 00080000 00080000 001C0000 001C0000 003E0000 002E0000 006F0000 00470000 00470000 00838000 00838000 0103C000 0101C000 0101C000 0200E000 0200E000 07FFF000 04007000 04007000 08003800 08003800 10003C00 10001C00 30001E00 FC00FF80 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 25 0 BBX 25 32 0 0 BITMAP 001C0000 00220000 00220000 00220000 001C0000 00000000 00000000 00080000 00080000 001C0000 001C0000 003E0000 002E0000 006F0000 00470000 00470000 00838000 00838000 0103C000 0101C000 0101C000 0200E000 0200E000 07FFF000 04007000 04007000 08003800 08003800 10003C00 10001C00 30001E00 FC00FF80 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 31 0 BBX 30 25 0 0 BITMAP 0001FFF8 0001C038 0003C018 0005C018 0005C000 0009C000 0009C000 0011C000 0011C000 0021C000 0061C000 0041C020 00C1C020 0081FFE0 0181C020 0301C020 0301C000 07FFC000 0401C000 0801C000 0801C000 1001C00C 3001C00C 2003E01C FC0FFFFC ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 24 0 BBX 20 32 2 -7 BITMAP 00FF80 0381F0 0E0070 1C0030 380030 300030 700000 700000 E00000 E00000 E00000 E00000 E00000 E00000 E00000 E00000 700000 700000 700000 380000 3C0000 1E0010 0F8070 03FFE0 00FF00 006000 006000 003000 001800 001800 003800 00F000 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 19 0 BBX 17 32 1 0 BITMAP 078000 01C000 00C000 006000 003000 000000 000000 FFFF00 1C0700 1C0300 1C0300 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0400 1C0400 1FFC00 1C0400 1C0400 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0180 1C0180 3E0380 FFFF80 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 19 0 BBX 17 32 1 0 BITMAP 007800 00E000 00C000 018000 030000 000000 000000 FFFF00 1C0700 1C0300 1C0300 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0400 1C0400 1FFC00 1C0400 1C0400 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0180 1C0180 3E0380 FFFF80 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 19 0 BBX 17 32 1 0 BITMAP 03E000 03E000 077000 0C1800 180C00 000000 000000 FFFF00 1C0700 1C0300 1C0300 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0400 1C0400 1FFC00 1C0400 1C0400 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0180 1C0180 3E0380 FFFF80 ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 19 0 BBX 17 30 1 0 BITMAP 0E3800 0E3800 0E3800 000000 000000 FFFF00 1C0700 1C0300 1C0300 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0400 1C0400 1FFC00 1C0400 1C0400 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0180 1C0180 3E0380 FFFF80 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 11 0 BBX 9 32 1 0 BITMAP 7800 1C00 0C00 0600 0300 0000 0000 FF80 3E00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 3E00 FF80 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 11 0 BBX 9 32 1 0 BITMAP 0F00 1C00 1800 3000 6000 0000 0000 FF80 3E00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 3E00 FF80 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 11 0 BBX 11 32 2 0 BITMAP 1F00 1F00 3B80 60C0 C060 0000 0000 7FC0 1F00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 1F00 7FC0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 11 0 BBX 9 30 1 0 BITMAP E380 E380 E380 0000 0000 FF80 3E00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 3E00 FF80 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 26 0 BBX 23 25 1 0 BITMAP FFFF00 3C07C0 1C00E0 1C0070 1C0038 1C001C 1C001C 1C001C 1C000E 1C000E 1C000E 1C000E FFF00E 1C000E 1C000E 1C000E 1C000C 1C001C 1C001C 1C0018 1C0038 1C0070 1C00E0 3E03C0 FFFE00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 26 0 BBX 24 30 1 0 BITMAP 007840 00FF80 010F00 000000 000000 FC007F 3E001C 1E0008 1F0008 1F8008 1BC008 19C008 19E008 18F008 187008 183808 183C08 181E08 180E08 180F08 180788 1803C8 1801C8 1801E8 1800F8 180078 180078 180038 3C0018 FF0008 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 26 0 BBX 23 32 2 0 BITMAP 00F000 003800 001800 000C00 000600 000000 000000 00FE00 0783C0 0E00E0 1C0070 380038 300018 70001C 70001C E0000E E0000E E0000E E0000E E0000E E0000E E0000E E0000E E0000E 70001C 70001C 300018 380038 1C0070 0E00E0 0783C0 00FE00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 26 0 BBX 23 32 2 0 BITMAP 001E00 003800 003000 006000 00C000 000000 000000 00FE00 0783C0 0E00E0 1C0070 380038 300018 70001C 70001C E0000E E0000E E0000E E0000E E0000E E0000E E0000E E0000E E0000E 70001C 70001C 300018 380038 1C0070 0E00E0 0783C0 00FE00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 26 0 BBX 23 32 2 0 BITMAP 007C00 007C00 00EE00 018300 030180 000000 000000 00FE00 0783C0 0E00E0 1C0070 380038 300018 70001C 70001C E0000E E0000E E0000E E0000E E0000E E0000E E0000E E0000E E0000E 70001C 70001C 300018 380038 1C0070 0E00E0 0783C0 00FE00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 26 0 BBX 23 30 2 0 BITMAP 00F080 01FF00 021E00 000000 000000 00FE00 0783C0 0E00E0 1C0070 380038 300018 70001C 70001C E0000E E0000E E0000E E0000E E0000E E0000E E0000E E0000E E0000E 70001C 70001C 300018 380038 1C0070 0E00E0 0783C0 00FE00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 26 0 BBX 23 30 2 0 BITMAP 01C700 01C700 01C700 000000 000000 00FE00 0783C0 0E00E0 1C0070 380038 300018 70001C 70001C E0000E E0000E E0000E E0000E E0000E E0000E E0000E E0000E E0000E 70001C 70001C 300018 380038 1C0070 0E00E0 0783C0 00FE00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 21 0 BBX 20 21 0 0 BITMAP 400020 E00070 7000E0 3801C0 1C0380 0E0700 060E00 030C00 019800 00F000 006000 00F000 01F800 039C00 070E00 0E0700 1C0380 3801C0 7000E0 E00070 400020 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 26 0 BBX 23 25 2 0 BITMAP 00FE06 0783C4 0E00E8 1C0078 380038 30003C 70005C 70009C E0010E E0020E E0040E E0080E E0100E E0200E E0400E E0C00E E1800E 73001C 76001C 7C0018 380038 3C0070 3E00E0 6783C0 C0FE00 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 24 0 BBX 24 32 0 0 BITMAP 00F000 003800 001800 000C00 000600 000000 000000 FF80FF 3E003C 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0010 0E0030 0E0030 070060 0381C0 00FF00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 24 0 BBX 24 32 0 0 BITMAP 000F00 001C00 001800 003000 006000 000000 000000 FF80FF 3E003C 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0010 0E0030 0E0030 070060 0381C0 00FF00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 24 0 BBX 24 32 0 0 BITMAP 003E00 003E00 007700 00C180 0180C0 000000 000000 FF80FF 3E003C 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0010 0E0030 0E0030 070060 0381C0 00FF00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 24 0 BBX 24 30 0 0 BITMAP 00E380 00E380 00E380 000000 000000 FF80FF 3E003C 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0018 1C0010 0E0030 0E0030 070060 0381C0 00FF00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 23 0 BBX 23 32 0 0 BITMAP 001E00 003800 003000 006000 00C000 000000 000000 FFC0FE 3E0018 1E0010 0F0020 070020 078040 0380C0 03C080 01C100 00E100 00F200 007400 007C00 003800 003800 003800 003800 003800 003800 003800 003800 003800 003800 007C00 01FF00 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 19 0 BBX 18 25 1 0 BITMAP FF8000 3E0000 1C0000 1C0000 1C0000 1FF800 1C0F00 1C0380 1C0380 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C0380 1C0380 1C0700 1C1C00 1FF000 1C0000 1C0000 1C0000 3E0000 FF8000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 21 0 BBX 19 27 1 0 BITMAP 03F800 071E00 0E0E00 0C0700 1C0700 1C0700 1C0600 1C0400 1C0C00 1C1800 1C1000 1C3000 1C3800 1C3800 1C3C00 1C1E00 1C0F00 1C0780 1C03C0 1C01E0 1C00E0 1C0060 1C0060 1C3060 1C3040 3E38C0 FFBF00 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 18 0 BBX 17 25 1 0 BITMAP 0F0000 038000 018000 00C000 006000 000000 000000 0FE000 707800 603800 601C00 001C00 001C00 001C00 03FC00 1C1C00 701C00 701C00 E01C00 E01C00 E01C00 F01C00 786C00 7FCE80 1F0780 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 18 0 BBX 17 25 1 0 BITMAP 00F000 01C000 018000 030000 060000 000000 000000 0FE000 707800 603800 601C00 001C00 001C00 001C00 03FC00 1C1C00 701C00 701C00 E01C00 E01C00 E01C00 F01C00 786C00 7FCE80 1F0780 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 18 0 BBX 17 25 1 0 BITMAP 03E000 03E000 077000 0C1800 180C00 000000 000000 0FE000 707800 603800 601C00 001C00 001C00 001C00 03FC00 1C1C00 701C00 701C00 E01C00 E01C00 E01C00 F01C00 786C00 7FCE80 1F0780 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 18 0 BBX 17 23 1 0 BITMAP 078400 0FF800 10F000 000000 000000 0FE000 707800 603800 601C00 001C00 001C00 001C00 03FC00 1C1C00 701C00 701C00 E01C00 E01C00 E01C00 F01C00 786C00 7FCE80 1F0780 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 18 0 BBX 17 23 1 0 BITMAP 0E3800 0E3800 0E3800 000000 000000 0FE000 707800 603800 601C00 001C00 001C00 001C00 03FC00 1C1C00 701C00 701C00 E01C00 E01C00 E01C00 F01C00 786C00 7FCE80 1F0780 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 18 0 BBX 17 25 1 0 BITMAP 01C000 022000 022000 022000 01C000 000000 000000 0FE000 707800 603800 601C00 001C00 001C00 001C00 03FC00 1C1C00 701C00 701C00 E01C00 E01C00 E01C00 F01C00 786C00 7FCE80 1F0780 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 28 0 BBX 25 18 1 0 BITMAP 0FE1F800 38730C00 703E0600 601E0300 601C0300 001C0380 001C0380 001C0380 07FFFF80 1C1C0000 701C0000 E01C0000 E01C0000 E01E0000 F01E0000 786F0000 7FC38080 1F01FF00 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 17 0 BBX 14 25 2 -7 BITMAP 03F8 0C1C 380C 300C 700C 6000 E000 E000 E000 E000 E000 E000 7000 7000 3800 3E04 0FFC 03F0 0300 0300 0180 00C0 00C0 01C0 0780 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 18 0 BBX 15 25 1 0 BITMAP 0F00 0380 0180 00C0 0060 0000 0000 07E0 1C38 301C 700C 600E 600E E00E FFFE E000 E000 E000 E000 7000 7000 3800 1E06 0FFE 03F8 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 18 0 BBX 15 25 1 0 BITMAP 01E0 0380 0300 0600 0C00 0000 0000 07E0 1C38 301C 700C 600E 600E E00E FFFE E000 E000 E000 E000 7000 7000 3800 1E06 0FFE 03F8 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 18 0 BBX 15 25 1 0 BITMAP 07C0 07C0 0EE0 1830 3018 0000 0000 07E0 1C38 301C 700C 600E 600E E00E FFFE E000 E000 E000 E000 7000 7000 3800 1E06 0FFE 03F8 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 18 0 BBX 15 23 1 0 BITMAP 1C70 1C70 1C70 0000 0000 07E0 1C38 301C 700C 600E 600E E00E FFFE E000 E000 E000 E000 7000 7000 3800 1E06 0FFE 03F8 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 10 0 BBX 9 25 1 0 BITMAP F000 3800 1800 0C00 0600 0000 0000 FC00 3C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 3E00 FF80 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 10 0 BBX 9 25 1 0 BITMAP 0F00 1C00 1800 3000 6000 0000 0000 FC00 3C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 3E00 FF80 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 10 0 BBX 11 25 2 0 BITMAP 1F00 1F00 3B80 60C0 C060 0000 0000 7E00 1E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 1F00 7FC0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 10 0 BBX 9 23 1 0 BITMAP E380 E380 E380 0000 0000 FC00 3C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 3E00 FF80 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 20 0 BBX 17 26 2 0 BITMAP F81800 1FE000 07C000 03C000 06F000 187000 303800 001C00 07FE00 1C1E00 380F00 300700 700700 600380 E00380 E00380 E00380 E00380 E00380 E00380 600300 700700 700600 380C00 1C1800 07E000 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 21 0 BBX 21 23 1 0 BITMAP 01E100 03FE00 043C00 000000 000000 FC3E00 3CFF80 1DC380 1F01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 3E03E0 FF8FF8 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 20 0 BBX 17 25 2 0 BITMAP 078000 01C000 00C000 006000 003000 000000 000000 07F000 1C1C00 380E00 700700 700700 E00380 E00380 E00380 E00380 E00380 E00380 E00380 E00380 700700 700700 380E00 1C1C00 07F000 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 20 0 BBX 17 25 2 0 BITMAP 00F000 01C000 018000 030000 060000 000000 000000 07F000 1C1C00 380E00 700700 700700 E00380 E00380 E00380 E00380 E00380 E00380 E00380 E00380 700700 700700 380E00 1C1C00 07F000 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 20 0 BBX 17 25 2 0 BITMAP 03E000 03E000 077000 0C1800 180C00 000000 000000 07F000 1C1C00 380E00 700700 700700 E00380 E00380 E00380 E00380 E00380 E00380 E00380 E00380 700700 700700 380E00 1C1C00 07F000 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 20 0 BBX 17 23 2 0 BITMAP 078400 0FF800 10F000 000000 000000 07F000 1C1C00 380E00 700700 700700 E00380 E00380 E00380 E00380 E00380 E00380 E00380 E00380 700700 700700 380E00 1C1C00 07F000 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 20 0 BBX 17 23 2 0 BITMAP 0E3800 0E3800 0E3800 000000 000000 07F000 1C1C00 380E00 700700 700700 E00380 E00380 E00380 E00380 E00380 E00380 E00380 E00380 700700 700700 380E00 1C1C00 07F000 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 21 0 BBX 19 17 1 1 BITMAP 00E000 00E000 00E000 000000 000000 000000 000000 FFFFE0 FFFFE0 000000 000000 000000 000000 000000 00E000 00E000 00E000 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 20 0 BBX 17 18 2 0 BITMAP 07E180 1E1B00 380E00 780700 700F00 701780 E03380 E06380 E0C380 E18380 E30380 E20380 F40780 780700 700700 380E00 7E3C00 C7F000 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 21 0 BBX 21 25 0 0 BITMAP 01E000 007000 003000 001800 000C00 000000 000000 FC0FC0 3C03C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C07C0 0E0DC0 0FF9E0 03E1F8 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 21 0 BBX 21 25 0 0 BITMAP 001E00 003800 003000 006000 00C000 000000 000000 FC0FC0 3C03C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C07C0 0E0DC0 0FF9E0 03E1F8 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 21 0 BBX 21 25 0 0 BITMAP 00F800 00F800 01DC00 030600 060300 000000 000000 FC0FC0 3C03C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C07C0 0E0DC0 0FF9E0 03E1F8 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 21 0 BBX 21 23 0 0 BITMAP 038E00 038E00 038E00 000000 000000 FC0FC0 3C03C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C07C0 0E0DC0 0FF9E0 03E1F8 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 19 0 BBX 19 32 0 -7 BITMAP 007800 00E000 00C000 018000 030000 000000 000000 FF03E0 3C00C0 3C0080 1C0180 1C0100 0E0100 0E0200 0F0200 070400 078400 038C00 038800 01C800 01D000 01F000 00E000 00E000 004000 004000 00C000 018000 038000 070000 0F0000 1E0000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 22 0 BBX 19 31 1 -7 BITMAP FC0000 3C0000 1C0000 1C0000 1C0000 1C0000 1C3E00 1CFF80 1D8780 1E01C0 1C01C0 1C00E0 1C00E0 1C00E0 1C00E0 1C00E0 1C00E0 1C00E0 1C00C0 1C01C0 1C01C0 1F0380 1DFF00 1C7C00 1C0000 1C0000 1C0000 1C0000 1C0000 3E0000 FF8000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 19 0 BBX 19 30 0 -7 BITMAP 071C00 071C00 071C00 000000 000000 FF03E0 3C00C0 3C0080 1C0180 1C0100 0E0100 0E0200 0F0200 070400 078400 038C00 038800 01C800 01D000 01F000 00E000 00E000 004000 004000 00C000 018000 038000 070000 0F0000 1E0000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 21 27 1 0 BITMAP 03FFC0 060FC0 0C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 FFE1C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 1C01C0 3E03E0 FF8FF8 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 14 2 2 10 BITMAP FFFC FFFC ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 14 31 3 -6 BITMAP 0700 0700 0700 0700 0700 0300 0300 0300 0300 E31C FFFC 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 18 32 1 0 BITMAP 0C0600 060C00 031800 01F000 01F000 000000 000000 7FFFC0 700380 600780 600700 600E00 000E00 001C00 003C00 003800 007800 00F000 00E000 01E000 01C000 03C000 078000 070000 0F0000 0E0000 1E0000 3C0000 3C00C0 7800C0 7001C0 FFFFC0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 31 0 BBX 27 18 2 0 BITMAP 07E07E00 1C18C380 380D81C0 700F80C0 700700E0 600700E0 E00700E0 E007FFE0 E0070000 E0070000 E0070000 E0070000 E0078000 F0078000 700FC000 7809E020 1C10FFE0 07E03F80 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 23 0 BBX 23 30 0 0 BITMAP 01C700 01C700 01C700 000000 000000 FFC0FE 3E0018 1E0010 0F0020 070020 078040 0380C0 03C080 01C100 00E100 00F200 007400 007C00 003800 003800 003800 003800 003800 003800 003800 003800 003800 003800 007C00 01FF00 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 18 1 0 BITMAP FC00 3C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 3E00 FF80 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 11 0 BBX 11 26 0 0 BITMAP 7E00 1E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E20 0E60 0F80 0E00 1E00 6E00 8E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 1F00 7FC0 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 19 0 BBX 18 25 0 0 BITMAP FF8000 3E0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C4000 1D8000 1E0000 1C0000 3C0000 DC0000 9C0000 1C0000 1C0000 1C0000 1C0000 1C0000 1C00C0 1C00C0 3E01C0 FFFFC0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 14 31 3 -6 BITMAP 0700 0700 0700 0700 0700 0300 0300 0300 0300 E31C FFFC 0300 0300 0300 0300 0300 0300 0300 0300 0300 FFFC E31C 0300 0300 0300 0300 0700 0700 0700 0700 0700 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 22 0 BBX 20 27 1 0 BITMAP 03E000 0E7000 0C3380 1C3380 1C3380 1C0000 1C0000 1C0000 1C0000 FFFF80 1C0380 1C0380 1C0380 1C0380 1C0380 1C0380 1C0380 1C0380 1C0380 1C0380 1C0380 1C0380 1C0380 1C0380 1C0380 3E07C0 FF9FF0 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 8 16 2 1 BITMAP 80 C0 60 30 38 1C 0E 0E 0F 0E 1C 38 30 60 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 34 0 BBX 33 25 1 0 BITMAP 00FF3FFF00 0383F80700 0E00F80300 1C00780300 3800780300 3000380000 7000380000 7000380000 E000380000 E000380000 E000380400 E000380400 E0003FFC00 E000380400 E000380400 E000380000 E000380000 7000380000 7000380000 3000380000 3800780180 1C00780180 0E00F80180 0383FC0380 00FF3FFF80 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 34 0 BBX 30 2 2 9 BITMAP FFFFFFFC FFFFFFFC ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 11 5 5 21 BITMAP C060 60C0 3180 1F00 1F00 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 6 5 8 -6 BITMAP 38 60 E0 E0 7C ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 10 5 7 21 BITMAP 1DC0 1B00 3200 6400 C800 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 8 16 2 1 BITMAP 01 02 06 0C 1C 38 70 F0 70 70 38 1C 0C 06 03 01 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 3 3 9 22 BITMAP E0 E0 E0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 11 5 5 21 BITMAP 8020 C060 7FC0 3F80 1F00 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 11 10 5 5 BITMAP 1F00 3F80 7FC0 FFE0 FFE0 FFE0 FFE0 7FC0 3F80 1F00 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 11 3 5 22 BITMAP 3C20 7FC0 8780 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 11 5 5 21 BITMAP 1F00 1F00 3B80 60C0 C060 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 10 10 3 16 BITMAP 60C0 4180 C300 C300 C300 C300 C300 E3C0 E3C0 E3C0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 9 2 17 BITMAP F8 F8 70 70 70 70 70 20 20 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 17 0 BBX 13 25 2 0 BITMAP 6030 3060 18C0 0F80 0F80 0000 0000 1FC0 3070 6030 E030 E030 E000 F800 7E00 3F80 0FE0 03F0 0078 C038 C038 C038 E070 F0E0 3F80 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 5 5 8 21 BITMAP 70 88 88 88 70 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 9 0 BBX 4 11 3 -6 BITMAP F0 F0 F0 F0 F0 30 30 30 20 60 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 21 0 BBX 16 31 4 -6 BITMAP 003F 0047 0083 0183 0303 0300 0700 0700 0700 0E00 0E00 0E00 FFC0 1C00 1C00 1C00 1C00 1C00 3C00 3800 3800 3800 3800 7800 7000 7000 7000 7000 F000 F000 E000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 31 0 BBX 27 14 2 11 BITMAP FFDF83E0 8C47C380 8C47C780 0C07C580 0C07C580 0C06ED80 0C06E980 0C06E980 0C067980 0C067180 0C067180 0C063180 0C062180 3F1E01E0 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 1 0 BBX 21 25 -9 0 BITMAP 000038 000070 000060 0000C0 0001C0 000380 000300 000600 000E00 001C00 001800 003000 007000 00E000 00C000 018000 038000 070000 060000 0C0000 1C0000 380000 300000 600000 E00000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 7 5 6 21 BITMAP F0 38 18 0C 06 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 35 0 BBX 34 25 0 0 BITMAP 1E001C0000 3100380000 6180300000 4080600000 C0C0E00000 C0C1C00000 C0C3800000 C0C3000000 C0C6000000 408E000000 619C000000 2118000000 1E30000000 0061E01E00 00E3103100 01C6086080 018C0CC0C0 030C0CC0C0 070C0CC0C0 0E0C0CC0C0 1C0C0CC0C0 180C0CC0C0 3004084080 7002102100 E001E01E00 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 34 0 BBX 22 3 6 0 BITMAP E0381C E0381C E0381C ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 10 10 3 16 BITMAP E1C0 E1C0 E1C0 20C0 60C0 60C0 60C0 60C0 C180 8100 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 18 0 BBX 15 32 2 0 BITMAP 3018 1830 0C60 07C0 07C0 0000 0000 0FF0 181C 700C 600C E00C E000 E000 E000 F000 7C00 3F00 1F80 07E0 01F8 007C 003C 001E 000E 000E C00E C00C C00C E018 F870 3FC0 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 10 11 3 -6 BITMAP E1C0 E1C0 E1C0 20C0 20C0 60C0 60C0 60C0 60C0 C180 C180 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 15 25 3 0 BITMAP 3018 1830 0C60 07C0 07C0 0000 0000 FFFE E03C C038 C078 00F0 00E0 01E0 03C0 0380 0780 0F00 0E00 1E00 3C00 3806 7806 F00E FFFE ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lutBS08.bdf100644 1750 1750 56134 5413747540 15223 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaTypewriter-Bold-R-Normal-Sans-11-80-100-100-M-70-ISO8859-1 SIZE 8 100 100 FONTBOUNDINGBOX 10 11 -2 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaTypewriter" WEIGHT_NAME "Bold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 11 POINT_SIZE 80 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "M" AVERAGE_WIDTH 70 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 10 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 7 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 7 0 BBX 1 8 3 0 BITMAP 80 80 80 80 80 80 00 80 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 7 0 BBX 4 3 1 5 BITMAP 90 90 90 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 3C 28 FC 28 50 FC 50 F0 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 -1 BITMAP 20 78 80 80 60 10 08 88 F0 20 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 4C A8 B0 50 28 34 54 C8 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 30 48 78 74 B4 94 88 7C ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 7 0 BBX 2 3 2 5 BITMAP C0 C0 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 7 0 BBX 4 10 2 -2 BITMAP 30 60 C0 80 80 80 80 40 60 10 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 7 0 BBX 4 10 1 -2 BITMAP C0 60 20 10 10 10 10 20 60 C0 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 7 0 BBX 5 5 1 3 BITMAP 20 A8 D8 50 50 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 0 BITMAP 20 20 F8 20 20 20 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 7 0 BBX 2 4 2 -2 BITMAP C0 C0 40 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 0 2 BITMAP FC ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 7 0 BBX 2 1 2 0 BITMAP C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 0 -2 BITMAP 06 04 08 08 10 10 20 20 40 C0 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 78 48 84 84 84 84 48 78 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP E0 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP F0 08 08 18 30 60 C0 F8 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 7 0 BBX 4 8 1 0 BITMAP E0 10 10 60 30 10 10 E0 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 30 30 70 50 90 F8 10 10 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 7 0 BBX 4 8 2 0 BITMAP F0 C0 80 E0 30 10 10 E0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 3C 40 80 F8 84 84 4C 78 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP F8 18 10 20 60 40 C0 80 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 70 88 C8 70 78 88 88 70 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 78 C8 84 84 7C 04 08 F0 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 7 0 BBX 1 6 3 0 BITMAP 80 00 00 00 00 80 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 7 0 BBX 1 8 3 -2 BITMAP 80 00 00 00 80 80 80 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP 04 1C F0 70 1C 04 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 7 0 BBX 6 4 0 1 BITMAP FC 00 00 FC ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP 80 E0 38 3C E0 80 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP F0 88 08 30 40 40 00 40 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 38 44 9C A4 AC BE 48 78 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 30 30 30 48 48 78 88 84 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP F8 88 88 F0 98 88 88 F0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 3C 40 80 80 80 80 44 3C ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP F8 8C 84 84 84 84 88 F0 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP F8 80 80 F0 80 80 80 F8 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP F8 80 80 80 F0 80 80 80 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 3C 44 80 80 84 84 44 3C ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 84 84 84 FC 84 84 84 84 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP F8 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 7 0 BBX 4 8 1 0 BITMAP F0 10 10 10 10 10 10 E0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 98 90 A0 C0 E0 A0 90 98 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 80 80 80 80 80 80 80 F8 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP CC CC CC EC B4 B4 B4 84 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 88 C8 C8 A8 A8 98 98 88 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 78 48 84 84 84 84 48 78 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP F8 84 84 8C F8 80 80 80 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 7 0 BBX 7 10 0 -2 BITMAP 78 48 84 84 84 84 4C 38 0E 04 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP F0 88 88 98 F0 90 98 88 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 78 80 80 60 18 04 84 F8 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP F8 20 20 20 20 20 20 20 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 88 88 88 88 88 88 88 70 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 84 4C 48 48 68 30 30 30 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 82 9A 9A EE 6C 64 64 44 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP CC 48 30 30 30 70 48 8C ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP CC 48 78 30 20 20 20 20 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP FC 08 18 10 20 60 40 FC ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 7 0 BBX 4 10 2 -2 BITMAP F0 80 80 80 80 80 80 80 80 F0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 0 -2 BITMAP 80 40 40 20 20 10 10 08 08 04 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 7 0 BBX 4 10 1 -2 BITMAP F0 10 10 10 10 10 10 10 10 F0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 1 BITMAP 10 30 30 30 48 48 84 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 7 0 BBX 7 1 0 -1 BITMAP FE ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 7 0 BBX 2 3 2 5 BITMAP C0 C0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP 78 08 78 88 88 7C ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 80 80 B8 C4 84 84 8C F8 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 0 BITMAP 78 C0 80 80 C0 78 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 04 04 7C C4 84 84 8C 74 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP 78 C4 FC 80 C0 7C ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 38 40 F8 40 40 40 40 40 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 -2 BITMAP 7C C4 84 84 CC 74 04 78 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 80 80 B0 C8 88 88 88 88 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 7 0 BBX 3 8 1 0 BITMAP 20 00 E0 20 20 20 20 20 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 7 0 BBX 4 10 1 -2 BITMAP 10 00 70 10 10 10 10 10 10 F0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 80 80 98 A0 E0 E0 B0 98 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 7 0 BBX 3 8 1 0 BITMAP E0 20 20 20 20 20 20 20 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP BE FE 92 92 92 92 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 0 BITMAP B0 C8 88 88 88 88 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP 78 CC 84 84 CC 78 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 -2 BITMAP B8 C4 84 84 8C F8 80 80 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 -2 BITMAP 7C C4 84 84 8C 74 04 04 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 7 0 BBX 4 6 2 0 BITMAP B0 D0 80 80 80 80 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 0 BITMAP 78 C0 E0 18 08 F0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 7 0 BBX 4 8 1 0 BITMAP 40 40 F0 40 40 40 40 30 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 0 BITMAP 88 88 88 88 98 68 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP 84 48 48 28 30 30 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP 82 9A AA 6C 6C 4C ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP CC 78 30 30 58 CC ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 -2 BITMAP C4 48 68 30 30 10 20 E0 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 0 BITMAP F8 10 20 60 40 F8 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 7 0 BBX 4 10 2 -2 BITMAP 30 20 20 20 20 E0 20 20 20 30 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 7 0 BBX 1 10 3 -2 BITMAP 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 7 0 BBX 4 10 1 -2 BITMAP C0 40 40 40 40 70 40 40 40 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 7 0 BBX 6 2 0 2 BITMAP 64 98 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 7 0 BBX 1 8 3 -2 BITMAP 80 00 80 80 80 80 80 80 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 10 38 C0 80 80 C0 38 10 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 7 0 BBX 4 8 1 0 BITMAP 70 40 40 E0 40 40 40 F0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 1 BITMAP F8 C8 88 88 C8 F8 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP CC 48 30 30 78 78 20 20 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 7 0 BBX 1 10 3 -2 BITMAP 80 80 80 80 00 00 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 -2 BITMAP 78 80 C0 70 88 88 70 08 08 F0 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 7 0 BBX 3 1 2 7 BITMAP A0 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 70 88 A8 C8 C8 A8 88 70 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 7 0 BBX 5 4 1 4 BITMAP F0 10 F0 F8 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP 24 68 58 D8 6C 24 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 7 0 BBX 6 3 0 1 BITMAP FC 04 04 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 1 3 BITMAP F0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 2 BITMAP 78 CC BC BC FC 78 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 7 0 BBX 3 1 2 7 BITMAP E0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 2 6 BITMAP C0 C0 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 0 BITMAP 20 20 F8 20 00 F8 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 7 0 BBX 2 4 -2 4 BITMAP C0 40 80 C0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 7 0 BBX 2 4 -2 4 BITMAP C0 C0 40 C0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 7 0 BBX 3 1 2 7 BITMAP E0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 -2 BITMAP 88 88 88 88 98 F8 80 80 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 -2 BITMAP F8 E8 E8 68 28 28 28 28 28 28 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 7 0 BBX 1 1 3 2 BITMAP 80 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 3 -2 BITMAP 80 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 7 0 BBX 3 4 -1 4 BITMAP C0 40 40 E0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 7 0 BBX 5 4 1 4 BITMAP 70 88 88 70 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP 90 D8 6C 68 58 90 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 0 BITMAP C6 44 48 F0 14 2C 4E C4 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 0 BITMAP C6 44 48 F0 16 22 44 C6 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 1 0 BITMAP C6 C4 48 D0 14 2C 4E CC ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 -2 BITMAP 10 00 10 30 60 80 88 78 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 38 30 30 30 48 48 78 88 84 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 38 30 30 30 48 48 78 88 84 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 38 30 30 30 48 48 78 88 84 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 38 30 30 30 48 48 78 88 84 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 28 30 30 30 48 48 78 88 84 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 30 30 30 30 48 48 78 88 84 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 1C 30 30 3C 50 50 F0 9C ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 0 -2 BITMAP 3C 40 80 80 80 80 44 3C 20 30 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 20 F8 80 80 F0 80 80 80 F8 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 20 F8 80 80 F0 80 80 80 F8 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 0 0 BBX 0 0 0 0 BITMAP ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 50 F8 80 80 F0 80 80 80 F8 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 20 F8 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 20 F8 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 50 F8 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 50 F8 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP F8 8C 84 F4 84 84 88 F0 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 70 88 C8 C8 A8 A8 98 98 88 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 20 78 48 84 84 84 84 48 78 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 20 78 48 84 84 84 84 48 78 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 50 78 48 84 84 84 84 48 78 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 70 78 48 84 84 84 84 48 78 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 50 78 48 84 84 84 84 48 78 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP 84 48 30 30 48 84 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 7C 48 8C 94 A4 C4 48 F8 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 70 88 88 88 88 88 88 88 70 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 70 88 88 88 88 88 88 88 70 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 70 88 88 88 88 88 88 88 70 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 50 88 88 88 88 88 88 88 70 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 70 CC 48 78 30 20 20 20 20 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 80 F8 84 84 8C F8 80 80 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 70 90 A0 A0 B0 88 88 B0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 20 78 08 78 88 88 7C ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 20 78 08 78 88 88 7C ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 50 78 08 78 88 88 7C ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 70 78 08 78 88 88 7C ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 50 78 08 78 88 88 7C ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 30 78 08 78 88 88 7C ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP 78 14 7C 90 90 FC ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 -2 BITMAP 78 C0 80 80 C0 78 20 30 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 10 78 C4 FC 80 C0 7C ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 20 78 C4 FC 80 C0 7C ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 50 78 C4 FC 80 C0 7C ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 50 78 C4 FC 80 C0 7C ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 7 0 BBX 3 7 1 0 BITMAP 40 E0 20 20 20 20 20 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 7 0 BBX 3 7 1 0 BITMAP 40 E0 20 20 20 20 20 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 7 0 BBX 3 7 1 0 BITMAP E0 E0 20 20 20 20 20 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 7 0 BBX 3 7 1 0 BITMAP A0 E0 20 20 20 20 20 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP F8 5C 7C CC 84 84 CC 78 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 70 B0 C8 88 88 88 88 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 10 78 CC 84 84 CC 78 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 20 78 CC 84 84 CC 78 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 50 78 CC 84 84 CC 78 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 38 78 CC 84 84 CC 78 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 50 78 CC 84 84 CC 78 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 0 BITMAP 20 00 F8 00 00 20 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP 7C CC 94 A4 CC F8 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 70 88 88 88 88 98 68 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 70 88 88 88 88 98 68 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 70 88 88 88 88 98 68 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 50 88 88 88 88 98 68 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 -2 BITMAP 70 C4 48 68 30 30 10 20 E0 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 0 -2 BITMAP 80 80 B8 C4 84 84 8C F8 80 80 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 -2 BITMAP 50 C4 48 68 30 30 10 20 E0 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 7C 44 F4 44 44 44 44 44 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 1 1 3 BITMAP F8 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 -2 BITMAP 20 20 20 F8 20 20 20 20 20 20 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 38 FC 08 18 10 20 60 40 FC ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP 7C 94 9C 90 90 7C ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 50 CC 48 78 30 20 20 20 20 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 6 1 0 BITMAP E0 20 20 20 20 20 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 8 1 0 BITMAP E0 20 30 30 60 60 20 20 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 40 40 60 60 C0 C0 40 7C ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 -2 BITMAP 20 20 20 F8 20 20 F8 20 20 20 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 3C 40 FC 44 44 44 44 44 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 6 2 0 BITMAP 80 C0 60 40 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 7C 90 90 9C 90 90 90 7C ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 0 3 BITMAP FC ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 1 2 7 BITMAP E0 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 1 2 -2 BITMAP C0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 2 7 BITMAP F0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 6 2 0 BITMAP 20 40 40 C0 60 20 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 1 1 3 7 BITMAP 80 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 1 2 7 BITMAP E0 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 4 1 0 BITMAP F0 F0 F0 F0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 1 2 7 BITMAP E0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 1 2 7 BITMAP E0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 3 1 5 BITMAP 98 90 98 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 3 2 5 BITMAP C0 C0 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 70 78 C0 E0 18 08 F0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 1 2 7 BITMAP C0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 4 2 -2 BITMAP C0 C0 40 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 -2 BITMAP 38 20 60 F0 40 40 40 40 40 80 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 4 0 4 BITMAP F2 5E 5E 52 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 06 04 08 10 10 20 40 C0 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 1 2 7 BITMAP E0 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP D0 D0 E0 20 7C 7C BC BC ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 0 0 BITMAP A4 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 3 1 5 BITMAP 88 88 88 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 70 78 80 80 60 18 04 84 F8 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 4 1 -2 BITMAP 88 88 88 88 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 70 F8 10 20 60 40 F8 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lutBS10.bdf100644 1750 1750 61257 5413747540 15216 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaTypewriter-Bold-R-Normal-Sans-14-100-100-100-M-80-ISO8859-1 SIZE 10 100 100 FONTBOUNDINGBOX 11 16 -1 -3 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaTypewriter" WEIGHT_NAME "Bold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 14 POINT_SIZE 100 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "M" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 12 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 8 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 8 0 BBX 2 10 3 0 BITMAP C0 C0 C0 C0 C0 80 80 00 00 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 8 0 BBX 5 4 2 6 BITMAP 88 88 88 88 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 14 14 24 7E 28 28 FC 58 50 50 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 8 0 BBX 6 13 1 -2 BITMAP 10 3C 44 C0 E0 70 38 1C 0C 8C F8 10 10 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 8 0 BBX 9 10 0 0 BITMAP 6180 9300 9200 9400 6800 0B00 1480 2480 6480 C300 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 38 6C 6C 7C 33 FB DB DE CE 7F ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 8 0 BBX 2 4 3 6 BITMAP C0 C0 40 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 8 0 BBX 6 13 2 -3 BITMAP 1C 38 60 E0 C0 C0 C0 C0 C0 60 70 3C 0C ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 8 0 BBX 6 13 1 -3 BITMAP C0 F0 38 18 0C 0C 0C 0C 0C 18 18 70 C0 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 8 0 BBX 6 6 1 4 BITMAP 30 94 CC 28 78 48 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 10 10 10 FE 10 10 10 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 8 0 BBX 2 5 3 -3 BITMAP C0 C0 40 40 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 8 0 BBX 7 1 1 3 BITMAP FE ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 8 0 BBX 2 2 3 0 BITMAP C0 C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 8 0 BBX 8 13 0 -3 BITMAP 03 02 06 04 0C 08 18 10 30 20 60 40 C0 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 38 44 C6 C6 C6 C6 C6 C6 44 38 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 2 0 BITMAP F0 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP F8 8C 0C 0C 08 10 20 60 C0 FC ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP F8 0C 0C 1C 70 18 0C 0C 1C F8 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 0C 1C 3C 2C 4C FE FE 0C 0C 0C ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 8 0 BBX 5 10 2 0 BITMAP F8 80 80 E0 30 18 18 18 B8 F0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 1E 60 40 DC EE C6 C6 C6 6C 38 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 2 0 BITMAP FC 0C 08 10 30 20 60 60 C0 C0 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 38 6C 6C 7C 38 7C CE C6 C6 7C ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 38 6C C6 C6 C6 EE 76 04 0C F0 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 8 0 BBX 2 7 3 0 BITMAP C0 C0 00 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 8 0 BBX 2 10 3 -3 BITMAP C0 C0 00 00 00 C0 C0 40 40 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 0 0 BITMAP 04 1C 70 C0 70 1C 04 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 8 0 BBX 7 5 1 1 BITMAP FE 00 00 00 FE ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP 80 E0 38 0C 38 E0 80 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP FC 86 86 0C 18 20 60 00 00 60 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 3C 62 5E B2 A2 A6 A6 9B 44 3C ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 18 1C 1C 2C 2E 26 7E 46 47 83 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP FC C6 C6 CE F8 CC C6 C6 CE FC ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 1F 71 60 C0 C0 C0 C0 60 71 1F ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP FC C6 C3 C3 C3 C3 C3 C2 C6 FC ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP FE C0 C0 C0 FC C0 C0 C0 C0 FE ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP FE C0 C0 C0 FC C0 C0 C0 C0 C0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 1F 71 60 C0 C0 C3 C3 63 73 1F ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP C6 C6 C6 C6 FE C6 C6 C6 C6 C6 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP FC 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 7C 0C 0C 0C 0C 0C 0C 0C 0C F8 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP C6 CC C8 D0 F0 F0 D8 DC CC CE ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 FE ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP C7 C7 E7 A7 A7 AB AB 9B 9B 83 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP C2 E2 E2 B2 B2 9A 9E 8E 8E 86 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 3C 66 C3 C3 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP FC C6 C6 C6 CE FC C0 C0 C0 C0 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 8 0 BBX 9 13 0 -3 BITMAP 3C00 6600 C300 C300 C300 C300 C300 C300 6600 3C00 0780 0300 0100 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 1 0 BITMAP FC C6 C6 CE FC D8 CC CC C6 C7 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 7C C4 C0 E0 78 1C 0E 06 8E F8 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP FF 18 18 18 18 18 18 18 18 18 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP C6 C6 C6 C6 C6 C6 C6 C6 C6 7C ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP C1 C2 62 62 64 34 34 38 38 18 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP C1 C9 D9 DF 7F 7E 7E 66 66 66 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP E3 62 74 3C 18 18 2C 2E 46 C7 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP C3 62 76 34 38 18 18 18 18 18 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP FE 0E 0C 1C 18 30 70 60 E0 FE ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 8 0 BBX 5 13 3 -3 BITMAP F8 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 F8 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 8 0 BBX 8 13 0 -3 BITMAP C0 40 20 20 30 10 18 08 0C 04 04 02 03 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 8 0 BBX 5 13 1 -3 BITMAP F8 18 18 18 18 18 18 18 18 18 18 18 F8 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 2 BITMAP 10 10 28 28 44 44 C6 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 8 0 BBX 8 1 0 -2 BITMAP FF ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 8 0 BBX 2 4 3 6 BITMAP C0 80 C0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 78 4C 0C 7C CC CC 76 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP C0 C0 C0 DC FE E6 C6 C6 CC FC ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 3E 60 C0 C0 C0 60 3E ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 06 06 06 7E 66 C6 C6 CE FE 76 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 3C 66 C6 FE C0 62 3E ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 3E 60 60 FC 60 60 60 60 60 60 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 -3 BITMAP 7E E6 C6 C6 CE FE 76 06 4C 78 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP C0 C0 C0 DC FE E6 C6 C6 C6 C6 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 8 0 BBX 5 10 1 0 BITMAP 18 18 00 F8 18 18 18 18 18 18 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 8 0 BBX 5 13 1 -3 BITMAP 18 18 00 78 18 18 18 18 18 18 18 98 F0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP C0 C0 C0 CC C8 D0 F8 D8 DC CE ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 8 0 BBX 5 10 1 0 BITMAP F8 18 18 18 18 18 18 18 18 18 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 0 0 BITMAP DF FF DB DB DB DB DB ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP DC FE E6 C6 C6 C6 C6 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 0 0 BITMAP 3C 66 C3 C3 C3 66 3C ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 -3 BITMAP DC FE E6 C6 C6 CC FC C0 C0 C0 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 -3 BITMAP 7E 66 C6 C6 CE FE 76 06 06 06 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 2 0 BITMAP DC FC E4 C0 C0 C0 C0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP 7C C0 E0 7C 1C 8C F8 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 30 30 FE 30 30 30 30 30 1E ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP C6 C6 C6 C6 CE FE 76 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 0 0 BITMAP C3 62 62 74 34 38 18 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 0 0 BITMAP C1 D9 DF 7E 7E 66 66 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 0 0 BITMAP E2 74 38 18 2C 6E C7 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 -3 BITMAP C3 62 62 34 34 18 18 10 10 E0 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP FE 0E 1C 38 70 E0 FE ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 1 -3 BITMAP 1E 18 18 18 18 18 E0 18 18 18 18 18 1E ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 8 0 BBX 1 13 4 -3 BITMAP 80 80 80 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 0 -3 BITMAP F0 30 30 30 30 30 0E 30 30 30 30 30 F0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 8 0 BBX 7 3 1 2 BITMAP 62 92 8C ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 8 0 BBX 2 10 3 -3 BITMAP C0 C0 00 80 80 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 08 1E 62 C0 C0 C0 C0 62 3E 08 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 3C 60 60 60 F8 60 60 60 40 FC ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 8 0 BBX 8 8 0 1 BITMAP 42 FF 66 42 42 66 FF 42 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP E3 76 3C 38 7E 18 7E 18 18 18 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 8 0 BBX 1 13 4 -3 BITMAP 80 80 80 80 80 00 00 00 80 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 8 0 BBX 6 13 1 -3 BITMAP 78 C0 C0 E0 78 8C 84 E4 78 3C 0C 0C F8 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 8 0 BBX 4 1 2 9 BITMAP F0 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 3C 42 9D A1 A1 A1 A1 9D 42 3C ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 8 0 BBX 6 5 1 5 BITMAP F8 08 F8 88 FC ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 0 0 BITMAP 11 32 26 EC 66 37 12 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 8 0 BBX 7 4 1 1 BITMAP FE 02 02 02 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 8 0 BBX 6 1 1 4 BITMAP FC ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 3 BITMAP 38 44 BA BA B2 6C 38 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 8 0 BBX 4 1 2 9 BITMAP F0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 8 0 BBX 3 2 4 8 BITMAP E0 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 10 10 FE 10 10 00 FE ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 8 0 BBX 3 5 -1 5 BITMAP E0 20 60 C0 E0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 8 0 BBX 3 5 -1 5 BITMAP E0 20 C0 20 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 8 0 BBX 3 2 3 8 BITMAP 60 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 -3 BITMAP C6 C6 C6 C6 CE FE FE C0 C0 C0 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 8 0 BBX 6 13 1 -3 BITMAP 7C F4 F4 F4 74 14 14 14 14 14 14 14 14 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 8 0 BBX 2 2 3 2 BITMAP C0 C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 8 0 BBX 3 3 3 -3 BITMAP C0 60 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 8 0 BBX 3 5 -1 5 BITMAP C0 40 40 40 E0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 8 0 BBX 6 5 1 5 BITMAP 78 CC 84 CC 78 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 0 0 BITMAP 48 EC 66 37 64 4C 88 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 2 0 BITMAP C3 42 44 4C E8 16 36 2A 4F C2 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 2 0 BITMAP C3 42 44 4C E8 17 31 23 46 C7 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 2 0 BITMAP E3 22 C4 2C E8 16 36 2A 4F C2 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 -3 BITMAP 0C 0C 00 0C 08 30 60 C2 C2 7E ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 8 0 BBX 8 13 0 0 BITMAP 18 0C 00 18 1C 1C 2C 2E 26 7E 46 47 83 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 8 0 BBX 8 13 0 0 BITMAP 0C 18 00 18 1C 1C 2C 2E 26 7E 46 47 83 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 8 0 BBX 8 13 0 0 BITMAP 18 3C 00 18 1C 1C 2C 2E 26 7E 46 47 83 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 8 0 BBX 8 13 0 0 BITMAP 3C 3C 00 18 1C 1C 2C 2E 26 7E 46 47 83 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 0 0 BITMAP 3C 00 18 1C 1C 2C 2E 26 7E 46 47 83 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 8 0 BBX 8 13 0 0 BITMAP 18 18 10 18 1C 1C 2C 2E 26 7E 46 47 83 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 0F 1C 1C 1C 2F 2C 6C 7C 4C 8F ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 8 0 BBX 8 13 0 -3 BITMAP 1F 71 60 C0 C0 C0 C0 60 71 1F 08 0C 1C ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 1 0 BITMAP 30 18 00 FE C0 C0 C0 FC C0 C0 C0 C0 FE ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 1 0 BITMAP 18 30 00 FE C0 C0 C0 FC C0 C0 C0 C0 FE ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 0 0 BBX 0 0 0 0 BITMAP ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 8 0 BBX 7 12 1 0 BITMAP 78 00 FE C0 C0 C0 FC C0 C0 C0 C0 FE ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 8 0 BBX 6 13 1 0 BITMAP 30 18 00 FC 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 8 0 BBX 6 13 1 0 BITMAP 18 30 00 FC 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 8 0 BBX 6 13 1 0 BITMAP 30 78 00 FC 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 8 0 BBX 6 12 1 0 BITMAP 78 00 FC 30 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 8 0 BBX 9 10 0 0 BITMAP 7E00 6300 6180 6180 F980 6180 6180 6100 6300 7E00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 1 0 BITMAP 3C 3C 00 C2 E2 E2 B2 B2 9A 9E 8E 8E 86 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 8 0 BBX 8 13 0 0 BITMAP 18 0C 00 3C 66 C3 C3 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 8 0 BBX 8 13 0 0 BITMAP 18 30 00 3C 66 C3 C3 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 8 0 BBX 8 13 0 0 BITMAP 18 3C 00 3C 66 C3 C3 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 8 0 BBX 8 13 0 0 BITMAP 3C 3C 00 3C 66 C3 C3 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 0 0 BITMAP 3C 00 3C 66 C3 C3 C3 C3 C3 C3 66 3C ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP C2 44 28 10 28 C4 86 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 3F 66 C7 CF CB D3 F3 E3 66 FC ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 1 0 BITMAP 30 18 00 C6 C6 C6 C6 C6 C6 C6 C6 C6 7C ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 1 0 BITMAP 18 30 00 C6 C6 C6 C6 C6 C6 C6 C6 C6 7C ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 1 0 BITMAP 30 78 00 C6 C6 C6 C6 C6 C6 C6 C6 C6 7C ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 8 0 BBX 7 12 1 0 BITMAP 78 00 C6 C6 C6 C6 C6 C6 C6 C6 C6 7C ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 8 0 BBX 8 13 0 0 BITMAP 18 30 00 C3 62 76 34 38 18 18 18 18 18 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP C0 C0 FC C6 C6 C6 CE FC C0 C0 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 78 CC CC D8 D8 DC CE C6 D6 DC ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 30 18 00 78 4C 0C 7C CC CC 76 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 18 30 00 78 4C 0C 7C CC CC 76 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 30 78 00 78 4C 0C 7C CC CC 76 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 78 78 00 78 4C 0C 7C CC CC 76 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 78 00 78 4C 0C 7C CC CC 76 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 1 0 BITMAP 10 30 30 00 78 4C 0C 7C CC CC 76 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 7C 16 16 7E D0 D0 6E ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 -3 BITMAP 3E 60 C0 C0 C0 60 3E 10 18 38 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 30 18 00 3C 66 C6 FE C0 62 3E ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 18 30 00 3C 66 C6 FE C0 62 3E ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 30 78 00 3C 66 C6 FE C0 62 3E ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 78 00 3C 66 C6 FE C0 62 3E ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 8 0 BBX 5 10 1 0 BITMAP 30 18 00 F8 18 18 18 18 18 18 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 8 0 BBX 5 10 1 0 BITMAP 18 30 00 F8 18 18 18 18 18 18 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 8 0 BBX 5 10 1 0 BITMAP 30 78 00 F8 18 18 18 18 18 18 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 8 0 BBX 5 9 1 0 BITMAP 78 00 F8 18 18 18 18 18 18 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP FC 3E 2E 3E 67 C3 C3 C3 66 3C ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 78 78 00 DC FE E6 C6 C6 C6 C6 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 18 0C 00 3C 66 C3 C3 C3 66 3C ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 0C 18 00 3C 66 C3 C3 C3 66 3C ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 18 3C 00 3C 66 C3 C3 C3 66 3C ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 3C 3C 00 3C 66 C3 C3 C3 66 3C ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 8 0 BBX 8 9 0 0 BITMAP 3C 00 3C 66 C3 C3 C3 66 3C ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 0 0 BITMAP 18 18 00 FF 00 18 18 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 0 0 BITMAP 3F 66 CF DB F3 66 FC ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 30 18 00 C6 C6 C6 C6 CE FE 76 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 18 30 00 C6 C6 C6 C6 CE FE 76 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 18 3C 00 C6 C6 C6 C6 CE FE 76 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 3C 00 C6 C6 C6 C6 CE FE 76 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 8 0 BBX 8 13 0 -3 BITMAP 18 30 00 C3 62 62 34 34 18 18 10 10 E0 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 1 -3 BITMAP C0 C0 C0 DC FE E6 C6 C6 CC FC C0 C0 C0 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 0 -3 BITMAP 3C 00 C3 62 62 34 34 18 18 10 10 E0 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 3E 66 66 F6 66 66 66 66 66 66 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 1 1 4 BITMAP FE ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 13 1 -3 BITMAP 30 30 30 30 FC 30 30 30 30 30 30 30 30 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 1 0 BITMAP 3C 18 00 FE 0E 0C 1C 18 30 70 60 E0 FE ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 0 0 BITMAP 76 D9 D9 DF D8 D8 7F ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 0 0 BITMAP 3C 00 C3 62 76 34 38 18 18 18 18 18 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 7 1 0 BITMAP F8 18 18 18 18 18 18 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 0 BITMAP F8 18 18 1E 1E 78 58 18 18 18 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 9 10 0 0 BITMAP 3000 3000 3000 3400 3C00 F000 F000 3000 3000 3F80 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 13 1 -3 BITMAP 30 30 30 30 FC 30 30 30 FC 30 30 30 30 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 0 0 BITMAP 32 62 60 FE 66 66 66 66 66 66 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 4 7 2 0 BITMAP 40 C0 60 30 60 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 3F 64 C4 C4 C7 C4 C4 C4 64 3F ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 1 0 4 BITMAP FF ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 4 2 2 8 BITMAP F0 60 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 2 2 3 -3 BITMAP C0 C0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 2 2 8 BITMAP 78 B0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 4 7 2 0 BITMAP 10 20 60 C0 60 30 20 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 2 1 3 9 BITMAP C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 4 2 2 8 BITMAP 90 60 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 5 2 1 BITMAP F8 F8 F8 F8 F8 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 4 2 2 8 BITMAP F0 F0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 4 2 2 8 BITMAP 60 F0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 4 1 6 BITMAP CC 88 CC CC ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 2 4 3 6 BITMAP C0 C0 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 78 30 00 7C C0 E0 7C 1C 8C F8 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 2 2 3 8 BITMAP C0 C0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 2 5 3 -3 BITMAP C0 C0 40 40 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 13 1 -3 BITMAP 1C 30 30 30 F8 60 60 60 60 60 C0 C0 C0 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 5 0 5 BITMAP FB 5B 5F 55 51 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 03 02 04 0C 08 10 30 20 40 C0 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 3 2 3 8 BITMAP C0 60 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 9 10 0 0 BITMAP E400 A800 A800 F000 1000 3F80 3680 5680 5680 9F80 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 1 1 0 BITMAP 92 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 4 1 6 BITMAP CC CC 44 CC ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 1 0 BITMAP 78 30 00 7C C4 C0 E0 78 1C 0E 06 8E F8 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 5 1 -3 BITMAP CC CC 44 44 CC ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 78 30 00 FE 0E 1C 38 70 E0 FE ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lutBS12.bdf100644 1750 1750 70677 5413747540 15226 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaTypewriter-Bold-R-Normal-Sans-17-120-100-100-M-100-ISO8859-1 SIZE 12 100 100 FONTBOUNDINGBOX 14 18 -2 -3 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaTypewriter" WEIGHT_NAME "Bold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 17 POINT_SIZE 120 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "M" AVERAGE_WIDTH 100 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 15 FONT_DESCENT 4 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 10 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 10 0 BBX 2 12 4 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 00 00 C0 C0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 10 0 BBX 6 5 2 7 BITMAP CC CC CC CC CC ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 1F80 1B00 1B00 7F80 7F80 3600 3600 FF00 FF00 6C00 6C00 FC00 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 10 0 BBX 8 16 1 -2 BITMAP 18 18 7E FE C0 C0 F0 3C 1E 07 03 83 FF FE 18 18 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 7180 FB00 DB00 DE00 FE00 7C00 0F80 1FC0 1EC0 36C0 37C0 6380 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 3E00 7F00 6300 7300 3E00 3CC0 7CC0 CCC0 C680 E380 7F80 3DC0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 10 0 BBX 3 5 4 7 BITMAP E0 E0 E0 E0 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 10 0 BBX 6 15 3 -3 BITMAP 0C 3C 78 60 E0 C0 C0 C0 C0 C0 60 60 30 1C 0C ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 10 0 BBX 6 15 1 -3 BITMAP C0 E0 30 18 18 0C 0C 0C 0C 0C 1C 18 78 F0 C0 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 10 0 BBX 8 7 1 5 BITMAP 18 59 E3 E7 38 66 24 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 10 0 BBX 8 9 1 0 BITMAP 18 18 18 FF FF 18 18 18 18 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 10 0 BBX 3 6 4 -3 BITMAP E0 E0 E0 60 E0 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 10 0 BBX 9 2 1 3 BITMAP FF80 FF80 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 10 0 BBX 3 2 4 0 BITMAP E0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 10 0 BBX 10 15 0 -3 BITMAP 00C0 0180 0380 0300 0700 0600 0E00 0C00 1C00 1800 3800 3000 6000 6000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 3E00 7F00 6300 C180 C180 C180 C180 C180 C180 6300 7F00 3E00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 10 0 BBX 6 12 3 0 BITMAP F0 F0 30 30 30 30 30 30 30 30 FC FC ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 10 0 BBX 7 12 2 0 BITMAP 78 FE 8E 06 06 0E 1C 38 70 E0 FE FE ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 10 0 BBX 6 12 2 0 BITMAP 78 FC 8C 0C 1C 70 78 1C 0C 8C F8 F0 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 0E00 0E00 1E00 3E00 3600 6600 C600 FF80 FF80 0600 0600 0600 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 10 0 BBX 6 12 2 0 BITMAP FC FC C0 C0 F0 F8 1C 0C 0C 9C F8 F0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 1F80 3F80 7080 E000 DE00 FF00 E380 C180 C180 6380 7F00 1E00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 10 0 BBX 7 12 2 0 BITMAP FE FE 0E 0C 1C 38 30 70 60 E0 C0 C0 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 3C 7E 66 66 7C 3C 6E C7 C3 E3 7E 3C ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 3C00 7F00 E300 C180 C180 E380 7F80 3D80 0380 8700 FE00 FC00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 10 0 BBX 2 9 4 0 BITMAP C0 C0 00 00 00 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 10 0 BBX 2 12 4 -3 BITMAP C0 C0 00 00 00 00 C0 C0 C0 C0 C0 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 0080 0380 0F00 3C00 F000 3C00 0F00 0380 0080 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 10 0 BBX 9 6 1 1 BITMAP FF80 FF80 0000 0000 FF80 FF80 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 8000 E000 7800 1E00 0780 1E00 7800 E000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 7C FF C3 C3 07 1E 3C 30 30 00 30 30 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 1F00 3F80 7180 6F80 DF80 D980 DB80 DFC0 CDC0 6200 7E00 3C00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 0C00 1E00 1E00 1E00 3700 3300 3300 7F80 7F80 6180 C180 C0C0 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP FE FF C3 C3 C6 FC FE C7 C3 C7 FF FE ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 1F80 3F80 7080 E000 C000 C000 C000 C000 E000 7080 3F80 1F00 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP FE00 FF00 C380 C180 C180 C180 C180 C180 C180 C300 FE00 FC00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP FF FF C0 C0 C0 FE FE C0 C0 C0 FF FF ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 2 0 BITMAP FF FF C0 C0 C0 FE FE C0 C0 C0 C0 C0 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 1FC0 3FC0 7040 E000 C000 C000 C0C0 C0C0 E0C0 70C0 3FC0 1F80 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP C180 C180 C180 C180 C180 FF80 FF80 C180 C180 C180 C180 C180 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP FF FF 18 18 18 18 18 18 18 18 FF FF ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 10 0 BBX 7 12 1 0 BITMAP 7E 7E 06 06 06 06 06 06 06 0E FC F8 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP C380 C700 CE00 DC00 D800 F000 F800 D800 CC00 CE00 C700 C380 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 2 0 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 FF FF ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP E380 E380 F780 F780 F780 F780 F780 DD80 DD80 DD80 DD80 C180 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP E3 E3 E3 F3 F3 DB DB CF CF C7 C7 C3 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 1E00 7F80 6180 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 6180 7F80 1E00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP FE00 FF00 C180 C180 C180 C380 FF00 FE00 C000 C000 C000 C000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 10 0 BBX 11 14 0 -2 BITMAP 1E00 7F80 6180 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 61C0 7F80 1F00 03E0 00C0 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP FE FF C3 C3 C3 C6 FC FC CE C6 C7 C3 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 3F00 7F00 C100 C000 F000 3C00 0F00 0380 0180 8380 FF00 FE00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP FFC0 FFC0 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP C3 C3 C3 C3 C3 C3 C3 C3 C3 C3 FE 7C ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP E0C0 60C0 6180 6180 3180 3300 3300 1B00 1E00 1E00 1E00 0C00 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP C0C0 CEC0 CEC0 DE80 7E80 7F80 7F80 7F80 7780 7300 7300 7300 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP E1C0 7180 3300 3F00 1E00 0E00 1E00 1E00 3700 7300 6180 C1C0 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP E0C0 6180 3380 3300 1F00 1E00 0E00 0C00 0C00 0C00 0C00 0C00 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 0 0 BITMAP FF80 FF80 0300 0600 0E00 0C00 1800 3800 3000 6000 FF80 FF80 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 10 0 BBX 6 15 3 -3 BITMAP FC FC C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 FC FC ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 10 0 BBX 10 15 0 -3 BITMAP C000 6000 7000 3000 3800 1800 1C00 0C00 0E00 0600 0700 0300 0380 0180 00C0 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 10 0 BBX 6 15 1 -3 BITMAP FC FC 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C FC FC ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 2 BITMAP 0800 0800 1C00 1C00 3E00 3600 3600 6300 6300 C180 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 10 0 BBX 10 2 0 -2 BITMAP FFC0 FFC0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 10 0 BBX 3 5 4 7 BITMAP 60 E0 E0 E0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 7E00 7F00 4300 3F00 FF00 C300 C700 FF80 7B80 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP C000 C000 C000 DE00 FF00 E380 C180 C180 C180 E380 FF00 DE00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 10 0 BBX 8 9 1 0 BITMAP 3F 7F E1 C0 C0 C0 E0 7F 3F ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 0180 0180 0180 3D80 7F80 E380 C180 C180 C180 E380 7F80 3D80 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 3E00 7F00 E180 FF80 FF80 C000 E080 7F80 1F00 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 2 0 BITMAP 1F 3F 30 FE FE 30 30 30 30 30 30 30 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 -3 BITMAP 3D80 7F80 E380 C180 C180 C180 E380 7D80 3D80 4380 7F00 3E00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP C0 C0 C0 DE FF E3 C3 C3 C3 C3 C3 C3 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 10 0 BBX 5 12 2 0 BITMAP 18 18 00 F8 F8 18 18 18 18 18 18 18 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 10 0 BBX 6 15 1 -3 BITMAP 0C 0C 00 7C 7C 0C 0C 0C 0C 0C 0C 0C 8C FC F8 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 2 0 BITMAP C0 C0 C0 C6 CC DC F8 F8 D8 CC CE C7 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 10 0 BBX 5 12 1 0 BITMAP F8 F8 18 18 18 18 18 18 18 18 18 18 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 0 0 BITMAP D9C0 FFC0 EEC0 CCC0 CCC0 CCC0 CCC0 CCC0 CCC0 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 10 0 BBX 8 9 1 0 BITMAP DE FF E3 C3 C3 C3 C3 C3 C3 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 3E00 7F00 E380 C180 C180 C180 E380 7F00 3E00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 -3 BITMAP DE00 FF00 E380 C180 C180 C180 E380 FF00 DE00 C000 C000 C000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 -3 BITMAP 3D80 7F80 E380 C180 C180 C180 E380 7F80 3D80 0180 0180 0180 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 10 0 BBX 7 9 2 0 BITMAP DE FE E6 C6 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 10 0 BBX 8 9 1 0 BITMAP 3E FE E2 F8 7E 0F 83 FF FC ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 30 30 FF FF 30 30 30 30 30 3F 1F ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 10 0 BBX 8 9 1 0 BITMAP C3 C3 C3 C3 C3 C3 C7 FF 7B ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 0 0 BITMAP E0C0 6180 6180 3380 3300 1B00 1E00 1E00 0E00 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 0 0 BITMAP C0C0 CCC0 DEC0 7E80 7E80 7B80 7380 7380 7380 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP E380 7700 3600 1C00 1C00 3C00 7600 6700 C380 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 -3 BITMAP E0C0 6180 3180 3300 1B00 1E00 0E00 0E00 0C00 1C00 7800 7000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 10 0 BBX 8 9 1 0 BITMAP FF FF 0E 1C 18 30 60 FF FF ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 10 0 BBX 7 15 2 -3 BITMAP 0E 1E 18 18 18 18 18 E0 F8 18 18 18 18 1E 1E ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 10 0 BBX 2 15 4 -3 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 10 0 BBX 7 15 1 -3 BITMAP E0 F0 30 30 30 30 30 0E 3E 30 30 30 30 F0 F0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 10 0 BBX 9 3 1 3 BITMAP 7980 FF80 CF00 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 10 0 BBX 2 12 4 -3 BITMAP C0 C0 00 00 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 0C 0C 3F 7F E0 C0 C0 E0 7F 3F 0C 0C ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 10 0 BBX 6 12 2 0 BITMAP 3C 7C 60 60 60 F8 F8 60 60 40 FC FC ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 10 0 BBX 10 10 0 1 BITMAP 4080 FFC0 7F80 7380 6180 6180 7380 7F80 FFC0 4080 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP E1C0 3B80 1F00 0E00 3F00 3F00 0C00 3F00 3F00 0C00 0C00 0C00 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 10 0 BBX 2 15 4 -3 BITMAP C0 C0 C0 C0 C0 C0 00 00 00 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 10 0 BBX 7 15 2 -3 BITMAP 7C FC C4 C0 70 7C CE C6 E6 7C 1C 06 86 FE F8 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 10 0 BBX 5 2 3 10 BITMAP D8 D8 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 1C00 7F00 E300 DD80 FD80 F580 F180 FD80 DD80 6380 7F00 3C00 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 10 0 BBX 8 6 1 6 BITMAP FC FE 86 7E FF 7F ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 10 0 BBX 9 8 1 1 BITMAP 1100 3B80 7300 6600 EE00 7700 3B80 1100 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 10 0 BBX 9 5 1 1 BITMAP FF80 FF80 0180 0180 0180 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 10 0 BBX 7 2 2 4 BITMAP FE FE ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 3 BITMAP 3C00 7F00 E300 DF80 DF80 DF80 FF00 7F00 3C00 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 10 0 BBX 5 2 3 10 BITMAP F8 F8 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 10 0 BBX 3 3 4 9 BITMAP E0 A0 E0 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 10 0 BBX 8 9 1 0 BITMAP 18 18 FF FF 18 18 00 FF FF ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 10 0 BBX 4 6 -1 6 BITMAP E0 10 10 60 C0 F0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 10 0 BBX 3 6 -2 6 BITMAP E0 20 C0 20 20 C0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 10 0 BBX 4 2 3 10 BITMAP 70 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 -3 BITMAP C3 C3 C3 C3 C3 C3 E7 FF FB C0 C0 C0 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 10 0 BBX 7 15 1 -3 BITMAP 7E FE FE FE FE 7E 1E 1E 1E 1E 1E 1E 1E 1E 1E ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 10 0 BBX 2 2 4 3 BITMAP C0 C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 10 0 BBX 3 3 4 -3 BITMAP C0 60 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 10 0 BBX 3 6 -2 6 BITMAP C0 40 40 40 40 E0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 10 0 BBX 8 6 1 6 BITMAP 3C FF C3 C3 FF 3C ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 10 0 BBX 9 8 1 1 BITMAP 4400 EE00 7700 3380 3B80 6700 EE00 4400 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 2 0 BITMAP C0C0 4180 4380 4300 4600 EE00 1D80 1980 3280 73C0 6080 C080 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 2 0 BITMAP C0C0 4180 4380 4300 4600 EE00 1F80 1840 3040 7180 6300 C3C0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 2 0 BITMAP E0C0 2180 C380 2300 2600 CE00 1D80 1980 3280 73C0 6080 C080 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 -3 BITMAP 0C 0C 00 0C 0C 38 70 E0 C3 C3 FF 3E ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 10 0 BBX 10 15 0 0 BITMAP 1C00 0600 0000 0C00 1E00 1E00 1E00 3700 3300 3300 7F80 7F80 6180 C180 C0C0 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 10 0 BBX 10 15 0 0 BITMAP 0E00 1800 0000 0C00 1E00 1E00 1E00 3700 3300 3300 7F80 7F80 6180 C180 C0C0 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 10 0 BBX 10 15 0 0 BITMAP 0E00 1B00 0000 0C00 1E00 1E00 1E00 3700 3300 3300 7F80 7F80 6180 C180 C0C0 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 10 0 BBX 10 15 0 0 BITMAP 1F00 1F00 0000 0C00 1E00 1E00 1E00 3700 3300 3300 7F80 7F80 6180 C180 C0C0 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 10 0 BBX 10 15 0 0 BITMAP 1B00 1B00 0000 0C00 1E00 1E00 1E00 3700 3300 3300 7F80 7F80 6180 C180 C0C0 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 10 0 BBX 10 15 0 0 BITMAP 0E00 0E00 0000 0C00 1E00 1E00 1E00 3700 3300 3300 7F80 7F80 6180 C180 C0C0 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 0FC0 0FC0 1E00 1E00 1E00 3FC0 37C0 7E00 7E00 6600 E7C0 C7C0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 10 0 BBX 9 15 1 -3 BITMAP 1F80 3F80 7080 E000 C000 C000 C000 C000 E000 7080 3F80 1F00 0800 0C00 1C00 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 10 0 BBX 8 15 1 0 BITMAP 38 0C 00 FF FF C0 C0 C0 FE FE C0 C0 C0 FF FF ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 10 0 BBX 8 15 1 0 BITMAP 1C 30 00 FF FF C0 C0 C0 FE FE C0 C0 C0 FF FF ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 0 0 BBX 0 0 0 0 BITMAP ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 10 0 BBX 8 15 1 0 BITMAP 6C 6C 00 FF FF C0 C0 C0 FE FE C0 C0 C0 FF FF ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 10 0 BBX 8 15 1 0 BITMAP 38 0C 00 FF FF 18 18 18 18 18 18 18 18 FF FF ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 10 0 BBX 8 15 1 0 BITMAP 1C 30 00 FF FF 18 18 18 18 18 18 18 18 FF FF ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 10 0 BBX 8 15 1 0 BITMAP 1C 36 00 FF FF 18 18 18 18 18 18 18 18 FF FF ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 10 0 BBX 8 15 1 0 BITMAP 36 36 00 FF FF 18 18 18 18 18 18 18 18 FF FF ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 7F00 7F80 61C0 60C0 60C0 FCC0 FCC0 60C0 60C0 6180 7F00 7E00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 10 0 BBX 8 15 1 0 BITMAP 3E 3E 00 E3 E3 E3 F3 F3 DB DB CF CF C7 C7 C3 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 10 0 BBX 10 15 0 0 BITMAP 1C00 0600 0000 1E00 7F80 6180 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 6180 7F80 1E00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 10 0 BBX 10 15 0 0 BITMAP 0E00 1800 0000 1E00 7F80 6180 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 6180 7F80 1E00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 10 0 BBX 10 15 0 0 BITMAP 1C00 3600 0000 1E00 7F80 6180 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 6180 7F80 1E00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 10 0 BBX 10 15 0 0 BITMAP 1F00 1F00 0000 1E00 7F80 6180 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 6180 7F80 1E00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 10 0 BBX 10 15 0 0 BITMAP 3600 3600 0000 1E00 7F80 6180 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 6180 7F80 1E00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 4100 E380 7700 3E00 1C00 3E00 7700 E380 4100 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 1EC0 7F80 6180 C3C0 C7C0 CEC0 DCC0 F8C0 F0C0 6180 7F80 DE00 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 10 0 BBX 8 15 1 0 BITMAP 38 0C 00 C3 C3 C3 C3 C3 C3 C3 C3 C3 C3 FE 7C ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 10 0 BBX 8 15 1 0 BITMAP 1C 30 00 C3 C3 C3 C3 C3 C3 C3 C3 C3 C3 FE 7C ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 10 0 BBX 8 15 1 0 BITMAP 1C 36 00 C3 C3 C3 C3 C3 C3 C3 C3 C3 C3 FE 7C ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 10 0 BBX 8 15 1 0 BITMAP 36 36 00 C3 C3 C3 C3 C3 C3 C3 C3 C3 C3 FE 7C ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 10 0 BBX 10 15 0 0 BITMAP 0E00 1800 0000 E0C0 6180 3380 3300 1F00 1E00 0E00 0C00 0C00 0C00 0C00 0C00 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP C000 C000 FE00 FF00 C180 C180 C180 C380 FF00 FE00 C000 C000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 7C FE C6 C4 C8 D8 DC CE C3 D3 DF DE ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 3800 0C00 0000 7E00 7F00 4300 3F00 FF00 C300 C700 FF80 7B80 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 1C00 3000 0000 7E00 7F00 4300 3F00 FF00 C300 C700 FF80 7B80 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 1C00 3600 0000 7E00 7F00 4300 3F00 FF00 C300 C700 FF80 7B80 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 3E00 3E00 0000 7E00 7F00 4300 3F00 FF00 C300 C700 FF80 7B80 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 3600 3600 0000 7E00 7F00 4300 3F00 FF00 C300 C700 FF80 7B80 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 1C00 1C00 0000 7E00 7F00 4300 3F00 FF00 C300 C700 FF80 7B80 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 0 0 BITMAP 7B80 7F80 4CC0 0CC0 7FC0 FFC0 CC40 FFC0 7380 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 -3 BITMAP 3F 7F E1 C0 C0 C0 E0 7F 3F 08 0C 1C ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 3800 0C00 0000 3E00 7F00 E180 FF80 FF80 C000 E080 7F80 1F00 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 1C00 3000 0000 3E00 7F00 E180 FF80 FF80 C000 E080 7F80 1F00 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 1C00 3600 0000 3E00 7F00 E180 FF80 FF80 C000 E080 7F80 1F00 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 3600 3600 0000 3E00 7F00 E180 FF80 FF80 C000 E080 7F80 1F00 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 10 0 BBX 5 12 2 0 BITMAP 70 18 00 F8 F8 18 18 18 18 18 18 18 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 10 0 BBX 5 12 2 0 BITMAP 38 60 00 F8 F8 18 18 18 18 18 18 18 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 10 0 BBX 6 12 2 0 BITMAP 38 6C 00 F8 F8 18 18 18 18 18 18 18 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 10 0 BBX 6 12 2 0 BITMAP 6C 6C 00 F8 F8 18 18 18 18 18 18 18 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP FE00 BF00 2600 3F00 7F80 E380 C180 C180 C180 E380 7F00 3E00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 7C 7C 00 DE FF E3 C3 C3 C3 C3 C3 C3 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 1C00 0600 0000 3E00 7F00 E380 C180 C180 C180 E380 7F00 3E00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 1C00 3000 0000 3E00 7F00 E380 C180 C180 C180 E380 7F00 3E00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 1C00 3600 0000 3E00 7F00 E380 C180 C180 C180 E380 7F00 3E00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 3E00 3E00 0000 3E00 7F00 E380 C180 C180 C180 E380 7F00 3E00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 3600 3600 0000 3E00 7F00 E380 C180 C180 C180 E380 7F00 3E00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 10 0 BBX 8 9 1 0 BITMAP 18 18 00 FF FF 00 00 18 18 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 3F80 7F00 E780 CF80 DD80 F980 F380 7F00 FE00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 38 0C 00 C3 C3 C3 C3 C3 C3 C7 FF 7B ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 1C 30 00 C3 C3 C3 C3 C3 C3 C7 FF 7B ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 1C 36 00 C3 C3 C3 C3 C3 C3 C7 FF 7B ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 36 36 00 C3 C3 C3 C3 C3 C3 C7 FF 7B ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 10 0 BBX 10 15 0 -3 BITMAP 0E00 1800 0000 E0C0 6180 3180 3300 1B00 1E00 0E00 0E00 0C00 1C00 7800 7000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 10 0 BBX 9 15 1 -3 BITMAP C000 C000 C000 DE00 FF00 E380 C180 C180 C180 E380 FF00 DE00 C000 C000 C000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 10 0 BBX 10 15 0 -3 BITMAP 3600 3600 0000 E0C0 6180 3180 3300 1B00 1E00 0E00 0E00 0C00 1C00 7800 7000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 3F 7F 63 FB FB 63 63 63 63 63 63 63 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 2 1 4 BITMAP FF FF ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 15 2 -3 BITMAP 30 30 30 30 FC FC 30 30 30 30 30 30 30 30 30 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 15 0 0 BITMAP 3600 1C00 0000 FF80 FF80 0300 0600 0E00 0C00 1800 3800 3000 6000 FF80 FF80 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 3700 7F80 CD80 CD80 CF80 CF80 CC00 7F80 3780 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 15 0 0 BITMAP 3600 3600 0000 E0C0 6180 3380 3300 1F00 1E00 0E00 0C00 0C00 0C00 0C00 0C00 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 5 9 2 0 BITMAP F8 F8 18 18 18 18 18 18 18 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 7 12 1 0 BITMAP F8 F8 18 1A 1E 1C 38 78 18 18 18 18 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 3000 3000 3000 3400 3C00 7800 F000 B000 3000 3000 3FC0 3FC0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 15 2 -3 BITMAP 30 30 30 30 FC FC 30 30 30 FC FC 30 30 30 30 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 3B 7B 60 FF FF 63 63 63 63 63 63 63 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 5 8 3 1 BITMAP 40 E0 70 38 30 70 E0 40 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 3FC0 7FC0 6600 C600 C600 C7C0 C7C0 C600 C600 6600 7FC0 3FC0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 2 1 4 BITMAP FF80 FF80 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 5 2 3 10 BITMAP D8 70 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 3 2 4 -3 BITMAP 60 E0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 2 3 10 BITMAP 6C D0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 5 8 3 1 BITMAP 10 38 70 60 E0 70 38 10 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 2 2 4 10 BITMAP C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 5 2 3 10 BITMAP D8 70 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 7 7 2 1 BITMAP FE FE FE FE FE FE FE ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 5 2 3 10 BITMAP F8 F8 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 5 2 3 10 BITMAP 70 D8 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 7 4 2 8 BITMAP C6 CC CE CE ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 3 5 4 7 BITMAP E0 E0 E0 60 60 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 6C 38 00 3E FE E2 F8 7E 0F 83 FF FC ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 3 2 4 10 BITMAP E0 E0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 3 6 4 -3 BITMAP E0 E0 E0 60 E0 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 15 1 -3 BITMAP 0F 1F 1C 38 38 7C 7C 30 30 30 60 60 60 60 C0 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 6 0 6 BITMAP FCC0 FEC0 6FC0 6FC0 6EC0 6CC0 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 00C0 0180 0380 0300 0600 0E00 1C00 1800 3000 7000 6000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 4 2 3 10 BITMAP E0 30 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP F400 F800 F800 F800 F000 1000 2000 3FC0 5FC0 5FC0 5FC0 9FC0 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 2 1 0 BITMAP CD80 CD80 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 7 4 2 8 BITMAP C6 C6 C6 C6 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 15 1 0 BITMAP 3600 1C00 0000 3F00 7F00 C100 C000 F000 3C00 0F00 0380 0180 8380 FF00 FE00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 7 6 2 -3 BITMAP C6 C6 C6 C6 C6 84 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 6C 38 00 FF FF 0E 1C 18 30 60 FF FF ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lutBS14.bdf100644 1750 1750 100244 5413747541 15231 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaTypewriter-Bold-R-Normal-Sans-20-140-100-100-M-120-ISO8859-1 SIZE 14 100 100 FONTBOUNDINGBOX 17 22 -4 -4 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaTypewriter" WEIGHT_NAME "Bold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 20 POINT_SIZE 140 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "M" AVERAGE_WIDTH 120 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 18 FONT_DESCENT 5 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 12 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 12 0 BBX 3 14 4 0 BITMAP E0 E0 E0 E0 E0 E0 C0 C0 C0 C0 00 00 E0 E0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 12 0 BBX 7 6 2 8 BITMAP C6 C6 C6 C6 C6 C6 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 0 0 BITMAP 0EC0 0CC0 0D80 7FE0 7FE0 1B80 1B00 3300 FFC0 FFC0 3600 7600 6600 6E00 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 12 0 BBX 9 19 2 -3 BITMAP 0C00 0C00 3F00 7F00 E100 E000 F000 F800 7E00 1F00 0F80 0380 0380 8780 FF00 7F00 0C00 0C00 0C00 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 12 0 BBX 13 14 0 0 BITMAP 7830 FC60 CCE0 CCC0 CD80 FF80 7B00 06F0 0FF8 0D98 1998 3998 31F8 60F0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP 1F00 3F80 3B80 3B80 3B80 1F00 3C70 7E70 EF70 E760 E7E0 F3C0 7FC0 3EF0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 12 0 BBX 3 5 4 9 BITMAP E0 E0 E0 E0 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 12 0 BBX 8 17 3 -3 BITMAP 07 1F 3C 78 70 F0 E0 E0 E0 E0 E0 60 70 38 1C 0F 03 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 12 0 BBX 8 17 1 -3 BITMAP C0 F0 3C 1C 0E 0E 07 07 07 07 07 0F 0E 1E 3C F0 C0 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 12 0 BBX 9 9 1 5 BITMAP 1C00 0800 4900 E780 F380 1400 3600 7700 2200 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 12 0 BBX 10 11 1 0 BITMAP 0C00 0C00 0C00 0C00 FFC0 FFC0 0C00 0C00 0C00 0C00 0C00 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 12 0 BBX 3 7 4 -3 BITMAP E0 E0 E0 E0 60 E0 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 12 0 BBX 10 2 1 4 BITMAP FFC0 FFC0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 12 0 BBX 3 3 4 0 BITMAP E0 E0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 12 0 BBX 12 17 0 -3 BITMAP 0070 0060 00E0 00C0 0180 0380 0300 0700 0600 0E00 0C00 1800 1800 3000 7000 6000 E000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 0 0 BITMAP 1F00 3F80 71C0 60C0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 60C0 71C0 3F80 1F00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 0 BITMAP FC00 FC00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 FF80 FF80 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 1 0 BITMAP 7E00 FF00 8780 0380 0380 0380 0700 0E00 1C00 3800 7000 E000 FF80 FF80 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 12 0 BBX 8 14 2 0 BITMAP 7C FE 8F 07 07 0E 78 7E 0F 07 07 8F FE FC ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP 0700 0F00 1F00 1F00 3700 7700 6700 FFC0 FFC0 FFC0 0700 0700 0700 0700 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 12 0 BBX 8 14 2 0 BITMAP FF FF E0 C0 C0 F0 FC 1E 07 07 07 8F FE F8 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP 0F80 3F80 7880 7000 E000 EF00 FF80 F3C0 E1C0 E1C0 61C0 73C0 3F80 1F00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 0 BITMAP FF80 FF80 0380 0700 0700 0E00 0C00 1C00 1800 3800 3000 7000 7000 7000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP 1E00 3F80 7380 7380 7B80 3F00 1E00 7F80 E3C0 E1C0 E1C0 F1C0 7F80 3F00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP 3E00 7F00 F380 E180 E1C0 E1C0 F3C0 7FC0 3DC0 01C0 0380 4780 7F00 7C00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 12 0 BBX 3 11 4 0 BITMAP E0 E0 E0 00 00 00 00 00 E0 E0 E0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 12 0 BBX 3 14 4 -3 BITMAP E0 E0 E0 00 00 00 00 E0 E0 E0 E0 60 E0 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 12 0 BBX 10 11 1 0 BITMAP 0040 00C0 03C0 0F00 3C00 F000 3C00 0F00 03C0 00C0 0040 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 12 0 BBX 10 7 1 2 BITMAP FFC0 FFC0 0000 0000 0000 FFC0 FFC0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 12 0 BBX 10 11 1 0 BITMAP 8000 C000 F000 3C00 0F00 03C0 0F00 3C00 F000 C000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP 7F00 FF80 C3C0 C1C0 01C0 0380 0F00 1C00 3800 3800 0000 0000 3800 3800 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 0F00 3F80 71C0 67C0 EFC0 DCC0 D8C0 D9C0 D9C0 DFE0 EEE0 7100 3F00 1E00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP 0700 0F00 0F80 0F80 1B80 1B80 19C0 31C0 31C0 3FE0 7FE0 60E0 4070 C070 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP FF00 FF80 E380 E380 E380 E700 FE00 FF80 E3C0 E1C0 E1C0 E3C0 FF80 FF00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 0 0 BITMAP 0FE0 3FE0 7820 7000 E000 E000 E000 E000 E000 E000 7000 7820 3FE0 0FC0 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP FF00 FFC0 E3C0 E1E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E1C0 E3C0 FF80 FE00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP FF80 FF80 E000 E000 E000 E000 FF00 FF00 E000 E000 E000 E000 FFC0 FFC0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP FFC0 FFC0 E000 E000 E000 E000 FF80 FF80 E000 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 0 0 BITMAP 0FE0 3FE0 7820 7000 E000 E000 E000 E0E0 E0E0 E0E0 70E0 78E0 3FE0 0FC0 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 FFC0 FFC0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 1 0 BITMAP FF80 FF80 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 FF80 FF80 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 1 0 BITMAP 7F80 7F80 0380 0380 0380 0380 0380 0380 0380 0380 0380 8780 FF00 FE00 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP E0E0 E1C0 E380 E700 E600 EC00 FC00 FE00 EE00 EF00 E780 E380 E3C0 E1E0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 FFC0 FFC0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP F1E0 F1E0 F1E0 F3E0 F3E0 FBE0 DBE0 DBE0 DEE0 DEE0 CEE0 CEE0 CCE0 C0E0 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP E0C0 F0C0 F0C0 F8C0 F8C0 DCC0 DEC0 CEC0 CFC0 C7C0 C7C0 C3C0 C3C0 C1C0 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP 1F80 3FC0 70E0 6060 E070 E070 E070 E070 E070 E070 6060 70E0 3FC0 1F80 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP FF00 FF80 E1C0 E1C0 E1C0 E1C0 E3C0 FF80 FF00 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 12 0 BBX 13 17 0 -3 BITMAP 1F80 3FC0 70E0 6060 E070 E070 E070 E070 E070 E070 6070 70E0 3FC0 0F80 01F8 00F0 0020 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP FF00 FF80 E1C0 E1C0 E1C0 E1C0 E380 FF00 FF00 E700 E780 E380 E1C0 E1E0 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP 3F80 7F80 E080 E000 F000 FC00 3F00 1F80 07C0 01C0 01C0 83C0 FF80 FE00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP FFE0 FFE0 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 F3C0 7F80 3F00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP E030 F060 7060 7060 78C0 38C0 38C0 3980 1D80 1D80 1F00 0F00 0F00 0E00 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP E030 E730 E730 E730 7F60 7F60 7FE0 7FE0 7BE0 7BE0 7BE0 39C0 39C0 31C0 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP F0E0 70C0 7980 3B80 3F00 1F00 0E00 0F00 1F00 1F80 3380 73C0 61C0 E1E0 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP E070 7060 78E0 38C0 3D80 1F80 1F00 0F00 0E00 0E00 0E00 0E00 0E00 0E00 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP FFC0 FFC0 03C0 0380 0700 0F00 0E00 1C00 3C00 3800 7800 F000 FFC0 FFC0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 12 0 BBX 8 17 3 -3 BITMAP FF FF E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 FF FF ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 12 0 BBX 12 17 0 -3 BITMAP E000 6000 3000 3000 1800 1800 0C00 0E00 0600 0700 0300 0180 0180 00C0 00C0 0060 0070 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 12 0 BBX 8 17 1 -3 BITMAP FF FF 07 07 07 07 07 07 07 07 07 07 07 07 07 FF FF ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 12 0 BBX 10 12 1 2 BITMAP 0400 0C00 0C00 0C00 1E00 1E00 3300 3300 3300 6180 6180 C0C0 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 12 0 BBX 12 2 0 -3 BITMAP FFF0 FFF0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 12 0 BBX 3 5 4 9 BITMAP 60 E0 E0 E0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 12 0 BBX 11 11 1 0 BITMAP 3F00 7F80 43C0 01C0 3FC0 7FC0 E1C0 E1C0 E3C0 7FE0 3CE0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP E000 E000 E000 E700 EF80 FFC0 F3C0 E1C0 E1C0 E1C0 E1C0 F380 FF80 FF00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 12 0 BBX 10 11 1 0 BITMAP 1FC0 3FC0 7840 E000 E000 E000 E000 F000 7800 3FC0 1FC0 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP 01C0 01C0 01C0 3DC0 7FC0 73C0 E1C0 E1C0 E1C0 E1C0 F3C0 FFC0 7FC0 3DC0 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 12 0 BBX 11 11 1 0 BITMAP 1F00 3FC0 70C0 E0E0 FFE0 FFE0 E000 F000 7820 3FE0 1FC0 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP 1FC0 3FC0 3840 FF80 FF80 3800 3800 3800 3800 3800 3800 3800 3800 3800 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 1 -4 BITMAP 3CC0 7FC0 73C0 E1C0 E1C0 E1C0 E1C0 F3C0 7FC0 7DC0 3DC0 01C0 4380 7F80 3E00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 0 BITMAP E000 E000 E000 E700 EF80 FF80 F380 E380 E380 E380 E380 E380 E380 E380 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 12 0 BBX 7 14 2 0 BITMAP 0E 0E 0E FE FE 0E 0E 0E 0E 0E 0E 0E 0E 0E ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 12 0 BBX 8 18 1 -4 BITMAP 07 07 07 7F 7F 07 07 07 07 07 07 07 07 07 07 87 FE FC ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP E000 E000 E000 E380 E300 E600 EE00 EC00 FE00 EE00 EF00 E780 E380 E3C0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 12 0 BBX 7 14 1 0 BITMAP FE FE 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 12 0 BBX 11 11 0 0 BITMAP ECC0 FFE0 FFE0 EEE0 EEE0 EEE0 EEE0 EEE0 EEE0 EEE0 EEE0 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 12 0 BBX 9 11 2 0 BITMAP EF00 FF80 FF80 F380 E380 E380 E380 E380 E380 E380 E380 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 12 0 BBX 11 11 0 0 BITMAP 1F00 7FC0 71C0 E0E0 E0E0 E0E0 E0E0 E0E0 71C0 3FC0 1F00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 1 -4 BITMAP EF00 EF80 FFC0 F3C0 E1C0 E1C0 E1C0 E1C0 F380 FF80 EF00 E000 E000 E000 E000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 1 -4 BITMAP 3FC0 7FC0 73C0 E1C0 E1C0 E1C0 E1C0 F3C0 FFC0 7DC0 39C0 01C0 01C0 01C0 01C0 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 12 0 BBX 9 11 2 0 BITMAP E780 EF80 FF80 F180 E000 E000 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 12 0 BBX 9 11 2 0 BITMAP 3F00 7F00 E100 F000 FC00 7F00 1F80 0380 8380 FF00 7E00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 12 0 BBX 9 13 2 0 BITMAP 3800 3800 FF80 FF80 3800 3800 3800 3800 3800 3800 3800 1F80 0F80 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 12 0 BBX 9 11 1 0 BITMAP E380 E380 E380 E380 E380 E380 E380 E780 FF80 FF80 7B80 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 12 0 BBX 11 11 1 0 BITMAP E060 F0C0 70C0 70C0 3980 3980 3B80 1F00 1F00 1E00 0E00 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 12 0 BBX 12 11 0 0 BITMAP E030 E730 E730 7F20 7F60 7FE0 7DE0 79E0 79E0 39C0 38C0 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 12 0 BBX 11 11 1 0 BITMAP F0E0 79C0 3B80 3F00 1E00 0E00 1F00 3F80 3380 63C0 E1E0 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 1 -4 BITMAP E060 70C0 70C0 79C0 3980 3D80 1F00 1F00 0E00 0E00 0E00 0C00 0C00 7800 7000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 12 0 BBX 10 11 1 0 BITMAP FFC0 FFC0 03C0 0780 0F00 1E00 3C00 7800 F000 FFC0 FFC0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 12 0 BBX 9 17 2 -3 BITMAP 0F80 1F80 1C00 1C00 0E00 0E00 0E00 0C00 F000 FC00 0E00 0E00 0E00 1C00 1C00 1F80 0F80 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 12 0 BBX 2 17 5 -3 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 12 0 BBX 9 17 1 -3 BITMAP F800 FC00 1C00 1C00 3C00 3800 3800 1800 0780 1F80 3800 3800 3800 1C00 1C00 FC00 F800 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 12 0 BBX 10 5 1 3 BITMAP 70C0 78C0 DEC0 C780 C380 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 12 0 BBX 3 15 4 -4 BITMAP E0 E0 E0 00 00 C0 C0 C0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP 0600 0600 1FC0 7FC0 7000 E000 E000 E000 E000 7800 3FC0 1FC0 0600 0600 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 0 BITMAP 1F80 3F80 3800 3800 3800 3800 FE00 FE00 3800 3800 3800 3000 FF80 FF80 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 12 0 BBX 11 11 1 2 BITMAP 4040 FFE0 7FC0 71C0 60C0 60C0 60C0 71C0 7FC0 FFE0 4040 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 12 0 BBX 13 14 0 0 BITMAP F038 7870 3CE0 1FC0 0F80 0F00 3FE0 3FE0 0700 3FE0 3FE0 0700 0700 0700 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 12 0 BBX 2 17 5 -3 BITMAP C0 C0 C0 C0 C0 C0 C0 00 00 00 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 12 0 BBX 8 18 2 -4 BITMAP 3E 7E E2 E0 F0 78 7E C7 C3 E3 FB 7E 3E 0F 07 87 FE FC ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 12 0 BBX 6 2 3 12 BITMAP CC CC ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP 0F00 3FC0 70E0 E770 CFB0 D8B0 D830 D830 D8B0 CFB0 E770 70E0 3FC0 0F00 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 12 0 BBX 9 7 2 7 BITMAP 7E00 FF00 8300 7F00 FF00 FF80 7B80 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 12 0 BBX 11 9 1 1 BITMAP 0840 1CE0 39C0 7380 F780 7380 39C0 1CE0 0840 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 12 0 BBX 10 5 1 2 BITMAP FFC0 FFC0 00C0 00C0 00C0 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 12 0 BBX 8 2 2 6 BITMAP FF FF ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 4 BITMAP 1E00 7F00 6180 DFC0 DBC0 DEC0 DEC0 7B80 7F00 1E00 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 12 0 BBX 6 2 3 12 BITMAP FC FC ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 12 0 BBX 3 3 4 11 BITMAP E0 A0 E0 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 12 0 BBX 10 11 1 0 BITMAP 0C00 0C00 0C00 FFC0 FFC0 0C00 0C00 0000 0000 FFC0 FFC0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 12 0 BBX 4 7 -3 7 BITMAP E0 10 10 20 60 C0 F0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 12 0 BBX 4 7 -3 7 BITMAP E0 10 10 60 10 10 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 12 0 BBX 5 3 3 11 BITMAP 38 70 E0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 1 -3 BITMAP E380 E380 E380 E380 E380 E380 E380 E780 FF80 FF80 FB80 E000 E000 E000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 12 0 BBX 9 17 1 -3 BITMAP 7F80 FF80 FD80 FD80 FD80 7D80 3D80 0D80 0D80 0D80 0D80 0D80 0D80 0D80 0D80 0D80 0D80 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 12 0 BBX 3 3 4 3 BITMAP E0 E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 12 0 BBX 4 5 4 -4 BITMAP 60 40 F0 30 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 12 0 BBX 3 7 -4 7 BITMAP C0 40 40 40 40 40 E0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 12 0 BBX 9 7 1 7 BITMAP 3E00 7F00 E380 C180 E380 7F00 3E00 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 12 0 BBX 11 9 0 1 BITMAP 4200 E700 7380 39C0 3DE0 39C0 7380 E700 4200 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP C070 4060 40C0 41C0 4180 4300 E700 0E60 0C60 18A0 3920 31F0 6020 E020 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP C070 4060 40C0 41C0 4180 4300 E700 0EE0 0C10 1810 3820 3060 60C0 E0F0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP E070 1060 10C0 61C0 1180 1300 E700 0E60 0C60 18A0 3920 31F0 6020 E020 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 1 -4 BITMAP 0700 0700 0700 0000 0700 0700 0E00 1E00 3800 7000 E000 E0C0 F0C0 7FC0 3F80 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 12 0 BBX 12 18 0 0 BITMAP 0E00 0700 0380 0000 0700 0F00 0F80 0F80 1B80 1B80 19C0 31C0 31C0 3FE0 7FE0 60E0 4070 C070 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 12 0 BBX 12 18 0 0 BITMAP 0700 0E00 1C00 0000 0700 0F00 0F80 0F80 1B80 1B80 19C0 31C0 31C0 3FE0 7FE0 60E0 4070 C070 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 12 0 BBX 12 18 0 0 BITMAP 0600 0F00 1980 0000 0700 0F00 0F80 0F80 1B80 1B80 19C0 31C0 31C0 3FE0 7FE0 60E0 4070 C070 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 12 0 BBX 12 18 0 0 BITMAP 0D80 1F80 1B00 0000 0700 0F00 0F80 0F80 1B80 1B80 19C0 31C0 31C0 3FE0 7FE0 60E0 4070 C070 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 12 0 BBX 12 17 0 0 BITMAP 1980 1980 0000 0700 0F00 0F80 0F80 1B80 1B80 19C0 31C0 31C0 3FE0 7FE0 60E0 4070 C070 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 12 0 BBX 12 18 0 0 BITMAP 0700 0500 0700 0000 0700 0F00 0F80 0F80 1B80 1B80 19C0 31C0 31C0 3FE0 7FE0 60E0 4070 C070 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP 07F0 07F0 0780 0F80 0F80 1F80 1BF0 3BF0 3380 3F80 7F80 6380 E3F0 C3F0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 12 0 BBX 11 18 0 -4 BITMAP 0FE0 3FE0 7820 7000 E000 E000 E000 E000 E000 E000 7000 7820 3FE0 0FC0 0400 0F00 0300 0E00 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 12 0 BBX 10 18 1 0 BITMAP 3800 1C00 0E00 0000 FF80 FF80 E000 E000 E000 E000 FF00 FF00 E000 E000 E000 E000 FFC0 FFC0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 12 0 BBX 10 18 1 0 BITMAP 0E00 1C00 3800 0000 FF80 FF80 E000 E000 E000 E000 FF00 FF00 E000 E000 E000 E000 FFC0 FFC0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 0 0 BBX 0 0 0 0 BITMAP ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 12 0 BBX 10 17 1 0 BITMAP 3300 3300 0000 FF80 FF80 E000 E000 E000 E000 FF00 FF00 E000 E000 E000 E000 FFC0 FFC0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 12 0 BBX 9 18 1 0 BITMAP 3800 1C00 0E00 0000 FF80 FF80 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 FF80 FF80 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 12 0 BBX 9 18 1 0 BITMAP 0E00 1C00 3800 0000 FF80 FF80 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 FF80 FF80 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 12 0 BBX 9 18 1 0 BITMAP 1800 3C00 6600 0000 FF80 FF80 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 FF80 FF80 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 12 0 BBX 9 17 1 0 BITMAP 6600 6600 0000 FF80 FF80 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 FF80 FF80 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP 7F80 7FE0 71E0 70F0 7070 7070 FE70 FE70 7070 7070 70E0 71E0 7FC0 7F00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 12 0 BBX 10 18 1 0 BITMAP 1B00 3F00 3600 0000 E0C0 F0C0 F0C0 F8C0 F8C0 DCC0 DEC0 CEC0 CFC0 C7C0 C7C0 C3C0 C3C0 C1C0 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 12 0 BBX 12 18 0 0 BITMAP 1C00 0E00 0700 0000 1F80 3FC0 70E0 6060 E070 E070 E070 E070 E070 E070 6060 70E0 3FC0 1F80 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 12 0 BBX 12 18 0 0 BITMAP 0700 0E00 1C00 0000 1F80 3FC0 70E0 6060 E070 E070 E070 E070 E070 E070 6060 70E0 3FC0 1F80 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 12 0 BBX 12 18 0 0 BITMAP 0600 0F00 1980 0000 1F80 3FC0 70E0 6060 E070 E070 E070 E070 E070 E070 6060 70E0 3FC0 1F80 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 12 0 BBX 12 18 0 0 BITMAP 0D80 1F80 1B00 0000 1F80 3FC0 70E0 6060 E070 E070 E070 E070 E070 E070 6060 70E0 3FC0 1F80 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 12 0 BBX 12 17 0 0 BITMAP 1980 1980 0000 1F80 3FC0 70E0 6060 E070 E070 E070 E070 E070 E070 6060 70E0 3FC0 1F80 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 12 0 BBX 10 11 1 0 BITMAP 4080 E1C0 7380 3F00 1E00 0C00 1E00 3B00 7380 E1C0 4080 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP 1FF0 3FE0 70E0 60E0 E1F0 E3F0 E770 EE70 FC70 F870 7060 70E0 7FC0 FF80 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 12 0 BBX 10 18 1 0 BITMAP 1C00 0E00 0700 0000 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 F3C0 7F80 3F00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 12 0 BBX 10 18 1 0 BITMAP 0E00 1C00 3800 0000 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 F3C0 7F80 3F00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 12 0 BBX 10 18 1 0 BITMAP 0C00 1E00 3300 0000 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 F3C0 7F80 3F00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 12 0 BBX 10 17 1 0 BITMAP 3300 3300 0000 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 E1C0 F3C0 7F80 3F00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 12 0 BBX 12 18 0 0 BITMAP 0700 0E00 1C00 0000 E070 7060 78E0 38C0 3D80 1F80 1F00 0F00 0E00 0E00 0E00 0E00 0E00 0E00 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP E000 E000 FF00 FF80 E1C0 E1C0 E1C0 E1C0 E3C0 FF80 FF00 E000 E000 E000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 3F00 7F80 E380 E380 E300 E600 EF00 E780 E7C0 E1E0 E0E0 E8E0 EFE0 EF80 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 1 0 BITMAP 1C00 0E00 0700 0000 3F00 7F80 43C0 01C0 3FC0 7FC0 E1C0 E1C0 E3C0 7FE0 3CE0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 1 0 BITMAP 0700 0E00 1C00 0000 3F00 7F80 43C0 01C0 3FC0 7FC0 E1C0 E1C0 E3C0 7FE0 3CE0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 1 0 BITMAP 0C00 1E00 3300 0000 3F00 7F80 43C0 01C0 3FC0 7FC0 E1C0 E1C0 E3C0 7FE0 3CE0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 1 0 BITMAP 1B00 3F00 3600 0000 3F00 7F80 43C0 01C0 3FC0 7FC0 E1C0 E1C0 E3C0 7FE0 3CE0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 3300 3300 0000 3F00 7F80 43C0 01C0 3FC0 7FC0 E1C0 E1C0 E3C0 7FE0 3CE0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 1 0 BITMAP 0E00 0A00 0E00 0000 3F00 7F80 43C0 01C0 3FC0 7FC0 E1C0 E1C0 E3C0 7FE0 3CE0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 12 0 BBX 11 11 0 0 BITMAP 3D80 7FC0 46E0 06E0 3FE0 7FE0 E600 E600 E620 FFE0 73C0 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 1 -4 BITMAP 1FC0 3FC0 7840 E000 E000 E000 E000 F000 7800 3FC0 1FC0 0800 1E00 0600 1C00 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 1 0 BITMAP 1C00 0E00 0700 0000 1F00 3FC0 70C0 E0E0 FFE0 FFE0 E000 F000 7820 3FE0 1FC0 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 1 0 BITMAP 0700 0E00 1C00 0000 1F00 3FC0 70C0 E0E0 FFE0 FFE0 E000 F000 7820 3FE0 1FC0 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 1 0 BITMAP 0C00 1E00 3300 0000 1F00 3FC0 70C0 E0E0 FFE0 FFE0 E000 F000 7820 3FE0 1FC0 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 3300 3300 0000 1F00 3FC0 70C0 E0E0 FFE0 FFE0 E000 F000 7820 3FE0 1FC0 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 12 0 BBX 7 15 2 0 BITMAP 38 1C 0E 00 FE FE 0E 0E 0E 0E 0E 0E 0E 0E 0E ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 12 0 BBX 7 15 2 0 BITMAP 0E 1C 38 00 FE FE 0E 0E 0E 0E 0E 0E 0E 0E 0E ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 12 0 BBX 7 15 2 0 BITMAP 18 3C 66 00 FE FE 0E 0E 0E 0E 0E 0E 0E 0E 0E ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 12 0 BBX 7 14 2 0 BITMAP 66 66 00 FE FE 0E 0E 0E 0E 0E 0E 0E 0E 0E ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 0 0 BITMAP FF80 9F80 1300 1F80 3FC0 71C0 E0E0 E0E0 E0E0 E0E0 E0E0 71C0 3FC0 1F00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 2 0 BITMAP 3600 7E00 6C00 0000 EF00 FF80 FF80 F380 E380 E380 E380 E380 E380 E380 E380 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 0 0 BITMAP 1C00 0E00 0700 0000 1F00 7FC0 71C0 E0E0 E0E0 E0E0 E0E0 E0E0 71C0 3FC0 1F00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 0 0 BITMAP 0700 0E00 1C00 0000 1F00 7FC0 71C0 E0E0 E0E0 E0E0 E0E0 E0E0 71C0 3FC0 1F00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 0 0 BITMAP 0600 0F00 1980 0000 1F00 7FC0 71C0 E0E0 E0E0 E0E0 E0E0 E0E0 71C0 3FC0 1F00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 0 0 BITMAP 0D80 1F80 1B00 0000 1F00 7FC0 71C0 E0E0 E0E0 E0E0 E0E0 E0E0 71C0 3FC0 1F00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 0 0 BITMAP 1980 1980 0000 1F00 7FC0 71C0 E0E0 E0E0 E0E0 E0E0 E0E0 71C0 3FC0 1F00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 12 0 BBX 11 11 0 0 BITMAP 0E00 0E00 0E00 0000 FFE0 FFE0 0000 0000 0E00 0E00 0E00 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 12 0 BBX 11 11 0 0 BITMAP 1FE0 7FC0 71C0 E3E0 E7E0 EEE0 FCE0 F8E0 71C0 7FC0 FF00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 1 0 BITMAP 3800 1C00 0E00 0000 E380 E380 E380 E380 E380 E380 E380 E780 FF80 FF80 7B80 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 1 0 BITMAP 0E00 1C00 3800 0000 E380 E380 E380 E380 E380 E380 E380 E780 FF80 FF80 7B80 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 1 0 BITMAP 0C00 1E00 3300 0000 E380 E380 E380 E380 E380 E380 E380 E780 FF80 FF80 7B80 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 1 0 BITMAP 3300 3300 0000 E380 E380 E380 E380 E380 E380 E380 E780 FF80 FF80 7B80 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 12 0 BBX 11 19 1 -4 BITMAP 0700 0E00 1C00 0000 E060 70C0 70C0 79C0 3980 3D80 1F00 1F00 0E00 0E00 0E00 0C00 0C00 7800 7000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 12 0 BBX 10 17 1 -4 BITMAP E000 E000 E700 EF80 FFC0 F3C0 E1C0 E1C0 E1C0 E1C0 F380 FF80 EF00 E000 E000 E000 E000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 12 0 BBX 11 18 1 -4 BITMAP 3300 3300 0000 E060 70C0 70C0 79C0 3980 3D80 1F00 1F00 0E00 0E00 0E00 0C00 0C00 7800 7000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP 3FC0 7FC0 71C0 FDC0 FDC0 71C0 71C0 71C0 71C0 71C0 71C0 71C0 71C0 71C0 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 2 1 5 BITMAP FF80 FF80 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 17 1 -3 BITMAP 1C00 1C00 1C00 1C00 1C00 FF80 FF80 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 18 1 0 BITMAP 3300 1E00 0C00 0000 FFC0 FFC0 03C0 0380 0700 0F00 0E00 1C00 3C00 3800 7800 F000 FFC0 FFC0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 11 1 0 BITMAP 39C0 7FE0 EE60 EE60 EFE0 EFE0 EE00 EE00 6E20 7FE0 39C0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 17 0 0 BITMAP 1980 1980 0000 E070 7060 78E0 38C0 3D80 1F80 1F00 0F00 0E00 0E00 0E00 0E00 0E00 0E00 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 11 2 0 BITMAP FE FE 0E 0E 0E 0E 0E 0E 0E 0E 0E ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 1 0 BITMAP FE00 FE00 0E00 0E80 0E80 0F80 0E00 3E00 7E00 4E00 0E00 0E00 0E00 0E00 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP 3800 3800 3800 3A00 3E00 3E00 7800 F800 B800 3800 3800 3800 3FF0 3FF0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 17 1 -3 BITMAP 1C00 1C00 1C00 1C00 1C00 FF80 FF80 1C00 1C00 1C00 1C00 FF80 FF80 1C00 1C00 1C00 1C00 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP 3CC0 7CC0 70C0 FFC0 FFC0 71C0 71C0 71C0 71C0 71C0 71C0 71C0 71C0 71C0 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 6 9 3 1 BITMAP 40 E0 70 38 3C 38 70 E0 40 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 3FE0 7FE0 7300 E300 E300 E300 E3E0 E3E0 E300 E300 E300 7300 7FE0 1FE0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 2 0 5 BITMAP FFE0 FFE0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 6 3 3 11 BITMAP CC 78 30 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 3 4 4 -4 BITMAP 60 C0 C0 E0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 3 3 11 BITMAP 76 6C D8 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 6 9 3 1 BITMAP 08 1C 38 70 F0 70 38 1C 08 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 2 2 5 12 BITMAP C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 6 3 3 11 BITMAP CC FC 78 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 8 8 2 1 BITMAP FF FF FF FF FF FF FF FF ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 6 3 3 11 BITMAP 6C FC D8 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 6 3 3 11 BITMAP 30 78 CC ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 8 5 2 9 BITMAP 63 C6 E7 E7 E7 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 3 5 4 9 BITMAP E0 E0 E0 60 60 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 2 0 BITMAP 6600 3C00 1800 0000 3F00 7F00 E100 F000 FC00 7F00 1F80 0380 8380 FF00 7E00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 3 3 5 11 BITMAP E0 A0 E0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 3 7 4 -3 BITMAP E0 E0 E0 E0 60 E0 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 17 2 -3 BITMAP 0780 0F80 1C00 1C00 1C00 3800 7E00 7E00 3800 3800 7000 7000 7000 7000 7000 E000 E000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 7 0 7 BITMAP FF30 FF70 3770 37F0 37B0 36B0 3630 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP 0070 0060 00C0 01C0 0180 0300 0700 0E00 0C00 1800 3800 3000 6000 E000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 5 3 4 11 BITMAP E0 70 38 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 0 0 BITMAP 6200 F400 F400 F800 F800 6800 1000 1000 2CC0 3FE0 7FE0 5FE0 5FE0 8CC0 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 2 1 0 BITMAP CCC0 CCC0 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 8 5 2 9 BITMAP E7 E7 E7 E7 84 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 18 1 0 BITMAP 3300 1E00 0C00 0000 3F80 7F80 E080 E000 F000 FC00 3F00 1F80 07C0 01C0 01C0 83C0 FF80 FE00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 8 7 2 -3 BITMAP E7 E7 E7 63 63 63 C6 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 1 0 BITMAP 3300 1E00 0C00 0000 FFC0 FFC0 03C0 0780 0F00 1E00 3C00 7800 F000 FFC0 FFC0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lutBS18.bdf100644 1750 1750 111023 5413747541 15232 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaTypewriter-Bold-R-Normal-Sans-25-180-100-100-M-150-ISO8859-1 SIZE 18 100 100 FONTBOUNDINGBOX 23 28 -3 -5 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaTypewriter" WEIGHT_NAME "Bold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 25 POINT_SIZE 180 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "M" AVERAGE_WIDTH 150 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 23 FONT_DESCENT 6 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 15 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 15 0 BBX 4 18 5 0 BITMAP F0 F0 F0 F0 F0 F0 F0 F0 70 70 70 70 70 00 00 F0 F0 F0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 15 0 BBX 11 7 2 12 BITMAP FBE0 FBE0 FBE0 FBE0 71C0 71C0 71C0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 0770 0770 0F70 0EE0 0EE0 7FF8 7FF8 7FF8 1DC0 1DC0 1DC0 FFF0 FFF0 FFF0 3B80 7380 7700 7700 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 15 0 BBX 12 23 2 -3 BITMAP 0700 0700 0FE0 3FE0 7FE0 F800 F000 F800 FC00 7F00 3F80 1FC0 07E0 01F0 00F0 00F0 81F0 FFE0 FFE0 7FC0 0700 0700 0700 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 0 0 BITMAP 3878 7C70 FEF0 EEE0 EFE0 EFC0 FFC0 7F80 3B80 0770 07F8 0FFC 0FDC 1FDC 1DDC 3DFC 38F8 7870 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 0 0 BITMAP 0F80 1FC0 3FE0 3DE0 3DE0 3DE0 1FC0 0F80 3F1E 7F9E 779E F7DC F3FC F3F8 F9F0 7FF0 3FF8 1FBE ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 15 0 BBX 4 8 5 11 BITMAP F0 F0 F0 F0 70 70 F0 E0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 15 0 BBX 10 23 4 -4 BITMAP 00C0 07C0 0FC0 1F00 3E00 7C00 7800 7800 F000 F000 F000 F000 F000 F000 F000 7800 7800 7800 3C00 1E00 0F80 07C0 00C0 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 15 0 BBX 10 23 1 -4 BITMAP C000 F800 7C00 1E00 0F00 0700 0780 0780 03C0 03C0 03C0 03C0 03C0 03C0 03C0 0780 0780 0F80 1F00 3E00 FC00 F800 E000 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 15 0 BBX 11 11 2 7 BITMAP 0E00 0E00 4440 64C0 F1E0 F1E0 0900 1B00 7B80 31C0 1100 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 1 0 BITMAP 0700 0700 0700 0700 0700 FFF8 FFF8 FFF8 0700 0700 0700 0700 0700 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 15 0 BBX 4 8 5 -4 BITMAP F0 F0 F0 F0 70 70 F0 E0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 15 0 BBX 13 3 1 5 BITMAP FFF8 FFF8 FFF8 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 15 0 BBX 4 4 5 0 BITMAP F0 F0 F0 F0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 15 0 BBX 15 23 0 -4 BITMAP 001E 001C 003C 0038 0078 0070 00F0 00E0 01E0 01C0 03C0 0380 0780 0700 0F00 0E00 1E00 1C00 3800 3800 7000 7000 E000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 0F80 3FE0 3FE0 78F0 78F0 F078 F078 F078 F078 F078 F078 F078 F078 78F0 78F0 3FE0 3FE0 0F80 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 2 0 BITMAP FF00 FF00 FF00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 FFF0 FFF0 FFF0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 15 0 BBX 11 18 2 0 BITMAP 3F00 7FC0 7FC0 43E0 01E0 01E0 01E0 03C0 07C0 0780 0F00 1E00 3C00 7800 F000 FFE0 FFE0 FFE0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 15 0 BBX 11 18 2 0 BITMAP 7F00 FFC0 FFE0 83E0 01E0 01E0 07C0 3F80 3E00 3F80 07C0 01E0 01E0 01E0 83E0 FFC0 FF80 7E00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 03E0 03E0 07E0 0FE0 0FE0 1FE0 3DE0 39E0 79E0 F1E0 FFF8 FFF8 FFF8 FFF8 01E0 01E0 01E0 01E0 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 15 0 BBX 10 18 3 0 BITMAP FFC0 FFC0 FFC0 E000 E000 E000 F800 FF00 FF80 0F80 07C0 03C0 03C0 03C0 8780 FF80 FF00 7C00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 03F0 0FF0 3FF0 3E10 7800 7800 F000 F3C0 FFF0 FFF0 F8F8 F078 F078 7078 78F8 3FF0 1FE0 0FC0 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 15 0 BBX 11 18 3 0 BITMAP FFE0 FFE0 FFE0 01E0 01E0 03C0 0780 0780 0F00 0E00 1E00 3C00 3C00 3C00 7800 7800 7800 7800 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 2 0 BITMAP 0F80 3FC0 3FE0 79E0 79E0 7DE0 7FC0 3F80 1F80 3FC0 73E0 F1F0 F0F0 F0F0 F9F0 7FE0 7FC0 1F80 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 1F80 3FC0 7FE0 F8F0 F070 F078 F078 F8F8 7FF8 7FF8 1E78 0078 00F0 00F0 43E0 7FE0 7F80 7E00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 15 0 BBX 4 13 5 0 BITMAP F0 F0 F0 F0 00 00 00 00 00 F0 F0 F0 F0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 15 0 BBX 4 17 5 -4 BITMAP F0 F0 F0 F0 00 00 00 00 00 F0 F0 F0 F0 70 70 E0 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 1 0 BITMAP 0008 0038 00F8 03F0 0FC0 3F00 FC00 3F00 0FC0 03F0 00F8 0038 0008 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 15 0 BBX 13 9 1 2 BITMAP FFF8 FFF8 FFF8 0000 0000 0000 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 1 0 BITMAP 8000 E000 F800 7E00 1F80 07E0 01F8 07E0 1F80 7E00 F800 E000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 2 0 BITMAP 3F80 FFE0 FFF0 C1F0 C0F0 C0F0 01E0 03E0 0FC0 1F00 3E00 3C00 3C00 0000 0000 3C00 3C00 3C00 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 1 0 BITMAP 07E0 1FF0 3FF8 3C78 7BB8 77F8 E7F8 EF38 EE38 EE78 EFFC EFFC F7BC 7000 7840 3FC0 3FC0 0F80 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 0 0 BITMAP 03C0 07C0 07E0 07E0 0FE0 0FF0 0EF0 1CF0 1CF0 1C78 3878 3FF8 3FFC 7FFC 703C 703C E01E E01E ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP FFC0 FFE0 FFF0 F0F0 F0F0 F0F0 F1E0 FFC0 FF80 FFE0 F1F0 F078 F078 F078 F0F8 FFF0 FFF0 FFC0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 0 0 BITMAP 03FC 1FFC 3FFC 7E0C 7C00 7800 F000 F000 F000 F000 F000 F000 7800 7C00 7E04 3FFC 1FFC 03F0 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP FF80 FFE0 FFF0 F1F0 F0F8 F078 F078 F078 F078 F078 F078 F078 F078 F0F0 F1F0 FFE0 FFC0 FF00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 2 0 BITMAP FFE0 FFE0 FFE0 F000 F000 F000 F000 FFC0 FFC0 FFC0 F000 F000 F000 F000 F000 FFF0 FFF0 FFF0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 2 0 BITMAP FFF8 FFF8 FFF8 F000 F000 F000 F000 F000 FFF0 FFE0 FFE0 F000 F000 F000 F000 F000 F000 F000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 0 0 BITMAP 03F8 1FFC 3FFC 7E04 7C00 7800 F000 F000 F000 F03C F03C F03C F83C 783C 7E3C 3FFC 1FFC 07F0 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP F078 F078 F078 F078 F078 F078 F078 FFF8 FFF8 FFF8 F078 F078 F078 F078 F078 F078 F078 F078 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 1 0 BITMAP FFF0 FFF0 FFF0 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 FFF0 FFF0 FFF0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 15 0 BBX 11 18 2 0 BITMAP 7FE0 7FE0 7FE0 01E0 01E0 01E0 01E0 01E0 01E0 01E0 01E0 01E0 01E0 01E0 83E0 FFC0 FF80 FF00 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 1 0 BITMAP F03C F078 F0F0 F0E0 F1E0 F3C0 F780 FF00 FF00 FF80 FF80 F7C0 F3E0 F1E0 F1F0 F0F8 F0F8 F07C ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 3 0 BITMAP F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 FFF0 FFF0 FFF0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 1 0 BITMAP F87C F87C F8FC F8FC FCFC FCFC FDFC FDFC EFFC EFFC EFBC EFBC EFBC EFBC E7BC E7BC E73C E03C ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 1 0 BITMAP F070 F870 F870 FC70 FC70 FE70 FE70 FF70 EF70 EFF0 E7F0 E7F0 E3F0 E3F0 E1F0 E1F0 E1F0 E0F0 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 1 0 BITMAP 0FC0 1FE0 3FF0 7878 7878 F03C F03C F03C F03C F03C F03C F03C F03C 7878 7878 3FF0 1FE0 0FC0 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 2 0 BITMAP FFC0 FFF0 FFF0 F0F8 F078 F078 F078 F078 F0F0 FFF0 FFE0 FF80 F000 F000 F000 F000 F000 F000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 15 0 BBX 15 22 1 -4 BITMAP 0FC0 1FE0 3FF0 7878 7878 F03C F03C F03C F03C F03C F03C F03C F03C 7878 7878 3FF0 1FE0 0FC0 00FE 007C 003C 0008 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 2 0 BITMAP FFC0 FFE0 FFF0 F1F0 F0F0 F0F0 F0F0 F1E0 F3C0 FF80 FF80 FFC0 F7C0 F3E0 F1E0 F1F0 F0F0 F078 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 1FE0 7FF0 7FF0 F830 F000 F800 FE00 7F80 3FC0 0FF0 03F0 00F8 0078 0078 C0F8 FFF0 FFE0 7F80 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 1 0 BITMAP FFFC FFFC FFFC 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 1 0 BITMAP F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F9F0 7FE0 7FE0 1F80 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 0 0 BITMAP F00E F80E 781C 781C 781C 3C38 3C38 3C38 3E70 1E70 1E70 1EE0 0FE0 0FE0 0FE0 07C0 07C0 07C0 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 0 0 BITMAP F006 F3C6 F3C6 F3CE 73CE 7FCC 7FEC 7FEC 7FEC 7FEC 7EFC 3EFC 3EFC 3EFC 3EF8 3C78 3C78 3C78 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 1 0 BITMAP F83C 7838 7C70 3C70 3EE0 1FE0 1FC0 0FC0 0780 07C0 0FC0 1FE0 1DE0 3DF0 38F0 78F8 F078 E07C ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 15 0 BBX 16 18 0 0 BITMAP F80F 780E 7C1E 3C1C 3E3C 1F38 0F70 0FF0 07E0 07E0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 7FF8 7FF8 7FF8 00F8 01F0 03E0 03E0 07C0 0F80 0F80 1F00 3E00 3E00 7C00 F800 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 15 0 BBX 10 23 4 -4 BITMAP FFC0 FFC0 FFC0 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 FFC0 FFC0 FFC0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 15 0 BBX 15 23 0 -4 BITMAP F000 7000 7800 3800 3C00 1C00 1E00 0E00 0F00 0700 0780 0380 03C0 01C0 01E0 00E0 00F0 0070 0078 0038 003C 001C 001E ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 15 0 BBX 10 23 1 -4 BITMAP FFC0 FFC0 FFC0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 FFC0 FFC0 FFC0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 15 0 BBX 13 15 1 3 BITMAP 0200 0200 0700 0700 0F80 0F80 0F80 1DC0 1DC0 38E0 38E0 78F0 7070 F078 E038 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 15 0 BBX 15 3 0 -3 BITMAP FFFE FFFE FFFE ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 15 0 BBX 4 8 5 11 BITMAP 70 F0 E0 E0 F0 F0 F0 F0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 1 0 BITMAP 1FC0 7FE0 7FF0 41F0 00F0 1FF0 7FF0 FFF0 F0F0 F1F0 FFF0 7FF8 3E78 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 15 0 BBX 13 19 1 0 BITMAP F000 F000 F000 F000 F000 F000 F3C0 F7F0 FFF0 FFF8 F8F8 F078 F078 F078 F078 F8F0 FFF0 FFE0 E7C0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 1 0 BITMAP 0FF8 3FF8 7FF8 7C18 F800 F000 F000 F000 F800 7C08 7FF8 3FF8 0FF8 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 15 0 BBX 13 19 1 0 BITMAP 0078 0078 0078 0078 0078 0078 1F78 3FF8 7FF8 78F8 F078 F078 F078 F078 F8F8 FFF8 7FF8 7F78 1E78 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 1 0 BITMAP 0FC0 3FE0 7FF0 7870 F078 FFF8 FFF8 FFF8 F000 7808 7FF8 3FF8 0FE0 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 15 0 BBX 13 19 2 0 BITMAP 03F0 0FF8 1FF8 1E08 1E00 1E00 FFF0 FFF0 FFF0 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 -5 BITMAP 1F38 3FB8 7FF8 78F8 F078 F078 F078 F078 F8F8 FFF8 7FF8 7F78 1E78 0078 20F0 3FF0 7FE0 1FC0 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 15 0 BBX 12 19 2 0 BITMAP F000 F000 F000 F000 F000 F000 F3C0 F7E0 FFF0 FFF0 F8F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 15 0 BBX 9 19 2 0 BITMAP 0780 0780 0780 0780 0000 0000 FF80 FF80 FF80 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 15 0 BBX 10 24 1 -5 BITMAP 03C0 03C0 03C0 03C0 0000 0000 7FC0 7FC0 7FC0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 87C0 FF80 FF80 7F00 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 15 0 BBX 13 19 2 0 BITMAP F000 F000 F000 F000 F000 F000 F0F0 F1E0 F1C0 F380 F780 FF00 FF80 F7C0 F7C0 F3E0 F1F0 F1F0 F0F8 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 15 0 BBX 9 19 1 0 BITMAP FF80 FF80 FF80 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 15 0 BBX 14 13 0 0 BITMAP F338 F7BC FFFC F7BC F7BC F7BC F7BC F7BC F7BC F7BC F7BC F7BC F7BC ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 15 0 BBX 12 13 2 0 BITMAP F3C0 F7E0 FFF0 FFF0 F8F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 15 0 BBX 14 13 0 0 BITMAP 0FC0 3FF0 7FF8 7878 F03C F03C F03C F03C F03C 7878 7FF8 3FF0 0FC0 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 -5 BITMAP F3C0 F7F0 FFF0 FFF8 F8F8 F078 F078 F078 F078 F8F0 FFF0 FFE0 F7C0 F000 F000 F000 F000 F000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 -5 BITMAP 1F38 3FF8 7FF8 78F8 F078 F078 F078 F078 F8F8 FFF8 7FF8 7F78 1E78 0078 0078 0078 0078 0078 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 15 0 BBX 11 13 3 0 BITMAP F3E0 F7E0 FFE0 FFE0 FCE0 F800 F000 F000 F000 F000 F000 F000 F000 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 15 0 BBX 12 13 2 0 BITMAP 1FC0 7FE0 FFE0 F020 FE00 FFC0 7FE0 1FF0 03F0 C1F0 FFF0 FFE0 7F80 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 2 0 BITMAP 0E00 1E00 1E00 1E00 FFF0 FFF0 FFF0 1E00 1E00 1E00 1E00 1E00 1E00 1E10 1FF0 0FF0 07E0 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 15 0 BBX 12 13 1 0 BITMAP F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F1F0 FFF0 FFF0 7EF0 3CF0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 15 0 BBX 14 13 1 0 BITMAP F01C F83C 7838 7838 3C70 3C70 3EF0 1EE0 1EE0 0FC0 0FC0 0FC0 0780 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 15 0 BBX 15 13 0 0 BITMAP F00E F3CE F3CE 7BCC 7FCC 7FEC 7FFC 7FFC 7EFC 3E78 3E78 3C78 3C38 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 15 0 BBX 14 13 1 0 BITMAP F83C 7C78 3EF0 1FE0 1FC0 0FC0 0FC0 0FC0 1FE0 3DF0 79F0 70F8 F07C ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 1 -5 BITMAP F01C F83C 7838 7C78 3C70 3E70 1EE0 1FE0 0FC0 0FC0 07C0 0780 0780 0700 0F00 7E00 7E00 7800 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 15 0 BBX 12 13 2 0 BITMAP FFF0 FFF0 FFF0 03F0 07E0 0FC0 1F80 3F00 7E00 FC00 FFF0 FFF0 FFF0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 15 0 BBX 11 23 2 -4 BITMAP 07E0 1FE0 1FE0 1E00 1E00 0E00 0F00 0F00 0F00 0F00 FE00 F800 FE00 0F00 0F00 0F00 0F00 1E00 1E00 1E00 1FE0 1FE0 07E0 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 15 0 BBX 3 23 6 -4 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 15 0 BBX 11 23 2 -4 BITMAP FC00 FF00 FF00 0F00 0F00 0F00 1E00 1E00 1E00 1E00 0FE0 03E0 0FE0 1E00 1E00 1E00 1E00 0E00 0F00 0F00 FF00 FF00 FC00 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 15 0 BBX 13 5 1 4 BITMAP 3C38 7F38 FFF8 E7F0 E1E0 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 15 0 BBX 4 18 5 -5 BITMAP F0 F0 F0 F0 00 70 70 70 70 70 F0 F0 F0 F0 F0 F0 F0 F0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 15 0 BBX 11 18 2 0 BITMAP 0700 0700 0FE0 3FE0 7FE0 7800 F000 F000 F000 F000 F800 7C00 7FE0 3FE0 1FE0 0700 0700 0700 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 15 0 BBX 11 18 2 0 BITMAP 0FE0 1FE0 3FE0 3C00 3C00 3C00 3C00 FF80 FF80 FF80 3C00 3C00 3C00 3800 3000 FFE0 FFE0 FFE0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 15 0 BBX 13 14 1 2 BITMAP 6030 FFF8 FFF0 7FE0 78E0 7070 7070 7070 7070 78E0 7FF0 FFF0 FFF8 6010 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 15 0 BBX 16 18 0 0 BITMAP F80F 7C1E 3E3C 1F78 0FF0 0FF0 07E0 1FF8 1FF8 1FF8 03C0 1FF8 1FF8 1FF8 03C0 03C0 03C0 03C0 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 15 0 BBX 3 23 6 -4 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 00 00 00 00 00 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 15 0 BBX 10 23 2 -5 BITMAP 1F80 7F80 FF80 F080 F000 F000 7C00 3F00 7F80 F7C0 E3C0 E1C0 F1C0 FFC0 7F80 3F00 1F80 07C0 03C0 87C0 FFC0 FF80 FE00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 15 0 BBX 7 3 4 15 BITMAP EE EE EE ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 0 0 BITMAP 0FC0 1FE0 3FF0 7878 73B8 E79C EE9C EE1C EE1C EE1C EE1C EE9C E79C 73BC 7878 3FF0 1FE0 0FC0 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 15 0 BBX 11 10 2 8 BITMAP 7F00 FFC0 FFC0 C1C0 3FC0 FFC0 E1C0 FFE0 FFE0 7CE0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 15 0 BBX 14 11 1 1 BITMAP 0408 0F1C 1E38 3C78 78F0 FBE0 79F0 3CF0 1E78 0E3C 0418 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 15 0 BBX 13 6 1 2 BITMAP FFF8 FFF8 FFF8 0038 0038 0038 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 15 0 BBX 10 3 2 6 BITMAP FFC0 FFC0 FFC0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 1 5 BITMAP 0F80 3FE0 7FF0 78F0 FFF8 EFF8 EFF8 EFF8 FFF8 7FF0 7FF0 3FE0 0F80 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 15 0 BBX 7 3 4 15 BITMAP FE FE FE ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 15 0 BBX 5 4 6 14 BITMAP 30 F8 78 30 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 1 0 BITMAP 0700 0700 0700 FFF8 FFF8 FFF8 0700 0700 0000 0000 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 15 0 BBX 5 9 -3 9 BITMAP F0 88 08 08 10 20 40 C0 F8 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 15 0 BBX 4 9 -3 9 BITMAP E0 10 10 30 60 30 10 10 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 15 0 BBX 6 4 4 15 BITMAP 3C 78 70 E0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 1 -4 BITMAP F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F9F0 FFF0 FFF0 FFF0 FEF0 F000 F000 F000 F000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 15 0 BBX 11 22 1 -4 BITMAP 3FE0 7FE0 FFE0 FFE0 FFE0 FFE0 7FE0 7FE0 1FE0 07E0 07E0 07E0 07E0 07E0 07E0 07E0 07E0 07E0 07E0 07E0 07E0 07E0 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 15 0 BBX 3 4 6 4 BITMAP E0 E0 E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 15 0 BBX 5 5 6 -5 BITMAP 60 F8 18 F8 F0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 15 0 BBX 5 9 -3 9 BITMAP E0 20 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 15 0 BBX 11 10 2 8 BITMAP 1F00 7FC0 7FC0 F1E0 E0E0 E0E0 F1E0 7FC0 7FC0 1F00 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 15 0 BBX 14 11 0 1 BITMAP 6080 F1C0 79E0 3CF0 3E78 1F7C 3E78 7CF0 79E0 F3C0 6080 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 15 0 BBX 17 18 3 0 BITMAP 700780 100F00 101E00 103C00 103800 107800 10F000 10E000 7DE000 03C200 038600 078E00 0F0A00 0E1200 1C1F00 3C0200 780200 F00200 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 15 0 BBX 17 18 3 0 BITMAP 700780 100F00 101E00 103C00 103800 107800 10F000 10E000 7DE000 03DE00 039100 078100 0F0100 0E0200 1C0400 3C0800 781800 F01F00 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 15 0 BBX 17 18 3 0 BITMAP 700780 080F00 081E00 183C00 303800 187800 08F000 08E000 71E000 03C200 038600 078E00 0F0A00 0E1200 1C1F00 3C0200 780200 F00200 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 1 -5 BITMAP 03C0 03C0 03C0 03C0 0000 03C0 03C0 07C0 0F80 3F00 7C00 F800 F030 F030 F830 FFF0 7FF0 1FC0 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 15 0 BBX 15 23 0 0 BITMAP 0780 03C0 01C0 00E0 0000 03C0 07C0 07E0 07E0 0FE0 0FF0 0EF0 1CF0 1CF0 1C78 3878 3FF8 3FFC 7FFC 703C 703C E01E E01E ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 15 0 BBX 15 23 0 0 BITMAP 03C0 0780 0700 0E00 0000 03C0 07C0 07E0 07E0 0FE0 0FF0 0EF0 1CF0 1CF0 1C78 3878 3FF8 3FFC 7FFC 703C 703C E01E E01E ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 15 0 BBX 15 23 0 0 BITMAP 0780 0FC0 0FC0 1CE0 0000 03C0 07C0 07E0 07E0 0FE0 0FF0 0EF0 1CF0 1CF0 1C78 3878 3FF8 3FFC 7FFC 703C 703C E01E E01E ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 15 0 BBX 15 23 0 0 BITMAP 0730 0FF0 0FF0 0CE0 0000 03C0 07C0 07E0 07E0 0FE0 0FF0 0EF0 1CF0 1CF0 1C78 3878 3FF8 3FFC 7FFC 703C 703C E01E E01E ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 15 0 BBX 15 22 0 0 BITMAP 0EE0 0EE0 0EE0 0000 03C0 07C0 07E0 07E0 0FE0 0FF0 0EF0 1CF0 1CF0 1C78 3878 3FF8 3FFC 7FFC 703C 703C E01E E01E ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 15 0 BBX 15 23 0 0 BITMAP 0180 0240 0240 0180 0000 03C0 07C0 07E0 07E0 0FE0 0FF0 0EF0 1CF0 1CF0 1C78 3878 3FF8 3FFC 7FFC 703C 703C E01E E01E ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 15 0 BBX 16 18 1 0 BITMAP 01FF 01FF 03FF 03F0 03F0 07F0 07F0 0FFE 0EFE 0EFE 1CF0 1FF0 3FF0 3FF0 38F0 78FF 70FF F0FF ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 15 0 BBX 14 23 0 -5 BITMAP 03FC 1FFC 3FFC 7E0C 7C00 7800 F000 F000 F000 F000 F000 F000 7800 7C00 7E04 3FFC 1FFC 03F0 0300 07C0 00C0 07C0 0780 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 15 0 BBX 12 23 2 0 BITMAP 1E00 0F00 0700 0380 0000 FFE0 FFE0 FFE0 F000 F000 F000 F000 FFC0 FFC0 FFC0 F000 F000 F000 F000 F000 FFF0 FFF0 FFF0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 15 0 BBX 12 23 2 0 BITMAP 0780 0F00 0E00 1C00 0000 FFE0 FFE0 FFE0 F000 F000 F000 F000 FFC0 FFC0 FFC0 F000 F000 F000 F000 F000 FFF0 FFF0 FFF0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 0 0 BBX 0 0 0 0 BITMAP ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 15 0 BBX 12 22 2 0 BITMAP 3B80 3B80 3B80 0000 FFE0 FFE0 FFE0 F000 F000 F000 F000 FFC0 FFC0 FFC0 F000 F000 F000 F000 F000 FFF0 FFF0 FFF0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 15 0 BBX 12 23 1 0 BITMAP 1E00 0F00 0700 0380 0000 FFF0 FFF0 FFF0 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 FFF0 FFF0 FFF0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 15 0 BBX 12 23 1 0 BITMAP 0780 0F00 0E00 1C00 0000 FFF0 FFF0 FFF0 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 FFF0 FFF0 FFF0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 15 0 BBX 12 23 1 0 BITMAP 0F00 1F80 1F80 39C0 0000 FFF0 FFF0 FFF0 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 FFF0 FFF0 FFF0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 15 0 BBX 12 22 1 0 BITMAP 3B80 3B80 3B80 0000 FFF0 FFF0 FFF0 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 FFF0 FFF0 FFF0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 0 0 BITMAP 7FC0 7FF0 7FF8 78F8 787C 783C 783C FE3C FE3C FE3C 783C 783C 783C 7878 78F8 7FF0 7FE0 7F80 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 15 0 BBX 12 23 1 0 BITMAP 1CC0 3FC0 3FC0 3380 0000 F070 F870 F870 FC70 FC70 FE70 FE70 FF70 EF70 EFF0 E7F0 E7F0 E3F0 E3F0 E1F0 E1F0 E1F0 E0F0 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 15 0 BBX 14 23 1 0 BITMAP 0F00 0780 0380 01C0 0000 0FC0 1FE0 3FF0 7878 7878 F03C F03C F03C F03C F03C F03C F03C F03C 7878 7878 3FF0 1FE0 0FC0 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 15 0 BBX 14 23 1 0 BITMAP 03C0 0780 0700 0E00 0000 0FC0 1FE0 3FF0 7878 7878 F03C F03C F03C F03C F03C F03C F03C F03C 7878 7878 3FF0 1FE0 0FC0 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 15 0 BBX 14 23 1 0 BITMAP 0780 0FC0 0FC0 1CE0 0000 0FC0 1FE0 3FF0 7878 7878 F03C F03C F03C F03C F03C F03C F03C F03C 7878 7878 3FF0 1FE0 0FC0 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 15 0 BBX 14 23 1 0 BITMAP 0E60 1FE0 1FE0 19C0 0000 0FC0 1FE0 3FF0 7878 7878 F03C F03C F03C F03C F03C F03C F03C F03C 7878 7878 3FF0 1FE0 0FC0 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 15 0 BBX 14 22 1 0 BITMAP 1DC0 1DC0 1DC0 0000 0FC0 1FE0 3FF0 7878 7878 F03C F03C F03C F03C F03C F03C F03C F03C 7878 7878 3FF0 1FE0 0FC0 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 1 0 BITMAP 6030 F078 F8F8 7DF0 3FE0 1FC0 0F80 1FC0 3FE0 7DF0 F8F8 F078 6030 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 1 0 BITMAP 0FDC 1FF8 3FF0 78F8 78F8 F1FC F1FC F3FC F7BC F73C FF3C FE3C FC3C 7C78 7C78 3FF0 7FE0 EFC0 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 15 0 BBX 12 23 1 0 BITMAP 1E00 0F00 0700 0380 0000 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F9F0 7FE0 7FE0 1F80 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 15 0 BBX 12 23 1 0 BITMAP 0780 0F00 0E00 1C00 0000 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F9F0 7FE0 7FE0 1F80 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 15 0 BBX 12 23 1 0 BITMAP 0F00 1F80 1F80 39C0 0000 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F9F0 7FE0 7FE0 1F80 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 15 0 BBX 12 22 1 0 BITMAP 3B80 3B80 3B80 0000 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F9F0 7FE0 7FE0 1F80 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 15 0 BBX 16 23 0 0 BITMAP 01E0 03C0 0380 0700 0000 F80F 780E 7C1E 3C1C 3E3C 1F38 0F70 0FF0 07E0 07E0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 2 0 BITMAP F000 F000 F000 FFC0 FFF0 FFF8 F0F8 F078 F078 F078 F0F8 FFF0 FFE0 FF80 F000 F000 F000 F000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 15 0 BBX 13 19 1 0 BITMAP 1F80 7FC0 7FE0 F1E0 F1E0 F1C0 F380 F380 F380 F3C0 F3E0 F1F0 F0F8 F0F8 F078 F478 F7F8 F7F0 F3E0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 1E00 0F00 0700 0380 0000 1FC0 7FE0 7FF0 41F0 00F0 1FF0 7FF0 FFF0 F0F0 F1F0 FFF0 7FF8 3E78 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 0780 0F00 0E00 1C00 0000 1FC0 7FE0 7FF0 41F0 00F0 1FF0 7FF0 FFF0 F0F0 F1F0 FFF0 7FF8 3E78 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 0F00 1F80 1F80 39C0 0000 1FC0 7FE0 7FF0 41F0 00F0 1FF0 7FF0 FFF0 F0F0 F1F0 FFF0 7FF8 3E78 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 1CC0 3FC0 3FC0 3380 0000 1FC0 7FE0 7FF0 41F0 00F0 1FF0 7FF0 FFF0 F0F0 F1F0 FFF0 7FF8 3E78 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 1 0 BITMAP 1DC0 1DC0 1DC0 0000 1FC0 7FE0 7FF0 41F0 00F0 1FF0 7FF0 FFF0 F0F0 F1F0 FFF0 7FF8 3E78 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 0600 0900 0900 0600 0000 1FC0 7FE0 7FF0 41F0 00F0 1FF0 7FF0 FFF0 F0F0 F1F0 FFF0 7FF8 3E78 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 15 0 BBX 14 13 0 0 BITMAP 3E70 7FF8 7FF8 43BC 03BC 1FFC 7FFC FFFC F380 F384 FFFC 7DFC 38F8 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 -5 BITMAP 0FF8 3FF8 7FF8 7C18 F800 F000 F000 F000 F800 7C08 7FF8 3FF8 0FF8 0600 0F80 0180 0F80 0F00 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 1E00 0F00 0700 0380 0000 0FC0 3FE0 7FF0 7870 F078 FFF8 FFF8 FFF8 F000 7808 7FF8 3FF8 0FE0 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 0780 0F00 0E00 1C00 0000 0FC0 3FE0 7FF0 7870 F078 FFF8 FFF8 FFF8 F000 7808 7FF8 3FF8 0FE0 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 0F00 1F80 1F80 39C0 0000 0FC0 3FE0 7FF0 7870 F078 FFF8 FFF8 FFF8 F000 7808 7FF8 3FF8 0FE0 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 1 0 BITMAP 1DC0 1DC0 1DC0 0000 0FC0 3FE0 7FF0 7870 F078 FFF8 FFF8 FFF8 F000 7808 7FF8 3FF8 0FE0 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 15 0 BBX 9 18 2 0 BITMAP 3C00 1E00 0E00 0700 0000 FF80 FF80 FF80 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 15 0 BBX 9 18 2 0 BITMAP 0F00 1E00 1C00 3800 0000 FF80 FF80 FF80 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 15 0 BBX 9 18 2 0 BITMAP 1E00 3F00 3F00 7380 0000 FF80 FF80 FF80 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 15 0 BBX 9 17 2 0 BITMAP 3B80 3B80 3B80 0000 FF80 FF80 FF80 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 15 0 BBX 14 19 0 0 BITMAP FC60 FFE0 FFC0 0FC0 0DE0 09F0 0FF8 3FF8 7FFC 787C F03C F03C F03C F03C F07C 7878 7FF0 3FE0 0FC0 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 2 0 BITMAP 1CC0 3FC0 3FC0 3380 0000 F3C0 F7E0 FFF0 FFF0 F8F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 0 0 BITMAP 0F00 0780 0380 01C0 0000 0FC0 3FF0 7FF8 7878 F03C F03C F03C F03C F03C 7878 7FF8 3FF0 0FC0 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 0 0 BITMAP 03C0 0780 0700 0E00 0000 0FC0 3FF0 7FF8 7878 F03C F03C F03C F03C F03C 7878 7FF8 3FF0 0FC0 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 0 0 BITMAP 0780 0FC0 0FC0 1CE0 0000 0FC0 3FF0 7FF8 7878 F03C F03C F03C F03C F03C 7878 7FF8 3FF0 0FC0 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 0 0 BITMAP 0E60 1FE0 1FE0 19C0 0000 0FC0 3FF0 7FF8 7878 F03C F03C F03C F03C F03C 7878 7FF8 3FF0 0FC0 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 15 0 BBX 14 17 0 0 BITMAP 1DC0 1DC0 1DC0 0000 0FC0 3FF0 7FF8 7878 F03C F03C F03C F03C F03C 7878 7FF8 3FF0 0FC0 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 15 0 BBX 14 13 0 0 BITMAP 0780 0780 0780 0780 0000 FFFC FFFC FFFC 0000 0780 0780 0780 0780 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 15 0 BBX 14 13 0 0 BITMAP 0FFC 3FF8 7FF8 78F8 F1FC F3FC F7BC FF3C FE3C 7C78 7FF8 7FF0 FFC0 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 1 0 BITMAP 1E00 0F00 0700 0380 0000 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F1F0 FFF0 FFF0 7EF0 3CF0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 1 0 BITMAP 0780 0F00 0E00 1C00 0000 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F1F0 FFF0 FFF0 7EF0 3CF0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 1 0 BITMAP 0F00 1F80 1F80 39C0 0000 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F1F0 FFF0 FFF0 7EF0 3CF0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 15 0 BBX 12 17 1 0 BITMAP 1DC0 1DC0 1DC0 0000 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F1F0 FFF0 FFF0 7EF0 3CF0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 15 0 BBX 14 23 1 -5 BITMAP 03C0 0780 0700 0E00 0000 F01C F83C 7838 7C78 3C70 3E70 1EE0 1FE0 0FC0 0FC0 07C0 0780 0780 0700 0F00 7E00 7E00 7800 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 15 0 BBX 13 22 1 -5 BITMAP F000 F000 F000 F000 F3C0 F7F0 FFF0 FFF8 F8F8 F078 F078 F078 F078 F8F0 FFF0 FFE0 F7C0 F000 F000 F000 F000 F000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 15 0 BBX 14 22 1 -5 BITMAP 1DC0 1DC0 1DC0 0000 F01C F83C 7838 7C78 3C70 3E70 1EE0 1FE0 0FC0 0FC0 07C0 0780 0780 0700 0F00 7E00 7E00 7800 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 13 19 1 0 BITMAP 0FF8 1FF8 3FF8 3C78 3C78 3C78 FF78 FF78 FF78 3C78 3C78 3C78 3C78 3C78 3C78 3C78 3C78 3C78 3C78 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 12 3 1 6 BITMAP FFF0 FFF0 FFF0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 12 22 1 -4 BITMAP 0F00 0F00 0F00 0F00 0F00 0F00 FFF0 FFF0 FFF0 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 13 23 1 0 BITMAP 1CE0 0FC0 0FC0 0780 0000 7FF8 7FF8 7FF8 00F8 01F0 03E0 03E0 07C0 0F80 0F80 1F00 3E00 3E00 7C00 F800 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 14 13 1 0 BITMAP 1C70 3EF8 7FFC F79C F79C F7FC F7FC F7FC F780 F784 7FFC 7EFC 1E78 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 16 22 0 0 BITMAP 0EE0 0EE0 0EE0 0000 F80F 780E 7C1E 3C1C 3E3C 1F38 0F70 0FF0 07E0 07E0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 9 13 2 0 BITMAP FF80 FF80 FF80 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 12 19 1 0 BITMAP FF80 FF80 FF80 0780 0780 0780 0790 07F0 07F0 0FC0 3F80 3F80 2780 0780 0780 0780 0780 0780 0780 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 0 0 BITMAP 1E00 1E00 1E00 1E00 1E00 1E40 1FC0 1FC0 3F00 FE00 FE00 9E00 1E00 1E00 1E00 1FFE 1FFE 1FFE ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 12 22 1 -4 BITMAP 0F00 0F00 0F00 0F00 0F00 0F00 FFF0 FFF0 FFF0 0F00 0F00 0F00 0F00 0F00 FFF0 FFF0 FFF0 0F00 0F00 0F00 0F00 0F00 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 13 19 0 0 BITMAP 0F38 1F38 3F38 3C38 3C00 3C00 FFF8 FFF8 FFF8 3C78 3C78 3C78 3C78 3C78 3C78 3C78 3C78 3C78 3C78 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 7 11 4 1 BITMAP 40 E0 70 78 3C 1E 3C 78 70 E0 40 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 1 0 BITMAP 1FFC 3FFC 7FFC 79C0 71C0 F1C0 F1C0 F1FC F1FC F1FC F1C0 F1C0 F1C0 71C0 79C0 7FFC 3FFC 1FFC ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 14 3 0 6 BITMAP FFFC FFFC FFFC ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 4 3 15 BITMAP E7 7E 7E 3C ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 4 5 5 -5 BITMAP 70 40 C0 F0 F0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 4 5 15 BITMAP 37 66 6C C8 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 7 11 4 1 BITMAP 04 0E 1C 3C 78 F0 78 3C 1C 0E 04 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 3 3 6 15 BITMAP E0 E0 E0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 4 4 14 BITMAP C3 FF 7E 3C ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 10 10 2 1 BITMAP FFC0 FFC0 FFC0 FFC0 FFC0 FFC0 FFC0 FFC0 FFC0 FFC0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 4 4 14 BITMAP 73 FF FF CE ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 4 3 15 BITMAP 3C 7E 7E E7 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 10 7 2 12 BITMAP 71C0 F3C0 E380 F3C0 F3C0 F3C0 F3C0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 4 8 5 11 BITMAP F0 F0 F0 F0 70 70 70 70 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 2 0 BITMAP 39C0 1F80 1F80 0F00 0000 1FC0 7FE0 FFE0 F020 FE00 FFC0 7FE0 1FF0 03F0 C1F0 FFF0 FFE0 7F80 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 4 4 6 15 BITMAP 60 90 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 4 8 5 -4 BITMAP F0 F0 F0 F0 70 70 F0 E0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 11 22 2 -4 BITMAP 01E0 07E0 07E0 0F00 0E00 1E00 1E00 1E00 7F80 7F80 7F80 3C00 3C00 3C00 7C00 7800 7800 7800 7800 F000 F000 F000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 16 9 0 9 BITMAP FFC7 FFC7 FFEF 39EF 39EF 39F7 39B7 39B7 3987 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 17 18 1 0 BITMAP 000780 000F00 001E00 003C00 003800 007800 00F000 00E000 01E000 03C000 038000 078000 0F0000 0E0000 1C0000 3C0000 780000 F00000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 6 4 5 15 BITMAP F0 78 38 1C ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 0 0 BITMAP 7980 FD80 FF00 FF00 FE00 FE00 FE00 7C00 0C00 1800 1B3C 37FE 37FE 37FE 67FE 67FE C7FE C33C ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 13 3 1 0 BITMAP E738 E738 E738 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 10 7 2 12 BITMAP F3C0 F3C0 F3C0 F3C0 71C0 71C0 F3C0 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 13 23 1 0 BITMAP 39C0 1F80 1F80 0F00 0000 1FE0 7FF0 7FF0 F830 F000 F800 FE00 7F80 3FC0 0FF0 03F0 00F8 0078 0078 C0F8 FFF0 FFE0 7F80 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 10 8 2 -4 BITMAP F3C0 F3C0 F3C0 F3C0 71C0 71C0 F3C0 E380 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 2 0 BITMAP 39C0 1F80 1F80 0F00 0000 FFF0 FFF0 FFF0 03F0 07E0 0FC0 1F80 3F00 7E00 FC00 FFF0 FFF0 FFF0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lutBS19.bdf100644 1750 1750 112570 5413747541 15243 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaTypewriter-Bold-R-Normal-Sans-26-190-100-100-M-159-ISO8859-1 SIZE 19 100 100 FONTBOUNDINGBOX 21 29 -3 -5 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaTypewriter" WEIGHT_NAME "Bold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 26 POINT_SIZE 190 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "M" AVERAGE_WIDTH "159" CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." FONT_ASCENT 24 FONT_DESCENT 6 DEFAULT_CHAR 0 ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 16 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 16 0 BBX 4 19 6 0 BITMAP F0 F0 F0 F0 F0 F0 F0 F0 F0 70 70 70 70 00 00 00 F0 F0 F0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 16 0 BBX 11 8 2 12 BITMAP FBE0 FBE0 FBE0 FBE0 71C0 71C0 71C0 71C0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 0 BITMAP 07B8 0738 0778 0770 0E70 7FFC 7FFC 7FFC 1EE0 1CE0 1DE0 FFF8 FFF8 FFF8 39C0 3B80 7B80 7380 7780 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 16 0 BBX 12 24 2 -3 BITMAP 0700 0700 0FE0 3FE0 7FE0 F820 F000 F000 F800 7E00 7F00 1FC0 0FE0 03E0 01F0 00F0 00F0 C1F0 FFE0 FFE0 7FC0 0700 0700 0700 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 16 0 BBX 17 19 0 0 BITMAP 3C0F00 7E1E00 FF1C00 E73C00 E73800 E77800 E77000 FFE000 7FE000 3DC000 03DE00 03BF00 077F80 0F7380 0E7380 1E7380 1C7F80 3C3F00 781E00 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 0 0 BITMAP 0F80 1FC0 3FE0 3DE0 3DE0 3DE0 1FC0 1F80 1F1E 3F1E 7F9E F79E F7DC F3FC F3F8 F9F0 7FF0 3FF8 1FBE ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 16 0 BBX 4 9 6 11 BITMAP F0 F0 F0 F0 F0 70 70 E0 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 16 0 BBX 11 24 3 -4 BITMAP 00E0 03E0 0FE0 1F80 3E00 3C00 7800 7800 F800 F000 F000 F000 F000 F000 F000 F000 7800 7800 3C00 3E00 1F00 07E0 03E0 0060 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 16 0 BBX 11 24 1 -4 BITMAP C000 F800 FC00 1F00 0F80 0780 03C0 03C0 01E0 01E0 01E0 01E0 01E0 01E0 01E0 03E0 03C0 03C0 0780 0F80 3F00 FE00 F800 E000 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 16 0 BBX 12 11 2 8 BITMAP 0F00 0600 4620 6660 F9F0 F0F0 0900 1F80 79C0 39E0 1080 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 16 0 BBX 13 14 1 0 BITMAP 0700 0700 0700 0700 0700 FFF8 FFF8 FFF8 0700 0700 0700 0700 0700 0700 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 16 0 BBX 4 9 6 -4 BITMAP F0 F0 F0 F0 F0 70 70 E0 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 16 0 BBX 13 3 1 5 BITMAP FFF8 FFF8 FFF8 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 16 0 BBX 4 4 6 0 BITMAP F0 F0 F0 F0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 16 0 BBX 15 24 0 -4 BITMAP 001E 001C 003C 0038 0078 0070 00F0 00E0 00E0 01C0 01C0 0380 0380 0700 0700 0E00 0E00 1C00 1C00 3800 3800 7000 7000 E000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 0 BITMAP 0FC0 1FE0 3FF0 7878 7878 F03C F03C F03C F03C F03C F03C F03C F03C F03C 7878 7878 3FF0 1FE0 0FC0 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 2 0 BITMAP FF00 FF00 FF00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 FFF0 FFF0 FFF0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 16 0 BBX 11 19 2 0 BITMAP 3F00 7F80 7FC0 43E0 01E0 01E0 01E0 03E0 03C0 0780 0F00 1F00 3C00 7800 7800 F000 FFE0 FFE0 FFE0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 16 0 BBX 11 19 2 0 BITMAP 7F00 FFC0 FFC0 83E0 01E0 01E0 03C0 07C0 3E00 3F00 3FC0 07C0 01E0 01E0 01E0 83E0 FFC0 FF80 7E00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 0 BITMAP 03E0 03E0 07E0 0FE0 0FE0 1FE0 3DE0 39E0 79E0 F1E0 FFFC FFFC FFFC FFFC 01E0 01E0 01E0 01E0 01E0 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 16 0 BBX 10 19 3 0 BITMAP FFC0 FFC0 FFC0 E000 E000 E000 E000 F800 FF00 FF80 0F80 07C0 03C0 03C0 03C0 8780 FF80 FF00 7C00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 1 0 BITMAP 03F0 0FF0 1FF0 3E10 7800 7800 F000 F3C0 FFF0 FFF0 F8F8 F078 F078 F078 7078 78F0 3FF0 1FE0 0FC0 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 16 0 BBX 11 19 3 0 BITMAP FFE0 FFE0 FFE0 01E0 01E0 03C0 0380 0780 0F00 0F00 1E00 1E00 3C00 3C00 3800 7800 7800 7800 7800 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 1 0 BITMAP 0F80 3FE0 3FF0 78F0 78F0 7CF0 7FE0 3FC0 1F80 1FE0 3BF0 71F0 F0F8 F078 F078 F8F8 7FF0 3FE0 1F80 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 2 0 BITMAP 1F80 3FC0 7FE0 78F0 F070 F078 F078 F078 F8F8 7FF8 7FF8 1E78 0078 00F0 00F0 43E0 7FC0 7F80 7E00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 16 0 BBX 4 14 6 0 BITMAP F0 F0 F0 F0 00 00 00 00 00 00 F0 F0 F0 F0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 16 0 BBX 4 18 6 -4 BITMAP F0 F0 F0 F0 00 00 00 00 00 00 F0 F0 F0 F0 70 70 E0 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 16 0 BBX 13 14 1 0 BITMAP 0008 0038 00F8 03F8 0FE0 1F80 FE00 7E00 1F80 0FE0 03F8 00F8 0038 0008 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 16 0 BBX 13 10 1 2 BITMAP FFF8 FFF8 FFF8 0000 0000 0000 0000 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 16 0 BBX 13 14 1 0 BITMAP 8000 E000 F800 FE00 3F00 0FC0 03F0 03F8 0FC0 3F00 FE00 F800 E000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 2 0 BITMAP 3FC0 FFF0 FFF0 C0F8 C078 C078 00F8 01F0 07E0 0F80 1F00 3C00 3C00 3C00 0000 0000 3C00 3C00 3C00 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 0 BITMAP 07C0 0FF0 3FF8 3C78 7BB8 77F8 F7F8 EF38 EE38 EE78 EE78 EFFC EFFC F73C 7000 7840 3FC0 1FC0 0F80 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 0 0 BITMAP 07C0 07C0 07E0 07E0 0FE0 0FF0 0EF0 1EF0 1CF0 1CF8 3878 3FF8 3FF8 7FFC 703C 703C F03E E01E E01E ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 2 0 BITMAP FFC0 FFE0 FFF0 F0F0 F0F0 F0F0 F0F0 F1E0 FF80 FFC0 FFF0 F1F0 F078 F078 F078 F0F8 FFF0 FFF0 FFC0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 0 0 BITMAP 03FC 0FFE 1FFE 3E06 7C00 7800 F800 F000 F000 F000 F000 F000 F800 7800 7C00 3E06 1FFE 0FFE 03F8 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 0 BITMAP FFC0 FFF0 FFF8 F0F8 F078 F07C F03C F03C F03C F03C F03C F03C F03C F078 F078 F0F8 FFF0 FFE0 FF80 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 2 0 BITMAP FFF0 FFF0 FFF0 F000 F000 F000 F000 F000 FFE0 FFE0 FFE0 F000 F000 F000 F000 F000 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 2 0 BITMAP FFF8 FFF8 FFF8 F000 F000 F000 F000 F000 F000 FFF0 FFE0 FFE0 F000 F000 F000 F000 F000 F000 F000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 0 0 BITMAP 03FC 0FFE 1FFE 3E06 7C00 7800 F800 F000 F000 F01E F01E F01E F01E 781E 7C1E 3E1E 3FFE 0FFE 03F8 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 1 0 BITMAP F078 F078 F078 F078 F078 F078 F078 F078 FFF8 FFF8 FFF8 F078 F078 F078 F078 F078 F078 F078 F078 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 2 0 BITMAP FFF0 FFF0 FFF0 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 FFF0 FFF0 FFF0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 2 0 BITMAP 7FF0 7FF0 7FF0 00F0 00F0 00F0 00F0 00F0 00F0 00F0 00F0 00F0 00F0 00F0 00F0 81E0 FFE0 FFC0 FF00 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 2 0 BITMAP F03C F078 F0F0 F0E0 F1E0 F3C0 F780 F700 FF00 FF00 FF80 F7C0 F7C0 F3E0 F1E0 F1F0 F0F8 F078 F07C ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 2 0 BITMAP F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 0 BITMAP F87C F87C F8FC F8FC FCFC FCFC FCFC FDFC FDFC EFFC EFFC EFBC EFBC EFBC EFBC E7BC E7BC E73C E03C ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 1 0 BITMAP F038 F838 F838 FC38 FC38 FE38 FE38 FF38 EF38 EFB8 E7B8 E7F8 E3F8 E3F8 E1F8 E1F8 E0F8 E0F8 E078 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 0 0 BITMAP 07C0 1FF0 3FF8 7C7C 783C 701C F01E F01E F01E F01E F01E F01E F01E 701C 783C 7C7C 3FF8 1FF0 07C0 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 2 0 BITMAP FFC0 FFF0 FFF0 F0F8 F078 F078 F078 F078 F0F0 FFF0 FFE0 FF80 F000 F000 F000 F000 F000 F000 F000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 16 0 BBX 16 23 0 -4 BITMAP 07C0 1FF0 3FF8 7C7C 783C 701C F01E F01E F01E F01E F01E F01E F01E 701E 783C 7C7C 3FF8 1FF0 07E0 00FF 003E 001E 000C ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 2 0 BITMAP FF80 FFE0 FFF0 F1F0 F0F0 F0F0 F0F0 F1E0 F3E0 FFC0 FF80 FF80 F7C0 F3C0 F3E0 F1E0 F1F0 F0F0 F078 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 1 0 BITMAP 1FE0 7FF0 7FF0 F830 F000 F000 FC00 7F00 3F80 1FE0 07F0 01F8 00F8 0078 0078 C0F8 FFF0 FFE0 7F80 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 16 0 BBX 16 19 0 0 BITMAP FFFF FFFF FFFF 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 1 0 BITMAP F078 F078 F078 F078 F078 F078 F078 F078 F078 F078 F078 F078 F078 F078 F078 F8F8 7FF0 3FE0 1FC0 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 0 0 BITMAP F00E F00E 781C 781C 781C 7C3C 3C38 3C38 3C78 1E70 1E70 1E70 1FE0 0FE0 0FE0 0FC0 07C0 07C0 07C0 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 16 0 BBX 16 19 0 0 BITMAP F007 F3C7 F3C7 F3E6 7BE6 7BEE 7FEE 7FEE 7FEE 7FEE 7FFC 3EFC 3EFC 3EFC 3EFC 3E7C 3C78 3C78 3C78 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 0 0 BITMAP F81E 783C 7C38 3E78 3E70 1FF0 0FE0 0FE0 07C0 07C0 07C0 0FE0 0FF0 1CF0 3CF8 3878 787C 703C F03E ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 16 0 BBX 16 19 0 0 BITMAP F807 780E 7C1E 3C1C 3E3C 1E38 1F78 0FF0 07F0 07E0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 1 0 BITMAP 7FF8 7FF8 7FF8 00F8 01F0 01E0 03E0 07C0 07C0 0F80 1F00 1F00 3E00 3C00 7C00 F800 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 16 0 BBX 10 24 5 -4 BITMAP FFC0 FFC0 FFC0 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 F000 FFC0 FFC0 FFC0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 16 0 BBX 15 24 0 -4 BITMAP E000 7000 7000 3800 3800 1C00 1C00 0E00 0E00 0700 0700 0380 0380 01C0 01C0 00E0 00E0 0070 0070 0038 0038 001C 001C 000E ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 16 0 BBX 10 24 1 -4 BITMAP FFC0 FFC0 FFC0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 FFC0 FFC0 FFC0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 16 0 BBX 13 16 1 3 BITMAP 0200 0200 0700 0700 0700 0F80 0F80 1DC0 1DC0 3DE0 38E0 38E0 78F0 7070 F078 E038 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 16 0 BBX 16 3 0 -3 BITMAP FFFF FFFF FFFF ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 16 0 BBX 4 9 6 11 BITMAP 30 70 E0 E0 F0 F0 F0 F0 F0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 1 0 BITMAP 1FC0 7FF0 7FF8 60F8 0078 1FF8 7FF8 FFF8 F078 F078 F0F8 FFFC 7F7C 3E3C ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 16 0 BBX 13 20 2 0 BITMAP F000 F000 F000 F000 F000 F000 F3C0 F7E0 FFF0 FFF8 F8F8 F078 F078 F078 F078 F078 F8F0 FFF0 FFE0 E7C0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 1 0 BITMAP 07FC 1FFC 3FFC 7C0C F800 F000 F000 F000 F000 F800 7E04 3FFC 1FFC 07FC ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 16 0 BBX 13 20 1 0 BITMAP 0078 0078 0078 0078 0078 0078 1F78 3FF8 7FF8 78F8 F078 F078 F078 F078 F078 F8F8 FFF8 7FF8 3F78 1E78 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 1 0 BITMAP 07C0 1FF0 3FF8 7878 F03C FFFC FFFC FFFC F000 F800 7C0C 3FFC 1FFC 07F0 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 16 0 BBX 14 20 2 0 BITMAP 03F8 0FFC 1FFC 1E04 1E00 1E00 FFF8 FFF8 FFF8 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E00 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 1 -5 BITMAP 1F38 3FB8 7FF8 78F8 F078 F078 F078 F078 F078 F8F8 7FF8 7F78 3F78 1E78 0078 20F0 3FF0 7FE0 1F80 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 16 0 BBX 12 20 2 0 BITMAP F000 F000 F000 F000 F000 F000 F3C0 F7E0 FFF0 FFF0 F8F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 16 0 BBX 9 20 2 0 BITMAP 0780 0780 0780 0780 0000 0000 FF80 FF80 FF80 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 16 0 BBX 10 25 2 -5 BITMAP 03C0 03C0 03C0 03C0 0000 0000 7FC0 7FC0 7FC0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 87C0 FF80 FF80 7F00 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 16 0 BBX 13 20 2 0 BITMAP F000 F000 F000 F000 F000 F000 F0F0 F1E0 F1C0 F3C0 F780 F700 FF80 F780 F7C0 F3C0 F3E0 F1F0 F0F0 F0F8 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 16 0 BBX 9 20 1 0 BITMAP FF80 FF80 FF80 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 1 0 BITMAP F338 F7BC FFFC FFFC F7BC F7BC F7BC F7BC F7BC F7BC F7BC F7BC F7BC F7BC ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 16 0 BBX 12 14 2 0 BITMAP F3C0 F7E0 FFF0 FFF0 F8F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 1 0 BITMAP 0FC0 3FF0 7FF8 7878 F87C F03C F03C F03C F03C F87C 7878 7FF8 3FF0 0FC0 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 2 -5 BITMAP F3C0 F7E0 FFF0 FFF8 F8F8 F078 F078 F078 F078 F078 F8F0 FFF0 FFE0 F7C0 F000 F000 F000 F000 F000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 1 -5 BITMAP 1F38 3FF8 7FF8 78F8 F078 F078 F078 F078 F078 F8F8 FFF8 7FF8 3F78 1E78 0078 0078 0078 0078 0078 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 16 0 BBX 12 14 3 0 BITMAP F1F0 F7F0 FFF0 FFF0 FC70 F870 F000 F000 F000 F000 F000 F000 F000 F000 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 16 0 BBX 12 14 2 0 BITMAP 1FC0 7FE0 FFE0 F020 FC00 FF00 7FE0 3FF0 07F0 00F0 C1F0 FFF0 FFE0 7F80 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 16 0 BBX 12 18 2 0 BITMAP 0E00 1E00 1E00 1E00 FFF0 FFF0 FFF0 1E00 1E00 1E00 1E00 1E00 1E00 1E00 1E10 1FF0 0FF0 03E0 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 16 0 BBX 12 14 2 0 BITMAP F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F1F0 FFF0 FFF0 7EF0 3CF0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 16 0 BBX 15 14 0 0 BITMAP F00E F81E 781C 7C1C 3C38 3C38 3E78 1E70 1F70 0FE0 0FE0 0FE0 07C0 07C0 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 16 0 BBX 16 14 0 0 BITMAP F007 F1C7 F3C7 7BE6 7BEE 7FEE 7FFE 7FFE 7F7E 3E7C 3E7C 3E3C 3E3C 3C3C ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 1 0 BITMAP F83C 7C78 3EF0 3EE0 1FE0 0FC0 0F80 0FC0 1FE0 1FE0 3DF0 78F8 70F8 F07C ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 0 -5 BITMAP F80E 781E 7C1C 3C3C 3C38 1E78 1E70 0F70 0FE0 0FE0 07C0 07C0 03C0 0380 0780 0700 7F00 7E00 7C00 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 16 0 BBX 13 14 1 0 BITMAP FFF8 FFF8 FFF8 01F0 03E0 07E0 0FC0 1F80 3F00 7E00 FC00 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 16 0 BBX 12 24 2 -4 BITMAP 03F0 07F0 0FF0 0F00 0F00 0F00 0780 0780 0780 0780 0F00 FE00 FE00 FF00 0F80 0780 0780 0780 0F00 0F00 0F00 0FF0 0FF0 03F0 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 16 0 BBX 3 24 6 -4 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 16 0 BBX 12 24 1 -4 BITMAP FC00 FE00 FF00 0F00 0F00 0F00 1E00 1E00 1E00 1E00 0F00 07F0 07F0 0FF0 1F00 1E00 1E00 1E00 0E00 0F00 0F00 FF00 FF00 FC00 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 16 0 BBX 13 6 1 4 BITMAP 3C38 7E38 7F38 E7F0 E3F0 E1E0 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 16 0 BBX 4 19 6 -5 BITMAP F0 F0 F0 F0 00 00 70 70 70 70 F0 F0 F0 F0 F0 F0 F0 F0 F0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 2 0 BITMAP 0380 0380 0780 1FF0 3FF0 7FF0 7C00 F800 F000 F000 F000 F800 7C00 7FF0 3FF0 0FF0 0380 0380 0380 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 16 0 BBX 11 19 3 0 BITMAP 0FE0 1FE0 3FE0 3C20 3C00 3C00 3C00 3C00 FF80 FF80 FF80 3C00 3C00 3C00 3800 3000 FFE0 FFE0 FFE0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 16 0 BBX 14 15 1 2 BITMAP 6018 FFFC FFF8 7FF8 78F0 7078 7038 7038 7038 7078 7870 7FF8 FFFC FFF8 6018 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 16 0 BBX 16 19 0 0 BITMAP F80F 7C1E 3E1C 3F3C 1F78 0FF0 07E0 07E0 1FF8 1FF8 1FF8 03C0 1FF8 1FF8 1FF8 03C0 03C0 03C0 03C0 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 16 0 BBX 3 24 6 -4 BITMAP E0 E0 E0 E0 E0 E0 E0 E0 E0 00 00 00 00 00 00 E0 E0 E0 E0 E0 E0 E0 E0 E0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 16 0 BBX 11 24 2 -5 BITMAP 1F80 7FC0 FFC0 F040 F000 F000 7C00 3F00 7F80 77C0 E1E0 E0E0 F0E0 FCE0 7FC0 7F80 1F80 07C0 03E0 01E0 C3E0 FFC0 FFC0 FF00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 16 0 BBX 8 3 4 16 BITMAP E7 E7 E7 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 0 0 BITMAP 07C0 1FF0 3FF8 783C 701C E3CE E7CE EE4E EE0E EE0E EE0E EE4E E7CE F3DE 701C 783C 3FF8 1FF0 07C0 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 16 0 BBX 12 10 2 9 BITMAP 7F80 FFE0 FFE0 C0E0 3FE0 7FE0 E0E0 FFF0 FFF0 7CF0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 16 0 BBX 14 12 1 1 BITMAP 0408 0E1C 1F38 1C78 3CF0 7BE0 F9E0 7CF0 3C78 1E38 0E1C 0408 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 16 0 BBX 13 7 1 2 BITMAP FFF8 FFF8 FFF8 0038 0038 0038 0038 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 16 0 BBX 10 3 3 7 BITMAP FFC0 FFC0 FFC0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 16 0 BBX 13 14 1 5 BITMAP 0F80 3FC0 7FE0 78F0 FFF8 EFF8 EEF8 EFF8 EFB8 FFF8 7FF0 7FE0 3FC0 0F80 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 16 0 BBX 8 3 4 16 BITMAP FF FF FF ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 16 0 BBX 5 5 5 14 BITMAP 70 F8 D8 F8 70 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 16 0 BBX 13 14 1 0 BITMAP 0700 0700 0700 FFF8 FFF8 FFF8 0700 0700 0700 0000 0000 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 16 0 BBX 6 9 -3 10 BITMAP F8 8C 0C 0C 18 30 60 C0 FC ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 16 0 BBX 5 9 -3 10 BITMAP F0 18 18 30 70 38 18 18 F0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 16 0 BBX 6 4 5 16 BITMAP 3C 78 70 E0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 16 0 BBX 12 18 2 -4 BITMAP F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F9F0 FFF0 FFF0 FFF0 FEF0 F000 F000 F000 F000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 16 0 BBX 11 23 2 -4 BITMAP 3FE0 7FE0 FFE0 FFE0 FFE0 FFE0 FFE0 7FE0 3FE0 0FE0 07E0 07E0 07E0 07E0 07E0 07E0 07E0 07E0 07E0 07E0 07E0 07E0 07E0 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 16 0 BBX 3 4 6 4 BITMAP E0 E0 E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 16 0 BBX 5 6 6 -5 BITMAP 60 60 F8 18 F8 F0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 16 0 BBX 6 9 -3 10 BITMAP F0 30 30 30 30 30 30 30 FC ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 16 0 BBX 12 10 2 9 BITMAP 1F80 7FE0 7FE0 F0F0 E070 E070 F0F0 7FE0 7FE0 1F80 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 16 0 BBX 14 12 1 1 BITMAP 2080 E1C0 71E0 78F0 3CF8 1E7C 1F78 3CF0 78F0 71E0 E3C0 4080 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 16 0 BBX 16 19 2 0 BITMAP F00F 300E 301E 303C 3038 3078 30F0 30E0 FDE0 03C0 0786 070E 0F1E 1E16 1C26 3C7F 787F 7006 F006 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 16 0 BBX 16 19 2 0 BITMAP F00F 300E 301E 303C 3038 3078 30F0 30E0 FDE0 03C0 07BE 0723 0F03 1E03 1C06 3C0C 7818 7030 F03F ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 16 0 BBX 16 19 2 0 BITMAP F00F 180E 181E 303C 7038 3878 18F0 18E0 F1E0 03C0 0786 070E 0F1E 1E16 1C26 3C7F 787F 7006 F006 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 0 -5 BITMAP 01E0 01E0 01E0 01E0 0000 01E0 01E0 03E0 07C0 0F80 3F00 7C00 F800 F01C F01C F81C 7FFC 7FFC 0FF0 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 16 0 BBX 15 24 0 0 BITMAP 0780 03C0 01C0 00E0 0000 07C0 07C0 07E0 07E0 0FE0 0FF0 0EF0 1EF0 1CF0 1CF8 3878 3FF8 3FF8 7FFC 703C 703C F03E E01E E01E ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 16 0 BBX 15 24 0 0 BITMAP 01E0 03C0 0380 0700 0000 07C0 07C0 07E0 07E0 0FE0 0FF0 0EF0 1EF0 1CF0 1CF8 3878 3FF8 3FF8 7FFC 703C 703C F03E E01E E01E ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 16 0 BBX 15 24 0 0 BITMAP 0780 0FC0 0FC0 1CE0 0000 07C0 07C0 07E0 07E0 0FE0 0FF0 0EF0 1EF0 1CF0 1CF8 3878 3FF8 3FF8 7FFC 703C 703C F03E E01E E01E ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 16 0 BBX 15 24 0 0 BITMAP 0730 0FF0 0FF0 0CE0 0000 07C0 07C0 07E0 07E0 0FE0 0FF0 0EF0 1EF0 1CF0 1CF8 3878 3FF8 3FF8 7FFC 703C 703C F03E E01E E01E ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 16 0 BBX 15 23 0 0 BITMAP 1CE0 1CE0 1CE0 0000 07C0 07C0 07E0 07E0 0FE0 0FF0 0EF0 1EF0 1CF0 1CF8 3878 3FF8 3FF8 7FFC 703C 703C F03E E01E E01E ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 16 0 BBX 15 24 0 0 BITMAP 0180 0240 0240 0180 0000 07C0 07C0 07E0 07E0 0FE0 0FF0 0EF0 1EF0 1CF0 1CF8 3878 3FF8 3FF8 7FFC 703C 703C F03E E01E E01E ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 16 0 BBX 16 19 0 0 BITMAP 01FF 01FF 03FF 03F0 07F0 07F0 07F0 0FF0 0EFE 1EFE 1CFE 1CF0 3FF0 3FF0 7FF0 70F0 70FF F0FF E0FF ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 16 0 BBX 15 24 0 -5 BITMAP 03FC 0FFE 1FFE 3E06 7C00 7800 F800 F000 F000 F000 F000 F000 F800 7800 7C00 3E06 1FFE 0FFE 03F8 0180 03E0 0060 03E0 03C0 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 16 0 BBX 13 24 2 0 BITMAP 1E00 0F00 0700 0380 0000 FFF0 FFF0 FFF0 F000 F000 F000 F000 F000 FFE0 FFE0 FFE0 F000 F000 F000 F000 F000 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 16 0 BBX 13 24 2 0 BITMAP 0780 0F00 0E00 1C00 0000 FFF0 FFF0 FFF0 F000 F000 F000 F000 F000 FFE0 FFE0 FFE0 F000 F000 F000 F000 F000 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 0 0 BBX 0 0 0 0 BITMAP ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 16 0 BBX 13 23 2 0 BITMAP 39C0 39C0 39C0 0000 FFF0 FFF0 FFF0 F000 F000 F000 F000 F000 FFE0 FFE0 FFE0 F000 F000 F000 F000 F000 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 16 0 BBX 12 24 2 0 BITMAP 1E00 0F00 0700 0380 0000 FFF0 FFF0 FFF0 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 FFF0 FFF0 FFF0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 16 0 BBX 12 24 2 0 BITMAP 0780 0F00 0E00 1C00 0000 FFF0 FFF0 FFF0 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 FFF0 FFF0 FFF0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 16 0 BBX 12 24 2 0 BITMAP 0F00 1F80 1F80 39C0 0000 FFF0 FFF0 FFF0 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 FFF0 FFF0 FFF0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 16 0 BBX 12 23 2 0 BITMAP 39C0 39C0 39C0 0000 FFF0 FFF0 FFF0 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 FFF0 FFF0 FFF0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 0 0 BITMAP 7FE0 7FF8 7FFC 787C 783C 783E 781E FF1E FF1E FF1E 781E 781E 781E 783C 783C 787C 7FF8 7FF0 7FC0 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 16 0 BBX 13 24 1 0 BITMAP 0E60 1FE0 1FE0 19C0 0000 F038 F838 F838 FC38 FC38 FE38 FE38 FF38 EF38 EFB8 E7B8 E7F8 E3F8 E3F8 E1F8 E1F8 E0F8 E0F8 E078 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 16 0 BBX 15 24 0 0 BITMAP 0780 03C0 01C0 00E0 0000 07C0 1FF0 3FF8 7C7C 783C 701C F01E F01E F01E F01E F01E F01E F01E 701C 783C 7C7C 3FF8 1FF0 07C0 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 16 0 BBX 15 24 0 0 BITMAP 03C0 0780 0700 0E00 0000 07C0 1FF0 3FF8 7C7C 783C 701C F01E F01E F01E F01E F01E F01E F01E 701C 783C 7C7C 3FF8 1FF0 07C0 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 16 0 BBX 15 24 0 0 BITMAP 0780 0FC0 0FC0 1CE0 0000 07C0 1FF0 3FF8 7C7C 783C 701C F01E F01E F01E F01E F01E F01E F01E 701C 783C 7C7C 3FF8 1FF0 07C0 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 16 0 BBX 15 24 0 0 BITMAP 0E60 1FE0 1FE0 19C0 0000 07C0 1FF0 3FF8 7C7C 783C 701C F01E F01E F01E F01E F01E F01E F01E 701C 783C 7C7C 3FF8 1FF0 07C0 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 16 0 BBX 15 23 0 0 BITMAP 1CE0 1CE0 1CE0 0000 07C0 1FF0 3FF8 7C7C 783C 701C F01E F01E F01E F01E F01E F01E F01E 701C 783C 7C7C 3FF8 1FF0 07C0 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 1 0 BITMAP 2010 7038 F87C 7CF8 3FF0 1FE0 0FC0 0FC0 1FE0 3FF0 7CF8 F87C 7038 2010 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 0 0 BITMAP 07CE 1FFC 3FF8 7C7C 787C 70FE F0FE F1FE F3DE F39E F79E FF1E FE1E FC1C 7C3C 7C7C 3FF8 7FF0 E7C0 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 16 0 BBX 13 24 1 0 BITMAP 0F00 0780 0380 01C0 0000 F078 F078 F078 F078 F078 F078 F078 F078 F078 F078 F078 F078 F078 F078 F078 F8F8 7FF0 3FE0 1FC0 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 16 0 BBX 13 24 1 0 BITMAP 0780 0F00 0E00 1C00 0000 F078 F078 F078 F078 F078 F078 F078 F078 F078 F078 F078 F078 F078 F078 F078 F8F8 7FF0 3FE0 1FC0 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 16 0 BBX 13 24 1 0 BITMAP 0F00 1F80 1F80 39C0 0000 F078 F078 F078 F078 F078 F078 F078 F078 F078 F078 F078 F078 F078 F078 F078 F8F8 7FF0 3FE0 1FC0 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 16 0 BBX 13 23 1 0 BITMAP 39C0 39C0 39C0 0000 F078 F078 F078 F078 F078 F078 F078 F078 F078 F078 F078 F078 F078 F078 F078 F8F8 7FF0 3FE0 1FC0 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 16 0 BBX 16 24 0 0 BITMAP 01E0 03C0 0380 0700 0000 F807 780E 7C1E 3C1C 3E3C 1E38 1F78 0FF0 07F0 07E0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 2 0 BITMAP F000 F000 F000 FFC0 FFF0 FFF0 F0F8 F078 F078 F078 F078 F0F0 FFF0 FFE0 FF80 F000 F000 F000 F000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 16 0 BBX 14 20 1 0 BITMAP 1F80 7FC0 7FE0 F1E0 F1E0 F1C0 F1C0 F380 F380 F3C0 F3E0 F1F0 F0F8 F07C F03C F03C F23C F3FC F3F8 F3E0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 0 BITMAP 0F00 0780 0380 01C0 0000 1FC0 7FF0 7FF8 60F8 0078 1FF8 7FF8 FFF8 F078 F078 F0F8 FFFC 7F7C 3E3C ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 0 BITMAP 03C0 0780 0700 0E00 0000 1FC0 7FF0 7FF8 60F8 0078 1FF8 7FF8 FFF8 F078 F078 F0F8 FFFC 7F7C 3E3C ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 0 BITMAP 0780 0FC0 0FC0 1CE0 0000 1FC0 7FF0 7FF8 60F8 0078 1FF8 7FF8 FFF8 F078 F078 F0F8 FFFC 7F7C 3E3C ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 0 BITMAP 0E60 1FE0 1FE0 19C0 0000 1FC0 7FF0 7FF8 60F8 0078 1FF8 7FF8 FFF8 F078 F078 F0F8 FFFC 7F7C 3E3C ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 1 0 BITMAP 1CE0 1CE0 1CE0 0000 1FC0 7FF0 7FF8 60F8 0078 1FF8 7FF8 FFF8 F078 F078 F0F8 FFFC 7F7C 3E3C ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 0 BITMAP 0300 0480 0480 0300 0000 1FC0 7FF0 7FF8 60F8 0078 1FF8 7FF8 FFF8 F078 F078 F0F8 FFFC 7F7C 3E3C ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 1 0 BITMAP 3E70 7FF8 7FF8 43B8 03BC 03BC 1FFC 7FFC FFFC F380 F384 FFFC 7DFC 38F8 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 -5 BITMAP 07FC 1FFC 3FFC 7C0C F800 F000 F000 F000 F000 F800 7E04 3FFC 1FFC 07FC 0300 07C0 00C0 07C0 0780 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 0 BITMAP 0F00 0780 0380 01C0 0000 07C0 1FF0 3FF8 7878 F03C FFFC FFFC FFFC F000 F800 7C0C 3FFC 1FFC 07F0 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 0 BITMAP 03C0 0780 0700 0E00 0000 07C0 1FF0 3FF8 7878 F03C FFFC FFFC FFFC F000 F800 7C0C 3FFC 1FFC 07F0 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 0 BITMAP 0780 0FC0 0FC0 1CE0 0000 07C0 1FF0 3FF8 7878 F03C FFFC FFFC FFFC F000 F800 7C0C 3FFC 1FFC 07F0 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 1 0 BITMAP 1CE0 1CE0 1CE0 0000 07C0 1FF0 3FF8 7878 F03C FFFC FFFC FFFC F000 F800 7C0C 3FFC 1FFC 07F0 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 16 0 BBX 9 19 2 0 BITMAP 3C00 1E00 0E00 0700 0000 FF80 FF80 FF80 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 16 0 BBX 9 19 2 0 BITMAP 0F00 1E00 1C00 3800 0000 FF80 FF80 FF80 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 16 0 BBX 9 19 2 0 BITMAP 1E00 3F00 3F00 7380 0000 FF80 FF80 FF80 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 16 0 BBX 9 18 2 0 BITMAP 7380 7380 7380 0000 FF80 FF80 FF80 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 16 0 BBX 14 20 1 0 BITMAP FC60 FFE0 FFC0 0FC0 0DE0 09F0 0FF0 3FF8 7FF8 787C F87C F03C F03C F03C F03C F878 7878 3FF0 1FE0 0FC0 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 2 0 BITMAP 1CC0 3FC0 3FC0 3380 0000 F3C0 F7E0 FFF0 FFF0 F8F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 0 BITMAP 0F00 0780 0380 01C0 0000 0FC0 3FF0 7FF8 7878 F87C F03C F03C F03C F03C F87C 7878 7FF8 3FF0 0FC0 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 0 BITMAP 03C0 0780 0700 0E00 0000 0FC0 3FF0 7FF8 7878 F87C F03C F03C F03C F03C F87C 7878 7FF8 3FF0 0FC0 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 0 BITMAP 0780 0FC0 0FC0 1CE0 0000 0FC0 3FF0 7FF8 7878 F87C F03C F03C F03C F03C F87C 7878 7FF8 3FF0 0FC0 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 0 BITMAP 0E60 1FE0 1FE0 19C0 0000 0FC0 3FF0 7FF8 7878 F87C F03C F03C F03C F03C F87C 7878 7FF8 3FF0 0FC0 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 16 0 BBX 14 18 1 0 BITMAP 1CE0 1CE0 1CE0 0000 0FC0 3FF0 7FF8 7878 F87C F03C F03C F03C F03C F87C 7878 7FF8 3FF0 0FC0 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 1 0 BITMAP 0780 0780 0780 0780 0000 FFFC FFFC FFFC 0000 0000 0780 0780 0780 0780 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 1 0 BITMAP 0FFC 3FF8 7FF8 78F8 F9FC F3FC F7BC F7BC FF3C FE7C 7C78 7FF8 7FF0 FFC0 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 2 0 BITMAP 1E00 0F00 0700 0380 0000 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F1F0 FFF0 FFF0 7EF0 3CF0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 2 0 BITMAP 0780 0F00 0E00 1C00 0000 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F1F0 FFF0 FFF0 7EF0 3CF0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 2 0 BITMAP 0F00 1F80 1F80 39C0 0000 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F1F0 FFF0 FFF0 7EF0 3CF0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 16 0 BBX 12 18 2 0 BITMAP 39C0 39C0 39C0 0000 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F0F0 F1F0 FFF0 FFF0 7EF0 3CF0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 16 0 BBX 15 24 0 -5 BITMAP 03C0 0780 0700 0E00 0000 F80E 781E 7C1C 3C3C 3C38 1E78 1E70 0F70 0FE0 0FE0 07C0 07C0 03C0 0380 0780 0700 7F00 7E00 7C00 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 16 0 BBX 13 23 2 -5 BITMAP F000 F000 F000 F000 F3C0 F7E0 FFF0 FFF8 F8F8 F078 F078 F078 F078 F078 F8F0 FFF0 FFE0 F7C0 F000 F000 F000 F000 F000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 16 0 BBX 15 23 0 -5 BITMAP 1CE0 1CE0 1CE0 0000 F80E 781E 7C1C 3C3C 3C38 1E78 1E70 0F70 0FE0 0FE0 07C0 07C0 03C0 0380 0780 0700 7F00 7E00 7C00 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 13 20 1 0 BITMAP 0FF8 1FF8 3FF8 3C78 3C78 3C78 FF78 FF78 FF78 3C78 3C78 3C78 3C78 3C78 3C78 3C78 3C78 3C78 3C78 3C78 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 12 3 2 6 BITMAP FFF0 FFF0 FFF0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 12 23 2 -4 BITMAP 0F00 0F00 0F00 0F00 0F00 0F00 FFF0 FFF0 FFF0 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 0F00 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 13 24 1 0 BITMAP 1CE0 0FC0 0FC0 0780 0000 7FF8 7FF8 7FF8 00F8 01F0 01E0 03E0 07C0 07C0 0F80 1F00 1F00 3E00 3C00 7C00 F800 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 1 0 BITMAP 1C70 3EF8 7FF8 779C F79C F79C F7FC F7FC F7FC F780 7784 7FFC 3EFC 1E78 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 16 23 0 0 BITMAP 0E70 0E70 0E70 0000 F807 780E 7C1E 3C1C 3E3C 1E38 1F78 0FF0 07F0 07E0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 03C0 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 9 14 2 0 BITMAP FF80 FF80 FF80 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 0780 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 12 20 1 0 BITMAP FF80 FF80 FF80 0780 0780 0780 0790 07F0 07F0 07E0 1F80 3F80 3F80 2780 0780 0780 0780 0780 0780 0780 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 16 19 0 0 BITMAP 1E00 1E00 1E00 1E00 1E00 1E40 1FC0 1FC0 1F80 7E00 FE00 FE00 9E00 1E00 1E00 1E00 1FFF 1FFF 1FFF ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 12 23 2 -4 BITMAP 0F00 0F00 0F00 0F00 0F00 0F00 FFF0 FFF0 FFF0 0F00 0F00 0F00 0F00 0F00 FFF0 FFF0 FFF0 0F00 0F00 0F00 0F00 0F00 0F00 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 13 20 1 0 BITMAP 0F38 1F38 3F38 3C38 3C00 3C00 FFF8 FFF8 FFF8 3C78 3C78 3C78 3C78 3C78 3C78 3C78 3C78 3C78 3C78 3C78 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 8 12 4 1 BITMAP 20 F0 78 7C 3E 1F 1E 3C 78 70 E0 40 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 1 0 BITMAP 0FFE 3FFE 3FFE 78E0 78E0 F0E0 F0E0 F0E0 F0FE F0FE F0FE F0E0 F0E0 F0E0 78E0 78E0 3FFE 3FFE 0FFE ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 14 3 1 6 BITMAP FFFC FFFC FFFC ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 8 4 4 16 BITMAP E7 7E 7E 3C ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 5 5 5 -5 BITMAP 30 60 E0 E8 F8 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 9 4 5 16 BITMAP 3B80 7700 6600 CC00 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 8 12 4 1 BITMAP 02 07 0E 1E 3C 78 F8 7C 3E 1E 0F 04 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 3 3 6 16 BITMAP E0 E0 E0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 8 4 4 15 BITMAP C3 FF 7E 3C ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 10 10 3 1 BITMAP FFC0 FFC0 FFC0 FFC0 FFC0 FFC0 FFC0 FFC0 FFC0 FFC0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 8 4 4 15 BITMAP 73 FF FF CE ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 8 4 4 16 BITMAP 3C 7E 7E E7 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 11 8 2 12 BITMAP 70E0 F1E0 E380 E380 F3E0 F3E0 F3E0 F3E0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 4 9 6 11 BITMAP F0 F0 F0 F0 F0 70 70 70 70 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 2 0 BITMAP 39C0 1F80 1F80 0F00 0000 1FC0 7FE0 FFE0 F020 FC00 FF00 7FE0 3FF0 07F0 00F0 C1F0 FFF0 FFE0 7F80 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 4 4 6 16 BITMAP 60 90 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 4 9 6 -4 BITMAP F0 F0 F0 F0 F0 70 70 E0 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 12 23 2 -4 BITMAP 01F0 03F0 07F0 0F80 0F00 0F00 0E00 1E00 7F80 7F80 7F80 1E00 3C00 3C00 3C00 3C00 7800 7800 7800 7800 F800 F000 F000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 16 10 0 9 BITMAP FFC7 FFC7 FFEF 39EF 39EF 39FF 39B7 39B7 39B7 3987 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 16 19 0 0 BITMAP 000F 000E 001E 003C 0038 0078 00F0 00E0 01E0 03C0 0780 0700 0F00 1E00 1C00 3C00 7800 7000 F000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 6 4 5 16 BITMAP F0 78 38 1C ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 0 0 BITMAP 7980 FD80 FF00 FF00 FF00 FE00 FE00 7C00 0C00 1C00 1B3C 1FFE 37FE 37FE 77FE 67FE 67FE C7FE C33C ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 13 3 1 0 BITMAP E738 E738 E738 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 11 8 2 12 BITMAP F1E0 F1E0 F1E0 F1E0 70E0 70E0 F1E0 E1C0 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 13 24 1 0 BITMAP 39C0 1F80 1F80 0F00 0000 1FE0 7FF0 7FF0 F830 F000 F000 FC00 7F00 3F80 1FE0 07F0 01F8 00F8 0078 0078 C0F8 FFF0 FFE0 7F80 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 11 8 2 -4 BITMAP F1E0 F1E0 F1E0 F1E0 70E0 70E0 F1E0 E1C0 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 1 0 BITMAP 39C0 1F80 1F80 0F00 0000 FFF8 FFF8 FFF8 01F0 03E0 07E0 0FC0 1F80 3F00 7E00 FC00 FFF8 FFF8 FFF8 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lutBS24.bdf100644 1750 1750 142622 5413747542 15241 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaTypewriter-Bold-R-Normal-Sans-34-240-100-100-M-200-ISO8859-1 SIZE 24 100 100 FONTBOUNDINGBOX 27 38 -5 -7 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaTypewriter" WEIGHT_NAME "Bold" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 34 POINT_SIZE 240 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "M" AVERAGE_WIDTH 200 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 31 FONT_DESCENT 8 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 20 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 20 0 BBX 5 25 8 0 BITMAP F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 70 70 70 70 70 70 00 00 00 00 F8 F8 F8 F8 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 20 0 BBX 14 10 3 16 BITMAP F87C F87C F87C F87C F87C 7038 7038 7038 7038 7038 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 20 0 BBX 18 25 1 0 BITMAP 01E780 01C700 01C700 01C700 03CE00 038E00 038E00 3FFFC0 3FFFC0 7FFFC0 071C00 071C00 0F3800 0E3800 0E3800 FFFF80 FFFF00 FFFF00 1C7000 1C7000 1CE000 38E000 38E000 38E000 79C000 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 20 0 BBX 15 32 3 -4 BITMAP 0380 0380 0380 07F8 0FFC 3FFC 3E1C 7C04 7C00 7C00 7C00 7E00 3F80 3FC0 1FE0 0FF0 03F8 01FC 00FC 007E 003E 003E 003E 803E F07C FFFC FFF8 3FE0 0380 0380 0380 0380 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 20 0 BBX 21 25 0 0 BITMAP 1E01E0 3F01C0 7F83C0 F3C380 F3C700 F3C700 F3CE00 F3DE00 F3DC00 F3FC00 7FB800 3F7800 1E7000 00F3C0 00EFF0 01EFF0 01DE78 03DE78 039E78 071E78 071E78 0E1E78 1E0FF0 1C0FF0 3C03C0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 20 0 BBX 20 25 0 0 BITMAP 03E000 0FF800 0FF800 1F7C00 1F7C00 1F7C00 1F7C00 1F7C00 0FF800 0FF000 07E000 0FC1F0 3FE1F0 7FE1F0 7FF1F0 F9F9E0 F8F9E0 F8FFC0 F87FC0 FC7F80 FE3F00 7FFF80 3FFFC0 1FFFE0 07E7F0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 20 0 BBX 6 11 7 15 BITMAP FC FC FC FC FC FC 3C 3C 78 F8 E0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 20 0 BBX 14 32 5 -6 BITMAP 001C 00FC 03FC 07F0 0FC0 1F80 1F00 3E00 7E00 7C00 7C00 F800 F800 F800 F800 F800 F800 F800 F800 F800 7C00 7C00 7C00 3E00 3E00 1F00 1F80 0FE0 07FC 01FC 007C 001C ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 20 0 BBX 14 32 2 -6 BITMAP E000 F800 FE00 FF00 1FC0 07C0 03E0 01F0 01F0 00F8 00F8 00F8 007C 007C 007C 007C 007C 007C 007C 007C 007C 00F8 00F8 01F0 01F0 03E0 07E0 0FC0 3F80 FE00 FC00 E000 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 20 0 BBX 16 15 2 10 BITMAP 03C0 03C0 03C0 4182 718E 7D9E FC3F FC3F 0000 07E0 0E70 1E78 3E7C 1C38 0420 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 20 0 BBX 18 18 1 0 BITMAP 01E000 01E000 01E000 01E000 01E000 01E000 01E000 FFFFC0 FFFFC0 FFFFC0 FFFFC0 01E000 01E000 01E000 01E000 01E000 01E000 01E000 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 20 0 BBX 6 12 7 -6 BITMAP FC FC FC FC FC FC 3C 3C 3C 78 F8 E0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 20 0 BBX 18 4 1 6 BITMAP FFFFC0 FFFFC0 FFFFC0 FFFFC0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 20 0 BBX 6 5 7 0 BITMAP FC FC FC FC FC ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 20 0 BBX 20 32 0 -6 BITMAP 0001F0 0001E0 0003E0 0003C0 0007C0 000780 000F80 000F00 001F00 001E00 003E00 003C00 007C00 007800 00F800 00F000 01F000 01E000 03E000 03C000 07C000 078000 078000 0F0000 0F0000 1E0000 1E0000 3C0000 3C0000 780000 780000 F00000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 20 0 BBX 18 25 1 0 BITMAP 03F000 0FFC00 1FFE00 3E1F00 3C0F00 7C0F80 780780 780780 F807C0 F807C0 F807C0 F807C0 F807C0 F807C0 F807C0 F807C0 F807C0 780780 780780 7C0F80 3C0F00 3E1F00 1FFE00 0FFC00 03F000 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 20 0 BBX 15 25 4 0 BITMAP FFC0 FFC0 FFC0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 FFFE FFFE FFFE ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 20 0 BBX 15 25 3 0 BITMAP 1FC0 7FF0 7FF8 7FFC 40FE 007E 003E 003E 003E 003C 007C 00F8 00F0 01E0 03C0 0780 0F00 1E00 3C00 7C00 F800 FFFE FFFE FFFE FFFE ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 20 0 BBX 14 25 3 0 BITMAP 3FC0 FFF0 FFF8 C0F8 007C 007C 007C 007C 00F8 03F8 3FE0 3F00 3FE0 03F0 00F8 00F8 007C 007C 007C 007C 00F8 81F8 FFF0 FFE0 7F00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 20 0 BBX 17 25 2 0 BITMAP 007C00 00FC00 00FC00 01FC00 03FC00 03FC00 07FC00 0F7C00 0E7C00 1E7C00 1C7C00 387C00 787C00 707C00 FFFF80 FFFF80 FFFF80 FFFF80 FFFF80 007C00 007C00 007C00 007C00 007C00 007C00 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 20 0 BBX 13 25 4 0 BITMAP FFF8 FFF8 FFF8 FFF8 F000 F000 F000 E000 E000 FC00 FF80 FFC0 0FE0 03F0 01F8 00F8 00F8 00F8 00F8 00F8 01F0 83F0 FFE0 FFC0 7F00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 20 0 BBX 17 25 2 0 BITMAP 00FE00 03FF00 0FFF00 1F8100 3E0000 3E0000 7C0000 7C0000 780000 F8F800 FBFE00 FFFE00 FFFF00 FE3F80 FC1F80 F80F80 F80F80 F80F80 780F80 780F80 3C1F00 3E3F00 1FFE00 0FFC00 03F000 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 20 0 BBX 15 25 3 0 BITMAP FFFE FFFE FFFE FFFE 001E 003C 0078 0078 00F0 01E0 01E0 03C0 03C0 0780 0780 0F00 1F00 1E00 1E00 3E00 3E00 3C00 7C00 7C00 7C00 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 20 0 BBX 17 25 2 0 BITMAP 03F000 0FFC00 3FFE00 3E3F00 7C1F00 7C1F00 7C1F00 7E1F00 3FBE00 3FFC00 1FF800 07F800 0FFC00 3FFE00 7EFF00 7C7F00 F81F80 F81F80 F80F80 F80F80 FC0F80 7E1F00 7FFE00 1FFC00 07F000 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 20 0 BBX 17 25 2 0 BITMAP 07E000 1FF800 3FFC00 7E3E00 7C1E00 F80F00 F80F00 F80F80 F80F80 F80F80 FC1F80 FE3F80 7FFF80 3FFF80 3FEF80 0F8F80 000F00 001F00 001F00 003E00 003E00 40FC00 7FF800 7FE000 3F8000 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 20 0 BBX 5 18 8 0 BITMAP F8 F8 F8 F8 F8 00 00 00 00 00 00 00 00 F8 F8 F8 F8 F8 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 20 0 BBX 5 24 8 -6 BITMAP F8 F8 F8 F8 F8 00 00 00 00 00 00 00 F8 F8 F8 F8 F8 F8 78 78 78 70 F0 E0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 20 0 BBX 18 18 1 0 BITMAP 000040 0001C0 0007C0 001FC0 007FC0 01FF00 07FC00 1FF000 FFC000 7FC000 1FF000 07FC00 01FF00 007FC0 001FC0 0007C0 0001C0 000040 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 20 0 BBX 18 12 1 3 BITMAP FFFFC0 FFFFC0 FFFFC0 FFFFC0 000000 000000 000000 000000 FFFFC0 FFFFC0 FFFFC0 FFFFC0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 20 0 BBX 18 18 1 0 BITMAP 800000 E00000 F80000 FE0000 FF8000 3FE000 0FF800 03FE00 00FF80 00FFC0 03FE00 0FF800 3FE000 FF8000 FE0000 F80000 E00000 800000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 20 0 BBX 17 25 2 0 BITMAP 1FF000 FFFE00 FFFF00 F03F80 E00F80 E00F80 E00F80 001F80 001F00 003E00 00FC00 01F000 03E000 078000 0F0000 1F0000 1F0000 1F0000 000000 000000 000000 1F0000 1F0000 1F0000 1F0000 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 20 0 BBX 20 25 0 0 BITMAP 00FC00 03FF00 0FFF80 1F0780 3C03C0 383DC0 787FC0 70FFC0 71E1C0 F1C1C0 E3C1C0 E381C0 E383C0 E383C0 E387C0 E38FC0 E3CDF0 71FDF0 71F9F0 78F000 3C0200 3E0E00 1FFE00 0FFE00 03F800 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 20 0 BBX 20 25 0 0 BITMAP 00F800 00F800 01FC00 01FC00 01FC00 03FE00 03BE00 03BE00 07BE00 073F00 071F00 071F00 0E1F80 0E0F80 0E0F80 1C0F80 1FFFC0 1FFFC0 3FFFC0 3807C0 3803E0 7003E0 7003E0 7003F0 E001F0 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 20 0 BBX 17 25 2 0 BITMAP FFF800 FFFE00 FFFE00 F83F00 F81F00 F81F00 F81F00 F81F00 F83E00 F87E00 FFF800 FFF000 FFF800 F87E00 F81F00 F81F00 F80F80 F80F80 F80F80 F80F80 F81F80 F83F00 FFFF00 FFFE00 FFF800 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 20 0 BBX 19 25 1 0 BITMAP 00FFC0 03FFE0 0FFFE0 1FC060 3F0000 3E0000 7C0000 7C0000 F80000 F80000 F80000 F80000 F80000 F80000 F80000 F80000 FC0000 7C0000 7E0000 3F0020 3FC0E0 1FFFE0 0FFFE0 03FFE0 00FF00 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 20 0 BBX 18 25 2 0 BITMAP FFF000 FFFC00 FFFE00 F87F00 F81F80 F80F80 F80F80 F80FC0 F807C0 F807C0 F807C0 F807C0 F807C0 F807C0 F807C0 F807C0 F807C0 F80F80 F80F80 F80F80 F81F00 F87E00 FFFE00 FFF800 FFE000 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 20 0 BBX 16 25 3 0 BITMAP FFFE FFFE FFFE F800 F800 F800 F800 F800 F800 F800 FFFC FFFC FFFC F800 F800 F800 F800 F800 F800 F800 F800 F800 FFFF FFFF FFFF ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 20 0 BBX 17 25 3 0 BITMAP FFFF80 FFFF80 FFFF80 F80000 F80000 F80000 F80000 F80000 F80000 F80000 F80000 FFFE00 FFFE00 FFFE00 F80000 F80000 F80000 F80000 F80000 F80000 F80000 F80000 F80000 F80000 F80000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 20 0 BBX 19 25 1 0 BITMAP 00FF80 07FFE0 0FFFE0 1FC0E0 3F0020 3E0000 7C0000 7C0000 F80000 F80000 F80000 F80000 F803E0 F803E0 F803E0 F803E0 FC03E0 7C03E0 7E03E0 3F03E0 3FC3E0 1FFFE0 0FFFE0 07FFE0 00FF00 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 20 0 BBX 17 25 2 0 BITMAP F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 FFFF80 FFFF80 FFFF80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 20 0 BBX 17 25 2 0 BITMAP FFFF80 FFFF80 FFFF80 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 FFFF80 FFFF80 FFFF80 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 20 0 BBX 15 25 2 0 BITMAP 3FFE 3FFE 3FFE 003E 003E 003E 003E 003E 003E 003E 003E 003E 003E 003E 003E 003E 003E 003E 003E 003E 007C C0FC FFF8 FFF0 FFC0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 20 0 BBX 18 25 2 0 BITMAP F807C0 F80700 F80F00 F81E00 F83C00 F83800 F87800 F8F000 F9E000 F9C000 FFC000 FFC000 FFC000 FFE000 FFF000 FBF000 F9F800 F8F800 F8FC00 F87E00 F87E00 F83F00 F81F80 F81F80 F80FC0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 20 0 BBX 16 25 4 0 BITMAP F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 FFFF FFFF FFFF ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 20 0 BBX 19 25 1 0 BITMAP FE07E0 FE07E0 FE0FE0 FE0FE0 FE0FE0 FF0FE0 FF1FE0 FF1FE0 FF1FE0 FF1FE0 F79FE0 F7BBE0 F7BBE0 F7BBE0 F7BBE0 F7FBE0 F3F3E0 F3F3E0 F3F3E0 F3F3E0 F3F3E0 F1E3E0 F1E3E0 F003E0 F003E0 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 20 0 BBX 17 25 2 0 BITMAP F80780 FC0780 FC0780 FE0780 FE0780 FF0780 FF0780 FF8780 FF8780 FFC780 F7C780 F7E780 F3E780 F3F780 F1F780 F1FF80 F0FF80 F0FF80 F07F80 F07F80 F03F80 F03F80 F01F80 F01F80 F00F80 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 20 0 BBX 20 25 0 0 BITMAP 01F800 0FFF00 1FFF80 3F0FC0 3E07C0 7C03E0 7C03E0 7801E0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 7801E0 7C03E0 7C03E0 3E07C0 3F0FC0 1FFF80 07FE00 01F800 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 20 0 BBX 17 25 2 0 BITMAP FFF800 FFFE00 FFFF00 F83F00 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F81F00 F83F00 FFFE00 FFFC00 FFE000 F80000 F80000 F80000 F80000 F80000 F80000 F80000 F80000 F80000 F80000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 20 0 BBX 22 31 0 -6 BITMAP 01F800 0FFE00 1FFF80 3F0FC0 3E07C0 7C03E0 7C03E0 7801E0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 7801F0 7C03E0 7C03E0 3E07C0 1F0FC0 1FFF80 07FF00 01FF00 001FF0 000FFC 0007F8 0001F0 0000F0 000060 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 20 0 BBX 18 25 2 0 BITMAP FFF000 FFFC00 FFFE00 F83F00 F81F00 F81F00 F81F00 F81F00 F83F00 F83E00 F8FE00 FFFC00 FFF800 FFF000 F9F000 F9F800 F8F800 F8FC00 F87E00 F87E00 F83F00 F83F00 F81F80 F81F80 F80FC0 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 20 0 BBX 18 25 1 0 BITMAP 07FE00 1FFF00 7FFF00 7E0300 F80000 F80000 F80000 FC0000 FF0000 7FC000 3FF000 1FFC00 07FE00 01FF00 007F80 001FC0 000FC0 0007C0 0007C0 800FC0 F01FC0 FFFF80 FFFF00 FFFE00 3FF000 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 20 0 BBX 19 25 1 0 BITMAP FFFFE0 FFFFE0 FFFFE0 01F000 01F000 01F000 01F000 01F000 01F000 01F000 01F000 01F000 01F000 01F000 01F000 01F000 01F000 01F000 01F000 01F000 01F000 01F000 01F000 01F000 01F000 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 20 0 BBX 17 25 2 0 BITMAP F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 7C1F00 7E3F00 3FFE00 1FFC00 07F800 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 20 0 BBX 20 25 0 0 BITMAP F800F0 FC00F0 7C01F0 7C01E0 7C01E0 3E03E0 3E03C0 3E03C0 3F07C0 1F0780 1F0780 1F0780 0F8F00 0F8F00 0F8F00 0FDE00 07DE00 07DE00 07FE00 03FC00 03FC00 03FC00 03F800 01F800 01F800 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 20 0 BBX 20 25 0 0 BITMAP F80070 F80070 F87870 F8F870 7CF8E0 7CF8E0 7CFCE0 7CFCE0 7DFCE0 7DFCE0 7DFCE0 7DFCE0 3DFFE0 3FBFC0 3FBFC0 3F9FC0 3F9FC0 3F9FC0 3F1FC0 3F1FC0 1F1FC0 1F1F80 1F0F80 1E0F80 1E0F80 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 20 0 BBX 19 25 1 0 BITMAP FC01C0 7E0380 7E0780 3F0700 1F0F00 1F8E00 0F9E00 0FDC00 07FC00 07F800 03F800 03F000 01F000 01F800 03F800 03FC00 077E00 0F7E00 0E3F00 1E3F00 1C1F80 3C0F80 380FC0 7007C0 F007E0 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 20 0 BBX 21 25 0 0 BITMAP FC0078 7E00F0 7E00E0 3F01E0 3F01C0 1F83C0 0F8380 0FC780 07C700 07EE00 03EE00 03FC00 01FC00 01F800 00F800 00F800 00F800 00F800 00F800 00F800 00F800 00F800 00F800 00F800 00F800 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 20 0 BBX 17 25 1 0 BITMAP 7FFF80 7FFF80 7FFF80 001F80 003F00 003F00 007E00 007C00 00FC00 01F800 01F800 03F000 03E000 07E000 0FC000 0FC000 1F8000 1F0000 3F0000 7E0000 7E0000 FC0000 FFFF80 FFFF80 FFFF80 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 20 0 BBX 13 32 6 -6 BITMAP FFF8 FFF8 FFF8 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 20 0 BBX 20 32 0 -6 BITMAP F80000 780000 7C0000 3C0000 3E0000 1E0000 1F0000 0F0000 0F8000 078000 07C000 03C000 03C000 01E000 01E000 00F000 00F000 00F800 007800 007C00 003C00 003E00 001E00 001F00 000F00 000F80 000780 0007C0 0003C0 0003E0 0001E0 0001F0 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 20 0 BBX 13 32 1 -6 BITMAP FFF8 FFF8 FFF8 00F8 00F8 00F8 00F8 00F8 00F8 00F8 00F8 00F8 00F8 00F8 00F8 00F8 00F8 00F8 00F8 00F8 00F8 00F8 00F8 00F8 00F8 00F8 00F8 00F8 00F8 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 20 0 BBX 18 21 1 4 BITMAP 004000 00C000 00C000 01E000 01E000 01E000 03F000 03F000 07F800 07F800 0FFC00 0F3C00 0F3C00 1E1E00 1E1E00 3E1F00 3C0F00 7C0F80 780780 780780 F807C0 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 20 0 BBX 20 4 0 -5 BITMAP FFFFF0 FFFFF0 FFFFF0 FFFFF0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 20 0 BBX 6 11 7 15 BITMAP 1C 7C 78 F0 F0 FC FC FC FC FC FC ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 20 0 BBX 18 18 1 0 BITMAP 0FF000 3FFC00 3FFE00 307F00 201F00 001F00 001F00 0FFF00 3FFF00 7FFF00 FC1F00 F81F00 F81F00 FC7F00 FFFFC0 7FFFC0 3FCFC0 1F87C0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 20 0 BBX 17 26 2 0 BITMAP F80000 F80000 F80000 F80000 F80000 F80000 F80000 F80000 F8F800 F9FC00 FBFE00 FFFF00 FFFF00 FE1F80 FC1F80 F80F80 F80F80 F80F80 F80F80 F80F80 F81F00 FC3F00 FFFF00 FFFE00 FFFC00 F1F000 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 20 0 BBX 17 18 2 0 BITMAP 03FF80 0FFF80 1FFF80 3F0180 7C0000 7C0000 F80000 F80000 F80000 F80000 F80000 FC0000 7E0000 7F8180 3FFF80 1FFF80 0FFF80 03FE00 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 20 0 BBX 17 26 2 0 BITMAP 000F80 000F80 000F80 000F80 000F80 000F80 000F80 000F80 07CF80 1FEF80 3FFF80 7FFF80 7E1F80 7C0F80 F80F80 F80F80 F80F80 F80F80 F80F80 FC1F80 FC3F80 7FFF80 7FFF80 3FEF80 1FCF80 0F8F80 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 20 0 BBX 18 18 1 0 BITMAP 03F800 0FFE00 1FFF00 3E0F80 7C0780 7C07C0 F807C0 FFFFC0 FFFFC0 FFFFC0 F80000 F80000 7C0000 7F00C0 3FFFC0 1FFFC0 0FFFC0 03FE00 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 20 0 BBX 17 26 3 0 BITMAP 01FF00 07FF80 0FFF80 1F8180 1F0000 1F0000 1F0000 1F0000 FFFE00 FFFE00 FFFE00 1F0000 1F0000 1F0000 1F0000 1F0000 1F0000 1F0000 1F0000 1F0000 1F0000 1F0000 1F0000 1F0000 1F0000 1F0000 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 20 0 BBX 17 25 2 -7 BITMAP 07C780 1FE780 3FFF80 7FFF80 7E3F80 FC0F80 F80F80 F80F80 F80F80 F80F80 F80F80 FC1F80 FC3F80 7FFF80 7FEF80 3FEF80 1FCF80 0F8F80 000F80 001F00 303F00 3FFF00 3FFE00 3FFC00 07F000 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 20 0 BBX 16 26 2 0 BITMAP F800 F800 F800 F800 F800 F800 F800 F800 F8F8 F9FC FBFE FFFF FFFF FE1F FC1F F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 20 0 BBX 12 26 3 0 BITMAP 01F0 01F0 01F0 01F0 01F0 0000 0000 0000 FFF0 FFF0 FFF0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 20 0 BBX 13 33 2 -7 BITMAP 00F8 00F8 00F8 00F8 00F8 0000 0000 0000 3FF8 3FF8 3FF8 00F8 00F8 00F8 00F8 00F8 00F8 00F8 00F8 00F8 00F8 00F8 00F8 00F8 00F8 00F8 00F8 00F8 00F8 C1F0 FFF0 FFE0 7F80 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 20 0 BBX 17 26 3 0 BITMAP F80000 F80000 F80000 F80000 F80000 F80000 F80000 F80000 F81E00 F83C00 F83800 F87800 F8F000 F8E000 F9E000 FBC000 FFE000 FBF000 FBF000 F9F800 F8FC00 F8FC00 F87E00 F83F00 F83F00 F81F80 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 20 0 BBX 12 26 1 0 BITMAP FFF0 FFF0 FFF0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 20 0 BBX 19 18 1 0 BITMAP F9E3C0 FBE7C0 FBF7E0 FFFFE0 FFFFE0 FDF3E0 F9F3E0 F9F3E0 F9F3E0 F9F3E0 F9F3E0 F9F3E0 F9F3E0 F9F3E0 F9F3E0 F9F3E0 F9F3E0 F9F3E0 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 20 0 BBX 16 18 2 0 BITMAP F8F8 F9FC FBFE FFFF FFFF FE1F FC1F F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 20 0 BBX 19 18 1 0 BITMAP 03F800 0FFE00 1FFF00 3E0F80 7C07C0 7C07C0 F803E0 F803E0 F803E0 F803E0 F803E0 F803E0 7C07C0 7C07C0 3E0F80 1FFF00 0FFE00 03F800 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 20 0 BBX 17 25 2 -7 BITMAP F8F800 F9FC00 FBFE00 FFFF00 FFFF00 FE1F80 FC1F80 F80F80 F80F80 F80F80 F80F80 F80F80 F81F00 FC3F00 FFFF00 FFFE00 FBFC00 F9F000 F80000 F80000 F80000 F80000 F80000 F80000 F80000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 20 0 BBX 17 25 2 -7 BITMAP 07C780 1FF780 3FFF80 7FFF80 7E1F80 7C0F80 F80F80 F80F80 F80F80 F80F80 F80F80 FC1F80 FC3F80 7FFF80 7FFF80 3FEF80 1FCF80 0F8F80 000F80 000F80 000F80 000F80 000F80 000F80 000F80 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 20 0 BBX 15 18 4 0 BITMAP F87E F9FE FBFE FFFE FFFE FF0E FE0E FC00 F800 F800 F800 F800 F800 F800 F800 F800 F800 F800 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 20 0 BBX 16 18 2 0 BITMAP 07FC 3FFE 7FFE 7C06 F800 FE00 FF80 7FF0 3FFC 1FFE 03FF 00FF 001F 001F C03F FFFE FFFC 3FE0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 20 0 BBX 16 23 2 0 BITMAP 0380 0F80 0F80 0F80 0F80 FFFF FFFF FFFF 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0F80 0FC1 07FF 07FF 03FF 00FC ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 20 0 BBX 16 18 2 0 BITMAP F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F F83F F87F FFFF FFFF 7FDF 7F9F 1F1F ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 20 0 BBX 19 18 1 0 BITMAP F801E0 FC01C0 7C01C0 7E0380 3E0380 3E0780 3F0700 1F0700 1F8E00 0F8E00 0F9E00 0FDC00 07DC00 07F800 03F800 03F800 03F000 01F000 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 20 0 BBX 20 18 0 0 BITMAP F80070 F80070 F8F870 7CF8E0 7CF8E0 7CFCE0 7DFCE0 7DFCE0 7DFCE0 3FDFC0 3F9FC0 3F9FC0 3F9FC0 3F0FC0 3F0FC0 1F0F80 1F0780 1E0780 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 20 0 BBX 19 18 1 0 BITMAP FE03C0 7E0780 3F0F00 1F8E00 1FDE00 0FFC00 07F800 03F000 03F000 03F800 03FC00 07FC00 0F7E00 1E3F00 1C3F80 3C1F80 780FC0 F007E0 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 20 0 BBX 19 25 1 -7 BITMAP FC01E0 7C01C0 7C03C0 7E0380 3E0380 3F0700 1F0700 1F8F00 0F8E00 0FDE00 07DC00 07DC00 07F800 03F800 03F800 01F000 01F000 01E000 01E000 03C000 03C000 078000 7F8000 7F0000 7C0000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 20 0 BBX 17 18 2 0 BITMAP FFFF80 FFFF80 FFFF80 003F80 007F00 00FE00 01FC00 03F800 07F000 0FE000 1FC000 3F8000 7F0000 7E0000 FFFF80 FFFF80 FFFF80 FFFF80 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 20 0 BBX 15 32 3 -6 BITMAP 00FE 03FE 07FE 07C0 07C0 07C0 07C0 07C0 03E0 03E0 03E0 03E0 03E0 03C0 0780 FF00 FF00 FF80 07C0 03E0 03E0 03E0 03E0 03E0 07E0 07C0 07C0 07C0 07C0 07FE 03FE 00FE ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 20 0 BBX 4 32 8 -6 BITMAP F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 20 0 BBX 15 32 2 -6 BITMAP FE00 FF80 FFC0 07C0 07C0 07C0 07C0 07C0 0F80 0F80 0F80 0F80 0F80 0780 03C0 01FE 01FE 03FE 07C0 0F80 0F80 0F80 0F80 0F80 07C0 07C0 07C0 07C0 07C0 FFC0 FF80 FE00 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 20 0 BBX 18 8 1 5 BITMAP 1E01C0 3F01C0 7FC1C0 73E1C0 E1F380 E0FF80 E03F00 E01E00 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 20 0 BBX 5 25 8 -7 BITMAP F8 F8 F8 F8 F8 00 00 00 70 70 70 70 70 70 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 20 0 BBX 15 25 3 0 BITMAP 00E0 00E0 00E0 03FE 0FFE 1FFE 3E06 7C00 7C00 F800 F800 F800 F800 F800 FC00 7C00 7F00 3FFE 1FFE 0FFE 03E0 00E0 00E0 00E0 00E0 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 20 0 BBX 14 25 4 0 BITMAP 03FC 07FC 0FFC 0F84 1F00 1F00 1F00 1F00 1F00 1F00 FFE0 FFE0 FFE0 1F00 1F00 1F00 1F00 1F00 1E00 1E00 3800 FFFC FFFC FFFC FFFC ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 20 0 BBX 17 19 2 3 BITMAP 200200 73E700 FFFF80 7FFF00 3FFE00 3E3E00 7C1F00 780F00 780F00 780F00 780F00 780F00 7C1E00 3E3E00 3FFF00 7FFF00 FFFF80 73E700 200200 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 20 0 BBX 21 25 0 0 BITMAP FC0078 7E00F0 3F00E0 3F01C0 1F83C0 0FC780 0FC700 07EF00 03FE00 03FC00 01FC00 00F800 0FFF80 0FFF80 0FFF80 00F800 0FFF80 0FFF80 0FFF80 00F800 00F800 00F800 00F800 00F800 00F800 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 20 0 BBX 4 32 8 -6 BITMAP F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 00 00 00 00 00 00 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 F0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 20 0 BBX 14 31 3 -6 BITMAP 0FF0 3FF8 7FF8 FC18 F800 F800 F800 FE00 7F80 3FC0 1FF0 3FF8 79F8 707C F03C F03C F83C FC38 FF78 7FF0 3FE0 1FF8 07F8 01FC 00FC 007C 007C C0F8 FFF8 FFF0 FF80 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 20 0 BBX 10 4 5 21 BITMAP F3C0 F3C0 F3C0 F3C0 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 20 0 BBX 19 25 1 0 BITMAP 01F000 0FFE00 1FFF00 3E0F80 380380 7001C0 71F9C0 F3FDE0 E784E0 E700E0 EF00E0 EF00E0 EF00E0 EF00E0 EF00E0 E700E0 E784E0 F3FDE0 71F9C0 7001C0 380380 3E0F80 1FFF00 07FE00 01F000 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 20 0 BBX 15 14 3 11 BITMAP 3FC0 7FF0 7FF8 40F8 0078 0078 1FF8 7FF8 F878 F078 F0F8 FFFE 7FBE 3E1E ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 20 0 BBX 18 16 1 1 BITMAP 010100 038380 07C7C0 0F8F80 1F0F00 3F1F00 7E3E00 7CFE00 FC7C00 7E7E00 3E3F00 1F1F00 0F8F80 0787C0 03C380 010100 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 20 0 BBX 18 8 1 3 BITMAP FFFFC0 FFFFC0 FFFFC0 FFFFC0 0003C0 0003C0 0003C0 0003C0 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 20 0 BBX 14 3 3 10 BITMAP FFFC FFFC FFFC ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 20 0 BBX 17 18 2 7 BITMAP 03E000 0FF800 1FFC00 3C1E00 780F00 77F700 E7FF80 E73B80 E7FB80 E7F380 E76380 E76780 776700 7F7F00 3C1E00 1FFC00 0FF800 03E000 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 20 0 BBX 10 3 5 22 BITMAP FFC0 FFC0 FFC0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 20 0 BBX 6 6 7 19 BITMAP 78 FC CC CC FC 78 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 20 0 BBX 18 18 1 0 BITMAP 01E000 01E000 01E000 01E000 FFFFC0 FFFFC0 FFFFC0 FFFFC0 01E000 01E000 01E000 01E000 000000 000000 FFFFC0 FFFFC0 FFFFC0 FFFFC0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 20 0 BBX 7 12 -4 13 BITMAP 78 FE 8E 06 06 0E 1C 38 70 E0 FE FE ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 20 0 BBX 6 12 -5 13 BITMAP 78 FC 8C 0C 1C 70 78 1C 0C 8C F8 F0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 20 0 BBX 8 5 6 21 BITMAP 1F 3E 3C 78 F0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 20 0 BBX 16 24 2 -6 BITMAP F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F F83F FC7F FFFF FFFF FFFF FFDF FF9F F800 F800 F800 F800 F800 F800 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 20 0 BBX 14 31 2 -6 BITMAP 1FFC 7FFC 7FFC FF9C FF9C FF9C FF9C FF9C FF9C 7F9C 3F9C 1F9C 079C 039C 039C 039C 039C 039C 039C 039C 039C 039C 039C 039C 039C 039C 039C 039C 039C 039C 039C ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 20 0 BBX 5 5 8 6 BITMAP F8 F8 F8 F8 F8 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 20 0 BBX 7 8 8 -7 BITMAP 38 30 70 7C 1E 8E FE FC ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 20 0 BBX 6 12 -5 13 BITMAP F0 F0 30 30 30 30 30 30 30 30 FC FC ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 20 0 BBX 15 14 3 11 BITMAP 0FE0 3FF8 7FFC 7C7C F83E F01E F01E F01E F01E F83E 7C7C 7FFC 3FF8 0FE0 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 20 0 BBX 18 16 1 1 BITMAP 202000 70F000 F87800 7C7C00 3E3E00 3F1F00 1F9F80 0F8FC0 1FCF80 1F1F80 3E3F00 3C3E00 7C7C00 F8F800 707000 202000 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 20 0 BBX 20 25 2 0 BITMAP F000F0 F000E0 3001C0 3003C0 300380 300700 300F00 300E00 301C00 303C00 FC3800 FC7000 00F000 00E1C0 01C1C0 03C3C0 0387C0 0706C0 0F0CC0 0E18C0 1C1FF0 3C1FF0 3800C0 7000C0 F000C0 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 20 0 BBX 20 25 2 0 BITMAP F000F0 F000E0 3001C0 3003C0 300380 300700 300F00 300E00 301C00 303C00 FC3800 FC7000 00F000 00E3C0 01C7F0 03C470 038030 070030 0F0070 0E00E0 1C01C0 3C0380 380700 7007F0 F007F0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 20 0 BBX 20 25 2 0 BITMAP 7800F0 FC00E0 8C01C0 0C03C0 1C0380 700700 780F00 1C0E00 0C1C00 8C3C00 F83800 F07000 00F000 00E1C0 01C1C0 03C3C0 0387C0 0706C0 0F0CC0 0E18C0 1C1FF0 3C1FF0 3800C0 7000C0 F000C0 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 20 0 BBX 17 25 1 -7 BITMAP 007C00 007C00 007C00 007C00 007C00 000000 000000 007C00 007C00 007C00 007800 00F000 03E000 07C000 1F8000 3E0000 7C0000 FC0000 F80380 F80380 F80380 FE0780 7FFF80 3FFF80 07FC00 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 20 0 BBX 20 31 0 0 BITMAP 03E000 01F000 00F000 007800 003C00 000000 00F800 00F800 01FC00 01FC00 01FC00 03FE00 03BE00 03BE00 07BE00 073F00 071F00 071F00 0E1F80 0E0F80 0E0F80 1C0F80 1FFFC0 1FFFC0 3FFFC0 3807C0 3803E0 7003E0 7003E0 7003F0 E001F0 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 20 0 BBX 20 31 0 0 BITMAP 007C00 00F800 00F000 01E000 03C000 000000 00F800 00F800 01FC00 01FC00 01FC00 03FE00 03BE00 03BE00 07BE00 073F00 071F00 071F00 0E1F80 0E0F80 0E0F80 1C0F80 1FFFC0 1FFFC0 3FFFC0 3807C0 3803E0 7003E0 7003E0 7003F0 E001F0 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 20 0 BBX 20 31 0 0 BITMAP 00F000 01F800 03FC00 039C00 079E00 000000 00F800 00F800 01FC00 01FC00 01FC00 03FE00 03BE00 03BE00 07BE00 073F00 071F00 071F00 0E1F80 0E0F80 0E0F80 1C0F80 1FFFC0 1FFFC0 3FFFC0 3807C0 3803E0 7003E0 7003E0 7003F0 E001F0 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 20 0 BBX 20 31 0 0 BITMAP 03C600 03FE00 07FE00 07FC00 063C00 000000 00F800 00F800 01FC00 01FC00 01FC00 03FE00 03BE00 03BE00 07BE00 073F00 071F00 071F00 0E1F80 0E0F80 0E0F80 1C0F80 1FFFC0 1FFFC0 3FFFC0 3807C0 3803E0 7003E0 7003E0 7003F0 E001F0 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 20 0 BBX 20 30 0 0 BITMAP 079E00 079E00 079E00 079E00 000000 00F800 00F800 01FC00 01FC00 01FC00 03FE00 03BE00 03BE00 07BE00 073F00 071F00 071F00 0E1F80 0E0F80 0E0F80 1C0F80 1FFFC0 1FFFC0 3FFFC0 3807C0 3803E0 7003E0 7003E0 7003F0 E001F0 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 20 0 BBX 20 31 0 0 BITMAP 007000 00D800 008800 00D800 007000 000000 00F800 00F800 01FC00 01FC00 01FC00 03FE00 03BE00 03BE00 07BE00 073F00 071F00 071F00 0E1F80 0E0F80 0E0F80 1C0F80 1FFFC0 1FFFC0 3FFFC0 3807C0 3803E0 7003E0 7003E0 7003F0 E001F0 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 20 0 BBX 20 25 0 0 BITMAP 007FF0 007FF0 007FF0 00FE00 00FE00 00FE00 01FE00 01FE00 03BE00 03BE00 03BFE0 073FE0 073FE0 0F3E00 0E3E00 0E3E00 1E3E00 1C3E00 1FFE00 3FFE00 3FFE00 703E00 703FF0 603FF0 E03FF0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 20 0 BBX 19 32 1 -7 BITMAP 00FFC0 03FFE0 0FFFE0 1FC060 3F0000 3E0000 7C0000 7C0000 F80000 F80000 F80000 F80000 F80000 F80000 F80000 F80000 FC0000 7C0000 7E0000 3F0020 3FC0E0 1FFFE0 0FFFE0 03FFE0 00FF00 006000 00E000 00F800 003C00 011C00 01FC00 01F800 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 20 0 BBX 16 31 3 0 BITMAP 1F00 0F80 0780 03C0 01E0 0000 FFFE FFFE FFFE F800 F800 F800 F800 F800 F800 F800 FFFC FFFC FFFC F800 F800 F800 F800 F800 F800 F800 F800 F800 FFFF FFFF FFFF ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 20 0 BBX 16 31 3 0 BITMAP 03E0 07C0 0780 0F00 1E00 0000 FFFE FFFE FFFE F800 F800 F800 F800 F800 F800 F800 FFFC FFFC FFFC F800 F800 F800 F800 F800 F800 F800 F800 F800 FFFF FFFF FFFF ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 0 0 BBX 0 0 0 0 BITMAP ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 20 0 BBX 16 30 3 0 BITMAP 3CF0 3CF0 3CF0 3CF0 0000 FFFE FFFE FFFE F800 F800 F800 F800 F800 F800 F800 FFFC FFFC FFFC F800 F800 F800 F800 F800 F800 F800 F800 F800 FFFF FFFF FFFF ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 20 0 BBX 17 31 2 0 BITMAP 07C000 03E000 01E000 00F000 007800 000000 FFFF80 FFFF80 FFFF80 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 FFFF80 FFFF80 FFFF80 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 20 0 BBX 17 31 2 0 BITMAP 01F000 03E000 03C000 078000 0F0000 000000 FFFF80 FFFF80 FFFF80 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 FFFF80 FFFF80 FFFF80 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 20 0 BBX 17 31 2 0 BITMAP 03C000 07E000 0FF000 0E7000 1E7800 000000 FFFF80 FFFF80 FFFF80 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 FFFF80 FFFF80 FFFF80 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 20 0 BBX 17 30 2 0 BITMAP 1E7800 1E7800 1E7800 1E7800 000000 FFFF80 FFFF80 FFFF80 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 03E000 FFFF80 FFFF80 FFFF80 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 20 0 BBX 19 25 0 0 BITMAP 7FF800 7FFE00 7FFF00 7C3F80 7C0FC0 7C07C0 7C07C0 7C07E0 7C03E0 7C03E0 FFC3E0 FFC3E0 FFC3E0 7C03E0 7C03E0 7C03E0 7C03E0 7C07C0 7C07C0 7C07C0 7C0F80 7C3F00 7FFF00 7FFC00 7FF000 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 20 0 BBX 17 31 2 0 BITMAP 078C00 07FC00 0FFC00 0FF800 0C7800 000000 F80780 FC0780 FC0780 FE0780 FE0780 FF0780 FF0780 FF8780 FF8780 FFC780 F7C780 F7E780 F3E780 F3F780 F1F780 F1FF80 F0FF80 F0FF80 F07F80 F07F80 F03F80 F03F80 F01F80 F01F80 F00F80 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 20 0 BBX 20 31 0 0 BITMAP 03E000 01F000 00F000 007800 003C00 000000 01F800 0FFF00 1FFF80 3F0FC0 3E07C0 7C03E0 7C03E0 7801E0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 7801E0 7C03E0 7C03E0 3E07C0 3F0FC0 1FFF80 07FE00 01F800 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 20 0 BBX 20 31 0 0 BITMAP 007C00 00F800 00F000 01E000 03C000 000000 01F800 0FFF00 1FFF80 3F0FC0 3E07C0 7C03E0 7C03E0 7801E0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 7801E0 7C03E0 7C03E0 3E07C0 3F0FC0 1FFF80 07FE00 01F800 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 20 0 BBX 20 31 0 0 BITMAP 00F000 01F800 03FC00 039C00 079E00 000000 01F800 0FFF00 1FFF80 3F0FC0 3E07C0 7C03E0 7C03E0 7801E0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 7801E0 7C03E0 7C03E0 3E07C0 3F0FC0 1FFF80 07FE00 01F800 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 20 0 BBX 20 31 0 0 BITMAP 03C600 03FE00 07FE00 07FC00 063C00 000000 01F800 0FFF00 1FFF80 3F0FC0 3E07C0 7C03E0 7C03E0 7801E0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 7801E0 7C03E0 7C03E0 3E07C0 3F0FC0 1FFF80 07FE00 01F800 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 20 0 BBX 20 30 0 0 BITMAP 079E00 079E00 079E00 079E00 000000 01F800 0FFF00 1FFF80 3F0FC0 3E07C0 7C03E0 7C03E0 7801E0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 F801F0 7801E0 7C03E0 7C03E0 3E07C0 3F0FC0 1FFF80 07FE00 01F800 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 20 0 BBX 18 18 1 0 BITMAP 200100 700380 F807C0 7C0F80 3E1F00 1F3E00 0FFC00 07F800 03F000 03F000 07F800 0FFC00 1F3E00 3E1F00 7C0F80 F807C0 700380 200100 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 20 0 BBX 20 25 0 0 BITMAP 01FCF0 0FFFE0 1FFFC0 3F0FC0 3E07C0 7C07E0 7C0FE0 780FE0 F81FF0 F83DF0 F839F0 F871F0 F8F1F0 F9E1F0 F9C1F0 FBC1F0 FF81F0 7F01E0 7F03E0 7E03E0 3E07C0 3F0FC0 3FFF80 7FFE00 F3F800 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 20 0 BBX 17 31 2 0 BITMAP 07C000 03E000 01E000 00F000 007800 000000 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 7C1F00 7E3F00 3FFE00 1FFC00 07F800 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 20 0 BBX 17 31 2 0 BITMAP 01F000 03E000 03C000 078000 0F0000 000000 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 7C1F00 7E3F00 3FFE00 1FFC00 07F800 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 20 0 BBX 17 31 2 0 BITMAP 03C000 07E000 0FF000 0E7000 1E7800 000000 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 7C1F00 7E3F00 3FFE00 1FFC00 07F800 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 20 0 BBX 17 30 2 0 BITMAP 1E7800 1E7800 1E7800 1E7800 000000 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 F80F80 7C1F00 7E3F00 3FFE00 1FFC00 07F800 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 20 0 BBX 21 31 0 0 BITMAP 007C00 00F800 00F000 01E000 03C000 000000 FC0078 7E00F0 7E00E0 3F01E0 3F01C0 1F83C0 0F8380 0FC780 07C700 07EE00 03EE00 03FC00 01FC00 01F800 00F800 00F800 00F800 00F800 00F800 00F800 00F800 00F800 00F800 00F800 00F800 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 20 0 BBX 17 25 2 0 BITMAP F80000 F80000 F80000 F80000 F80000 FFF800 FFFE00 FFFF00 F83F80 F80F80 F80F80 F80F80 F80F80 F80F80 F81F00 F83F00 FFFE00 FFFC00 FFF000 F80000 F80000 F80000 F80000 F80000 F80000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 20 0 BBX 18 26 2 0 BITMAP 0FF000 3FFC00 7FFE00 7C7E00 783E00 F83E00 F83C00 F87C00 F87800 F8F000 F8F000 F9F000 F9F800 F9FC00 F8FE00 F87F00 F83F80 F81F80 F80FC0 F807C0 F807C0 F807C0 F90FC0 F9FF80 F9FF00 F9FC00 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 20 0 BBX 18 24 1 0 BITMAP 07C000 03E000 01E000 00F000 007800 000000 0FF000 3FFC00 3FFE00 307F00 201F00 001F00 001F00 0FFF00 3FFF00 7FFF00 FC1F00 F81F00 F81F00 FC7F00 FFFFC0 7FFFC0 3FCFC0 1F87C0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 20 0 BBX 18 24 1 0 BITMAP 00F800 01F000 01E000 03C000 078000 000000 0FF000 3FFC00 3FFE00 307F00 201F00 001F00 001F00 0FFF00 3FFF00 7FFF00 FC1F00 F81F00 F81F00 FC7F00 FFFFC0 7FFFC0 3FCFC0 1F87C0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 20 0 BBX 18 24 1 0 BITMAP 01E000 03F000 07F800 073800 0F3C00 000000 0FF000 3FFC00 3FFE00 307F00 201F00 001F00 001F00 0FFF00 3FFF00 7FFF00 FC1F00 F81F00 F81F00 FC7F00 FFFFC0 7FFFC0 3FCFC0 1F87C0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 20 0 BBX 18 24 1 0 BITMAP 078C00 07FC00 0FFC00 0FF800 0C7800 000000 0FF000 3FFC00 3FFE00 307F00 201F00 001F00 001F00 0FFF00 3FFF00 7FFF00 FC1F00 F81F00 F81F00 FC7F00 FFFFC0 7FFFC0 3FCFC0 1F87C0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 20 0 BBX 18 23 1 0 BITMAP 0F3C00 0F3C00 0F3C00 0F3C00 000000 0FF000 3FFC00 3FFE00 307F00 201F00 001F00 001F00 0FFF00 3FFF00 7FFF00 FC1F00 F81F00 F81F00 FC7F00 FFFFC0 7FFFC0 3FCFC0 1F87C0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 20 0 BBX 18 24 1 0 BITMAP 01C000 036000 022000 036000 01C000 000000 0FF000 3FFC00 3FFE00 307F00 201F00 001F00 001F00 0FFF00 3FFF00 7FFF00 FC1F00 F81F00 F81F00 FC7F00 FFFFC0 7FFFC0 3FCFC0 1F87C0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 20 0 BBX 19 18 1 0 BITMAP 1F8F00 3FFF80 3FFFC0 20F3C0 00F3C0 00F3E0 00F3E0 0FFFE0 3FFFE0 7FFFE0 FCF000 F8F000 F8F000 F9F820 FFFFE0 7FFFE0 7F3FE0 1E1F80 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 20 0 BBX 17 25 2 -7 BITMAP 03FF80 0FFF80 1FFF80 3F0180 7C0000 7C0000 F80000 F80000 F80000 F80000 F80000 FC0000 7E0000 7F8180 3FFF80 1FFF80 0FFF80 03FE00 00C000 01C000 01F000 007800 023800 03F800 03F000 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 20 0 BBX 18 24 1 0 BITMAP 07C000 03E000 01E000 00F000 007800 000000 03F800 0FFE00 1FFF00 3E0F80 7C0780 7C07C0 F807C0 FFFFC0 FFFFC0 FFFFC0 F80000 F80000 7C0000 7F00C0 3FFFC0 1FFFC0 0FFFC0 03FE00 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 20 0 BBX 18 24 1 0 BITMAP 00F800 01F000 01E000 03C000 078000 000000 03F800 0FFE00 1FFF00 3E0F80 7C0780 7C07C0 F807C0 FFFFC0 FFFFC0 FFFFC0 F80000 F80000 7C0000 7F00C0 3FFFC0 1FFFC0 0FFFC0 03FE00 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 20 0 BBX 18 24 1 0 BITMAP 01E000 03F000 07F800 073800 0F3C00 000000 03F800 0FFE00 1FFF00 3E0F80 7C0780 7C07C0 F807C0 FFFFC0 FFFFC0 FFFFC0 F80000 F80000 7C0000 7F00C0 3FFFC0 1FFFC0 0FFFC0 03FE00 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 20 0 BBX 18 23 1 0 BITMAP 0F3C00 0F3C00 0F3C00 0F3C00 000000 03F800 0FFE00 1FFF00 3E0F80 7C0780 7C07C0 F807C0 FFFFC0 FFFFC0 FFFFC0 F80000 F80000 7C0000 7F00C0 3FFFC0 1FFFC0 0FFFC0 03FE00 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 20 0 BBX 12 24 3 0 BITMAP 1F00 0F80 0780 03C0 01E0 0000 FFF0 FFF0 FFF0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 20 0 BBX 12 24 3 0 BITMAP 03E0 07C0 0780 0F00 1E00 0000 FFF0 FFF0 FFF0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 20 0 BBX 12 24 3 0 BITMAP 0780 0FC0 1FE0 1CE0 3CF0 0000 FFF0 FFF0 FFF0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 20 0 BBX 12 23 3 0 BITMAP 3CF0 3CF0 3CF0 3CF0 0000 FFF0 FFF0 FFF0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 20 0 BBX 19 26 1 0 BITMAP FF0E00 FFFE00 FFFF00 07FC00 0FFC00 0FFE00 063F00 041F00 03FF80 0FFFC0 1FFFC0 3E0FC0 7C07E0 7C07E0 F803E0 F803E0 F803E0 F803E0 F803E0 F803C0 7C07C0 7C07C0 3E1F80 1FFF00 0FFE00 03F800 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 20 0 BBX 16 24 2 0 BITMAP 0F18 0FF8 1FF8 1FF0 18F0 0000 F8F8 F9FC FBFE FFFF FFFF FE1F FC1F F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 20 0 BBX 19 24 1 0 BITMAP 03E000 01F000 00F000 007800 003C00 000000 03F800 0FFE00 1FFF00 3E0F80 7C07C0 7C07C0 F803E0 F803E0 F803E0 F803E0 F803E0 F803E0 7C07C0 7C07C0 3E0F80 1FFF00 0FFE00 03F800 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 20 0 BBX 19 24 1 0 BITMAP 00F800 01F000 01E000 03C000 078000 000000 03F800 0FFE00 1FFF00 3E0F80 7C07C0 7C07C0 F803E0 F803E0 F803E0 F803E0 F803E0 F803E0 7C07C0 7C07C0 3E0F80 1FFF00 0FFE00 03F800 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 20 0 BBX 19 24 1 0 BITMAP 01E000 03F000 07F800 073800 0F3C00 000000 03F800 0FFE00 1FFF00 3E0F80 7C07C0 7C07C0 F803E0 F803E0 F803E0 F803E0 F803E0 F803E0 7C07C0 7C07C0 3E0F80 1FFF00 0FFE00 03F800 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 20 0 BBX 19 24 1 0 BITMAP 03C600 03FE00 07FE00 07FC00 063C00 000000 03F800 0FFE00 1FFF00 3E0F80 7C07C0 7C07C0 F803E0 F803E0 F803E0 F803E0 F803E0 F803E0 7C07C0 7C07C0 3E0F80 1FFF00 0FFE00 03F800 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 20 0 BBX 19 23 1 0 BITMAP 0F3C00 0F3C00 0F3C00 0F3C00 000000 03F800 0FFE00 1FFF00 3E0F80 7C07C0 7C07C0 F803E0 F803E0 F803E0 F803E0 F803E0 F803E0 7C07C0 7C07C0 3E0F80 1FFF00 0FFE00 03F800 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 20 0 BBX 17 18 2 0 BITMAP 03E000 03E000 03E000 03E000 03E000 000000 000000 FFFF80 FFFF80 FFFF80 FFFF80 000000 000000 03E000 03E000 03E000 03E000 03E000 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 20 0 BBX 19 18 1 0 BITMAP 03FFE0 0FFFC0 1FFF80 3F0F80 7C1FC0 7C1FC0 F83FE0 F87BE0 F8F3E0 F9E3E0 FBC3E0 FF83E0 7F07C0 7E07C0 3E1F80 3FFF00 7FFE00 FFF800 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 20 0 BBX 16 24 2 0 BITMAP 0F80 07C0 03C0 01E0 00F0 0000 F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F F83F F87F FFFF FFFF 7FDF 7F9F 1F1F ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 20 0 BBX 16 24 2 0 BITMAP 01F0 03E0 03C0 0780 0F00 0000 F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F F83F F87F FFFF FFFF 7FDF 7F9F 1F1F ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 20 0 BBX 16 24 2 0 BITMAP 03C0 07E0 0FF0 0E70 1E78 0000 F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F F83F F87F FFFF FFFF 7FDF 7F9F 1F1F ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 20 0 BBX 16 23 2 0 BITMAP 1E78 1E78 1E78 1E78 0000 F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F F81F F83F F87F FFFF FFFF 7FDF 7F9F 1F1F ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 20 0 BBX 19 31 1 -7 BITMAP 00F800 01F000 01E000 03C000 078000 000000 FC01E0 7C01C0 7C03C0 7E0380 3E0380 3F0700 1F0700 1F8F00 0F8E00 0FDE00 07DC00 07DC00 07F800 03F800 03F800 01F000 01F000 01E000 01E000 03C000 03C000 078000 7F8000 7F0000 7C0000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 20 0 BBX 17 31 2 -7 BITMAP F80000 F80000 F80000 F80000 F80000 F80000 F8F800 F9FC00 FBFE00 FFFF00 FFFF00 FE1F80 FC1F80 F80F80 F80F80 F80F80 F80F80 F80F80 F81F00 FC3F00 FFFF00 FFFE00 FBFC00 F9F000 F80000 F80000 F80000 F80000 F80000 F80000 F80000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 20 0 BBX 19 30 1 -7 BITMAP 0F3C00 0F3C00 0F3C00 0F3C00 000000 FC01E0 7C01C0 7C03C0 7E0380 3E0380 3F0700 1F0700 1F8F00 0F8E00 0FDE00 07DC00 07DC00 07F800 03F800 03F800 01F000 01F000 01E000 01E000 03C000 03C000 078000 7F8000 7F0000 7C0000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 17 26 1 0 BITMAP 07FF80 0FFF80 1FFF80 3F0F80 3E0F80 3E0F80 3E0F80 3E0F80 FFEF80 FFEF80 FFEF80 3E0F80 3E0F80 3E0F80 3E0F80 3E0F80 3E0F80 3E0F80 3E0F80 3E0F80 3E0F80 3E0F80 3E0F80 3E0F80 3E0F80 3E0F80 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 16 3 2 9 BITMAP FFFF FFFF FFFF ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 15 31 3 -6 BITMAP 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 FFFE FFFE FFFE 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 17 31 1 0 BITMAP 0F3C00 073800 07F800 03F000 01E000 000000 7FFF80 7FFF80 7FFF80 001F80 003F00 003F00 007E00 007C00 00FC00 01F800 01F800 03F000 03E000 07E000 0FC000 0FC000 1F8000 1F0000 3F0000 7E0000 7E0000 FC0000 FFFF80 FFFF80 FFFF80 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 19 18 1 0 BITMAP 0F8F00 1FDFC0 3FFFC0 79F9C0 79F1E0 F9F1E0 F9F1E0 F9FFE0 F9FFE0 F9FFE0 F9F000 F9F000 F9F000 79F820 7DFFE0 3FFFE0 1FDFE0 0F8F80 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 21 30 0 0 BITMAP 079E00 079E00 079E00 079E00 000000 FC0078 7E00F0 7E00E0 3F01E0 3F01C0 1F83C0 0F8380 0FC780 07C700 07EE00 03EE00 03FC00 01FC00 01F800 00F800 00F800 00F800 00F800 00F800 00F800 00F800 00F800 00F800 00F800 00F800 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 12 18 3 0 BITMAP FFF0 FFF0 FFF0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 16 26 1 0 BITMAP FFF0 FFF0 FFF0 01F0 01F0 01F0 01F0 01F0 01F3 01FF 01FF 01FF 03FC 0FF0 1FF0 1FF0 19F0 11F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 01F0 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 20 25 0 0 BITMAP 0F8000 0F8000 0F8000 0F8000 0F8000 0F8000 0F8000 0F8800 0FB800 0FF800 0FF800 0FF000 3FC000 7F8000 FF8000 FF8000 CF8000 8F8000 0F8000 0F8000 0F8000 0F8000 0FFFF0 0FFFF0 0FFFF0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 15 31 3 -6 BITMAP 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 FFFE FFFE FFFE 07C0 07C0 07C0 07C0 07C0 07C0 07C0 FFFE FFFE FFFE 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 07C0 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 17 26 1 0 BITMAP 07E780 0FE780 1FE780 3F0780 3E0780 3E0000 3E0000 3E0000 FFFF80 FFFF80 FFFF80 3E0F80 3E0F80 3E0F80 3E0F80 3E0F80 3E0F80 3E0F80 3E0F80 3E0F80 3E0F80 3E0F80 3E0F80 3E0F80 3E0F80 3E0F80 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 10 16 5 1 BITMAP 2000 7000 F800 7C00 3E00 3F00 1F80 0FC0 1F80 1F00 3F00 3E00 7C00 F800 7000 2000 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 19 25 1 0 BITMAP 07FFE0 1FFFE0 3FFFE0 3E7C00 7C3C00 7C3C00 783C00 F83C00 F83C00 F83C00 F83FC0 F83FC0 F83FC0 F83C00 F83C00 F83C00 F83C00 F83C00 783C00 7C3C00 7C3C00 3E7C00 1FFFE0 1FFFE0 07FFE0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 18 3 1 9 BITMAP FFFFC0 FFFFC0 FFFFC0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 10 5 5 21 BITMAP F3C0 7380 7F80 3F00 1E00 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 6 7 7 -7 BITMAP 38 70 60 E0 E0 FC 7C ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 11 5 6 21 BITMAP 3DE0 39C0 7380 6300 C600 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 10 16 5 1 BITMAP 0100 0380 07C0 0F80 1F00 1F00 3E00 7E00 FC00 7E00 3F00 1F00 0F80 07C0 0380 0100 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 4 4 8 21 BITMAP F0 F0 F0 F0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 10 5 5 20 BITMAP E1C0 F3C0 7F80 7F80 3F00 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 13 13 4 2 BITMAP FFF8 FFF8 FFF8 FFF8 FFF8 FFF8 FFF8 FFF8 FFF8 FFF8 FFF8 FFF8 FFF8 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 10 5 5 20 BITMAP 78C0 7FC0 FFC0 FF80 C780 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 10 5 5 21 BITMAP 1E00 3F00 7F80 7380 F3C0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 14 10 3 16 BITMAP 381C 783C F078 E070 E070 F87C F87C F87C F87C F87C ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 6 11 7 15 BITMAP FC FC FC F8 F8 F8 78 78 70 70 70 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 16 24 2 0 BITMAP 1E78 0E70 0FF0 07E0 03C0 0000 07FC 3FFE 7FFE 7C06 F800 FE00 FF80 7FF0 3FFC 1FFE 03FF 00FF 001F 001F C03F FFFE FFFC 3FE0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 5 5 8 21 BITMAP 70 D8 88 D8 70 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 6 12 7 -6 BITMAP FC FC FC FC FC FC 3C 3C 3C 78 F8 E0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 15 31 3 -6 BITMAP 003E 00FE 01FE 03E2 03C0 07C0 07C0 07C0 0F80 0F80 0F80 7FF0 7FF0 7FF0 1F00 1F00 1F00 1F00 3E00 3E00 3E00 3E00 3E00 7E00 7C00 7C00 7C00 7C00 FC00 F800 F800 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 20 13 0 12 BITMAP FFF0F0 FFF8F0 FFF8F0 1C79F0 1C7DF0 1C7DF0 1C7D70 1C6F70 1C6F70 1C6E70 1C6670 1C6070 1C6070 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 20 25 0 0 BITMAP 0000F0 0000E0 0001C0 0003C0 000380 000700 000F00 000E00 001C00 003C00 003800 007000 00F000 00E000 01C000 03C000 038000 070000 0F0000 0E0000 1C0000 3C0000 380000 700000 F00000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 8 5 6 21 BITMAP F8 7C 3C 1E 0F ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 20 25 0 0 BITMAP 7C1800 7C3000 EE3000 EE6000 EE6000 EEE000 EEC000 EEC000 EF8000 7D8000 7F0000 030000 070000 060000 07F3E0 0DF3E0 0FBF70 1BBF70 1BBF70 33BF70 33BF70 33BF70 63BF70 61F3E0 C1F3E0 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 17 4 2 0 BITMAP F1E780 F1E780 F1E780 F1E780 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 14 10 3 16 BITMAP F87C F87C F87C F87C F87C 381C 381C 783C F078 E070 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 18 31 1 0 BITMAP 0F3C00 073800 07F800 03F000 01E000 000000 07FE00 1FFF00 7FFF00 7E0300 F80000 F80000 F80000 FC0000 FF0000 7FC000 3FF000 1FFC00 07FE00 01FF00 007F80 001FC0 000FC0 0007C0 0007C0 800FC0 F01FC0 FFFF80 FFFF00 FFFE00 3FF000 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 14 11 3 -6 BITMAP F87C F87C F87C F87C F87C 381C 381C 381C 783C F078 E070 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 17 24 2 0 BITMAP 1E7800 0E7000 0FF000 07E000 03C000 000000 FFFF80 FFFF80 FFFF80 003F80 007F00 00FE00 01FC00 03F800 07F000 0FE000 1FC000 3F8000 7F0000 7E0000 FFFF80 FFFF80 FFFF80 FFFF80 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lutRS08.bdf100644 1750 1750 56156 5413747542 15251 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaTypewriter-Medium-R-Normal-Sans-11-80-100-100-M-70-ISO8859-1 SIZE 8 100 100 FONTBOUNDINGBOX 9 12 0 -2 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaTypewriter" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 11 POINT_SIZE 80 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "M" AVERAGE_WIDTH 70 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 10 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 7 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 7 0 BBX 1 8 3 0 BITMAP 80 80 80 80 80 80 00 80 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 7 0 BBX 3 3 2 5 BITMAP A0 A0 A0 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 28 28 FC 78 FC 50 50 50 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 -1 BITMAP 20 78 A0 A0 60 30 28 28 F0 20 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 44 A8 B8 50 28 74 54 88 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 38 48 58 60 B2 9A CC 7E ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 7 0 BBX 2 3 2 5 BITMAP C0 40 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 7 0 BBX 4 10 2 -2 BITMAP 30 40 C0 80 80 80 80 40 40 30 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 7 0 BBX 4 10 1 -2 BITMAP C0 20 20 10 10 10 10 20 20 C0 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 7 0 BBX 5 5 1 3 BITMAP 20 A8 50 50 50 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 0 BITMAP 20 20 F8 20 20 20 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 7 0 BBX 2 4 2 -2 BITMAP C0 C0 40 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 0 2 BITMAP FC ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 7 0 BBX 2 1 2 0 BITMAP C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 0 -2 BITMAP 04 08 08 10 10 20 20 40 40 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 70 98 88 88 88 88 88 70 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 60 A0 20 20 20 20 20 F8 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 7 0 BBX 4 8 1 0 BITMAP E0 90 10 30 20 40 80 F0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 7 0 BBX 4 8 1 0 BITMAP E0 10 10 60 10 10 10 E0 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 10 30 70 50 90 F8 10 10 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 7 0 BBX 4 8 1 0 BITMAP F0 80 80 E0 30 10 10 E0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 38 40 80 F0 88 88 88 70 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP F8 08 10 30 20 40 C0 80 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 70 88 88 70 D8 88 88 70 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 70 88 88 88 78 08 10 E0 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 7 0 BBX 1 6 3 0 BITMAP 80 00 00 00 00 80 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 7 0 BBX 1 8 3 -2 BITMAP 80 00 00 00 80 80 80 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP 04 18 E0 60 18 04 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 7 0 BBX 6 4 0 1 BITMAP FC 00 00 FC ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP 80 60 18 1C 60 80 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP F0 88 08 10 20 20 00 20 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 3C 44 9C A4 AC BE 40 38 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 30 30 30 58 48 78 88 84 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP F8 88 88 F0 90 88 88 F0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 3C 40 80 80 80 80 40 3C ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP F8 8C 84 84 84 84 8C F8 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP F8 80 80 F0 80 80 80 F8 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP F8 80 80 80 F0 80 80 80 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 3C 40 80 80 84 84 44 3C ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 88 88 88 F8 88 88 88 88 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP F8 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 7 0 BBX 4 8 1 0 BITMAP 70 10 10 10 10 10 10 E0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 88 90 A0 E0 A0 B0 98 8C ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 80 80 80 80 80 80 80 F8 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP CC CC CC CC B4 B4 B4 84 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 88 C8 C8 A8 A8 98 98 88 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 78 48 84 84 84 84 48 78 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP F8 88 88 88 F0 80 80 80 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 1 -2 BITMAP 78 48 84 84 84 84 4C 78 08 04 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP F8 88 88 98 E0 90 88 8C ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 70 80 80 60 18 08 88 F0 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP FE 10 10 10 10 10 10 10 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 88 88 88 88 88 88 88 70 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 84 84 48 48 48 30 30 30 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 82 92 AA AE 6C 6C 64 44 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP C4 48 30 30 30 78 48 84 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP C6 44 28 28 10 10 10 10 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP FC 08 18 10 20 40 C0 FC ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 7 0 BBX 3 10 3 -2 BITMAP E0 80 80 80 80 80 80 80 80 E0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 0 -2 BITMAP 80 40 40 20 20 10 10 08 08 04 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 7 0 BBX 3 10 1 -2 BITMAP E0 20 20 20 20 20 20 20 20 E0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 1 BITMAP 10 30 30 78 48 48 84 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 7 0 BBX 7 1 0 -1 BITMAP FE ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 7 0 BBX 2 3 2 5 BITMAP C0 80 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 1 0 BITMAP 78 48 78 88 88 7C ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 80 80 B0 C8 88 88 98 F0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 0 BITMAP 78 C0 80 80 C0 78 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 08 08 78 C8 88 88 98 68 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 0 BITMAP 70 88 F8 80 80 78 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 1 0 BITMAP 3C 20 20 FC 20 20 20 20 20 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 -2 BITMAP 78 C8 88 88 98 68 08 F0 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 80 80 B0 C8 88 88 88 88 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 7 0 BBX 3 8 1 0 BITMAP 20 00 E0 20 20 20 20 20 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 7 0 BBX 4 10 1 -2 BITMAP 10 00 F0 10 10 10 10 10 10 E0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 80 80 98 A0 C0 A0 B0 98 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 7 0 BBX 3 8 1 0 BITMAP E0 20 20 20 20 20 20 20 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 0 BITMAP F8 A8 A8 A8 A8 A8 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 0 BITMAP B0 C8 88 88 88 88 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP 78 CC 84 84 CC 78 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 -2 BITMAP B0 C8 88 88 98 F0 80 80 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 -2 BITMAP 78 C8 88 88 98 68 08 08 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 7 0 BBX 4 6 2 0 BITMAP B0 D0 80 80 80 80 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 0 BITMAP 78 80 E0 18 88 F0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 40 F8 40 40 40 40 78 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 0 BITMAP 88 88 88 88 98 68 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP 84 48 48 48 30 30 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP 84 B4 B4 B4 58 48 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP CC 48 30 30 48 CC ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 -2 BITMAP 84 48 48 30 30 30 20 E0 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 0 BITMAP F8 10 30 60 C0 F8 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 7 0 BBX 4 10 1 -2 BITMAP 30 40 40 40 C0 40 40 40 40 30 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 7 0 BBX 1 10 3 -2 BITMAP 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 -2 BITMAP C0 20 20 20 38 20 20 20 20 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 7 0 BBX 6 2 0 2 BITMAP 64 98 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 7 0 BBX 1 8 3 -2 BITMAP 80 00 80 80 80 80 80 80 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 7 0 BBX 4 8 1 0 BITMAP 20 70 A0 A0 A0 A0 70 20 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 7 0 BBX 4 8 2 0 BITMAP 30 40 40 E0 40 40 40 F0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 1 BITMAP 84 78 48 48 78 84 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP C6 6C 38 7C 10 7C 10 10 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 7 0 BBX 1 10 3 -2 BITMAP 80 80 80 80 00 00 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 7 0 BBX 4 10 1 -2 BITMAP 70 80 80 60 90 D0 60 10 90 E0 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 7 0 BBX 3 1 2 7 BITMAP A0 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 70 88 E8 C8 C8 E8 88 70 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 7 0 BBX 5 4 1 4 BITMAP F0 70 90 F8 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 0 BITMAP 28 50 F0 D0 50 28 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 7 0 BBX 6 4 0 1 BITMAP FC 04 04 04 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 1 3 BITMAP F0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 7 0 BBX 4 5 1 3 BITMAP 60 F0 D0 F0 60 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 7 0 BBX 3 1 2 7 BITMAP E0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 2 6 BITMAP C0 C0 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 0 BITMAP 20 20 F8 20 00 F8 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 7 0 BBX 3 4 0 4 BITMAP E0 20 40 E0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 7 0 BBX 3 4 0 4 BITMAP E0 E0 20 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 7 0 BBX 2 1 2 7 BITMAP C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 -2 BITMAP 88 88 88 88 98 E8 80 80 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 7 0 BBX 4 10 1 -2 BITMAP F0 F0 F0 70 30 30 30 30 30 30 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 7 0 BBX 1 1 3 3 BITMAP 80 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 3 -2 BITMAP 80 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 7 0 BBX 3 4 0 4 BITMAP C0 40 40 E0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 7 0 BBX 4 4 1 4 BITMAP 60 90 90 60 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 0 BITMAP A0 50 58 78 50 A0 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 2 0 BITMAP C6 44 48 F0 3C 3C 5E 84 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 2 0 BITMAP C6 44 48 F0 3E 22 44 8E ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 2 0 BITMAP E6 E4 28 F0 3C 3C 5E 84 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 -2 BITMAP 20 00 20 20 40 80 88 78 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 30 30 30 30 58 48 78 88 84 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 30 30 30 30 58 48 78 88 84 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 78 30 30 30 58 48 78 88 84 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 78 30 30 30 58 48 78 88 84 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 28 30 30 30 58 48 78 88 84 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 0 0 BITMAP 30 30 30 30 30 58 48 78 88 84 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 1C 30 30 78 50 70 90 9C ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 7 0 BBX 6 10 0 -2 BITMAP 3C 40 80 80 80 80 40 3C 20 30 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 20 F8 80 80 F0 80 80 80 F8 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 40 F8 80 80 F0 80 80 80 F8 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 0 0 BBX 0 0 0 0 BITMAP ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 50 F8 80 80 F0 80 80 80 F8 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 10 F8 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 40 F8 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 60 F8 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 50 F8 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 7C 46 42 E2 42 42 46 7C ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP F0 88 C8 C8 A8 A8 98 98 88 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 10 78 48 84 84 84 84 48 78 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 20 78 48 84 84 84 84 48 78 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 30 78 48 84 84 84 84 48 78 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 78 78 48 84 84 84 84 48 78 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 50 78 48 84 84 84 84 48 78 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 7 0 BBX 5 6 1 0 BITMAP 20 00 F8 00 00 20 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 74 4C 9C 94 A4 C4 C8 B8 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 30 88 88 88 88 88 88 88 70 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 60 88 88 88 88 88 88 88 70 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP F0 88 88 88 88 88 88 88 70 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 50 88 88 88 88 88 88 88 70 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 30 C6 44 28 28 10 10 10 10 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP 80 F0 88 88 88 88 F0 80 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP F0 90 90 A0 A0 90 88 88 B0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 10 78 48 78 88 88 7C ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 20 78 48 78 88 88 7C ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 30 78 48 78 88 88 7C ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 78 78 48 78 88 88 7C ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 1 0 BITMAP 50 78 48 78 88 88 7C ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 1 0 BITMAP 30 30 78 48 78 88 88 7C ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 7 0 BBX 7 6 0 0 BITMAP 6C 12 7E 90 90 6E ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 -2 BITMAP 78 C0 80 80 C0 78 20 30 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 10 70 88 F8 80 80 78 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 40 70 88 F8 80 80 78 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP E0 70 88 F8 80 80 78 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 50 70 88 F8 80 80 78 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 7 0 BBX 3 7 1 0 BITMAP 20 E0 20 20 20 20 20 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 7 0 BBX 3 7 1 0 BITMAP 40 E0 20 20 20 20 20 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 7 0 BBX 4 7 1 0 BITMAP 70 E0 20 20 20 20 20 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 7 0 BBX 4 7 1 0 BITMAP 50 E0 20 20 20 20 20 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 7 0 BBX 5 8 1 0 BITMAP E0 50 70 88 88 88 D8 70 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP F0 B0 C8 88 88 88 88 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 10 78 CC 84 84 CC 78 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 20 78 CC 84 84 CC 78 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 30 78 CC 84 84 CC 78 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 78 78 CC 84 84 CC 78 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 7 0 BBX 6 7 0 0 BITMAP 50 78 CC 84 84 CC 78 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP 84 48 30 30 48 84 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP 7C CC 94 A4 CC F8 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 30 88 88 88 88 98 68 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 60 88 88 88 88 98 68 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 78 88 88 88 88 98 68 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 50 88 88 88 88 98 68 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 -2 BITMAP 30 84 48 48 30 30 30 20 E0 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 -2 BITMAP 80 80 B0 C8 88 88 98 F0 80 80 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 -2 BITMAP 50 84 48 48 30 30 30 20 E0 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 78 48 48 E8 48 48 48 48 48 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 1 1 3 BITMAP F8 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 -2 BITMAP 20 20 20 F8 20 20 20 20 20 20 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 9 0 0 BITMAP 30 FC 08 18 10 20 40 C0 FC ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 6 0 0 BITMAP 78 94 9C 90 90 7C ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 9 0 0 BITMAP 28 C6 44 28 28 10 10 10 10 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 6 1 0 BITMAP E0 20 20 20 20 20 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 8 1 0 BITMAP E0 20 30 30 60 60 20 20 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 40 40 60 60 C0 40 40 7C ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 -2 BITMAP 20 20 20 F8 20 20 F8 20 20 20 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP 20 68 40 F8 48 48 48 48 48 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 6 2 0 BITMAP 80 40 60 60 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP 7C 90 90 98 90 90 90 7C ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 1 0 3 BITMAP FC ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 1 7 BITMAP F0 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 2 -2 BITMAP C0 C0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 1 7 BITMAP F0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 6 2 0 BITMAP 20 40 C0 C0 40 20 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 1 1 3 7 BITMAP 80 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 1 7 BITMAP F0 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 3 3 2 1 BITMAP E0 E0 E0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 1 7 BITMAP F0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 1 1 7 BITMAP F0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 3 1 5 BITMAP B0 A0 B0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 1 3 3 5 BITMAP 80 80 80 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP E0 78 80 E0 18 88 F0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 2 2 8 BITMAP C0 C0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 4 2 -2 BITMAP C0 C0 40 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 10 1 -2 BITMAP 18 20 20 40 E0 40 40 C0 80 80 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 4 0 4 BITMAP F2 5E 5E 52 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 7 8 0 0 BITMAP 06 04 08 10 30 20 40 80 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 2 1 2 7 BITMAP C0 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 6 8 0 0 BITMAP D0 D0 E0 20 7C 7C BC BC ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 1 1 0 BITMAP A8 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 3 1 5 BITMAP 90 90 90 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 9 1 0 BITMAP E0 70 80 80 60 18 08 88 F0 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 4 4 1 -2 BITMAP 90 90 90 90 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 7 0 BBX 5 7 1 0 BITMAP 30 F8 10 30 60 C0 F8 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lutRS10.bdf100644 1750 1750 60746 5413747542 15242 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaTypewriter-Medium-R-Normal-Sans-14-100-100-100-M-80-ISO8859-1 SIZE 10 100 100 FONTBOUNDINGBOX 11 16 -1 -3 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaTypewriter" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 14 POINT_SIZE 100 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "M" AVERAGE_WIDTH 80 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 12 FONT_DESCENT 3 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 8 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 8 0 BBX 1 10 4 0 BITMAP 80 80 80 80 80 80 80 00 00 80 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 8 0 BBX 4 3 2 7 BITMAP 90 90 90 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 12 12 16 7F 24 24 FE 68 48 48 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 8 0 BBX 5 12 2 -1 BITMAP 20 78 A0 A0 E0 60 30 28 28 A8 F0 20 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 61 92 94 9C 68 10 36 29 49 86 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 8 0 BBX 9 10 0 0 BITMAP 1C00 2200 2200 3C00 7000 D880 8C80 8780 C300 3D80 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 8 0 BBX 2 4 3 6 BITMAP C0 C0 40 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 8 0 BBX 5 13 2 -3 BITMAP 18 30 40 C0 80 80 80 80 80 40 40 20 18 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 8 0 BBX 5 13 1 -3 BITMAP C0 60 10 10 08 08 08 08 08 10 10 20 C0 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 8 0 BBX 6 6 1 4 BITMAP 30 B4 CC 28 78 48 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 10 10 10 FE 10 10 10 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 8 0 BBX 2 5 3 -3 BITMAP C0 C0 40 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 8 0 BBX 7 1 1 3 BITMAP FE ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 8 0 BBX 2 1 3 0 BITMAP C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 1 -3 BITMAP 02 04 04 08 08 10 10 10 20 20 40 40 80 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 38 44 82 82 82 82 82 82 44 38 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 30 F0 10 10 10 10 10 10 10 FE ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 8 0 BBX 5 10 2 0 BITMAP F0 88 08 08 18 30 20 40 C0 F8 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 8 0 BBX 5 10 2 0 BITMAP F0 88 08 08 70 18 08 08 18 F0 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 18 18 38 28 48 88 FC 08 08 08 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 8 0 BBX 5 10 2 0 BITMAP F8 80 80 80 E0 18 08 08 18 F0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 3C 44 40 80 BC C6 82 82 46 3C ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP FC 0C 08 18 10 10 20 20 40 40 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 78 84 84 CC 70 58 84 84 C4 78 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 78 C4 82 82 C6 7A 02 04 04 78 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 8 0 BBX 1 7 4 0 BITMAP 80 00 00 00 00 00 80 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 8 0 BBX 1 10 4 -3 BITMAP 80 00 00 00 00 80 80 80 80 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 02 0C 30 C0 30 0C 02 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 8 0 BBX 7 3 1 2 BITMAP FE 00 FE ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 80 60 18 06 18 60 80 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP F8 84 04 0C 18 20 20 00 00 10 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 8 0 BBX 9 10 0 0 BITMAP 1E00 6100 4700 8900 9100 9300 9700 CD80 6200 3E00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 18 18 18 24 24 24 7E 42 42 81 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP F8 84 84 8C F8 88 84 84 84 F8 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 3E 62 40 80 80 80 80 40 60 3E ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP F8 84 82 82 82 82 82 82 84 F8 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 2 0 BITMAP FC 80 80 80 F8 80 80 80 80 FC ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 2 0 BITMAP FC 80 80 80 80 F8 80 80 80 80 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 3E 62 40 80 80 82 82 42 62 3E ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 84 84 84 84 FC 84 84 84 84 84 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 8 0 BBX 5 10 2 0 BITMAP F8 20 20 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 8 0 BBX 5 10 1 0 BITMAP 78 08 08 08 08 08 08 08 08 F0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 84 88 90 A0 E0 A0 B0 98 8C 86 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 2 0 BITMAP 80 80 80 80 80 80 80 80 80 FC ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP C6 C6 C6 C6 AA AA AA AA 92 82 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 84 C4 C4 A4 A4 94 94 8C 8C 84 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 3C 42 C3 81 81 81 81 C3 42 3C ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 2 0 BITMAP F8 84 84 84 88 F0 80 80 80 80 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 8 0 BBX 9 13 0 -3 BITMAP 3C00 4200 C200 8100 8100 8100 8100 C300 4300 3E00 0400 0300 0180 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP F8 84 84 84 88 F0 98 88 84 86 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 78 84 80 C0 60 18 04 04 8C F8 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP FE 10 10 10 10 10 10 10 10 10 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 84 84 84 84 84 84 84 84 84 78 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 81 42 42 42 24 24 24 18 18 18 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 81 91 91 AA AA 6A 6A 6A 44 44 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP C3 62 24 18 18 18 3C 24 42 C3 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP C3 42 24 24 18 10 10 10 10 10 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP FE 04 04 08 10 10 20 40 40 FE ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 8 0 BBX 4 13 3 -3 BITMAP F0 80 80 80 80 80 80 80 80 80 80 80 F0 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 1 -3 BITMAP 80 40 40 20 20 10 10 10 08 08 04 04 02 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 8 0 BBX 4 13 1 -3 BITMAP F0 10 10 10 10 10 10 10 10 10 10 10 F0 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 2 BITMAP 10 10 38 28 28 44 44 82 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 8 0 BBX 8 1 0 -2 BITMAP FF ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 8 0 BBX 2 4 3 6 BITMAP C0 80 C0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 7C 44 04 7C C4 84 7E ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 80 80 80 B8 CC 84 84 84 8C F8 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP 3C 40 80 80 80 40 3C ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 04 04 04 7C C4 84 84 84 CC 74 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP 78 CC 84 FC 80 44 3C ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 8 0 BBX 7 11 1 0 BITMAP 1E 20 20 20 FE 20 20 20 20 20 20 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 -3 BITMAP 3A 46 82 82 82 C6 7A 02 42 7C ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 80 80 80 B8 C4 84 84 84 84 84 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 8 0 BBX 4 10 1 0 BITMAP 10 00 00 F0 10 10 10 10 10 10 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 8 0 BBX 5 13 1 -3 BITMAP 08 00 00 78 08 08 08 08 08 08 08 08 F0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 2 0 BITMAP 80 80 80 98 90 A0 E0 B0 90 8C ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 8 0 BBX 4 10 1 0 BITMAP F0 10 10 10 10 10 10 10 10 10 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP B6 DA 92 92 92 92 92 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP B8 C4 84 84 84 84 84 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 38 44 82 82 82 44 38 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 -3 BITMAP B8 CC 84 84 84 8C F8 80 80 80 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 -3 BITMAP 7C C4 84 84 84 CC 74 04 04 04 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 8 0 BBX 5 7 2 0 BITMAP B8 C8 80 80 80 80 80 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP 7C 80 C0 78 04 84 F8 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 20 20 FC 20 20 20 20 20 1C ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 8 0 BBX 6 7 1 0 BITMAP 84 84 84 84 84 8C 74 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 0 0 BITMAP 81 42 42 24 24 18 18 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 0 0 BITMAP 81 99 9A 6A 66 66 66 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP C6 6C 28 10 28 4C C6 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 -3 BITMAP 82 44 44 2C 28 28 10 10 20 E0 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP FE 04 08 10 20 40 FE ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 8 0 BBX 5 13 2 -3 BITMAP 18 20 20 20 20 20 C0 20 20 20 20 20 18 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 8 0 BBX 1 13 4 -3 BITMAP 80 80 80 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 8 0 BBX 5 13 2 -3 BITMAP C0 20 20 20 20 20 18 20 20 20 20 20 C0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 8 0 BBX 7 3 1 2 BITMAP 62 92 8C ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 8 0 BBX 1 10 4 -3 BITMAP 80 00 00 80 80 80 80 80 80 80 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP 10 3C 54 90 90 90 90 54 3C 10 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 8 0 BBX 5 10 2 0 BITMAP 38 40 40 40 E0 40 40 40 80 F8 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 8 0 BBX 7 8 1 1 BITMAP 82 C6 7C 44 44 44 7C 82 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP C6 44 28 10 7C 10 7C 10 10 10 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 8 0 BBX 1 13 4 -3 BITMAP 80 80 80 80 80 00 00 00 80 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 8 0 BBX 5 13 2 -3 BITMAP 78 80 80 C0 70 98 88 C8 30 18 08 88 F0 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 8 0 BBX 4 1 2 9 BITMAP 90 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 3C 42 9D B1 A1 A1 B1 9D 42 3C ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 8 0 BBX 5 5 2 5 BITMAP F0 90 70 90 F8 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 12 24 48 D8 48 24 12 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 8 0 BBX 7 3 1 2 BITMAP FE 02 02 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 8 0 BBX 6 1 1 3 BITMAP FC ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 8 0 BBX 7 6 1 4 BITMAP 38 FE AA BA EE 38 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 8 0 BBX 4 1 2 9 BITMAP F0 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 8 0 BBX 3 2 4 8 BITMAP E0 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 10 10 FE 10 10 00 FE ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 8 0 BBX 3 5 -1 5 BITMAP E0 20 60 40 E0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 8 0 BBX 3 5 -1 5 BITMAP E0 20 C0 20 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 8 0 BBX 3 1 3 9 BITMAP E0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 -3 BITMAP 84 84 84 84 84 8C F4 80 80 80 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 8 0 BBX 6 13 1 -3 BITMAP 7C F4 F4 F4 74 14 14 14 14 14 14 14 14 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 8 0 BBX 2 1 3 3 BITMAP C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 8 0 BBX 2 3 3 -3 BITMAP 80 40 C0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 8 0 BBX 3 5 -1 5 BITMAP C0 40 40 40 E0 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 8 0 BBX 5 5 2 5 BITMAP 70 88 88 88 70 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 90 48 24 36 64 48 90 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 2 0 BITMAP C3 42 44 4C E8 12 36 2A 4F 82 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 2 0 BITMAP C3 42 44 4C E8 17 31 23 42 87 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 2 0 BITMAP E3 22 C4 2C E8 12 36 2A 4F 82 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 -3 BITMAP 20 00 00 10 30 60 C0 80 C4 7C ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 0 0 BITMAP 1C 00 18 18 18 24 24 24 7E 42 42 81 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 0 0 BITMAP 38 00 18 18 18 24 24 24 7E 42 42 81 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 0 0 BITMAP 3E 00 18 18 18 24 24 24 7E 42 42 81 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 0 0 BITMAP 3E 00 18 18 18 24 24 24 7E 42 42 81 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 0 0 BITMAP 24 00 18 18 18 24 24 24 7E 42 42 81 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 8 0 BBX 8 13 0 0 BITMAP 18 18 00 18 18 18 24 24 24 7E 42 42 81 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 0F 18 18 18 28 2E 68 78 48 8F ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 8 0 BBX 7 13 1 -3 BITMAP 3E 62 40 80 80 80 80 40 60 3E 10 08 18 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 8 0 BBX 6 12 2 0 BITMAP 70 00 FC 80 80 80 F8 80 80 80 80 FC ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 8 0 BBX 6 12 2 0 BITMAP 70 00 FC 80 80 80 F8 80 80 80 80 FC ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 0 0 BBX 0 0 0 0 BITMAP ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 8 0 BBX 6 12 2 0 BITMAP 48 00 FC 80 80 80 F8 80 80 80 80 FC ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 8 0 BBX 5 12 2 0 BITMAP 70 00 F8 20 20 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 8 0 BBX 5 12 2 0 BITMAP 70 00 F8 20 20 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 8 0 BBX 5 12 2 0 BITMAP F8 00 F8 20 20 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 8 0 BBX 5 12 2 0 BITMAP 90 00 F8 20 20 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 7C 42 41 41 F1 41 41 41 42 7C ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 8 0 BBX 6 12 1 0 BITMAP 7C 00 84 C4 C4 A4 A4 94 94 8C 8C 84 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 0 0 BITMAP 1C 00 3C 42 C3 81 81 81 81 C3 42 3C ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 0 0 BITMAP 38 00 3C 42 C3 81 81 81 81 C3 42 3C ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 0 0 BITMAP 3E 00 3C 42 C3 81 81 81 81 C3 42 3C ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 0 0 BITMAP 3E 00 3C 42 C3 81 81 81 81 C3 42 3C ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 0 0 BITMAP 24 00 3C 42 C3 81 81 81 81 C3 42 3C ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 10 00 00 FE 00 00 10 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 3F 43 C7 85 89 91 A1 E3 C2 FC ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 8 0 BBX 6 12 1 0 BITMAP 38 00 84 84 84 84 84 84 84 84 84 78 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 8 0 BBX 6 12 1 0 BITMAP 70 00 84 84 84 84 84 84 84 84 84 78 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 8 0 BBX 6 12 1 0 BITMAP F8 00 84 84 84 84 84 84 84 84 84 78 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 8 0 BBX 6 12 1 0 BITMAP 48 00 84 84 84 84 84 84 84 84 84 78 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 0 0 BITMAP 38 00 C3 42 24 24 18 10 10 10 10 10 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 2 0 BITMAP 80 80 F8 84 84 84 88 F0 80 80 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 2 0 BITMAP 70 88 88 90 A0 A0 90 8C 84 A4 B8 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 38 00 7C 44 04 7C C4 84 7E ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 38 00 7C 44 04 7C C4 84 7E ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 7C 00 7C 44 04 7C C4 84 7E ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 7C 00 7C 44 04 7C C4 84 7E ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 48 00 7C 44 04 7C C4 84 7E ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP 30 30 00 7C 44 04 7C C4 84 7E ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 0 0 BITMAP 76 09 09 7F 88 88 7F ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 -3 BITMAP 3C 40 80 80 80 40 3C 20 10 30 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 38 00 78 CC 84 FC 80 44 3C ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 70 00 78 CC 84 FC 80 44 3C ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP F8 00 78 CC 84 FC 80 44 3C ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 48 00 78 CC 84 FC 80 44 3C ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 8 0 BBX 5 9 1 0 BITMAP 38 00 F0 10 10 10 10 10 10 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 8 0 BBX 4 9 1 0 BITMAP 70 00 F0 10 10 10 10 10 10 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 8 0 BBX 5 9 1 0 BITMAP F8 00 F0 10 10 10 10 10 10 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 8 0 BBX 5 9 1 0 BITMAP 48 00 F0 10 10 10 10 10 10 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 8 0 BBX 7 10 1 0 BITMAP F8 78 8C 3C 46 82 82 82 44 38 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP F8 00 B8 C4 84 84 84 84 84 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 38 00 38 44 82 82 82 44 38 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 38 00 38 44 82 82 82 44 38 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 7C 00 38 44 82 82 82 44 38 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 7C 00 38 44 82 82 82 44 38 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 48 00 38 44 82 82 82 44 38 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 82 44 28 10 28 44 82 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 8 0 BBX 7 7 1 0 BITMAP 3E 46 8A 92 A2 C4 F8 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 38 00 84 84 84 84 84 8C 74 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 70 00 84 84 84 84 84 8C 74 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 7C 00 84 84 84 84 84 8C 74 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP 48 00 84 84 84 84 84 8C 74 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 8 0 BBX 7 12 1 -3 BITMAP 38 00 82 44 44 2C 28 28 10 10 20 E0 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 8 0 BBX 6 13 1 -3 BITMAP 80 80 80 B8 CC 84 84 84 8C F8 80 80 80 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 8 0 BBX 7 12 1 -3 BITMAP 48 00 82 44 44 2C 28 28 10 10 20 E0 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 0 BITMAP 3C 44 44 44 F4 44 44 44 44 44 44 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 1 1 3 BITMAP FE ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 13 2 -3 BITMAP 20 20 20 20 F8 20 20 20 20 20 20 20 20 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 12 1 0 BITMAP 7C 00 FE 04 04 08 10 10 20 40 40 FE ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 7 0 0 BITMAP 76 D9 89 8F 88 89 7F ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 12 0 0 BITMAP 24 00 C3 42 24 24 18 10 10 10 10 10 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 4 7 1 0 BITMAP F0 10 10 10 10 10 10 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 10 1 0 BITMAP F0 10 10 14 18 70 50 10 10 10 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 20 20 20 28 30 E0 A0 20 20 3F ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 13 2 -3 BITMAP 20 20 20 20 F8 20 20 20 F8 20 20 20 20 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 11 1 0 BITMAP 30 74 40 40 FC 44 44 44 44 44 44 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 4 7 2 0 BITMAP 80 40 20 30 20 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 7F C8 88 88 8E 88 88 88 C8 7F ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 1 0 3 BITMAP FF ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 1 2 9 BITMAP F8 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 2 3 3 -3 BITMAP C0 80 C0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 1 2 9 BITMAP F8 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 4 7 2 0 BITMAP 10 20 40 C0 40 20 10 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 1 1 4 9 BITMAP 80 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 1 2 9 BITMAP F8 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 4 4 2 1 BITMAP F0 F0 F0 F0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 1 2 9 BITMAP F8 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 1 2 9 BITMAP F8 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 3 2 7 BITMAP 98 90 98 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 3 4 3 6 BITMAP E0 E0 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 9 1 0 BITMAP F8 00 7C 80 C0 78 04 84 F8 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 2 2 3 9 BITMAP C0 C0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 2 5 3 -3 BITMAP C0 C0 40 40 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 13 2 -3 BITMAP 1C 10 20 20 20 F0 40 40 40 C0 80 80 80 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 5 1 5 BITMAP F2 5A 5E 5A 52 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 8 10 0 0 BITMAP 03 02 04 0C 08 10 30 20 40 80 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 3 1 3 9 BITMAP E0 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 9 10 0 0 BITMAP 4400 A800 A800 5000 1000 2900 3680 5680 5680 8900 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 1 1 0 BITMAP 92 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 3 2 7 BITMAP 88 88 88 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 6 12 1 0 BITMAP F8 00 78 84 80 C0 60 18 04 04 8C F8 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 5 4 2 -3 BITMAP 88 88 88 88 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 8 0 BBX 7 9 1 0 BITMAP 7C 00 FE 04 08 10 20 40 FE ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lutRS12.bdf100644 1750 1750 67051 5413747543 15241 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaTypewriter-Medium-R-Normal-Sans-17-120-100-100-M-100-ISO8859-1 SIZE 12 100 100 FONTBOUNDINGBOX 13 18 -1 -3 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaTypewriter" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 17 POINT_SIZE 120 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "M" AVERAGE_WIDTH 100 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 15 FONT_DESCENT 4 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 10 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 10 0 BBX 1 12 5 0 BITMAP 80 80 80 80 80 80 80 80 80 00 00 80 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 10 0 BBX 5 4 3 8 BITMAP 88 88 88 88 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 0900 1B00 1200 7F80 1200 2400 FF00 2400 2400 4C00 4800 4800 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 10 0 BBX 7 14 2 -1 BITMAP 10 7E D2 90 90 F0 30 1C 16 12 12 96 FC 10 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 70C0 D880 8900 8A00 DE00 7400 0800 1380 1440 2440 4440 C380 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 10 0 BBX 11 12 0 0 BITMAP 1E00 2100 2100 2300 1C00 3000 C820 8420 8260 81C0 41C0 3EE0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 10 0 BBX 2 4 4 8 BITMAP C0 C0 40 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 10 0 BBX 5 14 3 -2 BITMAP 18 30 60 40 80 80 80 80 80 80 40 40 30 18 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 10 0 BBX 5 14 2 -2 BITMAP C0 60 30 10 08 08 08 08 08 08 10 10 60 C0 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 10 0 BBX 8 7 1 5 BITMAP 18 18 DB 66 2C 76 24 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 0800 0800 0800 0800 FF80 0800 0800 0800 0800 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 10 0 BBX 2 6 4 -3 BITMAP C0 C0 C0 40 40 80 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 10 0 BBX 9 1 1 4 BITMAP FF80 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 10 0 BBX 2 2 4 0 BITMAP C0 C0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 10 0 BBX 9 14 1 -2 BITMAP 0180 0100 0300 0200 0400 0400 0800 0800 1000 1000 2000 6000 4000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 3C 46 82 81 81 81 81 81 81 81 42 3C ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 10 0 BBX 7 12 2 0 BITMAP 10 F0 10 10 10 10 10 10 10 10 10 FE ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 10 0 BBX 6 12 2 0 BITMAP 78 8C 04 04 04 08 18 30 60 40 C0 FC ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 10 0 BBX 6 12 2 0 BITMAP F8 8C 04 04 08 70 0C 04 04 04 88 F0 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 04 0C 1C 14 24 24 44 84 FF 04 04 04 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 10 0 BBX 6 12 2 0 BITMAP FC 80 80 80 F0 18 04 04 04 04 88 F0 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 1E 22 40 80 BC C2 81 81 81 81 42 3C ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 10 0 BBX 7 12 2 0 BITMAP FE 06 04 0C 08 18 10 30 20 20 40 40 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 3E 63 41 41 72 3C 46 83 81 81 42 3C ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 3C 42 81 81 81 81 43 3D 01 02 44 78 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 10 0 BBX 2 9 4 0 BITMAP C0 C0 00 00 00 00 00 C0 C0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 10 0 BBX 2 12 4 -3 BITMAP C0 C0 00 00 00 00 00 C0 C0 40 40 80 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 0080 0380 0E00 3800 E000 3800 0E00 0380 0080 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 10 0 BBX 9 5 1 2 BITMAP FF80 0000 0000 0000 FF80 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 8000 E000 3800 0E00 0380 0E00 3800 E000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 10 0 BBX 7 12 2 0 BITMAP FC 86 82 02 04 08 10 10 10 00 00 10 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 1E00 2100 4700 8900 9100 9100 9300 9300 9700 4D80 6200 1E00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 0C00 0C00 0C00 1200 1200 1200 2100 2100 7F00 4080 4080 80C0 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP FE 83 81 81 87 FC 86 83 81 81 83 FE ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 1F80 2080 4000 C000 8000 8000 8000 8000 C000 4000 3080 1F80 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP FE00 8300 8180 8080 8080 8080 8080 8080 8080 8100 8300 FC00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 10 0 BBX 7 12 2 0 BITMAP FE 80 80 80 80 FC 80 80 80 80 80 FE ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 10 0 BBX 7 12 2 0 BITMAP FE 80 80 80 80 80 FC 80 80 80 80 80 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 0 0 BITMAP 1F80 2080 4000 8000 8000 8000 8000 8080 C080 4080 3080 1F80 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 81 81 81 81 81 FF 81 81 81 81 81 81 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 10 0 BBX 7 12 2 0 BITMAP FE 10 10 10 10 10 10 10 10 10 10 FE ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 10 0 BBX 5 12 2 0 BITMAP 78 08 08 08 08 08 08 08 08 08 88 F0 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 8300 8600 8C00 9800 9000 A000 E000 9000 8800 8400 8200 8180 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 10 0 BBX 7 12 2 0 BITMAP 80 80 80 80 80 80 80 80 80 80 80 FE ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP C180 C180 E380 A280 A280 A280 9480 9480 9480 9480 8880 8080 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 81 C1 E1 A1 91 91 89 89 85 83 83 81 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 3E00 6300 4100 8080 8080 8080 8080 8080 8080 4100 6300 3E00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 2 0 BITMAP FE 83 81 81 81 82 FC 80 80 80 80 80 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 10 0 BBX 10 15 0 -3 BITMAP 3C00 6300 4100 8080 8080 8080 8080 8080 8080 4180 6300 1F00 0200 01C0 0080 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 10 0 BBX 7 12 2 0 BITMAP FC 86 82 82 82 8C F8 88 8C 84 82 82 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 3F C1 80 80 40 38 06 03 01 01 82 7C ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP FF80 0800 0800 0800 0800 0800 0800 0800 0800 0800 0800 0800 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 81 81 81 81 81 81 81 81 81 81 C2 7C ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP C040 4080 4080 2080 2100 2100 1300 1200 1200 0C00 0C00 0C00 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 8040 8840 88C0 9C80 D480 D480 5480 5580 5380 6300 4100 4100 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 40C0 2180 2100 1200 0E00 0C00 0C00 1200 1200 2100 4180 C0C0 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP C180 4100 2200 2200 1400 1400 0800 0800 0800 0800 0800 0800 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP FF80 0100 0300 0200 0400 0800 0800 1000 2000 6000 4000 FF80 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 10 0 BBX 5 14 4 -2 BITMAP F8 80 80 80 80 80 80 80 80 80 80 80 80 F8 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 10 0 BBX 9 14 1 -2 BITMAP C000 4000 6000 2000 1000 1000 0800 0800 0400 0400 0200 0300 0100 0180 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 10 0 BBX 5 14 1 -2 BITMAP F8 08 08 08 08 08 08 08 08 08 08 08 08 F8 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 10 0 BBX 9 10 1 2 BITMAP 0800 0800 0800 1400 1400 2200 2200 4100 4100 8080 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 10 0 BBX 10 1 0 -1 BITMAP FFC0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 10 0 BBX 2 4 4 8 BITMAP C0 80 C0 C0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 10 0 BBX 8 9 1 0 BITMAP 7C 42 02 02 3E C2 82 86 7B ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 80 80 80 BC E2 81 81 81 81 83 C2 BC ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 10 0 BBX 7 9 2 0 BITMAP 3E 42 80 80 80 80 C0 42 3E ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 01 01 01 3D 43 C1 81 81 81 81 47 3D ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 10 0 BBX 8 9 1 0 BITMAP 3E 42 81 81 FF 80 80 41 3F ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 2 0 BITMAP 1F 20 20 20 FF 20 20 20 20 20 20 20 20 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 -3 BITMAP 3D 43 81 81 81 81 81 47 3D 01 41 7E ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 10 0 BBX 7 12 2 0 BITMAP 80 80 80 BC C2 82 82 82 82 82 82 82 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 10 0 BBX 4 12 2 0 BITMAP 10 00 00 F0 10 10 10 10 10 10 10 10 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 10 0 BBX 5 15 2 -3 BITMAP 08 00 00 78 08 08 08 08 08 08 08 08 08 88 F0 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 10 0 BBX 7 12 2 0 BITMAP 80 80 80 8C 98 90 A0 E0 B0 98 88 86 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 10 0 BBX 4 12 2 0 BITMAP F0 10 10 10 10 10 10 10 10 10 10 10 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP B380 CC80 8880 8880 8880 8880 8880 8880 8880 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 10 0 BBX 7 9 2 0 BITMAP BC C2 82 82 82 82 82 82 82 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 3E00 6300 C180 8080 8080 8080 C180 6300 3E00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 -3 BITMAP BC E2 81 81 81 81 83 C2 BC 80 80 80 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 -3 BITMAP 3D 43 C1 81 81 81 81 47 3D 01 01 01 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 10 0 BBX 6 9 3 0 BITMAP BC C4 80 80 80 80 80 80 80 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 10 0 BBX 7 9 2 0 BITMAP 7E 80 80 E0 38 06 02 86 FC ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 10 0 BBX 7 11 2 0 BITMAP 20 20 FE 20 20 20 20 20 20 20 1E ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 10 0 BBX 7 9 2 0 BITMAP 82 82 82 82 82 82 82 86 7A ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP C080 4100 4100 2200 2200 1600 1400 1400 0800 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 0 0 BITMAP 8040 8C40 8C80 5480 5280 5280 5280 6300 6300 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP C100 2200 3600 1400 0800 1400 2600 6200 C180 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 -3 BITMAP C080 4100 4100 2200 2200 1400 1400 0800 0800 1800 1000 E000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 10 0 BBX 8 9 1 0 BITMAP FF 02 04 08 18 30 60 40 FF ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 10 0 BBX 6 14 2 -2 BITMAP 1C 20 20 20 20 20 20 E0 20 20 20 20 20 1C ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 10 0 BBX 1 14 5 -2 BITMAP 80 80 80 80 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 10 0 BBX 7 14 1 -2 BITMAP E0 10 10 10 10 10 10 0E 10 10 10 10 10 E0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 10 0 BBX 9 3 1 3 BITMAP 7080 8880 8700 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 10 0 BBX 1 12 5 -3 BITMAP 80 00 00 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 10 0 BBX 7 12 2 0 BITMAP 08 1E 3A 48 88 88 88 88 88 6E 38 08 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 10 0 BBX 6 12 2 0 BITMAP 1C 20 20 20 20 F8 20 20 20 20 C0 FC ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 10 0 BBX 9 8 1 2 BITMAP 8080 7F00 6300 4100 4100 6300 7F00 8080 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP C180 4100 2200 1600 1400 0800 7E00 0800 7E00 0800 0800 0800 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 10 0 BBX 1 14 5 -2 BITMAP 80 80 80 80 80 80 00 00 80 80 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 10 0 BBX 7 15 2 -3 BITMAP 3E C2 80 80 F0 DC 86 82 C2 3C 0E 02 02 86 FC ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 10 0 BBX 5 1 3 11 BITMAP 98 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 1F00 6180 40C0 9F40 B140 A040 A040 B040 9F40 C080 6180 3E00 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 10 0 BBX 6 6 2 6 BITMAP F8 08 78 88 88 7C ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 10 0 BBX 8 7 1 1 BITMAP 11 32 64 C8 64 22 11 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 10 0 BBX 9 5 1 2 BITMAP FF80 0080 0080 0080 0080 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 10 0 BBX 7 1 2 5 BITMAP FE ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 10 0 BBX 7 7 2 5 BITMAP 38 7C AA B2 AA 44 38 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 10 0 BBX 5 1 3 11 BITMAP F8 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 10 0 BBX 3 2 4 10 BITMAP E0 E0 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 0800 0800 0800 FF80 0800 0800 0800 0000 FF80 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 10 0 BBX 4 6 -1 6 BITMAP E0 10 10 60 40 F0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 10 0 BBX 4 6 -1 6 BITMAP F0 10 60 10 10 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 10 0 BBX 4 2 3 10 BITMAP 70 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 10 0 BBX 7 11 2 -2 BITMAP 82 82 82 82 82 82 82 8E FA 80 80 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 10 0 BBX 6 14 2 -2 BITMAP 7C F4 F4 F4 F4 34 14 14 14 14 14 14 14 14 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 10 0 BBX 2 1 4 5 BITMAP C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 10 0 BBX 3 3 4 -3 BITMAP C0 20 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 10 0 BBX 5 6 0 6 BITMAP E0 20 20 20 20 F8 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 10 0 BBX 7 6 2 6 BITMAP 7C C6 82 82 C6 7C ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 10 0 BBX 8 7 1 1 BITMAP 88 4C 26 13 26 4C 88 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 2 0 BITMAP E0C0 2080 2100 2200 2600 FC00 0980 1980 1280 2680 47C0 C080 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 2 0 BITMAP E0C0 2080 2100 2200 2600 FC00 0B80 1840 1040 2180 4100 C3C0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 2 0 BITMAP F0C0 1080 6100 1200 1600 E400 0980 1980 1280 2680 47C0 C080 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 10 0 BBX 7 12 2 -3 BITMAP 10 00 00 10 10 10 20 40 80 82 C2 7E ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 10 0 BBX 10 15 0 0 BITMAP 1C00 0600 0000 0C00 0C00 0C00 1200 1200 1200 2100 2100 7F00 4080 4080 80C0 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 10 0 BBX 10 15 0 0 BITMAP 0E00 1800 0000 0C00 0C00 0C00 1200 1200 1200 2100 2100 7F00 4080 4080 80C0 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 10 0 BBX 10 15 0 0 BITMAP 1E00 3300 0000 0C00 0C00 0C00 1200 1200 1200 2100 2100 7F00 4080 4080 80C0 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 10 0 BBX 10 14 0 0 BITMAP 3F00 0000 0C00 0C00 0C00 1200 1200 1200 2100 2100 7F00 4080 4080 80C0 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 10 0 BBX 10 14 0 0 BITMAP 1300 0000 0C00 0C00 0C00 1200 1200 1200 2100 2100 7F00 4080 4080 80C0 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 10 0 BBX 10 15 0 0 BITMAP 0E00 0E00 0000 0C00 0C00 0C00 1200 1200 1200 2100 2100 7F00 4080 4080 80C0 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 0 0 BITMAP 0F80 0C00 0C00 1400 1400 3700 2400 2400 7C00 4400 4400 8780 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 10 0 BBX 9 15 1 -3 BITMAP 1F80 2080 4000 C000 8000 8000 8000 8000 C000 4000 3080 1F80 0800 0400 1C00 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 10 0 BBX 7 15 2 0 BITMAP 70 18 00 FE 80 80 80 80 FC 80 80 80 80 80 FE ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 10 0 BBX 7 15 2 0 BITMAP 38 60 00 FE 80 80 80 80 FC 80 80 80 80 80 FE ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 0 0 BBX 0 0 0 0 BITMAP ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 10 0 BBX 7 14 2 0 BITMAP 4C 00 FE 80 80 80 80 FC 80 80 80 80 80 FE ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 10 0 BBX 7 15 2 0 BITMAP 38 0C 00 FE 10 10 10 10 10 10 10 10 10 10 FE ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 10 0 BBX 7 15 2 0 BITMAP 38 60 00 FE 10 10 10 10 10 10 10 10 10 10 FE ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 10 0 BBX 7 15 2 0 BITMAP 78 CC 00 FE 10 10 10 10 10 10 10 10 10 10 FE ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 10 0 BBX 7 14 2 0 BITMAP 4C 00 FE 10 10 10 10 10 10 10 10 10 10 FE ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 7F00 4180 40C0 4040 4040 F040 4040 4040 4040 4080 4180 7E00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 10 0 BBX 8 14 1 0 BITMAP 7E 00 81 C1 E1 A1 91 91 89 89 85 83 83 81 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 10 0 BBX 9 15 1 0 BITMAP 1C00 0600 0000 3E00 6300 4100 8080 8080 8080 8080 8080 8080 4100 6300 3E00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 10 0 BBX 9 15 1 0 BITMAP 1C00 3000 0000 3E00 6300 4100 8080 8080 8080 8080 8080 8080 4100 6300 3E00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 10 0 BBX 9 15 1 0 BITMAP 3C00 6600 0000 3E00 6300 4100 8080 8080 8080 8080 8080 8080 4100 6300 3E00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 10 0 BBX 9 14 1 0 BITMAP 7E00 0000 3E00 6300 4100 8080 8080 8080 8080 8080 8080 4100 6300 3E00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 10 0 BBX 9 14 1 0 BITMAP 2600 0000 3E00 6300 4100 8080 8080 8080 8080 8080 8080 4100 6300 3E00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 10 0 BBX 7 9 2 0 BITMAP 10 00 00 00 FE 00 00 00 10 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 3F80 6380 4180 8280 8480 8C80 9880 9080 A080 C100 E300 FE00 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 10 0 BBX 8 15 1 0 BITMAP 38 0C 00 81 81 81 81 81 81 81 81 81 81 C2 7C ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 10 0 BBX 8 15 1 0 BITMAP 1C 30 00 81 81 81 81 81 81 81 81 81 81 C2 7C ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 10 0 BBX 8 15 1 0 BITMAP 3C 66 00 81 81 81 81 81 81 81 81 81 81 C2 7C ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 10 0 BBX 8 14 1 0 BITMAP 4C 00 81 81 81 81 81 81 81 81 81 81 C2 7C ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 10 0 BBX 9 15 1 0 BITMAP 1C00 3000 0000 C180 4100 2200 2200 1400 1400 0800 0800 0800 0800 0800 0800 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 2 0 BITMAP 80 80 FE 83 81 81 81 82 FC 80 80 80 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 2 0 BITMAP 78 84 84 8C 88 90 90 8C 86 81 81 A1 BE ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 38 0C 00 7C 42 02 02 3E C2 82 86 7B ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 38 60 00 7C 42 02 02 3E C2 82 86 7B ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 3C 66 00 7C 42 02 02 3E C2 82 86 7B ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 7E 00 7C 42 02 02 3E C2 82 86 7B ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 4C 00 7C 42 02 02 3E C2 82 86 7B ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 38 38 00 7C 42 02 02 3E C2 82 86 7B ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 0 0 BITMAP 7B80 0640 0440 0440 3FC0 C400 8400 8640 7FC0 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 10 0 BBX 7 12 2 -3 BITMAP 3E 42 80 80 80 80 C0 42 3E 10 08 38 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 38 0C 00 3E 42 81 81 FF 80 80 41 3F ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 1C 30 00 3E 42 81 81 FF 80 80 41 3F ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 3C 66 00 3E 42 81 81 FF 80 80 41 3F ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 10 0 BBX 8 11 1 0 BITMAP 4C 00 3E 42 81 81 FF 80 80 41 3F ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 10 0 BBX 5 12 2 0 BITMAP 70 18 00 F0 10 10 10 10 10 10 10 10 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 10 0 BBX 5 12 2 0 BITMAP 38 60 00 F0 10 10 10 10 10 10 10 10 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 10 0 BBX 6 12 2 0 BITMAP 78 CC 00 F0 10 10 10 10 10 10 10 10 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 10 0 BBX 6 11 2 0 BITMAP 4C 00 F0 10 10 10 10 10 10 10 10 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP FC 68 84 3E 42 81 81 81 81 81 42 3C ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 10 0 BBX 7 11 2 0 BITMAP FC 00 BC C2 82 82 82 82 82 82 82 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 1C00 0600 0000 3E00 6300 C180 8080 8080 8080 C180 6300 3E00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 1C00 3000 0000 3E00 6300 C180 8080 8080 8080 C180 6300 3E00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 3C00 6600 0000 3E00 6300 C180 8080 8080 8080 C180 6300 3E00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 10 0 BBX 9 11 1 0 BITMAP 7E00 0000 3E00 6300 C180 8080 8080 8080 C180 6300 3E00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 10 0 BBX 9 11 1 0 BITMAP 2600 0000 3E00 6300 C180 8080 8080 8080 C180 6300 3E00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 8080 4100 2200 1400 0800 1400 2200 4100 8080 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 10 0 BBX 9 9 1 0 BITMAP 3F80 6180 C280 8480 8880 9080 A180 C300 FE00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 10 0 BBX 7 12 2 0 BITMAP 38 0C 00 82 82 82 82 82 82 82 86 7A ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 10 0 BBX 7 12 2 0 BITMAP 38 60 00 82 82 82 82 82 82 82 86 7A ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 10 0 BBX 7 12 2 0 BITMAP 3C 66 00 82 82 82 82 82 82 82 86 7A ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 10 0 BBX 7 11 2 0 BITMAP 4C 00 82 82 82 82 82 82 82 86 7A ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 10 0 BBX 9 15 1 -3 BITMAP 1C00 3000 0000 C080 4100 4100 2200 2200 1400 1400 0800 0800 1800 1000 E000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 10 0 BBX 8 14 1 -3 BITMAP 80 80 BC E2 81 81 81 81 83 C2 BC 80 80 80 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 10 0 BBX 9 14 1 -3 BITMAP 2600 0000 C080 4100 4100 2200 2200 1400 1400 0800 0800 1800 1000 E000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 3F 41 41 41 FD 41 41 41 41 41 41 41 41 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 1 1 5 BITMAP FF ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 7 14 2 -2 BITMAP 10 10 10 10 FE 10 10 10 10 10 10 10 10 10 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 15 1 0 BITMAP 6600 3C00 0000 FF80 0100 0300 0200 0400 0800 0800 1000 2000 6000 4000 FF80 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 9 0 0 BITMAP 3B80 4E40 8440 8440 87C0 8400 8400 4C40 3BC0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 14 1 0 BITMAP 2600 0000 C180 4100 2200 2200 1400 1400 0800 0800 0800 0800 0800 0800 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 4 9 2 0 BITMAP F0 10 10 10 10 10 10 10 10 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 12 2 0 BITMAP F0 10 10 14 1C 10 70 50 10 10 10 10 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 0 0 BITMAP 2000 2000 2000 2000 2800 3000 6000 A000 2000 2000 2000 3F80 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 7 14 2 -2 BITMAP 10 10 10 10 FE 10 10 10 10 FE 10 10 10 10 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 13 1 0 BITMAP 3C 7D 40 40 FF 41 41 41 41 41 41 41 41 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 4 7 3 1 BITMAP 80 40 20 30 20 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 7F80 4400 8400 8400 8400 8700 8400 8400 8400 8400 4400 7F80 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 1 1 5 BITMAP FF80 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 2 2 10 BITMAP CC 78 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 3 3 3 -3 BITMAP 40 80 E0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 2 2 10 BITMAP 6C D0 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 4 7 3 1 BITMAP 10 20 40 C0 40 20 10 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 2 1 4 11 BITMAP C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 2 2 10 BITMAP 84 78 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 5 5 3 2 BITMAP F8 F8 F8 F8 F8 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 1 2 11 BITMAP FC ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 2 2 10 BITMAP 78 CC ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 4 2 8 BITMAP 8C 88 88 8C ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 3 4 4 8 BITMAP E0 E0 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 7 12 2 0 BITMAP CC 78 00 7E 80 80 E0 38 06 02 86 FC ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 3 2 4 11 BITMAP E0 E0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 2 6 4 -3 BITMAP C0 C0 C0 40 40 80 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 14 2 -2 BITMAP 0F 08 10 10 30 F8 40 40 40 40 80 80 80 80 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 11 6 0 6 BITMAP FE60 2660 27E0 25A0 25A0 2420 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 10 12 0 0 BITMAP 00C0 0080 0100 0200 0600 0400 0800 1800 1000 2000 4000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 4 2 3 10 BITMAP E0 30 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 9 12 1 0 BITMAP 4400 A800 A800 B800 5000 1000 2000 2900 7680 5680 5680 8900 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 1 1 0 BITMAP 91 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 4 2 8 BITMAP 84 84 84 84 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 15 1 0 BITMAP 66 3C 00 3F C1 80 80 40 38 06 03 01 01 82 7C ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 6 4 2 -2 BITMAP 84 84 84 84 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 10 0 BBX 8 12 1 0 BITMAP 66 3C 00 FF 02 04 08 18 30 60 40 FF ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lutRS14.bdf100644 1750 1750 76552 5413747543 15251 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaTypewriter-Medium-R-Normal-Sans-20-140-100-100-M-120-ISO8859-1 SIZE 14 100 100 FONTBOUNDINGBOX 16 22 -2 -4 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaTypewriter" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 20 POINT_SIZE 140 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "M" AVERAGE_WIDTH 120 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 18 FONT_DESCENT 5 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 12 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 12 0 BBX 2 14 5 0 BITMAP C0 C0 C0 C0 C0 C0 80 80 80 80 00 00 80 80 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 12 0 BBX 6 4 3 10 BITMAP CC CC 84 84 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 04C0 0C80 0880 0880 7FE0 1100 1100 1100 FFC0 2200 2200 2200 2400 4400 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 12 0 BBX 7 18 3 -2 BITMAP 10 10 7E D2 D0 D0 D0 70 38 1C 1E 16 16 16 DC FC 10 10 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP 7830 CC60 8440 8480 CD80 7B00 0200 05E0 0B30 1A10 1210 2210 4330 C1E0 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 1E00 3300 3300 3300 3600 1C00 3800 4C60 CE60 C640 C7C0 C380 6380 3EE0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 12 0 BBX 3 5 4 9 BITMAP E0 E0 60 C0 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 12 0 BBX 7 17 3 -3 BITMAP 0E 1C 30 60 60 C0 C0 C0 C0 C0 C0 40 60 20 30 1C 06 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 12 0 BBX 7 17 2 -3 BITMAP C0 70 18 0C 0C 06 06 06 06 06 06 06 0C 0C 18 70 C0 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 12 0 BBX 9 8 1 6 BITMAP 0800 0800 C980 F780 0000 3600 7600 2300 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 12 0 BBX 9 11 1 0 BITMAP 0800 0800 0800 0800 0800 FF80 0800 0800 0800 0800 0800 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 12 0 BBX 3 6 4 -3 BITMAP E0 E0 E0 20 60 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 12 0 BBX 10 1 1 4 BITMAP FFC0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 12 0 BBX 3 3 4 0 BITMAP E0 E0 E0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 12 0 BBX 11 17 0 -3 BITMAP 0060 0040 0080 0080 0100 0100 0200 0600 0400 0C00 0800 1000 1000 2000 2000 4000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP 1E00 2300 6180 4080 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 4080 6180 2100 1E00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP 0400 7C00 8C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 FFC0 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 12 0 BBX 8 14 2 0 BITMAP 7C 86 03 03 03 03 06 0C 18 30 60 60 C0 FF ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 12 0 BBX 8 14 2 0 BITMAP FC 87 03 03 03 06 78 0E 03 03 03 03 86 FC ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP 0300 0700 0700 0B00 1300 3300 2300 4300 C300 FFC0 0300 0300 0300 0300 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 12 0 BBX 7 14 3 0 BITMAP FE 80 80 80 80 F0 1C 0C 06 06 06 06 8C F8 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 0 BITMAP 1F00 3100 6000 4000 C000 DE00 E300 C180 C180 C180 C180 4180 6300 1E00 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 0 BITMAP FF80 FF80 0100 0300 0200 0400 0400 0800 1800 1000 3000 3000 6000 6000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 0 BITMAP 1E00 3300 6100 6100 7300 3E00 1C00 2F00 4380 C180 C180 C180 6300 3E00 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 0 BITMAP 3C00 6300 C100 C180 C180 C180 C180 6380 3D80 0180 0100 0300 4600 7C00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 12 0 BBX 3 11 4 0 BITMAP E0 E0 E0 00 00 00 00 00 E0 E0 E0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 12 0 BBX 3 14 4 -3 BITMAP E0 E0 E0 00 00 00 00 00 E0 E0 E0 20 60 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 12 0 BBX 9 11 0 0 BITMAP 0080 0180 0600 1800 6000 C000 6000 1800 0600 0180 0080 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 12 0 BBX 10 5 1 3 BITMAP FFC0 0000 0000 0000 FFC0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 12 0 BBX 9 11 1 0 BITMAP 8000 C000 3000 0C00 0300 0180 0300 0C00 3000 C000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 0 BITMAP FE00 8300 8180 0180 0100 0200 0400 0800 1800 1800 0000 0000 1800 1800 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 0F80 30C0 6040 43C0 8440 8840 8840 88C0 88C0 89C0 4760 4000 3080 1F00 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP 0600 0700 0B00 0B00 0980 1180 1180 10C0 20C0 3FC0 2060 4060 4070 C030 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 0 BITMAP FE00 C700 C300 C300 C300 C600 FC00 C600 C300 C180 C180 C180 C300 FE00 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP 0FC0 3840 6000 6000 C000 C000 C000 C000 C000 C000 6000 6000 3840 0FC0 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP FE00 C300 C180 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C0C0 C180 C180 C300 FE00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 0 BITMAP FF80 C000 C000 C000 C000 C000 FF00 C000 C000 C000 C000 C000 C000 FF80 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 0 BITMAP FF80 C000 C000 C000 C000 C000 FF00 C000 C000 C000 C000 C000 C000 C000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP 0FC0 3040 6000 6000 C000 C000 C000 C000 C0C0 C0C0 60C0 60C0 38C0 0FC0 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 1 0 BITMAP C180 C180 C180 C180 C180 C180 FF80 C180 C180 C180 C180 C180 C180 C180 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 12 0 BBX 8 14 2 0 BITMAP FF 18 18 18 18 18 18 18 18 18 18 18 18 FF ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 12 0 BBX 7 14 2 0 BITMAP 7E 06 06 06 06 06 06 06 06 06 06 06 8C F8 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP C180 C300 C200 C400 C800 D800 D000 F800 DC00 CE00 C600 C300 C380 C1C0 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 0 BITMAP C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 FF80 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP C0C0 C0C0 E1C0 A140 A140 A140 9240 9240 9240 9240 8C40 8C40 8C40 8040 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 1 0 BITMAP C080 E080 E080 F080 B080 9880 9880 8C80 8E80 8680 8780 8380 8180 8180 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 0 0 BITMAP 1F00 3180 60C0 60C0 C060 C060 C060 C060 C060 C060 60C0 60C0 3180 1F00 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 0 BITMAP FE00 C380 C180 C180 C180 C180 C300 FC00 C000 C000 C000 C000 C000 C000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 12 0 BBX 12 17 0 -3 BITMAP 1F00 3180 60C0 60C0 C060 C060 C060 C060 C060 C060 60E0 60C0 31C0 1F80 0180 00F0 0020 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP FC00 C700 C300 C300 C300 C700 FE00 CC00 CC00 C600 C700 C300 C180 C1C0 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 0 BITMAP 3F00 6100 C000 C000 E000 7000 3C00 0F00 0380 0180 0180 0180 8300 7E00 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP FFF0 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 0600 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 0 BITMAP C080 C080 C080 C080 C080 C080 C080 C080 C080 C080 C080 C080 6100 3E00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP C030 6020 6020 6040 3040 3040 3080 1880 1880 1900 0D00 0F00 0E00 0600 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP 8010 8610 8610 CE30 CB20 CB20 CB20 4B20 5160 51E0 71E0 71C0 60C0 60C0 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP E020 7040 30C0 1880 1D00 0F00 0600 0700 0B00 1980 11C0 20C0 6060 C070 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP E030 6020 7040 3080 1880 1D00 0F00 0600 0600 0600 0600 0600 0600 0600 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP FFC0 01C0 0180 0380 0700 0600 0E00 1C00 1800 3000 7000 6000 C000 FFC0 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 12 0 BBX 5 17 5 -3 BITMAP F8 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 F8 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 12 0 BBX 11 17 0 -3 BITMAP C000 4000 2000 2000 1000 1000 0800 0C00 0400 0600 0200 0100 0100 0080 0080 0040 0060 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 12 0 BBX 5 17 2 -3 BITMAP F8 08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 F8 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 3 BITMAP 0400 0C00 0C00 1200 1200 2100 2100 4080 4080 C0C0 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 12 0 BBX 12 1 0 -2 BITMAP FFF0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 12 0 BBX 3 5 4 9 BITMAP 60 C0 80 E0 E0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 12 0 BBX 10 11 1 0 BITMAP 7E00 4300 0300 0300 0300 3F00 6300 C300 C300 C700 7DC0 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 0 BITMAP C000 C000 C000 DE00 F300 E180 C180 C180 C180 C180 C180 C300 E300 DE00 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 12 0 BBX 9 11 2 0 BITMAP 1F80 7080 6000 C000 C000 C000 C000 C000 6000 7080 1F80 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 1 0 BITMAP 0180 0180 0180 3D80 6380 6180 C180 C180 C180 C180 C180 C380 6780 3D80 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 12 0 BBX 9 11 2 0 BITMAP 1E00 6300 6180 C180 C180 FF80 C000 C000 4000 6080 1F80 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 12 0 BBX 10 16 2 0 BITMAP 0FC0 1C00 1800 1800 1800 FFC0 1800 1800 1800 1800 1800 1800 1800 1800 1800 1800 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 1 -4 BITMAP 1E80 6380 6180 C180 C180 C180 C180 C180 C380 6780 3D80 0180 0180 4300 7E00 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 0 BITMAP C000 C000 C000 CF00 DF80 F180 C180 C180 C180 C180 C180 C180 C180 C180 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 12 0 BBX 6 14 2 0 BITMAP 0C 0C 00 FC 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 12 0 BBX 7 18 2 -4 BITMAP 06 06 00 7E 06 06 06 06 06 06 06 06 06 06 06 06 8C F8 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 2 0 BITMAP C000 C000 C000 C100 C200 C400 C800 D000 F800 DC00 CE00 C700 C380 C1C0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 12 0 BBX 6 14 2 0 BITMAP FC 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 12 0 BBX 11 11 1 0 BITMAP B9C0 A720 C620 8420 8420 8420 8420 8420 8420 8420 8420 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 12 0 BBX 9 11 2 0 BITMAP CF00 DF80 F180 C180 C180 C180 C180 C180 C180 C180 C180 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 12 0 BBX 10 11 1 0 BITMAP 1E00 7380 6180 C0C0 C0C0 C0C0 C0C0 C0C0 6180 7380 1E00 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 2 -4 BITMAP DE00 F300 E180 C180 C180 C180 C180 C180 C300 E300 DE00 C000 C000 C000 C000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 1 -4 BITMAP 3D80 6380 6180 C180 C180 C180 C180 C180 C380 6780 3D80 0180 0180 0180 0180 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 12 0 BBX 8 11 3 0 BITMAP DF F1 E1 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 12 0 BBX 8 11 2 0 BITMAP 3E 62 C0 C0 F8 3E 0F 03 03 86 FC ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 1800 1800 FFC0 1800 1800 1800 1800 1800 1800 1800 1800 1C00 0FC0 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 12 0 BBX 9 11 1 0 BITMAP C180 C180 C180 C180 C180 C180 C180 C180 C780 7D80 7980 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 12 0 BBX 11 11 0 0 BITMAP C060 6040 6040 7080 3080 3100 1900 1B00 1E00 0E00 0C00 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 12 0 BBX 12 11 0 0 BITMAP C010 C610 C620 6620 6920 6920 6960 6940 71C0 30C0 30C0 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 12 0 BBX 10 11 1 0 BITMAP E080 6100 3100 3A00 1C00 0C00 1E00 1700 2300 6180 C1C0 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 12 0 BBX 11 15 1 -4 BITMAP C060 6040 6040 7080 3080 3100 1900 1A00 0E00 0E00 0C00 0400 0800 1800 7000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 12 0 BBX 9 11 1 0 BITMAP FF80 0100 0200 0600 0400 0800 1000 2000 6000 4000 FF80 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 12 0 BBX 8 17 2 -3 BITMAP 0F 18 18 18 08 08 08 18 E0 18 08 08 18 18 18 18 0F ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 12 0 BBX 1 17 5 -3 BITMAP 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 12 0 BBX 7 17 2 -3 BITMAP F0 18 18 18 18 10 10 18 0E 18 10 10 18 18 18 18 F0 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 12 0 BBX 10 5 1 3 BITMAP 7040 5840 8C40 8680 8380 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 12 0 BBX 2 15 5 -4 BITMAP 80 80 00 00 80 80 80 80 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 12 0 BBX 8 14 2 0 BITMAP 08 08 3F 69 E8 C8 C8 C8 C8 48 69 3F 08 08 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 12 0 BBX 8 14 2 0 BITMAP 0F 10 30 30 30 30 FC 30 30 30 30 60 E0 FF ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 12 0 BBX 10 10 1 2 BITMAP 8040 7F80 6180 4080 4080 4080 4080 6180 7F80 8040 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP E030 6060 3040 3880 1D80 0D00 0600 3FC0 0600 3FC0 0600 0600 0600 0600 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 12 0 BBX 1 17 5 -3 BITMAP 80 80 80 80 80 80 80 00 00 00 80 80 80 80 80 80 80 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 12 0 BBX 8 18 2 -4 BITMAP 3E 42 80 80 E0 F8 FC 8E 82 C2 F2 7C 1E 07 03 03 86 FC ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 12 0 BBX 6 1 3 13 BITMAP CC ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 0 0 BITMAP 1F00 20C0 4040 8F20 9120 A020 A020 A020 A020 9120 8F20 4040 6080 1F00 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 12 0 BBX 7 7 3 7 BITMAP 78 C4 04 7C 84 84 7E ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 12 0 BBX 10 9 1 1 BITMAP 0840 1880 3100 6200 C400 6200 3100 1880 0840 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 12 0 BBX 10 5 1 3 BITMAP FFC0 0040 0040 0040 0040 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 12 0 BBX 8 1 2 6 BITMAP FF ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 12 0 BBX 7 8 3 6 BITMAP 38 44 BA BA B2 AA 44 38 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 12 0 BBX 6 1 3 13 BITMAP FC ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 12 0 BBX 3 3 4 11 BITMAP E0 A0 E0 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 12 0 BBX 9 11 1 0 BITMAP 0800 0800 0800 0800 FF80 0800 0800 0800 0000 0000 FF80 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 12 0 BBX 4 7 -2 7 BITMAP E0 90 10 20 40 80 F0 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 12 0 BBX 4 7 -2 7 BITMAP E0 10 10 60 10 10 E0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 12 0 BBX 4 3 4 11 BITMAP 30 60 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 1 -3 BITMAP C180 C180 C180 C180 C180 C180 C180 C380 C780 FD80 F980 C000 C000 C000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 12 0 BBX 8 17 1 -3 BITMAP 7F F9 F9 F9 F9 79 39 09 09 09 09 09 09 09 09 09 09 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 12 0 BBX 2 2 5 5 BITMAP C0 C0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 12 0 BBX 3 5 5 -4 BITMAP C0 40 20 20 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 12 0 BBX 5 7 -1 7 BITMAP E0 A0 20 20 20 20 F8 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 12 0 BBX 8 7 2 7 BITMAP 3C 66 C3 C3 C3 66 3C ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 12 0 BBX 10 9 1 1 BITMAP 8400 4600 2300 1180 08C0 1180 2300 4600 8400 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 2 0 BITMAP E030 A060 2040 2080 2100 2300 FA00 0460 0860 08A0 1120 21F0 6020 C020 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 2 0 BITMAP E030 A060 2040 2080 2100 2300 FA00 04E0 0890 0810 1020 2040 6080 C0F0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 2 0 BITMAP E030 1060 1040 6080 1100 1300 E200 0460 0860 08A0 1120 21F0 6020 C020 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 1 -4 BITMAP 0C00 0C00 0000 0000 0C00 0C00 0C00 1800 3000 6000 C000 C000 C080 6080 3F80 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 12 0 BBX 12 18 0 0 BITMAP 0C00 0600 0300 0000 0600 0700 0B00 0B00 0980 1180 1180 10C0 20C0 3FC0 2060 4060 4070 C030 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 12 0 BBX 12 18 0 0 BITMAP 0300 0600 0C00 0000 0600 0700 0B00 0B00 0980 1180 1180 10C0 20C0 3FC0 2060 4060 4070 C030 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 12 0 BBX 12 18 0 0 BITMAP 0700 0D80 18C0 0000 0600 0700 0B00 0B00 0980 1180 1180 10C0 20C0 3FC0 2060 4060 4070 C030 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 12 0 BBX 12 17 0 0 BITMAP 1EC0 1BC0 0000 0600 0700 0B00 0B00 0980 1180 1180 10C0 20C0 3FC0 2060 4060 4070 C030 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 12 0 BBX 12 16 0 0 BITMAP 1980 0000 0600 0700 0B00 0B00 0980 1180 1180 10C0 20C0 3FC0 2060 4060 4070 C030 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 12 0 BBX 12 18 0 0 BITMAP 0E00 0A00 0E00 0000 0600 0700 0B00 0B00 0980 1180 1180 10C0 20C0 3FC0 2060 4060 4070 C030 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP 03E0 0700 0700 0700 0B00 0B00 1300 13E0 1300 2300 3F00 4300 4300 C3F0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 12 0 BBX 10 18 1 -4 BITMAP 0FC0 3840 6000 6000 C000 C000 C000 C000 C000 C000 6000 6000 3840 0FC0 0400 0200 0200 0E00 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 12 0 BBX 9 18 2 0 BITMAP 3000 1800 0C00 0000 FF80 C000 C000 C000 C000 C000 FF00 C000 C000 C000 C000 C000 C000 FF80 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 12 0 BBX 9 18 2 0 BITMAP 0C00 1800 3000 0000 FF80 C000 C000 C000 C000 C000 FF00 C000 C000 C000 C000 C000 C000 FF80 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 0 0 BBX 0 0 0 0 BITMAP ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 12 0 BBX 9 16 2 0 BITMAP 6600 0000 FF80 C000 C000 C000 C000 C000 FF00 C000 C000 C000 C000 C000 C000 FF80 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 12 0 BBX 8 18 2 0 BITMAP 30 18 0C 00 FF 18 18 18 18 18 18 18 18 18 18 18 18 FF ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 12 0 BBX 8 18 2 0 BITMAP 0C 18 30 00 FF 18 18 18 18 18 18 18 18 18 18 18 18 FF ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 12 0 BBX 8 18 2 0 BITMAP 38 6C C6 00 FF 18 18 18 18 18 18 18 18 18 18 18 18 FF ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 12 0 BBX 8 16 2 0 BITMAP 66 00 FF 18 18 18 18 18 18 18 18 18 18 18 18 FF ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 0 0 BITMAP 7F00 6180 60C0 6060 6060 6060 F860 6060 6060 6060 60C0 60C0 6180 7F00 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 12 0 BBX 9 17 1 0 BITMAP 7B00 6F00 0000 C080 E080 E080 F080 B080 9880 9880 8C80 8E80 8680 8780 8380 8180 8180 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 12 0 BBX 11 18 0 0 BITMAP 0C00 0600 0300 0000 1F00 3180 60C0 60C0 C060 C060 C060 C060 C060 C060 60C0 60C0 3180 1F00 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 12 0 BBX 11 18 0 0 BITMAP 0600 0C00 1800 0000 1F00 3180 60C0 60C0 C060 C060 C060 C060 C060 C060 60C0 60C0 3180 1F00 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 12 0 BBX 11 18 0 0 BITMAP 0E00 1B00 3180 0000 1F00 3180 60C0 60C0 C060 C060 C060 C060 C060 C060 60C0 60C0 3180 1F00 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 12 0 BBX 11 17 0 0 BITMAP 3D80 3780 0000 1F00 3180 60C0 60C0 C060 C060 C060 C060 C060 C060 60C0 60C0 3180 1F00 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 12 0 BBX 11 16 0 0 BITMAP 3300 0000 1F00 3180 60C0 60C0 C060 C060 C060 C060 C060 C060 60C0 60C0 3180 1F00 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 12 0 BBX 10 11 1 0 BITMAP 0C00 0C00 0000 0000 0000 FFC0 0000 0000 0000 0C00 0C00 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 1F60 31C0 60C0 61C0 C360 C260 C460 C460 C860 D060 50C0 60C0 7180 DF00 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 12 0 BBX 9 18 2 0 BITMAP 1800 0C00 0600 0000 C080 C080 C080 C080 C080 C080 C080 C080 C080 C080 C080 C080 6100 3E00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 12 0 BBX 9 18 2 0 BITMAP 0C00 1800 3000 0000 C080 C080 C080 C080 C080 C080 C080 C080 C080 C080 C080 C080 6100 3E00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 12 0 BBX 9 18 2 0 BITMAP 1C00 3600 6300 0000 C080 C080 C080 C080 C080 C080 C080 C080 C080 C080 C080 C080 6100 3E00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 12 0 BBX 9 16 2 0 BITMAP 6600 0000 C080 C080 C080 C080 C080 C080 C080 C080 C080 C080 C080 C080 6100 3E00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 12 0 BBX 12 18 0 0 BITMAP 0300 0600 0C00 0000 E030 6020 7040 3080 1880 1D00 0F00 0600 0600 0600 0600 0600 0600 0600 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 0 BITMAP C000 C000 C000 FE00 C380 C180 C180 C180 C180 C300 FC00 C000 C000 C000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 12 0 BBX 10 16 2 0 BITMAP 7E00 C700 C300 C300 C600 C400 C800 C800 CE00 C700 C380 C1C0 C0C0 C0C0 D0C0 DF80 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 1 0 BITMAP 1800 0C00 0600 0000 7E00 4300 0300 0300 0300 3F00 6300 C300 C300 C700 7DC0 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 1 0 BITMAP 0C00 1800 3000 0000 7E00 4300 0300 0300 0300 3F00 6300 C300 C300 C700 7DC0 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 1 0 BITMAP 1C00 3600 6300 0000 7E00 4300 0300 0300 0300 3F00 6300 C300 C300 C700 7DC0 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP 7B00 6F00 0000 7E00 4300 0300 0300 0300 3F00 6300 C300 C300 C700 7DC0 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 3300 0000 7E00 4300 0300 0300 0300 3F00 6300 C300 C300 C700 7DC0 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 1 0 BITMAP 1C00 1400 1C00 0000 7E00 4300 0300 0300 0300 3F00 6300 C300 C300 C700 7DC0 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 12 0 BBX 11 11 1 0 BITMAP 7B80 4E40 0C60 0C60 0C60 7FE0 EC00 CC00 CC00 CE20 7BE0 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 2 -4 BITMAP 1F80 7080 6000 C000 C000 C000 C000 C000 6000 7080 1F80 0800 0400 0400 1C00 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 2 0 BITMAP 1800 0C00 0600 0000 1E00 6300 6180 C180 C180 FF80 C000 C000 4000 6080 1F80 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 2 0 BITMAP 0C00 1800 3000 0000 1E00 6300 6180 C180 C180 FF80 C000 C000 4000 6080 1F80 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 2 0 BITMAP 1C00 3600 6300 0000 1E00 6300 6180 C180 C180 FF80 C000 C000 4000 6080 1F80 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 12 0 BBX 9 13 2 0 BITMAP 6600 0000 1E00 6300 6180 C180 C180 FF80 C000 C000 4000 6080 1F80 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 12 0 BBX 7 15 2 0 BITMAP 18 0C 06 00 FC 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 12 0 BBX 6 15 2 0 BITMAP 0C 18 30 00 FC 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 12 0 BBX 8 15 2 0 BITMAP 1C 36 63 00 FC 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 12 0 BBX 7 13 2 0 BITMAP 66 00 FC 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP FE00 3C00 4200 1F00 7180 6180 C0C0 C0C0 C0C0 C0C0 C0C0 6180 7180 1E00 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 12 0 BBX 9 14 2 0 BITMAP 7B00 6F00 0000 CF00 DF80 F180 C180 C180 C180 C180 C180 C180 C180 C180 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 1 0 BITMAP 1800 0C00 0600 0000 1E00 7380 6180 C0C0 C0C0 C0C0 C0C0 C0C0 6180 7380 1E00 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 1 0 BITMAP 0600 0C00 1800 0000 1E00 7380 6180 C0C0 C0C0 C0C0 C0C0 C0C0 6180 7380 1E00 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 12 0 BBX 10 15 1 0 BITMAP 1C00 3600 6300 0000 1E00 7380 6180 C0C0 C0C0 C0C0 C0C0 C0C0 6180 7380 1E00 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 12 0 BBX 10 14 1 0 BITMAP 7B00 6F00 0000 1E00 7380 6180 C0C0 C0C0 C0C0 C0C0 C0C0 6180 7380 1E00 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 12 0 BBX 10 13 1 0 BITMAP 3300 0000 1E00 7380 6180 C0C0 C0C0 C0C0 C0C0 C0C0 6180 7380 1E00 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 12 0 BBX 10 11 1 0 BITMAP C040 40C0 2100 1200 1E00 0C00 1E00 3200 2100 C080 80C0 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 12 0 BBX 10 11 1 0 BITMAP 1FC0 7180 6380 C2C0 C4C0 CCC0 C8C0 D0C0 7180 6180 FE00 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 1 0 BITMAP 1800 0C00 0600 0000 C180 C180 C180 C180 C180 C180 C180 C180 C780 7D80 7980 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 1 0 BITMAP 0C00 1800 3000 0000 C180 C180 C180 C180 C180 C180 C180 C180 C780 7D80 7980 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 1 0 BITMAP 1C00 3600 6300 0000 C180 C180 C180 C180 C180 C180 C180 C180 C780 7D80 7980 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 12 0 BBX 9 13 1 0 BITMAP 3300 0000 C180 C180 C180 C180 C180 C180 C180 C180 C780 7D80 7980 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 12 0 BBX 11 19 1 -4 BITMAP 0600 0C00 1800 0000 C060 6040 6040 7080 3080 3100 1900 1A00 0E00 0E00 0C00 0400 0800 1800 7000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 12 0 BBX 9 17 2 -4 BITMAP C000 C000 DE00 F300 E180 C180 C180 C180 C180 C180 C300 E300 DE00 C000 C000 C000 C000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 12 0 BBX 11 17 1 -4 BITMAP 3300 0000 C060 6040 6040 7080 3080 3100 1900 1A00 0E00 0E00 0C00 0400 0800 1800 7000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 16 1 0 BITMAP 3F80 6180 6180 6180 6180 F980 6180 6180 6180 6180 6180 6180 6180 6180 6180 6180 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 1 1 6 BITMAP FF80 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 17 2 -3 BITMAP 10 10 10 10 10 FE 10 10 10 10 10 10 10 10 10 10 10 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 18 1 0 BITMAP 6300 3600 1C00 0000 FFC0 01C0 0180 0380 0700 0600 0E00 1C00 1800 3000 7000 6000 C000 FFC0 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 11 0 0 BITMAP 3DC0 6F20 C630 C630 C630 C7F0 C600 C600 4600 6F10 3DF0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 16 0 0 BITMAP 1980 0000 E030 6020 7040 3080 1880 1D00 0F00 0600 0600 0600 0600 0600 0600 0600 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 6 11 2 0 BITMAP FC 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 8 14 2 0 BITMAP FC 0C 0C 0D 0D 0E 0C 3C 2C 0C 0C 0C 0C 0C ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 0 0 BITMAP 3000 3000 3000 3000 3000 3400 3800 7000 B000 3000 3000 3000 3000 3FE0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 17 2 -3 BITMAP 10 10 10 10 10 FE 10 10 10 10 10 FE 10 10 10 10 10 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 16 1 0 BITMAP 3800 7C00 7D80 6180 6000 FF80 6180 6180 6180 6180 6180 6180 6180 6180 6180 6180 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 5 9 3 1 BITMAP 80 40 20 30 18 30 20 40 80 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 14 1 0 BITMAP 3FC0 6600 C600 C600 C600 C600 C7C0 C600 C600 C600 C600 4600 6600 3FE0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 1 0 6 BITMAP FFE0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 3 2 11 BITMAP C6 6C 38 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 3 4 4 -4 BITMAP 40 80 80 E0 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 3 3 11 BITMAP 36 6C D8 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 5 9 3 1 BITMAP 08 10 20 60 C0 60 20 10 08 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 2 2 5 12 BITMAP C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 3 2 11 BITMAP 86 6C 38 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 6 6 3 2 BITMAP FC FC FC FC FC FC ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 2 2 12 BITMAP F6 DE ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 3 2 11 BITMAP 38 6C C6 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 4 3 10 BITMAP C6 84 C6 C6 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 3 5 4 9 BITMAP E0 E0 E0 40 40 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 8 15 2 0 BITMAP C6 6C 38 00 3E 62 C0 C0 F8 3E 0F 03 03 86 FC ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 3 3 4 13 BITMAP E0 A0 E0 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 3 6 4 -3 BITMAP E0 E0 E0 20 60 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 17 2 -3 BITMAP 0780 0C00 1800 1800 1800 3000 FC00 3000 3000 7000 6000 6000 6000 6000 E000 C000 C000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 11 7 0 7 BITMAP FE60 2660 27E0 27E0 25A0 25A0 2420 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 12 14 0 0 BITMAP 0030 0060 0040 0080 0100 0300 0200 0400 0800 0800 1000 2000 6000 C000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 4 3 4 11 BITMAP C0 60 30 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 13 14 0 0 BITMAP 6100 9200 9200 9400 9400 6800 0800 1000 1630 2948 2948 4948 4948 8630 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 10 2 1 0 BITMAP CCC0 CCC0 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 4 3 10 BITMAP C6 C6 42 C6 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 18 2 0 BITMAP 6300 3600 1C00 0000 3F00 6100 C000 C000 E000 7000 3C00 0F00 0380 0180 0180 0180 8300 7E00 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 7 6 3 -3 BITMAP C6 C6 42 42 42 84 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 12 0 BBX 9 15 1 0 BITMAP 6300 3600 1C00 0000 FF80 0100 0200 0600 0400 0800 1000 2000 6000 4000 FF80 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lutRS18.bdf100644 1750 1750 107510 5413747543 15262 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaTypewriter-Medium-R-Normal-Sans-25-180-100-100-M-150-ISO8859-1 SIZE 18 100 100 FONTBOUNDINGBOX 19 28 -2 -5 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaTypewriter" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 25 POINT_SIZE 180 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "M" AVERAGE_WIDTH 150 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 23 FONT_DESCENT 6 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 15 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 15 0 BBX 4 18 5 0 BITMAP 70 70 70 70 70 70 70 70 60 60 60 60 60 00 00 F0 F0 F0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 15 0 BBX 10 6 3 12 BITMAP E1C0 E1C0 E1C0 6180 6180 6180 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 1 0 BITMAP 0338 0730 0630 0630 0660 7FFC 7FFC 0C60 0CC0 18C0 FFF8 FFF8 1980 3180 3180 3180 3300 7300 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 15 0 BBX 10 21 3 -2 BITMAP 0C00 3F80 7FC0 EC00 EC00 EC00 EC00 7C00 3C00 1C00 0F00 0F80 0DC0 0DC0 0DC0 0DC0 8D80 FF80 7F00 0C00 0C00 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 0 0 BITMAP 380C 6C18 C638 C630 C660 C6E0 6DC0 3980 0380 0700 0670 0ED8 1D8C 198C 318C 718C 60D8 C070 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 0 0 BITMAP 0780 0FC0 1CE0 1CE0 1CE0 1DC0 0FC0 0F00 3F0E 778E E38E E3CC E1CC E0FC F0F8 78F0 3FD8 1F9E ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 15 0 BBX 4 6 5 12 BITMAP F0 F0 F0 30 70 E0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 15 0 BBX 10 22 4 -4 BITMAP 01C0 07C0 1E00 3C00 3800 7000 7000 E000 E000 E000 E000 E000 E000 E000 6000 7000 3000 3800 1C00 0E00 07C0 00C0 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 15 0 BBX 10 22 1 -4 BITMAP C000 F800 1C00 0E00 0700 0380 0380 0180 01C0 01C0 01C0 01C0 01C0 01C0 01C0 0380 0380 0700 0E00 1C00 F800 C000 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 15 0 BBX 11 11 2 7 BITMAP 0E00 0E00 0400 C440 F1E0 3180 0900 1B00 3B80 71C0 1100 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 15 0 BBX 14 13 0 0 BITMAP 0300 0300 0300 0300 0300 0300 FFFC FFFC 0300 0300 0300 0300 0300 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 15 0 BBX 4 8 5 -4 BITMAP F0 F0 F0 F0 30 30 60 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 15 0 BBX 13 2 1 5 BITMAP FFF8 FFF8 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 15 0 BBX 4 4 5 0 BITMAP F0 F0 F0 F0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 15 0 BBX 13 22 1 -4 BITMAP 0018 0030 0030 0060 0060 00C0 00C0 0180 0180 0300 0300 0600 0600 0C00 0C00 1800 1800 3000 3000 6000 6000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 1 0 BITMAP 0F00 3FC0 31C0 70E0 60E0 E070 E070 E070 E070 E070 E070 E070 E070 6060 70E0 30C0 3FC0 0F00 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 2 0 BITMAP 0700 3F00 FF00 8700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 FFF8 FFF8 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 15 0 BBX 11 18 2 0 BITMAP 3F00 FFC0 C1C0 00E0 00E0 00E0 00E0 01C0 0380 0700 0E00 1C00 3800 3000 7000 E000 FFE0 FFE0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 15 0 BBX 10 18 3 0 BITMAP 7E00 FF80 83C0 01C0 01C0 01C0 0380 3F00 3C00 0700 0380 01C0 01C0 01C0 01C0 8380 FF00 FE00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 00E0 01E0 03E0 03E0 06E0 0EE0 1CE0 38E0 30E0 70E0 E0E0 FFF8 FFF8 00E0 00E0 00E0 00E0 00E0 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 15 0 BBX 9 18 3 0 BITMAP FF80 FF80 C000 C000 C000 C000 F800 FE00 0F00 0700 0380 0380 0380 0380 0780 8700 FE00 FC00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 2 0 BITMAP 07C0 1FE0 3C20 7000 7000 6000 E000 E780 EFE0 F0E0 E070 E070 E070 E070 7070 70E0 3FC0 0F80 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 15 0 BBX 11 18 2 0 BITMAP FFE0 FFE0 FFE0 00C0 01C0 0180 0380 0300 0700 0600 0E00 1C00 1C00 3800 3800 3800 7000 7000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 2 0 BITMAP 0F80 3FC0 78E0 7060 7060 7060 38C0 1F80 1F80 3FC0 71E0 E0F0 E070 E070 E070 70E0 7FC0 1F80 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 2 0 BITMAP 1F00 3FC0 70E0 E0E0 E070 E070 E070 E070 70F0 7F70 1E70 0070 0060 00E0 00E0 43C0 7F80 3E00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 15 0 BBX 4 13 5 0 BITMAP F0 F0 F0 F0 00 00 00 00 00 F0 F0 F0 F0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 15 0 BBX 4 17 5 -4 BITMAP F0 F0 F0 F0 00 00 00 00 00 F0 F0 F0 F0 30 30 60 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 1 0 BITMAP 0008 0038 00F0 03C0 0F00 3C00 F000 3C00 0F00 03C0 00F0 0038 0008 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 15 0 BBX 13 6 1 3 BITMAP FFF8 FFF8 0000 0000 FFF8 FFF8 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 1 0 BITMAP 8000 E000 7800 1E00 0780 01E0 0078 01E0 0780 1E00 7800 E000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 2 0 BITMAP 7F80 FFE0 C0F0 C070 0070 0070 00E0 03C0 0780 0E00 1C00 1C00 1C00 0000 0000 1C00 1C00 1C00 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 0 0 BITMAP 07E0 1FF0 3C38 3018 60F8 6118 C318 C618 C638 C638 C678 C678 E3DE 639E 7000 3820 1FE0 0FC0 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 0 0 BITMAP 0380 03C0 07C0 07C0 07E0 0EE0 0CE0 0CF0 1870 1870 1838 3FF8 3FF8 301C 601C 601C 600E C00E ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 15 0 BBX 11 18 2 0 BITMAP FF00 FF80 E3C0 E1C0 E1C0 E1C0 E180 E300 FE00 FF00 E3C0 E1C0 E0E0 E0E0 E0E0 E1E0 FFC0 FF80 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 07F0 1FF8 3C18 7800 7000 7000 E000 E000 E000 E000 E000 E000 F000 7000 7800 3E08 1FF8 07F0 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP FF80 FFE0 E1F0 E070 E078 E038 E038 E038 E038 E038 E038 E038 E038 E070 E070 E1E0 FFC0 FF00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 2 0 BITMAP FFE0 FFE0 E000 E000 E000 E000 E000 FFC0 FFC0 E000 E000 E000 E000 E000 E000 E000 FFF0 FFF0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 3 0 BITMAP FFF0 FFF0 E000 E000 E000 E000 E000 E000 FFE0 FFC0 E000 E000 E000 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 07F0 1FF8 3C08 7800 7000 7000 E000 E000 E000 E000 E038 E038 F038 7038 7838 3C38 1FF8 07F0 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 15 0 BBX 11 18 2 0 BITMAP E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 FFE0 FFE0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 15 0 BBX 11 18 2 0 BITMAP FFE0 FFE0 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 FFE0 FFE0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 15 0 BBX 10 18 2 0 BITMAP 7FC0 7FC0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 8380 FF00 7E00 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 2 0 BITMAP E070 E0E0 E0C0 E180 E380 E700 E600 EE00 FC00 FE00 EF00 E700 E780 E3C0 E1E0 E0F0 E070 E078 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 15 0 BBX 11 18 3 0 BITMAP E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 FFE0 FFE0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP E038 F078 F078 F078 F078 D8D8 D8D8 D8D8 D8D8 DD98 CD98 CD98 CD98 CF98 C718 C718 C718 C018 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 15 0 BBX 11 18 2 0 BITMAP E060 E060 F060 F060 F860 F860 DC60 DC60 CE60 CE60 C760 C760 C3E0 C3E0 C1E0 C1E0 C0E0 C0E0 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 0 0 BITMAP 0FC0 1FE0 3870 7038 7038 E01C E01C E01C E01C E01C E01C E01C E01C 7038 7038 3870 1FE0 0FC0 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 15 0 BBX 11 18 3 0 BITMAP FF80 FFC0 E1E0 E0E0 E0E0 E0E0 E0E0 E0C0 E1C0 FF80 FE00 E000 E000 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 15 0 BBX 15 22 1 -4 BITMAP 0FC0 1FE0 3870 7038 7038 E01C E01C E01C E01C E01C E01C E01C E01C 7038 7038 3870 1FF0 0FC0 00E0 0078 001E 000C ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 2 0 BITMAP FF00 FF80 E3C0 E1C0 E1C0 E1C0 E1C0 E380 E300 FE00 FE00 E700 E780 E380 E1C0 E1E0 E0F0 E0F8 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 2 0 BITMAP 1F80 7FC0 F040 E000 E000 E000 F800 7E00 1F80 07C0 03E0 00F0 0070 0070 0070 C0E0 FFC0 7F80 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 0 0 BITMAP FFFE FFFE 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 15 0 BBX 11 18 2 0 BITMAP E060 E060 E060 E060 E060 E060 E060 E060 E060 E060 E060 E060 E060 E060 E060 70C0 7FC0 1F00 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 0 0 BITMAP E006 E00C 700C 700C 7018 3818 3818 3830 1C30 1C30 1C60 0E60 0EE0 0FC0 07C0 07C0 0780 0380 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 0 0 BITMAP C006 C386 C386 C384 E78C 67CC 67CC 66CC 66CC 64C8 6CC8 6CD8 6CF8 7CF8 3C78 3870 3870 3870 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 0 0 BITMAP F00E 781C 3818 3C30 1E70 0E60 0FC0 07C0 0380 03C0 07E0 0EE0 0CF0 1870 3838 303C 601C E01E ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 0 0 BITMAP E00E 700C 7818 3818 3C30 1C70 1E60 0FE0 07C0 0780 0380 0380 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 7FF8 7FF8 0078 00F0 00E0 01E0 03C0 0380 0780 0F00 0E00 1E00 3C00 7800 7000 F000 FFF8 FFF8 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 15 0 BBX 7 22 6 -4 BITMAP FE FE C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 FE FE ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 15 0 BBX 13 22 1 -4 BITMAP C000 6000 6000 3000 3000 1800 1800 0C00 0C00 0600 0600 0300 0300 0180 0180 00C0 00C0 0060 0060 0030 0030 0018 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 15 0 BBX 7 22 2 -4 BITMAP FE FE 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 FE FE ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 15 0 BBX 13 15 1 3 BITMAP 0200 0200 0700 0700 0F80 0D80 0D80 18C0 18C0 3060 3060 7070 6030 6030 C018 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 15 0 BBX 15 2 0 -2 BITMAP FFFE FFFE ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 15 0 BBX 4 6 5 12 BITMAP 70 E0 C0 F0 F0 F0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 2 0 BITMAP 1F80 7FC0 40E0 00E0 00E0 1FE0 7FE0 70E0 E0E0 E0E0 F1E0 7F78 3E78 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 2 0 BITMAP E000 E000 E000 E000 E000 E780 EFE0 F8E0 F070 E070 E070 E070 E070 E070 E0E0 F1E0 DFC0 CF80 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 15 0 BBX 12 13 2 0 BITMAP 0FE0 3FF0 7830 7000 E000 E000 E000 E000 E000 7000 7810 3FF0 0FE0 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 1 0 BITMAP 0070 0070 0070 0070 0070 1E70 3F70 78F0 7070 E070 E070 E070 E070 E070 E0F0 71F0 7F70 1E70 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 15 0 BBX 12 13 2 0 BITMAP 0F80 3FE0 78E0 7070 E070 FFF0 FFF0 E000 E000 7000 7810 3FF0 0FE0 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 15 0 BBX 14 19 1 0 BITMAP 03F8 07FC 0F04 0E00 0E00 0E00 FFF8 FFF8 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 1 -5 BITMAP 1F30 3FB0 78F0 7070 E070 E070 E070 E070 E070 F0F0 71F0 7F70 1E70 0070 0060 60E0 7FC0 3F80 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 15 0 BBX 11 18 2 0 BITMAP E000 E000 E000 E000 E000 E380 EFC0 EFE0 F8E0 F0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 15 0 BBX 8 18 2 0 BITMAP 07 07 07 00 00 FF FF 07 07 07 07 07 07 07 07 07 07 07 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 15 0 BBX 9 23 2 -5 BITMAP 0380 0380 0380 0000 0000 7F80 7F80 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 8780 FF00 7E00 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 3 0 BITMAP E000 E000 E000 E000 E000 E0E0 E180 E380 E700 EE00 EC00 FE00 EF00 E780 E780 E3C0 E1E0 E0F0 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 15 0 BBX 8 18 2 0 BITMAP FF FF 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 15 0 BBX 14 13 1 0 BITMAP CE38 DF7C F3CC E38C C30C C30C C30C C30C C30C C30C C30C C30C C30C ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 15 0 BBX 11 13 2 0 BITMAP E380 EFC0 EFE0 F8E0 F0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 1 0 BITMAP 0F80 3FE0 78F0 7070 E038 E038 E038 E038 E038 7070 78F0 3FE0 0F80 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 2 -5 BITMAP E780 EFE0 F8E0 F070 E070 E070 E070 E070 E070 E0E0 F1E0 EFC0 E780 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 1 -5 BITMAP 1F30 3FB0 78F0 7070 E070 E070 E070 E070 E070 E0F0 71F0 7F70 1E70 0070 0070 0070 0070 0070 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 15 0 BBX 10 13 4 0 BITMAP E7C0 EFC0 F8C0 F0C0 E000 E000 E000 E000 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 15 0 BBX 11 13 2 0 BITMAP 3F80 7FC0 F040 E000 F800 7F00 3FC0 0FE0 01E0 00E0 C1E0 FFC0 7F00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 15 0 BBX 12 16 1 0 BITMAP 1C00 1C00 1C00 FFF0 FFF0 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1E00 0FF0 07F0 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 15 0 BBX 11 13 2 0 BITMAP E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E1E0 E3E0 FEE0 7EE0 38E0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 15 0 BBX 14 13 0 0 BITMAP E00C F018 7018 7030 3830 3870 3C60 1CE0 1EC0 0EC0 0F80 0780 0700 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 15 0 BBX 15 13 0 0 BITMAP E006 E386 E384 73CC 77CC 76CC 76CC 76C8 3C78 3C78 3C78 3C78 3830 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 1 0 BITMAP F038 7860 38E0 3CC0 1F80 0F80 0700 0F80 1FC0 19E0 30E0 70F0 E078 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 -5 BITMAP E018 F030 7030 7070 3860 38E0 3CC0 1CC0 1D80 0F80 0F00 0700 0700 0600 0E00 0C00 7C00 7000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 15 0 BBX 12 13 1 0 BITMAP FFF0 FFF0 00E0 01C0 0380 0700 0E00 0C00 1800 3000 6000 FFF0 FFF0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 15 0 BBX 10 22 3 -4 BITMAP 07C0 0FC0 1E00 1C00 1C00 0C00 0E00 0600 0600 0E00 F800 F800 0C00 0600 0600 0E00 0C00 1C00 1C00 1E00 0FC0 07C0 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 15 0 BBX 2 22 6 -4 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 15 0 BBX 10 22 2 -4 BITMAP F800 FE00 0F00 0700 0700 0600 0E00 0C00 0C00 0E00 07C0 07C0 0E00 0C00 0C00 0C00 0600 0700 0700 0F00 FE00 F800 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 15 0 BBX 13 5 1 4 BITMAP 3818 7E18 C718 C3F0 C0E0 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 15 0 BBX 4 18 5 -5 BITMAP F0 F0 F0 00 00 60 60 60 60 60 70 70 70 70 70 70 70 70 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 15 0 BBX 10 18 2 0 BITMAP 0600 0600 0FC0 3FC0 7640 7600 E600 E600 E600 E600 E600 E600 7600 7640 3FC0 1FC0 0600 0600 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 15 0 BBX 10 18 3 0 BITMAP 07C0 1FC0 1840 3800 3800 3800 3800 3800 FE00 FE00 3800 3800 3800 3800 3000 6000 FFC0 FFC0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 15 0 BBX 12 12 1 3 BITMAP 4020 E070 6F60 3FC0 70E0 6060 6060 6060 30C0 7FE0 EF70 4020 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 0 0 BITMAP F00E 700C 7818 3C38 1C30 1E60 0FE0 07C0 0780 3FF0 3FF0 0380 3FF0 3FF0 0380 0380 0380 0380 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 15 0 BBX 2 22 6 -4 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 00 00 00 00 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 15 0 BBX 10 22 3 -4 BITMAP 1F80 7F80 E080 C000 C000 F000 7C00 7E00 5F00 C780 C180 E180 F980 7F00 3E00 0F80 03C0 01C0 01C0 83C0 FF80 7F00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 15 0 BBX 7 2 4 16 BITMAP C6 C6 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 0 0 BITMAP 0FC0 1FF0 3038 6018 67DC CFCC DC4C D80C D80C D80C D80C DC4C CFCC E798 6018 7030 3FE0 0FC0 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 15 0 BBX 9 9 3 9 BITMAP 7E00 FF00 0300 3F00 7F00 C300 C300 FF80 7380 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 15 0 BBX 12 11 1 1 BITMAP 0420 0E70 18E0 39C0 7380 E700 7380 39C0 18E0 0C70 0620 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 15 0 BBX 13 7 1 3 BITMAP FFF8 FFF8 0018 0018 0018 0018 0018 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 15 0 BBX 10 2 2 6 BITMAP FFC0 FFC0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 15 0 BBX 10 11 3 7 BITMAP 1E00 2100 5E80 9240 9240 9C40 9440 9440 5280 2100 1E00 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 15 0 BBX 7 2 4 16 BITMAP FE FE ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 15 0 BBX 4 4 5 14 BITMAP 60 90 90 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 15 0 BBX 14 13 0 0 BITMAP 0300 0300 0300 0300 FFFC FFFC 0300 0300 0300 0000 0000 FFFC FFFC ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 15 0 BBX 5 9 -2 9 BITMAP F0 88 08 08 10 20 40 C0 F8 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 15 0 BBX 5 9 -2 9 BITMAP F0 88 08 08 70 18 08 08 F0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 15 0 BBX 5 4 5 14 BITMAP 38 30 60 C0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 15 0 BBX 11 17 2 -4 BITMAP E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E1E0 E3E0 FEE0 FEE0 FCE0 E000 E000 E000 E000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 15 0 BBX 10 22 2 -4 BITMAP 3FC0 7FC0 FEC0 FEC0 FEC0 FEC0 7EC0 7EC0 1EC0 06C0 06C0 06C0 06C0 06C0 06C0 06C0 06C0 06C0 06C0 06C0 06C0 06C0 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 15 0 BBX 3 3 6 5 BITMAP E0 E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 15 0 BBX 4 5 6 -5 BITMAP 60 C0 30 30 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 15 0 BBX 5 9 -2 9 BITMAP 60 E0 20 20 20 20 20 20 F8 ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 15 0 BBX 10 9 2 9 BITMAP 1E00 7F80 F3C0 E1C0 E1C0 E1C0 F3C0 7F80 1E00 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 15 0 BBX 12 11 2 1 BITMAP 4600 E300 7180 39C0 1CE0 0E70 1CE0 39C0 7180 E700 4200 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 2 0 BITMAP 600E E00C 2018 2038 2070 2060 20C0 21C0 F980 030C 070C 0E14 0C14 1824 3844 307E 6004 E004 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 2 0 BITMAP 600E E00C 2018 2038 2070 2060 20C0 21C0 F980 033C 0722 0E02 0C02 1804 3808 3010 6030 E03E ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 2 0 BITMAP F00E 880C 0818 0838 7070 1860 08C0 09C0 F180 030C 070C 0E14 0C14 1824 3844 307E 6004 E004 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 1 -5 BITMAP 0380 0380 0380 0000 0000 0380 0380 0380 0700 0E00 3800 7000 E000 E000 E030 F030 7FF0 1FE0 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 15 0 BBX 15 23 0 0 BITMAP 0700 0300 0180 00C0 0000 0380 03C0 07C0 07C0 07E0 0EE0 0CE0 0CF0 1870 1870 1838 3FF8 3FF8 301C 601C 601C 600E C00E ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 15 0 BBX 15 23 0 0 BITMAP 01C0 0180 0300 0600 0000 0380 03C0 07C0 07C0 07E0 0EE0 0CE0 0CF0 1870 1870 1838 3FF8 3FF8 301C 601C 601C 600E C00E ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 15 0 BBX 15 23 0 0 BITMAP 0780 0780 0CC0 1860 0000 0380 03C0 07C0 07C0 07E0 0EE0 0CE0 0CF0 1870 1870 1838 3FF8 3FF8 301C 601C 601C 600E C00E ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 15 0 BBX 15 22 0 0 BITMAP 0E60 1FE0 19C0 0000 0380 03C0 07C0 07C0 07E0 0EE0 0CE0 0CF0 1870 1870 1838 3FF8 3FF8 301C 601C 601C 600E C00E ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 15 0 BBX 15 21 0 0 BITMAP 0C60 0C60 0000 0380 03C0 07C0 07C0 07E0 0EE0 0CE0 0CF0 1870 1870 1838 3FF8 3FF8 301C 601C 601C 600E C00E ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 15 0 BBX 15 23 0 0 BITMAP 0180 0240 0240 0180 0000 0380 03C0 07C0 07C0 07E0 0EE0 0CE0 0CF0 1870 1870 1838 3FF8 3FF8 301C 601C 601C 600E C00E ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 15 0 BBX 16 18 0 0 BITMAP 01FE 01FE 01E0 03E0 03E0 06E0 06E0 0EE0 0CFC 0CFC 18E0 18E0 3FE0 3FE0 30E0 60E0 60FF C0FF ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 15 0 BBX 13 23 1 -5 BITMAP 07F0 1FF8 3C18 7800 7000 7000 E000 E000 E000 E000 E000 E000 F000 7000 7800 3E08 1FF8 07F0 0200 0600 0180 0180 0700 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 15 0 BBX 12 23 2 0 BITMAP 1C00 0C00 0600 0300 0000 FFE0 FFE0 E000 E000 E000 E000 E000 FFC0 FFC0 E000 E000 E000 E000 E000 E000 E000 FFF0 FFF0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 15 0 BBX 12 23 2 0 BITMAP 0700 0600 0C00 1800 0000 FFE0 FFE0 E000 E000 E000 E000 E000 FFC0 FFC0 E000 E000 E000 E000 E000 E000 E000 FFF0 FFF0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 0 0 BBX 0 0 0 0 BITMAP ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 15 0 BBX 12 21 2 0 BITMAP 3180 3180 0000 FFE0 FFE0 E000 E000 E000 E000 E000 FFC0 FFC0 E000 E000 E000 E000 E000 E000 E000 FFF0 FFF0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 15 0 BBX 11 23 2 0 BITMAP 1C00 0C00 0600 0300 0000 FFE0 FFE0 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 FFE0 FFE0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 15 0 BBX 11 23 2 0 BITMAP 0700 0600 0C00 1800 0000 FFE0 FFE0 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 FFE0 FFE0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 15 0 BBX 11 23 2 0 BITMAP 1E00 1E00 3300 6180 0000 FFE0 FFE0 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 FFE0 FFE0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 15 0 BBX 11 21 2 0 BITMAP 3180 3180 0000 FFE0 FFE0 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 FFE0 FFE0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 0 0 BITMAP 7FC0 7FF0 70F8 7038 703C 701C 701C 701C FE1C FE1C 701C 701C 701C 7038 7038 70F0 7FE0 7F80 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 15 0 BBX 11 22 2 0 BITMAP 3980 7F80 6700 0000 E060 E060 F060 F060 F860 F860 DC60 DC60 CE60 CE60 C760 C760 C3E0 C3E0 C1E0 C1E0 C0E0 C0E0 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 15 0 BBX 14 23 0 0 BITMAP 0700 0300 0180 00C0 0000 0FC0 1FE0 3870 7038 7038 E01C E01C E01C E01C E01C E01C E01C E01C 7038 7038 3870 1FE0 0FC0 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 15 0 BBX 14 23 0 0 BITMAP 0380 0300 0600 0C00 0000 0FC0 1FE0 3870 7038 7038 E01C E01C E01C E01C E01C E01C E01C E01C 7038 7038 3870 1FE0 0FC0 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 15 0 BBX 14 23 0 0 BITMAP 0780 0780 0CC0 1860 0000 0FC0 1FE0 3870 7038 7038 E01C E01C E01C E01C E01C E01C E01C E01C 7038 7038 3870 1FE0 0FC0 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 15 0 BBX 14 22 0 0 BITMAP 0E60 1FE0 19C0 0000 0FC0 1FE0 3870 7038 7038 E01C E01C E01C E01C E01C E01C E01C E01C 7038 7038 3870 1FE0 0FC0 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 15 0 BBX 14 21 0 0 BITMAP 18C0 18C0 0000 0FC0 1FE0 3870 7038 7038 E01C E01C E01C E01C E01C E01C E01C E01C 7038 7038 3870 1FE0 0FC0 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 1 0 BITMAP 0700 0700 0700 0000 0000 0000 FFF8 FFF8 0000 0000 0700 0700 0700 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 1 0 BITMAP 0F9C 1FF8 3870 7070 7078 E0DC E1DC E19C E31C E71C E61C EE1C EC1C 7838 7838 3870 7FE0 E7C0 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 15 0 BBX 11 23 2 0 BITMAP 1C00 0C00 0600 0300 0000 E060 E060 E060 E060 E060 E060 E060 E060 E060 E060 E060 E060 E060 E060 E060 70C0 7FC0 1F00 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 15 0 BBX 11 23 2 0 BITMAP 0700 0600 0C00 1800 0000 E060 E060 E060 E060 E060 E060 E060 E060 E060 E060 E060 E060 E060 E060 E060 70C0 7FC0 1F00 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 15 0 BBX 11 23 2 0 BITMAP 1E00 1E00 3300 6180 0000 E060 E060 E060 E060 E060 E060 E060 E060 E060 E060 E060 E060 E060 E060 E060 70C0 7FC0 1F00 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 15 0 BBX 11 21 2 0 BITMAP 3180 3180 0000 E060 E060 E060 E060 E060 E060 E060 E060 E060 E060 E060 E060 E060 E060 E060 70C0 7FC0 1F00 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 15 0 BBX 15 23 0 0 BITMAP 01C0 0180 0300 0600 0000 E00E 700C 7818 3818 3C30 1C70 1E60 0FE0 07C0 0780 0380 0380 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 15 0 BBX 11 18 3 0 BITMAP E000 E000 E000 FF80 FFC0 E1E0 E0E0 E0E0 E0E0 E0E0 E0E0 E1C0 FF80 FE00 E000 E000 E000 E000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 15 0 BBX 13 19 2 0 BITMAP 3F00 7F80 E3C0 E1C0 E1C0 E380 E300 E600 E600 E700 E7C0 E3E0 E1F0 E078 E038 E038 E478 E7F0 E3E0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 2 0 BITMAP 0E00 0600 0300 0180 0000 1F80 7FC0 40E0 00E0 00E0 1FE0 7FE0 70E0 E0E0 E0E0 F1E0 7F78 3E78 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 2 0 BITMAP 0700 0600 0C00 1800 0000 1F80 7FC0 40E0 00E0 00E0 1FE0 7FE0 70E0 E0E0 E0E0 F1E0 7F78 3E78 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 2 0 BITMAP 0F00 0F00 1980 30C0 0000 1F80 7FC0 40E0 00E0 00E0 1FE0 7FE0 70E0 E0E0 E0E0 F1E0 7F78 3E78 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 2 0 BITMAP 1CC0 3FC0 3380 0000 1F80 7FC0 40E0 00E0 00E0 1FE0 7FE0 70E0 E0E0 E0E0 F1E0 7F78 3E78 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 15 0 BBX 13 16 2 0 BITMAP 3180 3180 0000 1F80 7FC0 40E0 00E0 00E0 1FE0 7FE0 70E0 E0E0 E0E0 F1E0 7F78 3E78 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 2 0 BITMAP 0600 0900 0900 0600 0000 1F80 7FC0 40E0 00E0 00E0 1FE0 7FE0 70E0 E0E0 E0E0 F1E0 7F78 3E78 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 15 0 BBX 14 13 1 0 BITMAP 3CF0 7EF8 4798 071C 071C 3FFC 7FFC F700 E700 E700 E784 7DFC 38F8 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 2 -5 BITMAP 0FE0 3FF0 7830 7000 E000 E000 E000 E000 E000 7000 7810 3FF0 0FE0 0400 0C00 0300 0300 0E00 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 2 0 BITMAP 0E00 0600 0300 0180 0000 0F80 3FE0 78E0 7070 E070 FFF0 FFF0 E000 E000 7000 7810 3FF0 0FE0 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 2 0 BITMAP 0700 0600 0C00 1800 0000 0F80 3FE0 78E0 7070 E070 FFF0 FFF0 E000 E000 7000 7810 3FF0 0FE0 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 2 0 BITMAP 0F00 0F00 1980 30C0 0000 0F80 3FE0 78E0 7070 E070 FFF0 FFF0 E000 E000 7000 7810 3FF0 0FE0 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 15 0 BBX 12 16 2 0 BITMAP 3180 3180 0000 0F80 3FE0 78E0 7070 E070 FFF0 FFF0 E000 E000 7000 7810 3FF0 0FE0 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 15 0 BBX 9 18 2 0 BITMAP 0E00 0600 0300 0180 0000 FF00 FF00 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 15 0 BBX 8 18 2 0 BITMAP 07 06 0C 18 00 FF FF 07 07 07 07 07 07 07 07 07 07 07 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 15 0 BBX 10 18 2 0 BITMAP 0F00 0F00 1980 30C0 0000 FF00 FF00 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 15 0 BBX 9 16 2 0 BITMAP 3180 3180 0000 FF00 FF00 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 2 0 BITMAP FE00 8F00 3E00 3300 2180 1FC0 3FE0 78E0 F0F0 E070 E070 E070 E070 E070 70E0 78E0 3FC0 1F80 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 15 0 BBX 11 17 2 0 BITMAP 3980 7F80 6700 0000 E380 EFC0 EFE0 F8E0 F0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 0E00 0600 0300 0180 0000 0F80 3FE0 78F0 7070 E038 E038 E038 E038 E038 7070 78F0 3FE0 0F80 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 0380 0300 0600 0C00 0000 0F80 3FE0 78F0 7070 E038 E038 E038 E038 E038 7070 78F0 3FE0 0F80 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 15 0 BBX 13 18 1 0 BITMAP 0780 0780 0CC0 1860 0000 0F80 3FE0 78F0 7070 E038 E038 E038 E038 E038 7070 78F0 3FE0 0F80 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 15 0 BBX 13 17 1 0 BITMAP 0E60 1FE0 19C0 0000 0F80 3FE0 78F0 7070 E038 E038 E038 E038 E038 7070 78F0 3FE0 0F80 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 15 0 BBX 13 16 1 0 BITMAP 18C0 18C0 0000 0F80 3FE0 78F0 7070 E038 E038 E038 E038 E038 7070 78F0 3FE0 0F80 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 1 0 BITMAP 4010 E038 7070 38E0 1DC0 0F80 0700 0F80 1DC0 38E0 7070 E038 4010 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 15 0 BBX 13 13 1 0 BITMAP 0FB8 3FF0 78F0 70F0 E1B8 E3B8 E738 EE38 EC38 7870 78F0 7FE0 EF80 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 15 0 BBX 11 18 2 0 BITMAP 1C00 0C00 0600 0300 0000 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E1E0 E3E0 FEE0 7EE0 38E0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 15 0 BBX 11 18 2 0 BITMAP 0700 0600 0C00 1800 0000 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E1E0 E3E0 FEE0 7EE0 38E0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 15 0 BBX 11 18 2 0 BITMAP 0F00 0F00 1980 30C0 0000 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E1E0 E3E0 FEE0 7EE0 38E0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 15 0 BBX 11 16 2 0 BITMAP 3180 3180 0000 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E1E0 E3E0 FEE0 7EE0 38E0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 15 0 BBX 13 23 1 -5 BITMAP 0380 0300 0600 0C00 0000 E018 F030 7030 7070 3860 38E0 3CC0 1CC0 1D80 0F80 0F00 0700 0700 0600 0E00 0C00 7C00 7000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 15 0 BBX 12 22 2 -5 BITMAP E000 E000 E000 E000 E780 EFE0 F8E0 F070 E070 E070 E070 E070 E070 E0E0 F1E0 EFC0 E780 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 15 0 BBX 13 21 1 -5 BITMAP 18C0 18C0 0000 E018 F030 7030 7070 3860 38E0 3CC0 1CC0 1D80 0F80 0F00 0700 0700 0600 0E00 0C00 7C00 7000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 12 19 1 0 BITMAP 0FF0 1FF0 3870 3870 3870 3870 FE70 FE70 3870 3870 3870 3870 3870 3870 3870 3870 3870 3870 3870 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 12 2 1 6 BITMAP FFF0 FFF0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 10 22 2 -4 BITMAP 0C00 0C00 0C00 0C00 0C00 0C00 0C00 FFC0 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 13 23 1 0 BITMAP 30C0 1980 0F00 0F00 0000 7FF8 7FF8 0078 00F0 00E0 01E0 03C0 0380 0780 0F00 0E00 1E00 3C00 7800 7000 F000 FFF8 FFF8 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 14 13 1 0 BITMAP 3CF0 7EF8 7F98 E71C E71C E7FC E7FC E700 E700 E700 6784 7FFC 3CF8 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 15 21 0 0 BITMAP 0C60 0C60 0000 E00E 700C 7818 3818 3C30 1C70 1E60 0FE0 07C0 0780 0380 0380 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 13 2 0 BITMAP FF FF 07 07 07 07 07 07 07 07 07 07 07 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 11 18 2 0 BITMAP FF00 FF00 0700 0700 0700 0720 0760 07E0 0780 1F00 3F00 2700 0700 0700 0700 0700 0700 0700 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 0 0 BITMAP 1C00 1C00 1C00 1C00 1C00 1C80 1D80 1F80 3E00 FC00 FC00 9C00 1C00 1C00 1C00 1C00 1FFC 1FFC ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 10 22 2 -4 BITMAP 0C00 0C00 0C00 0C00 0C00 0C00 0C00 FFC0 0C00 0C00 0C00 0C00 0C00 0C00 FFC0 0C00 0C00 0C00 0C00 0C00 0C00 0C00 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 12 19 1 0 BITMAP 0E00 1F70 3E70 3870 3800 3800 FFF0 FFF0 3870 3870 3870 3870 3870 3870 3870 3870 3870 3870 3870 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 7 11 4 1 BITMAP 40 E0 70 38 1C 0E 1C 38 70 E0 40 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 14 18 1 0 BITMAP 1FF8 7FF8 7380 6380 E380 E380 E380 E380 E3F8 E3F0 E380 E380 E380 E380 6380 7380 3FFC 1FFC ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 14 2 0 6 BITMAP FFFC FFFC ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 4 3 14 BITMAP C3 66 3C 3C ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 4 5 5 -5 BITMAP 60 C0 C0 C0 70 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 4 4 14 BITMAP 33 26 6C C8 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 7 11 4 1 BITMAP 04 0E 1C 38 70 E0 70 38 1C 0E 04 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 2 3 6 15 BITMAP C0 C0 C0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 4 3 14 BITMAP C3 C3 7E 3C ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 8 4 3 BITMAP FF FF FF FF FF FF FF FF ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 3 3 15 BITMAP 73 FF CE ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 8 4 3 14 BITMAP 3C 3C 66 C3 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 9 6 3 12 BITMAP 6180 C300 C300 E380 E380 E380 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 4 6 5 12 BITMAP F0 F0 F0 60 60 60 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 11 18 2 0 BITMAP 6180 3300 1E00 1E00 0000 3F80 7FC0 F040 E000 F800 7F00 3FC0 0FE0 01E0 00E0 C1E0 FFC0 7F00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 4 4 5 15 BITMAP 60 90 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 4 8 5 -4 BITMAP F0 F0 F0 F0 30 30 60 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 11 22 3 -4 BITMAP 03E0 07E0 0E00 0E00 1C00 1C00 1C00 3C00 FE00 FE00 1C00 1C00 3800 3800 3800 3800 7000 7000 7000 7000 E000 E000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 14 9 0 9 BITMAP FF8C FF9C 339C 33DC 33FC 336C 336C 336C 330C ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 0 0 BITMAP 000E 000C 0018 0038 0070 0060 00C0 01C0 0180 0300 0700 0E00 0C00 1800 3800 3000 6000 E000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 5 4 5 14 BITMAP E0 60 30 18 ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 15 18 0 0 BITMAP 70C0 D9C0 D980 DB80 DB00 DB00 DE00 7600 0C00 0C00 1B9C 1EF6 36F6 36F6 76F6 66F6 E6F6 C39C ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 12 3 1 0 BITMAP E770 E770 E770 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 9 6 3 12 BITMAP E380 E380 E380 6180 6180 C300 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 12 23 2 0 BITMAP 30C0 1980 0F00 0F00 0000 1F80 7FC0 F040 E000 E000 E000 F800 7E00 1F80 07C0 03E0 00F0 0070 0070 0070 C0E0 FFC0 7F80 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 9 7 3 -4 BITMAP E380 E380 E380 6180 6180 6180 C300 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 15 0 BBX 12 18 1 0 BITMAP 30C0 1980 0F00 0F00 0000 FFF0 FFF0 00E0 01C0 0380 0700 0E00 0C00 1800 3000 6000 FFF0 FFF0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lutRS19.bdf100644 1750 1750 111406 5413747543 15262 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaTypewriter-Medium-R-Normal-Sans-26-190-100-100-M-159-ISO8859-1 SIZE 19 100 100 FONTBOUNDINGBOX 22 29 -3 -5 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaTypewriter" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 26 POINT_SIZE 190 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "M" AVERAGE_WIDTH "159" CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." FONT_ASCENT 24 FONT_DESCENT 6 DEFAULT_CHAR 0 ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 16 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 16 0 BBX 4 19 6 0 BITMAP 70 70 70 70 70 70 70 70 70 60 60 60 60 60 00 00 F0 F0 F0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 16 0 BBX 10 6 3 13 BITMAP E1C0 E1C0 E1C0 6180 6180 6180 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 0 BITMAP 0338 0330 0630 0630 0630 0660 7FFC 7FFC 0C60 0CC0 0CC0 18C0 FFF8 FFF8 1980 3180 3180 3380 7300 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 16 0 BBX 10 22 3 -2 BITMAP 0C00 3F80 7FC0 EC40 EC00 EC00 EC00 EC00 7C00 3C00 1E00 0F00 0F80 0DC0 0DC0 0DC0 0DC0 8D80 FF80 7F00 0C00 0C00 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 16 0 BBX 16 19 0 0 BITMAP 3C07 6606 C30C C31C C338 C330 C360 66E0 3DC0 0180 0300 073C 0666 0CC3 1CC3 38C3 30C3 6066 E03C ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 0 0 BITMAP 0780 0FC0 1CE0 1CE0 1CE0 1CE0 0DC0 0F80 1F00 7F0E 778E E38E E3CC E1FC E0F8 F0F8 78F0 3FD8 1F9E ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 16 0 BBX 4 7 6 12 BITMAP F0 F0 F0 30 70 E0 80 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 16 0 BBX 10 23 4 -4 BITMAP 01C0 07C0 1F00 3C00 3800 7800 7000 F000 E000 E000 E000 E000 E000 E000 E000 7000 7000 3000 3800 1C00 0F00 03C0 00C0 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 16 0 BBX 10 23 2 -4 BITMAP C000 F800 3C00 0E00 0700 0700 0380 0380 01C0 01C0 01C0 01C0 01C0 01C0 01C0 0380 0380 0780 0700 0E00 3C00 F800 C000 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 16 0 BBX 12 11 2 8 BITMAP 0600 0600 0600 6660 F9F0 30C0 0900 1F80 39C0 70E0 1080 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 1 0 BITMAP 0300 0300 0300 0300 0300 0300 FFFC FFFC 0300 0300 0300 0300 0300 0300 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 16 0 BBX 4 8 6 -4 BITMAP F0 F0 F0 F0 30 30 60 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 16 0 BBX 13 2 1 6 BITMAP FFF8 FFF8 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 16 0 BBX 4 4 6 0 BITMAP F0 F0 F0 F0 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 16 0 BBX 14 23 1 -4 BITMAP 000C 0018 0018 0030 0070 0060 00E0 00C0 01C0 0180 0380 0300 0700 0600 0E00 0C00 1C00 1800 3800 3000 6000 6000 C000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 1 0 BITMAP 0F80 1FC0 38E0 7070 7070 E038 E038 E038 E038 E038 E038 E038 E038 E038 7070 7070 38E0 1FC0 0F80 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 2 0 BITMAP 0300 3F00 FF00 C700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 FFF8 FFF8 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 16 0 BBX 11 19 2 0 BITMAP 3F00 FF80 C1C0 00E0 00E0 00E0 00E0 01C0 01C0 0380 0700 0E00 1C00 3800 7000 7000 E000 FFE0 FFE0 ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 16 0 BBX 11 19 3 0 BITMAP 7F00 FFC0 C1E0 00E0 00E0 00E0 00C0 0380 3E00 3F80 03C0 01E0 00E0 00E0 00E0 01E0 83C0 FF80 FE00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 0 BITMAP 00E0 01E0 01E0 03E0 06E0 0EE0 0CE0 18E0 38E0 30E0 60E0 E0E0 FFFC FFFC 00E0 00E0 00E0 00E0 00E0 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 16 0 BBX 9 19 4 0 BITMAP FF80 FF80 C000 C000 C000 C000 C000 F800 FE00 0F00 0700 0380 0380 0380 0380 0780 8700 FE00 FC00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 2 0 BITMAP 07C0 1FE0 3C20 7000 7000 6000 E000 E780 EFE0 F0E0 F0F0 E070 E070 E070 6070 7060 78E0 3FC0 0F80 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 16 0 BBX 11 19 3 0 BITMAP FFE0 FFE0 FFE0 00C0 00C0 0180 0380 0300 0700 0600 0E00 0C00 1C00 1800 3800 3800 7000 7000 7000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 2 0 BITMAP 0F80 3FC0 78E0 7060 7060 7060 78C0 3D80 0F00 1FC0 33E0 61E0 E0F0 E070 E070 E070 70E0 7FC0 1F80 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 2 0 BITMAP 1F00 3FC0 71E0 70E0 E060 E070 E070 E070 F0F0 70F0 7F70 1E70 0070 0060 00E0 00E0 43C0 7F80 3E00 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 16 0 BBX 4 14 6 0 BITMAP F0 F0 F0 F0 00 00 00 00 00 00 F0 F0 F0 F0 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 16 0 BBX 4 18 6 -4 BITMAP F0 F0 F0 F0 00 00 00 00 00 00 F0 F0 F0 F0 30 30 60 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 16 0 BBX 13 14 1 0 BITMAP 0008 0038 00F0 03E0 0780 1E00 F800 7800 1E00 0780 03E0 00F8 0038 0008 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 16 0 BBX 13 7 1 3 BITMAP FFF8 FFF8 0000 0000 0000 FFF8 FFF8 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 16 0 BBX 13 14 1 0 BITMAP 8000 E000 7800 3E00 0F00 03C0 00F0 00F8 03C0 0F00 3E00 F800 E000 8000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 2 0 BITMAP 7F80 FFE0 C0F0 C070 C070 0070 00E0 01C0 0380 0700 0E00 1C00 1C00 1C00 0000 0000 1C00 1C00 1C00 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 1 0 BITMAP 07E0 0FF0 3C38 3018 60F8 6118 C318 C218 C618 C638 C638 C678 C658 E3DE 639E 7000 3820 1FE0 0FC0 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 0 0 BITMAP 0380 0380 07C0 07C0 07C0 0EE0 0CE0 0CE0 1C70 1870 1870 3838 3FF8 3FF8 701C 601C 601C C00E C00E ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 2 0 BITMAP FF80 FFC0 E1E0 E0E0 E0E0 E0E0 E1E0 E3C0 FF00 FF00 E1C0 E0E0 E070 E070 E070 E070 E0E0 FFE0 FF80 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 1 0 BITMAP 07F0 1FF8 3C18 3800 7000 7000 E000 E000 E000 E000 E000 E000 E000 7000 7000 3800 3E08 1FF8 07F0 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 2 0 BITMAP FF80 FFE0 E1E0 E070 E070 E038 E038 E038 E038 E038 E038 E038 E038 E038 E070 E0F0 E1E0 FFC0 FF00 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 3 0 BITMAP FFE0 FFE0 E000 E000 E000 E000 E000 E000 FFC0 FFC0 E000 E000 E000 E000 E000 E000 E000 FFF0 FFF0 ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 3 0 BITMAP FFF0 FFF0 E000 E000 E000 E000 E000 E000 E000 FFE0 FFC0 E000 E000 E000 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 1 0 BITMAP 07F0 1FF8 3C08 3800 7000 7000 E000 E000 E000 E000 E038 E038 E038 7038 7038 3838 3C38 1FF8 07F0 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 2 0 BITMAP E070 E070 E070 E070 E070 E070 E070 E070 FFF0 FFF0 E070 E070 E070 E070 E070 E070 E070 E070 E070 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 16 0 BBX 11 19 2 0 BITMAP FFE0 FFE0 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 FFE0 FFE0 ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 16 0 BBX 10 19 2 0 BITMAP 7FC0 7FC0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 8380 FF00 7E00 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 2 0 BITMAP E070 E0E0 E0C0 E180 E380 E300 E600 EE00 EC00 FC00 FE00 EF00 E780 E380 E3C0 E1E0 E0F0 E070 E078 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 2 0 BITMAP E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 FFF0 FFF0 ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 1 0 BITMAP E038 E038 F078 F078 F078 F078 D8D8 D8D8 D8D8 D8D8 CD98 CD98 CD98 CD98 C718 C718 C718 C718 C018 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 2 0 BITMAP E030 E030 F030 F830 F830 FC30 DC30 DE30 CE30 CF30 C730 C7B0 C3B0 C3F0 C1F0 C0F0 C0F0 C070 C070 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 0 BITMAP 0FC0 1FE0 3870 7038 7038 6018 E01C E01C E01C E01C E01C E01C E01C 6018 7038 7038 3870 1FE0 0FC0 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 3 0 BITMAP FF80 FFE0 E0F0 E070 E070 E070 E070 E070 E0E0 E1E0 FFC0 FF00 E000 E000 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 16 0 BBX 15 23 1 -4 BITMAP 0FC0 1FE0 3870 7038 7038 6018 E01C E01C E01C E01C E01C E01C E01C 601C 7038 7038 3870 1FE0 0FC0 00E0 0078 001E 000C ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 2 0 BITMAP FF00 FFC0 E1E0 E0E0 E0E0 E0E0 E0E0 E1C0 E3C0 FF00 FF00 E700 E380 E3C0 E1C0 E1E0 E0F0 E070 E078 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 2 0 BITMAP 1F80 7FC0 7040 E000 E000 E000 F000 7C00 3F00 0FC0 03E0 01F0 0070 0070 0070 0070 C1E0 FFC0 7F80 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 0 0 BITMAP FFFE FFFE 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 2 0 BITMAP E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 F070 7060 7FC0 1F80 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 0 0 BITMAP E006 E00E 700C 700C 701C 7818 3818 3838 3C30 1C30 1C70 1E60 0E60 0EE0 0FC0 07C0 07C0 0780 0380 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 0 0 BITMAP C006 C386 C386 C384 C78C 67CC 67CC 67CC 66CC 64CC 64C8 6CD8 6CD8 6CF8 3CF8 3C78 3870 3870 3870 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 0 0 BITMAP F00E 781C 3818 3C30 1C70 0E60 0FC0 07C0 0780 03C0 07C0 07E0 0EE0 0CF0 1878 3838 303C 601C E00E ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 16 0 BBX 16 19 0 0 BITMAP E007 7006 780C 381C 3C18 1C30 1E30 0F60 07E0 07C0 0380 0380 0380 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 1 0 BITMAP 7FF8 7FF8 0078 0070 00F0 01E0 01C0 03C0 0780 0700 0F00 1E00 1C00 3C00 7800 7000 F000 FFF8 FFF8 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 16 0 BBX 8 23 6 -4 BITMAP FF FF C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 FF FF ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 16 0 BBX 14 23 1 -4 BITMAP C000 6000 6000 3000 3800 1800 1C00 0C00 0E00 0600 0700 0300 0380 0180 01C0 00C0 00E0 0060 0070 0030 0018 0018 000C ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 16 0 BBX 8 23 2 -4 BITMAP FF FF 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 FF FF ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 16 0 BBX 13 15 1 4 BITMAP 0200 0200 0700 0700 0F80 0D80 0D80 18C0 18C0 3060 3060 7070 6030 6030 C018 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 16 0 BBX 16 2 0 -2 BITMAP FFFF FFFF ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 16 0 BBX 4 7 6 12 BITMAP 30 60 C0 C0 F0 F0 F0 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 16 0 BBX 13 14 2 0 BITMAP 1F80 7FC0 41E0 00E0 00E0 00E0 1FE0 7FE0 70E0 E0E0 E0E0 F1E0 7F78 3E78 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 2 0 BITMAP E000 E000 E000 E000 E000 E780 EFE0 F8E0 F0F0 E070 E070 E070 E070 E070 E070 E0E0 F1E0 DFC0 CF80 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 16 0 BBX 12 14 2 0 BITMAP 0FE0 3FF0 7830 7000 E000 E000 E000 E000 E000 F000 7000 7C10 3FF0 0FE0 ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 2 0 BITMAP 0070 0070 0070 0070 0070 1E70 3F70 78F0 7070 E070 E070 E070 E070 E070 E070 F0F0 71F0 7F70 1E70 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 16 0 BBX 12 14 2 0 BITMAP 0F80 3FE0 78E0 7070 E070 E070 FFF0 FFF0 E000 E000 7000 7810 3FF0 0FE0 ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 16 0 BBX 14 20 2 0 BITMAP 03F8 07FC 0F04 0E00 0E00 0E00 FFF8 FFF8 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 2 -5 BITMAP 0F30 3FB0 78F0 7070 E070 E070 E070 E070 E070 E070 F0F0 71F0 7F70 1E70 0070 0060 60E0 7FC0 3F80 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 16 0 BBX 11 19 2 0 BITMAP E000 E000 E000 E000 E000 E380 EFC0 EFE0 F8E0 F0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 16 0 BBX 8 19 2 0 BITMAP 07 07 07 00 00 FF FF 07 07 07 07 07 07 07 07 07 07 07 07 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 16 0 BBX 10 24 2 -5 BITMAP 01C0 01C0 01C0 0000 0000 7FC0 7FC0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 8380 FF80 7E00 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 2 0 BITMAP E000 E000 E000 E000 E000 E0E0 E0C0 E180 E380 E700 EE00 FE00 FF00 EF00 E780 E3C0 E1E0 E0F0 E078 ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 16 0 BBX 8 19 2 0 BITMAP FF FF 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 1 0 BITMAP CE38 DF7C F3CC E38C C30C C30C C30C C30C C30C C30C C30C C30C C30C C30C ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 16 0 BBX 11 14 2 0 BITMAP E380 EFC0 EFE0 F8E0 F0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 16 0 BBX 13 14 1 0 BITMAP 0F80 3FE0 78F0 7070 E038 E038 E038 E038 E038 E038 7070 78F0 3FE0 0F80 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 2 -5 BITMAP E780 EFE0 F8E0 F0F0 E070 E070 E070 E070 E070 E070 E0E0 F1E0 EFC0 E780 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 1 -5 BITMAP 1F30 3FB0 78F0 7070 E070 E070 E070 E070 E070 E070 F0F0 71F0 7F70 1E70 0070 0070 0070 0070 0070 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 16 0 BBX 11 14 3 0 BITMAP E3E0 EFE0 FC60 F060 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 16 0 BBX 11 14 2 0 BITMAP 1F80 7FC0 F040 E000 F000 FC00 7F80 1FC0 03E0 00E0 00E0 C1E0 FFC0 7F00 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 16 0 BBX 12 17 2 0 BITMAP 1C00 1C00 1C00 FFF0 FFF0 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 1E00 0FF0 07F0 ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 16 0 BBX 11 14 2 0 BITMAP E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E1E0 E3E0 FEE0 7EE0 38E0 ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 1 0 BITMAP E00C E018 7018 7038 7830 3870 3C60 1C60 1CC0 0EC0 0FC0 0F80 0780 0700 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 16 0 BBX 15 14 0 0 BITMAP E006 E386 E384 63CC 73CC 76CC 76CC 76C8 76E8 3C78 3C78 3C78 3C70 3830 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 16 0 BBX 13 14 1 0 BITMAP F038 7070 78E0 3CC0 1FC0 0F80 0F00 0780 0F80 1DC0 39E0 30F0 6070 E078 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 -5 BITMAP E00C F018 7018 7830 3830 3870 1C60 1CE0 1EC0 0EC0 0F80 0780 0700 0300 0600 0600 0E00 7C00 7800 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 16 0 BBX 12 14 2 0 BITMAP FFF0 FFF0 00E0 00C0 0180 0380 0700 0E00 1C00 3800 7000 6000 FFF0 FFF0 ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 16 0 BBX 10 23 3 -4 BITMAP 07C0 0FC0 1E00 1C00 1C00 1C00 0E00 0E00 0600 0600 0C00 F000 FC00 0E00 0600 0600 0E00 0C00 1C00 1C00 1E00 0FC0 07C0 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 16 0 BBX 2 23 7 -4 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 16 0 BBX 10 23 3 -4 BITMAP F800 FE00 0F00 0700 0700 0600 0E00 0C00 0C00 0C00 0600 03C0 07C0 0E00 0C00 0C00 0C00 0600 0700 0700 0F00 FE00 F800 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 16 0 BBX 13 5 1 4 BITMAP 3818 7E18 C718 C3F0 C0E0 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 16 0 BBX 4 19 6 -5 BITMAP F0 F0 F0 00 00 60 60 60 60 60 70 70 70 70 70 70 70 70 70 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 16 0 BBX 10 19 3 0 BITMAP 0600 0600 0FC0 3FC0 7640 7600 E600 E600 E600 E600 E600 E600 E600 7600 77C0 3FC0 1E00 0600 0600 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 16 0 BBX 11 19 3 0 BITMAP 03E0 0FE0 0C20 1C00 1C00 1C00 1C00 1C00 FF00 FF00 1C00 1C00 1C00 1C00 1C00 3800 7000 FFE0 FFE0 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 16 0 BBX 12 13 2 3 BITMAP 4020 C070 6F60 3FC0 70E0 6060 6060 6060 6060 30C0 7FE0 EF70 4020 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 0 0 BITMAP F00E 700C 7818 3818 3C30 1E70 0E60 0FE0 07C0 0780 3FF0 3FF0 0380 3FF0 3FF0 0380 0380 0380 0380 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 16 0 BBX 2 23 7 -4 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 00 00 00 00 00 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 16 0 BBX 10 23 3 -4 BITMAP 1F80 7F80 E080 C000 C000 E000 7800 7E00 7F00 CF80 C380 C180 F180 7D00 7F00 1F00 0780 03C0 01C0 01C0 83C0 FF80 7F00 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 16 0 BBX 7 2 4 17 BITMAP C6 C6 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 0 BITMAP 0FC0 1FF0 3878 6018 67D8 CFCC CC4C D80C D80C D80C D80C D80C CC4C CFCC 6798 6018 7870 3FE0 0FC0 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 16 0 BBX 9 10 4 9 BITMAP 7E00 FF00 C700 0300 3F00 7F00 C300 C300 FF80 7380 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 16 0 BBX 12 12 2 1 BITMAP 0420 0E70 1CE0 38C0 7180 E780 E380 7180 38C0 1CE0 0C70 0620 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 16 0 BBX 13 6 1 4 BITMAP FFF8 FFF8 0018 0018 0018 0018 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 16 0 BBX 10 2 3 7 BITMAP FFC0 FFC0 ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 16 0 BBX 10 11 3 8 BITMAP 1E00 2100 5E80 9240 9240 9C40 9440 9440 5280 2100 1E00 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 16 0 BBX 7 2 4 17 BITMAP FE FE ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 16 0 BBX 4 4 6 15 BITMAP 60 90 90 60 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 1 0 BITMAP 0300 0300 0300 0300 FFFC FFFC 0300 0300 0300 0300 0000 0000 FFFC FFFC ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 16 0 BBX 5 9 -3 10 BITMAP F0 88 08 08 10 20 40 C0 F8 ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 16 0 BBX 5 9 -3 10 BITMAP F0 88 08 08 70 18 08 08 F0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 16 0 BBX 6 4 4 15 BITMAP 1C 38 70 E0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 16 0 BBX 11 18 2 -4 BITMAP E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E1E0 E3E0 FEE0 FEE0 FCE0 E000 E000 E000 E000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 16 0 BBX 10 23 2 -4 BITMAP 3FC0 7FC0 FEC0 FEC0 FEC0 FEC0 FEC0 7EC0 3EC0 0EC0 06C0 06C0 06C0 06C0 06C0 06C0 06C0 06C0 06C0 06C0 06C0 06C0 06C0 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 16 0 BBX 3 3 6 6 BITMAP E0 E0 E0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 16 0 BBX 4 5 6 -5 BITMAP 60 C0 30 30 E0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 16 0 BBX 7 9 -2 10 BITMAP 30 D0 10 10 10 10 10 10 FE ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 16 0 BBX 10 10 3 9 BITMAP 1E00 7F80 7380 E1C0 E1C0 E1C0 E1C0 7380 7F80 1E00 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 16 0 BBX 12 12 2 1 BITMAP 4600 E300 7380 31C0 18E0 1C70 1E70 18E0 31C0 7380 E700 4200 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 16 0 BBX 16 19 3 0 BITMAP 3007 D00E 100C 101C 1038 1030 1060 10E0 FFC0 0180 0306 0706 060A 0C0A 1C12 3822 303F 6002 E002 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 16 0 BBX 16 19 3 0 BITMAP 3007 D00E 100C 101C 1038 1030 1060 10E0 FFC0 0180 031E 0711 0601 0C01 1C02 3804 3008 6018 E01F ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 16 0 BBX 16 19 3 0 BITMAP F007 880E 080C 081C 7038 1830 0860 08E0 F1C0 0180 0306 0706 060A 0C0A 1C12 3822 303F 6002 E002 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 2 -5 BITMAP 0380 0380 0380 0000 0000 0380 0380 0380 0700 0E00 1C00 3800 7000 E000 E030 E030 F030 7FF0 1FE0 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 16 0 BBX 15 24 0 0 BITMAP 0700 0380 01C0 00E0 0000 0380 0380 07C0 07C0 07C0 0EE0 0CE0 0CE0 1C70 1870 1870 3838 3FF8 3FF8 701C 601C 601C C00E C00E ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 16 0 BBX 15 24 0 0 BITMAP 01C0 0380 0700 0E00 0000 0380 0380 07C0 07C0 07C0 0EE0 0CE0 0CE0 1C70 1870 1870 3838 3FF8 3FF8 701C 601C 601C C00E C00E ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 16 0 BBX 15 24 0 0 BITMAP 0780 0780 0CC0 1860 0000 0380 0380 07C0 07C0 07C0 0EE0 0CE0 0CE0 1C70 1870 1870 3838 3FF8 3FF8 701C 601C 601C C00E C00E ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 16 0 BBX 15 23 0 0 BITMAP 0E60 1FE0 19C0 0000 0380 0380 07C0 07C0 07C0 0EE0 0CE0 0CE0 1C70 1870 1870 3838 3FF8 3FF8 701C 601C 601C C00E C00E ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 16 0 BBX 15 22 0 0 BITMAP 0C60 0C60 0000 0380 0380 07C0 07C0 07C0 0EE0 0CE0 0CE0 1C70 1870 1870 3838 3FF8 3FF8 701C 601C 601C C00E C00E ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 16 0 BBX 15 24 0 0 BITMAP 0300 0480 0480 0300 0000 0380 0380 07C0 07C0 07C0 0EE0 0CE0 0CE0 1C70 1870 1870 3838 3FF8 3FF8 701C 601C 601C C00E C00E ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 16 0 BBX 16 19 0 0 BITMAP 01FE 01FE 01E0 03E0 03E0 03E0 06E0 06E0 0CE0 0CFC 0CFC 18E0 18E0 3FE0 3FE0 30E0 60E0 60FF C0FF ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 16 0 BBX 13 24 1 -5 BITMAP 07F0 1FF8 3C18 3800 7000 7000 E000 E000 E000 E000 E000 E000 E000 7000 7000 3800 3E08 1FF8 07F0 0200 0600 0180 0180 0700 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 16 0 BBX 12 24 3 0 BITMAP 1C00 0E00 0700 0380 0000 FFE0 FFE0 E000 E000 E000 E000 E000 E000 FFC0 FFC0 E000 E000 E000 E000 E000 E000 E000 FFF0 FFF0 ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 16 0 BBX 12 24 3 0 BITMAP 0700 0E00 1C00 3800 0000 FFE0 FFE0 E000 E000 E000 E000 E000 E000 FFC0 FFC0 E000 E000 E000 E000 E000 E000 E000 FFF0 FFF0 ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 0 0 BBX 0 0 0 0 BITMAP ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 16 0 BBX 12 22 3 0 BITMAP 3180 3180 0000 FFE0 FFE0 E000 E000 E000 E000 E000 E000 FFC0 FFC0 E000 E000 E000 E000 E000 E000 E000 FFF0 FFF0 ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 16 0 BBX 11 24 2 0 BITMAP 1C00 0E00 0700 0380 0000 FFE0 FFE0 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 FFE0 FFE0 ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 16 0 BBX 11 24 2 0 BITMAP 0700 0E00 1C00 3800 0000 FFE0 FFE0 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 FFE0 FFE0 ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 16 0 BBX 11 24 2 0 BITMAP 1E00 1E00 3300 6180 0000 FFE0 FFE0 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 FFE0 FFE0 ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 16 0 BBX 11 22 2 0 BITMAP 3180 3180 0000 FFE0 FFE0 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 0E00 FFE0 FFE0 ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 0 BITMAP 7FC0 7FF0 70F0 7038 7038 701C 701C 701C FE1C FE1C 701C 701C 701C 701C 7038 7078 70F0 7FE0 7F80 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 16 0 BBX 12 23 2 0 BITMAP 1CC0 3FC0 3380 0000 E030 E030 F030 F830 F830 FC30 DC30 DE30 CE30 CF30 C730 C7B0 C3B0 C3F0 C1F0 C0F0 C0F0 C070 C070 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 16 0 BBX 14 24 1 0 BITMAP 0E00 0700 0380 01C0 0000 0FC0 1FE0 3870 7038 7038 6018 E01C E01C E01C E01C E01C E01C E01C 6018 7038 7038 3870 1FE0 0FC0 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 16 0 BBX 14 24 1 0 BITMAP 01C0 0380 0700 0E00 0000 0FC0 1FE0 3870 7038 7038 6018 E01C E01C E01C E01C E01C E01C E01C 6018 7038 7038 3870 1FE0 0FC0 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 16 0 BBX 14 24 1 0 BITMAP 0780 0780 0CC0 1860 0000 0FC0 1FE0 3870 7038 7038 6018 E01C E01C E01C E01C E01C E01C E01C 6018 7038 7038 3870 1FE0 0FC0 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 16 0 BBX 14 23 1 0 BITMAP 0E60 1FE0 19C0 0000 0FC0 1FE0 3870 7038 7038 6018 E01C E01C E01C E01C E01C E01C E01C 6018 7038 7038 3870 1FE0 0FC0 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 16 0 BBX 14 22 1 0 BITMAP 18C0 18C0 0000 0FC0 1FE0 3870 7038 7038 6018 E01C E01C E01C E01C E01C E01C E01C 6018 7038 7038 3870 1FE0 0FC0 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 16 0 BBX 13 14 1 0 BITMAP 0700 0700 0700 0000 0000 0000 FFF8 FFF8 0000 0000 0000 0700 0700 0700 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 16 0 BBX 14 19 1 0 BITMAP 0F9C 1FF8 3870 7070 7078 60D8 E0DC E19C E39C E31C E71C E61C EC1C 6C18 7838 3838 3870 7FE0 E7C0 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 16 0 BBX 12 24 2 0 BITMAP 1C00 0E00 0700 0380 0000 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 F070 7060 7FC0 1F80 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 16 0 BBX 12 24 2 0 BITMAP 0380 0700 0E00 1C00 0000 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 F070 7060 7FC0 1F80 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 16 0 BBX 12 24 2 0 BITMAP 0F00 0F00 1980 30C0 0000 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 F070 7060 7FC0 1F80 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 16 0 BBX 12 22 2 0 BITMAP 3180 3180 0000 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 E030 F070 7060 7FC0 1F80 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 16 0 BBX 16 24 0 0 BITMAP 00E0 01C0 0380 0700 0000 E007 7006 780C 381C 3C18 1C30 1E30 0F60 07E0 07C0 0380 0380 0380 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 3 0 BITMAP E000 E000 E000 FF80 FFE0 E0F0 E070 E070 E070 E070 E070 E0E0 E1E0 FFC0 FF00 E000 E000 E000 E000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 16 0 BBX 13 20 2 0 BITMAP 3F00 7F80 E3C0 E1C0 E1C0 E180 E300 E700 E600 E700 E780 E3C0 E1E0 E0F0 E078 E038 E038 E478 E7F0 E3E0 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 2 0 BITMAP 1C00 0E00 0700 0380 0000 1F80 7FC0 41E0 00E0 00E0 00E0 1FE0 7FE0 70E0 E0E0 E0E0 F1E0 7F78 3E78 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 2 0 BITMAP 0380 0700 0E00 1C00 0000 1F80 7FC0 41E0 00E0 00E0 00E0 1FE0 7FE0 70E0 E0E0 E0E0 F1E0 7F78 3E78 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 2 0 BITMAP 0F00 0F00 1980 30C0 0000 1F80 7FC0 41E0 00E0 00E0 00E0 1FE0 7FE0 70E0 E0E0 E0E0 F1E0 7F78 3E78 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 16 0 BBX 13 18 2 0 BITMAP 1CC0 3FC0 3380 0000 1F80 7FC0 41E0 00E0 00E0 00E0 1FE0 7FE0 70E0 E0E0 E0E0 F1E0 7F78 3E78 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 16 0 BBX 13 17 2 0 BITMAP 3180 3180 0000 1F80 7FC0 41E0 00E0 00E0 00E0 1FE0 7FE0 70E0 E0E0 E0E0 F1E0 7F78 3E78 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 2 0 BITMAP 0600 0900 0900 0600 0000 1F80 7FC0 41E0 00E0 00E0 00E0 1FE0 7FE0 70E0 E0E0 E0E0 F1E0 7F78 3E78 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 16 0 BBX 14 14 1 0 BITMAP 3CF0 7EF8 4798 071C 071C 071C 3FFC 7FFC F700 E700 E700 E784 7DFC 38F8 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 2 -5 BITMAP 0FE0 3FF0 7830 7000 E000 E000 E000 E000 E000 F000 7000 7C10 3FF0 0FE0 0400 0C00 0300 0300 0E00 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 2 0 BITMAP 1C00 0E00 0700 0380 0000 0F80 3FE0 78E0 7070 E070 E070 FFF0 FFF0 E000 E000 7000 7810 3FF0 0FE0 ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 2 0 BITMAP 0380 0700 0E00 1C00 0000 0F80 3FE0 78E0 7070 E070 E070 FFF0 FFF0 E000 E000 7000 7810 3FF0 0FE0 ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 2 0 BITMAP 0F00 0F00 1980 30C0 0000 0F80 3FE0 78E0 7070 E070 E070 FFF0 FFF0 E000 E000 7000 7810 3FF0 0FE0 ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 16 0 BBX 12 17 2 0 BITMAP 3180 3180 0000 0F80 3FE0 78E0 7070 E070 E070 FFF0 FFF0 E000 E000 7000 7810 3FF0 0FE0 ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 16 0 BBX 9 19 2 0 BITMAP 1C00 0E00 0700 0380 0000 FF00 FF00 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 16 0 BBX 9 19 2 0 BITMAP 0380 0700 0E00 1C00 0000 FF00 FF00 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 16 0 BBX 10 19 2 0 BITMAP 0F00 0F00 1980 30C0 0000 FF00 FF00 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 16 0 BBX 9 17 2 0 BITMAP 3180 3180 0000 FF00 FF00 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 1 0 BITMAP FF00 8F80 3E00 3980 21C0 0FE0 3FE0 78F0 7070 E038 E038 E038 E038 E038 E038 7070 78F0 3FE0 0F80 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 16 0 BBX 11 18 2 0 BITMAP 3980 7F80 6700 0000 E380 EFC0 EFE0 F8E0 F0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 1 0 BITMAP 0E00 0700 0380 01C0 0000 0F80 3FE0 78F0 7070 E038 E038 E038 E038 E038 E038 7070 78F0 3FE0 0F80 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 1 0 BITMAP 0380 0700 0E00 1C00 0000 0F80 3FE0 78F0 7070 E038 E038 E038 E038 E038 E038 7070 78F0 3FE0 0F80 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 16 0 BBX 13 19 1 0 BITMAP 0F00 0F00 1980 30C0 0000 0F80 3FE0 78F0 7070 E038 E038 E038 E038 E038 E038 7070 78F0 3FE0 0F80 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 16 0 BBX 13 18 1 0 BITMAP 1CC0 3FC0 3380 0000 0F80 3FE0 78F0 7070 E038 E038 E038 E038 E038 E038 7070 78F0 3FE0 0F80 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 16 0 BBX 13 17 1 0 BITMAP 18C0 18C0 0000 0F80 3FE0 78F0 7070 E038 E038 E038 E038 E038 E038 7070 78F0 3FE0 0F80 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 16 0 BBX 13 14 1 0 BITMAP 4010 E038 7070 38E0 1DC0 0D80 0700 0700 0D80 1DC0 38E0 7070 E038 4010 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 16 0 BBX 13 14 1 0 BITMAP 0FB8 3FF0 78E0 70F0 E1B8 E3B8 E338 E638 EE38 EC38 7870 38F0 7FE0 EF80 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 16 0 BBX 11 19 2 0 BITMAP 1C00 0E00 0700 0380 0000 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E1E0 E3E0 FEE0 7EE0 38E0 ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 16 0 BBX 11 19 2 0 BITMAP 0700 0E00 1C00 3800 0000 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E1E0 E3E0 FEE0 7EE0 38E0 ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 16 0 BBX 11 19 2 0 BITMAP 0F00 0F00 1980 30C0 0000 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E1E0 E3E0 FEE0 7EE0 38E0 ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 16 0 BBX 11 17 2 0 BITMAP 3180 3180 0000 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E0E0 E1E0 E3E0 FEE0 7EE0 38E0 ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 16 0 BBX 14 24 1 -5 BITMAP 0380 0700 0E00 1C00 0000 E00C F018 7018 7830 3830 3870 1C60 1CE0 1EC0 0EC0 0F80 0780 0700 0300 0600 0600 0E00 7C00 7800 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 16 0 BBX 12 23 2 -5 BITMAP E000 E000 E000 E000 E780 EFE0 F8E0 F0F0 E070 E070 E070 E070 E070 E070 E0E0 F1E0 EFC0 E780 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 16 0 BBX 14 22 1 -5 BITMAP 18C0 18C0 0000 E00C F018 7018 7830 3830 3870 1C60 1CE0 1EC0 0EC0 0F80 0780 0700 0300 0600 0600 0E00 7C00 7800 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 12 20 1 0 BITMAP 0FF0 1FF0 3870 3870 3870 3870 FE70 FE70 3870 3870 3870 3870 3870 3870 3870 3870 3870 3870 3870 3870 ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 12 2 2 7 BITMAP FFF0 FFF0 ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 10 23 3 -4 BITMAP 0C00 0C00 0C00 0C00 0C00 0C00 0C00 FFC0 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 0C00 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 13 24 1 0 BITMAP 30C0 1980 0F00 0F00 0000 7FF8 7FF8 0078 0070 00F0 01E0 01C0 03C0 0780 0700 0F00 1E00 1C00 3C00 7800 7000 F000 FFF8 FFF8 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 15 14 0 0 BITMAP 1C78 3EFC 77CC E38E E38E E38E E3FE E3FE E380 E380 E380 77C2 3EFE 1C7C ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 16 22 0 0 BITMAP 0C60 0C60 0000 E007 7006 780C 381C 3C18 1C30 1E30 0F60 07E0 07C0 0380 0380 0380 0380 0380 0380 0380 0380 0380 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 8 14 2 0 BITMAP FF FF 07 07 07 07 07 07 07 07 07 07 07 07 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 11 19 2 0 BITMAP FF00 FF00 0700 0700 0700 0720 0760 07E0 0780 0F00 3F00 3700 2700 0700 0700 0700 0700 0700 0700 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 0 0 BITMAP 1C00 1C00 1C00 1C00 1C00 1C00 1D80 1F80 1F00 3C00 FC00 DC00 9C00 1C00 1C00 1C00 1C00 1FFE 1FFE ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 10 23 3 -4 BITMAP 0C00 0C00 0C00 0C00 0C00 0C00 0C00 FFC0 0C00 0C00 0C00 0C00 0C00 0C00 0C00 FFC0 0C00 0C00 0C00 0C00 0C00 0C00 0C00 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 12 20 1 0 BITMAP 0E00 1F70 3E70 3870 3800 3800 FFF0 FFF0 3870 3870 3870 3870 3870 3870 3870 3870 3870 3870 3870 3870 ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 7 12 4 1 BITMAP 40 E0 70 38 1C 0E 0E 1C 38 70 E0 40 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 1 0 BITMAP 1FFC 3FFC 71C0 71C0 E1C0 E1C0 E1C0 E1C0 E1F8 E1F8 E1C0 E1C0 E1C0 E1C0 E1C0 71C0 71C0 3FFE 1FFE ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 14 2 1 7 BITMAP FFFC FFFC ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 8 4 4 15 BITMAP C3 66 3C 3C ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 4 5 5 -5 BITMAP 60 C0 C0 C0 70 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 8 4 4 15 BITMAP 33 26 6C C8 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 7 12 4 1 BITMAP 04 0E 1C 38 70 E0 E0 70 38 1C 0E 04 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 3 3 6 16 BITMAP E0 E0 E0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 8 4 4 15 BITMAP C3 C3 7E 3C ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 8 8 4 3 BITMAP FF FF FF FF FF FF FF FF ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 8 3 4 16 BITMAP 73 FF CE ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 8 4 4 15 BITMAP 3C 3C 66 C3 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 9 6 3 13 BITMAP 6180 C300 C300 E380 E380 E380 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 4 7 6 12 BITMAP F0 F0 F0 F0 60 60 60 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 11 19 2 0 BITMAP 6180 3300 1E00 1E00 0000 1F80 7FC0 F040 E000 F000 FC00 7F80 1FC0 03E0 00E0 00E0 C1E0 FFC0 7F00 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 4 4 6 16 BITMAP 60 90 90 60 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 4 8 6 -4 BITMAP F0 F0 F0 F0 30 30 60 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 12 23 3 -4 BITMAP 01F0 07F0 0700 0E00 0E00 1C00 1C00 1C00 7F00 7F00 1C00 1C00 3800 3800 3800 3800 7800 7000 7000 7000 7000 E000 E000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 14 10 1 9 BITMAP FF8C FF9C 339C 33DC 33FC 33EC 336C 336C 330C 330C ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 16 19 0 0 BITMAP 0007 000E 000C 001C 0038 0030 0060 00E0 01C0 0180 0300 0700 0600 0C00 1C00 3800 3000 6000 E000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 6 4 5 15 BITMAP E0 70 38 1C ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 15 19 0 0 BITMAP 70C0 D9C0 D980 D980 DB00 DB00 DE00 7600 0E00 0C00 1C00 1B9C 1EF6 36F6 36F6 66F6 66F6 E6F6 C39C ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 13 3 1 0 BITMAP E738 E738 E738 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 9 6 3 13 BITMAP E380 E380 E380 6180 6180 C300 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 12 24 2 0 BITMAP 30C0 1980 0F00 0F00 0000 1F80 7FC0 7040 E000 E000 E000 F000 7C00 3F00 0FC0 03E0 01F0 0070 0070 0070 0070 C1E0 FFC0 7F80 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 9 8 3 -4 BITMAP E380 E380 E380 6180 6180 6180 6180 C300 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 16 0 BBX 12 19 2 0 BITMAP 30C0 1980 0F00 0F00 0000 FFF0 FFF0 00E0 00C0 0180 0380 0700 0E00 1C00 3800 7000 6000 FFF0 FFF0 ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/lutRS24.bdf100644 1750 1750 135251 5413747544 15263 0ustar mbmbSTARTFONT 2.1 COMMENT (c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered COMMENT trademark of Bigelow & Holmes. See LEGAL NOTICE file for terms COMMENT of the license. FONT -B&H-LucidaTypewriter-Medium-R-Normal-Sans-34-240-100-100-M-200-ISO8859-1 SIZE 24 100 100 FONTBOUNDINGBOX 27 38 -3 -7 STARTPROPERTIES 19 COMMENT Begin LogicalFontDescription FONTNAME_REGISTRY "" FOUNDRY "B&H" FAMILY_NAME "LucidaTypewriter" WEIGHT_NAME "Medium" SLANT "R" SETWIDTH_NAME "Normal" ADD_STYLE_NAME "Sans" PIXEL_SIZE 34 POINT_SIZE 240 RESOLUTION_X 100 RESOLUTION_Y 100 SPACING "M" AVERAGE_WIDTH 200 CHARSET_REGISTRY "ISO8859" CHARSET_ENCODING "1" COMMENT END LogicalFontDescription FONT_ASCENT 31 FONT_DESCENT 8 DEFAULT_CHAR 0 COPYRIGHT "Copyright Bigelow & Holmes 1986, 1985." ENDPROPERTIES CHARS 228 STARTCHAR space ENCODING 32 SWIDTH 42 0 DWIDTH 20 0 BBX 1 1 0 0 BITMAP 00 ENDCHAR STARTCHAR exclam ENCODING 33 SWIDTH 42 0 DWIDTH 20 0 BBX 4 25 8 0 BITMAP 70 70 70 70 70 70 70 70 70 70 70 60 60 60 60 60 60 60 00 00 00 00 F0 F0 F0 ENDCHAR STARTCHAR quotedbl ENCODING 34 SWIDTH 42 0 DWIDTH 20 0 BBX 13 9 4 17 BITMAP E078 E078 E078 E078 E078 6030 6030 6030 6030 ENDCHAR STARTCHAR numbersign ENCODING 35 SWIDTH 42 0 DWIDTH 20 0 BBX 19 25 1 0 BITMAP 00C180 00C300 00C300 00C300 018300 018700 018600 018600 3FFFE0 7FFFE0 030C00 030C00 060C00 061800 061800 FFFFC0 FFFF80 0C3000 0C3000 183000 183000 186000 186000 186000 306000 ENDCHAR STARTCHAR dollar ENCODING 36 SWIDTH 42 0 DWIDTH 20 0 BBX 14 30 4 -3 BITMAP 0300 0300 1FF0 3FF8 7B18 F300 E300 E300 E300 E300 7300 7F00 3F00 1F80 0FC0 03F0 03F8 0378 033C 031C 031C 031C 031C 8338 F3F8 FFF0 3FC0 0300 0300 0300 ENDCHAR STARTCHAR percent ENCODING 37 SWIDTH 42 0 DWIDTH 20 0 BBX 20 25 0 0 BITMAP 1E0070 738060 6180C0 C0C1C0 C0C380 C0C300 C0C600 C0CE00 618C00 739800 1E3800 007000 006000 00E780 01CCC0 019860 033030 073030 063030 0C3030 1C3030 383030 301860 600CC0 E00780 ENDCHAR STARTCHAR ampersand ENCODING 38 SWIDTH 42 0 DWIDTH 20 0 BBX 20 25 0 0 BITMAP 01F000 03FC00 071C00 0E0E00 0E0E00 0E0E00 0E1E00 0F1C00 077800 07F000 07C000 1F8000 3DC070 71E070 70E070 E0F070 E07860 E03CE0 E01EE0 E01FC0 700FC0 780780 3C1FC0 1FFFE0 07F1F0 ENDCHAR STARTCHAR quoteright ENCODING 39 SWIDTH 42 0 DWIDTH 20 0 BBX 5 10 8 16 BITMAP F8 F8 F8 F8 F8 18 30 70 E0 C0 ENDCHAR STARTCHAR parenleft ENCODING 40 SWIDTH 42 0 DWIDTH 20 0 BBX 12 32 6 -6 BITMAP 0070 01F0 03E0 0F80 0E00 1C00 3C00 3800 7000 7000 7000 E000 E000 E000 E000 E000 E000 E000 E000 E000 6000 7000 7000 3000 3800 1C00 1C00 0E00 0780 03E0 01F0 0030 ENDCHAR STARTCHAR parenright ENCODING 41 SWIDTH 42 0 DWIDTH 20 0 BBX 12 32 3 -6 BITMAP C000 F800 7C00 1E00 0700 0380 03C0 01C0 00E0 00E0 00E0 0060 0070 0070 0070 0070 0070 0070 0070 0070 0070 00E0 00E0 00E0 01C0 03C0 0380 0700 1E00 7C00 F800 C000 ENDCHAR STARTCHAR asterisk ENCODING 42 SWIDTH 42 0 DWIDTH 20 0 BBX 15 14 3 11 BITMAP 0380 0380 0380 4384 638C F83E FC7E 0840 0440 0EE0 1C70 3C78 3838 0820 ENDCHAR STARTCHAR plus ENCODING 43 SWIDTH 42 0 DWIDTH 20 0 BBX 18 18 1 0 BITMAP 00C000 00C000 00C000 00C000 00C000 00C000 00C000 00C000 FFFFC0 FFFFC0 00C000 00C000 00C000 00C000 00C000 00C000 00C000 00C000 ENDCHAR STARTCHAR comma ENCODING 44 SWIDTH 42 0 DWIDTH 20 0 BBX 5 11 8 -6 BITMAP F8 F8 F8 F8 F8 18 18 38 30 70 C0 ENDCHAR STARTCHAR minus ENCODING 45 SWIDTH 42 0 DWIDTH 20 0 BBX 18 2 1 7 BITMAP FFFFC0 FFFFC0 ENDCHAR STARTCHAR period ENCODING 46 SWIDTH 42 0 DWIDTH 20 0 BBX 5 5 8 0 BITMAP F8 F8 F8 F8 F8 ENDCHAR STARTCHAR slash ENCODING 47 SWIDTH 42 0 DWIDTH 20 0 BBX 18 32 1 -6 BITMAP 0001C0 000180 000380 000300 000700 000600 000E00 000C00 001C00 001800 001800 003000 003000 006000 006000 00C000 00C000 018000 018000 030000 030000 060000 060000 0E0000 0C0000 1C0000 180000 380000 300000 700000 600000 E00000 ENDCHAR STARTCHAR zero ENCODING 48 SWIDTH 42 0 DWIDTH 20 0 BBX 17 25 2 0 BITMAP 03E000 0FF800 1C1C00 380E00 300E00 700700 700700 600300 E00380 E00380 E00380 E00380 E00380 E00380 E00380 E00380 E00380 600300 700700 700700 300600 380E00 1C1C00 0FF800 03E000 ENDCHAR STARTCHAR one ENCODING 49 SWIDTH 42 0 DWIDTH 20 0 BBX 17 25 3 0 BITMAP 004000 03C000 1FC000 FFC000 C1C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 01C000 FFFF80 FFFF80 ENDCHAR STARTCHAR two ENCODING 50 SWIDTH 42 0 DWIDTH 20 0 BBX 14 25 3 0 BITMAP 1FC0 7FE0 7078 4038 001C 001C 001C 001C 001C 0038 0038 0070 00E0 01C0 0380 0700 0E00 0C00 1C00 3800 7800 F000 F000 FFFC FFFC ENDCHAR STARTCHAR three ENCODING 51 SWIDTH 42 0 DWIDTH 20 0 BBX 13 25 4 0 BITMAP 7F00 FFC0 C1E0 00F0 0070 0070 0070 0070 0060 00E0 01C0 3F00 3FC0 01F0 0070 0078 0038 0038 0038 0038 0078 0070 C0E0 FFC0 7F00 ENDCHAR STARTCHAR four ENCODING 52 SWIDTH 42 0 DWIDTH 20 0 BBX 16 25 2 0 BITMAP 0038 0078 0078 00F8 01F8 01B8 0338 0738 0638 0C38 1C38 1838 3838 7038 6038 E038 FFFF FFFF 0038 0038 0038 0038 0038 0038 0038 ENDCHAR STARTCHAR five ENCODING 53 SWIDTH 42 0 DWIDTH 20 0 BBX 12 25 5 0 BITMAP FFE0 FFE0 C000 C000 C000 C000 C000 C000 C000 FC00 FF00 07C0 01E0 00E0 0070 0070 0070 0070 0070 0070 00E0 00E0 C3C0 FF80 7E00 ENDCHAR STARTCHAR six ENCODING 54 SWIDTH 42 0 DWIDTH 20 0 BBX 16 25 3 0 BITMAP 01FC 07FE 1E06 1800 3800 7000 7000 6000 E000 E3F0 EFF8 FC3C F01E F00E E007 E007 E007 E007 6007 7007 700E 380E 1C3C 0FF8 07E0 ENDCHAR STARTCHAR seven ENCODING 55 SWIDTH 42 0 DWIDTH 20 0 BBX 15 25 3 0 BITMAP FFFE FFFE FFFE 000C 001C 0018 0038 0030 0060 00E0 00C0 01C0 0180 0380 0300 0700 0E00 0E00 1C00 1C00 3C00 3800 3800 7000 7000 ENDCHAR STARTCHAR eight ENCODING 56 SWIDTH 42 0 DWIDTH 20 0 BBX 16 25 2 0 BITMAP 07E0 1FF8 3C38 781C 700C 700C 700C 781C 3C18 3E78 1FF0 0FE0 1FF0 38FC 703E 701E E00F E007 E007 E007 F007 700E 7C1C 1FF8 07E0 ENDCHAR STARTCHAR nine ENCODING 57 SWIDTH 42 0 DWIDTH 20 0 BBX 16 25 2 0 BITMAP 07E0 1FF0 3C38 701C 700E E006 E006 E007 E007 E007 E007 700F 700F 3C3F 1FF7 0FC7 0007 0006 000E 000E 001C 0018 6078 7FE0 3F80 ENDCHAR STARTCHAR colon ENCODING 58 SWIDTH 42 0 DWIDTH 20 0 BBX 5 18 8 0 BITMAP F8 F8 F8 F8 F8 00 00 00 00 00 00 00 00 F8 F8 F8 F8 F8 ENDCHAR STARTCHAR semicolon ENCODING 59 SWIDTH 42 0 DWIDTH 20 0 BBX 5 24 8 -6 BITMAP F8 F8 F8 F8 F8 00 00 00 00 00 00 00 00 F8 F8 F8 F8 F8 18 18 38 30 70 C0 ENDCHAR STARTCHAR less ENCODING 60 SWIDTH 42 0 DWIDTH 20 0 BBX 17 18 0 0 BITMAP 000080 000180 000780 001E00 007800 01E000 078000 1E0000 F80000 780000 1E0000 078000 01E000 007800 001E00 000780 000180 000080 ENDCHAR STARTCHAR equal ENCODING 61 SWIDTH 42 0 DWIDTH 20 0 BBX 18 8 1 5 BITMAP FFFFC0 FFFFC0 000000 000000 000000 000000 FFFFC0 FFFFC0 ENDCHAR STARTCHAR greater ENCODING 62 SWIDTH 42 0 DWIDTH 20 0 BBX 17 18 1 0 BITMAP 800000 C00000 F00000 3C0000 0F0000 03C000 00F000 003C00 000F00 000F80 003C00 00F000 03C000 0F0000 3C0000 F00000 C00000 800000 ENDCHAR STARTCHAR question ENCODING 63 SWIDTH 42 0 DWIDTH 20 0 BBX 15 25 3 0 BITMAP 3FE0 FFF8 C03C C01E C00E 000E 000E 000C 001C 0038 0070 00E0 01C0 0380 0300 0700 0700 0700 0000 0000 0000 0000 0F00 0F00 0F00 ENDCHAR STARTCHAR at ENCODING 64 SWIDTH 42 0 DWIDTH 20 0 BBX 19 25 1 0 BITMAP 01FC00 07FE00 0F0700 1C0300 380180 301F80 706180 60C180 618180 C18180 C10180 C30180 C30380 C30380 C30780 C30580 C30D80 619980 61F9E0 70F1E0 300000 380000 1E0600 07FE00 01F800 ENDCHAR STARTCHAR A ENCODING 65 SWIDTH 42 0 DWIDTH 20 0 BBX 20 25 0 0 BITMAP 007000 00F000 00F000 00F800 01B800 01B800 019C00 031C00 031C00 030E00 060E00 060E00 060F00 0C0700 0C0700 0C0780 1FFF80 1FFF80 1803C0 3001C0 3001C0 3000E0 6000E0 6000E0 E00070 ENDCHAR STARTCHAR B ENCODING 66 SWIDTH 42 0 DWIDTH 20 0 BBX 15 25 3 0 BITMAP FFE0 FFF8 E078 E03C E01C E01C E01C E01C E038 E078 E0F0 FFE0 FFE0 E0F0 E038 E01C E00E E00E E00E E00E E00E E01C E03C FFF8 FFE0 ENDCHAR STARTCHAR C ENCODING 67 SWIDTH 42 0 DWIDTH 20 0 BBX 17 25 2 0 BITMAP 01FE00 07FF80 0F0380 1C0080 380000 380000 700000 700000 F00000 E00000 E00000 E00000 E00000 E00000 E00000 E00000 E00000 700000 700000 380000 3C0000 1E0000 0F8180 07FF80 00FE00 ENDCHAR STARTCHAR D ENCODING 68 SWIDTH 42 0 DWIDTH 20 0 BBX 17 25 2 0 BITMAP FFE000 FFF800 E07C00 E01E00 E00F00 E00700 E00700 E00380 E00380 E00380 E00380 E00380 E00380 E00380 E00380 E00380 E00380 E00700 E00700 E00700 E00E00 E01E00 E07C00 FFF000 FFC000 ENDCHAR STARTCHAR E ENCODING 69 SWIDTH 42 0 DWIDTH 20 0 BBX 15 25 4 0 BITMAP FFFC FFFC E000 E000 E000 E000 E000 E000 E000 E000 E000 FFF8 FFF0 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 FFFE FFFE ENDCHAR STARTCHAR F ENCODING 70 SWIDTH 42 0 DWIDTH 20 0 BBX 15 25 4 0 BITMAP FFFE FFFE E000 E000 E000 E000 E000 E000 E000 E000 E000 FFF8 FFF8 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR G ENCODING 71 SWIDTH 42 0 DWIDTH 20 0 BBX 17 25 1 0 BITMAP 01FF00 07FF80 0F0180 1C0000 380000 380000 700000 700000 E00000 E00000 E00000 E00000 E00000 E00000 E00380 E00380 F00380 700380 700380 380380 3C0380 1E0380 0F8380 07FF80 00FE00 ENDCHAR STARTCHAR H ENCODING 72 SWIDTH 42 0 DWIDTH 20 0 BBX 16 25 2 0 BITMAP E007 E007 E007 E007 E007 E007 E007 E007 E007 E007 E007 FFFF FFFF E007 E007 E007 E007 E007 E007 E007 E007 E007 E007 E007 E007 ENDCHAR STARTCHAR I ENCODING 73 SWIDTH 42 0 DWIDTH 20 0 BBX 15 25 3 0 BITMAP FFFE FFFE 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 FFFE FFFE ENDCHAR STARTCHAR J ENCODING 74 SWIDTH 42 0 DWIDTH 20 0 BBX 12 25 3 0 BITMAP 3FF0 3FF0 0070 0070 0070 0070 0070 0070 0070 0070 0070 0070 0070 0070 0070 0070 0070 0070 0070 0070 0070 00E0 C1C0 FFC0 7F00 ENDCHAR STARTCHAR K ENCODING 75 SWIDTH 42 0 DWIDTH 20 0 BBX 17 25 3 0 BITMAP E00E00 E01C00 E01800 E03000 E07000 E0E000 E0C000 E18000 E38000 E70000 E60000 EE0000 FE0000 EF0000 E78000 E38000 E3C000 E1E000 E0F000 E07800 E03800 E03C00 E01E00 E00F00 E00780 ENDCHAR STARTCHAR L ENCODING 76 SWIDTH 42 0 DWIDTH 20 0 BBX 14 25 4 0 BITMAP E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 FFFC FFFC ENDCHAR STARTCHAR M ENCODING 77 SWIDTH 42 0 DWIDTH 20 0 BBX 18 25 1 0 BITMAP F003C0 F003C0 F003C0 F807C0 D806C0 D806C0 D806C0 DC0EC0 CC0CC0 CC0CC0 CC0CC0 CE1CC0 C618C0 C618C0 C618C0 C330C0 C330C0 C330C0 C330C0 C1E0C0 C1E0C0 C1E0C0 C0C0C0 C000C0 C000C0 ENDCHAR STARTCHAR N ENCODING 78 SWIDTH 42 0 DWIDTH 20 0 BBX 16 25 2 0 BITMAP E003 F003 F003 F803 F803 FC03 DC03 CE03 CF03 C703 C783 C383 C3C3 C1C3 C1E3 C0E3 C073 C07B C03B C03F C01F C01F C00F C007 C007 ENDCHAR STARTCHAR O ENCODING 79 SWIDTH 42 0 DWIDTH 20 0 BBX 18 25 1 0 BITMAP 03F000 0FFC00 1E1E00 380700 380700 700380 700380 700380 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 700380 700380 700380 380700 3C0F00 1E1E00 0FFC00 03F000 ENDCHAR STARTCHAR P ENCODING 80 SWIDTH 42 0 DWIDTH 20 0 BBX 15 25 4 0 BITMAP FFE0 FFF8 E03C E01E E00E E00E E00E E00E E00E E01C E01C E078 FFF0 FF80 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR Q ENCODING 81 SWIDTH 42 0 DWIDTH 20 0 BBX 19 31 1 -6 BITMAP 03F000 0FFC00 1E1E00 380700 380700 700380 700380 700380 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 7003C0 700380 700380 380780 3C0F00 1E1F00 0FFE00 03FC00 003800 001E00 000F80 0007E0 0003C0 000080 ENDCHAR STARTCHAR R ENCODING 82 SWIDTH 42 0 DWIDTH 20 0 BBX 17 25 3 0 BITMAP FFC000 FFF000 E07800 E03C00 E01C00 E01C00 E01C00 E01C00 E03C00 E07800 E0F800 FFF000 FFE000 E3C000 E1C000 E0E000 E0E000 E07000 E07800 E03800 E03C00 E01E00 E00E00 E00F00 E00780 ENDCHAR STARTCHAR S ENCODING 83 SWIDTH 42 0 DWIDTH 20 0 BBX 16 25 3 0 BITMAP 0FF8 3FFE 780E 7000 E000 E000 E000 F000 F000 7C00 3F00 0FC0 03F0 00FC 003E 001E 000F 0007 0007 0007 0007 800E F03C FFF8 1FE0 ENDCHAR STARTCHAR T ENCODING 84 SWIDTH 42 0 DWIDTH 20 0 BBX 19 25 1 0 BITMAP FFFFE0 FFFFE0 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 ENDCHAR STARTCHAR U ENCODING 85 SWIDTH 42 0 DWIDTH 20 0 BBX 15 25 3 0 BITMAP E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 F00C 700C 781C 3FF8 0FE0 ENDCHAR STARTCHAR V ENCODING 86 SWIDTH 42 0 DWIDTH 20 0 BBX 20 25 0 0 BITMAP E00070 700060 700060 7000C0 3800C0 3800C0 380180 1C0180 1C0180 1C0300 0E0300 0E0300 0E0600 070600 070600 070C00 038C00 038C00 039800 01D800 01D800 01F000 01F000 00F000 00E000 ENDCHAR STARTCHAR W ENCODING 87 SWIDTH 42 0 DWIDTH 20 0 BBX 20 25 0 0 BITMAP C00030 C00030 C0E030 C0E060 E1F060 E1F060 61F060 61F060 61B060 61B0C0 6338C0 6338C0 7338C0 7318C0 7218C0 7619C0 761D80 761D80 760D80 340D80 340F80 3C0F80 3C0F00 380700 380700 ENDCHAR STARTCHAR X ENCODING 88 SWIDTH 42 0 DWIDTH 20 0 BBX 20 25 0 0 BITMAP 7800E0 3800C0 3C01C0 1E0380 0E0300 0F0700 070600 038C00 03DC00 01D800 01F000 00F000 007000 00F800 01F800 01BC00 031E00 070E00 060F00 0C0700 1C0380 1803C0 3001C0 7001E0 E000F0 ENDCHAR STARTCHAR Y ENCODING 89 SWIDTH 42 0 DWIDTH 20 0 BBX 20 25 0 0 BITMAP F00070 7000E0 3800C0 3C01C0 1C0380 1E0300 0E0700 0F0600 070C00 078C00 03D800 01F800 01F000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 ENDCHAR STARTCHAR Z ENCODING 90 SWIDTH 42 0 DWIDTH 20 0 BBX 17 25 2 0 BITMAP 7FFF80 7FFF80 000780 000F00 000E00 001E00 001C00 003800 007800 007000 00F000 01E000 01C000 03C000 078000 070000 0F0000 1E0000 1C0000 3C0000 780000 700000 F00000 FFFF80 FFFF80 ENDCHAR STARTCHAR bracketleft ENCODING 91 SWIDTH 42 0 DWIDTH 20 0 BBX 9 32 8 -6 BITMAP FF80 FF80 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 C000 FF80 FF80 ENDCHAR STARTCHAR backslash ENCODING 92 SWIDTH 42 0 DWIDTH 20 0 BBX 18 32 1 -6 BITMAP E00000 600000 700000 300000 380000 180000 1C0000 0C0000 0E0000 060000 060000 030000 030000 018000 018000 00C000 00C000 006000 006000 003000 003000 001800 001800 001C00 000C00 000E00 000600 000700 000300 000380 000180 0001C0 ENDCHAR STARTCHAR bracketright ENCODING 93 SWIDTH 42 0 DWIDTH 20 0 BBX 9 32 3 -6 BITMAP FF80 FF80 0180 0180 0180 0180 0180 0180 0180 0180 0180 0180 0180 0180 0180 0180 0180 0180 0180 0180 0180 0180 0180 0180 0180 0180 0180 0180 0180 0180 FF80 FF80 ENDCHAR STARTCHAR asciicircum ENCODING 94 SWIDTH 42 0 DWIDTH 20 0 BBX 18 19 1 5 BITMAP 004000 00C000 00C000 01E000 01E000 03F000 033000 033000 061800 061800 0C0C00 0C0C00 180600 180600 380700 300300 700380 600180 E001C0 ENDCHAR STARTCHAR underscore ENCODING 95 SWIDTH 42 0 DWIDTH 20 0 BBX 20 2 0 -3 BITMAP FFFFF0 FFFFF0 ENDCHAR STARTCHAR quoteleft ENCODING 96 SWIDTH 42 0 DWIDTH 20 0 BBX 5 10 8 16 BITMAP 38 70 60 E0 C0 F8 F8 F8 F8 F8 ENDCHAR STARTCHAR a ENCODING 97 SWIDTH 42 0 DWIDTH 20 0 BBX 17 18 2 0 BITMAP 0FE000 3FF800 303800 201C00 001C00 001C00 001C00 07FC00 1FFC00 7C1C00 701C00 E01C00 E01C00 E01C00 E03C00 707C00 7FEF80 1F8F80 ENDCHAR STARTCHAR b ENCODING 98 SWIDTH 42 0 DWIDTH 20 0 BBX 16 26 3 0 BITMAP E000 E000 E000 E000 E000 E000 E000 E000 E3F0 E7F8 EE1C F80E F00E E007 E007 E007 E007 E007 E007 E007 E00E E00E F01C FC3C EFF8 E3E0 ENDCHAR STARTCHAR c ENCODING 99 SWIDTH 42 0 DWIDTH 20 0 BBX 15 18 3 0 BITMAP 03FC 0FFE 3E06 7800 7000 F000 E000 E000 E000 E000 E000 E000 7000 7000 3800 3E06 0FFE 03FC ENDCHAR STARTCHAR d ENCODING 100 SWIDTH 42 0 DWIDTH 20 0 BBX 16 26 2 0 BITMAP 0007 0007 0007 0007 0007 0007 0007 0007 07E7 1FF7 3C3F 380F 7007 7007 E007 E007 E007 E007 E007 E007 E007 700F 701F 3877 1FE7 0FC7 ENDCHAR STARTCHAR e ENCODING 101 SWIDTH 42 0 DWIDTH 20 0 BBX 16 18 2 0 BITMAP 03F0 0FFC 1C1E 380E 700E 7007 E007 E007 FFFF FFFF E000 E000 6000 7000 3800 1C03 0FFF 03FC ENDCHAR STARTCHAR f ENCODING 102 SWIDTH 42 0 DWIDTH 20 0 BBX 17 27 3 0 BITMAP 007F00 01FF80 03C080 038000 070000 070000 070000 070000 070000 FFFF00 FFFF00 070000 070000 070000 070000 070000 070000 070000 070000 070000 070000 070000 070000 070000 070000 070000 070000 ENDCHAR STARTCHAR g ENCODING 103 SWIDTH 42 0 DWIDTH 20 0 BBX 16 25 2 -7 BITMAP 07E3 1FFB 3C3F 380F 7007 7007 E007 E007 E007 E007 E007 E007 E007 700F 701F 3877 1FE7 0FC7 0007 0007 0006 000E 301C 3FF8 1FE0 ENDCHAR STARTCHAR h ENCODING 104 SWIDTH 42 0 DWIDTH 20 0 BBX 15 26 3 0 BITMAP E000 E000 E000 E000 E000 E000 E000 E000 E1F0 E7F8 EFFC FC1E F80E F00E E00E E00E E00E E00E E00E E00E E00E E00E E00E E00E E00E E00E ENDCHAR STARTCHAR i ENCODING 105 SWIDTH 42 0 DWIDTH 20 0 BBX 10 26 3 0 BITMAP 01C0 01C0 01C0 01C0 0000 0000 0000 0000 FFC0 FFC0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 ENDCHAR STARTCHAR j ENCODING 106 SWIDTH 42 0 DWIDTH 20 0 BBX 12 33 3 -7 BITMAP 0070 0070 0070 0070 0000 0000 0000 0000 7FF0 7FF0 0070 0070 0070 0070 0070 0070 0070 0070 0070 0070 0070 0070 0070 0070 0070 0070 0070 0070 0070 00E0 81E0 FFC0 7F00 ENDCHAR STARTCHAR k ENCODING 107 SWIDTH 42 0 DWIDTH 20 0 BBX 16 26 4 0 BITMAP E000 E000 E000 E000 E000 E000 E000 E000 E01C E030 E070 E0E0 E1C0 E380 E700 EE00 EE00 FF00 E780 E3C0 E1E0 E0F0 E078 E07C E03C E01F ENDCHAR STARTCHAR l ENCODING 108 SWIDTH 42 0 DWIDTH 20 0 BBX 10 26 3 0 BITMAP FFC0 FFC0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 ENDCHAR STARTCHAR m ENCODING 109 SWIDTH 42 0 DWIDTH 20 0 BBX 18 18 1 0 BITMAP C70780 CF9F80 D8D8C0 F0F0C0 E0E0C0 C0C0C0 C0C0C0 C0C0C0 C0C0C0 C0C0C0 C0C0C0 C0C0C0 C0C0C0 C0C0C0 C0C0C0 C0C0C0 C0C0C0 C0C0C0 ENDCHAR STARTCHAR n ENCODING 110 SWIDTH 42 0 DWIDTH 20 0 BBX 15 18 3 0 BITMAP E1F0 E7F8 EFFC FC1E F80E F00E E00E E00E E00E E00E E00E E00E E00E E00E E00E E00E E00E E00E ENDCHAR STARTCHAR o ENCODING 111 SWIDTH 42 0 DWIDTH 20 0 BBX 17 18 2 0 BITMAP 07F000 1FFC00 3C1E00 780F00 700700 F00780 E00380 E00380 E00380 E00380 E00380 E00380 F00780 700700 780F00 3C1E00 1FFC00 07F000 ENDCHAR STARTCHAR p ENCODING 112 SWIDTH 42 0 DWIDTH 20 0 BBX 16 25 3 -7 BITMAP E3F0 E7F8 EE1C F80E F00E E007 E007 E007 E007 E007 E007 E007 E00E E00E F01C FC3C EFF8 E7E0 E000 E000 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR q ENCODING 113 SWIDTH 42 0 DWIDTH 20 0 BBX 16 25 2 -7 BITMAP 07C7 1FF7 3C3F 380F 7007 7007 E007 E007 E007 E007 E007 E007 E007 700F 701F 3877 1FE7 0FC7 0007 0007 0007 0007 0007 0007 0007 ENDCHAR STARTCHAR r ENCODING 114 SWIDTH 42 0 DWIDTH 20 0 BBX 13 18 5 0 BITMAP E1F8 E7F8 EE18 F818 F018 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR s ENCODING 115 SWIDTH 42 0 DWIDTH 20 0 BBX 14 18 3 0 BITMAP 0FF0 3FF8 7018 E000 E000 E000 F800 7F00 3FE0 0FF8 01FC 003C 001C 001C 801C E078 FFF0 3FC0 ENDCHAR STARTCHAR t ENCODING 116 SWIDTH 42 0 DWIDTH 20 0 BBX 16 22 2 0 BITMAP 0700 0700 0700 0700 FFFF FFFF 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0700 0380 03FF 00FF ENDCHAR STARTCHAR u ENCODING 117 SWIDTH 42 0 DWIDTH 20 0 BBX 15 18 3 0 BITMAP E00E E00E E00E E00E E00E E00E E00E E00E E00E E00E E00E E00E E01E E03E F07E 7FEE 3FCE 1F0E ENDCHAR STARTCHAR v ENCODING 118 SWIDTH 42 0 DWIDTH 20 0 BBX 18 18 1 0 BITMAP E001C0 700180 700380 780300 380300 3C0600 1C0600 1C0E00 1E0C00 0E0C00 0F1800 071800 073000 03B000 03F000 03E000 01E000 01C000 ENDCHAR STARTCHAR w ENCODING 119 SWIDTH 42 0 DWIDTH 20 0 BBX 20 18 0 0 BITMAP E00030 E00030 E0F060 70F060 70F060 70F060 719860 7198C0 3198C0 3B98C0 3B0CC0 3B0DC0 3B0D80 3E0D80 1E0D80 1E0780 1E0780 1C0700 ENDCHAR STARTCHAR x ENCODING 120 SWIDTH 42 0 DWIDTH 20 0 BBX 18 18 1 0 BITMAP F00380 780700 3C0600 1E0C00 0E1C00 0F1800 07B000 03F000 01E000 01E000 03F000 077800 063C00 0C1C00 1C1E00 380F00 300780 E003C0 ENDCHAR STARTCHAR y ENCODING 121 SWIDTH 42 0 DWIDTH 20 0 BBX 18 25 1 -7 BITMAP F001C0 700180 700380 380300 380300 3C0600 1C0600 1C0C00 0E0C00 0E1C00 0F1800 071800 073000 03B000 03E000 01E000 01E000 01C000 01C000 018000 018000 030000 070000 7E0000 780000 ENDCHAR STARTCHAR z ENCODING 122 SWIDTH 42 0 DWIDTH 20 0 BBX 16 18 2 0 BITMAP FFFF FFFF 000E 001C 0038 0030 0060 00E0 01C0 0380 0700 0E00 1C00 1800 3000 6000 FFFF FFFF ENDCHAR STARTCHAR braceleft ENCODING 123 SWIDTH 42 0 DWIDTH 20 0 BBX 13 32 4 -6 BITMAP 00F8 03F8 0700 0E00 0E00 0E00 0E00 0E00 0700 0700 0700 0300 0300 0300 0E00 FC00 F800 0E00 0200 0300 0300 0300 0700 0700 0600 0E00 0E00 0E00 0E00 0700 03F8 00F8 ENDCHAR STARTCHAR bar ENCODING 124 SWIDTH 42 0 DWIDTH 20 0 BBX 2 32 9 -6 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR braceright ENCODING 125 SWIDTH 42 0 DWIDTH 20 0 BBX 12 32 4 -6 BITMAP F800 FE00 0700 0380 0380 0380 0380 0300 0700 0700 0600 0600 0600 0600 0300 01F0 01F0 0300 0600 0600 0600 0600 0700 0700 0300 0380 0380 0380 0380 0700 FE00 F800 ENDCHAR STARTCHAR asciitilde ENCODING 126 SWIDTH 42 0 DWIDTH 20 0 BBX 18 6 1 6 BITMAP 1E00C0 7F80C0 63C0C0 C0F180 C07F80 C01E00 ENDCHAR STARTCHAR exclamdown ENCODING 161 SWIDTH 42 0 DWIDTH 20 0 BBX 4 25 8 -7 BITMAP F0 F0 F0 00 00 00 00 60 60 60 60 60 60 60 70 70 70 70 70 70 70 70 70 70 70 ENDCHAR STARTCHAR cent ENCODING 162 SWIDTH 42 0 DWIDTH 20 0 BBX 13 25 4 0 BITMAP 0180 0180 0180 07F0 1FF8 3F98 3988 7180 7180 E180 E180 E180 E180 E180 E180 E180 6180 7180 3988 3D98 1FF8 07F0 0180 0180 0180 ENDCHAR STARTCHAR sterling ENCODING 163 SWIDTH 42 0 DWIDTH 20 0 BBX 13 25 4 0 BITMAP 01F8 07F8 0E08 0C00 1C00 1C00 1C00 1C00 1C00 1C00 1C00 7F80 7F80 1C00 1C00 1C00 1C00 1C00 1C00 1C00 3800 7000 F000 FFF8 FFF8 ENDCHAR STARTCHAR currency ENCODING 164 SWIDTH 42 0 DWIDTH 20 0 BBX 17 17 2 4 BITMAP 400100 E00380 600700 33E600 1FFC00 1C1C00 380E00 300600 300600 300600 300600 180C00 1C1C00 3FFE00 73E700 E00380 400100 ENDCHAR STARTCHAR yen ENCODING 165 SWIDTH 42 0 DWIDTH 20 0 BBX 19 25 1 0 BITMAP F000E0 7800C0 380180 3C0380 1C0300 1E0600 0F0E00 070C00 079C00 039800 03F000 01F000 00E000 1FFF00 1FFF00 00E000 00E000 1FFF00 1FFF00 00E000 00E000 00E000 00E000 00E000 00E000 ENDCHAR STARTCHAR brokenbar ENCODING 166 SWIDTH 42 0 DWIDTH 20 0 BBX 2 32 9 -6 BITMAP C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 00 00 00 00 00 00 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ENDCHAR STARTCHAR section ENCODING 167 SWIDTH 42 0 DWIDTH 20 0 BBX 13 31 4 -6 BITMAP 0FF0 3FF0 7010 6000 C000 C000 C000 F000 FC00 7F00 7F80 67C0 C1E0 C070 C030 C030 E030 F030 7C60 3FE0 0FE0 03F0 00F0 0078 0038 0038 0038 8038 E0F0 FFE0 3F80 ENDCHAR STARTCHAR dieresis ENCODING 168 SWIDTH 42 0 DWIDTH 20 0 BBX 9 2 6 23 BITMAP E380 E380 ENDCHAR STARTCHAR copyright ENCODING 169 SWIDTH 42 0 DWIDTH 20 0 BBX 19 25 1 0 BITMAP 03F800 0FFE00 1C0700 380380 3001C0 60FCC0 63FCC0 470460 C60060 CE0060 CC0060 CC0060 CC0060 CC0060 CC0060 CE0060 C60060 C78440 63FCC0 60F8C0 700180 380380 1C0700 0FFE00 03F800 ENDCHAR STARTCHAR ordfeminine ENCODING 170 SWIDTH 42 0 DWIDTH 20 0 BBX 12 13 4 12 BITMAP 3F00 7F80 61C0 40C0 00C0 1FC0 7FC0 60C0 C0C0 C0C0 E3C0 7FF0 3CF0 ENDCHAR STARTCHAR guillemotleft ENCODING 171 SWIDTH 42 0 DWIDTH 20 0 BBX 16 16 2 1 BITMAP 0102 0387 070E 0E0C 1C18 1838 3870 F1E0 70E0 3870 1838 1C18 0E0C 070E 0307 0182 ENDCHAR STARTCHAR logicalnot ENCODING 172 SWIDTH 42 0 DWIDTH 20 0 BBX 18 8 1 5 BITMAP FFFFC0 FFFFC0 0000C0 0000C0 0000C0 0000C0 0000C0 0000C0 ENDCHAR STARTCHAR hyphen ENCODING 173 SWIDTH 42 0 DWIDTH 20 0 BBX 14 2 3 10 BITMAP FFFC FFFC ENDCHAR STARTCHAR registered ENCODING 174 SWIDTH 42 0 DWIDTH 20 0 BBX 15 15 3 10 BITMAP 07C0 1830 2788 4444 4444 8442 84C2 8782 8482 8482 4484 4484 2008 1830 07C0 ENDCHAR STARTCHAR macron ENCODING 175 SWIDTH 42 0 DWIDTH 20 0 BBX 9 2 6 22 BITMAP FF80 FF80 ENDCHAR STARTCHAR degree ENCODING 176 SWIDTH 42 0 DWIDTH 20 0 BBX 6 6 7 19 BITMAP 78 CC 84 84 CC 78 ENDCHAR STARTCHAR plusminus ENCODING 177 SWIDTH 42 0 DWIDTH 20 0 BBX 18 18 1 0 BITMAP 00C000 00C000 00C000 00C000 00C000 00C000 FFFFC0 FFFFC0 00C000 00C000 00C000 00C000 00C000 000000 000000 000000 FFFFC0 FFFFC0 ENDCHAR STARTCHAR twosuperior ENCODING 178 SWIDTH 42 0 DWIDTH 20 0 BBX 6 12 -3 13 BITMAP 78 8C 04 04 04 08 18 30 60 40 C0 FC ENDCHAR STARTCHAR threesuperior ENCODING 179 SWIDTH 42 0 DWIDTH 20 0 BBX 6 12 -3 13 BITMAP F8 8C 04 04 08 70 0C 04 04 04 88 F0 ENDCHAR STARTCHAR acute ENCODING 180 SWIDTH 42 0 DWIDTH 20 0 BBX 7 5 6 21 BITMAP 1E 3C 38 70 E0 ENDCHAR STARTCHAR mu ENCODING 181 SWIDTH 42 0 DWIDTH 20 0 BBX 15 24 3 -6 BITMAP E00E E00E E00E E00E E00E E00E E00E E00E E00E E00E E00E E00E E01E E03E F0FE FFEE FFCE FF0E E000 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR paragraph ENCODING 182 SWIDTH 42 0 DWIDTH 20 0 BBX 12 31 3 -6 BITMAP 1FF0 7FF0 FF30 FF30 FF30 FF30 FF30 FF30 FF30 7F30 7F30 1F30 0F30 0330 0330 0330 0330 0330 0330 0330 0330 0330 0330 0330 0330 0330 0330 0330 0330 0330 0330 ENDCHAR STARTCHAR periodcentered ENCODING 183 SWIDTH 42 0 DWIDTH 20 0 BBX 4 3 8 8 BITMAP F0 F0 F0 ENDCHAR STARTCHAR cedilla ENCODING 184 SWIDTH 42 0 DWIDTH 20 0 BBX 5 7 8 -7 BITMAP 60 E0 70 38 18 18 F0 ENDCHAR STARTCHAR onesuperior ENCODING 185 SWIDTH 42 0 DWIDTH 20 0 BBX 7 12 -3 13 BITMAP 10 F0 10 10 10 10 10 10 10 10 10 FE ENDCHAR STARTCHAR ordmasculine ENCODING 186 SWIDTH 42 0 DWIDTH 20 0 BBX 13 13 4 12 BITMAP 0F80 3FE0 78F0 7070 E038 E038 E038 E038 E038 7070 78F0 3FE0 0F80 ENDCHAR STARTCHAR guillemotright ENCODING 187 SWIDTH 42 0 DWIDTH 20 0 BBX 16 16 2 1 BITMAP 4180 E0C0 70E0 3070 1830 1C18 0E1C 070E 078F 0E1C 1C18 1838 3070 70E0 E1C0 4080 ENDCHAR STARTCHAR onequarter ENCODING 188 SWIDTH 42 0 DWIDTH 20 0 BBX 20 25 4 0 BITMAP 100070 F000E0 1000C0 100180 100380 100300 100600 100E00 101C00 101800 103800 FE7000 006000 00C040 01C0C0 0181C0 030140 070240 060240 0C0440 1C0840 180FF0 300040 700040 E00040 ENDCHAR STARTCHAR onehalf ENCODING 189 SWIDTH 42 0 DWIDTH 20 0 BBX 20 25 4 0 BITMAP 100070 F000E0 1000C0 100180 100380 100300 100600 100E00 101C00 101800 103800 FE7000 006000 00C1E0 01C230 018010 030010 070010 060020 0C0060 1C00C0 180180 300100 700300 E003F0 ENDCHAR STARTCHAR threequarters ENCODING 190 SWIDTH 42 0 DWIDTH 20 0 BBX 20 25 4 0 BITMAP F80070 8C00E0 0400C0 040180 080380 700300 0C0600 040E00 041C00 041800 883800 F07000 006000 00C040 01C0C0 0181C0 030140 070240 060240 0C0440 1C0840 180FF0 300040 700040 E00040 ENDCHAR STARTCHAR questiondown ENCODING 191 SWIDTH 42 0 DWIDTH 20 0 BBX 15 25 3 -7 BITMAP 01C0 01C0 01C0 0000 0000 0000 0000 01C0 01C0 01C0 0180 0380 0700 0E00 1C00 3800 7000 E000 E000 E000 E006 F006 7806 3FFE 0FF8 ENDCHAR STARTCHAR Agrave ENCODING 192 SWIDTH 42 0 DWIDTH 20 0 BBX 20 31 0 0 BITMAP 01E000 00F000 007000 003800 001C00 000000 007000 00F000 00F000 00F800 01B800 01B800 019C00 031C00 031C00 030E00 060E00 060E00 060F00 0C0700 0C0700 0C0780 1FFF80 1FFF80 1803C0 3001C0 3001C0 3000E0 6000E0 6000E0 E00070 ENDCHAR STARTCHAR Aacute ENCODING 193 SWIDTH 42 0 DWIDTH 20 0 BBX 20 31 0 0 BITMAP 007800 00F000 00E000 01C000 038000 000000 007000 00F000 00F000 00F800 01B800 01B800 019C00 031C00 031C00 030E00 060E00 060E00 060F00 0C0700 0C0700 0C0780 1FFF80 1FFF80 1803C0 3001C0 3001C0 3000E0 6000E0 6000E0 E00070 ENDCHAR STARTCHAR Acircumflex ENCODING 194 SWIDTH 42 0 DWIDTH 20 0 BBX 20 31 0 0 BITMAP 00F800 00F800 01DC00 038E00 070700 000000 007000 00F000 00F000 00F800 01B800 01B800 019C00 031C00 031C00 030E00 060E00 060E00 060F00 0C0700 0C0700 0C0780 1FFF80 1FFF80 1803C0 3001C0 3001C0 3000E0 6000E0 6000E0 E00070 ENDCHAR STARTCHAR Atilde ENCODING 195 SWIDTH 42 0 DWIDTH 20 0 BBX 20 29 0 0 BITMAP 03E300 07FF00 063E00 000000 007000 00F000 00F000 00F800 01B800 01B800 019C00 031C00 031C00 030E00 060E00 060E00 060F00 0C0700 0C0700 0C0780 1FFF80 1FFF80 1803C0 3001C0 3001C0 3000E0 6000E0 6000E0 E00070 ENDCHAR STARTCHAR Adieresis ENCODING 196 SWIDTH 42 0 DWIDTH 20 0 BBX 20 28 0 0 BITMAP 038E00 038E00 000000 007000 00F000 00F000 00F800 01B800 01B800 019C00 031C00 031C00 030E00 060E00 060E00 060F00 0C0700 0C0700 0C0780 1FFF80 1FFF80 1803C0 3001C0 3001C0 3000E0 6000E0 6000E0 E00070 ENDCHAR STARTCHAR Aring ENCODING 197 SWIDTH 42 0 DWIDTH 20 0 BBX 20 31 0 0 BITMAP 007000 00D800 008800 00D800 007000 000000 007000 00F000 00F000 00F800 01B800 01B800 019C00 031C00 031C00 030E00 060E00 060E00 060F00 0C0700 0C0700 0C0780 1FFF80 1FFF80 1803C0 3001C0 3001C0 3000E0 6000E0 6000E0 E00070 ENDCHAR STARTCHAR AE ENCODING 198 SWIDTH 42 0 DWIDTH 20 0 BBX 19 25 0 0 BITMAP 007FC0 007FC0 00F800 00F800 00F800 01B800 01B800 01B800 033800 033800 033800 063F80 063F80 0E3800 0C3800 0C3800 1C3800 1FF800 1FF800 303800 303800 303800 603800 603FE0 E03FE0 ENDCHAR STARTCHAR Ccedilla ENCODING 199 SWIDTH 42 0 DWIDTH 20 0 BBX 17 32 2 -7 BITMAP 01FE00 07FF80 0F0380 1C0080 380000 380000 700000 700000 F00000 E00000 E00000 E00000 E00000 E00000 E00000 E00000 E00000 700000 700000 380000 3C0000 1E0000 0F8180 07FF80 00FE00 00C000 01C000 00E000 007000 003000 003000 01E000 ENDCHAR STARTCHAR Egrave ENCODING 200 SWIDTH 42 0 DWIDTH 20 0 BBX 15 31 4 0 BITMAP 1E00 0F00 0700 0380 01C0 0000 FFFC FFFC E000 E000 E000 E000 E000 E000 E000 E000 E000 FFF8 FFF0 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 FFFE FFFE ENDCHAR STARTCHAR Eacute ENCODING 201 SWIDTH 42 0 DWIDTH 20 0 BBX 15 31 4 0 BITMAP 03C0 0780 0700 0E00 1C00 0000 FFFC FFFC E000 E000 E000 E000 E000 E000 E000 E000 E000 FFF8 FFF0 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 FFFE FFFE ENDCHAR STARTCHAR Ecircumflex ENCODING 202 SWIDTH 42 0 DWIDTH 0 0 BBX 0 0 0 0 BITMAP ENDCHAR STARTCHAR Edieresis ENCODING 203 SWIDTH 42 0 DWIDTH 20 0 BBX 15 28 4 0 BITMAP 38E0 38E0 0000 FFFC FFFC E000 E000 E000 E000 E000 E000 E000 E000 E000 FFF8 FFF0 E000 E000 E000 E000 E000 E000 E000 E000 E000 E000 FFFE FFFE ENDCHAR STARTCHAR Igrave ENCODING 204 SWIDTH 42 0 DWIDTH 20 0 BBX 15 31 3 0 BITMAP 0F00 0780 0380 01C0 00E0 0000 FFFE FFFE 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 FFFE FFFE ENDCHAR STARTCHAR Iacute ENCODING 205 SWIDTH 42 0 DWIDTH 20 0 BBX 15 31 3 0 BITMAP 01E0 03C0 0380 0700 0E00 0000 FFFE FFFE 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 FFFE FFFE ENDCHAR STARTCHAR Icircumflex ENCODING 206 SWIDTH 42 0 DWIDTH 20 0 BBX 15 31 3 0 BITMAP 07C0 07C0 0EE0 1C70 3838 0000 FFFE FFFE 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 FFFE FFFE ENDCHAR STARTCHAR Idieresis ENCODING 207 SWIDTH 42 0 DWIDTH 20 0 BBX 15 28 3 0 BITMAP 1C70 1C70 0000 FFFE FFFE 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 0380 FFFE FFFE ENDCHAR STARTCHAR Eth ENCODING 208 SWIDTH 42 0 DWIDTH 20 0 BBX 19 25 0 0 BITMAP 3FF800 3FFE00 381F00 380780 3803C0 3801C0 3801C0 3800E0 3800E0 3800E0 3800E0 FF80E0 FF80E0 3800E0 3800E0 3800E0 3800E0 3801C0 3801C0 3801C0 380380 380780 381F00 3FFC00 3FF000 ENDCHAR STARTCHAR Ntilde ENCODING 209 SWIDTH 42 0 DWIDTH 20 0 BBX 16 29 2 0 BITMAP 0F8C 1FFC 18F8 0000 E003 F003 F003 F803 F803 FC03 DC03 CE03 CF03 C703 C783 C383 C3C3 C1C3 C1E3 C0E3 C073 C07B C03B C03F C01F C01F C00F C007 C007 ENDCHAR STARTCHAR Ograve ENCODING 210 SWIDTH 42 0 DWIDTH 20 0 BBX 18 31 1 0 BITMAP 03C000 01E000 00E000 007000 003800 000000 03F000 0FFC00 1E1E00 380700 380700 700380 700380 700380 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 700380 700380 700380 380700 3C0F00 1E1E00 0FFC00 03F000 ENDCHAR STARTCHAR Oacute ENCODING 211 SWIDTH 42 0 DWIDTH 20 0 BBX 18 31 1 0 BITMAP 00F000 01E000 01C000 038000 070000 000000 03F000 0FFC00 1E1E00 380700 380700 700380 700380 700380 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 700380 700380 700380 380700 3C0F00 1E1E00 0FFC00 03F000 ENDCHAR STARTCHAR Ocircumflex ENCODING 212 SWIDTH 42 0 DWIDTH 20 0 BBX 18 31 1 0 BITMAP 03E000 03E000 077000 0E3800 1C1C00 000000 03F000 0FFC00 1E1E00 380700 380700 700380 700380 700380 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 700380 700380 700380 380700 3C0F00 1E1E00 0FFC00 03F000 ENDCHAR STARTCHAR Otilde ENCODING 213 SWIDTH 42 0 DWIDTH 20 0 BBX 18 29 1 0 BITMAP 0F8C00 1FFC00 18F800 000000 03F000 0FFC00 1E1E00 380700 380700 700380 700380 700380 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 700380 700380 700380 380700 3C0F00 1E1E00 0FFC00 03F000 ENDCHAR STARTCHAR Odieresis ENCODING 214 SWIDTH 42 0 DWIDTH 20 0 BBX 18 28 1 0 BITMAP 071C00 071C00 000000 03F000 0FFC00 1E1E00 380700 380700 700380 700380 700380 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 E001C0 700380 700380 700380 380700 3C0F00 1E1E00 0FFC00 03F000 ENDCHAR STARTCHAR multiply ENCODING 215 SWIDTH 42 0 DWIDTH 20 0 BBX 17 18 2 0 BITMAP 01C000 01C000 01C000 000000 000000 000000 000000 000000 FFFF80 FFFF80 000000 000000 000000 000000 000000 01C000 01C000 01C000 ENDCHAR STARTCHAR Oslash ENCODING 216 SWIDTH 42 0 DWIDTH 20 0 BBX 18 25 1 0 BITMAP 03F1C0 0FFF80 1E1F80 3C0700 380780 700F80 700F80 701BC0 E039C0 E031C0 E061C0 E0E1C0 E0C1C0 E181C0 E381C0 E301C0 E701C0 F60380 7C0380 7C0380 780700 380F00 7E1E00 7FFC00 E3F000 ENDCHAR STARTCHAR Ugrave ENCODING 217 SWIDTH 42 0 DWIDTH 20 0 BBX 15 31 3 0 BITMAP 0F00 0780 0380 01C0 00E0 0000 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 F00C 700C 781C 3FF8 0FE0 ENDCHAR STARTCHAR Uacute ENCODING 218 SWIDTH 42 0 DWIDTH 20 0 BBX 15 31 3 0 BITMAP 01E0 03C0 0380 0700 0E00 0000 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 F00C 700C 781C 3FF8 0FE0 ENDCHAR STARTCHAR Ucircumflex ENCODING 219 SWIDTH 42 0 DWIDTH 20 0 BBX 15 31 3 0 BITMAP 07C0 07C0 0EE0 1C70 3838 0000 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 F00C 700C 781C 3FF8 0FE0 ENDCHAR STARTCHAR Udieresis ENCODING 220 SWIDTH 42 0 DWIDTH 20 0 BBX 15 28 3 0 BITMAP 1C70 1C70 0000 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 E006 F00C 700C 781C 3FF8 0FE0 ENDCHAR STARTCHAR Yacute ENCODING 221 SWIDTH 42 0 DWIDTH 20 0 BBX 20 31 0 0 BITMAP 007800 00F000 00E000 01C000 038000 000000 F00070 7000E0 3800C0 3C01C0 1C0380 1E0300 0E0700 0F0600 070C00 078C00 03D800 01F800 01F000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 ENDCHAR STARTCHAR Thorn ENCODING 222 SWIDTH 42 0 DWIDTH 20 0 BBX 15 25 4 0 BITMAP E000 E000 E000 E000 E000 FFE0 FFF8 E03C E01E E00E E00E E00E E00E E00E E01C E01C E078 FFF0 FF80 E000 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR germandbls ENCODING 223 SWIDTH 42 0 DWIDTH 20 0 BBX 16 27 3 0 BITMAP 1F80 3FE0 70F0 6070 E070 E070 E070 E0E0 E0C0 E180 E300 E300 E300 E380 E1C0 E1F0 E0F8 E07C E01E E00F E00F E007 E007 E007 E60E E7FE E3F8 ENDCHAR STARTCHAR agrave ENCODING 224 SWIDTH 42 0 DWIDTH 20 0 BBX 17 24 2 0 BITMAP 078000 03C000 01C000 00E000 007000 000000 0FE000 3FF800 303800 201C00 001C00 001C00 001C00 07FC00 1FFC00 7C1C00 701C00 E01C00 E01C00 E01C00 E03C00 707C00 7FEF80 1F8F80 ENDCHAR STARTCHAR aacute ENCODING 225 SWIDTH 42 0 DWIDTH 20 0 BBX 17 24 2 0 BITMAP 01E000 03C000 038000 070000 0E0000 000000 0FE000 3FF800 303800 201C00 001C00 001C00 001C00 07FC00 1FFC00 7C1C00 701C00 E01C00 E01C00 E01C00 E03C00 707C00 7FEF80 1F8F80 ENDCHAR STARTCHAR acircumflex ENCODING 226 SWIDTH 42 0 DWIDTH 20 0 BBX 17 24 2 0 BITMAP 07C000 07C000 0EE000 1C7000 383800 000000 0FE000 3FF800 303800 201C00 001C00 001C00 001C00 07FC00 1FFC00 7C1C00 701C00 E01C00 E01C00 E01C00 E03C00 707C00 7FEF80 1F8F80 ENDCHAR STARTCHAR atilde ENCODING 227 SWIDTH 42 0 DWIDTH 20 0 BBX 17 22 2 0 BITMAP 1F1800 3FF800 31F000 000000 0FE000 3FF800 303800 201C00 001C00 001C00 001C00 07FC00 1FFC00 7C1C00 701C00 E01C00 E01C00 E01C00 E03C00 707C00 7FEF80 1F8F80 ENDCHAR STARTCHAR adieresis ENCODING 228 SWIDTH 42 0 DWIDTH 20 0 BBX 17 21 2 0 BITMAP 1C7000 1C7000 000000 0FE000 3FF800 303800 201C00 001C00 001C00 001C00 07FC00 1FFC00 7C1C00 701C00 E01C00 E01C00 E01C00 E03C00 707C00 7FEF80 1F8F80 ENDCHAR STARTCHAR aring ENCODING 229 SWIDTH 42 0 DWIDTH 20 0 BBX 17 24 2 0 BITMAP 038000 06C000 044000 06C000 038000 000000 0FE000 3FF800 303800 201C00 001C00 001C00 001C00 07FC00 1FFC00 7C1C00 701C00 E01C00 E01C00 E01C00 E03C00 707C00 7FEF80 1F8F80 ENDCHAR STARTCHAR ae ENCODING 230 SWIDTH 42 0 DWIDTH 20 0 BBX 19 18 1 0 BITMAP 3F9F00 3FFF80 21F9C0 00F0C0 00E0E0 00E0E0 00E0E0 0FFFE0 3FFFE0 78E000 F0E000 E0E000 E0E000 E0E000 E0F000 71F860 7F7FE0 1E1F80 ENDCHAR STARTCHAR ccedilla ENCODING 231 SWIDTH 42 0 DWIDTH 20 0 BBX 15 25 3 -7 BITMAP 03FC 0FFE 3E06 7800 7000 F000 E000 E000 E000 E000 E000 E000 7000 7000 3800 3E06 0FFE 03FC 0300 0700 0380 01C0 00C0 00C0 0780 ENDCHAR STARTCHAR egrave ENCODING 232 SWIDTH 42 0 DWIDTH 20 0 BBX 16 24 2 0 BITMAP 0780 03C0 01C0 00E0 0070 0000 03F0 0FFC 1C1E 380E 700E 7007 E007 E007 FFFF FFFF E000 E000 6000 7000 3800 1C03 0FFF 03FC ENDCHAR STARTCHAR eacute ENCODING 233 SWIDTH 42 0 DWIDTH 20 0 BBX 16 24 2 0 BITMAP 01E0 03C0 0380 0700 0E00 0000 03F0 0FFC 1C1E 380E 700E 7007 E007 E007 FFFF FFFF E000 E000 6000 7000 3800 1C03 0FFF 03FC ENDCHAR STARTCHAR ecircumflex ENCODING 234 SWIDTH 42 0 DWIDTH 20 0 BBX 16 24 2 0 BITMAP 07C0 07C0 0EE0 1C70 3838 0000 03F0 0FFC 1C1E 380E 700E 7007 E007 E007 FFFF FFFF E000 E000 6000 7000 3800 1C03 0FFF 03FC ENDCHAR STARTCHAR edieresis ENCODING 235 SWIDTH 42 0 DWIDTH 20 0 BBX 16 21 2 0 BITMAP 1C70 1C70 0000 03F0 0FFC 1C1E 380E 700E 7007 E007 E007 FFFF FFFF E000 E000 6000 7000 3800 1C03 0FFF 03FC ENDCHAR STARTCHAR igrave ENCODING 236 SWIDTH 42 0 DWIDTH 20 0 BBX 11 24 3 0 BITMAP 0F00 0780 0380 01C0 00E0 0000 FFC0 FFC0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 ENDCHAR STARTCHAR iacute ENCODING 237 SWIDTH 42 0 DWIDTH 20 0 BBX 11 24 3 0 BITMAP 01E0 03C0 0380 0700 0E00 0000 FFC0 FFC0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 ENDCHAR STARTCHAR icircumflex ENCODING 238 SWIDTH 42 0 DWIDTH 20 0 BBX 13 24 3 0 BITMAP 07C0 07C0 0EE0 1C70 3838 0000 FFC0 FFC0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 ENDCHAR STARTCHAR idieresis ENCODING 239 SWIDTH 42 0 DWIDTH 20 0 BBX 12 21 3 0 BITMAP 1C70 1C70 0000 FFC0 FFC0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 ENDCHAR STARTCHAR eth ENCODING 240 SWIDTH 42 0 DWIDTH 20 0 BBX 17 26 2 0 BITMAP FC6000 FFF000 0FF000 07E000 1FF000 387800 303C00 001C00 03FE00 0FFE00 3C1F00 380F00 700780 700780 E00380 E00380 E00380 E00380 E00380 E00380 700700 700700 380E00 3C1E00 1FF800 07F000 ENDCHAR STARTCHAR ntilde ENCODING 241 SWIDTH 42 0 DWIDTH 20 0 BBX 15 22 3 0 BITMAP 1F18 3FF8 31F0 0000 E1F0 E7F8 EFFC FC1E F80E F00E E00E E00E E00E E00E E00E E00E E00E E00E E00E E00E E00E E00E ENDCHAR STARTCHAR ograve ENCODING 242 SWIDTH 42 0 DWIDTH 20 0 BBX 17 24 2 0 BITMAP 078000 03C000 01C000 00E000 007000 000000 07F000 1FFC00 3C1E00 780F00 700700 F00780 E00380 E00380 E00380 E00380 E00380 E00380 F00780 700700 780F00 3C1E00 1FFC00 07F000 ENDCHAR STARTCHAR oacute ENCODING 243 SWIDTH 42 0 DWIDTH 20 0 BBX 17 24 2 0 BITMAP 00F000 01E000 01C000 038000 070000 000000 07F000 1FFC00 3C1E00 780F00 700700 F00780 E00380 E00380 E00380 E00380 E00380 E00380 F00780 700700 780F00 3C1E00 1FFC00 07F000 ENDCHAR STARTCHAR ocircumflex ENCODING 244 SWIDTH 42 0 DWIDTH 20 0 BBX 17 24 2 0 BITMAP 03E000 03E000 077000 0E3800 1C1C00 000000 07F000 1FFC00 3C1E00 780F00 700700 F00780 E00380 E00380 E00380 E00380 E00380 E00380 F00780 700700 780F00 3C1E00 1FFC00 07F000 ENDCHAR STARTCHAR otilde ENCODING 245 SWIDTH 42 0 DWIDTH 20 0 BBX 17 22 2 0 BITMAP 0F8C00 1FFC00 18F800 000000 07F000 1FFC00 3C1E00 780F00 700700 F00780 E00380 E00380 E00380 E00380 E00380 E00380 F00780 700700 780F00 3C1E00 1FFC00 07F000 ENDCHAR STARTCHAR odieresis ENCODING 246 SWIDTH 42 0 DWIDTH 20 0 BBX 17 21 2 0 BITMAP 0E3800 0E3800 000000 07F000 1FFC00 3C1E00 780F00 700700 F00780 E00380 E00380 E00380 E00380 E00380 E00380 F00780 700700 780F00 3C1E00 1FFC00 07F000 ENDCHAR STARTCHAR divide ENCODING 247 SWIDTH 42 0 DWIDTH 20 0 BBX 18 18 1 0 BITMAP 400080 E001C0 700380 380700 1C0E00 0E1C00 073800 03F000 01E000 01E000 03F000 073800 0E1C00 1C0E00 380700 700380 E001C0 400080 ENDCHAR STARTCHAR oslash ENCODING 248 SWIDTH 42 0 DWIDTH 20 0 BBX 17 18 2 0 BITMAP 07F780 1FFF00 3C1F00 780F00 701F00 F03F80 E07380 E0E380 E0C380 E18380 E38380 E70380 FE0780 7C0700 780F00 7C1E00 7FFC00 F7F000 ENDCHAR STARTCHAR ugrave ENCODING 249 SWIDTH 42 0 DWIDTH 20 0 BBX 15 24 3 0 BITMAP 0F00 0780 0380 01C0 00E0 0000 E00E E00E E00E E00E E00E E00E E00E E00E E00E E00E E00E E00E E01E E03E F07E 7FEE 3FCE 1F0E ENDCHAR STARTCHAR uacute ENCODING 250 SWIDTH 42 0 DWIDTH 20 0 BBX 15 24 3 0 BITMAP 01E0 03C0 0380 0700 0E00 0000 E00E E00E E00E E00E E00E E00E E00E E00E E00E E00E E00E E00E E01E E03E F07E 7FEE 3FCE 1F0E ENDCHAR STARTCHAR ucircumflex ENCODING 251 SWIDTH 42 0 DWIDTH 20 0 BBX 15 24 3 0 BITMAP 07C0 07C0 0EE0 1C70 3838 0000 E00E E00E E00E E00E E00E E00E E00E E00E E00E E00E E00E E00E E01E E03E F07E 7FEE 3FCE 1F0E ENDCHAR STARTCHAR udieresis ENCODING 252 SWIDTH 42 0 DWIDTH 20 0 BBX 15 21 3 0 BITMAP 1C70 1C70 0000 E00E E00E E00E E00E E00E E00E E00E E00E E00E E00E E00E E00E E01E E03E F07E 7FEE 3FCE 1F0E ENDCHAR STARTCHAR yacute ENCODING 253 SWIDTH 42 0 DWIDTH 20 0 BBX 18 31 1 -7 BITMAP 00F000 01E000 01C000 038000 070000 000000 F001C0 700180 700380 380300 380300 3C0600 1C0600 1C0C00 0E0C00 0E1C00 0F1800 071800 073000 03B000 03E000 01E000 01E000 01C000 01C000 018000 018000 030000 070000 7E0000 780000 ENDCHAR STARTCHAR thorn ENCODING 254 SWIDTH 42 0 DWIDTH 20 0 BBX 16 31 3 -7 BITMAP E000 E000 E000 E000 E000 E000 E3F0 E7F8 EE1C F80E F00E E007 E007 E007 E007 E007 E007 E007 E00E E00E F01C FC3C EFF8 E7E0 E000 E000 E000 E000 E000 E000 E000 ENDCHAR STARTCHAR ydieresis ENCODING 255 SWIDTH 42 0 DWIDTH 20 0 BBX 18 28 1 -7 BITMAP 0E3800 0E3800 000000 F001C0 700180 700380 380300 380300 3C0600 1C0600 1C0C00 0E0C00 0E1C00 0F1800 071800 073000 03B000 03E000 01E000 01E000 01C000 01C000 018000 018000 030000 070000 7E0000 780000 ENDCHAR STARTCHAR fl ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 15 27 2 0 BITMAP 07FE 1FFE 1C1E 380E 380E 380E 380E 380E 380E FF8E FF8E 380E 380E 380E 380E 380E 380E 380E 380E 380E 380E 380E 380E 380E 380E 380E 380E ENDCHAR STARTCHAR endash ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 16 2 2 9 BITMAP FFFF FFFF ENDCHAR STARTCHAR dagger ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 14 31 3 -6 BITMAP 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 FFFC 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 ENDCHAR STARTCHAR Zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 17 31 2 0 BITMAP 1C1C00 0E3800 077000 03E000 03E000 000000 7FFF80 7FFF80 000780 000F00 000E00 001E00 001C00 003800 007800 007000 00F000 01E000 01C000 03C000 078000 070000 0F0000 1E0000 1C0000 3C0000 780000 700000 F00000 FFFF80 FFFF80 ENDCHAR STARTCHAR oe ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 20 18 0 0 BITMAP 0F8F80 3FDFC0 39F8E0 70F860 70F070 E07070 E07070 E07FF0 E07FF0 E07000 E07000 E07000 E07000 607000 70F800 30FC10 3FFFF0 0F8FE0 ENDCHAR STARTCHAR Ydieresis ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 20 28 0 0 BITMAP 071C00 071C00 000000 F00070 7000E0 3800C0 3C01C0 1C0380 1E0300 0E0700 0F0600 070C00 078C00 03D800 01F800 01F000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 00E000 ENDCHAR STARTCHAR dotlessi ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 10 18 3 0 BITMAP FFC0 FFC0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 ENDCHAR STARTCHAR lslash ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 14 26 3 0 BITMAP FFC0 FFC0 01C0 01C0 01C0 01C0 01C0 01C0 01C4 01CC 01FC 01F0 03C0 0FC0 1FC0 19C0 11C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0 ENDCHAR STARTCHAR Lslash ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 18 25 0 0 BITMAP 0E0000 0E0000 0E0000 0E0000 0E0000 0E0000 0E0000 0E0000 0E2000 0EE000 0FE000 0F8000 1E0000 3E0000 FE0000 CE0000 8E0000 0E0000 0E0000 0E0000 0E0000 0E0000 0E0000 0FFFC0 0FFFC0 ENDCHAR STARTCHAR daggerdbl ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 14 31 3 -6 BITMAP 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 FFFC 0300 0300 0300 0300 0300 0300 0300 0300 0300 FFFC 0300 0300 0300 0300 0300 0300 0300 0300 0300 0300 ENDCHAR STARTCHAR fi ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 15 27 2 0 BITMAP 0780 0FC0 1FCE 3C0E 380E 3800 3800 3800 3800 FFFE FFFE 380E 380E 380E 380E 380E 380E 380E 380E 380E 380E 380E 380E 380E 380E 380E 380E ENDCHAR STARTCHAR guilsinglright ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 9 16 6 1 BITMAP 4000 E000 7000 3800 1800 0C00 0E00 0700 0780 0E00 0C00 1800 3800 7000 E000 4000 ENDCHAR STARTCHAR OE ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 19 25 1 0 BITMAP 0FFFC0 3FFFC0 38F000 707000 707000 607000 E07000 E07000 E07000 E07000 E07000 E07F80 E07F80 E07000 E07000 E07000 E07000 E07000 E07000 607000 707000 707000 38F000 1FFFE0 0FFFE0 ENDCHAR STARTCHAR emdash ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 18 2 1 9 BITMAP FFFFC0 FFFFC0 ENDCHAR STARTCHAR caron ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 11 5 5 21 BITMAP E0E0 71C0 3B80 1F00 1F00 ENDCHAR STARTCHAR ogonek ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 5 7 7 -7 BITMAP 30 60 C0 C0 C0 F8 78 ENDCHAR STARTCHAR hungarumlaut ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 11 5 5 21 BITMAP 1CE0 39C0 3180 6300 C600 ENDCHAR STARTCHAR guilsinglleft ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 9 16 6 1 BITMAP 0100 0380 0700 0E00 0C00 1800 3800 F000 7000 3800 1800 0C00 0E00 0700 0380 0100 ENDCHAR STARTCHAR dotaccent ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 3 3 9 22 BITMAP E0 E0 E0 ENDCHAR STARTCHAR breve ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 11 5 5 21 BITMAP C060 E0E0 71C0 3F80 1F00 ENDCHAR STARTCHAR bullet ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 10 10 5 3 BITMAP FFC0 FFC0 FFC0 FFC0 FFC0 FFC0 FFC0 FFC0 FFC0 FFC0 ENDCHAR STARTCHAR tilde ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 11 3 5 22 BITMAP 7C60 FFE0 C7C0 ENDCHAR STARTCHAR circumflex ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 11 5 5 21 BITMAP 1F00 1F00 3B80 71C0 E0E0 ENDCHAR STARTCHAR quotedblleft ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 12 9 4 17 BITMAP 6030 4060 C0C0 C0C0 C0C0 E0F0 E0F0 E0F0 E0F0 ENDCHAR STARTCHAR quotesingle ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 4 10 8 16 BITMAP F0 F0 F0 F0 F0 60 60 60 60 60 ENDCHAR STARTCHAR scaron ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 14 24 3 0 BITMAP 7070 38E0 1DC0 0F80 0F80 0000 0FF0 3FF8 7018 E000 E000 E000 F800 7F00 3FE0 0FF8 01FC 003C 001C 001C 801C E078 FFF0 3FC0 ENDCHAR STARTCHAR ring ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 5 5 8 21 BITMAP 70 D8 88 D8 70 ENDCHAR STARTCHAR quotesinglbase ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 5 11 8 -6 BITMAP F8 F8 F8 F8 F8 18 18 38 30 70 C0 ENDCHAR STARTCHAR florin ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 15 31 4 -6 BITMAP 007E 00FE 01C0 0380 0300 0700 0700 0700 0E00 0E00 0E00 7FC0 7FC0 1C00 1C00 1C00 3800 3800 3800 3800 3800 3800 7000 7000 7000 7000 7000 7000 E000 E000 E000 ENDCHAR STARTCHAR trademark ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 20 13 0 12 BITMAP FFF070 FFF8F0 1878F0 1878F0 187DF0 187DF0 186DB0 186FB0 186F30 186730 186730 186030 186030 ENDCHAR STARTCHAR fraction ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 20 25 0 0 BITMAP 000070 0000E0 0000C0 000180 000380 000300 000600 000E00 001C00 001800 003800 007000 006000 00C000 01C000 018000 030000 070000 060000 0C0000 1C0000 180000 300000 700000 E00000 ENDCHAR STARTCHAR grave ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 7 5 7 21 BITMAP F0 78 38 1C 0E ENDCHAR STARTCHAR perthousand ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 19 25 1 0 BITMAP 303000 486000 CC6000 CCE000 CCC000 CCC000 CD8000 CD8000 CF8000 4B0000 330000 060000 060000 060000 0C0000 0CC180 192240 1B3660 1B3660 333660 333660 633660 633660 612240 C0C180 ENDCHAR STARTCHAR ellipsis ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 17 3 2 0 BITMAP E1C380 E1C380 E1C380 ENDCHAR STARTCHAR quotedblright ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 12 9 4 17 BITMAP E0F0 E0F0 E0F0 E0F0 6030 6030 6030 4060 C0C0 ENDCHAR STARTCHAR Scaron ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 16 31 3 0 BITMAP 3838 1C70 0EE0 07C0 07C0 0000 0FF8 3FFE 780E 7000 E000 E000 E000 F000 F000 7C00 3F00 0FC0 03F0 00FC 003E 001E 000F 0007 0007 0007 0007 800E F03C FFF8 1FE0 ENDCHAR STARTCHAR quotedblbase ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 12 10 4 -6 BITMAP E0F0 E0F0 E0F0 6030 6030 6030 6030 6030 4060 C0C0 ENDCHAR STARTCHAR zcaron ENCODING -1 SWIDTH 42 0 DWIDTH 20 0 BBX 16 24 2 0 BITMAP 1C1C 0E38 0770 03E0 03E0 0000 FFFF FFFF 000E 001C 0038 0030 0060 00E0 01C0 0380 0700 0E00 1C00 1800 3000 6000 FFFF FFFF ENDCHAR ENDFONT xview-3.2p1.4/fonts/bdf/100dpi/fonts.alias100644 1750 1750 7145 5413747544 15473 0ustar mbmb lucidasans-bolditalic-8 -b&h-lucida-bold-i-normal-sans-11-80-100-100-p-69-iso8859-1 lucidasans-bolditalic-10 -b&h-lucida-bold-i-normal-sans-14-100-100-100-p-90-iso8859-1 lucidasans-bolditalic-12 -b&h-lucida-bold-i-normal-sans-17-120-100-100-p-108-iso8859-1 lucidasans-bolditalic-14 -b&h-lucida-bold-i-normal-sans-20-140-100-100-p-127-iso8859-1 lucidasans-bolditalic-18 -b&h-lucida-bold-i-normal-sans-25-180-100-100-p-159-iso8859-1 lucidasans-bolditalic-19 -b&h-lucida-bold-i-normal-sans-26-190-100-100-p-166-iso8859-1 lucidasans-bolditalic-24 -b&h-lucida-bold-i-normal-sans-34-240-100-100-p-215-iso8859-1 lucidasans-bold-8 -b&h-lucida-bold-r-normal-sans-11-80-100-100-p-70-iso8859-1 lucidasans-bold-10 -b&h-lucida-bold-r-normal-sans-14-100-100-100-p-89-iso8859-1 lucidasans-bold-12 -b&h-lucida-bold-r-normal-sans-17-120-100-100-p-108-iso8859-1 lucidasans-bold-14 -b&h-lucida-bold-r-normal-sans-20-140-100-100-p-127-iso8859-1 lucidasans-bold-18 -b&h-lucida-bold-r-normal-sans-25-180-100-100-p-158-iso8859-1 lucidasans-bold-19 -b&h-lucida-bold-r-normal-sans-26-190-100-100-p-166-iso8859-1 lucidasans-bold-24 -b&h-lucida-bold-r-normal-sans-34-240-100-100-p-216-iso8859-1 lucidasans-italic-8 -b&h-lucida-medium-i-normal-sans-11-80-100-100-p-62-iso8859-1 lucidasans-italic-10 -b&h-lucida-medium-i-normal-sans-14-100-100-100-p-80-iso8859-1 lucidasans-italic-12 -b&h-lucida-medium-i-normal-sans-17-120-100-100-p-97-iso8859-1 lucidasans-italic-14 -b&h-lucida-medium-i-normal-sans-20-140-100-100-p-114-iso8859-1 lucidasans-italic-18 -b&h-lucida-medium-i-normal-sans-25-180-100-100-p-141-iso8859-1 lucidasans-italic-19 -b&h-lucida-medium-i-normal-sans-26-190-100-100-p-147-iso8859-1 lucidasans-italic-24 -b&h-lucida-medium-i-normal-sans-34-240-100-100-p-192-iso8859-1 lucidasans-8 -b&h-lucida-medium-r-normal-sans-11-80-100-100-p-63-iso8859-1 lucidasans-10 -b&h-lucida-medium-r-normal-sans-14-100-100-100-p-80-iso8859-1 lucidasans-12 -b&h-lucida-medium-r-normal-sans-17-120-100-100-p-96-iso8859-1 lucidasans-14 -b&h-lucida-medium-r-normal-sans-20-140-100-100-p-114-iso8859-1 lucidasans-18 -b&h-lucida-medium-r-normal-sans-25-180-100-100-p-142-iso8859-1 lucidasans-19 -b&h-lucida-medium-r-normal-sans-26-190-100-100-p-147-iso8859-1 lucidasans-24 -b&h-lucida-medium-r-normal-sans-34-240-100-100-p-191-iso8859-1 lucidasanstypewriter-bold-8 -b&h-lucidatypewriter-bold-r-normal-sans-11-80-100-100-m-70-iso8859-1 lucidasanstypewriter-bold-10 -b&h-lucidatypewriter-bold-r-normal-sans-14-100-100-100-m-80-iso8859-1 lucidasanstypewriter-bold-12 -b&h-lucidatypewriter-bold-r-normal-sans-17-120-100-100-m-100-iso8859-1 lucidasanstypewriter-bold-14 -b&h-lucidatypewriter-bold-r-normal-sans-20-140-100-100-m-120-iso8859-1 lucidasanstypewriter-bold-18 -b&h-lucidatypewriter-bold-r-normal-sans-25-180-100-100-m-150-iso8859-1 lucidasanstypewriter-bold-19 -b&h-lucidatypewriter-bold-r-normal-sans-26-190-100-100-m-159-iso8859-1 lucidasanstypewriter-bold-24 -b&h-lucidatypewriter-bold-r-normal-sans-34-240-100-100-m-200-iso8859-1 lucidasanstypewriter-8 -b&h-lucidatypewriter-medium-r-normal-sans-11-80-100-100-m-70-iso8859-1 lucidasanstypewriter-10 -b&h-lucidatypewriter-medium-r-normal-sans-14-100-100-100-m-80-iso8859-1 lucidasanstypewriter-12 -b&h-lucidatypewriter-medium-r-normal-sans-17-120-100-100-m-100-iso8859-1 lucidasanstypewriter-14 -b&h-lucidatypewriter-medium-r-normal-sans-20-140-100-100-m-120-iso8859-1 lucidasanstypewriter-18 -b&h-lucidatypewriter-medium-r-normal-sans-25-180-100-100-m-150-iso8859-1 lucidasanstypewriter-19 -b&h-lucidatypewriter-medium-r-normal-sans-26-190-100-100-m-159-iso8859-1 lucidasanstypewriter-24 -b&h-lucidatypewriter-medium-r-normal-sans-34-240-100-100-m-200-iso8859-1 xview-3.2p1.4/fonts/bdf/100dpi/Imakefile100644 1750 1750 7615 5413747544 15142 0ustar mbmb#include /**/##################################################################### /**/# @(#)Imakefile 1.8 28 Jun 1993 SMI /**/# Imakefile for text fonts. SRCS = \ luBIS08.bdf luBIS10.bdf luBIS12.bdf luBIS14.bdf luBIS18.bdf \ luBIS24.bdf luBS08.bdf luBS10.bdf luBS12.bdf luBS14.bdf \ luBS18.bdf luBS24.bdf luIS08.bdf luIS10.bdf luIS12.bdf \ luIS14.bdf luIS18.bdf luIS24.bdf luRS08.bdf luRS10.bdf \ luRS12.bdf luRS14.bdf luRS18.bdf luRS24.bdf lubB08.bdf \ lubB10.bdf lubB12.bdf lubB14.bdf lubB18.bdf lubB24.bdf \ lubBI08.bdf lubBI10.bdf lubBI12.bdf lubBI14.bdf lubBI18.bdf \ lubBI24.bdf lubI08.bdf lubI10.bdf lubI12.bdf lubI14.bdf \ lubI18.bdf lubI24.bdf lubR08.bdf lubR10.bdf lubR12.bdf \ lubR14.bdf lubR18.bdf lubR24.bdf lutBS08.bdf lutBS10.bdf \ lutBS12.bdf lutBS14.bdf lutBS18.bdf lutBS24.bdf lutRS08.bdf \ lutRS10.bdf lutRS12.bdf lutRS14.bdf lutRS18.bdf lutRS24.bdf \ luBIS19.bdf luBS19.bdf luIS19.bdf luRS19.bdf lubB19.bdf \ lubBI19.bdf lubI19.bdf lubR19.bdf lutBS19.bdf lutRS19.bdf OBJS = \ FontObj(luBIS08) FontObj(luBIS10) FontObj(luBIS12) FontObj(luBIS14) \ FontObj(luBIS18) FontObj(luBIS24) FontObj(luBS08) FontObj(luBS10) \ FontObj(luBS12) FontObj(luBS14) FontObj(luBS18) FontObj(luBS24) \ FontObj(luIS08) FontObj(luIS10) FontObj(luIS12) FontObj(luIS14) \ FontObj(luIS18) FontObj(luIS24) FontObj(luRS08) FontObj(luRS10) \ FontObj(luRS12) FontObj(luRS14) FontObj(luRS18) FontObj(luRS24) \ FontObj(lubB08) FontObj(lubB10) FontObj(lubB12) FontObj(lubB14) \ FontObj(lubB18) FontObj(lubB24) FontObj(lubBI08) FontObj(lubBI10) \ FontObj(lubBI12) FontObj(lubBI14) FontObj(lubBI18) FontObj(lubBI24) \ FontObj(lubI08) FontObj(lubI10) FontObj(lubI12) FontObj(lubI14) \ FontObj(lubI18) FontObj(lubI24) FontObj(lubR08) FontObj(lubR10) \ FontObj(lubR12) FontObj(lubR14) FontObj(lubR18) FontObj(lubR24) \ FontObj(lutBS08) FontObj(lutBS10) FontObj(lutBS12) FontObj(lutBS14) \ FontObj(lutBS18) FontObj(lutBS24) FontObj(lutRS08) FontObj(lutRS10) \ FontObj(lutRS12) FontObj(lutRS14) FontObj(lutRS18) FontObj(lutRS24) \ FontObj(luBIS19) FontObj(luBS19) FontObj(luIS19) FontObj(luRS19) \ FontObj(lubB19) FontObj(lubBI19) FontObj(lubI19) FontObj(lubR19) \ FontObj(lutBS19) FontObj(lutRS19) ALLFILES = $(SRCS) fonts.alias MakeFonts() FontTarget(luBIS08) FontTarget(luBIS10) FontTarget(luBIS12) FontTarget(luBIS14) FontTarget(luBIS18) FontTarget(luBIS24) FontTarget(luBS08) FontTarget(luBS10) FontTarget(luBS12) FontTarget(luBS14) FontTarget(luBS18) FontTarget(luBS24) FontTarget(luIS08) FontTarget(luIS10) FontTarget(luIS12) FontTarget(luIS14) FontTarget(luIS18) FontTarget(luIS24) FontTarget(luRS08) FontTarget(luRS10) FontTarget(luRS12) FontTarget(luRS14) FontTarget(luRS18) FontTarget(luRS24) FontTarget(lubB08) FontTarget(lubB10) FontTarget(lubB12) FontTarget(lubB14) FontTarget(lubB18) FontTarget(lubB24) FontTarget(lubBI08) FontTarget(lubBI10) FontTarget(lubBI12) FontTarget(lubBI14) FontTarget(lubBI18) FontTarget(lubBI24) FontTarget(lubI08) FontTarget(lubI10) FontTarget(lubI12) FontTarget(lubI14) FontTarget(lubI18) FontTarget(lubI24) FontTarget(lubR08) FontTarget(lubR10) FontTarget(lubR12) FontTarget(lubR14) FontTarget(lubR18) FontTarget(lubR24) FontTarget(lutBS08) FontTarget(lutBS10) FontTarget(lutBS12) FontTarget(lutBS14) FontTarget(lutBS18) FontTarget(lutBS24) FontTarget(lutRS08) FontTarget(lutRS10) FontTarget(lutRS12) FontTarget(lutRS14) FontTarget(lutRS18) FontTarget(lutRS24) FontTarget(luBIS19) FontTarget(luBS19) FontTarget(luIS19) FontTarget(luRS19) FontTarget(lubB19) FontTarget(lubBI19) FontTarget(lubI19) FontTarget(lubR19) FontTarget(lutBS19) FontTarget(lutRS19) /**/##################################################################### /**/# In order to install these fonts, InstallOpenLookFonts must be /**/# YES in either your site.def or XView.cf file. InstallFonts($(TEXTFONT_FONTINSTDIR)/ol100dpi) InstallFontAliases($(TEXTFONT_FONTINSTDIR)/ol100dpi) PopulateSCCSTree(h,$(ALLFILES)) depend:: clean:: xview-3.2p1.4/fonts/bdf/Imakefile100644 1750 1750 524 5413747545 14116 0ustar mbmb#include /**/########################################################################## /**/# @(#)Imakefile 1.6 28 Jun 1993 SMI /**/# Imakefile for fonts/bdf directory. #define IHaveSubdirs #define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)' SUBDIRS= misc 75dpi 100dpi MakeSubdirs($(SUBDIRS)) PopulateSubdirs($(SUBDIRS)) xview-3.2p1.4/fonts/Imakefile100644 1750 1750 667 5413747546 13374 0ustar mbmb#include /**/########################################################################## /**/# @(#)Imakefile 1.1 89/07/21 SMI /**/# Imakefile for fonts directory. #define IHaveSubdirs #define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)' SUBDIRS= bdf DIRS_TO_CREATE = $(OPENLOOK_FONTINSTDIR) $(TEXTFONT_FONTINSTDIR) MakeSubdirs($(SUBDIRS)) MakeDirectories(install, $(DIRS_TO_CREATE)) PopulateSubdirs($(SUBDIRS)) depend:: xview-3.2p1.4/doc/ 40755 1750 1750 0 6354605713 11103 5ustar mbmbxview-3.2p1.4/doc/bugs/ 40755 1750 1750 0 6354605713 12043 5ustar mbmbxview-3.2p1.4/doc/bugs/Imakefile100644 1750 1750 621 6351032643 13721 0ustar mbmb#include /**/######################################################################### /**/# @(#)Imakefile 1.9 28 Jun 1993 SMI /**/# Imakefile for doc/bugs files. DOCFILES = bugform ALLFILES = $(DOCFILES) all:: install:: $(MKDIRHIER) $(DESTDIR)$(DOC_DEST) InstallNonExecList($(DOCFILES),$(DOC_DEST)) DependTarget() LintTarget() PopulateSCCSTree(h,$(ALLFILES)) clean:: depend:: xview-3.2p1.4/doc/bugs/README100644 1750 1750 546 5413747550 13006 0ustar mbmb/**/# @(#)README 1.7 28 Jun 1993 SMI bugform: XView bug report form. Send to xviewbugs@Sun.COM buglist.xv: Open XView priority 1 and 2 bugs (long form). buglist.olwm: Open olwm priority 1 and 2 bugs (long form). xview.open: All open XView bugs (short form) xview.fixed: XView bugs fixed/closed since V2. olwm.fixed: olwm bugs fixed/closed since V2. xview-3.2p1.4/doc/bugs/bugform100644 1750 1750 5061 5413747550 13527 0ustar mbmb======================Send reports to xviewbugs@sun.com===================== ===============================Begin bug report=============================== Category: xview Subcategory: library|demo|doc|perf|program|other Bug/Rfe: bug (If a Request for enhancement, replace 'bug' with 'rfe') Synopsis: One-line DESCRIPTIVE summary of the problem (80 chars MAX!) Severity: 1 through 5 (1 is most critical; see guidelines below) Priority: How important is this bug to you? Is a fix, workaround or patch OK? When do you need it fixed? (X11.R4, X11.R5, OpenWindows1.1)? Description: Detailed description including reproducible test case. Work around: Any known workaround for this problem Suggested fix: Any fix, or known patch to apply to this problem Comments: Any other information regarding this bug. Called in by: Customer: Company: (optional) Name of firm Employee: (optional) Name of employee reporting the problem Contact: (optional) Electronic mail address (eg. user@sun.com) Phone #: (optional) If we need to contact you for more info Release #: (IMPORTANT) OpenWindows1.0, X Window System V11 R4, EXPO Hardware: (IMPORTANT) SPARCstation1, Sun3/260, DECstation3100, etc O/S: (IMPORTANT) SunOS, Ultrix, UNIX-SysV, etc. O/S version: (IMPORTANT) SunOS4.0, Ultrix3.1 Server: (IMPORTANT) OpenWindows, DECWindows, MIT, NCD, etc Server version:(IMPORTANT) 1.0, 3.1, release 4, etc. WindowMmgr: (IMPORTANT) PSWM, OLWM, DWM, TWM, UWM, etc. Other: (optional) Any other useful information about the configuration of you server/client and the environment it is running under ============================End of bug report================================== Severity guidelines: 1) bug prevents execution of a critical function; no workaround or patch available 2) execution of critical function difficult, no workaround/patch execution of non-critical function impossible, no workaround/patch 3) execution of critical function difficult, workaround/patch available execution of non-critical function difficult, no workaround/patch 4) execution of critical function inconvenient, execution of non-critical function difficult, workaround/patch exists 5) execution of non-critical function inconvenient problem with non-supported software (demos, examples etc.) --------------------------------------------------------------------------- xview-3.2p1.4/doc/config/ 40755 1750 1750 0 6354605713 12350 5ustar mbmbxview-3.2p1.4/doc/config/usenixws/ 40755 1750 1750 0 6354605713 14235 5ustar mbmbxview-3.2p1.4/doc/config/usenixws/Imakefile100644 1750 1750 1216 6351032700 16126 0ustar mbmb#include /**/######################################################################### /**/# @(#)Imakefile 1.6 28 Jun 1993 SMI /**/# Imakefile for doc/config/usenixws files. TROFF= ptroff -t DOCFILES = paper.ms DOCUMENT = paper.ps ALLFILES = $(DOCFILES) all:: $(DOCUMENT) paper.lpt: $(DOCFILES) tbl $(DOCFILES) | nroff -ms >$@ paper.ps: $(DOCFILES) tbl $(DOCFILES) | $(TROFF) -ms >$@ paper.txt: $(DOCFILES) tbl $(DOCFILES) | nroff -ms | colcrt >$@ clean:: rm -f *~ \#* *.bak errs install:: $(MKDIRHIER) $(DESTDIR)$(DOC_DEST) InstallNonExecList($(DOCFILES),$(DOC_DEST)) PopulateSCCSTree(h,$(ALLFILES)) DependTarget() xview-3.2p1.4/doc/config/usenixws/paper.ms100644 1750 1750 54710 5413747551 16033 0ustar mbmb.\" macros ripped off from Rosenthal and Lemke's paper .\" refer -e -n -p vis.refs -s vis.nr | eqn | pic | psroff -ms .\.EQ .\delim $$ .\.EN .ds CH .de Ip .IP \(bu 3 .. .de Qp .nr PS -2 .nr VS -2 .QP .. .de Qe .nr PS +2 .nr VS +2 .. .de RQ .br .di .nr NF 0 .if \\n(dn-\\n(.t .nr NF 1 .if \\n(TC .nr NF 1 .if !\\n(NF .if \\n(TB .nr TB 0 .nf .rs .nr TC 5 .in 0 .ls 1 .if !\\n(TB \{\ . ev . br . ev 2 . KK .\} .ls .ce 0 .if !\\n(TB .rm KK .if \\n(TB .da KJ .if \\n(TB \!.KD \\n(dn .if \\n(TB .KK .if \\n(TB .di .nr TC \\n(TB .if \\n(KN .fi .in .ev .. .\" These macros should select a typewriter font if you have one. .de LS .LP .KS .LD .ft L .ta .6i 1.2i 1.8i 2.4i 3i 3.6i 4.2i .. .de LE .ft P .DE .KE .. .de Ls .nr PS -4 .nr VS -6 .LS .. .de Le .LE .nr PS +4 .nr VS +6 .LP .. .nr PO 1.25i .TL Configuration Management in the X Window System .AU Jim Fulton .AI X Consortium MIT Laboratory for Computer Science 545 Technology Square Cambridge, MA 02139 .AB The X Window System\(dg has become an industry standard for network window technology in part because of the portability of the sample implementation from MIT. Although many systems are designed to reuse source code across different platforms, X is unusual in its portability across software build environments. This paper describes several mechanisms used in the MIT release of the X Window System to obtain such flexibility, and summarizes some of the lessons learned in trying to support X on a number of different platforms. .AE .NH 1 Introduction .LP The X Window System\f(d is a portable, network transparent window system originally developed at MIT. It is intended for use on raster display devices ranging from simple monochrome frame buffers to deep, true color graphics processors. Because of its client/server architecture, the non-proprietary nature of its background, and the portability of the sample implementation from MIT, the X Window System has rapidly grown to become an industry standard. This portability is the result of several factors: a system architecture that isolates operating system and device-specifics at several levels; a slow, but machine-independent, graphics package that may be used for an initial port and to handle cases that the underlying graphics hardware does not support; and the use of a few, higher-level tools for managing the build process itself. .FS \(dg X Window System is a trademark of MIT; DECnet is a trademark of Digital Equipment Corporation; UNIX is a registered trademark of AT&T. .sp Copyright \(co\ 1989 by the Massachusetts Institute of Technology. .sp Permission to use, copy, modify, and distribute this document for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of M.I.T. not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. M.I.T. makes no representations about the suitability of the software described herein for any purpose. It is provided "as is" without express or implied warranty. .FE .NH 2 Summary of X Window System Architecture .LP The X Window System is the result of a combined effort between MIT Project Athena and the MIT Laboratory for Computer Science. Since its inception in 1984, X has been redesigned three times, culminating in Version 11 which has since become an industry standard (see [Scheifler 88] for a more detailed history). X uses the client/server model of limiting interactions with the physical display hardware to a single program (the \fIserver\fP) and providing a way for applications (the \fIclients\fP) to send messages (known as \fIrequests\fP) to the server to ask it to perform graphics operations on the client's behalf. These messages are sent along a reliable, sequenced, duplex byte stream using whatever underlying transport mechanisms the operating system provides. If connections using network virtual circuits (such as TCP/IP or DECnet) are supported, clients may be run on any remote machine (including ones of differing architectures) while still displaying on the local server. .LP The details of how the client establishes and maintains connections with the server are typically hidden in a subroutine package (known as a \fIlanguage binding\fP) which provides a function call interface to the X protocol. Higher level toolkits and user interface management systems are then built on top of the binding library, as shown in Figure 1 for the C programming language. Since only the underlying operating system networking interface of the binding (shown in \fIitalics\fP) need be changed when porting to a new platform, well-written applications can simply be recompiled. .sp 1 .DS C .TS box tab (/) ; cB s s s _ lB lB lB cBe | le le le _ s lB lB cB s | lB lB _ s s lB cB s s | lB _ s s s cB s s s _ lB lB _ cI s s s . application/// /// UIMS/// /// widgets/// /// toolkit/// /// Xlib/// /// os .TE .sp 1 \fBFigure 1:\fP architecture of a typical C language client program .DE .sp 1 .LP The server takes care of clipping of graphics output and routing keyboard and pointer input to the appropriate applications. Unlike many previous window systems, moving and resizing of windows are handled outside the server by special X applications called \fIwindow managers\fP. Different user interface policies can be selected simply by running a different window manager. .LP The MIT sample server can be divided into three sections: a device-independent layer called \fIdiX\fP for managing the various shared resources (windows, pixmaps, colormaps, fonts, cursors, etc.), an operating system layer called \fIos\fP for performing machine-specific operations (managing connections to clients, dealing with timers, reading color and font name databases, and memory allocation), and a device-specific layer called \fIddX\fP for drawing on the display and getting input from the keyboard and pointer. Only the \fIos\fP and \fIddX\fP portions of the server need to be changed when porting X to a new device. .LP Although this is still a substantial amount of work, a collection of pixel-oriented drawing packages that only require device-specific routines (refered to as \fIspans\fP) to read and write rows of pixels are provided to allow initial ports of X to be done in a very short time. A server developer can then concentrate on replacing those operations that can be implemented more efficiently by the hardware. Figure 2 shows the relative layering of the various packages within the sample server from MIT. The \fImi\fP library provides highly portable, machine-independent routines that may be used on a wide variety of displays. The \fImfb\fP and \fIcfb\fP libraries contain versions of the graphics routines for monochrome and color frame buffers, respectively. Finally, the \fIsnf\fP library can be used to read fonts stored in Server Natural Format. Typically, only the sections printed in \fIitalics\fP need be changed when moving to a new platform. .sp 1 .DS C .TS allbox tab (/) ; cB s s s s cI s s s cI cB cB cB cB cB cI s s s cB . diX ddX/os mi/mfb/cfb/snf/\^ spans/\^ .TE .sp 1 \fBFigure 2:\fP architecture of the MIT sample server .DE .sp 1 .LP By splitting out the device-specific code (by separating clients from servers and \fIdiX\fP from \fIddX\fP) and then providing portable utility libraries (\fImi\fP, \fImfb\fP, \fIcfb\fP, and \fIcfb\fP) that may be used to implement the non-portable portions of the system, much of the code can be reused across many platforms, ranging from personal computers to supercomputers. .NH 1 Configuring the Software Build Process .LP In practice, porting X to a new platform typically requires adding support in the operating system-specific networking routines and mixing together pieces of machine-independent and device-specific code to access the input and output hardware. Although this approach is very portable, it increases the complexity of the build process as different implementations require different subsets. One solution is to litter the source code with machine-specific compiler directives controlling which modules areas get built on a given platform. However, this rapidly leads to sources that are hard to understand and even harder to maintain. .LP A more serious problem with this approach is that it requires configuration information to be replicated in almost every module. In addition to being highly prone to error, modifying or adding a new configuration becomes extremely difficult. In contrast, collecting the various options and parameters in a single location makes it possible for someone to reconfigure the system without having to understand how all of the modules fit together. .LP Although sophisticated software management systems are very useful, they tend to be found only on specific platforms. Since the configuration system must be working before a build can begin, the MIT releases try to adhere to the following principles: .RS .5in .Ip Use existing tools to do the build (e.g. \fImake\fP) where possible; writing complicated new tools simply adds to the amount of software that has to be bootstrapped. .Ip Keep it simple. Every platform has a different set of extensions and bugs. Plan for the least common denominator by only using the core features of known tools; don't rely on vendor-specific features. .Ip Providing sample implementations of simple tools that are not available on all platforms (e.g. a BSD-compatible \fIinstall\fP script for System V) is very useful. .Ip Machine-dependencies should be centralized to make reconfiguration easy. .Ip Site-wide options (e.g. default parameters such as directory names, file permissions, and enabling particular features) should be stored in only one location. .Ip Rebuilding within the source tree without losing any of the configuration information must be simple. .Ip It should be possible to configure external software without requiring access to the source tree. .RE .LP One approach is to add certain programming constructs (particularly conditionals and iterators) to the utility used to actually build the software (usually \fImake\fP; see [Lord 88]). Although this an attractive solution, limits on time and personnel made implementing and maintaining such a system impractical for X. .LP The MIT releases of X employ a less ambitious approach that uses existing tools (particularly \fImake\fP and \fIcpp\fP). \fIMakefiles\fP are generated automatically by a small, very simple program named \fIimake\fP (written by Todd Brunhoff of Tektronix) that combines a template listing variables and rules that are common to all \fIMakefiles\fP, a machine- and a site-specific configuration file, a set of rule functions written as \fIcpp\fP macros, and simple specifications of targets and sources called \fIImakefiles\fP. Since the descriptions of the inputs and outputs of the build are separated from the commands that implement them, machine dependencies such as the following can be controlled from a single location: .RS .5in .Ip Some versions of \fImake\fP require that the variable SHELL to be set to the name of the shell that should be used to execute \fImake\fP commands. .Ip The names of various special \fImake\fP variables (e.g. MFLAGS vs. MAKEFLAGS) differ between versions. .Ip Special directives to control interaction with source code maintenance systems are required by some versions of \fImake\fP. .Ip Rules for building targets (e.g. \fIranlib\fP, lint options, executable shell scripts, selecting alternate compilers) differ among platforms. .Ip Some systems require special compiler options (e.g. increased internal table sizes, floating point options) for even simple programs. .Ip Some systems require extra libraries when linking programs. .Ip Not all systems need to compile all sources. .Ip Configuration parameters may need to be passed to some (such as -DDNETCONN to compile in DECnet support) or all (such as -DSYSV to select System V code) programs as preprocessor symbols. .Ip Almost all systems organize header files differently, making static dependencies in \fIMakefiles\fP impossible to generate. .RE .LP By using the C preprocessor, \fIimake\fP provides a familiar set of interfaces to conditionals, macros, and symbolic constants. Common operations, such as compiling programs, creating libraries, creating shell scripts, and managing subdirectories, can be described in a concise, simple way. Figure 3 shows the \fIImakefile\fP used to build a manual page browser named \fIxman\fP (written by Chris Peterson program of the MIT X Consortium, based on an implementation for X10 by Barry Shein): .sp 1 .KF .RS 1in .nf .ft L DEFINES = -DHELPFILE=\e"$(LIBDIR)$(PATHSEP)xman.help\e" LOCAL_LIBRARIES = $(XAWLIB) $(XMULIB) $(XTOOLLIB) $(XLIB) SRCS = ScrollByL.c handler.c man.c pages.c buttons.c help.c menu.c search.c \e globals.c main.c misc.c tkfuncs.c OBJS = ScrollByL.o handler.o man.o pages.o buttons.o help.o menu.o search.o \e globals.o main.o misc.o tkfuncs.o INCLUDES = -I$(TOOLKITSRC) -I$(TOP) ComplexProgramTarget (xman) InstallNonExec (xman.help, $(LIBDIR)) .ft P .fi .RE .DS C .sp 1 \fBFigure 3:\fP \fIImakefile\fP used by a typical client program .DE .KE .sp 1 .LP This application requires the name of the directory in which its help file is installed (which is a configuration parameter), several libraries, and various X header files. The macro \fIComplexProgramTarget\fP generates the appropriate rules to build the program, install it, compute dependencies, and remove old versions of the program and its object files. The \fIInstallNonExec\fP macro generates rules to install \fIxman\fP's help file with appropriate permissions. .NH 1 Generating Makefiles .LP Although \fIimake\fP is a fairly powerful tool, it is a very simple program. All of the real work is performed by the template, rule, and configuration files. The version currently used at MIT (which differs somewhat from the version supplied in the last release of X) uses symbolic constants for all configuration parameters so that they may be overridden or used by other parameters. General build issues (such as the command to execute to run the compiler) are isolated from X issues (such as where should application default files be installed) by splitting the template as shown in Figure 4. .KF .sp 1 .DS C .TS box tab (%) ; l s s l _ l l | l | l l _ l l _ l l | l | l l _ l l _ l l | l | l l _ l l _ l l | l | l l _ l l _ l l | l | l l _ l . Imake.tmpl % %#include "\fImachine\fP.cf"% % % %#include "site.def"% % % %#include "Project.tmpl"% % % %#include "Imake.rules"% % % %#include "./Imakefile"% % .TE .sp 1 \fBFigure 4:\fP structure of \fIimake\fP template used by X .DE .sp 1 .KE .LP This template instructs \fIimake\fP to perform the following steps when creating a \fIMakefile\fP: .RS .5in .IP 1. Using conditionals, \fIImake.tmpl\fP determines the machine for which the build is being configured and includes a machine-specific configuration file (usually named \fImachine\fP.cf). Using the C preprocessor to define various symbols, this configuration file sets the major and minor version numbers of the operating system, the names of any servers to build, and any special programs (such as alternate compilers) or options (usually to increase internal table sizes) that need to be used during the build. Defaults are provided for all parameters, so .cf files need only describe how this particular platform differs from ``generic'' UNIX System V or BSD UNIX. Unlike previous versions of the \fIimake\fP configuration files, when new parameters are added, only the systems which are effected by them need to be updated. .IP 2. Next, a site-specific file (named \fIsite.def\fP) is included so that parameters from the .cf files may be overridden or defaults for other options provided. This is typically used by a site administrator to set the names of the various directories into which the software should be installed. Again, all of the standard \fIcpp\fP constructs may be used. .IP 3. A project-specific file (named \fIProject.tmpl\fP) is included to set various parameters used by the particular software package being configured. By separating the project parameters (such as directories, options, etc.) from build parameters (such as compilers, utilities, etc.), the master template and the .cf files can be shared among various development efforts. .IP 4. A file containing the set of \fIcpp\fP rules (named \fIImake.rules\fP) is included. This is where the various macro functions used in the master template and the per-directory description files (named \fIImakefile\fP) are defined. These rules typically make very heavy use of the \fImake\fP variables defined in \fIImake.tmpl\fP so that a build's configuration may be changed without having to edit this file. .IP 5. The \fIImakefile\fP describing the input files and output targets for the current directory is included. This file is supplied by the programmer instead of a \fIMakefile\fP. The functions that it invokes are translated by \fIcpp\fP into series of \fImake\fP rules and targets. .IP 6. Finally, \fImake\fP rules for recreating the \fIMakefile\fP and managing subdirectories are appended, and the result is written out as the new \fIMakefile\fP. .RE .LP \fIImake\fP, along with a separate tool (named \fImakedepend\fP, also written by Brunhoff) that generates \fIMakefile\fP dependencies between object files and the source files used to build them, allows properly configured \fIMakefiles\fP to be regenerated quickly and correctly. By isolating the machine- and site-specifics from the programmer, \fIimake\fP is much like a well-developed text formatter: both allow the writer to concentrate on the content, rather than the production, of a document. .NH 1 How X uses \fIimake\fP .LP Development of X at MIT is currently done on more than half a dozen different platforms, each of which is running a different operating system. A common source pool is shared across those machines that support symbolic links and NFS by creating trees of links pointing back to the master sources (similar to the object trees of [Harrison 88]). Editing and source code control is done in the master sources and builds are done in the link trees. .LP .ne 4 A full build is done by creating a fresh link tree and invoking a simple, stub top-level \fIMakefile\fP which: .RS .5in .IP 1. compiles \fIimake\fP. .IP 2. builds the real top-level \fIMakefile\fP. .IP 3. builds the rest of the \fIMakefiles\fP using the new top-level \fIMakefile\fP. .IP 4. removes any object files left over from the previous build. .IP 5. builds the header file tree, and computes and appends the list of dependencies between object files and sources to the appropriate \fIMakefiles\fP. .IP 6. and finally, compiles all of the sources. .RE .LP If the build completes successfully, programs, libraries, data files, and manual pages may then be installed. By keeping object files out of the master source tree, backups and releases can be done easily and efficiently. By substituting local copies of particular files for the appropriate links, developers can work without disturbing others. .NH 1 Limitations .LP Although the system described here is very useful, it isn't perfect. Differences between utilities on various systems places a restriction on how well existing tools can be used. One of the reasons why \fIimake\fP is a program instead of a trivial invocation of the C preprocessor is that some \fIcpp\fP's collapse tabs into spaces while others do not. Since \fImake\fP uses tabs to separate commands from targets, \fIimake\fP must sometimes reformat the output from \fIcpp\fP so that a valid \fIMakefile\fP is generated. .LP Since \fIcpp\fP only provides global scoping of symbolic constants, parameters are visible to the whole configuration system. For larger projects, this approach will probably prove unwieldy both to the people trying to maintain them and to the preprocessors that keep the entire symbol table in memory. .LP The macro facility provided by \fIcpp\fP is convenient because it is available on every platform and it is familar to most people. However, a better language with real programming constructs might provide a better interface. The notions of describing one platform in terms of another and providing private configuration parameters map intriguingly well into the models used in object management systems. .NH 1 Summary and Observations .LP The sample implementation of the X Window System from MIT takes advantage of a system architecture that goes to great lengths to isolate device-dependencies. By selectively using portable versions of the device-specific functions, a developer moving X to a new platform can quickly get an initial port up and running very quickly. .LP To manage the various combinations of modules and to cope with the differing requirements of every platform and site, X uses a utility named \fIimake\fP to separate the description of sources and targets from the details of how the software is actually built. Using as few external tools as possible, this mechanism allows support for new platforms to be added with relatively little effort. .LP Although the approaches taken by MIT will not work for everyone, several of its experiences may be useful in other projects: .RS .5in .Ip Even if portability isn't a goal now, it probably will become one sooner than expected. .Ip Just as in other areas, it frequently pays to periodically stand back from a problem and see whether or not a simple tool will help. With luck and the right amount of abstracting it may even solve several problems at once. .Ip Be wary of anything that requires manual intervention. .Ip And finally, there is no such thing as portable software, only software that has been ported. .RE .NH 1 References .LP .IP "\[Harrison 88\]" .br ``Rtools: Tools for Software Management in a Distributed Computing Environment,'' Helen E. Harrison, Stephen P. Schaefer, Terry S. Yoo, \fIProceedings of the Usenix Association Summer Conference\fP, June 1988, 85-94. .IP "\[Lord 88\]" .br ``Tools and Policies for the Hierarchical Management of Source Code Development,'' Thomas Lord, \fIProceedings of the Usenix Association Summer Conference\fP, June 1988, 95-106. .IP "\[Scheifler 88\]" .br \fIX Window System: C Library and Protocol Reference\fP, Robert Scheifler, James Gettys, and Ron Newman, Digital Press, Bedford, MA, 1988. .\ .\XXX - Xos.h: .\ o 12 character file names .\ o isolate system calls .\ o avoid tricky coding .\ o index vs. strchr .\ o bcopy .\ o test on as wide a range of systems as possible .\ xview-3.2p1.4/doc/config/Imakefile100644 1750 1750 577 5413747552 14252 0ustar mbmb#include /**/########################################################################## /**/# @(#)Imakefile 1.1 89/07/21 SMI /**/# Imakefile for doc/config directory. #define IHaveSubdirs #define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)' SUBDIRS = usenixws MakeSubdirs($(SUBDIRS)) CleanSubdirs($(SUBDIRS)) InstallSubdirs($(SUBDIRS)) PopulateSubdirs($(SUBDIRS)) xview-3.2p1.4/doc/README100644 1750 1750 611 5413747556 12045 0ustar mbmb/**/# @(#)README 1.9 28 Jun 1993 SMI README for doc directory. xview-info: General info about XView, bug reporting, help, etc. olgx_api.*: OLGX API bugs: Directory containing bug lists config: Directory containing info on imake. sel_api.txt: Rough overview of the new selection pkg api. dnd_api.txt: Rough overview of the new drag and drop pkg api. whats_new.ps: What's new in XView 3.2 xview-3.2p1.4/doc/Imakefile100644 1750 1750 1157 6351032732 13005 0ustar mbmb#include /**/########################################################################## /**/# @(#)Imakefile 1.13 28 Jun 1993 SMI /**/# Imakefile for doc directory. #define IHaveSubdirs #define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)' SUBDIRS = config bugs MakeSubdirs($(SUBDIRS)) PopulateSubdirs($(SUBDIRS)) DOCFILES = xview-info olgx_api.txt olgx_api.ps sel_api.txt dnd_api.txt whats_new.ps ALLFILES = $(DOCFILES) install:: $(MKDIRHIER) $(DESTDIR)$(DOC_DEST) InstallNonExecList($(DOCFILES),$(DOC_DEST)) PopulateSCCSTree(h,$(ALLFILES) README) depend:: echo "no dependencies in $(CURRENT_DIR)." xview-3.2p1.4/doc/olgx_api.ps100644 1750 1750 423117 5413747555 13424 0ustar mbmb%! %%BoundingBox: (atend) %%Pages: (atend) %%DocumentFonts: (atend) %%EndComments % % FrameMaker PostScript Prolog 3.0, for use with FrameMaker 3.0 % Copyright (c) 1986,87,89,90,91 by Frame Technology Corporation. % All rights reserved. % % Known Problems: % Due to bugs in Transcript, the 'PS-Adobe-' is omitted from line 1 /FMversion (3.0) def % Set up Color vs. Black-and-White /FMPrintInColor systemdict /colorimage known systemdict /currentcolortransfer known or def % Uncomment this line to force b&w on color printer % /FMPrintInColor false def /FrameDict 195 dict def systemdict /errordict known not {/errordict 10 dict def errordict /rangecheck {stop} put} if % The readline in 23.0 doesn't recognize cr's as nl's on AppleTalk FrameDict /tmprangecheck errordict /rangecheck get put errordict /rangecheck {FrameDict /bug true put} put FrameDict /bug false put mark % Some PS machines read past the CR, so keep the following 3 lines together! currentfile 5 string readline 00 0000000000 cleartomark errordict /rangecheck FrameDict /tmprangecheck get put FrameDict /bug get { /readline { /gstring exch def /gfile exch def /gindex 0 def { gfile read pop dup 10 eq {exit} if dup 13 eq {exit} if gstring exch gindex exch put /gindex gindex 1 add def } loop pop gstring 0 gindex getinterval true } def } if /FMVERSION { FMversion ne { /Times-Roman findfont 18 scalefont setfont 100 100 moveto (FrameMaker version does not match postscript_prolog!) dup = show showpage } if } def /FMLOCAL { FrameDict begin 0 def end } def /gstring FMLOCAL /gfile FMLOCAL /gindex FMLOCAL /orgxfer FMLOCAL /orgproc FMLOCAL /organgle FMLOCAL /orgfreq FMLOCAL /yscale FMLOCAL /xscale FMLOCAL /manualfeed FMLOCAL /paperheight FMLOCAL /paperwidth FMLOCAL /FMDOCUMENT { array /FMfonts exch def /#copies exch def FrameDict begin 0 ne dup {setmanualfeed} if /manualfeed exch def /paperheight exch def /paperwidth exch def /yscale exch def /xscale exch def currenttransfer cvlit /orgxfer exch def currentscreen cvlit /orgproc exch def /organgle exch def /orgfreq exch def setpapername manualfeed {true} {papersize} ifelse {manualpapersize} {false} ifelse {desperatepapersize} if end } def /pagesave FMLOCAL /orgmatrix FMLOCAL /landscape FMLOCAL /FMBEGINPAGE { FrameDict begin /pagesave save def 3.86 setmiterlimit /landscape exch 0 ne def landscape { 90 rotate 0 exch neg translate pop } {pop pop} ifelse xscale yscale scale /orgmatrix matrix def gsave } def /FMENDPAGE { grestore pagesave restore end showpage } def /FMFONTDEFINE { FrameDict begin findfont ReEncode 1 index exch definefont FMfonts 3 1 roll put end } def /FMFILLS { FrameDict begin array /fillvals exch def end } def /FMFILL { FrameDict begin fillvals 3 1 roll put end } def /FMNORMALIZEGRAPHICS { newpath 0.0 0.0 moveto 1 setlinewidth 0 setlinecap 0 0 0 sethsbcolor 0 setgray } bind def /fx FMLOCAL /fy FMLOCAL /fh FMLOCAL /fw FMLOCAL /llx FMLOCAL /lly FMLOCAL /urx FMLOCAL /ury FMLOCAL /FMBEGINEPSF { end /FMEPSF save def /showpage {} def FMNORMALIZEGRAPHICS [/fy /fx /fh /fw /ury /urx /lly /llx] {exch def} forall fx fy translate rotate fw urx llx sub div fh ury lly sub div scale llx neg lly neg translate } bind def /FMENDEPSF { FMEPSF restore FrameDict begin } bind def FrameDict begin /setmanualfeed { %%BeginFeature *ManualFeed True statusdict /manualfeed true put %%EndFeature } def /max {2 copy lt {exch} if pop} bind def /min {2 copy gt {exch} if pop} bind def /inch {72 mul} def /pagedimen { paperheight sub abs 16 lt exch paperwidth sub abs 16 lt and {/papername exch def} {pop} ifelse } def /papersizedict FMLOCAL /setpapername { /papersizedict 14 dict def papersizedict begin /papername /unknown def /Letter 8.5 inch 11.0 inch pagedimen /LetterSmall 7.68 inch 10.16 inch pagedimen /Tabloid 11.0 inch 17.0 inch pagedimen /Ledger 17.0 inch 11.0 inch pagedimen /Legal 8.5 inch 14.0 inch pagedimen /Statement 5.5 inch 8.5 inch pagedimen /Executive 7.5 inch 10.0 inch pagedimen /A3 11.69 inch 16.5 inch pagedimen /A4 8.26 inch 11.69 inch pagedimen /A4Small 7.47 inch 10.85 inch pagedimen /B4 10.125 inch 14.33 inch pagedimen /B5 7.16 inch 10.125 inch pagedimen end } def /papersize { papersizedict begin /Letter {lettertray letter} def /LetterSmall {lettertray lettersmall} def /Tabloid {11x17tray 11x17} def /Ledger {ledgertray ledger} def /Legal {legaltray legal} def /Statement {statementtray statement} def /Executive {executivetray executive} def /A3 {a3tray a3} def /A4 {a4tray a4} def /A4Small {a4tray a4small} def /B4 {b4tray b4} def /B5 {b5tray b5} def /unknown {unknown} def papersizedict dup papername known {papername} {/unknown} ifelse get end /FMdicttop countdictstack 1 add def statusdict begin stopped end countdictstack -1 FMdicttop {pop end} for } def /manualpapersize { papersizedict begin /Letter {letter} def /LetterSmall {lettersmall} def /Tabloid {11x17} def /Ledger {ledger} def /Legal {legal} def /Statement {statement} def /Executive {executive} def /A3 {a3} def /A4 {a4} def /A4Small {a4small} def /B4 {b4} def /B5 {b5} def /unknown {unknown} def papersizedict dup papername known {papername} {/unknown} ifelse get end stopped } def /desperatepapersize { statusdict /setpageparams known { paperwidth paperheight 0 1 statusdict begin {setpageparams} stopped pop end } if } def /savematrix { orgmatrix currentmatrix pop } bind def /restorematrix { orgmatrix setmatrix } bind def /dmatrix matrix def /dpi 72 0 dmatrix defaultmatrix dtransform dup mul exch dup mul add sqrt def /freq dpi 18.75 div 8 div round dup 0 eq {pop 1} if 8 mul dpi exch div def /sangle 1 0 dmatrix defaultmatrix dtransform exch atan def /DiacriticEncoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /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 /bracketleft /backslash /bracketright /asciicircum /underscore /grave /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 /braceleft /bar /braceright /asciitilde /.notdef /Adieresis /Aring /Ccedilla /Eacute /Ntilde /Odieresis /Udieresis /aacute /agrave /acircumflex /adieresis /atilde /aring /ccedilla /eacute /egrave /ecircumflex /edieresis /iacute /igrave /icircumflex /idieresis /ntilde /oacute /ograve /ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex /udieresis /dagger /.notdef /cent /sterling /section /bullet /paragraph /germandbls /registered /copyright /trademark /acute /dieresis /.notdef /AE /Oslash /.notdef /.notdef /.notdef /.notdef /yen /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /ordfeminine /ordmasculine /.notdef /ae /oslash /questiondown /exclamdown /logicalnot /.notdef /florin /.notdef /.notdef /guillemotleft /guillemotright /ellipsis /.notdef /Agrave /Atilde /Otilde /OE /oe /endash /emdash /quotedblleft /quotedblright /quoteleft /quoteright /.notdef /.notdef /ydieresis /Ydieresis /fraction /currency /guilsinglleft /guilsinglright /fi /fl /daggerdbl /periodcentered /quotesinglbase /quotedblbase /perthousand /Acircumflex /Ecircumflex /Aacute /Edieresis /Egrave /Iacute /Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex /.notdef /Ograve /Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde /macron /breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron ] def /ReEncode { dup length dict begin { 1 index /FID ne {def} {pop pop} ifelse } forall 0 eq {/Encoding DiacriticEncoding def} if currentdict end } bind def /graymode true def /bwidth FMLOCAL /bpside FMLOCAL /bstring FMLOCAL /onbits FMLOCAL /offbits FMLOCAL /xindex FMLOCAL /yindex FMLOCAL /x FMLOCAL /y FMLOCAL /setpattern { /bwidth exch def /bpside exch def /bstring exch def /onbits 0 def /offbits 0 def freq sangle landscape {90 add} if {/y exch def /x exch def /xindex x 1 add 2 div bpside mul cvi def /yindex y 1 add 2 div bpside mul cvi def bstring yindex bwidth mul xindex 8 idiv add get 1 7 xindex 8 mod sub bitshift and 0 ne {/onbits onbits 1 add def 1} {/offbits offbits 1 add def 0} ifelse } setscreen {} settransfer offbits offbits onbits add div FMsetgray /graymode false def } bind def /grayness { FMsetgray graymode not { /graymode true def orgxfer cvx settransfer orgfreq organgle orgproc cvx setscreen } if } bind def /HUE FMLOCAL /SAT FMLOCAL /BRIGHT FMLOCAL /Colors FMLOCAL FMPrintInColor { /HUE 0 def /SAT 0 def /BRIGHT 0 def % array of arrays Hue and Sat values for the separations [HUE BRIGHT] /Colors [[0 0 ] % black [0 0 ] % white [0.00 1.0] % red [0.37 1.0] % green [0.60 1.0] % blue [0.50 1.0] % cyan [0.83 1.0] % magenta [0.16 1.0] % comment / yellow ] def /BEGINBITMAPCOLOR { BITMAPCOLOR} def /BEGINBITMAPCOLORc { BITMAPCOLORc} def /BEGINBITMAPTRUECOLOR { BITMAPTRUECOLOR } def /BEGINBITMAPCOLORc { BITMAPTRUECOLORc } def /K { Colors exch get dup 0 get /HUE exch store 1 get /BRIGHT exch store HUE 0 eq BRIGHT 0 eq and {1.0 SAT sub setgray} {HUE SAT BRIGHT sethsbcolor} ifelse } def /FMsetgray { /SAT exch 1.0 exch sub store HUE 0 eq BRIGHT 0 eq and {1.0 SAT sub setgray} {HUE SAT BRIGHT sethsbcolor} ifelse } bind def } { /BEGINBITMAPCOLOR { BITMAPGRAY} def /BEGINBITMAPCOLORc { BITMAPGRAYc} def /BEGINBITMAPTRUECOLOR { BITMAPTRUEGRAY } def /BEGINBITMAPTRUECOLORc { BITMAPTRUEGRAYc } def /FMsetgray {setgray} bind def /K { pop } def } ifelse /normalize { transform round exch round exch itransform } bind def /dnormalize { dtransform round exch round exch idtransform } bind def /lnormalize { 0 dtransform exch cvi 2 idiv 2 mul 1 add exch idtransform pop } bind def /H { lnormalize setlinewidth } bind def /Z { setlinecap } bind def /fillvals FMLOCAL /X { fillvals exch get dup type /stringtype eq {8 1 setpattern} {grayness} ifelse } bind def /V { gsave eofill grestore } bind def /N { stroke } bind def /M {newpath moveto} bind def /E {lineto} bind def /D {curveto} bind def /O {closepath} bind def /n FMLOCAL /L { /n exch def newpath normalize moveto 2 1 n {pop normalize lineto} for } bind def /Y { L closepath } bind def /x1 FMLOCAL /x2 FMLOCAL /y1 FMLOCAL /y2 FMLOCAL /rad FMLOCAL /R { /y2 exch def /x2 exch def /y1 exch def /x1 exch def x1 y1 x2 y1 x2 y2 x1 y2 4 Y } bind def /RR { /rad exch def normalize /y2 exch def /x2 exch def normalize /y1 exch def /x1 exch def newpath x1 y1 rad add moveto x1 y2 x2 y2 rad arcto x2 y2 x2 y1 rad arcto x2 y1 x1 y1 rad arcto x1 y1 x1 y2 rad arcto closepath 16 {pop} repeat } bind def /C { grestore gsave R clip } bind def /FMpointsize FMLOCAL /F { FMfonts exch get FMpointsize scalefont setfont } bind def /Q { /FMpointsize exch def F } bind def /T { moveto show } bind def /RF { rotate 0 ne {-1 1 scale} if } bind def /TF { gsave moveto RF show grestore } bind def /P { moveto 0 32 3 2 roll widthshow } bind def /PF { gsave moveto RF 0 32 3 2 roll widthshow grestore } bind def /S { moveto 0 exch ashow } bind def /SF { gsave moveto RF 0 exch ashow grestore } bind def /B { moveto 0 32 4 2 roll 0 exch awidthshow } bind def /BF { gsave moveto RF 0 32 4 2 roll 0 exch awidthshow grestore } bind def /G { gsave newpath normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath fill grestore } bind def /A { gsave savematrix newpath 2 index 2 div add exch 3 index 2 div sub exch normalize 2 index 2 div sub exch 3 index 2 div add exch translate scale 0.0 0.0 1.0 5 3 roll arc restorematrix stroke grestore } bind def /x FMLOCAL /y FMLOCAL /w FMLOCAL /h FMLOCAL /xx FMLOCAL /yy FMLOCAL /ww FMLOCAL /hh FMLOCAL /FMsaveobject FMLOCAL /FMoptop FMLOCAL /FMdicttop FMLOCAL /BEGINPRINTCODE { /FMdicttop countdictstack 1 add def /FMoptop count 4 sub def /FMsaveobject save def userdict begin /showpage {} def FMNORMALIZEGRAPHICS 3 index neg 3 index neg translate } bind def /ENDPRINTCODE { count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for FMsaveobject restore } bind def /gn { 0 { 46 mul cf read pop 32 sub dup 46 lt {exit} if 46 sub add } loop add } bind def /str FMLOCAL /cfs { /str sl string def 0 1 sl 1 sub {str exch val put} for str def } bind def /ic [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 0 {0 hx} {1 hx} {2 hx} {3 hx} {4 hx} {5 hx} {6 hx} {7 hx} {8 hx} {9 hx} {10 hx} {11 hx} {12 hx} {13 hx} {14 hx} {15 hx} {16 hx} {17 hx} {18 hx} {19 hx} {gn hx} {0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12} {13} {14} {15} {16} {17} {18} {19} {gn} {0 wh} {1 wh} {2 wh} {3 wh} {4 wh} {5 wh} {6 wh} {7 wh} {8 wh} {9 wh} {10 wh} {11 wh} {12 wh} {13 wh} {14 wh} {gn wh} {0 bl} {1 bl} {2 bl} {3 bl} {4 bl} {5 bl} {6 bl} {7 bl} {8 bl} {9 bl} {10 bl} {11 bl} {12 bl} {13 bl} {14 bl} {gn bl} {0 fl} {1 fl} {2 fl} {3 fl} {4 fl} {5 fl} {6 fl} {7 fl} {8 fl} {9 fl} {10 fl} {11 fl} {12 fl} {13 fl} {14 fl} {gn fl} ] def /sl FMLOCAL /val FMLOCAL /ws FMLOCAL /im FMLOCAL /bs FMLOCAL /cs FMLOCAL /len FMLOCAL /pos FMLOCAL /ms { /sl exch def /val 255 def /ws cfs /im cfs /val 0 def /bs cfs /cs cfs } bind def 400 ms /ip { is 0 cf cs readline pop { ic exch get exec add } forall pop } bind def /wh { /len exch def /pos exch def ws 0 len getinterval im pos len getinterval copy pop pos len } bind def /bl { /len exch def /pos exch def bs 0 len getinterval im pos len getinterval copy pop pos len } bind def /s1 1 string def /fl { /len exch def /pos exch def /val cf s1 readhexstring pop 0 get def pos 1 pos len add 1 sub {im exch val put} for pos len } bind def /hx { 3 copy getinterval cf exch readhexstring pop pop } bind def /h FMLOCAL /w FMLOCAL /d FMLOCAL /lb FMLOCAL /bitmapsave FMLOCAL /is FMLOCAL /cf FMLOCAL /wbytes { dup 8 eq {pop} {1 eq {7 add 8 idiv} {3 add 4 idiv} ifelse} ifelse } bind def /BEGINBITMAPBWc { 1 {} COMMONBITMAPc } bind def /BEGINBITMAPGRAYc { 8 {} COMMONBITMAPc } bind def /BEGINBITMAP2BITc { 2 {} COMMONBITMAPc } bind def /COMMONBITMAPc { /r exch def /d exch def gsave translate rotate scale /h exch def /w exch def /lb w d wbytes def sl lb lt {lb ms} if /bitmapsave save def r /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def w h d [w 0 0 h neg 0 h] {ip} image bitmapsave restore grestore } bind def /BEGINBITMAPBW { 1 {} COMMONBITMAP } bind def /BEGINBITMAPGRAY { 8 {} COMMONBITMAP } bind def /BEGINBITMAP2BIT { 2 {} COMMONBITMAP } bind def /COMMONBITMAP { /r exch def /d exch def gsave translate rotate scale /h exch def /w exch def /bitmapsave save def r /is w d wbytes string def /cf currentfile def w h d [w 0 0 h neg 0 h] {cf is readhexstring pop} image bitmapsave restore grestore } bind def /proc1 FMLOCAL /proc2 FMLOCAL /newproc FMLOCAL /Fmcc { /proc2 exch cvlit def /proc1 exch cvlit def /newproc proc1 length proc2 length add array def newproc 0 proc1 putinterval newproc proc1 length proc2 putinterval newproc cvx } bind def /ngrayt 256 array def /nredt 256 array def /nbluet 256 array def /ngreent 256 array def /gryt FMLOCAL /blut FMLOCAL /grnt FMLOCAL /redt FMLOCAL /indx FMLOCAL /cynu FMLOCAL /magu FMLOCAL /yelu FMLOCAL /k FMLOCAL /u FMLOCAL /colorsetup { currentcolortransfer /gryt exch def /blut exch def /grnt exch def /redt exch def 0 1 255 { /indx exch def /cynu 1 red indx get 255 div sub def /magu 1 green indx get 255 div sub def /yelu 1 blue indx get 255 div sub def /k cynu magu min yelu min def /u k currentundercolorremoval exec def nredt indx 1 0 cynu u sub max sub redt exec put ngreent indx 1 0 magu u sub max sub grnt exec put nbluet indx 1 0 yelu u sub max sub blut exec put ngrayt indx 1 k currentblackgeneration exec sub gryt exec put } for {255 mul cvi nredt exch get} {255 mul cvi ngreent exch get} {255 mul cvi nbluet exch get} {255 mul cvi ngrayt exch get} setcolortransfer {pop 0} setundercolorremoval {} setblackgeneration } bind def /tran FMLOCAL /fakecolorsetup { /tran 256 string def 0 1 255 {/indx exch def tran indx red indx get 77 mul green indx get 151 mul blue indx get 28 mul add add 256 idiv put} for currenttransfer {255 mul cvi tran exch get 255.0 div} exch Fmcc settransfer } bind def /BITMAPCOLOR { /d 8 def gsave translate rotate scale /h exch def /w exch def /bitmapsave save def colorsetup /is w d wbytes string def /cf currentfile def w h d [w 0 0 h neg 0 h] {cf is readhexstring pop} {is} {is} true 3 colorimage bitmapsave restore grestore } bind def /BITMAPCOLORc { /d 8 def gsave translate rotate scale /h exch def /w exch def /lb w d wbytes def sl lb lt {lb ms} if /bitmapsave save def colorsetup /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def w h d [w 0 0 h neg 0 h] {ip} {is} {is} true 3 colorimage bitmapsave restore grestore } bind def /BITMAPTRUECOLORc { gsave translate rotate scale /h exch def /w exch def /bitmapsave save def /is w string def ws 0 w getinterval is copy pop /cf currentfile def w h 8 [w 0 0 h neg 0 h] {ip} {gip} {bip} true 3 colorimage bitmapsave restore grestore } bind def /BITMAPTRUECOLOR { gsave translate rotate scale /h exch def /w exch def /bitmapsave save def /is w string def /gis w string def /bis w string def /cf currentfile def w h 8 [w 0 0 h neg 0 h] { cf is readhexstring pop } { cf gis readhexstring pop } { cf bis readhexstring pop } true 3 colorimage bitmapsave restore grestore } bind def /BITMAPTRUEGRAYc { gsave translate rotate scale /h exch def /w exch def /bitmapsave save def /is w string def ws 0 w getinterval is copy pop /cf currentfile def w h 8 [w 0 0 h neg 0 h] {ip gip bip w gray} image bitmapsave restore grestore } bind def /ww FMLOCAL /r FMLOCAL /g FMLOCAL /b FMLOCAL /i FMLOCAL /gray { /ww exch def /b exch def /g exch def /r exch def 0 1 ww 1 sub { /i exch def r i get .299 mul g i get .587 mul b i get .114 mul add add r i 3 -1 roll floor cvi put } for r } bind def /BITMAPTRUEGRAY { gsave translate rotate scale /h exch def /w exch def /bitmapsave save def /is w string def /gis w string def /bis w string def /cf currentfile def w h 8 [w 0 0 h neg 0 h] { cf is readhexstring pop cf gis readhexstring pop cf bis readhexstring pop w gray} image bitmapsave restore grestore } bind def /BITMAPGRAY { 8 {fakecolorsetup} COMMONBITMAP } bind def /BITMAPGRAYc { 8 {fakecolorsetup} COMMONBITMAPc } bind def /ENDBITMAP { } bind def end /ALDsave FMLOCAL /ALDmatrix matrix def ALDmatrix currentmatrix pop /StartALD { /ALDsave save def savematrix ALDmatrix setmatrix } bind def /InALD { restorematrix } bind def /DoneALD { ALDsave restore } bind def %%EndProlog %%BeginSetup (3.0) FMVERSION 1 1 612 792 0 1 10 FMDOCUMENT 0 0 /Times-Roman FMFONTDEFINE 1 0 /Times-BoldItalic FMFONTDEFINE 2 0 /Helvetica FMFONTDEFINE 3 0 /Times-Bold FMFONTDEFINE 4 0 /Courier FMFONTDEFINE 32 FMFILLS 0 0 FMFILL 1 .1 FMFILL 2 .3 FMFILL 3 .5 FMFILL 4 .7 FMFILL 5 .9 FMFILL 6 .97 FMFILL 7 1 FMFILL 8 <0f1e3c78f0e1c387> FMFILL 9 <0f87c3e1f0783c1e> FMFILL 10 FMFILL 11 FMFILL 12 <8142241818244281> FMFILL 13 <03060c183060c081> FMFILL 14 <8040201008040201> FMFILL 16 1 FMFILL 17 .9 FMFILL 18 .7 FMFILL 19 .5 FMFILL 20 .3 FMFILL 21 .1 FMFILL 22 0.03 FMFILL 23 0 FMFILL 24 FMFILL 25 FMFILL 26 <3333333333333333> FMFILL 27 <0000ffff0000ffff> FMFILL 28 <7ebddbe7e7dbbd7e> FMFILL 29 FMFILL 30 <7fbfdfeff7fbfdfe> FMFILL %%EndSetup %%Page: "14" 14 %%BeginPaperSize: Letter %%EndPaperSize 612 792 0 FMBEGINPAGE 108 740.81 540 756 R 7 X 0 K V 108 54 540 54 2 L V 0.25 H 2 Z 0 X N 108 36 540 47.95 R 7 X V 0 8 Q 0 X (OLGX \321 Application Programmer Interface) 108 42.62 T (October 4, 1991) 298.13 42.62 T (14) 532 42.62 T 108 63 540 720 R 7 X V 1 12 Q 0 X (PushPinOut_W) 108 712 T (idth\050) 185.54 712 T 2 11 Q (ginfo) 208.87 712 T 1 12 Q (\051) 232.68 712 T 0 F ( returns the width of the PushPin in its Out state from the spec-) 236.68 712 T (i\336ed) 108 698 T 2 11 Q ( ginfo) 129.32 698 T 0 12 Q ( struct.) 156.2 698 T 1 F (ResizeArm_Height\050) 108 678 T 2 11 Q (ginfo) 205.29 678 T 1 12 Q (\051) 229.11 678 T 0 F ( returns the height of the resize arm from the speci\336ed) 233.1 678 T 2 11 Q (ginfo) 495.9 678 T 0 12 Q (struct \050see \336gure\051.) 108 664 T 1 F -0.41 (ResizeArm_W) 108 644 P -0.41 (idth\050) 177.53 644 P 2 11 Q -0.41 (ginfo) 200.85 644 P 1 12 Q -0.41 (\051) 224.67 644 P 0 F -0.41 ( returns the width of the resize arm from the speci\336ed) 228.66 644 P 2 11 Q -0.41 (ginfo) 484.35 644 P 0 12 Q -0.41 ( struct) 508.16 644 P (\050see \336gure\051.) 108 630 T 1 F (ScrollbarElevator_Height\050) 108 517 T 2 11 Q (ginfo) 239.94 517 T 1 12 Q (\051) 263.76 517 T 0 F ( returns the scrollbar elevator height from the speci\336ed) 267.75 517 T 2 11 Q (ginfo) 108 503 T 0 12 Q ( struct.) 131.82 503 T 1 F (ScrollbarElevator_W) 108 483 T (idth\050) 212.18 483 T 2 11 Q (ginfo) 235.5 483 T 1 12 Q (\051) 259.32 483 T 0 F ( returns the scrollbar elevator width from the speci\336ed) 263.31 483 T 2 11 Q (ginfo) 108 469 T 0 12 Q ( struct.) 131.82 469 T 1 F (SliderEndCap_W) 108 449 T (idth\050) 194.2 449 T 2 11 Q (ginfo) 217.52 449 T 1 12 Q (\051) 241.34 449 T 0 F ( returns the width of the slider endcap of the speci\336ed) 245.34 449 T 2 11 Q ( ginfo) 503.15 449 T 0 12 Q (struct. Both vertical and horizontal sliders have the same endcap width.) 108 435 T 1 F (SliderEndCap_Height\050) 108 415 T 2 11 Q (ginfo) 221.96 415 T 1 12 Q (\051) 245.78 415 T 0 F ( returns the height of the slider endcap from the speci\336ed) 249.77 415 T 2 11 Q (ginfo) 108 401 T 0 12 Q ( struct. Both vertical and horizontal sliders have the same endcap height.) 131.82 401 T 1 F (T) 108 381 T (extFont_Struct\050) 114.22 381 T 2 11 Q (ginfo) 192.87 381 T 1 12 Q (\051) 216.68 381 T 0 F ( returns the) 220.68 381 T 2 11 Q (XFontstruct) 277.63 381 T 0 12 Q ( of the text font from the speci\336ed) 333.81 381 T 2 11 Q (ginfo) 500.36 381 T 0 12 Q (struct.) 108 367 T 1 F (T) 108 347 T (extScrollButton_Height\050) 114.22 347 T 2 11 Q (ginfo) 236.19 347 T 1 12 Q (\051) 260 347 T 0 F ( returns the height of the T) 264 347 T (ext scrolling button from the) 391.07 347 T (speci\336ed) 108 333 T 2 11 Q ( ginfo) 150.64 333 T 0 12 Q ( struct.) 177.51 333 T 1 F (T) 108 313 T (extScrollButton_W) 114.22 313 T (idth\050) 208.42 313 T 2 11 Q (ginfo) 231.75 313 T 1 12 Q (\051) 255.57 313 T 0 F ( returns the width of the T) 259.56 313 T (ext scrolling button from the) 383.97 313 T (speci\336ed) 108 299 T 2 11 Q ( ginfo) 150.64 299 T 0 12 Q ( struct.) 177.51 299 T 1 F -0.29 (V) 108 279 P -0.29 (ertsb_Endbox_Height\050) 114.67 279 P 2 11 Q -0.3 (ginfo) 227.29 279 P 1 12 Q -0.29 (\051) 251.1 279 P 0 F -0.29 ( returns the height of the end anchor box of a vertical scroll-) 255.1 279 P (bar from the speci\336ed) 108 265 T 2 11 Q (ginfo) 215.92 265 T 0 12 Q ( struct.) 239.74 265 T 1 F (V) 108 245 T (ertsb_Endbox_W) 114.67 245 T (idth\050) 199.52 245 T 2 11 Q (ginfo) 222.85 245 T 1 12 Q (\051) 246.67 245 T 0 F ( returns the width of the end anchor box of a vertical scroll-) 250.66 245 T (bar from the speci\336ed) 108 231 T 2 11 Q (ginfo) 215.92 231 T 0 12 Q ( struct.) 239.74 231 T 108 63 540 720 C 122.19 533 525.81 626 C 122.19 533 525.81 626 R 7 X 0 K V 264.36 617.67 264.36 577.67 284.36 577.67 284.36 595.67 301.36 595.67 301.36 617.67 6 Y 0.5 H 0 Z 0 X N 0 12 Q (ResizeArm_W) 335.35 543 T (idth) 406.15 543 T 264.85 577 264.85 566 2 L 2 Z 11 X N 284.19 577 284.19 566 2 L N 265.19 567 283.19 567 2 L 10 X N 285.96 559.05 276.18 566 288.16 565.28 287.06 562.16 4 Y 0 X V 333.19 546 287.07 562.16 2 L N 301.19 596 316.19 596 2 L 10 X N 301.19 617 317.19 617 2 L N 316.19 616 316.19 596 2 L 11 X N 328.72 603.69 317.19 607 328.72 610.31 328.72 607 4 Y 0 X V 328.72 607 358.19 607 2 L N (ResizeArm_Height) 363.19 602 T 108 63 540 720 C 0 0 612 792 C FMENDPAGE %%EndPage: "14" 13 %%Page: "13" 13 612 792 0 FMBEGINPAGE 108 740.81 540 756 R 7 X 0 K V 108 54 540 54 2 L V 0.25 H 2 Z 0 X N 108 36 540 47.95 R 7 X V 0 8 Q 0 X (OLGX \321 Application Programmer Interface) 108 42.62 T (October 4, 1991) 298.13 42.62 T (13) 532 42.62 T 108 63 540 720 R 7 X V 1 12 Q 0 X -0.17 (Ascent_of_GlyphFont\050) 108 712 P 2 11 Q -0.17 (ginfo) 221.28 712 P 1 12 Q -0.17 (\051) 245.1 712 P 0 F -0.17 ( returns the ascent of the glyph font associated with the spec-) 249.09 712 P (i\336ed) 108 698 T 2 11 Q (ginfo) 132.32 698 T 0 12 Q ( struct.) 156.14 698 T 1 F -0.31 (Ascent_of_T) 108 678 P -0.31 (extFont\050) 169.53 678 P 2 11 Q -0.32 (ginfo) 212.18 678 P 1 12 Q -0.31 (\051) 235.99 678 P 0 F -0.31 ( returns the ascent of the text font associated with the speci\336ed) 239.99 678 P 2 11 Q (ginfo) 108 664 T 0 12 Q ( struct.) 131.82 664 T 1 F (Button_Height\050) 108 644 T 2 11 Q (ginfo) 185.98 644 T 1 12 Q (\051) 209.8 644 T 0 F ( returns the height of the button from the speci\336ed) 213.79 644 T 2 11 Q ( ginfo) 454.63 644 T 0 12 Q ( struct.) 481.51 644 T 1 F (ButtonEndcap_W) 108 624 T (idth\050) 196.2 624 T 2 11 Q (ginfo) 219.53 624 T 1 12 Q (\051) 243.35 624 T 0 F ( returns the width of the button endcap from the speci\336ed) 247.34 624 T 2 11 Q (ginfo) 108 610 T 0 12 Q ( struct.) 131.82 610 T 1 F (CheckBox_Height\050) 108 590 T 2 11 Q (ginfo) 203.29 590 T 1 12 Q (\051) 227.11 590 T 0 F ( returns the height of the checkbox from the speci\336ed) 231.1 590 T 2 11 Q ( ginfo) 487.24 590 T 0 12 Q (struct.) 108 576 T 1 F (CheckBox_W) 108 556 T (idth\050) 175.52 556 T 2 11 Q (ginfo) 198.85 556 T 1 12 Q (\051) 222.67 556 T 0 F ( returns the width of the checkbox from the speci\336ed) 226.66 556 T 2 11 Q ( ginfo) 480.14 556 T 0 12 Q ( struct.) 507.02 556 T 1 F (Dimension\050) 108 536 T 2 11 Q (ginfo) 165.98 536 T 1 12 Q (\051) 189.79 536 T 0 F (returns 1, if 3D is set in the speci\336ed) 196.79 536 T 2 11 Q (ginfo) 376 536 T 0 12 Q ( struct, else returns 0.) 399.82 536 T 1 F (Descent_of_GlyphFont\050) 108 516 T 2 11 Q (ginfo) 227.26 516 T 1 12 Q (\051) 251.08 516 T 0 F ( returns the descent of the glyph font associated with the) 255.07 516 T (speci\336ed) 108 502 T 2 11 Q (ginfo) 153.63 502 T 0 12 Q ( struct.) 177.45 502 T 1 F (Descent_of_T) 108 482 T (extFont\050) 175.51 482 T 2 11 Q (ginfo) 218.16 482 T 1 12 Q (\051) 241.98 482 T 0 F ( returns the descent of the text font associated with the speci-) 245.97 482 T (\336ed) 108 468 T 2 11 Q (ginfo) 128.99 468 T 0 12 Q ( struct.) 152.81 468 T 1 F (Gauge_EndCapHeight\050) 108 448 T 2 11 Q (ginfo) 225.28 448 T 1 12 Q (\051) 249.1 448 T 0 F ( returns the height of the gauge endcap from the speci\336ed) 253.1 448 T 2 11 Q (ginfo) 108 434 T 0 12 Q ( struct.) 131.82 434 T 1 F -0.31 (Gauge_EndCapOf) 108 414 P -0.31 (fset\050) 199.74 414 P 2 11 Q -0.32 (ginfo) 221.05 414 P 1 12 Q -0.31 (\051) 244.87 414 P 0 F -0.31 ( returns the pixel of) 248.86 414 P -0.31 (fset of the value indicator from the left or) 341.32 414 P (top endcap of the gauge from the speci\336ed) 108 400 T 2 11 Q ( ginfo) 312.18 400 T 0 12 Q ( struct.) 339.05 400 T 1 F -0.29 (Gauge_EndCapW) 108 380 P -0.29 (idth\050) 197.52 380 P 2 11 Q -0.29 (ginfo) 220.85 380 P 1 12 Q -0.29 (\051) 244.66 380 P 0 F -0.29 ( returns the width of the gauge endcap from the speci\336ed) 248.66 380 P 2 11 Q -0.29 ( gin-) 518.92 380 P (fo) 108 366 T 0 12 Q ( struct.) 117.16 366 T 1 F -0.25 (HorizSliderControl_W) 108 346 P -0.25 (idth\050) 219.53 346 P 2 11 Q -0.25 (ginfo) 242.85 346 P 0 12 Q -0.25 ( returns the width of the Horizontal slider control section) 266.67 346 P (of the) 108 332 T 2 11 Q ( ginfo) 135.65 332 T 0 12 Q ( struct. This corresponds to the V) 162.52 332 T (ertical Slider Control Height.) 320.75 332 T 1 F (HorizSliderControl_Height\050) 108 312 T 2 11 Q (ginfo) 247.29 312 T 1 12 Q (\051) 271.11 312 T 0 F ( returns the height of the Horizontal slider control sec-) 275.1 312 T (tion of the speci\336ed) 108 298 T 2 11 Q ( ginfo) 202.94 298 T 0 12 Q ( struct. This corresponds to the V) 229.81 298 T (ertical slider control W) 388.04 298 T (idth.) 498.48 298 T 1 F -0.54 (MenuMark_Height\050) 108 278 P 2 11 Q -0.55 (ginfo) 208.62 278 P 1 12 Q -0.54 (\051) 232.44 278 P 0 F -0.54 ( returns the height of the MenuMark used in MenuButtons from) 236.44 278 P (the speci\336ed) 108 264 T 2 11 Q ( ginfo) 168.29 264 T 0 12 Q ( struct.) 195.16 264 T 1 F (MenuMark_W) 108 244 T (idth\050) 180.86 244 T 2 11 Q (ginfo) 204.19 244 T 1 12 Q (\051) 228.01 244 T 0 F ( returns the width of the MenuMark used in MenuButtons from) 232 244 T (the speci\336ed) 108 230 T 2 11 Q ( ginfo) 168.29 230 T 0 12 Q ( struct.) 195.16 230 T 1 F (NumScrollButton_Height\050) 108 210 T 2 11 Q (ginfo) 239.96 210 T 1 12 Q (\051) 263.78 210 T 0 F ( returns the height of the Number scrolling button from) 267.78 210 T (the speci\336ed) 108 196 T 2 11 Q ( ginfo) 168.29 196 T 0 12 Q ( struct.) 195.16 196 T 1 F (NumScrollButton_W) 108 176 T (idth\050) 212.2 176 T 2 11 Q (ginfo) 235.53 176 T 1 12 Q (\051) 259.34 176 T 0 F ( returns the width of the Number scrolling button from) 263.34 176 T (the speci\336ed) 108 162 T 2 11 Q ( ginfo) 168.29 162 T 0 12 Q ( struct.) 195.16 162 T 1 F (Pointsize_Glyph\050) 108 142 T 2 11 Q (ginfo) 192.62 142 T 1 12 Q (\051) 216.44 142 T 0 F ( returns the point size of the glyph font associated with the speci-) 220.44 142 T (\336ed) 108 128 T 2 11 Q (ginfo) 128.99 128 T 0 12 Q ( struct.) 152.81 128 T 1 F (PushPinOut_Height\050) 108 108 T 2 11 Q (ginfo) 213.3 108 T 1 12 Q (\051) 237.12 108 T 0 F ( returns the height of the PushPin in its Out state from the) 241.11 108 T (speci\336ed) 108 94 T 2 11 Q ( ginfo) 150.64 94 T 0 12 Q ( struct.) 177.51 94 T FMENDPAGE %%EndPage: "13" 12 %%Page: "12" 12 612 792 0 FMBEGINPAGE 108 740.81 540 756 R 7 X 0 K V 108 54 540 54 2 L V 0.25 H 2 Z 0 X N 108 36 540 47.95 R 7 X V 0 8 Q 0 X (OLGX \321 Application Programmer Interface) 108 42.62 T (October 4, 1991) 298.13 42.62 T (12) 532 42.62 T 108 63 540 720 R 7 X V 0 12 Q 0 X (OLGX_ERASE) 108 712 T (Erases the underlying image before drawing the) 297 712 T (button at location) 297 698 T 2 11 Q (x,y) 383.95 698 T 0 12 Q (.) 397.21 698 T (OLGX_SCROLL_FOR) 108 678 T (W) 221.95 678 T (ARD) 231.94 678 T (W) 297 678 T (ill be drawn with the right box invoked) 307.84 678 T (indicat-) 498.39 678 T (ing to the user that he is scrolling forward) 297 664 T (OLGX_SCROLL_BACKW) 108 644 T (ARD) 242.59 644 T -0.3 (W) 297 644 P -0.3 (ill be drawn with the left box invoked) 307.84 644 P -0.3 (indicating) 489.33 644 P (to the user that he is scrolling back.) 297 630 T (OLGX_SCROLL_NO_FOR) 108 610 T (W) 245.26 610 T (ARD) 255.26 610 T (W) 297 610 T (ill be drawn with the forward menu mark box) 307.84 610 T (dimmed.) 297 596 T (OLGX_SCROLL_NO_BACKW) 108 576 T (ARD) 265.9 576 T (W) 297 576 T (ill be drawn with the backward menu mark box) 307.84 576 T (dimmed.) 297 562 T (OLGX_INACTIVE) 108 542 T (The button is inactive. It will be drawn dimmed.) 297 542 T 1 F (olgx_draw_gauge\050) 108 502 T 2 11 Q (ginfo,win,x,y) 199.95 502 T (,width,oldval,newval,state) 259.59 502 T 1 12 Q (\051) 384.15 502 T 2 11 Q (Graphics_info * ginfo;) 144 482.67 T (Window win;) 144 469.67 T (int x,y;) 144 456.67 T (int width;) 144 443.67 T (int newval,oldval;) 144 430.67 T (int state;) 144 417.67 T 1 12 Q (olgx_draw_gauge\050\051) 108 392 T 0 F ( renders a gauge. It is drawn within window) 203.95 392 T 2 11 Q (win) 417.79 392 T 0 12 Q ( at location) 434.27 392 T 2 11 Q (x,y) 490.57 392 T 0 12 Q (.) 503.83 392 T 2 11 Q (width) 509.82 392 T 0 12 Q -0.02 (represents the width of the gauge in pixels, including the endcaps.) 108 378 P 2 11 Q -0.02 (oldval) 427.23 378 P 0 12 Q -0.02 ( and) 455.92 378 P 2 11 Q -0.02 (newval) 479.2 378 P 0 12 Q -0.02 ( give) 513.39 378 P (the old and new values of the gauge in pixels with the origin at either the top \050vertical) 108 364 T -0.2 (gauges\051 or the left \050horizontal gauges\051 of the gauge. Finally) 108 350 P -0.2 (,) 390.57 350 P 2 11 Q -0.2 (state) 396.37 350 P 0 12 Q -0.2 ( gives information about) 420.19 350 P (the current state of the gauge. It consists of the bitwise-OR of any of the following \337ags:) 108 336 T (OLGX_VER) 108 316 T (TICAL) 170.57 316 T (V) 234 316 T (ertical gauge) 241.33 316 T (OLGX_HORIZONT) 108 296 T (AL) 207.63 296 T (Horizontal gauge) 234 296 T (OLGX_UPDA) 108 276 T (TE) 178.62 276 T (Update the gauge to newval instead rendering the whole gauge.) 234 276 T (If OLGX_UPDA) 108 256 T (TE is not speci\336ed, the parameter) 189.6 256 T 2 11 Q (oldval) 353.82 256 T 0 12 Q ( will not be used.) 382.51 256 T 3 16 Q (5.0 OLGX MACROS:) 108 215.33 T 0 12 Q -0.04 (The following macros are provided for convenience and because the) 108 188 P 2 11 Q -0.04 (ginfo) 438.67 188 P 0 12 Q -0.04 ( struct is intend-) 462.49 188 P (ed to be opaque; clients shouldn\325) 108 174 T (t access its members directly) 266.01 174 T (. The reason for it being) 403.13 174 T (opaque is that OLGX\325) 108 160 T (s authors want to retain the option to change the members in the) 214.26 160 T 2 11 Q (ginfo) 108 146 T 0 12 Q ( struct without making existing clients obsolete.) 131.82 146 T 1 F (Abbrev_MenuButton_Height\050) 108 126 T 2 11 Q (ginfo) 256.61 126 T 1 12 Q (\051) 280.43 126 T 0 F ( returns the height of the abbreviated MenuButton) 284.42 126 T (from the speci\336ed) 108 112 T 2 11 Q ( ginfo) 194.6 112 T 0 12 Q ( struct.) 221.48 112 T 1 F (Abbrev_MenuButton_W) 108 92 T (idth\050) 228.85 92 T 2 11 Q (ginfo) 252.17 92 T 1 12 Q (\051) 275.99 92 T 0 F ( returns the width of the abbreviated MenuButton) 279.98 92 T (from the speci\336ed) 108 78 T 2 11 Q ( ginfo) 194.6 78 T 0 12 Q ( struct.) 221.48 78 T FMENDPAGE %%EndPage: "12" 11 %%Page: "11" 11 612 792 0 FMBEGINPAGE 108 740.81 540 756 R 7 X 0 K V 108 54 540 54 2 L V 0.25 H 2 Z 0 X N 108 36 540 47.95 R 7 X V 0 8 Q 0 X (OLGX \321 Application Programmer Interface) 108 42.62 T (October 4, 1991) 298.13 42.62 T (11) 532 42.62 T 108 63 540 720 R 7 X V 2 11 Q 0 X (int x,y;) 144 712.67 T (int max_width;) 144 699.67 T (int state;) 144 686.67 T 0 12 Q (This function renders) 108 661 T 2 11 Q (string) 213.59 661 T 0 12 Q ( in) 240.45 661 T 2 11 Q (win) 255.78 661 T 0 12 Q ( at) 272.26 661 T 2 11 Q (x,y) 286.92 661 T 0 12 Q (.) 300.18 661 T 2 11 Q (max_width) 306.17 661 T 0 12 Q ( de\336nes, in pixels, the point at which) 358.68 661 T 2 11 Q (string) 108 647 T 0 12 Q ( will be truncated. That is, if the length of) 134.86 647 T 2 11 Q (string) 337.39 647 T 0 12 Q ( exceeds) 364.26 647 T 2 11 Q (max_width) 408.21 647 T 0 12 Q (, it will be trun-) 460.71 647 T (cated. If) 108 633 T 2 11 Q (max_width) 150.29 633 T 0 12 Q ( is 0, the string will not be truncated. By default it is drawn in the nor-) 202.79 633 T (mal uninvoked mode. Finally) 108 619 T 2 11 Q (state) 252.26 619 T 0 12 Q ( is a bitwise-OR of any of the following \337ags.) 276.08 619 T (OLGX_INVOKED) 108 599 T (In 2-D, text will appear in reverse video:) 225 599 T (OLGX_NORMAL) 108 546 T (In 2-D, text will appear in normal video. 3-D, whether normal or) 225 546 T (invoked, will always appear in normal video.) 225 532 T 1 F (olgx_draw_textscroll_button\050) 108 492 T 2 11 Q (ginfo,win,x,y) 253.28 492 T (,state) 312.91 492 T 1 12 Q (\051) 339.78 492 T 2 11 Q (Graphics_info * ginfo;) 144 472.67 T (Window win;) 144 459.67 T (int x,y;) 144 446.67 T (int state;) 144 433.67 T 1 12 Q (olgx_draw_textscroll_button\050\051) 108 408 T 0 F ( renders a text scrolling button. It is drawn within window) 257.27 408 T 2 11 Q -0.19 (win) 108 394 P 0 12 Q -0.19 ( at location) 124.48 394 P 2 11 Q -0.19 (x,y) 180.22 394 P 0 12 Q -0.19 (. By default it is drawn in the normal uninvoked mode. Finally) 193.48 394 P 2 11 Q -0.19 (state) 494.42 394 P 0 12 Q -0.19 ( is a) 518.23 394 P (bitwise-OR of any of the following \337ags.) 108 380 T (OLGX_ERASE) 108 354 T (Erases the underlying image before drawing the but-) 279 354 T (ton at location) 279 340 T 2 11 Q (x,y) 350.62 340 T 0 12 Q (.) 363.89 340 T (OLGX_INVOKED) 108 320 T (W) 279 320 T (ill be drawn in Invoked state.) 289.84 320 T (OLGX_SCROLL_FOR) 108 300 T (W) 221.95 300 T (ARD) 231.94 300 T (W) 279 300 T (ill drawn with the inside menu mark pointing for-) 289.84 300 T (wards.) 279 286 T (OLGX_SCROLL_BACKW) 108 266 T (ARD) 242.59 266 T (W) 279 266 T (ill be drawn with the inside menu mark pointing) 289.84 266 T (backwards.) 279 252 T (OLGX_INACTIVE) 108 232 T (The button is inactive. It will be drawn dimmed.) 279 232 T 1 F (olgx_draw_numscroll_button\050) 108 192 T 2 11 Q (ginfo,win,x,y) 257.95 192 T (,state) 317.59 192 T 1 12 Q (\051) 344.46 192 T 2 11 Q (Graphics_info * ginfo;) 144 172.67 T (Window win;) 144 159.67 T (int x,y;) 144 146.67 T (int state;) 144 133.67 T 1 12 Q (olgx_draw_numscroll_button\050\051) 108 108 T 0 F ( renders a numeric scrolling button. It is drawn within) 261.95 108 T (window) 108 94 T 2 11 Q (win) 149.64 94 T 0 12 Q ( at location) 166.12 94 T 2 11 Q (x,y) 222.42 94 T 0 12 Q (. By default it is drawn in the normal uninvoked mode. Finally) 235.68 94 T 2 11 Q (state) 108 80 T 0 12 Q ( is a bitwise-OR of any of the following \337ags.) 131.82 80 T 108 63 540 720 C 434 562 540 595 C 434 562 540 595 R 7 X 0 K V 444.34 568 534.34 589 R 0 X V 0.5 H 0 Z N 4 12 Q 7 X 1 K (Like this.) 453.03 575.77 T 108 63 540 720 C 0 0 612 792 C FMENDPAGE %%EndPage: "11" 10 %%Page: "10" 10 612 792 0 FMBEGINPAGE 108 740.81 540 756 R 7 X 0 K V 108 54 540 54 2 L V 0.25 H 2 Z 0 X N 108 36 540 47.95 R 7 X V 0 8 Q 0 X (OLGX \321 Application Programmer Interface) 108 42.62 T (October 4, 1991) 298.13 42.62 T (10) 532 42.62 T 108 63 540 720 R 7 X V 0 12 Q 0 X (Finally) 108 712 T 2 11 Q (state) 144.99 712 T 0 12 Q ( can have any of the following \337ags bitwise-ORed.) 168.81 712 T (OLGX_VER) 108 686 T (TICAL) 170.57 686 T (The elevator is vertical.) 306 686 T (OLGX_HORIZONT) 108 666 T (AL) 207.63 666 T (The elevator is horizontal.) 306 666 T (OLGX_NORMAL) 108 646 T (The elevator is normal.) 306 646 T (OLGX_ABBREV) 108 626 T (Abbreviated scrollbar elevator) 306 626 T (OLGX_SCROLL_ABSOLUTE) 108 606 T (The elevator middle box is drawn in invoked) 306 606 T (fashion.) 306 592 T (OLGX_SCROLL_BACKW) 108 572 T (ARD) 242.59 572 T (The elevator backward box is invoked to indi-) 306 572 T (cate that the elevator is moving backwards.) 306 558 T (OLGX_SCROLL_FOR) 108 538 T (W) 221.95 538 T (ARD) 231.94 538 T (The elevator forward box is invoked to indicate) 306 538 T (that the elevator is moving forwards.) 306 524 T (OLGX_SCROLL_NO_BACKW) 108 504 T (ARD) 265.9 504 T (The elevator backward box is dimmed, to indi-) 306 504 T (cate that the elevator cannot move backward) 306 490 T (anymore.) 306 476 T (OLGX_SCROLL_NO_FOR) 108 456 T (W) 245.26 456 T (ARD) 255.26 456 T -0.1 (The elevator forward box is dimmed, to indicate) 306 456 P (that the elevator cannot move forward anymore.) 306 442 T (OLGX_INACTIVE) 108 422 T -0.26 (The whole elevator is drawn dimmed, indicating) 306 422 P (that the elevator is inactive.) 306 408 T (OLGX_UPDA) 108 388 T (TE) 178.62 388 T -0.27 (Update the scrollbar elevator to its new location.) 306 388 P (If OLGX_UPDA) 306 374 T (TE is not speci\336ed the parame-) 387.6 374 T (ters) 306 360 T 2 11 Q (old_elev_pos) 326.32 360 T 0 12 Q ( will not be used.) 391.05 360 T (OLGX_ERASE) 108 340 T (Erases the underlying image before drawing the) 306 340 T (elevator at location elev_pos.) 306 326 T (Use) 108 306 T 1 F (olgx_draw_box) 129.65 306 T 0 F ( for drawing the end anchors.) 205.61 306 T (void) 108 266 T 1 F (olgx_draw_text_ledge\050) 108 252 T 2 11 Q (ginfo, win, x, y) 219.93 252 T (, width) 288.73 252 T 1 12 Q (\051) 320.48 252 T 2 11 Q (Graphics_info *ginfo;) 144 232.67 T (Window win;) 144 219.67 T (int x, y) 144 206.67 T (, width;) 174.94 206.67 T 0 12 Q -0.02 (This function draws a 2D or 3D ledge for text items. The ledge is drawn with its left edge) 108 181 P (at \050) 108 167 T 2 11 Q (x,y) 123.65 167 T 0 12 Q (\051 within) 137.69 167 T 2 11 Q (win) 178.34 167 T 0 12 Q (, and) 194.82 167 T 2 11 Q (width) 221.13 167 T 0 12 Q ( pixels wide.) 246.77 167 T (void) 108 127 T 1 F (olgx_draw_text\050) 108 113 T 2 11 Q (ginfo,win,string,x,y) 187.96 113 T (,max_width,state) 277.51 113 T 1 12 Q (\051) 359.94 113 T 2 11 Q (Graphics_info * ginfo;) 144 93.67 T (Window win;) 144 80.67 T (char * string;) 144 67.67 T FMENDPAGE %%EndPage: "10" 9 %%Page: "9" 9 612 792 0 FMBEGINPAGE 108 740.81 540 756 R 7 X 0 K V 108 54 540 54 2 L V 0.25 H 2 Z 0 X N 108 36 540 47.95 R 7 X V 0 8 Q 0 X (OLGX \321 Application Programmer Interface) 108 42.62 T (October 4, 1991) 298.13 42.62 T (9) 536 42.62 T 108 63 540 720 R 7 X V 1 12 Q 0 X (olgx_draw_check_box\050\051) 108 712 T 0 F ( renders a check box in a speci\336ed state. The upper left-hand cor-) 226.59 712 T -0.13 (ner of the check box will be at location \050) 108 698 P 2 11 Q -0.13 (x, y) 301.03 698 P 0 12 Q -0.13 (\051 within window) 317.99 698 P 2 11 Q -0.13 (win. state) 399.89 698 P 0 12 Q -0.13 ( must be one of the) 446.17 698 P (following:) 108 684 T (OLGX_NORMAL) 108 664 T (The check box is unchecked.) 243 664 T (OLGX_INVOKED) 108 644 T (The check box is recessed. O) 243 644 T 0 11 Q (PEN) 382.88 644 T 0 12 Q ( L) 403.63 644 T 0 11 Q (OOK) 413.96 644 T 0 12 Q ( speci\336es that this is) 437.76 644 T (the state of the check box while the mouse button is down) 243 630 T (over the check box.) 243 616 T (OLGX_INACTIVE) 108 596 T (The check box is drawn in inactive state.) 243 596 T (OLGX_CHECKED) 108 576 T (The check box is checked.) 243 576 T (void) 108 536 T 1 F (olgx_draw_scrollbar\050) 108 522 T 2 11 Q (ginfo,win,x,y) 213.95 522 T (,length,elev_pos,old_elev_pos,prop_pos,prop_length,) 273.58 522 T (state) 108 508 T 1 12 Q (\051) 131.82 508 T 2 11 Q (Graphics_info * ginfo;) 144 488.67 T (Window win;) 144 475.67 T (int x,y;) 144 462.67 T (int length;) 144 449.67 T (int elev_pos, old_elev_pos;) 144 436.67 T (int prop_pos, prop_length;) 144 423.67 T (int state;) 144 410.67 T 1 12 Q (olgx_draw_scrollbar\050\051) 108 385 T 0 F ( renders or updates a whole scrollbar) 217.94 385 T (, including the elevator) 393.98 385 T (, cable) 504.09 385 T (and proportion indicator) 108 371 T (.) 223.93 371 T 2 11 Q (win, x, y) 229.93 371 T (, elev_pos, length, prop_pos, prop_length) 268.8 371 T 0 12 Q ( are shown in) 470.94 371 T (the following \336gure.) 108 357 T 2 11 Q (old_elev_pos) 108 101 T 0 12 Q ( is the previous position of the elevator when it is in motion. This is used) 172.73 101 T (only when the \337ag OLGX_UPDA) 108 87 T (TE is set.) 270.56 87 T 108 63 540 720 C 109.41 123 538.59 353 C 109.41 123 538.59 353 R 7 X 0 K V 0 X %%BeginBinary: 62327 638 382 306.24 183.36 0 112.18 128 BEGINBITMAPBW 3FE0000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000FFB BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFB 3FE8000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000002FFB 3808000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000203B 3BFFC001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB BBFFBFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB 3BFFBFFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB 3BFFBFFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFE7FFFFF9FFFFF99FCFFFE7FFFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB 3BFFB80E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFE77FFFF9FFFFF99FCFFFE7FFFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB 83FFBBEE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFE67FFFF9FFFFF39FFFFFCFFFFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 1FFFBDDE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 0E4CF04187879FFFFF393CE4FCE1C1C9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 1FFFBDDE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE 6622666733339FFFFE789CE279CC9FC4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 1FFFBEBE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE 7E66666733339F80FC799CE671CF8FCCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 9FFFBEBE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE 7E66666733339FFFFCF99CE673CFC3CCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 1FFFBF7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE 7E66666733339FFFF9F99CE667CFF1CCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 1FFFBFFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE 7666646733339FFFF9F99CE667CEF9CCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 1FFFBFFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 0E66727187879FFFF3F83CE64FE183CCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 9FFFC0007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFF3FFFFFFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 1FFFE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 1800000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000033 9800000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000033 1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 1800000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000018000F3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFEF3 9BFEFFF8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFEF3 1BFEFFFEFBF1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFBFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFEF3 1BFEFFFEFBEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFBFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFEF3 1BFE9E3EF058FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9E3FE9E3C707FFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFBB778D3F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFD8000F3 9BFE6DDEFBD6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7DFFE6DDBBBFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFBB777CDEFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFFFFF3 1BFEEFDEFBD6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBFFEEDDBBBFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFBB76FDDEFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFFFFF3 1BFEEE1EFBD4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBFFEEDDBBBFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFBB76FDDEFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFEEDDEFBDB7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBFFEEDDBBBFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFBB76FDDDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFEEDDEFBEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDF9EEDDBBBFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFB3677DDDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFEEE2EFC71FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE39E1E3C7C7FFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFCB978C3BFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3FFFFFE3FFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFEFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFBFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFC7FFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFEFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFBFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBBFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFE9E3C3070FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9E3FFBE3E38FBFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFBB1E9DD63FFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFE6DDBFBEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7DFFFBDDDF77BFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFBBDE6D55BFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFEEDDBFBEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBFFFBDDBFF7BFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFBBDEED55BFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFEEDDC7BF1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBFFFBDDBF87BFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFD7DEED553FFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFEEDDFBBFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBFFFBDDBF77BFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFD7DEEEB6DFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFEEDDFBBFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDF9FBDDDF77BFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFEFDEEEBBFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFEEE387C61FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE39FBE3E38BBFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFEFDE1EBC7FFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFEFFFFFFFFFFFFFFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFE3FFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFEFFFFFBFFFFFFFFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFBFFE FFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFEFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFA BFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFE9E3C3070FFC786EC7BBFFFFFFFFFFFFFFFFFFFFFFFFE9E3FF0C7A787BE3D 7FFFFFFFFFFFFFFFFFFFFFFFFFFBB071D3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFE6DDBFBEFFFBB76EF7BBFFFFFFFFFFFFFFFFFFFFFFFFE7DFFEFF79B77BDDA BFFFFFFFFFFFFFFFFFFFFFFFFFFBBBEECDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFEEDDBFBEFFFBB76EF7BBFFFFFFFFFFFFFFFFFFFFFFFFEFBFFEFF7BB77BDDE FFFFFFFFFFFFFFFFFFFFFFFFFFFD7BFEDDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFEEDDC7BF1FF8376EF7D7FFFFFFFFFFFFFFFFFFFFFFFFEFBFFF1F7BB77BC1F FFFFFFFFFFFFFFFFFFFFFFFFFFFEFBF0DDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFEEDDFBBFEFFBF76EF7D7FFFFFFFFFFFFFFFFFFFFFFFFEFBFFFEF7BB67BDFF FFFFFFFFFFFFFFFFFFFFFFFFFFFD7BEEDDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFEEDDFBBFEE7BB66CF7EFFFFFFFFFFFFFFFFFFFFFFFFFEFDF9FEF7BB97BDDF FFFFFFFFFFFFFFFFFFFFFFFFFFFBBBEEDDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFEEE387C61E7C7972F7EFFFFFFFFFFFFFFFFFFFFFFFFFEFE39E1F7BBF7BE3F FFFFFFFFFFFFFFFFFFFFFFFFFFFBBC7143FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFFFFFFFFFFFFFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFFFFFFFFFFFFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8FFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFEFC7EFFEFF1FFFFFC7FFFE3FFFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFEFF7EFFEFF7EF8F1F7FFFFBFFFFF7FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFEFF7FFFEFF7CF76EF7FFFFBFFFFEFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFE9F78F4EEF7AF77EF7CFFFBE1FFEF1C1E3FFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFE6F7EF36DF7EF77EF7CFFFBDFFFDEEEFDFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFEEF7EF76BF7EF779F7FFFFBDFFFDEEEFBFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFEEF7EF763F7EF77EF7FFFFBE3FFDE0EFBFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFEEF7EF76DF7EF77EF7FFFFBFDFFBEFEFBFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFEEF7EF76EF7EF76EF7CFFFBFDFFBEEEFDFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFE1F7EF76F77EF8F1F7CFFFBC3FF7F1F1E3FFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFFFFFFFFFF1FFFFFC7FFFFFFFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFFFFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E3FFFFFE3DFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFFFDFF8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7DFFFFFFDFDFFE3F FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFF8FFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFFFFDFF77FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFDFFFFDDF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFF77FFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFF1E1AAC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC783C71D3831F0B1F FFFFFFFFFFFFFFFFFFFFFFFFFFFD386ED5A6C7FFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFEEDD82B7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7DFBEECDDFDEEADF FFFFFFFFFFFFFFFFFFFFFFFFFFFCF76EC19AB7FFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFEDDAAB7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7DF7EEDDDFDEEADF FFFFFFFFFFFFFFFFFFFFFFFFFFFDF76ED5BAB7FFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFF0DDAAA7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7DF7EEDDDFDEEA9F FFFFFFFFFFFFFFFFFFFFFFFFFFFDF76ED5BAA7FFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFEEDDAADBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7DF7EEDDDFDECB6F FFFFFFFFFFFFFFFFFFFFFFFFFFFDF76ED5BADBFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFEED9AB7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7DFBEEDDDFDF2DFF FFFFFFFFFFFFFFFFFFFFFFFFFFFDF66CD5BB7FFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFF165AB8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7DFC71DDDFDFEE3F FFFFFFFFFFFFFFFFFFFFFFFFFFFDF972D5878FFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1FFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFFC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFDFFFFFFFE 3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFFFF7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFF7FDFFFFFFFD FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFBF1FFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FDFFFFFFFD FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFBEEFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFF1F78F8F0E3C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7A78E0E1FFC71D38 3FFFFFFFFFFFFFFFFFFFFFFFFFFD38E9E3C7058FFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFEEF7EF76FDDBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79B777DDFFBEECDD FFFFFFFFFFFFFFFFFFFFFFFFFFFCF766DDBBBD6FFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFFEF7EFF6FDDBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BB777DDFF7EEDDD FFFFFFFFFFFFFFFFFFFFFFFFFFFDF76EDDBBBD6FFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFF0F7EF871C1C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BB077DDFF7EEDDD FFFFFFFFFFFFFFFFFFFFFFFFFFFDF06EDDBBBD4FFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFEEF7EF77EDFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BB7F7DDFF7EEDDD FFFFFFFFFFFFFFFFFFFFFFFFFFFDF7EEDDBBBDB7FFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFEEF7EF77EDDFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BB777D9CFBEEDDD FFFFFFFFFFFFFFFFFFFFFFFFFFFDF76EDDBBBEFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFF177EF8A1E387FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BB8F8E5CFC71DDD FFFFFFFFFFFFFFFFFFFFFFFFFFFDF8E1E3C7C71FFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFFFC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFFF7EFFFFFFFFFF1F7EF8FFE3C7FE0C1FFFFFFFFFFFFDFFFFFFEFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFFFF7FFFFFFFFFFEEE7CF77FDDBBFEFFDFFFFFFFFFFFFDFFFFFFEFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFF1F78F8F0E3C3FEED7AF77FDDBBFEFFDFFFFFFFFFFFFDDC7770C1C7A71FFF FFFFFFFFFFFFFFFFFFFFFFFFFFFD38EAE3838FFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFEEF7EF76FDDBFFEEF7EF77FDDBBFE1FBFFFFFFFFFFFFDBBB76FEFBB9EEFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFCF760DDDF77FFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFEF7EFF6FDDBFFEEF7EF8FFDDC3FFEF7FFFFFFFFFFFFD7BB76FEFBBBEEFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFDF76ADDDF77FFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFF0F7EF871C1C7FEEF7EF77FDDFBFFEF7FFFFFFFFFFFFC783AF1EFBBBE0FFF FFFFFFFFFFFFFFFFFFFFFFFFFFFDF06ADDDF07FFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFEEF7EF77EDFFBFEEF7EF77FDDFBFFEEFFFFFFFFFFFFFDBBFAFEEFBBBEFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFDF7EADDDF7FFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFEEF7EF77EDDFB9EEF7EF773DDBB9EEEFFFFFFFFFFFFFDDBBDFEEFBBBEEFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFDF76ADDDF77FFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFF177EF8A1E3879F1F7EF8F3E3C79F1EFFFFFFFFFFFFFDEC7DE1F1C7BF1FFF FFFFFFFFFFFFFFFFFFFFFFFFFFFDF8EAE3E38FFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3FFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFFC7EFFFFFFFFFFEF7FFFFFFFFFFFFFFFFFFFFFFFFFFC7FBFFFFFFFFFFFFB FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFFFF7EFFFFFFFFFFEF7FFFFFFFFFFFFFFFFFFFFFFFFFFF7FBFFFFFFFFFFFFB FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFF1FFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFFF7FFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FBFFFFFFFFFFFFB FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEEFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFF1F78F8F0E3C3FF0C7D3FFFFFFFFFFFFFFFFFFFFFFFFF7C3FF0E3FFC71F1A 78FFFFFFFFFFFFFFFFFFFFFFFFFD38E9C7E38D8FFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFEEF7EF76FDDBFFEEF7CFFFFFFFFFFFFFFFFFFFFFFFFFF7BBFEFDDFFBEEEF9 B77FFFFFFFFFFFFFFFFFFFFFFFFCF766F7DF756FFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFFEF7EFF6FDDBFFEEF7DFFFFFFFFFFFFFFFFFFFFFFFFFF7BBFEFDDFF7FEDFB B77FFFFFFFFFFFFFFFFFFFFFFFFDF76EF7BF756FFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFF0F7EF871C1C7FEEF7DFFFFFFFFFFFFFFFFFFFFFFFFFF7BBFF1DDFF7F0DFB B07FFFFFFFFFFFFFFFFFFFFFFFFDF06EF7BF054FFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFEEF7EF77EDFFBFEEF7DFFFFFFFFFFFFFFFFFFFFFFFFFF7BBFFEDDFF7EEDFB B7FFFFFFFFFFFFFFFFFFFFFFFFFDF7EEF7BF7DB7FFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFEEF7EF77EDDFB9ECF7DFFFFFFFFFFFFFFFFFFFFFFFFFF7B39FEDDCFBEEEFB B77FFFFFFFFFFFFFFFFFFFFFFFFDF76EF7DF76FFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFF177EF8A1E3879F2F7DFFFFFFFFFFFFFFFFFFFFFFFFFF7CB9E1E3CFC7171B B8FFFFFFFFFFFFFFFFFFFFFFFFFDF8EEF7E38F1FFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFFFC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7EFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFFF7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7EFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFE3FFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFDDFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFF1F78F8F0E3C3FE9E3C3FFFFFFFFFFFFFFFFFFFFFFFFF78FC71D3C38F0FFF FFFFFFFFFFFFFFFFFFFFFFFFFFFD38F0C1C7A71B1FFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFEEF7EF76FDDBFFE6DDBBFFFFFFFFFFFFFFFFFFFFFFFFF7EFBEECDBF76FFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFCF76FEFBB9EEADFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFEF7EFF6FDDBFFEEFDBBFFFFFFFFFFFFFFFFFFFFFFFFF7EF7EEDDBF76FFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFDF76FEFBBBEEADFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFF0F7EF871C1C7FEEE1BBFFFFFFFFFFFFFFFFFFFFFFFFF7EF7E0DDC7071FFF FFFFFFFFFFFFFFFFFFFFFFFFFFFDF071EFBBBE0A9FFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFEEF7EF77EDFFBFEEDDB3FFFFFFFFFFFFFFFFFFFFFFFFF7EF7EFDDFB7FEFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFDF7FEEFBBBEFB6FFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFEEF7EF77EDDFB9EEDDCBFFFFFFFFFFFFFFFFFFFFFFFFF7EFBEEDDFB77EFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFDF77EEFBBBEEDFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFF177EF8A1E3879E1E2FBFFFFFFFFFFFFFFFFFFFFFFFFF7EFC71DD878E1FFF FFFFFFFFFFFFFFFFFFFFFFFFFFFDF8E1F1C7BF1E3FFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFFFFFFFFFFFFFFFEFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFFFFFFFFFFFFFFEFFFC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7EFFEFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFFFFFFF8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7EFFEFE3FFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFFFFFF77FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFEFDDFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7DDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFF1E9A6C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78F4EEB1FFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFD3560B1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFEEE79AB7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7EF36DADFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFCF077ADFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFFEEFBAB7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7EF76BADFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFDF577ADFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFF0EFBAA7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7EF763A9FFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFDF577A9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFEEEFBADBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7EF76DB6FFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFDF577B6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFEEEFBB7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7EF76EDFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFDF577DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFF16F878FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7EF76F63FFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFDF578E3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFFFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFFDFFFFFFE3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFFFDFFFFFFDDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFF8D3C7769B1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5C7863F1FFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFD34F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFF7CDBB566ADFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1BB77BEFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFCF377FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFEFDDBB56EADFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5FB77BDFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFDF76FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFEFDDBB56EA9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5C377BDFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFDF76FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFEFDDBBAEEB6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5BB67BDFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFDF76FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFF7DDBBAEEDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5BB97BEFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFDF777FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFF8DDC7AEEE3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5C5F7BF1FFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFDF0F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8FFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFC7FFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFFFDFFFFFFEFC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFFE3FFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFC7FFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFFDFFFFFFEFBBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFFDDFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFBBFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFF8D3D38F1C163FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5BB070B1FFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFD3A71E1838F4E363FFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFF7CDCF76EEF5BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1B7BEFADFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFCF9EEDFDF773DD5BFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFEFDDDF76EEF5BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5AFBEFADFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFDFBEEDFDF777DD5BFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFEFDDDF76EEF53FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD58FBF1A9FFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFDFBE0E3DF777C153FFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFEFDDDF76EEF6DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5B7BFEB6FFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFDFBEFFDDF777DF6DFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFF7DDDF76EEFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5BBBFEDFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFDFBEEFDDF777DDBFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFF8DDDF8F1F1C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5BDBE1E3FFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFDFBF1C3E38F7E3C7FFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFFFC7FFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFDFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFBC7FFFF8FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFFF7FFDF1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFDC7FFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFBF7FFFF7FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFFFF7FFFEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFDBBFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFF7FFFF7FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFF8F7D31D8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5BB4F1E163FFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFC38E9E1AB8E3F7FFC60FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFF7F7CFDD6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1B736EDD5BFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFBF766DD8377BF7FFBF7FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFEFF7DFDD6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5AF76EDD5BFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFBF76EDDABF7BF7FF7F7FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFEFF7DFDD4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD58F76EDD53FFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFC706EDDAB87BF7FF7F7FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFEFF7DFDDB7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5B776EDD6DFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFB7EEDDAB77BF7FF7F7FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 9BFF7F7DFDEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5BB76ED9BFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFB76ED9AB77BF7CFBF7FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFF8F7DFDF1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5BD771E5C7FFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFF878EEE5AB8BBF7CFC77FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 9BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFFFFFFFC7BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFFFFFFFBFBFFC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFEFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFFFFFFFBFFFFBBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFEFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 9BFF8E3A7063E163FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5C7070FFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFC38F4DD8FC71E1FFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFF7DD9BBFBDD5BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1BBBEEFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFBF773DDEFBEEDFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFEFDDBBBFBDD5BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5BBBEEFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFBF777DDEF7EEDFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFEFDDBBBFBDD53FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5BBBEEFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFC7077EBEF7E0E3FFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 9BFEFDDBBBFBD96DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5BBBEEFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFB7F7EBEF7EFFDFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFF7DDBBBFBE5BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5BBBECFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFB777F7EFBEEFDFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFF8E3BBBFBFDC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5C7C72FFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFF878F7F7EFC71C3FFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFFFFFFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 9BFFFFFFFFFFE3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFFFFFFFFF1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC7FFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFEFFBFFFFFC7FFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 9BFFFFFFFFEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBBFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFEFFBFFFFFBBFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFF8E9C74D8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5C7769C163FFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFC34EEC1C38EED363FFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFF7E7BB356FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1BB766EF5BFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFBF36EEFBB76ACD5BFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFEFEFBB756FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5BB76EEF5BFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFBF76EEFBB76ADD5BFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 9BFEFEFBB754FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5BB76EEF53FFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFC776EEFBB76ADD53FFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFEFEFBB75B7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5BB76EEF6DFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFB76EEFBB775DD6DFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFF7EFBB76FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5BB66EEFBFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFB76CEFB3775DDBFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFF8EFC7771FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5C796EF1C7FFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFF87772F1CB8F5DDC7FFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 9BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFFEDFEFFF8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 9BFFEDFEFFF7FFC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFEFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFFEDFFFFF7FFBBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFEFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFF0DD8F4E0E363FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5838E9FFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFC357DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFEEDBEF377DD5BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1DF766FFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFBF07BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 9BFEED7EF777DD5BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5DFF6EFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFBF57BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFEEC7EF777DD53FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5DF86EFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFC757BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFEEDBEF777DD6DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5DF76EFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFB577FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFECDDEF777DDBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5DF76EFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFB577FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 9BFF2DEEF777E3C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5E38A1FFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFF8756FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 9BFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFBFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFF7FEFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFFEFFFFFFFE3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFBF8FFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFF7FEFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFFEFFFFFFFDDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFBF77FFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFF7FDFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFF0D5C7870B1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3E34F1F1BAC7FFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFC357FD3C777DFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 9BFEEC1BB7EEADFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCDDF36EEFB6B7FFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFBF07FCDBB6FBFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFEED5BB7EEADFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDBF76EDFAEB7FFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFBF57FDDFB5FBFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFEED5838EEA9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDBF760DF8EA7FFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFC757FDDC31FBFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFEED5BFF6CB6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDBF76FDFB6DBFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFB57FDDBB6F7FFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 9BFECD5BBF72DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDDF76EEFBB7FFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFB573DDBB777FFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFF2D5C70FEE3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDE3771F1BD8FFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFF87573C3C57AFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFFFFFFFFF1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 9BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8FFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFFEFFFFFF1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFF7FFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF8FFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFFEFFFFFEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFF7FFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF77FFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 9BFF0DDAB4D8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3C706AE3C3770FFF FFFFFFFFFFFFFFFFFFFFFFFFFFFC34F1E3EEC7FFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFEEDD83356FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCDBBBE0DDBF6EFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFBF36EDDEEB7FFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFEEDDAB756FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDBBBEAFDBF5EFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFBF76EDDEEB7FFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFEEDDAB754FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD83BEAE1C71F1FFF FFFFFFFFFFFFFFFFFFFFFFFFFFFC776EDDEEA7FFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 9BFEEDDAB75B7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDBFBEADDFB6FEFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFB76EDDEEDBFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFECD9AB76FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDBBBEADDFB77EFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFB76EDDEF7FFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFF2E5AB0F1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDC7C6AE2877A1FFF FFFFFFFFFFFFFFFFFFFFFFFFFFF870F1E3EF8FFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFFFFFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 9BFFFFFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFFEFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFFEFFFFFFEFFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFF7FFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 9BFFEFFFFFFEFFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFF7FFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFF0DDAB4F0E3838F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFD3C706EE3D3770FFF FFFFFFFFFFFFFFFFFFFFFFFFFFFC3071C1C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFEEDD8336EDDDF76FFFFFFFFFFFFFFFFFFFFFFFFFFFFFCDBBBEADDCF6EFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFBFBEEEFBBFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDC001F3 1BFEEDDAB76EFDDF76FFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDBBBEADDDF5EFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFEEFBBFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFCF3 9BFEEDDAB76EE1DF071FFFFFFFFFFFFFFFFFFFFFFFFFFFFDD83BEADDDF1F1FFF FFFFFFFFFFFFFFFFFFFFFFFFFFFC7BF0EF83FFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFCF3 1BFEEDDAB76EDDDF7FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDBFBF5DDDF6FEFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFBBEEEFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFCF3 1BFECD9AB76CDDDF77EFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDBBBF5DDDF77EFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFBBEEEFBBFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFCF3 1BFF2E5AB0F2E2E38E1FFFFFFFFFFFFFFFFFFFFFFFFFFFFDDC7C75E3DF7A1FFF FFFFFFFFFFFFFFFFFFFFFFFFFFF87C7171C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBE7CF3 9BFFFFFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBC3CF3 1BFFFFFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDB81CF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDB00CF3 1BFF8FFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8FFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7FFFFFFFFFFF8FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDB00CF3 9BFF7FFFFBEFFFFFBF1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFC7FFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFF7FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFCF3 1BFF7FFFFBEFFFFFBEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFBBFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFF7FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFCF3 1BFE0E3C3069E3C7058FFFFFFFFFFFFFFFFFFFFFFFFFFFFD3C7760E163FFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFC3770F7C787FF1C74E0FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFCF3 1BFF7DDBFBE6DDBBBD6FFFFFFFFFFFFFFFFFFFFFFFFFFFFCDBB577DF5BFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFBF76FF7BB77FEFBB377FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFCF3 9BFF7FDBFBEEDDBBBD6FFFFFFFFFFFFFFFFFFFFFFFFFFFFDDBB577DF5BFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFBF76FF7BB77FDFBB777FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFCF3 1BFF7E1C7BEEDDBBBD4FFFFFFFFFFFFFFFFFFFFFFFFFFFFDD83577E353FFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFC7AF1F7BB77FDFBB777FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFD8000F3 1BFF7DDFBBEEDDBBBDB7FFFFFFFFFFFFFFFFFFFFFFFFFFFDDBFAF7FD6DFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFBAFEF7BB67FDFBB777FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFCF3 1BFF7DDFBBEEDDBBBEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDBBAF7FDBFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFBDFEF7BB973EFBB777FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFCF3 9BFF7E287C61E3C7C71FFFFFFFFFFFFFFFFFFFFFFFFFFFFDDC7AF7C3C7FFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFF87DE1F7C7F73F1C7777FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFCF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFF7FFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFCF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFF3FFFFFF8FFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFCF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFCF3 9BFF8FFFFFEFFF8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7FFFFFFFEFF7FFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFCF3 1BFF7FFFFBEFFFEFBF1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFEFF7FFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFCF3 1BFF7FFFFBEFFFEFBEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFF7FFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFCF3 1BFE0E3C3069E3EF058FFFFFFFFFFFFFFFFFFFFFFFFFFFFD3C7870DDC3FFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFC3770F7C787FD38F87FFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFCF3 9BFF7DDBFBE6DDEFBD6FFFFFFFFFFFFFFFFFFFFFFFFFFFFCDBB7EFD5BBFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFBF76FF7BB77FCDEF77FFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFCF3 1BFF7FDBFBEEFDEFBD6FFFFFFFFFFFFFFFFFFFFFFFFFFFFDDFB7EFD5BBFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFBF76FF7BB77FDDEF77FFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFCF3 1BFF7E1C7BEEE1EFBD4FFFFFFFFFFFFFFFFFFFFFFFFFFFFDDC38F1D5BBFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFC7AF1F7BB77FDDEF77FFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFCF3 1BFF7DDFBBEEDDEFBDB7FFFFFFFFFFFFFFFFFFFFFFFFFFFDDBBF7EEBBBFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFBAFEF7BB67FDDEF77FFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFCF3 9BFF7DDFBBEEDDEFBEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDBBF7EEBB3FFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFBDFEF7BB973DDEF67FFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFD8000F3 1BFF7E287C6EE2EFC71FFFFFFFFFFFFFFFFFFFFFFFFFFFFC3C50E1EBCBFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFF87DE1F7C7F73C3EF97FFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFCF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFF7FDFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFCF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFF3FFFFFF8FFDFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFCF3 9BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFCF3 1BFF8F78FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFCF3 1BFF7F7EFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFEFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFE3FFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDB00CF3 1BFF7FFEFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFDDFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDB00CF3 9BFE0C7EF8E0DDA78FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3D31E9C1E38E9FFF FFFFFFFFFFFFFFFFFFFFFFFFFFF838F4D5E38E9B1FFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDB81CF3 1BFF7F7EF777DD9B77FFFFFFFFFFFFFFFFFFFFFFFFFFFFFCDCFDE6EFDF766FFF FFFFFFFFFFFFFFFFFFFFFFFFFFFDF773C1DF766ADFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBC3CF3 1BFF7F7EF777DDBB77FFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDDFDEEEFBFF6EFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFDF777D5BFF6EADFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBE7CF3 1BFF7F7EF077EBBB07FFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDDFDEEEFBF86EFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFDF077D5BF86EA9FFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFCF3 9BFF7F7EF7F7EBBB7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDDFDEEEFBF76EFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFDF7F7D5BF76EB6FFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFCF3 1BFF7F7EF777F7BB77FFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDDFDEEEFDF76EFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFDF777D5DF76EDFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFCF3 1BFF7F7EF8F8F7878FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3DFDEEF1E38A1FFF FFFFFFFFFFFFFFFFFFFFFFFFFFFE38F7D5E38A1E3FFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFCF3 1BFFFFFFFFFFEFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFEFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFD8000F3 9BFFFFFFFFFFCFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFEFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDC001F3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFF8FFFFFFFFFFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFF7FFFFFFFEFFFF7FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFEFFFFFFFF8 3FFFC1FFDF1F783FFFFFFFFFFFFDFFFFE3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 9BFF7FFFFFFFEFFFF7FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFE FFFFFDFF9EEE7FBFFFFFFFFFFFFDFFFFDDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFE0E3D3571C1FF871C1FFFFFFFFFFFFFFFFFFFFFFFFFFD3D31E9C1E38E9FFE F769FDFF5FED7FBFFFFFFFFFFFF83569B1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFF7DDCF06EEFFF76EEFFFFFFFFFFFFFFFFFFFFFFFFFFFCDCFDE6EFDF766FFE F766FBFFDFEF7F7FFFFFFFFFFFFDF066ADFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFF7DDDF57EEFFF77EEFFFFFFFFFFFFFFFFFFFFFFFFFFFDDDFDEEEFBFF6EFFE F76EF783DFDF7EFFFFFFFFFFFFFDF56EADFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 9BFF7DDDF570EFFF770EFFFFFFFFFFFFFFFFFFFFFFFFFFFDDDFDEEEFBF86EFFE F76EF7FFDFBF7EFFFFFFFFFFFFFDF56EA9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFF7DDDF56EEFFF76EEFFFFFFFFFFFFFFFFFFFFFFFFFFFDDDFDEEEFBF76EFFE F76EEFFFDF7F7DFFFFFFFFFFFFFDF56EB6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFF7DDDF56EEFCF66EEFFFFFFFFFFFFFFFFFFFFFFFFFFFDDDFDEEEFDF76EE7E F66EEFFFDEFF7DFFFFFFFFFFFFFDF56EDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFF7E3DF57171CF97171FFFFFFFFFFFFFFFFFFFFFFFFFFC3DFDEEF1E38A1E71 F96EEFFFDE0F7DFFFFFFFFFFFFFE3561E3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 9BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFEFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFEFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFF8FFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 9BFF7FFFF7F1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFEFFFFFFFFC 3FFFE3C7FFBE3FF060FFC78FFFFDFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFE3FF3 1BFF7FFFF7EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFB FFFFDDBBFF3DDFF7FEFFBB77FFFDFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFE0E1E3758FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3D31E9C1E38E9FFB F8E9FDFBFEBDDCF7FEE7FBF7FFF8306EE1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFF7DFDF6D6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCDCFDE6EFDF766FF9 F766FDFBFFBDDCF0FDE7FBF7FFFDFBEEDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFF7DFBF5D6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDDFDEEEFBFF6EFFC 776EFBF7FFBDDFFF7BFFE7CFFFFDFBEEDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFF7E3BF1D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDDFDEEEFBF86EFFF 306EF7EFFFBDDFFF7BFFFBF7FFFDFBF5E3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFF7FDBF6DB7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDDFDEEEFBF76EFFF B7EEEFDFFFBDDFFF77FFFBF7FFFDFBF5FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFF7FDDF76FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDDFDEEEFDF76EE7F B76EDFBFCFBDDCF777E7BB77FFFDFBFBFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFF7C3E37B1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3DFDEEF1E38A1E78 78E1C183CFBE3CF8F7E7C78FFFFE3C7BC3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFEFFFF FFEFFFFF9FFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFEFFFF FFEFFFFFFFFFFFFFFFFFFFFFFFFFFFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFF8FFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3FFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFF7FFDFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFBFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFDFBFFEFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFF7FFDFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFBFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFDFBFFEFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFE0E1838E9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3D38E0E3E38FBE1F FFFFFFFFFFFFFFFFFFFFFFFFFFF8306EC1C74FFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFF7DFDF766FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCDCF777DDDF77BDFF FFFFFFFFFFFFFFFFFFFFFFFFFFFDFBEEEFBB37FFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFF7DFDFF6EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDDF777DDBF77BDFF FFFFFFFFFFFFFFFFFFFFFFFFFFFDFBEEEFFB77FFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFF7E3DF86EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDDF777DDBF77BE3F FFFFFFFFFFFFFFFFFFFFFFFFFFFDFBF5EFC377FFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFF7FDDF76EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDDF777DDBF77BFDF FFFFFFFFFFFFFFFFFFFFFFFFFFFDFBF5EFBB77FFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFF7FDDF76EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDDF777DDDF77BFDF FFFFFFFFFFFFFFFFFFFFFFFFFFFDFBFBEFBB77FFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFF7C3E38A1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3DF8F8E3E38FBC3F FFFFFFFFFFFFFFFFFFFFFFFFFFFE3C7BF1C50FFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFF8FFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFF7FFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFF7FFDFFEFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FEFFF7FFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF1FFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFF7FFDFFEFB6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FEFFF7FFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBEEFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFE0E1838E9B5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3C3871C1C74F1E1C 7FFFFFFFFFFFFFFFFFFFFFFFFFFBB571DDA7058FFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFF7DFDF766CBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCDBF76EEFBB36EDFB BFFFFFFFFFFFFFFFFFFFFFFFFFFBB06EDD9BBD6FFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFF7DFDFF6EF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDBF77EEFFB77EDFB BFFFFFFFFFFFFFFFFFFFFFFFFFFBB56EDDBBBD6FFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFF7E3DF86EE9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDC7770EFC3770E38 3FFFFFFFFFFFFFFFFFFFFFFFFFFBB56EDDBBBD4FFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 9BFF7FDDF76ED6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDFB76EEFBB76EFDB FFFFFFFFFFFFFFFFFFFFFFFFFFFBB56EDDBBBDB7FFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFF7FDDF76EB6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDFB66EEFBB76EFDB BFFFFFFFFFFFFFFFFFFFFFFFFFFB356ED9BBBEFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFF7FF3 1BFF7C3E38A1F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC38797171C50F143C 7FFFFFFFFFFFFFFFFFFFFFFFFFFCB571E5BBC71FFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFEBFF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFFFFF3 9BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDFFFFF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFD8000F3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFEF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFEF3 9BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFEF3 1BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFDBFFEF3 1800000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000018000F3 1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3 83FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83 3BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB 3BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB 3BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB BBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB 3BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB 380FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFE03B 3FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFB BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFB 3FE0000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000FFB 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000003 2222222222222222222222222222222222222222222222222222222222222222 2222222222222222222222222222222222222222222222222222222222222222 22222222222222222222222222222223 8888888888888888888888888888888888888888888888888888888888888888 8888888888888888888888888888888888888888888888888888888888888888 8888888888888888888888888888888B ENDBITMAP %%EndBinary 112.18 128 418.41 311.36 R 1 H 0 Z N 411.12 224 413.12 297 R 11 X V 0.5 H 7 X N 410.79 139.33 412.79 151.33 R 11 X V 7 X N 0 10 Q 0 X (length) 501.41 223 T (prop_pos) 454.42 251.33 T (elev_pos) 453.92 183.5 T (win) 300.41 342 T (\050x,y\051) 357.91 343 T 392.11 212.47 395.41 224 398.72 212.47 395.41 212.47 4 Y V 398.72 161.53 395.41 150 392.11 161.53 395.41 161.53 4 Y V 395.41 212.47 395.41 161.53 2 L 11 X V 0 X N 281.41 137 325.41 299 R 7 X V N 0 X (prop_length) 305.68 189.83 T 385.33 195.31 396.87 192 385.33 188.69 385.33 192 4 Y V 358.87 192 385.33 192 2 L 7 X V 2 Z 0 X N 331.37 307.3 335.4 296 325.99 303.45 328.68 305.38 4 Y V 308.41 334 328.69 305.37 2 L 7 X V 0 X N 400.06 312.74 405.41 302 395.18 308.27 397.62 310.51 4 Y V 397.62 310.51 372.41 338 2 L 7 X V 0 X N 386.41 223 410.41 223 2 L 7 X V 13 X N 388.58 151.66 412.58 151.66 2 L 7 X V 13 X N 420.41 136 531.41 136 2 L 7 X V 13 X N 418.41 301 533.41 301 2 L 7 X V 14 X N 518.72 149.53 515.41 138 512.11 149.53 515.41 149.53 4 Y 0 X V 515.41 218 515.41 149.53 2 L 7 X V 0 X N 512.11 289.46 515.41 301 518.72 289.46 515.41 289.46 4 Y V 515.41 231 515.41 289.46 2 L 7 X V 0 X N 424.12 182.69 412.58 186 424.12 189.31 424.12 186 4 Y V 424.12 186 451.58 186 2 L 7 X V 0 X N 421.72 228.01 410.41 224 417.87 233.4 419.79 230.71 4 Y V 419.8 230.7 451.41 253 2 L 7 X V 0 X N 108 63 540 720 C 0 0 612 792 C FMENDPAGE %%EndPage: "9" 8 %%Page: "8" 8 612 792 0 FMBEGINPAGE 108 740.81 540 756 R 7 X 0 K V 108 54 540 54 2 L V 0.25 H 2 Z 0 X N 108 36 540 47.95 R 7 X V 0 8 Q 0 X (OLGX \321 Application Programmer Interface) 108 42.62 T (October 4, 1991) 298.13 42.62 T (8) 536 42.62 T 108 63 544 720 R 7 X V 0 12 Q 0 X (void) 108 712 T 1 F (olgx_draw_choice_item\050) 108 698 T 2 11 Q (ginfo, win, x, y) 229.26 698 T (, width, height, label, state) 298.06 698 T 1 12 Q (\051) 425.09 698 T 2 11 Q (Graphics_info *ginfo;) 144 678.67 T (Window win;) 144 662.67 T (int x, y) 144 646.67 T (, width, height;) 174.94 646.67 T (long label;) 144 630.67 T (int state;) 144 614.67 T 1 12 Q (olgx_draw_choice_item\050\051) 108 589 T 0 F ( will render a choice item with either a pixmap or character) 233.26 589 T (string label.) 108 575 T 2 11 Q (win) 167.63 575 T 0 12 Q ( designates what window the item is to be drawn in.) 184.11 575 T 2 11 Q (x) 435.95 575 T 0 12 Q ( and) 441.44 575 T 2 11 Q (y) 464.76 575 T 0 12 Q ( give the coor-) 470.25 575 T (dinates of the upper) 108 561 T (-left corner of the choice item, and) 202.69 561 T 2 11 Q (width) 371.88 561 T 0 12 Q ( and) 397.52 561 T 2 11 Q (height) 420.84 561 T 0 12 Q ( denote its outside) 450.76 561 T (width and height. The label of a choice item can either be a character string or an X pix-) 108 547 T (map. If the label is a character string,) 108 533 T 2 11 Q (label) 289.18 533 T 0 12 Q ( is a pointer to a character) 312.39 533 T (. If the label is an X) 435.62 533 T -0.03 (pixmap,) 108 519 P 2 11 Q -0.03 (label) 149.95 519 P 0 12 Q -0.03 (is a pointer to the struct Pixlabel) 176.18 519 P 2 11 Q -0.03 (.) 331.25 519 P 0 12 Q -0.03 (The struct Pixlabel is explained below and) 337.33 519 P -0 (is to be initialized appropriately) 108 505 P -0 (. If the given label is too lar) 259.77 505 P -0 (ge to \336t in the button, it will be) 392.1 505 P (clipped appropriately) 108 491 T (. Finally) 209.48 491 T (,) 248.68 491 T 2 11 Q (state) 254.68 491 T 0 12 Q ( gives the current state of the item. It consists of a bit-) 278.5 491 T (wise-OR of any of the following \337ags:) 108 477 T (OLGX_NORMAL) 108 457 T -0.23 (The item is not invoked. In a \3223D\323 environment, it will) 279 457 P (be drawn as a raised rectangle.) 279 443 T (OLGX_INVOKED) 108 423 T (The item is invoked. In a \3223D\323 environment, it will be) 279 423 T (drawn as a recessed rectangle.) 279 409 T (OLGX_DEF) 108 389 T (AUL) 169.07 389 T (T) 192.61 389 T -0.51 (This is a default choice item. An inner default rectangle) 279 389 P (will be drawn to denote it as such.) 279 375 T (OLGX_INACTIVE) 108 355 T (This item is inactive. It will be drawn with a 50% grey) 279 355 T (stipple.) 279 341 T (OLGX_LABEL_IS_PIXMAP) 108 321 T -0.42 (The label speci\336ed is an X Pixmap ID. If this \337ag is not) 279 321 P (given, olgx_draw_choice_item will assume that the la-) 279 307 T (bel is a character string.) 279 293 T 2 11 Q (Struct Pixlabel {) 135 273 T (XID) 180 259 T (pixmap;) 225 259 T (int) 180 245 T (width;) 225 245 T (/* width of the pixmap */) 297 245 T (int) 180 231 T (height;) 225 231 T (/* height of the pixmap */) 297 231 T (}) 135 217 T 0 12 Q (Note: If the label is a pixmap, the width of the choice item is always incremented by) 108 197 T (OLGX_CHOICE_MARGIN which accommodates the space for a default ring) 144 183 T (around the pixmap in case OLGX_DEF) 144 169 T (AUL) 333.98 169 T (T is set.) 357.52 169 T (void) 108 129 T 1 F (olgx_draw_check_box\050) 108 115 T 2 11 Q (ginfo, win, x, y) 222.6 115 T (, state) 291.39 115 T 1 12 Q (\051) 321.32 115 T 2 11 Q (Graphics_info *ginfo;) 144 95.67 T (Window win;) 144 82.67 T (int x, y) 144 69.67 T (, state;) 174.94 69.67 T FMENDPAGE %%EndPage: "8" 7 %%Page: "7" 7 612 792 0 FMBEGINPAGE 108 740.81 540 756 R 7 X 0 K V 108 54 540 54 2 L V 0.25 H 2 Z 0 X N 108 36 540 47.95 R 7 X V 0 8 Q 0 X (OLGX \321 Application Programmer Interface) 108 42.62 T (October 4, 1991) 298.13 42.62 T (7) 536 42.62 T 108 63 540 720 R 7 X V 0 12 Q 0 X (OLGX_DEF) 108 712 T (AUL) 169.07 712 T (T) 192.61 712 T (The pushpin is a default pushpin.) 243 712 T (void) 108 672 T 1 F (olgx_draw_box\050) 108 658 T 2 11 Q (ginfo, win, x, y) 187.96 658 T (, width, height, state, \336ll_in) 256.76 658 T 1 12 Q (\051) 385.6 658 T 2 11 Q (Graphics_info *ginfo;) 144 638.67 T (Window win;) 144 625.67 T (int x, y) 144 612.67 T (, width, height, state, \336ll_in;) 174.94 612.67 T 1 12 Q (olgx_draw_box\050\051) 108 587 T 0 F ( draws a beveled box of the given size at the speci\336ed location.) 191.95 587 T 2 11 Q (state) 497.73 587 T 0 12 Q ( de-) 521.54 587 T -0.22 (scribes the state of the box. It may be either OLGX_NORMAL or OL GX_INVOKED. In) 108 573 P -0.16 (3D mode, an invoked box is drawn as a recessed rectangle and a normal box is drawn as a) 108 559 P (raised rectangle. If) 108 545 T 2 11 Q (\336ll_in) 200.58 545 T 0 12 Q ( is nonzero, then the box is \336lled in. The) 225.6 545 T 2 11 Q (state) 422.15 545 T 0 12 Q ( \337ag can take) 445.97 545 T (OLGX_ERASE to erase the underlying box before drawing over it.) 108 531 T 108 63 540 720 C 108 84 540 527 C 108 84 540 527 R 7 X 0 K V 3 14 Q 0 X ( 2-D:) 109.08 500.94 T 0 12 Q (\336ll_in 0) 137.57 479.71 T (state OLGX_INVOKED) 137.57 467.71 T 270.71 467.71 324.71 488.71 R 7 X V 3 H 0 Z 0 X N (\336ll_in 1) 140.43 436.57 T (state OLGX_INVOKED) 140.43 424.57 T 272.14 421.57 326.14 442.57 R V 4 H N ( 2 pixel border) 378.71 473.71 T 335.54 473.41 324 476.71 335.54 480.02 335.54 476.71 4 Y V 335.54 476.71 378 476.71 2 L V 0.5 H 2 Z N 337.68 429.69 326.14 433 337.68 436.31 337.68 433 4 Y V 337.68 433 380.14 433 2 L V N (Solid black) 386.14 430 T 270 379.57 324 400.57 R 7 X V 1 H 0 Z 0 X N (Anything else) 138.29 385 T 335.54 385.69 324 389 335.54 392.3 335.54 389 4 Y V 335.54 389 378 389 2 L 7 X V 0.5 H 2 Z 0 X N (1 pixel border) 384 386 T 3 14 Q (3-D:) 114.64 357.98 T 0 12 Q (\336ll_in 1) 117 316.46 T (state OLGX_INVOKED) 117 304.46 T (\336ll_in 1) 117.71 222.6 T (state not OLGX_INVOKED) 117.71 210.6 T ( Dark 1 pixel border \050OLGX_BG3\051) 364.57 302.75 T 332.11 289.44 320.57 292.75 332.11 296.05 332.11 292.75 4 Y V 332.11 292.75 367 292.75 2 L 7 X V 0 X N 268.57 284.62 322.57 284.62 322.57 308.62 322.57 297.95 322.57 300.62 5 L 3 X V 3 H 1 X N 321.43 307.9 266.43 307.9 266.43 284.9 3 L 3 X V 4 X N 269.14 286.9 320.14 305.9 R 2 X V 1 H 0 Z N 276.88 322.01 273.57 310.48 270.26 322.01 273.57 322.01 4 Y 0 X V 273.57 322.01 273.57 341.48 2 L 2 X V 0.5 H 2 Z 0 X N (Border Highlight\3211 pixel \050OLGX_WHITE\051) 262.72 344.48 T 314.93 295.6 302.99 294.34 312.45 301.73 313.69 298.67 4 Y V 378 324.48 313.69 298.66 2 L 2 X V 0 X N (Filled with OLGX_BG2) 383 323.48 T 269 193.33 323 193.33 323 217.33 323 206.66 323 209.33 5 L 3 X V 3 H 1 X N 321.14 216.61 266.14 216.61 266.14 193.61 3 L 3 X V 4 X N 270.29 195.61 321.29 214.61 R 3 X V 1 H 0 Z N 0 X ( Dark 1 pixel border \050OLGX_BG3\051) 366.14 208.31 T 333.68 195.01 322.14 198.31 333.68 201.62 333.68 198.31 4 Y V 333.68 198.31 368.57 198.31 2 L 3 X V 0.5 H 2 Z 0 X N 278.45 227.58 275.14 216.04 271.83 227.58 275.14 227.58 4 Y V 275.14 227.58 275.14 247.04 2 L 3 X V 0 X N (Border Highlight\3211 pixel \050OLGX_WHITE\051) 261.43 250.04 T 311.99 204.76 300 204.34 309.95 211.05 310.97 207.9 4 Y V 379.57 230.04 310.97 207.9 2 L 3 X V 0 X N (Filled with OLGX_BG1) 384.57 229.04 T 3 14 Q (W) 112 160.94 T (idth & Height \0502D & 3D\051:) 125.74 160.94 T 267 109.84 321 130.84 R 7 X V 1 H 0 Z 0 X N 0 12 Q (If) 122.83 130.5 T 0 10 Q (10,10) 240.33 132.67 T (10,29) 239.66 104 T (54,10) 323.83 133.17 T (54,29) 325 104.84 T 0 12 Q (width = 45) 150.67 129.84 T (height = 20) 151.83 116.84 T (x = 10) 151.67 104.84 T (y = 10) 151 90.84 T 108 63 540 720 C 0 0 612 792 C FMENDPAGE %%EndPage: "7" 6 %%Page: "6" 6 612 792 0 FMBEGINPAGE 108 740.81 540 756 R 7 X 0 K V 108 54 540 54 2 L V 0.25 H 2 Z 0 X N 108 36 540 47.95 R 7 X V 0 8 Q 0 X (OLGX \321 Application Programmer Interface) 108 42.62 T (October 4, 1991) 298.13 42.62 T (6) 536 42.62 T 108 63 540 720 R 7 X V 2 11 Q 0 X (old_value) 108 712 T 0 12 Q ( and) 155.02 712 T 2 11 Q (new_value) 178.34 712 T 0 12 Q ( give the old and new values of the slider in pixels with the ori-) 230.85 712 T (gin at either the top or the left of the slider) 108 698 T (. Finally) 310.53 698 T (,) 349.74 698 T 2 11 Q (state) 355.74 698 T 0 12 Q ( gives information about the cur-) 379.55 698 T (rent state of the slider) 108 684 T (. It consists of the bitwise-OR of any of the following \337ags:) 211.26 684 T (OLGX_VER) 108 658 T (TICAL) 170.57 658 T (The slider is a vertical slider) 243 658 T (.) 378.57 658 T (OLGX_HORIZONT) 108 638 T (AL) 207.63 638 T (The slider is a horizontal slider) 243 638 T (.) 391.24 638 T (OLGX_UPDA) 108 618 T (TE) 178.62 618 T (Update the slider instead of rendering the whole slider) 243 618 T (. If) 502.81 618 T (OLGX_ UPDA) 243 604 T (TE is not speci\336ed, the parameter) 316.62 604 T 2 11 Q (old_value) 480.83 604 T 0 12 Q (will not be used.) 243 590 T (This function does not draw any of the text associated with the O) 108 564 T 0 11 Q (PEN) 420.45 564 T 0 12 Q ( L) 441.2 564 T 0 11 Q (OOK) 451.53 564 T 0 12 Q ( sliders. For) 475.33 564 T (example, some O) 108 550 T 0 11 Q (PEN) 191.61 550 T 0 12 Q ( L) 212.36 550 T 0 11 Q (OOK) 222.69 550 T 0 12 Q ( sliders provide tick marks, end boxes, labels on the tick) 246.48 550 T (marks and numeric-entry \336elds beside the slider) 108 536 T (. Handling these is left to the application.) 337.84 536 T (void) 108 496 T 1 F (olgx_draw_resize_corner\050) 108 482 T 2 11 Q (ginfo, win, x, y) 236.59 482 T (, type, state) 305.39 482 T 1 12 Q (\051) 362.19 482 T 2 11 Q (Graphics_info *ginfo;) 144 462.67 T (Window win;) 144 449.67 T (int x, y) 144 436.67 T (, type;) 174.94 436.67 T (int state;) 144 423.67 T 0 12 Q -0.4 (This function places a resize corner of the requested type in a given location. \050) 108 398 P 2 11 Q -0.41 (x, y) 477.73 398 P 0 12 Q -0.4 (\051 and) 494.42 398 P 2 11 Q -0.41 (win) 520.92 398 P 0 12 Q -0.09 (specify the location and window of the resize corner) 108 384 P -0.09 (, respectively) 357.91 384 P -0.09 (. The shape of the resize) 420.99 384 P (corner is determined by the) 108 370 T 2 11 Q (type) 242.23 370 T 0 12 Q ( parameter) 262.99 370 T (.) 313.28 370 T 2 11 Q (type) 319.28 370 T 0 12 Q ( must be one of OLGX_UPPER_LEFT) 340.04 370 T (,) 527.38 370 T (OLG X_LOWER_LEFT) 108 356 T (, OLGX_UPPER_RIGHT) 226.7 356 T (, or OLGX_LOWER_RIGHT) 351.07 356 T (.) 493.74 356 T 2 11 Q (state) 499.74 356 T 0 12 Q (must be either OLGX_NORMAL or OLGX_INVOKED.) 108 342 T (void) 108 302 T 1 F (olgx_draw_pushpin\050) 108 288 T 2 11 Q (ginfo, win, x, y) 209.97 288 T (, state) 278.76 288 T 1 12 Q (\051) 308.69 288 T 2 11 Q (Graphics_info *ginfo;) 144 268.67 T (Window win;) 144 255.67 T (int x, y) 144 242.67 T (, state;) 174.94 242.67 T 0 12 Q (This function renders a pushpin at the requested location. \050) 108 217 T 2 11 Q (x, y) 389.8 217 T 0 12 Q (\051 and) 406.89 217 T 2 11 Q (win) 434.2 217 T 0 12 Q ( specify the loca-) 450.68 217 T (tion and window of the resize corner) 108 203 T (, respectively) 283.38 203 T (. The state of the pushpin is determined) 346.55 203 T (by the) 108 189 T 2 11 Q (state) 140.65 189 T 0 12 Q ( parameter) 164.46 189 T (.) 214.75 189 T 2 11 Q (state) 220.75 189 T 0 12 Q ( must be a bitwise or combination of the following:) 244.57 189 T (OLGX_PUSHPIN_OUT) 108 163 T (The pushpin is out.) 243 163 T (OLGX_PUSHPIN_IN) 108 143 T (The pushpin is in.) 243 143 T (OLGX_ERASE) 108 123 T -0.34 (The area behind the pushpin will be erased before the pushpin) 243 123 P (is drawn. This \337ag allows the new pushpin to erase the previ-) 243 109 T (ous one when it changes states.) 243 95 T (OLGX_INACTIVE) 108 75 T (Pushpin is inactive; it will be drawn with a 50% grey stipple.) 243 75 T FMENDPAGE %%EndPage: "6" 5 %%Page: "5" 5 612 792 0 FMBEGINPAGE 108 740.81 540 756 R 7 X 0 K V 108 54 540 54 2 L V 0.25 H 2 Z 0 X N 108 36 540 47.95 R 7 X V 0 8 Q 0 X (OLGX \321 Application Programmer Interface) 108 42.62 T (October 4, 1991) 298.13 42.62 T (5) 536 42.62 T 108 63 540 720 R 7 X V 0 12 Q 0 X (OLGX_ERASE) 108 712 T (The background behind the item is to be cleared be-) 279 712 T (fore the item is drawn.This \337ag is only valid for trans-) 279 698 T (parent items such as non-invoked menu items.) 279 684 T (OLGX_BUSY) 108 664 T -0.23 (The item is busy) 279 664 P -0.23 (. In either 2D or 3D, this means that it) 357.14 664 P (will be \336lled with a 15% grey stipple.) 279 650 T (OLGX_DEF) 108 630 T (AUL) 169.07 630 T (T) 192.61 630 T (This item is a default item. OLGX will render it item) 279 630 T (with a default ring.) 279 616 T (OLGX_INACTIVE) 108 596 T -0.5 (Designates the item as inactive. It will be drawn with a) 279 596 P (50% grey stipple.) 279 582 T (OLGX_VER) 108 562 T (T_MENU_MARK) 170.57 562 T (The item contains a vertical menu mark.) 279 562 T (OLGX_HORIZ_MENU_MARK) 108 542 T (The item contains a horizontal menu mark.) 279 542 T (OLGX_LABEL_IS_PIXMAP) 108 522 T (By default, item labels are strings. This \337ag must be) 279 522 T (presented if the label is a pixmap or window ID.) 279 508 T 2 11 Q (Struct Pixlabel{) 135 488 T (XID) 180 474 T (pixmap;) 225 474 T (int) 180 460 T (width;) 225 460 T (/* width of the pixmap */) 297 460 T (int) 180 446 T (height;) 225 446 T (/* height of the pixmap */) 297 446 T (}) 135 432 T 0 12 Q (Note: If the label is a pixmap, the width of the button is always incremented by) 108 412 T (OLGX_V) 144 398 T (ARHEIGHT_BTN_MARGIN which accommodates the space for a de-) 190.41 398 T (fault ring around the pixmap in case OLGX_DEF) 144 384 T (AUL) 381.28 384 T (T is set.) 404.82 384 T (void) 108 344 T 1 F (olgx_draw_abbrev_button\050) 108 330 T 2 11 Q (ginfo, win, x, y) 241.27 330 T (, state) 310.07 330 T 1 12 Q (\051) 339.99 330 T 2 11 Q (Graphics_info *ginfo;) 144 310.67 T (Window win;) 144 297.67 T (int x, y) 144 284.67 T (, state;) 174.94 284.67 T 0 12 Q (This function renders an abbreviated menu button at the position \050) 108 259 T 2 11 Q (x, y) 425.12 259 T 0 12 Q (\051 with in window) 442.21 259 T 2 11 Q (win) 108 245 T 0 12 Q (.) 124.48 245 T 2 11 Q (state) 130.48 245 T 0 12 Q ( may be OLGX_NORMAL, OLGX_INVOKED, OLGX_INACTIVE or) 154.29 245 T (OLGX_BUSY) 108 231 T (. Use OLGX_ ERASE to clear the underlying previous state. The Menu-) 177.74 231 T (Mark drawn inside the button points down.) 108 217 T (void) 108 177 T 1 F (olgx_draw_slider\050) 108 163 T 2 11 Q (ginfo, win, x, y) 197.29 163 T (, width, old_value, new_value, state) 266.09 163 T 1 12 Q (\051) 439.52 163 T 2 11 Q (Graphics_info *ginfo;) 144 143.67 T (Window win;) 144 130.67 T (int x, y) 144 117.67 T (, width, old_value, new_value, state;) 174.94 117.67 T 1 12 Q (olgx_draw_slider\050\051) 108 92 T 0 F ( renders or updates a slider) 201.29 92 T (. The slider will be drawn within window) 329.52 92 T 2 11 Q -0.02 (win) 108 78 P 0 12 Q -0.02 ( at location \050) 124.48 78 P 2 11 Q -0.02 (x, y) 184.71 78 P 0 12 Q -0.02 (\051.) 201.79 78 P 2 11 Q -0.02 (width) 211.76 78 P 0 12 Q -0.02 ( represents the width of the slider in pixels, including endcaps.) 237.4 78 P FMENDPAGE %%EndPage: "5" 4 %%Page: "4" 4 612 792 0 FMBEGINPAGE 108 740.81 540 756 R 7 X 0 K V 108 54 540 54 2 L V 0.25 H 2 Z 0 X N 108 36 540 47.95 R 7 X V 0 8 Q 0 X (OLGX \321 Application Programmer Interface) 108 42.62 T (October 4, 1991) 298.13 42.62 T (4) 536 42.62 T 108 63 540 720 R 7 X V 0 12 Q 0 X (change may also af) 198 712.67 T (fect other ginfos that share the GCs. It is up to the) 290.04 712.67 T -0.06 (client to restore the values so that the changed color does not af) 198 699.67 P -0.06 (fect the) 501.49 699.67 P (other ginfos.) 198 686.67 T 2 11 Q (OLGX_SPECIAL) 261.62 686.67 T 0 12 Q (might be used where XV) 347.73 686.67 T (iew renders an) 466.92 686.67 T (array of color choice items representing a palette where each choice) 198 673.67 T (item is rendered by changing the foreground color) 198 660.67 T (.) 438.16 660.67 T (unsigned long) 108 615 T 1 F (olgx_get_single_color\050) 111 601 T 2 11 Q (ginfo,index) 223.6 601 T 1 12 Q (\051) 276.73 601 T 2 11 Q (Graphics_info * ginfo;) 144 581.67 T (int index;) 144 568.67 T 1 12 Q (olgx_get_single_color\050\051) 108 543 T 0 F ( returns the pixel value of the index member of the \336ve element) 224.6 543 T -0.24 (array of pixel values stored in) 108 529 P 2 11 Q -0.24 (ginfo.) 252.47 529 P -0.24 (index) 282.11 529 P 0 12 Q -0.24 ( can be any one of the \336ve members of the array) 308.36 529 P (namely OLGX_WHITE \0500\051, OLGX_BLACK \0501\051, OLGX_BG1 \0502\051, OLGX_BG2 \0503\051, or) 108 515 T (OLGX_BG3 \0504\051.) 108 501 T 3 16 Q (4.0 Rendering Functions) 108 460.33 T 0 12 Q (void) 108 437 T 1 F (olgx_draw_button\050) 108 423 T 2 11 Q (ginfo, win, x, y) 201.97 423 T (, width,height, label, state) 270.77 423 T 1 12 Q (\051) 394.73 423 T 2 11 Q (Graphics_info *ginfo;) 144 403.67 T (Window win;) 144 390.67 T (int x, y) 144 377.67 T (, width;) 174.94 377.67 T (int height;) 144 364.67 T (void *label;) 144 351.67 T (int state;) 144 338.67 T 0 12 Q -0.45 (This function renders panel buttons and menu items.) 108 313 P 2 11 Q -0.46 (win) 359.23 313 P 0 12 Q -0.45 ( is the window in which the object) 375.71 313 P (is to be rendered.) 108 299 T 2 11 Q (x) 193.6 299 T 0 12 Q ( and) 199.09 299 T 2 11 Q (y) 222.4 299 T 0 12 Q ( are the coordinates of the upper left-hand corner of the object,) 227.9 299 T -0.04 (relative to the upper left-hand corner of) 108 285 P 2 11 Q -0.04 (win. width) 299.9 285 P 0 12 Q -0.04 ( is the width of the entire object, includ-) 348.1 285 P -0 (ing the button endcaps if the object is a panel button. The label of a button can either be a) 108 271 P (character string or an X pixmap. If the label is a character string,) 108 257 T 2 11 Q (label) 420.74 257 T 0 12 Q ( is a pointer to a) 443.94 257 T (character) 108 243 T (. If the label is an X pixmap,) 151.28 243 T 2 11 Q (label) 291.19 243 T 0 12 Q (is a pointer to the) 317.45 243 T (struct Pixlabel) 403.78 243 T 2 11 Q (.) 472.74 243 T 0 12 Q (The struct) 478.85 243 T (Pixlabel is explained below and is to be initialized appropriately) 108 229 T (. If the given label is too) 415.36 229 T (lar) 108 215 T (ge to \336t in the button, it will be clipped appropriately) 120.44 215 T (.) 373.85 215 T 2 11 Q (height) 379.84 215 T 0 12 Q (is the height of the button) 412.82 215 T (and is used only when the button label is a pixmap. If the label is not a pixmap, then the) 108 201 T (height should be 0, in which case the button height is determined from the button glyphs.) 108 187 T 2 11 Q (state) 108 173 T 0 12 Q ( is the bitwise OR of a set of \337ags representing the current state of the object. These) 131.82 173 T (\337ags are as follows:) 108 159 T (OLGX_NORMAL) 108 139 T (The item is not invoked. This is the default.) 279 139 T (OLGX_INVOKED) 108 119 T -0.46 (Item is invoked. In 3D, it is drawn as a recessed button) 279 119 P (or menu item. In 2D, the item is in reverse video.) 279 105 T (OLGX_MENU_ITEM) 108 85 T (This object is a menu item, not a panel button. W) 279 85 T (ith) 515.04 85 T (this \337ag, no outline is drawn on non-invoked items.) 279 71 T FMENDPAGE %%EndPage: "4" 3 %%Page: "3" 3 612 792 0 FMBEGINPAGE 108 740.81 540 756 R 7 X 0 K V 108 54 540 54 2 L V 0.25 H 2 Z 0 X N 108 36 540 47.95 R 7 X V 0 8 Q 0 X (OLGX \321 Application Programmer Interface) 108 42.62 T (October 4, 1991) 298.13 42.62 T (3) 536 42.62 T 108 63 540 720 R 7 X V 2 11 Q 0 X (OLGX_SPECIAL) 108 712.67 T 0 12 Q (Changes the ginfo without checking whether it is shared or not. The) 207 712.67 T (advantage of this is that it does not have the overhead of checking if) 207 699.67 T -0.13 (GCs are shared or not, or creating new GCs. The disadvantage is that) 207 686.67 P -0.26 (this change may also af) 207 673.67 P -0.26 (fect other ginfos that share the GCs. It is up to) 318.33 673.67 P (the client to restore the values so that the changed text font does not) 207 660.67 T (af) 207 647.67 T (fect the other ginfos.) 216.1 647.67 T (Subsequent text operations using) 108 622 T 2 11 Q (ginfo) 269.24 622 T 0 12 Q ( will use this font.) 293.06 622 T (void) 108 576 T 1 F (olgx_set_glyph_font\050) 108 562 T 2 11 Q (ginfo, glyphfont_struct, \337ag) 211.95 562 T 1 12 Q (\051) 343.24 562 T 2 11 Q (Graphics_info *ginfo;) 144 542.67 T (XFontstruct glyphfont_struct;) 144 529.67 T (int \337ag;) 144 516.67 T 1 12 Q (olgx_set_glyph_font\050\051) 108 491 T 0 F ( sets the current glyph font. Subsequent graphics operations using) 215.94 491 T 2 11 Q (ginfo) 108 477 T 0 12 Q ( will use this glyph font.) 131.82 477 T 2 11 Q (ginfo) 251.43 477 T 0 12 Q ( is a pointer to Graphics_info.) 275.25 477 T 2 11 Q (glyphfont_struct) 421.48 477 T 0 12 Q ( is the) 499.04 477 T 2 11 Q (XFontstruct) 108 463 T 0 12 Q ( of the desired glyph font.) 164.17 463 T 2 11 Q (\337ag) 291.09 463 T 0 12 Q ( may be one of the following:) 308.8 463 T 2 11 Q (OLGX_NORMAL) 108 443.67 T 0 12 Q (The changed glyph font will be re\337ected only in the speci\336ed ginfo.) 198 443.67 T (Other ginfos that share graphic contexts with the speci\336ed ginfo will) 198 430.67 T (not be af) 198 417.67 T (fected.) 239.75 417.67 T 2 11 Q (OLGX_SPECIAL) 108 401.67 T 0 12 Q -0.17 (Changes the ginfo without checking whether it is shared or not. The ad-) 198 401.67 P -0.05 (vantage of this is that it does not have the overhead of checking if GCs) 198 388.67 P (are shared or not, or creating new GCs. The disadvantage is that this) 198 375.67 T (change may also af) 198 362.67 T (fect other ginfos that share the GCs. It is up to the) 290.04 362.67 T -0.4 (client to restore the values so that the changed glyphfont does not af) 198 349.67 P -0.4 (fect) 519.42 349.67 P (the other ginfos.) 198 336.67 T (void) 108 300 T 1 F (olgx_set_single_color\050) 108 286 T 2 11 Q (ginfo,index,pixval,\337ag) 219.27 286 T 1 12 Q (\051) 324.3 286 T 2 11 Q (Graphics_info * ginfo;) 144 266.67 T (unsigned long pixval;) 144 253.67 T (int index;) 144 240.67 T (int \337ag;) 144 227.67 T 1 12 Q (olgx_set_single_color\050\051) 108 202 T 0 F ( sets the color of the index member of the \336ve element array of) 223.27 202 T (colors contained in) 108 188 T 2 11 Q (ginfo) 202.27 188 T 0 12 Q ( to the speci\336ed pixel value) 226.09 188 T 2 11 Q (pixval) 360.67 188 T 0 12 Q (.) 388.75 188 T 2 11 Q (index) 394.74 188 T 0 12 Q ( can be any one of the) 421 188 T -0.12 (\336ve members of the array namely OLGX_WHITE \0500\051, OLGX_BLACK \0501\051, OLGX_BG1) 108 174 P (\0502\051, OLGX_BG2 \0503\051, or OLGX_BG3 \0504\051.) 108 160 T 2 11 Q (\337ag) 316.84 160 T 0 12 Q ( may be one of the following:) 334.55 160 T 2 11 Q (OLGX_NORMAL) 108 140.67 T 0 12 Q (The changed color will be re\337ected only in the speci\336ed ginfo. Other) 198 140.67 T (ginfos that share graphic contexts with the speci\336ed ginfo will not be) 198 127.67 T (af) 198 114.67 T (fected.) 207.1 114.67 T 2 11 Q (OLGX_SPECIAL) 108 98.67 T 0 12 Q -0.17 (Changes the ginfo without checking whether it is shared or not. The ad-) 198 98.67 P -0.05 (vantage of this is that it does not have the overhead of checking if GCs) 198 85.67 P (are shared or not, or creating new GCs. The disadvantage is that this) 198 72.67 T FMENDPAGE %%EndPage: "3" 2 %%Page: "2" 2 612 792 0 FMBEGINPAGE 108 740.81 540 756 R 7 X 0 K V 108 54 540 54 2 L V 0.25 H 2 Z 0 X N 108 36 540 47.95 R 7 X V 0 8 Q 0 X (OLGX \321 Application Programmer Interface) 108 42.62 T (October 4, 1991) 298.13 42.62 T (2) 536 42.62 T 108 63 540 720 R 7 X V 0 12 Q 0 X -0.28 (\0502\051, OLGX_BG2 \0503\051 and OLGX_BG3 \0504\051. In a monochrome environment, only white and) 108 712 P (black need to be set. The application must maintain the colormap and allocate the colors) 108 698 T (properly) 108 684 T (. In 3D mode, applications are encouraged to use) 147.85 684 T 1 F (olgx_calculate_3Dcolors\050\051) 385.34 684 T 0 F ( to) 515.92 684 T (get the OLGX_BG2, OLGX_BG3, and OLGX_WHITE pixel values. Please refer to the) 108 670 T (O) 108 656 T 0 11 Q (PEN) 116.66 656 T 0 12 Q ( L) 137.41 656 T 0 11 Q (OOK) 147.74 656 T 0 12 Q ( speci\336cations for further details on these colors.) 171.54 656 T 2 11 Q (stipple_pixmaps[ ]) 407.7 656 T 0 12 Q ( is ig-) 495.62 656 T (nored.) 108 642 T 1 F (olgx_initialize\050\051) 108 622 T 0 F ( still exists for backward compatibility reasons.) 185.97 622 T (void) 108 582 T 1 F (olgx_destroy\050) 108 568 T 2 11 Q (ginfo) 174.62 568 T 1 12 Q (\051) 198.44 568 T 2 11 Q (Graphics_info *ginfo;) 144 548.67 T 1 12 Q (olgx_destroy\050\051) 108 523 T 0 F ( destroys an existing Graphics_info structure) 178.62 523 T 2 11 Q (info) 396.46 523 T 0 12 Q (. In the process,) 414.17 523 T 1 F (olgx_de-) 492.78 523 T -0.34 (stroy\050\051) 108 509 P 0 F -0.34 ( will free up any server resources that OLGX has associated with the speci\336ed) 139.97 509 P 2 11 Q -0.35 (ginfo) 513.53 509 P 0 12 Q (and not shared by other) 108 495 T 2 11 Q (ginfos) 223.58 495 T 0 12 Q (.) 252.89 495 T (void) 108 469 T 1 F (olgx_calculate_3Dcolors\050) 108 455 T 0 F (fg, bg1, bg2, bg3, white) 234.59 455 T 1 F (\051) 349.19 455 T 2 11 Q (XColor) 144 435.67 T (*fg, *bg1;) 225 435.67 T (XColor) 144 422.67 T (*bg2, *bg3, *white;) 225 422.67 T (/* Return values */) 324 422.67 T 1 12 Q -0.43 (olgx_calculate_3Dcolors\050\051) 108 397 P 0 F -0.43 ( is a utility function which calculates a pleasant combination of) 238.58 397 P 2 11 Q (bg2) 108 383 T 0 12 Q (,) 126.32 383 T 2 11 Q (bg3) 132.32 383 T 0 12 Q (, and) 150.65 383 T 2 11 Q (white) 176.96 383 T 0 12 Q ( \050highlight\051 color values given the) 202.6 383 T 2 11 Q (fg) 368.5 383 T 0 12 Q ( \050foreground\051 and) 377.66 383 T 2 11 Q (bg1) 465.25 383 T 0 12 Q ( \050back-) 483.57 383 T (ground\051 values. The calculation adheres to the O) 108 369 T 0 11 Q (PEN) 341.15 369 T 0 12 Q ( L) 361.9 369 T 0 11 Q (OOK) 372.23 369 T 0 12 Q ( speci\336cation.) 396.03 369 T 2 11 Q (fg) 108 349 T 0 12 Q (,) 117.16 349 T 2 11 Q (bg1) 123.16 349 T 0 12 Q (,) 141.48 349 T 2 11 Q (bg2) 147.48 349 T 0 12 Q (,) 165.81 349 T 2 11 Q (bg3) 171.8 349 T 0 12 Q (, and) 190.13 349 T 2 11 Q (white) 216.44 349 T 0 12 Q ( are pre-allocated) 242.08 349 T 2 11 Q (XColor) 328.33 349 T 0 12 Q (structs with) 364.96 349 T 2 11 Q (fg) 423.59 349 T 0 12 Q ( and) 432.76 349 T 2 11 Q (bg1) 456.07 349 T 0 12 Q ( initialized) 474.4 349 T -0.45 (with the appropriate foreground and background pixel values. On the return,) 108 335 P 2 11 Q -0.46 (bg2) 472.4 335 P 0 12 Q -0.45 (,) 490.72 335 P 2 11 Q -0.46 (bg3) 496.27 335 P 0 12 Q -0.45 (, and) 514.59 335 P 2 11 Q (white) 108 321 T 0 12 Q ( XColor structs are initialized with the O) 133.64 321 T 0 11 Q (PEN) 329.18 321 T 0 12 Q ( L) 349.94 321 T 0 11 Q (OOK) 360.26 321 T 0 12 Q ( speci\336ed values.) 384.06 321 T 3 16 Q (3.0 Manipulation Functions) 108 280.33 T 0 12 Q (void) 108 253 T 1 F (olgx_set_text_font) 111 239 T 0 F (\050) 201.62 239 T 2 11 Q (ginfo, font_struct, \337ag) 205.61 239 T 0 12 Q (\051) 310.65 239 T 2 11 Q (Graphics_info) 144 219.67 T (*ginfo;) 225 219.67 T (XFontstruct) 144 206.67 T (font_struct;) 225 206.67 T (int) 144 193.67 T (\337ag;) 225 193.67 T 1 12 Q (olgx_set_text_font\050\051) 108 168 T 0 F ( sets the current text font.) 206.61 168 T 2 11 Q (ginfo) 331.52 168 T 0 12 Q ( is a pointer to the Graphics Informa-) 355.34 168 T -0.35 (tion Structure.) 108 154 P 2 11 Q -0.36 (font_struct) 178.92 154 P 0 12 Q -0.35 ( is the) 230.22 154 P 2 11 Q -0.36 (XFontstruct) 260.82 154 P 0 12 Q -0.35 ( of the desired text font.) 316.99 154 P 2 11 Q -0.36 (\337ag) 432.47 154 P 0 12 Q -0.35 ( may be one of the) 450.18 154 P (following:) 108 140 T 2 11 Q (OLGX_NORMAL) 108 120.67 T 0 12 Q (The changed text font will be re\337ected only in the speci\336ed ginfo.) 207 120.67 T (Other ginfos that share graphic contexts with the speci\336ed ginfo will) 207 107.67 T (not be af) 207 94.67 T (fected.) 248.75 94.67 T FMENDPAGE %%EndPage: "2" 1 %%Page: "1" 1 612 792 0 FMBEGINPAGE 108 740.81 540 756 R 7 X 0 K V 108 54 540 54 2 L V 0.25 H 2 Z 0 X N 108 36 540 47.95 R 7 X V 0 8 Q 0 X (OLGX \321 Application Programmer Interface) 108 42.62 T (October 4, 1991) 298.13 42.62 T (1) 536 42.62 T 108 63 540 720 R 7 X V 3 20 Q 0 X (OLGX \321 Application Pr) 130.43 706.67 T (ogrammer Interface) 344.97 706.67 T 3 16 Q (1.0 Intr) 108 659.33 T (oduction) 163.23 659.33 T 0 12 Q -0.22 (This document de\336nes functions for O) 108 632 P 0 11 Q -0.21 (PEN) 291.75 632 P 0 12 Q -0.22 ( L) 312.51 632 P 0 11 Q -0.21 (OOK) 322.61 632 P 0 12 Q -0.22 ( Graphics Package \050OLGX\051. OLGX is a) 346.4 632 P -0.23 (library for rendering O) 108 618 P 0 11 Q -0.22 (PEN) 216.87 618 P 0 12 Q -0.23 ( L) 237.62 618 P 0 11 Q -0.22 (OOK) 247.71 618 P 0 12 Q -0.23 ( items such as scrollbars, buttons, etc. Most application) 271.51 618 P (programmers will probably have no need to use the OLGX library unless they want to) 108 604 T (write extensions to the XV) 108 590 T (iew toolkit and/or want to render an O) 235.86 590 T 0 11 Q (PEN) 419.4 590 T 0 12 Q ( L) 440.15 590 T 0 11 Q (OOK) 450.48 590 T 0 12 Q ( item.) 474.27 590 T 3 16 Q (2.0 Initialization Functions) 108 549.33 T 0 12 Q -0.25 (OLGX initialization consists of setting initial graphical information used in rendering \050the) 108 526 P (graphics information structure is called) 108 512 T 2 11 Q (Graphics_info) 298.86 512 T 0 12 Q (, henceforth referred to as) 366.64 512 T 2 11 Q (ginfo) 493.18 512 T 0 12 Q (\051.) 517 512 T (Ginfos contain the values which de\336ne graphical characteristics. These characteristics in-) 108 498 T -0.07 (clude pixel values, text fonts, and glyph fonts. As you can see, the) 108 484 P 2 11 Q -0.07 (ginfo) 427.19 484 P 0 12 Q -0.07 ( is the mechanism) 451.01 484 P -0.28 (by which graphics information is passed between clients and OLGX. Macros are provided) 108 470 P -0.37 (to access the members of the) 108 456 P 2 11 Q -0.38 (ginfo) 246.98 456 P 0 12 Q -0.37 ( struct, because the) 270.8 456 P 2 11 Q -0.38 (ginfo) 363.56 456 P 0 12 Q -0.37 ( struct is intended to be opaque.) 387.38 456 P (Clients should NOT copy the) 108 442 T 2 11 Q (ginfo) 251.59 442 T 0 12 Q ( struct or try to access its members directly) 275.4 442 T (Each) 108 422 T 2 11 Q (ginfo) 134.97 422 T 0 12 Q ( has 9 or less graphics contexts \050GCs\051, depending on whether 2D or 3D is spec-) 158.79 422 T (i\336ed. However) 108 408 T (, in order to save memory and reduce overhead,) 178.8 408 T 2 11 Q (ginfos) 410.27 408 T 0 12 Q ( will share graphic) 439.58 408 T (contexts with other ginfos.) 108 394 T (The following describes the OLGX initialization functions.) 108 374 T (Graphics_info *) 108 354 T 1 F ( olgx_main_initialize\050) 108 340 T 2 11 Q (display) 228.29 340 T (, screen, depth, d_\337ag, glyphfont_struct, textfont_struct,) 261.67 340 T (pixvals, stipple_pixmaps) 144 326 T 1 12 Q (\051) 262.44 326 T 2 11 Q (Display) 144 306.67 T (*display;) 225 306.67 T (int) 144 293.67 T (screen;) 225 293.67 T (unsigned int) 144 280.67 T (depth;) 225 280.67 T (int) 144 267.67 T (d_\337ag;) 225 267.67 T (XFontstruct) 144 254.67 T (glyphfont_struct;) 225 254.67 T (XFontstruct) 144 241.67 T (textfont_struct;) 225 241.67 T (unsigned long) 144 228.67 T (pixvals[ ];) 225 228.67 T (Pixmap) 144 215.67 T (stipple_pixmaps[ ];) 225 215.67 T 1 12 Q -0.24 (olgx_main_initialize\050\051) 108 190 P 0 F -0.24 ( creates and initializes a graphics information structure.) 217.3 190 P 2 11 Q -0.24 (display) 484.2 190 P 0 12 Q -0.24 ( is a) 518.39 190 P (pointer to the display structure associated with an active server connection.) 108 176 T 2 11 Q (screen) 471.06 176 T 0 12 Q ( is the) 504.03 176 T -0.19 (desired screen.) 108 162 P 2 11 Q -0.2 (depth) 181.88 162 P 0 12 Q -0.19 ( is the depth of the window) 209.37 162 P -0.19 (.) 338.01 162 P 2 11 Q -0.2 ( d_\337ag) 341.01 162 P 0 12 Q -0.19 ( may be one of the following \337ags:) 373.79 162 P (OLGX_2D) 108 142 T (T) 279 142 T (wo dimensional rendering.) 285.49 142 T (OLGX_3D_COLOR) 108 122 T (Three dimensional rendering on color screen.) 279 122 T 2 11 Q (glyphfont_struct) 108 96 T 0 12 Q ( is the) 185.55 96 T 2 11 Q (XFontstruct) 217.2 96 T 0 12 Q ( of the desired glyphfont.) 273.38 96 T 2 11 Q (textfont_struct) 397.29 96 T 0 12 Q ( is the) 466.3 96 T 2 11 Q (XFont-) 497.95 96 T -0.35 (struct) 108 82 P 0 12 Q -0.34 ( of the desired text font.) 134.86 82 P 2 11 Q -0.35 (pixvals) 250.39 82 P 0 12 Q -0.34 ( is an array of \336ve pixel values. The colors associated) 283.96 82 P (with each element of) 108 68 T 2 11 Q (pixvals) 211.25 68 T 0 12 Q ( are OLGX_WHITE \0500\051, OLGX_BLACK\0501\051, OLGX_BG1) 244.82 68 T FMENDPAGE %%EndPage: "1" 0 %%Trailer %%BoundingBox: 0 0 612 792 %%Pages: 14 -1 %%DocumentFonts: Times-Roman %%+ Times-BoldItalic %%+ Helvetica %%+ Times-Bold %%+ Courier xview-3.2p1.4/doc/whats_new.ps100644 1750 1750 400332 5413747555 13613 0ustar mbmb%! %%BoundingBox: (atend) %%Pages: (atend) %%DocumentFonts: (atend) %%EndComments %%BeginProlog % % FrameMaker postscript_prolog 3.0, for use with FrameMaker 3.0 % This postscript_prolog file is Copyright (c) 1986-1991 Frame Technology % Corporation. All rights reserved. This postscript_prolog file may be % freely copied and distributed in conjunction with documents created using % FrameMaker. % % Known Problems: % Due to bugs in Transcript, the 'PS-Adobe-' is omitted from line 1 /FMversion (3.0) def % Set up Color vs. Black-and-White /FMPrintInColor false def /colorimage where { pop /currentcolortransfer where { pop /FMPrintInColor true def statusdict begin /processcolors where { pop processcolors 1 le { /FMPrintInColor false def } if }{ /deviceinfo where { pop deviceinfo /Colors known { deviceinfo /Colors get 1 le { /FMPrintInColor false def } if } if } if } ifelse end /currentcanvas where { % NeWSprint? pop systemdict /separationdict known not { /FMPrintInColor false def } if } if } if } if % Uncomment this line to force b&w on color printer % /FMPrintInColor false def /FrameDict 195 dict def systemdict /errordict known not {/errordict 10 dict def errordict /rangecheck {stop} put} if % The readline in 23.0 doesn't recognize cr's as nl's on AppleTalk FrameDict /tmprangecheck errordict /rangecheck get put errordict /rangecheck {FrameDict /bug true put} put FrameDict /bug false put mark % Some PS machines read past the CR, so keep the following 3 lines together! currentfile 5 string readline 00 0000000000 cleartomark errordict /rangecheck FrameDict /tmprangecheck get put FrameDict /bug get { /readline { /gstring exch def /gfile exch def /gindex 0 def { gfile read pop dup 10 eq {exit} if dup 13 eq {exit} if gstring exch gindex exch put /gindex gindex 1 add def } loop pop gstring 0 gindex getinterval true } def } if /FMVERSION { FMversion ne { /Times-Roman findfont 18 scalefont setfont 100 100 moveto (FrameMaker version does not match postscript_prolog!) dup = show showpage } if } def /FMLOCAL { FrameDict begin 0 def end } def /gstring FMLOCAL /gfile FMLOCAL /gindex FMLOCAL /orgxfer FMLOCAL /orgproc FMLOCAL /organgle FMLOCAL /orgfreq FMLOCAL /yscale FMLOCAL /xscale FMLOCAL /manualfeed FMLOCAL /paperheight FMLOCAL /paperwidth FMLOCAL /FMDOCUMENT { array /FMfonts exch def /#copies exch def FrameDict begin 0 ne dup {setmanualfeed} if /manualfeed exch def /paperheight exch def /paperwidth exch def /yscale exch def /xscale exch def currenttransfer cvlit /orgxfer exch def currentscreen cvlit /orgproc exch def /organgle exch def /orgfreq exch def setpapername manualfeed {true} {papersize} ifelse {manualpapersize} {false} ifelse {desperatepapersize} if end } def /pagesave FMLOCAL /orgmatrix FMLOCAL /landscape FMLOCAL /FMBEGINPAGE { FrameDict begin /pagesave save def 3.86 setmiterlimit /landscape exch 0 ne def landscape { 90 rotate 0 exch neg translate pop } {pop pop} ifelse xscale yscale scale /orgmatrix matrix def gsave } def /FMENDPAGE { grestore pagesave restore end showpage } def /FMFONTDEFINE { FrameDict begin findfont ReEncode 1 index exch definefont FMfonts 3 1 roll put end } def /FMFILLS { FrameDict begin array /fillvals exch def end } def /FMFILL { FrameDict begin fillvals 3 1 roll put end } def /FMNORMALIZEGRAPHICS { newpath 0.0 0.0 moveto 1 setlinewidth 0 setlinecap 0 0 0 sethsbcolor 0 setgray } bind def /fx FMLOCAL /fy FMLOCAL /fh FMLOCAL /fw FMLOCAL /llx FMLOCAL /lly FMLOCAL /urx FMLOCAL /ury FMLOCAL /FMBEGINEPSF { end /FMEPSF save def /showpage {} def FMNORMALIZEGRAPHICS [/fy /fx /fh /fw /ury /urx /lly /llx] {exch def} forall fx fy translate rotate fw urx llx sub div fh ury lly sub div scale llx neg lly neg translate } bind def /FMENDEPSF { FMEPSF restore FrameDict begin } bind def FrameDict begin /setmanualfeed { %%BeginFeature *ManualFeed True statusdict /manualfeed true put %%EndFeature } def /max {2 copy lt {exch} if pop} bind def /min {2 copy gt {exch} if pop} bind def /inch {72 mul} def /pagedimen { paperheight sub abs 16 lt exch paperwidth sub abs 16 lt and {/papername exch def} {pop} ifelse } def /papersizedict FMLOCAL /setpapername { /papersizedict 14 dict def papersizedict begin /papername /unknown def /Letter 8.5 inch 11.0 inch pagedimen /LetterSmall 7.68 inch 10.16 inch pagedimen /Tabloid 11.0 inch 17.0 inch pagedimen /Ledger 17.0 inch 11.0 inch pagedimen /Legal 8.5 inch 14.0 inch pagedimen /Statement 5.5 inch 8.5 inch pagedimen /Executive 7.5 inch 10.0 inch pagedimen /A3 11.69 inch 16.5 inch pagedimen /A4 8.26 inch 11.69 inch pagedimen /A4Small 7.47 inch 10.85 inch pagedimen /B4 10.125 inch 14.33 inch pagedimen /B5 7.16 inch 10.125 inch pagedimen end } def /papersize { papersizedict begin /Letter {lettertray letter} def /LetterSmall {lettertray lettersmall} def /Tabloid {11x17tray 11x17} def /Ledger {ledgertray ledger} def /Legal {legaltray legal} def /Statement {statementtray statement} def /Executive {executivetray executive} def /A3 {a3tray a3} def /A4 {a4tray a4} def /A4Small {a4tray a4small} def /B4 {b4tray b4} def /B5 {b5tray b5} def /unknown {unknown} def papersizedict dup papername known {papername} {/unknown} ifelse get end /FMdicttop countdictstack 1 add def statusdict begin stopped end countdictstack -1 FMdicttop {pop end} for } def /manualpapersize { papersizedict begin /Letter {letter} def /LetterSmall {lettersmall} def /Tabloid {11x17} def /Ledger {ledger} def /Legal {legal} def /Statement {statement} def /Executive {executive} def /A3 {a3} def /A4 {a4} def /A4Small {a4small} def /B4 {b4} def /B5 {b5} def /unknown {unknown} def papersizedict dup papername known {papername} {/unknown} ifelse get end stopped } def /desperatepapersize { statusdict /setpageparams known { paperwidth paperheight 0 1 statusdict begin {setpageparams} stopped pop end } if } def /savematrix { orgmatrix currentmatrix pop } bind def /restorematrix { orgmatrix setmatrix } bind def /dmatrix matrix def /dpi 72 0 dmatrix defaultmatrix dtransform dup mul exch dup mul add sqrt def /freq dpi 18.75 div 8 div round dup 0 eq {pop 1} if 8 mul dpi exch div def /sangle 1 0 dmatrix defaultmatrix dtransform exch atan def /DiacriticEncoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /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 /bracketleft /backslash /bracketright /asciicircum /underscore /grave /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 /braceleft /bar /braceright /asciitilde /.notdef /Adieresis /Aring /Ccedilla /Eacute /Ntilde /Odieresis /Udieresis /aacute /agrave /acircumflex /adieresis /atilde /aring /ccedilla /eacute /egrave /ecircumflex /edieresis /iacute /igrave /icircumflex /idieresis /ntilde /oacute /ograve /ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex /udieresis /dagger /.notdef /cent /sterling /section /bullet /paragraph /germandbls /registered /copyright /trademark /acute /dieresis /.notdef /AE /Oslash /.notdef /.notdef /.notdef /.notdef /yen /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /ordfeminine /ordmasculine /.notdef /ae /oslash /questiondown /exclamdown /logicalnot /.notdef /florin /.notdef /.notdef /guillemotleft /guillemotright /ellipsis /.notdef /Agrave /Atilde /Otilde /OE /oe /endash /emdash /quotedblleft /quotedblright /quoteleft /quoteright /.notdef /.notdef /ydieresis /Ydieresis /fraction /currency /guilsinglleft /guilsinglright /fi /fl /daggerdbl /periodcentered /quotesinglbase /quotedblbase /perthousand /Acircumflex /Ecircumflex /Aacute /Edieresis /Egrave /Iacute /Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex /.notdef /Ograve /Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde /macron /breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron ] def /ReEncode { dup length dict begin { 1 index /FID ne {def} {pop pop} ifelse } forall 0 eq {/Encoding DiacriticEncoding def} if currentdict end } bind def /graymode true def /bwidth FMLOCAL /bpside FMLOCAL /bstring FMLOCAL /onbits FMLOCAL /offbits FMLOCAL /xindex FMLOCAL /yindex FMLOCAL /x FMLOCAL /y FMLOCAL /setpattern { /bwidth exch def /bpside exch def /bstring exch def /onbits 0 def /offbits 0 def freq sangle landscape {90 add} if {/y exch def /x exch def /xindex x 1 add 2 div bpside mul cvi def /yindex y 1 add 2 div bpside mul cvi def bstring yindex bwidth mul xindex 8 idiv add get 1 7 xindex 8 mod sub bitshift and 0 ne {/onbits onbits 1 add def 1} {/offbits offbits 1 add def 0} ifelse } setscreen {} settransfer offbits offbits onbits add div FMsetgray /graymode false def } bind def /grayness { FMsetgray graymode not { /graymode true def orgxfer cvx settransfer orgfreq organgle orgproc cvx setscreen } if } bind def /HUE FMLOCAL /SAT FMLOCAL /BRIGHT FMLOCAL /Colors FMLOCAL FMPrintInColor { /HUE 0 def /SAT 0 def /BRIGHT 0 def % array of arrays Hue and Sat values for the separations [HUE BRIGHT] /Colors [[0 0 ] % black [0 0 ] % white [0.00 1.0] % red [0.37 1.0] % green [0.60 1.0] % blue [0.50 1.0] % cyan [0.83 1.0] % magenta [0.16 1.0] % comment / yellow ] def /BEGINBITMAPCOLOR { BITMAPCOLOR} def /BEGINBITMAPCOLORc { BITMAPCOLORc} def /BEGINBITMAPTRUECOLOR { BITMAPTRUECOLOR } def /BEGINBITMAPTRUECOLORc { BITMAPTRUECOLORc } def /K { Colors exch get dup 0 get /HUE exch store 1 get /BRIGHT exch store HUE 0 eq BRIGHT 0 eq and {1.0 SAT sub setgray} {HUE SAT BRIGHT sethsbcolor} ifelse } def /FMsetgray { /SAT exch 1.0 exch sub store HUE 0 eq BRIGHT 0 eq and {1.0 SAT sub setgray} {HUE SAT BRIGHT sethsbcolor} ifelse } bind def } { /BEGINBITMAPCOLOR { BITMAPGRAY} def /BEGINBITMAPCOLORc { BITMAPGRAYc} def /BEGINBITMAPTRUECOLOR { BITMAPTRUEGRAY } def /BEGINBITMAPTRUECOLORc { BITMAPTRUEGRAYc } def /FMsetgray {setgray} bind def /K { pop } def } ifelse /normalize { transform round exch round exch itransform } bind def /dnormalize { dtransform round exch round exch idtransform } bind def /lnormalize { 0 dtransform exch cvi 2 idiv 2 mul 1 add exch idtransform pop } bind def /H { lnormalize setlinewidth } bind def /Z { setlinecap } bind def /fillvals FMLOCAL /X { fillvals exch get dup type /stringtype eq {8 1 setpattern} {grayness} ifelse } bind def /V { gsave eofill grestore } bind def /N { stroke } bind def /M {newpath moveto} bind def /E {lineto} bind def /D {curveto} bind def /O {closepath} bind def /n FMLOCAL /L { /n exch def newpath normalize moveto 2 1 n {pop normalize lineto} for } bind def /Y { L closepath } bind def /x1 FMLOCAL /x2 FMLOCAL /y1 FMLOCAL /y2 FMLOCAL /rad FMLOCAL /R { /y2 exch def /x2 exch def /y1 exch def /x1 exch def x1 y1 x2 y1 x2 y2 x1 y2 4 Y } bind def /RR { /rad exch def normalize /y2 exch def /x2 exch def normalize /y1 exch def /x1 exch def newpath x1 y1 rad add moveto x1 y2 x2 y2 rad arcto x2 y2 x2 y1 rad arcto x2 y1 x1 y1 rad arcto x1 y1 x1 y2 rad arcto closepath 16 {pop} repeat } bind def /C { grestore gsave R clip } bind def /FMpointsize FMLOCAL /F { FMfonts exch get FMpointsize scalefont setfont } bind def /Q { /FMpointsize exch def F } bind def /T { moveto show } bind def /RF { rotate 0 ne {-1 1 scale} if } bind def /TF { gsave moveto RF show grestore } bind def /P { moveto 0 32 3 2 roll widthshow } bind def /PF { gsave moveto RF 0 32 3 2 roll widthshow grestore } bind def /S { moveto 0 exch ashow } bind def /SF { gsave moveto RF 0 exch ashow grestore } bind def /B { moveto 0 32 4 2 roll 0 exch awidthshow } bind def /BF { gsave moveto RF 0 32 4 2 roll 0 exch awidthshow grestore } bind def /G { gsave newpath normalize translate 0.0 0.0 moveto dnormalize scale 0.0 0.0 1.0 5 3 roll arc closepath fill grestore } bind def /A { gsave savematrix newpath 2 index 2 div add exch 3 index 2 div sub exch normalize 2 index 2 div sub exch 3 index 2 div add exch translate scale 0.0 0.0 1.0 5 3 roll arc restorematrix stroke grestore } bind def /x FMLOCAL /y FMLOCAL /w FMLOCAL /h FMLOCAL /xx FMLOCAL /yy FMLOCAL /ww FMLOCAL /hh FMLOCAL /FMsaveobject FMLOCAL /FMoptop FMLOCAL /FMdicttop FMLOCAL /BEGINPRINTCODE { /FMdicttop countdictstack 1 add def /FMoptop count 4 sub def /FMsaveobject save def userdict begin /showpage {} def FMNORMALIZEGRAPHICS 3 index neg 3 index neg translate } bind def /ENDPRINTCODE { count -1 FMoptop {pop pop} for countdictstack -1 FMdicttop {pop end} for FMsaveobject restore } bind def /gn { 0 { 46 mul cf read pop 32 sub dup 46 lt {exit} if 46 sub add } loop add } bind def /str FMLOCAL /cfs { /str sl string def 0 1 sl 1 sub {str exch val put} for str def } bind def /ic [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223 0 {0 hx} {1 hx} {2 hx} {3 hx} {4 hx} {5 hx} {6 hx} {7 hx} {8 hx} {9 hx} {10 hx} {11 hx} {12 hx} {13 hx} {14 hx} {15 hx} {16 hx} {17 hx} {18 hx} {19 hx} {gn hx} {0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12} {13} {14} {15} {16} {17} {18} {19} {gn} {0 wh} {1 wh} {2 wh} {3 wh} {4 wh} {5 wh} {6 wh} {7 wh} {8 wh} {9 wh} {10 wh} {11 wh} {12 wh} {13 wh} {14 wh} {gn wh} {0 bl} {1 bl} {2 bl} {3 bl} {4 bl} {5 bl} {6 bl} {7 bl} {8 bl} {9 bl} {10 bl} {11 bl} {12 bl} {13 bl} {14 bl} {gn bl} {0 fl} {1 fl} {2 fl} {3 fl} {4 fl} {5 fl} {6 fl} {7 fl} {8 fl} {9 fl} {10 fl} {11 fl} {12 fl} {13 fl} {14 fl} {gn fl} ] def /sl FMLOCAL /val FMLOCAL /ws FMLOCAL /im FMLOCAL /bs FMLOCAL /cs FMLOCAL /len FMLOCAL /pos FMLOCAL /ms { /sl exch def /val 255 def /ws cfs /im cfs /val 0 def /bs cfs /cs cfs } bind def 400 ms /ip { is 0 cf cs readline pop { ic exch get exec add } forall pop } bind def /wh { /len exch def /pos exch def ws 0 len getinterval im pos len getinterval copy pop pos len } bind def /bl { /len exch def /pos exch def bs 0 len getinterval im pos len getinterval copy pop pos len } bind def /s1 1 string def /fl { /len exch def /pos exch def /val cf s1 readhexstring pop 0 get def pos 1 pos len add 1 sub {im exch val put} for pos len } bind def /hx { 3 copy getinterval cf exch readhexstring pop pop } bind def /h FMLOCAL /w FMLOCAL /d FMLOCAL /lb FMLOCAL /bitmapsave FMLOCAL /is FMLOCAL /cf FMLOCAL /wbytes { dup 8 eq {pop} {1 eq {7 add 8 idiv} {3 add 4 idiv} ifelse} ifelse } bind def /BEGINBITMAPBWc { 1 {} COMMONBITMAPc } bind def /BEGINBITMAPGRAYc { 8 {} COMMONBITMAPc } bind def /BEGINBITMAP2BITc { 2 {} COMMONBITMAPc } bind def /COMMONBITMAPc { /r exch def /d exch def gsave translate rotate scale /h exch def /w exch def /lb w d wbytes def sl lb lt {lb ms} if /bitmapsave save def r /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def w h d [w 0 0 h neg 0 h] {ip} image bitmapsave restore grestore } bind def /BEGINBITMAPBW { 1 {} COMMONBITMAP } bind def /BEGINBITMAPGRAY { 8 {} COMMONBITMAP } bind def /BEGINBITMAP2BIT { 2 {} COMMONBITMAP } bind def /COMMONBITMAP { /r exch def /d exch def gsave translate rotate scale /h exch def /w exch def /bitmapsave save def r /is w d wbytes string def /cf currentfile def w h d [w 0 0 h neg 0 h] {cf is readhexstring pop} image bitmapsave restore grestore } bind def /proc1 FMLOCAL /proc2 FMLOCAL /newproc FMLOCAL /Fmcc { /proc2 exch cvlit def /proc1 exch cvlit def /newproc proc1 length proc2 length add array def newproc 0 proc1 putinterval newproc proc1 length proc2 putinterval newproc cvx } bind def /ngrayt 256 array def /nredt 256 array def /nbluet 256 array def /ngreent 256 array def /gryt FMLOCAL /blut FMLOCAL /grnt FMLOCAL /redt FMLOCAL /indx FMLOCAL /cynu FMLOCAL /magu FMLOCAL /yelu FMLOCAL /k FMLOCAL /u FMLOCAL /colorsetup { currentcolortransfer /gryt exch def /blut exch def /grnt exch def /redt exch def 0 1 255 { /indx exch def /cynu 1 red indx get 255 div sub def /magu 1 green indx get 255 div sub def /yelu 1 blue indx get 255 div sub def /k cynu magu min yelu min def /u k currentundercolorremoval exec def nredt indx 1 0 cynu u sub max sub redt exec put ngreent indx 1 0 magu u sub max sub grnt exec put nbluet indx 1 0 yelu u sub max sub blut exec put ngrayt indx 1 k currentblackgeneration exec sub gryt exec put } for {255 mul cvi nredt exch get} {255 mul cvi ngreent exch get} {255 mul cvi nbluet exch get} {255 mul cvi ngrayt exch get} setcolortransfer {pop 0} setundercolorremoval {} setblackgeneration } bind def /tran FMLOCAL /fakecolorsetup { /tran 256 string def 0 1 255 {/indx exch def tran indx red indx get 77 mul green indx get 151 mul blue indx get 28 mul add add 256 idiv put} for currenttransfer {255 mul cvi tran exch get 255.0 div} exch Fmcc settransfer } bind def /BITMAPCOLOR { /d 8 def gsave translate rotate scale /h exch def /w exch def /bitmapsave save def colorsetup /is w d wbytes string def /cf currentfile def w h d [w 0 0 h neg 0 h] {cf is readhexstring pop} {is} {is} true 3 colorimage bitmapsave restore grestore } bind def /BITMAPCOLORc { /d 8 def gsave translate rotate scale /h exch def /w exch def /lb w d wbytes def sl lb lt {lb ms} if /bitmapsave save def colorsetup /is im 0 lb getinterval def ws 0 lb getinterval is copy pop /cf currentfile def w h d [w 0 0 h neg 0 h] {ip} {is} {is} true 3 colorimage bitmapsave restore grestore } bind def /BITMAPTRUECOLORc { gsave translate rotate scale /h exch def /w exch def /bitmapsave save def /is w string def ws 0 w getinterval is copy pop /cf currentfile def w h 8 [w 0 0 h neg 0 h] {ip} {gip} {bip} true 3 colorimage bitmapsave restore grestore } bind def /BITMAPTRUECOLOR { gsave translate rotate scale /h exch def /w exch def /bitmapsave save def /is w string def /gis w string def /bis w string def /cf currentfile def w h 8 [w 0 0 h neg 0 h] { cf is readhexstring pop } { cf gis readhexstring pop } { cf bis readhexstring pop } true 3 colorimage bitmapsave restore grestore } bind def /BITMAPTRUEGRAYc { gsave translate rotate scale /h exch def /w exch def /bitmapsave save def /is w string def ws 0 w getinterval is copy pop /cf currentfile def w h 8 [w 0 0 h neg 0 h] {ip gip bip w gray} image bitmapsave restore grestore } bind def /ww FMLOCAL /r FMLOCAL /g FMLOCAL /b FMLOCAL /i FMLOCAL /gray { /ww exch def /b exch def /g exch def /r exch def 0 1 ww 1 sub { /i exch def r i get .299 mul g i get .587 mul b i get .114 mul add add r i 3 -1 roll floor cvi put } for r } bind def /BITMAPTRUEGRAY { gsave translate rotate scale /h exch def /w exch def /bitmapsave save def /is w string def /gis w string def /bis w string def /cf currentfile def w h 8 [w 0 0 h neg 0 h] { cf is readhexstring pop cf gis readhexstring pop cf bis readhexstring pop w gray} image bitmapsave restore grestore } bind def /BITMAPGRAY { 8 {fakecolorsetup} COMMONBITMAP } bind def /BITMAPGRAYc { 8 {fakecolorsetup} COMMONBITMAPc } bind def /ENDBITMAP { } bind def end /ALDsave FMLOCAL /ALDmatrix matrix def ALDmatrix currentmatrix pop /StartALD { /ALDsave save def savematrix ALDmatrix setmatrix } bind def /InALD { restorematrix } bind def /DoneALD { ALDsave restore } bind def %%EndProlog %%BeginSetup (3.0) FMVERSION 1 1 612 792 0 1 8 FMDOCUMENT 0 0 /Times-Roman FMFONTDEFINE 1 0 /Helvetica FMFONTDEFINE 2 0 /Helvetica-Bold FMFONTDEFINE 3 0 /Courier FMFONTDEFINE 4 0 /Courier-Bold FMFONTDEFINE 32 FMFILLS 0 0 FMFILL 1 0.1 FMFILL 2 0.3 FMFILL 3 0.5 FMFILL 4 0.7 FMFILL 5 0.9 FMFILL 6 0.97 FMFILL 7 1 FMFILL 8 <0f1e3c78f0e1c387> FMFILL 9 <0f87c3e1f0783c1e> FMFILL 10 FMFILL 11 FMFILL 12 <8142241818244281> FMFILL 13 <03060c183060c081> FMFILL 14 <8040201008040201> FMFILL 16 1 FMFILL 17 0.9 FMFILL 18 0.7 FMFILL 19 0.5 FMFILL 20 0.3 FMFILL 21 0.1 FMFILL 22 0.03 FMFILL 23 0 FMFILL 24 FMFILL 25 FMFILL 26 <3333333333333333> FMFILL 27 <0000ffff0000ffff> FMFILL 28 <7ebddbe7e7dbbd7e> FMFILL 29 FMFILL 30 <7fbfdfeff7fbfdfe> FMFILL %%EndSetup %%Page: "15" 15 %%BeginPaperSize: Letter %%EndPaperSize 612 792 1 FMBEGINPAGE 72 750 720 760 R 7 X 0 K V 72 216.67 720 226.67 R V 72 741 720 753 R V 72 223 720 235 R V 0 12 Q 0 X (XView 3.2) 72 227 T (March 2, 1993) 378.84 227 T ( What\325s New- 15) 637.69 227 T 72 729 720 729 2 L 7 X V 0.5 H 2 Z 0 X N 72 247 720 247 2 L 7 X V 0 X N 72 732 105 765 R 7 X V 0 X 0 72 732 -72 -732 33 33 BEGINPRINTCODE % Sun Logo for Frame Maker % % and modified to scale to fill bounding textrect % % "greyvalue" accepts numbers from 0 (black) to 1 (white) % Frame Maker "printer code" textrect puts x y w h on stack /greyvalue 0 def /height exch def /width exch def /ypos exch def /xpos exch def gsave width 2 div height 10.5 div translate width 10.5 div height 10.5 div scale 45 rotate /Uchar { newpath -.1 0 moveto 0 0 .1 180 360 arc 0 2.9 rlineto .8 0 rlineto 0 -2.9 rlineto 0 0 .9 0 180 arcn 0 2.9 rlineto .8 0 rlineto closepath greyvalue setgray fill } def /2Uchar { Uchar gsave 4 4 translate Uchar grestore } def 4 { 2Uchar 6 0 translate 90 rotate } repeat grestore ENDPRINTCODE 107 745 155 759 R 7 X V 0 X 0 107 745 -107 -745 48 14 BEGINPRINTCODE % This is the Sun logo. For best results, print on a LaserWriter Plus. (sun) 1 /fnt /Palatino-Bold findfont def /mode exch def /printme exch def /h exch def /w exch def /y exch def /x exch def 0 0 moveto fnt setfont /wsize w printme stringwidth pop div def /hsize h (X) true charpath flattenpath pathbbox /t exch def pop pop pop t div def mode 1 eq {/hsize wsize def} if mode 2 eq {/wsize hsize def} if fnt [wsize 0 0 hsize 0 0] makefont setfont printme show ENDPRINTCODE 108 738 154 743 R 7 X V 0 X 0 108 738 -108 -738 46 5 BEGINPRINTCODE (microsystems) 1 /fnt /Helvetica findfont def /mode exch def /printme exch def /h exch def /w exch def /y exch def /x exch def 0 0 moveto fnt setfont /wsize w printme stringwidth pop div def /hsize h (X) true charpath flattenpath pathbbox /t exch def pop pop pop t div def mode 1 eq {/hsize wsize def} if mode 2 eq {/wsize hsize def} if fnt [wsize 0 0 hsize 0 0] makefont setfont printme show ENDPRINTCODE 72 252 720 720 R 7 X V 1 18 Q 0 X (MENU_NROWS attribute has been implemented \050in previous releases) 108 708 T (this attribute existed didn\325t work as expected\051) 108 688 T (notifier errors are no longer generated when application is abnormally) 108 648 T (terminated via \322kill \323) 108 628 T (Notices flush the input queue before being displayed \050this prevents them) 108 588 T (from being accidently dismissed when the user enters a CR before the) 108 568 T (notice is displayed\051) 108 548 T (\324tip\325 now works in a cmdtool) 108 508 T (XView no longer grabs the select button if running in \322FollowMouse\323 mode) 108 468 T (password security hole plugged) 108 428 T (overlapping cmdtools and shelltool are properly redrawn after scrolling) 108 388 T (text caret is moved correctly when navigated with arrow keys inside) 108 348 T (a panel text item) 108 328 T FMENDPAGE %%EndPage: "15" 14 %%Page: "14" 14 612 792 1 FMBEGINPAGE 72 750 720 760 R 7 X 0 K V 72 216.67 720 226.67 R V 72 741 720 753 R V 72 223 720 235 R V 0 12 Q 0 X (XView 3.2) 72 227 T (March 2, 1993) 378.84 227 T ( What\325s New- 14) 637.69 227 T 72 729 720 729 2 L 7 X V 0.5 H 2 Z 0 X N 72 247 720 247 2 L 7 X V 0 X N 72 732 105 765 R 7 X V 0 X 0 72 732 -72 -732 33 33 BEGINPRINTCODE % Sun Logo for Frame Maker % % and modified to scale to fill bounding textrect % % "greyvalue" accepts numbers from 0 (black) to 1 (white) % Frame Maker "printer code" textrect puts x y w h on stack /greyvalue 0 def /height exch def /width exch def /ypos exch def /xpos exch def gsave width 2 div height 10.5 div translate width 10.5 div height 10.5 div scale 45 rotate /Uchar { newpath -.1 0 moveto 0 0 .1 180 360 arc 0 2.9 rlineto .8 0 rlineto 0 -2.9 rlineto 0 0 .9 0 180 arcn 0 2.9 rlineto .8 0 rlineto closepath greyvalue setgray fill } def /2Uchar { Uchar gsave 4 4 translate Uchar grestore } def 4 { 2Uchar 6 0 translate 90 rotate } repeat grestore ENDPRINTCODE 107 745 155 759 R 7 X V 0 X 0 107 745 -107 -745 48 14 BEGINPRINTCODE % This is the Sun logo. For best results, print on a LaserWriter Plus. (sun) 1 /fnt /Palatino-Bold findfont def /mode exch def /printme exch def /h exch def /w exch def /y exch def /x exch def 0 0 moveto fnt setfont /wsize w printme stringwidth pop div def /hsize h (X) true charpath flattenpath pathbbox /t exch def pop pop pop t div def mode 1 eq {/hsize wsize def} if mode 2 eq {/wsize hsize def} if fnt [wsize 0 0 hsize 0 0] makefont setfont printme show ENDPRINTCODE 108 738 154 743 R 7 X V 0 X 0 108 738 -108 -738 46 5 BEGINPRINTCODE (microsystems) 1 /fnt /Helvetica findfont def /mode exch def /printme exch def /h exch def /w exch def /y exch def /x exch def 0 0 moveto fnt setfont /wsize w printme stringwidth pop div def /hsize h (X) true charpath flattenpath pathbbox /t exch def pop pop pop t div def mode 1 eq {/hsize wsize def} if mode 2 eq {/wsize hsize def} if fnt [wsize 0 0 hsize 0 0] makefont setfont printme show ENDPRINTCODE 72 252 720 720 R 7 X V 340.03 661.46 108 661.46 2 L 0 X V 1.75 H 0 Z N 2 24 Q (Important Bug Fixes) 108 664 T 1 18 Q (Numerous memory leaks have been plugged in menu, panel and frame) 108 622 T (creation/deletion. Additionally, many textsw and cmdtool memory leaks) 108 602 T (no longer exist.) 108 582 T (cmdtool -M \050limits size of cmdtool tmp file\051 has been enhanced so cmdtool) 108 542 T (memory size doesn\325t grow unchecked and unbounded) 108 522 T (Time required to create, delete or modify a panel text item has been) 108 482 T (significantly reduced \050particularily noticeable when managing many text) 108 462 T (items\051.) 108 442 T (CR no longer turns into a LF when running a program in a shelltool that) 108 402 T (reads text in \324raw\325 mode.) 108 382 T (panel text and numeric text items have auto-scroll buttons) 108 342 T (multiple column menu implementation has improved) 108 302 T FMENDPAGE %%EndPage: "14" 13 %%Page: "13" 13 612 792 1 FMBEGINPAGE 72 750 720 760 R 7 X 0 K V 72 216.67 720 226.67 R V 72 741 720 753 R V 72 223 720 235 R V 0 12 Q 0 X (XView 3.2) 72 227 T (March 2, 1993) 378.84 227 T ( What\325s New- 13) 637.69 227 T 72 729 720 729 2 L 7 X V 0.5 H 2 Z 0 X N 72 247 720 247 2 L 7 X V 0 X N 72 732 105 765 R 7 X V 0 X 0 72 732 -72 -732 33 33 BEGINPRINTCODE % Sun Logo for Frame Maker % % and modified to scale to fill bounding textrect % % "greyvalue" accepts numbers from 0 (black) to 1 (white) % Frame Maker "printer code" textrect puts x y w h on stack /greyvalue 0 def /height exch def /width exch def /ypos exch def /xpos exch def gsave width 2 div height 10.5 div translate width 10.5 div height 10.5 div scale 45 rotate /Uchar { newpath -.1 0 moveto 0 0 .1 180 360 arc 0 2.9 rlineto .8 0 rlineto 0 -2.9 rlineto 0 0 .9 0 180 arcn 0 2.9 rlineto .8 0 rlineto closepath greyvalue setgray fill } def /2Uchar { Uchar gsave 4 4 translate Uchar grestore } def 4 { 2Uchar 6 0 translate 90 rotate } repeat grestore ENDPRINTCODE 107 745 155 759 R 7 X V 0 X 0 107 745 -107 -745 48 14 BEGINPRINTCODE % This is the Sun logo. For best results, print on a LaserWriter Plus. (sun) 1 /fnt /Palatino-Bold findfont def /mode exch def /printme exch def /h exch def /w exch def /y exch def /x exch def 0 0 moveto fnt setfont /wsize w printme stringwidth pop div def /hsize h (X) true charpath flattenpath pathbbox /t exch def pop pop pop t div def mode 1 eq {/hsize wsize def} if mode 2 eq {/wsize hsize def} if fnt [wsize 0 0 hsize 0 0] makefont setfont printme show ENDPRINTCODE 108 738 154 743 R 7 X V 0 X 0 108 738 -108 -738 46 5 BEGINPRINTCODE (microsystems) 1 /fnt /Helvetica findfont def /mode exch def /printme exch def /h exch def /w exch def /y exch def /x exch def 0 0 moveto fnt setfont /wsize w printme stringwidth pop div def /hsize h (X) true charpath flattenpath pathbbox /t exch def pop pop pop t div def mode 1 eq {/hsize wsize def} if mode 2 eq {/wsize hsize def} if fnt [wsize 0 0 hsize 0 0] makefont setfont printme show ENDPRINTCODE 72 252 720 720 R 7 X V 2 18 Q 0 X (TEXTSW_ACCELERATE_MENUS) 90 688 T 1 F (Controls whether the TEXTSW menus are accelerated. Create only) 117 648 T (attribute, default is False.) 117 628 T 2 F (INTERNATIONALIZATION Support:) 90 588 T 1 F (Wide Character API) 126 548 T (Multiple Input Methods) 126 528 T (Support for font sets.) 126 508 T (Single library for domestic and international release.) 126 488 T FMENDPAGE %%EndPage: "13" 12 %%Page: "12" 12 612 792 1 FMBEGINPAGE 72 750 720 760 R 7 X 0 K V 72 216.67 720 226.67 R V 72 741 720 753 R V 72 223 720 235 R V 0 12 Q 0 X (XView 3.2) 72 227 T (March 2, 1993) 378.84 227 T ( What\325s New- 12) 637.69 227 T 72 729 720 729 2 L 7 X V 0.5 H 2 Z 0 X N 72 247 720 247 2 L 7 X V 0 X N 72 732 105 765 R 7 X V 0 X 0 72 732 -72 -732 33 33 BEGINPRINTCODE % Sun Logo for Frame Maker % % and modified to scale to fill bounding textrect % % "greyvalue" accepts numbers from 0 (black) to 1 (white) % Frame Maker "printer code" textrect puts x y w h on stack /greyvalue 0 def /height exch def /width exch def /ypos exch def /xpos exch def gsave width 2 div height 10.5 div translate width 10.5 div height 10.5 div scale 45 rotate /Uchar { newpath -.1 0 moveto 0 0 .1 180 360 arc 0 2.9 rlineto .8 0 rlineto 0 -2.9 rlineto 0 0 .9 0 180 arcn 0 2.9 rlineto .8 0 rlineto closepath greyvalue setgray fill } def /2Uchar { Uchar gsave 4 4 translate Uchar grestore } def 4 { 2Uchar 6 0 translate 90 rotate } repeat grestore ENDPRINTCODE 107 745 155 759 R 7 X V 0 X 0 107 745 -107 -745 48 14 BEGINPRINTCODE % This is the Sun logo. For best results, print on a LaserWriter Plus. (sun) 1 /fnt /Palatino-Bold findfont def /mode exch def /printme exch def /h exch def /w exch def /y exch def /x exch def 0 0 moveto fnt setfont /wsize w printme stringwidth pop div def /hsize h (X) true charpath flattenpath pathbbox /t exch def pop pop pop t div def mode 1 eq {/hsize wsize def} if mode 2 eq {/wsize hsize def} if fnt [wsize 0 0 hsize 0 0] makefont setfont printme show ENDPRINTCODE 108 738 154 743 R 7 X V 0 X 0 108 738 -108 -738 46 5 BEGINPRINTCODE (microsystems) 1 /fnt /Helvetica findfont def /mode exch def /printme exch def /h exch def /w exch def /y exch def /x exch def 0 0 moveto fnt setfont /wsize w printme stringwidth pop div def /hsize h (X) true charpath flattenpath pathbbox /t exch def pop pop pop t div def mode 1 eq {/hsize wsize def} if mode 2 eq {/wsize hsize def} if fnt [wsize 0 0 hsize 0 0] makefont setfont printme show ENDPRINTCODE 72 252 720 720 R 7 X V 2 18 Q 0 X (PANEL_LIST_DO_DBL_CLICK) 90 708 T 1 F (Informs the panel list to interpret two) 117 668 T (select events that occur within the) 412.13 668 T (OpenWindows.MulticlickTimeout) 117 648 T (value, as a double-click instead of as a) 382.05 648 T (second select or a deselect. PANEL_LIST_OP_DBL_CLICK will be) 117 628 T (delivered.) 117 608 T 2 F (PANEL_LIST_ROW_VALUES) 90 568 T 1 F (A new high performance insertion and retrival method for the PANEL_LIST) 117 528 T (package. Allows batch insertion and retrieval of list rows.) 117 508 T 2 F (PANEL_LIST_MASK_GLYPH) 90 468 T (PANEL_LIST_MASK_GLYPHS) 90 448 T 1 F (Specifies a Server_image to be used as a clip-mask for the corresponding) 117 408 T (glyph.) 117 388 T 2 F (New X Default: \322Text.DeleteReplacesClipboard\323) 90 348 T 1 F (Controls whether pending delete operations replace the contents of the) 117 308 T (CLIPBOARD. Default is False.) 117 288 T FMENDPAGE %%EndPage: "12" 11 %%Page: "11" 11 612 792 1 FMBEGINPAGE 72 750 720 760 R 7 X 0 K V 72 216.67 720 226.67 R V 72 741 720 753 R V 72 223 720 235 R V 0 12 Q 0 X (XView 3.2) 72 227 T (March 2, 1993) 378.84 227 T ( What\325s New- 11) 637.69 227 T 72 729 720 729 2 L 7 X V 0.5 H 2 Z 0 X N 72 247 720 247 2 L 7 X V 0 X N 72 732 105 765 R 7 X V 0 X 0 72 732 -72 -732 33 33 BEGINPRINTCODE % Sun Logo for Frame Maker % % and modified to scale to fill bounding textrect % % "greyvalue" accepts numbers from 0 (black) to 1 (white) % Frame Maker "printer code" textrect puts x y w h on stack /greyvalue 0 def /height exch def /width exch def /ypos exch def /xpos exch def gsave width 2 div height 10.5 div translate width 10.5 div height 10.5 div scale 45 rotate /Uchar { newpath -.1 0 moveto 0 0 .1 180 360 arc 0 2.9 rlineto .8 0 rlineto 0 -2.9 rlineto 0 0 .9 0 180 arcn 0 2.9 rlineto .8 0 rlineto closepath greyvalue setgray fill } def /2Uchar { Uchar gsave 4 4 translate Uchar grestore } def 4 { 2Uchar 6 0 translate 90 rotate } repeat grestore ENDPRINTCODE 107 745 155 759 R 7 X V 0 X 0 107 745 -107 -745 48 14 BEGINPRINTCODE % This is the Sun logo. For best results, print on a LaserWriter Plus. (sun) 1 /fnt /Palatino-Bold findfont def /mode exch def /printme exch def /h exch def /w exch def /y exch def /x exch def 0 0 moveto fnt setfont /wsize w printme stringwidth pop div def /hsize h (X) true charpath flattenpath pathbbox /t exch def pop pop pop t div def mode 1 eq {/hsize wsize def} if mode 2 eq {/wsize hsize def} if fnt [wsize 0 0 hsize 0 0] makefont setfont printme show ENDPRINTCODE 108 738 154 743 R 7 X V 0 X 0 108 738 -108 -738 46 5 BEGINPRINTCODE (microsystems) 1 /fnt /Helvetica findfont def /mode exch def /printme exch def /h exch def /w exch def /y exch def /x exch def 0 0 moveto fnt setfont /wsize w printme stringwidth pop div def /hsize h (X) true charpath flattenpath pathbbox /t exch def pop pop pop t div def mode 1 eq {/hsize wsize def} if mode 2 eq {/wsize hsize def} if fnt [wsize 0 0 hsize 0 0] makefont setfont printme show ENDPRINTCODE 72 252 720 720 R 7 X V 306.07 701.67 90 701.67 2 L 0 X V 1.75 H 0 Z N 1 24 Q (Other New Features) 90 704 T 2 18 Q (PANEL_BORDER) 90 642 T 1 F (Adds Open Look compliant 3D chiseled border to a Panel. Single) 117 602 T (line border is 2D.) 117 582 T 2 F (PANEL_POST_EVENTS) 90 542 T 1 F (Assists in the use of the Notifier\325s Interposition model with Panel Items.) 117 502 T 2 F (PANEL_LIST_INACTIVE) 90 462 T 1 F (\322Grays out\323 a row in a panel list.) 117 422 T 2 F (PANEl_LIST_DELETE_INACTIVE_ROWS) 90 382 T 1 F (Deletes all inactive rows) 117 342 T (from the panel list \050similar to) 315.05 342 T (PANEL_LIST_DELETE_SELECTED_) 117 322 T (ROWS\051.) 419.11 322 T FMENDPAGE %%EndPage: "11" 10 %%Page: "10" 10 612 792 1 FMBEGINPAGE 72 750 720 760 R 7 X 0 K V 72 216.67 720 226.67 R V 72 741 720 753 R V 72 223 720 235 R V 0 12 Q 0 X (XView 3.2) 72 227 T (March 2, 1993) 378.84 227 T ( What\325s New- 10) 637.69 227 T 72 729 720 729 2 L 7 X V 0.5 H 2 Z 0 X N 72 247 720 247 2 L 7 X V 0 X N 72 732 105 765 R 7 X V 0 X 0 72 732 -72 -732 33 33 BEGINPRINTCODE % Sun Logo for Frame Maker % % and modified to scale to fill bounding textrect % % "greyvalue" accepts numbers from 0 (black) to 1 (white) % Frame Maker "printer code" textrect puts x y w h on stack /greyvalue 0 def /height exch def /width exch def /ypos exch def /xpos exch def gsave width 2 div height 10.5 div translate width 10.5 div height 10.5 div scale 45 rotate /Uchar { newpath -.1 0 moveto 0 0 .1 180 360 arc 0 2.9 rlineto .8 0 rlineto 0 -2.9 rlineto 0 0 .9 0 180 arcn 0 2.9 rlineto .8 0 rlineto closepath greyvalue setgray fill } def /2Uchar { Uchar gsave 4 4 translate Uchar grestore } def 4 { 2Uchar 6 0 translate 90 rotate } repeat grestore ENDPRINTCODE 107 745 155 759 R 7 X V 0 X 0 107 745 -107 -745 48 14 BEGINPRINTCODE % This is the Sun logo. For best results, print on a LaserWriter Plus. (sun) 1 /fnt /Palatino-Bold findfont def /mode exch def /printme exch def /h exch def /w exch def /y exch def /x exch def 0 0 moveto fnt setfont /wsize w printme stringwidth pop div def /hsize h (X) true charpath flattenpath pathbbox /t exch def pop pop pop t div def mode 1 eq {/hsize wsize def} if mode 2 eq {/wsize hsize def} if fnt [wsize 0 0 hsize 0 0] makefont setfont printme show ENDPRINTCODE 108 738 154 743 R 7 X V 0 X 0 108 738 -108 -738 46 5 BEGINPRINTCODE (microsystems) 1 /fnt /Helvetica findfont def /mode exch def /printme exch def /h exch def /w exch def /y exch def /x exch def 0 0 moveto fnt setfont /wsize w printme stringwidth pop div def /hsize h (X) true charpath flattenpath pathbbox /t exch def pop pop pop t div def mode 1 eq {/hsize wsize def} if mode 2 eq {/wsize hsize def} if fnt [wsize 0 0 hsize 0 0] makefont setfont printme show ENDPRINTCODE 72 252 720 720 R 7 X V 1 24 Q 0 X (File Chooser \050continued\051) 72 704 T 1 18 Q (\245 Consistent file chooser \050look and feel\051 available on the desktop in 4/93.) 72 662 T (\245 XView and OLIT\325s file chooser will have a similar look and feel.) 72 622 T (\245) 72 582 T (Extensive API available to control attributes of the file chooser.) 83.3 582 T (\245 Three objects comprise the XView implementation of the file chooser:) 72 522 T (File List:) 72 462 T (Subclassed from the PANEL_LIST, this object provides display) 180 462 T (and navigation of directories in the file system.) 180 442 T (Path Name:) 72 402 T (Subclassed from the PANEL_TEXT object, this object handles) 180 402 T (expansion of UNIX path names) 180 382 T (History:) 72 342 T -0.84 (This object provides for the sharing of data amongst several objects.) 180 342 P (This satisfies the need to share a list of common information across) 180 322 T (several instances of the file chooser within an application.) 180 302 T FMENDPAGE %%EndPage: "10" 9 %%Page: "9" 9 612 792 1 FMBEGINPAGE 72 750 720 760 R 7 X 0 K V 72 216.67 720 226.67 R V 72 741 720 753 R V 72 223 720 235 R V 0 12 Q 0 X (XView 3.2) 72 227 T (March 2, 1993) 378.84 227 T ( What\325s New- 9) 643.69 227 T 72 729 720 729 2 L 7 X V 0.5 H 2 Z 0 X N 72 247 720 247 2 L 7 X V 0 X N 72 732 105 765 R 7 X V 0 X 0 72 732 -72 -732 33 33 BEGINPRINTCODE % Sun Logo for Frame Maker % % and modified to scale to fill bounding textrect % % "greyvalue" accepts numbers from 0 (black) to 1 (white) % Frame Maker "printer code" textrect puts x y w h on stack /greyvalue 0 def /height exch def /width exch def /ypos exch def /xpos exch def gsave width 2 div height 10.5 div translate width 10.5 div height 10.5 div scale 45 rotate /Uchar { newpath -.1 0 moveto 0 0 .1 180 360 arc 0 2.9 rlineto .8 0 rlineto 0 -2.9 rlineto 0 0 .9 0 180 arcn 0 2.9 rlineto .8 0 rlineto closepath greyvalue setgray fill } def /2Uchar { Uchar gsave 4 4 translate Uchar grestore } def 4 { 2Uchar 6 0 translate 90 rotate } repeat grestore ENDPRINTCODE 107 745 155 759 R 7 X V 0 X 0 107 745 -107 -745 48 14 BEGINPRINTCODE % This is the Sun logo. For best results, print on a LaserWriter Plus. (sun) 1 /fnt /Palatino-Bold findfont def /mode exch def /printme exch def /h exch def /w exch def /y exch def /x exch def 0 0 moveto fnt setfont /wsize w printme stringwidth pop div def /hsize h (X) true charpath flattenpath pathbbox /t exch def pop pop pop t div def mode 1 eq {/hsize wsize def} if mode 2 eq {/wsize hsize def} if fnt [wsize 0 0 hsize 0 0] makefont setfont printme show ENDPRINTCODE 108 738 154 743 R 7 X V 0 X 0 108 738 -108 -738 46 5 BEGINPRINTCODE (microsystems) 1 /fnt /Helvetica findfont def /mode exch def /printme exch def /h exch def /w exch def /y exch def /x exch def 0 0 moveto fnt setfont /wsize w printme stringwidth pop div def /hsize h (X) true charpath flattenpath pathbbox /t exch def pop pop pop t div def mode 1 eq {/hsize wsize def} if mode 2 eq {/wsize hsize def} if fnt [wsize 0 0 hsize 0 0] makefont setfont printme show ENDPRINTCODE 72 252 720 720 R 7 X V 1 18 Q 0 X (Save As) 378 688 T %%BeginBinary: 24130 384 501 288 375.75 0 252 298.12 /red < 0000000000000000000000000000000000000000AF7C020000000000B8E74200 00000000B0E7FFF700000000F9FFFF7F0000000048F679F70000000000003240 0000000000000000000000005450000000000000BC5000000000000001000000 00003531000000000000000054500000000000005CC079F70000000000000000 0000000000000000000000006C510000000000002EE7FFF70000000001000000 000000009CE7FFF70000000094E7FFF700000000020000000000000054500000 00000000BC500000000000000100000000000000000000000000000054500000 000000005CC079F7000000000A00000000000000F4E7FFF700FFE57B448900C9 > store /green < 00000000010000000000000074E8FFF700000000B84700000000000001000000 00000000000000000000000007000000000000005CC079F700000000F4E8FFF7 0000000007000000000000000000000000000000000000000000000000000000 0000000098E7FFF7000000003A000000000000007C93000000000000944B0000 00000000D49300000000000054E8FFF7000000000700000000000000947C0200 000000005CC079F700000000000000000000000000002C440000000001000000 000000003A000000A8E7FFF70080854073000000010000000000000001000000 0000000054E8FFF70000000007000000000000000000000000FFB79F58B100DE > store /blue < 4CE9FFF7830000000F000000A87C0200EF31000064E9FFF701000000C8340000 78E9FFF7050000000000000000000008FC790200B231000001000000586F2FF8 060000000200000002000000000000006834000001000000FF00000000000000 7300000098E8FFF70000000058E9FFF754E9FFF750E9FFF74CE9FFF7586F2FF8 010000005C4B000000E9FFF74CE9FFF7830000003445000008E9FFF744450000 08E9FFF754E9FFF783000000B6310000AC7C020000000000000000005CC079F7 0600000000000000000000000000000000000000E44000000000000000000000 00000000000000000000000000000000000000000100000000FFDAD878F100FF > store BEGINBITMAPCOLORc Az UHFE7t"Jt" FDFCUIFDFCAz UHFDBZ" UEFC:'9z9' FCFCFCFCFCFCUDFCFCFCFCFCFCFC;z" V&FDFFJ$ 5FFFFFFH)JsG"=%J# FFFFFFFBFBFBFFFCQ%FEFEFEFEFEFEBFEFEF&9"J$8$F"=' FFFFFBFFFBFBQ&FDFDFDFDFDFDFEFEFEFDFDFEFEE&;#J%9#8$8&;#9%9#8#9%?%:& FFFBFBFFFBFBFCQ.FEFEFEFEFEFEFEFEFEFEFEFDFEFEFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFDFEFEFEFEFEFEFE7$J'>"8#<";'@'E'J$ FCFCFCQDFEFEFDFDFEFEFDFDFDFEFEFEFDFDFEFEFEFEFDFDFEFEFEFEFDFDFDFDPDFCFCFC&?#J$8"<%8#9#J#>"J& FEFEFDFDFDFFFBQ@FDFEFEFDFDFDFDFDFEFEFDFD;FEFDFEPFFDFDFDFEFEI";#J#;%A#8"9$:$8":#@#8"8"8# FFFCFDQ/FEFEFDFEFEFDFDFDFEFEFEFEFDFEFEFDFEFEFEFEFEFDFEFEH$9"J%9%C":93/06/28<&;#8" FBFCFCFCQ1FDFDFDFDFEFDFEFEFDFEFEFDFDFDFDFDFDFEFEFDFDFDFDFDFEE";$J"8"8$<&E%>"H" FFFCFCFCQ5FEFEFDFEFEFEFEFDFEFEFDFEFEFDFEFDD":#:"J'?%:'8(?'E' FDFBFBFDQ.FDFEFEFEFEFDFDFEFEFEFDFEFEFEFEFDFDFEFEFEFDFEFEFDFEFEFEFEFDFEFEFEFEFEFDF#9"J#;%9#8#8'8%:'9#;%=#9#8& FCFCFBQ,FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDD#8%8" FFFCFCFCFCFCFDD%:# FCFCFDFDFDFDD#8% FDFDFDFDFDFD ;Z" V%FC"9%=%:#:$>%:$9%:#=%9#=%:#:$=%9#?$:$9%<$:%;$>%9%8$:$9$E$9%8"9"8%8% >FEFEFEFDFEFEFEFEFEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFEFEFEFEFEFEFDFEFEFEFEFEFEFDFEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFEFEFEFDFEFEJ%8&B%<%9%8&>%8&8%9%<%8%<%9%8&<%8%=%9&9$;&:%9%?%9*8%8%D&8%@$9% GFEFDFDFEFEFDFDFDFEFEFDFDFEFDFEFDFDFEFDFDFEFEFDFDFDFEFEFDFDFEFEFDFDFDFEFDFEFDFDFEFDFDFEFDFEFDFDFEFDFDFEFDFEFDFDFEFDFDFEFEFDFDFDFEFDFEFDFDFEFDFDFEFEFDFDFDFEFDFDFDFEFEFDFDFEFDFDFDFEFEFDFDFEFEFDFDFDFEFDFDFEFEFDFDFDFEFDFDFDFEFEFDFDFDFEFDFDFDFEFDFDFDFEFDFEFDFDFEFDFDFEFDFDFEJ"J"F"H";"C"D#8#B"J#8#J"=">"I"<"J%J";" GFD6FDFDFDFDFDFEFDFDFEFD5FEFDFDFE5FDFDFDFDFDFDFEFDFEFDFEFEFEEFEFEFEFEFEFEO$FEFEFE@FEFEFEFEFEFEEFEFEFEFDFEFEFDFEFEFDFDFEFEFEJ%J93/06/28J%J@(#) whats_new.ps 1.3@(#)J%9$9$@#9% O FDFDFDFDDFDFDFDFDFEFDFDFDO$FDFDFDFD?FDFDFDFDFEFDFDFDEFDFDFDFDFDFDFEFDFDFEFDFEFDFDFDFDJ$E"J"J#8#J"A#8#?"="J"J"J"A"F" ?FDFEFDFEGFEKFDFEFEFD6FEFDFEFEFDFEFE>FE8FE>FEFEFEJ%8&J$?&>%8'8$D$8%=$?&B%=%9&A'@%?%=&8%8%D&9$8% GFEFEFEFDFDFEFEFEFD7FDFEFEFDFEFEFEFDFEFEFEFDFDFEFEFEFDFEFDFEFEFDFEFEFDFEFEFDFDFEFEFDFEFEFEFDFDFEFEFDFDFEFEFDFDFEFEFEFDFDFEFEFEFDFEFDFEFEFDFEFEFEFDFDFEFEFEFDFEFEFEFDFEFEFEFDFDFEFEFEFDFDFEFEFDFEFEFDJ";#<$:$>"9"9">#8"9"9$?$:&9#8"9">#9#?#8"9"9$>";#:":%9$9"?&8"9":%>$9";$9$9$>"9"9$;#9%8";"9"8" 9FDFEFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDJ" >FEJ#<"J"J" >FDFDFDO,FDQ FD JZ ;O+J#z# 9FFFFO+FDFFFFJ$J$ 8FFFDFDO+FDFDFFJ#J# 7FFFDO/FDFCJ#?%DrJ# 6FFFDFEFEFEFEFE=FDFCJ'C( @FEFDFDFDFDFEFDFDFDFEFDFDFDJ#>#:":#G#9">r<# 5FFFDFEFDFDFEFEFEFEFEFCFDFCJ93/06/28B' IFEFDFDFEFEFDFDFEFBFBFBFBFBFFJ#8#C#8%>#9# HFEFDFDFEFEFDFDFEFDFDFDFCFFFDJ" EFEJ& O>FDFCFBFFFDJ#=#8#C#8% ?FDFEFDFEFEFDFDFEFEFDFDFEJ&:93/06/28C$ @FDFEFEFEFEFDFEFEFDFDFEFEFDFDFFFDJ#@&:#@"<#9"A"?#>Z" 5FDFFFDFDFDFDFDFDFDFDFDFDFDFDFCFDSAFCJz P'S@FCJ#J#?z 6FDFFO1FCFDSBFDJ#J# 7FDFCO/FCFDJ$J$ 8FDFCFCO+FCFCFDJ#z# 9FDFDO+FCFDFDJz ;O+FD J#<# P2FEFEFEFEJ%J">' IFEFEFEFEIFEFEFEFEFEFEFEJ'J"A% HFEFEFDFDFEFEGFEFDFDFDFDJ$8#8#8#8,8%:&8"8#C%?$;%9) GFEFEFDFDFDFEFEFEFEFEFEFDFEFEFDFEFEFDFEFEFEFEFEFEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFEFEFDFEFEJ';'8#B'=%:' O6FEFEFDFDFEFEFEFDFEFEFDFDFDFDFEFEFDFDFEFEFEFEFDFDFEFEFDFDFEFEJ$9$B"G$J' O,FEFDFDFEFDFDFDFEFEFE@FEFDFDFDFDFDJ";";#J$J#<" O,FDFDFEFE9FDFDFD8FEFEFDJ%J% O8FDFDFDFDO$FDFDFDFDJ$9";"J"J"?"># GFDFEFEFEFE5FEKFEFEFEFEJ'8%F'A%B'=%:' HFDFEFEFEFEFDFDFEFEFDFDFEFEFEFEFDFDFEFEFEFDFEFEFEFEFDFDFEFEFDFDFEFEFEFEFDJ%:&8#:#;%:#8#9$<#;%:#9&9%9#:# IFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD J"J"8"J"8"J"J"I"J"J" JFEO1FEFEDFEFE7FE8FEFE9FEKFEJ"J"J" MFEO&FEPGFEJ#J#J#J#I"J#J" IFEFDO0FEFDFFEFDO$FEFDFD8FEFDKFDJ%8%8#:08#:%9%@#;#:%8#:$B#;#9%9$:$9%8$?$:)8"9%9%8$@#:%:$:%9"="9"9% LFEFEFEFEFEFDFEFEFEFEFEFDFEFEFEFDFEFEFEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFEFDFEFEFEFEFEFEFEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFDFEFDFEFEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFEFDFEFEFEFEFEFEFDFEFEFEFEFEFEFDFEFEJ#8%9):%B):%8%9#:%9%:)8&:#:%9%9$8%9&9):#8%9%8$=%8*:#9%:%8&:%<"B% HFEFDFDFEFDFDFEFDFDFEFEFDFDFEFEFDFDFEFEFDFDFEFEFDFDFEFEFDFDFEFDFEFDFDFEFDFEFDFDFEFEFDFDFEFEFDFDFEFEFDFDFEFEFDFDFDFEFEFDFEFDFDFEFEFDFDFEFEFDFDFEFDFDFDFEFDFDFDFEFEFDFDFDFEFDFDFDFEFDFEFDFDFDFEFDFDFDFEFDFDFEFDFDFEFDFEFDFDFDFEFDFDFDFEFDFEFDFDFEFEFDFDFEFEFDFDFDFEFEFDFDFEFEFEFDFDFEJ"9"="E"9"="H";#8#9"9"J";#8#8"I"J#;"?"J#8#9"D";#;#>" O%FDFDFDFDFDFDFDFEFDFDFEFDFD4FDFEFDFDFEFDFD5FEFDFDFD6FEFDFDFEFDFDFDFEFEFDFDJ$J$>$?$J$J$D$ PLFEFEFEFFEFEFEFDFEFEFDFEFE?FDFEFE9FEFEFEFEFDFEJ#J#J%9#J%>$9#:$J$9#I% GFEFDO0FEFD?FDFDFDFDFEFD@FDFDFDFDFDFDFEFEFDFDFDFE?FDFDFEFEFDFDFDFDFDJ#8#G"F#8#@"="J#J#8#C"A( P8FDFEFEFDFEFDFEFEFDFEFE9FDFEFFDFEFEFDFEFDFEFDFDFDFEFDJ#;$E%J'C%D&8#<%9%>%9&=%8#:%909)8#;%:%8& FFEFDFDFEFEFEFEFEFD?FDFEFEFDFEFDFDFEFEFDFDFEFEFEFDFEFDFEFEFEFDFDFEFEFDFDFEFEFDFDFEFEFEFDFEFEFEFDFEFDFEFEFEFDFDFEFEFEFEFEFEFDFDFEFEFDFEFEFEFDFEFDFDFEFEFDFEFEFEFDFDFEFEFEFDJ#8"9"9":$9'9"9"9"9"9":#>"9":#:"9"9"9$@%;#9"<%9$9":$?$;&;":$;'A#;$:$:"9":"9";"9"9" O FDFDFDFDFDFDFDFDFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDJ"J'J"J"J"J" FFD>FDFDFDFDFDFD;FDGFDO%FDMFDJ"J"J" O0FDQ5FD?FD J"J#8"9"J#?"="J"C"9"?"J"=" O'FEEFEFEFEFE?FEFEFEFEFFEFEFEFEO/FEFEJ%J"I$J$J%J% GFEFEFEFE;FEFEFDFDEFEFDFDP$FEFEFEFE@FEFEFEFEJ&J"J"J'J$ FFEFDFDFDFDO&FDP3FD4FEFDFDFDFDFE@FDFDFDJ$>$;)<$=%8"=$?#9%;%9#?$:$9%<$:%;$?$<":$<";#:#9%:$:%F#?$:$9% O FEFEFEFEFEFEFEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFEFEFEFEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFEFEFDFEFEFEFEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFDFEFEJ";&<&9*;&<%?&=%9$;%8%=%9&9$;&:%9%>%@%;#G%8&:93/06/28=%9&9$ GFEFEFDFDFDFEFEFDFDFDFEFEFDFDFDFDFDFEFDFDFEFDFDFDFEFDFEFDFDFEFDFDFDFEFEFDFDFEFEFDFDFDFEFDFDFEFDFDFEFEFDFDFDFEFDFDFDFEFEFDFDFEFDFDFDFEFEFDFDFEFEFDFDFDFEFDFDFDFEFDFDFDFEFDFEFDFDFEFEFDFDFDFEFEFDFDFEFEFDFDFEFEFDFDFDFEFDFDFDFEFEFDFDJ%J#C"J#8#8"B#8#J"=">"G#B#=#H"D"A$8#8#J" FFDFEFEFE5FEFDFDBFEFDFDFEFDFEFDFDFE5FDFDFDFEFDFEFDFEFDFDFDFEFEFEFEFDFDFE5FDJ%9$>$I$J$J$C$J"J$G$J$ GFDFDFEFEFEFEFEFEFEFEFEFEFE5FEFEFEO"FEFEFEFEFEFEMFE;FEFEFEFDFDFD6FEFEFEJ":%=28 Jun 1993J%J@(#) whats_new.ps 1.3@(#)J$J%J% IFDFDFDFDFDFDFDFDFDFEFDFDFD5FDFDFDFDO!FDFDFDFDFEFDFDFDMFDFDFE9FDFDFDFDIFDFDFDFDJ"@"8#J"<#8#E#8#?"="J"=#B#?";#:#D"J#8#?"="=" O#FEFEFDFEIFEFDFEFEFDFDFEFEFDFEFE>FEFDFEFDFEFEFDFEFEFDFE5FDFEFEFDFEFEFEJ&8&<&9%8$;'H&=28 Jun 1993=%9&A'@%>%@%;"=';%8&J%=%9& FFEFEFEFEFDFDFEFEFEFDFDFEFEFEFDFDFEFEFEFDFEFEFDFEFEFEFDFEFDFEFEFEFDFDFEFEFDFDFEFEFDFDFEFEFDFDFEFEFEFDFDFEFEFEFDFEFDFEFEFDFDFEFEFEFDFEFEFEFDFDFEFEFEFEFDFEFEFEFDFDFEFEFEFD6FDFEFEFDFDFEFEFDFDFEFEFEFDJ%:$:"9$;$9#<&<":"9"9$?#9"?";#:":%9$9"?&8"9":%>$8"9":$8"9"=%<$:$:"9"="=#:":%9$9":" FFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD J" S(FD Jz"8X" ET.FCFFFCJZ;w FT,FDJz GT+FD Jw U)FCJy U(FD JX U)J"w" U(FFFDFCJ#=z" O(FEFES8FCFFJ"8""I%J$J"8" O$FEFEFEFEFEFEO/FEFBFBR$FCFCJ"@"G'J":" O#FEFEFEFBFBFBFBFES4FCFCJ"B"E#:":#>"9"9%?#:%:$=%9#?$:$9%J"<" O"FEFEFEFBFBFEFEFEFEFEFBFEFEFEFEFEFBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFBFEFEQ1FCFCJ%<%JSCCS/s.whats_new.ps=%:%8&<%8%=%9&9$ O"FDFDFDFDFDFDFDFD9FEFBFBFEFEFBFBFEFEFBFBFEFEFBFBFEFEFBFBFBFEFBFEFBFBFEFBFBFEFEFBFBFBFEFBFBFBFEFEFBFBJ#8#E"?#8#9"J#8#J"Js OHFEFBFBFEFBFEFBFBFEFB5FEFBFBFE5FBQ3FDJ"J$J$ OEFEO#FEFEFE@FEFEFEJ%J% PIFBFBFBFB?FBFBFBFBJ"8"8"8#=#8#?"E#8#C"A#8#?"="="8"8" O6FEFEFEFBFEFBFEFEFBFEFBFEFEFBFEFBFEFEFBFEFEFEFEFEJ&:%=%;%=%@&B%=%9& O@FBFEFEFEFEFBFEFEFBFBFEFEFBFEFEFEFBFBFEFEFBFBFEFEFEFBFBFEFEFBFBFEFEFBFBFEFEFEFBJ"8"8":&:#?%:$?#:"9"9$>";#:":%9$9":"8"8"JW O6FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBQ'Jw U)FDJ" P.FBJ"z O!FC/FBJZ O"SGJ,z O!FDFDFEFDFEFDFEFDFEFDFES>FDJr$ O#FDFEFDFEJ"<% O#FEFDFDFDFEJ"<"8# O#FDFEFDFEJ"<& O#FEFDFEFDFEFDJ"=% O#FDFDFDFDFEJ"@#?";"9$9$ O#FEFDFEFEFEFEFDFEFEFDFEJ"@#?";#8$8& O#FDFEFDFDFDFEFDFEFDFEFDFDFDFEJ"@#F&9"9" O#FEFDFEFDFEFDFEFDFDFDJ"@#<";":$:& O#FDFEFDFEFEFDFDFDFEFDFEFDFEJ"@#<";":$:&Jw O#FEFDFEFDFDFEFDFEFDFDFDFDFDS*FCJ"@#F%:"9"Jw O#FDFEFDFEFDFDFDFEFES*FDJ"@#?";#8":& O#FEFDFEFEFEFDFEFDFEFDFEFDJ"@#?";"9";$ O#FDFEFDFDFDFDFDFDFDJ. O#FEFDFEFDFEFDFEFDFEFDFEFDFEJ. O#FDFDFDFEFDFEFDFEFDFEFDFEFDJtJs O&FDSJFC J*J"<" O#FEFDFEFDFEFDFEFDFESMFDFDJr$J":" O#FDFEFDFESMFDFDJ"<%J"8" O#FEFDFDFDFESMFDFDJ"<"8#?"J# O#FDFEFDFEFESCFDFDJ"<&># O#FEFDFEFDFEFDFEFDJ"=%>" O#FDFDFDFDFEFDJ"@#=$9"=" O#FEFDFEFEFDFEFEFEJ"@#=$8#=#Jw O#FDFEFDFDFDFDFEFDFDFES0FCJ"@#="9#?#Jy O#FEFDFEFEFEFDFDFES.FDJ"@#="9":$:"J$ O#FDFEFDFDFDFEFDFEFDS4FCFCFCJ"@#="9":$:" O#FEFDFEFEFEFDFDFDFEJ"@#="9#?# O#FDFEFDFDFDFEFEFDJ"@#=":#=# O#FEFDFEFEFDFEFEFDJ"@#=";"=" O#FDFEFDFDFDFDJ. O#FEFDFEFDFEFDFEFDFEFDFEFDFEJ. O#FDFDFDFEFDFEFDFEFDFEFDFEFDJt O&FD J* O#FEFDFEFDFEFDFEFDFEJr$ O#FDFEFDFEJ"<% O#FEFDFDFDFEJ"<"8#J" O#FDFEFDFEO!FEJ"<&J"J"J" O#FEFDFEFDFEFDO!FD:FE7FEJ"=%J"J"J" O#FDFDFDFDFE5FEO&FD7FDJ"@#=$9$9$A$;"?";$C";";$9";"9$ O#FEFDFEFEFDFEFEFDFEFEFDFEFEFDFEFEFEFEFDFEFEFEFEFDFEFEFEFEFDFEJ"@#<%8&8$@&:":":";$C";#9%9";"8&J" O#FDFEFDFEFDFDFDFEFDFDFDFEFDFEFDFEFDFDFDFEFDFEFDFDFEFDFDFDFEFEFDFDFDFDFDFEFDFDFDFEQ@FDJ"@#<";"9"9"A"9"8"<"<"9#8"A"<&>"9"8"9"J$ O#FEFDFEFDFDFDFDFDFDFEFDFEFEFDFEFEFDFEFDFEFDFEFEFDFDQ?FDFCFDJ"@#>"9&9"C$8#;"9%9"9"A"8":$<%9"8&J$ O#FDFEFDFEFEFDFEFDFEFEFEFDFEFDFEFEFEFDFEFDFDFDFDFEFDFDFDFEFDFEFDFDFEFDFEFDFEQ?FCFDFCJ"@#>#8&9"C$9";"8&9"9"A"8":$;&9"8&J$ O#FEFDFEFDFEFDFDFDFDFDFDFDFDFDFDFDFEFDFDFDFEFEFEFEFDFEFDFEFEFDFDFDFEFEFDFDFDFDFDQ?FDFCFDJ"@#?"8"9"9"A"9";"9"8"9"9"9"A"<&:"9"9"8"9"J$ O#FDFEFDFDFEFEFEFEFEFEFEFDFDFDFDFDFEFDFDFDFEFDFDFDFEFEQ?FCFDFCJ"@#=":&9#@,9":";"9"A";#9%9";"8&J$ O#FEFDFEFEFDFEFDFEFDFDFEFDFEFDFEFDFEFDFEFDFEFDFDFEFEFEFEFEFDFDFEFDFEFEFEFDFEFDFEFDQ?FDFCFDJ"@#=";$;"8&:t?";"9"8&:";";$9";"9$J$ O#FDFEFDFDFDFDFDFDFEFDFEFDFEFDFDFDFDFEFDFEFDFEFDFDFDFDFDFDFDFDFDFDQ@FCFDFCJ.J&J&J$ O#FEFDFEFDFEFDFEFDFEFDFEFDFE8FDFDFDFDFDCFDFDFDFDFDR5FDFCFDJ.J$ O#FDFDFDFEFDFEFDFEFDFEFDFEFDSLFCFDFCJtJ$ O&FDSMFDFCFDJ$ U.FCFDFCJ*J$ O#FEFDFEFDFEFDFEFDFET"FDFCFDJr$J$ O#FDFEFDFET!FCFDFCJ"<%J$ O#FEFDFDFDFET FDFCFDJ"<"8#J"J"9"J$ O#FDFEFDFEO-FEO#FEFEQ7FCFDFCJ"<&J"J"8"E"J"9"J$ O#FEFDFEFDFEFDBFE8FDFEFE>FDFDQ7FDFCFDJ"=%J"B"J":"E"J"J$ O#FDFDFDFDFE5FEFD6FEFDFD>FEQ;FCFDFCJ"@#=$9$9$A$;"9"9$9$9"9$=$9$9$A$:">";$9$;"J$ O#FEFDFEFEFDFEFEFDFEFEFDFEFEFDFEFEFEFEFDFEFEFDFEFEFEFDFEFEFDFEFEFDFEFEFDFEFEFDFEFDFEFEFDFEFEFDFEFEPLFDFCFDJ"@#<%8&8$A$;"9"8&8$9"9$=$8&8$@&9"9":":%8&:"J$ O#FDFEFDFEFDFDFDFEFDFDFDFEFDFEFDFDFEFDFDFDFEFDFDFDFEFDFEFDFDFDFEFDFDFDFDFEFDFDFDFEFDFEFDFEFDFDFDFEFEFEFDFEFDFDFDFEFDFDFDFEFDPLFCFDFCJ"@#<";"9"9"B#8"9"9"8"9"9":"9#8"9"9"8"9"8#A"9"9"9"<"8";"9"8"J$ O#FEFDFEFDFDFDFDFEFDFEFEFEFDFDFDFEFEFDFEFEFEFDFDFEFDFDFDFDFDFEFDFDFDFEQ FDFCFDJ"@#>"9&9"B"9"9"9"8"9"9":"9"9"9"9"8&8"D$9"9"9%:"9&8#J$ O#FDFEFDFEFEFDFEFDFEFEFDFDFDFDFEFEFEFDFDFDFDFDFEFDFEFDFEFDFEFDFEFEFEFEFDFEFDFEFEFDFEFDFEFDFEPMFCFDFCJ"@#>#8&9"B"9"9"9"8"8#9":"9"9"9"9"8&8"D$9"9"8&:#8&9"J$ O#FEFDFEFDFEFDFDFDFDFDFDFEFEFEFEFDFEFDFDFEFEFEFEFEFDFDFDFDFDFEFDFDFDFDFDFEFDFDFDFEFDFEFDFDFDFDFDFDPMFDFCFDJ"@#?"8"9"9"B"9"9"8#:$9":"9"9"9"8#8"9"8"B"9"9"9"8"9";"8"9";"J$ O#FDFEFDFDFEFEFEFDFDFDFEFDFEFDFEFEFDFDFDFDFEFDFEFEFDFEFEFEFEFDFDFDFEFEFEPKFCFDFCJ"@#=":&9#A$=$:$9":"9"9";$8&8"B'8"9":";":&8%J$ O#FEFDFEFEFDFEFDFEFDFDFEFEFDFEFEFDFEFDFDFDFDFEFEFEFEFDFEFDFEFDFEFDFEFDFEFDFEFDFEFDFDFEFEFDFEFDFEFDFEFDFEFDPKFDFCFDJ"@#=";$;"8&:$=$<">"9"9";$9$9":&:&A";";$9$J$ O#FDFEFDFDFDFDFDFDFEFDFEFDFEFDFDFDFDFDFDFEFDFDFDFDFDFDFDFDFDFDFEFDFEFDFEFDFDFDFDFDFDFDFDFDFDFDFDFDPLFCFDFCJ.J&J%J&J$ O#FEFDFEFDFEFDFEFDFEFDFEFDFE8FDFDFDFDFD4FEFDFEFDGFDFDFDFDFDQGFDFCFDJ.J$J$ O#FDFDFDFEFDFEFDFEFDFEFDFEFDO#FDFDFDRFFCFDFCJtJ$ O&FDSMFDFCFDJ$ U.FCFDFCJ*J$ O#FEFDFEFDFEFDFEFDFET"FDFCFDJr$J$ O#FDFEFDFET!FCFDFCJ"<%J$ O#FEFDFDFDFET FDFCFDJ"<"8#J"J$ O#FDFEFDFEOAFER+FCFDFCJ"<&J"9"H"H"9"J$ O#FEFDFEFDFEFDO*FEFEFDFEFEQBFDFCFDJ"=%J"J"9"H"H"9"J$ O#FDFDFDFDFE5FEBFDFDFEFDFDQBFCFDFCJ"@#=$9$9$C"9$9"=$9$9"=":"B";"9"9$;";";$J$ O#FEFDFEFEFDFEFEFDFEFEFDFEFEFEFDFEFEFEFDFEFEFDFEFEFEFDFEFEFEFEFDFEFEFEFEFDFEQ(FDFCFDJ"@#<%8&8$C"9$8#=$9$8#=#9"B";"9"8&:";":%J$ O#FDFEFDFEFDFDFDFEFDFDFDFEFDFEFDFDFDFEFDFEFDFDFDFDFDFDFDFEFDFDFEFEFDFDFDFEFDFDFDFEFDFDFEFDFDFDQ(FCFDFCJ"@#<";"9"9"H#8#8"9"9"9"9#?#8"D"9"9"8"9"8";"9"8"J$ O#FEFDFEFDFDFDFDFEFDFEFDFEFEFEFEFEFDFDFEFDFEFEFEFDFDFEFEFEFDQ+FDFCFDJ"@#>"9&9"A"<"9"9"9"9"9"9":$:"8"A%9"9":$8#:&:"J$ O#FDFEFDFEFEFDFEFDFEFEFEFDFDFDFDFDFDFDFEFDFEFDFEFEFDFEFDFDFDFEFDFEFDFEFDFEFDFEFDFEQ)FCFDFCJ"@#>#8&9"A"<"9"9"9"9"9"9":$:"8"@&9"9":$9":%;#J$ O#FEFDFEFDFEFDFDFDFDFDFDFDFEFEFEFEFEFEFEFDFDFDFEFDFEFDFDFDFEFEFEFDFDFDFDFEFDFDFDFDFEQ(FDFCFDJ"@#?"8"9"9"H"9"9"9"8#9"9#?#8"@"9"9"9"8"9";"8"?"J$ O#FDFEFDFDFEFEFEFDFDFDFDFEFDFDFDFEFEFDFEFDFDFDFDFEFEFEFDFDQ(FCFDFCJ"@#=":&9#C"9"9"9";$;"8#=#9"B";"9"8,:";"J$ O#FEFDFEFEFDFEFDFEFDFDFEFEFEFEFEFEFDFEFEFDFEFEFDFDFEFEFEFDFEFDFEFDFEFDFEFDFEFDFEFEQ*FDFCFDJ"@#=";$;"8&<"9"9"9";$;"9"=">&:";"9"9t;";"J$ O#FDFEFDFDFDFDFDFDFEFDFEFDFEFDFDFDFDFDFDFDFDFDFDFEFDFEFDFEFDFDFDFDFDFDQ*FCFDFCJ.J&J&J$ O#FEFDFEFDFEFDFEFDFEFDFEFDFE8FDFDFDFDFDO'FDFDFDFDFDR#FDFCFDJ.J$ O#FDFDFDFEFDFEFDFEFDFEFDFEFDSLFCFDFCJtJ$ O&FDSMFDFCFDJ$ U.FCFDFCJ*J$ O#FEFDFEFDFEFDFEFDFET"FDFCFDJr$J$ O#FDFEFDFET!FCFDFCJ"<%J$ O#FEFDFDFDFET FDFCFDJ"<"8#J"J$ O#FDFEFDFEO=FER/FCFDFCJ"<&J"J$ O#FEFDFEFDFEFDO=FDR/FDFCFDJ"=%J"J$ O#FDFDFDFDFE5FES7FCFDFCJ"@#=$9$9$C"=";";$J"C";$A"9"9$9$9$J$ O#FEFDFEFEFDFEFEFDFEFEFDFEFEFEFEFEFDFE7FEFEFEFDFEFEFEFEFDFEFEFDFEFEFDFEPLFDFCFDJ"@#<%8&8$C#9"8#:";$:"9"9"9"9"8#B";$:"9"8"9"8&8$8%J$ O#FDFEFDFEFDFDFDFEFDFDFDFEFDFEFDFDFEFEFDFEFDFDFEFDFEFEFEFEFEFDFEFDFDFEFDFEFEFDFDFEFDFDFDFEFDFEFDFEFDFDFDPLFCFDFCJ"@#<";"9"9"E#8"9"8"9"9#8"8#8"8#9"9"9"@"9"9#8"8"9"8"9"8"9"8#9"J$ O#FEFDFEFDFDFDFDFDFEFDFDFEFEFEFDFEFDFEFDFEFDFDFDFDFEFEFEFDFEFDFDFEFEFDFDFEFDFDQ!FDFCFDJ"@#>"9&9"A":"8"9"8&9"9"9";":"9"9"@&9"9"?&:$8"<"J$ O#FDFEFDFEFEFDFEFDFEFEFEFDFEFEFDFEFDFEFDFDFDFDFDFEFEFEFDFEFDFEFDFDFDFDFEFDFEFDFEFDFEFDFEPMFCFDFCJ"@#>#8&9"A":"8"9"8%:"9"9(:"9"9"@%:"9"9$:$;$8"<#J$ O#FEFDFEFDFEFDFDFDFDFDFDFDFEFDFDFEFDFDFDFEFEFEFDFEFDFEFDFEFDFDFDFEFDFDFDFEFEFEFDFEFDFDFDFDFDFDFEFDFEPLFDFCFDJ"@#?"8"9"9"E#8"9"8"="9"9(:"9"9"@"="9"9$@"9"8"="J$ O#FDFEFDFDFEFEFEFEFDFEFEFDFDFDFDFEFDFDFDFEFDFEFEFEFDFDFDFDFEFDFEFEFDFDPLFCFDFCJ"@#=":&9#C#9&:";"9":"9";"9"9"B";"9":"<":);"J$ O#FEFDFEFEFDFEFDFEFDFDFEFEFDFDFEFDFEFDFEFEFEFDFDFDFDFDFEFEFEFDFEFDFEFDFEFDFEFDFEFEQ FDFCFDJ"@#=";$;"8&<":%;";"9"J&:";"9"A";r;"J$ O#FDFEFDFDFDFDFDFDFEFDFEFDFEFDFEFDFDFDFDFDFD:FEFDFEFDFEFDFDFDFDFDFDQ FCFDFCJ.J&A"J&J$ O#FEFDFEFDFEFDFEFDFEFDFEFDFE8FDFDFDFDFDFDMFDFDFDFDFDQMFDFCFDJ.J$ O#FDFDFDFEFDFEFDFEFDFEFDFEFDSLFCFDFCJtJ$ O&FDSMFDFCFDJ$ U.FCFDFCJ*J$ O#FEFDFEFDFEFDFEFDFET"FDFCFDJr$J$ O#FDFEFDFET!FCFDFCJ"<%J$ O#FEFDFDFDFET FDFCFDJ"<"8#J"9"J$ O#FDFEFDFEP+FEFEQ=FCFDFCJ"<&J"G"J"H"9"J$ O#FEFDFEFDFEFDHFEFE9FEFDFDQ=FDFCFDJ"=%J"H"G"<"H"H"J$ O#FDFDFDFDFE5FEFDFDFEFDFEQAFCFDFCJ"@#=$9$9$A$9$9"="9"9&;";";"A$:">";$9$;"J$ O#FEFDFEFEFDFEFEFDFEFEFDFEFEFDFEFEFDFEFEFEFEFEFDFEFDFEFEFEFEFEFDFEFDFEFEFDFEFEFDFEFEQ$FDFCFDJ"@#<%8&8$@%9$8#="9"8';#9#;"@&9"9":":%8&:"J$ O#FDFEFDFEFDFDFDFEFDFDFDFEFDFEFDFEFDFDFDFDFDFDFEFDFDFDFEFDFDFDFEFDFDFEFEFDFDFEFDFDFDFEFEFEFDFEFDFDFDFEFDFDFDFEFDQ$FCFDFCJ"@#<";"9"9"A"<"9#B%9"=&<"@"9"9"9"<"8";"9"8"J$ O#FEFDFEFDFDFDFDFDFEFEFDFEFDFEFDFDFDFEFDFEFDFEFDFDFDFDFEFDFDFDFEQ&FDFCFDJ"@#>"9&9"C":"9":$<$:"9":$:"8"B$9"9"9%:"9&8#J$ O#FDFEFDFEFEFDFEFDFEFEFEFDFDFEFDFEFDFEFDFEFEFDFDFDFEFDFEFDFEFEFEFEFDFEFDFEFEFDFEFDFEFDFEQ%FCFDFCJ"@#>#8&9"C#9"9":$<#;"9":$:"8"B$9"9"8&:#8&9"J$ O#FEFDFEFDFEFDFDFDFDFDFDFDFEFEFEFDFDFDFEFDFDFDFEFDFEFDFEFDFDFDFDFDFEFDFDFDFEFDFEFDFDFDFDFDFDQ%FDFCFDJ"@#?"8"9"9"D"9"9#B"8"9"=&<"@"9"9"9"8"9";"8"9";"J$ O#FDFEFDFDFEFEFEFDFDFDFEFDFEFEFEFDFDFDFEFDFEFEFEFEFDFDFDFEFEFEQ#FCFDFCJ"@#=":&9#A"="8#="9"8#8#;#9#;"@'8"9":";":&8%J$ O#FEFDFEFEFDFEFDFEFDFDFEFEFEFDFEFEFEFDFEFDFEFEFDFDFEFEFDFEFDFEFDFEFDFDFEFEFDFEFDFEFDFEFDFEFDQ#FDFCFDJ"@#=";$;"8&:"="9"="9"9"9";";";"8&:&A";";$9$J$ O#FDFEFDFDFDFDFDFDFEFDFEFDFEFDFDFDFDFDFDFDFDFDFDFEFDFEFDFEFDFDFDFDFDFDFDFDFDFDFDFDFDQ$FCFDFCJ.J&J&J$ O#FEFDFEFDFEFDFEFDFEFDFEFDFE8FDFDFDFDFDO+FDFDFDFDFDQMFDFCFDJ.J$ O#FDFDFDFEFDFEFDFEFDFEFDFEFDSLFCFDFCJtJ$ O&FDSMFDFCFDJ$ U.FCFDFCJ*J$ O#FEFDFEFDFEFDFEFDFET"FDFCFDJr$J$ O#FDFEFDFET!FCFDFCJ"<%J$ O#FEFDFDFDFET FDFCFDJ"<"8#J"9"J$ O#FDFEFDFEP%FEFEQCFCFDFCJ"<&J"G"J"H"9"J$ O#FEFDFEFDFEFDBFEFE9FEFDFDQCFDFCFDJ"=%J"B"G"<"H"H"J$ O#FDFDFDFDFE5FEFDFDFEFDFEQGFCFDFCJ"@#=$9$9$A$9";$9"9&;";";"A$:">";$9$;"J$ O#FEFDFEFEFDFEFEFDFEFEFDFEFEFDFEFEFEFDFEFEFEFDFEFDFEFEFEFEFEFDFEFDFEFEFDFEFEFDFEFEQ*FDFCFDJ"@#<%8&8$A$9":%9"8';#9#;"@&9"9":":%8&:"J$ O#FDFEFDFEFDFDFDFEFDFDFDFEFDFEFDFDFDFDFDFEFDFDFDFDFEFDFDFDFEFDFDFEFEFDFDFEFDFDFDFEFEFEFDFEFDFDFDFEFDFDFDFEFDQ*FCFDFCJ"@#<";"9"9"B"="8"<%9"=&<"@"9"9"9"<"8";"9"8"J$ O#FEFDFEFDFDFDFDFEFEFDFEFDFEFDFDFDFEFDFEFDFEFDFDFDFDFEFDFDFDFEQ,FDFCFDJ"@#>"9&9"B":%:":$:"9":$:"8"B$9"9"9%:"9&8#J$ O#FDFEFDFEFEFDFEFDFEFEFDFEFDFEFDFEFDFEFDFEFEFDFDFDFEFDFEFDFEFEFEFEFDFEFDFEFEFDFEFDFEFDFEQ+FCFDFCJ"@#>#8&9"B"9&:#9#;"9":$:"8"B$9"9"8&:#8&9"J$ O#FEFDFEFDFEFDFDFDFDFDFDFEFEFDFDFDFEFDFEFEFDFDFDFEFDFEFDFEFDFDFDFDFDFEFDFDFDFEFDFEFDFDFDFDFDFDQ+FDFCFDJ"@#?"8"9"9"B"9"9";"9"8"9"=&<"@"9"9"9"8"9";"8"9";"J$ O#FDFEFDFDFEFEFEFDFDFDFDFDFEFEFEFDFDFDFEFDFEFEFEFEFDFDFDFEFEFEQ)FCFDFCJ"@#=":&9#C"9";";"8#8#;#9#;"@'8"9":";":&8%J$ O#FEFDFEFEFDFEFDFEFDFDFEFEFEFEFEFDFEFDFEFEFDFDFEFEFDFEFDFEFDFEFDFDFEFEFDFEFDFEFDFEFDFEFDQ)FDFCFDJ"@#=";$;"8&<"9";";"9"9";";";"8&:&A";";$9$J$ O#FDFEFDFDFDFDFDFDFEFDFEFDFEFDFDFDFDFDFDFDFDFDFEFDFEFDFEFDFDFDFDFDFDFDFDFDFDFDFDFDQ*FCFDFCJ.J&J&J$ O#FEFDFEFDFEFDFEFDFEFDFEFDFE8FDFDFDFDFDO%FDFDFDFDFDR%FDFCFDJ.J$ O#FDFDFDFEFDFEFDFEFDFEFDFEFDSLFCFDFCJtJ$ O&FDSMFDFCFDJ$ U.FCFDFCJ*J$ O#FEFDFEFDFEFDFEFDFET"FDFCFDJr$J$ O#FDFEFDFET!FCFDFCJ"<%J$ O#FEFDFDFDFET FDFCFDJ"<"8#J"J"J$ O#FDFEFDFEIFEIFER'FCFDFCJ"<&J"J"H"H"9"J$ O#FEFDFEFDFEFDIFD6FEFDFEFEQ>FDFCFDJ"=%J"I"J"H"H"9"J$ O#FDFDFDFDFE5FEFE6FDFEFDFDQ>FCFDFCJ"@#=$9$9$H"8"C$9$9"=":"B";"9"9$;";";$J$ O#FEFDFEFEFDFEFEFDFEFEFDFEFDFEFEFDFEFEFDFEFEFEFDFEFEFEFEFDFEFEFEFEFDFEQ$FDFCFDJ"@#<%8&8$@"9"9"8#9"9":$9$8#=#9"B";"9"8&:";":%J$ O#FDFEFDFEFDFDFDFEFDFDFDFEFDFEFDFEFEFEFDFEFEFEFDFDFDFDFDFDFEFDFDFEFEFDFDFDFEFDFDFDFEFDFDFEFDFDFDQ$FCFDFCJ"@#<";"9"9"A&9"9"9"9"8"9"9"9#?#8"D"9"9"8"9"8";"9"8"J$ O#FEFDFEFDFDFDFDFDFEFDFEFDFDFDFDFDFEFEFEFEFDFDFEFDFEFEFEFDFDFEFEFEFDQ'FDFCFDJ"@#>"9&9"B$:"9"9"9"8"9"9"9":$:"8"A%9"9":$8#:&:"J$ O#FDFEFDFEFEFDFEFDFEFEFDFEFDFEFEFEFEFDFDFDFDFEFDFEFDFEFEFDFEFDFDFDFEFDFEFDFEFDFEFDFEFDFEQ%FCFDFCJ"@#>#8&9"B$:"9"9"9"8"9"9"9":$:"8"@&9"9":$9":%;#J$ O#FEFDFEFDFEFDFDFDFDFDFDFEFDFEFDFDFDFDFEFEFEFEFDFDFDFEFDFEFDFDFDFEFEFEFDFDFDFDFEFDFDFDFDFEQ$FDFCFDJ"@#?"8"9"9"A&9"9"9"9"8#8"9"9#?#8"@"9"9"9"8"9";"8"?"J$ O#FDFEFDFDFEFEFEFEFDFDFDFEFEFEFEFEFDFEFDFDFDFEFEFDFEFDFDFDFDFEFEFEFDFDQ$FCFDFCJ"@#=":&9#@"9"9&9#8"9"8";"8#=#9"B";"9"8,:";"J$ O#FEFDFEFEFDFEFDFEFDFDFEFDFDFDFEFDFEFDFDFEFDFDFEFEFDFEFEFDFDFEFEFEFDFEFDFEFDFEFDFEFDFEFDFEFEQ&FDFCFDJ"@#=";$;"8&B$;"?";"9"=">&:";"9"9t;";"J$ O#FDFEFDFDFDFDFDFDFEFDFEFDFEFDFDFDFDFDFDFDFDFEFDFEFDFEFDFDFDFDFDFDQ&FCFDFCJ.J&J"J&J$ O#FEFDFEFDFEFDFEFDFEFDFEFDFE8FDFDFDFDFD";# 6FDFEFEFDFD;FEFDFEFDFDJ#8"9$:$8":#@#8"8"8# 7FDFDFEFEFEFEFDFEFEFDFEFEFEFEFEFDFEFEJ":93/06/28<&;#8" 9FDFEFEFDFDFDFDFDFDFEFEFDFDFDFDFDFEJ#E%>"H":#>% 6FEFEFDFEFEFDFEFDFEFEFEFDFEFEJ'8(?'E' 6FDFEFEFEFEFDFDFEFEFEFDFEFEFDFEFEFEFEFDFEFEFEFEFEFDJ%:'9#;%=#9#8&9#=$ 7FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFEFEFEJ" OJFAJ":Z" OEFESFFCJz OJSFFCJ"9$z ODF9F9F9F9SFFDJr ODFD JzZ" QKKFCO#FCJz8z QLJFBO!FD J#9#J"="J" Q(FEFEFEFEO FEFEAFEJ&C">'J":"J% P4FEFEFEFEFEFEFEFEFEFEFEFEMFEFEFFEFEFEFEJ%A"ArJ"J& P6FDFDFEFEFEFDO%FBAFEFDFDFDFDJ$9%8"8#C#>%:&8#J":$:$J#;#9"=" P8FDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE:FEFEFEFEFEFEFE=FEFEFEFEFEFEJ)8#J'8'J%9&I"=%9%<" P=FEFEFDFDFEFEFDFDFDFD6FEFEFDFDFEFEFEFEFDFDFDFDBFEFBFBFBFEFBFBFBFEFEFEFDFDFEFEFDFDFEFEJ$J";#H%J%;";#8&;# Q#FEFEFE5FEFDFDFEFEFEFEFFDFEFEFEFDFEFDFDFEFDFDFEFEFDJ$C#:"8#J%F$J%J$ Q#FDFDFDFEFEFDFEFE7FBFBFBFBFEFEFE4FDFDFEFE4FEFDFEJ%9#8"J%J" Q3FDFDFDFDFDFDFEJFBFBFBFB5FDJ$J";":#J"="J#8#8( P8FEFEFDIFEFDFEFEAFEFEAFDFEFEFDFDFEFDFDFDFEFDJ%9'8%J'8'J%9&H&A% P6FEFEFEFDFDFEFEFEFEFDFDFEFEFE6FDFEFEFEFEFDFEFEFEFEFEFDBFBFEFEFBFBFEFEFEFBFEFEFEFEFDFDFEFEFDJ&;%:$<#;#9#9%9&9#G":"9":%9$I%:"9":#;"9" P4FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFBFBFBFBFBFBFBFBFBFBFDFDFDFDFDFDFDFDFDFD JZ8z QLJO!FCJz QKP!FD JZJZJZ OEOB=O =AJ#z#J#z#J#z# OCFFFFOBFDFFFF9FFFFO FDFFFF9FFFFAFDFFFFJ$J$J$J$J%z% OBFFFDFDOBFDFDFF7FFFDFDO FDFDFF7FFFDFDFD?FCFDFDFDFFJ#J"="G#J#J";#J&z& OAFFFDO,FEFEFDFC5FFFDLFEFDFC5FFFDFDFCFC?FDFCFCFDFDFCJ#?%J%J#I#?%J#I':%J' O@FFFDFEFEFEFE@FEFEFEFEEFDFCFFFDFEFEFEFEGFDFCFFFDFDFCFDFDFEFEFEFE7FDFDFCFDFDFCJ'J$J'J#;&J# OJFEFDFDFDFDFE@FDFDFDO6FEFDFDFDFDFEO/FCFDFEFDFDFDFD9FDFCJ#>#:#9%:$:%F#?$:$9%<#G#>#:"9$:%;$8$B#G#F$9"9"9$># O?FFFDFEFDFDFEFEFDFEFEFEFEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFDFEFEFDFCFFFDFEFDFDFEFEFEFEFDFEFEFEFEFEFEFEFEFDFCFFFDFEFEFEFEFEFEFEFEFDFCJ%8&:93/06/28=%9&9$J&:%9+J#=";&?&;# P'FEFDFDFEFEFDFDFDFEFEFDFDFEFEFDFDFEFEFDFDFDFEFDFDFDFEFEFDFDLFEFDFDFDFEFEFDFDFEFEFDFDFDFDFEFDFDFDFE@FCFDFEFEFDFDFDFEFEFDFDFDFEFDFCJ"D"A$8#8#J"J">";#J%9" P'FDFDFEFEFEFEFDFDFE5FDO FDFDFEFDO#FDFEFEFEFDJ$G$J$J$H$J%9$9&9$ P.FEFEFEFDFDFD6FEFEFEO&FEFEFEFEFEFEJFDFDFEFEFEFEFEFDFEFDFEFDFEFEFEJ%J%J28 Jun 1993J"9@(#) whats_new.ps 1.3@(#) P.FDFDFDFDIFDFDFDFDO$FEFDFDFDFDFDFDFDKFDFEFDFDFDFDFDFDFDJ#:#D"J#8#?"="J#:"G#>"J$=" OIFDFEFEFDFE5FDFEFEFDFEFEIFDFEFEFDFEFEO)FDFEFDFEJ';%8&J%=%9&J'8'@+J#<&8'>&;# OJFDFEFEFEFEFDFEFEFEFDFDFEFEFEFD6FDFEFEFDFDFEFEFDFDFEFEFEFDJFDFEFEFEFEFDFDFEFEFEFDFEFDFEFEFEFDFDFEFEFEFD@FDFCFEFEFEFEFDFDFEFEFEFDFEFDFEFEFEFDFCFDJ#@%<$:$:"9"="=#:":%9$9"?#G#@%:&8"9":$8$:"=#G#>%:&9";$># O?FDFFFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFCFDFDFFFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFCFDFDFFFDFDFDFDFDFDFDFDFDFDFDFDFDFCFDJ#J# SBFDFCCFCFDJ#H"J#I#J#I'J' O@FDFFFDO5FCFDFDFFO&FCFDFDFFFDFDFCFC?FCFCFDFDFCFDJ#J#J#J#J&z& OAFDFCOFFCFD5FDFCO$FCFD5FDFCFDFDFD?FCFDFDFDFCFDJ$J$J$J$J$z$ OBFDFCFCOBFCFCFD7FDFCFCO FCFCFD7FDFCFCAFDFCFCFDJ#z#J#z#J#z# OCFDFDOBFCFDFD9FDFDO FCFDFD9FDFDAFCFDFDJzJzJz OEOBFD=O FD=AFD PJP V&7%J% FDFDFDFCV'FDFDFDFC ;QJQ UH:(J' FDFDFDFDFDFDFCUIFDFDFDFDFDFD Az UHFE7tJt FCUJFC ENDBITMAP %%EndBinary FMENDPAGE %%EndPage: "9" 8 %%Page: "8" 8 612 792 1 FMBEGINPAGE 72 750 720 760 R 7 X 0 K V 72 216.67 720 226.67 R V 72 741 720 753 R V 72 223 720 235 R V 0 12 Q 0 X (XView 3.2) 72 227 T (March 2, 1993) 378.84 227 T ( What\325s New- 8) 643.69 227 T 72 729 720 729 2 L 7 X V 0.5 H 2 Z 0 X N 72 247 720 247 2 L 7 X V 0 X N 72 732 105 765 R 7 X V 0 X 0 72 732 -72 -732 33 33 BEGINPRINTCODE % Sun Logo for Frame Maker % % and modified to scale to fill bounding textrect % % "greyvalue" accepts numbers from 0 (black) to 1 (white) % Frame Maker "printer code" textrect puts x y w h on stack /greyvalue 0 def /height exch def /width exch def /ypos exch def /xpos exch def gsave width 2 div height 10.5 div translate width 10.5 div height 10.5 div scale 45 rotate /Uchar { newpath -.1 0 moveto 0 0 .1 180 360 arc 0 2.9 rlineto .8 0 rlineto 0 -2.9 rlineto 0 0 .9 0 180 arcn 0 2.9 rlineto .8 0 rlineto closepath greyvalue setgray fill } def /2Uchar { Uchar gsave 4 4 translate Uchar grestore } def 4 { 2Uchar 6 0 translate 90 rotate } repeat grestore ENDPRINTCODE 107 745 155 759 R 7 X V 0 X 0 107 745 -107 -745 48 14 BEGINPRINTCODE % This is the Sun logo. For best results, print on a LaserWriter Plus. (sun) 1 /fnt /Palatino-Bold findfont def /mode exch def /printme exch def /h exch def /w exch def /y exch def /x exch def 0 0 moveto fnt setfont /wsize w printme stringwidth pop div def /hsize h (X) true charpath flattenpath pathbbox /t exch def pop pop pop t div def mode 1 eq {/hsize wsize def} if mode 2 eq {/wsize hsize def} if fnt [wsize 0 0 hsize 0 0] makefont setfont printme show ENDPRINTCODE 108 738 154 743 R 7 X V 0 X 0 108 738 -108 -738 46 5 BEGINPRINTCODE (microsystems) 1 /fnt /Helvetica findfont def /mode exch def /printme exch def /h exch def /w exch def /y exch def /x exch def 0 0 moveto fnt setfont /wsize w printme stringwidth pop div def /hsize h (X) true charpath flattenpath pathbbox /t exch def pop pop pop t div def mode 1 eq {/hsize wsize def} if mode 2 eq {/wsize hsize def} if fnt [wsize 0 0 hsize 0 0] makefont setfont printme show ENDPRINTCODE 72 252 720 720 R 7 X V 1 18 Q 0 X (And the new way...) 72 708 T (Save) 531 668 T ( Open) 216 648 T %%BeginBinary: 14148 360 473 270 354.75 0 90 270 /red < 00000000FFFFFF7F0100000001000000000000FF00010181FFFEFE7EB8E74200 00000000B0E7FFF700000000F9FFFF7F0000000048F679F7000000001CC373F7 48E7FFF7AC7C0200E87902006D000000FBFFFF7F00000000010000005CC079F7 02E7FFF7A87C0200730000000000000000000000640000006400000000000000 0000000000000000000000006C510000000000002EE7FFF70000000088CD73F7 E8E6FFF700200000FFFFFFFF0500000048F679F70A000000E87902005CC079F7 05000000000000000900000010FB0200C09400006C5100008410800054500000 000000005CC079F7000000000A00000000000000F4E7FFF70000007B448900C9 > store /green < 00000000010000000000000074E8FFF700000000B84700000000000001000000 00000000000000000000000005000000000000005CC079F700000000F4E8FFF7 0000000005000000000000000000000000000000000000000000000000000000 0000000098E7FFF7000000003A000000000000007C93000000000000944B0000 00000000AC7C020000000000200000000000000000000000000000005CC079F7 00000000A87C0200000000000100000000000000000022440000000001000000 000000003A000000A8E7FFF70040844073000000010000000000000048BA73F7 A8E8FFF773000000FFFFFF7F0100000073000000C02B0000E879029F58B100DE > store /blue < 4CE9FFF7830000000F000000A87C0200EF31000064E9FFF7010000002C340000 78E9FFF7050000000000000000000008FC790200A87C0200BE2B0000586F2FF8 060000000200000002000000000000000000000001000000FF00000000000000 7300000098E8FFF70000000058E9FFF754E9FFF750E9FFF74CE9FFF79C4C0000 08E9FFF754E9FFF7830000000F000000A87C0200BE2B0000E87902005CC079F7 06000000000000000800000000000000D034000050450000801040005CC079F7 0600000000000000000000000000000000000000504500000000000000000000 000000000000000000000000000000000000000001000000000000D878F100FF > store BEGINBITMAPCOLORc Az U0FE7t"Jt" FDFCU1FDFC Az U0FD:'8Z"8' FCFCFCFCFCFCU-FCFCFCFCFCFCFC;'8z8( FDFDFDFDFDFDU,FCFDFDFDFDFDFDFFBt$z FDFFFFFFU"FDH)JsG"?% FFFFFFFBFBFBFFFCQ!FEFEFEFEFEFEF&9"J$8$F"?' FFFFFBFFFBFBQ"FDFDFDFDFDFDFEFEFEFDFDFEFEE&;#J%9#8$8&8$8$9&:%:& FFFBFBFFFBFBFCQ*FEFEFEFEFEFEFEFEFEFEFEFDFEFEFEFEFDFDFEFEFEFEFDFEFEFEFEFEFEFEFEFDFEFE7$J'>"8#H%8';%J$ FCFCFCQ@FEFEFDFDFEFEFDFDFDFEFDFEFEFEFEFDFDFEFEFEFDFEFEP@FCFCFC&?#J$8"<#E"F"J& FEFEFEFDFDFFFBQ"9%=%:#:$>%:$9%:#=%9#=%:#:$=%9#?$:$9%<$:%;$>%9%8$:$9$E$9%8"9"8%8% >FEFEFEFDFEFEFEFEFEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFEFEFEFEFEFEFDFEFEFEFEFEFEFDFEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFEFEFEFDFEFEJ%8&B%<%9%8&>%8&8%9%<%8%<%9%8&<%8%=%9&9$;&:%9%?%9*8%8%D&8%@$9% GFEFDFDFEFEFDFDFDFEFEFDFDFEFDFEFDFDFEFDFDFEFEFDFDFDFEFEFDFDFEFEFDFDFDFEFDFEFDFDFEFDFDFEFDFEFDFDFEFDFDFEFDFEFDFDFEFDFDFEFEFDFDFDFEFDFEFDFDFEFDFDFEFEFDFDFDFEFDFDFDFEFEFDFDFEFDFDFDFEFEFDFDFEFEFDFDFDFEFDFDFEFEFDFDFDFEFDFDFDFEFEFDFDFDFEFDFDFDFEFDFDFDFEFDFEFDFDFEFDFDFEFDFDFEJ"J"F"H";"C"D#8#B"J#8#J"=">"I"<"J%J";" GFD6FDFDFDFDFDFEFDFDFEFD5FEFDFDFE5FDFDFDFDFDFDFEFDFEFDFEFEFEEFEFEFEFEFEFEO$FEFEFE@FEFEFEFEFEFEEFEFEFEFDFEFEFDFEFEFDFDFEFEFEJ%J93/06/28J%J@(#) whats_new.ps 1.3@(#)J%9$9$@#9% O FDFDFDFDDFDFDFDFDFEFDFDFDO$FDFDFDFD?FDFDFDFDFEFDFDFDEFDFDFDFDFDFDFEFDFDFEFDFEFDFDFDFDJ$E"J"J#8#J"A#8#?"="J"J"J"A"F" ?FDFEFDFEGFEKFDFEFEFD6FEFDFEFEFDFEFE>FE8FE>FEFEFEJ%8&J$?&>%8'8$D$8%=$?&B%=%9&A'@%?%=&8%8%D&9$8% GFEFEFEFDFDFEFEFEFD7FDFEFEFDFEFEFEFDFEFEFEFDFDFEFEFEFDFEFDFEFEFDFEFEFDFEFEFDFDFEFEFDFEFEFEFDFDFEFEFDFDFEFEFDFDFEFEFEFDFDFEFEFEFDFEFDFEFEFDFEFEFEFDFDFEFEFEFDFEFEFEFDFEFEFEFDFDFEFEFEFDFDFEFEFDFEFEFDJ";#<$:$>"9"9">#8"9"9$?$:&9#8"9">#9#?#8"9"9$>";#:":%9$9"?&8"9":%>$9";$9$9$>"9"9$;#9%8";"9"8" 9FDFEFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDJ" >FEJ#<"J"J" >FDFDFDO,FDQ FD JZ ;O+J#z# 9FFFFO+FDFFFFJ$J$ 8FFFDFDO+FDFDFFJ#J# 7FFFDO/FDFCJ#?%DrJ# 6FFFDFEFEFEFEFE=FDFCJ'C( @FEFDFDFDFDFEFDFDFDFEFDFDFDJ#>#:":#G#9">r<# 5FFFDFEFDFDFEFEFEFEFEFCFDFCJ93/06/28B' IFEFDFDFEFEFDFDFEFBFBFBFBFBFFJ#8#C#8%>#9# HFEFDFDFEFEFDFDFEFDFDFDFCFFFDJ"J" EFEO.FEJ& O>FDFCFBFFFDJ#=#8#C#8%J$ ?FDFEFDFEFEFDFDFEFEFDFDFE>FEFEFEJ&:93/06/28C$ @FDFEFEFEFEFDFEFEFDFDFEFEFDFDFFFDJ#@&:#@"<#9"A"?#<"9"Z" 5FDFFFDFDFDFDFDFDFDFDFDFDFDFDFCFDFEFES&FCJz P)S&FCJ#J#=z 6FDFFO1FCFDS,FDJ#J# 7FDFCO/FCFDJ$J$ 8FDFCFCO+FCFCFDJ#z# 9FDFDO+FCFDFDJz ;O+FD J#<# P2FEFEFEFEJ%J">' IFEFEFEFEIFEFEFEFEFEFEFEJ'J"A% HFEFEFDFDFEFEGFEFDFDFDFDJ$8#8#8#8,8%:&8"8#C%?$;%9) GFEFEFDFDFDFEFEFEFEFEFEFDFEFEFDFEFEFDFEFEFEFEFEFEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFEFEFDFEFEJ';'8#B'=%:' O6FEFEFDFDFEFEFEFDFEFEFDFDFDFDFEFEFDFDFEFEFEFEFDFDFEFEFDFDFEFEJ$9$B"G$J' O,FEFDFDFEFDFDFDFEFEFE@FEFDFDFDFDFDJ";";#J$J#<" O,FDFDFEFE9FDFDFD8FEFEFDJ%J% O8FDFDFDFDO$FDFDFDFDJ$9";"J"J"?"># GFDFEFEFEFE5FEKFEFEFEFEJ'8%F'A%B'=%:' HFDFEFEFEFEFDFDFEFEFDFDFEFEFEFEFDFDFEFEFEFDFEFEFEFEFDFDFEFEFDFDFEFEFEFEFDJ%:&8#:#;%:#8#9$<#;%:#9&9%9#:# IFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD J"J"<"9"G"J"J" JFE8FEFEFEFECFEKFEJ"J#J%># OJFEBFEFEO;FEFEFEFEFEFEJ#J#@"F#J#=#J"J'<% IFEFD7FEFDFDFEFD9FEFDFEFDKFD4FEFDFDFDFDFEFEFDFDFEJ"9"9$8%?$:"9$8%>$9"9"9%:#C#:%:$:%9"="9"9%<"9"8"@#8# MFEFEFEFEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFEFEFEFDFEFEFEFDFEFEFEFEFEFEFDFEFEFEFEFEFEFDFEFEFEFEFDFEFDFDFEJ#@%9$9#9%=%8%9#808#>#9%:%8&:%<"B% HFEFDFEFDFDFDFEFDFDFEFDFEFDFDFDFEFDFDFDFDFEFDFDFEFDFEFDFDFDFEFDFDFEFEFDFEFDFEFDFDFEFEFDFDFEFEFDFDFDFEFEFDFDFEFEFEFDFDFEJ"J":#C#8#9"D";#;#>"G% O-FDO(FDFEFDFEFDFDFEFDFDFDFEFEFDFDFEFEFEFDJ$J$D$I'J$D$J&:% O&FDFEFE:FDFEFEFDFEFEFEFEFEFEFEFE8FEFEFEFEFDFE4FDFEFDFEFDFDFDFDFEJ#B$>#F$>#:$G(9#I% GFEFDFDFDFEFEFDFDFDFEFEFDFDFDFEFDFDFDFDFDFEFDFEFDFDFDFDFDJ"J"J"J#8#C"A(E"9$9"="8#8# O"FE8FEBFE9FDFEFEFDFEFDFEFDFDFDFEFDFEFDFEFDFEFEFDFEFEFDJ#;%9%=#;%=%9':%9%I#;%:%8&J'<% FFEFDFDFEFEFDFEFEFEFDFEFDFDFEFEFDFEFEFEFDFDFEFEFDFEFDFEFEFEFDFDFEFEFDFEFDFDFEFEFDFEFEFEFDFDFEFEFEFDKFDFEFEFEFEFDFDFEFEFDJ%8$9"B%9"8$;#=$;%9"9"<"A#;$:$:"9":"9";"9"9%:";%9":# O FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFEFDFDFDFDFDFDFDFDFDJ"J"J"J"J" FFD8FD$;)<$=%8"=$?#9%;%9#?$:$9%<$:%;$?$<":$<";#:#9%:$:% O FEFEFEFEFEFEFEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFEFEFEFEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFEFEFDFEFEFEFEFEFEFDFEFEJ";&<&9*;&<%?&=%9$;%8%=%9&9$;&:%9%>%@%;#G%8&:% GFEFEFDFDFDFEFEFDFDFDFEFEFDFDFDFDFDFEFDFDFEFDFDFDFEFDFEFDFDFEFDFDFDFEFEFDFDFEFEFDFDFDFEFDFDFEFDFDFEFEFDFDFDFEFDFDFDFEFEFDFDFEFDFDFDFEFEFDFDFEFEFDFDFDFEFDFDFDFEFDFDFDFEFDFEFDFDFEFEFDFDFDFEFEFDFDFEJ%J#C"J#8#8"B#8#J"=">"G#B#=#H"D" FFDFEFEFE5FEFDFDBFEFDFDFEFDFEFDFDFE5FDFDFDFEFDFEFDFEFDFDFDJ%9$>$I$J$J$C$J"J$ GFDFDFEFEFEFEFEFEFEFEFEFEFE5FEFEFEO"FEFEFEFEFEFEMFE;FEFEFEJ":%=28 Jun 1993J%J@(#) whats_new.ps 1.3@(#)J$J% IFDFDFDFDFDFDFDFDFDFEFDFDFD5FDFDFDFDO!FDFDFDFDFEFDFDFDMFDFDFE9FDFDFDFDJ"@"8#J"<#8#E#8#?"="J"=#B#?";#:#D"@" O#FEFEFDFEIFEFDFEFEFDFDFEFEFDFEFE>FEFDFEFDFEFEFDFEFEFDFEFEJ&8&<&9%8$;'H&=28 Jun 1993=%9&A'@%>%@%;"=';%8& FFEFEFEFEFDFDFEFEFEFDFDFEFEFEFDFDFEFEFEFDFEFEFDFEFEFEFDFEFDFEFEFEFDFDFEFEFDFDFEFEFDFDFEFEFDFDFEFEFEFDFDFEFEFEFDFEFDFEFEFDFDFEFEFEFDFEFEFEFDFDFEFEFEFEFDFEFEFEFDFDFEFEFEFDJ%:$:"9$;$9#<&<":"9"9$?#9"?";#:":%9$9"?&8"9":%>$8"9":$8"9"=%<$:$:"9"8" FFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD J" S(FD Jz"8X" ESDFCFFFCJZ;w FSBFDJz GSAFD Jw T?FCJy T>FD J, T@FFFDFFFDFFFDFFFDFFFDFFJv" T@FDFCJ#=z"B"B" O(FEFES FCFFFFFDJ"8""I%J$J";$:" O$FEFEFEFEFEFEO/FEFBFBQ5FFFCFDFCFDJ"@"G'J":&9" O#FEFEFEFBFBFBFBFERFFDFCFDFCFDFCFCJ"B"E#:":#>"9"9%?#:%:$=%9#?$:$9%J"9(8" O"FEFEFEFBFBFEFEFEFEFEFBFEFEFEFEFEFBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFBFEFEPDFFFCFDFCFDFCFDFCFDJ%<%JSCCS/s.whats_new.ps=%:%8&<%8%=%9&9$J"8)8" O"FDFDFDFDFDFDFDFD9FEFBFBFEFEFBFBFEFEFBFBFEFEFBFBFEFEFBFBFBFEFBFEFBFBFEFBFBFEFEFBFBFBFEFBFBFBFEFEFBFBPDFDFCFDFCFDFCFDFCFDFCJ#8#E"?#8#9"J#8#J"J"8r9" OHFEFBFBFEFBFEFBFBFEFB5FEFBFBFE5FBPFFFFDFDJ"J$J$J"B" OEFEO#FEFEFE@FEFEFEPKFDFCJ%J%J"B" PIFBFBFBFB?FBFBFBFBPJFFFDJ"8"8"8#=#8#?"E#8#C"A#8#?"="="8"8"J"B" O6FEFEFEFBFEFBFEFEFBFEFBFEFEFBFEFBFEFEFBFEFEFEFEFEP";#:":%9$9":"8"8"J/ O6FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBPFFFDJ"J"B" P.FBR/FDFCJ"zJ"B" O!FC/FBS-FFFDJZC"B" O"S/FDFCJzB"B" O!S1FDFFFDJ"B" T>FDFCJ%J"B" O%FEFEFEFES5FFFDJ'C"="J"B" O$FEFDFDFDFDFEFEFERLFDFCJ$:'J"B" O"FEFEFDFDFEFEFEFEFES/FFFDJ$<'E"J"B" O!FEFDFDFDFDFDFDFDFEFDRLFDFCJ">#:"9%J"B" O0FEFEFEFEFEFDFEFEREFFFDJ%>%J"B" O8FEFDFDFEFEFDFDFERDFDFCJ"A"J"B" O8FDFDRGFFFDJ"B" T>FDFCJ/ T>FFFDFCFDFCFDFCFDFCFDFCFDFCFDJx" T>FDFCJ%J"B" O8FEFEFEFDS"FFFDJ%:"9"9"J"B" O7FDFDFDFDFDFDFDRDFDFCJxJ"B" O"FES/FFFDJ#J"B" O!FDFDS;FDFCJyJ"9(8" O#FDS-FFFCFDFCFDFCFDFCFDJ"8)8" T>FDFCFDFCFDFCFDFCFDFCJ"8(9" T>FFFDFCFDFCFDFCFDFDJ"9&:" T>FDFDFCFDFCFDFCJ%J":$;" O%FEFEFEFES5FFFDFCFDFDJ'G"J";"<" O$FEFDFDFDFDFEFES"FDFDFCJ$:'J"B" O"FEFEFDFDFEFEFEFEFES/FFFDJ$<'J"B" O!FEFDFDFDFDFDFDFDFES.FDFCJ"=$:$:%8#;#J"B" O0FEFEFEFEFEFEFEFEFDFEFEFEFEFEFER7FFFDJ%9&:)9%J/ O7FEFDFDFDFEFDFDFDFEFEFDFDFEFEFDFDFEFEFDFDFER6FDFCFDFCFDFCFDFCFDFCFDFCFDFCJ"9";#8#Jx OGFDFDFEFDFDFER6FDJ$J" O?FEFEFES#FCJ%J$ O?FDFDFDFDS!FCFCFCJ"="D#8# O:FEFEFDFEFEFDJ%9&E% O7FDFEFEFDFDFEFEFEFDFDFEFEFDJ%9$:"9"9":# O8FDFDFDFDFDFDFDFDFDFDFDFDJx O"FEJ# O!FDFDJy O#FD J% O%FEFEFEFEJ' O$FEFDFDFDFDFEJ$:'E" O"FEFEFDFDFEFEFEFEFEFEJ$<' O!FEFDFDFDFDFDFDFDFEJ"<$9%9$ O0FEFEFEFEFEFEFEFEFEFEFEJ&8%8% O6FEFDFDFDFEFDFEFDFDFEFDFDFDJ# OBFEFDJ$ O7FEFEFEJ% O7FDFDFDFDJ"=# O:FEFDFEJ&9$8% O6FDFEFEFEFDFDFEFEFDFEFEFEJ$;#9$ O7FDFDFDFDFDFDFDFDJx O"FEJ# O!FDFDJy O#FD J% O%FEFEFEFEJ'C"G"E" O$FEFDFDFDFDFEFEFEFEJ$:' O"FEFEFDFDFEFEFEFEFEJ$<'=" O!FEFDFDFDFDFDFDFDFEFDJ"<"9%;$<"9":$:$ O0FEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFEFEJ%993/06/289& O" O8FDFDFDFDJ$ OCFEFEFEJ% OBFEFDFDFD J' OBFDFEFEFEFDFEJ"9"9"9&8"9" O7FDFDFDFDFDFDFDFDFDFDJx O"FEJ# O!FDFDJy O#FD J% O%FEFEFEFEJ'J"A" O$FEFDFDFDFDFEDFEFEJ$:' O"FEFEFDFDFEFEFEFEFEJ$<' O!FEFDFDFDFDFDFDFDFEJ"<%8#;#;$:"9"=$:$ O0FEFEFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEJ)9%9%E&8% O8FEFDFDFEFEFDFDFEFEFDFDFEFEFDFDFDFEFDFDFDFEFEFDFDFDJ"9";#8# O8FDFDFEFDFDFEJ$9$ P0FEFEFEFDFEFEJ%9$ P0FDFDFDFDFDFDFEJ#8#;"="A" OBFDFEFEFDFEFEFEJ%9%:%=&8% OCFDFEFEFDFDFEFEFDFDFEFEFDFDFEFEFEFDFEFEFEFDJ"9"9":#;%:%9"9$9$ O7FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDJx O"FEJ# O!FDFDJy O#FD J% O%FEFEFEFEJ'I" O$FEFDFDFDFDFEFEJ$:' O"FEFEFDFDFEFEFEFEFEJ$<' O!FEFDFDFDFDFDFDFDFEJ"<$;#:$9%8$ O0FEFEFEFEFEFEFEFEFEFEFDFEFEFEFEFEJ%:%8&9* O6FEFDFDFDFEFDFDFEFEFDFDFDFEFEFDFDFDFEFDFDFDFEJ";"=" O>FDFDFDJ$B$?$ O6FDFEFEFEFEFEFEFEFEJ$@%?% O7FDFDFEFEFDFDFDFDFDFDFDJ" P&FEJ%@'<& O6FEFEFEFDFDFEFEFEFDFEFDFEFEFEFDJ$:"9"9r;$ O6FDFDFDFDFDFDFDFDFDJx O"FEJ# O!FDFDJy O#FD J$ TDFDFDFD JX" T>FCJw T?FD Jz GSAFCJZ:w GSBFCJz8y ESEFDFD JzZ" Q?KFCO#FCJz8z Q@JFBO!FD J#9#J"="J" PJFEFEFEFEO FEFEAFEJ&C">'J":"J% P(FEFEFEFEFEFEFEFEFEFEFEFEMFEFEFFEFEFEFEJ%A"ArJ"J& P*FDFDFEFEFEFDO%FBAFEFDFDFDFDJ$9%8"8#C#>%:&8#J":$:$J#;#9"=" P,FDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE:FEFEFEFEFEFEFE=FEFEFEFEFEFEJ)8#J'8'J%9&I"=%9%<" P1FEFEFDFDFEFEFDFDFDFD6FEFEFDFDFEFEFEFEFDFDFDFDBFEFBFBFBFEFBFBFBFEFEFEFDFDFEFEFDFDFEFEJ$J";#H%J%;";#8&;# PEFEFEFE5FEFDFDFEFEFEFEFFDFEFEFEFDFEFDFDFEFDFDFEFEFDJ$C#:"8#J%F$J%J$ PEFDFDFDFEFEFDFEFE7FBFBFBFBFEFEFE4FDFDFEFE4FEFDFEJ%9#8"J%J" Q'FDFDFDFDFDFDFEJFBFBFBFB5FDJ$J";":#J"="J#8#8( P,FEFEFDIFEFDFEFEAFEFEAFDFEFEFDFDFEFDFDFDFEFDJ%9'8%J'8'J%9&H&A% P*FEFEFEFDFDFEFEFEFEFDFDFEFEFE6FDFEFEFEFEFDFEFEFEFEFEFDBFBFEFEFBFBFEFEFEFBFEFEFEFEFDFDFEFEFDJ&;%:$<#;#9#9%9&9#G":"9":%9$I%:"9":#;"9" P(FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFBFBFBFBFBFBFBFBFBFBFDFDFDFDFDFDFDFDFDFD JZ8z Q@JO!FCJz Q?P!FD JZJZ P?F=O J#z#J#z# P=FFFFFFDFFFF9FFFFO FDFFFFJ%z%J$J$ P#:#9%:$:%>#G#>#:"9$:%;$8$B# P9FFFDFEFDFDFEFEFDFEFEFEFEFEFEFDFEFEFDFCFFFDFEFDFDFEFEFEFEFDFEFEFEFEFEFEFEFEFDFCJ#H%8&:%;#J&:%9+ P;FCFDFEFDFDFEFEFDFDFDFEFEFDFDFEFDFCFFEFDFDFDFEFEFDFDFEFEFDFDFDFDFEFDFDFDFEJ"D"J">";# Q!FDFDO"FDFDFEFDJ$J$H$ Q(FEFEFEO)FEFEFEFEFEFEJ%J28 Jun 1993 Q(FDFDFDFDO'FEFDFDFDFDFDFDFDJ#:#D"J#:"G#>" PCFDFEFEFDFELFDFEFEFDFEFEJ#=';%8&C#J'8'@+ P;FDFCFDFEFEFEFEFDFEFEFEFDFDFEFEFEFDFCFD>FDFEFEFEFEFDFDFEFEFEFDFEFDFEFEFEFDFDFEFEFEFDJ#@%<$:$:"9"=#G#@%:&8"9":$8$:"=# P9FDFFFDFDFDFDFDFDFDFDFDFDFDFDFCFDFDFFFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFCFDJ#J# P store /green < DE00B1589F0279E80000000000000073000000017FFFFFFF00000000F7FFE8A8 F773BA4800000000000000000000007340844000F7FFE7A80000000000000000 0000000100000000000000000000000000000001000000000000000000000000 F779C05C00000000000000000000000000000020000000000000000000000000 00004B940000000000000000000000000000003A000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 F7FFE8F400000000A8E7FFF70000000073000000010000000000000000000000 00000001000000000000000000000000F7FFE874000000000000009F58B100DE > store /blue < 000000000000000064E8FFF7A87C020000000000000000000000000000000000 0000000000000000000045500000000000000000000000000000000000000006 F779C05C0040108000004550000034D000000000000000080000000000000006 7300000098E8FFF70000000058E9FFF754E9FFF700000083F7FFE954F7FFE908 00004C9CF7FFE94CF7FFE950F7FFE954F7FFE95800000000F7FFE89800000073 00000000000000FF000000010000000000000000000000020000000200000006 F82F6F5800002BBE00000000000279FC080000000000000000000000F7FFE978 0000342C0000000100000000000031EF00027CA80000000F000000D878F100FF > store BEGINBITMAPCOLORc Az UHFE7t"Jt" FDFCUIFDFCAz UHFDBZ" UEFC:'9z9' FCFCFCFCFCFCUDFCFCFCFCFCFCFC;z" V&FDFFJ$ 5FFFFFFH)JsG"=% FFFFFFFBFBFBFFFCQ0FEFEFEFEFEFEF&9"J$8$F"=' FFFFFBFFFBFBQ1FDFDFDFDFDFDFEFEFEFDFDFEFEE&;#J%9#8$8&;#9%9#8#9% FFFBFBFFFBFBFCQ9FEFEFEFEFEFEFEFEFEFEFEFDFEFEFDFDFEFEFEFEFEFEFEFEFEFEFEFE7$J'>"8#<";'@'J% FCFCFCR!FEFEFDFDFEFEFDFDFDFEFEFEFDFDFEFEFEFEFDFDFEFEQ FCFCFCFC&?#J$8"<%8#9#J& FEFEFDFDFDFFFBQKFDFEFEFDFDFDFDFDFEFEFDFDQ3FDFDFDFEFEI";#J#;%A#8"9$:$8":# FFFCFDQ:FEFEFDFEFEFDFDFDFEFEFEFEFDFEFEFDFEFEH$9"J%9%C":93/06/28 FBFCFCFCQ" FFFCFCFCQ@FEFEFDFEFEFEFEFDFEFEFDFEFEFDFED":#:"J'?%:'8(?' FDFBFBFDQ9FDFEFEFEFEFDFDFEFEFEFDFEFEFEFEFDFDFEFEFEFDFEFEFDFEFEFEFEFDF#9"J#;%9#8#8'8%:'9#;% FCFCFBQ7FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDD#8%8" FFFCFCFCFCFCFDD%:# FCFCFDFDFDFDD#8% FDFDFDFDFDFD ;Z" V%FC"9%=%:#:$>%:$9%:#=%9#=%:#:$=%9#?$:$9%<$:%;$>%9%8$:$9$E$9%8"9"8%8% >FEFEFEFDFEFEFEFEFEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFEFEFEFEFEFEFDFEFEFEFEFEFEFDFEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFEFEFEFDFEFEJ%8&B%<%9%8&>%8&8%9%<%8%<%9%8&<%8%=%9&9$;&:%9%?%9*8%8%D&8%@$9% GFEFDFDFEFEFDFDFDFEFEFDFDFEFDFEFDFDFEFDFDFEFEFDFDFDFEFEFDFDFEFEFDFDFDFEFDFEFDFDFEFDFDFEFDFEFDFDFEFDFDFEFDFEFDFDFEFDFDFEFEFDFDFDFEFDFEFDFDFEFDFDFEFEFDFDFDFEFDFDFDFEFEFDFDFEFDFDFDFEFEFDFDFEFEFDFDFDFEFDFDFEFEFDFDFDFEFDFDFDFEFEFDFDFDFEFDFDFDFEFDFDFDFEFDFEFDFDFEFDFDFEFDFDFEJ"J"F"H";"C"D#8#B"J#8#J"=">"I"<"J%J";" GFD6FDFDFDFDFDFEFDFDFEFD5FEFDFDFE5FDFDFDFDFDFDFEFDFEFDFEFEFEEFEFEFEFEFEFEO$FEFEFE@FEFEFEFEFEFEEFEFEFEFDFEFEFDFEFEFDFDFEFEFEJ%J93/06/28J%J@(#) whats_new.ps 1.3@(#)J%9$9$@#9% O FDFDFDFDDFDFDFDFDFEFDFDFDO$FDFDFDFD?FDFDFDFDFEFDFDFDEFDFDFDFDFDFDFEFDFDFEFDFEFDFDFDFDJ$E"J"J#8#J"A#8#?"="J"J"J"A"F" ?FDFEFDFEGFEKFDFEFEFD6FEFDFEFEFDFEFE>FE8FE>FEFEFEJ%8&J$?&>%8'8$D$8%=$?&B%=%9&A'@%?%=&8%8%D&9$8% GFEFEFEFDFDFEFEFEFD7FDFEFEFDFEFEFEFDFEFEFEFDFDFEFEFEFDFEFDFEFEFDFEFEFDFEFEFDFDFEFEFDFEFEFEFDFDFEFEFDFDFEFEFDFDFEFEFEFDFDFEFEFEFDFEFDFEFEFDFEFEFEFDFDFEFEFEFDFEFEFEFDFEFEFEFDFDFEFEFEFDFDFEFEFDFEFEFDJ";#<$:$>"9"9">#8"9"9$?$:&9#8"9">#9#?#8"9"9$>";#:":%9$9"?&8"9":%>$9";$9$9$>"9"9$;#9%8";"9"8" 9FDFEFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDJ" >FEJ#<"J"J" >FDFDFDO,FDQ FD JZ ;O+J#z# 9FFFFO+FDFFFFJ$J$ 8FFFDFDO+FDFDFFJ#J# 7FFFDO/FDFCJ#?%DrJ# 6FFFDFEFEFEFEFE=FDFCJ'C( @FEFDFDFDFDFEFDFDFDFEFDFDFDJ#>#:":#G#9">r<# 5FFFDFEFDFDFEFEFEFEFEFCFDFCJ93/06/28B' IFEFDFDFEFEFDFDFEFBFBFBFBFBFFJ#8#C#8%>#9# HFEFDFDFEFEFDFDFEFDFDFDFCFFFDJ" EFEJ& O>FDFCFBFFFDJ#=#8#C#8% ?FDFEFDFEFEFDFDFEFEFDFDFEJ&:93/06/28C$ @FDFEFEFEFEFDFEFEFDFDFEFEFDFDFFFDJ#@&:#@"<#9"A"?#>Z" 5FDFFFDFDFDFDFDFDFDFDFDFDFDFDFCFDSAFCJz P'S@FCJ#J#?z 6FDFFO1FCFDSBFDJ#J# 7FDFCO/FCFDJ$J$ 8FDFCFCO+FCFCFDJ#z# 9FDFDO+FCFDFDJz ;O+FD J#<# P2FEFEFEFEJ%J">' IFEFEFEFEIFEFEFEFEFEFEFEJ'J"A% HFEFEFDFDFEFEGFEFDFDFDFDJ$8#8#8#8,8%:&8"8#C%?$;%9) GFEFEFDFDFDFEFEFEFEFEFEFDFEFEFDFEFEFDFEFEFEFEFEFEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFEFEFDFEFEJ';'8#B'=%:' O6FEFEFDFDFEFEFEFDFEFEFDFDFDFDFEFEFDFDFEFEFEFEFDFDFEFEFDFDFEFEJ$9$B"G$J' O,FEFDFDFEFDFDFDFEFEFE@FEFDFDFDFDFDJ";";#J$J#<" O,FDFDFEFE9FDFDFD8FEFEFDJ%J% O8FDFDFDFDO$FDFDFDFDJ$9";"J"J"?"># GFDFEFEFEFE5FEKFEFEFEFEJ'8%F'A%B'=%:' HFDFEFEFEFEFDFDFEFEFDFDFEFEFEFEFDFDFEFEFEFDFEFEFEFEFDFDFEFEFDFDFEFEFEFEFDJ%:&8#:#;%:#8#9$<#;%:#9&9%9#:# IFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD J"J"8"J"8"J"J"I"J"J" JFEO1FEFEDFEFE7FE8FEFE9FEKFEJ"J"J" MFEO&FEPGFEJ#J#J#J#I"J#J" IFEFDO0FEFDFFEFDO$FEFDFD8FEFDKFDJ%8%8#:08#:%9%@#;#:%8#:$B#;#9%9$:$9%8$?$:)8"9%9%8$@#:%:$:%9"="9"9% LFEFEFEFEFEFDFEFEFEFEFEFDFEFEFEFDFEFEFEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFEFDFEFEFEFEFEFEFEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFDFEFDFEFEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFEFDFEFEFEFEFEFEFDFEFEFEFEFEFEFDFEFEJ#8%9):%B):%8%9#:%9%:)8&:#:%9%9$8%9&9):#8%9%8$=%8*:#9%:%8&:%<"B% HFEFDFDFEFDFDFEFDFDFEFEFDFDFEFEFDFDFEFEFDFDFEFEFDFDFEFEFDFDFEFDFEFDFDFEFDFEFDFDFEFEFDFDFEFEFDFDFEFEFDFDFEFEFDFDFDFEFEFDFEFDFDFEFEFDFDFEFEFDFDFEFDFDFDFEFDFDFDFEFEFDFDFDFEFDFDFDFEFDFEFDFDFDFEFDFDFDFEFDFDFEFDFDFEFDFEFDFDFDFEFDFDFDFEFDFEFDFDFEFEFDFDFEFEFDFDFDFEFEFDFDFEFEFEFDFDFEJ"9"="E"9"="H";#8#9"9"J";#8#8"I"J#;"?"J#8#9"D";#;#>" O%FDFDFDFDFDFDFDFEFDFDFEFDFD4FDFEFDFDFEFDFD5FEFDFDFD6FEFDFDFEFDFDFDFEFEFDFDJ$J$>$?$J$J$D$ PLFEFEFEFFEFEFEFDFEFEFDFEFE?FDFEFE9FEFEFEFEFDFEJ#J#J%9#J%>$9#:$J$9#I% GFEFDO0FEFD?FDFDFDFDFEFD@FDFDFDFDFDFDFEFEFDFDFDFE?FDFDFEFEFDFDFDFDFDJ#8#G"F#8#@"="J#J#8#C"A( P8FDFEFEFDFEFDFEFEFDFEFE9FDFEFFDFEFEFDFEFDFEFDFDFDFEFDJ#;$E%J'C%D&8#<%9%>%9&=%8#:%909)8#;%:%8& FFEFDFDFEFEFEFEFEFD?FDFEFEFDFEFDFDFEFEFDFDFEFEFEFDFEFDFEFEFEFDFDFEFEFDFDFEFEFDFDFEFEFEFDFEFEFEFDFEFDFEFEFEFDFDFEFEFEFEFEFEFDFDFEFEFDFEFEFEFDFEFDFDFEFEFDFEFEFEFDFDFEFEFEFDJ#8"9"9":$9'9"9"9"9"9":#>"9":#:"9"9"9$@%;#9"<%9$9":$?$;&;":$;'A#;$:$:"9":"9";"9"9" O FDFDFDFDFDFDFDFDFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDJ"J'J"J"J"J" FFD>FDFDFDFDFDFD;FDGFDO%FDMFDJ"J"J" O0FDQ5FD?FD J"J#8"9"J#?"="J"C"9"?"J"=" O'FEEFEFEFEFE?FEFEFEFEFFEFEFEFEO/FEFEJ%J"I$J$J%J% GFEFEFEFE;FEFEFDFDEFEFDFDP$FEFEFEFE@FEFEFEFEJ&J"J"J'J$ FFEFDFDFDFDO&FDP3FD4FEFDFDFDFDFE@FDFDFDJ$>$;)<$=%8"=$?#9%;%9#?$:$9%<$:%;$?$<":$<";#:#9%:$:%F#?$:$9% O FEFEFEFEFEFEFEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFEFEFEFEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFEFEFDFEFEFEFEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFDFEFEJ";&<&9*;&<%?&=%9$;%8%=%9&9$;&:%9%>%@%;#G%8&:93/06/28=%9&9$ GFEFEFDFDFDFEFEFDFDFDFEFEFDFDFDFDFDFEFDFDFEFDFDFDFEFDFEFDFDFEFDFDFDFEFEFDFDFEFEFDFDFDFEFDFDFEFDFDFEFEFDFDFDFEFDFDFDFEFEFDFDFEFDFDFDFEFEFDFDFEFEFDFDFDFEFDFDFDFEFDFDFDFEFDFEFDFDFEFEFDFDFDFEFEFDFDFEFEFDFDFEFEFDFDFDFEFDFDFDFEFEFDFDJ%J#C"J#8#8"B#8#J"=">"G#B#=#H"D"A$8#8#J" FFDFEFEFE5FEFDFDBFEFDFDFEFDFEFDFDFE5FDFDFDFEFDFEFDFEFDFDFDFEFEFEFEFDFDFE5FDJ%9$>$I$J$J$C$J"J$G$J$ GFDFDFEFEFEFEFEFEFEFEFEFEFE5FEFEFEO"FEFEFEFEFEFEMFE;FEFEFEFDFDFD6FEFEFEJ":%=28 Jun 1993J%J@(#) whats_new.ps 1.3@(#)J$J%J% IFDFDFDFDFDFDFDFDFDFEFDFDFD5FDFDFDFDO!FDFDFDFDFEFDFDFDMFDFDFE9FDFDFDFDIFDFDFDFDJ"@"8#J"<#8#E#8#?"="J"=#B#?";#:#D"J#8#?"="=" O#FEFEFDFEIFEFDFEFEFDFDFEFEFDFEFE>FEFDFEFDFEFEFDFEFEFDFE5FDFEFEFDFEFEFEJ&8&<&9%8$;'H&=28 Jun 1993=%9&A'@%>%@%;"=';%8&J%=%9& FFEFEFEFEFDFDFEFEFEFDFDFEFEFEFDFDFEFEFEFDFEFEFDFEFEFEFDFEFDFEFEFEFDFDFEFEFDFDFEFEFDFDFEFEFDFDFEFEFEFDFDFEFEFEFDFEFDFEFEFDFDFEFEFEFDFEFEFEFDFDFEFEFEFEFDFEFEFEFDFDFEFEFEFD6FDFEFEFDFDFEFEFDFDFEFEFEFDJ%:$:"9$;$9#<&<":"9"9$?#9"?";#:":%9$9"?&8"9":%>$8"9":$8"9"=%<$:$:"9"="=#:":%9$9":" FFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD J" S(FD Jz"8X" ET.FCFFFCJZ;w FT,FDJz GT+FD Jw U)FCJy U(FD JX U)J"w" U(FFFDFCJ#=z" O(FEFES8FCFFJ"8""I%J$J"8" O$FEFEFEFEFEFEO/FEFBFBR$FCFCJ"@"G'J":" O#FEFEFEFBFBFBFBFES4FCFCJ"B"E#:":#>"9"9%?#:%:$=%9#?$:$9%J"<" O"FEFEFEFBFBFEFEFEFEFEFBFEFEFEFEFEFBFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFBFEFEQ1FCFCJ%<%JSCCS/s.whats_new.ps=%:%8&<%8%=%9&9$ O"FDFDFDFDFDFDFDFD9FEFBFBFEFEFBFBFEFEFBFBFEFEFBFBFEFEFBFBFBFEFBFEFBFBFEFBFBFEFEFBFBFBFEFBFBFBFEFEFBFBJ#8#E"?#8#9"J#8#J"Js OHFEFBFBFEFBFEFBFBFEFB5FEFBFBFE5FBQ3FDJ"J$J$ OEFEO#FEFEFE@FEFEFEJ%J% PIFBFBFBFB?FBFBFBFBJ"8"8"8#=#8#?"E#8#C"A#8#?"="="8"8" O6FEFEFEFBFEFBFEFEFBFEFBFEFEFBFEFBFEFEFBFEFEFEFEFEJ&:%=%;%=%@&B%=%9& O@FBFEFEFEFEFBFEFEFBFBFEFEFBFEFEFEFBFBFEFEFBFBFEFEFEFBFBFEFEFBFBFEFEFBFBFEFEFEFBJ"8"8":&:#?%:$?#:"9"9$>";#:":%9$9":"8"8"JW O6FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBQ'Jw U)FDJ" P.FBJ"z O!FC/FBJZ O"SGJ,z O!FDFDFEFDFEFDFEFDFEFDFES>FDJr$ O#FDFEFDFEJ"<% O#FEFDFDFDFEJ"<"8# O#FDFEFDFEJ"<& O#FEFDFEFDFEFDJ"=% O#FDFDFDFDFEJ"@#?";"9$9$ O#FEFDFEFEFEFEFDFEFEFDFEJ"@#?";#8$8& O#FDFEFDFDFDFEFDFEFDFEFDFDFDFEJ"@#F&9"9" O#FEFDFEFDFEFDFEFDFDFDJ"@#<";":$:& O#FDFEFDFEFEFDFDFDFEFDFEFDFEJ"@#<";":$:&Jw O#FEFDFEFDFDFEFDFEFDFDFDFDFDS*FCJ"@#F%:"9"Jw O#FDFEFDFEFDFDFDFEFES*FDJ"@#?";#8":& O#FEFDFEFEFEFDFEFDFEFDFEFDJ"@#?";"9";$ O#FDFEFDFDFDFDFDFDFDJ. O#FEFDFEFDFEFDFEFDFEFDFEFDFEJ. O#FDFDFDFEFDFEFDFEFDFEFDFEFDJtJs O&FDSJFC J*J"<" O#FEFDFEFDFEFDFEFDFESMFDFDJr$J":" O#FDFEFDFESMFDFDJ"<%J"8" O#FEFDFDFDFESMFDFDJ"<"8#?"J# O#FDFEFDFEFESCFDFDJ"<&># O#FEFDFEFDFEFDFEFDJ"=%>" O#FDFDFDFDFEFDJ"@#=$9"=" O#FEFDFEFEFDFEFEFEJ"@#=$8#=#Jw O#FDFEFDFDFDFDFEFDFDFES0FCJ"@#="9#?#Jy O#FEFDFEFEFEFDFDFES.FDJ"@#="9":$:"J$ O#FDFEFDFDFDFEFDFEFDS4FCFCFCJ"@#="9":$:" O#FEFDFEFEFEFDFDFDFEJ"@#="9#?# O#FDFEFDFDFDFEFEFDJ"@#=":#=# O#FEFDFEFEFDFEFEFDJ"@#=";"=" O#FDFEFDFDFDFDJ. O#FEFDFEFDFEFDFEFDFEFDFEFDFEJ. O#FDFDFDFEFDFEFDFEFDFEFDFEFDJt O&FD J* O#FEFDFEFDFEFDFEFDFEJr$ O#FDFEFDFEJ"<% O#FEFDFDFDFEJ"<"8#J" O#FDFEFDFEO!FEJ"<&J"J"J" O#FEFDFEFDFEFDO!FD:FE7FEJ"=%J"J"J" O#FDFDFDFDFE5FEO&FD7FDJ"@#=$9$9$A$;"?";$C";";$9";"9$ O#FEFDFEFEFDFEFEFDFEFEFDFEFEFDFEFEFEFEFDFEFEFEFEFDFEFEFEFEFDFEJ"@#<%8&8$@&:":":";$C";#9%9";"8&J" O#FDFEFDFEFDFDFDFEFDFDFDFEFDFEFDFEFDFDFDFEFDFEFDFDFEFDFDFDFEFEFDFDFDFDFDFEFDFDFDFEQ@FDJ"@#<";"9"9"A"9"8"<"<"9#8"A"<&>"9"8"9"J$ O#FEFDFEFDFDFDFDFDFDFEFDFEFEFDFEFEFDFEFDFEFDFEFEFDFDQ?FDFCFDJ"@#>"9&9"C$8#;"9%9"9"A"8":$<%9"8&J$ O#FDFEFDFEFEFDFEFDFEFEFEFDFEFDFEFEFEFDFEFDFDFDFDFEFDFDFDFEFDFEFDFDFEFDFEFDFEQ?FCFDFCJ"@#>#8&9"C$9";"8&9"9"A"8":$;&9"8&J$ O#FEFDFEFDFEFDFDFDFDFDFDFDFDFDFDFDFEFDFDFDFEFEFEFEFDFEFDFEFEFDFDFDFEFEFDFDFDFDFDQ?FDFCFDJ"@#?"8"9"9"A"9";"9"8"9"9"9"A"<&:"9"9"8"9"J$ O#FDFEFDFDFEFEFEFEFEFEFEFDFDFDFDFDFEFDFDFDFEFDFDFDFEFEQ?FCFDFCJ"@#=":&9#@,9":";"9"A";#9%9";"8&J$ O#FEFDFEFEFDFEFDFEFDFDFEFDFEFDFEFDFEFDFEFDFEFDFDFEFEFEFEFEFDFDFEFDFEFEFEFDFEFDFEFDQ?FDFCFDJ"@#=";$;"8&:t?";"9"8&:";";$9";"9$J$ O#FDFEFDFDFDFDFDFDFEFDFEFDFEFDFDFDFDFEFDFEFDFEFDFDFDFDFDFDFDFDFDFDQ@FCFDFCJ.J&J&J$ O#FEFDFEFDFEFDFEFDFEFDFEFDFE8FDFDFDFDFDCFDFDFDFDFDR5FDFCFDJ.J$ O#FDFDFDFEFDFEFDFEFDFEFDFEFDSLFCFDFCJtJ$ O&FDSMFDFCFDJ$ U.FCFDFCJ*J$ O#FEFDFEFDFEFDFEFDFET"FDFCFDJr$J$ O#FDFEFDFET!FCFDFCJ"<%J$ O#FEFDFDFDFET FDFCFDJ"<"8#J"J"9"J$ O#FDFEFDFEO-FEO#FEFEQ7FCFDFCJ"<&J"J"8"E"J"9"J$ O#FEFDFEFDFEFDBFE8FDFEFE>FDFDQ7FDFCFDJ"=%J"B"J":"E"J"J$ O#FDFDFDFDFE5FEFD6FEFDFD>FEQ;FCFDFCJ"@#=$9$9$A$;"9"9$9$9"9$=$9$9$A$:">";$9$;"J$ O#FEFDFEFEFDFEFEFDFEFEFDFEFEFDFEFEFEFEFDFEFEFDFEFEFEFDFEFEFDFEFEFDFEFEFDFEFEFDFEFDFEFEFDFEFEFDFEFEPLFDFCFDJ"@#<%8&8$A$;"9"8&8$9"9$=$8&8$@&9"9":":%8&:"J$ O#FDFEFDFEFDFDFDFEFDFDFDFEFDFEFDFDFEFDFDFDFEFDFDFDFEFDFEFDFDFDFEFDFDFDFDFEFDFDFDFEFDFEFDFEFDFDFDFEFEFEFDFEFDFDFDFEFDFDFDFEFDPLFCFDFCJ"@#<";"9"9"B#8"9"9"8"9"9":"9#8"9"9"8"9"8#A"9"9"9"<"8";"9"8"J$ O#FEFDFEFDFDFDFDFEFDFEFEFEFDFDFDFEFEFDFEFEFEFDFDFEFDFDFDFDFDFEFDFDFDFEQ FDFCFDJ"@#>"9&9"B"9"9"9"8"9"9":"9"9"9"9"8&8"D$9"9"9%:"9&8#J$ O#FDFEFDFEFEFDFEFDFEFEFDFDFDFDFEFEFEFDFDFDFDFDFEFDFEFDFEFDFEFDFEFEFEFEFDFEFDFEFEFDFEFDFEFDFEPMFCFDFCJ"@#>#8&9"B"9"9"9"8"8#9":"9"9"9"9"8&8"D$9"9"8&:#8&9"J$ O#FEFDFEFDFEFDFDFDFDFDFDFEFEFEFEFDFEFDFDFEFEFEFEFEFDFDFDFDFDFEFDFDFDFDFDFEFDFDFDFEFDFEFDFDFDFDFDFDPMFDFCFDJ"@#?"8"9"9"B"9"9"8#:$9":"9"9"9"8#8"9"8"B"9"9"9"8"9";"8"9";"J$ O#FDFEFDFDFEFEFEFDFDFDFEFDFEFDFEFEFDFDFDFDFEFDFEFEFDFEFEFEFEFDFDFDFEFEFEPKFCFDFCJ"@#=":&9#A$=$:$9":"9"9";$8&8"B'8"9":";":&8%J$ O#FEFDFEFEFDFEFDFEFDFDFEFEFDFEFEFDFEFDFDFDFDFEFEFEFEFDFEFDFEFDFEFDFEFDFEFDFEFDFEFDFDFEFEFDFEFDFEFDFEFDFEFDPKFDFCFDJ"@#=";$;"8&:$=$<">"9"9";$9$9":&:&A";";$9$J$ O#FDFEFDFDFDFDFDFDFEFDFEFDFEFDFDFDFDFDFDFEFDFDFDFDFDFDFDFDFDFDFEFDFEFDFEFDFDFDFDFDFDFDFDFDFDFDFDFDPLFCFDFCJ.J&J%J&J$ O#FEFDFEFDFEFDFEFDFEFDFEFDFE8FDFDFDFDFD4FEFDFEFDGFDFDFDFDFDQGFDFCFDJ.J$J$ O#FDFDFDFEFDFEFDFEFDFEFDFEFDO#FDFDFDRFFCFDFCJtJ$ O&FDSMFDFCFDJ$ U.FCFDFCJ*J$ O#FEFDFEFDFEFDFEFDFET"FDFCFDJr$J$ O#FDFEFDFET!FCFDFCJ"<%J$ O#FEFDFDFDFET FDFCFDJ"<"8#J"J$ O#FDFEFDFEOAFER+FCFDFCJ"<&J"9"H"H"9"J$ O#FEFDFEFDFEFDO*FEFEFDFEFEQBFDFCFDJ"=%J"J"9"H"H"9"J$ O#FDFDFDFDFE5FEBFDFDFEFDFDQBFCFDFCJ"@#=$9$9$C"9$9"=$9$9"=":"B";"9"9$;";";$J$ O#FEFDFEFEFDFEFEFDFEFEFDFEFEFEFDFEFEFEFDFEFEFDFEFEFEFDFEFEFEFEFDFEFEFEFEFDFEQ(FDFCFDJ"@#<%8&8$C"9$8#=$9$8#=#9"B";"9"8&:";":%J$ O#FDFEFDFEFDFDFDFEFDFDFDFEFDFEFDFDFDFEFDFEFDFDFDFDFDFDFDFEFDFDFEFEFDFDFDFEFDFDFDFEFDFDFEFDFDFDQ(FCFDFCJ"@#<";"9"9"H#8#8"9"9"9"9#?#8"D"9"9"8"9"8";"9"8"J$ O#FEFDFEFDFDFDFDFEFDFEFDFEFEFEFEFEFDFDFEFDFEFEFEFDFDFEFEFEFDQ+FDFCFDJ"@#>"9&9"A"<"9"9"9"9"9"9":$:"8"A%9"9":$8#:&:"J$ O#FDFEFDFEFEFDFEFDFEFEFEFDFDFDFDFDFDFDFEFDFEFDFEFEFDFEFDFDFDFEFDFEFDFEFDFEFDFEFDFEQ)FCFDFCJ"@#>#8&9"A"<"9"9"9"9"9"9":$:"8"@&9"9":$9":%;#J$ O#FEFDFEFDFEFDFDFDFDFDFDFDFEFEFEFEFEFEFEFDFDFDFEFDFEFDFDFDFEFEFEFDFDFDFDFEFDFDFDFDFEQ(FDFCFDJ"@#?"8"9"9"H"9"9"9"8#9"9#?#8"@"9"9"9"8"9";"8"?"J$ O#FDFEFDFDFEFEFEFDFDFDFDFEFDFDFDFEFEFDFEFDFDFDFDFEFEFEFDFDQ(FCFDFCJ"@#=":&9#C"9"9"9";$;"8#=#9"B";"9"8,:";"J$ O#FEFDFEFEFDFEFDFEFDFDFEFEFEFEFEFEFDFEFEFDFEFEFDFDFEFEFEFDFEFDFEFDFEFDFEFDFEFDFEFEQ*FDFCFDJ"@#=";$;"8&<"9"9"9";$;"9"=">&:";"9"9t;";"J$ O#FDFEFDFDFDFDFDFDFEFDFEFDFEFDFDFDFDFDFDFDFDFDFDFEFDFEFDFEFDFDFDFDFDFDQ*FCFDFCJ.J&J&J$ O#FEFDFEFDFEFDFEFDFEFDFEFDFE8FDFDFDFDFDO'FDFDFDFDFDR#FDFCFDJ.J$ O#FDFDFDFEFDFEFDFEFDFEFDFEFDSLFCFDFCJtJ$ O&FDSMFDFCFDJ$ U.FCFDFCJ*J$ O#FEFDFEFDFEFDFEFDFET"FDFCFDJr$J$ O#FDFEFDFET!FCFDFCJ"<%J$ O#FEFDFDFDFET FDFCFDJ"<"8#J"J$ O#FDFEFDFEO=FER/FCFDFCJ"<&J"J$ O#FEFDFEFDFEFDO=FDR/FDFCFDJ"=%J"J$ O#FDFDFDFDFE5FES7FCFDFCJ"@#=$9$9$C"=";";$J"C";$A"9"9$9$9$J$ O#FEFDFEFEFDFEFEFDFEFEFDFEFEFEFEFEFDFE7FEFEFEFDFEFEFEFEFDFEFEFDFEFEFDFEPLFDFCFDJ"@#<%8&8$C#9"8#:";$:"9"9"9"9"8#B";$:"9"8"9"8&8$8%J$ O#FDFEFDFEFDFDFDFEFDFDFDFEFDFEFDFDFEFEFDFEFDFDFEFDFEFEFEFEFEFDFEFDFDFEFDFEFEFDFDFEFDFDFDFEFDFEFDFEFDFDFDPLFCFDFCJ"@#<";"9"9"E#8"9"8"9"9#8"8#8"8#9"9"9"@"9"9#8"8"9"8"9"8"9"8#9"J$ O#FEFDFEFDFDFDFDFDFEFDFDFEFEFEFDFEFDFEFDFEFDFDFDFDFEFEFEFDFEFDFDFEFEFDFDFEFDFDQ!FDFCFDJ"@#>"9&9"A":"8"9"8&9"9"9";":"9"9"@&9"9"?&:$8"<"J$ O#FDFEFDFEFEFDFEFDFEFEFEFDFEFEFDFEFDFEFDFDFDFDFDFEFEFEFDFEFDFEFDFDFDFDFEFDFEFDFEFDFEFDFEPMFCFDFCJ"@#>#8&9"A":"8"9"8%:"9"9(:"9"9"@%:"9"9$:$;$8"<#J$ O#FEFDFEFDFEFDFDFDFDFDFDFDFEFDFDFEFDFDFDFEFEFEFDFEFDFEFDFEFDFDFDFEFDFDFDFEFEFEFDFEFDFDFDFDFDFDFEFDFEPLFDFCFDJ"@#?"8"9"9"E#8"9"8"="9"9(:"9"9"@"="9"9$@"9"8"="J$ O#FDFEFDFDFEFEFEFEFDFEFEFDFDFDFDFEFDFDFDFEFDFEFEFEFDFDFDFDFEFDFEFEFDFDPLFCFDFCJ"@#=":&9#C#9&:";"9":"9";"9"9"B";"9":"<":);"J$ O#FEFDFEFEFDFEFDFEFDFDFEFEFDFDFEFDFEFDFEFEFEFDFDFDFDFDFEFEFEFDFEFDFEFDFEFDFEFDFEFEQ FDFCFDJ"@#=";$;"8&<":%;";"9"J&:";"9"A";r;"J$ O#FDFEFDFDFDFDFDFDFEFDFEFDFEFDFEFDFDFDFDFDFD:FEFDFEFDFEFDFDFDFDFDFDQ FCFDFCJ.J&A"J&J$ O#FEFDFEFDFEFDFEFDFEFDFEFDFE8FDFDFDFDFDFDMFDFDFDFDFDQMFDFCFDJ.J$ O#FDFDFDFEFDFEFDFEFDFEFDFEFDSLFCFDFCJtJ$ O&FDSMFDFCFDJ$ U.FCFDFCJ*J$ O#FEFDFEFDFEFDFEFDFET"FDFCFDJr$J$ O#FDFEFDFET!FCFDFCJ"<%J$ O#FEFDFDFDFET FDFCFDJ"<"8#J"9"J$ O#FDFEFDFEP+FEFEQ=FCFDFCJ"<&J"G"J"H"9"J$ O#FEFDFEFDFEFDHFEFE9FEFDFDQ=FDFCFDJ"=%J"H"G"<"H"H"J$ O#FDFDFDFDFE5FEFDFDFEFDFEQAFCFDFCJ"@#=$9$9$A$9$9"="9"9&;";";"A$:">";$9$;"J$ O#FEFDFEFEFDFEFEFDFEFEFDFEFEFDFEFEFDFEFEFEFEFEFDFEFDFEFEFEFEFEFDFEFDFEFEFDFEFEFDFEFEQ$FDFCFDJ"@#<%8&8$@%9$8#="9"8';#9#;"@&9"9":":%8&:"J$ O#FDFEFDFEFDFDFDFEFDFDFDFEFDFEFDFEFDFDFDFDFDFDFEFDFDFDFEFDFDFDFEFDFDFEFEFDFDFEFDFDFDFEFEFEFDFEFDFDFDFEFDFDFDFEFDQ$FCFDFCJ"@#<";"9"9"A"<"9#B%9"=&<"@"9"9"9"<"8";"9"8"J$ O#FEFDFEFDFDFDFDFDFEFEFDFEFDFEFDFDFDFEFDFEFDFEFDFDFDFDFEFDFDFDFEQ&FDFCFDJ"@#>"9&9"C":"9":$<$:"9":$:"8"B$9"9"9%:"9&8#J$ O#FDFEFDFEFEFDFEFDFEFEFEFDFDFEFDFEFDFEFDFEFEFDFDFDFEFDFEFDFEFEFEFEFDFEFDFEFEFDFEFDFEFDFEQ%FCFDFCJ"@#>#8&9"C#9"9":$<#;"9":$:"8"B$9"9"8&:#8&9"J$ O#FEFDFEFDFEFDFDFDFDFDFDFDFEFEFEFDFDFDFEFDFDFDFEFDFEFDFEFDFDFDFDFDFEFDFDFDFEFDFEFDFDFDFDFDFDQ%FDFCFDJ"@#?"8"9"9"D"9"9#B"8"9"=&<"@"9"9"9"8"9";"8"9";"J$ O#FDFEFDFDFEFEFEFDFDFDFEFDFEFEFEFDFDFDFEFDFEFEFEFEFDFDFDFEFEFEQ#FCFDFCJ"@#=":&9#A"="8#="9"8#8#;#9#;"@'8"9":";":&8%J$ O#FEFDFEFEFDFEFDFEFDFDFEFEFEFDFEFEFEFDFEFDFEFEFDFDFEFEFDFEFDFEFDFEFDFDFEFEFDFEFDFEFDFEFDFEFDQ#FDFCFDJ"@#=";$;"8&:"="9"="9"9"9";";";"8&:&A";";$9$J$ O#FDFEFDFDFDFDFDFDFEFDFEFDFEFDFDFDFDFDFDFDFDFDFDFEFDFEFDFEFDFDFDFDFDFDFDFDFDFDFDFDFDQ$FCFDFCJ.J&J&J$ O#FEFDFEFDFEFDFEFDFEFDFEFDFE8FDFDFDFDFDO+FDFDFDFDFDQMFDFCFDJ.J$ O#FDFDFDFEFDFEFDFEFDFEFDFEFDSLFCFDFCJtJ$ O&FDSMFDFCFDJ$ U.FCFDFCJ*J$ O#FEFDFEFDFEFDFEFDFET"FDFCFDJr$J$ O#FDFEFDFET!FCFDFCJ"<%J$ O#FEFDFDFDFET FDFCFDJ"<"8#J"9"J$ O#FDFEFDFEP%FEFEQCFCFDFCJ"<&J"G"J"H"9"J$ O#FEFDFEFDFEFDBFEFE9FEFDFDQCFDFCFDJ"=%J"B"G"<"H"H"J$ O#FDFDFDFDFE5FEFDFDFEFDFEQGFCFDFCJ"@#=$9$9$A$9";$9"9&;";";"A$:">";$9$;"J$ O#FEFDFEFEFDFEFEFDFEFEFDFEFEFDFEFEFEFDFEFEFEFDFEFDFEFEFEFEFEFDFEFDFEFEFDFEFEFDFEFEQ*FDFCFDJ"@#<%8&8$A$9":%9"8';#9#;"@&9"9":":%8&:"J$ O#FDFEFDFEFDFDFDFEFDFDFDFEFDFEFDFDFDFDFDFEFDFDFDFDFEFDFDFDFEFDFDFEFEFDFDFEFDFDFDFEFEFEFDFEFDFDFDFEFDFDFDFEFDQ*FCFDFCJ"@#<";"9"9"B"="8"<%9"=&<"@"9"9"9"<"8";"9"8"J$ O#FEFDFEFDFDFDFDFEFEFDFEFDFEFDFDFDFEFDFEFDFEFDFDFDFDFEFDFDFDFEQ,FDFCFDJ"@#>"9&9"B":%:":$:"9":$:"8"B$9"9"9%:"9&8#J$ O#FDFEFDFEFEFDFEFDFEFEFDFEFDFEFDFEFDFEFDFEFEFDFDFDFEFDFEFDFEFEFEFEFDFEFDFEFEFDFEFDFEFDFEQ+FCFDFCJ"@#>#8&9"B"9&:#9#;"9":$:"8"B$9"9"8&:#8&9"J$ O#FEFDFEFDFEFDFDFDFDFDFDFEFEFDFDFDFEFDFEFEFDFDFDFEFDFEFDFEFDFDFDFDFDFEFDFDFDFEFDFEFDFDFDFDFDFDQ+FDFCFDJ"@#?"8"9"9"B"9"9";"9"8"9"=&<"@"9"9"9"8"9";"8"9";"J$ O#FDFEFDFDFEFEFEFDFDFDFDFDFEFEFEFDFDFDFEFDFEFEFEFEFDFDFDFEFEFEQ)FCFDFCJ"@#=":&9#C"9";";"8#8#;#9#;"@'8"9":";":&8%J$ O#FEFDFEFEFDFEFDFEFDFDFEFEFEFEFEFDFEFDFEFEFDFDFEFEFDFEFDFEFDFEFDFDFEFEFDFEFDFEFDFEFDFEFDQ)FDFCFDJ"@#=";$;"8&<"9";";"9"9";";";"8&:&A";";$9$J$ O#FDFEFDFDFDFDFDFDFEFDFEFDFEFDFDFDFDFDFDFDFDFDFEFDFEFDFEFDFDFDFDFDFDFDFDFDFDFDFDFDQ*FCFDFCJ.J&J&J$ O#FEFDFEFDFEFDFEFDFEFDFEFDFE8FDFDFDFDFDO%FDFDFDFDFDR%FDFCFDJ.J$ O#FDFDFDFEFDFEFDFEFDFEFDFEFDSLFCFDFCJtJ$ O&FDSMFDFCFDJ$ U.FCFDFCJ*J$ O#FEFDFEFDFEFDFEFDFET"FDFCFDJr$J$ O#FDFEFDFET!FCFDFCJ"<%J$ O#FEFDFDFDFET FDFCFDJ"<"8#J"J"J$ O#FDFEFDFEIFEIFER'FCFDFCJ"<&J"J"H"H"9"J$ O#FEFDFEFDFEFDIFD6FEFDFEFEQ>FDFCFDJ"=%J"I"J"H"H"9"J$ O#FDFDFDFDFE5FEFE6FDFEFDFDQ>FCFDFCJ"@#=$9$9$H"8"C$9$9"=":"B";"9"9$;";";$J$ O#FEFDFEFEFDFEFEFDFEFEFDFEFDFEFEFDFEFEFDFEFEFEFDFEFEFEFEFDFEFEFEFEFDFEQ$FDFCFDJ"@#<%8&8$@"9"9"8#9"9":$9$8#=#9"B";"9"8&:";":%J$ O#FDFEFDFEFDFDFDFEFDFDFDFEFDFEFDFEFEFEFDFEFEFEFDFDFDFDFDFDFEFDFDFEFEFDFDFDFEFDFDFDFEFDFDFEFDFDFDQ$FCFDFCJ"@#<";"9"9"A&9"9"9"9"8"9"9"9#?#8"D"9"9"8"9"8";"9"8"J$ O#FEFDFEFDFDFDFDFDFEFDFEFDFDFDFDFDFEFEFEFEFDFDFEFDFEFEFEFDFDFEFEFEFDQ'FDFCFDJ"@#>"9&9"B$:"9"9"9"8"9"9"9":$:"8"A%9"9":$8#:&:"J$ O#FDFEFDFEFEFDFEFDFEFEFDFEFDFEFEFEFEFDFDFDFDFEFDFEFDFEFEFDFEFDFDFDFEFDFEFDFEFDFEFDFEFDFEQ%FCFDFCJ"@#>#8&9"B$:"9"9"9"8"9"9"9":$:"8"@&9"9":$9":%;#J$ O#FEFDFEFDFEFDFDFDFDFDFDFEFDFEFDFDFDFDFEFEFEFEFDFDFDFEFDFEFDFDFDFEFEFEFDFDFDFDFEFDFDFDFDFEQ$FDFCFDJ"@#?"8"9"9"A&9"9"9"9"8#8"9"9#?#8"@"9"9"9"8"9";"8"?"J$ O#FDFEFDFDFEFEFEFEFDFDFDFEFEFEFEFEFDFEFDFDFDFEFEFDFEFDFDFDFDFEFEFEFDFDQ$FCFDFCJ"@#=":&9#@"9"9&9#8"9"8";"8#=#9"B";"9"8,:";"J$ O#FEFDFEFEFDFEFDFEFDFDFEFDFDFDFEFDFEFDFDFEFDFDFEFEFDFEFEFDFDFEFEFEFDFEFDFEFDFEFDFEFDFEFDFEFEQ&FDFCFDJ"@#=";$;"8&B$;"?";"9"=">&:";"9"9t;";"J$ O#FDFEFDFDFDFDFDFDFEFDFEFDFEFDFDFDFDFDFDFDFDFEFDFEFDFEFDFDFDFDFDFDQ&FCFDFCJ.J&J"J&J$ O#FEFDFEFDFEFDFEFDFEFDFEFDFE8FDFDFDFDFD"D" OJFEFEFEJ%J":"A">"J" 7FEFEFEFEGFEFEFEFE9FEJ'J"J# 6FEFEFDFDFEFEO.FD;FEFEJ#9%9#8#9%9#I%9%8"8%<$;$:# :FDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDJ";'@'J%8%;%;&9% 8FEFEFEFDFDFEFEFEFEFDFDFEFE8FEFDFDFEFDFEFDFDFDFEFDFDFEFDFDFDFEFEFDFDFDJ"8#9#J#J" 6FDFEFEFDFD6FDFD4FDJ#8"9$:$8":#J$ 7FDFDFEFEFEFEFDFEFEFDFEFEO%FEFEFEJ":93/06/28J% 9FDFEFEFDFDFDFDFDFDO#FDFDFDFDJ#E%>"8#J"<"@" 6FEFEFDFEFEFDFEFEFEO"FEFEFEJ'8(?'D'A$<$;&9% 6FDFEFEFEFEFDFDFEFEFEFDFEFEFDFEFEFEFEFDFDFEFEFEFEFDFDFEFEFDFEFEFDFEFEFEFDFDFEFEFDJ%:'9#;%9#A%:"9":#8":#8"9$;%;"8$ 7FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFEFEFE JZ"9"Z" O2O*FEFES$FCJz;z O3O)FCS$FCJz O2T4FD JzZ" QKKFCO#FCJz8z QLJFBO!FD J#9#J"="J" Q(FEFEFEFEO FEFEAFEJ&C">'J":"J% P4FEFEFEFEFEFEFEFEFEFEFEFEMFEFEFFEFEFEFEJ%A"ArJ"J& P6FDFDFEFEFEFDO%FBAFEFDFDFDFDJ$9%8"8#C#>%:&8#J":$:$J#;#9"=" P8FDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE:FEFEFEFEFEFEFE=FEFEFEFEFEFEJ)8#J'8'J%9&I"=%9%<" P=FEFEFDFDFEFEFDFDFDFD6FEFEFDFDFEFEFEFEFDFDFDFDBFEFBFBFBFEFBFBFBFEFEFEFDFDFEFEFDFDFEFEJ$J";#H%J%;";#8&;# Q#FEFEFE5FEFDFDFEFEFEFEFFDFEFEFEFDFEFDFDFEFDFDFEFEFDJ$C#:"8#J%F$J%J$ Q#FDFDFDFEFEFDFEFE7FBFBFBFBFEFEFE4FDFDFEFE4FEFDFEJ%9#8"J%J" Q3FDFDFDFDFDFDFEJFBFBFBFB5FDJ$J";":#J"="J#8#8( P8FEFEFDIFEFDFEFEAFEFEAFDFEFEFDFDFEFDFDFDFEFDJ%9'8%J'8'J%9&H&A% P6FEFEFEFDFDFEFEFEFEFDFDFEFEFE6FDFEFEFEFEFDFEFEFEFEFEFDBFBFEFEFBFBFEFEFEFBFEFEFEFEFDFDFEFEFDJ&;%:$<#;#9#9%9&9#G":"9":%9$I%:"9":#;"9" P4FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFBFBFBFBFBFBFBFBFBFBFDFDFDFDFDFDFDFDFDFD JZ8z QLJO!FCJz QKP!FD JZJZJZ OEOB=O =AJ#z#J#z#J#z# OCFFFFOBFDFFFF9FFFFO FDFFFF9FFFFAFDFFFFJ$J$J$J$J%z% OBFFFDFDOBFDFDFF7FFFDFDO FDFDFF7FFFDFDFD?FCFDFDFDFFJ#J"="G#J#J";#J&z& OAFFFDO,FEFEFDFC5FFFDLFEFDFC5FFFDFDFCFC?FDFCFCFDFDFCJ#?%J%J#I#?%J#I':%J' O@FFFDFEFEFEFE@FEFEFEFEEFDFCFFFDFEFEFEFEGFDFCFFFDFDFCFDFDFEFEFEFE7FDFDFCFDFDFCJ'J$J'J#;&J# OJFEFDFDFDFDFE@FDFDFDO6FEFDFDFDFDFEO/FCFDFEFDFDFDFD9FDFCJ#>#:#9%:$:%F#?$:$9%<#G#>#:"9$:%;$8$B#G#F$9"9"9$># O?FFFDFEFDFDFEFEFDFEFEFEFEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFDFEFEFDFCFFFDFEFDFDFEFEFEFEFDFEFEFEFEFEFEFEFEFDFCFFFDFEFEFEFEFEFEFEFEFDFCJ%8&:93/06/28=%9&9$J&:%9+J#=";&?&;# P'FEFDFDFEFEFDFDFDFEFEFDFDFEFEFDFDFEFEFDFDFDFEFDFDFDFEFEFDFDLFEFDFDFDFEFEFDFDFEFEFDFDFDFDFEFDFDFDFE@FCFDFEFEFDFDFDFEFEFDFDFDFEFDFCJ"D"A$8#8#J"J">";#J%9" P'FDFDFEFEFEFEFDFDFE5FDO FDFDFEFDO#FDFEFEFEFDJ$G$J$J$H$J%9$9&9$ P.FEFEFEFDFDFD6FEFEFEO&FEFEFEFEFEFEJFDFDFEFEFEFEFEFDFEFDFEFDFEFEFEJ%J%J28 Jun 1993J"9@(#) whats_new.ps 1.3@(#) P.FDFDFDFDIFDFDFDFDO$FEFDFDFDFDFDFDFDKFDFEFDFDFDFDFDFDFDJ#:#D"J#8#?"="J#:"G#>"J$=" OIFDFEFEFDFE5FDFEFEFDFEFEIFDFEFEFDFEFEO)FDFEFDFEJ';%8&J%=%9&J'8'@+J#<&8'>&;# OJFDFEFEFEFEFDFEFEFEFDFDFEFEFEFD6FDFEFEFDFDFEFEFDFDFEFEFEFDJFDFEFEFEFEFDFDFEFEFEFDFEFDFEFEFEFDFDFEFEFEFD@FDFCFEFEFEFEFDFDFEFEFEFDFEFDFEFEFEFDFCFDJ#@%<$:$:"9"="=#:":%9$9"?#G#@%:&8"9":$8$:"=#G#>%:&9";$># O?FDFFFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFCFDFDFFFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFCFDFDFFFDFDFDFDFDFDFDFDFDFDFDFDFDFCFDJ#J# SBFDFCCFCFDJ#H"J#I#J#I'J' O@FDFFFDO5FCFDFDFFO&FCFDFDFFFDFDFCFC?FCFCFDFDFCFDJ#J#J#J#J&z& OAFDFCOFFCFD5FDFCO$FCFD5FDFCFDFDFD?FCFDFDFDFCFDJ$J$J$J$J$z$ OBFDFCFCOBFCFCFD7FDFCFCO FCFCFD7FDFCFCAFDFCFCFDJ#z#J#z#J#z# OCFDFDOBFCFDFD9FDFDO FCFDFD9FDFDAFCFDFDJzJzJz OEOBFD=O FD=AFD PJP V&7%J% FDFDFDFCV'FDFDFDFC ;QJQ UH:(J' FDFDFDFDFDFDFCUIFDFDFDFDFDFD Az UHFE7tJu FCUJFC ENDBITMAP %%EndBinary FMENDPAGE %%EndPage: "8" 7 %%Page: "7" 7 612 792 1 FMBEGINPAGE 72 750 720 760 R 7 X 0 K V 72 216.67 720 226.67 R V 72 741 720 753 R V 72 223 720 235 R V 0 12 Q 0 X (XView 3.2) 72 227 T (March 2, 1993) 378.84 227 T ( What\325s New- 7) 643.69 227 T 72 729 720 729 2 L 7 X V 0.5 H 2 Z 0 X N 72 247 720 247 2 L 7 X V 0 X N 72 732 105 765 R 7 X V 0 X 0 72 732 -72 -732 33 33 BEGINPRINTCODE % Sun Logo for Frame Maker % % and modified to scale to fill bounding textrect % % "greyvalue" accepts numbers from 0 (black) to 1 (white) % Frame Maker "printer code" textrect puts x y w h on stack /greyvalue 0 def /height exch def /width exch def /ypos exch def /xpos exch def gsave width 2 div height 10.5 div translate width 10.5 div height 10.5 div scale 45 rotate /Uchar { newpath -.1 0 moveto 0 0 .1 180 360 arc 0 2.9 rlineto .8 0 rlineto 0 -2.9 rlineto 0 0 .9 0 180 arcn 0 2.9 rlineto .8 0 rlineto closepath greyvalue setgray fill } def /2Uchar { Uchar gsave 4 4 translate Uchar grestore } def 4 { 2Uchar 6 0 translate 90 rotate } repeat grestore ENDPRINTCODE 107 745 155 759 R 7 X V 0 X 0 107 745 -107 -745 48 14 BEGINPRINTCODE % This is the Sun logo. For best results, print on a LaserWriter Plus. (sun) 1 /fnt /Palatino-Bold findfont def /mode exch def /printme exch def /h exch def /w exch def /y exch def /x exch def 0 0 moveto fnt setfont /wsize w printme stringwidth pop div def /hsize h (X) true charpath flattenpath pathbbox /t exch def pop pop pop t div def mode 1 eq {/hsize wsize def} if mode 2 eq {/wsize hsize def} if fnt [wsize 0 0 hsize 0 0] makefont setfont printme show ENDPRINTCODE 108 738 154 743 R 7 X V 0 X 0 108 738 -108 -738 46 5 BEGINPRINTCODE (microsystems) 1 /fnt /Helvetica findfont def /mode exch def /printme exch def /h exch def /w exch def /y exch def /x exch def 0 0 moveto fnt setfont /wsize w printme stringwidth pop div def /hsize h (X) true charpath flattenpath pathbbox /t exch def pop pop pop t div def mode 1 eq {/hsize wsize def} if mode 2 eq {/wsize hsize def} if fnt [wsize 0 0 hsize 0 0] makefont setfont printme show ENDPRINTCODE 72 252 720 720 R 7 X V 208.03 681.67 72 681.67 2 L 0 X V 1.75 H 0 Z N 1 24 Q (File Chooser) 72 684 T 1 18 Q (The old way...) 72 642 T 72 252 720 720 C 138.5 452 653.5 596 C 0 X 0 K %%BeginBinary: 5039 503 132 503 132 0 144.5 458 /red < 000000000000000000000000A04B0000000000000000420000000000B8E7FFF7 00000000F9FFFF7F00000000F9FFFF7F0000000048F679F70000000000003240 000000005450000000000000BC50000000000000050000000000000000000000 0000353100000000000000005CC079F700000000000000000000000000000000 000000006C510000000000002E510000000000000100000000000000A4E7FFF7 000000009CE7FFF70000000094E7FFF700000000020000000000000054500000 00000000BC500000000000000100000000000000000000000000000054500000 000000005CC079F7000000000A00000000000000F4E7FFF70000007B44C98900 > store /green < 0000000001000000000000001082000000000000010000000000000001000000 0000000058E9FFF7000000005CC079F700000000000000000000000000000000 00000000884C0000000000000000000000000000000000000000000000001043 0000000098E7FFF700000000AC1500000000000004E8FFF700000000944B0000 00000000944B000000000000AC7C020000000000200000000000000000000000 000000005C0000000000000000001544000000000000000000000000AC150000 0000000000A08240A8E7FFF730E7FFF773000000010000000000000001000000 00000000200000000000000000000000000000005CC079F70000009F58DEB100 > store /blue < 4CE9FFF7B00000000F000000A87C0200D631000064E9FFF701000000C8340000 78E9FFF705000000000000003838000078E9FFF7050000000000000000000008 FC7902004D32000001000000586F2FF828000000007817F82000000000000000 7300000098E8FFF70000000058E9FFF754E9FFF750E9FFF74CE9FFF79C4C0000 010000005C4B000000E9FFF74CE9FFF7B00000003445000008E9FFF7DC3E0000 F8E8FFF754E9FFF7B000000051320000AC7C02000000000058E9FFF75CC079F7 0600000000000000000000000000000000000000E83E00000000000000000000 000000000000000000000000000000000000000001000000000000D878FFF100 > store BEGINBITMAPCOLORc 9z XEFE;z" X@FDFCFEFEFEFEFEFEFFE&;#J%9#8$8&@%:%:$ FDFBFBFDFBFBFCRFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFJ'>"8#B'8'8% S2FFFFFEFEFFFFFEFEFEFFFFFEFEFFFFFFFFFEFEFFFFFFFFFEFED#J$8"<#G# FDFBS*FEFFFFFEFEFEFEFEI";#J#;%J$ FDFCFERGFFFFFEFFFFFE;FFFFFFH$9"J%9%J% FBFCFCFCRIFEFEFEFEFFFEFFFF:FFFFFEFEE";$J"8"8$<#J" FDFCFCFCRMFFFFFEFFFFFFFF# ?FFOHFFBFFFFO;FFFFFFFFFFFFC%:#J"J#J#@"F#J#=#J"J'<%<#@" FEFEFFFFFEFE7FFHFFFE7FFFEFEFFFE9FFFEFFFEKFE4FFFEFEFEFEFFFFFEFEFFFFFEFEE$9#8&8%:'8#8%9)9&F"9"9$8%?$:"9$8%>$9"9"9%:#C#:%:$:%9"="9"9%<"9"8"@#8#A#:"9% FEFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFEFFFFFEFFFFFFFFFEFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFFFFFFFEFFFFFFFFFFFFFEFFFFFFFFFEFFFEFEFFFFFFFFFFFEFFFFJ'8(8*J#@%9$9#9%=%8%9#808#>#9%:%8&:%<"B%J#:%>% ?FFFFFEFEFFFFFFFFFEFEFFFFFEFEFEFEFFFFFEFEFFFF=FFFEFFFEFEFEFFFEFEFFFEFFFEFEFEFFFEFEFEFEFFFEFEFFFEFFFEFEFEFFFEFEFFFFFEFFFEFFFEFEFFFFFEFEFFFFFEFEFEFFFFFEFEFFFFFFFEFEFFAFFFEFFFEFEFFFFFEFEFFJ$C#F$=%J"J":#C#8#9"D";#;#>"G%J"A" ;FFFEFEFEFEFFFEFEFEFEFEFE>FEO(FEFFFEFFFEFEFFFEFEFEFFFFFEFEFFFFFFFE5FEFEJ";#J"9&J$J$D$IQJ$D$J&:% ;FEFFFF:FEFEFFFFFEFF#F$>#:$G(9#I%J# AFEFEFEFEAFEFFFEFEFEFFFFFEFEFEFFFFFEFEFEFFFEFEFEFEFEFFFEFFFEFEFEFEFEO1FFFEE$H"="J$:#I"J"J"J#8#C"A(E"9$9"="8#8# FFFFFEFFFF5FEFFFFFFFFFF8FFBFF9FEFFFFFEFFFEFFFEFEFEFFFEFFFEFFFEFFFFFEFFFFFEC%D'83B"D#;%9%=#;%=%9':%9%I#;%:%8&J'<%9#<% FFFFFFFEFEFFFFFFFFFEFEFFFFFFFFFEFEFEFFFFFFFEFEFFFFFFFFFEFEFFFEFEFFFFFEFFFFFFFEFFFEFEFFFFFEFFFFFFFEFEFFFFFEFFFEFFFFFFFEFEFFFFFEFFFEFEFFFFFEFFFFFFFEFEFFFFFFFEKFEFFFFFFFFFEFEFFFFFEFFFEFFFFFFFEA&;#8#;%:%9$8%9#;$:#G%8$9"B%9"8$;#=$;%9"9"<"A#;$:$:"9":"9";"9"9%:";%9":#A%:"9"9" FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEJ"J"J"J"J"J" OFFE8FEFCJz OEV@FE J#9# O,FFFFFFFFJQ O%Jr O'FEJ#>%9# O,FFFFFFFFFFFFFFFFJ' O5FFFFFEFEFFFFJ$I# O'FFFFFFFEFEJ$C# O'FEFEFEFFFFJ% O7FEFEFEFEJ"8#>" O:FFFFFFFFJ' O5FEFFFFFFFFFEJ#;#9#9%9#=$ O%FEFEFEFEFEFEFEFEFEFEFEFEFFFFFF J"9"z" OEFFFFV# RAFDFEFFFFFFFFFFFFFFFFFFFFFFFFFEFCJ#C%8&9%J&;# RCFCFEFFFEFEFFFFFEFEFEFFFFFEFEFE6FFFEFEFEFFFEFCJ#8%J$ S#FFFEFEFFFEFE4FFFFFFJ$G$A$ S+FFFFFFFEFEFEFFFFFFJ%J% S*FFFEFEFE?FEFEFEFEJ#8#B"J" S#FEFFFFFEFF:FFJ#>$8%8'8%J&;# RCFEFCFFFFFFFEFFFFFEFEFFFFFFFEFFFEFFFFFE6FEFFFFFFFEFCFEJ#?%9#:&9%="<"9"9$># RAFEFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFCFEJ#J# RDFEFCO/FCFEJ'J' RBFEFDFEFEFCFCO+FCFCFEFEFCFEJ&z& RCFEFCFEFEFEO+FCFEFEFEFCFEJ$z$ RDFEFCFCO-FEFCFCFEJ#z# REFEFEO-FCFEFEJz RGO-FE 9Z XE ENDBITMAP %%EndBinary 72 252 720 720 C 0 180 792 792 C FMENDPAGE %%EndPage: "7" 6 %%Page: "6" 6 612 792 1 FMBEGINPAGE 72 750 720 760 R 7 X 0 K V 72 216.67 720 226.67 R V 72 741 720 753 R V 72 223 720 235 R V 0 12 Q 0 X (XView 3.2) 72 227 T (March 2, 1993) 378.84 227 T ( What\325s New- 6) 643.69 227 T 72 729 720 729 2 L 7 X V 0.5 H 2 Z 0 X N 72 247 720 247 2 L 7 X V 0 X N 72 732 105 765 R 7 X V 0 X 0 72 732 -72 -732 33 33 BEGINPRINTCODE % Sun Logo for Frame Maker % % and modified to scale to fill bounding textrect % % "greyvalue" accepts numbers from 0 (black) to 1 (white) % Frame Maker "printer code" textrect puts x y w h on stack /greyvalue 0 def /height exch def /width exch def /ypos exch def /xpos exch def gsave width 2 div height 10.5 div translate width 10.5 div height 10.5 div scale 45 rotate /Uchar { newpath -.1 0 moveto 0 0 .1 180 360 arc 0 2.9 rlineto .8 0 rlineto 0 -2.9 rlineto 0 0 .9 0 180 arcn 0 2.9 rlineto .8 0 rlineto closepath greyvalue setgray fill } def /2Uchar { Uchar gsave 4 4 translate Uchar grestore } def 4 { 2Uchar 6 0 translate 90 rotate } repeat grestore ENDPRINTCODE 107 745 155 759 R 7 X V 0 X 0 107 745 -107 -745 48 14 BEGINPRINTCODE % This is the Sun logo. For best results, print on a LaserWriter Plus. (sun) 1 /fnt /Palatino-Bold findfont def /mode exch def /printme exch def /h exch def /w exch def /y exch def /x exch def 0 0 moveto fnt setfont /wsize w printme stringwidth pop div def /hsize h (X) true charpath flattenpath pathbbox /t exch def pop pop pop t div def mode 1 eq {/hsize wsize def} if mode 2 eq {/wsize hsize def} if fnt [wsize 0 0 hsize 0 0] makefont setfont printme show ENDPRINTCODE 108 738 154 743 R 7 X V 0 X 0 108 738 -108 -738 46 5 BEGINPRINTCODE (microsystems) 1 /fnt /Helvetica findfont def /mode exch def /printme exch def /h exch def /w exch def /y exch def /x exch def 0 0 moveto fnt setfont /wsize w printme stringwidth pop div def /hsize h (X) true charpath flattenpath pathbbox /t exch def pop pop pop t div def mode 1 eq {/hsize wsize def} if mode 2 eq {/wsize hsize def} if fnt [wsize 0 0 hsize 0 0] makefont setfont printme show ENDPRINTCODE 72 252 720 720 R 7 X V 2 18 Q 0 X (Procedural flow difference) 72 668 T 1 F (The procedural flow taken when a menu is brought up using the MENU button is) 72 628 T (different from when a menu accelerator is used.) 72 608 T -1.09 (Menus are normally brought up \050when the user presses the MENU button\051 in event) 72 568 P (callbacks :) 72 548 T 3 F (window_event_proc\050window, event\051) 144 508 T (Xv_window) 144 488 T (window;) 288 488 T (Event) 144 468 T (*event;) 288 468 T ({) 144 448 T (/* look for menu button event */) 216 448 T (if \050event_action\050event \051 == ACTION_MENU &&) 216 428 T (\050event_is_down\050event\051\051 {) 288 408 T (menu_show\050menu\051; /* display menu */) 288 388 T (}) 216 368 T (}) 144 348 T 1 F (Menus are not brought up when menu accelerators are used; the menu item call-) 72 308 T (back procedures are called directly.) 72 288 T FMENDPAGE %%EndPage: "6" 5 %%Page: "5" 5 612 792 1 FMBEGINPAGE 72 750 720 760 R 7 X 0 K V 72 216.67 720 226.67 R V 72 741 720 753 R V 72 223 720 235 R V 0 12 Q 0 X (XView 3.2) 72 227 T (March 2, 1993) 378.84 227 T ( What\325s New- 5) 643.69 227 T 72 729 720 729 2 L 7 X V 0.5 H 2 Z 0 X N 72 247 720 247 2 L 7 X V 0 X N 72 732 105 765 R 7 X V 0 X 0 72 732 -72 -732 33 33 BEGINPRINTCODE % Sun Logo for Frame Maker % % and modified to scale to fill bounding textrect % % "greyvalue" accepts numbers from 0 (black) to 1 (white) % Frame Maker "printer code" textrect puts x y w h on stack /greyvalue 0 def /height exch def /width exch def /ypos exch def /xpos exch def gsave width 2 div height 10.5 div translate width 10.5 div height 10.5 div scale 45 rotate /Uchar { newpath -.1 0 moveto 0 0 .1 180 360 arc 0 2.9 rlineto .8 0 rlineto 0 -2.9 rlineto 0 0 .9 0 180 arcn 0 2.9 rlineto .8 0 rlineto closepath greyvalue setgray fill } def /2Uchar { Uchar gsave 4 4 translate Uchar grestore } def 4 { 2Uchar 6 0 translate 90 rotate } repeat grestore ENDPRINTCODE 107 745 155 759 R 7 X V 0 X 0 107 745 -107 -745 48 14 BEGINPRINTCODE % This is the Sun logo. For best results, print on a LaserWriter Plus. (sun) 1 /fnt /Palatino-Bold findfont def /mode exch def /printme exch def /h exch def /w exch def /y exch def /x exch def 0 0 moveto fnt setfont /wsize w printme stringwidth pop div def /hsize h (X) true charpath flattenpath pathbbox /t exch def pop pop pop t div def mode 1 eq {/hsize wsize def} if mode 2 eq {/wsize hsize def} if fnt [wsize 0 0 hsize 0 0] makefont setfont printme show ENDPRINTCODE 108 738 154 743 R 7 X V 0 X 0 108 738 -108 -738 46 5 BEGINPRINTCODE (microsystems) 1 /fnt /Helvetica findfont def /mode exch def /printme exch def /h exch def /w exch def /y exch def /x exch def 0 0 moveto fnt setfont /wsize w printme stringwidth pop div def /hsize h (X) true charpath flattenpath pathbbox /t exch def pop pop pop t div def mode 1 eq {/hsize wsize def} if mode 2 eq {/wsize hsize def} if fnt [wsize 0 0 hsize 0 0] makefont setfont printme show ENDPRINTCODE 72 252 720 720 R 7 X V 1 18 Q 0 X (There is a notion of a \324\324Core Set\325\325 of accelerators.) 72 688 T (It is a set of commonly used accelerators such as save, print and quit.) 72 648 T (Core Set accelerator bindings are defined in:) 72 608 T ($OPENWINHOME/lib/locale//xview/defaults.) 108 588 T (The XView API uses an abstraction to bind the accelerator to the core set:) 72 548 T 3 F (save_item = xv_create\050NULL, MENUITEM,) 81.6 508 T (MENU_STRING, \322save\323,) 270 488 T ( MENU_ACCELERATOR, \322) 261 468 T 4 F (coreset Save) 477 468 T 3 F (\323,) 606.6 468 T ( MENU_NOTIFY_PROC, save_action,) 261 448 T ( NULL\051;) 261 428 T 1 F (The X resource entry for core set accelerators is different from the non-core) 72 368 T (set case:) 72 348 T (OpenWindows.MenuAccelerator.Save:) 108 308 T (Meta s) 495 308 T (OpenWindows.MenuAccelerator.Quit: q+Meta) 108 288 T (foo.load.accelerator:) 108 268 T (Meta+b) 495 268 T FMENDPAGE %%EndPage: "5" 4 %%Page: "4" 4 612 792 1 FMBEGINPAGE 72 750 720 760 R 7 X 0 K V 72 216.67 720 226.67 R V 72 741 720 753 R V 72 223 720 235 R V 0 12 Q 0 X (XView 3.2) 72 227 T (March 2, 1993) 378.84 227 T ( What\325s New- 4) 643.69 227 T 72 729 720 729 2 L 7 X V 0.5 H 2 Z 0 X N 72 247 720 247 2 L 7 X V 0 X N 72 732 105 765 R 7 X V 0 X 0 72 732 -72 -732 33 33 BEGINPRINTCODE % Sun Logo for Frame Maker % % and modified to scale to fill bounding textrect % % "greyvalue" accepts numbers from 0 (black) to 1 (white) % Frame Maker "printer code" textrect puts x y w h on stack /greyvalue 0 def /height exch def /width exch def /ypos exch def /xpos exch def gsave width 2 div height 10.5 div translate width 10.5 div height 10.5 div scale 45 rotate /Uchar { newpath -.1 0 moveto 0 0 .1 180 360 arc 0 2.9 rlineto .8 0 rlineto 0 -2.9 rlineto 0 0 .9 0 180 arcn 0 2.9 rlineto .8 0 rlineto closepath greyvalue setgray fill } def /2Uchar { Uchar gsave 4 4 translate Uchar grestore } def 4 { 2Uchar 6 0 translate 90 rotate } repeat grestore ENDPRINTCODE 107 745 155 759 R 7 X V 0 X 0 107 745 -107 -745 48 14 BEGINPRINTCODE % This is the Sun logo. For best results, print on a LaserWriter Plus. (sun) 1 /fnt /Palatino-Bold findfont def /mode exch def /printme exch def /h exch def /w exch def /y exch def /x exch def 0 0 moveto fnt setfont /wsize w printme stringwidth pop div def /hsize h (X) true charpath flattenpath pathbbox /t exch def pop pop pop t div def mode 1 eq {/hsize wsize def} if mode 2 eq {/wsize hsize def} if fnt [wsize 0 0 hsize 0 0] makefont setfont printme show ENDPRINTCODE 108 738 154 743 R 7 X V 0 X 0 108 738 -108 -738 46 5 BEGINPRINTCODE (microsystems) 1 /fnt /Helvetica findfont def /mode exch def /printme exch def /h exch def /w exch def /y exch def /x exch def 0 0 moveto fnt setfont /wsize w printme stringwidth pop div def /hsize h (X) true charpath flattenpath pathbbox /t exch def pop pop pop t div def mode 1 eq {/hsize wsize def} if mode 2 eq {/wsize hsize def} if fnt [wsize 0 0 hsize 0 0] makefont setfont printme show ENDPRINTCODE 72 252 720 720 R 7 X V 3 18 Q 0 X (load_item = xv_create\050NULL, MENUITEM,) 81.6 688 T ( XV_INSTANCE_NAME, \322load\323,) 261 668 T ( MENU_STRING, \322load\323,) 261 648 T ( MENU_ACCELERATOR, \322Meta+l\323,) 261 628 T ( MENU_NOTIFY_PROC, load_action,) 261 608 T ( NULL\051;) 261 588 T 1 F (\322Meta+l\323 can be overriden by having the following entry in your X resource) 72 528 T (database:) 72 508 T (foo.load.accelerator: Meta+b) 72 468 T (The load action will be done when \322Meta+b\323 is pressed instead of \322Meta+l\323.) 72 428 T (Note: XV_INSTANCE_NAME will need to be used to give the menu item) 72 388 T (an instance name.) 72 368 T FMENDPAGE %%EndPage: "4" 3 %%Page: "3" 3 612 792 1 FMBEGINPAGE 72 750 720 760 R 7 X 0 K V 72 216.67 720 226.67 R V 72 741 720 753 R V 72 223 720 235 R V 0 12 Q 0 X (XView 3.2) 72 227 T (March 2, 1993) 378.84 227 T ( What\325s New- 3) 643.69 227 T 72 729 720 729 2 L 7 X V 0.5 H 2 Z 0 X N 72 247 720 247 2 L 7 X V 0 X N 72 732 105 765 R 7 X V 0 X 0 72 732 -72 -732 33 33 BEGINPRINTCODE % Sun Logo for Frame Maker % % and modified to scale to fill bounding textrect % % "greyvalue" accepts numbers from 0 (black) to 1 (white) % Frame Maker "printer code" textrect puts x y w h on stack /greyvalue 0 def /height exch def /width exch def /ypos exch def /xpos exch def gsave width 2 div height 10.5 div translate width 10.5 div height 10.5 div scale 45 rotate /Uchar { newpath -.1 0 moveto 0 0 .1 180 360 arc 0 2.9 rlineto .8 0 rlineto 0 -2.9 rlineto 0 0 .9 0 180 arcn 0 2.9 rlineto .8 0 rlineto closepath greyvalue setgray fill } def /2Uchar { Uchar gsave 4 4 translate Uchar grestore } def 4 { 2Uchar 6 0 translate 90 rotate } repeat grestore ENDPRINTCODE 107 745 155 759 R 7 X V 0 X 0 107 745 -107 -745 48 14 BEGINPRINTCODE % This is the Sun logo. For best results, print on a LaserWriter Plus. (sun) 1 /fnt /Palatino-Bold findfont def /mode exch def /printme exch def /h exch def /w exch def /y exch def /x exch def 0 0 moveto fnt setfont /wsize w printme stringwidth pop div def /hsize h (X) true charpath flattenpath pathbbox /t exch def pop pop pop t div def mode 1 eq {/hsize wsize def} if mode 2 eq {/wsize hsize def} if fnt [wsize 0 0 hsize 0 0] makefont setfont printme show ENDPRINTCODE 108 738 154 743 R 7 X V 0 X 0 108 738 -108 -738 46 5 BEGINPRINTCODE (microsystems) 1 /fnt /Helvetica findfont def /mode exch def /printme exch def /h exch def /w exch def /y exch def /x exch def 0 0 moveto fnt setfont /wsize w printme stringwidth pop div def /hsize h (X) true charpath flattenpath pathbbox /t exch def pop pop pop t div def mode 1 eq {/hsize wsize def} if mode 2 eq {/wsize hsize def} if fnt [wsize 0 0 hsize 0 0] makefont setfont printme show ENDPRINTCODE 72 252 720 720 R 7 X V 2 24 Q 0 X (Customization of menu accelerators) 72 704 T 1 18 Q (\245 Can be done using the X resource database) 72 642 T (\245 Overrides the attribute interface) 72 582 T (\245 The resource name used has the format:) 72 522 T (<) 144 482 T (app>..accelerator:) 154.51 482 T () 72 442 T (application instance name) 288 442 T () 72 422 T (menu item instance name \050XV_INSTANCE_NAME\051) 288 422 T () 72 400 T (Accelerator Binding Syntax) 288 400 T (e.g.) 72 358 T (mailtool.compose_new.accelerator:) 144 338 T ( Meta+N) 426.1 338 T (Example: In the application \324foo\325, if we have:) 72 278 T FMENDPAGE %%EndPage: "3" 2 %%Page: "2" 2 612 792 1 FMBEGINPAGE 72 750 720 760 R 7 X 0 K V 72 216.67 720 226.67 R V 72 741 720 753 R V 72 223 720 235 R V 0 12 Q 0 X (XView 3.2) 72 227 T (March 2, 1993) 378.84 227 T ( What\325s New- 2) 643.69 227 T 72 729 720 729 2 L 7 X V 0.5 H 2 Z 0 X N 72 247 720 247 2 L 7 X V 0 X N 72 732 105 765 R 7 X V 0 X 0 72 732 -72 -732 33 33 BEGINPRINTCODE % Sun Logo for Frame Maker % % and modified to scale to fill bounding textrect % % "greyvalue" accepts numbers from 0 (black) to 1 (white) % Frame Maker "printer code" textrect puts x y w h on stack /greyvalue 0 def /height exch def /width exch def /ypos exch def /xpos exch def gsave width 2 div height 10.5 div translate width 10.5 div height 10.5 div scale 45 rotate /Uchar { newpath -.1 0 moveto 0 0 .1 180 360 arc 0 2.9 rlineto .8 0 rlineto 0 -2.9 rlineto 0 0 .9 0 180 arcn 0 2.9 rlineto .8 0 rlineto closepath greyvalue setgray fill } def /2Uchar { Uchar gsave 4 4 translate Uchar grestore } def 4 { 2Uchar 6 0 translate 90 rotate } repeat grestore ENDPRINTCODE 107 745 155 759 R 7 X V 0 X 0 107 745 -107 -745 48 14 BEGINPRINTCODE % This is the Sun logo. For best results, print on a LaserWriter Plus. (sun) 1 /fnt /Palatino-Bold findfont def /mode exch def /printme exch def /h exch def /w exch def /y exch def /x exch def 0 0 moveto fnt setfont /wsize w printme stringwidth pop div def /hsize h (X) true charpath flattenpath pathbbox /t exch def pop pop pop t div def mode 1 eq {/hsize wsize def} if mode 2 eq {/wsize hsize def} if fnt [wsize 0 0 hsize 0 0] makefont setfont printme show ENDPRINTCODE 108 738 154 743 R 7 X V 0 X 0 108 738 -108 -738 46 5 BEGINPRINTCODE (microsystems) 1 /fnt /Helvetica findfont def /mode exch def /printme exch def /h exch def /w exch def /y exch def /x exch def 0 0 moveto fnt setfont /wsize w printme stringwidth pop div def /hsize h (X) true charpath flattenpath pathbbox /t exch def pop pop pop t div def mode 1 eq {/hsize wsize def} if mode 2 eq {/wsize hsize def} if fnt [wsize 0 0 hsize 0 0] makefont setfont printme show ENDPRINTCODE 72 252 720 720 R 7 X V 2 24 Q 0 X (Menu Accelerators) 72 704 T 2 18 Q (Menu attributes) 72 662 T 1 F (\245 Attributes that specify accelerators for menu items.) 72 622 T (\245 Corresponds to a currently existing method) 72 602 T (of creating a menu item.) 431.44 602 T (MENU_ACCELERATOR) 108 562 T (MENU_ACTION_ACCELERATOR) 108 542 T (MENU_STRINGS_AND_ACCELERATORS) 108 522 T 2 F (Frame attributes) 72 482 T 1 F (\245 Attributes to associate menus with frames.) 72 442 T (\245 Necessary to inform frame what accelerators on menu to detect.) 72 422 T (FRAME_MENUS) 108 382 T (FRAME_MENU_ADD) 108 362 T (FRAME_MENU_DELETE) 108 342 T (FRAME_MENU_COUNT) 108 322 T FMENDPAGE %%EndPage: "2" 1 %%Page: "1" 1 612 792 1 FMBEGINPAGE 72 750 720 760 R 7 X 0 K V 72 216.67 720 226.67 R V 72 741 720 753 R V 72 223 720 235 R V 0 12 Q 0 X (XView 3.2) 72 227 T (March 2, 1993) 378.84 227 T ( What\325s New- 1) 643.69 227 T 72 729 720 729 2 L 7 X V 0.5 H 2 Z 0 X N 72 247 720 247 2 L 7 X V 0 X N 72 732 105 765 R 7 X V 0 X 0 72 732 -72 -732 33 33 BEGINPRINTCODE % Sun Logo for Frame Maker % % and modified to scale to fill bounding textrect % % "greyvalue" accepts numbers from 0 (black) to 1 (white) % Frame Maker "printer code" textrect puts x y w h on stack /greyvalue 0 def /height exch def /width exch def /ypos exch def /xpos exch def gsave width 2 div height 10.5 div translate width 10.5 div height 10.5 div scale 45 rotate /Uchar { newpath -.1 0 moveto 0 0 .1 180 360 arc 0 2.9 rlineto .8 0 rlineto 0 -2.9 rlineto 0 0 .9 0 180 arcn 0 2.9 rlineto .8 0 rlineto closepath greyvalue setgray fill } def /2Uchar { Uchar gsave 4 4 translate Uchar grestore } def 4 { 2Uchar 6 0 translate 90 rotate } repeat grestore ENDPRINTCODE 107 745 155 759 R 7 X V 0 X 0 107 745 -107 -745 48 14 BEGINPRINTCODE % This is the Sun logo. For best results, print on a LaserWriter Plus. (sun) 1 /fnt /Palatino-Bold findfont def /mode exch def /printme exch def /h exch def /w exch def /y exch def /x exch def 0 0 moveto fnt setfont /wsize w printme stringwidth pop div def /hsize h (X) true charpath flattenpath pathbbox /t exch def pop pop pop t div def mode 1 eq {/hsize wsize def} if mode 2 eq {/wsize hsize def} if fnt [wsize 0 0 hsize 0 0] makefont setfont printme show ENDPRINTCODE 108 738 154 743 R 7 X V 0 X 0 108 738 -108 -738 46 5 BEGINPRINTCODE (microsystems) 1 /fnt /Helvetica findfont def /mode exch def /printme exch def /h exch def /w exch def /y exch def /x exch def 0 0 moveto fnt setfont /wsize w printme stringwidth pop div def /hsize h (X) true charpath flattenpath pathbbox /t exch def pop pop pop t div def mode 1 eq {/hsize wsize def} if mode 2 eq {/wsize hsize def} if fnt [wsize 0 0 hsize 0 0] makefont setfont printme show ENDPRINTCODE 72 252 720 720 R 7 X V 321.41 641.46 108 641.46 2 L 0 X V 1.75 H 0 Z N 2 24 Q (XView 3.2 - Update) 108 644 T 0 18 Q (\245 Menu Accelerators) 108 582 T (\245 File Chooser) 108 542 T (\245 Other New Features) 108 502 T (\245 Important Bug Fixes) 108 462 T FMENDPAGE %%EndPage: "1" 0 %%Trailer %%BoundingBox: 0 0 612 792 %%Pages: 15 -1 %%DocumentFonts: Times-Roman %%+ Helvetica %%+ Helvetica-Bold %%+ Courier %%+ Courier-Bold xview-3.2p1.4/doc/xview-info100644 1750 1750 13204 5413747555 13244 0ustar mbmbMore information on XView regarding bugs, help, and documentation Reporting Bugs -------------- When you find a bug in the operation of XView, we would like to hear about it so we can consider scheduling a fix in a future release. Often, you won't want or need the help of Sun's support services to report a bug. When that is the case, please follow the steps listed below. If you experience problems that require more direct support from Sun, please refer to the Getting Help section below. To help us process bug reports as quickly and smoothly as possible, please: 1) Use the template bug form in /doc/bugs/bugform. 2) Send bugs via electronic mail to sun.com!xviewbugs. (Customers with software support contracts who are reporting problems against using the XView libraries or clients can also send email to sun!hotline or call Sun Microsystems directly, 1-800-USA-4SUN. The hotline service does not support building the XView library sources. The hotline service does provide personal feedback on problems reported.) Don't be concerned if you have difficulty determining the correct category for your bug report. We will review the report and see that it is correctly recorded. Known bugs are included in the directory /doc/bugs. Getting Help ------------ Sun Microsystems provides support for customers who have software support contracts via a telephone support line and a special email alias. Support for customers without support contracts is provided only through an email alias. Contract customers can also send questions or bug reports via electronic mail to sun.com!hotline. Be sure to include your name, company, and phone number, along with the serial number and details of the problem. If possible, you should use the bug report form discussed above. Those who are not Sun customers or would like to participate in conversations with other people using XView, can take advantage of public news groups and email aliases. Existing groups are listed below: 1) openlook@unify.unify.com/comp.windows.open-look Unify is sponsoring an OPEN LOOK developers alias. This is for anyone using an OPEN LOOK toolkit such as XView. To join or leave this alias send a request to openlook-request@unify.unify.com or ...!unify!openlook-request. This alias is gatewayed together with the comp.windows.open-look news group. 2) xviewbug-trackers@sun.com This alias consists of people who would like to share information on bugs reported against XView. If you would like to share your bug report with this group, put this address on the Cc: line of your email message to the xviewbugs alias. To join of leave this alias send a request to sun.com!xviewbug-trackers-request. 3) xpert@expo.lcs.mit.edu/comp.windows.x xpert@expo.lcs.mit.edu is the mailing list from which comp.windows.x was spawned. The two are gatewayed together so that messages sent via either channel will appear on both. Xpert is a general alias for all X Window System enthusiasts. To join or leave this alias send a request to xpert-request@expo.lcs.mit.edu or begin reading the net news group comp.windows.x. Note: These are all public aliases which are received by many companies and individuals around the world. It is important to conduct dealings on public aliases with discretion. XView Programmer's Documentation ---------------------------------- The documentation for this release of the XView source includes the following programmer's manuals: XView Reference Manual: Converting SunView Applications This manual contains complete instructions for converting SunView programs to XView. It provides an overview of the XView toolkit's architecture and design principles, and gives instructions for both minimal and full conversion to XView. This document will be of most use to programmers who are familiar with the SunView API. If you are not a SunView programmer, you should also read the SunView Programmer's Guide . This document is included in the /doc/conversion directory. XView PostScript Interface Library This manual describes how to use the NeWS/PostScript interface library for XView. The library is called xvps and included with this source distribution. One must have OpenWindows to use this library. This document is included in the /doc directory. Documentation may be purchased separately: XView Programming Manual (revised for version 3) This manual provides both a complete reference guide to the XView Toolkit and a basic introduction to developing applications with it. The examples from the book are included in /contrib/examples. XView Programming Manual, O'Reilly & Associates, Inc. Address: 632 Petaluma Avenue, Sebastopol, CA 95472 email: uunet!ora!nuts, phone: 1-800-338-6887, 1-707-829-0515 fax: 1-707-829-0104 OPEN LOOK Graphical User Interface Functional Specification This manual specifies how the toolkit and new toolkit components should implement the OPEN LOOK graphical user interface. OPEN LOOK Graphical User Interface Functional Specification, Addison-Wesley Publishing Company, Inc., 1989 OPEN LOOK Graphical User Interface Application Style Guidelines This manual provides guidelines for developing an OPEN LOOK compliant application with any toolkit. It's a good resource for any developer adding a graphical user interface to their applications. OPEN LOOK Graphical User Interface Application Style Guidelines, Addison-Wesley Publishing Company, Inc., 1989 Also, one will want an Xlib reference manual as well. All of these books are available at technical book stores or may be ordered. If you have OpenWindows version 2 from Sun Microsystems, these books are included in the Developer's Documentation Set. xview-3.2p1.4/doc/olgx_api.txt100644 1750 1750 60543 5413747556 13602 0ustar mbmbOLGX - Application Programmer Interface 1.0 Introduction This document defines functions for OPEN LOOK Graphics Package (OLGX). OLGX is a library for rendering OPEN LOOK items such as scrollbars, buttons, etc. Most application programmers will probably have no need to use the OLGX library unless they want to write extensions to the XView toolkit and/or want to render an OPEN LOOK item. 2.0 Initialization Functions OLGX initialization consists of setting initial graphical information used in rendering (the graphics information structure is called Graphics_info, henceforth referred to as ginfo). Ginfos contain the values which define graphical characteristics. These characteristics in- clude pixel values, text fonts, and glyph fonts. As you can see, the ginfo is the mechanism by which graphics information is passed between clients and OLGX. Macros are provided to access the members of the ginfo struct, because the ginfo struct is intended to be opaque. Clients should NOT copy the ginfo struct or try to access its members directly Each ginfo has 9 or less graphics contexts (GCs), depending on whether 2D or 3D is spec- ified. However, in order to save memory and reduce overhead, ginfos will share graphic contexts with other ginfos. The following describes the OLGX initialization functions. Graphics_info * olgx_main_initialize(display, screen, depth, d_flag, glyphfont_struct, textfont_struct, pixvals, stipple_pixmaps) Display *display; int screen; unsigned int depth; int d_flag; XFontstruct glyphfont_struct; XFontstruct textfont_struct; unsigned long pixvals[ ]; Pixmap stipple_pixmaps[ ]; olgx_main_initialize() creates and initializes a graphics information structure. display is a pointer to the display structure associated with an active server connection. screen is the desired screen. depth is the depth of the window. d_flag may be one of the following flags: OLGX_2D Two dimensional rendering. OLGX_3D_COLOR Three dimensional rendering on color screen. glyphfont_struct is the XFontstruct of the desired glyphfont. textfont_struct is the XFont- struct of the desired text font. pixvals is an array of five pixel values. The colors associated with each element of pixvals are OLGX_WHITE (0), OLGX_BLACK(1), OLGX_BG1 (2), OLGX_BG2 (3) and OLGX_BG3 (4). In a monochrome environment, only white and black need to be set. The application must maintain the colormap and allocate the colors properly. In 3D mode, applications are encouraged to use olgx_calculate_3Dcolors() to get the OLGX_BG2, OLGX_BG3, and OLGX_WHITE pixel values. Please refer to the OPEN LOOK specifications for further details on these colors. stipple_pixmaps[ ] is ig- nored. olgx_initialize() still exists for backward compatibility reasons. void olgx_destroy(ginfo) Graphics_info *ginfo; olgx_destroy() destroys an existing Graphics_info structure info. In the process, olgx_de- stroy() will free up any server resources that OLGX has associated with the specified ginfo and not shared by other ginfos. void olgx_calculate_3Dcolors(fg, bg1, bg2, bg3, white) XColor *fg, *bg1; XColor *bg2, *bg3, *white; /* Return values */ olgx_calculate_3Dcolors() is a utility function which calculates a pleasant combination of bg2, bg3, and white (highlight) color values given the fg (foreground) and bg1 (back- ground) values. The calculation adheres to the OPEN LOOK specification. fg, bg1, bg2, bg3, and white are pre-allocated XColor structs with fg and bg1 initialized with the appropriate foreground and background pixel values. On the return, bg2, bg3, and white XColor structs are initialized with the OPEN LOOK specified values. 3.0 Manipulation Functions void olgx_set_text_font(ginfo, font_struct, flag) Graphics_info *ginfo; XFontstruct font_struct; int flag; olgx_set_text_font() sets the current text font. ginfo is a pointer to the Graphics Informa- tion Structure. font_struct is the XFontstruct of the desired text font. flag may be one of the following: OLGX_NORMAL The changed text font will be reflected only in the specified ginfo. Other ginfos that share graphic contexts with the specified ginfo will not be affected. OLGX_SPECIAL Changes the ginfo without checking whether it is shared or not. The advantage of this is that it does not have the overhead of checking if GCs are shared or not, or creating new GCs. The disadvantage is that this change may also affect other ginfos that share the GCs. It is up to the client to restore the values so that the changed text font does not affect the other ginfos. Subsequent text operations using ginfo will use this font. void olgx_set_glyph_font(ginfo, glyphfont_struct, flag) Graphics_info *ginfo; XFontstruct glyphfont_struct; int flag; olgx_set_glyph_font() sets the current glyph font. Subsequent graphics operations using ginfo will use this glyph font. ginfo is a pointer to Graphics_info. glyphfont_struct is the XFontstruct of the desired glyph font. flag may be one of the following: OLGX_NORMAL The changed glyph font will be reflected only in the specified ginfo. Other ginfos that share graphic contexts with the specified ginfo will not be affected. OLGX_SPECIAL Changes the ginfo without checking whether it is shared or not. The ad- vantage of this is that it does not have the overhead of checking if GCs are shared or not, or creating new GCs. The disadvantage is that this change may also affect other ginfos that share the GCs. It is up to the client to restore the values so that the changed glyphfont does not affect the other ginfos. void olgx_set_single_color(ginfo,index,pixval,flag) Graphics_info * ginfo; unsigned long pixval; int index; int flag; olgx_set_single_color() sets the color of the index member of the five element array of colors contained in ginfo to the specified pixel value pixval. index can be any one of the five members of the array namely OLGX_WHITE (0), OLGX_BLACK (1), OLGX_BG1 (2), OLGX_BG2 (3), or OLGX_BG3 (4). flag may be one of the following: OLGX_NORMAL The changed color will be reflected only in the specified ginfo. Other ginfos that share graphic contexts with the specified ginfo will not be affected. OLGX_SPECIAL Changes the ginfo without checking whether it is shared or not. The ad- vantage of this is that it does not have the overhead of checking if GCs are shared or not, or creating new GCs. The disadvantage is that this change may also affect other ginfos that share the GCs. It is up to the client to restore the values so that the changed color does not affect the other ginfos. OLGX_SPECIAL might be used where XView renders an array of color choice items representing a palette where each choice item is rendered by changing the foreground color. unsigned long olgx_get_single_color(ginfo,index) Graphics_info * ginfo; int index; olgx_get_single_color() returns the pixel value of the index member of the five element array of pixel values stored in ginfo. index can be any one of the five members of the array namely OLGX_WHITE (0), OLGX_BLACK (1), OLGX_BG1 (2), OLGX_BG2 (3), or OLGX_BG3 (4). 4.0 Rendering Functions void olgx_draw_button(ginfo, win, x, y, width,height, label, state) Graphics_info *ginfo; Window win; int x, y, width; int height; void *label; int state; This function renders panel buttons and menu items. win is the window in which the object is to be rendered. x and y are the coordinates of the upper left-hand corner of the object, relative to the upper left-hand corner of win. width is the width of the entire object, includ- ing the button endcaps if the object is a panel button. The label of a button can either be a character string or an X pixmap. If the label is a character string, label is a pointer to a character. If the label is an X pixmap, label is a pointer to the struct Pixlabel. The struct Pixlabel is explained below and is to be initialized appropriately. If the given label is too large to fit in the button, it will be clipped appropriately. height is the height of the button and is used only when the button label is a pixmap. If the label is not a pixmap, then the height should be 0, in which case the button height is determined from the button glyphs. state is the bitwise OR of a set of flags representing the current state of the object. These flags are as follows: OLGX_NORMAL The item is not invoked. This is the default. OLGX_INVOKED Item is invoked. In 3D, it is drawn as a recessed button or menu item. In 2D, the item is in reverse video. OLGX_MENU_ITEM This object is a menu item, not a panel button. With this flag, no outline is drawn on non-invoked items. OLGX_ERASE The background behind the item is to be cleared be- fore the item is drawn.This flag is only valid for trans- parent items such as non-invoked menu items. OLGX_BUSY The item is busy. In either 2D or 3D, this means that it will be filled with a 15% grey stipple. OLGX_DEFAULT This item is a default item. OLGX will render it item with a default ring. OLGX_INACTIVE Designates the item as inactive. It will be drawn with a 50% grey stipple. OLGX_VERT_MENU_MARK The item contains a vertical menu mark. OLGX_HORIZ_MENU_MARK The item contains a horizontal menu mark. OLGX_LABEL_IS_PIXMAP By default, item labels are strings. This flag must be presented if the label is a pixmap or window ID. Struct Pixlabel{ XID pixmap; int width; /* width of the pixmap */ int height; /* height of the pixmap */ } Note: If the label is a pixmap, the width of the button is always incremented by OLGX_VARHEIGHT_BTN_MARGIN which accommodates the space for a de- fault ring around the pixmap in case OLGX_DEFAULT is set. void olgx_draw_abbrev_button(ginfo, win, x, y, state) Graphics_info *ginfo; Window win; int x, y, state; This function renders an abbreviated menu button at the position (x, y) with in window win. state may be OLGX_NORMAL, OLGX_INVOKED, OLGX_INACTIVE or OLGX_BUSY. Use OLGX_ ERASE to clear the underlying previous state. The Menu- Mark drawn inside the button points down. void olgx_draw_slider(ginfo, win, x, y, width, old_value, new_value, state) Graphics_info *ginfo; Window win; int x, y, width, old_value, new_value, state; olgx_draw_slider() renders or updates a slider. The slider will be drawn within window win at location (x, y). width represents the width of the slider in pixels, including endcaps. old_value and new_value give the old and new values of the slider in pixels with the ori- gin at either the top or the left of the slider. Finally, state gives information about the cur- rent state of the slider. It consists of the bitwise-OR of any of the following flags: OLGX_VERTICAL The slider is a vertical slider. OLGX_HORIZONTAL The slider is a horizontal slider. OLGX_UPDATE Update the slider instead of rendering the whole slider. If OLGX_ UPDATE is not specified, the parameter old_value will not be used. This function does not draw any of the text associated with the OPEN LOOK sliders. For example, some OPEN LOOK sliders provide tick marks, end boxes, labels on the tick marks and numeric-entry fields beside the slider. Handling these is left to the application. void olgx_draw_resize_corner(ginfo, win, x, y, type, state) Graphics_info *ginfo; Window win; int x, y, type; int state; This function places a resize corner of the requested type in a given location. (x, y) and win specify the location and window of the resize corner, respectively. The shape of the resize corner is determined by the type parameter. type must be one of OLGX_UPPER_LEFT, OLG X_LOWER_LEFT, OLGX_UPPER_RIGHT, or OLGX_LOWER_RIGHT. state must be either OLGX_NORMAL or OLGX_INVOKED. void olgx_draw_pushpin(ginfo, win, x, y, state) Graphics_info *ginfo; Window win; int x, y, state; This function renders a pushpin at the requested location. (x, y) and win specify the loca- tion and window of the resize corner, respectively. The state of the pushpin is determined by the state parameter. state must be a bitwise or combination of the following: OLGX_PUSHPIN_OUT The pushpin is out. OLGX_PUSHPIN_IN The pushpin is in. OLGX_ERASE The area behind the pushpin will be erased before the pushpin is drawn. This flag allows the new pushpin to erase the previ- ous one when it changes states. OLGX_INACTIVE Pushpin is inactive; it will be drawn with a 50% grey stipple. OLGX_DEFAULT The pushpin is a default pushpin. void olgx_draw_box(ginfo, win, x, y, width, height, state, fill_in) Graphics_info *ginfo; Window win; int x, y, width, height, state, fill_in; olgx_draw_box() draws a beveled box of the given size at the specified location. state de- scribes the state of the box. It may be either OLGX_NORMAL or OL GX_INVOKED. In 3D mode, an invoked box is drawn as a recessed rectangle and a normal box is drawn as a raised rectangle. If fill_in is nonzero, then the box is filled in. The state flag can take OLGX_ERASE to erase the underlying box before drawing over it. void olgx_draw_choice_item(ginfo, win, x, y, width, height, label, state) Graphics_info *ginfo; Window win; int x, y, width, height; long label; int state; olgx_draw_choice_item() will render a choice item with either a pixmap or character string label. win designates what window the item is to be drawn in. x and y give the coor- dinates of the upper-left corner of the choice item, and width and height denote its outside width and height. The label of a choice item can either be a character string or an X pix- map. If the label is a character string, label is a pointer to a character. If the label is an X pixmap, label is a pointer to the struct Pixlabel. The struct Pixlabel is explained below and is to be initialized appropriately. If the given label is too large to fit in the button, it will be clipped appropriately. Finally, state gives the current state of the item. It consists of a bit- wise-OR of any of the following flags: OLGX_NORMAL The item is not invoked. In a "3D" environment, it will be drawn as a raised rectangle. OLGX_INVOKED The item is invoked. In a "3D" environment, it will be drawn as a recessed rectangle. OLGX_DEFAULT This is a default choice item. An inner default rectangle will be drawn to denote it as such. OLGX_INACTIVE This item is inactive. It will be drawn with a 50% grey stipple. OLGX_LABEL_IS_PIXMAP The label specified is an X Pixmap ID. If this flag is not given, olgx_draw_choice_item will assume that the la- bel is a character string. Struct Pixlabel { XID pixmap; int width; /* width of the pixmap */ int height; /* height of the pixmap */ } Note: If the label is a pixmap, the width of the choice item is always incremented by OLGX_CHOICE_MARGIN which accommodates the space for a default ring around the pixmap in case OLGX_DEFAULT is set. void olgx_draw_check_box(ginfo, win, x, y, state) Graphics_info *ginfo; Window win; int x, y, state; olgx_draw_check_box() renders a check box in a specified state. The upper left-hand cor- ner of the check box will be at location (x, y) within window win. state must be one of the following: OLGX_NORMAL The check box is unchecked. OLGX_INVOKED The check box is recessed. OPEN LOOK specifies that this is the state of the check box while the mouse button is down over the check box. OLGX_INACTIVE The check box is drawn in inactive state. OLGX_CHECKED The check box is checked. void olgx_draw_scrollbar(ginfo,win,x,y,length,elev_pos,old_elev_pos,prop_pos,prop_length, state) Graphics_info * ginfo; Window win; int x,y; int length; int elev_pos, old_elev_pos; int prop_pos, prop_length; int state; olgx_draw_scrollbar() renders or updates a whole scrollbar, including the elevator, cable and proportion indicator. win, x, y, elev_pos, length, prop_pos, prop_length are shown in the following figure. old_elev_pos is the previous position of the elevator when it is in motion. This is used only when the flag OLGX_UPDATE is set. Finally state can have any of the following flags bitwise-ORed. OLGX_VERTICAL The elevator is vertical. OLGX_HORIZONTAL The elevator is horizontal. OLGX_NORMAL The elevator is normal. OLGX_ABBREV Abbreviated scrollbar elevator OLGX_SCROLL_ABSOLUTE The elevator middle box is drawn in invoked fashion. OLGX_SCROLL_BACKWARD The elevator backward box is invoked to indi- cate that the elevator is moving backwards. OLGX_SCROLL_FORWARD The elevator forward box is invoked to indicate that the elevator is moving forwards. OLGX_SCROLL_NO_BACKWARD The elevator backward box is dimmed, to indi- cate that the elevator cannot move backward anymore. OLGX_SCROLL_NO_FORWARD The elevator forward box is dimmed, to indicate that the elevator cannot move forward anymore. OLGX_INACTIVE The whole elevator is drawn dimmed, indicating that the elevator is inactive. OLGX_UPDATE Update the scrollbar elevator to its new location. If OLGX_UPDATE is not specified the parame- ters old_elev_pos will not be used. OLGX_ERASE Erases the underlying image before drawing the elevator at location elev_pos. Use olgx_draw_box for drawing the end anchors. void olgx_draw_text_ledge(ginfo, win, x, y, width) Graphics_info *ginfo; Window win; int x, y, width; This function draws a 2D or 3D ledge for text items. The ledge is drawn with its left edge at (x,y) within win, and width pixels wide. void olgx_draw_text(ginfo,win,string,x,y,max_width,state) Graphics_info * ginfo; Window win; char * string; int x,y; int max_width; int state; This function renders string in win at x,y. max_width defines, in pixels, the point at which string will be truncated. That is, if the length of string exceeds max_width, it will be trun- cated. If max_width is 0, the string will not be truncated. By default it is drawn in the nor- mal uninvoked mode. Finally state is a bitwise-OR of any of the following flags. OLGX_INVOKED In 2-D, text will appear in reverse video: OLGX_NORMAL In 2-D, text will appear in normal video. 3-D, whether normal or invoked, will always appear in normal video. olgx_draw_textscroll_button(ginfo,win,x,y,state) Graphics_info * ginfo; Window win; int x,y; int state; olgx_draw_textscroll_button() renders a text scrolling button. It is drawn within window win at location x,y. By default it is drawn in the normal uninvoked mode. Finally state is a bitwise-OR of any of the following flags. OLGX_ERASE Erases the underlying image before drawing the but- ton at location x,y. OLGX_INVOKED Will be drawn in Invoked state. OLGX_SCROLL_FORWARD Will drawn with the inside menu mark pointing for- wards. OLGX_SCROLL_BACKWARD Will be drawn with the inside menu mark pointing backwards. OLGX_INACTIVE The button is inactive. It will be drawn dimmed. olgx_draw_numscroll_button(ginfo,win,x,y,state) Graphics_info * ginfo; Window win; int x,y; int state; olgx_draw_numscroll_button() renders a numeric scrolling button. It is drawn within window win at location x,y. By default it is drawn in the normal uninvoked mode. Finally state is a bitwise-OR of any of the following flags. OLGX_ERASE Erases the underlying image before drawing the button at location x,y. OLGX_SCROLL_FORWARD Will be drawn with the right box invoked indicat- ing to the user that he is scrolling forward OLGX_SCROLL_BACKWARD Will be drawn with the left box invoked indicating to the user that he is scrolling back. OLGX_SCROLL_NO_FORWARD Will be drawn with the forward menu mark box dimmed. OLGX_SCROLL_NO_BACKWARD Will be drawn with the backward menu mark box dimmed. OLGX_INACTIVE The button is inactive. It will be drawn dimmed. olgx_draw_gauge(ginfo,win,x,y,width,oldval,newval,state) Graphics_info * ginfo; Window win; int x,y; int width; int newval,oldval; int state; olgx_draw_gauge() renders a gauge. It is drawn within window win at location x,y. width represents the width of the gauge in pixels, including the endcaps. oldval and newval give the old and new values of the gauge in pixels with the origin at either the top (vertical gauges) or the left (horizontal gauges) of the gauge. Finally, state gives information about the current state of the gauge. It consists of the bitwise-OR of any of the following flags: OLGX_VERTICAL Vertical gauge OLGX_HORIZONTAL Horizontal gauge OLGX_UPDATE Update the gauge to newval instead rendering the whole gauge. If OLGX_UPDATE is not specified, the parameter oldval will not be used. 5.0 OLGX MACROS: The following macros are provided for convenience and because the ginfo struct is intend- ed to be opaque; clients shouldn't access its members directly. The reason for it being opaque is that OLGX's authors want to retain the option to change the members in the ginfo struct without making existing clients obsolete. Abbrev_MenuButton_Height(ginfo) returns the height of the abbreviated MenuButton from the specified ginfo struct. Abbrev_MenuButton_Width(ginfo) returns the width of the abbreviated MenuButton from the specified ginfo struct. Ascent_of_GlyphFont(ginfo) returns the ascent of the glyph font associated with the spec- ified ginfo struct. Ascent_of_TextFont(ginfo) returns the ascent of the text font associated with the specified ginfo struct. Button_Height(ginfo) returns the height of the button from the specified ginfo struct. ButtonEndcap_Width(ginfo) returns the width of the button endcap from the specified ginfo struct. CheckBox_Height(ginfo) returns the height of the checkbox from the specified ginfo struct. CheckBox_Width(ginfo) returns the width of the checkbox from the specified ginfo struct. Dimension(ginfo) returns 1, if 3D is set in the specified ginfo struct, else returns 0. Descent_of_GlyphFont(ginfo) returns the descent of the glyph font associated with the specified ginfo struct. Descent_of_TextFont(ginfo) returns the descent of the text font associated with the speci- fied ginfo struct. Gauge_EndCapHeight(ginfo) returns the height of the gauge endcap from the specified ginfo struct. Gauge_EndCapOffset(ginfo) returns the pixel offset of the value indicator from the left or top endcap of the gauge from the specified ginfo struct. Gauge_EndCapWidth(ginfo) returns the width of the gauge endcap from the specified gin- fo struct. HorizSliderControl_Width(ginfo returns the width of the Horizontal slider control section of the ginfo struct. This corresponds to the Vertical Slider Control Height. HorizSliderControl_Height(ginfo) returns the height of the Horizontal slider control sec- tion of the specified ginfo struct. This corresponds to the Vertical slider control Width. MenuMark_Height(ginfo) returns the height of the MenuMark used in MenuButtons from the specified ginfo struct. MenuMark_Width(ginfo) returns the width of the MenuMark used in MenuButtons from the specified ginfo struct. NumScrollButton_Height(ginfo) returns the height of the Number scrolling button from the specified ginfo struct. NumScrollButton_Width(ginfo) returns the width of the Number scrolling button from the specified ginfo struct. Pointsize_Glyph(ginfo) returns the point size of the glyph font associated with the speci- fied ginfo struct. PushPinOut_Height(ginfo) returns the height of the PushPin in its Out state from the specified ginfo struct. PushPinOut_Width(ginfo) returns the width of the PushPin in its Out state from the spec- ified ginfo struct. ResizeArm_Height(ginfo) returns the height of the resize arm from the specified ginfo struct (see figure). ResizeArm_Width(ginfo) returns the width of the resize arm from the specified ginfo struct (see figure). ScrollbarElevator_Height(ginfo) returns the scrollbar elevator height from the specified ginfo struct. ScrollbarElevator_Width(ginfo) returns the scrollbar elevator width from the specified ginfo struct. SliderEndCap_Width(ginfo) returns the width of the slider endcap of the specified ginfo struct. Both vertical and horizontal sliders have the same endcap width. SliderEndCap_Height(ginfo) returns the height of the slider endcap from the specified ginfo struct. Both vertical and horizontal sliders have the same endcap height. TextFont_Struct(ginfo) returns the XFontstruct of the text font from the specified ginfo struct. TextScrollButton_Height(ginfo) returns the height of the Text scrolling button from the specified ginfo struct. TextScrollButton_Width(ginfo) returns the width of the Text scrolling button from the specified ginfo struct. Vertsb_Endbox_Height(ginfo) returns the height of the end anchor box of a vertical scroll- bar from the specified ginfo struct. Vertsb_Endbox_Width(ginfo) returns the width of the end anchor box of a vertical scroll- bar from the specified ginfo struct. xview-3.2p1.4/doc/dnd_api.txt100644 1750 1750 32352 5413747556 13373 0ustar mbmbXView API for Drag and Drop. # @(#)dnd_api.txt 1.5 28 Jun 1993 SMI This paper discusses the API for drag and drop in the XView toolkit. There are three parts to drag and drop that are discussed. "Registry of Interest" defines how applications tell other applications that they are interested in receiving drops. "Initiating a Drop" explains how to source a drop and "Receiving a Drop" defines the api for the destination of drop events. Registry of Interest: In order to receive drop and previewing events, an application must register areas that are acceptable drop sites such as a graphical icon. These areas or site descriptions within the application can be made up of several regions. Currently a region is described by a rectangle. If the application does not register an area as a drop site, the source of the drop will refuse to drop on that area. In order to provide animation of the drop site, a region can receive synthetic preview events from the source. These preview events indicate to the destination the state of the mouse relative to the destination. Possible events include LOC_WINENETER and LOC_WINEXIT that cue the drop site when the mouse enters or leaves a region. Sites can also select for LOC_DRAG events that are sent as the mouse moves across a region. Each site description can specify *hints* to the source as to what type of synthetic events it would like to receive. These events will be delivered to the event proc of the site's owner. They will use the format of the Event structure. action == ACTION_DRAG_PREVIEW ie_code == {LOC_WINENTER, LOC_WINEXIT, LOC_DRAG} ie_locx and ie_locy, coords of mouse in site's window coordinate space. Possible destinations receiving ACTION_DRAG_PREVIEW events should do what ever is necessary to indicate to the user that this area is an acceptable drop site. This might mean inverting an image at the drop site or changing a folder icon from closed to an open state. A new drag and drop item has been created in order to facilitate registry of interest. This item is subclassed from the generic pkg and instances of it will be owned by a window based object. Item name: DROP_SITE_ITEM Type: Xv_drop_site Owner: Xv_Window Attributes: ---------- DROP_SITE_ID Type: long Default: xv_unique_key() Procs: create, set, get An uninterpreted id used to distinguish one site from the next. Ideal when more than one site has been set on an object. This id will be sent in the ACTION_DRAG_PREVIEW, ACTION_DRAG_MOVE, and ACTION_DRAG_COPY events. DROP_SITE_EVENT_MASK Type: {DND_ENTERLEAVE, DND_MOTION} Default: NULL Procs: create, set, get A mask used to specify if the regions within the site will receive synthetic previewing events. The previewing events will come with event_action() equal to ACTION_DRAG_PREVIEW and event_id() set to one of LOC_WINENTER, LOC_WINEXIT or LOC_DRAG. These events will be delivered to the event proc of the drop item owner. This mask is only a hint to the source. There is no guarantee the source will send these previewing events. DROP_SITE_DEFAULT Type: Boolean Default: False Procs: create, set, get Specifies that this drop site wants forwarded drops from the window manager. Such drops include drops on icons and window manager decor windows. Only one drop site default should be specified per base frame. DROP_SITE_REGION Type: Rect * Default: NULL Procs: create, set, get This attribute is used to associate a region to a drop item. The region is a Rect *. DROP_SITE_REGION will add to any existing regions within the drop site item. The rect pointed to by Rect * will be copied. The coordinates in the rect should be relative to the drop site item's owner's window. An xv_get of a region of type Rect * will return an allocated Rect structure. This should be freed once the application has finished using it. DROP_SITE_REGION_PTR Type: Rect * (A NULL terminated array of Rect structs) Default: NULL Procs: create, set, get This attribute is similar to DROP_SITE_REGION except that it accepts a NULL terminated list of regions. It will add to any existing regions that exist within the drop item. A NULL rect is defined to be one with width or height equal to 0. An xv_get of a region list will return a NULL terminated list of Rects. This data should be freed once the application has finished using it. DROP_SITE_DELETE_REGION Type: Rect * Default: None Procs: create, set Used to remove a region from the drop item. If the owner is destroyed with xv_destroy, any drop site regions attached to it will also be destroyed. If NULL is passed as an argument, all regions in the drop site will be removed. DROP_SITE_DELETE_REGION_PTR Type: Rect * (a NULL terminated array of Rect structs) Default: None Procs: create, set Used to remove a list of regions from the drop item. If an object is no longer going to support drops it should remove its drop site regions. If the object is going to be destroyed there is no need to remove the sites as XView will destroy any drop site items associated with the object. If NULL is passed as an argument, all regions in the drop site will be removed. The individual regions should correspond to/or overlay objects contained within the window that are willing to receive drops. If the position of the objects within the window change or no longer exist, it is the responsibility of the application to update the drop site item to correspond to the current state of the window. For example, if an object is deleted, its region should be removed. If an object is being clipped by the window border and is no longer viewable, its region should be removed. If the application does not keep the region information up to date, a user can be mislead into believing that an area supports drops. -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- Initiating a Drop: If an application wants to initiate a drag and drop operation, it must first create a drag and drop object and set attributes on it to define the behavior of the drag and drop operation. The new package is called DRAGDROP and is subclassed from the new selection pkg. An instance of a DRAGDROP object is created by using xv_create(): dnd_object = xv_create(owner, DRAGDROP, attrs, NULL) where owner is an Xv_window and attrs are defined below. The object created can be modified later by using xv_set(). Information can be looked up by using xv_get(). The drag and drop object that is created is later used as a parameter to dnd_send_drop(). The owner of the drag and drop object should be the window in which the drag operation will be initiated from. A drag and drop object can only be used on one drag and drop operation at a time. To initiate a drag operation an application should call dnd_send_drop(). The dnd_send_drop() function will be responsible for changing the root cursor, sending previewing events to appropriate sites, sending the ``trigger'' message (ACTION_DRAG_COPY or ACTION_DRAG_MOVE), etc. As an example, filemgr should call this routine when the user dragged the mouse ``x'' number of pixels over a selected file icon. dnd_send_drop() takes as a parameter a drag and drop object. int dnd_send_drop(object) Xv_dnd object; dnd_send_drop() will not return until the user has released all of the mouse buttons thus dropping the object. The dnd_send_drop() function will return one of: XV_OK: The drag and drop operation has begun. DND_TIMEOUT: The destination did not respond to the kicker message. DND_ILLEGAL_TARGET: The user dropped on an object that has not registered interest in drag and drop. DND_SELECTION: A selection could not be obtained. DND_ROOT: The user dropped on the root window. XV_ERROR: An unexpected error occurred. The means in which data is transferred under drag and drop operations is through selections. Since the drag and drop pkg is subclassed from the new selection owner pkg it fully supports selections. A selection should be associated with the drag and drop object in order for the destination to obtain the data to be transferred. The selection should be a transient selection that will persist only for the duration of the drag and drop operation. A transient selection should be used even if the dragged object is already associated with another selection such as the PRIMARY. The reason for this is that another client may acquire the PRIMARY selection while the drag and drop transfer is taking place. If this were to happen, the drag and drop operation would fail. The application can use the SEL_RANK attribute to associate a selection with the drag and drop object. If the application does not own a selection (SEL_OWN) before dnd_send_drop() is called, XView will create a transient selection and associate it with the drag and drop object. This selection can be obtained by using xv_get on the dnd object with the SEL_RANK attribute. It is the responsibility of the application to disown a selection associated with the drag and drop object when it has completed the operation. This is irregardless of who initially established ownership of the selection. Since the source will be required to reply to requests from the destination for data conversion, the source should have either a convert proc or selection items set on the drag and drop object *before* it calls dnd_send_drop(). In addition to all selection owner pkg attrs, the following drag and drop attrs can be used on a drag and drop object: ------------------------------------------------------------ DND_TYPE Defines whether this drag and drop operation will be a copy or a move. This is just a hint to the destination. If the type is a ``move'' operation and if the destination honors the hint, the destination will ask the source to convert the DELETE target. Type: DND_COPY or DND_MOVE Default: DRAG_MOVE Procs: create, set, get DND_CURSOR Defines the mouse cursor that will be used during the drag portion of the drag and drop operation. Type: Xv_cursor Default: Predefined OPEN LOOK drag and drop cursor. Procs: create, set, get DND_X_CURSOR An alternative to DND_CURSOR, but accepts an XID of a cursor instead of an Xv_object. Type: Cursor Default: Predefined OPEN LOOK drag and drop cursor. Procs: create, set, get DND_ACCEPT_CURSOR DND_ACCEPT_X_CURSOR Defines the mouse cursor to be used when the cursor is over an acceptable drop site. Type: Xv_cursor, Cursor Default: Predefined OPEN LOOK drag and drop cursor. Procs: create, set, get DND_TIMEOUT_VALUE Defines the amount of time to wait for an ACK from the destination after the ``kicker'' message (ACTION_DRAG_*) has been sent. Type: struct timeval * Default: Default selection pkg timeout. Procs: create, set, get -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- Receiving a Drop: A window or object that has registered interest in receiving drop events will receive an ACTION_DRAG_COPY or an ACTION_DRAG_MOVE event when one of its sites is dropped on. Upon receiving a drop event, the application should call dnd_decode_drop(). The application should pass in as a parameter the ACTION_DRAG_{MOVE, COPY} event that it received along with a selection requester object: Xv_drop_site dnd_decode_drop(sel_object, drop_event) Selection_requestor sel_object; Event *drop_event; The dnd_decode_drop() function will decode the drop event. It will associate the selection rank defined within the drop event with the selection object that was passed into dnd_decode_drop(). The dnd_decode_drop() function will send an ACK (if requested) to the source of the drag and drop informing it that the transaction has begun. dnd_decode_drop() will return XV_ERROR if it failed to initiate the drag and drop transaction [i.e. the selection defined within the drop event does not exist.] Or the drop site item that was dropped on will be returned if it could begin the drag and drop transaction. If dnd_decode_drop() returns a drop site item, it is the responsibility of the application to continue and complete the drag and drop transaction. This will be done by normal selections on the selection object passed into dnd_decode_drop(). The macro dnd_is_local(drop_event) returns True if the source and destination are the same client. If the application receives an ACTION_DRAG_MOVE, it should simulate a move by performing a copy followed by a delete. The delete is initiated by the requester asking the holder to convert the DELETE target: xv_set(sel_object, SEL_TYPE_NAME, "DELETE", 0); (void)xv_get(sel_object, SEL_DATA, &length, &format); - or - (Non-blocking) xv_set(sel_object, SEL_TYPE_NAME, "DELETE", 0); sel_post_request(sel_object); The application should only ask the owner to delete the selection if the drop event indicates a move operation and the application determines it is appropriate to do so. This will typically happen after the application has successfully transferred the data. Finally the application should inform the toolkit that the drag and drop operation has completed. It does so by calling: dnd_done(sel_object); xview-3.2p1.4/doc/sel_api.txt100644 1750 1750 55464 5413747556 13422 0ustar mbmbXView Selection Package /**/# @(#)sel_api.txt 1.5 28 Jun 1993 SMI 1. Abstract This document details the new selection service specification. It describes the new application programmer interface, and provides some examples. It assumes the reader is familiar with principles of X11 inter-client communication protocol. 2. Introduction The Selection Service package provides for flexible communication among window applications. It is concerned with the aspects of the selection[s] the user has made, and with the status of the user interface which may affect those selections. Selections communicate between an "owner" client and a "requestor" client. The "owner" has the data representing the selected value and the "requestor" wants that data. 3. XView Selection API The new selection package is intended as a cleaner/simpler method for XView inter-client communication. Selections should be XView objects. One should be able to use xv_create to create the selection object, use xv_get and xv_set to manipulate the object. 3.1. Class Hierarchy The new package name for the selection will be "SELECTION". "SELECTION" is sub-classed from the XView generic object. Sub-classed from the "SELECTION" object are, "SELECTION_OWNER" and "SELECTION_REQUESTOR". "SELECTION_ITEM" is also sub-classed from the XView generic object. The "SELECTION" package is an example of a hidden class. It cannot be instantiated independently from the "SELECTION_OWNER" and "SELECTION_REQUESTOR". "SELECTION" package will contain attributes that are common between the "SELECTION_OWNER" and "SELECTION_REQUESTOR". --------------- | GENERIC | --------------- | | -- -- -- -- --- -------------------- | SELECTION | | SELECTION_ITEM | -- -- -- -- --- -------------------- | | ------------------- ----------------------- | SELECTION_OWNER | | SELECTION_REQUESTOR | ------------------- ----------------------- 3.2. Object Ownership ------ WINDOW ------ | | --------------- ------------------- SELECTION_OWNER SELECTION_REQUESTOR --------------- ------------------- | -------------- SELECTION_ITEM -------------- 3.3. SELECTION Object Attributes Attribute Type Default Procs -------------------------------------------------------------------- SEL_RANK Atom XA_PRIMARY create/get/set Specifies the selection atom. Pre-defined atoms are XA_PRIMARY, XA_SECONDARY and CLIPBOARD. The client should set the SEL_RANK to the atom representing the selection. SEL_RANK_NAME *char "XA_PRIMARY" create/get/set Specifies the selection name. The package will intern the selection atom using this name. SEL_TIMEOUT_VALUE unsigned int "Selection.Timeout" create/set/get Selection timeout value. This value indicates the number of seconds that a requestor or a selection owner waits for a response. SEL_TIME struct timeval * "Last event time" create/set/get Specifies the timestamp of the event triggering the acquisition or the request attempt. 3.4. Selection Owner The "SELECTION_OWNER" package is sub-classed from the "SELECTION". It will allow the clients to become the owners of a particular selection rank. It is the owner's responsibility to convert the data to the format required by the requestor and to transfer transfer the converted data to the requestor. 3.4.1. SELECTION_OWNER Attributes Attribute Type Default Procs -------------------------------------------------------------------- SEL_CONVERT_PROC Pointer to a func sel_convert_proc create/set/get Specifies the procedure that is to be called whenever a client requests the current value of the selection. For more info refer to 3.4.2. SEL_DONE_PROC Pointer to a func NULL create/set/get Specifies the procedure that is called after the requestor has received the selection or NULL if the owner is not interested in being called back. For more info refer to 3.4.3. SEL_LOSE_PROC Pointer to a func NULL create/set/get Specifies the procedure that is to be called whenever the selection owner has lost selection or NULL if the owner is not interested in being called back. For more info refer to 3.4.4. SEL_OWN boolean FALSE create/set/get Setting SEL_OWN causes the selection to be acquired (True) or lost (False). Owning a selection without an external convert proc or any Selection Owner items will generate a NULL-data reply. SEL_FIRST_ITEM Selection_item N/A get Returns a selection item. SEL_NEXT_ITEM Selection_item N/A get Returns a selection item. SEL_PROP_INFO Sel_prop_info * N/A get Returns the property data. This attribute should be used from a convert_proc. It returns the data that has been set on the SelectionNotify's property by the requestor client. 3.4.2. convert_proc This user defined procedure is called by the SELECTION_OWNER package to convert the value of a selection to a given type. The return value should be set to "TRUE" if the owner has successfully converted the selection to the target type and "FALSE" otherwise. The owner can choose to send the data in increments by constructing an "INCR" message as follow: - "replyType" to INCR. - "replyBuff" to an integer, representing a lower bound on the number of bytes of data in the selection. - "length" to 1. - "format" to 32. It should then return "TRUE". The selection package will send the "INCR" message to the requestor and calls the "convert_proc" repeatedly until "length" is set to zero. This will indicate the end of data transfer. Clients are required by ICCCM to convert to "TARGETS" type. "convert_proc" should include the code necessary to convert to this atom type. This routine is designed for the advanced users. It could be used in situations that needs special processing (e.g. sending large data in increments). "convert_proc" is called with "length" set to server's maximum_request_size. If the owner has chosen to send the selection data in increments, the size of each increments should be less than or equal to "length". "convert_proc" is called with "format" set to "SEL_BEGIN_MULTIPLE" to indicate the beginning of a "MULTIPLE" request and to "SEL_END_MULTIPLE" to indicate the end of a "MULTIPLE" request. int (*convert_proc)( seln, &replyType, &replyBuff, &length, &format ); Argument Type Description ------------------------------------------------------------------------ seln Selection_owner Selection object. replyType *Atom Specifies the type of the selection that has been requested. It should be set to an atom which describes the converted type of the selection (For example TEXT might have the property type of XA_STRING). This routine is called with replyBuff *Xv_opaque A pointer to a buffer address which contains the converted data. length *unsigned long Specifies a pointer to the number of elements in the property. "sel_convert_proc" is called with "length" set to the max allowed buffer size. format *int Specifies a pointer to the data format ( 8-bit, 16-bit or 32-bit). 3.4.2.1. sel_convert_proc "sel_convert_proc" is a public procedure. This procedure is the package default convert proc. sel_convert_proc( seln, &replyBuff, &length, &format, &incr ); 3.4.3. done_proc This user defined procedure is called by the SELECTION_OWNER package when a selection request has successfully been completed. It is called once following each successful transfer of data to the requestor. This procedure can be used to deallocate the selection data. If an "alloc" error occurs during storing the selection data, the done_proc will be called with "target" set to "SEL_FAILED". void (*done_proc)( seln, replyBuff, target ); Argument Type Description ----------------------------------------------------------------------- seln Selection_owner Selection object. replyBuff Xv_opaque Buffer which contains the converted data. target Atom Specifies the requested data type. 3.4.4. lose_proc This user defined procedure is called by the SELECTION_OWNER package to inform the client that it has lost the ownership of the given selection. One example of "lose_proc" usage is unhighlighting (normal video) the selected text in textsw. void (*lose_proc)( seln ); Argument Type Description -------------------------------------------------------------------- seln Selection_owner Selection object. 3.5. Selection Requestor The "SELECTION_REQUESTOR" package is sub-classed from the "SELECTION". It will allow the clients to obtain the value of a selection in a particular form. 3.5.1. SELECTION_REQUESTOR Object Attributes Attribute Type Default Procs -------------------------------------------------------------------- SEL_DATA Xv_opaque N/A get It will initiate a blocking selection request. The arguments to this attribute are, a pointer to a "long" which will be set to the number of elements in the returned buffer and a pointer to an "integer" which will be set to the data format. "xv_get" returns a pointer to the selection data. clients should free the returned buffer . If the requestor client has not registered a "reply_proc" with the selection package and requesting for MULTIPLE or INCR, the call will return with "length" set to "SEL_ERROR" and format set to zero. If the requestor client has registered a "reply_proc" with the selection package and requesting for MULTIPLE or INCR, the package will call the client's reply_proc with the converted data. "xv_get" returns after the transaction has completed with "length" set to XV_OK and format set to the returned data format. If the request fails the "xv_get" will return with "length" set to "SEL_ERROR" and format set to zero. data = (char *) xv_get(sel_requestor, SEL_DATA, &length, &format); SEL_TYPE Atoms XA_STRING create/set/get Specifies an atom type that the client is requesting. SEL_TYPES List of Atoms "XA_STRING,0" create/set/get Specifies a NULL-terminated list of atom types that the client is requesting. The effect will be as if a sequence of "SelectionRequest" events is delivered to the selection owner, one for each atom. This attribute will initiate a multiple request. For more info refer to 4.2.2. SEL_TYPE_NAME *char "STRING" create/set/get Same as SEL_TYPE except that the argument is the name of the requested selection type. The Package will intern the requested atom type. SEL_TYPE_NAMES List of string "STRING", 0 create/set/get Specifies a NULL-terminated list of atom type names that the client is requesting. SEL_APPEND_TYPES List of Atoms N/A create/set Same as SEL_TYPES except that the new list is appended to the previously set type list. SEL_APPEND_TYPE_NAMES List of string N/A create/set Same as SEL_TYPE_NAMES except that the new list is appended to the previously set type list. SEL_REPLY_PROC "Pointer to a func" NULL creat/set/get Specifies the procedure that is to be called when the selection value has been obtained. See 3.5.2. SEL_TYPE_INDEX int N/A create/set Specifies an index to the SEL_TYPES or SEL_TYPE list. This attr is used in conjunction with the following five attributes to associate data to a property used by the requestor. Multiple: xv_set( sel_req, SEL_TYPES, XA_STRING, INSERT_SELECTION, 0, SEL_TYPE_INDEX, 1, SEL_PROP_DATA, dataPointer, SEL_PROP_LENGTH, 20, 0 ); Single Request: xv_set( sel_req, SEL_TYPE, XA_STRING, SEL_TYPE_INDEX, 0, SEL_PROP_DATA, dataPointer, SEL_PROP_LENGTH, 20, 0 ); SEL_PROP_DATA Xv_opaque NULL create/set Specifies the data associated to a property. SEL_PROP_LENGTH unsigned long 0 create/set Specifies the length of the data associated to a property. SEL_PROP_FORMAT int 8 create/set Specifies the format of the data associated to a property. SEL_PROP_TYPE Atom XA_STRING create/set Specifies the type of the data associated to a property. SEL_PROP_TYPE_NAME *char "STRING" create/set Specifies the type name of the data associated to a property. 3.5.2. reply_proc void (*reply_proc)( sel_req, type, replyValue, length, format ); Argument Type Description ------------------------------------------------------------------------ Selection_requestor sel_req Selection requestor object. target Atom Specifies the requested data type. type Atom Specifies the converted data type. replyValue Xv_opaque Specifies a pointer to the converted data. length unsigned long Specifies the actual number of 8, 16, or 32-bit items return in replyValue. format int Specifies the actual data type of the returned data. This routine is used as a communication mechanism between the selection package and the selection client. If the selection content is larger than the server's maximum_request_size or if the selection owner has decided to transfer the selection data in increments the selection package will send the data to the requestor in chunks. The package starts the data transfer by first calling this routine with "type" set to "INCR" and "replyValue" set to a lower bound on the number of bytes of data in the selection. The "reply_proc" will then be called repeatedly until all the selection data has been transferred. The "reply_proc" is called once more with "length" set to zero and "replyValue" set to NULL to indicate the end of incremental data transfer. If one of the MULTIPLE's target is being transferred incrementally, "target" is set to "MULTIPLE". If the selection conversion fails, this routine is called with "replyValue" set to an error code, "length" set to SEL_ERROR. The error codes are: SEL_TIMEDOUT - Selection timedout. SEL_BAD_WIN_ID - The SelectionNotify requestor ID does not match the package requestor ID. SEL_BAD_TIME - The SelectionNotify time does not match the package time value. SEL_BAD_CONVERSION - If the "property" field is None, the conversion has been refused. This can mean that there is no owner for the selection, that the owner does not support the conversion implied by "target", or that the server did not have sufficient space. 3.5.3. Non-blocking Selection Request "sel_post_req" is a public procedure used to initiate a non-blocking request. Users "reply_proc" is called by the package to transfer the data to the requestor client. It returns XV_OK or XV_ERROR. If no reply procedure is defined, XV_ERROR is returned. sel_post_req( sel_req ) Selection_requestor sel_req 3.6. Selection Items 3.6.1. SELECTION_ITEM Object Attributes Attribute Type Default Procs -------------------------------------------------------------------- SEL_COPY Boolean True create/set/get SEL_COPY indicates whether or not to copy the data. SEL_DATA Xv_opaque NULL create/set/get Specifies a pointer to the selection data. SEL_FORMAT Xv_opaque 8 create/set/get Specifies the data format. SEL_LENGTH unsined long Type-dependent create/set/get Specifies the number of 8, 16, 32-bit elements. If the type is either "STRING", "FILENAME" or "HOSTNAME", the default value is set to "strlen(data)". SEL_TYPE Atom XA_STRING create/set/get Specifies the type that the package will convert to. SEL_TYPE_NAME char * "STRING" create/set/get Specifies the type name that the package will convert to. 4. Large Data Transfer Selections can get large, and this poses the following problems: - Transferring large amount of data to the server is expensive. - All servers have limits on the amount of data that can be stored in the property. The SELECTION_OWNER package will compare the size of the data describing the selection with the XMaxRequestSize. If the selection data is larger than the XMaxRequestSize the selection owner will use the INCR property mechanism to transfer the selection data. The SELECTION_OWNER package will process "alloc" errors in property change requests by using the XView XIO error handler. If an "alloc" error occurs during storing the selection data, all properties stored for this selection will be deleted and an error will be sent back to the requestor by calling the requestor's "done_proc" with the appropriate error code. For more information refer to 3.4.3. 5. General features 5.1. Giving up the selection ownership The SELECTION package provides a method for selection owners to gracefully give up the selection ownership. (see 3.4.1. SEL_OWN) 5.2. Atom management The SELECTION package contains atom management routines. It reuses Atoms that are not currently being used. 5.3. Incremental data transfer The SELECTION package will support incremental replies if it is asked to do so. (see 3.4.2 "convert_proc") 5.4. Inter-operation The clients using the new SELECTION package will be able to communicate with clients linked with the old package. The only type supported is "XA_STRING". 5.5. Timeout value The SELECTION package uses the resources "Selection.Timeout" to get the default selection timeout value. This value indicates the number of seconds that a requestor or a selection owner waits for a response. If the requestor client times out while waiting for a response from the selection owner; the package calls the requestor reply proc with an error code of SEL_TIMEDOUT. If the selection owner client times out while waiting for a response from the requestor; the package calls the selection owner done proc, if it exists. The default is set for 3 sec. 5.6. Local client It will include the ability to treat the clients that are both the owner of the selection and the requestor more efficiently. I am planning to utilize a shared memory scheme for local connections in the next version of the selection package. 6. Examples 6.1. Becoming The Primary Selection Owner 6.1.1. char *highlighted_selection; Selection_owner sel_owner; Selection_item sel_item; main() { : sel_owner = xv_create(window, SELECTION_OWNER, 0); sel_item = xv_create(sel_owner, SELECTION_ITEM, 0); : } window_event_handler(..., event, ...) : Event *event; : { : switch (event_action(event) { case ACTION_COPY: xv_set(sel_item, SEL_DATA, highlighted_selection, 0); xv_set(sel_owner, SEL_OWN, TRUE, 0); break; : } 6.1.2. Becoming the Primary Selection owner (using explicit convert procedure). Selection_owner seln_owner; main() { ............. ............. /* Create a selection object */ seln_owner = xv_create( window, SELECTION_OWNER, SEL_CONVERT_PROC, CvtProc, NULL ); xv_main_loop( frame ); } CvtProc( seln_owner,type,replyBuff,length, format ) Selection_owner seln_owner; Atom *type; char **replyBuff; unsigned long *length; int *format; { int len; Atom selection; char str[50]; selection = (Atom) xv_get( seln_owner, SEL_RANK ); strcpy( str,"Primary selection content!!\n"); if ( type == TARGETS ) { /* Support target conversion here. */ return( TRUE ); } if ((selection == XA_PRIMARY ) && ( type == XA_STRING )) { *format = 8; *length = strlen( *str ) + 1 ; *type = type; *replyBuff = (char *) *str; return(TRUE); } return(FALSE); } 6.2. Requesting The Primary Selection Value 6.2.1. Blocking Selection_requestor sel_requestor; main() { : sel_requestor = xv_create(window, SELECTION_REQUESTOR, 0); : } window_event_handler(..., event, ...) : Event *event; : { char *data; int format; /* size of data element: 8, 16 or 32 bits */ unsigned long length; /* nbr of data elements */ : switch (event_action(event) { case ACTION_PASTE: /* Initiate a blocking request, and get the data */ data = (char *) xv_get(sel_requestor, SEL_DATA, &length, &format); : } 6.2.2. Non-blocking long *file_buffer; /* contents of selected file */ long file_buffer_size; /* # of long's in file_buffer */ Selection_requestor sel_requestor; void reply_proc(sel_requestor, type, data, length, format) Selection_requestor sel_requestor; Atom type; long *data; /* buffer address */ unsigned long length; /* nbr of data elements */ int format; /* size of data element: 8, 16 or 32 bits */ { int i; long *lptr; if (length == SEL_ERROR) { xv_error(sel_requestor, ERROR_LAYER, ERROR_PROGRAM, ERROR_SEL_ERROR, *data, 0); return; } if (format != sizeof(long)) { xv_error(sel_requestor, ERROR_LAYER, ERROR_PROGRAM, ERROR_STRING, "Incorrect format returned", 0); return; } file_buffer = (long *) malloc(length * 4); file_buffer_size = length; lptr = file_buffer; for (i = 1; i <= length; i++) *lptr++ = *data++; } main() { : sel_requestor = xv_create(window, SELECTION_REQUESTOR, SEL_REPLY_PROC, reply_proc, 0); : } window_event_handler(..., event, ...) : Event *event; : { : switch (event_action(event) { case ACTION_PASTE: sel_post_req(sel_requestor); /* initiate non-blocking request */ : } 7. References Inter-Client Communication Conventions Manual (Version 1.0) David S.H. Rosenthal Sun Microsystems, Inc. xview-3.2p1.4/config/ 40755 1750 1750 0 6354605713 11603 5ustar mbmbxview-3.2p1.4/config/Imakefile100644 1750 1750 754 6331115755 13474 0ustar mbmb#include /* * $XConsortium: Imakefile,v 1.7 89/12/12 12:37:28 jim Exp $ * */ /**/# config directory /**/# @(#)Imakefile 1.9 28 Jun 1993 SMI #XVFILES = XView.cf XView.lib XView.obj XView.rules XView.tmpl library.tmpl XVFILES = XView.cf XView.lib XView.obj XView.rules XView.tmpl XView.prog CFFILES = $(XVFILES) $(HEADERS) InstallMultipleDestFlags(install,$(CFFILES),$(CONFIGDIR),$(INSTDATFLAGS)) all:: depend:: includes:: echo "no includes in $(CURRENT_DIR)" clean:: xview-3.2p1.4/config/XView.cf100644 1750 1750 32171 6331514775 13302 0ustar mbmb#ifndef XViewCf #define XViewCf YES /**/########################################################################### /**/# @(#)XView.cf 1.10 09 Feb 1992 SMI /**/# XView.cf for XView release 3.0. Specify site preferences here. /* * When anything is changed here, you must remake all the Makefiles * from the Imakefiles. * * First set the IMAKEINCLUDE environment variable to point to the * config directory in your installed X11 release (usually * /usr/lib/X11/config) and the config directory in the XView release. * For example: * * using csh where stands for the top of your installed X11 * release and stands for the top of the XView source * release. * * % setenv IMAKEINCLUDE -I/lib/X11/config -I/config * * or using sh or ksh: * * # IMAKEINCLUDE="-I/lib/X11/config -I/config" * # export IMAKEINCLUDE * * check the value of this with: * * echo "IMAKEINCLUDE = "$IMAKEINCLUDE * * Second, make the top level Makefile. For example: * * with the X.V11 release 5 from MIT installed and the X11 bin * directory is already in your PATH. * * % imake -DUseInstalled -I/lib/X11/config -I./config * * Third, "make Makefiles", note "make World" will do a "make Makefiles". * * If you've already made the Makefiles once before, can just do another * "make Makefiles" from the directory. */ /****************************************************************************/ /****************************************************************************/ /* * NOTE: Any of the values in this file or any of the other XView.* files * can be overridden in the site.def file. * ****************************************************************************/ /* * Enable Linux-specific behaviour */ #if defined(LinuxArchitecture) || defined(linux) #undef __linux #define __linux 1 #endif #if defined(i386Architecture) || defined(i386) #undef __i386 #define __i386 1 #endif /****************************************************************************/ /* * If you have Open Windows release 2.0 or greater distribution from Sun * Microsystems as your X environment, set this to YES. See next * comment. * */ #ifndef HasOpenWindows #define HasOpenWindows NO #endif /* * If you have Open Windows, then will need to set up the location of * some files used by client/clock. * The default is set up as the environement variable "OPENWINHOME" * preceeded by "$$" so it works correctly with make. If you would * rather code in the location of Open Windows instead of using an * environment variable, that will work as well. So, instead of setting * this to be "$$OPENWINHOME", could set it to be "/home/openwin" if * the "include" directory is found in /home/openwin/include or * "/home/openwin/usr/" if the "include" directory is found in * /home/openwin/usr/include. * * The OPENWINHOME environment variable should be set to point to the * top of your OpenWindows distribution. * See also InstallInOpenwinHome. * */ /* #if HasOpenWindows */ # ifndef OpenWindowsHome # define OpenWindowsHome $$OPENWINHOME # endif /* #endif */ /* * When you have permission to install a file into $OPENWINHOME, * set the following value to YES for PostScript files. */ #ifndef InstallInOpenwinHome #define InstallInOpenwinHome YES #endif /* * Where to install the XView distribution. * * By default XView will be installed wherever the X11R5 hiearchy is * installed (via site.def). Defining XVDestDir will override this * i.e. XView will be installed in XVDestDir instead. * * Note: The OpenLook fonts are always installed in the R5 hierarchy * regardless of whether XVDestDir is defined or not. (see * InstallOpenLookFonts below) * * To make this macro active, uncomment this set of defines and give it * the appropriate value. */ #ifndef XVDestDir #define XVDestDir /usr/openwin #endif /* * Command to add object modules to the library. * * For compiling a second time, you might want to change the arguments * for ar to be "rul" which will add a module if it is not already there. * For quicker addition of modules, use the "clqv" flags to ar. */ #ifndef ArchiveCommand #define ArchiveCommand ar ruv #endif /* * Command to change the permissions of a file. */ #ifndef ChangePermissionsCommand #define ChangePermissionsCommand chmod #endif /* * Use PRE_R4_ICCCM only if you are compiling with X.V11R3. * To do this change NO to YES for PreR4Server below. Note: * these Imakefiles will require the rules in the R4 config * directory and the scripts mkdirhier, and makedepend. * * See also InstallOpenLookFonts */ #ifndef PreR4Server #define PreR4Server NO #endif /* * If you already have the configuration information installed from * the X.V11R5 distribution, set OnlyNeedsNewXViewConfigInstalled to * YES below. * * By default, the X.V11R5 configuration files would have been * installed in $(DESTDIR)/lib/X11/config (aka $(CONFIGDIR)). */ #ifndef OnlyNeedsNewXViewConfigInstalled #define OnlyNeedsNewXViewConfigInstalled YES #endif /* * If you would like the XView man pages to be installed in * the same directory as the X.V11R5 man pages, then set * InstallManPagesInXVDestDir below to NO. * * By default, these files would be installed in $(XVDESTDIR)/man * and setting this to NO would install them in $(DESTDIR)/man. */ #ifndef InstallManPagesInXVDestDir #define InstallManPagesInXVDestDir YES #endif /* * If your server does not have the OpenLook fonts installed, then set * InstallOpenLookFonts to YES below. * * The X.V11 Release 5 MIT server installs these by default. * Any X.V11 release older than R4 will need these installed. * The Open Windows Release 1.0.1 onward is based on X.V11 Release 4. * These are unchanged from X.V11R4 and the XView 2 release. */ #ifndef InstallOpenLookFonts #define InstallOpenLookFonts NO #endif /* * If you want to install the private header files, set below value to * YES. Some extensions will want to use the private header files, so * if you will be doing alot of subclassing, set it to YES. */ #ifndef InstallPrivateHeaders #define InstallPrivateHeaders YES #endif /* * If you do want to install the conversion from SunView to XView * scripts, set the following value to YES below. */ #ifndef InstallConversion #define InstallConversion YES #endif /* * If you are using SunOS 3.5 or another 4.2 BSD based operating system, * add in the flag -DOLD_BSD_FDSETS to LibXViewDefines below. If you are building * on Solaris 2.2 and need the internationalized code, add the flag -DOW_I18N * to LibXViewDefines below (also, see XvI18nLevel further in this file). * Also, -DFULL_R5 is needed if building on X11R5. * If you are not building on Solaris2.2 you will not have the necessary * header files to build the internalization code. If this is the case * remove the -DOW_I18N and -DFULL_R5 from LibXViewDefines. If you are * building on a SunOS 4.x operating system add the flag -DSUNOS41. */ /* Add -DX11R6 to use workarounds for acess to xlib private data */ #ifndef LibXViewDefines # if PreR4Server # define LibXViewDefines -DPRE_R4_ICCCM # else # ifdef __linux # ifdef __i386 # define LibXViewDefines -I$(OPENWINHOME)/include -DX11R6 -Di386 -DOPENWINHOME_DEFAULT=\"$(OPENWINHOME)\" # else # define LibXViewDefines -I$(OPENWINHOME)/include -DX11R6 -DOPENWINHOME_DEFAULT=\"$(OPENWINHOME)\" # endif # else # define LibXViewDefines -DFULL_R5 -I$(OPENWINHOME)/include -DSUNOS41 -DX11R6 # endif # endif #endif /* * If you can compile with shared libraries, and want to at this time, * set WantToCompileSharedLibs to YES below. */ #ifndef WantToCompileSharedLibs #define WantToCompileSharedLibs YES #endif /* * To compile a shared library, set HasSharedLibraries to YES in * the site.def file. Only do this if you really do have shared library * capabilities in your operating system. By default, SunOS 4.x and * older will build both a shared and a static library. Since building a * shared library takes longer than a static one, you may want to make * sure the static library builds first, then try the shared one. * * The name of this directive is SharedLibXView, but it applies to all * the libraries: libxview, and libolgx. */ #ifndef SharedLibXView # if HasSharedLibraries && WantToCompileSharedLibs #define SharedLibXView YES # else #define SharedLibXView NO # endif #endif /* * To compile a debugged version of the library, set DebugLibXView to YES * below. This has not been tested. * * Note: a complete debugged library will be between 17 and 20 MB in * size. */ #ifndef DebugLibXView #define DebugLibXView NO #endif /* * To compile a profiled version of the library, set ProfileLibXView to * YES below. This has not been tested. */ #ifndef ProfileLibXView #define ProfileLibXView NO #endif /* * any machine without pixrect includes in /usr/include will * need to set InstallPixrectHeaders to YES below. * * XView does not use the Pixrect library, it uses the Pixrect * data structures as an internal structure to provide * compatibility with programs which do use the Pixrect library. */ #ifndef InstallPixrectHeaders #define InstallPixrectHeaders YES #endif /* * Many of the images are not used by the library or the clients provided * with the XView 3.0 public source release. The images are broken up * into a group of "core" images which are used and "others" which are * not used. To install images in addition to the "core" group, set the * following variable to YES. */ #ifndef InstallAllImages #define InstallAllImages YES #endif /* * If you do not already have the textsw extras menu installed in * /usr/lib/.text_extras_menu, then set RedefineTextExtrasMenu below * to YES. */ #ifndef RedefineTextExtrasMenu #define RedefineTextExtrasMenu YES #endif /* * DEC 3100 Config options */ #ifdef UltrixArchitecture # ifndef InstallCommand # define InstallCommand /usr/bin/install # endif #endif /* * Assume that the X library has been built and installed. * Set the Dependent X library to null to avoid make file conflicts. * * A dependent library means that the build will try to grab the library * from within the source code hierarchy. If the library is not there, * it will then attempt to build the library first. */ #ifndef XVDependentXLib #define XVDependentXLib #endif /* * The command to extract static strings from a source file and * replace it with an index into a common hash table. The hash table * is then compiled into the executable as a separate module. */ #ifndef ExtractStringCommand #define ExtractStringCommand xstr #endif /* * Messaging routines such as dgettext(), gettext() are part of * XView 3.0. They are used for localized text handling i.e. so that * error messages, button labels, etc. can be displayed in the current * locale. By default, they are implemented using mmap(). Set OsHasMMap * to NO if it is not available on your OS. An alternate method using * malloc() and read() will be used instead. */ #ifndef OsHasMmap #define OsHasMmap YES #endif /* * The implementation of internationalization support in XView depends * on the function setlocale(). If it is not available, set OsHasLocale * to NO. A dummy stub setlocale() function will be defined (just to * resolve some symbols) but XView will have it's internationalization * features disabled. */ #ifndef OsHasLocale #define OsHasLocale YES #endif /* * There are number of memory allocation macros in lib/libxview/base.h * that are heavily used by XView. Some compilers do not like the * construct used to define these macros. If the compiler you are using * does not like these macros, and there is no other fix for this, set * XvUseAllocFuncs to YES. Note that this may have some performance hits. */ #ifndef XvUseAllocFuncs #define XvUseAllocFuncs NO #endif /* * If your system does not have strdup(), set XvNoStrdup to YES. */ #ifndef XvNoStrdup #define XvNoStrdup NO #endif /* * If you have Solaris 2.2 and would like to include the files specific * to L4 internationalization, set XvI18nLevel to 4. * Otherwise, set XvI18nLevel to 3. */ #ifndef XvI18nLevel #define XvI18nLevel 3 #endif /* * When building under SunOS4.x, the files lib/libxview/misc/gettext.[ch] * are needed. If you are building under Solaris 2.2, set XvNeedGettext to * NO, as these routines are already part of the OS. */ #ifndef XvNeedGettext #define XvNeedGettext YES #endif /* * If you are running an SVR4 base operating system then * PositionIndependentCodeFlag should be defined as -K PIC * If you are running 4.x, then PositionIndependentCodeFlag should * be defined as -PIC */ #ifndef PositionIndependentCodeFlag #define PositionIndependentCodeFlag -fPIC #endif /* * This compiler flag is used to insert string literals into the * text segment instead of the data segment. The flag varies * depending on what compiler you use. * * Compiler Operating System StringConstantFlag * ------------------------------------------------------------------ * SparcWorks compiler Solaris 2.2 -xstrconst * (/opt/SUNWspro/bin/cc) * * /bin/cc SunOS 4.x * * acc SunOS 4.x -strconst */ #ifndef StringConstantFlag #define StringConstantFlag #endif #endif /* XViewCf */ xview-3.2p1.4/config/XView.tmpl100644 1750 1750 33411 6352320277 13657 0ustar mbmb#ifndef XViewTmpl #define XViewTmpl YES #include /**/########################################################################### /**/# @(#)XView.tmpl 1.15 12 May 1993 SMI /**/# XView.tmpl for XView release 3.2. Template to add additional config /**/# rules to those supplied with X Version 11 release 5. /***************************************************************************/ /***************************************************************************/ /* * NOTE:The variables that can be changed without significantly * affecting the build process have been defined with the * "#ifndef value, #define value, #endif" CPP notation which allows * one to override any of these definitions in the site.def * file. The site.def file is included before this file in the process of * creating the Makefile. * ***************************************************************************/ /***************************************************************************/ /* * Where to install XView libraries */ #ifndef XVLibraryDestination #define XVLibraryDestination $(XVDESTDIR)/lib #endif /* * Where to install XView lint libraries */ #ifndef XVLintLibraryDestination #define XVLintLibraryDestination $(XVDESTDIR)/lib/lint #endif /* * Where to install the XView clients. By default, the MIT configuration * files set this to be $(DESTDIR)/usr/bin/X11. * These are set up to go into $(XVDESTDIR)/usr/bin/xview by default so * these programs do not overwrite any others that may be installed * on the system. */ #ifndef XVBinDest #define XVBinDest $(XVDESTDIR)/bin #endif /* * Where to install the XView man pages. By default, the MIT config * files set this to be $(DESTDIR)/usr/man. This allows the XView.cf * file to provide an obvious way to change the behavior without * delving too much into the intricacies of Imake and associated * conventions used by X.V11R4. */ #if InstallManPagesInXVDestDir # ifndef XVManPath # define XVManPath $(XVDESTDIR)/man # endif #else # define XVManPath ManPath #endif /* * Where to install the include files. */ #ifndef XVHeaderDest #define XVHeaderDest $(XVDESTDIR)/include #endif /* * Where to install the source examples. */ #ifndef XVSourceDest #define XVSourceDest $(XVDESTDIR)/share/src/xview #endif /* * Where to install the documentation files. */ #ifndef XVDocDest #define XVDocDest $(XVDESTDIR)/share/doc/xview #endif /* * Where to install the help files for spot help. */ #ifndef XVHelpDest #define XVHelpDest $(LIBRARY_DEST)/help #endif /* * Where to install the extra support files. */ #ifndef XVExtrasDest #define XVExtrasDest $(LIBRARY_DEST) #endif /* * What to call the text extras file and where to find it. * By default, looks for "/usr/lib/.text_extras_menu". */ #ifndef TextExtrasMenuFileName #define TextExtrasMenuFileName XVExtrasDest/**//.text_extras_menu #endif /* * Work around small conflict with Project.tmpl file */ #ifndef __linux #if UseInstalled MKDIRHIER = BourneShell BinDir/mkdirhier #endif #endif #if OsHasLocale LOCALE_DEFINES = -DOS_HAS_LOCALE #endif #if OsHasMmap MMAP_DEFINES = -DOS_HAS_MMAP #endif #if XvUseAllocFuncs XV_ALLOC_DEFINES = -DXV_USE_ALLOC_FUNCS #endif #if XvNoStrdup XV_STRDUP_DEFINES = -DXV_NO_STRDUP #endif #if SharedLibXView XV_CFLAGS.optimized = XV_CFLAGS.shared = -DDYNAMICLIB #else XV_CFLAGS.optimized = -DOPTIMIZED XV_CFLAGS.shared = #endif DEFINES = $(LOCALE_DEFINES) $(MMAP_DEFINES) $(XV_ALLOC_DEFINES) \ $(XV_STRDUP_DEFINES) $(XV_CFLAGS.optimized) $(XV_CFLAGS.shared) #ifdef XVDestDir XVDESTDIR = XVDestDir LIBRARY_DEST = XVLibraryDestination LINT_LIBRARY_DEST = XVLintLibraryDestination BINDIR = XVBinDest MANPATH = XVManPath HEADER_DEST = XVHeaderDest SRC_DEST = XVSourceDest DOC_DEST = XVDocDest #else LIBRARY_DEST = $(USRLIBDIR) LINT_LIBRARY_DEST = $(LINTLIBDIR) HEADER_DEST = $(INCROOT) #ifdef ProjectRoot SRC_DEST = $(PROJECTROOT)/share/src/xview DOC_DEST = $(PROJECTROOT)/share/doc/xview #else SRC_DEST = /usr/share/src/xview DOC_DEST = /usr/share/doc/xview #endif #endif /* * If you do need these files installed, then put them in an XView * location, so need to override the value for configdir. * Also affects commands line when using Imake... */ #if !OnlyNeedsNewXViewConfigInstalled # ifndef XVConfigdir # define XVConfigdir $(LIBRARY_DEST)/xview/config # endif CONFIGDIR = XVConfigdir #endif XVLIBSRC = $(TOP)/lib HELP_DEST = XVHelpDest LIBRARY_DEST_EXTRAS = XVExtrasDest TEXT_EXTRAS_MENU = TextExtrasMenuFileName AR = ArchiveCommand CHMOD = ChangePermissionsCommand #if HasOpenWindows PSDIR = OpenWindowsHome/etc/NeWS NEWSHDRS = OpenWindowsHome/include NEWSLIBDIR = OpenWindowsHome/lib CPSLIB = -L$(NEWSLIBDIR) -lcps CPS = OpenWindowsHome/bin/cps DESKSETDIR = OpenWindowsHome/lib LIBDESKSET = -L$(DESKSETDIR) -ldeskset #endif /* * DEC 3100 Config options */ #ifdef UltrixArchitecture INSTALL = InstallCommand #endif /* * Also, we assume that the X11 library has been built by this point, so * override this variable with a null value. */ DEPXLIB = XVDependentXLib /* * Flags and rules used when compiling assembler source files * Currently, these are not used, so commented out. AFLAGS = -P AS = as */ /* * use the same trick X11R5 does for defining rules for installed libs */ #ifdef UseInstalled #define _Use(a,b) a #else #define _Use(a,b) b #endif /* * Temporary directory used during build process before the include * files are installed. This is just a place where symbolic links are * placed to point back to the actual files in the build hierarchy to * save on disk space. */ #ifndef XVBuildIncludesDir #define XVBuildIncludesDir $(TOP)/build #endif /* * This is the path from the include directory to the top of the XView * source hierarchy. By default, the includes install in * /build/include/name, so that would be three ".." directories * back to get back to the directory. */ #ifndef XVBuildIncludeTop #define XVBuildIncludeTop ../../.. #endif BUILDINCDIR = XVBuildIncludesDir BUILDINCTOP = XVBuildIncludeTop /* * Used for installation of includes during build and installation * afterwards. */ #ifndef XVIncludeDirName #define XVIncludeDirName /include #endif INCDIR = XVIncludeDirName /* * The following names should not be changed as the XView library * sources depend on these names being consistent. */ XVPUBINC = xview XVPRIINC = xview_private OLPUBINC = olgx OLPRIINC = olgx_private PSPUBINC = xvps PSPRIINC = xvps_private IMAGEINC = images BITMAPINC = bitmaps PIXRECT_INCDIR = $(INCDIR)/pixrect XVPUB_INCDIR = $(INCDIR)/$(XVPUBINC) XVPRI_INCDIR = $(INCDIR)/$(XVPRIINC) OLPUB_INCDIR = $(INCDIR)/$(OLPUBINC) OLPRI_INCDIR = $(INCDIR)/$(OLPRIINC) PSPUB_INCDIR = $(INCDIR)/$(PSPUBINC) PSPRI_INCDIR = $(INCDIR)/$(PSPRIINC) IMAGE_INCDIR = $(INCDIR)/$(IMAGEINC) BITMAP_INCDIR = $(INCDIR)/$(BITMAPINC) PIXRECT_HEADER_DEST = $(HEADER_DEST)/pixrect XVPUB_HEADER_DEST = $(HEADER_DEST)/$(XVPUBINC) XVPRI_HEADER_DEST = $(HEADER_DEST)/$(XVPRIINC) OLPUB_HEADER_DEST = $(HEADER_DEST)/$(OLPUBINC) OLPRI_HEADER_DEST = $(HEADER_DEST)/$(OLPRIINC) PSPUB_HEADER_DEST = $(HEADER_DEST)/$(PSPUBINC) PSPRI_HEADER_DEST = $(HEADER_DEST)/$(PSPRIINC) IMAGES_DEST = $(HEADER_DEST)/$(IMAGEINC) BITMAP_DEST = $(HEADER_DEST)/$(BITMAPINC) /* * For pre-R4, FONTINSTDIR should be $(LIBDIR)/fonts, also need to * change LIBDIR above to the location of fonts for pre-R4 servers. * For R5, FONTINSTDIR should be $(LIBDIR)/fonts. Note, do not need to * install fonts if you have X.V11R4 FCS or X.V11R5 FCS . */ #if InstallOpenLookFonts # ifndef XVFontDest # define XVFontDest $(LIBDIR)/fonts # endif # ifndef XVOLFontDest # define XVOLFontDest $(FONTINSTDIR) # endif # ifndef XVTextFontDest # define XVTextFontDest $(FONTINSTDIR) # endif FONTINSTDIR = XVFontDest OPENLOOK_FONTINSTDIR = XVOLFontDest TEXTFONT_FONTINSTDIR = XVTextFontDest #endif /* * Rules for compiling lint library. */ LINTDIR = $(LINT_LIBRARY_DEST) /* * Definitions used for compiling shared libraries */ #if SharedLibXView # ifndef InstSharedLibFlags # define InstSharedLibFlags -m 0755 # endif # ifndef PositionIndependentCodeFlag # define PositionIndependentCodeFlag -pic # endif # ifndef ExtractedStringArrayName # define ExtractedStringArrayName _libxview_xstr # endif # ifndef ObjectSortCommand # define ObjectSortCommand ./objsort.sh # endif # ifndef ObjectOrderListFile # define ObjectOrderListFile ./lorder-sparc # endif PIC = PositionIndependentCodeFlag STRCONST = StringConstantFlag XSTR = ExtractStringCommand XSTR_ARRAY = ExtractedStringArrayName OBJSORT = ObjectSortCommand OBJLIST = ObjectOrderListFile INSTSHAREDLIBFLAGS = InstSharedLibFlags #endif /* * If compiling with shared libraries, sort the objects in the .so * library so the strings are at the top and the global data * initialization routines are at the tail. Other ordering would * need to be based on an analysis of usage patterns over time. If * a module is omitted from the ORDER_FILE, it will be at the tail of * the library by default. */ #if SharedLibXView # ifndef SortObjects # define SortObjects NO # endif #endif /* * set up compile time dependencies for XView clients. * These rules would be very handy for the site.def file. */ #if SharedLibXView DEPXVIEWLIB = XVIEWLIB = -L$(LIBRARY_DEST) -lxview #else DEPXVIEWLIB = _Use($(LIBRARY_DEST),$(XVLIBSRC)/libxview)/libxview.a XVIEWLIB = LoaderLibPrefix -L$(LIBRARY_DEST) -lxview #endif #if SharedLibXView DEPOLGXLIB = OLGXLIB = -L$(LIBRARY_DEST) -lolgx #else DEPOLGXLIB = _Use($(LIBRARY_DEST),$(XVLIBSRC)/libolgx)/libolgx.a OLGXLIB = LoaderLibPrefix -L$(LIBRARY_DEST) -lolgx #endif #if SharedLibXView DEPXVPSLIB = XVPSLIB = -L$(LIBRARY_DEST) -lxvps #else DEPXVPSLIB = _Use($(LIBRARY_DEST),$(XVLIBSRC)/libxvps)/libxvps.a XVPSLIB = LoaderLibPrefix -L$(LIBRARY_DEST) -lxvps #endif #if SharedLibX XLIB = $(EXTENSIONLIB) -lX11 #else XLIB = $(EXTENSIONLIB) LoaderLibPrefix -lX11 #endif #if SystemV4 SYSV_CLIENT_LIB = -lintl -ldl XVCLIENTSYSDEFINES = -DSVR4 -DSYSV #else SYSV_CLIENT_LIB = XVCLIENTSYSDEFINES = -DSUNOS41 #endif /* * XvI18nLevel causes different options to be set for compiling * the clients. If XvI18nLevel is set to 4 and X11R5 has not been * built Level 4 internationalized then XVCLIENTI18NDEFINES needs * to be changed to : -DOW_I18N_L3 -DOW_I18N -DFULL_R5 * for olwm to be built correctly. */ #if XvI18nLevel == 4 XVCLIENTI18NDEFINES = -DOW_I18N_L4 -DOW_I18N_L3 -DOW_I18N -DFULL_R5 XVCLIENTMISCLIB = -lw XVCLIENTINCLUDES = -I$(OPENWINHOME)/include #else XVCLIENTI18NDEFINES = -DOW_I18N_L3 XVCLIENTMISCLIB = XVCLIENTINCLUDES = #endif XVCLIENTDEFINES = $(XVCLIENTSYSDEFINES) $(XVCLIENTI18NDEFINES) /* * Define libraries for XView clients */ #ifndef XViewClientDepLibs #define XViewClientDepLibs #endif #ifndef XViewClientLibs #define XViewClientLibs $(XVIEWLIB) $(OLGXLIB) $(XLIB) $(XVCLIENTMISCLIB) #endif /* * Define libraries for XView clients using XVPS */ #if HasOpenWindows # ifndef XViewPSClientDepLibs # define XViewPSClientDepLibs # endif # ifndef XViewPSClientLibs # define XViewPSClientLibs $(XVPSLIB) $(XVIEWLIB) $(OLGXLIB) $(XLIB) $(CPSLIB) # endif #endif /* * Do not change this revision number unless you know why. * System V does not use the minor revision number so it will have the * rev number 3. For 4.x systems 3.2, corresponds to the rev number for * the XView 3.2 release. */ #if SharedLibXView # ifndef SharedXViewRev #ifdef __linux #define SharedXViewRev 3.2.4 #else #if SystemV4 # define SharedXViewRev 3 #else # define SharedXViewRev 3.2 #endif #endif # endif SOXVIEWREV = SharedXViewRev SOOLGXREV = SharedXViewRev # if HasOpenWindows SOXVPSREV = 0.2 # endif #endif /* * Define the subdir names for the text files and the data files for * building a shared library. */ #if SharedLibXView SODIR = shared SADIR = unshared #endif /* * If your machine does not understand "..", then can define these to be * an absolute path instead of relative paths. */ #if SharedLibXView SHARED_DIR = $(TARGETDIR)xshared UNSHARED_DIR = $(TARGETDIR)xunshared XSTR_STRINGS_FILE = $(TARGETDIR)xstrings #endif /* * Define the product name and release used in Imakefiles... */ #ifndef ProductNameAndRelease #define ProductNameAndRelease "XView release 3.2" #endif /* * Include the XView specific makefile macros. */ /* This is just needed here because X11 is installed with gcc as a default compiler. lumpi@dobag.in-berlin.de #undef CcCmd #define CcCmd cc #define LibraryCcCmd cc */ #include #endif /* XViewTmpl */ xview-3.2p1.4/config/XView.lib100644 1750 1750 2336 6351031514 13423 0ustar mbmb/**/########################################################################## /**/# @(#)XView.lib 1.3 07 Jan 1992 SMI /**/# XView.lib for XView release 3.0. Common commands for all library builds. #ifdef BandAidCompiler #include BandAidCompiler #endif install:: $(MKDIRHIER) $(DESTDIR)$(LIBRARY_DEST) #if DebugLibXView InstallLibraryNoBuild(${LIBTARGET}_d,$(LIBRARY_DEST)) #endif #if ProfileLibXView InstallLibraryNoBuild(${LIBTARGET}_p,$(LIBRARY_DEST)) #endif #if SharedLibXView # if SortObjects SubdirBuildSortedSharedLibraryTarget(${LIBTARGET},${SOREV},$(TEXT_OBJS) $(SPECIAL_OBJS),$(SHARED_DIR),$(OBJSORT),$(OBJLIST)) # else SubdirBuildNormalSharedLibraryTarget(${LIBTARGET},${SOREV},$(TEXT_OBJS) $(SPECIAL_OBJS),$(SHARED_DIR)) # endif # if !NoDataObjs SubdirBuildNormalSharedLibraryDataTarget(${LIBTARGET},${SOREV},$(UNSHARED_DIR)) InstallSharedLibraryDataNoBuild(${LIBTARGET},${SOREV},$(LIBRARY_DEST)) # endif InstallSharedLibraryNoBuild(${LIBTARGET},${SOREV},$(LIBRARY_DEST)) #endif InstallLibraryNoBuild(${LIBTARGET},$(LIBRARY_DEST)) SubdirLintLibraryBuild(${LIBTARGET},lint) InstallLintLibrary(${LIBTARGET},$(LINT_LIBRARY_DEST)) #ifndef IncludePopulateSCCS #define IncludePopulateSCCS YES PopulateSCCSTree(h,$(ALLFILES)) #endif xview-3.2p1.4/config/XView.obj100644 1750 1750 6451 6351023135 13431 0ustar mbmb/**/########################################################################### /**/# @(#)XView.obj 1.6 28 Jun 1993 SMI /**/# XView.obj for XView release 3.0. Common commands for all library objects. /* * If the library.tmpl file has already been included, then add its * definitions below so they are not excluded from the rules. The * library.tmpl file is work around for a small bug in the Library.tmpl * file. * */ #if LibraryTmpl STD_DEFINES = StandardDefines LibXViewDefines LibraryDefines #else STD_DEFINES = StandardDefines LibXViewDefines #endif HEADERS= ${HDRSPUBLIC} ${HDRSPRIVATE} INCLUDES= -I$(BUILDINCDIR)$(INCDIR) OBJS = $(TEXT_OBJS) $(DATA_OBJS) $(SPECIAL_OBJS) #if !NotLibXView ALLFILES = $(SRCS) $(HEADERS) #endif #if SharedLibXView # if DebugLibXView SubdirSharedAndDebuggedLibraryObjectRule() # if SubdirHasSpecialObjs SubdirSpecialSharedAndDebuggedObjectRule($(SPECIAL_OBJS),/**/,/**/) # endif # else SubdirSharedLibraryObjectRule() # if SubdirHasSpecialObjs SubdirSpecialSharedObjectRule($(SPECIAL_OBJS),/**/,/**/) # endif # endif #else # if DebugLibXView && ProfileLibXView DebuggedAndProfiledLibraryObjectRule() # else # if DebugLibXView DebuggedLibraryObjectRule() # else # if ProfileLibXView ProfiledLibraryObjectRule() # else NormalLibraryObjectRule() # endif # endif # endif #endif /* * Need to include a special rule for data modules with globally initialized * data. */ #if SharedLibXView #ifdef __linux SubdirNormalSharedLibraryTarget(${LIBTARGET},${SOREV},$(OBJS),$(SHARED_DIR),shared) #else /* __linux */ #if SubdirHasTextObjs SubdirNormalSharedLibraryTarget(${LIBTARGET},${SOREV},$(TEXT_OBJS) $(SPECIAL_OBJS),$(SHARED_DIR),shared) #endif # if SubdirHasDataObjs # if DebugLibXView SubdirSpecialSharedAndDebuggedObjectRule($(DATA_OBJS),/**/,/**/) # else SubdirSpecialSharedObjectRule($(DATA_OBJS),/**/,/**/) # endif SubdirNormalSharedLibraryDataTarget(${LIBTARGET},${SOREV},$(DATA_OBJS),$(UNSHARED_DIR),.) # endif #endif /* __linux */ # if DebugLibXView SubdirDebuggedLibTarget(${LIBTARGET},$(OBJS)) # endif #else # if DebugLibXView SubdirDebuggedLibTarget(${LIBTARGET},$(OBJS)) # endif # if ProfileLibXView SubdirProfiledLibTarget(${LIBTARGET},$(OBJS)) # endif #endif SubdirNormalLibTarget(${LIBTARGET},$(OBJS)) SubdirLintLibraryTarget(${LIBTARGET},$(LINTDIR),$(SRCS)) DependTarget() NormalLintTarget($(SRCS)) #if SubdirHasPublicHeaders # if NotLibXView BuildIncludes($(HDRSPUBLIC),$(PUB_INCDIR),/**/) install:: $(MKDIRHIER) $(DESTDIR)$(PUB_HEADER_DEST) InstallMultiple($(HDRSPUBLIC),$(PUB_HEADER_DEST)) # else BuildIncludes($(HDRSPUBLIC),$(XVPUB_INCDIR),/**/) install:: $(MKDIRHIER) $(DESTDIR)$(XVPUB_HEADER_DEST) InstallMultiple($(HDRSPUBLIC),$(XVPUB_HEADER_DEST)) # endif #endif #if SubdirHasPrivateHeaders # if NotLibXView BuildIncludes($(HDRSPRIVATE),$(PRI_INCDIR),/**/) # else BuildIncludes($(HDRSPRIVATE),$(XVPRI_INCDIR),/**/) # endif # if InstallPrivateHeaders # if NotLibXView install:: $(MKDIRHIER) $(DESTDIR)$(PRI_HEADER_DEST) InstallMultiple($(HDRSPRIVATE),$(PRI_HEADER_DEST)) # else install:: $(MKDIRHIER) $(DESTDIR)$(XVPRI_HEADER_DEST) InstallMultiple($(HDRSPRIVATE),$(XVPRI_HEADER_DEST)) # endif # endif #endif #ifndef IncludePopulateSCCS #define IncludePopulateSCCS YES PopulateSCCSTree(h,$(ALLFILES)) #endif includes:: install:: xview-3.2p1.4/config/XView.prog100644 1750 1750 1007 6351032150 13613 0ustar mbmb/**/# @(#)XView.prog 1.6 28 Jun 1993 SMI PopulateSCCSTree(h,$(ALLFILES)) #if HasInfoFiles install:: $(MKDIRHIER) $(DESTDIR)$(HELP_DEST) InstallNonExecList($(INFOFILES),$(HELP_DEST)) #endif #if InstallSrcs MakeDirectories(install,$(SRC_DEST)/examples/bin) InstallMultiple($(PROGRAMS),$(SRC_DEST)/examples/bin) MakeDirectories(install.srcs,$(SRC_DEST)/$(LOCATION)) InstallExampleSrcs($(INSTALL_SRCS),$(MAKEFILE_SIMPLE),$(SRC_DEST)/$(LOCATION)) #else install.srcs:: #endif includes:: install.man:: DependTarget() xview-3.2p1.4/config/XView.rules100644 1750 1750 45767 6351032140 14042 0ustar mbmb/**/########################################################################### /**/# @(#)XView.rules 1.8 12 May 1993 SMI /**/# XView.rules for XView release 3.0. Imake rules needed by distribution. /* *********************************************************************** * * Imake rules for XView * *** DO NOT CHANGE ANYTHING BELOW THIS LINE! *** * *********************************************************************** */ /* * SubdirNormalLibTarget - create an "all::" target for a library; */ #ifndef SubdirNormalLibTarget #define SubdirNormalLibTarget(libname, objlist) @@\ AllTarget(lib/**/libname.a) @@\ @@\ lib/**/libname.a:: objlist @@\ $(AR) $(TARGETDIR)$@ objlist #endif /* SubdirNormalLibTarget */ /* * SubdirProfiledLibTarget - create an "all::" target for a profiled library; */ #ifndef SubdirProfiledLibTarget #define SubdirProfiledLibTarget(libname, objlist) @@\ AllTarget(lib/**/libname/**/_p.a) @@\ @@\ lib/**/libname/**/_p.a:: objlist @@\ ( cd profiled; $(AR) ../$(TARGETDIR)$@ objlist ) #endif /* SubdirProfiledLibTarget */ /* * SubdirDebuggedLibTarget - create an "all::" target for a debugged library; */ #ifndef SubdirDebuggedLibTarget #define SubdirDebuggedLibTarget(libname, objlist) @@\ AllTarget(lib/**/libname/**/_d.a) @@\ @@\ lib/**/libname/**/_d.a:: objlist @@\ ( cd debugger; $(AR) ../$(TARGETDIR)$@ objlist ) #endif /* SubdirDebuggedLibTarget */ /* * SubdirCompoundLibTarget - create an "all::" target for a compound library; * --same rule as SubdirNormalLibTarget--compatibility */ #ifndef SubdirCompoundLibTarget #define SubdirCompoundLibTarget(libname, objlist) @@\ AllTarget(lib/**/libname.a) @@\ @@\ lib/**/libname.a:: objlist @@\ $(AR) $(TARGETDIR)$@ objlist #endif /* SubdirCompoundLibTarget */ /* * MakeAnythingSubdirs - go into subdirs to make anything for a given target; */ #ifndef MakeAnythingSubdirs #define MakeAnythingSubdirs(name,dirs) @@\ name:: @@\ @case '${MFLAGS}' in *[ik]*) set +e;; esac; \ @@\ for i in dirs ;\ @@\ do \ @@\ (cd $$i ; echo "making name in $$i"; \ @@\ $(MAKE) PassCDebugFlags $(MFLAGS) name); \ @@\ done #endif /* MakeAnythingSubdirs */ /* * InstallLibraryNoBuild - install a library without first trying to build it; * Check if need to do ranlib */ #if DoRanlibCmd #ifndef InstallLibraryNoBuild #define InstallLibraryNoBuild(libname,dest) @@\ install:: @@\ -$(INSTALL) -c $(INSTLIBFLAGS) lib/**/libname.a $(DESTDIR)dest @@\ -$(RANLIB) $(RANLIBINSTFLAGS) $(DESTDIR)dest/lib/**/libname.a #endif /* InstallLibraryNoBuild */ #else /* DoRanlibCmd */ #ifndef InstallLibraryNoBuild #define InstallLibraryNoBuild(libname,dest) @@\ install:: @@\ -$(INSTALL) -c $(INSTLIBFLAGS) lib/**/libname.a $(DESTDIR)dest #endif /* InstallLibraryNoBuild */ #endif /* DoRanlibCmd */ /* * SubdirNormalSharedLibraryTarget - generate rules to create a shared library; * do not build it since this is for a subdirectory. Move the files to the * shared library directory for all objects in solist. */ #ifndef SubdirNormalSharedLibraryTarget #define SubdirNormalSharedLibraryTarget(libname,rev,solist,dir,sub) @@\ AllTarget(lib/**/libname.so.rev) @@\ @@\ lib/**/libname.so.rev:: solist @@\ -@if [ ! -d dir ]; then mkdir dir; else exit 0; fi @@\ @case '${MFLAGS}' in *[i]*) set +e;; esac; \ @@\ for i in solist; do (set -x; $(CP) sub/$$i dir; $(CP) sub/$$i .); done #endif /* SubdirNormalSharedLibraryTarget */ /* * SubdirNormalSharedLibraryDataTarget - generate rules to create shlib data file; * do not build it since this is for a subdirectory. Copy the files to the * shared library data directory for all objects in salist. Delete the * unneeded data modules from the ./shared directory. */ #ifndef SubdirNormalSharedLibraryDataTarget #ifdef __linux #define SubdirNormalSharedLibraryDataTarget(libname,rev,salist,dir,sub) #else /* __linux */ #define SubdirNormalSharedLibraryDataTarget(libname,rev,salist,dir,sub) @@\ AllTarget(lib/**/libname.sa.rev) @@\ @@\ lib/**/libname.sa.rev:: salist @@\ -@if [ ! -d dir ]; then mkdir dir; else exit 0; fi @@\ @case '${MFLAGS}' in *[i]*) set +e;; esac; \ @@\ for i in salist; do \ @@\ (set -x; $(CP) sub/$$i dir; $(CP) shared/$$i $(SHARED_DIR)); done #endif /* !__linux */ #endif /* SubdirNormalSharedLibraryDataTarget */ /* * SubdirBuildNormalSharedLibraryTarget - generate rules to create a shared library; * build it into a different name so that the we don't hose people by having * the library gone for long periods. The lib.so part contains the entire * library both text and data modules. The globally initialized data must be * included in both the .so and the .sa parts of the library. */ #ifndef SubdirBuildNormalSharedLibraryTarget #ifdef __linux #define SubdirBuildNormalSharedLibraryTarget(libname,rev,solist,sodir) @@\ AllTarget(lib/**/libname.so.rev) @@\ @@\ lib/**/libname.so.rev:: solist @@\ $(RM) $@~ @@\ (cd sodir; $(CC) -shared -Wl,-soname -Wl,`basename $@ | sed 's/\(\.[0-9]\).*$$/\1/'` -o $@~ ?*.o) @@\ $(RM) $@ @@\ $(MV) sodir/$@~ $@ @@\ @@\ @@\ clean:: @@\ $(RM) lib/**/libname.so.rev sodir/?*.o #else /* __linux */ #define SubdirBuildNormalSharedLibraryTarget(libname,rev,solist,sodir) @@\ AllTarget(lib/**/libname.so.rev) @@\ @@\ lib/**/libname.so.rev:: solist @@\ $(RM) $@~ sodir/lib/**/libname.so.xs.o @@\ @if [ -f xstrings ]; then \ @@\ $(RM) strings; $(CP) xstrings strings; fi @@\ (cd sodir; $(LD) -o ../$@~ $(SHLIBLDFLAGS) ?*.o) @@\ -@if [ -f strings~ ]; then $(RM) strings~; else exit 0; fi @@\ $(RM) $@ @@\ $(MV) $@~ $@ @@\ @@\ clean:: @@\ $(RM) lib/**/libname.so.rev sodir/?*.o strings* #endif /* !__linux */ #endif /* SubdirBuildNormalSharedLibraryTarget */ /* * SubdirBuildSortedSharedLibraryTarget - rules to create a sorted shlib; * build it into a different name so that the we don't hose people by having * the library gone for long periods. The lib.so part contains the entire * library both text and data modules. The globally initialized data must be * included in both the .so and the .sa parts of the library. Must have the * sorting script and a list of objects to sort. */ #ifndef SubdirBuildSortedSharedLibraryTarget #ifdef __linux #define SubdirBuildSortedSharedLibraryTarget(libname,rev,solist,sodir,objsort,objlist) \ SubdirBuildNormalSharedLibraryTarget(libname,rev,solist,sodir) #else /* __linux */ #define SubdirBuildSortedSharedLibraryTarget(libname,rev,solist,sodir,objsort,objlist) @@\ AllTarget(lib/**/libname.so.rev) @@\ @@\ lib/**/libname.so.rev:: solist @@\ $(RM) $@~ sodir/lib/**/libname.so.xs.o @@\ @if [ -f xstrings ]; then \ @@\ $(RM) strings; $(CP) xstrings strings; fi @@\ -@if [ ! -x objsort ];then $(CHMOD) 755 objsort;else exit 0;fi @@\ $(LD) `objsort objlist sodir` -o $@~ $(SHLIBLDFLAGS) @@\ @if [ -f strings~ ]; then $(RM) strings~; else exit 0; fi @@\ $(RM) $@ @@\ $(MV) $@~ $@ @@\ @@\ clean:: @@\ $(RM) lib/**/libname.so.rev sodir/?*.o strings* xstrings* #endif /* !__linux */ #endif /* SubdirBuildSortedSharedLibraryTarget */ /* * SubdirBuildNormalSharedLibraryDataTarget - generate rules to create shlib data file; * Do not use xstr or pic on the data file segments. * The lib.sa part defines the interface for globally initialized data. * Check if ranlib is needed. */ #if DoRanlibCmd #ifndef SubdirBuildNormalSharedLibraryDataTarget #ifdef __linux #define SubdirBuildNormalSharedLibraryDataTarget(libname,rev,sadir) #else /* __linux */ #define SubdirBuildNormalSharedLibraryDataTarget(libname,rev,sadir) @@\ AllTarget(lib/**/libname.sa.rev) @@\ @@\ lib/**/libname.sa.rev:: @@\ $(RM) $@~ @@\ (cd sadir; $(AR) ../$@~ ?*.o) @@\ $(RM) $@ @@\ $(MV) $@~ $@ @@\ $(RANLIB) $@ @@\ @@\ clean:: @@\ $(RM) lib/**/libname.sa.rev sadir/?*.o #endif /* !__linux */ #endif /* SubdirBuildNormalSharedLibraryDataTarget */ #else /* DoRanlibCmd */ #ifndef SubdirBuildNormalSharedLibraryDataTarget #ifdef __linux #define SubdirBuildNormalSharedLibraryDataTarget(libname,rev,sadir) #else /* __linux */ #define SubdirBuildNormalSharedLibraryDataTarget(libname,rev,sadir) @@\ AllTarget(lib/**/libname.sa.rev) @@\ @@\ lib/**/libname.sa.rev:: @@\ $(RM) $@~ @@\ (cd sadir; $(AR) ../$@~ ?*.o) @@\ $(RM) $@ @@\ $(MV) $@~ $@ @@\ @@\ clean:: @@\ $(RM) lib/**/libname.sa.rev sadir/?*.o #endif /* SubdirBuildNormalSharedLibraryDataTarget */ #endif /* !__linux */ #endif /* DoRanlibCmd */ /* * SubdirSharedLibraryObjectRule - generate make rules to build * "normal" SunOS style shared object files. XView absolutely requires * the use of xstr to build a shared library; otherwise, the library will * overflow the GLOBAL_OFFSET_TABLE for some architectures. */ #ifndef SubdirSharedLibraryObjectRule #define SubdirSharedLibraryObjectRule() @@\ all:: @@\ -@if [ ! -d shared ]; then mkdir shared; else exit 0; fi @@\ -@if [ ! -f $(XSTR_STRINGS_FILE) ]; then \ @@\ touch $(XSTR_STRINGS_FILE); else exit 0; fi @@\ -@if [ ! -f strings ]; then \ @@\ $(LN) $(XSTR_STRINGS_FILE) strings; else exit 0; fi @@\ @@\ .c.o: @@\ $(RM) $@ shared/$@ @@\ $(CC) $(PIC) $(SHAREDCODEDEF) $(SHLIBDEF) $(CFLAGS) $(STRCONST) -c $*.c \ @@\ -o shared/$*.o @@\ @@\ clean:: @@\ $(RM) strings* @@\ -@if [ -d shared ]; then echo " $(RM) shared/?*.o"; \ @@\ $(RM) shared/?*.o; else exit 0; fi @@\ #endif /* SubdirSharedLibraryObjectRule */ /* * SubdirSharedAndDebuggedLibraryObjectRule - generate make rules to build shared, * debuggable, and "normal" object files. */ #ifndef SubdirSharedAndDebuggedLibraryObjectRule #define SubdirSharedAndDebuggedLibraryObjectRule() @@\ all:: @@\ -@if [ ! -d shared ]; then mkdir shared; else exit 0; fi @@\ -@if [ ! -f $(XSTR_STRINGS_FILE) ]; then \ @@\ touch $(XSTR_STRINGS_FILE); else exit 0; fi @@\ -@if [ -f strings ]; then $(RM) strings; else exit 0; fi @@\ $(LN) $(XSTR_STRINGS_FILE) strings @@\ -@if [ ! -d debugger ]; then mkdir debugger; else exit 0; fi @@\ @@\ .c.o: @@\ $(RM) $@ shared/$@ debugger/$@ @@\ $(CC) -g -c $(SHLIBDEF) $(CFLAGS) $(STRCONST) $*.c @@\ $(CP) $*.o debugger/$*.o @@\ $(CC) -c $(SHLIBDEF) $(CFLAGS) $(STRCONST) $*.c @@\ @@\ clean:: @@\ $(RM) strings* @@\ -@if [ -d shared ]; then echo " $(RM) shared/?*.o"; \ @@\ $(RM) shared/?*.o; else exit 0; fi @@\ -@if [ -d debugger ]; then echo " $(RM) debugger/?*.o"; \ @@\ $(RM) debugger/?*.o; else exit 0; fi @@\ #endif /* SubdirSharedAndDebuggedLibraryObjectRule */ /* * SubdirSpecialSharedAndDebuggedObjectRule - generate rules to compile a file * with special flags and to make shared and debuggable versions. * This rule does not use xstr so it may be used for data modules. */ #ifndef SubdirSpecialSharedAndDebuggedObjectRule #define SubdirSpecialSharedAndDebuggedObjectRule(objs,depends,options) @@\ all:: @@\ -@if [ ! -d shared ]; then mkdir shared; else exit 0; fi @@\ -@if [ ! -d debugger ]; then mkdir debugger; else exit 0; fi @@\ @@\ objs: depends @@\ $(RM) $@ shared/$@ debugger/$@ @@\ $(CC) $(PIC) -c $(SHAREDCODEDEF) $(SHLIBDEF) $(CFLAGS) options $*.c @@\ $(CP) $*.o shared/$*.o @@\ $(CC) -g -c $(SHLIBDEF) $(CFLAGS) options $*.c @@\ $(CP) $*.o debugger/$*.o @@\ $(CC) -c $(SHLIBDEF) $(CFLAGS) options $*.c #endif /* SubdirSpecialDebuggedAndProfiledObjectRule */ /* * SubdirSpecialSharedObjectRule - generate rules to compile a file * with special flags and to make shared versions. * This rule does not use xstr so it may be used for data modules. */ #ifndef SubdirSpecialSharedObjectRule #define SubdirSpecialSharedObjectRule(objs,depends,options) @@\ all:: @@\ -@if [ ! -d shared ]; then mkdir shared; else exit 0; fi @@\ @@\ objs: depends @@\ $(RM) $@ shared/$@ @@\ $(CC) $(PIC) -c $(SHAREDCODEDEF) $(SHLIBDEF) $(CFLAGS) options $*.c @@\ $(CP) $*.o shared/$*.o @@\ $(CC) -c $(SHLIBDEF) $(CFLAGS) options $*.c #endif /* SubdirSpecialSharedObjectRule */ /* * AssemblerObjectRule - generate an object rule for assembler sources */ #ifndef AssemblerObjectRule #define AssemblerObjectRule(objs,depends) @@\ @@\ objs: depends @@\ $(AS) $(AFLAGS) $*.s -o $*.o #endif /* AssemblerObjectRule */ /* * InstallSharedLibraryDataNoBuild - rules to install the shared library data * Check if ranlib is needed */ #ifdef __linux #define InstallSharedLibraryDataNoBuild(libname,rev,dest) #else /* __linux */ #if DoRanlibCmd #ifndef InstallSharedLibraryDataNoBuild #define InstallSharedLibraryDataNoBuild(libname,rev,dest) @@\ install:: @@\ -$(INSTALL) -c $(INSTSHAREDLIBFLAGS) lib/**/libname.sa.rev $(DESTDIR)dest @@\ -$(RANLIB) $(RANLIBINSTFLAGS) $(DESTDIR)dest/lib/**/libname.sa.rev #endif /* InstallSharedLibraryDataNoBuild */ #else /* DoRanlibCmd */ #ifndef InstallSharedLibraryDataNoBuild #define InstallSharedLibraryDataNoBuild(libname,rev,dest) @@\ install:: @@\ -$(INSTALL) -c $(INSTSHAREDLIBFLAGS) lib/**/libname.sa.rev $(DESTDIR)dest #endif /* InstallSharedLibraryDataNoBuild */ #endif /* DoRanlibCmd */ #endif /* __linux */ /* * InstallSharedLibraryNoBuild - generate rules to install the shared library. */ #ifndef InstallSharedLibraryNoBuild #define InstallSharedLibraryNoBuild(libname,rev,dest) @@\ install:: @@\ $(RM) $(DESTDIR)dest/lib/**/libname.so @@\ $(INSTALL) -c $(INSTSHAREDLIBFLAGS) lib/**/libname.so.rev $(DESTDIR)dest @@\ (cd $(DESTDIR)dest && $(LN) lib/**/libname.so.rev lib/**/libname.so) @@\ (PATH=$$PATH:/sbin:/usr/sbin && ldconfig -v -N -l $(DESTDIR)dest/lib/**/libname.so.rev) #endif /* InstallSharedLibraryNoBuild */ /* * SubdirLintLibraryTarget - rules to build a lint library when have subdirs; */ #ifndef SubdirLintLibraryTarget #define SubdirLintLibraryTarget(libname,destdir,srcs) @@\ lintlib:: @@\ -@if [ ! -d destdir ]; then mkdir destdir; else exit 0; fi @@\ $(RM) ?*.ln; @@\ @case '${MFLAGS}' in *[ik]*) set +e;; esac; \ @@\ for i in srcs ;\ @@\ do \ @@\ echo "linting $$i"; \ @@\ $(LINT) $(LINTFLAGS) -i -c $$i; \ @@\ if [ ! -f ?*.ln ]; then \ @@\ echo "lint failed for $$i"; \ @@\ else \ @@\ $(MV) ?*.ln destdir; \ @@\ fi \ @@\ done #endif /* SubdirLintLibraryTarget */ /* * SubdirLintLibraryBuild - rules to create a lint library with subdirs; * Note that the lint library is always forced to be newer than the library * itself. */ #ifndef SubdirLintLibraryBuild #define SubdirLintLibraryBuild(libname,lintdir) @@\ lintlib:: llib-l/**/libname.ln @@\ @@\ llib-l/**/libname.ln: @@\ $(RM) $@ @@\ $(LINT) $(LINTLIBFLAG)/**/libname $(LINTFLAGS) lintdir/?*.ln @@\ @@\ clean:: @@\ $(RM) llib-l/**/libname.ln @@\ $(RM) lint/?*.ln @@\ @@\ install.ln:: lintlib #endif /* LintLibraryBuild */ /* * PopulateSCCSTree - rule to populate build tree from an SCCS archive */ #ifndef PopulateSCCSTree #define PopulateSCCSTree(type,srcs) @@\ populate:: @@\ @case '${MFLAGS}' in *[i]*) set +e;; esac; @@\ -@if [ -type SCCS ]; then \ @@\ for i in srcs ; do sccs get $$i ; done ; \ @@\ elif [ -type SCCS- ]; then \ @@\ $(MV) SCCS- SCCS ; \ @@\ for i in srcs ; do sccs get $$i ; done ; \ @@\ $(MV) SCCS SCCS- ; \ @@\ else \ @@\ echo "SCCS or SCCS- do not exist" ; \ @@\ fi #endif /* PopulateSCCSTree */ /* * PopulateSubdirs - generate rules to recursively populate a source tree. */ #ifndef PopulateSubdirs #define PopulateSubdirs(dirs) @@\ NamedTargetSubdirs(populate,dirs,"populating",/**/,populate) #endif /* PopulateSubdirs */ /* * LinkToFile - rule to make a link to one file */ #ifndef LinkToFile #define LinkToFile(step,filename,linkname,dir) @@\ step:: filename @@\ @case '${MFLAGS}' in *[i]*) set +e;; esac; @@\ -@if [ ! -f dir/linkname ]; then \ @@\ echo "linking dir/linkname to filename..." \ @@\ echo " cd" dir; cd dir ; $(RM) linkname ; \ @@\ (set -x; $(LN) filename linkname); \ @@\ else \ @@\ echo "dir/linkname exists, no link made." ; \ @@\ fi #endif /* LinkToFile */ /* * StartNamedTarget - rule to enter a directory and start a target */ #ifndef StartNamedTarget #define StartNamedTarget(step,dir,flags) @@\ step:: @@\ (cd dir ; $(MAKE) $(MFLAGS) flags step ); #endif /* StartNamedTarget */ /* * InstallSupportList - rule to install a list of support files */ #ifndef InstallSupportList #define InstallSupportList(srcs,dest) @@\ install:: @@\ @case '${MFLAGS}' in *[i]*) set +e;; esac; @@\ for i in srcs ;\ @@\ do \ @@\ echo "installing $$i"; \ @@\ $(RM) $(DESTDIR)dest/$$i $(DESTDIR)dest/.$$i; \ @@\ $(INSTALL) -c $(INSTDATFLAGS) $$i $(DESTDIR)dest ; \ @@\ ( cd $(DESTDIR)dest; $(MV) $$i .$$i; $(LN) .$$i $$i ); \ @@\ done #endif /* InstallSupportList */ /* * InstallNonExecList - rule to install a list of help files */ #ifndef InstallNonExecList #define InstallNonExecList(srcs,dest) @@\ install:: @@\ @case '${MFLAGS}' in *[i]*) set +e;; esac; @@\ for i in srcs ;\ @@\ do \ @@\ echo "installing $$i"; \ @@\ $(RM) $(DESTDIR)dest/$$i ; \ @@\ $(INSTALL) -c $(INSTDATFLAGS) $$i $(DESTDIR)dest ; \ @@\ done #endif /* InstallNonExecList */ /* * InstallExampleSrcs - rule to install example sources. */ #ifndef InstallExampleSrcs #define InstallExampleSrcs(files,makefile,dest) @@\ install.srcs:: @@\ @case '${MFLAGS}' in *[i]*) set +e;; esac; @@\ for i in files ;\ @@\ do \ @@\ echo "installing $$i"; \ @@\ $(RM) $(DESTDIR)dest/$$i ; \ @@\ $(INSTALL) -c $(INSTDATFLAGS) $$i $(DESTDIR)dest ; \ @@\ done @@\ $(RM) $(DESTDIR)dest/Makefile ; @@\ $(INSTALL) -c $(INSTDATFLAGS) makefile $(DESTDIR)dest/Makefile #endif /* InstallExampleSrcs */ /* * InstallExampleSrcsNoMakefile - rule to install example sources that * do not have Makefiles. */ #ifndef InstallExampleSrcsNoMakefile #define InstallExampleSrcsNoMakefile(files,dest) @@\ install.srcs:: @@\ @case '${MFLAGS}' in *[i]*) set +e;; esac; @@\ for i in files ;\ @@\ do \ @@\ echo "installing $$i"; \ @@\ $(RM) $(DESTDIR)dest/$$i ; \ @@\ $(INSTALL) -c $(INSTDATFLAGS) $$i $(DESTDIR)dest ; \ @@\ done #endif /* InstallExampleSrcsNoMakefile */ /* * InstallSrcsSubdirs - generate rules to recursively install sources. */ #ifndef InstallSrcsSubdirs #define InstallSrcsSubdirs(dirs) @@\ NamedTargetSubdirs(install.srcs,dirs,"installing srcs",/**/,install.srcs) #endif /* InstallSrcsSubdirs */ xview-3.2p1.4/config/XView.rules.xstr100644 1750 1750 44753 6331115756 15050 0ustar mbmb/**/########################################################################### /**/# @(#)XView.rules 1.8 12 May 1993 SMI /**/# XView.rules for XView release 3.0. Imake rules needed by distribution. /* *********************************************************************** * * Imake rules for XView * *** DO NOT CHANGE ANYTHING BELOW THIS LINE! *** * *********************************************************************** */ /* * SubdirNormalLibTarget - create an "all::" target for a library; */ #ifndef SubdirNormalLibTarget #define SubdirNormalLibTarget(libname, objlist) @@\ AllTarget(lib/**/libname.a) @@\ @@\ lib/**/libname.a:: objlist @@\ $(AR) $(TARGETDIR)$@ objlist #endif /* SubdirNormalLibTarget */ /* * SubdirProfiledLibTarget - create an "all::" target for a profiled library; */ #ifndef SubdirProfiledLibTarget #define SubdirProfiledLibTarget(libname, objlist) @@\ AllTarget(lib/**/libname/**/_p.a) @@\ @@\ lib/**/libname/**/_p.a:: objlist @@\ ( cd profiled; $(AR) ../$(TARGETDIR)$@ objlist ) #endif /* SubdirProfiledLibTarget */ /* * SubdirDebuggedLibTarget - create an "all::" target for a debugged library; */ #ifndef SubdirDebuggedLibTarget #define SubdirDebuggedLibTarget(libname, objlist) @@\ AllTarget(lib/**/libname/**/_d.a) @@\ @@\ lib/**/libname/**/_d.a:: objlist @@\ ( cd debugger; $(AR) ../$(TARGETDIR)$@ objlist ) #endif /* SubdirDebuggedLibTarget */ /* * SubdirCompoundLibTarget - create an "all::" target for a compound library; * --same rule as SubdirNormalLibTarget--compatibility */ #ifndef SubdirCompoundLibTarget #define SubdirCompoundLibTarget(libname, objlist) @@\ AllTarget(lib/**/libname.a) @@\ @@\ lib/**/libname.a:: objlist @@\ $(AR) $(TARGETDIR)$@ objlist #endif /* SubdirCompoundLibTarget */ /* * MakeAnythingSubdirs - go into subdirs to make anything for a given target; */ #ifndef MakeAnythingSubdirs #define MakeAnythingSubdirs(name,dirs) @@\ name:: @@\ @case '${MFLAGS}' in *[ik]*) set +e;; esac; \ @@\ for i in dirs ;\ @@\ do \ @@\ (cd $$i ; echo "making name in $$i"; \ @@\ $(MAKE) PassCDebugFlags $(MFLAGS) name); \ @@\ done #endif /* MakeAnythingSubdirs */ /* * InstallLibraryNoBuild - install a library without first trying to build it; * Check if need to do ranlib */ #if DoRanlibCmd #ifndef InstallLibraryNoBuild #define InstallLibraryNoBuild(libname,dest) @@\ install:: @@\ -$(INSTALL) -c $(INSTLIBFLAGS) lib/**/libname.a dest @@\ -$(RANLIB) $(RANLIBINSTFLAGS) dest/lib/**/libname.a #endif /* InstallLibraryNoBuild */ #else /* DoRanlibCmd */ #ifndef InstallLibraryNoBuild #define InstallLibraryNoBuild(libname,dest) @@\ install:: @@\ -$(INSTALL) -c $(INSTLIBFLAGS) lib/**/libname.a dest #endif /* InstallLibraryNoBuild */ #endif /* DoRanlibCmd */ /* * SubdirNormalSharedLibraryTarget - generate rules to create a shared library; * do not build it since this is for a subdirectory. Move the files to the * shared library directory for all objects in solist. */ #ifndef SubdirNormalSharedLibraryTarget #define SubdirNormalSharedLibraryTarget(libname,rev,solist,dir,sub) @@\ AllTarget(lib/**/libname.so.rev) @@\ @@\ lib/**/libname.so.rev:: solist @@\ -@if [ ! -d dir ]; then mkdir dir; else exit 0; fi @@\ @case '${MFLAGS}' in *[i]*) set +e;; esac; \ @@\ for i in solist; do (set -x; $(CP) sub/$$i dir; $(CP) sub/$$i .); done #endif /* SubdirNormalSharedLibraryTarget */ /* * SubdirNormalSharedLibraryDataTarget - generate rules to create shlib data file; * do not build it since this is for a subdirectory. Copy the files to the * shared library data directory for all objects in salist. Delete the * unneeded data modules from the ./shared directory. */ #ifndef SubdirNormalSharedLibraryDataTarget #define SubdirNormalSharedLibraryDataTarget(libname,rev,salist,dir,sub) @@\ AllTarget(lib/**/libname.sa.rev) @@\ @@\ lib/**/libname.sa.rev:: salist @@\ -@if [ ! -d dir ]; then mkdir dir; else exit 0; fi @@\ @case '${MFLAGS}' in *[i]*) set +e;; esac; \ @@\ for i in salist; do \ @@\ (set -x; $(CP) sub/$$i dir; $(CP) shared/$$i $(SHARED_DIR)); done #endif /* SubdirNormalSharedLibraryDataTarget */ /* * SubdirBuildNormalSharedLibraryTarget - generate rules to create a shared library; * build it into a different name so that the we don't hose people by having * the library gone for long periods. The lib.so part contains the entire * library both text and data modules. The globally initialized data must be * included in both the .so and the .sa parts of the library. */ #ifndef SubdirBuildNormalSharedLibraryTarget #define SubdirBuildNormalSharedLibraryTarget(libname,rev,solist,sodir) @@\ AllTarget(lib/**/libname.so.rev) @@\ @@\ lib/**/libname.so.rev:: solist @@\ $(RM) $@~ sodir/lib/**/libname.so.xs.o @@\ @if [ -f xstrings ]; then \ @@\ $(RM) strings; $(CP) xstrings strings; fi @@\ $(XSTR) -l $(XSTR_ARRAY) @@\ $(CC) $(PIC) $(SHAREDCODEDEF) $(SHLIBDEF) $(CFLAGS) -c xs.c \ @@\ -o sodir/lib/**/libname.so.xs.o @@\ (cd sodir; $(LD) -o ../$@~ $(SHLIBLDFLAGS) ?*.o) @@\ -@if [ -f strings~ ]; then $(RM) strings~; else exit 0; fi @@\ $(RM) $@ xs.c @@\ $(RM) $@ @@\ $(MV) $@~ $@ @@\ @@\ clean:: @@\ $(RM) lib/**/libname.so.rev sodir/?*.o strings* #endif /* SubdirBuildNormalSharedLibraryTarget */ /* * SubdirBuildSortedSharedLibraryTarget - rules to create a sorted shlib; * build it into a different name so that the we don't hose people by having * the library gone for long periods. The lib.so part contains the entire * library both text and data modules. The globally initialized data must be * included in both the .so and the .sa parts of the library. Must have the * sorting script and a list of objects to sort. */ #ifndef SubdirBuildSortedSharedLibraryTarget #define SubdirBuildSortedSharedLibraryTarget(libname,rev,solist,sodir,objsort,objlist) @@\ AllTarget(lib/**/libname.so.rev) @@\ @@\ lib/**/libname.so.rev:: solist @@\ $(RM) $@~ sodir/lib/**/libname.so.xs.o @@\ @if [ -f xstrings ]; then \ @@\ $(RM) strings; $(CP) xstrings strings; fi @@\ $(XSTR) -l $(XSTR_ARRAY) @@\ $(CC) $(PIC) $(SHAREDCODEDEF) $(SHLIBDEF) $(CFLAGS) -c xs.c \ @@\ -o sodir/lib/**/libname.so.xs.o @@\ -@if [ ! -x objsort ];then $(CHMOD) 755 objsort;else exit 0;fi @@\ $(LD) `objsort objlist sodir` -o $@~ $(SHLIBLDFLAGS) @@\ @if [ -f strings~ ]; then $(RM) strings~; else exit 0; fi @@\ $(RM) $@ xs.c @@\ $(RM) $@ @@\ $(MV) $@~ $@ @@\ @@\ clean:: @@\ $(RM) lib/**/libname.so.rev sodir/?*.o strings* xstrings* #endif /* SubdirBuildSortedSharedLibraryTarget */ /* * SubdirBuildNormalSharedLibraryDataTarget - generate rules to create shlib data file; * Do not use xstr or pic on the data file segments. * The lib.sa part defines the interface for globally initialized data. * Check if ranlib is needed. */ #if DoRanlibCmd #ifndef SubdirBuildNormalSharedLibraryDataTarget #define SubdirBuildNormalSharedLibraryDataTarget(libname,rev,sadir) @@\ AllTarget(lib/**/libname.sa.rev) @@\ @@\ lib/**/libname.sa.rev:: @@\ $(RM) $@~ @@\ (cd sadir; $(AR) ../$@~ ?*.o) @@\ $(RM) $@ @@\ $(MV) $@~ $@ @@\ $(RANLIB) $@ @@\ @@\ clean:: @@\ $(RM) lib/**/libname.sa.rev sadir/?*.o #endif /* SubdirBuildNormalSharedLibraryDataTarget */ #else /* DoRanlibCmd */ #ifndef SubdirBuildNormalSharedLibraryDataTarget #define SubdirBuildNormalSharedLibraryDataTarget(libname,rev,sadir) @@\ AllTarget(lib/**/libname.sa.rev) @@\ @@\ lib/**/libname.sa.rev:: @@\ $(RM) $@~ @@\ (cd sadir; $(AR) ../$@~ ?*.o) @@\ $(RM) $@ @@\ $(MV) $@~ $@ @@\ @@\ clean:: @@\ $(RM) lib/**/libname.sa.rev sadir/?*.o #endif /* SubdirBuildNormalSharedLibraryDataTarget */ #endif /* DoRanlibCmd */ /* * SubdirSharedLibraryObjectRule - generate make rules to build * "normal" SunOS style shared object files. XView absolutely requires * the use of xstr to build a shared library; otherwise, the library will * overflow the GLOBAL_OFFSET_TABLE for some architectures. */ #ifndef SubdirSharedLibraryObjectRule #define SubdirSharedLibraryObjectRule() @@\ all:: @@\ -@if [ ! -d shared ]; then mkdir shared; else exit 0; fi @@\ -@if [ ! -f $(XSTR_STRINGS_FILE) ]; then \ @@\ touch $(XSTR_STRINGS_FILE); else exit 0; fi @@\ -@if [ ! -f strings ]; then \ @@\ $(LN) $(XSTR_STRINGS_FILE) strings; else exit 0; fi @@\ @@\ .c.o: @@\ $(RM) $@ shared/$@ @@\ $(CC) -E $(SHAREDCODEDEF) $(SHLIBDEF) $(CFLAGS) $*.c \ @@\ | $(XSTR) -l $(XSTR_ARRAY) -c - @@\ $(CC) $(PIC) $(SHAREDCODEDEF) $(SHLIBDEF) $(CFLAGS) -c x.c \ @@\ -o shared/$*.o @@\ $(RM) x.c @@\ $(CC) $(PIC) $(SHAREDCODEDEF) $(SHLIBDEF) $(CFLAGS) -c $*.c \ @@\ -o shared/$*.o @@\ $(CC) -c $(SHLIBDEF) $(CFLAGS) $*.c @@\ @@\ clean:: @@\ $(RM) strings* @@\ -@if [ -d shared ]; then echo " $(RM) shared/?*.o"; \ @@\ $(RM) shared/?*.o; else exit 0; fi @@\ #endif /* SubdirSharedLibraryObjectRule */ /* * SubdirSharedAndDebuggedLibraryObjectRule - generate make rules to build shared, * debuggable, and "normal" object files. */ #ifndef SubdirSharedAndDebuggedLibraryObjectRule #define SubdirSharedAndDebuggedLibraryObjectRule() @@\ all:: @@\ -@if [ ! -d shared ]; then mkdir shared; else exit 0; fi @@\ -@if [ ! -f $(XSTR_STRINGS_FILE) ]; then \ @@\ touch $(XSTR_STRINGS_FILE); else exit 0; fi @@\ -@if [ -f strings ]; then $(RM) strings; else exit 0; fi @@\ $(LN) $(XSTR_STRINGS_FILE) strings @@\ -@if [ ! -d debugger ]; then mkdir debugger; else exit 0; fi @@\ @@\ .c.o: @@\ $(RM) $@ shared/$@ debugger/$@ @@\ $(CC) -E $(SHAREDCODEDEF) $(SHLIBDEF) $(CFLAGS) $*.c \ @@\ | $(XSTR) -l $(XSTR_ARRAY) -c - @@\ $(CC) $(PIC) $(SHAREDCODEDEF) $(SHLIBDEF) $(CFLAGS) -c x.c \ @@\ -o shared/$*.o @@\ $(RM) x.c @@\ $(CC) -g -c $(SHLIBDEF) $(CFLAGS) $*.c @@\ $(CP) $*.o debugger/$*.o @@\ $(CC) -c $(SHLIBDEF) $(CFLAGS) $*.c @@\ @@\ clean:: @@\ $(RM) strings* @@\ -@if [ -d shared ]; then echo " $(RM) shared/?*.o"; \ @@\ $(RM) shared/?*.o; else exit 0; fi @@\ -@if [ -d debugger ]; then echo " $(RM) debugger/?*.o"; \ @@\ $(RM) debugger/?*.o; else exit 0; fi @@\ #endif /* SubdirSharedAndDebuggedLibraryObjectRule */ /* * SubdirSpecialSharedAndDebuggedObjectRule - generate rules to compile a file * with special flags and to make shared and debuggable versions. * This rule does not use xstr so it may be used for data modules. */ #ifndef SubdirSpecialSharedAndDebuggedObjectRule #define SubdirSpecialSharedAndDebuggedObjectRule(objs,depends,options) @@\ all:: @@\ -@if [ ! -d shared ]; then mkdir shared; else exit 0; fi @@\ -@if [ ! -d debugger ]; then mkdir debugger; else exit 0; fi @@\ @@\ objs: depends @@\ $(RM) $@ shared/$@ debugger/$@ @@\ $(CC) $(PIC) -c $(SHAREDCODEDEF) $(SHLIBDEF) $(CFLAGS) options $*.c @@\ $(CP) $*.o shared/$*.o @@\ $(CC) -g -c $(SHLIBDEF) $(CFLAGS) options $*.c @@\ $(CP) $*.o debugger/$*.o @@\ $(CC) -c $(SHLIBDEF) $(CFLAGS) options $*.c #endif /* SubdirSpecialDebuggedAndProfiledObjectRule */ /* * SubdirSpecialSharedObjectRule - generate rules to compile a file * with special flags and to make shared versions. * This rule does not use xstr so it may be used for data modules. */ #ifndef SubdirSpecialSharedObjectRule #define SubdirSpecialSharedObjectRule(objs,depends,options) @@\ all:: @@\ -@if [ ! -d shared ]; then mkdir shared; else exit 0; fi @@\ @@\ objs: depends @@\ $(RM) $@ shared/$@ @@\ $(CC) $(PIC) -c $(SHAREDCODEDEF) $(SHLIBDEF) $(CFLAGS) options $*.c @@\ $(CP) $*.o shared/$*.o @@\ $(CC) -c $(SHLIBDEF) $(CFLAGS) options $*.c #endif /* SubdirSpecialSharedObjectRule */ /* * AssemblerObjectRule - generate an object rule for assembler sources */ #ifndef AssemblerObjectRule #define AssemblerObjectRule(objs,depends) @@\ @@\ objs: depends @@\ $(AS) $(AFLAGS) $*.s -o $*.o #endif /* AssemblerObjectRule */ /* * InstallSharedLibraryDataNoBuild - rules to install the shared library data * Check if ranlib is needed */ #if DoRanlibCmd #ifndef InstallSharedLibraryDataNoBuild #define InstallSharedLibraryDataNoBuild(libname,rev,dest) @@\ install:: @@\ -$(INSTALL) -c $(INSTSHAREDLIBFLAGS) lib/**/libname.sa.rev dest @@\ -$(RANLIB) $(RANLIBINSTFLAGS) dest/lib/**/libname.sa.rev #endif /* InstallSharedLibraryDataNoBuild */ #else /* DoRanlibCmd */ #ifndef InstallSharedLibraryDataNoBuild #define InstallSharedLibraryDataNoBuild(libname,rev,dest) @@\ install:: @@\ -$(INSTALL) -c $(INSTSHAREDLIBFLAGS) lib/**/libname.sa.rev dest #endif /* InstallSharedLibraryDataNoBuild */ #endif /* DoRanlibCmd */ /* * InstallSharedLibraryNoBuild - generate rules to install the shared library. */ #ifndef InstallSharedLibraryNoBuild #define InstallSharedLibraryNoBuild(libname,rev,dest) @@\ install:: @@\ $(RM) /dest/lib/**/libname.so @@\ $(INSTALL) -c $(INSTSHAREDLIBFLAGS) lib/**/libname.so.rev dest @@\ (cd dest; $(LN) lib/**/libname.so.rev lib/**/libname.so) #endif /* InstallSharedLibraryNoBuild */ /* * SubdirLintLibraryTarget - rules to build a lint library when have subdirs; */ #ifndef SubdirLintLibraryTarget #define SubdirLintLibraryTarget(libname,destdir,srcs) @@\ lintlib:: @@\ -@if [ ! -d destdir ]; then mkdir destdir; else exit 0; fi @@\ $(RM) ?*.ln; @@\ @case '${MFLAGS}' in *[ik]*) set +e;; esac; \ @@\ for i in srcs ;\ @@\ do \ @@\ echo "linting $$i"; \ @@\ $(LINT) $(LINTFLAGS) -i -c $$i; \ @@\ if [ ! -f ?*.ln ]; then \ @@\ echo "lint failed for $$i"; \ @@\ else \ @@\ $(MV) ?*.ln destdir; \ @@\ fi \ @@\ done #endif /* SubdirLintLibraryTarget */ /* * SubdirLintLibraryBuild - rules to create a lint library with subdirs; * Note that the lint library is always forced to be newer than the library * itself. */ #ifndef SubdirLintLibraryBuild #define SubdirLintLibraryBuild(libname,lintdir) @@\ lintlib:: llib-l/**/libname.ln @@\ @@\ llib-l/**/libname.ln: @@\ $(RM) $@ @@\ $(LINT) $(LINTLIBFLAG)/**/libname $(LINTFLAGS) lintdir/?*.ln @@\ @@\ clean:: @@\ $(RM) llib-l/**/libname.ln @@\ $(RM) lint/?*.ln @@\ @@\ install.ln:: lintlib #endif /* LintLibraryBuild */ /* * PopulateSCCSTree - rule to populate build tree from an SCCS archive */ #ifndef PopulateSCCSTree #define PopulateSCCSTree(type,srcs) @@\ populate:: @@\ @case '${MFLAGS}' in *[i]*) set +e;; esac; @@\ -@if [ -type SCCS ]; then \ @@\ for i in srcs ; do sccs get $$i ; done ; \ @@\ elif [ -type SCCS- ]; then \ @@\ $(MV) SCCS- SCCS ; \ @@\ for i in srcs ; do sccs get $$i ; done ; \ @@\ $(MV) SCCS SCCS- ; \ @@\ else \ @@\ echo "SCCS or SCCS- do not exist" ; \ @@\ fi #endif /* PopulateSCCSTree */ /* * PopulateSubdirs - generate rules to recursively populate a source tree. */ #ifndef PopulateSubdirs #define PopulateSubdirs(dirs) @@\ NamedTargetSubdirs(populate,dirs,"populating", /**/,populate) #endif /* PopulateSubdirs */ /* * LinkToFile - rule to make a link to one file */ #ifndef LinkToFile #define LinkToFile(step,filename,linkname,dir) @@\ step:: filename @@\ @case '${MFLAGS}' in *[i]*) set +e;; esac; @@\ -@if [ ! -f dir/linkname ]; then \ @@\ echo "linking dir/linkname to filename..." \ @@\ echo " cd" dir; cd dir ; $(RM) linkname ; \ @@\ (set -x; $(LN) filename linkname); \ @@\ else \ @@\ echo "dir/linkname exists, no link made." ; \ @@\ fi #endif /* LinkToFile */ /* * StartNamedTarget - rule to enter a directory and start a target */ #ifndef StartNamedTarget #define StartNamedTarget(step,dir,flags) @@\ step:: @@\ (cd dir ; $(MAKE) $(MFLAGS) flags step ); #endif /* StartNamedTarget */ /* * InstallSupportList - rule to install a list of support files */ #ifndef InstallSupportList #define InstallSupportList(srcs,dest) @@\ install:: @@\ @case '${MFLAGS}' in *[i]*) set +e;; esac; @@\ for i in srcs ;\ @@\ do \ @@\ echo "installing $$i"; \ @@\ $(RM) dest/$$i dest/.$$i; \ @@\ $(INSTALL) -c $(INSTDATFLAGS) $$i dest ; \ @@\ ( cd dest; $(MV) $$i .$$i; $(LN) .$$i $$i ); \ @@\ done #endif /* InstallSupportList */ /* * InstallNonExecList - rule to install a list of help files */ #ifndef InstallNonExecList #define InstallNonExecList(srcs,dest) @@\ install:: @@\ @case '${MFLAGS}' in *[i]*) set +e;; esac; @@\ for i in srcs ;\ @@\ do \ @@\ echo "installing $$i"; \ @@\ $(RM) dest/$$i ; \ @@\ $(INSTALL) -c $(INSTDATFLAGS) $$i dest ; \ @@\ done #endif /* InstallNonExecList */ /* * InstallExampleSrcs - rule to install example sources. */ #ifndef InstallExampleSrcs #define InstallExampleSrcs(files,makefile,dest) @@\ install.srcs:: @@\ @case '${MFLAGS}' in *[i]*) set +e;; esac; @@\ for i in files ;\ @@\ do \ @@\ echo "installing $$i"; \ @@\ $(RM) dest/$$i ; \ @@\ $(INSTALL) -c $(INSTDATFLAGS) $$i dest ; \ @@\ done @@\ $(RM) dest/Makefile ; @@\ $(INSTALL) -c $(INSTDATFLAGS) makefile dest/Makefile #endif /* InstallExampleSrcs */ /* * InstallExampleSrcsNoMakefile - rule to install example sources that * do not have Makefiles. */ #ifndef InstallExampleSrcsNoMakefile #define InstallExampleSrcsNoMakefile(files,dest) @@\ install.srcs:: @@\ @case '${MFLAGS}' in *[i]*) set +e;; esac; @@\ for i in files ;\ @@\ do \ @@\ echo "installing $$i"; \ @@\ $(RM) dest/$$i ; \ @@\ $(INSTALL) -c $(INSTDATFLAGS) $$i dest ; \ @@\ done #endif /* InstallExampleSrcsNoMakefile */ /* * InstallSrcsSubdirs - generate rules to recursively install sources. */ #ifndef InstallSrcsSubdirs #define InstallSrcsSubdirs(dirs) @@\ NamedTargetSubdirs(install.srcs,dirs,"installing srcs", /**/,install.srcs) #endif /* InstallSrcsSubdirs */ xview-3.2p1.4/contrib/ 40755 1750 1750 0 6354605713 11776 5ustar mbmbxview-3.2p1.4/contrib/examples/ 40755 1750 1750 0 6354605713 13614 5ustar mbmbxview-3.2p1.4/contrib/examples/canvas/ 40755 1750 1750 0 6354605713 15067 5ustar mbmbxview-3.2p1.4/contrib/examples/canvas/Imakefile100644 1750 1750 2002 5413747563 16774 0ustar mbmb#include /**/########################################################################## /**/# @(#)Imakefile 1.7 90/08/02 SMI /**/# Imakefile for examples/canvas #define InstallSrcs YES LOCATION = examples/canvas DEFINES = -DSTANDALONE $(XVCLIENTSYSDEFINES) SYS_LIBRARIES = INCLUDES = -I. -I$(HEADER_DEST) -I$(TOP) DEPLIBS = XViewClientDepLibs LOCAL_LIBRARIES = XViewClientLibs MAKEFILE_SIMPLE = Makefile.customer SRCS = canvas_event.c canvas_input.c line.c scroll_view.c split_views.c INSTALL_SRCS = $(SRCS) ALLFILES = $(MAKEFILE_SIMPLE) $(SRCS) PROGRAMS=canvas_event canvas_input line scroll_view split_views AllTarget($(PROGRAMS)) SingleProgramTarget(canvas_event,canvas_event.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(canvas_input,canvas_input.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(line,line.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(scroll_view,scroll_view.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(split_views,split_views.o,$(LOCAL_LIBRARIES), /**/) #include xview-3.2p1.4/contrib/examples/canvas/Makefile.customer100644 1750 1750 1465 5413747563 20477 0ustar mbmb# # @(#)Makefile.customer 1.5 90/06/21 # # Makefile for the canvas example programs for XView programmers # OSTYPE = SUNOS5 INCLUDE = -I${OPENWINHOME}/include # # If you want to compile for debugging, change "-O" to "-g" # CFLAGS_SUNOS41 = ${INCLUDE} -O CFLAGS_SUNOS5 = ${INCLUDE} -DSVR4 -O CFLAGS = $(CFLAGS_$(OSTYPE)) # if you want special to pass special loader options to ld, set # LDFLAGS= ... # XVIEW_LIBS = -L${OPENWINHOME}/lib \ -lxview -lolgx -lX11 CFILES = canvas_event.c \ canvas_input.c \ line.c \ scroll_view.c \ split_views.c OBJS = canvas_event \ canvas_input \ line \ scroll_view \ split_views all: ${OBJS} ${OBJS}: $$@.c $$@.o ${CC} ${CFLAGS} ${LDFLAGS} -o $@ $@.o ${XVIEW_LIBS} clean: rm -f core ${OBJS} *.o xview-3.2p1.4/contrib/examples/canvas/canvas_event.c100644 1750 1750 11146 5413747563 20034 0ustar mbmb/* * canvas_event.c * Demonstrates how to get keyboard and mouse events in an canvas * window. Looks for keyboards, pointer movement and button * events and displays the info in the canvas. */ #include #include #include #include void event_proc(), repaint_proc(); char kbd_msg[128], ptr_msg[128], but_msg[128]; /* * main() * Create a canvas specifying a repaint procedure. * Get the paint window for the canvas and set the input * mask and the event procedure. */ main(argc, argv) int argc; char *argv[]; { Frame frame; Canvas canvas; /* Initialize XView */ xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); /* Create windows -- base frame and canvas. */ frame = (Frame)xv_create(NULL, FRAME, NULL); canvas = (Canvas)xv_create(frame, CANVAS, XV_WIDTH, 300, XV_HEIGHT, 110, CANVAS_X_PAINT_WINDOW, TRUE, CANVAS_REPAINT_PROC, repaint_proc, NULL); window_fit(frame); /* Set input mask */ xv_set(canvas_paint_window(canvas), WIN_EVENT_PROC, event_proc, WIN_CONSUME_EVENTS, KBD_DONE, KBD_USE, LOC_DRAG, LOC_MOVE, LOC_WINENTER, LOC_WINEXIT, WIN_ASCII_EVENTS, WIN_MOUSE_BUTTONS, NULL, NULL); /* Initial messages */ strcpy(kbd_msg, "Keyboard: key press events"); strcpy(ptr_msg, "Pointer: pointer movement events"); strcpy(but_msg, "Button: button press events"); /* Start event loop */ xv_main_loop(frame); } /* * event_proc() * Called when an event is received in the canvas window. * Updates the keyboard, pointer and button message strings * and then calls repaint_proc() to paint them to the window. */ void event_proc(window, event) Xv_Window window; Event *event; { if (event_is_ascii(event)) sprintf(kbd_msg, "Keyboard: key '%c' %d pressed at %d,%d", event_action(event), event_action(event), event_x(event), event_y(event)); else switch (event_action(event)) { case KBD_USE: sprintf(kbd_msg, "Keyboard: got keyboard focus"); break; case KBD_DONE: sprintf(kbd_msg, "Keyboard: lost keyboard focus"); break; case LOC_MOVE: sprintf(ptr_msg, "Pointer: moved to %d,%d", event_x(event), event_y(event)); break; case LOC_DRAG: sprintf(ptr_msg, "Pointer: dragged to %d,%d", event_x(event), event_y(event)); break; case LOC_WINENTER: sprintf(ptr_msg, "Pointer: entered window at %d,%d", event_x(event), event_y(event)); break; case LOC_WINEXIT: sprintf(ptr_msg, "Pointer: exited window at %d,%d", event_x(event), event_y(event)); break; case ACTION_SELECT: case MS_LEFT: sprintf(but_msg, "Button: Select (Left) at %d,%d", event_x(event), event_y(event)); break; case ACTION_ADJUST: case MS_MIDDLE: sprintf(but_msg, "Button: Adjust (Middle) at %d,%d", event_x(event), event_y(event)); break; case ACTION_MENU: case MS_RIGHT: sprintf(but_msg, "Button: Menu (Right) at %d,%d", event_x(event), event_y(event)); break; default: return; } /* call repaint proc directly to update messages */ repaint_proc((Canvas)NULL, window, (Display *)xv_get(window, XV_DISPLAY), xv_get(window, XV_XID), (Xv_xrectlist *) NULL); } /* * repaint_proc() * Called to repaint the canvas in response to damage events * and the initial painting of the canvas window. * Displays the keyboard, pointer and button message strings * after erasing the previous messages. */ void repaint_proc(canvas, paint_window, dpy, xwin, xrects) Canvas canvas; /* Ignored */ Xv_Window paint_window; /* Ignored */ Display *dpy; Window xwin; Xv_xrectlist *xrects; /* Ignored */ { GC gc = DefaultGC(dpy, DefaultScreen(dpy)); XClearWindow(dpy, xwin); XDrawString(dpy, xwin, gc, 25, 25, kbd_msg, strlen(kbd_msg)); XDrawString(dpy, xwin, gc, 25, 50, ptr_msg, strlen(ptr_msg)); XDrawString(dpy, xwin, gc, 25, 75, but_msg, strlen(but_msg)); } xview-3.2p1.4/contrib/examples/canvas/canvas_input.c100644 1750 1750 17036 5413747564 20057 0ustar mbmb/* * canvas_input.c -- * Display a canvas whose views may be split repeatedly. The event * handler is installed for each view, so events are displayed in * each paint window. */ #include #include #include #include Canvas canvas; Frame frame; char msg[128]; void init_split(), my_event_proc(), my_repaint_proc(); main(argc,argv) int argc; char *argv[]; { /* * Initialize, create base frame (with footers) and create canvas. */ xv_init(XV_INIT_ARGS, argc, argv, NULL); frame = (Frame)xv_create(NULL,FRAME, FRAME_LABEL, "Split View Windows.", FRAME_SHOW_FOOTER, TRUE, NULL); canvas = (Canvas)xv_create(frame,CANVAS, CANVAS_X_PAINT_WINDOW, TRUE, OPENWIN_SPLIT, OPENWIN_SPLIT_INIT_PROC, init_split, NULL, CANVAS_REPAINT_PROC, my_repaint_proc, NULL); (void) xv_create(canvas, SCROLLBAR, SCROLLBAR_SPLITTABLE, TRUE, SCROLLBAR_DIRECTION, SCROLLBAR_VERTICAL, NULL); (void) xv_create(canvas, SCROLLBAR, SCROLLBAR_SPLITTABLE, TRUE, SCROLLBAR_DIRECTION, SCROLLBAR_HORIZONTAL, NULL); /* * Set input mask */ xv_set(canvas_paint_window(canvas), WIN_CONSUME_EVENTS, WIN_NO_EVENTS, WIN_ASCII_EVENTS, KBD_USE, KBD_DONE, LOC_DRAG, LOC_WINENTER, LOC_WINEXIT, WIN_MOUSE_BUTTONS, NULL, WIN_EVENT_PROC, my_event_proc, NULL); xv_main_loop(frame); } /* * when a viewport is split, this routine is called. */ void init_split(splitview, newview, pos) Xv_Window splitview, newview; int pos; { Xv_Window view; int i = 0; /* * Determine view # from the new view and set its scrollbar to 0,0 */ OPENWIN_EACH_VIEW(canvas, view) if (view == splitview) { /* identify the view # of the view the user just split. */ sprintf(msg, "Split view #%d", i+1); xv_set(frame, FRAME_LEFT_FOOTER, msg, NULL); } else if (view == newview) { xv_set(xv_get(canvas, OPENWIN_VERTICAL_SCROLLBAR, view), SCROLLBAR_VIEW_START, 0, NULL); xv_set(xv_get(canvas, OPENWIN_HORIZONTAL_SCROLLBAR, view), SCROLLBAR_VIEW_START, 0, NULL); } i++; OPENWIN_END_EACH sprintf(msg, "Total views: %d", i); xv_set(frame, FRAME_RIGHT_FOOTER, msg, NULL); } /* * Called when an event is received in an arbitrary paint window. */ void my_event_proc(window, event, arg) Xv_Window window; Event *event; Notify_arg arg; { register char *p = msg; *p = 0; /* test to see if a function key has been hit */ if (event_is_key_left(event)) sprintf(p, "(L%d) ", event_id(event) - KEY_LEFTFIRST + 1); else if (event_is_key_top(event)) sprintf(p, "(T%d) ", event_id(event) - KEY_TOPFIRST + 1); else if (event_is_key_right(event)) sprintf(p, "(R%d) ", event_id(event) - KEY_RIGHTFIRST + 1); else if (event_id(event) == KEY_BOTTOMLEFT) strcpy(p, "bottom left "); else if (event_id(event) == KEY_BOTTOMRIGHT) strcpy(p, "bottom right "); p += strlen(p); if (event_is_ascii(event)) { /* * note that shift modifier is reflected in the event code by * virtue of the char printed is upper/lower case. */ sprintf(p, "Keyboard: key '%c' (%d) %s at %d,%d", event_action(event), event_action(event), event_is_down(event)? "pressed" : "released", event_x(event), event_y(event)); } else switch (event_action(event)) { case ACTION_CLOSE : xv_set(frame, FRAME_CLOSED, TRUE, NULL); break; case ACTION_OPEN : strcpy(p, "frame opened up"); break; case ACTION_HELP : strcpy(p, "Help (action ignored)"); break; case ACTION_SELECT : sprintf(p, "Button: Select (Left) %s at %d,%d", event_is_down(event)? "pressed" : "released", event_x(event), event_y(event)); break; case ACTION_ADJUST : sprintf(p, "Button: Adjust (Middle) %s at %d,%d", event_is_down(event)? "pressed" : "released", event_x(event), event_y(event)); break; case ACTION_MENU : sprintf(p, "Button: Menu (Right) %s at %d,%d", event_is_down(event)? "pressed" : "released", event_x(event), event_y(event)); break; case SHIFT_RIGHT : sprintf(p, "Keyboard: right shift %s", event_is_down(event)? "pressed" : "released"); break; case SHIFT_LEFT : sprintf(p, "Keyboard: left shift %s", event_is_down(event)? "pressed" : "released"); break; case SHIFT_LEFTCTRL : case SHIFT_RIGHTCTRL : sprintf(p, "Keyboard: control key %s", event_is_down(event)? "pressed" : "released"); break; case SHIFT_META : sprintf(p, "Keyboard: meta key %s", event_is_down(event)? "pressed" : "released"); break; case SHIFT_ALT : sprintf(p, "Keyboard: alt key %s", event_is_down(event)? "pressed" : "released"); break; case KBD_USE: sprintf(p, "Keyboard: got keyboard focus"); break; case KBD_DONE: sprintf(p, "Keyboard: lost keyboard focus"); break; case LOC_MOVE: sprintf(p, "Pointer: moved to %d,%d", event_x(event),event_y(event)); break; case LOC_DRAG: sprintf(p, "Pointer: dragged to %d,%d", event_x(event), event_y(event)); break; case LOC_WINENTER: win_set_kbd_focus(window, xv_get(window, XV_XID)); sprintf(p, "Pointer: entered window at %d,%d", event_x(event), event_y(event)); break; case LOC_WINEXIT: sprintf(p, "Pointer: exited window at %d,%d", event_x(event), event_y(event)); break; case WIN_RESIZE : case WIN_REPAINT : return; default : /* There are too many ACTION events to trap -- ignore the * ones we're not interested in. */ return; } my_repaint_proc(canvas, window, xv_get(canvas, XV_DISPLAY), xv_get(window, XV_XID), NULL); } /* * my_repaint_proc() * Called to repaint the canvas in response to damage events * and the initial painting of the canvas window. * Displays the keyboard, pointer and button message strings * after erasing the previous messages. */ void my_repaint_proc(canvas, pw, dpy, xwin, xrects) Canvas canvas; Xv_Window pw; Display *dpy; Window xwin; Xv_xrectlist *xrects; { char win_num[16]; Xv_Window w; int i = 0; GC gc = DefaultGC(dpy, DefaultScreen(dpy)); /* * Determine which paint window we're writing in. */ CANVAS_EACH_PAINT_WINDOW(canvas, w) if (w == pw) break; i++; CANVAS_END_EACH sprintf(win_num, "(Window #%d) ", i+1); XClearWindow(dpy, xwin); XDrawString(dpy, xwin, gc, 25, 25, win_num, strlen(win_num)); XDrawString(dpy, xwin, gc, 25, 45, msg, strlen(msg)); } xview-3.2p1.4/contrib/examples/canvas/line.c100644 1750 1750 2342 5413747564 16266 0ustar mbmb/* * line.c -- demonstrates installing a repaint routine in a canvas. * The routine is called whenever the canvas needs to be repainted. * This usually occurs when the canvas is exposed or resized. */ #include #include #include #include main(argc, argv) int argc; char *argv[]; { Frame frame; void canvas_repaint_proc(); xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create(NULL, FRAME, NULL); (void) xv_create(frame, CANVAS, CANVAS_REPAINT_PROC, canvas_repaint_proc, CANVAS_X_PAINT_WINDOW, TRUE, NULL); xv_main_loop(frame); } /* * repaint routine draws a line from the top left to the bottom right * corners of the window */ void canvas_repaint_proc(canvas, paint_window, dpy, xwin, xrects) Canvas canvas; /* unused */ Xv_Window paint_window; /* unused */ Display *dpy; Window xwin; Xv_xrectlist *xrects; /* unused */ { GC gc; int width, height; gc = DefaultGC(dpy, DefaultScreen(dpy)); width = (int)xv_get(paint_window, XV_WIDTH); height = (int)xv_get(paint_window, XV_HEIGHT); XDrawLine(dpy, xwin, gc, 0, 0, width, height); } xview-3.2p1.4/contrib/examples/canvas/scroll_view.c100644 1750 1750 14647 5413747564 17722 0ustar mbmb/* * scroll_view.c * Dan Heller 1989 * * Display a canvas in a frame. The canvas displays a window that has * lines drawn from the opposite corners and draws a black box in the * top left corner. This canvas may be split in many ways (vertically * and/or horizontally), but the repaint routine makes sure that each * paint window displays the same thing. * This program also demonstrates how to handle splitting views * programmatically. Using the left mouse button splits a view * horizontally at the Y location of the mouse. Using the middle * mouse button splits the view vertically at the X location of * the mouse. */ #include #include #include /* Using Xlib graphicsas well */ #include #include #include #include Canvas canvas; void events(), repaint_proc(), init_split(), join_split(); main(argc, argv) int argc; char *argv[]; { Frame frame; Xv_Window view; Rect *rect; xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); /* * Create a frame that's 300 wide by 150 high -- give it a titlebar */ frame = (Frame)xv_create(XV_NULL, FRAME, XV_WIDTH, 300, XV_HEIGHT, 150, FRAME_LABEL, argv[0], NULL); /* * Create a canvas that's 500 by 500. This canvas should not adjust * its size if resized. Install the repaint callback: repaint_proc() */ canvas = (Canvas)xv_create(frame, CANVAS, CANVAS_WIDTH, 500, CANVAS_HEIGHT, 500, CANVAS_AUTO_SHRINK, FALSE, CANVAS_AUTO_EXPAND, FALSE, CANVAS_REPAINT_PROC, repaint_proc, NULL); /* Install the callback for events on the first (and only, so far) * paint window. We'll use the default events provided by the canvas. */ xv_set(canvas_paint_window(canvas), WIN_EVENT_PROC, events, WIN_CONSUME_EVENTS, ACTION_SELECT, ACTION_ADJUST, NULL, NULL); /* * There's only one viewport since multi-views cannot be created * when creating a canvas. Install "init" and "destroy" callbacks * in the canvas object. See the corresponding routines for specifics. */ xv_set(canvas, OPENWIN_SPLIT, OPENWIN_SPLIT_INIT_PROC, init_split, OPENWIN_SPLIT_DESTROY_PROC, join_split, NULL, NULL); /* * Attach scrollbars to the canvas. */ xv_create(canvas, SCROLLBAR, SCROLLBAR_SPLITTABLE, TRUE, SCROLLBAR_DIRECTION, SCROLLBAR_VERTICAL, NULL); xv_create(canvas, SCROLLBAR, SCROLLBAR_SPLITTABLE, TRUE, SCROLLBAR_DIRECTION, SCROLLBAR_HORIZONTAL, NULL); xv_main_loop(frame); exit(0); } /* * The repaint procedure is called whenever repainting is needed in a * paint window. If the canvas has been split into several views and * repainting is necessary, then this repaint procedure is called for * each paint window in the canvas. */ void repaint_proc(canvas, paint_window, repaint_area) Canvas canvas; Xv_Window paint_window; Rectlist repaint_area; { Display *dpy; Window win; Xv_Window pw; Rect *rect; /* Get the size of the entire paint window */ rect = (Rect *)xv_get(paint_window, XV_RECT); /* Use Xview graphics to draw lines from opposite corners. */ xv_vector(paint_window, 0, 0, rect->r_width, rect->r_height, PIX_SET, 1); xv_vector(paint_window, rect->r_width, 0, 0, rect->r_height, PIX_SET, 1); /* Use Xlib calls to draw a black square in the top corner of the pw */ dpy = (Display *)XV_DISPLAY_FROM_WINDOW(paint_window); win = (Window)xv_get(paint_window, XV_XID); XFillRectangle(dpy, win, DefaultGC(dpy, DefaultScreen(dpy)), 10,10, 50,50); } /* * This routine is installed as the callback for events for the paint * window. If more paint windows are created as a result of a view * split, then this routine must be reinstalled in a new view. */ void events(pw, event) Xv_Window pw; Event *event; { int code = event_action(event); Xv_Window view; int i = (int)xv_get(canvas, OPENWIN_NVIEWS); /* Not interested in button up events */ if (win_inputnegevent(event)) return; /* Determine which paint window this event happened in. */ while (pw != xv_get(canvas, CANVAS_NTH_PAINT_WINDOW, --i) && i > 0) ; /* The paint window number is "i" -- get the "i"th view window */ view = xv_get(canvas, OPENWIN_NTH_VIEW, i); /* determine which event was passed and deal with it. */ switch (code) { case ACTION_SELECT : case ACTION_ADJUST : /* * split the view at the appropriate position -- this call * will generate a call to init_split below since a new view * will have been created. */ printf("split at %d,%d\n", event_x(event), event_y(event)); xv_set(canvas, OPENWIN_SPLIT, /* takes a null-terminated attr-value list */ OPENWIN_SPLIT_VIEW, view, OPENWIN_SPLIT_DIRECTION, code == ACTION_ADJUST? OPENWIN_SPLIT_VERTICAL : OPENWIN_SPLIT_HORIZONTAL, OPENWIN_SPLIT_POSITION, code == ACTION_ADJUST? event_x(event) : event_y(event), NULL, NULL); break; default: return; } /* indicate which paint window and view window ID's */ printf("win %x, view: %x\n", pw, view); } /* * notify this routine whenever two views are joined. */ void join_split(view) Xv_Window view; { puts("joined view"); } /* * Notify this routine whenever a view is split. The new view is * created and its position is indicated. This is the first time * the new view can be accessed by the program. Immediately install * the callback for events for the new paint window. */ void init_split(oldview, newview, pos) Xv_Window oldview, newview; int pos; { xv_set(xv_get(newview, CANVAS_VIEW_PAINT_WINDOW), WIN_EVENT_PROC, events, WIN_CONSUME_EVENT, ACTION_SELECT, ACTION_ADJUST, NULL, NULL); } xview-3.2p1.4/contrib/examples/canvas/split_views.c100644 1750 1750 15667 5413747564 17745 0ustar mbmb/* * split_views.c -- run this program and then split the views using the * scrollbars. The new view should be scrolled to 0, 0 (click on the * left and top elevator anchors to reset both scrollbars on the new view). */ #include #include #include #include Canvas canvas; Frame frame; char msg[128]; void init_split(), my_event_proc(), my_repaint_proc(); main(argc,argv) int argc; char *argv[]; { /* * Initialize, create base frame (with footers) and * create canvas. */ xv_init(XV_INIT_ARGS, argc,argv, 0); frame = xv_create(NULL,FRAME, FRAME_LABEL, "Try Splitting views.", FRAME_SHOW_FOOTER, TRUE, NULL); canvas = xv_create(frame,CANVAS, OPENWIN_SPLIT, OPENWIN_SPLIT_INIT_PROC, init_split, NULL, CANVAS_REPAINT_PROC, my_repaint_proc, NULL); xv_create(canvas, SCROLLBAR, SCROLLBAR_SPLITTABLE, TRUE, SCROLLBAR_DIRECTION, SCROLLBAR_VERTICAL, NULL); xv_create(canvas, SCROLLBAR, SCROLLBAR_SPLITTABLE, TRUE, SCROLLBAR_DIRECTION, SCROLLBAR_HORIZONTAL, NULL); /* * Set input mask */ xv_set(canvas_paint_window(canvas), WIN_CONSUME_EVENTS, WIN_NO_EVENTS, WIN_ASCII_EVENTS, KBD_USE, KBD_DONE, LOC_DRAG, LOC_WINENTER, LOC_WINEXIT, WIN_MOUSE_BUTTONS, NULL, WIN_EVENT_PROC, my_event_proc, NULL); xv_main_loop(frame); return 0; } /* * when a viewport is split, this routine is called. */ void init_split(splitview, newview, pos) Xv_Window splitview, newview; int pos; { Xv_Window view, win; int i = 0; /* * Determine which view # is the new view and which is the original view */ OPENWIN_EACH_VIEW(canvas, view) if (view == splitview) { /* identify the view # of the view the user just split. */ sprintf(msg, "Split view #%d", i+1); xv_set(frame, FRAME_LEFT_FOOTER, msg, NULL); } else if (view == newview) { /* * install the same event handling mask and event callback * for the newview's paint window. */ xv_set(win = xv_get(canvas, CANVAS_NTH_PAINT_WINDOW, i), WIN_CONSUME_EVENTS, WIN_NO_EVENTS, WIN_ASCII_EVENTS, KBD_USE, KBD_DONE, LOC_DRAG, LOC_WINENTER, LOC_WINEXIT, WIN_MOUSE_BUTTONS, NULL, WIN_EVENT_PROC, my_event_proc, NULL); } i++; OPENWIN_END_EACH printf("win = %x, CANVAS_VIEW_PAINT_WINDOW = %x\n", win, xv_get(newview, CANVAS_VIEW_PAINT_WINDOW)); sprintf(msg, "Total views: %d", i); xv_set(frame, FRAME_RIGHT_FOOTER, msg, NULL); } /* * Called when an event is received in an arbitrary paint window. */ void my_event_proc(window, event, arg) Xv_Window window; Event *event; Notify_arg arg; { register char *p = msg; *p = 0; /* test to see if a function key has been hit */ if (event_is_key_left(event)) sprintf(p, "(L%d) ", event_id(event) - KEY_LEFTFIRST + 1); else if (event_is_key_top(event)) sprintf(p, "(T%d) ", event_id(event) - KEY_TOPFIRST + 1); else if (event_is_key_right(event)) sprintf(p, "(R%d) ", event_id(event) - KEY_RIGHTFIRST + 1); else if (event_id(event) == KEY_BOTTOMLEFT) strcpy(p, "bottom left "); else if (event_id(event) == KEY_BOTTOMRIGHT) strcpy(p, "bottom left "); p += strlen(p); /* Test to see if event is a special "mnemonic" action */ if (event_action(event) != event_id(event)) { switch (event_action(event)) { case ACTION_CLOSE : strcpy(p, "close (action ignored)"); break; case ACTION_OPEN : strcpy(p, "open (action ignored)"); break; case ACTION_HELP : strcpy(p, "Help (action ignored)"); break; case ACTION_SELECT : /* the action */ case MS_LEFT : /* the actual (literal) event */ sprintf(p, "Button: Select (Left) %s at %d,%d", event_is_down(event)? "pressed" : "released", event_x(event), event_y(event)); break; case ACTION_ADJUST : case MS_MIDDLE : sprintf(p, "Button: Adjust (Middle) %s at %d,%d", event_is_down(event)? "pressed" : "released", event_x(event), event_y(event)); break; case ACTION_MENU : case MS_RIGHT : sprintf(p, "Button: Menu (Right) %s at %d,%d", event_is_down(event)? "pressed" : "released", event_x(event), event_y(event)); break; default : ; /* There are too many ACTION events to trap -- ignore the * ones we're not interested in. */ } } else if (event_is_ascii(event)) /* * note that shift modifier is reflected in the event code by * virtue of the char printed is upper/lower case. */ sprintf(p, "Keyboard: key '%c' (%d) %s at %d,%d", event_action(event), event_action(event), event_is_down(event)? "pressed" : "released", event_x(event), event_y(event)); else switch (event_id(event)) { case SHIFT_RIGHT : sprintf(p, "Keyboard: right shift %s", event_is_down(event)? "pressed" : "released"); break; case SHIFT_LEFT : sprintf(p, "Keyboard: left shift %s", event_is_down(event)? "pressed" : "released"); break; case SHIFT_LEFTCTRL : case SHIFT_RIGHTCTRL : sprintf(p, "Keyboard: control key %s", event_is_down(event)? "pressed" : "released"); break; case SHIFT_META : sprintf(p, "Keyboard: meta key %s", event_is_down(event)? "pressed" : "released"); break; case SHIFT_ALT : sprintf(p, "Keyboard: alt key %s", event_is_down(event)? "pressed" : "released"); break; case KBD_USE: sprintf(p, "Keyboard: got keyboard focus"); break; case KBD_DONE: sprintf(p, "Keyboard: lost keyboard focus"); break; case LOC_MOVE: sprintf(p, "Pointer: moved to %d,%d", event_x(event),event_y(event)); break; case LOC_DRAG: sprintf(p, "Pointer: dragged to %d,%d", event_x(event), event_y(event)); break; case LOC_WINENTER: win_set_kbd_focus(window, xv_get(window, XV_XID)); sprintf(p, "Pointer: entered window at %d,%d", event_x(event), event_y(event)); break; case LOC_WINEXIT: sprintf(p, "Pointer: exited window at %d,%d", event_x(event), event_y(event)); break; case WIN_RESIZE : strcpy(msg, "resize"); break; case WIN_REPAINT : strcpy(msg, "repaint"); break; default: if (msg[0]) printf("unknown event: %d\n", event_id(event)); } my_repaint_proc(canvas, window, NULL); } /* * my_repaint_proc() * Called to repaint the canvas in response to damage events * and the initial painting of the canvas window. * Displays the keyboard, pointer and button message strings * after erasing the previous messages. */ void my_repaint_proc(canvas, pw, repaint_area) Canvas canvas; Xv_Window pw; Rectlist *repaint_area; { static char buf[] = " "; char win_num[16]; Xv_Window w; int i = 0; /* * Determine which # paint window we're writing in. */ CANVAS_EACH_PAINT_WINDOW(canvas, w) if (w == pw) break; i++; CANVAS_END_EACH sprintf(win_num, "(Window #%d) ", i+1); xv_text(pw, 25, 25, PIX_SRC, NULL, win_num); xv_text(pw, 25, 45, PIX_SRC, NULL, buf); xv_text(pw, 25, 45, PIX_SRC, NULL, msg); } xview-3.2p1.4/contrib/examples/color/ 40755 1750 1750 0 6354605713 14732 5ustar mbmbxview-3.2p1.4/contrib/examples/color/Imakefile100644 1750 1750 3043 5413747565 16647 0ustar mbmb#include /**/########################################################################## /**/# @(#)Imakefile 1.7 90/08/02 SMI /**/# Imakefile for examples/color #define InstallSrcs YES LOCATION = examples/color DEFINES = -DSTANDALONE $(XVCLIENTSYSDEFINES) SYS_LIBRARIES = INCLUDES = -I. -I$(HEADER_DEST) -I$(TOP) DEPLIBS = XViewClientDepLibs LOCAL_LIBRARIES = XViewClientLibs MAKEFILE_SIMPLE = Makefile.customer SRCS = animate.c color.c color_animate.c color_logo.c color_objs.c \ color_panel.c example1.c example2.c example3.c example4.c x_draw.c ICONS = cardback.icon INSTALL_SRCS = $(SRCS) $(ICONS) ALLFILES = $(MAKEFILE_SIMPLE) $(SRCS) $(ICONS) PROGRAMS= animate color color_animate color_logo color_objs \ color_panel example1 example2 example3 example4 x_draw AllTarget($(PROGRAMS)) SingleProgramTarget(animate,animate.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(color,color.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(color_animate,color_animate.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(color_logo,color_logo.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(color_objs,color_objs.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(color_panel,color_panel.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(example1,example1.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(example2,example2.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(example3,example3.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(example4,example4.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(x_draw,x_draw.o,$(LOCAL_LIBRARIES), /**/) #include xview-3.2p1.4/contrib/examples/color/Makefile.customer100644 1750 1750 2017 5413747565 20336 0ustar mbmb# # @(#)Makefile.customer 1.12 92/03/25 # # Makefile for the color example programs for XView programmers # OSTYPE = SUNOS5 INCLUDE = -I${OPENWINHOME}/include # # If you want to compile for debugging, change "-O" to "-g" # CFLAGS_SUNOS41 = ${INCLUDE} -O CFLAGS_SUNOS5 = ${INCLUDE} -DSVR4 -O CFLAGS = $(CFLAGS_$(OSTYPE)) # if you want special to pass special loader options to ld, set # LDFLAGS= ... # XVIEW_LIBS = -L${OPENWINHOME}/lib \ -lxview -lolgx -lX11 CFILES = animate.c \ color.c \ color_animate.c \ color_logo.c \ color_objs.c \ color_panel.c \ example1.c \ example2.c \ example3.c \ example4.c \ x_draw.c ICON = cardback.icon OBJS = animate \ color \ color_animate \ color_logo \ color_objs \ color_panel \ example1 \ example2 \ example3 \ example4 \ x_draw all: ${ICON} ${OBJS} ${OBJS}: $$@.c $$@.o ${CC} ${CFLAGS} ${LDFLAGS} -o $@ $@.o ${XVIEW_LIBS} clean: rm -f core ${OBJS} *.o xview-3.2p1.4/contrib/examples/color/animate.c100644 1750 1750 7241 6331115756 16613 0ustar mbmb/* * animate.c -- use glyphs from the "icon" font distributed * with XView to do frame-by-frame animation. */ #include #include #include #include #include #include #include Frame frame; Canvas canvas; Display *dpy; GC gc; Xv_Window paint_window; Notify_value animate(); struct itimerval timer; #define ArraySize(x) (sizeof(x)/sizeof(x[0])) char *horses[] = { "N", "O", "P", "Q", "R" }; char *eyes[] = { "2", "5", "4", "3", "4", "5", "2", "1", "0", "/", "0", "1" }; char *boys[] = { "\007", "\005", "\007", "\010" }; char *men[] = { "\\", "]", "Y", "Z", "[" }; int max_images = ArraySize(horses); char **images = horses; int cnt; main(argc, argv) int argc; char *argv[]; { Panel panel; XGCValues gcvalues; Xv_Font _font; XFontStruct *font; Cms cms; unsigned long *pixel_table; unsigned long cms_size; void start_stop(), adjust_speed(), change_glyph(); extern void exit(); xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create(XV_NULL, FRAME, FRAME_LABEL, argv[0], NULL); panel = (Panel)xv_create(frame, PANEL, PANEL_LAYOUT, PANEL_VERTICAL, NULL); xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Quit", PANEL_NOTIFY_PROC, exit, NULL); xv_create(panel, PANEL_SLIDER, PANEL_LABEL_STRING, "Millisecs Between Frames", PANEL_VALUE, 0, PANEL_MAX_VALUE, 120, PANEL_NOTIFY_PROC, adjust_speed, NULL); xv_create(panel, PANEL_CHOICE, PANEL_LABEL_STRING, "Glyphs", PANEL_LAYOUT, PANEL_HORIZONTAL, PANEL_DISPLAY_LEVEL, PANEL_ALL, PANEL_CHOICE_STRINGS, "Horse", "Man", "Boy", "Eye", NULL, PANEL_NOTIFY_PROC, change_glyph, NULL); window_fit(panel); canvas = (Canvas)xv_create(frame, CANVAS, XV_WIDTH, 64, XV_HEIGHT, 64, CANVAS_X_PAINT_WINDOW, TRUE, CANVAS_RETAINED, FALSE, NULL); paint_window = (Xv_Window)xv_get(canvas_paint_window(canvas), XV_XID); window_fit(frame); dpy = (Display *)xv_get(frame, XV_DISPLAY); _font = (Xv_Font)xv_find(frame, FONT, #ifndef __linux FONT_NAME, "icon", #else FONT_NAME, "lucidasanstypewriter-24", #endif NULL); font = (XFontStruct *)xv_get(_font, FONT_INFO); gcvalues.font = font->fid; gcvalues.graphics_exposures = False; /* paint the animation glyphs in the colors of the canvas */ cms = (Cms)xv_get(canvas, WIN_CMS); cms_size = (unsigned long)xv_get(cms, CMS_SIZE); pixel_table = (unsigned long *)xv_get(cms, CMS_INDEX_TABLE); gcvalues.foreground = pixel_table[cms_size - 1]; gcvalues.background = pixel_table[0]; gc = XCreateGC(dpy, RootWindow(dpy, DefaultScreen(dpy)), GCForeground | GCBackground | GCFont | GCGraphicsExposures, &gcvalues); xv_main_loop(frame); } Notify_value animate() { XDrawImageString(dpy, paint_window, gc, 5, 40, images[cnt], 1); cnt = (cnt + 1) % max_images; return NOTIFY_DONE; } void change_glyph(item, value) Panel_item item; int value; { cnt = 0; if (value == 0) { max_images = ArraySize(horses); images = horses; } else if (value == 1) { max_images = ArraySize(men); images = men; } else if (value == 2) { max_images = ArraySize(boys); images = boys; } else if (value == 3) { max_images = ArraySize(eyes); images = eyes; } XClearWindow(dpy, paint_window); } void adjust_speed(item, value) Panel_item item; int value; { if (value > 0) { timer.it_value.tv_usec = (value + 20) * 1000; timer.it_interval.tv_usec = (value + 20) * 1000; notify_set_itimer_func(frame, animate, ITIMER_REAL, &timer, NULL); } else /* turn it off */ notify_set_itimer_func(frame, NULL, ITIMER_REAL, NULL, NULL); } xview-3.2p1.4/contrib/examples/color/animate2.c100644 1750 1750 7502 5413747566 16707 0ustar mbmb/* * animate.c -- use glyphs from the "icon" font distributed * with XView to do frame-by-frame animation. */ #include #include #include #include #include #include #include Frame frame; Canvas canvas; Display *dpy; GC gc; Xv_Window paint_window; Notify_value animate(); struct itimerval timer; #define ArraySize(x) (sizeof(x)/sizeof(x[0])) char *horses[] = { "N", "O", "P", "Q", "R" }; char *eyes[] = { "2", "5", "4", "3", "4", "5", "2", "1", "0", "/", "0", "1" }; char *boys[] = { "\007", "\005", "\007", "\010" }; char *men[] = { "\\", "]", "Y", "Z", "[" }; int max_images = ArraySize(horses); char **images = horses; int cnt; main(argc, argv) int argc; char *argv[]; { Panel panel; XGCValues gcvalues; Xv_Font _font; XFontStruct *font; Cms cms; unsigned long *pixel_table; unsigned long cms_size; void start_stop(), adjust_speed(), change_glyph(); extern void exit(); Panel_item pc; xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create(XV_NULL, FRAME, FRAME_LABEL, argv[0], FRAME_SHOW_FOOTER, TRUE, NULL); panel = (Panel)xv_create(frame, PANEL, PANEL_LAYOUT, PANEL_VERTICAL, NULL); xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Quit", PANEL_NOTIFY_PROC, exit, NULL); xv_create(panel, PANEL_SLIDER, PANEL_LABEL_STRING, "Millisecs Between Frames", PANEL_VALUE, 0, PANEL_MAX_VALUE, 120, PANEL_NOTIFY_PROC, adjust_speed, NULL); /* * The handle for this PANEL_CHOICE, "pc" allows the canvas to * access its "y" position easily. */ pc = xv_create(panel, PANEL_CHOICE, XV_Y, 100, PANEL_LABEL_STRING, "Glyphs", PANEL_LAYOUT, PANEL_HORIZONTAL, PANEL_DISPLAY_LEVEL, PANEL_ALL, PANEL_CHOICE_STRINGS, "Horse", "Man", "Boy", "Eye", NULL, PANEL_NOTIFY_PROC, change_glyph, NULL); canvas = (Canvas)xv_create(frame, CANVAS, XV_X, 280, XV_Y, xv_get(pc, XV_Y) - 42, XV_WIDTH, 64, XV_HEIGHT, 64, CANVAS_X_PAINT_WINDOW, TRUE, CANVAS_RETAINED, FALSE, NULL); window_fit(panel); paint_window = (Xv_Window)xv_get(canvas_paint_window(canvas), XV_XID); window_fit(frame); dpy = (Display *)xv_get(frame, XV_DISPLAY); _font = (Xv_Font)xv_find(frame, FONT, FONT_NAME, "icon", NULL); font = (XFontStruct *)xv_get(_font, FONT_INFO); gcvalues.font = font->fid; gcvalues.graphics_exposures = False; /* paint the animation glyphs in the colors of the canvas */ cms = (Cms)xv_get(canvas, WIN_CMS); cms_size = (unsigned long)xv_get(cms, CMS_SIZE); pixel_table = (unsigned long *)xv_get(cms, CMS_INDEX_TABLE); gcvalues.foreground = pixel_table[cms_size - 1]; gcvalues.background = pixel_table[0]; gc = XCreateGC(dpy, RootWindow(dpy, DefaultScreen(dpy)), GCForeground | GCBackground | GCFont | GCGraphicsExposures, &gcvalues); xv_main_loop(frame); } Notify_value animate() { XDrawImageString(dpy, paint_window, gc, 5, 40, images[cnt], 1); cnt = (cnt + 1) % max_images; return NOTIFY_DONE; } void change_glyph(item, value) Panel_item item; int value; { cnt = 0; if (value == 0) { max_images = ArraySize(horses); images = horses; } else if (value == 1) { max_images = ArraySize(men); images = men; } else if (value == 2) { max_images = ArraySize(boys); images = boys; } else if (value == 3) { max_images = ArraySize(eyes); images = eyes; } XClearWindow(dpy, paint_window); } void adjust_speed(item, value) Panel_item item; int value; { if (value > 0) { timer.it_value.tv_usec = (value + 20) * 1000; timer.it_interval.tv_usec = (value + 20) * 1000; notify_set_itimer_func(frame, animate, ITIMER_REAL, &timer, NULL); } else /* turn it off */ notify_set_itimer_func(frame, NULL, ITIMER_REAL, NULL, NULL); } xview-3.2p1.4/contrib/examples/color/cardback.icon100644 1750 1750 4340 5413747566 17444 0ustar mbmb/* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16 * Description: Sun logo centered in a bordered 64x64 icon. * Background: White. */ 0x3FFF, 0xFFFF, 0xFFFF, 0xFFF8, 0x7FFF, 0xFFFF, 0xFFFF, 0xFFFC, 0xC000, 0x0000, 0x0000, 0x0006, 0xC000, 0x0000, 0x0000, 0x0006, 0xC000, 0x0000, 0x0000, 0x0006, 0xC000, 0x0000, 0x0000, 0x0006, 0xC000, 0x0000, 0x0000, 0x0006, 0xC000, 0x0000, 0x0000, 0x0006, 0xC000, 0x0000, 0x0000, 0x0006, 0xC000, 0x0000, 0x0000, 0x0006, 0xC000, 0x0000, 0x0000, 0x0006, 0xC000, 0x0000, 0x0000, 0x0006, 0xC000, 0x0000, 0x0000, 0x0006, 0xC000, 0x0000, 0x0000, 0x0006, 0xC000, 0x0003, 0x8000, 0x0006, 0xC000, 0x0007, 0xC000, 0x0006, 0xC000, 0x000F, 0xE000, 0x0006, 0xC000, 0x000E, 0xF000, 0x0006, 0xC000, 0x002E, 0x7800, 0x0006, 0xC000, 0x0077, 0x3C00, 0x0006, 0xC000, 0x007B, 0x9E00, 0x0006, 0xC000, 0x013D, 0xCF00, 0x0006, 0xC000, 0x039E, 0xE780, 0x0006, 0xC000, 0x05CF, 0x7340, 0x0006, 0xC000, 0x0EE7, 0xB8E0, 0x0006, 0xC000, 0x1C73, 0xDDC0, 0x0006, 0xC000, 0x39B9, 0xEB98, 0x0006, 0xC000, 0x73DC, 0xE73C, 0x0006, 0xC000, 0xE78F, 0xEE78, 0x0006, 0xC001, 0xCF77, 0xDCF7, 0x0006, 0xC003, 0x9EFB, 0xB9EF, 0x8006, 0xC007, 0x3DFC, 0x73DF, 0xC006, 0xC007, 0x7B9C, 0x77B9, 0xC006, 0xC007, 0xF73C, 0x7F73, 0xC006, 0xC003, 0xEE7B, 0xBEE7, 0x8006, 0xC001, 0xDCF7, 0xDDCF, 0x0006, 0xC000, 0x39EF, 0xE39E, 0x0006, 0xC000, 0x73CE, 0xF73C, 0x0006, 0xC000, 0x27AE, 0x7A78, 0x0006, 0xC000, 0x0F77, 0x3CF0, 0x0006, 0xC000, 0x0E3B, 0x9EE0, 0x0006, 0xC000, 0x051D, 0xCF40, 0x0006, 0xC000, 0x038E, 0xE780, 0x0006, 0xC000, 0x01C7, 0x7300, 0x0006, 0xC000, 0x00E3, 0xB800, 0x0006, 0xC000, 0x0071, 0xDC00, 0x0006, 0xC000, 0x0039, 0xE800, 0x0006, 0xC000, 0x001C, 0xE000, 0x0006, 0xC000, 0x000F, 0xE000, 0x0006, 0xC000, 0x0007, 0xC000, 0x0006, 0xC000, 0x0003, 0x8000, 0x0006, 0xC000, 0x0000, 0x0000, 0x0006, 0xC000, 0x0000, 0x0000, 0x0006, 0xC000, 0x0000, 0x0000, 0x0006, 0xC000, 0x0000, 0x0000, 0x0006, 0xC000, 0x0000, 0x0000, 0x0006, 0xC000, 0x0000, 0x0000, 0x0006, 0xC000, 0x0000, 0x0000, 0x0006, 0xC000, 0x0000, 0x0000, 0x0006, 0xC000, 0x0000, 0x0000, 0x0006, 0xC000, 0x0000, 0x0000, 0x0006, 0xC000, 0x0000, 0x0000, 0x0006, 0x7FFF, 0xFFFF, 0xFFFF, 0xFFFC, 0x3FFF, 0xFFFF, 0xFFFF, 0xFFF8 xview-3.2p1.4/contrib/examples/color/color.c100644 1750 1750 5714 5413747566 16330 0ustar mbmb#include #include main(argc, argv) char *argv[]; { Display *display; int screen; XSizeHints sizehints; Window window; XEvent event; XButtonEvent *button; XColormapEvent *colormap; short i; int done = 0; Colormap cmap, orig_cmap; XVisualInfo vTemplate, *visualList; int visualsMatched; Visual *visual; XSetWindowAttributes atts; XColor color; display = XOpenDisplay(""); screen = DefaultScreen ( display ); window = XDefaultRootWindow(display); vTemplate.screen = screen; vTemplate.depth = 8; vTemplate.class = PseudoColor; visualList = XGetVisualInfo(display, VisualScreenMask|VisualClassMask|VisualDepthMask, &vTemplate, &visualsMatched); if ( visualsMatched == 0 ) { puts("visual not found, using default"); visual = DefaultVisual( display, screen ); } else { printf("found %d visuals\n", visualsMatched); visual = visualList[0].visual; } sizehints.x = 200; sizehints.y = 0; sizehints.width = sizehints.height = 150; sizehints.flags = USSize | USPosition; cmap = XCreateColormap( display,window, visual, AllocAll); orig_cmap = DefaultColormap(display, DefaultScreen(display)); atts.colormap = cmap; window = XCreateWindow(display,DefaultRootWindow(display), sizehints.x, sizehints.y, sizehints.width, sizehints.height, 0, 8, InputOutput, visual, CWColormap, &atts); XSetStandardProperties(display, window, argv[0], argv[0], None, argv, 1, &sizehints); color.flags = DoRed|DoGreen|DoBlue; srand(time(0)); printf("Allocating %d colors\n", visual->map_entries); for (color.pixel=0; color.pixel < visual->map_entries; color.pixel++) { color.red = rand()%65536; color.green = rand()%65536; color.blue = rand()%65536; XStoreColor ( display, cmap, &color ); } /* while (visualsMatched > 0) XFree(visualList[--visualsMatched]); */ XFree((char *)visualList); /* Now that the screen is defined, select inputs and get them */ XSelectInput(display, window, ButtonPressMask | ColormapChangeMask); XMapWindow(display, window); do { XNextEvent ( display, &event ); switch (event.type) { case ButtonPress: printf ("********* Found ButtonPress event ********\n"); button = (XButtonEvent *) &event; printf ("button is %d\n", button->button ); if (button->button == 3) done = -1; break; case ColormapNotify: printf ("********* Found ColormapNotify event ********\n"); colormap = (XColormapEvent *) &event; if ( colormap->state == ColormapInstalled ) printf ("Colormap has been installed\n"); else printf ("Colormap has been uninstalled\n"); printf ("Colormap is %d\n", colormap->colormap ); printf ("Associated window is %d\n", colormap->window ); } } while (!done); XCloseDisplay(display); } xview-3.2p1.4/contrib/examples/color/color_animate.c100644 1750 1750 7523 5413747566 20026 0ustar mbmb/* * color_animate.c -- Do frame-by-frame animation using colors. */ #include #include #include #include #include #include #include Frame frame; Canvas canvas; Display *dpy; Cms cms; GC gc; Window canvas_win; Notify_value animate(); struct itimerval timer; /* indices into color table renders specified colors. */ #define WHITE 0 #define RED 1 #define GREEN 2 #define BLUE 3 #define ORANGE 4 #define AQUA 5 #define PINK 6 #define BLACK 7 #define RANDOM_COLOR 8 int max_images = 9; int cnt = 0; main(argc, argv) int argc; char *argv[]; { Panel panel; XGCValues gcvalues; Xv_Font _font; XFontStruct *font; void start_stop(), adjust_speed() /*, change_glyph() */; extern void exit(); static Xv_singlecolor cms_colors[] = { { 255, 255, 255 }, { 255, 0, 0 }, { 0, 255, 50 }, { 10, 50, 255 }, { 250, 130, 80 }, { 30, 230, 250 }, { 230, 30, 250 }, { 0, 0, 0 }, /* black */ }; xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); cms = xv_create(NULL, CMS, /* CMS_TYPE, XV_DYNAMIC_CMS, */ CMS_SIZE, 8, CMS_COLOR_COUNT, 7, CMS_COLORS, cms_colors, NULL); frame = (Frame)xv_create(XV_NULL, FRAME, FRAME_LABEL, argv[0], NULL); panel = (Panel)xv_create(frame, PANEL, PANEL_LAYOUT, PANEL_VERTICAL, NULL); xv_create(panel, PANEL_SLIDER, XV_X, 0, XV_Y, 35, PANEL_LABEL_STRING, "Millisecs Between Frames", PANEL_VALUE, 0, PANEL_MAX_VALUE, 400, PANEL_NOTIFY_PROC, adjust_speed, NULL); window_fit(panel); canvas = (Canvas)xv_create(frame, CANVAS, XV_WIDTH, 64, XV_HEIGHT, 64, WIN_CMS, cms, CANVAS_X_PAINT_WINDOW, TRUE, CANVAS_RETAINED, FALSE, NULL); canvas_win = (Window)xv_get(canvas_paint_window(canvas), XV_XID); window_fit(frame); dpy = (Display *)xv_get(frame, XV_DISPLAY); if (!(_font = (Xv_Font)xv_find(frame, FONT, FONT_NAME, "icon", NULL))) _font = xv_find(frame, FONT, FONT_NAME, "9x15", NULL); font = (XFontStruct *)xv_get(_font, FONT_INFO); gcvalues.font = font->fid; gcvalues.graphics_exposures = False; gcvalues.background = xv_get(cms, CMS_BACKGROUND_PIXEL); gc = XCreateGC(dpy, RootWindow(dpy, DefaultScreen(dpy)), GCBackground | GCFont | GCGraphicsExposures, &gcvalues); xv_main_loop(frame); } Notify_value animate() { static short red, green, blue; Xv_singlecolor color; int val; red = (red+1) % 255; green = (green+2) % 255; blue = (blue+3) % 255; color.red = red; color.green = green; color.blue = blue; val = xv_set(cms, CMS_COLOR_COUNT, 1, CMS_INDEX, 0, CMS_COLORS, &color, NULL); XSetForeground(dpy, gc, xv_get(cms, CMS_PIXEL, red % 8)); /* XDrawImageString(dpy, canvas_win, gc, 5, 40, images[cnt], 1); */ XFillRectangle(dpy, canvas_win, gc, 5, 5, 39, 39); cnt = (cnt + 1) % max_images; return NOTIFY_DONE; } void adjust_speed(item, value) Panel_item item; int value; { if (value > 0) { timer.it_value.tv_usec = (value + 20) * 1000; timer.it_interval.tv_usec = (value + 20) * 1000; notify_set_itimer_func(frame, animate, ITIMER_REAL, &timer, NULL); } else /* turn it off */ notify_set_itimer_func(frame, NULL, ITIMER_REAL, NULL, NULL); } xview-3.2p1.4/contrib/examples/color/color_logo.c100644 1750 1750 6547 5413747566 17355 0ustar mbmb/* color_logo.c -- * This program demonstrates the combined use of the XView color * model/API and Xlib graphics calls. The program uses XView to * create and manage its colormap segment while doing its actual * drawing using Xlib routines. * The program draws the X logo in red, green and blue in a canvas. */ #include #include #include #include #include /* Color indices */ #define WHITE 0 #define RED 1 #define GREEN 2 #define BLUE 3 #define NUM_COLORS 4 GC gc; /* used for rendering logos */ unsigned long *pixel_table; /* pixel values for colors */ Pixmap xlogo; /* the xlogo */ /* Create a frame, canvas, and a colormap segment and assign the * cms to the canvas. CMS_INDEX_TABLE returns the actual colormap * indices and are used to set the gc's foreground for XCopyPlane * calls. */ main(argc,argv) int argc; char *argv[]; { Frame frame; XGCValues gc_val; XGCValues gcvalues; void canvas_repaint_proc(); Cms cms; static Xv_singlecolor colors[] = { { 255, 255, 255 }, /* white */ { 255, 0, 0 }, /* red */ { 0, 255, 0 }, /* green */ { 0, 0, 255 }, /* blue */ }; xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); cms = (Cms) xv_create(NULL, CMS, CMS_SIZE, 4, CMS_COLORS, colors, NULL); frame = (Frame)xv_create(XV_NULL, FRAME, FRAME_LABEL, argv[0], XV_WIDTH, 448, XV_HEIGHT, 192, NULL); (void) xv_create(frame, CANVAS, CANVAS_X_PAINT_WINDOW, TRUE, CANVAS_REPAINT_PROC, canvas_repaint_proc, WIN_CMS, cms, NULL); /* Get the actual indices into the colormap */ pixel_table = (unsigned long *)xv_get(cms, CMS_INDEX_TABLE); /* create the xlogo -- get display/window from the frame obj */ xlogo = XCreateBitmapFromData( (Display *)xv_get(frame, XV_DISPLAY), xv_get(frame, XV_XID), (char *)xlogo64_bits, xlogo64_width, xlogo64_height); /* setup gc for rendering logos to screen */ gcvalues.graphics_exposures = False; gcvalues.background = pixel_table[WHITE]; gc = XCreateGC((Display *)xv_get(frame, XV_DISPLAY), xv_get(frame, XV_XID), GCBackground | GCGraphicsExposures, &gcvalues); xv_main_loop(frame); } /* Draws onto the canvas using Xlib drawing functions. * Draw the X logo into the window in three colors. In each case, * change the GC's foreground color to the pixel value specified. */ void canvas_repaint_proc(canvas, pw, display, win, xrects) Canvas canvas; /* unused */ Xv_Window pw; /* unused */ Display *display; Window win; Xv_xrectlist *xrects; /* unused */ { /* Use XCopyPlane because the logo is a 1-bit deep pixmap. */ XSetForeground(display, gc, pixel_table[RED]); XCopyPlane(display, xlogo, win, gc, 0, 0, xlogo64_width, xlogo64_height, 64, 64, 1); XSetForeground(display, gc, pixel_table[GREEN]); XCopyPlane(display, xlogo, win, gc, 0, 0, xlogo64_width, xlogo64_height, 192, 64, 1); XSetForeground(display, gc, pixel_table[BLUE]); XCopyPlane(display, xlogo, win, gc, 0, 0, xlogo64_width, xlogo64_height, 320, 64, 1); } xview-3.2p1.4/contrib/examples/color/color_objs.c100644 1750 1750 16430 5413747566 17362 0ustar mbmb/* * color_objs.c -- * This program demonstrates the use of color in XView. It allows * the user to choose the foreground and background colors of the * various objects in an interactive manner. */ #include #include #include #include #include #include #define SELECT_TEXTSW 0 #define SELECT_TEXTSW_VIEW 1 #define SELECT_PANEL 2 #define SELECT_ICON 3 #define NUM_COLORS 8 /* Icon data */ static unsigned short icon_bits[] = { #include "cardback.icon" }; /* solid black square */ static unsigned short black_bits[] = { 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF }; Panel_item objects; Textsw textsw; Panel panel; Icon icon; /* * main() * Create a panel and panel items. The application uses panel items * to choose a particular object and change its foreground and * background colors in an interactive manner. Create a textsw. * Create an icon. All the objects share the same colormap segment. */ main(argc,argv) int argc; char *argv[]; { Frame frame; Panel_item color_choices, panel_fg_bg; Cms cms; int i; Server_image chip, icon_image; void color_notify(); extern void exit(); static Xv_singlecolor cms_colors[] = { { 255, 255, 255 }, /* white */ { 255, 0, 0 }, /* red */ { 0, 255, 0 }, /* green */ { 0, 0, 255 }, /* blue */ { 255, 255, 0 }, /* yellow */ { 188, 143, 143 }, /* brown */ { 220, 220, 220 }, /* gray */ { 0, 0, 0 }, /* black */ }; xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create(NULL, FRAME, FRAME_LABEL, argv[0], NULL); cms = (Cms)xv_create(NULL, CMS, CMS_NAME, "palette", CMS_CONTROL_CMS, TRUE, CMS_TYPE, XV_STATIC_CMS, CMS_SIZE, CMS_CONTROL_COLORS + NUM_COLORS, CMS_COLORS, cms_colors, NULL); /* Create panel and set the colormap segment on the panel */ panel = (Panel)xv_create(frame, PANEL, PANEL_LAYOUT, PANEL_VERTICAL, WIN_CMS, cms, NULL); /* Create panel items */ objects = (Panel_item)xv_create(panel, PANEL_TOGGLE, PANEL_LABEL_STRING, "Objects", PANEL_LAYOUT, PANEL_HORIZONTAL, PANEL_CHOICE_STRINGS, "Textsw", "Textsw View", "Panel", "Icon", NULL, NULL); panel_fg_bg = (Panel_item)xv_create(panel, PANEL_CHECK_BOX, PANEL_LABEL_STRING, "Fg/Bg", PANEL_CHOOSE_ONE, TRUE, PANEL_LAYOUT, PANEL_HORIZONTAL, PANEL_CHOICE_STRINGS, "Background", "Foreground", NULL, NULL); chip = (Server_image)xv_create(XV_NULL, SERVER_IMAGE, XV_WIDTH, 16, XV_HEIGHT, 16, SERVER_IMAGE_DEPTH, 1, SERVER_IMAGE_BITS, black_bits, NULL); color_choices = (Panel_item)xv_create(panel, PANEL_CHOICE, PANEL_LAYOUT, PANEL_HORIZONTAL, PANEL_LABEL_STRING, "Colors", PANEL_CLIENT_DATA, panel_fg_bg, XV_X, (int)xv_get(panel_fg_bg, XV_X), PANEL_NEXT_ROW, 15, PANEL_CHOICE_IMAGES, chip, chip, chip, chip, chip, chip, chip, chip, NULL, PANEL_CHOICE_COLOR, 0, CMS_CONTROL_COLORS + 0, PANEL_CHOICE_COLOR, 1, CMS_CONTROL_COLORS + 1, PANEL_CHOICE_COLOR, 2, CMS_CONTROL_COLORS + 2, PANEL_CHOICE_COLOR, 3, CMS_CONTROL_COLORS + 3, PANEL_CHOICE_COLOR, 4, CMS_CONTROL_COLORS + 4, PANEL_CHOICE_COLOR, 5, CMS_CONTROL_COLORS + 5, PANEL_CHOICE_COLOR, 6, CMS_CONTROL_COLORS + 6, PANEL_CHOICE_COLOR, 7, CMS_CONTROL_COLORS + 7, PANEL_NOTIFY_PROC, color_notify, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Quit", PANEL_NOTIFY_PROC, exit, NULL); (void)window_fit_height(panel); /* create textsw and set the colormap segment for it */ textsw = (Textsw)xv_create(frame, TEXTSW, WIN_CMS, cms, WIN_BELOW, panel, WIN_ROWS, 15, WIN_COLUMNS, 80, TEXTSW_FILE_CONTENTS, "/etc/motd", WIN_BACKGROUND_COLOR, CMS_CONTROL_COLORS + 0, NULL); /* adjust panel dimensions */ (void)xv_set(panel, WIN_WIDTH, xv_get(textsw, WIN_WIDTH), NULL); icon_image = (Server_image)xv_create(NULL, SERVER_IMAGE, XV_WIDTH, 64, XV_HEIGHT, 64, SERVER_IMAGE_DEPTH, 1, SERVER_IMAGE_BITS, icon_bits, NULL); /* associate icon with the base frame */ icon = (Icon)xv_create(XV_NULL, ICON, ICON_IMAGE, icon_image, WIN_CMS, cms, WIN_BACKGROUND_COLOR, CMS_CONTROL_COLORS + 0, NULL); xv_set(frame, FRAME_ICON, icon, NULL); window_fit(frame); xv_main_loop(frame); } /* * This routine gets called when a color selection is made. * Set the foreground or background on the currently selected object. * WIN_FOREGROUND_COLOR & WIN_BACKGROUND_COLOR allow the application * to specify indices into the colormap segment as the foreground * and background values. */ void color_notify(panel_item, choice, event) Panel_item panel_item; int choice; Event *event; { int cnt; Xv_opaque object, get_object(); unsigned objs = (unsigned)xv_get(objects, PANEL_VALUE); int fg = (int)xv_get(xv_get(panel_item, PANEL_CLIENT_DATA), PANEL_VALUE); /* the value of the objects panel item is a bit mask ... "on" bits * mean that the choice is selected. Get the object associated * with the choice and set it's color. "&" tests bits in a mask. */ for (cnt = 0; objs; cnt++, objs >>= 1) if (objs & 1) if ((object = get_object(cnt)) != panel) xv_set(object, fg? WIN_FOREGROUND_COLOR : WIN_BACKGROUND_COLOR, CMS_CONTROL_COLORS + choice, NULL); else if (fg) PANEL_EACH_ITEM(panel, panel_item) xv_set(panel_item, PANEL_ITEM_COLOR, CMS_CONTROL_COLORS + choice, NULL); PANEL_END_EACH else notice_prompt(panel, NULL, NOTICE_FOCUS_XY, event_x(event), event_y(event), NOTICE_MESSAGE_STRINGS, "You can't set the color of a panel.", NULL, NOTICE_BUTTON_YES, "Ok", NULL); } /* * Return the XView handle to nth object. */ Xv_opaque get_object(n) int n; { switch (n) { case SELECT_TEXTSW: return textsw; case SELECT_TEXTSW_VIEW: return xv_get(textsw, OPENWIN_NTH_VIEW, 0); case SELECT_PANEL: return panel; case SELECT_ICON: return icon; default: return textsw; } } xview-3.2p1.4/contrib/examples/color/color_panel.c100644 1750 1750 4435 5413747567 17507 0ustar mbmb/* color_panel.c -- * This program demonstrates how to set panel items to different * colors using the XView API for color. */ #include #include #include /* Color indices */ #define WHITE 0 #define RED 1 #define GREEN 2 #define BLUE 3 #define NUM_COLORS 4 /* Create a frame, panel, and a colormap segment and assign the * cms to the panel. */ main(argc,argv) int argc; char *argv[]; { Frame frame; Panel panel; Cms cms; extern void exit(), pressed(); static Xv_singlecolor colors[] = { { 255, 255, 255 }, /* white */ { 255, 0, 0 }, /* red */ { 0, 255, 0 }, /* green */ { 0, 0, 255 }, /* blue */ }; xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); cms = (Cms) xv_create(NULL, CMS, CMS_CONTROL_CMS, TRUE, CMS_SIZE, CMS_CONTROL_COLORS + 4, CMS_COLORS, colors, NULL); frame = (Frame)xv_create(XV_NULL, FRAME, FRAME_LABEL, argv[0], FRAME_SHOW_FOOTER, TRUE, NULL); panel = xv_create(frame, PANEL, WIN_CMS, cms, NULL); xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Red", PANEL_ITEM_COLOR, CMS_CONTROL_COLORS + RED, PANEL_NOTIFY_PROC, pressed, NULL); xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Green", PANEL_ITEM_COLOR, CMS_CONTROL_COLORS + GREEN, PANEL_NOTIFY_PROC, pressed, NULL); xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Blue", PANEL_ITEM_COLOR, CMS_CONTROL_COLORS + BLUE, PANEL_NOTIFY_PROC, pressed, NULL); xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Quit", PANEL_ITEM_COLOR, CMS_CONTROL_COLORS + WHITE, PANEL_NOTIFY_PROC, exit, NULL); window_fit(panel); window_fit(frame); xv_main_loop(frame); } void pressed(item, event) Panel_item item; Event *event; { char *name = (char *)xv_get(item, PANEL_LABEL_STRING); Frame frame = xv_get(xv_get(item, PANEL_PARENT_PANEL), XV_OWNER); xv_set(frame, FRAME_LEFT_FOOTER, name, NULL); } xview-3.2p1.4/contrib/examples/color/example1.c100644 1750 1750 4613 5413747567 16724 0ustar mbmb/* * xv_simple_color.c * This simple application demonstrates the use of color in XView. * A colormap segment is created using named colors. The default view * of a text subwindow, and a canvas share the colormap segment. The * colors in the colormap segment are displayed in the canvas. */ #include #include #include #include #include /* color definitions */ #define WHITE 0 #define RED 1 #define GREEN 2 #define BLUE 3 #define NUM_COLORS 4 main(argc,argv) int argc; char *argv[]; { Frame frame; Textsw text; Canvas canvas; Cms cms; void canvas_repaint_proc(); xv_init(XV_INIT_ARGS, argc,argv, 0); frame = xv_create(0, FRAME, WIN_HEIGHT, 500, WIN_WIDTH, 500, 0); /* Create the colormap segment */ cms = xv_create(0, CMS, CMS_SIZE, NUM_COLORS, CMS_NAMED_COLORS, "white", "red", "green", "blue", NULL, 0); /* Create the text subwindow and the canvas */ text = xv_create(frame, TEXTSW, WIN_HEIGHT, 300, WIN_WIDTH, 500, OPENWIN_VIEW_ATTRS, WIN_CMS, cms, 0, 0); /* * Simply name the colormap segment to be used since it has * already been created. */ canvas = xv_create(frame, CANVAS, WIN_HEIGHT, 200, WIN_WIDTH, 500, XV_X, 0, XV_Y, 300, WIN_CMS, cms, CANVAS_REPAINT_PROC, canvas_repaint_proc, 0, 0); xv_main_loop(frame); } /* * canvas_repaint_proc() * Called to repaint the canvas window. Display the colors in the * colormap segment associated with the canvas. */ void canvas_repaint_proc(canvas, paint_window, repaint_area) Canvas canvas; Xv_window paint_window; Rectlist *repaint_area; { xv_rop(paint_window, 10, 10, 50, 50, PIX_SRC|PIX_COLOR(WHITE), NULL, 0, 0); xv_rop(paint_window, 70, 10, 50, 50, PIX_SRC|PIX_COLOR(RED), NULL, 0, 0); xv_rop(paint_window, 130, 10, 50, 50, PIX_SRC|PIX_COLOR(GREEN), NULL, 0, 0); xv_rop(paint_window, 190, 10, 50, 50, PIX_SRC|PIX_COLOR(BLUE), NULL, 0, 0); } xview-3.2p1.4/contrib/examples/color/example2.c100644 1750 1750 17712 5413747567 16751 0ustar mbmb/* * xv_color.c * This program demonstrates the use of color in XView. It allows the * user to choose the foreground and background colors of the various * objects in an interactive manner. * */ #include #include #include #include #include #include #define WHITE 0 #define RED 1 #define GREEN 2 #define BLUE 3 #define YELLOW 4 #define PINK 5 #define GRAY 6 #define BLACK 7 #define NUM_COLORS 8 #define HEIGHT 500 #define WIDTH 500 #define CHIP_HEIGHT 16 #define CHIP_WIDTH 16 #define SELECT_TEXTSW 0 #define SELECT_TEXTSW_VIEW 1 #define SELECT_ICON 2 /* Icon data */ static unsigned short icon_bits[]={ #include }; mpr_static(icon_image, ICON_DEFAULT_WIDTH, ICON_DEFAULT_HEIGHT, 1, icon_bits); static unsigned short black_data[] = { #include }; /* object currently selected for color change */ int current_selection = SELECT_TEXTSW; /* flag to indicate if foreground or background is to be changed */ int fg = TRUE; Textsw textsw; Panel panel; Icon icon; /* * main() * Create a panel and panel items. The application uses panel items * to choose a particular object and change its foreground and background * colors in an interactive manner. Create a textsw. Create an icon. * All the objects share the same colormap segment. */ main(argc,argv) int argc; char *argv[]; { Frame frame; Cms control_cms, plain_cms; Server_image choice_image; Xv_Singlecolor cms_colors[NUM_COLORS]; Panel_item panel_palette, panel_fg_bg, panel_object; int textsw_width; void color_notify(), fg_bg_notify(), object_notify(); xv_init(XV_INIT_ARGS, argc, argv, 0); frame = xv_create(XV_NULL, FRAME, FRAME_LABEL,"xv_color", 0); /* * Create a colormap segment with the required colors for * the color palette. Set it to be a control colormap segment * to enable the panel to be painted using the 3D look. */ initialize_cms_colors(cms_colors); control_cms = xv_create(XV_NULL, CMS, CMS_SIZE, NUM_COLORS + CMS_CONTROL_COLORS, CMS_COLORS, cms_colors, CMS_CONTROL_CMS, TRUE, 0); plain_cms = xv_create(XV_NULL, CMS, CMS_SIZE, NUM_COLORS, CMS_COLORS, cms_colors, 0); /* Create a server image to use for colored panel choice images */ choice_image = (Server_image) xv_create(XV_NULL, SERVER_IMAGE, XV_WIDTH, CHIP_WIDTH, XV_HEIGHT, CHIP_HEIGHT, SERVER_IMAGE_DEPTH, 1, SERVER_IMAGE_BITS, black_data, 0); /* Create panel and set the colormap segment on the panel */ panel = xv_create(frame, PANEL, PANEL_LAYOUT, PANEL_HORIZONTAL, WIN_CMS, control_cms, 0); /* Create panel items */ panel_object = xv_create(panel, PANEL_CHOICE_STACK, PANEL_LABEL_STRING, "Object", PANEL_LABEL_BOLD, TRUE, PANEL_CHOICE_STRINGS, "Textsw", "Textsw View", "Icon", 0, PANEL_NOTIFY_PROC, object_notify, 0); panel_fg_bg = xv_create(panel, PANEL_CHOICE, PANEL_LABEL_STRING, "Fg/Bg", PANEL_LABEL_BOLD, TRUE, PANEL_CHOICE_STRINGS, "Foreground", "Background", 0, PANEL_NOTIFY_PROC, fg_bg_notify, 0); panel_palette = xv_create(panel, PANEL_CHOICE, PANEL_LABEL_STRING, "Colors", PANEL_LABEL_BOLD, TRUE, XV_X, (int)xv_get(panel_fg_bg, XV_X), PANEL_NEXT_ROW, 15, PANEL_CHOICE_IMAGES, choice_image, choice_image, choice_image, choice_image, choice_image, choice_image, choice_image, choice_image, 0, PANEL_CHOICE_COLOR, 0, CMS_CONTROL_COLORS + WHITE, PANEL_CHOICE_COLOR, 1, CMS_CONTROL_COLORS + RED, PANEL_CHOICE_COLOR, 2, CMS_CONTROL_COLORS + GREEN, PANEL_CHOICE_COLOR, 3, CMS_CONTROL_COLORS + BLUE, PANEL_CHOICE_COLOR, 4, CMS_CONTROL_COLORS + YELLOW, PANEL_CHOICE_COLOR, 5, CMS_CONTROL_COLORS + PINK, PANEL_CHOICE_COLOR, 6, CMS_CONTROL_COLORS + GRAY, PANEL_CHOICE_COLOR, 7, CMS_CONTROL_COLORS + BLACK, PANEL_NOTIFY_PROC, color_notify, 0); (void)window_fit_height(panel); /* create textsw and set the colormap segment for it */ textsw = xv_create(frame, TEXTSW, WIN_CMS, plain_cms, WIN_BELOW, panel, WIN_ROWS, 45, WIN_COLUMNS, 80, 0); /* adjust panel dimensions */ textsw_width = (int)xv_get(textsw, WIN_WIDTH); (void)xv_set(panel, WIN_WIDTH, textsw_width, 0); /* associate icon with the base frame */ icon = xv_create(XV_NULL, ICON, ICON_IMAGE, &icon_image, WIN_CMS, plain_cms, 0); xv_set(frame, FRAME_ICON, icon, 0); window_fit(frame); /* Start event loop */ xv_main_loop(frame); return(0); } /* * initialize_cms_colors() * Initialize the required RGB values. */ initialize_cms_colors(colors) Xv_Singlecolor *colors; { colors[WHITE].red = 255; colors[WHITE].green = 255; colors[WHITE].blue = 255; colors[RED].red = 255; colors[RED].green = 0; colors[RED].blue = 0; colors[GREEN].red = 0; colors[GREEN].green = 255; colors[GREEN].blue = 0; colors[BLUE].red = 0; colors[BLUE].green = 0; colors[BLUE].blue = 255; colors[YELLOW].red = 255; colors[YELLOW].green = 255; colors[YELLOW].blue = 0; colors[PINK].red = 188; colors[PINK].green = 143; colors[PINK].blue = 143; colors[GRAY].red = 220; colors[GRAY].green = 220; colors[GRAY].blue = 220; colors[BLACK].red = 0; colors[BLACK].green = 0; colors[BLACK].blue = 0; } /* * color_notify() * This routine gets called when a color selection is made. * Set the foreground or background on the currently selected object. * WIN_FOREGROUND_COLOR & WIN_BACKGROUND_COLOR allow the application * to specify indices into the colormap segment as the foreground and * background values. */ void color_notify(panel_item, event) Panel_item panel_item; Event *event; { int choice; Xv_opaque current_object, get_current_object(); current_object = (Xv_opaque)get_current_object(); choice = (int) xv_get(panel_item, PANEL_VALUE); if (fg) { xv_set(current_object, WIN_FOREGROUND_COLOR, choice, 0); } else { xv_set(current_object, WIN_BACKGROUND_COLOR, choice, 0); } } /* * fg_bg_notify() * This routine gets called when a foreground/background selection * is made. */ void fg_bg_notify(panel_item, event) Panel_item panel_item; Event *event; { int choice; choice = (int) xv_get(panel_item, PANEL_VALUE); if (choice == 0) { fg = TRUE; } else { fg = FALSE; } } /* * object_notify() * This routine gets called when an object selction is made. * Store this selection as the current object. */ void object_notify(panel_item, event) Panel_item panel_item; Event *event; { current_selection = (int) xv_get(panel_item, PANEL_VALUE); } /* * get_current_object() * This routine returns the XView handle to the currently selected * object. */ Xv_opaque get_current_object() { Xv_opaque current_object; switch(current_selection) { case SELECT_TEXTSW: current_object = (Xv_opaque)textsw; break; case SELECT_TEXTSW_VIEW: current_object = (Xv_opaque)xv_get(textsw, OPENWIN_NTH_VIEW, 0); break; case SELECT_ICON: current_object = (Xv_opaque)icon; break; default: current_object = (Xv_opaque)textsw; break; } return(current_object); } xview-3.2p1.4/contrib/examples/color/example3.c100644 1750 1750 12454 5413747567 16750 0ustar mbmb/* * xv_x_color.c * This program demonstrates the combined use of the XView color * model/API and Xlib graphics calls. The program uses XView to * create and manage its colormap segment while doing its actual * drawing using Xlib. The program draws the X logo in red, green * and blue. */ #include #include #include #include #include #include #define WIDTH 448 #define HEIGHT 192 /* Color definitions */ #define WHITE 0 #define RED 1 #define GREEN 2 #define BLUE 3 #define NUM_COLORS 4 /* graphics context used for rendering logos */ GC gc; /* conversion table for pixel values from XView to X11 */ unsigned long pixel_table[NUM_COLORS]; /* * main() * Create a frame and a canvas. * Allocate read-only colors (called a static colormap segment in * XView parlance) and associate colors with the canvas. * The indices into an XView colormap segment always range from 0 to * size-1, where size is the number of colors allocated in the * colormap segment. These logical index values translate into actual * indices into the colormap map as allocated by the X server. The * CMS_INDEX_TABLE attribute returns the actual colormap indices. * The indices are returned as an array of unsigned long. */ main(argc,argv) int argc; char *argv[]; { Frame frame; Canvas canvas; Cms cms; Xv_Singlecolor cms_colors[NUM_COLORS]; Display *display; XGCValues gc_val; XID xid; Pixmap xlogo; XGCValues gcvalues; int gcvaluemask; unsigned long *xpixels; void canvas_repaint_proc(); register int i; xv_init(XV_INIT_ARGS, argc, argv, 0); frame = xv_create(XV_NULL, FRAME, FRAME_LABEL, "xv_color", XV_WIDTH, WIDTH, XV_HEIGHT, HEIGHT, 0); /* Initialize required colors */ initialize_cms_colors(cms_colors); cms = xv_create(XV_NULL, CMS, CMS_SIZE, NUM_COLORS, CMS_COLORS, cms_colors, 0); /* Get the actual indices into the colormap and store */ xpixels = (unsigned long *)xv_get(cms, CMS_INDEX_TABLE); for (i = 0; i <= NUM_COLORS; i++) { pixel_table[i] = xpixels[i]; } canvas = xv_create(frame, CANVAS, CANVAS_X_PAINT_WINDOW, TRUE, CANVAS_REPAINT_PROC, canvas_repaint_proc, WIN_CMS, cms, 0); /* Get display and the XID of the canvas */ display = (Display *)xv_get(canvas, XV_DISPLAY); xid = (XID)xv_get(canvas, XV_XID); /* create the stipple xlogo */ xlogo = XCreateBitmapFromData(display, xid, (char *)xlogo64_bits, xlogo64_width, xlogo64_height); if( xlogo == NULL ) { printf( "Error allocating Pixmap for logo!\n"); exit(1); } /* setup gc for rendering logos to screen */ gcvalues.function = GXcopy; gcvalues.stipple = xlogo; gcvalues.fill_style = FillStippled; gcvalues.graphics_exposures = False; gcvaluemask = GCFunction | GCStipple | GCFillStyle | GCGraphicsExposures; /* create normal render gc for logo rendering */ gc = XCreateGC(display, xid, gcvaluemask, &gcvalues); if(gc == NULL) { printf("Error allocating render graphics context!\n"); exit(1); } /* Start event loop */ xv_main_loop(frame); return(0); } /* * canvas_repaint_proc() * Draws onto the canvas using Xlib drawing functions. * Use the current clipping rectangle to * 1. Restrict graphics output by setting the clip_mask * in the graphics context. * 2. Do "smart repainting" by only painting the objects * that lie within the damaged region (not being done in * this example). */ void canvas_repaint_proc(canvas, pw, display, xid, xrects) Canvas canvas; Xv_Window pw; Display *display; Window xid; Xv_xrectlist *xrects; { XGCValues gc_val; unsigned long pixel_value; /* Set clip rects, if any */ if (xrects) { XSetClipRectangles(display, gc, 0, 0, xrects->rect_array, xrects->count, Unsorted); } else { gc_val.clip_mask = None; XChangeGC(display, gc, GCClipMask, &gc_val); } /* draw the logos in red, green and blue */ pixel_value = (long)pixel_table[RED]; XSetForeground(display, gc, pixel_value); XFillRectangle(display, xid, gc, 64, 64, xlogo64_width, xlogo64_height); pixel_value = (long)pixel_table[GREEN]; XSetForeground(display, gc, pixel_value); XFillRectangle(display, xid, gc, 192, 64, xlogo64_width, xlogo64_height); pixel_value = (long)pixel_table[BLUE]; XSetForeground(display, gc, pixel_value); XFillRectangle(display, xid, gc, 320, 64, xlogo64_width, xlogo64_height); } initialize_cms_colors(colors) Xv_Singlecolor *colors; { colors[WHITE].red = 255; colors[WHITE].green = 255; colors[WHITE].blue = 255; colors[RED].red = 255; colors[RED].green = 0; colors[RED].blue = 0; colors[GREEN].red = 0; colors[GREEN].green = 255; colors[GREEN].blue = 0; colors[BLUE].red = 0; colors[BLUE].green = 0; colors[BLUE].blue = 255; } xview-3.2p1.4/contrib/examples/color/example4.c100644 1750 1750 13271 5413747567 16747 0ustar mbmb/* * xv_colors.c * This simple application demonstates the use of the XView color * API. The colormap segment can be created in a combination of the * following ways: * - static or dynamic * - control or non-control * - using named colors or RGB values */ #include #include #include #include #include #include #define CHIP_WIDTH 50 #define CHIP_HEIGHT 50 /* color definitions */ #define GRAY 0 #define YELLOW 1 #define PINK 2 #define VIOLET 3 #define RED 4 #define GREEN 5 #define BLACK 6 #define BLUE 7 #define NUM_COLORS 8 unsigned long *index_table; unsigned long cms_size; main(argc, argv) int argc; char **argv; { Frame frame; Canvas canvas; Cms cms; short dynamic_colors = FALSE; short control_cms = FALSE; short named_colors = FALSE; short print_colors = FALSE; int i; Xv_Singlecolor *cms_colors; XColor *cms_x_colors; Xv_Singlecolor colors[NUM_COLORS]; void canvas_repaint_proc(); while (--argc) { switch (**(++argv)) { case 'c': case 'C': control_cms = TRUE; printf("Control cms set \n"); break; case 'd': case 'D': dynamic_colors = TRUE; printf("Dynamic color set \n"); break; case 'n': case 'N': named_colors = TRUE; printf("Named colors set \n"); break; case 'p': case 'P': print_colors = TRUE; printf("Print colors set \n"); break; default: break; } } printf("\n"); xv_init(XV_INIT_ARGS, argc, argv, 0); frame = xv_create(0, FRAME, XV_LABEL, "XView Colors", 0); /* create the colormap segment based on flags */ cms = xv_create(0, CMS, CMS_TYPE, (dynamic_colors == TRUE) ? XV_DYNAMIC_CMS : XV_STATIC_CMS, CMS_CONTROL_CMS, control_cms, CMS_SIZE, control_cms ? NUM_COLORS + CMS_CONTROL_COLORS : NUM_COLORS, NULL); if (named_colors == TRUE) { xv_set(cms, CMS_NAMED_COLORS, "gray", "yellow", "pink", "violet", "red", "green", "black", "blue", NULL, NULL); } else { initialize_colors(colors); xv_set(cms, CMS_COLORS, colors, NULL); } /* * the frame height is adjusted based on the number of colors * to be displayed */ cms_size = (unsigned long)xv_get(cms, CMS_SIZE); printf("Cms size = %d\n", (int)cms_size); xv_set(frame, WIN_WIDTH, CHIP_WIDTH * 3, WIN_HEIGHT, (cms_size + 2) * CHIP_HEIGHT, 0); /* conversion table for pixel values from XView to X11 */ index_table = (unsigned long *)xv_get(cms, CMS_INDEX_TABLE); if (print_colors == TRUE) { /* * Colormap segment RGB values can be set or retreived either as * an array of Xv_Singlecolor or XColor. */ cms_colors = (Xv_Singlecolor *)malloc(cms_size * sizeof(Xv_Singlecolor)); cms_colors = (Xv_Singlecolor *)xv_get(cms, CMS_COLORS, cms_colors); printf("Cms colors: \n"); for(i = 0; i <= cms_size - 1; i++) printf("%d %d %d \n", (int)(cms_colors + i)->red, (int)(cms_colors + i)->green, (int)(cms_colors + i)->blue); free(cms_colors); printf("\n"); cms_x_colors = (XColor *)malloc(cms_size * sizeof(XColor)); cms_x_colors = (XColor *)xv_get(cms, CMS_X_COLORS, cms_x_colors); printf("Cms XColors: \n"); for(i = 0; i <= cms_size - 1; i++) printf("%d %d %d \n", (int)(cms_x_colors + i)->red, (int)(cms_x_colors + i)->green, (int)(cms_x_colors + i)->blue); free(cms_x_colors); printf("\n"); } canvas = xv_create(frame, CANVAS, /* WIN_DYNAMIC_VISUAL, dynamic_colors, */ XV_VISUAL_CLASS, PseudoColor, CANVAS_REPAINT_PROC, canvas_repaint_proc, CANVAS_X_PAINT_WINDOW, TRUE, WIN_CMS, cms, 0); window_fit(frame); xv_main_loop(frame); return(0); } /* * canvas_repaint_proc() * Draws onto the canvas using Xlib drawing functions. */ void canvas_repaint_proc(canvas, pw, display, xid, xrects) Canvas canvas; Xv_Window pw; Display *display; Window xid; Xv_xrectlist *xrects; { static GC gc = NULL; XGCValues gcvalues; int gcvaluemask; register int i; if (gc == NULL) { /* setup gc for rendering colors */ gcvalues.function = GXcopy; gcvalues.fill_style = FillSolid; gcvaluemask = GCFunction | GCFillStyle; gc = XCreateGC(display, xid, gcvaluemask, &gcvalues); if(gc == NULL) { fprintf(stderr, "XCreateGC failed ... exiting... \n"); exit(1); } } for (i = 0; i <= cms_size - 1; i++) { XSetForeground(display, gc, index_table[i]); XFillRectangle(display, xid, gc, CHIP_WIDTH, CHIP_HEIGHT * (i + 1), CHIP_WIDTH, CHIP_HEIGHT); } } initialize_colors(colors) Xv_Singlecolor *colors; { colors[GRAY].red = 220; colors[GRAY].green = 220; colors[GRAY].blue = 220; colors[YELLOW].red = 255; colors[YELLOW].green = 255; colors[YELLOW].blue = 0; colors[PINK].red = 188; colors[PINK].green = 143; colors[PINK].blue = 143; colors[VIOLET].red = 159; colors[VIOLET].green = 95; colors[VIOLET].blue = 159; colors[RED].red = 255; colors[RED].green = 0; colors[RED].blue = 0; colors[GREEN].red = 0; colors[GREEN].green = 255; colors[GREEN].blue = 0; colors[BLACK].red = 0; colors[BLACK].green = 0; colors[BLACK].blue = 0; colors[BLUE].red = 0; colors[BLUE].green = 0; colors[BLUE].blue = 255; } xview-3.2p1.4/contrib/examples/color/x_draw.c100644 1750 1750 12306 5413747570 16504 0ustar mbmb/* * x_draw.c -- demonstrates the use of Xlib drawing functions * inside an XView canvas. Color is used, but not required. */ #include #include #include #include /* indices into color table renders specified colors. */ #define WHITE 0 #define RED 1 #define GREEN 2 #define BLUE 3 #define ORANGE 4 #define AQUA 5 #define PINK 6 #define BLACK 7 GC gc; /* GC used for Xlib drawing */ unsigned long *colors; /* the color table */ /* * initialize cms data to support colors specified above. Assign * data to new cms -- use either static or dynamic cms depending * on -dynamic command line switch. */ main(argc, argv) int argc; char *argv[]; { static unsigned char stipple_bits[] = {0xAA, 0xAA, 0x55, 0x55}; static Xv_singlecolor cms_colors[] = { { 255, 255, 255 }, { 255, 0, 0 }, { 0, 255, 0 }, { 0, 0, 255 }, { 250, 130, 80 }, { 30, 230, 250 }, { 230, 30, 250 }, }; Cms cms; Frame frame; Canvas canvas; XFontStruct *font; Display *display; XGCValues gc_val; XID xid; void canvas_repaint(); Xv_cmsdata cms_data; int use_dynamic = FALSE; /* Create windows */ xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); if (*++argv && !strcmp(*argv, "-dynamic")) use_dynamic = TRUE; frame = xv_create(NULL,FRAME, FRAME_LABEL, "xv_canvas_x_draw", XV_WIDTH, 400, XV_HEIGHT, 300, NULL); cms = xv_create(NULL, CMS, CMS_SIZE, 7, CMS_TYPE, use_dynamic? XV_DYNAMIC_CMS : XV_STATIC_CMS, CMS_COLORS, cms_colors, NULL); canvas = xv_create(frame, CANVAS, CANVAS_REPAINT_PROC, canvas_repaint, CANVAS_X_PAINT_WINDOW, TRUE, /* WIN_DYNAMIC_VISUAL, use_dynamic, */ XV_VISUAL_CLASS, PseudoColor, WIN_CMS, cms, NULL); /* Get display and xid */ display = (Display *)xv_get(frame, XV_DISPLAY); xid = (XID)xv_get(canvas_paint_window(canvas), XV_XID); if (!(font = XLoadQueryFont(display, "fixed"))) { puts("cannot load fixed font"); exit(1); } /* Create and initialize GC */ gc_val.font = font->fid; gc_val.stipple = XCreateBitmapFromData(display, xid, (char *)stipple_bits, 16, 2); gc = XCreateGC(display, xid, GCFont | GCStipple, &gc_val); /* get the colormap from the canvas now that * the cms has been installed */ colors = (unsigned long *)xv_get(canvas, WIN_X_COLOR_INDICES); /* Start event loop */ xv_main_loop(frame); } /* * Draws onto the canvas using Xlib drawing functions. */ void canvas_repaint(canvas, pw, display, xid, xrects) Canvas canvas; Xv_Window pw; Display *display; Window xid; Xv_xrectlist *xrects; { static XPoint box[] = { {0,0}, {100,100}, {0,-100}, {-100,100}, {0,-100} }; static XPoint points[] = { {0,0}, /* this point to be overwritten below */ {25,0}, {25,0}, {25,0}, {25,0}, {-100,25}, {25,0}, {25,0}, {25,0}, {25,0}, {-100,25}, {25,0}, {25,0}, {25,0}, {25,0}, {-100,25}, {25,0}, {25,0}, {25,0}, {25,0}, {-100,25}, {25,0}, {25,0}, {25,0}, {25,0}, {-100,25}, }; XSetForeground(display, gc, colors[RED]); XDrawString(display, xid, gc, 30, 20, "XFillRectangle", 14); XFillRectangle(display, xid, gc, 25, 25, 100, 100); XSetFunction(display, gc, GXinvert); XFillRectangle(display, xid, gc, 50, 50, 50, 50); XSetFunction(display, gc, GXcopy); XSetForeground(display, gc, colors[BLACK]); XDrawString(display, xid, gc, 155, 20, "XFillRect - stipple", 19); XSetFillStyle(display, gc, FillStippled); XFillRectangle(display, xid, gc, 150, 25, 100, 100); XSetFillStyle(display, gc, FillSolid); XSetForeground(display, gc, colors[BLUE]); XDrawString(display, xid, gc, 280, 20, "XDrawPoints", 11); points[0].x = 275; points[0].y = 25; XDrawPoints(display, xid, gc, points, sizeof(points)/sizeof(XPoint), CoordModePrevious); XSetForeground(display, gc, colors[ORANGE]); XDrawString(display, xid, gc, 30, 145, "XDrawLine - solid", 17); XDrawLine(display, xid, gc, 25, 150, 125, 250); XDrawLine(display, xid, gc, 25, 250, 125, 150); XSetForeground(display, gc, colors[AQUA]); XDrawString(display, xid, gc, 155, 145, "XDrawLine - dashed", 18); XSetLineAttributes(display, gc, 5, LineDoubleDash, CapButt, JoinMiter); XDrawLine(display, xid, gc, 150, 150, 250, 250); XDrawLine(display, xid, gc, 150, 250, 250, 150); XSetLineAttributes(display, gc, 0, LineSolid, CapButt, JoinMiter); XSetForeground(display, gc, colors[PINK]); XDrawString(display, xid, gc, 280, 145, "XDrawLines", 10); box[0].x = 275; box[0].y = 150; XDrawLines(display, xid, gc, box, 5, CoordModePrevious); XSetForeground(display, gc, colors[GREEN]); XDrawRectangle(display, xid, gc, 5, 5, xv_get(pw, XV_WIDTH)-10, xv_get(pw, XV_HEIGHT)-10); XDrawRectangle(display, xid, gc, 7, 7, xv_get(pw, XV_WIDTH)-14, xv_get(pw, XV_HEIGHT)-14); } xview-3.2p1.4/contrib/examples/cursor/ 40755 1750 1750 0 6354605713 15131 5ustar mbmbxview-3.2p1.4/contrib/examples/cursor/Imakefile100644 1750 1750 1517 5413747571 17047 0ustar mbmb#include /**/########################################################################## /**/# @(#)Imakefile 1.7 90/08/02 SMI /**/# Imakefile for examples/cursor #define InstallSrcs YES LOCATION = examples/cursor DEFINES = -DSTANDALONE $(XVCLIENTSYSDEFINES) SYS_LIBRARIES = INCLUDES = -I. -I$(HEADER_DEST) -I$(TOP) DEPLIBS = XViewClientDepLibs LOCAL_LIBRARIES = XViewClientLibs MAKEFILE_SIMPLE = Makefile.customer SRCS = hot_spot.c simple_cursor.c stop_cursor.c INSTALL_SRCS = $(SRCS) ALLFILES = $(MAKEFILE_SIMPLE) $(SRCS) PROGRAMS= hot_spot simple_cursor stop_cursor AllTarget($(PROGRAMS)) SingleProgramTarget(hot_spot,hot_spot.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(simple_cursor,simple_cursor.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(stop_cursor,stop_cursor.o,$(LOCAL_LIBRARIES), /**/) #include xview-3.2p1.4/contrib/examples/cursor/Makefile.customer100644 1750 1750 1332 5413747571 20531 0ustar mbmb# # @(#)Makefile.customer 1.7 92/02/24 # # Makefile for the cursor example programs for XView programmers # OSTYPE = SUNOS5 INCLUDE = -I${OPENWINHOME}/include # # If you want to compile for debugging, change "-O" to "-g" # CFLAGS_SUNOS41 = ${INCLUDE} -O CFLAGS_SUNOS5 = ${INCLUDE} -DSVR4 -O CFLAGS = $(CFLAGS_$(OSTYPE)) # if you want special to pass special loader options to ld, set # LDFLAGS= ... # XVIEW_LIBS = -L${OPENWINHOME}/lib \ -lxview -lolgx -lX11 CFILES = hot_spot.c \ simple_cursor.c \ stop_cursor.c OBJS = hot_spot \ simple_cursor \ stop_cursor all: ${OBJS} ${OBJS}: $$@.c $$@.o ${CC} ${CFLAGS} ${LDFLAGS} -o $@ $@.o ${XVIEW_LIBS} clean: rm -f core ${OBJS} *.o xview-3.2p1.4/contrib/examples/cursor/hot_spot.c100644 1750 1750 6026 5413747571 17241 0ustar mbmb/* * hot_spot.c -- create a cursor and query it's position on the * screen and in the panel's window. * Our own function, create_cursor(), attaches a new cursor to the * window parameter passed into the function. */ #include #include /* for the xlib graphics */ #include #include #include #include main(argc, argv) int argc; char *argv[]; { Frame frame; Panel panel; void do_it(); xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); /* * Create a base frame, a panel, and a panel button. */ frame = (Frame)xv_create(XV_NULL, FRAME, NULL); panel = (Panel)xv_create(frame, PANEL, NULL); create_cursor(xv_get(panel, CANVAS_NTH_PAINT_WINDOW, 0)); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Push Me", PANEL_NOTIFY_PROC, do_it, NULL); window_fit(panel); window_fit(frame); window_main_loop(frame); } /* * when user selects the panel button, the current mouse location is * printed relative to the panel's window and to the screen. * This location is governed by the hot spot on the cursor. */ void do_it(item, event) { Rect *r; Panel panel = (Panel)xv_get(item, PANEL_PARENT_PANEL); r = (Rect *)xv_get(xv_get(panel, XV_ROOT), WIN_MOUSE_XY); printf("Root window: %d %d\n", r->r_left, r->r_top); r = (Rect *)xv_get(xv_get(panel, CANVAS_NTH_PAINT_WINDOW, 0), WIN_MOUSE_XY); printf("Panel window: %d %d\n", r->r_left, r->r_top); } /* * create_cursor() creates a bull's eye cursor and assigns it * to the window (parameter). */ create_cursor(window) Xv_Window window; { Xv_Cursor cursor; Server_image image; Pixmap pixmap; Display *dpy = (Display *)xv_get(window, XV_DISPLAY); GC gc; XGCValues gcvalues; image = (Server_image)xv_create(XV_NULL, SERVER_IMAGE, XV_WIDTH, 16, XV_HEIGHT, 16, NULL); pixmap = (Pixmap)xv_get(image, XV_XID); /* Create GC with reversed foreground and background colors to * clear pixmap first. Use 1 and 0 because pixmap is 1-bit deep. */ gcvalues.foreground = 0; gcvalues.background = 1; gc = XCreateGC(dpy, pixmap, GCForeground|GCBackground, &gcvalues); XFillRectangle(dpy, pixmap, gc, 0, 0, 16, 16); /* * Reset foreground and background values for XDrawArc() routines. */ gcvalues.foreground = 1; gcvalues.background = 0; XChangeGC(dpy, gc, GCForeground | GCBackground, &gcvalues); XDrawArc(dpy, pixmap, gc, 2, 2, 12, 12, 0, 360 * 64); XDrawArc(dpy, pixmap, gc, 6, 6, 4, 4, 0, 360 * 64); /* Creaste cursor and assign it to the window (parameter) */ cursor = xv_create(XV_NULL, CURSOR, CURSOR_IMAGE, image, CURSOR_XHOT, 7, CURSOR_YHOT, 7, NULL); xv_set(window, WIN_CURSOR, cursor, NULL); /* free the GC -- the cursor and the image must not be freed. */ XFreeGC(dpy, gc); } xview-3.2p1.4/contrib/examples/cursor/simple_cursor.c100644 1750 1750 3153 5413747571 20266 0ustar mbmb/* * simple_cursor.c -- create a cursor (looks like an hourglass) and * assign it to a canvas window. */ #include #include #include #include /* data that describes the cursor's image -- see SERVER_IMAGE below */ short cursor_bits[] = { /* Width=16, Height=16, Depth=1, */ 0x7FFE,0x4002,0x200C,0x1A38,0x0FF0,0x07E0,0x03C0,0x0180, 0x0180,0x0240,0x0520,0x0810,0x1108,0x23C4,0x47E2,0x7FFE }; main(argc, argv) int argc; char *argv[]; { Frame frame; Canvas canvas; Xv_Cursor cursor; Server_image svr_image; xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); /* * create a server image to use as the cursor's image. */ svr_image = (Server_image)xv_create(XV_NULL, SERVER_IMAGE, XV_WIDTH, 16, XV_HEIGHT, 16, SERVER_IMAGE_BITS, cursor_bits, NULL); /* * create a cursor based on the image just created */ cursor = (Xv_Cursor)xv_create(XV_NULL, CURSOR, CURSOR_IMAGE, svr_image, NULL); /* * Create a base frame and a canvas */ frame = (Frame)xv_create(XV_NULL, FRAME, NULL); canvas = (Canvas)xv_create(frame, CANVAS, XV_WIDTH, 100, XV_HEIGHT, 100, NULL); /* * set the cursor to the paint window for the canvas * Do not set it for the canvas itself. */ xv_set(xv_get(canvas, CANVAS_NTH_PAINT_WINDOW, 0), WIN_CURSOR, cursor, NULL); window_fit(frame); window_main_loop(frame); } xview-3.2p1.4/contrib/examples/cursor/stop_cursor.c100644 1750 1750 2771 5413747571 17767 0ustar mbmb/* * color_cursor.c -- create a predefined cursor and assign it to a canvas. */ #include #include #include #include void do_it(item, event) { Rect *r; Panel panel = xv_get(item, PANEL_PARENT_PANEL); r = (Rect *)xv_get(xv_get(panel, XV_ROOT), WIN_MOUSE_XY); fprintf(stderr, "Root window: "); rect_print(r); fputc('\n', stderr); r = (Rect *)xv_get(xv_get(panel, CANVAS_NTH_PAINT_WINDOW, 0), WIN_MOUSE_XY); fprintf(stderr, "panel window: "); rect_print(r); fputc('\n', stderr); } main(argc, argv) int argc; char *argv[]; { Frame frame; Canvas canvas; Xv_Cursor cursor; xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv); /* * create a cursor based on the image just created */ cursor = xv_create(XV_NULL, CURSOR, CURSOR_SRC_CHAR, OLC_STOP_PTR, NULL); /* * Create a base frame and a canvas */ frame = xv_create(XV_NULL, FRAME, NULL); canvas = xv_create(frame, PANEL, XV_WIDTH, 100, XV_HEIGHT, 100, NULL); /* * set the cursor to the paint window for the canvas * Do not set it for the canvas itself. */ xv_set(xv_get(canvas, CANVAS_NTH_PAINT_WINDOW, 0), WIN_CURSOR, cursor, NULL); xv_create(canvas, PANEL_BUTTON, PANEL_LABEL_STRING, "Do It", PANEL_NOTIFY_PROC, do_it, NULL); window_fit(frame); window_main_loop(frame); } xview-3.2p1.4/contrib/examples/defaults/ 40755 1750 1750 0 6354605713 15423 5ustar mbmbxview-3.2p1.4/contrib/examples/defaults/Imakefile100644 1750 1750 1375 5413747572 17344 0ustar mbmb#include /**/########################################################################## /**/# @(#)Imakefile 1.7 90/08/02 SMI /**/# Imakefile for examples/defaults #define InstallSrcs YES LOCATION = examples/defaults DEFINES = -DSTANDALONE $(XVCLIENTSYSDEFINES) SYS_LIBRARIES = INCLUDES = -I. -I$(HEADER_DEST) -I$(TOP) DEPLIBS = XViewClientDepLibs LOCAL_LIBRARIES = XViewClientLibs MAKEFILE_SIMPLE = Makefile.customer SRCS = default_size.c default_text.c INSTALL_SRCS = $(SRCS) ALLFILES = $(MAKEFILE_SIMPLE) $(SRCS) PROGRAMS= default_size default_text AllTarget($(PROGRAMS)) SingleProgramTarget(default_size,default_size.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(default_text,default_text.o,$(LOCAL_LIBRARIES), /**/) #include xview-3.2p1.4/contrib/examples/defaults/Makefile.customer100644 1750 1750 1325 5413747573 21027 0ustar mbmb# # @(#)Makefile.customer 1.7 92/02/24 # # Makefile for the defaults example programs for XView programmers # OSTYPE = SUNOS5 INCLUDE = -I${OPENWINHOME}/include # # If you want to compile for debugging, change "-O" to "-g" # CFLAGS_SUNOS41 = ${INCLUDE} -O CFLAGS_SUNOS5 = ${INCLUDE} -DSVR4 -O CFLAGS = $(CFLAGS_$(OSTYPE)) # if you want special to pass special loader options to ld, set # LDFLAGS= ... # XVIEW_LIBS = -L${OPENWINHOME}/lib \ -lxview -lolgx -lX11 CFILES = default_size.c \ default_text.c OBJS = default_size \ default_text all: ${OBJS} ${OBJS}: $$@.c $$@.o ${CC} ${CFLAGS} ${LDFLAGS} -o $@ $@.o ${XVIEW_LIBS} clean: rm -f core ${OBJS} *.o xview-3.2p1.4/contrib/examples/defaults/default_size.c100644 1750 1750 2542 5413747573 20353 0ustar mbmb/* * default_scale.c -- demonstrate the use of defaults_get_enum(). * Specify a table of font scales and query the resource database * for legal values. For example, you may have the following in * your .Xdefaults (which must be loaded into the resource database): * font.scale: large */ #include #include #include #include Defaults_pairs size_pairs[] = { "small", WIN_SCALE_SMALL, "medium", WIN_SCALE_MEDIUM, "large", WIN_SCALE_LARGE, "extralarge", WIN_SCALE_EXTRALARGE, /* the NULL entry is the default if Resource not found */ NULL, WIN_SCALE_MEDIUM, }; main(argc, argv) char *argv[]; { Frame frame; Xv_Font font; int scale; xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create(NULL, FRAME, NULL); scale = defaults_get_enum("font.scale", "Font.Scale", size_pairs); /* get the default font for the frame, scaled to resource */ font = xv_find(frame, FONT, FONT_RESCALE_OF, xv_find(frame, FONT, NULL), scale, NULL); xv_create(frame, TEXTSW, XV_FONT, font, WIN_COLUMNS, 80, WIN_ROWS, 10, NULL); window_fit(frame); xv_main_loop(frame); } xview-3.2p1.4/contrib/examples/defaults/default_text.c100644 1750 1750 1401 5413747573 20356 0ustar mbmb/* * default_text.c -- use the defaults package to get a font name from * the resource database to set the textsw's font. */ #include #include #include #include main(argc, argv) char *argv[]; { Frame frame; Xv_Font font; char *name; xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create(NULL, FRAME, NULL); name = defaults_get_string("textsw.font","Textsw.Font", "fixed"), font = xv_find(frame, FONT, FONT_NAME, name, NULL); xv_create(frame, TEXTSW, XV_FONT, font, WIN_COLUMNS, 80, WIN_ROWS, 10, NULL); window_fit(frame); xv_main_loop(frame); } xview-3.2p1.4/contrib/examples/extensions/ 40755 1750 1750 0 6354605713 16013 5ustar mbmbxview-3.2p1.4/contrib/examples/extensions/panel_items/ 40755 1750 1750 0 6354605713 20313 5ustar mbmbxview-3.2p1.4/contrib/examples/extensions/panel_items/wizzy.c100644 1750 1750 30404 5413747577 22003 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)wizzy.c 1.1 91/02/28"; #endif #endif #include #include #include #define WIZZY_CAN_ACCEPT_KBD_FOCUS #define WIZZY_PRIVATE(item) \ XV_PRIVATE(Wizzy_info, Xv_panel_wizzy, item) /* Item specific definitions */ #define INITIAL_OFFSET 10 #define BLOCK_WIDTH 16 #define BLOCK_HEIGHT 12 /* XView functions */ Pkg_private int wizzy_init(); Pkg_private Xv_opaque wizzy_set_avlist(); Pkg_private Xv_opaque wizzy_get_attr(); Pkg_private int wizzy_destroy(); /* Panel Item Operations * * Declare all wizzy item handler procedures used in the Ops Vector Table */ static void wizzy_begin_preview(); static void wizzy_update_preview(); static void wizzy_cancel_preview(); static void wizzy_accept_preview(); static void wizzy_accept_menu(); static void wizzy_accept_key(); static void wizzy_paint(); static void wizzy_remove(); static void wizzy_restore(); static void wizzy_layout(); #ifdef WIZZY_CAN_ACCEPT_KBD_FOCUS static void wizzy_accept_kbd_focus(); static void wizzy_yield_kbd_focus(); #endif WIZZY_CAN_ACCEPT_KBD_FOCUS /* * Panel Operations Vector Table for this item. * * If any of the operations do not apply, then use NULL as the handler address. */ static Panel_ops ops = { panel_default_handle_event, /* handle_event() */ wizzy_begin_preview, /* begin_preview() */ wizzy_update_preview, /* update_preview() */ wizzy_cancel_preview, /* cancel_preview() */ wizzy_accept_preview, /* accept_preview() */ wizzy_accept_menu, /* accept_menu() */ wizzy_accept_key, /* accept_key() */ wizzy_clear, /* clear() */ wizzy_paint, /* paint() */ wizzy_resize, /* resize() */ wizzy_remove, /* remove() */ wizzy_restore, /* restore() */ wizzy_layout, /* layout() */ #ifdef WIZZY_CAN_ACCEPT_KBD_FOCUS wizzy_accept_kbd_focus, /* accept_kbd_focus() */ wizzy_yield_kbd_focus, /* yield_kbd_focus() */ #else NULL, /* accept_kbd_focus() */ NULL, /* yield_kbd_focus() */ #endif WIZZY_CAN_ACCEPT_KBD_FOCUS NULL /* extension: reserved for future use */ }; typedef struct wizzy_info { Panel_item public_self;/* back pointer to object */ /* * Wizzy private data goes here. * *** All references to these entries is for illustration * *** purposes only. They are to be replaced with your * *** item's private data requirements. */ Rect block; /* Some rectangle within the item */ GC gc; /* Graphics Context */ int offset; /* The block's offset */ Panel panel; /* Panel this item is owned by */ #ifdef WIZZY_CAN_ACCEPT_KBD_FOCUS int has_kbd_focus; /* TRUE or FALSE */ #endif WIZZY_CAN_ACCEPT_KBD_FOCUS } Wizzy_info; /* ========================================================================= */ /* -------------------- XView Functions -------------------- */ Pkg_private int wizzy_init(panel, item, avlist) Panel panel; Panel_item item; Attr_avlist avlist; { Xv_panel_wizzy *item_object = (Xv_panel_wizzy *) item; Display *display; Wizzy_info *dp; XGCValues values; XID xid; dp = xv_alloc(Wizzy_info); item_object->private_data = (Xv_opaque) dp; dp->public_self = item; /* * Initialize non-zero private data */ display = (Display *) XV_DISPLAY_FROM_WINDOW(panel); xid = (XID) xv_get(panel, XV_XID); values.foreground = BlackPixel(display, 0); dp->gc = XCreateGC(display, xid, GCForeground, &values); dp->offset = INITIAL_OFFSET; dp->panel = panel; /* * Process avlist for create-only attributes. */ for ( ; *avlist; avlist = attr_next(avlist)) { switch ((int) avlist[0]) { /* case : */ default: break; } } xv_set(item, PANEL_OPS_VECTOR, &ops, #ifdef WIZZY_CAN_ACCEPT_KBD_FOCUS PANEL_ACCEPT_KEYSTROKE, TRUE, #endif WIZZY_CAN_ACCEPT_KBD_FOCUS 0); return XV_OK; } Pkg_private Xv_opaque wizzy_set_avlist(item, avlist) Panel_item item; Attr_avlist avlist; { Wizzy_info *dp = WIZZY_PRIVATE(item); Xv_opaque result; Rect value_rect; if (*avlist != XV_END_CREATE) { /* Call generic item set code to handle layout attributes. * Prevent panel_redisplay_item from being called in item_set_avlist. */ xv_set(dp->panel, PANEL_NO_REDISPLAY_ITEM, TRUE, 0); result = xv_super_set_avlist(item, &xv_panel_wizzy_pkg, avlist); xv_set(dp->panel, PANEL_NO_REDISPLAY_ITEM, FALSE, 0); if (result != XV_OK) return result; } /* Parse Attribute-Value List. Complete initialization upon * receipt of XV_END_CREATE. */ for ( ; *avlist; avlist = attr_next(avlist)) { switch ((int) avlist[0]) { case WIZZY_OFFSET: dp->offset = (int) avlist[1]; break; case XV_END_CREATE: value_rect = *(Rect *) xv_get(item, PANEL_ITEM_VALUE_RECT); rect_construct(&dp->block, value_rect.r_left + dp->offset, value_rect.r_top, BLOCK_HEIGHT, BLOCK_WIDTH); value_rect = rect_bounding(&value_rect, &dp->block); /* Note: Setting the value rect will cause the item rect to be * recalculated as the enclosing rect containing both the label * and value rects. */ xv_set(item, PANEL_ITEM_VALUE_RECT, &value_rect, 0); break; default: break; } } return XV_OK; /* return XV_ERROR if something went wrong... */ } /*ARGSUSED*/ Pkg_private Xv_opaque wizzy_get_attr(item, status, which_attr, avlist) Panel_item item; int *status; /* set to XV_ERROR if something goes wrong */ register Attr_attribute which_attr; va_list avlist; { Wizzy_info *dp = WIZZY_PRIVATE(item); switch (which_attr) { case WIZZY_OFFSET: return (Xv_opaque) dp->offset; default: *status = XV_ERROR; return (Xv_opaque) 0; } } /*ARGSUSED*/ Pkg_private int wizzy_destroy(item, status) Panel_item item; Destroy_status status; { Wizzy_info *dp = WIZZY_PRIVATE(item); if ((status == DESTROY_CHECKING) || (status == DESTROY_SAVE_YOURSELF)) return XV_OK; #ifdef WIZZY_CAN_ACCEPT_KBD_FOCUS wizzy_remove(item); #endif WIZZY_CAN_ACCEPT_KBD_FOCUS free(dp); return XV_OK; } /* -------------------- Panel Item Operations -------------------- */ /*ARGSUSED*/ static void wizzy_begin_preview(item, event) Panel_item item; Event *event; { /* * SELECT-down has occurred over the item. * Highlight the item to show the active feedback, * but do not take any action yet. */ } /*ARGSUSED*/ static void wizzy_update_preview(item, event) Panel_item item; Event *event; { /* * The pointer as been dragged within the item after * beginning a preview. Adjust the highlighting to * reflect the new position of the pointer, and update * appropriate private data. */ } /*ARGSUSED*/ static void wizzy_cancel_preview(item, event) Panel_item item; Event *event; { /* * The pointer as been dragged out of the item after * beginning a preview. Remove the active feedback * (i.e., unhighlight) and clean up any private data. */ } /*ARGSUSED*/ static void wizzy_accept_preview(item, event) Panel_item item; Event *event; { /* * The SELECT button has been released over the item. * Remove the active feedback (i.e., unhighlight), * paint the busy feedback, * perform the action associated with the item, * and then remove the busy feedback. */ } /*ARGSUSED*/ static void wizzy_accept_menu(item, event) Panel_item item; Event *event; { /* * The MENU button has been depressed over the item. * Show the menu attached to the item, if any. */ } /*ARGSUSED*/ static void wizzy_accept_key(item, event) Panel_item item; Event *event; { /* * A keyboard event has occurred. Process the key, * and update the display. */ } static void wizzy_clear(item_public) Panel_item item_public; { /* * Clear the item rectangle. Update any private data as needed. */ panel_default_clear_item(item_public); } /*ARGSUSED*/ static void wizzy_paint(item) Panel_item item; { Display *display; Wizzy_info *dp = WIZZY_PRIVATE(item); Panel_paint_window *ppw; /* ptr to Panel_paint_window structure */ Xv_Window pw; /* paint window */ XID xid; /* * Do everything necessary to paint the entire item. * Don't go outside of the PANEL_ITEM_RECT, the rectangle describing the * boundaries of the item. */ /* Paint the label */ panel_paint_label(item); /* Paint the value. * In this wizzy example, we paint something into dp->block. */ display = (Display *) XV_DISPLAY_FROM_WINDOW(dp->panel); for (ppw = (Panel_paint_window *) xv_get(dp->panel, PANEL_FIRST_PAINT_WINDOW); ppw; ppw = ppw->next) { pw = ppw->pw; /* pw = the actual window to paint in */ xid = (XID) xv_get(pw, XV_XID); XFillRectangle(display, xid, dp->gc, dp->block.r_left, dp->block.r_top, dp->block.r_width, dp->block.r_height); } } /*ARGSUSED*/ static void wizzy_resize(item) Panel_item item; { /* * The panel has been resized. Recalculate any extend-to-edge dimensions. */ } /*ARGSUSED*/ static void wizzy_remove(item) Panel_item item; { /* * The item has been made hidden via xv_set(item, XV_SHOW, FALSE, avlist). */ #ifdef WIZZY_CAN_ACCEPT_KBD_FOCUS Wizzy_info *dp = WIZZY_PRIVATE(item); Panel_status *panel_status; /* * Only reassign the keyboard focus to another item if the panel isn't * being destroyed. */ panel_status = (Panel_status *) xv_get(dp->panel, PANEL_STATUS); if (!panel_status->destroying && xv_get(dp->panel, PANEL_CARET_ITEM) == item) (void) panel_advance_caret(dp->panel); #endif WIZZY_CAN_ACCEPT_KBD_FOCUS } /*ARGSUSED*/ static void wizzy_restore(item) Panel_item item; { /* * The item has been made visible via xv_set(item, XV_SHOW, TRUE, avlist). */ #ifdef WIZZY_CAN_ACCEPT_KBD_FOCUS Wizzy_info *dp = WIZZY_PRIVATE(item); /* If no item has the keyboard focus, then give this item the focus */ if (!xv_get(dp->panel, PANEL_CARET_ITEM)) xv_set(dp->panel, PANEL_CARET_ITEM, item, 0); #endif WIZZY_CAN_ACCEPT_KBD_FOCUS } /*ARGSUSED*/ static void wizzy_layout(item, deltas) Panel_item item; Rect *deltas; { /* * The item has been moved. Adjust the item coordinates. */ Wizzy_info *dp = WIZZY_PRIVATE(item); dp->block.r_left += deltas->r_left; dp->block.r_top += deltas->r_top; } #ifdef WIZZY_CAN_ACCEPT_KBD_FOCUS /*ARGSUSED*/ static void wizzy_accept_kbd_focus(item) Panel_item item; { /* * The keyboard focus has been set to this item. * Change the keyboard focus feedback to active, and * update private data as necessary. */ Wizzy_info *dp = WIZZY_PRIVATE(item); Frame frame; int x; int y; dp->has_kbd_focus = TRUE; frame = xv_get(dp->panel, WIN_FRAME); if (xv_get(dp->panel, PANEL_LAYOUT) == PANEL_HORIZONTAL) { xv_set(frame, FRAME_FOCUS_DIRECTION, FRAME_FOCUS_UP, 0); x = dp->block.r_left + (dp->block.r_width - FRAME_FOCUS_UP_WIDTH)/2; y = dp->block.r_top + dp->block.r_height - FRAME_FOCUS_UP_HEIGHT/2; } else { xv_set(frame, FRAME_FOCUS_DIRECTION, FRAME_FOCUS_RIGHT, 0); x = dp->block.r_left - FRAME_FOCUS_RIGHT_WIDTH/2; y = dp->block.r_top + (dp->block.r_height - FRAME_FOCUS_RIGHT_HEIGHT)/2; } if (x < 0) x = 0; if (y < 0) y = 0; panel_show_focus_win(item, frame, x, y); } /*ARGSUSED*/ static void wizzy_yield_kbd_focus(item) Panel_item item; { /* * The keyboard focus has been removed from this item. * Change the keyboard focus feedback to inactive, and * update private data as necessary. */ Wizzy_info *dp = WIZZY_PRIVATE(item); Xv_Window focus_win; Frame frame; dp->has_kbd_focus = FALSE; frame = xv_get(dp->panel, WIN_FRAME); focus_win = xv_get(frame, FRAME_FOCUS_WIN); xv_set(focus_win, XV_SHOW, FALSE, 0); } #endif WIZZY_CAN_ACCEPT_KBD_FOCUS xview-3.2p1.4/contrib/examples/extensions/panel_items/wizzy.h100644 1750 1750 1125 5413747577 21766 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)wizzy.h 1.1 91/02/28"; #endif #endif #include typedef Xv_panel_extension_item Xv_panel_wizzy; extern Xv_pkg xv_panel_wizzy_pkg; #define WIZZY &xv_panel_wizzy_pkg /* Pick an Attribute ID between ATTR_PKG_UNUSED_FIRST and * ATTR_PKG_UNUSED_LAST. The Attribute ID need only be * unique within the heirarchy for this object. */ #define ATTR_WIZZY ATTR_PKG_UNUSED_FIRST #define WIZZY_ATTR(type, ordinal) ATTR(ATTR_WIZZY, type, ordinal) typedef enum { WIZZY_OFFSET = WIZZY_ATTR(ATTR_INT, 1) } Wizzy_attr; xview-3.2p1.4/contrib/examples/extensions/panel_items/wizzy_data.c100644 1750 1750 1035 5413747577 22752 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)wizzy_data.c 1.1 91/02/28"; #endif #endif #include extern Xv_pkg xv_panel_item_pkg; Pkg_private int wizzy_init(); Pkg_private Xv_opaque wizzy_set_avlist(); Pkg_private Xv_opaque wizzy_get_attr(); Pkg_private int wizzy_destroy(); Xv_pkg xv_panel_wizzy_pkg = { "Wizzy Item", ATTR_WIZZY, sizeof(Xv_panel_wizzy), &xv_panel_item_pkg, wizzy_init, wizzy_set_avlist, wizzy_get_attr, wizzy_destroy, NULL /* no find proc */ }; xview-3.2p1.4/contrib/examples/extensions/panel_items/Imakefile100644 1750 1750 664 5413747577 22221 0ustar mbmb#include /**/########################################################################## /**/# @(#)Imakefile 1.5 1/7/92 SMI /**/# Imakefile for examples/extensions #define InstallSrcs YES LOCATION = examples/extensions/panel_items INSTALL_SRCS = wizzy.c wizzy.h wizzy_data.c MakeDirectories(install.srcs, $(SRC_DEST)/$(LOCATION)) InstallExampleSrcsNoMakefile($(INSTALL_SRCS),$(SRC_DEST)/$(LOCATION)) depend:: clean:: xview-3.2p1.4/contrib/examples/extensions/Bitmap.c100644 1750 1750 15271 5413747574 17525 0ustar mbmb/* * Bitmap.c -- an XView object class that displays an arbitrary * pixmap. This is similar to the Logo object, but the programmer * may specify the bitmap to use via the BITMAP_FILE attribute. */ #include "bitmap_impl.h" #include #include #include /* declare the "methods" used by the bitmap class. */ static int bitmap_init(), bitmap_destroy(); static Xv_opaque bitmap_set(), bitmap_get(); static void bitmap_repaint(); Xv_pkg bitmap_pkg = { "Bitmap2", /* package name */ ATTR_PKG_BITMAP, /* package ID */ sizeof(Bitmap_public), /* size of the public struct */ WINDOW, /* subclassed from the window package */ bitmap_init, bitmap_set, bitmap_get, bitmap_destroy, NULL /* disable the use of xv_find() */ }; static void bitmap_redraw(bitmap_public, event) Bitmap_public *bitmap_public; Event *event; { Bitmap_private *bitmap_private = BITMAP_PRIVATE(bitmap_public); XEvent *xevent = event_xevent(event); if (bitmap_private->bitmap && xevent->xany.type == Expose && xevent->xexpose.count == 0) { Display *dpy = (Display *)xv_get(bitmap_public, XV_DISPLAY); Window window = (Window)xv_get(bitmap_public, XV_XID); int width = (int)xv_get(bitmap_public, XV_WIDTH); int height = (int)xv_get(bitmap_public, XV_HEIGHT); int x = (width - bitmap_private->width)/2; int y = (height - bitmap_private->height)/2; XCopyPlane(dpy, bitmap_private->bitmap, window, bitmap_private->gc, 0, 0, bitmap_private->width, bitmap_private->height, x, y, 1L); } else if (xevent->xany.type == ConfigureNotify) XClearArea(xv_get(bitmap_public, XV_DISPLAY), xv_get(bitmap_public, XV_XID), 0, 0, xevent->xconfigure.width, xevent->xconfigure.height, True); } /* initialize the bitmap object by creating (alloc) an instance * of it. There are two parts to an object class: a public part * and a private part. Each contains a pointer to the other, so * link the two together and initialize the remaining fields of * the bitmap data structure. Do no initialize the bitmap's GC * because it is dependent on its window's cms and that isn't * assigned to the window till the "set" method. Also, wait till * till the "set" method to initialize the bitmap file specified. */ static int bitmap_init(owner, bitmap_public, avlist) Xv_opaque owner; Bitmap_public *bitmap_public; Attr_avlist avlist; /* ignored here */ { Bitmap_private *bitmap_private = xv_alloc(Bitmap_private); if (!bitmap_private) return XV_ERROR; /* link the public to the private and vice-versa */ bitmap_public->private_data = (Xv_opaque)bitmap_private; bitmap_private->public_self = (Xv_opaque)bitmap_public; /* set up event handlers to get resize and repaint events */ xv_set(bitmap_public, WIN_NOTIFY_SAFE_EVENT_PROC, bitmap_redraw, WIN_NOTIFY_IMMEDIATE_EVENT_PROC, bitmap_redraw, NULL); return XV_OK; } /* bitmap_set() -- the function called to set attributes in a bitmap * object. This function is called when a bitmap is created after * the init routine as well as when the programmer calls xv_set. */ static Xv_opaque bitmap_set(bitmap_public, avlist) Bitmap_public *bitmap_public; Attr_avlist avlist; { Bitmap_private *bitmap_private = BITMAP_PRIVATE(bitmap_public); Attr_attribute *attrs; for (attrs = avlist; *attrs; attrs = attr_next(attrs)) switch ((int) attrs[0]) { case BITMAP_FILE : { int val, x, y; Display *dpy = (Display *)xv_get(bitmap_public, XV_DISPLAY); Window window = (Window)xv_get(bitmap_public, XV_XID); Pixmap old = bitmap_private->bitmap; if (XReadBitmapFile(dpy, window, attrs[1], &bitmap_private->width, &bitmap_private->height, &bitmap_private->bitmap, &x, &y) != BitmapSuccess) { xv_error(bitmap_public, ERROR_STRING, "Unable to load bitmap file", ERROR_PKG, BITMAP, NULL); bitmap_private->bitmap = old; } break; } case BITMAP_PIXMAP : xv_error(bitmap_public, ERROR_CANNOT_SET, attrs[0], ERROR_PKG, BITMAP, NULL); break; case XV_END_CREATE : { /* this stuff *must* be here rather than in the "init" * routine because the CMS is not loaded into the * window object until the "set" routines are called. */ Cms cms = xv_get(bitmap_public, WIN_CMS); XGCValues gcvalues; Display *dpy = (Display *)xv_get(bitmap_public, XV_DISPLAY); gcvalues.foreground = (unsigned long)xv_get(cms, CMS_FOREGROUND_PIXEL); gcvalues.background = (unsigned long)xv_get(cms, CMS_BACKGROUND_PIXEL); gcvalues.graphics_exposures = False; bitmap_private->gc = XCreateGC(dpy, xv_get(bitmap_public, XV_XID), GCForeground|GCBackground|GCGraphicsExposures, &gcvalues); } default : xv_check_bad_attr(BITMAP, attrs[0]); break; } return XV_OK; } static Xv_opaque bitmap_get(bitmap_public, status, attr, args) Bitmap_public *bitmap_public; int *status; Attr_attribute attr; Attr_avlist args; { Bitmap_private *bitmap_private = BITMAP_PRIVATE(bitmap_public); switch ((int) attr) { case BITMAP_PIXMAP : return (Xv_opaque)bitmap_private->bitmap; case BITMAP_FILE : /* can't get this attribute */ default : *status = xv_check_bad_attr(BITMAP, attr); return (Xv_opaque)XV_OK; } } /* destroy method: free the pixmap and the GC before freeing object */ static int bitmap_destroy(bitmap_public, status) Bitmap_public *bitmap_public; Destroy_status status; { Bitmap_private *bitmap_private = BITMAP_PRIVATE(bitmap_public); if (status == DESTROY_CLEANUP) { if (bitmap_private->bitmap) XFreePixmap(xv_get(bitmap_public, XV_DISPLAY), bitmap_private->bitmap); XFreeGC(xv_get(bitmap_public, XV_DISPLAY), bitmap_private->gc); free(bitmap_private); } return XV_OK; } xview-3.2p1.4/contrib/examples/extensions/Image.c100644 1750 1750 20764 5413747574 17336 0ustar mbmb/* * Image.c -- An extension to the Server_image object to support * xv_find(). This is done by creating a list of all the image * objects of this type and attaching it to the owner (screen). * The "screen" is chosen because when xv_find() is called, you * need to find the object associated with the same "screen" as * the owner's screen, otherwise what we return may not render * correctly. */ #include "image_impl.h" static int image_init(), image_destroy(); static Xv_opaque image_get(), image_set(), image_find(); static void image_repaint(); Xv_pkg image_pkg = { "Image", /* package name */ ATTR_PKG_IMAGE, /* package ID */ sizeof(Image_public), /* size of the public struct */ SERVER_IMAGE, /* subclassed from the server image */ image_init, image_set, image_get, image_destroy, image_find }; /* initialize the image object -- create (alloc) an instance of it and * connect the public and private parts. Since this package supports * xv_find(), createa linked list and/or append the newly created * instance of this object to the end of the list. */ static int image_init(owner, image_public, avlist) Xv_Screen owner; Image_public *image_public; Attr_avlist avlist; /* ignored here */ { Attr_attribute *attrs; Image_private *image_private = xv_alloc(Image_private); Image_private *list; /* linked list of image instances */ Xv_Screen screen = owner? owner : xv_default_screen; if (!image_private || !screen) return XV_ERROR; /* link the public to the private and vice-versa */ image_public->private_data = (Xv_opaque)image_private; image_private->public_self = (Xv_opaque)image_public; for (attrs = avlist; *attrs; attrs = attr_next(attrs)) if (attrs[0] == SERVER_IMAGE_BITMAP_FILE) image_private->filename = strcpy(malloc(strlen(attrs[1])+1), attrs[1]); image_private->next = (Image_private *)NULL; image_private->screen = screen; /* get the list of existing images from the screen */ if (list = (Image_private *)xv_get(screen, XV_KEY_DATA, ATTR_PKG_IMAGE)) { /* follow list till the end */ while (list->next) list = list->next; /* assign new image object to end of list */ list->next = image_private; } else { /* no image objects on this screen -- create a new list */ xv_set(screen, XV_KEY_DATA, ATTR_PKG_IMAGE, image_private, NULL); } return XV_OK; } /* image_set() -- needed to track whether "filename" changes */ static Xv_opaque image_set(image_public, avlist) Image_public *image_public; Attr_avlist avlist; { Attr_attribute *attrs; Image_private *image_private = IMAGE_PRIVATE(image_public); /* loop thru attrs looking for anything that would invalidate * the fact that the filename is set to a valid file. If the * programmer is assigning a new pixmap or data to this server * image, the filename that was originally associated with the * object is no longer valid. Disable for later get/find calls. */ if (image_private->filename) for (attrs = avlist; *attrs; attrs = attr_next(attrs)) if (attrs[0] == SERVER_IMAGE_PIXMAP || attrs[0] == SERVER_IMAGE_BITS || attrs[0] == SERVER_IMAGE_X_BITS) { free(image_private->filename); image_private->filename = NULL; } return (Xv_opaque)XV_OK; } /* image_get() -- Support xv_get() for SERVER_IMAGE_BITMAP_FILE * and XV_SCREEN. Warning: because this package is subclassed * from the Server_image package, we must not attempt to return * values for attrs that the Server_image package supports. */ static Xv_opaque image_get(image_public, status, attr, args) Image_public *image_public; int *status; Attr_attribute attr; Attr_avlist args; { Image_private *image_private = IMAGE_PRIVATE(image_public); switch ((int) attr) { case SERVER_IMAGE_BITMAP_FILE : return (Xv_opaque)image_private->filename; case XV_SCREEN : return (Xv_opaque)image_private->screen; default : *status = xv_check_bad_attr(IMAGE, attr); return (Xv_opaque)XV_OK; } } /* destroy method: free the object and remove from linked list */ static int image_destroy(image_public, status) Image_public *image_public; Destroy_status status; { Image_private *image_private = IMAGE_PRIVATE(image_public); Image_private *list; /* linked list of image instances */ Xv_Screen screen = image_private->screen; if (status == DESTROY_CLEANUP) { /* get the list of existing images from the screen */ list = (Image_private *)xv_get(screen, XV_KEY_DATA, ATTR_PKG_IMAGE); if ((Image)XV_PUBLIC(list) == (Image)image_public) xv_set(screen, XV_KEY_DATA, ATTR_PKG_IMAGE, list->next, NULL); for ( ; list->next; list = list->next) if ((Image)XV_PUBLIC(list->next) == (Image)image_public) { list->next = list->next->next; break; } if (list->filename) free(list->filename); free(list); } return XV_OK; } /* image_find() -- find an existing image object that matches the * attribute-values specified here. If none found, return NULL. * XView internals handle the XV_AUTO_CREATE case. This function * supports finding images according to the following attributes: * XV_WIDTH, XV_HEIGHT, SERVER_IMAGE_DEPTH, SERVER_IMAGE_PIXMAP * and SERVER_IMAGE_BITMAP_FILE. All others result in a NULL return. */ static Xv_opaque image_find(owner, pkg, avlist) Xv_Screen owner; Xv_pkg *pkg; Attr_avlist avlist; /* ignored here */ { Image_private *list; /* linked list of image instances */ /* this is what the server image package does */ Xv_Screen screen = owner? owner : xv_default_screen; Attr_attribute *attrs; /* consider all the attrs we allow "find" to match on */ int width = -1, height = -1, depth = -1; Pixmap pixmap = (Pixmap)NULL; char *filename = NULL; /* get the list of existing images from the screen */ list = (Image_private *)xv_get(screen, XV_KEY_DATA, ATTR_PKG_IMAGE); if (!list) return NULL; /* loop thru each attribute requested and save the value * associated with it. Later, we'll loop thru the existing * objects looking for the object that has the same values. */ for (attrs = avlist; *attrs; attrs = attr_next(attrs)) switch ((int)attrs[0]) { case XV_WIDTH : width = (int)attrs[1]; break; case XV_HEIGHT : height = (int)attrs[1]; break; case SERVER_IMAGE_DEPTH : depth = (int)attrs[1]; break; case SERVER_IMAGE_PIXMAP : pixmap = (Pixmap)attrs[1]; break; case SERVER_IMAGE_BITMAP_FILE : filename = (char *)attrs[1]; break; case SERVER_IMAGE_BITS : case SERVER_IMAGE_X_BITS : case SERVER_IMAGE_COLORMAP : case SERVER_IMAGE_CMS : case SERVER_IMAGE_SAVE_PIXMAP : default : return NULL; /* you can't "find" for these attrs */ } /* Now loop thru each object looking for those whose * value that match those specified above. */ for ( ; list; list = list->next) { /* If it doesn't match, continue to the next object in * the list. Repeat for each requested attribute. */ if (width > -1 && (width != (int)xv_get(XV_PUBLIC(list), XV_WIDTH))) continue; if (height > -1 && (height != (int)xv_get(XV_PUBLIC(list), XV_HEIGHT))) continue; if (depth > -1 && (depth != (int)xv_get(XV_PUBLIC(list), SERVER_IMAGE_DEPTH))) continue; if (pixmap && (pixmap != (Pixmap)xv_get(XV_PUBLIC(list), SERVER_IMAGE_PIXMAP))) continue; if (filename && (!list->filename || strcmp(filename, list->filename))) continue; /* all matches seemed to be successful, return this object */ return XV_PUBLIC(list); } /* nothing found */ return NULL; } xview-3.2p1.4/contrib/examples/extensions/Logo.c100644 1750 1750 14450 5413747574 17207 0ustar mbmb/* * Logo.c -- a XView object class that paints an X logo in a window. * This object is subclassed from the window object to take advantage * of the window it creates. This object has no attributes, so the * set and get functions are virtually empty. The only internal * fields used by this object are a GC and a Pixmap. The GC is used * to paint the Pixmap into the window. The window object has no GC * associated with it or we would have inherited it. This will * probably go away in the next version of XView. */ #include "logo_impl.h" #include #include #include /* declare the "methods" used by the logo class. */ static int logo_init(), logo_destroy(); static Xv_opaque logo_set(), logo_get(); static void logo_repaint(); Xv_pkg logo_pkg = { "Logo", /* package name */ ATTR_PKG_UNUSED_FIRST, /* package ID */ sizeof(Logo_public), /* size of the public struct */ WINDOW, /* subclassed from the window package */ logo_init, logo_set, logo_get, logo_destroy, NULL /* disable the use of xv_find() */ }; /* the only thing this object does is paint an X into its own window. * This is the event handling routine that is used to check for * Expose or Configure event requests. the configure event clears * the window and the "expose" event causes a repaint of the X image. * The GC has it's foreground and background colros set from the * CMS of the window from which this logo object is subclassed. */ static void logo_redraw(logo_public, event) Logo_public *logo_public; Event *event; { Logo_private *logo_private = LOGO_PRIVATE(logo_public); XEvent *xevent = event_xevent(event); if (xevent->xany.type == Expose && xevent->xexpose.count == 0) { Display *dpy = (Display *)xv_get(logo_public, XV_DISPLAY); Window window = (Window)xv_get(logo_public, XV_XID); int width = (int)xv_get(logo_public, XV_WIDTH); int height = (int)xv_get(logo_public, XV_HEIGHT); int x = (width - xlogo32_width)/2; int y = (height - xlogo32_height)/2; XCopyPlane(dpy, logo_private->bitmap, window, logo_private->gc, 0, 0, xlogo32_width, xlogo32_height, x, y, 1L); } else if (xevent->xany.type == ConfigureNotify) XClearArea(xv_get(logo_public, XV_DISPLAY), xv_get(logo_public, XV_XID), 0, 0, xevent->xconfigure.width, xevent->xconfigure.height, True); } /* initialize the logo object -- create (alloc) an instance of it. * There are two parts to an object class: a public part and a private * part. Each contains a pointer to the other, so link the two * together and initialize the remaining fields of the logo data * structure. This includes creating the Xlogo pixmap. However, * we do no initialize the logo's GC because it is dependent on its * window's cms and that isn't assigned to the window till the "set" * method. See logo_set() below. */ static int logo_init(owner, logo_public, avlist) Xv_opaque owner; Logo_public *logo_public; Attr_avlist avlist; /* ignored here */ { Logo_private *logo_private = xv_alloc(Logo_private); Display *dpy; Window win; if (!logo_private) return XV_ERROR; dpy = (Display *)xv_get(owner, XV_DISPLAY); win = (Window)xv_get(logo_public, XV_XID); /* link the public to the private and vice-versa */ logo_public->private_data = (Xv_opaque)logo_private; logo_private->public_self = (Xv_opaque)logo_public; /* create the 1-bit deep pixmap of the X logo */ if ((logo_private->bitmap = XCreatePixmapFromBitmapData(dpy, win, xlogo32_bits, xlogo32_width, xlogo32_height, 1, 0, 1)) == NULL) { free(logo_private); return XV_ERROR; } /* set up event handlers to get resize and repaint events */ xv_set(logo_public, WIN_NOTIFY_SAFE_EVENT_PROC, logo_redraw, WIN_NOTIFY_IMMEDIATE_EVENT_PROC, logo_redraw, NULL); return XV_OK; } /* logo_set() -- the function called to set attributes in a logo * object. This function is called when a logo is created after * the init routine as well as when the programmer calls xv_set. */ static Xv_opaque logo_set(logo_public, avlist) Logo_public *logo_public; Attr_avlist avlist; { Logo_private *logo_private = LOGO_PRIVATE(logo_public); Attr_attribute *attrs; for (attrs = avlist; *attrs; attrs = attr_next(attrs)) switch ((int) attrs[0]) { case XV_END_CREATE : { /* this stuff *must* be here rather than in the "init" * routine because the CMS is not loaded into the * window object until the "set" routines are called. */ Cms cms = xv_get(logo_public, WIN_CMS); XGCValues gcvalues; Display *dpy = (Display *)xv_get(logo_public, XV_DISPLAY); gcvalues.foreground = (unsigned long)xv_get(cms, CMS_FOREGROUND_PIXEL); gcvalues.background = (unsigned long)xv_get(cms, CMS_BACKGROUND_PIXEL); gcvalues.graphics_exposures = False; logo_private->gc = XCreateGC(dpy, xv_get(logo_public, XV_XID), GCForeground|GCBackground|GCGraphicsExposures, &gcvalues); } default : xv_check_bad_attr(LOGO, attrs[0]); break; } return XV_OK; } /* logo_get() -- There are no logo attributes to get, so just return */ static Xv_opaque logo_get(logo_public, status, attr, args) Logo_public *logo_public; int *status; Attr_attribute attr; Attr_avlist args; { *status = xv_check_bad_attr(LOGO, attr); return (Xv_opaque)XV_OK; } /* destroy method: free the pixmap and the GC before freeing the object */ static int logo_destroy(logo_public, status) Logo_public *logo_public; Destroy_status status; { Logo_private *logo_private = LOGO_PRIVATE(logo_public); if (status == DESTROY_CLEANUP) { XFreePixmap(xv_get(logo_public, XV_DISPLAY), logo_private->bitmap); XFreeGC(xv_get(logo_public, XV_DISPLAY), logo_private->gc); free(logo_private); } return XV_OK; } xview-3.2p1.4/contrib/examples/extensions/Imakefile100644 1750 1750 2476 5413747576 17743 0ustar mbmb#include /**/########################################################################## /**/# @(#)Imakefile 1.4 1/7/92 SMI /**/# Imakefile for examples/extensions #define IHaveSubdirs #define InstallSrcs YES LOCATION = examples/extensions SUBDIRS = panel_items DEFINES = -DSTANDALONE $(XVCLIENTSYSDEFINES) SYS_LIBRARIES = INCLUDES = -I. -I$(HEADER_DEST) -I$(TOP) DEPLIBS = XViewClientDepLibs LOCAL_LIBRARIES = XViewClientLibs MAKEFILE_SIMPLE = Makefile.customer ALLFILES = $(MAKEFILE_SIMPLE) $(SRCS) BITMAP_CFILES = Bitmap.c \ bitmap.c BITMAP_OBJS = Bitmap.o bitmap.o BITMAP_HDRS = bitmap.h bitmap_impl.h IMAGE_CFILES = Image.c \ image.c IMAGE_OBJS = Image.o image.o IMAGE_HDRS = image.h image_impl.h LOGO_CFILES = Logo.c \ logo.c LOGO_OBJS = Logo.o logo.o LOGO_HDRS = logo.h logo_impl.h INSTALL_SRCS = $(BITMAP_CFILES) $(BITMAP_HDRS) \ $(IMAGE_CFILES) $(IMAGE_HDRS) \ $(LOGO_CFILES) $(LOGO_HDRS) PROGRAMS = logo bitmap image AllTarget($(PROGRAMS)) SingleProgramTarget(logo,$(LOGO_OBJS),$(LOCAL_LIBRARIES), /**/) $(LOGO_OBJS): $(LOGO_HDRS) SingleProgramTarget(bitmap,$(BITMAP_OBJS),$(LOCAL_LIBRARIES), /**/) $(BITMAP_OBJS): $(BITMAP_HDRS) SingleProgramTarget(image,$(IMAGE_OBJS),$(LOCAL_LIBRARIES), /**/) $(IMAGE_OBJS): $(IMAGE_HDRS) #include InstallSrcsSubdirs($(SUBDIRS)) xview-3.2p1.4/contrib/examples/extensions/Makefile.customer100644 1750 1750 2375 5413747575 21427 0ustar mbmb# # # # Makefile for the extensions example programs for XView programmers # OSTYPE = SUNOS5 INCLUDE = -I$(OPENWINHOME)/include # # If you want to compile for debugging, change "-O" to "-g" # CFLAGS_SUNOS41 = ${INCLUDE} -O CFLAGS_SUNOS5 = ${INCLUDE} -DSVR4 -O CFLAGS = $(CFLAGS_$(OSTYPE)) # if you want special to pass special loader options to ld, set # LDFLAGS= ... # XVIEW_LIBS = -L$(OPENWINHOME)/lib \ -lxview -lolgx -lX11 HDRS = bitmap.h \ bitmap_impl.h \ image.h \ image_impl.h \ logo.h \ logo_impl.h BITMAP_CFILES = Bitmap.c \ bitmap.c BITMAP_OBJS = $(BITMAP_CFILES:.c=.o) IMAGE_CFILES = Image.c \ image.c IMAGE_OBJS = $(IMAGE_CFILES:.c=.o) LOGO_CFILES = Logo.c \ logo.c LOGO_OBJS = $(LOGO_CFILES:.c=.o) PROGRAMS = logo bitmap image all: $(PROGRAMS) logo: $(LOGO_OBJS) cc -o $@ $(CFLAGS) $(LOGO_OBJS) $(XVIEW_LIBS) bitmap: $(BITMAP_OBJS) cc -o $@ $(CFLAGS) $(BITMAP_OBJS) $(XVIEW_LIBS) image: $(IMAGE_OBJS) cc -o $@ $(CFLAGS) $(IMAGE_OBJS) $(XVIEW_LIBS) .c.o: cc $(CFLAGS) -o $@ -c $< logo.o: logo.h bitmap.o: bitmap.h image.o: image.h Logo.o: logo_impl.h logo.h Bitmap.o: bitmap_impl.h bitmap.h Image.o: image_impl.h image.h clean: rm -f *.o core a.out *.BAK make.log $(PROGRAMS) xview-3.2p1.4/contrib/examples/extensions/bitmap.c100644 1750 1750 1326 5413747575 17542 0ustar mbmb/* bitmap.c -- demonstrate the use of the Bitmap package. */ #include #include #include "bitmap.h" main(argc, argv) char *argv[]; { Frame frame; Cms cms; Bitmap bitmap; xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); if (argc <= 1) puts("Specify bitmap filename"), exit(1); frame = (Frame)xv_create(NULL, FRAME, NULL); cms = xv_create(NULL, CMS, CMS_SIZE, 2, CMS_NAMED_COLORS, "LightBlue", "maroon", NULL, NULL); bitmap = xv_create(frame, BITMAP, XV_WIDTH, 100, XV_HEIGHT, 100, WIN_CMS, cms, BITMAP_FILE, argv[1], NULL); window_fit(frame); xv_main_loop(frame); } xview-3.2p1.4/contrib/examples/extensions/bitmap.h100644 1750 1750 773 5413747575 17534 0ustar mbmb#include #include extern Xv_pkg bitmap_pkg; #define BITMAP &bitmap_pkg typedef Xv_opaque Bitmap; #define ATTR_PKG_BITMAP ATTR_PKG_UNUSED_FIRST #define BITMAP_ATTR(type, ordinal) ATTR(ATTR_PKG_BITMAP, type, ordinal) typedef enum { BITMAP_FILE = BITMAP_ATTR(ATTR_STRING, 1), BITMAP_PIXMAP = BITMAP_ATTR(ATTR_OPAQUE, 2), /* get-only */ }; typedef struct { Xv_window_struct parent_data; Xv_opaque private_data; } Bitmap_public; xview-3.2p1.4/contrib/examples/extensions/bitmap_impl.h100644 1750 1750 567 5413747575 20556 0ustar mbmb#include "bitmap.h" typedef struct { Xv_object public_self; /* pointer back to self */ GC gc; /* GC to render logo */ Pixmap bitmap; int width, height; /* ...of pixmap */ } Bitmap_private; #define BITMAP_PUBLIC(item) XV_PUBLIC(item) #define BITMAP_PRIVATE(item) \ XV_PRIVATE(Bitmap_private, Bitmap_public, item) xview-3.2p1.4/contrib/examples/extensions/image.c100644 1750 1750 2237 5413747575 17352 0ustar mbmb/* logo.c -- demonstrate the use of the image package. */ #include #include "image.h" main(argc, argv) int argc; char *argv[]; { Frame frame; Image image1, image2; Pixmap pixmap; xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); if (argc < 2) puts("specify filename"), exit(1); /* frame = (Frame)xv_create(NULL, FRAME, NULL); */ if (!(image1 = xv_create(NULL, IMAGE, XV_WIDTH, 100, XV_HEIGHT, 100, SERVER_IMAGE_BITMAP_FILE, argv[1], NULL))) puts("unsuccessfully created image1"), exit(1); if (!(image2 = xv_find(NULL, IMAGE, SERVER_IMAGE_BITMAP_FILE, argv[1], NULL))) puts("unsuccessfully created image2"), exit(1); printf("image1 %s image2\n", (image2 != image1)? "matched" : "didn't match"); pixmap = (Pixmap)xv_get(image1, SERVER_IMAGE_PIXMAP); if (!(image2 = xv_find(NULL, IMAGE, SERVER_IMAGE_PIXMAP, pixmap, NULL))) puts("unsuccessfully created image2"), exit(1); printf("image1 %s image2\n", (image2 != image1)? "matched" : "didn't match"); /* window_fit(frame); */ /* xv_main_loop(frame); */ } xview-3.2p1.4/contrib/examples/extensions/image.h100644 1750 1750 443 5413747575 17334 0ustar mbmb#include #include extern Xv_pkg image_pkg; #define IMAGE &image_pkg typedef Xv_opaque Image; #define ATTR_PKG_IMAGE ATTR_PKG_UNUSED_FIRST+1 typedef struct { Xv_server_image parent_data; Xv_opaque private_data; } Image_public; xview-3.2p1.4/contrib/examples/extensions/image_impl.h100644 1750 1750 725 5413747575 20360 0ustar mbmb#include /* for BUFSIZ */ #include "image.h" typedef struct _image { Xv_object public_self; /* pointer back to self */ char *filename; /* for get/find */ Xv_Screen screen; /* need to retain for list */ struct _image *next; /* linked list for find */ } Image_private; #define IMAGE_PUBLIC(item) XV_PUBLIC(item) #define IMAGE_PRIVATE(item) XV_PRIVATE(Image_private, Image_public, item) xview-3.2p1.4/contrib/examples/extensions/logo.c100644 1750 1750 1161 5413747576 17224 0ustar mbmb/* logo.c -- demonstrate the use of the logo package. */ #include #include #include "logo.h" main(argc, argv) char *argv[]; { Frame frame; Cms cms; Logo logo; xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create(NULL, FRAME, NULL); cms = xv_create(NULL, CMS, CMS_SIZE, 2, CMS_NAMED_COLORS, "powder blue", "maroon", NULL, NULL); logo = xv_create(frame, LOGO, XV_WIDTH, 100, XV_HEIGHT, 100, WIN_CMS, cms, NULL); window_fit(frame); xv_main_loop(frame); } xview-3.2p1.4/contrib/examples/extensions/logo.h100644 1750 1750 446 5413747576 17216 0ustar mbmb/* logo.h -- public header file for the logo XView class. */ #include #include extern Xv_pkg logo_pkg; #define LOGO &logo_pkg typedef Xv_opaque Logo; typedef struct { Xv_window_struct parent_data; Xv_opaque private_data; } Logo_public; xview-3.2p1.4/contrib/examples/extensions/logo_impl.h100644 1750 1750 600 5413747576 20227 0ustar mbmb/* logo_impl.h -- implementation-dependent header file for the * logo XView class. */ #include "logo.h" typedef struct { Xv_object public_self; /* pointer back to self */ GC gc; /* GC to render logo */ Pixmap bitmap; /* xlogo bitmap */ } Logo_private; #define LOGO_PUBLIC(item) XV_PUBLIC(item) #define LOGO_PRIVATE(item) XV_PRIVATE(Logo_private, Logo_public, item) xview-3.2p1.4/contrib/examples/extensions/sample.bitmap100644 1750 1750 7334 5413747576 20607 0ustar mbmb#define arrow_mask_width 65 #define arrow_mask_height 65 #define arrow_mask_x_hot 55 #define arrow_mask_y_hot 9 static char arrow_mask_bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1f, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x01, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf9, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; xview-3.2p1.4/contrib/examples/fonts/ 40755 1750 1750 0 6354605713 14745 5ustar mbmbxview-3.2p1.4/contrib/examples/fonts/Imakefile100644 1750 1750 1761 5413747601 16656 0ustar mbmb#include /**/########################################################################## /**/# @(#)Imakefile 1.7 90/08/02 SMI /**/# Imakefile for examples/fonts #define InstallSrcs YES LOCATION = examples/fonts DEFINES = -DSTANDALONE $(XVCLIENTSYSDEFINES) SYS_LIBRARIES = INCLUDES = -I. -I$(HEADER_DEST) -I$(TOP) DEPLIBS = XViewClientDepLibs LOCAL_LIBRARIES = XViewClientLibs MAKEFILE_SIMPLE = Makefile.customer SRCS = disp_fonts.c fonts.c simple_font.c type_font.c disp_fonts2.c INSTALL_SRCS = $(SRCS) ALLFILES = $(MAKEFILE_SIMPLE) $(SRCS) PROGRAMS= disp_fonts fonts simple_font type_font disp_fonts2 AllTarget($(PROGRAMS)) SingleProgramTarget(disp_fonts,disp_fonts.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(fonts,fonts.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(simple_font,simple_font.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(type_font,type_font.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(disp_fonts2,disp_fonts2.o,$(LOCAL_LIBRARIES), /**/) #include xview-3.2p1.4/contrib/examples/fonts/Makefile.customer100644 1750 1750 1443 5413747601 20342 0ustar mbmb# # @(#)Makefile.customer 1.8 92/02/24 # # Makefile for the fonts example programs for XView programmers # OSTYPE = SUNOS5 INCLUDE = -I${OPENWINHOME}/include # # If you want to compile for debugging, change "-O" to "-g" # CFLAGS_SUNOS41 = ${INCLUDE} -O CFLAGS_SUNOS5 = ${INCLUDE} -DSVR4 -O CFLAGS = $(CFLAGS_$(OSTYPE)) # if you want special to pass special loader options to ld, set # LDFLAGS= ... # XVIEW_LIBS = -L${OPENWINHOME}/lib \ -lxview -lolgx -lX11 CFILES = disp_fonts.c \ disp_fonts2.c \ fonts.c \ simple_font.c \ type_font.c OBJS = disp_fonts \ disp_fonts2 \ fonts \ simple_font \ type_font all: ${OBJS} ${OBJS}: $$@.c $$@.o ${CC} ${CFLAGS} ${LDFLAGS} -o $@ $@.o ${XVIEW_LIBS} clean: rm -f core ${OBJS} *.o xview-3.2p1.4/contrib/examples/fonts/disp_fonts.c100644 1750 1750 5655 5413747601 17367 0ustar mbmb/* * disp_fonts.c -- displays a collection of fonts in a canvas. */ #include #include #include #include #include #include #ifdef SVR4 #define srandom( SEED ) srand( SEED ) #define random( SEED ) rand( SEED ) #endif GC gc; char *font_names[] = { "courier", "courier-bold", "courier-16", "courier-oblique-19", "lucidasans", "lucidasans-bold", "lucidasans-9", "lucidasans-italic", "palatino-roman", "palatino-bold-14", "palatino-roman-7", "palatino-italic", "times-bold", "times-roman", "times-roman-10", "times-italic-14", "charter-black", "charter-black-13", "charter-black-italic", "helvetica-20", "gillsans", "gillsans-bold", "gillsans-bolditalic", "newcenturyschlbk-roman", "newcenturyschlbk-bold-15", "rockwell", "rockwell-italic-16", "symbol", "symbol-16", "symbol-19", "bookman-demi", "bookman-light-19", "avantgarde-book", "avantgarde-demi", "avantgarde-demioblique" }; Xv_Font fonts[sizeof(font_names)/ sizeof(char *)]; main(argc, argv) int argc; char *argv[]; { Display *dpy; Frame frame; Canvas canvas; XGCValues gcvalues; Xv_Font font; int i; void my_repaint_proc(); xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create(XV_NULL, FRAME, FRAME_LABEL, argv[0], FRAME_SHOW_FOOTER, TRUE, NULL); canvas = (Canvas)xv_create(frame, CANVAS, XV_WIDTH, 500, XV_HEIGHT, 300, CANVAS_X_PAINT_WINDOW, TRUE, CANVAS_REPAINT_PROC, my_repaint_proc, NULL); window_fit(frame); dpy = (Display *)xv_get(frame, XV_DISPLAY); for (i = 0; i < sizeof font_names / sizeof (char *); i++) fonts[i] = (Xv_Font)xv_find(frame, FONT, FONT_NAME, font_names[i], NULL); gcvalues.foreground = BlackPixel(dpy, DefaultScreen(dpy)); gcvalues.background = WhitePixel(dpy, DefaultScreen(dpy)); gcvalues.graphics_exposures = False; gc = XCreateGC(dpy, RootWindow(dpy, DefaultScreen(dpy)), GCForeground | GCBackground | GCGraphicsExposures, &gcvalues); srandom(time(0)); xv_main_loop(frame); } void my_repaint_proc(canvas, pw, dpy, xwin, xrects) Canvas canvas; Xv_Window pw; Display *dpy; Window xwin; Xv_xrectlist *xrects; { int i, x, y; int width = (int)xv_get(canvas, XV_WIDTH); int height = (int)xv_get(canvas, XV_HEIGHT); XFontStruct *fi; for (i = 0; i < sizeof font_names / sizeof (char *); i++) if (fonts[i]) { x = random() % width - 70; y = random() % height - 20; fi = (XFontStruct *)xv_get(fonts[i], FONT_INFO); XSetFont(dpy, gc, fi->fid); XDrawString(dpy, xwin, gc, x, y, font_names[i], strlen(font_names[i])); /* "Hello World", 11); */ } } xview-3.2p1.4/contrib/examples/fonts/disp_fonts2.c100644 1750 1750 6017 5413747601 17442 0ustar mbmb/* * disp_fonts2.c -- displays a collection of fonts in a canvas. */ #include #include #include #include #include #include #ifdef SVR4 #define srandom( SEED ) srand( SEED ) #define random( SEED ) rand( SEED ) #endif GC gc; char *font_names[] = { "courier", "courier-bold", "courier-16", "courier-oblique-19", "lucidasans", "lucidasans-bold", "lucidasans-9", "lucidasans-italic", "palatino-roman", "palatino-bold-14", "palatino-roman-7", "palatino-italic", "times-bold", "times-bold-16", "times-roman", "times-roman-10", "times-italic-14", "charter-black", "charter-black-13", "charter-black-italic", "helvetica-20", "gillsans", "gillsans-bold", "gillsans-bolditalic", "newcenturyschlbk-roman", "newcenturyschlbk-bold-15", "rockwell", "rockwell-italic-16", "symbol", "symbol-16", "symbol-19", "bookman-demi", "bookman-light-19", "avantgarde-book", "avantgarde-demi", "avantgarde-demioblique" }; Xv_Font fonts[sizeof(font_names)/ sizeof(char *)]; main(argc, argv) int argc; char *argv[]; { Display *dpy; Frame frame; Canvas canvas; XGCValues gcvalues; Xv_Font font; int i; void my_repaint_proc(); xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create(XV_NULL, FRAME, FRAME_LABEL, argv[0], FRAME_SHOW_FOOTER, TRUE, NULL); canvas = (Canvas)xv_create(frame, CANVAS, XV_WIDTH, 500, XV_HEIGHT, 300, CANVAS_X_PAINT_WINDOW, TRUE, CANVAS_REPAINT_PROC, my_repaint_proc, NULL); window_fit(frame); dpy = (Display *)xv_get(frame, XV_DISPLAY); for (i = 0; i < sizeof font_names / sizeof (char *); i++) fonts[i] = (Xv_Font)xv_find(frame, FONT, FONT_NAME, font_names[i], NULL); gcvalues.foreground = BlackPixel(dpy, DefaultScreen(dpy)); gcvalues.background = WhitePixel(dpy, DefaultScreen(dpy)); gcvalues.graphics_exposures = False; gc = XCreateGC(dpy, RootWindow(dpy, DefaultScreen(dpy)), GCForeground | GCBackground | GCGraphicsExposures, &gcvalues); srandom(time(0)); xv_main_loop(frame); } void my_repaint_proc(canvas, pw, dpy, xwin, xrects) Canvas canvas; Xv_Window pw; Display *dpy; Window xwin; Xv_xrectlist *xrects; { int i, x, y; int width = (int)xv_get(canvas, XV_WIDTH); int height = (int)xv_get(canvas, XV_HEIGHT); XFontStruct *fi; x = -90; y = 0; for (i = 0; i < sizeof font_names / sizeof (char *); i++) if (fonts[i]) { if ( x+200 < width ) { x += 100; y += 20; } else { x = 10; y -= 15; } fi = (XFontStruct *)xv_get(fonts[i], FONT_INFO); XSetFont(dpy, gc, fi->fid); XDrawString(dpy, xwin, gc, x, y, font_names[i], strlen(font_names[i])); /* "Hello World", 11); */ } } xview-3.2p1.4/contrib/examples/fonts/fonts.c100644 1750 1750 17440 5413747601 16363 0ustar mbmb/* * fonts.c -- provide an interface for the user to pick and choose * between font families and styles known to XView. The program * provides several panel buttons to choose between font types, and * a canvas window in which the user can type. The characters typed * are printed in the current font. If a font "name" is specified, * then the family, style and size are ignored. Using the SELECT * button on the canvas window positions the current typing location * at the x,y coordinates of the button-down event. */ #include #include #include #include #include #include Display *dpy; GC gc; XFontStruct *cur_font; Panel_item family_item, style_item, scale_item, name_item; int canvas_width; main(argc, argv) int argc; char *argv[]; { Frame frame; Panel panel; Canvas canvas; XGCValues gcvalues; Xv_Font font; void change_font(); void my_event_proc(), my_resize_proc(); int change_font_by_name(); extern void exit(); xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create(XV_NULL, FRAME, FRAME_LABEL, argv[0], FRAME_SHOW_FOOTER, TRUE, NULL); panel = (Panel)xv_create(frame, PANEL, PANEL_LAYOUT, PANEL_VERTICAL, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Quit", PANEL_NOTIFY_PROC, exit, NULL); family_item = (Panel_item)xv_create(panel, PANEL_CHOICE, PANEL_LABEL_STRING, "Family", PANEL_LAYOUT, PANEL_HORIZONTAL, PANEL_DISPLAY_LEVEL, PANEL_CURRENT, PANEL_CHOICE_STRINGS, FONT_FAMILY_DEFAULT, FONT_FAMILY_DEFAULT_FIXEDWIDTH, FONT_FAMILY_LUCIDA, FONT_FAMILY_LUCIDA_FIXEDWIDTH, FONT_FAMILY_ROMAN, FONT_FAMILY_SERIF, FONT_FAMILY_COUR, FONT_FAMILY_CMR, FONT_FAMILY_GALLENT, FONT_FAMILY_OLGLYPH, FONT_FAMILY_OLCURSOR, NULL, PANEL_NOTIFY_PROC, change_font, NULL); style_item = (Panel_item)xv_create(panel, PANEL_CHOICE, PANEL_LABEL_STRING, "Style", PANEL_LAYOUT, PANEL_HORIZONTAL, PANEL_DISPLAY_LEVEL, PANEL_CURRENT, PANEL_CHOICE_STRINGS, FONT_STYLE_DEFAULT, FONT_STYLE_NORMAL, FONT_STYLE_BOLD, FONT_STYLE_ITALIC, FONT_STYLE_BOLD_ITALIC, NULL, PANEL_NOTIFY_PROC, change_font, NULL); scale_item = (Panel_item)xv_create(panel, PANEL_CHOICE, PANEL_LABEL_STRING, "Scale", PANEL_LAYOUT, PANEL_HORIZONTAL, PANEL_DISPLAY_LEVEL, PANEL_CURRENT, PANEL_CHOICE_STRINGS, "Small", "Medium", "Large", "X-Large", NULL, PANEL_NOTIFY_PROC, change_font, NULL); name_item = (Panel_item)xv_create(panel, PANEL_TEXT, PANEL_LABEL_STRING, "Font Name:", PANEL_LAYOUT, PANEL_HORIZONTAL, PANEL_VALUE_DISPLAY_LENGTH, 20, PANEL_NOTIFY_PROC, change_font_by_name, NULL); window_fit(panel); canvas = (Canvas)xv_create(frame, CANVAS, XV_WIDTH, 400, XV_HEIGHT, 200, CANVAS_X_PAINT_WINDOW, TRUE, CANVAS_RESIZE_PROC, my_resize_proc, NULL); xv_set(canvas_paint_window(canvas), WIN_EVENT_PROC, my_event_proc, WIN_CONSUME_EVENT, LOC_WINENTER, NULL); window_fit(frame); dpy = (Display *)xv_get(frame, XV_DISPLAY); font = (Xv_Font)xv_get(frame, XV_FONT); cur_font = (XFontStruct *)xv_get(font, FONT_INFO); xv_set(frame, FRAME_LEFT_FOOTER, xv_get(font, FONT_NAME), NULL); gcvalues.font = cur_font->fid; gcvalues.foreground = BlackPixel(dpy, DefaultScreen(dpy)); gcvalues.background = WhitePixel(dpy, DefaultScreen(dpy)); gcvalues.graphics_exposures = False; gc = XCreateGC(dpy, RootWindow(dpy, DefaultScreen(dpy)), GCForeground | GCBackground | GCFont | GCGraphicsExposures, &gcvalues); xv_main_loop(frame); } void my_event_proc(win, event) Xv_Window win; Event *event; { static int x = 10, y = 10; Window xwin = (Window)xv_get(win, XV_XID); char c; if (event_is_up(event)) return; if (event_is_ascii(event)) { c = (char)event_action(event); XDrawString(dpy, xwin, gc, x, y, &c, 1); /* advance x to next position. If over edge, linewrap */ if ((x += XTextWidth(cur_font, &c, 1)) >= canvas_width) { y += cur_font->max_bounds.ascent + cur_font->max_bounds.descent; x = 10; } } else if (event_action(event) == ACTION_SELECT) { x = event_x(event); y = event_y(event); } else if (event_action(event) == LOC_WINENTER) win_set_kbd_focus(win, xwin); } /* * check resizing so we know how wide to allow the user to type. */ void my_resize_proc(canvas, width, height) Canvas canvas; int width, height; { canvas_width = width; } void change_font(item, value, event) Panel_item item; Event *event; { static int family, style, scale; char buf[128]; Frame frame; char *family_name; char *style_name; int scale_value; Xv_Font font; frame = (Frame)xv_get(xv_get(item, PANEL_PARENT_PANEL), XV_OWNER); family_name = (char *)xv_get(family_item, PANEL_CHOICE_STRING, xv_get(family_item, PANEL_VALUE)); style_name = (char *)xv_get(style_item, PANEL_CHOICE_STRING, xv_get(style_item, PANEL_VALUE)); scale_value = (int) xv_get(scale_item, PANEL_VALUE); xv_set(frame, FRAME_BUSY, TRUE, NULL); font = (Xv_Font)xv_find(frame, FONT, FONT_FAMILY, family_name, FONT_STYLE, style_name, /* scale_value happens to coincide with Window_rescale_state */ FONT_SCALE, scale_value, /* * If run on a server that cannot rescale fonts, only font * sizes that exist should be passed */ FONT_SIZES_FOR_SCALE, 12, 14, 16, 22, NULL); xv_set(frame, FRAME_BUSY, FALSE, NULL); if (!font) { if (item == family_item) { sprintf(buf, "cannot load '%s'", family_name); xv_set(family_item, PANEL_VALUE, family, NULL); } else if (item == style_item) { sprintf(buf, "cannot load '%s'", style_name); xv_set(style_item, PANEL_VALUE, style, NULL); } else { sprintf(buf, "Not available in %s scale.", xv_get(scale_item, PANEL_CHOICE_STRING, scale)); xv_set(scale_item, PANEL_VALUE, scale, NULL); } xv_set(frame, FRAME_RIGHT_FOOTER, buf, NULL); return; } if (item == family_item) family = value; else if (item == style_item) style = value; else scale = value; cur_font = (XFontStruct *)xv_get(font, FONT_INFO); XSetFont(dpy, gc, cur_font->fid); sprintf(buf, "Current font: %s", xv_get(font, FONT_NAME)); xv_set(frame, FRAME_LEFT_FOOTER, buf, NULL); } change_font_by_name(item, event) Panel_item item; Event *event; { char buf[128]; char *name = (char *)xv_get(item, PANEL_VALUE); Frame frame = (Frame)xv_get(xv_get(item, XV_OWNER), XV_OWNER); Xv_Font font; xv_set(frame, FRAME_BUSY, TRUE, NULL); font = (Xv_Font)xv_find(frame, FONT, FONT_NAME, name, NULL); xv_set(frame, FRAME_BUSY, FALSE, NULL); if (!font) { sprintf(buf, "cannot load '%s'", name); xv_set(frame, FRAME_RIGHT_FOOTER, buf, NULL); return PANEL_NONE; } cur_font = (XFontStruct *)xv_get(font, FONT_INFO); XSetFont(dpy, gc, cur_font->fid); sprintf(buf, "Current font: %s", xv_get(font, FONT_NAME)); xv_set(frame, FRAME_LEFT_FOOTER, buf, NULL); return PANEL_NONE; } xview-3.2p1.4/contrib/examples/fonts/simple_font.c100644 1750 1750 4757 6331115756 17540 0ustar mbmb/* * simple_font.c -- very simple program showing how to render text * using a font gotten from xv_find(). Hello World is printed in * the top-left corner of a canvas window. */ #include #include #include /* X.h and Xlib.h used for Xlib graphics */ #include #include #include #include #define GC_KEY 10 /* any arbitrary number -- used for XV_KEY_DATA */ main(argc, argv) int argc; char *argv[]; { Frame frame; Canvas canvas; XGCValues gcvalues; Xv_Font font; void my_repaint_proc(); Display *dpy; GC gc; xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create(XV_NULL, FRAME, NULL); canvas = (Canvas)xv_create(frame, CANVAS, XV_WIDTH, 400, XV_HEIGHT, 200, CANVAS_X_PAINT_WINDOW, TRUE, CANVAS_REPAINT_PROC, my_repaint_proc, NULL); window_fit(frame); dpy = (Display *)xv_get(frame, XV_DISPLAY); #ifndef __linux font = (Xv_Font)xv_find(frame, FONT, FONT_NAME, "courier", NULL); #else font = (Xv_Font)xv_find(frame, FONT, FONT_NAME, "fixed", NULL); #endif if (!font) { fprintf(stderr, "%s: cannot use font: courier.\n", argv[0]); font = (Xv_Font)xv_get(frame, XV_FONT); } /* Create a GC to use with Xlib graphics -- set the fg/bg colors * and set the Font, which is the XV_XID of the XView font object. */ gcvalues.font = (Font)xv_get(font, XV_XID); gcvalues.foreground = BlackPixel(dpy, DefaultScreen(dpy)); gcvalues.background = WhitePixel(dpy, DefaultScreen(dpy)); gcvalues.graphics_exposures = False; gc = XCreateGC(dpy, RootWindow(dpy, DefaultScreen(dpy)), GCForeground | GCBackground | GCFont | GCGraphicsExposures, &gcvalues); /* Assign the gc to the canvas object so we can use the same gc * each time we draw into the canvas. Also avoids a global * variable to store the GC. */ xv_set(canvas, XV_KEY_DATA, GC_KEY, gc, NULL); xv_main_loop(frame); } /* * Called every time the window needs repainting. */ void my_repaint_proc(canvas, pw, dpy, xwin, xrects) Canvas canvas; Xv_Window pw; Display *dpy; Window xwin; Xv_xrectlist *xrects; { GC gc = (GC)xv_get(canvas, XV_KEY_DATA, GC_KEY); XDrawString(dpy, xwin, gc, 10, 20, "Hello World", 11); /* 11 = strlen("Hello World") */ } xview-3.2p1.4/contrib/examples/fonts/type_font.c100644 1750 1750 5226 5413747602 17221 0ustar mbmb/* * simple_font.c -- very simple program showing how to render text * using fonts loaded by XView. */ #include #include #include #include #include #include Display *dpy; GC gc; XFontStruct *font_info; main(argc, argv) int argc; char *argv[]; { Frame frame; Panel panel; Canvas canvas; XGCValues gcvalues; Xv_Font font; void my_event_proc(); extern void exit(); xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create(XV_NULL, FRAME, FRAME_LABEL, argv[0], NULL); panel = (Panel)xv_create(frame, PANEL, PANEL_LAYOUT, PANEL_VERTICAL, NULL); xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Quit", PANEL_NOTIFY_PROC, exit, NULL); window_fit(panel); canvas = (Canvas)xv_create(frame, CANVAS, XV_WIDTH, 400, XV_HEIGHT, 200, CANVAS_X_PAINT_WINDOW, TRUE, NULL); xv_set(canvas_paint_window(canvas), WIN_EVENT_PROC, my_event_proc, NULL); window_fit(frame); dpy = (Display *)xv_get(frame, XV_DISPLAY); font = (Xv_Font)xv_get(frame, XV_FONT); font_info = (XFontStruct *)xv_get(font, FONT_INFO); gcvalues.font = (Font)xv_get(font, XV_XID); gcvalues.foreground = BlackPixel(dpy, DefaultScreen(dpy)); gcvalues.background = WhitePixel(dpy, DefaultScreen(dpy)); gcvalues.graphics_exposures = False; gc = XCreateGC(dpy, RootWindow(dpy, DefaultScreen(dpy)), GCForeground | GCBackground | GCFont | GCGraphicsExposures, &gcvalues); xv_main_loop(frame); } void my_event_proc(win, event) Xv_Window win; Event *event; { static int x = 10, y = 10; Window xwin = (Window)xv_get(win, XV_XID); char c; if (event_is_up(event)) return; if (event_is_ascii(event)) { c = (char)event_id(event); if (c == '\n' || c == '\r') { y += font_info->max_bounds.ascent + font_info->max_bounds.descent; x = 10; } else if (c == 7 || c == 127) { /* backspace or delete */ if (x > 10) x -= XTextWidth(font_info, "m", 1); /* use XDrawImageString to overwrite previous text */ XDrawImageString(dpy, xwin, gc, x, y, " ", 2); } else { XDrawString(dpy, xwin, gc, x, y, &c, 1); x += XTextWidth(font_info, &c, 1); } } else if (event_action(event) == ACTION_SELECT) { x = event_x(event); y = event_y(event); } } xview-3.2p1.4/contrib/examples/frames/ 40755 1750 1750 0 6354605713 15071 5ustar mbmbxview-3.2p1.4/contrib/examples/frames/Imakefile100644 1750 1750 2324 5413747603 17000 0ustar mbmb#include /**/########################################################################## /**/# @(#)Imakefile 1.7 90/08/02 SMI /**/# Imakefile for examples/frames #define InstallSrcs YES LOCATION = examples/frames DEFINES = -DSTANDALONE $(XVCLIENTSYSDEFINES) SYS_LIBRARIES = INCLUDES = -I. -I$(HEADER_DEST) -I$(TOP) DEPLIBS = XViewClientDepLibs LOCAL_LIBRARIES = XViewClientLibs MAKEFILE_SIMPLE = Makefile.customer SRCS = command_frame.c done_proc.c frame_color.c hdrs_n_footers.c popup.c \ simple_frame.c subframe.c INSTALL_SRCS = $(SRCS) ALLFILES = $(MAKEFILE_SIMPLE) $(SRCS) PROGRAMS= command_frame done_proc frame_color hdrs_n_footers popup \ simple_frame subframe AllTarget($(PROGRAMS)) SingleProgramTarget(command_frame,command_frame.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(done_proc,done_proc.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(frame_color,frame_color.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(hdrs_n_footers,hdrs_n_footers.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(popup,popup.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(simple_frame,simple_frame.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(subframe,subframe.o,$(LOCAL_LIBRARIES), /**/) #include xview-3.2p1.4/contrib/examples/frames/Makefile.customer100644 1750 1750 1570 5413747603 20471 0ustar mbmb# # @(#)Makefile.customer 1.9 92/02/24 # # Makefile for the frames example programs for XView programmers # OSTYPE = SUNOS5 INCLUDE = -I${OPENWINHOME}/include # # If you want to compile for debugging, change "-O" to "-g" # CFLAGS_SUNOS41 = ${INCLUDE} -O CFLAGS_SUNOS5 = ${INCLUDE} -DSVR4 -O CFLAGS = $(CFLAGS_$(OSTYPE)) # if you want special to pass special loader options to ld, set # LDFLAGS= ... # XVIEW_LIBS = -L${OPENWINHOME}/lib \ -lxview -lolgx -lX11 CFILES = command_frame.c \ done_proc.c \ frame_color.c \ hdrs_n_footers.c \ popup.c \ simple_frame.c \ subframe.c OBJS = command_frame \ done_proc \ frame_color \ hdrs_n_footers \ popup \ simple_frame \ subframe all: ${OBJS} ${OBJS}: $$@.c $$@.o ${CC} ${CFLAGS} ${LDFLAGS} -o $@ $@.o ${XVIEW_LIBS} clean: rm -f core ${OBJS} *.o xview-3.2p1.4/contrib/examples/frames/command_frame.c100644 1750 1750 1076 5413747603 20126 0ustar mbmb#include main(argc, argv) int argc; char *argv[]; { Frame frame, subframe; frame = xv_create(NULL, FRAME, FRAME_ARGC_PTR_ARGV, &argc, argv, XV_WIDTH, 100, XV_HEIGHT, 100, FRAME_LABEL, "Base Frame", NULL); subframe = xv_create(frame, FRAME_CMD, XV_WIDTH, 100, XV_HEIGHT, 100, FRAME_LABEL, "Popup", NULL); xv_set(subframe, XV_SHOW, TRUE, NULL); xv_main_loop(frame); } xview-3.2p1.4/contrib/examples/frames/done_proc.c100644 1750 1750 1674 5413747603 17312 0ustar mbmb#include #include /* * subframe.c -- create a base frame that has an associated subframe. * Pull the pin out of the subframe and its FRAME_DONE_PROC procedure * gets called. */ main(argc, argv) int argc; char *argv[]; { Frame frame, subframe; int done_proc(); xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create(NULL, FRAME, NULL); subframe = (Frame)xv_create(frame, FRAME_CMD, FRAME_DONE_PROC, done_proc, XV_SHOW, TRUE, NULL); xv_main_loop(frame); } /* * when the pushpin is pulled out, this routine is called */ done_proc(subframe) Frame subframe; { /* we have the choice of vetoing or granting the user's * request to dismiss the frame -- if we choose to dismiss * the frame, we must do it manually. Like so: */ xv_set(subframe, XV_SHOW, FALSE, NULL); /* otherwise, we should push the pin back in */ } xview-3.2p1.4/contrib/examples/frames/frame_color.c100644 1750 1750 1467 5413747604 17633 0ustar mbmb/* * frame_color.c - demonstrates how to set the frame's * foreground and make it propogate to the children of * the frame. */ #include #include #include main(argc, argv) int argc; char **argv; { Frame frame; Panel panel; Cms cms; (void)xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, 0); frame = (Frame)xv_create(NULL, FRAME, FRAME_LABEL, argv[0], NULL); cms = xv_create(NULL, CMS, CMS_SIZE, CMS_CONTROL_COLORS + 1, CMS_CONTROL_CMS, True, CMS_NAMED_COLORS, "red", NULL, NULL); xv_set(frame, WIN_CMS, cms, NULL); panel = (Panel)xv_create(frame, PANEL, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Push Me", NULL); xv_main_loop(frame); } xview-3.2p1.4/contrib/examples/frames/hdrs_n_footers.c100644 1750 1750 1216 5413747604 20351 0ustar mbmb#include args_proc(prog) char *prog; { printf("%s: invalid argument.\\n", prog); exit(1); } main(argc, argv) int argc; char *argv[]; { Frame frame; frame = xv_create(NULL, FRAME, FRAME_ARGC_PTR_ARGV, &argc, argv, FRAME_CMDLINE_HELP_PROC, args_proc, FRAME_LABEL, argv[0], FRAME_SHOW_FOOTER, TRUE, FRAME_LEFT_FOOTER, "left side", FRAME_RIGHT_FOOTER, "right side", XV_WIDTH, 300, XV_HEIGHT, 300, NULL); xv_set(frame, FRAME_SHOW_HEADER, TRUE, NULL); xv_main_loop(frame); } xview-3.2p1.4/contrib/examples/frames/popup.c100644 1750 1750 3414 5413747604 16500 0ustar mbmb/* * popup.c -- popup a frame and allow the user to interact with * the new popup frame. */ #include #include Frame frame; /* top level application base-frame */ Frame subframe; /* subframe (FRAME_CMD) is a child of frame */ main(argc, argv) int argc; char *argv[]; { Panel panel; int show_cmd_frame(), pushed(); xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); /* Create base frame */ frame = (Frame)xv_create(NULL, FRAME, FRAME_LABEL, argv[0], NULL); /* Install a panel and a panel button */ panel = (Panel)xv_create(frame, PANEL, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Hello", PANEL_NOTIFY_PROC, show_cmd_frame, NULL); /* Create the command frame -- not displayed until XV_SHOW is set */ subframe = (Frame)xv_create(frame, FRAME_CMD, FRAME_LABEL, "Popup", NULL); /* Command frames have panels already created by default -- get it */ panel = (Panel)xv_get(subframe, FRAME_CMD_PANEL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Push Me", PANEL_NOTIFY_PROC, pushed, NULL); xv_main_loop(frame); } /* Called when base frame's button is pushed -- show/raise subframe */ show_cmd_frame(item, event) Frame item; Event *event; { xv_set(subframe, XV_SHOW, TRUE, NULL); } /* Called when command frame's button is pushed */ pushed(item,event) Panel_item item; Event *event; { printf("Hello world.\n"); /* Check to see if the pushpin is in -- if not, close frame */ /* if ((int)xv_get(subframe, FRAME_CMD_PUSHPIN_IN) == FALSE) */ if ((int)xv_get(subframe, FRAME_CMD_PIN_STATE) == FRAME_CMD_PIN_OUT) xv_set(subframe, XV_SHOW, FALSE, NULL); } xview-3.2p1.4/contrib/examples/frames/simple_frame.c100644 1750 1750 200 5413747604 17746 0ustar mbmb#include main() { Frame frame; frame = (Frame)xv_create(NULL, FRAME, NULL); xv_main_loop(frame); } xview-3.2p1.4/contrib/examples/frames/subframe.c100644 1750 1750 1125 5413747604 17136 0ustar mbmb/* * subframe.c -- display a subframe from a base frame. */ #include main(argc, argv) int argc; char *argv[]; { Frame frame, subframe; xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create(NULL, FRAME, XV_WIDTH, 100, XV_HEIGHT, 100, FRAME_LABEL, "Base Frame", NULL); subframe = (Frame)xv_create(frame, FRAME_CMD, XV_WIDTH, 100, XV_HEIGHT, 100, FRAME_LABEL, "Popup", NULL); xv_set(subframe, XV_SHOW, TRUE, NULL); xv_main_loop(frame); } xview-3.2p1.4/contrib/examples/icons/ 40755 1750 1750 0 6354605713 14727 5ustar mbmbxview-3.2p1.4/contrib/examples/icons/Imakefile100644 1750 1750 1440 5413747605 16636 0ustar mbmb#include /**/########################################################################## /**/# @(#)Imakefile 1.7 90/08/02 SMI /**/# Imakefile for examples/icons #define InstallSrcs YES LOCATION = examples/icons DEFINES = -DSTANDALONE $(XVCLIENTSYSDEFINES) SYS_LIBRARIES = INCLUDES = -I. -I$(HEADER_DEST) -I$(TOP) DEPLIBS = XViewClientDepLibs LOCAL_LIBRARIES = XViewClientLibs MAKEFILE_SIMPLE = Makefile.customer SRCS = icon_demo.c icon_demo2.c ICONS = closed.icon closed2.icon open.icon INSTALL_SRCS = $(SRCS) $(ICONS) ALLFILES = $(MAKEFILE_SIMPLE) $(SRCS) $(ICONS) PROGRAMS= icon_demo icon_demo2 AllTarget($(PROGRAMS)) SingleProgramTarget(icon_demo,icon_demo.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(icon_demo2,icon_demo2.o,$(LOCAL_LIBRARIES), /**/) #include xview-3.2p1.4/contrib/examples/icons/Makefile.customer100644 1750 1750 1402 5413747606 20324 0ustar mbmb# # @(#)Makefile.customer 1.8 92/02/24 # # Makefile for the icons example programs for XView programmers # OSTYPE = SUNOS5 INCLUDE = -I${OPENWINHOME}/include # # If you want to compile for debugging, change "-O" to "-g" # CFLAGS_SUNOS41 = ${INCLUDE} -O CFLAGS_SUNOS5 = ${INCLUDE} -DSVR4 -O CFLAGS = $(CFLAGS_$(OSTYPE)) # if you want special to pass special loader options to ld, set # LDFLAGS= ... # XVIEW_LIBS = -L${OPENWINHOME}/lib \ -lxview -lolgx -lX11 CFILES = icon_demo.c \ icon_demo2.c ICONS = closed.icon \ closed2.icon \ open.icon OBJS = icon_demo \ icon_demo2 all: ${OBJS} ${OBJS}: $$@.c $$@.o ${CC} ${CFLAGS} ${LDFLAGS} -o $@ $@.o ${XVIEW_LIBS} clean: rm -f core ${OBJS} *.o xview-3.2p1.4/contrib/examples/icons/closed.icon100644 1750 1750 3615 5413747606 17157 0ustar mbmb/* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16 */ 0x0000,0x0000,0x0000,0x0000,0x00FF,0xFFFF,0xFFFF,0xFF00, 0x0080,0x0000,0x0000,0x0100,0x009F,0xFFFF,0xFFFF,0xF900, 0x0090,0x0002,0x4000,0x0900,0x0090,0x0002,0x4000,0x0900, 0x0090,0x0002,0x4000,0x0900,0x0090,0x0042,0x4000,0x0900, 0x0090,0x1082,0x4021,0x0900,0x0090,0x2102,0x4042,0x0900, 0x0090,0x4202,0x4084,0x0900,0x0090,0x8402,0x4108,0x0900, 0x0091,0x0802,0x4210,0x0900,0x0090,0x1042,0x4020,0x8900, 0x0090,0x2082,0x4041,0x0900,0x0090,0x4102,0x4082,0x0900, 0x0090,0x8202,0x4104,0x0900,0x0091,0x0402,0x4208,0x0900, 0x0090,0x0802,0x4010,0x0900,0x0090,0x0002,0x4000,0x0900, 0x0090,0x0002,0x4000,0x0900,0x0090,0x0002,0x4000,0x0900, 0x0090,0x0002,0x4000,0x0900,0x0090,0x0002,0x4000,0x0900, 0x0090,0x0002,0x4000,0x0900,0x009F,0xFFFE,0x7FFF,0xF900, 0x0090,0x0000,0x0000,0x0900,0x0090,0x0000,0x0000,0x0900, 0x009F,0xFFFE,0x7FFF,0xF900,0x0090,0x0002,0x4000,0x0900, 0x0090,0x0002,0x4000,0x0900,0x0090,0x0002,0x4000,0x0900, 0x0090,0x2002,0x4000,0x0900,0x0090,0x4082,0x4104,0x0900, 0x0090,0x8102,0x4208,0x0900,0x0091,0x0202,0x4410,0x0900, 0x0092,0x0402,0x4820,0x0900,0x0090,0x0802,0x4042,0x0900, 0x0090,0x1042,0x4084,0x0900,0x0090,0x2082,0x4108,0x0900, 0x0090,0x4102,0x4210,0x0900,0x0090,0x8202,0x4420,0x0900, 0x0091,0x0002,0x4800,0x0900,0x0090,0x0002,0x4000,0x0900, 0x0090,0x0002,0x4000,0x0900,0x0090,0x0002,0x4000,0x0900, 0x009F,0xFFFF,0xFFFF,0xF900,0x0090,0x0000,0x0000,0x0900, 0x0090,0x001F,0xF800,0x0900,0x0090,0x001F,0xF800,0x0900, 0x0090,0x0000,0x0000,0x0900,0x009F,0xFFFF,0xFFFF,0xF900, 0x0080,0x0000,0x0000,0x0100,0x0080,0x0000,0x0000,0x0100, 0x00FF,0xFFFF,0xFFFF,0xFF00,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 xview-3.2p1.4/contrib/examples/icons/closed2.icon100644 1750 1750 3615 5413747606 17241 0ustar mbmb/* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16 */ 0x0000,0x0000,0x0000,0x0000,0x00FF,0xFFFF,0xFFFF,0xFF00, 0x0080,0x0000,0x0000,0x0100,0x009F,0xFFFF,0xFFFF,0xF900, 0x0090,0x0002,0x4000,0x0900,0x0090,0x0002,0x4000,0x0900, 0x0090,0x0002,0x4000,0x0900,0x0090,0x0042,0x4000,0x0900, 0x0090,0x1082,0x4021,0x0900,0x0090,0x2102,0x4042,0x0900, 0x0090,0x4202,0x4084,0x0900,0x0090,0x8402,0x4108,0x0900, 0x0091,0x0802,0x4210,0x0900,0x0090,0x1042,0x4020,0x8900, 0x0090,0x2082,0x4041,0x0900,0x0090,0x4102,0x4082,0x0900, 0x0090,0x8202,0x4104,0x0900,0x0091,0x0402,0x4208,0x0900, 0x0090,0x0802,0x4010,0x0900,0x0090,0x0002,0x4000,0x0900, 0x0090,0x0002,0x4000,0x0900,0x0090,0x0002,0x4000,0x0900, 0x0090,0x0002,0x4000,0x0900,0x0090,0x0002,0x4000,0x0900, 0x0090,0x0002,0x4000,0x0900,0x009F,0xFFFE,0x7FFF,0xF900, 0x0090,0x0000,0x0000,0x0900,0x0090,0x0000,0x0000,0x0900, 0x009F,0xFFFE,0x7FFF,0xF900,0x0090,0x0002,0x4000,0x0900, 0x0090,0x0002,0x4000,0x0900,0x0090,0x0002,0x4000,0x0900, 0x0090,0x2002,0x4000,0x0900,0x0090,0x4082,0x4104,0x0900, 0x0090,0x8102,0x4208,0x0900,0x0091,0x0202,0x4410,0x0900, 0x0092,0x0402,0x4820,0x0900,0x0090,0x0802,0x4042,0x0900, 0x0090,0x1042,0x4084,0x0900,0x0090,0x2082,0x4108,0x0900, 0x0090,0x4102,0x4210,0x0900,0x0090,0x8202,0x4420,0x0900, 0x0091,0x0002,0x4800,0x0900,0x0090,0x0002,0x4000,0x0900, 0x0090,0x0002,0x4000,0x0900,0x0090,0x0002,0x4000,0x0900, 0x009F,0xFFFF,0xFFFF,0xF900,0x0090,0x0000,0x0000,0x0900, 0x0090,0x001F,0xF800,0x0900,0x0090,0x001F,0xF800,0x0900, 0x0090,0x0000,0x0000,0x0900,0x009F,0xFFFF,0xFFFF,0xF900, 0x0080,0x0000,0x0000,0x0100,0x0080,0x0000,0x0000,0x0100, 0x00FF,0xFFFF,0xFFFF,0xFF00,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 xview-3.2p1.4/contrib/examples/icons/icon_demo.c100644 1750 1750 3432 5413747606 17131 0ustar mbmb/* * icon_demo.c -- demonstrate how an icon is used. Create a server * image and create an icon object with the image as the ICON_IMAGE. * Use the icon as the frame's icon. */ #include #include #include #include unsigned short open_bits[] = { #include "open.icon" }; unsigned short closed_bits[] = { #include "closed.icon" }; main(argc, argv) int argc; char *argv[]; { Frame frame; Panel panel; Server_image open_image, closed_image; Icon icon; void close_frame(); xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create(XV_NULL, FRAME, NULL); panel = (Panel)xv_create(frame, PANEL, NULL); open_image = (Server_image)xv_create(NULL, SERVER_IMAGE, XV_WIDTH, 64, XV_HEIGHT, 64, SERVER_IMAGE_BITS, open_bits, NULL); closed_image = (Server_image)xv_create(NULL, SERVER_IMAGE, XV_WIDTH, 64, XV_HEIGHT, 64, SERVER_IMAGE_BITS, closed_bits, NULL); (void) xv_create(panel, PANEL_MESSAGE, PANEL_LABEL_IMAGE, open_image, PANEL_NOTIFY_PROC, close_frame, NULL); icon = (Icon)xv_create(frame, ICON, ICON_IMAGE, closed_image, XV_X, 100, XV_Y, 100, NULL); xv_set(frame, FRAME_ICON, icon, NULL); window_fit(panel); window_fit(frame); xv_main_loop(frame); } void close_frame(item, event) Panel_item item; Event *event; { Frame frame = (Frame)xv_get(xv_get(item, PANEL_PARENT_PANEL), XV_OWNER); xv_set(frame, FRAME_CLOSED, TRUE, NULL); } xview-3.2p1.4/contrib/examples/icons/icon_demo2.c100644 1750 1750 4305 5413747606 17213 0ustar mbmb/* * icon_demo2.c -- demonstrate how an icon is used in color. Create a server * image for the icon and an icon mask to allow for non-rectangular appearance * and create an icon object with the image as the ICON_IMAGE. * Use the icon as the frame's icon. */ #include #include #include #include unsigned short open_bits[] = { #include "open.icon" }; unsigned short closed_bits[] = { #include "closed.icon" }; unsigned short closed_bits_mask[] = { #include "closed2.icon" }; main(argc, argv) int argc; char *argv[]; { Frame frame; Panel panel; Server_image open_image, closed_image, closed_image_mask; Icon icon; void close_frame(); xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create(XV_NULL, FRAME, NULL); panel = (Panel)xv_create(frame, PANEL, NULL); open_image = (Server_image)xv_create(NULL, SERVER_IMAGE, XV_WIDTH, 64, XV_HEIGHT, 64, SERVER_IMAGE_BITS, open_bits, NULL); closed_image = (Server_image)xv_create(NULL, SERVER_IMAGE, XV_WIDTH, 64, XV_HEIGHT, 64, SERVER_IMAGE_BITS, closed_bits, NULL); closed_image_mask = (Server_image)xv_create(NULL, SERVER_IMAGE, XV_WIDTH, 64, XV_HEIGHT, 64, SERVER_IMAGE_BITS, closed_bits_mask, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_IMAGE, open_image, PANEL_NOTIFY_PROC, close_frame, NULL); icon = (Icon)xv_create(frame, ICON, ICON_TRANSPARENT, TRUE, ICON_IMAGE, closed_image, ICON_MASK_IMAGE, closed_image_mask, XV_X, 100, XV_Y, 100, NULL); xv_set(frame, FRAME_ICON, icon, NULL); window_fit(panel); window_fit(frame); xv_main_loop(frame); } void close_frame(item, event) Panel_item item; Event *event; { Frame frame = xv_get(xv_get(item, PANEL_PARENT_PANEL), XV_OWNER); xv_set(frame, FRAME_CLOSED, TRUE, NULL); } xview-3.2p1.4/contrib/examples/icons/open.icon100644 1750 1750 3615 5413747607 16650 0ustar mbmb/* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16 */ 0x0000,0x0000,0x0000,0x0000,0x00FF,0xFFFF,0xFFFF,0xFF00, 0x0080,0x0000,0x0000,0x0100,0x009F,0xFFFF,0xFFFF,0xF900, 0x0090,0x0002,0x4000,0x0900,0x0090,0x0002,0x4000,0x0900, 0x0090,0x0002,0x4000,0x0900,0x0090,0x0042,0x4000,0x0900, 0x0090,0x1082,0x4021,0x0900,0x0090,0x2102,0x4042,0x0900, 0x0090,0x4202,0x4084,0x0900,0x0090,0x8402,0x4108,0x0900, 0x0091,0x0802,0x4210,0x0900,0x0090,0x1042,0x4020,0x8900, 0x0090,0x2082,0x4041,0x0900,0x0090,0x4102,0x4082,0x0900, 0x0090,0x8202,0x4104,0x0900,0x0091,0x0402,0x4208,0x0900, 0x0090,0x0802,0x4010,0x0900,0x0090,0x0002,0x4000,0x0900, 0x0090,0x0002,0x4000,0x0900,0x0090,0x0002,0x4000,0x0900, 0x0090,0x0002,0x4000,0x0900,0x0090,0x0002,0x4000,0x0900, 0x0090,0x0002,0x4000,0x0900,0x009F,0xFFFE,0x7FFF,0xF900, 0x0090,0x0000,0x0000,0x0900,0x0090,0x001F,0xF800,0x0900, 0x0090,0x001F,0xF800,0x0900,0x0090,0x0000,0x0000,0x0900, 0x009F,0xFFFF,0xFFFF,0xF900,0x0090,0x0000,0x0000,0x0900, 0x0090,0x0000,0x0000,0x0900,0x0090,0x0000,0x0000,0x0900, 0x0090,0x0003,0x8000,0x0900,0x0090,0x0003,0x8000,0x0900, 0x0090,0x0003,0x8000,0x0900,0x0090,0x0003,0x8000,0x0900, 0x0090,0x0003,0x8000,0x0900,0x0090,0x0003,0x8000,0x0900, 0x0090,0x0003,0x8000,0x0900,0x0090,0x0003,0x8000,0x0900, 0x0090,0x0003,0x8000,0x0900,0x0090,0x0003,0x8000,0x0900, 0x0090,0x0003,0x8000,0x0900,0x0090,0x001F,0xF000,0x0900, 0x0090,0x000F,0xE000,0x0900,0x0090,0x0007,0xC000,0x0900, 0x0090,0x0003,0x8000,0x0900,0x0090,0x0001,0x0000,0x0900, 0x0090,0x0000,0x0000,0x0900,0x009F,0xFFFF,0xFFFF,0xF900, 0x0080,0x0000,0x0000,0x0100,0x0080,0x0000,0x0000,0x0100, 0x00FF,0xFFFF,0xFFFF,0xFF00,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 xview-3.2p1.4/contrib/examples/menus/ 40755 1750 1750 0 6354605713 14743 5ustar mbmbxview-3.2p1.4/contrib/examples/menus/Imakefile100644 1750 1750 2053 5413747610 16647 0ustar mbmb#include /**/########################################################################## /**/# @(#)Imakefile 1.7 90/08/02 SMI /**/# Imakefile for examples/menus #define InstallSrcs YES LOCATION = examples/menus DEFINES = -DSTANDALONE $(XVCLIENTSYSDEFINES) SYS_LIBRARIES = INCLUDES = -I. -I$(HEADER_DEST) -I$(TOP) DEPLIBS = XViewClientDepLibs LOCAL_LIBRARIES = XViewClientLibs MAKEFILE_SIMPLE = Makefile.customer SRCS = menu.c menu_dir.c menu_dir2.c pin_menu.c simple_menu.c xv_menu.c INSTALL_SRCS = $(SRCS) ALLFILES = $(MAKEFILE_SIMPLE) $(SRCS) PROGRAMS= menu menu_dir menu_dir2 pin_menu simple_menu xv_menu AllTarget($(PROGRAMS)) SingleProgramTarget(menu,menu.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(menu_dir,menu_dir.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(menu_dir2,menu_dir2.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(pin_menu,pin_menu.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(simple_menu,simple_menu.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(xv_menu,xv_menu.o,$(LOCAL_LIBRARIES), /**/) #include xview-3.2p1.4/contrib/examples/menus/Makefile.customer100644 1750 1750 1425 5413747610 20340 0ustar mbmb# # @(#)Makefile.customer 1.7 92/02/24 # # Makefile for the menus example programs for XView programmers # OSTYPE = SUNOS5 INCLUDE = -I${OPENWINHOME}/include # # If you want to compile for debugging, change "-O" to "-g" # CFLAGS_SUNOS41 = ${INCLUDE} -O CFLAGS_SUNOS5 = ${INCLUDE} -DSVR4 -O CFLAGS = $(CFLAGS_$(OSTYPE)) # if you want special to pass special loader options to ld, set # LDFLAGS= ... # XVIEW_LIBS = -L${OPENWINHOME}/lib \ -lxview -lolgx -lX11 CFILES = menu.c \ menu_dir.c \ menu_dir2.c \ simple_menu.c \ xv_menu.c OBJS = menu \ menu_dir \ menu_dir2 \ simple_menu \ xv_menu all: ${OBJS} ${OBJS}: $$@.c $$@.o ${CC} ${CFLAGS} ${LDFLAGS} -o $@ $@.o ${XVIEW_LIBS} clean: rm -f core ${OBJS} *.o xview-3.2p1.4/contrib/examples/menus/menu.c100644 1750 1750 4554 5413747610 16156 0ustar mbmb/* * xv_menu.c - * Demonstrate the use of an XView menu in a canvas subwindow. * Menu is brought up with right mouse button and displays * choice made in the canvas. Allow menu to be pinned. */ #include #include Frame frame; main(argc,argv) int argc; char *argv[]; { Canvas canvas; Menu menu; void my_notify_proc(), my_event_proc(); extern void exit(); xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create(NULL, FRAME, FRAME_LABEL, argv[0], NULL); canvas = (Canvas)xv_create(frame, CANVAS, XV_WIDTH, 300, XV_HEIGHT, 200, NULL); menu = (Menu)xv_create(NULL, MENU, MENU_TITLE_ITEM, "Junk", MENU_STRINGS, "Yes", "No", "Maybe", NULL, MENU_NOTIFY_PROC, my_notify_proc, MENU_ITEM, MENU_STRING, "Save", MENU_NOTIFY_PROC, my_notify_proc, MENU_PULLRIGHT, xv_create(canvas, MENU, MENU_GEN_PIN_WINDOW, frame, "Save", MENU_ITEM, MENU_STRING, "Update Changes", MENU_NOTIFY_PROC, my_notify_proc, NULL, NULL), NULL, MENU_ITEM, MENU_STRING, "Quit", MENU_NOTIFY_PROC, exit, NULL, NULL); xv_set(canvas_paint_window(canvas), WIN_CONSUME_EVENTS, WIN_MOUSE_BUTTONS, NULL, WIN_EVENT_PROC, my_event_proc, /* associate the menu to the canvas win so we can retreive it easily */ WIN_CLIENT_DATA, menu, NULL); window_fit(frame); window_main_loop(frame); } /* * my_notify_proc - Display menu selection in frame header. */ void my_notify_proc(menu, menu_item) Menu menu; Menu_item menu_item; { xv_set(frame, FRAME_LABEL, xv_get(menu_item, MENU_STRING), NULL); } /* * my_event_proc - Call menu_show() to display menu on right mouse button push. */ void my_event_proc(window, event) Xv_Window window; Event *event; { if (event_action(event) == ACTION_MENU && event_is_down(event)) { Menu menu = (Menu)xv_get(window, WIN_CLIENT_DATA); menu_show(menu, window, event, NULL); } } xview-3.2p1.4/contrib/examples/menus/menu_dir.c100644 1750 1750 12171 5413747610 17026 0ustar mbmb/* * menu_dir.c - * Demonstrate the use of an XView menu in a canvas subwindow. * A menu is brought up with the MENU mouse button and displays * menu choices representing the files in the directory. If a * directory entry is found, a new pullright item is created with * that subdir as the pullright menu's contents. This implementation * creates the entire directory tree initially. Do not attempt to * build a tree from /. You will most likely run out of resources. * * argv[1] indicates which directory to start from. */ #include #include #include #include #include #include #ifndef MAXPATHLEN #include /* probably sun/BSD specific */ #endif /* MAXPATHLEN */ Frame frame; /* * main - * Create a frame, canvas and menu. * A canvas receives input in its canvas_paint_window(). * Its callback procedure calls menu_show(). */ main(argc,argv) int argc; char *argv[]; { Canvas canvas; extern void exit(); void my_event_proc(); Menu menu; Menu_item mi, add_path_to_menu(); xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create(NULL, FRAME, FRAME_LABEL, argv[1]? argv[1] : "cwd", FRAME_SHOW_FOOTER, TRUE, NULL); canvas = (Canvas)xv_create(frame, CANVAS, FRAME_LABEL, argv[0], XV_WIDTH, 400, XV_HEIGHT, 100, NULL); mi = add_path_to_menu(argc > 1? argv[1] : "."); menu = (Menu)xv_get(mi, MENU_PULLRIGHT); /* associate the menu to the canvas win for easy retrieval */ xv_set(canvas_paint_window(canvas), WIN_CONSUME_EVENTS, WIN_MOUSE_BUTTONS, NULL, WIN_EVENT_PROC, my_event_proc, WIN_CLIENT_DATA, menu, NULL); window_fit(frame); window_main_loop(frame); } /* * my_action_proc - display the selected item in the frame footer. */ void my_action_proc(menu, menu_item) Menu menu; Menu_item menu_item; { xv_set(frame, FRAME_LEFT_FOOTER, xv_get(menu_item, MENU_STRING), NULL); } /* * Call menu_show() to display menu on right mouse button push. */ void my_event_proc(canvas, event) Canvas canvas; Event *event; { if ((event_id(event) == MS_RIGHT) && event_is_down(event)) { Menu menu = (Menu)xv_get(canvas, WIN_CLIENT_DATA); menu_show(menu, canvas, event, NULL); } } /* * return an allocated char * that points to the last item in a path. */ char * getfilename(path) char *path; { char *p; if (p = rindex(path, '/')) p++; else p = path; return strcpy(malloc(strlen(p)+1), p); } /* * The path passed in is scanned via readdir(). For each file in the * path, a menu item is created and inserted into a new menu. That * new menu is made the PULLRIGHT_MENU of a newly created panel item * for the path item originally passed it. Since this routine is * recursive, a new menu is created for each subdirectory under the * original path. */ Menu_item add_path_to_menu(path) char *path; { DIR *dirp; struct dirent *dp; struct stat s_buf; Menu_item mi; Menu next_menu; char buf[MAXPATHLEN]; /* don't add a folder to the list if user can't read it */ if (stat(path, &s_buf) == -1 || !(s_buf.st_mode & S_IREAD)) return NULL; if (s_buf.st_mode & S_IFDIR) { int cnt = 0; if (!(dirp = opendir(path))) /* don't bother adding to list if we can't scan it */ return NULL; next_menu = (Menu)xv_create(XV_NULL, MENU, NULL); while (dp = readdir(dirp)) if (strcmp(dp->d_name, ".") && strcmp(dp->d_name, "..")) { (void) sprintf(buf, "%s/%s", path, dp->d_name); if (!(mi = add_path_to_menu(buf))) /* unreadable file or dir - deactivate item */ mi = xv_create(XV_NULL, MENUITEM, MENU_STRING, getfilename(dp->d_name), MENU_RELEASE, MENU_RELEASE_IMAGE, MENU_INACTIVE, TRUE, NULL); xv_set(next_menu, MENU_APPEND_ITEM, mi, NULL); cnt++; } closedir(dirp); mi = xv_create(XV_NULL, MENUITEM, MENU_STRING, getfilename(path), MENU_RELEASE, MENU_RELEASE_IMAGE, MENU_NOTIFY_PROC, my_action_proc, NULL); if (!cnt) { xv_destroy(next_menu); /* An empty or unsearchable directory - deactivate item */ xv_set(mi, MENU_INACTIVE, TRUE, NULL); } else { xv_set(next_menu, MENU_TITLE_ITEM, getfilename(path), NULL); xv_set(mi, MENU_PULLRIGHT, next_menu, NULL); } return mi; } return (Menu_item)xv_create(NULL, MENUITEM, MENU_STRING, getfilename(path), MENU_RELEASE, MENU_RELEASE_IMAGE, MENU_NOTIFY_PROC, my_action_proc, NULL); } xview-3.2p1.4/contrib/examples/menus/menu_dir2.c100644 1750 1750 15535 5413747610 17117 0ustar mbmb/* * menu_dir2.c - * Demonstrate the use of an XView menu in a canvas subwindow. * A menu is brought up with the MENU mouse button and displays * menu choices representing the files in the directory. If a * directory entry is found, a new pullright item is created with * that subdir as the pullright menu's contents. This implementation * creates directories on an as-needed basis. Thus, we provide a * MENU_GEN_PULLRIGHT procedure. * * argv[1] indicates which directory to start from. */ #include #include #include #include #include #include #ifndef MAXPATHLEN #include #endif /* MAXPATHLEN */ Frame frame; Menu_item add_path_to_menu(); void my_event_proc(); main(argc,argv) int argc; char *argv[]; { Canvas canvas; extern void exit(); Menu menu; Menu_item mi; xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create(NULL, FRAME, FRAME_LABEL, argv[1]? argv[1] : "cwd", FRAME_SHOW_FOOTER, TRUE, NULL); canvas = (Canvas)xv_create(frame, CANVAS, FRAME_LABEL, argv[0], XV_WIDTH, 400, XV_HEIGHT, 100, NULL); mi = add_path_to_menu(argc > 1? argv[1] : "."); menu = (Menu)xv_get(mi, MENU_PULLRIGHT); /* We no longer need the item since we have the menu from it */ xv_destroy(mi); /* associate the menu to the canvas win for easy etreival */ xv_set(canvas_paint_window(canvas), WIN_CONSUME_EVENTS, WIN_MOUSE_BUTTONS, NULL, WIN_EVENT_PROC, my_event_proc, WIN_CLIENT_DATA, menu, NULL); window_fit(frame); window_main_loop(frame); } /* * my_action_proc - display the selected item in the frame footer. */ void my_action_proc(menu, menu_item) Menu menu; Menu_item menu_item; { xv_set(frame, FRAME_LEFT_FOOTER, xv_get(menu_item, MENU_STRING), NULL); } /* * Call menu_show() to display menu on right mouse button push. */ void my_event_proc(paint_win, event) Xv_Window paint_win; Event *event; { if ((event_id(event) == MS_RIGHT) && event_is_down(event)) { Menu menu = (Menu)xv_get(paint_win, WIN_CLIENT_DATA); menu_show(menu, paint_win, event, NULL); } } /* * return an allocated char * that points to the last item in a path. */ char * getfilename(path) char *path; { char *p; if (p = rindex(path, '/')) p++; else p = path; return strcpy(malloc(strlen(p)+1), p); } /* gen_pullright() is called in the following order: * Pullright menu needs to be displayed. (MENU_PULLRIGHT) * Menu is about to be dismissed (MENU_DISPLAY_DONE) * User made a selection (before menu notify function) * After the notify routine has been called. * The above order is done whether or not the user makes a * menu selection. */ Menu gen_pullright(mi, op) Menu_item mi; Menu_generate op; { Menu menu; Menu_item new, old = mi; char buf[MAXPATHLEN]; if (op == MENU_DISPLAY) { menu = (Menu)xv_get(mi, MENU_PARENT); sprintf(buf, "%s/%s", (char *)xv_get(menu, MENU_CLIENT_DATA), (char *)xv_get(mi, MENU_STRING)); /* get old menu and free it -- we're going to build another */ if (menu = (Menu)xv_get(mi, MENU_PULLRIGHT)) { free((char *)xv_get(menu, MENU_CLIENT_DATA)); xv_destroy(menu); } if (new = add_path_to_menu(buf)) { menu = (Menu)xv_get(new, MENU_PULLRIGHT); xv_destroy(new); return menu; } } if (!(menu = (Menu)xv_get(mi, MENU_PULLRIGHT))) menu = (Menu)xv_create(NULL, MENU, MENU_STRINGS, "Couldn't build a menu.", NULL, NULL); return menu; } /* * The path passed in is scanned via readdir(). For each file in the * path, a menu item is created and inserted into a new menu. That * new menu is made the PULLRIGHT_MENU of a newly created panel item * for the path item originally passed it. Since this routine is * recursive, a new menu is created for each subdirectory under the * original path. */ Menu_item add_path_to_menu(path) char *path; { DIR *dirp; struct dirent *dp; struct stat s_buf; Menu_item mi; Menu next_menu; char buf[MAXPATHLEN]; static int recursion; /* don't add a folder to the list if user can't read it */ if (stat(path, &s_buf) == -1 || !(s_buf.st_mode & S_IREAD)) return NULL; if (s_buf.st_mode & S_IFDIR) { int cnt = 0; if (!(dirp = opendir(path))) /* don't bother adding to list if we can't scan it */ return NULL; if (recursion) return (Menu_item)-1; recursion++; next_menu = (Menu)xv_create(XV_NULL, MENU, NULL); while (dp = readdir(dirp)) if (strcmp(dp->d_name, ".") && strcmp(dp->d_name, "..")) { (void) sprintf(buf, "%s/%s", path, dp->d_name); mi = add_path_to_menu(buf); if (!mi || mi == (Menu_item)-1) { int do_gen_pullright = (mi == (Menu_item)-1); /* unreadable file or dir - deactivate item */ mi = (Menu_item)xv_create(XV_NULL, MENUITEM, MENU_STRING, getfilename(dp->d_name), MENU_RELEASE, MENU_RELEASE_IMAGE, NULL); if (do_gen_pullright) xv_set(mi, MENU_GEN_PULLRIGHT, gen_pullright, NULL); else xv_set(mi, MENU_INACTIVE, TRUE, NULL); } xv_set(next_menu, MENU_APPEND_ITEM, mi, NULL); cnt++; } closedir(dirp); mi = (Menu_item)xv_create(XV_NULL, MENUITEM, MENU_STRING, getfilename(path), MENU_RELEASE, MENU_RELEASE_IMAGE, MENU_NOTIFY_PROC, my_action_proc, NULL); if (!cnt) { xv_destroy(next_menu); /* An empty or unsearchable directory - deactivate item */ xv_set(mi, MENU_INACTIVE, TRUE, NULL); } else { xv_set(next_menu, MENU_TITLE_ITEM, strcpy(malloc(strlen(path)+1), path), MENU_CLIENT_DATA, strcpy(malloc(strlen(path)+1), path), NULL); xv_set(mi, MENU_PULLRIGHT, next_menu, NULL); } recursion--; return mi; } return (Menu_item)xv_create(NULL, MENUITEM, MENU_STRING, getfilename(path), MENU_RELEASE, MENU_RELEASE_IMAGE, MENU_NOTIFY_PROC, my_action_proc, NULL); } xview-3.2p1.4/contrib/examples/menus/pin_menu.c100644 1750 1750 11663 5413747610 17043 0ustar mbmb/* * pin_menu.c - * Demonstrate how to generate your own pinup menu. * Use of MENU_GEN_PIN_WINDOW is for static menus only. * This demo uses menus whose items may change, so we * need to reflect those changes in our own command frame. */ #include #include #include Frame frame; /* * main - * Create a frame, canvas and menu. * A canvas receives input in its canvas_paint_window(). * Specify creation of an Open Look Menu and transformation of * the menu to a pinned command window. * Each menu item specifies an action proc to be called when the * item is chosen, regardless of whether or not menu is pinned. */ main(argc,argv) int argc; char *argv[]; { Canvas canvas; Menu menu; int my_notify_proc(); void my_event_proc(), my_menu_done(); extern void exit(); xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create(NULL, FRAME, FRAME_LABEL, argv[0], NULL); canvas = (Canvas)xv_create(frame, CANVAS, XV_WIDTH, 300, XV_HEIGHT, 200, NULL); menu = (Menu)xv_create(NULL, MENU, MENU_GEN_PIN_WINDOW, frame, "Junk", MENU_DONE_PROC, my_menu_done, /* MENU_STRINGS, "Yes", "No", "Maybe", NULL, MENU_NOTIFY_PROC, my_notify_proc, */ MENU_ITEM, MENU_STRING, "No", MENU_NOTIFY_PROC, my_notify_proc, NULL, MENU_ITEM, MENU_STRING, "Yes", MENU_NOTIFY_PROC, my_notify_proc, NULL, MENU_ITEM, MENU_STRING, "Maybe", MENU_NOTIFY_PROC, my_notify_proc, NULL, MENU_ITEM, MENU_STRING, "Save", MENU_NOTIFY_PROC, my_notify_proc, MENU_PULLRIGHT, xv_create(canvas, MENU, MENU_ITEM, MENU_STRING, "Update Changes", MENU_NOTIFY_PROC, my_notify_proc, NULL, NULL), NULL, MENU_ITEM, MENU_STRING, "Quit", MENU_NOTIFY_PROC, exit, NULL, NULL); xv_set(canvas_paint_window(canvas), WIN_CONSUME_EVENTS, WIN_MOUSE_BUTTONS, NULL, WIN_EVENT_PROC, my_event_proc, /* associate the menu to the canvas win so we can retreive it easily */ WIN_CLIENT_DATA, menu, NULL); window_fit(frame); window_main_loop(frame); } /* * my_menu_done - menu has been popped-down. Make sure the command frame panel * matches the menu. */ void my_menu_done(menu, result) Menu menu; Xv_opaque result; { int default_item, i; Frame pin_frame; Panel panel; Panel_item pi; printf("result = %x\n", result); if (!(pin_frame = (Frame)xv_get(menu, MENU_PIN_WINDOW))) { puts("menu has no pin frame"); return; } panel = (Panel)xv_get(pin_frame, FRAME_CMD_PANEL); /* get the ordinal number of the default menu item */ default_item = (int)xv_get(menu, MENU_DEFAULT); /* search for the -th item in the panel and... */ pi = (Panel_item)xv_get(panel, PANEL_FIRST_ITEM); for (i = 1 /*menu items offset at 1*/; i < default_item && pi; i++) pi = (Panel_item)xv_get(pi, PANEL_NEXT_ITEM); /* set that panel item to be the default item */ xv_set(panel, PANEL_DEFAULT_ITEM, pi, NULL); } /* * my_notify_proc - Display menu selection in frame header. */ /*ARGSUSED*/ int my_notify_proc(menu, menu_item) Menu menu; Menu_item menu_item; { xv_set(frame, FRAME_LABEL, xv_get(menu_item, MENU_STRING), NULL); return (XV_OK); } /* * my_event_proc - Call menu_show() to display menu on right mouse button push. */ void my_event_proc(window, event) Xv_Window window; Event *event; { if (event_action(event) == ACTION_MENU && event_is_down(event)) { Menu menu = (Menu)xv_get(window, WIN_CLIENT_DATA); if (!xv_get(menu, MENU_PIN_WINDOW)) create_pin_win(menu); menu_show(menu, window, event, NULL); } } #define MENU_KEY 100 #define MENU_ITEM_KEY 101 #define ACTION_KEY 102 #define nullstr "(null)" create_pin_win(menu) Menu menu; { int i; void pin_btn_notify(); Frame cmd_frame = (Frame)xv_create(frame, FRAME_CMD, XV_SHOW, FALSE, NULL); Panel panel = (Panel)xv_get(cmd_frame, FRAME_CMD_PANEL); Menu_item mi; char *ms; xv_set(panel, PANEL_LAYOUT, PANEL_VERTICAL, 0); printf("frame = %x, panel = %x\n", cmd_frame, panel); for (i = (int)xv_get(menu, MENU_NITEMS); i > 0; i--) { mi = (Menu_item)xv_get(menu, MENU_NTH_ITEM, i); if ((ms = (char *)xv_get(mi, MENU_STRING)) == 0) ms = nullstr; printf("adding panel item: %s\n", ms ); xv_create(panel, PANEL_BUTTON, /* PANEL_MENU_ITEM, TRUE, */ PANEL_LABEL_STRING, xv_get(mi, MENU_STRING), PANEL_NOTIFY_PROC, pin_btn_notify, XV_KEY_DATA, MENU_KEY, menu, XV_KEY_DATA, MENU_ITEM_KEY, mi, XV_KEY_DATA, ACTION_KEY, xv_get(mi, MENU_NOTIFY_PROC), NULL); } window_fit(panel); window_fit(cmd_frame); xv_set(menu, MENU_PIN_WINDOW, cmd_frame, NULL); } /*ARGSUSED*/ void pin_btn_notify(item, event) Panel_item item; Event *event; { Menu menu = (Menu)xv_get(item, XV_KEY_DATA, MENU_KEY); Menu_item mi = (Menu)xv_get(item, XV_KEY_DATA, MENU_ITEM_KEY); void (*action)() = (void (*)())xv_get(item, XV_KEY_DATA, ACTION_KEY); (*action)(menu, mi); } xview-3.2p1.4/contrib/examples/menus/simple_menu.c100644 1750 1750 4306 5413747611 17523 0ustar mbmb/* * simple_menu.c - * Demonstrate the use of an XView menu in a canvas subwindow. * A Menu is brought up with the MENU mouse button. The choices * in the menu toggle the display of the scrollbar next to the canvas. */ #include #include #include #define SCROLLBAR_KEY 100 #define MENU_KEY 200 main(argc,argv) int argc; char *argv[]; { Frame frame; Canvas canvas; Scrollbar scrollbar; Menu menu; void menu_notify_proc(), pw_event_proc(); xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); /* * Create a frame, canvas and menu. * A canvas receives input in its canvas_paint_window(). */ frame = (Frame)xv_create(NULL, FRAME, FRAME_LABEL, argv[0], NULL); canvas = (Canvas)xv_create(frame, CANVAS, XV_WIDTH, 300, XV_HEIGHT, 200, NULL); scrollbar = (Scrollbar)xv_create(canvas, SCROLLBAR, SCROLLBAR_DIRECTION, SCROLLBAR_VERTICAL, NULL); menu = (Menu)xv_create(NULL, MENU, MENU_TITLE_ITEM, "Scrollbar", MENU_STRINGS, "On", "Off", NULL, MENU_NOTIFY_PROC, menu_notify_proc, XV_KEY_DATA, SCROLLBAR_KEY, scrollbar, NULL); xv_set(canvas_paint_window(canvas), WIN_EVENT_PROC, pw_event_proc, XV_KEY_DATA, MENU_KEY, menu, NULL); window_fit(frame); window_main_loop(frame); } /* * menu_notify_proc - toggle the display of the scrollbar * based on which menu item was chosen. */ void menu_notify_proc(menu, menu_item) Menu menu; Menu_item menu_item; { char *menu_choice = (char *)xv_get(menu_item, MENU_STRING); int show_it = !strcmp(menu_choice, "On"); xv_set(xv_get(menu, XV_KEY_DATA, SCROLLBAR_KEY), XV_SHOW, show_it, NULL); } /* * Call menu_show() to display menu. */ void pw_event_proc(canvas_pw, event) Xv_Window canvas_pw; Event *event; { if (event_action(event) == ACTION_MENU && event_is_down(event)) { Menu menu = (Menu)xv_get(canvas_pw, XV_KEY_DATA, MENU_KEY); menu_show(menu, canvas_pw, event, NULL); } } xview-3.2p1.4/contrib/examples/menus/xv_menu.c100644 1750 1750 4537 5413747611 16675 0ustar mbmb/* * xv_menu.c - * Demonstrate the use of an XView menu in a canvas subwindow. * Menu is brought up with right mouse button and the selected * choice is displayed in the canvas. Allows menu to be pinned. */ #include #include Frame frame; main(argc,argv) int argc; char *argv[]; { Canvas canvas; Menu menu; void my_notify_proc(), my_event_proc(); extern void exit(); xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create(NULL, FRAME, FRAME_LABEL, argv[0], NULL); canvas = (Canvas)xv_create(frame, CANVAS, XV_WIDTH, 300, XV_HEIGHT, 200, NULL); menu = (Menu)xv_create(NULL, MENU, MENU_TITLE_ITEM, "Junk", MENU_STRINGS, "Yes", "No", "Maybe", NULL, MENU_NOTIFY_PROC, my_notify_proc, MENU_ITEM, MENU_STRING, "Save", MENU_NOTIFY_PROC, my_notify_proc, MENU_PULLRIGHT, xv_create(canvas, MENU, MENU_GEN_PIN_WINDOW, frame, "Save", MENU_ITEM, MENU_STRING, "Update Changes", MENU_NOTIFY_PROC, my_notify_proc, NULL, NULL), NULL, MENU_ITEM, MENU_STRING, "Quit", MENU_NOTIFY_PROC, exit, NULL, NULL); xv_set(canvas_paint_window(canvas), WIN_CONSUME_EVENTS, WIN_MOUSE_BUTTONS, NULL, WIN_EVENT_PROC, my_event_proc, /* associate the menu to the canvas win for easy retrieval */ WIN_CLIENT_DATA, menu, NULL); window_fit(frame); window_main_loop(frame); } /* * my_notify_proc - Display menu selection in frame header. */ void my_notify_proc(menu, menu_item) Menu menu; Menu_item menu_item; { xv_set(frame, FRAME_LABEL, xv_get(menu_item, MENU_STRING), NULL); } /* * Call menu_show() to display menu on right mouse button push. */ void my_event_proc(window, event) Xv_Window window; Event *event; { if (event_action(event) == ACTION_MENU && event_is_down(event)) { Menu menu = (Menu)xv_get(window, WIN_CLIENT_DATA); menu_show(menu, window, event, NULL); } } xview-3.2p1.4/contrib/examples/misc/ 40755 1750 1750 0 6354605713 14547 5ustar mbmbxview-3.2p1.4/contrib/examples/misc/Imakefile100644 1750 1750 2363 5413747612 16461 0ustar mbmb#include /**/########################################################################## /**/# @(#)Imakefile 1.6 1/7/92 SMI /**/# Imakefile for examples/misc #define InstallSrcs YES LOCATION = examples/misc DEFINES = -DSTANDALONE $(XVCLIENTSYSDEFINES) SYS_LIBRARIES = INCLUDES = -I. -I$(HEADER_DEST) -I$(TOP) DEPLIBS = XViewClientDepLibs LOCAL_LIBRARIES = XViewClientLibs MAKEFILE_SIMPLE = Makefile.customer SRCS = fullscreen.c multi_display.c multiscreen.c screen.c \ svrimage.c vkbd_fonts.c vkbd_colors.c type_to_string.c ICONS = textdemo.icon INSTALL_SRCS = $(SRCS) $(ICONS) ALLFILES = $(MAKEFILE_SIMPLE) $(SRCS) PROGRAMS= fullscreen multi_display multiscreen screen \ svrimage vkbd_fonts vkbd_colors AllTarget($(PROGRAMS)) SingleProgramTarget(fullscreen,fullscreen.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(multi_display,multi_display.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(multiscreen,multiscreen.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(screen,screen.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(svrimage,svrimage.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(vkbd_fonts,vkbd_fonts.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(vkbd_colors,vkbd_colors.o,$(LOCAL_LIBRARIES), /**/) #include xview-3.2p1.4/contrib/examples/misc/Makefile.customer100644 1750 1750 1621 5413747612 20144 0ustar mbmb# # @(#)Makefile.customer 1.12 92/02/24 # # Makefile for the misc example programs for XView programmers # OSTYPE = SUNOS5 INCLUDE = -I${OPENWINHOME}/include # # If you want to compile for debugging, change "-O" to "-g" # CFLAGS_SUNOS41 = ${INCLUDE} -O CFLAGS_SUNOS5 = ${INCLUDE} -DSVR4 -O CFLAGS = $(CFLAGS_$(OSTYPE)) # if you want special to pass special loader options to ld, set # LDFLAGS= ... # XVIEW_LIBS = -L${OPENWINHOME}/lib \ -lxview -lolgx -lX11 CFILES = fullscreen.c \ multi_display.c \ multiscreen.c \ screen.c \ vkbd_colors.c \ vkbd_fonts.c \ svrimage.c ICONS = textdemo.icon OBJS = fullscreen \ multi_display \ multiscreen \ screen \ vkbd_colors \ vkbd_fonts \ svrimage all: ${OBJS} ${OBJS}: $$@.c $$@.o ${CC} ${CFLAGS} ${LDFLAGS} -o $@ $@.o ${XVIEW_LIBS} clean: rm -f core ${OBJS} *.o xview-3.2p1.4/contrib/examples/misc/drag_n_drop.c100644 1750 1750 0 5413747612 17174 0ustar mbmbxview-3.2p1.4/contrib/examples/misc/fullscreen.c100644 1750 1750 4423 5413747612 17155 0ustar mbmb/* * fullscreen.c * Demonstrate the fullscreen package. Create a panel button that * creates a fullscreen instance, thus grabbing the X server. User * presses a mouse button to release the server. */ #include #include #include main(argc, argv) char *argv[]; { Frame frame; Panel panel; void exit(), grab(); xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create(XV_NULL, FRAME, NULL); panel = (Panel)xv_create(frame, PANEL, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Quit", PANEL_NOTIFY_PROC, exit, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Fullscreen", PANEL_NOTIFY_PROC, grab, NULL); window_fit(panel); window_fit(frame); xv_main_loop(frame); } /* * Notify procedure for when the "Fullscreen" button is pushed. * Create a fullscreen instance, scan for a button event, then * destroy it. */ void grab(item, event) Panel_item item; Event *event; { Panel panel = (Panel)xv_get(item, PANEL_PARENT_PANEL); Frame frame = (Frame)xv_get(panel, XV_OWNER); Fullscreen fs; Inputmask im; /* set up an input mask for the call to xv_input_readevent(). */ win_setinputcodebit(&im, MS_LEFT); win_setinputcodebit(&im, MS_MIDDLE); win_setinputcodebit(&im, MS_RIGHT); win_setinputcodebit(&im, LOC_MOVE); /* * Create a fullscreen object (initialize X server grab). * Specify which events should be allowed to pass through. * These events should match the input mask coded above. */ fs = xv_create(panel, FULLSCREEN, WIN_CONSUME_EVENTS, WIN_MOUSE_BUTTONS, LOC_MOVE, NULL, NULL); /* Loop till user generates a button event */ while (xv_input_readevent(panel, event, TRUE, TRUE, &im) != -1) if (event_is_button(event)) break; /* Destroy the fullscreen (release the X server grab) */ xv_destroy(fs); /* Report which button was pushed. */ printf("event was button %d (%d, %d)\n", event_id(event) - BUT_FIRST+1, event_x(event) + (int)xv_get(frame, XV_X), event_y(event) + (int)xv_get(frame, XV_Y)); } xview-3.2p1.4/contrib/examples/misc/multi_display.c100644 1750 1750 15570 5413747612 17717 0ustar mbmb/* * multi_display.c -- display a control panel which contains buttons * which allow a base frame to be created on either screen controlled * by the same X11 server. In order for this program to work, you * must have two screens. */ #include #include #include #include #include #include #define WIDTH 448 #define HEIGHT 500 Frame baseFr; Panel panel; Display *display; Xv_Window win_0, win_1; Xv_Screen scrn_0, scrn_1; GC gc_0, gc_1; void Display0(), Display1(), QuitTest(); main(argc,argv) int argc; char *argv[]; { xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, 0); /* Get the default servers's 0, and 1th screens */ scrn_0 = (Xv_Screen) xv_get( xv_default_server, SERVER_NTH_SCREEN, 0 ); scrn_1 = (Xv_Screen) xv_get( xv_default_server, SERVER_NTH_SCREEN, 1 ); /* Get the root window for the screen 0 and screen 1 */ win_0 = (Xv_Window) xv_get( scrn_0, XV_ROOT ); win_1 = (Xv_Window) xv_get( scrn_1, XV_ROOT ); baseFr = xv_create( win_0, FRAME, FRAME_LABEL, "Control Panel", XV_WIDTH, 250, XV_HEIGHT, 150, 0); display = (Display *) xv_get( baseFr, XV_DISPLAY ); panel = xv_create( baseFr, PANEL, XV_X, 0, XV_Y, 0, XV_WIDTH, WIN_EXTEND_TO_EDGE, XV_HEIGHT, WIN_EXTEND_TO_EDGE, OPENWIN_SHOW_BORDERS, FALSE, 0); xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Quit", PANEL_NOTIFY_PROC, QuitTest, 0); xv_create(panel, PANEL_BUTTON, XV_X, 5, XV_Y, 50, PANEL_LABEL_STRING, "Display On unix:0.0", PANEL_NOTIFY_PROC, Display0, 0); xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Display On unix:0.1", PANEL_NOTIFY_PROC, Display1, 0); xv_main_loop(baseFr); return 0; } void QuitTest(item, event) Panel_item item; Event *event; { xv_destroy(panel); xv_destroy(baseFr); exit(0); } void Display0(item, event) Panel_item item; Event *event; { Canvas canvas; void can_0_repaint_proc(); Pixfont *demoFont; Frame frame; frame = xv_create(win_0, FRAME, FRAME_LABEL, "unix:0.0", XV_WIDTH, WIDTH, XV_HEIGHT, HEIGHT, XV_SHOW, TRUE, 0); canvas = xv_create(frame, CANVAS, CANVAS_X_PAINT_WINDOW, TRUE, CANVAS_REPAINT_PROC, can_0_repaint_proc, 0); gc_0 = DefaultGC( display, 0 ); demoFont = (Pixfont *) xv_create( 0, FONT,FONT_NAME, "lucidasans-BoldItalic-18", 0 ); if ( !demoFont ) { fprintf( stderr,"Can't find lucidasans-14.\n" ); exit(1); } XSetFont( display, gc_0, (Font)xv_get( demoFont, XV_XID ) ); XSetLineAttributes( display, gc_0, 6, LineSolid, CapRound, JoinRound ); } void Display1(item, event) Panel_item item; Event *event; { Canvas canvas; void can_1_repaint_proc(); Pixfont *demoFont; Frame frame; frame = xv_create(win_1, FRAME, FRAME_LABEL, "unix:0.1", XV_WIDTH, 550, XV_HEIGHT, 500, XV_SHOW, TRUE, 0); canvas = xv_create(frame, CANVAS, CANVAS_X_PAINT_WINDOW, TRUE, CANVAS_REPAINT_PROC, can_1_repaint_proc, 0); gc_1 = DefaultGC( display, 1 ); demoFont = (Pixfont *) xv_create( 0,FONT,FONT_NAME,"lucidasans-BoldItalic-14",0); if ( !demoFont ) { fprintf( stderr,"Can't find lucidasans-BoldItalic-14.\n" ); exit(1); } XSetFont( display, gc_1, (Font)xv_get( demoFont, XV_XID ) ); XSetLineAttributes( display, gc_1, 6, LineSolid, CapRound, JoinRound ); } void can_0_repaint_proc(canvas, pw, display, xid, xrects) Canvas canvas; Xv_Window pw; Display *display; Window xid; Xv_xrectlist *xrects; { int width, height; XPoint pts[3]; XGCValues gcValue; unsigned long gcValMask; /* Set clip rects, if any */ if (xrects) { XSetClipRectangles(display,gc_0,0,0,xrects->rect_array, xrects->count,Unsorted); } else { gcValue.clip_mask = None; XChangeGC( display, gc_0, GCClipMask, &gcValue ); } width = (int) xv_get( pw, XV_WIDTH ); height = (int) xv_get( pw, XV_HEIGHT ); XDrawString( display, xid, gc_0, width/4, height/2, "Multi Headed XView!!!", 21 ); XDrawLine( display, xid, gc_0, 0, height/2, width/2, 0 ); XDrawLine( display, xid, gc_0, 0, height/2, width/2, height ); XDrawLine( display, xid, gc_0, width/2, 0, width, height/2 ); XDrawLine( display, xid, gc_0, width, height/2, width/2, height ); pts[0].x = 0; pts[0].y = 0; pts[1].x = 0; pts[1].y = height/2; pts[2].x = width/2; pts[2].y = 0; XFillPolygon( display, xid, gc_0, pts, 3, Convex, CoordModeOrigin ); pts[0].x = height; pts[0].y = 0; pts[1].x = width/2; pts[1].y = 0; pts[2].x = width; pts[2].y = height/2; XFillPolygon( display, xid, gc_0, pts, 3, Convex, CoordModeOrigin ); pts[0].x = height; pts[0].y = width; pts[1].x = width; pts[1].y = height/2; pts[2].x = width/2; pts[2].y = height; XFillPolygon( display, xid, gc_0, pts, 3, Convex, CoordModeOrigin ); gcValue.fill_style = FillTiled; gcValue.function = GXcopy; gcValMask = GCFillStyle | GCFunction; XChangeGC( display, gc_0, gcValMask, &gcValue ); pts[0].x = 0; pts[0].y = height; pts[1].x = 0; pts[1].y = height/2; pts[2].x = width/2; pts[2].y = height; XFillPolygon( display, xid, gc_0, pts, 3, Convex, CoordModeOrigin ); } void can_1_repaint_proc(canvas, pw, display, xid, xrects) Canvas canvas; Xv_Window pw; Display *display; Window xid; Xv_xrectlist *xrects; { int width, height; XPoint pts[4]; XGCValues gcValue; unsigned long gcValMask; /* Set clip rects, if any */ if (xrects) { XSetClipRectangles(display,gc_1,0,0,xrects->rect_array, xrects->count,Unsorted); } else { gcValue.clip_mask = None; XChangeGC( display, gc_1, GCClipMask, &gcValue ); } width = (int) xv_get( pw, XV_WIDTH ); height = (int) xv_get( pw, XV_HEIGHT ); XDrawString(display,xid,gc_1,(5*width)/8,(5*height)/8,"Multi Headed XView!!!", 21 ); XDrawLine( display, xid, gc_1, (3 * width )/4, height/4, width/2, (5*height)/8 ); XDrawLine( display, xid, gc_1, width/2, (5*height)/8, (3 * width)/4, height ); XDrawLine( display, xid, gc_1, (3*width)/4, height, width, (5*height)/8 ); XDrawLine( display, xid, gc_1, width, (5*height)/8, (3*width)/4, height/4 ); pts[0].x = 0; pts[0].y = 0; pts[1].x = (3*width)/4; pts[1].y = height/4; pts[2].x = width/2; pts[2].y = (5*height)/8; pts[3].x = (3*width)/4; pts[3].y = height; XFillPolygon( display, xid, gc_1, pts, 4, Convex, CoordModeOrigin ); } xview-3.2p1.4/contrib/examples/misc/multiscreen.c100644 1750 1750 1634 5413747613 17347 0ustar mbmb/* * multiscreen.c -- display a base frame on two different screens * attached to the same X11 server. In order for this program to * work, you must have two screens. */ #include main(argc,argv) int argc; char *argv[]; { Xv_Server server; Xv_Screen screen_0, screen_1; Xv_Window root_0, root_1; Frame frame_0, frame_1; server = xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, 0); screen_0 = (Xv_Screen) xv_get(server, SERVER_NTH_SCREEN, 0); root_0 = (Xv_Window) xv_get(screen_0, XV_ROOT); screen_1 = (Xv_Screen) xv_get(server, SERVER_NTH_SCREEN, 1); root_1 = (Xv_Window) xv_get(screen_1, XV_ROOT); frame_0 = (Frame) xv_create(root_0, FRAME, FRAME_LABEL, "SCREEN 0", NULL); frame_1 = (Frame) xv_create(root_1, FRAME, FRAME_LABEL, "SCREEN 1", NULL); win_insert(frame_1); xv_main_loop(frame_0); } xview-3.2p1.4/contrib/examples/misc/screen.c100644 1750 1750 1642 5603430620 16257 0ustar mbmb/* * screen.c -- get some simple info about the current screen: * width, height, depth. */ #include #include main(argc, argv) int argc; char *argv[]; { Frame frame; Xv_Screen screen; Display *dpy; int screen_no; xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create(XV_NULL, FRAME, NULL); dpy = (Display *)xv_get(frame, XV_DISPLAY); /* lumpi@dobag.in-berlin.de */ printf("Server display = '%s'\n", ServerVendor(dpy)); /* printf("Server display = '%s'\n", dpy->vendor); */ screen = (Xv_Screen)xv_get(frame, XV_SCREEN); screen_no = (int)xv_get(screen, SCREEN_NUMBER); printf("Screen #%d: width: %d, height: %d, depth: %d\n", screen_no, DisplayWidth(dpy, screen_no), DisplayHeight(dpy, screen_no), DefaultDepth(dpy, screen_no)); } xview-3.2p1.4/contrib/examples/misc/svrimage.c100644 1750 1750 2755 5413747613 16637 0ustar mbmb/* * svrimage.c -- demonstrate how a server image can be created and * used. The "bits" used to create the image are taken arbitrarily * from */ #include #include #include #include unsigned short image_bits[] = { 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0007,0xE000, 0x0004,0x2000, 0x03FF,0xFFC0, 0x0200,0x0040, 0x02FF,0xFF40, 0x0080,0x0100, 0x00AA,0xAB00, 0x00AA,0xAB00, 0x00AA,0xAB00, 0x00AA,0xAB00, 0x00AA,0xAB00, 0x00AA,0xAB00, 0x00AA,0xAB00, 0x00AA,0xAB00, 0x00AA,0xAB00, 0x00AA,0xAB00, 0x00AA,0xAB00, 0x00AA,0xAB00, 0x00AA,0xAB00, 0x00AA,0xAB00, 0x00AA,0xAB00, 0x00AA,0xAB00, 0x00AA,0xAB00, 0x0091,0x1300, 0x00C0,0x0200, 0x003F,0xFC00 }; main(argc, argv) int argc; char *argv[]; { Frame frame; Server_image image; Panel panel; void exit(); xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); image = (Server_image)xv_create(NULL, SERVER_IMAGE, XV_WIDTH, 32, XV_HEIGHT, 30, SERVER_IMAGE_BITS, image_bits, NULL); frame = (Frame)xv_create(NULL, FRAME, NULL); panel = (Panel)xv_create(frame, PANEL, NULL); (void) xv_create(panel, PANEL_MESSAGE, PANEL_LABEL_IMAGE, image, PANEL_NOTIFY_PROC, exit, NULL); window_fit(panel); window_fit(frame); xv_main_loop(frame); } xview-3.2p1.4/contrib/examples/misc/textdemo.icon100644 1750 1750 3715 5413747613 17356 0ustar mbmb/* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16 */ 0xFFFF,0xFFFF,0xFFFF,0xFFFF, 0x8000,0x0000,0x0000,0x0001, 0x8000,0x0000,0x0000,0x0001, 0x8000,0x0000,0x0000,0x0001, 0x8000,0x0000,0x0000,0x0001, 0x8000,0x0000,0x0000,0x0001, 0x800F,0xFF00,0x0000,0x0001, 0x8000,0x6000,0x0000,0x6001, 0x8000,0x6000,0x0000,0x6001, 0x8000,0x601E,0x0618,0xF801, 0x8000,0x6033,0x0618,0x6001, 0x8000,0x6061,0x8330,0x6001, 0x8000,0x6061,0x81A0,0x6001, 0x8000,0x607F,0x81C0,0x6001, 0x8000,0x6060,0x00E0,0x6001, 0x8000,0x6060,0x0160,0x6001, 0x8000,0x6070,0x0330,0x6001, 0x8000,0x6039,0x8618,0x6001, 0x8000,0x601F,0x0618,0x3801, 0x8000,0x0000,0x0000,0x0001, 0x8000,0x0000,0x0000,0x0001, 0x8000,0x0000,0x0000,0x0001, 0x8000,0x0000,0x0000,0x0001, 0x8001,0xF800,0x0000,0x0001, 0x8001,0x0400,0x0000,0x0001, 0x8001,0x061C,0x5CE0,0xE001, 0x8001,0x0222,0x6731,0x1001, 0x8001,0x0242,0x4212,0x0801, 0x8001,0x027E,0x4212,0x0801, 0x8001,0x0240,0x4212,0x0801, 0x8001,0x0640,0x4212,0x0801, 0x8001,0x0422,0x4211,0x1001, 0x8001,0xF81C,0x4210,0xE001, 0x8000,0x0000,0x0000,0x0001, 0x8000,0x0000,0x0000,0x0001, 0x8000,0x0000,0x0000,0x0001, 0x8000,0x0000,0x0000,0x0001, 0xFFFF,0xFFFF,0xFFFF,0xFFFF, 0x8000,0x0000,0x0000,0x0001, 0x8000,0x0100,0x0000,0x0801, 0x8002,0x1100,0x8000,0x0801, 0x8002,0x1000,0x8000,0x0801, 0x8002,0x112D,0xE447,0x0801, 0x8002,0x1130,0x8448,0x8801, 0x8001,0x2120,0x8440,0x8801, 0x8001,0x2120,0x8447,0x8801, 0x8001,0x2120,0x8448,0x8801, 0x8000,0xC120,0x84C8,0x8801, 0x8000,0xC120,0x6347,0x4801, 0x8000,0x0000,0x0000,0x0001, 0x8000,0x0010,0x0000,0x0021, 0x8420,0x0010,0x0000,0x0021, 0x8440,0x0010,0x0000,0x0021, 0x8487,0x1116,0x0C38,0xB1E1, 0x8508,0x9119,0x1244,0xC221, 0x8708,0x9111,0x2104,0x8221, 0x848F,0x8A11,0x213C,0x8221, 0x8448,0x0A11,0x2144,0x8221, 0x8428,0x8411,0x1244,0x8261, 0x8427,0x041E,0x0C3A,0x81A1, 0x8000,0x0800,0x0000,0x0001, 0x8000,0x1800,0x0000,0x0001, 0x8000,0x0000,0x0000,0x0001, 0xFFFF,0xFFFF,0xFFFF,0xFFFF xview-3.2p1.4/contrib/examples/misc/type_to_string.c100644 1750 1750 2344 5413747613 20065 0ustar mbmb/* * a useful library routine for getting the type of an XView object. * Typical use: * printf("object is: %s\n", type_to_string(xv_get(obj, XV_TYPE))); */ #include #include #include #include #include #include #include #include #include #include char * type_to_string(type) long type; { static char *sprintf(), buf[32]; switch (type) { case CANVAS_TYPE : return "canvas"; case FONT_TYPE : return "font"; case FRAME_TYPE : return "frame"; case ICON_TYPE : return "icon"; case MENU_TYPE : return "menu"; case PANEL_TYPE : return "panel"; case SCREEN_TYPE : return "screen"; case SERVER_IMAGE_TYPE : return "server image"; case TERMSW_TYPE : return "term"; case TERMSW_VIEW_TYPE : return "termsw view"; case TERMSW_MODE_TYPE : return "termsw mode"; case TTYSW_MODE_TYPE : return "ttysw mode"; case TEXTSW_TYPE : return "text subwindow"; case TTY_VIEW_TYPE : return "tty view"; case TTY_TYPE : return "tty"; case WINDOW_TYPE : return "window"; case WIN_MESSAGE_TYPE : return "win message"; default : return sprintf(buf, "%x: Unknown type", type); } } xview-3.2p1.4/contrib/examples/misc/visual.c100644 1750 1750 47771 5413747613 16354 0ustar mbmb/*================================================================= * visual.c - * Test XView's ability to handle different visuals and displays * * dmaustin Sat Oct 20 16:07:48 1990 *================================================================= */ #include #include #include #include #include #include #include #include #include "visual.h" static char *visual_names[] = { "StaticGray", "GrayScale", "StaticColor", "PseudoColor", "TrueColor", "DirectColor" }; static void parse_command_line(); static Server_Info *query_server_info(); static void init_panel(); static Panel_setting display_name_change(); static void screen_choice_change(); static void adjust_screen_choice(); static void adjust_visual_choices(); static Panel_item adjust_visual_choice(); static Panel_item recreate_choice_stack(); static void check_box_notify(); static void create_test_window(); static Frame create_test_frame(); static Panel create_test_panel(); static Textsw create_test_textsw(); static Canvas create_test_canvas(); static Menu create_test_menu(); static void quit_test_frame(); static void event_proc(); static void repaint_proc(); Attr_attribute canvas_menu_key; Frame frame; Server_Info *servers = NULL; Server_Info *current_server = NULL; Panel_item display_name; Panel_item screen_choice; Panel_item api_choice; Panel_item test_frame_visual; Panel_item create_panel_box; Panel_item test_panel_visual; Panel_item create_textsw_box; Panel_item test_textsw_visual; Panel_item create_canvas_box; Panel_item test_canvas_visual; Panel_item test_menu_visual; main(argc, argv) int argc; char *argv[]; { Xv_Server server; server = xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); parse_command_line(argc, argv); current_server = query_server_info(server); frame = (Frame)xv_create(NULL, FRAME, XV_LABEL, "Mr. Visual Head", FRAME_SHOW_FOOTER, TRUE, NULL); init_panel(frame, current_server); canvas_menu_key = xv_unique_key(); window_fit(frame); xv_main_loop(frame); } static void parse_command_line(argc, argv) int argc; char *argv[]; { if (argc != 1) { fprintf(stderr, "%s: unknown option %s\n", argv[0], argv[1]); exit(-1); } } static Server_Info * query_server_info(server) Xv_Server server; { Server_Info *server_list = servers; Server_Info *server_info; char *name = (char *)xv_get(server, XV_NAME); int screen; XVisualInfo vinfo_template; /* Check to see if we have already queried this server */ while (server_list && strcmp(name, server_list->name)) server_list = server_list->next; if (server_list) /* We have already interrogated this server, so return it */ server_info = server_list; else { /* Need to create a new Server_Info, and fill in the information */ server_info = (Server_Info *)malloc(sizeof(Server_Info)); server_info->server = server; server_info->name = name; server_info->display = (Display *)xv_get(server, XV_DISPLAY); server_info->num_screens = ScreenCount(server_info->display); server_info->screens = (Screen_Info *)malloc(server_info->num_screens * sizeof(Screen_Info)); /* Fill in all of the screen information */ for (screen = 0; screen < server_info->num_screens; screen++) { server_info->screens[screen].screen = (Xv_Screen)xv_get(server, SERVER_NTH_SCREEN, screen); vinfo_template.screen = screen; server_info->screens[screen].visuals = XGetVisualInfo(server_info->display, VisualScreenMask, &vinfo_template, &(server_info->screens[screen].num_visuals)); } /* Add the new server to the global list of servers */ server_info->next = servers; servers = server_info; } return(server_info); } static void init_panel(frame, server_info) Frame frame; Server_Info *server_info; { Panel panel; panel = (Panel)xv_create(frame, PANEL, PANEL_LAYOUT, PANEL_VERTICAL, NULL); display_name = (Panel_item)xv_create(panel, PANEL_TEXT, PANEL_LABEL_STRING, "Display name:", PANEL_VALUE, server_info->name, PANEL_VALUE_DISPLAY_LENGTH, 20, PANEL_NOTIFY_PROC, display_name_change, NULL); screen_choice = (Panel_item)xv_create(panel, PANEL_CHOICE_STACK, PANEL_LABEL_STRING, "Screen Number:", PANEL_CHOICE_STRINGS, "0", NULL, PANEL_NOTIFY_PROC, screen_choice_change, NULL); api_choice = (Panel_item)xv_create(panel, PANEL_CHOICE, PANEL_LABEL_STRING, "Visual specification:", PANEL_CHOICE_STRINGS, "Visual", "Class / Depth", NULL, NULL); test_frame_visual = (Panel_item)xv_create(panel, PANEL_CHOICE_STACK, PANEL_LABEL_STRING, "Test Frame Visual:", NULL); create_panel_box = (Panel_item)xv_create(panel, PANEL_CHECK_BOX, PANEL_LABEL_STRING, "Test Panel:", PANEL_VALUE, 1, PANEL_NOTIFY_PROC, check_box_notify, NULL); xv_set(panel, PANEL_LAYOUT, PANEL_HORIZONTAL, NULL); test_panel_visual = (Panel_item)xv_create(panel, PANEL_CHOICE_STACK, PANEL_LABEL_STRING, "Visual:", NULL); xv_set(panel, PANEL_LAYOUT, PANEL_VERTICAL, NULL); create_textsw_box = (Panel_item)xv_create(panel, PANEL_CHECK_BOX, PANEL_LABEL_STRING, "Test Textsw:", PANEL_VALUE, 0, PANEL_NOTIFY_PROC, check_box_notify, NULL); xv_set(panel, PANEL_LAYOUT, PANEL_HORIZONTAL, NULL); test_textsw_visual = (Panel_item)xv_create(panel, PANEL_CHOICE_STACK, PANEL_LABEL_STRING, "Visual:", PANEL_INACTIVE, TRUE, NULL); xv_set(panel, PANEL_LAYOUT, PANEL_VERTICAL, NULL); create_canvas_box = (Panel_item)xv_create(panel, PANEL_CHECK_BOX, PANEL_LABEL_STRING, "Test Canvas:", PANEL_VALUE, 1, PANEL_NOTIFY_PROC, check_box_notify, NULL); xv_set(panel, PANEL_LAYOUT, PANEL_HORIZONTAL, NULL); test_canvas_visual = (Panel_item)xv_create(panel, PANEL_CHOICE_STACK, PANEL_LABEL_STRING, "Visual:", NULL); xv_set(panel, PANEL_LAYOUT, PANEL_VERTICAL, NULL); test_menu_visual = (Panel_item)xv_create(panel, PANEL_CHOICE_STACK, PANEL_LABEL_STRING, "Canvas Menu Visual:", NULL); adjust_screen_choice(server_info); (void)xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Test Configuration...", PANEL_NOTIFY_PROC, create_test_window, NULL); window_fit(panel); } /* ARGSUSED */ static Panel_setting display_name_change(item, event) Panel_item item; Event *event; { Xv_Server server; char *name = (char *)xv_get(item, PANEL_VALUE); char error_message[1000]; xv_set(frame, FRAME_BUSY, TRUE, NULL); server = (Xv_Server)xv_create(NULL, SERVER, XV_NAME, name, NULL); if (!server || server == XV_ERROR) { sprintf(error_message, "Unable to connect to display %s\n", name); xv_set(frame, FRAME_LEFT_FOOTER, error_message, NULL); } else { current_server = query_server_info(server); adjust_screen_choice(current_server); xv_set(frame, FRAME_LEFT_FOOTER, "", NULL); } xv_set(frame, FRAME_BUSY, FALSE, NULL); return(PANEL_NONE); } /* ARGSUSED */ static void screen_choice_change(item, value, event) Panel_item item; int value; Event *event; { adjust_visual_choices(current_server, value); } static void adjust_screen_choice(server_info) Server_Info *server_info; { char label[10]; int num_choices = (int)xv_get(screen_choice, PANEL_NCHOICES); int screen; if (num_choices > server_info->num_screens) { screen_choice = recreate_choice_stack(screen_choice); num_choices = 0; } if (num_choices < server_info->num_screens) for (screen = num_choices; screen < server_info->num_screens; screen++) { sprintf(label, "%d", screen); xv_set(screen_choice, PANEL_CHOICE_STRING, screen, label, NULL); } screen = DefaultScreen(server_info->display); xv_set(screen_choice, PANEL_DEFAULT_VALUE, screen, PANEL_VALUE, screen, PANEL_INACTIVE, (server_info->num_screens <= 1) ? TRUE : FALSE, NULL); adjust_visual_choices(server_info, screen); } static void adjust_visual_choices(server_info, screen_num) Server_Info *server_info; int screen_num; { test_frame_visual = adjust_visual_choice(test_frame_visual, server_info, screen_num); test_panel_visual = adjust_visual_choice(test_panel_visual, server_info, screen_num); test_textsw_visual = adjust_visual_choice(test_textsw_visual, server_info, screen_num); test_canvas_visual = adjust_visual_choice(test_canvas_visual, server_info, screen_num); test_menu_visual = adjust_visual_choice(test_menu_visual, server_info, screen_num); } static Panel_item adjust_visual_choice(choice_stack, server_info, screen_num) Panel_item choice_stack; Server_Info *server_info; int screen_num; { Screen_Info *screen_info = &(server_info->screens[screen_num]); XVisualInfo *vinfo; VisualID default_visual_id = XVisualIDFromVisual(DefaultVisual(server_info->display, screen_num)); int visual; char label[100]; if ((int)xv_get(choice_stack, PANEL_NCHOICES) > screen_info->num_visuals + 1) { choice_stack = recreate_choice_stack(choice_stack); } for (visual = 0; visual < screen_info->num_visuals; visual++) { vinfo = &(screen_info->visuals[visual]); if (vinfo->class < StaticGray || vinfo->class > DirectColor) sprintf(label, "Unknown (%d bit)", vinfo->depth); else sprintf(label, "%s (%d bit)", visual_names[vinfo->class], vinfo->depth); xv_set(choice_stack, PANEL_CHOICE_STRING, visual, label, NULL); if (default_visual_id == vinfo->visualid) xv_set(choice_stack, PANEL_DEFAULT_VALUE, visual, NULL); } xv_set(choice_stack, PANEL_CHOICE_STRING, visual, "Default", PANEL_VALUE, visual, NULL); return(choice_stack); } /* * This brain death is due to the lack of the ability to change the number * of choices in a choice item */ static Panel_item recreate_choice_stack(old_choice) Panel_item old_choice; { Panel_item new_choice; new_choice = (Panel_item)xv_create(xv_get(old_choice, XV_OWNER), PANEL_CHOICE_STACK, XV_X, (int)xv_get(old_choice, XV_X), XV_Y, (int)xv_get(old_choice, XV_Y), PANEL_LABEL_STRING, (char *)xv_get(old_choice, PANEL_LABEL_STRING), PANEL_NOTIFY_PROC, xv_get(old_choice, PANEL_NOTIFY_PROC), NULL); xv_destroy(old_choice); return(new_choice); } /* ARGSUSED */ static void check_box_notify(item, value, event) Panel_item item; int value; Event *event; { Panel_item choice; if (item == create_panel_box) choice = test_panel_visual; else if (item == create_textsw_box) choice = test_textsw_visual; else choice = test_canvas_visual; xv_set(choice, PANEL_INACTIVE, !value, NULL); } /* ARGSUSED */ static void create_test_window(item, event) Panel_item item; Event *event; { Screen_Info *screen_info; int screen_num; Xv_Window root; Frame test_frame; int use_depth = !(xv_get(api_choice, PANEL_VALUE)); int visual; XVisualInfo *vinfo; /* Get root window of the screen */ screen_num = (int)xv_get(screen_choice, PANEL_VALUE); screen_info = &(current_server->screens[screen_num]); root = (Xv_Window)xv_get(screen_info->screen, XV_ROOT); /* Create the frame */ visual = (int)xv_get(test_frame_visual, PANEL_VALUE); if (visual >= screen_info->num_visuals) vinfo = NULL; else vinfo = &screen_info->visuals[visual]; test_frame = create_test_frame(root, frame, vinfo, use_depth); /* Create the panel */ if (xv_get(create_panel_box, PANEL_VALUE)) { visual = (int)xv_get(test_panel_visual, PANEL_VALUE); if (visual >= screen_info->num_visuals) vinfo = NULL; else vinfo = &screen_info->visuals[visual]; (void)create_test_panel(test_frame, vinfo, use_depth); } /* Create the textsw */ if (xv_get(create_textsw_box, PANEL_VALUE)) { visual = (int)xv_get(test_textsw_visual, PANEL_VALUE); if (visual >= screen_info->num_visuals) vinfo = NULL; else vinfo = &screen_info->visuals[visual]; (void)create_test_textsw(test_frame, vinfo, use_depth); } /* Create test canvas */ if (xv_get(create_canvas_box, PANEL_VALUE)) { Canvas canvas; visual = (int)xv_get(test_canvas_visual, PANEL_VALUE); if (visual >= screen_info->num_visuals) vinfo = NULL; else vinfo = &screen_info->visuals[visual]; canvas = create_test_canvas(test_frame, vinfo, use_depth); visual = (int)xv_get(test_menu_visual, PANEL_VALUE); if (visual >= screen_info->num_visuals) vinfo = NULL; else vinfo = &screen_info->visuals[visual]; xv_set(canvas, XV_KEY_DATA, canvas_menu_key, create_test_menu(test_frame, vinfo, use_depth), NULL); } window_fit(test_frame); /* Map the frame */ xv_set(test_frame, XV_SHOW, TRUE, NULL); } static Frame create_test_frame(parent, owner, vinfo, use_depth) Xv_Window parent; Xv_opaque owner; XVisualInfo *vinfo; int use_depth; { Frame frame; if (!vinfo) frame = (Frame)xv_create(parent, FRAME, XV_LABEL, "Most Excellent Test Window", XV_OWNER, owner, NULL); else if (use_depth) frame = (Frame)xv_create(parent, FRAME, XV_LABEL, "Most Excellent Test Window", XV_OWNER, owner, XV_VISUAL_CLASS, vinfo->class, WIN_DEPTH, vinfo->depth, NULL); else frame = (Frame)xv_create(parent, FRAME, XV_LABEL, "Most Excellent Test Window", XV_OWNER, owner, XV_VISUAL, vinfo->visual, NULL); return frame; } static Panel create_test_panel(owner, vinfo, use_depth) Xv_opaque owner; XVisualInfo *vinfo; int use_depth; { Panel panel; if (!vinfo) panel = (Panel)xv_create(owner, PANEL, PANEL_LAYOUT, PANEL_VERTICAL, NULL); else if (use_depth) panel = (Panel)xv_create(owner, PANEL, PANEL_LAYOUT, PANEL_VERTICAL, XV_VISUAL_CLASS, vinfo->class, WIN_DEPTH, vinfo->depth, NULL); else panel = (Panel)xv_create(owner, PANEL, PANEL_LAYOUT, PANEL_VERTICAL, XV_VISUAL, vinfo->visual, NULL); (void)xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Quit", PANEL_NOTIFY_PROC, quit_test_frame, NULL); (void)xv_create(panel, PANEL_TOGGLE, PANEL_LABEL_STRING, "Pizza Ingredients:", PANEL_CHOICE_STRINGS, "Cheese", "Pepperoni", "Pez", "Sausage", "Peppers", "Peanut Butter", "Olives", "Beer", "Ice Cream", NULL, PANEL_CHOICE_NCOLS, 3, PANEL_VALUE, 4 | 8 | 32 | 128, NULL); (void)xv_create(panel, PANEL_CHOICE_STACK, PANEL_LABEL_STRING, "Choice stack:", PANEL_CHOICE_STRINGS, "Totally", "Not Even", NULL, NULL); (void)xv_create(panel, PANEL_LIST, PANEL_LABEL_STRING, "Happening:", PANEL_LIST_STRINGS, "Malibu", "La Jolla", "Redondo", "Zuma", NULL, NULL); (void)xv_create(panel, PANEL_SLIDER, PANEL_LABEL_STRING, "Rudeness Factor:", PANEL_SHOW_VALUE, FALSE, PANEL_MIN_VALUE, 0, PANEL_MAX_VALUE, 100, PANEL_SLIDER_END_BOXES, TRUE, NULL); (void)xv_create(panel, PANEL_GAUGE, PANEL_LABEL_STRING, "Ocean Temp:", PANEL_MIN_VALUE, 30, PANEL_MAX_VALUE, 200, PANEL_VALUE, 70, PANEL_TICKS, 17, NULL); (void)xv_create(panel, PANEL_TEXT, PANEL_LABEL_STRING, "Philosophy:", PANEL_VALUE, "Live like James Bond, Die like James Dean!", PANEL_VALUE_DISPLAY_LENGTH, 50, NULL); window_fit_height(panel); return panel; } static Textsw create_test_textsw(owner, vinfo, use_depth) Xv_opaque owner; XVisualInfo *vinfo; int use_depth; { Textsw textsw; if (!vinfo) textsw = (Textsw)xv_create(owner, TEXTSW, TEXTSW_FILE, "/etc/motd", WIN_ROWS, 10, NULL); else if (use_depth) textsw = (Textsw)xv_create(owner, TEXTSW, TEXTSW_FILE, "/etc/motd", WIN_ROWS, 10, XV_VISUAL_CLASS, vinfo->class, WIN_DEPTH, vinfo->depth, NULL); else textsw = (Textsw)xv_create(owner, TEXTSW, TEXTSW_FILE, "/etc/motd", WIN_ROWS, 10, XV_VISUAL, vinfo->visual, NULL); return textsw; } static Canvas create_test_canvas(owner, vinfo, use_depth) Xv_opaque owner; XVisualInfo *vinfo; int use_depth; { Canvas canvas; if (!vinfo) canvas = (Canvas)xv_create(owner, CANVAS, NULL); else if (use_depth) canvas = (Canvas)xv_create(owner, CANVAS, XV_VISUAL_CLASS, vinfo->class, WIN_DEPTH, vinfo->depth, NULL); else canvas = (Canvas)xv_create(owner, CANVAS, XV_VISUAL, vinfo->visual, NULL); xv_set(canvas, XV_HEIGHT, 200, CANVAS_HEIGHT, 600, CANVAS_WIDTH, 600, CANVAS_AUTO_EXPAND, FALSE, CANVAS_AUTO_SHRINK, FALSE, CANVAS_REPAINT_PROC, repaint_proc, CANVAS_RETAINED, TRUE, CANVAS_PAINTWINDOW_ATTRS, WIN_EVENT_PROC, event_proc, NULL, NULL); (void)xv_create(canvas, SCROLLBAR, SCROLLBAR_SPLITTABLE, TRUE, NULL); (void)xv_create(canvas, SCROLLBAR, SCROLLBAR_SPLITTABLE, TRUE, SCROLLBAR_DIRECTION, SCROLLBAR_HORIZONTAL, NULL); xv_set(canvas, CANVAS_RETAINED, FALSE, NULL ); return canvas; } static Menu create_test_menu(owner, vinfo, use_depth) Xv_opaque owner; XVisualInfo *vinfo; int use_depth; { Menu menu, sub_menu; Xv_Server server; server = xv_get(xv_get(owner, XV_SCREEN), SCREEN_SERVER); sub_menu = (Menu)xv_create(server, MENU, MENU_GEN_PIN_WINDOW, owner, "Winter Activities", MENU_STRINGS, "Ski", "Snowboard", "Sleep", "Eat", NULL, NULL); if (!vinfo) menu = (Menu)xv_create(server, MENU, MENU_GEN_PIN_WINDOW, owner, "Activities", MENU_STRINGS, "Surf", "Skate", "Sleep", "Eat", "Surf", NULL, MENU_ITEM, MENU_STRING, "Winter", MENU_PULLRIGHT, sub_menu, NULL, NULL); else if (use_depth) menu = xv_create(server, MENU, XV_VISUAL_CLASS, vinfo->class, XV_DEPTH, vinfo->depth, MENU_GEN_PIN_WINDOW, owner, "Menu", MENU_STRINGS, "Surf", "Skate", "Sleep", "Eat", "Surf", NULL, MENU_ITEM, MENU_STRING, "Winter", MENU_PULLRIGHT, sub_menu, NULL, NULL); else menu = xv_create(server, MENU, XV_VISUAL, vinfo->visual, MENU_GEN_PIN_WINDOW, owner, "Menu", MENU_STRINGS, "Surf", "Skate", "Sleep", "Eat", "Surf", NULL, MENU_ITEM, MENU_STRING, "Winter", MENU_PULLRIGHT, sub_menu, NULL, NULL); return menu; } static void quit_test_frame(item, event) Panel_item item; Event *event; { Panel panel = (Panel)xv_get(item, XV_OWNER); int result; result = notice_prompt(panel, NULL, NOTICE_FOCUS_XY, event_x(event), event_y(event), NOTICE_MESSAGE_STRINGS, "Do you really want to quit this", "most triumphant test window?", NULL, NOTICE_BUTTON_YES, "Yes", NOTICE_BUTTON_NO, "No", NULL); if (result == NOTICE_YES) { xv_destroy_safe(xv_get(panel, XV_OWNER)); } } static void event_proc(window, event, arg) Xv_Window window; Event *event; Notify_arg arg; { if ((event_action(event) == ACTION_MENU) && event_is_down(event)) { Canvas canvas = xv_get(window, CANVAS_PAINT_CANVAS_WINDOW); menu_show(xv_get(canvas, XV_KEY_DATA, canvas_menu_key), window, event, NULL); } } static void repaint_proc() { printf("Now repainting canvas\n"); } xview-3.2p1.4/contrib/examples/misc/visual.h100644 1750 1750 1125 5413747614 16321 0ustar mbmb/*================================================================= * visual.h - definitions and declarations used by visual.c * * dmaustin Sat Oct 20 16:26:50 1990 *================================================================= */ /* * Information about a screen */ typedef struct { Xv_Screen screen; int num_visuals; XVisualInfo *visuals; } Screen_Info; typedef struct server_info { Xv_server server; char *name; Display *display; int num_screens; Screen_Info *screens; struct server_info *next; } Server_Info; xview-3.2p1.4/contrib/examples/misc/vkbd_colors.c100644 1750 1750 13757 5413747614 17356 0ustar mbmb/* * Sample application that communicates with the Function Keys process */ #include #include #include #include #include #include #include #include Display *dpy; GC gc; XFontStruct *font_info; Frame frame; Canvas canvas; static int function_mode = 0; char *prev_char; char *soft_labels[4] = {"Brick\nBlue\nMaroon\nOrchid\nViolet\nBlack\nGreen\n\nMagenta\nRed\nClear\n\n\n", "Coral\nNavy\nOlive\nTurquoise\nYellow\n \n \n \n \nClear\nFonts\nMore\n", "Fixed\nBembo\nTimes\nCourier\nLucida\n9x15\nGillsans\nPalatino\nScreen\nClear\nColors\nMore\n", "Zapfding\nHelvetica\nBookman\nVtsingle\nTerminal\n \n \n \n \nClear\nColors\nMore\n" }; char *colors_fonts[49] = {"Empty", "FireBrick", "Blue", "Maroon", "Orchid", "Violet Red", "Black", "Green", "Magenta", "Red", "Clear", "Fonts", "More", "Coral","Navy","Olive Drab","Turquoise", "Yellow",0,0,0,0,"Clear","Fonts","More", "fixed", "bembo-bold-14", "times-bold-14", "courier-bold-14", "lucidasans-bold-14", "9x15", "gillsans-bold-14", "palatino-bold-14", "screen-bold","Clear","Colors","More", "zapfdingbats-14","helvetica-bold","bookman-demi","vtsingle","terminal",0,0,0,0,"Clear","Colors","More" }; unsigned short icon_bits[] = { #include "textdemo.icon" }; main(argc, argv) int argc; char *argv[]; { XGCValues gcvalues; Xv_Font font; void my_event_proc(); extern void exit(); Notify_error notify_interpose_event_func(); Notify_value canvas_interposer(); void put_labels(); Icon icon; Server_image icon_image; xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame) xv_create(XV_NULL, FRAME, FRAME_LABEL, "Virtual Keyboard - Colors - Demo", NULL); icon_image = (Server_image)xv_create(NULL,SERVER_IMAGE, XV_WIDTH,64, XV_HEIGHT,64, SERVER_IMAGE_BITS,icon_bits, NULL); icon = (Icon) xv_create(NULL,ICON, ICON_IMAGE, icon_image, ICON_MASK_IMAGE, icon_image, ICON_TRANSPARENT,TRUE, NULL); canvas = (Canvas) xv_create(frame, CANVAS, XV_WIDTH, 400, XV_HEIGHT, 400, CANVAS_X_PAINT_WINDOW, TRUE, NULL); xv_set(canvas_paint_window(canvas), WIN_SOFT_FNKEY_LABELS,soft_labels[0], WIN_EVENT_PROC, my_event_proc, NULL); window_fit(frame); dpy = (Display *) xv_get(frame, XV_DISPLAY); xv_set(frame,FRAME_ICON,icon,NULL); font = (Xv_Font) xv_get(frame, XV_FONT); font_info = (XFontStruct *) xv_get(font, FONT_INFO); gcvalues.font = (Font) xv_get(font, XV_XID); gcvalues.foreground = BlackPixel(dpy, DefaultScreen(dpy)); gcvalues.background = WhitePixel(dpy, DefaultScreen(dpy)); gcvalues.graphics_exposures = False; gc = XCreateGC(dpy, RootWindow(dpy, DefaultScreen(dpy)), GCForeground | GCBackground | GCFont | GCGraphicsExposures, &gcvalues); xv_main_loop(frame); } void my_event_proc(win, event) Xv_Window win; Event *event; { static int x = 10, y = 15; Window xwin = (Window) xv_get(win, XV_XID); char c; void change_attributes(); if (event_is_up(event)) return; else { /* down event */ if (event_is_key_top(event)) { switch (event_id(event)) { case KEY_TOP(1): change_attributes(1 + (12*function_mode)); break; case KEY_TOP(2): change_attributes(2 + (12*function_mode)); break; case KEY_TOP(3): change_attributes(3 + (12*function_mode)); break; case KEY_TOP(4): change_attributes(4 + (12*function_mode)); break; case KEY_TOP(5): change_attributes(5 + (12*function_mode)); break; case KEY_TOP(6): change_attributes(6 + (12*function_mode)); break; case KEY_TOP(7): change_attributes(7 + (12*function_mode)); break; case KEY_TOP(8): change_attributes(8 + (12*function_mode)); break; case KEY_TOP(9): change_attributes(9 + (12*function_mode)); break; case KEY_TOP(10):/* Clear */ XClearWindow(dpy, xwin); x = 10; y = 15; break; } } else if (event_action(event) == ACTION_SELECT) { x = event_x(event); y = event_y(event); } else if (event_id(event) < 256) { c = (char) event_id(event); if (c == '\n' || c == '\r') { y += font_info->max_bounds.ascent + font_info->max_bounds.descent; x = 10; } else if (c == 7 || c == 127) { /* backspace or delete */ if (x > 10) x -= XTextWidth(font_info, "m", 1); /* use XDrawImageString to overwrite previous text */ XDrawImageString(dpy, xwin, gc, x, y," ", 3); } else { XDrawString(dpy, xwin, gc, x, y, &c, 1); x += XTextWidth(font_info, &c, 1); } } } } void change_attributes(attr) int attr; { XColor exact, color; if (soft_labels[attr]) { if (attr < 24) { if (XAllocNamedColor(dpy, DefaultColormap(dpy, DefaultScreen(dpy)), colors_fonts[attr], &exact, &color) == 0) { fprintf(stderr, "could not allocate color %s\n", colors_fonts[attr]); return; } else XSetForeground(dpy, gc, color.pixel); } else { if ((font_info = XLoadQueryFont(dpy, colors_fonts[attr])) == 0) { fprintf(stderr, "could not load font %s\n", colors_fonts[attr]); return; } else { XSetFont(dpy, gc, font_info->fid); } } } return; } xview-3.2p1.4/contrib/examples/misc/vkbd_fonts.c100644 1750 1750 13744 5413747614 17202 0ustar mbmb/* * Sample application that communicates with the Function Keys process */ #include #include #include #include #include #include #include #include Display *dpy; GC gc; XFontStruct *font_info; Frame frame; Canvas canvas; static int function_mode = 2; char *prev_char; char *soft_labels[4] = {"Brick\nBlue\nMaroon\nOrchid\nViolet\nBlack\nGreen\n\nMagenta\nRed\nClear\n\n\n", "Coral\nNavy\nOlive\nTurquoise\nYellow\n \n \n \n \nClear\nFonts\nMore\n", "Fixed\nBembo\nTimes\nCourier\nLucida\n9x15\nGillsans\nPalatino\nScreen\nClear\n\n\n", "Zapfding\nHelvetica\nBookman\nVtsingle\nTerminal\n \n \n \n \nClear\nColors\nMore\n" }; char *colors_fonts[49] = {"Empty", "FireBrick", "Blue", "Maroon", "Orchid", "Violet Red", "Black", "Green", "Magenta", "Red", "Clear", "Fonts", "More", "Coral","Navy","Olive Drab","Turquoise", "Yellow",0,0,0,0,"Clear","Fonts","More", "fixed", "bembo-bold-14", "times-bold-14", "courier-bold-14", "lucidasans-bold-14", "9x15", "gillsans-bold-14", "palatino-bold-14", "screen-bold","Clear","Colors","More", "zapfdingbats-14","helvetica-bold","bookman-demi","vtsingle","terminal",0,0,0,0,"Clear","Colors","More" }; unsigned short icon_bits[] = { #include "textdemo.icon" }; main(argc, argv) int argc; char *argv[]; { XGCValues gcvalues; Xv_Font font; void my_event_proc(); extern void exit(); Notify_error notify_interpose_event_func(); Notify_value canvas_interposer(); void put_labels(); Icon icon; Server_image icon_image; xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame) xv_create(XV_NULL, FRAME, FRAME_LABEL, "Virtual Keyboard - Fonts - Demo", NULL); icon_image = (Server_image)xv_create(NULL,SERVER_IMAGE, XV_WIDTH,64, XV_HEIGHT,64, SERVER_IMAGE_BITS,icon_bits, NULL); icon = (Icon) xv_create(NULL,ICON, ICON_IMAGE, icon_image, ICON_MASK_IMAGE, icon_image, ICON_TRANSPARENT,TRUE, NULL); canvas = (Canvas) xv_create(frame, CANVAS, XV_WIDTH, 400, XV_HEIGHT, 400, CANVAS_X_PAINT_WINDOW, TRUE, NULL); xv_set(canvas_paint_window(canvas), WIN_SOFT_FNKEY_LABELS,soft_labels[2], WIN_EVENT_PROC, my_event_proc, NULL); window_fit(frame); dpy = (Display *) xv_get(frame, XV_DISPLAY); xv_set(frame,FRAME_ICON,icon,NULL); font = (Xv_Font) xv_get(frame, XV_FONT); font_info = (XFontStruct *) xv_get(font, FONT_INFO); gcvalues.font = (Font) xv_get(font, XV_XID); gcvalues.foreground = BlackPixel(dpy, DefaultScreen(dpy)); gcvalues.background = WhitePixel(dpy, DefaultScreen(dpy)); gcvalues.graphics_exposures = False; gc = XCreateGC(dpy, RootWindow(dpy, DefaultScreen(dpy)), GCForeground | GCBackground | GCFont | GCGraphicsExposures, &gcvalues); xv_main_loop(frame); } void my_event_proc(win, event) Xv_Window win; Event *event; { static int x = 10, y = 15; Window xwin = (Window) xv_get(win, XV_XID); char c; void change_attributes(); if (event_is_up(event)) return; else { /* down event */ if (event_is_key_top(event)) { switch (event_id(event)) { case KEY_TOP(1): change_attributes(1 + (12*function_mode)); break; case KEY_TOP(2): change_attributes(2 + (12*function_mode)); break; case KEY_TOP(3): change_attributes(3 + (12*function_mode)); break; case KEY_TOP(4): change_attributes(4 + (12*function_mode)); break; case KEY_TOP(5): change_attributes(5 + (12*function_mode)); break; case KEY_TOP(6): change_attributes(6 + (12*function_mode)); break; case KEY_TOP(7): change_attributes(7 + (12*function_mode)); break; case KEY_TOP(8): change_attributes(8 + (12*function_mode)); break; case KEY_TOP(9): change_attributes(9 + (12*function_mode)); break; case KEY_TOP(10):/* Clear */ XClearWindow(dpy, xwin); x = 10; y = 15; break; } } else if (event_action(event) == ACTION_SELECT) { x = event_x(event); y = event_y(event); } else if (event_id(event) < 256) { c = (char) event_id(event); if (c == '\n' || c == '\r') { y += font_info->max_bounds.ascent + font_info->max_bounds.descent; x = 10; } else if (c == 7 || c == 127) { /* backspace or delete */ if (x > 10) x -= XTextWidth(font_info, "m", 1); /* use XDrawImageString to overwrite previous text */ XDrawImageString(dpy, xwin, gc, x, y," ", 3); } else { XDrawString(dpy, xwin, gc, x, y, &c, 1); x += XTextWidth(font_info, &c, 1); } } } } void change_attributes(attr) int attr; { XColor exact, color; if (soft_labels[attr]) { if (attr < 24) { if (XAllocNamedColor(dpy, DefaultColormap(dpy, DefaultScreen(dpy)), colors_fonts[attr], &exact, &color) == 0) { fprintf(stderr, "could not allocate color %s\n", colors_fonts[attr]); return; } else XSetForeground(dpy, gc, color.pixel); } else { if ((font_info = XLoadQueryFont(dpy, colors_fonts[attr])) == 0) { fprintf(stderr, "could not load font %s\n", colors_fonts[attr]); return; } else { XSetFont(dpy, gc, font_info->fid); } } } return; } xview-3.2p1.4/contrib/examples/notice/ 40755 1750 1750 0 6354605713 15075 5ustar mbmbxview-3.2p1.4/contrib/examples/notice/Imakefile100644 1750 1750 1523 5413747615 17007 0ustar mbmb#include /**/########################################################################## /**/# @(#)Imakefile 1.7 90/08/02 SMI /**/# Imakefile for examples/notice #define InstallSrcs YES LOCATION = examples/notice DEFINES = -DSTANDALONE $(XVCLIENTSYSDEFINES) SYS_LIBRARIES = INCLUDES = -I. -I$(HEADER_DEST) -I$(TOP) DEPLIBS = XViewClientDepLibs LOCAL_LIBRARIES = XViewClientLibs MAKEFILE_SIMPLE = Makefile.customer SRCS = notice.c simple_notice.c trigger_notice.c INSTALL_SRCS = $(SRCS) ALLFILES = $(MAKEFILE_SIMPLE) $(SRCS) PROGRAMS= notice simple_notice trigger_notice AllTarget($(PROGRAMS)) SingleProgramTarget(notice,notice.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(simple_notice,simple_notice.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(trigger_notice,trigger_notice.o,$(LOCAL_LIBRARIES), /**/) #include xview-3.2p1.4/contrib/examples/notice/Makefile.customer100644 1750 1750 1352 5413747615 20476 0ustar mbmb# # @(#)Makefile.customer 1.6 92/02/24 # # Makefile for the notice example programs for XView programmers # OSTYPE = SUNOS5 INCLUDE = -I${OPENWINHOME}/include # # If you want to compile for debugging, change "-O" to "-g" # CFLAGS_SUNOS41 = ${INCLUDE} -O CFLAGS_SUNOS5 = ${INCLUDE} -DSVR4 -O CFLAGS = $(CFLAGS_$(OSTYPE)) # if you want special to pass special loader options to ld, set # LDFLAGS= ... # XVIEW_LIBS = -L${OPENWINHOME}/lib \ -lxview -lolgx -lX11 CFILES = notice.c \ simple_notice.c \ trigger_notice.c OBJS = notice \ simple_notice \ trigger_notice all: ${OBJS} ${OBJS}: $$@.c $$@.o ${CC} ${CFLAGS} ${LDFLAGS} -o $@ $@.o ${XVIEW_LIBS} clean: rm -f core ${OBJS} *.o xview-3.2p1.4/contrib/examples/notice/notice.c100644 1750 1750 10372 5413747615 16645 0ustar mbmb/* * notice.c -- * This application creates a frame, a panel, and 3 panel buttons. * A message button, a Quit button (to exit the program) and a * dummy "commit" button. Extra data is attached to the panel * items by the use of XV_KEY_DATA. The callback routine for the * quit and Commit buttons is generalized enough that it can apply * to either button (or any arbitrary button) because it extracts * the expected "data" (via XV_KEY_DATA) from whatever panel * button might have called it. */ #include #include #include /* * assign "data" to panel items using XV_KEY_DATA ... attach the * message panel item, a prompt string specific for the panel * item's notice_prompt, and a callback function if the user * chooses "yes". */ #define MSG_ITEM 10 /* any arbitrary integer */ #define NOTICE_PROMPT 11 #define CALLBACK_FUNC 12 main(argc,argv) int argc; char *argv[]; { Frame frame; Panel panel; Panel_item msg_item; Xv_opaque my_notify_proc(); extern void exit(); /* * Initialize XView, and create frame, panel and buttons. */ xv_init(XV_INIT_ARGS, argc, argv, NULL); frame = (Frame)xv_create(XV_NULL, FRAME, FRAME_LABEL, argv[0], NULL); panel = (Panel)xv_create(frame, PANEL, PANEL_LAYOUT, PANEL_VERTICAL, NULL); msg_item = (Panel_item)xv_create(panel, PANEL_MESSAGE, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Quit", PANEL_NOTIFY_PROC, my_notify_proc, XV_KEY_DATA, MSG_ITEM, msg_item, /* * attach a prompt specific for this button used by * notice_prompt() */ XV_KEY_DATA, NOTICE_PROMPT, "Really Quit?", /* * a callback function to call if the user answers "yes" * to prompt */ XV_KEY_DATA, CALLBACK_FUNC, exit, NULL); /* * now that the Quit button is under the message item, * layout horizontally */ xv_set(panel, PANEL_LAYOUT, PANEL_HORIZONTAL, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Commit...", PANEL_NOTIFY_PROC, my_notify_proc, XV_KEY_DATA, MSG_ITEM, msg_item, /* * attach a prompt specific for this button used by * notice_prompt() */ XV_KEY_DATA, NOTICE_PROMPT, "Update all changes?", /* * Note there is no callback func here, but one could be * written */ NULL); window_fit(panel); window_fit(frame); xv_main_loop(frame); } /* * my_notify_proc() * The notice appears as a result of notice_prompt(). * The "key data" associated with the panel item is extracted via * xv_get(). The resulting choice is displayed in the panel * message item. */ Xv_opaque my_notify_proc(item, event) Panel_item item; Event *event; { int result; int (*func)(); char *prompt; Panel_item msg_item; Panel panel; func = (int(*)())xv_get(item, XV_KEY_DATA, CALLBACK_FUNC); prompt = (char *)xv_get(item, XV_KEY_DATA, NOTICE_PROMPT); msg_item = (Panel_item)xv_get(item, XV_KEY_DATA, MSG_ITEM); panel = (Panel)xv_get(item, PANEL_PARENT_PANEL); /* * Create the notice and get a response. */ result = notice_prompt(panel, NULL, NOTICE_MESSAGE_STRINGS, prompt, "Press YES to confirm", "Press NO to cancel", NULL, NOTICE_BUTTON_YES, "YES", NOTICE_BUTTON_NO, "NO", NULL); switch(result) { case NOTICE_YES: xv_set(msg_item, PANEL_LABEL_STRING, "Confirmed", NULL); if (func) (*func)(); break; case NOTICE_NO: xv_set(msg_item, PANEL_LABEL_STRING, "Cancelled", NULL); break; case NOTICE_FAILED: xv_set(msg_item, PANEL_LABEL_STRING, "unable to pop-up", NULL); break; default: xv_set(msg_item, PANEL_LABEL_STRING, "unknown choice", NULL); } } xview-3.2p1.4/contrib/examples/notice/simple_notice.c100644 1750 1750 2616 5413747615 20200 0ustar mbmb/* * simple_notice.c -- Demonstrate the use of notices. */ #include #include #include Panel panel; main(argc,argv) int argc; char *argv[]; { Frame frame; Xv_opaque my_notify_proc(); /* * Initialize XView, create a frame, a panel and one panel button. */ xv_init(XV_INIT_ARGS, argc, argv, NULL); frame = (Frame)xv_create(XV_NULL, FRAME, NULL); panel = (Panel)xv_create(frame, PANEL, NULL); xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Quit", PANEL_NOTIFY_PROC, my_notify_proc, NULL); /* make sure everything looks good */ window_fit(panel); window_fit(frame); /* start window event processing */ xv_main_loop(frame); } /* * my_notify_proc() -- called when the user selects the Quit button. * The notice appears as a result of notice_prompt(). Here * the user must chooses YES or NO to confirm or deny quitting. */ Xv_opaque my_notify_proc(item, event) Panel_item item; Event *event; { int result; result = notice_prompt(panel, NULL, NOTICE_FOCUS_XY, event_x(event), event_y(event), NOTICE_MESSAGE_STRINGS, "Do you really want to quit?", NULL, NOTICE_BUTTON_YES, "Yes", NOTICE_BUTTON_NO, "No", NULL); if (result == NOTICE_YES) exit(0); } xview-3.2p1.4/contrib/examples/notice/trigger_notice.c100644 1750 1750 4223 5413747616 20347 0ustar mbmb/* * trigger_notice.c -- Demonstrate the use of triggers in notices. */ #include #include #include main(argc,argv) int argc; char *argv[]; { Frame frame; Panel panel; Xv_opaque my_notify_proc(); extern void exit(); /* * Initialize XView, create a frame, a panel and one panel button. */ xv_init(XV_INIT_ARGS, argc, argv, NULL); frame = (Frame)xv_create(XV_NULL, FRAME, NULL); panel = (Panel)xv_create(frame, PANEL, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Quit", PANEL_NOTIFY_PROC, exit, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Move", PANEL_NOTIFY_PROC, my_notify_proc, NULL); /* make sure everything looks good */ window_fit(panel); window_fit(frame); /* start window event processing */ xv_main_loop(frame); } /* * my_notify_proc() -- called when the user selects the "Move" * panel button. Put up a notice_prompt to get new coordinates * to move the main window. */ Xv_opaque my_notify_proc(item, event) Panel_item item; Event *event; { int result, x, y; Panel panel = (Panel)xv_get(item, PANEL_PARENT_PANEL); Frame frame = (Frame)xv_get(panel, XV_OWNER); x = event_x(event), y = event_y(event); printf("original click relative to panel: %d, %d\n", x, y); result = notice_prompt(panel, event, NOTICE_FOCUS_XY, x, y, NOTICE_MESSAGE_STRINGS, "You may move the window to a new location specified by", "clicking the Left Mouse Button somewhere on the screen", "or cancel this operation by selecting \"cancel\".", NULL, NOTICE_BUTTON_YES, "cancel", NOTICE_TRIGGER, MS_LEFT, NOTICE_NO_BEEPING, TRUE, NULL); if (result == NOTICE_TRIGGERED) { x = event_x(event) + (int)xv_get(frame, XV_X); y = event_y(event) + (int)xv_get(frame, XV_Y); printf("screen x,y: %d, %d\n", x, y); xv_set(frame, XV_X, x, XV_Y, y, NULL); } } xview-3.2p1.4/contrib/examples/notifier/ 40755 1750 1750 0 6354605713 15433 5ustar mbmbxview-3.2p1.4/contrib/examples/notifier/Imakefile100644 1750 1750 2260 5413747617 17346 0ustar mbmb#include /**/########################################################################## /**/# @(#)Imakefile 1.7 90/08/02 SMI /**/# Imakefile for examples/notifier #define InstallSrcs YES LOCATION = examples/notifier DEFINES = -DSTANDALONE $(XVCLIENTSYSDEFINES) SYS_LIBRARIES = INCLUDES = -I. -I$(HEADER_DEST) -I$(TOP) DEPLIBS = XViewClientDepLibs LOCAL_LIBRARIES = XViewClientLibs MAKEFILE_SIMPLE = Makefile.customer SRCS = animate.c interpose.c notify.c notify_input.c ntfy_do_dis.c \ ntfy_pipe.c ntfy_sig.c INSTALL_SRCS = $(SRCS) ALLFILES = $(MAKEFILE_SIMPLE) $(SRCS) PROGRAMS= animate interpose notify notify_input ntfy_do_dis \ ntfy_pipe ntfy_sig AllTarget($(PROGRAMS)) SingleProgramTarget(animate,animate.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(interpose,interpose.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(notify,notify.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(notify_input,notify_input.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(ntfy_do_dis,ntfy_do_dis.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(ntfy_pipe,ntfy_pipe.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(ntfy_sig,ntfy_sig.o,$(LOCAL_LIBRARIES), /**/) #include xview-3.2p1.4/contrib/examples/notifier/Makefile.customer100644 1750 1750 1551 5413747617 21037 0ustar mbmb# # @(#)Makefile.customer 1.7 92/02/24 # # Makefile for the notifier example programs for XView programmers # OSTYPE = SUNOS5 INCLUDE = -I${OPENWINHOME}/include # # If you want to compile for debugging, change "-O" to "-g" # CFLAGS_SUNOS41 = ${INCLUDE} -O CFLAGS_SUNOS5 = ${INCLUDE} -DSVR4 -O CFLAGS = $(CFLAGS_$(OSTYPE)) # if you want special to pass special loader options to ld, set # LDFLAGS= ... # XVIEW_LIBS = -L${OPENWINHOME}/lib \ -lxview -lolgx -lX11 CFILES = animate.c \ interpose.c \ notify.c \ notify_input.c \ ntfy_do_dis.c \ ntfy_pipe.c \ ntfy_sig.c OBJS = animate \ interpose \ notify \ notify_input \ ntfy_do_dis \ ntfy_pipe \ ntfy_sig all: ${OBJS} ${OBJS}: $$@.c $$@.o ${CC} ${CFLAGS} ${LDFLAGS} -o $@ $@.o ${XVIEW_LIBS} clean: rm -f core ${OBJS} *.o xview-3.2p1.4/contrib/examples/notifier/animate.c100644 1750 1750 7631 6331115756 17317 0ustar mbmb/* * animate.c -- use glyphs from the "icon" font distributed with XView * to do frame-by-frame animation. */ #include #include #include #include #include /* for */ #include #include #include #include Frame frame; Display *dpy; GC gc; Window canvas_win; Notify_value animate(); struct itimerval timer; #define ArraySize(x) (sizeof(x)/sizeof(x[0])) char *horses[] = { "N", "O", "P", "Q", "R" }; char *boys[] = { "\007", "\005", "\007", "\010" }; char *men[] = { "\\", "]", "Y", "Z", "[" }; char *eyes[] = { "2", "5", "4", "3", "4", "5", "2", "1", "0", "/", "0", "1" }; int max_images = ArraySize(horses); char **images = horses; int cnt; main(argc, argv) int argc; char *argv[]; { Panel panel; Canvas canvas; XGCValues gcvalues; Xv_Font _font; XFontStruct *font; void adjust_speed(), change_glyph(); extern void exit(); xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create(XV_NULL, FRAME, FRAME_LABEL, argv[0], NULL); panel = (Panel)xv_create(frame, PANEL, PANEL_LAYOUT, PANEL_VERTICAL, NULL); xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Quit", PANEL_NOTIFY_PROC, exit, NULL); xv_create(panel, PANEL_SLIDER, PANEL_LABEL_STRING, "Millisecs Between Frames", PANEL_VALUE, 0, PANEL_MAX_VALUE, 120, PANEL_NOTIFY_PROC, adjust_speed, NULL); xv_create(panel, PANEL_CHOICE, PANEL_LABEL_STRING, "Glyphs", PANEL_LAYOUT, PANEL_HORIZONTAL, PANEL_DISPLAY_LEVEL, PANEL_ALL, PANEL_CHOICE_STRINGS, "Horse", "Man", "Boy", "Eye", NULL, PANEL_NOTIFY_PROC, change_glyph, NULL); window_fit(panel); canvas = (Canvas)xv_create(frame, CANVAS, XV_WIDTH, 64, XV_HEIGHT, 64, CANVAS_X_PAINT_WINDOW, TRUE, NULL); canvas_win = (Window)xv_get(canvas_paint_window(canvas), XV_XID); window_fit(frame); dpy = (Display *)xv_get(frame, XV_DISPLAY); _font = (Xv_Font)xv_find(frame, FONT, #ifndef __linux FONT_NAME, "icon", #else FONT_NAME, "lucidasanstypewriter-24", #endif NULL); font = (XFontStruct *)xv_get(_font, FONT_INFO); gcvalues.font = font->fid; gcvalues.foreground = BlackPixel(dpy, DefaultScreen(dpy)); gcvalues.background = WhitePixel(dpy, DefaultScreen(dpy)); gcvalues.graphics_exposures = False; gc = XCreateGC(dpy, RootWindow(dpy, DefaultScreen(dpy)), GCForeground | GCBackground | GCFont | GCGraphicsExposures, &gcvalues); xv_main_loop(frame); } void change_glyph(item, value) Panel_item item; int value; { cnt = 0; if (value == 0) { max_images = ArraySize(horses); images = horses; } else if (value == 1) { max_images = ArraySize(men); images = men; } else if (value == 2) { max_images = ArraySize(boys); images = boys; } else if (value == 3) { max_images = ArraySize(eyes); images = eyes; } XClearWindow(dpy, canvas_win); } /*ARGSUSED*/ Notify_value animate() { XDrawImageString(dpy, canvas_win, gc, 5, 40, images[cnt], 1); cnt = (cnt + 1) % max_images; return NOTIFY_DONE; } void adjust_speed(item, value) Panel_item item; int value; { if (value > 0) { timer.it_value.tv_usec = (value + 20) * 1000; timer.it_interval.tv_usec = (value + 20) * 1000; notify_set_itimer_func(frame, animate, ITIMER_REAL, &timer, NULL); } else /* turn it off */ notify_set_itimer_func(frame, NOTIFY_FUNC_NULL, ITIMER_REAL, NULL, NULL); } xview-3.2p1.4/contrib/examples/notifier/interpose.c100644 1750 1750 3017 5413747617 17712 0ustar mbmb/* * interpose.c -- shows how to use an interpose destroy function */ #include #include #include #include Frame frame; Notify_value destroy_func(client, status) Notify_client client; Destroy_status status; { if (status == DESTROY_CHECKING) { int answer = notice_prompt(client, NULL, NOTICE_MESSAGE_STRINGS, "Really Quit?", NULL, NOTICE_BUTTON_YES, "No", NOTICE_BUTTON_NO, "Yes", NULL); if (answer == NOTICE_YES) notify_veto_destroy(client); } else if (status == DESTROY_CLEANUP) { puts("cleaning up"); /* allow frame to be destroyed */ return notify_next_destroy_func(client, status); } else if (status == DESTROY_SAVE_YOURSELF) puts("save yourself?"); else puts("process death"); return NOTIFY_DONE; } main (argc, argv) int argc; char *argv[]; { Panel panel; int quit(); xv_init (XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create (NULL, FRAME, FRAME_LABEL, argv[0], XV_WIDTH, 200, XV_HEIGHT, 100, NULL); notify_interpose_destroy_func(frame, destroy_func); panel = (Panel)xv_create (frame, PANEL, NULL); (void) xv_create (panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Quit", PANEL_NOTIFY_PROC, quit, NULL); xv_main_loop(frame); } int quit() { xv_destroy_safe(frame); return XV_OK; } xview-3.2p1.4/contrib/examples/notifier/notify.c100644 1750 1750 16066 6331115756 17233 0ustar mbmb/* * notify.c -- Demonstrates how to bypass xv_main_loop() by creating your * own event loop. */ #include #include #include #include #include #include #include void event_proc(), repaint_proc(); char kbd_msg[128], ptr_msg[128], but_msg[128]; int RUN = TRUE; XFontStruct *font; /* Time out for select. */ #ifndef __linux struct timeval timeout = { 0, 250000 }; #else struct timeval timeout; /* Linux changes timeval in select(), reinit every time */ #endif main(argc, argv) int argc; char *argv[]; { Display *dpy; Frame frame; Textsw textsw; Canvas canvas; fd_set readfds; int fd; Notify_func my_destroy_func(); /* Initialize XView */ xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); /* Create windows -- base frame, canvas and a textsw. */ frame = (Frame)xv_create(NULL, FRAME, XV_X, 10, XV_Y, 10, XV_LABEL, "Notifier", NULL); /* Interpose on the frame's destroy proc so I know when the user has * selected quit from the menu. I don't want to get into a position * where all my windows are gone, but my main loop is still spinning * away. */ notify_interpose_destroy_func(frame, (Notify_func) my_destroy_func); canvas = xv_create(frame, CANVAS, XV_WIDTH, 520, XV_HEIGHT, 130, CANVAS_X_PAINT_WINDOW, TRUE, CANVAS_REPAINT_PROC, repaint_proc, /* Set attrs on the paint window */ CANVAS_PAINTWINDOW_ATTRS, WIN_EVENT_PROC, event_proc, WIN_CONSUME_EVENTS, KBD_DONE, KBD_USE, LOC_DRAG, LOC_MOVE, LOC_WINENTER, LOC_WINEXIT, WIN_ASCII_EVENTS, WIN_MOUSE_BUTTONS, NULL, NULL, NULL); textsw = xv_create(frame, TEXTSW, XV_X, 0, WIN_BELOW, canvas, XV_WIDTH, 520, XV_HEIGHT, 500, NULL); window_fit(frame); /* Initial messages */ strcpy(kbd_msg, "Keyboard: key press events"); strcpy(ptr_msg, "Pointer: pointer movement events"); strcpy(but_msg, "Button: button press events"); /* Get a nice big font */ font = XLoadQueryFont(dpy = (Display *) XV_DISPLAY_FROM_WINDOW(frame), "-b&h-lucida-medium-r-normal-sans-24-240-*-*-p-*-iso8859-1"); /* Map the frame. This is normally done for us by xv_main_loop(). */ xv_set(frame, XV_SHOW, TRUE, 0); /* Get the server connection number. */ fd = XConnectionNumber(dpy); /* Make sure everything gets over to the server. */ XFlush(dpy); /* Create my own loop, only dispatching events when there is something * to dispatch. When I'm not dispatching events, I'm free to do * as I please. */ while (RUN) { FD_SET(fd, &readfds); #ifdef __linux timeout.tv_sec = 0; timeout.tv_usec = 250000; #endif /* Check to see if the server has written to us. */ if (select(FD_SETSIZE, &readfds, NULL, NULL, &timeout)) { /* Read and dispatch events from the server. */ notify_dispatch(); } else { static int toggle = 0; /* Do my own thing here. Just remember not to neglect incomming * events. (*Ping the notifier as often as possible*) */ /* Erase contents of textsw. */ textsw_erase(textsw, 0, TEXTSW_INFINITY); /* Load textsw with one of two files. */ xv_set(textsw, TEXTSW_FILE_CONTENTS, toggle ? "/etc/fstab" : "/etc/passwd", TEXTSW_FIRST, 0, NULL); toggle = ~toggle; /* If I've used any X routines, be sure to flush the requests * through to the server. */ XFlush(dpy); } } /* All done. */ } /* This is called before the frame's destroy func (ie. I've interposed in * front of it. */ Notify_func my_destroy_func(frame, status) Frame frame; Destroy_status status; { if (status == DESTROY_PROCESS_DEATH || status == DESTROY_CLEANUP) RUN = FALSE; /* Now call the frame's destroy func. */ notify_next_destroy_func(frame, status); } /* * event_proc() * Called when an event is received in the canvas window. * Updates the keyboard, pointer and button message strings * and then calls repaint_proc() to paint them to the window. */ void event_proc(window, event) Xv_Window window; Event *event; { if (event_is_ascii(event)) sprintf(kbd_msg, "Keyboard: key '%c' %d pressed at %d,%d", event_action(event), event_action(event), event_x(event), event_y(event)); else switch (event_action(event)) { case KBD_USE: sprintf(kbd_msg, "Keyboard: got keyboard focus"); break; case KBD_DONE: sprintf(kbd_msg, "Keyboard: lost keyboard focus"); break; case LOC_MOVE: sprintf(ptr_msg, "Pointer: moved to %d,%d", event_x(event), event_y(event)); break; case LOC_DRAG: sprintf(ptr_msg, "Pointer: dragged to %d,%d", event_x(event), event_y(event)); break; case LOC_WINENTER: sprintf(ptr_msg, "Pointer: entered window at %d,%d", event_x(event), event_y(event)); break; case LOC_WINEXIT: sprintf(ptr_msg, "Pointer: exited window at %d,%d", event_x(event), event_y(event)); break; case ACTION_SELECT: case MS_LEFT: sprintf(but_msg, "Button: Select (Left) at %d,%d", event_x(event), event_y(event)); break; case ACTION_ADJUST: case MS_MIDDLE: sprintf(but_msg, "Button: Adjust (Middle) at %d,%d", event_x(event), event_y(event)); break; case ACTION_MENU: case MS_RIGHT: sprintf(but_msg, "Button: Menu (Right) at %d,%d", event_x(event), event_y(event)); break; default: return; } /* call repaint proc directly to update messages */ repaint_proc((Canvas)NULL, window, (Display *)xv_get(window, XV_DISPLAY), xv_get(window, XV_XID), (Xv_xrectlist *) NULL); } /* * repaint_proc() * Called to repaint the canvas in response to damage events * and the initial painting of the canvas window. * Displays the keyboard, pointer and button message strings * after erasing the previous messages. */ void repaint_proc(canvas, paint_window, dpy, xwin, xrects) Canvas canvas; /* Ignored */ Xv_Window paint_window; /* Ignored */ Display *dpy; Window xwin; Xv_xrectlist *xrects; /* Ignored */ { GC gc = DefaultGC(dpy, DefaultScreen(dpy)); XSetFont(dpy, gc, font->fid); XClearWindow(dpy, xwin); XDrawString(dpy, xwin, gc, 25, 35, kbd_msg, strlen(kbd_msg)); XDrawString(dpy, xwin, gc, 25, 65, ptr_msg, strlen(ptr_msg)); XDrawString(dpy, xwin, gc, 25, 95, but_msg, strlen(but_msg)); } xview-3.2p1.4/contrib/examples/notifier/notify_input.c100644 1750 1750 4006 6331115756 20421 0ustar mbmb/* * notify_input.c -- use notify_set_input_func to monitor the state of * a file. The notifier is running and checking the file descriptors * of the opened files associated with the command line args. The * routine installed by notify_set_input_func() is called whenever * there is data to be read. When there is no more data to be read * for that file, the input function is unregistered. When all files * have been read, notify_start() returns and the program exits. */ #include #ifdef SVR4 #include #else #include #endif /* SVR4 */ #include main(argc, argv) char *argv[]; { Notify_value read_it(); Notify_client client = (Notify_client)10101; /* arbitrary */ FILE *fp; while (*++argv) if (!(fp = fopen(*argv, "r"))) perror(*argv); else { (void) notify_set_input_func(client, read_it, fileno(fp)); client++; /* next client is new/unique */ } /* loops continuously */ notify_start(); } /* * read_it() is called whenever there is input to be read. Actually, * it's called continuously, so check to see if there is input to be * read first. */ Notify_value read_it(client, fd) Notify_client client; int fd; { char buf[BUFSIZ]; int bytes, i; if ((bytes = input_available(fd)) < 1) (void) notify_set_input_func(client, NOTIFY_FUNC_NULL, fd); else do if ((i = read(fd, buf, sizeof buf)) > 0) (void) write(1, buf, i); while (i > 0 && (bytes -= i) > 0); return NOTIFY_DONE; } int input_available(fd) int fd; { int bytes = -1; #ifdef SVR4 struct stat statbuf; int retval; if ( ( retval = fstat( fd, &statbuf ) ) >= 0 ) { if ( S_ISREG( statbuf.st_mode ) ) { if ( ( retval = lseek( fd, 0, SEEK_CUR ) ) >= 0 ) bytes = statbuf.st_size - retval; } } #else if (ioctl(fd, FIONREAD, &bytes) == -1 || bytes == 0) bytes = -1; #endif return( bytes ); } xview-3.2p1.4/contrib/examples/notifier/ntfy_do_dis.c100644 1750 1750 3011 5413747620 20167 0ustar mbmb/* * ntfy_do_dis.c -- show an example of implicit notifier dispatching * by calling notify_do_dispatch(). Create a frame, panel and "Quit" * button, and then loop on calls to read() from stdin. Event * processing is still maintained because the Notifier uses it's own * non-blocking read(). */ #include #include #include #include Frame frame; main (argc, argv) int argc; char *argv[]; { Panel panel; char buf[BUFSIZ]; int n, quit(); xv_init (XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create (NULL, FRAME, FRAME_LABEL, argv[0], XV_WIDTH, 200, XV_HEIGHT, 100, XV_SHOW, TRUE, NULL); panel = (Panel)xv_create (frame, PANEL, NULL); (void) xv_create (panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Quit", PANEL_NOTIFY_PROC, quit, NULL); /* Force the frame to be displayed by flushing the server */ XFlush((Display *)xv_get(frame, XV_DISPLAY)); /* tell the Notifier that it should use its own read() so that it * can also detect and dispatch events. This allows us to loop * in this code segment and still process events. */ notify_do_dispatch(); puts("Frame being displayed -- type away."); while ((n = read(0, buf, sizeof buf)) >= 0) printf("read %d bytes\n", n); printf("read() returned %d\n", n); } int quit() { xv_destroy_safe(frame); return XV_OK; } xview-3.2p1.4/contrib/examples/notifier/ntfy_pipe.c100644 1750 1750 13020 5413747620 17704 0ustar mbmb/* * notify_pipe.c -- fork and set up a pipe to read the IO from the * forked process. The program to run is specified on the command * line. The functions notify_set_input_func() and * notify_set_output_func() are used to install functions which read * and write to the process' stdin and stdout. * The program does not use any xview code -- just the notifier. */ #include #include #include #include #include #include #include #include #include #ifdef SVR4 #include #endif Notify_client client1 = (Notify_client)10; Notify_client client2 = (Notify_client)11; int pipe_io[2][2]; /* see diagram */ /* * [0] [1] * child reads: |========= pipe_io[0] ========| <- parent writes * pipe_io[0][0] pipe_io[0][1] * * parent reads: |========= pipe_io[1] ========| <- child writes * pipe_io[1][0] pipe_io[1][1] * * The parent process reads the output of the child process by reading * pipe_io[1][0] because the child is writing to pipe_io[1][1]. * The child process gets its input from pipe_io[0][0] because the * parent writes to pipe_io[0][1]. Thus, one process is reading from * one end of the pipe while the other is writing at the other end. */ main(argc, argv) char *argv[]; { Notify_value read_it(), write_it(), sigchldcatcher(); int i, pid; FILE *fp; if (!*++argv) puts("specify a program [w/args]"), exit(1); pipe(pipe_io[0]); /* set up input pipe */ pipe(pipe_io[1]); /* set up output pipe */ switch (pid = fork()) { case -1: close(pipe_io[0][0]); close(pipe_io[0][1]); close(pipe_io[1][0]); close(pipe_io[1][1]); perror("fork failed"); exit(1); case 0: /* child */ /* redirect child's stdin (0), stdout (1) and stderr(2) */ dup2(pipe_io[0][0], 0); dup2(pipe_io[1][1], 1); dup2(pipe_io[1][1], 2); #ifdef SVR4 { struct rlimit rlim; getrlimit(RLIMIT_NOFILE, &rlim); for (i = rlim.rlim_cur; i > 2; i--) (void) close(i); } #else for (i = getdtablesize(); i > 2; i--) (void) close(i); #endif for (i = 0; i < NSIG; i++) (void) signal(i, SIG_DFL); execvp(*argv, argv); if (errno == ENOENT) printf("%s: command not found.\n", *argv); else perror(*argv); perror("execvp"); _exit(-1); default: /* parent */ close(pipe_io[0][0]); /* close unused portions of pipes */ close(pipe_io[1][1]); } /* when the process outputs data, read it */ notify_set_input_func(client1, read_it, pipe_io[1][0]); notify_set_wait3_func(client1, sigchldcatcher, pid); /* wait for user input -- then write data to pipe */ notify_set_input_func(client2, write_it, 0); notify_set_wait3_func(client2, sigchldcatcher, pid); notify_start(); } /* * callback routine for when there is data on the parent's stdin to * read. Read it and then write the data to the child process via * the pipe. */ Notify_value write_it(client, fd) Notify_client client; int fd; { char buf[BUFSIZ]; int bytes, i; /* only write to pipe (child's stdin) if user typed anything */ if (ioctl(fd, FIONREAD, &bytes) == -1 || bytes == 0) { notify_set_input_func(client, NOTIFY_FUNC_NULL, pipe_io[0][1]); close(pipe_io[0][1]); } else while (bytes > 0) { if ((i = read(fd, buf, sizeof buf)) > 0) { printf("[Sending %d bytes to pipe (fd=%d)]\n", i, pipe_io[0][1]); write(pipe_io[0][1], buf, i); } else if (i == -1) break; bytes -= i; } return NOTIFY_DONE; } /* * callback routine for when there is data on the child's stdout to * read. Read, then write the data to stdout (owned by the parent). */ Notify_value read_it(client, fd) Notify_client client; register int fd; { char buf[BUFSIZ]; int bytes, i; if (ioctl(fd, FIONREAD, &bytes) == 0) while (bytes > 0) { if ((i = read(fd, buf, sizeof buf)) > 0) { printf("[Reading %d bytes from pipe (fd=%d)]\n", i, fd); (void) write(1, buf, i); bytes -= i; } } return NOTIFY_DONE; } /* * handle the death of the child. If the process dies, the child * dies and generates a SIGCHLD signal. Capture it and disable the * functions that talk to the pipes. */ Notify_value sigchldcatcher(client, pid, status, rusage) Notify_client client; /* the client noted in main() */ int pid; /* the pid that died */ #ifdef SVR4 int *status; #else union wait *status; /* the status of the process (unused here) */ #endif struct rusage *rusage; /* resources used by this process (unused) */ { if (WIFEXITED(*status)) { printf("Process termined with status %d\n", #ifdef SVR4 *status #else status->w_retcode #endif ); /* unregister input func with appropriate file descriptor */ notify_set_input_func(client, NOTIFY_FUNC_NULL, (client == client1)? pipe_io[1][0] : 0); return NOTIFY_DONE; } puts("SIGCHLD not handled"); return NOTIFY_IGNORED; } xview-3.2p1.4/contrib/examples/notifier/ntfy_sig.c100644 1750 1750 1741 5413747620 17520 0ustar mbmb/* * ntfy_sig.c -- shows how to catch signals using the notifier */ #include #include #include Frame frame; Notify_value sigint_handler(client, sig, when) Notify_client client; int sig; { printf("Received signal %d\n", sig); return NOTIFY_DONE; } main (argc, argv) int argc; char *argv[]; { Panel panel; char buf[BUFSIZ]; int n, quit(); xv_init (XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create (NULL, FRAME, FRAME_LABEL, argv[0], XV_WIDTH, 200, XV_HEIGHT, 100, NULL); panel = (Panel)xv_create (frame, PANEL, NULL); (void) xv_create (panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Quit", PANEL_NOTIFY_PROC, quit, NULL); notify_set_signal_func(frame, sigint_handler, SIGINT, NOTIFY_ASYNC); xv_main_loop(frame); } int quit() { xv_destroy_safe(frame); return XV_OK; } xview-3.2p1.4/contrib/examples/panels/ 40755 1750 1750 0 6354605713 15076 5ustar mbmbxview-3.2p1.4/contrib/examples/panels/Imakefile100644 1750 1750 3204 5413747621 17003 0ustar mbmb#include /**/########################################################################## /**/# @(#)Imakefile 1.7 90/08/02 SMI /**/# Imakefile for examples/panels #define InstallSrcs YES LOCATION = examples/panels DEFINES = -DSTANDALONE $(XVCLIENTSYSDEFINES) SYS_LIBRARIES = INCLUDES = -I. -I$(HEADER_DEST) -I$(TOP) DEPLIBS = XViewClientDepLibs LOCAL_LIBRARIES = XViewClientLibs MAKEFILE_SIMPLE = Makefile.customer SRCS = btn_menu.c choices.c client_data.c item_move.c list_glyphs.c \ list_6_glyphs.c panel_repaint.c quit.c repaint.c simple_panel.c \ slider.c stop_frame.c INSTALL_SRCS = $(SRCS) ALLFILES = $(MAKEFILE_SIMPLE) $(SRCS) PROGRAMS= btn_menu choices client_data item_move list_glyphs \ list_6_glyphs panel_repaint quit repaint simple_panel \ slider stop_frame AllTarget($(PROGRAMS)) SingleProgramTarget(btn_menu,btn_menu.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(choices,choices.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(client_data,client_data.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(item_move,item_move.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(list_glyphs,list_glyphs.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(list_6_glyphs,list_6_glyphs.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(panel_repaint,panel_repaint.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(quit,quit.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(repaint,repaint.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(simple_panel,simple_panel.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(slider,slider.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(stop_frame,stop_frame.o,$(LOCAL_LIBRARIES), /**/) #include xview-3.2p1.4/contrib/examples/panels/Makefile.customer100644 1750 1750 2210 5413747621 20466 0ustar mbmb# # @(#)Makefile.customer 1.9 92/02/24 # # Makefile for the panels example programs for XView programmers # OSTYPE = SUNOS5 INCLUDE = -I${OPENWINHOME}/include # # If you want to compile for debugging, change "-O" to "-g" # CFLAGS_SUNOS41 = ${INCLUDE} -O CFLAGS_SUNOS5 = ${INCLUDE} -DSVR4 -O CFLAGS = $(CFLAGS_$(OSTYPE)) # if you want special to pass special loader options to ld, set # LDFLAGS= ... # XVIEW_LIBS = -L${OPENWINHOME}/lib \ -lxview -lolgx -lX11 CFILES = btn_menu.c \ choices.c \ client_data.c \ item_move.c \ list_glyphs.c \ list_6_glyphs.c \ panel_repaint.c \ quit.c \ repaint.c \ simple_panel.c \ slider.c \ stop_frame.c \ panel_dnd.c ICONS = normal.icon \ normal2.icon \ busy.icon \ busy2.icon OBJS = btn_menu \ choices \ client_data \ item_move \ list_glyphs \ list_6_glyphs \ panel_repaint \ quit \ repaint \ simple_panel \ slider \ stop_frame \ panel_dnd all: ${OBJS} ${OBJS}: $$@.c $$@.o ${CC} ${CFLAGS} ${LDFLAGS} -o $@ $@.o ${XVIEW_LIBS} clean: rm -f core ${OBJS} *.o xview-3.2p1.4/contrib/examples/panels/btn_menu.c100644 1750 1750 2625 5413747621 17153 0ustar mbmb/* * btn_menu.c -- display a panel that has an OPEN LOOK menu button. * The choices displayed are Yes, No and Quit. If Quit is selected * in the menu, the program exits. */ #include #include #include main(argc, argv) int argc; char *argv[]; { Frame frame; Panel panel; Menu menu; int selected(); void menu_proc(); xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create(NULL, FRAME, NULL); panel = (Panel)xv_create(frame, PANEL, NULL); /* Create the menu _before_ the panel button */ menu = (Menu)xv_create(NULL, MENU, MENU_NOTIFY_PROC, menu_proc, MENU_STRINGS, "Yes", "No", "Quit", NULL, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Y/N/Q", PANEL_NOTIFY_PROC, selected, PANEL_ITEM_MENU, menu, /* attach menu to button */ NULL); window_fit(panel); window_fit(frame); xv_main_loop(frame); } int selected(item, event) Panel_item item; Event *event; { printf("%s selected...\n", xv_get(item, PANEL_LABEL_STRING)); return XV_OK; } void menu_proc(menu, menu_item) Menu menu; Menu_item menu_item; { printf("Menu Item: %s\n", xv_get(menu_item, MENU_STRING)); if (!strcmp((char *)xv_get(menu_item, MENU_STRING), "Quit")) exit(0); } xview-3.2p1.4/contrib/examples/panels/busy.icon100644 1750 1750 4216 5413747622 17033 0ustar mbmb/* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x07FF, 0x0000, 0x0000, 0x0000, 0x07FF, 0xC000, 0x0000, 0x0000, 0x0703, 0xC000, 0x0000, 0x0000, 0x0700, 0xE000, 0x0000, 0x0000, 0x0700, 0xE000, 0x0000, 0x0000, 0x0700, 0xE1C1, 0xC1F8, 0x380E, 0x0700, 0xE1C1, 0xC3FC, 0x380E, 0x0701, 0xC1C1, 0xC79E, 0x1C0E, 0x07FF, 0x81C1, 0xC70E, 0x1E1C, 0x07FF, 0xC1C1, 0xC700, 0x0E1C, 0x0700, 0xE1C1, 0xC7E0, 0x0F3C, 0x0700, 0x71C1, 0xC3FC, 0x0738, 0x0700, 0x71C1, 0xC07E, 0x0738, 0x0700, 0x71C1, 0xC00F, 0x03F0, 0x0700, 0x71C1, 0xC707, 0x03F0, 0x0700, 0xF1C3, 0xC707, 0x01F0, 0x0703, 0xE0E7, 0xC78F, 0x01E0, 0x07FF, 0xC0FD, 0xC3FE, 0x00E0, 0x07FF, 0x0039, 0xC1FC, 0x00E0, 0x0000, 0x0000, 0x0000, 0x01C0, 0x0000, 0x0000, 0x0000, 0x01C0, 0x0000, 0x0000, 0x0000, 0x0380, 0x0000, 0x0000, 0x0000, 0x0F80, 0x0000, 0x0000, 0x0000, 0x0F00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x06F7, 0xBDEF, 0x7BDE, 0xF7BC, 0x07BD, 0xEF7B, 0xDEF7, 0xBDEE, 0x05EF, 0x7BDE, 0xF7BD, 0xEF7A, 0x077B, 0xDEF7, 0xBDEF, 0x7BDE, 0x03DE, 0xF7BD, 0xEF7B, 0xDEF6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, xview-3.2p1.4/contrib/examples/panels/busy2.icon100644 1750 1750 4216 5413747622 17115 0ustar mbmb/* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xF000, 0x0000, 0x0000, 0x0000, 0xD800, 0x0000, 0x0000, 0x0000, 0xD800, 0x0000, 0x0000, 0x0000, 0xD833, 0x0F19, 0xC000, 0x0000, 0xF833, 0x181D, 0x8000, 0x0000, 0xCC33, 0x1E0D, 0x8000, 0x0000, 0xCC33, 0x0F0F, 0x0000, 0x0000, 0xCC33, 0x0307, 0x0000, 0x0000, 0xF81F, 0x1E06, 0x0000, 0x0000, 0x0000, 0x0006, 0x0000, 0x0000, 0x0000, 0x000C, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, xview-3.2p1.4/contrib/examples/panels/choices.c100644 1750 1750 6664 5413747622 16771 0ustar mbmb/* * choices.c -- displays several ways of presenting choices for * selection. */ #include #include #include Panel panel; main(argc, argv) int argc; char *argv[]; { Frame frame; Menu menu; void quit(); int numeric_text(); int selected(), toggle_selected(); xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = xv_create(XV_NULL, FRAME, FRAME_LABEL, argv[0], XV_WIDTH, 450, XV_HEIGHT, 250, FRAME_SHOW_FOOTER, TRUE, NULL); panel = xv_create(frame, PANEL, NULL); xv_set(canvas_paint_window(panel), NULL); xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Quit", PANEL_NOTIFY_PROC, quit, PANEL_CLIENT_DATA, frame, NULL); xv_create(panel, PANEL_CHOICE, PANEL_CHOICE_STRINGS, "One", "Two", "Three", "Four", NULL, PANEL_NOTIFY_PROC, selected, PANEL_CLIENT_DATA, frame, NULL); xv_create(panel, PANEL_CHOICE, PANEL_DISPLAY_LEVEL, PANEL_CURRENT, PANEL_LABEL_STRING, "Choices", PANEL_CHOICE_STRINGS, "One", "Two", "Three", "Four", NULL, PANEL_NOTIFY_PROC, selected, PANEL_CLIENT_DATA, frame, NULL); xv_create(panel, PANEL_CHOICE, PANEL_LABEL_STRING, "Choices", PANEL_CHOICE_STRINGS, "One", "Two", "Three", "Four", NULL, PANEL_NOTIFY_PROC, selected, PANEL_CLIENT_DATA, frame, NULL); xv_create(panel, PANEL_CHOICE, PANEL_CHOOSE_ONE, FALSE, PANEL_LABEL_STRING, "Choices", PANEL_VALUE, 5, /* choices 1 and 3 */ PANEL_CHOICE_STRINGS, "One", "Two", "Three", "Four", NULL, PANEL_NOTIFY_PROC, toggle_selected, PANEL_CLIENT_DATA, frame, NULL); xv_create(panel, PANEL_TOGGLE, PANEL_FEEDBACK, PANEL_MARKED, PANEL_LABEL_STRING, "Choices", PANEL_VALUE, 5, /* choices 1 and 3 */ PANEL_CHOICE_STRINGS, "One", "Two", "Three", "Four", NULL, PANEL_NOTIFY_PROC, toggle_selected, PANEL_CLIENT_DATA, frame, NULL); xv_create(panel, PANEL_NUMERIC_TEXT, PANEL_LABEL_STRING, "Numbers:", PANEL_VALUE, 5, PANEL_MAX_VALUE, 1000000, PANEL_MIN_VALUE, -1000000, PANEL_NOTIFY_PROC, numeric_text, PANEL_CLIENT_DATA, frame, NULL); xv_main_loop(frame); } int toggle_selected(item, value, event) Panel_item item; unsigned value; Event *event; { char buf[32]; Frame frame = xv_get(item, PANEL_CLIENT_DATA); int i; buf[0] = 0; if (event_id(event) == MS_LEFT) { for (i = 0; value; i++, value >>= 1) if (value & 1) sprintf(buf+strlen(buf), "%s%c ", xv_get(item, PANEL_CHOICE_STRING, i), (value >> 1)? ',' : ' '); xv_set(frame, FRAME_RIGHT_FOOTER, buf, NULL); return XV_OK; } return XV_ERROR; } int selected(item, value, event) Panel_item item; int value; Event *event; { char buf[32]; Frame frame = xv_get(item, PANEL_CLIENT_DATA); if (event_id(event) == MS_LEFT) { sprintf(buf, "\"%s\" selected", xv_get(item, PANEL_CHOICE_STRING, panel_get_value(item))); xv_set(frame, FRAME_RIGHT_FOOTER, buf, NULL); return XV_OK; } return XV_ERROR; } numeric_text(item, event) Panel_item item; Event *event; { char buf[32]; Frame frame = xv_get(item, PANEL_CLIENT_DATA); sprintf(buf, "\"%s\" set to %d", (char *)xv_get(item, PANEL_LABEL_STRING), (int)xv_get(item, PANEL_VALUE)); xv_set(frame, FRAME_RIGHT_FOOTER, buf, NULL); return PANEL_NEXT; } void quit(item, event) Panel_item item; Event *event; { Frame frame = xv_get(item, PANEL_CLIENT_DATA); if (event_id(event) == MS_LEFT) xv_destroy_safe(frame); } xview-3.2p1.4/contrib/examples/panels/client_data.c100644 1750 1750 1601 5413747622 17605 0ustar mbmb/* * client_data.c -- demonstrate the use of PANEL_CLIENT_DATA attached * to panel items. Attach the base frame to the "Quit" panel item so * that the notify procedure can call xv_destroy_safe() on the frame. */ #include #include main(argc, argv) int argc; char *argv[]; { Frame frame; Panel panel; int quit(); xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create(XV_NULL, FRAME, NULL); panel = (Panel)xv_create(frame, PANEL, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Quit", PANEL_NOTIFY_PROC, quit, PANEL_CLIENT_DATA, frame, NULL); xv_main_loop(frame); puts("The program is now done."); exit(0); } quit(item) Panel_item item; { Frame frame = (Frame)xv_get(item, PANEL_CLIENT_DATA); xv_destroy_safe(frame); } xview-3.2p1.4/contrib/examples/panels/item_move.c100644 1750 1750 24045 5413747622 17351 0ustar mbmb/* * item_move.c * Move items around in a panel using an interpose event handler * specific to the panel. Two panels are created -- the left panel * contains panel buttons that allow you to create certain types of * items that are put in the second panel. Use the MENU (right) * mouse button to move items around in the second panel. */ #include #include #include /* We need handles to the base frame and a panel -- instead of * using global variables, we're going to attach the objects to * the objects which need to reference them. Attach using * XV_KEY_DATA -- here are the keys. */ #define PACKAGE_KEY 100 #define FRAME_KEY 101 #define PANEL_KEY 102 main(argc, argv) int argc; char *argv[]; { Frame frame; Panel panel; Xv_Window window; Panel_item create_text, item; Notify_value my_event_proc(); int create_item(); char buf[64]; xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); sprintf(buf, "%s: Use MENU (Right) Button To Move Items", argv[0]); frame = (Frame)xv_create(XV_NULL, FRAME, FRAME_LABEL, buf, FRAME_SHOW_FOOTER, TRUE, NULL); /* * Create panel for known panel items. Layout panel vertically. */ panel = (Panel)xv_create(frame, PANEL, PANEL_LAYOUT, PANEL_VERTICAL, NULL); /* * Create text panel item, attach the frame as client data for * use by the notify procedure create_item(). Text items inherit * the layout of "label" and "value" from its parent panel. * override for the text item by setting PANEL_LAYOUT explicitly. */ create_text = (Panel_item)xv_create(panel, PANEL_TEXT, XV_X, 0, XV_Y, 20, PANEL_LABEL_STRING, "Create Button:", PANEL_NOTIFY_PROC, create_item, PANEL_LAYOUT, PANEL_HORIZONTAL, PANEL_VALUE_DISPLAY_LENGTH, 10, NULL); /* * Create panel button to determine which type of button to create -- * a button, message, or text item. See create_item(). */ item = (Panel_item)xv_create(panel, PANEL_CHOICE, XV_X, 0, XV_Y, 50, PANEL_DISPLAY_LEVEL, PANEL_CURRENT, PANEL_LAYOUT, PANEL_HORIZONTAL, PANEL_LABEL_STRING, "Item type", PANEL_CHOICE_STRINGS, "Button", "Message", "Text", NULL, NULL); window_fit(panel); /* Create a new panel to be used for panel creation. The panel * from above is no longer referenced. The panel created here * is the panel used throughout the rest of this program. To * add confusion, "panel" is used as the handle of this panel, too. * The panel referenced in WIN_RIGHT_OF and XV_HEIGHT is the old * one since the new one hasn't been created yet. */ panel = (Panel)xv_create(frame, PANEL, WIN_RIGHT_OF, canvas_paint_window(panel), XV_WIDTH, 300, XV_HEIGHT, xv_get(panel, XV_HEIGHT), WIN_BORDER, TRUE, XV_KEY_DATA, PANEL_KEY, panel, NULL); /* Install event handling routine for the panel. This must be done * by an interpose function to make sure that the ACTION_MENU * event is not consumed by the first panel before it has a chance * to get to the second panel's event proc: my_event_proc. */ notify_interpose_event_func(panel, my_event_proc, NOTIFY_SAFE); /* attach various items to the text item for text_select() */ xv_set(create_text, XV_KEY_DATA, FRAME_KEY, frame, XV_KEY_DATA, PACKAGE_KEY, item, XV_KEY_DATA, PANEL_KEY, panel, NULL); window_fit(frame); xv_main_loop(frame); } /* * Process events for panel's subwindow. This routine gets -all- * events that occur in the panel subwindow but passes them on to * the normal event dispatcher when the interposed function has been * completed. The notify function, my_event_proc, is only * interested in MENU button events that happen on top of panel items. * When the user clicks and _drags_ the MENU button on a panel item, * the item is moved to where the mouse moves to. */ Notify_value my_event_proc(panel, event, arg, type) Panel panel; Event *event; Notify_arg arg; Notify_event_type type; { static Panel_item item; static int x_offset, y_offset; Frame frame = (Frame)xv_get(panel, XV_OWNER); Rect *rect, *item_rect; char buf[64]; /* * If the mouse is dragging an item, reset its new location. */ if (event_action(event) == LOC_DRAG && item) { Panel_item pi; Rect r; /* * Get the rect of item, then *copy* it -- never change data * returned by xv_get(). Modify the copied rect reflecting * new X,Y position of panel item and check to see if it * intersects with any existing panel items. */ rect = (Rect *)xv_get(item, XV_RECT); rect_construct(&r, /* see for macros */ rect->r_left, rect->r_top, rect->r_width, rect->r_height); r.r_left = event->ie_locx - x_offset; r.r_top = event->ie_locy - y_offset; PANEL_EACH_ITEM(panel, pi) if (pi == item) continue; /* don't let panel items overlap */ item_rect = (Rect *)xv_get(pi, XV_RECT); if (rect_intersectsrect(item_rect, &r)) return; PANEL_END_EACH /* no overlap -- move panel item. */ xv_set(item, PANEL_ITEM_X, r.r_left, PANEL_ITEM_Y, r.r_top, NULL); } /* If it's not the MENU button, we're not interested, * so allow the event to be passed on to the notifier * for normal event handling. */ if (event_action(event) != ACTION_MENU) { notify_next_event_func(panel, (Notify_event) event, arg, type); return; } /* * next two cases is MENU button just-down or just-released */ if (event_is_down(event)) { /* Right (MENU) button down on an item -- determine panel item */ if ( (xv_get((panel), PANEL_FIRST_ITEM) ) == NULL ) { sprintf(buf, "No panel items are currently in the panel."); xv_set(frame, FRAME_RIGHT_FOOTER, buf, NULL); } PANEL_EACH_ITEM(panel, item) rect = (Rect *)xv_get(item, XV_RECT); if (rect_includespoint(rect, event->ie_locx, event->ie_locy)) { x_offset = event->ie_locx - rect->r_left; y_offset = event->ie_locy - rect->r_top; sprintf(buf, "Panel item found."); xv_set(frame, FRAME_RIGHT_FOOTER, buf, NULL); break; } else { sprintf(buf, "The cursor is not over any panel item."); xv_set(frame, FRAME_RIGHT_FOOTER, buf, NULL); } PANEL_END_EACH if (item) sprintf(buf, "Moving item: '%s'", (char *)xv_get(item, PANEL_LABEL_STRING)); else buf[0] = 0; } else if (item) { char *name = (char *)xv_get(item, PANEL_LABEL_STRING); /* test if item is inside panel by comparing XV_RECTs */ rect = (Rect *)xv_get(panel, XV_RECT); if (!rect_includespoint(rect, event->ie_locx + rect->r_left, event->ie_locy + rect->r_top)) { /* item is outside the panel -- remove item */ xv_destroy(item); sprintf(buf, "Removed '%s' from panel", name); } else sprintf(buf, "'%s' moved to %d %d", name, (int)xv_get(item, XV_X), (int)xv_get(item, XV_Y)); /* set "item" to null so that new drag * events don't attempt to move old item. */ item = NULL; } xv_set(frame, FRAME_LEFT_FOOTER, buf, NULL); } /* * Callback routine for all panel buttons. * If the panel item is the text item, determine the name of the new * panel button the user wishes to create. Loop through all the * existing panel items looking for one with the same label. If so, * return PANEL_NONE and set the frame's footer with an error message. * Otherwise, create a new panel item with the label, reset the text * item value and return PANEL_NEXT. */ int create_item(item, event) Panel_item item; Event *event; { Xv_pkg *pkg; Panel panel = (Panel)xv_get(item, XV_KEY_DATA, PANEL_KEY); Frame frame = (Frame)xv_get(item, XV_KEY_DATA, FRAME_KEY); Panel_item pi, pkg_item; char buf[64]; int selected(); pkg_item = (Panel_item)xv_get(item, XV_KEY_DATA, PACKAGE_KEY); (void) strncpy(buf, (char *)xv_get(item, PANEL_VALUE), sizeof buf); if (!buf[0]) return PANEL_NONE; switch((int)xv_get(pkg_item, PANEL_VALUE)) { case 1: pkg = PANEL_MESSAGE; break; case 2: pkg = PANEL_TEXT; break; default: pkg = PANEL_BUTTON; } /* loop thru all panel items and check for item with same name */ PANEL_EACH_ITEM(panel, pi) if (!strcmp(buf, (char *)xv_get(pi, PANEL_LABEL_STRING))) { xv_set(frame, FRAME_LEFT_FOOTER, "Label Taken", NULL); return PANEL_NONE; } PANEL_END_EACH (void) xv_create(panel, pkg, PANEL_LABEL_STRING, buf, PANEL_NOTIFY_PROC, selected, XV_KEY_DATA, FRAME_KEY, frame, /* only for text items, but doesn't affect other items */ PANEL_VALUE_DISPLAY_LENGTH, 10, PANEL_LAYOUT, PANEL_HORIZONTAL, NULL); xv_set(item, PANEL_VALUE, "", NULL); return PANEL_NEXT; } /* * For panel buttons. return XV_OK or XV_ERROR if the item was * selected using the left mouse button or not. */ int selected(item, event) Panel_item item; Event *event; { Frame frame = (Frame)xv_get(item, XV_KEY_DATA, FRAME_KEY); char buf[64]; if (event_action(event) == ACTION_SELECT) { sprintf(buf, "'%s' selected", xv_get(item, PANEL_LABEL_STRING)); xv_set(frame, FRAME_RIGHT_FOOTER, buf, NULL); return XV_OK; } return XV_ERROR; } xview-3.2p1.4/contrib/examples/panels/list_6_glyphs.c100644 1750 1750 10561 5413747622 20151 0ustar mbmb/* * list_6glyphs.c -- show a scrolling list with six items in it. * Each item is an icon (a pattern) and a string. The scrolling * list displays three items. */ #include #include #include #define gray1_width 16 #define gray1_height 16 static u_char gray1_bits[] = { 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa }; #define gray2_width 16 #define gray2_height 16 static u_char gray2_bits[] = { 0x11, 0x11, 0x00, 0x00, 0x44, 0x44, 0x00, 0x00, 0x11, 0x11, 0x00, 0x00, 0x44, 0x44, 0x00, 0x00, 0x11, 0x11, 0x00, 0x00, 0x44, 0x44, 0x00, 0x00, 0x11, 0x11, 0x00, 0x00, 0x44, 0x44, 0x00, 0x00 }; #define gray3_width 16 #define gray3_height 16 static u_char gray3_bits[] = { 0x22, 0x22, 0xee, 0xee, 0x33, 0x33, 0xee, 0xee, 0x22, 0x22, 0xee, 0xee, 0x33, 0x33, 0xee, 0xee, 0x22, 0x22, 0xee, 0xee, 0x33, 0x33, 0xee, 0xee, 0x22, 0x22, 0xee, 0xee, 0x33, 0x33, 0xee, 0xee }; #define gray4_width 16 #define gray4_height 16 static u_char gray4_bits[] = { 0xc3, 0xc3, 0xaa, 0xaa, 0xc3, 0xc3, 0xaa, 0xaa, 0xc3, 0xc3, 0xaa, 0xaa, 0xc3, 0xc3, 0xaa, 0xaa, 0xc3, 0xc3, 0xaa, 0xaa, 0xc3, 0xc3, 0xaa, 0xaa, 0xc3, 0xc3, 0xaa, 0xaa, 0xc3, 0xc3, 0xaa, 0xaa }; #define gray5_width 16 #define gray5_height 16 static u_char gray5_bits[] = { 0xf5, 0xf5, 0x00, 0x00, 0x41, 0x41, 0x00, 0x00, 0xf5, 0xf5, 0x00, 0x00, 0x41, 0x41, 0x00, 0x00, 0xf5, 0xf5, 0x00, 0x00, 0x41, 0x41, 0x00, 0x00, 0xf5, 0xf5, 0x00, 0x00, 0x41, 0x41, 0x00, 0x00 }; #define gray6_width 16 #define gray6_height 16 static u_char gray6_bits[] = { 0x2d, 0x2d, 0xee, 0xee, 0xa5, 0xa5, 0xee, 0xee, 0x2d, 0x2d, 0xee, 0xee, 0xa5, 0xa5, 0xee, 0xee, 0x2d, 0x2d, 0xee, 0xee, 0xa5, 0xa5, 0xee, 0xee, 0x2d, 0x2d, 0xee, 0xee, 0xa5, 0xa5, 0xee, 0xee }; main(argc, argv) int argc; char *argv[]; { Frame frame; Panel panel; Server_image gray1, gray2, gray3, gray4, gray5, gray6; extern void exit(), which_glyph(); xv_init(XV_INIT_ARGS, argc, argv, NULL); gray1 = (Server_image)xv_create(NULL, SERVER_IMAGE, XV_WIDTH, gray1_width, XV_HEIGHT, gray1_height, SERVER_IMAGE_BITS, gray1_bits, NULL); gray2 = (Server_image)xv_create(NULL, SERVER_IMAGE, XV_WIDTH, gray2_width, XV_HEIGHT, gray2_height, SERVER_IMAGE_BITS, gray2_bits, NULL); gray3 = (Server_image)xv_create(NULL, SERVER_IMAGE, XV_WIDTH, gray3_width, XV_HEIGHT, gray3_height, SERVER_IMAGE_BITS, gray3_bits, NULL); gray4 = (Server_image)xv_create(NULL, SERVER_IMAGE, XV_WIDTH, gray4_width, XV_HEIGHT, gray4_height, SERVER_IMAGE_BITS, gray4_bits, NULL); gray5 = (Server_image)xv_create(NULL, SERVER_IMAGE, XV_WIDTH, gray5_width, XV_HEIGHT, gray5_height, SERVER_IMAGE_BITS, gray5_bits, NULL); gray6 = (Server_image)xv_create(NULL, SERVER_IMAGE, XV_WIDTH, gray6_width, XV_HEIGHT, gray6_height, SERVER_IMAGE_BITS, gray6_bits, NULL); frame = (Frame)xv_create(NULL, FRAME, FRAME_LABEL, argv[0], NULL); panel = (Panel)xv_create(frame, PANEL, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "quit", PANEL_NOTIFY_PROC, exit, NULL); (void) xv_create(panel, PANEL_LIST, PANEL_LIST_ROW_HEIGHT, 16, PANEL_LIST_DISPLAY_ROWS, 3, PANEL_LIST_GLYPHS, gray1, gray2, gray3, gray4, gray5, gray6, NULL, PANEL_LIST_STRINGS, "Pattern1", "Pattern2", "Pattern3", "Pattern4", "Pattern5", "Pattern6", NULL, PANEL_LIST_CLIENT_DATAS, 1, 2, 3, NULL, PANEL_NOTIFY_PROC, which_glyph, NULL); window_fit(panel); window_fit(frame); xv_main_loop(frame); } void which_glyph(item, string, client_data, op, event) Panel_item item; /* panel list item */ char *string; caddr_t client_data; Panel_list_op op; Event *event; { printf("item = %s (#%d), op = %d\n", string, client_data, op); } xview-3.2p1.4/contrib/examples/panels/list_glyphs.c100644 1750 1750 5352 5413747623 17707 0ustar mbmb/* * list.c -- show a scrolling list with three items in it. * Each item is an icon (a pattern) and a string. */ #include #include #include #define gray1_width 16 #define gray1_height 16 static u_char gray1_bits[] = { 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa }; #define gray2_width 16 #define gray2_height 16 static u_char gray2_bits[] = { 0x11, 0x11, 0x00, 0x00, 0x44, 0x44, 0x00, 0x00, 0x11, 0x11, 0x00, 0x00, 0x44, 0x44, 0x00, 0x00, 0x11, 0x11, 0x00, 0x00, 0x44, 0x44, 0x00, 0x00, 0x11, 0x11, 0x00, 0x00, 0x44, 0x44, 0x00, 0x00 }; #define gray3_width 16 #define gray3_height 16 static u_char gray3_bits[] = { 0x22, 0x22, 0xee, 0xee, 0x33, 0x33, 0xee, 0xee, 0x22, 0x22, 0xee, 0xee, 0x33, 0x33, 0xee, 0xee, 0x22, 0x22, 0xee, 0xee, 0x33, 0x33, 0xee, 0xee, 0x22, 0x22, 0xee, 0xee, 0x33, 0x33, 0xee, 0xee }; main(argc, argv) int argc; char *argv[]; { Frame frame; Panel panel; Server_image gray1, gray2, gray3; extern void exit(), which_glyph(); xv_init(XV_INIT_ARGS, argc, argv, NULL); gray1 = (Server_image)xv_create(NULL, SERVER_IMAGE, XV_WIDTH, gray1_width, XV_HEIGHT, gray1_height, SERVER_IMAGE_BITS, gray1_bits, NULL); gray2 = (Server_image)xv_create(NULL, SERVER_IMAGE, XV_WIDTH, gray2_width, XV_HEIGHT, gray2_height, SERVER_IMAGE_BITS, gray2_bits, NULL); gray3 = (Server_image)xv_create(NULL, SERVER_IMAGE, XV_WIDTH, gray3_width, XV_HEIGHT, gray3_height, SERVER_IMAGE_BITS, gray3_bits, NULL); frame = (Frame)xv_create(NULL, FRAME, NULL); panel = (Panel)xv_create(frame, PANEL, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "quit", PANEL_NOTIFY_PROC, exit, NULL); (void) xv_create(panel, PANEL_LIST, PANEL_LIST_ROW_HEIGHT, 16, PANEL_LIST_GLYPHS, gray1, gray2, gray3, NULL, PANEL_LIST_STRINGS, "Pattern1", "Pattern2", "Pattern3", NULL, PANEL_LIST_CLIENT_DATAS, 1, 2, 3, NULL, PANEL_NOTIFY_PROC, which_glyph, NULL); window_fit(panel); window_fit(frame); xv_main_loop(frame); } void which_glyph(item, string, client_data, op, event) Panel_item item; /* panel list item */ char *string; caddr_t client_data; Panel_list_op op; Event *event; { printf("item = %s (#%d), op = %d\n", string, client_data, op); } xview-3.2p1.4/contrib/examples/panels/normal.icon100644 1750 1750 4216 5413747623 17342 0ustar mbmb/* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x001F, 0xF000, 0x0000, 0x0000, 0x01E0, 0x0F00, 0x0000, 0x0000, 0x0600, 0x00C0, 0x0000, 0x0000, 0x1800, 0x0030, 0x0000, 0x0000, 0x2000, 0x0008, 0x0000, 0x0000, 0x4000, 0x0004, 0x0000, 0x0001, 0x8000, 0x0003, 0x0000, 0x0002, 0x0000, 0x0000, 0x8000, 0x0002, 0x0000, 0x0000, 0x8000, 0x0006, 0x0000, 0x0000, 0x4000, 0x0008, 0x0000, 0x0000, 0x2000, 0x0010, 0x0000, 0x0000, 0x1000, 0x0010, 0x0000, 0x0000, 0x1000, 0x0020, 0x7000, 0x0038, 0x0800, 0x0020, 0xF800, 0x007C, 0x0800, 0x0040, 0xF800, 0x007C, 0x0400, 0x0040, 0x7000, 0x0038, 0x0400, 0x0040, 0x0000, 0x0000, 0x0400, 0x0040, 0x0000, 0x0000, 0x0400, 0x0080, 0x0001, 0x8000, 0x0200, 0x0080, 0x0003, 0xC000, 0x0200, 0x0080, 0x0003, 0xE000, 0x0200, 0x0080, 0x0007, 0xE000, 0x0200, 0x0080, 0x000F, 0xF000, 0x0200, 0x0080, 0x0000, 0x0000, 0x0200, 0x0080, 0x0000, 0x0000, 0x0200, 0x0080, 0x0000, 0x0000, 0x0200, 0x0080, 0x0000, 0x0000, 0x0200, 0x0040, 0x0000, 0x0000, 0x0400, 0x0040, 0x8000, 0x0001, 0x0400, 0x0040, 0x4000, 0x0002, 0x0400, 0x0040, 0x4000, 0x0002, 0x0400, 0x0020, 0x2000, 0x0004, 0x0800, 0x0020, 0x2000, 0x0004, 0x0800, 0x0010, 0x1000, 0x0008, 0x1000, 0x0010, 0x0FFF, 0xFFF0, 0x1000, 0x0008, 0x0000, 0x0000, 0x2000, 0x0004, 0x0000, 0x0000, 0x4000, 0x0002, 0x0000, 0x0000, 0x8000, 0x0002, 0x0000, 0x0000, 0x8000, 0x0001, 0x8000, 0x0003, 0x0000, 0x0000, 0x4000, 0x0004, 0x0000, 0x0000, 0x2000, 0x0008, 0x0000, 0x0000, 0x1800, 0x0030, 0x0000, 0x0000, 0x0600, 0x00C0, 0x0000, 0x0000, 0x01E0, 0x0F00, 0x0000, 0x0000, 0x001F, 0xF000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, xview-3.2p1.4/contrib/examples/panels/normal2.icon100644 1750 1750 4216 5413747623 17424 0ustar mbmb/* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7180, 0x0000, 0x0000, 0x00C0, 0x7180, 0x0000, 0x0000, 0x00C0, 0x7980, 0x0000, 0x0000, 0x00C0, 0x7981, 0xC0F0, 0xFB83, 0xF0C0, 0x6D87, 0x70C0, 0xCCC6, 0x30C0, 0x6786, 0x30C0, 0xCCC6, 0x30C0, 0x6786, 0x30C0, 0xCCC6, 0x30C0, 0x6387, 0x70C0, 0xCCC6, 0x30C0, 0x6381, 0xC0C0, 0xCCC3, 0xF0C0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, xview-3.2p1.4/contrib/examples/panels/panel_dnd.c100644 1750 1750 13504 5413747623 17310 0ustar mbmb/* * panel_dnd.c - provides text fields, a textsw, and * several drop targets to demonstate ways to receive * and illustrate drag and drop operations. */ #include #include #include #include #include #include static unsigned short normal_bitmap[] = { #include "normal.icon" }; static unsigned short busy_bitmap[] = { #include "busy.icon" }; static unsigned short normal2_bitmap[] = { #include "normal2.icon" }; static unsigned short busy2_bitmap[] = { #include "busy2.icon" }; static char * dnd_codes[7] = { "OK", "Error", "Illegal Target", "Timeout", "Unable to obtain selection", "Dropped on root window", "*** Unknown return code" }; Frame frame; Panel panel; Panel_item drop_target[3]; Drag_drop dnd; /*ARGSUSED*/ static void hide_drop_targets(item, event) Panel_item item; Event *event; { int i; int show; show = !xv_get(drop_target[0], XV_SHOW); for (i=0; i<=2; i++) xv_set(drop_target[i], XV_SHOW, show, 0); xv_set(item, PANEL_LABEL_STRING, show ? "Hide drop targets" : "Show drop targets", 0); } /*ARGSUSED*/ static void inactivate_drop_targets(item, event) Panel_item item; Event *event; { int i; int inactive; inactive = !xv_get(drop_target[0], PANEL_INACTIVE); for (i=0; i<=2; i++) xv_set(drop_target[i], PANEL_INACTIVE, inactive, 0); xv_set(item, PANEL_LABEL_STRING, inactive ? "Activate drop targets" : "Inactivate drop targets", 0); } static void get_primary_selection(sel_req) Selection_requestor sel_req; { long length; int format; char *sel_string; char *string; xv_set(sel_req, SEL_TYPE, XA_STRING, 0); string = (char *) xv_get(sel_req, SEL_DATA, &length, &format); if (length != SEL_ERROR) { /* Create a NULL-terminated version of 'string' */ sel_string = (char *) xv_calloc(1, length+1); strncpy(sel_string, string, length); /* Print out primary selection string */ printf("Primary selection= \"%s\"\n", sel_string); } else printf("*** Unable to get primary selection.\n"); } static int drop_target_notify_proc(item, value, event) Panel_item item; unsigned int value; Event *event; { Selection_requestor sel_req; printf("(drop_target_notify_proc) %s action= ", xv_get(item, PANEL_LABEL_STRING)); sel_req = xv_get(item, PANEL_DROP_SEL_REQ); switch (event_action(event)) { case ACTION_DRAG_COPY: printf("ACTION_DRAG_COPY,\n"); get_primary_selection(sel_req); break; case ACTION_DRAG_MOVE: printf("ACTION_DRAG_MOVE\n"); get_primary_selection(sel_req); break; case LOC_DRAG: printf("LOC_DRAG, result= %s\n", dnd_codes[MIN(value, 6)]); break; default: printf("%d\n", event_action(event)); break; } return XV_OK; } main(argc, argv) int argc; char **argv; { Server_image busy_glyph[2]; Server_image normal_glyph[2]; Panel panel2; xv_init(XV_INIT_ARGS, argc, argv, 0); frame = xv_create(NULL, FRAME, FRAME_LABEL, "Drag and Drop Test", 0); panel = xv_create(frame, PANEL, PANEL_LAYOUT, PANEL_VERTICAL, 0); xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Inactivate Drop Targets", PANEL_NOTIFY_PROC, inactivate_drop_targets, 0); xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Hide Drop Targets", PANEL_NOTIFY_PROC, hide_drop_targets, 0); xv_create(panel, PANEL_TEXT, PANEL_LABEL_STRING, "Text field #1:", PANEL_VALUE, "Hello world!", PANEL_VALUE_DISPLAY_LENGTH, 20, 0); xv_create(panel, PANEL_TEXT, PANEL_LABEL_STRING, "Text field #2:", PANEL_VALUE_DISPLAY_LENGTH, 20, 0); dnd = xv_create(panel, DRAGDROP, 0); xv_create(dnd, SELECTION_ITEM, SEL_DATA, "dnd selection data", 0); normal_glyph[0] = xv_create(NULL, SERVER_IMAGE, XV_HEIGHT, 64, XV_WIDTH, 64, SERVER_IMAGE_DEPTH, 1, SERVER_IMAGE_BITS, normal_bitmap, 0); busy_glyph[0] = xv_create(NULL, SERVER_IMAGE, XV_HEIGHT, 64, XV_WIDTH, 64, SERVER_IMAGE_DEPTH, 1, SERVER_IMAGE_BITS, busy_bitmap, 0), normal_glyph[1] = xv_create(NULL, SERVER_IMAGE, XV_HEIGHT, 64, XV_WIDTH, 64, SERVER_IMAGE_DEPTH, 1, SERVER_IMAGE_BITS, normal2_bitmap, 0); busy_glyph[1] = xv_create(NULL, SERVER_IMAGE, XV_HEIGHT, 64, XV_WIDTH, 64, SERVER_IMAGE_DEPTH, 1, SERVER_IMAGE_BITS, busy2_bitmap, 0), drop_target[0] = xv_create(panel, PANEL_DROP_TARGET, PANEL_LABEL_STRING, "Full Drop Target:", PANEL_NOTIFY_PROC, drop_target_notify_proc, PANEL_DROP_DND, dnd, PANEL_DROP_FULL, TRUE, PANEL_DROP_GLYPH, normal_glyph[0], PANEL_DROP_BUSY_GLYPH, busy_glyph[0], 0); xv_create(panel, PANEL_DROP_TARGET, PANEL_LABEL_STRING, "Full Drop Target #2:", PANEL_NOTIFY_PROC, drop_target_notify_proc, PANEL_DROP_DND, dnd, PANEL_DROP_FULL, TRUE, PANEL_DROP_GLYPH, normal_glyph[1], PANEL_DROP_BUSY_GLYPH, busy_glyph[1], 0); drop_target[1] = xv_create(panel, PANEL_DROP_TARGET, PANEL_LABEL_STRING, "Default Empty Drop Target:", PANEL_NOTIFY_PROC, drop_target_notify_proc, PANEL_DROP_SITE_DEFAULT, TRUE, 0); if (xv_get(drop_target[1], PANEL_DROP_SITE_DEFAULT) != TRUE) { printf("PANEL_DROP_SITE_DEFAULT failed\n"); exit(1); } drop_target[2] = xv_create(panel, PANEL_DROP_TARGET, PANEL_LABEL_STRING, "Default Full Drop Target:", PANEL_NOTIFY_PROC, drop_target_notify_proc, PANEL_DROP_DND, dnd, PANEL_DROP_FULL, TRUE, 0); window_fit(panel); xv_create(frame, TEXTSW, WIN_ROWS, 4, WIN_COLUMNS, 10, 0); panel2 = xv_create(frame, PANEL, PANEL_LAYOUT, PANEL_VERTICAL, 0); xv_create(panel2, PANEL_MESSAGE, PANEL_LABEL_STRING, "New panel", 0); xv_create(panel2, PANEL_TEXT, PANEL_LABEL_STRING, "Text field:", PANEL_VALUE_DISPLAY_LENGTH, 20, 0); window_fit(panel2); window_fit(frame); xv_main_loop(frame); exit(0); } xview-3.2p1.4/contrib/examples/panels/panel_repaint.c100644 1750 1750 5124 5413747623 20164 0ustar mbmb/* * panel_repaint.c -- repaint a panel background without disturbing * the repainting of panel items. */ #include #include #include #include #include #include #define PANEL_GC_KEY 101 /* any arbitrary number */ main(argc, argv) int argc; char *argv[]; { Display *display; Frame frame; Panel panel; int quit(); void panel_repaint(); XGCValues gcvalues; Server_image grey; Mask gcmask = 0L; GC gc; xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create(XV_NULL, FRAME, NULL); panel = (Panel)xv_create(frame, PANEL, PANEL_REPAINT_PROC, panel_repaint, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Quit", PANEL_NOTIFY_PROC, quit, PANEL_CLIENT_DATA, frame, NULL); window_fit(frame); grey = (Server_image)xv_create(NULL, SERVER_IMAGE, XV_WIDTH, gray1_width, XV_HEIGHT, gray1_height, SERVER_IMAGE_DEPTH, 1, /* clarify for completeness*/ SERVER_IMAGE_X_BITS, gray1_bits, NULL); display = (Display *)xv_get(panel, XV_DISPLAY); gcvalues.stipple = (Pixmap) xv_get(grey, XV_XID); gcvalues.fill_style = FillOpaqueStippled; gcvalues.plane_mask = AllPlanes; gcvalues.graphics_exposures = False; gcvalues.foreground = BlackPixel(display, DefaultScreen(display)); gcvalues.background = WhitePixel(display, DefaultScreen(display)); gcmask = GCStipple | GCFillStyle | GCPlaneMask | GCGraphicsExposures | GCForeground | GCBackground; gc = XCreateGC(display, xv_get(panel, XV_XID), gcmask, &gcvalues); /* attach the GC to the panel for use by the repaint proc above */ xv_set(panel, XV_KEY_DATA, PANEL_GC_KEY, gc, NULL); xv_main_loop(frame); exit(0); } /* * repaint procedure for the panel paints a gray pattern over the * entire panel. Use the GC attached to the panel via XV_KEY_DATA. */ void panel_repaint(panel, pw) Panel panel; Xv_Window pw; { /* get the GC attached to the panel in main() */ GC gc = (GC)xv_get(panel, XV_KEY_DATA, PANEL_GC_KEY); /* call XFillRectangle on the entire size of the panel window */ XFillRectangle((Display *)xv_get(panel, XV_DISPLAY), xv_get(pw, XV_XID), gc, 0, 0, xv_get(pw, XV_WIDTH), xv_get(pw, XV_HEIGHT)); } quit(item) Panel_item item; { Frame frame = (Frame)xv_get(item, PANEL_CLIENT_DATA); xv_destroy_safe(frame); } xview-3.2p1.4/contrib/examples/panels/quit.c100644 1750 1750 1437 5413747623 16330 0ustar mbmb/* * quit.c -- simple program to display a panel button that says "Quit". * Selecting the panel button exits the program. */ #include #include #include Frame frame; main (argc, argv) int argc; char *argv[]; { Panel panel; void quit(); xv_init (XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create (NULL, FRAME, FRAME_LABEL, argv[0], XV_WIDTH, 200, XV_HEIGHT, 100, NULL); panel = (Panel)xv_create (frame, PANEL, NULL); (void) xv_create (panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Quit", PANEL_NOTIFY_PROC, quit, NULL); xv_main_loop (frame); exit(0); } void quit() { xv_destroy_safe(frame); } xview-3.2p1.4/contrib/examples/panels/repaint.c100644 1750 1750 2010 5413747623 16774 0ustar mbmb#include #include #include static unsigned short grey_bits[] = { #include }; mpr_static(grey, 64, 64, 1, grey_bits); void panel_repaint(panel, pw) Panel panel; Xv_Window pw; { xv_replrop(pw, 0, 0, xv_get(pw, XV_WIDTH), xv_get(pw, XV_HEIGHT), PIX_SET, &grey, 0, 0); } main(argc, argv) int argc; char *argv[]; { Frame frame; Panel panel; int quit(); xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = xv_create(XV_NULL, FRAME, NULL); panel = xv_create(frame, PANEL, OPENWIN_SHOW_BORDERS, TRUE, PANEL_REPAINT_PROC, panel_repaint, NULL); xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Quit", PANEL_NOTIFY_PROC, quit, PANEL_CLIENT_DATA, frame, NULL); /* window_fit(panel); */ window_fit(frame); xv_main_loop(frame); exit(0); } quit(item) Panel_item item; { Frame frame = xv_get(item, PANEL_CLIENT_DATA); xv_destroy_safe(frame); } xview-3.2p1.4/contrib/examples/panels/simple_panel.c100644 1750 1750 1355 5413747624 20016 0ustar mbmb/* * simple_panel.c -- program to display a panel button that says "Quit". * Selecting the panel button exits the program. */ #include #include #include main (argc, argv) int argc; char *argv[]; { Frame frame; Panel panel; void quit(); xv_init (XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create(NULL, FRAME, FRAME_LABEL, argv[0], XV_WIDTH, 200, XV_HEIGHT, 100, NULL); panel = (Panel)xv_create(frame, PANEL, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Quit", PANEL_NOTIFY_PROC, quit, NULL); xv_main_loop(frame); } void quit() { exit(0); } xview-3.2p1.4/contrib/examples/panels/slider.c100644 1750 1750 1574 5413747624 16633 0ustar mbmb#include #include main(argc, argv) char *argv[]; { Frame frame; Panel panel; extern void exit(); int do_gauge; (void) xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create(NULL, FRAME, NULL); panel = (Panel)xv_create(frame, PANEL, NULL); xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Quit", PANEL_NOTIFY_PROC, exit, NULL); do_gauge = argc > 1 && !strcmp(argv[1], "-gauge"); xv_create(panel, do_gauge? PANEL_GAUGE : PANEL_SLIDER, PANEL_LABEL_STRING, "Brightness: ", PANEL_VALUE, 75, PANEL_MIN_VALUE, 0, PANEL_MAX_VALUE, 100, PANEL_LAYOUT, PANEL_VERTICAL, PANEL_TICKS, 5, NULL); window_fit(panel); window_fit(frame); xv_main_loop(frame); } xview-3.2p1.4/contrib/examples/panels/stop_frame.c100644 1750 1750 2560 5413747624 17504 0ustar mbmb/* * stop.c -- Use a server image as a panel message item. */ #include #include #include static unsigned short stop_bits[] = { 0x3E00, 0x7F00, 0xFF80, 0xFF80, 0xFF80, 0xFF80, 0xFF80, 0x7F00, 0x3E00, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x7F00, 0x0000 }; main(argc, argv) char *argv[]; { Frame frame; Panel panel; Server_image stopsign; xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create(NULL, FRAME, FRAME_SHOW_HEADER, FALSE, NULL); panel = (Panel)xv_create(frame, PANEL, NULL); stopsign = (Server_image)xv_create(NULL, SERVER_IMAGE, XV_WIDTH, 16, XV_HEIGHT, 16, SERVER_IMAGE_DEPTH, 1, SERVER_IMAGE_BITS, stop_bits, NULL); (void) xv_create(panel, PANEL_MESSAGE, PANEL_LABEL_IMAGE, stopsign, NULL); (void) xv_create(panel, PANEL_MESSAGE, PANEL_LABEL_STRING, "This action will cause unsaved edits to be lost.", NULL); (void)xv_create(panel, PANEL_BUTTON, PANEL_NEXT_ROW, -1, XV_X, 110, PANEL_LABEL_STRING, "Ok", NULL); (void)xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Cancel", NULL); window_fit(panel); window_fit(frame); xv_main_loop(frame); } xview-3.2p1.4/contrib/examples/scrollbar/ 40755 1750 1750 0 6354605713 15577 5ustar mbmbxview-3.2p1.4/contrib/examples/scrollbar/Imakefile100644 1750 1750 1531 5413747625 17511 0ustar mbmb#include /**/########################################################################## /**/# @(#)Imakefile 1.7 90/08/02 SMI /**/# Imakefile for examples/scrollbar #define InstallSrcs YES LOCATION = examples/scrollbar DEFINES = -DSTANDALONE $(XVCLIENTSYSDEFINES) SYS_LIBRARIES = INCLUDES = -I. -I$(HEADER_DEST) -I$(TOP) DEPLIBS = XViewClientDepLibs LOCAL_LIBRARIES = XViewClientLibs MAKEFILE_SIMPLE = Makefile.customer SRCS = scroll_cells.c scroll_cells2.c scrollto.c INSTALL_SRCS = $(SRCS) ALLFILES = $(MAKEFILE_SIMPLE) $(SRCS) PROGRAMS= scroll_cells scroll_cells2 scrollto AllTarget($(PROGRAMS)) SingleProgramTarget(scroll_cells,scroll_cells.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(scroll_cells2,scroll_cells2.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(scrollto,scrollto.o,$(LOCAL_LIBRARIES), /**/) #include xview-3.2p1.4/contrib/examples/scrollbar/Makefile.customer100644 1750 1750 1407 5413747625 21202 0ustar mbmb# # @(#)Makefile.customer 1.6 90/06/21 # # Makefile for the scrollbar example programs for XView programmers # OSTYPE = SUNOS5 INCLUDE = -I${OPENWINHOME}/include # # If you want to compile for debugging, change "-O" to "-g" # CFLAGS_SUNOS41 = ${INCLUDE} -O CFLAGS_SUNOS5 = ${INCLUDE} -DSVR4 -O CFLAGS = $(CFLAGS_$(OSTYPE)) # if you want special to pass special loader options to ld, set # LDFLAGS= ... # XVIEW_LIBS = -L${OPENWINHOME}/lib \ -lxview -lolgx -lX11 CFILES = scroll_cells.c \ scroll_cells2.c \ scrollto.c OBJS = scroll_cells \ scroll_cells2 \ scrollto all: ${OBJS} ${OBJS}: $$@.c $$@.o ${CC} ${CFLAGS} ${LDFLAGS} -o $@ $@.o ${XVIEW_LIBS} clean: rm -f core ${OBJS} *.o xview-3.2p1.4/contrib/examples/scrollbar/scroll_cells.c100644 1750 1750 21125 6331115756 20537 0ustar mbmb/* * scroll_cells.c -- scroll a bitmap of cells around in a canvas. * The cells are rectangular areas labeled with numbers which may * represent arbitrary data such as icon images. The cell sizes are * defined to be 64 by 64 aligned in rows and columns. This example * is used to demonstrate how to configure scrollbars to accommodate * arbitrary data within a window. */ #include #include #include /* Using Xlib graphics */ #include #include #include #include #include #define CELL_WIDTH 64 #define CELL_HEIGHT 64 #define CELLS_PER_HOR_PAGE 5 /* when paging w/scrollbar */ #define CELLS_PER_VER_PAGE 5 /* when paging w/scrollbar */ #define CELLS_PER_ROW 8 #define CELLS_PER_COL 16 Pixmap cell_map; /* pixmap copied onto canvas window */ Scrollbar horiz_scrollbar; Scrollbar vert_scrollbar; GC gc; /* General usage GC */ main(argc, argv) int argc; char *argv[]; { Frame frame; Canvas canvas; void repaint_proc(); /* Initialize, create frame and canvas... */ xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create(XV_NULL, FRAME, FRAME_LABEL, argv[0], FRAME_SHOW_FOOTER, TRUE, NULL); canvas = (Canvas)xv_create(frame, CANVAS, /* make subwindow the size of a "page" */ XV_WIDTH, CELL_WIDTH * CELLS_PER_HOR_PAGE, XV_HEIGHT, CELL_HEIGHT * CELLS_PER_VER_PAGE, /* canvas is much larger than the window */ CANVAS_WIDTH, CELL_WIDTH * CELLS_PER_ROW + 1, CANVAS_HEIGHT, CELL_HEIGHT * CELLS_PER_COL + 1, CANVAS_AUTO_EXPAND, FALSE, CANVAS_AUTO_SHRINK, FALSE, /* don't retain window -- we'll need * to repaint it all the time */ CANVAS_RETAINED, FALSE, /* we're using Xlib graphics calls in repaint_proc() */ CANVAS_X_PAINT_WINDOW, TRUE, CANVAS_REPAINT_PROC, repaint_proc, /* we'll be repainting over exposed areas, * so don't bother clearing */ OPENWIN_AUTO_CLEAR, FALSE, NULL); /* * Create scrollbars attached to the canvas. When user clicks * on cable, page by the page size (PAGE_LENGTH). Scrolling * should move cell by cell, not by one pixel (PIXELS_PER_UNIT). */ vert_scrollbar = xv_create(canvas, SCROLLBAR, SCROLLBAR_DIRECTION, SCROLLBAR_VERTICAL, SCROLLBAR_PIXELS_PER_UNIT, CELL_HEIGHT, SCROLLBAR_OBJECT_LENGTH, CELLS_PER_COL, SCROLLBAR_PAGE_LENGTH, CELLS_PER_VER_PAGE, SCROLLBAR_VIEW_LENGTH, CELLS_PER_VER_PAGE, NULL); horiz_scrollbar = xv_create(canvas, SCROLLBAR, SCROLLBAR_DIRECTION, SCROLLBAR_HORIZONTAL, SCROLLBAR_PIXELS_PER_UNIT, CELL_WIDTH, SCROLLBAR_OBJECT_LENGTH, CELLS_PER_ROW, SCROLLBAR_PAGE_LENGTH, CELLS_PER_HOR_PAGE, SCROLLBAR_VIEW_LENGTH, CELLS_PER_HOR_PAGE, NULL); /* * create pixmap and draw cells into it ... this is the abstraction. * The cell_map is copied into the window via XCopyPlane in the * repaint procedure. */ { short x, y, pt = 0; Xv_Font font; XPoint points[256]; /* keep Xlib calls to a minimum */ XGCValues gcvalues; Display *dpy = (Display *)xv_get(canvas, XV_DISPLAY); font = (Xv_Font)xv_find(frame, FONT, #ifndef __linux FONT_NAME, "icon", #else FONT_NAME, "lucidasanstypewriter-24", #endif NULL); cell_map = XCreatePixmap(dpy, DefaultRootWindow(dpy), CELLS_PER_ROW * CELL_WIDTH + 1, CELLS_PER_COL * CELL_HEIGHT + 1, 1); /* We only need a 1-bit deep pixmap */ /* Create the gc for the cell_map -- since it is 1-bit deep, * use 0 and 1 for fg/bg values. Also, limit number of * events generated by setting graphics exposures to False. */ gcvalues.graphics_exposures = False; gcvalues.foreground = WhitePixel(dpy,DefaultScreen(dpy)); if (font) gcvalues.font = (Font)xv_get(font, XV_XID); gc = XCreateGC(dpy, cell_map, GCFont|GCForeground|GCBackground|GCGraphicsExposures, &gcvalues); XFillRectangle (dpy, cell_map, gc, 0, 0, CELLS_PER_ROW * CELL_WIDTH + 1, CELLS_PER_COL * CELL_HEIGHT + 1); XSetForeground (dpy, gc, 1L); XSetBackground (dpy, gc, 0L); if (!font) { /* dot every other pixel */ for (x = 0; x <= CELL_WIDTH * CELLS_PER_ROW; x += 2) for (y = 0; y <= CELL_HEIGHT * CELLS_PER_COL; y += 2) { if (x % CELL_WIDTH != 0 && y % CELL_HEIGHT != 0) continue; points[pt].x = x, points[pt].y = y; if (++pt == sizeof points / sizeof points[0]) { XDrawPoints(dpy, cell_map, gc, points, pt, CoordModeOrigin); pt = 0; } } if (pt != sizeof points) /* flush remaining points */ XDrawPoints(dpy, cell_map, gc, points, pt, CoordModeOrigin); } /* Icon font not available. Instead, label each cell * with a string describing the cell's coordinates. */ for (x = 0; x < CELLS_PER_ROW; x++) for (y = 0; y < CELLS_PER_COL; y++) { char buf[8]; if (!font) { sprintf(buf, "%d,%d", x+1, y+1); XDrawString(dpy, cell_map, gc, x * CELL_WIDTH + 5, y * CELL_HEIGHT + 25, buf, strlen(buf)); } else { buf[0] = x + y * CELLS_PER_COL; XDrawString(dpy, cell_map, gc, x * CELL_WIDTH, y * CELL_HEIGHT, buf, 1); } } /* we're now done with the cell_map, so free gc and create * a new one based on the window that will use it. Otherwise, * the GC may not work because of different depths. */ if (font) xv_destroy(font); XFreeGC(dpy, gc); gcvalues.background = WhitePixel(dpy, DefaultScreen(dpy)); gcvalues.foreground = BlackPixel(dpy, DefaultScreen(dpy)); gcvalues.plane_mask = 1L; gc = XCreateGC(dpy, DefaultRootWindow(dpy), GCForeground|GCBackground|GCGraphicsExposures, &gcvalues); } /* shrink frame to minimal size and start notifier */ window_fit(frame); xv_main_loop(frame); } /* * The repaint procedure is called whenever repainting is needed in * a paint window. Since the canvas is not retained, this routine * is going to be called anytime the user scrolls the canvas. The * canvas will handle repainting the portion of the canvas that * was in view and has scrolled onto another viewable portion of * the window. The xrects parameter will cover the new areas that * were not in view before and have just scrolled into view. If * the window resizes or if the window is exposed by other windows * disappearing or cycling through the window tree, then the number * of xrects will be more than one and we'll have to copy the new * areas one by one. Clipping isn't necessary since the areas to * be rendered are set by the xrects value. */ void repaint_proc(canvas, paint_window, dpy, win, xrects) Canvas canvas; Xv_Window paint_window; Display *dpy; Window win; Xv_xrectlist *xrects; { int x, y; x = (int)xv_get(horiz_scrollbar, SCROLLBAR_VIEW_START); y = (int)xv_get(vert_scrollbar, SCROLLBAR_VIEW_START); for (xrects->count--; xrects->count >= 0; xrects->count--) { printf("top-left cell = %d, %d -- %d,%d %d,%d\n", x+1, y+1, xrects->rect_array[xrects->count].x, xrects->rect_array[xrects->count].y, xrects->rect_array[xrects->count].width, xrects->rect_array[xrects->count].height); XCopyPlane(dpy, cell_map, win, gc, xrects->rect_array[xrects->count].x, xrects->rect_array[xrects->count].y, xrects->rect_array[xrects->count].width, xrects->rect_array[xrects->count].height, xrects->rect_array[xrects->count].x, xrects->rect_array[xrects->count].y, 1L); } } xview-3.2p1.4/contrib/examples/scrollbar/scroll_cells2.c100644 1750 1750 20030 5413747626 20622 0ustar mbmb/* * scroll_cells2.c -- scroll a bitmap of cells around in a canvas. * This is a simplified version of scroll_cells.c graphically. That * is, it does not display icons, just rows and columns of cells. * The difference with this version is that it attempts to accommodate * resize events not addressed in the scroll_cells.c. * This new function is at the end of the file. */ #include #include #include /* Using Xlib graphics */ #include #include #include #include #define CELL_WIDTH 64 #define CELL_HEIGHT 64 #define CELLS_PER_HOR_PAGE 5 /* when paging w/scrollbar */ #define CELLS_PER_VER_PAGE 5 /* when paging w/scrollbar */ #define CELLS_PER_ROW 16 #define CELLS_PER_COL 16 Pixmap cell_map; /* pixmap copied onto canvas window */ Scrollbar horiz_scrollbar; Scrollbar vert_scrollbar; GC gc; /* General usage GC */ main(argc, argv) int argc; char *argv[]; { Frame frame; Canvas canvas; void repaint_proc(), resize_proc(); /* Initialize, create frame and canvas... */ xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = xv_create(XV_NULL, FRAME, FRAME_LABEL, argv[0], FRAME_SHOW_FOOTER, TRUE, NULL); canvas = xv_create(frame, CANVAS, /* make subwindow the size of a "page" */ XV_WIDTH, CELL_WIDTH * CELLS_PER_HOR_PAGE, XV_HEIGHT, CELL_HEIGHT * CELLS_PER_VER_PAGE, /* canvas is same size as window */ CANVAS_WIDTH, CELL_WIDTH * CELLS_PER_HOR_PAGE, CANVAS_HEIGHT, CELL_HEIGHT * CELLS_PER_VER_PAGE, /* don't retain window -- we'll repaint it all the time */ CANVAS_RETAINED, FALSE, /* We're using Xlib graphics calls in repaint_proc() */ CANVAS_X_PAINT_WINDOW, TRUE, CANVAS_REPAINT_PROC, repaint_proc, CANVAS_RESIZE_PROC, resize_proc, OPENWIN_AUTO_CLEAR, FALSE, NULL); /* * Create scrollbars attached to the canvas. When user clicks * on cable, page by the page size (PAGE_LENGTH). Scrolling * should move cell by cell, not by one pixel (PIXELS_PER_UNIT). */ vert_scrollbar = xv_create(canvas, SCROLLBAR, SCROLLBAR_DIRECTION, SCROLLBAR_VERTICAL, SCROLLBAR_PIXELS_PER_UNIT, CELL_HEIGHT, NULL); horiz_scrollbar = xv_create(canvas, SCROLLBAR, SCROLLBAR_DIRECTION, SCROLLBAR_HORIZONTAL, SCROLLBAR_PIXELS_PER_UNIT, CELL_WIDTH, NULL); /* * create pixmap and draw cells into it. This portion of the * program could use XCopyArea to render real bitmaps whose sizes * do not exceed whatever CELL_WIDTH and CELL_HEIGHT are defined * to be. The cell_map will be copied into the window via * XCopyPlane in the repaint procedure. */ { short x, y, pt = 0; XPoint points[256]; XGCValues gcvalues; Display *dpy = (Display *)xv_get(canvas, XV_DISPLAY); cell_map = XCreatePixmap(dpy, DefaultRootWindow(dpy), CELLS_PER_ROW * CELL_WIDTH + 1, CELLS_PER_COL * CELL_HEIGHT + 1, 1); /* We only need a 1-bit deep pixmap */ /* Create the gc for the cell_map -- since it is 1-bit deep, * use 0 and 1 for fg/bg values. Also, limit number of * events generated by setting geraphics exposures to False. */ gcvalues.graphics_exposures = False; gcvalues.foreground = WhitePixel (dpy, DefaultScreen (dpy) ); gc = XCreateGC (dpy, cell_map, GCForeground | GCGraphicsExposures, &gcvalues); XFillRectangle (dpy, cell_map, gc, 0, 0, CELLS_PER_ROW * CELL_WIDTH + 1, CELLS_PER_COL * CELL_HEIGHT + 1); XSetForeground (dpy, gc, 1L); XSetBackground (dpy, gc, 0L); /* dot every other pixel */ for (x = 0; x <= CELL_WIDTH * CELLS_PER_ROW; x += 2) for (y = 0; y <= CELL_HEIGHT * CELLS_PER_COL; y += 2) { if (x % CELL_WIDTH != 0 && y % CELL_HEIGHT != 0) continue; points[pt].x = x, points[pt].y = y; if (++pt == sizeof points / sizeof points[0]) { XDrawPoints(dpy, cell_map, gc, points, pt, CoordModeOrigin); pt = 0; } } if (pt != sizeof points) /* flush out the remaining points */ XDrawPoints(dpy, cell_map, gc, points, pt, CoordModeOrigin); /* label each cell indicating the its coordinates */ for (x = 0; x < CELLS_PER_ROW; x++) for (y = 0; y < CELLS_PER_COL; y++) { char buf[8]; sprintf(buf, "%d,%d", x+1, y+1); XDrawString(dpy, cell_map, gc, x * CELL_WIDTH + 5, y * CELL_HEIGHT + 25, buf, strlen(buf)); } /* we're now done with the cell_map, so free gc and * create a new one based on the window that will use it. */ XFreeGC(dpy, gc); gcvalues.background = WhitePixel(dpy, DefaultScreen(dpy)); gcvalues.foreground = BlackPixel(dpy, DefaultScreen(dpy)); gcvalues.plane_mask = 1L; gc = XCreateGC(dpy, DefaultRootWindow(dpy), GCForeground|GCBackground|GCGraphicsExposures, &gcvalues); } /* shrink frame to minimal size and start notifier */ window_fit(frame); xv_main_loop(frame); } /* * The repaint procedure is called whenever repainting is needed in * a paint window. Since the canvas is not retained, this routine * is going to be called anytime the user scrolls the canvas. The * canvas will handle repainting the portion of the canvas that * was in view and has scrolled onto another viewable portion of * the window. The xrects parameter will cover the new areas that * were not in view before and have just scrolled into view. If * the window resizes or if the window is exposed by other windows * disappearing or cycling thru the window tree, then the number * of xrects will be more than one and we'll have to copy the new * areas one by one. Clipping isn't necessary since the areas to * be rendered are set by the xrects value. */ void repaint_proc(canvas, paint_window, dpy, win, xrects) Canvas canvas; Xv_Window paint_window; Display *dpy; Window win; Xv_xrectlist *xrects; { int x, y; x = (int)xv_get(horiz_scrollbar, SCROLLBAR_VIEW_START); y = (int)xv_get(vert_scrollbar, SCROLLBAR_VIEW_START); for (xrects->count--; xrects->count >= 0; xrects->count--) { printf("top-left cell = %d, %d -- %d,%d %d,%d\n", x+1, y+1, xrects->rect_array[xrects->count].x, xrects->rect_array[xrects->count].y, xrects->rect_array[xrects->count].width, xrects->rect_array[xrects->count].height); XCopyPlane(dpy, cell_map, win, gc, x * CELL_WIDTH, y * CELL_HEIGHT, xv_get(paint_window, XV_WIDTH), xv_get(paint_window, XV_HEIGHT), 0, 0, 1L); } } /* * If the application is resized, then we may wish to reset the * paging and viewing parameters for the scrollbars. */ void resize_proc(canvas, new_width, new_height) Canvas canvas; int new_width, new_height; { int page_w = (int)(new_width/CELL_WIDTH); int page_h = (int)(new_height/CELL_HEIGHT); if (!vert_scrollbar || !horiz_scrollbar) return; printf("new width/height in cells: w = %d, h = %d\n", page_w, page_h); xv_set(horiz_scrollbar, SCROLLBAR_OBJECT_LENGTH, CELLS_PER_ROW, SCROLLBAR_PAGE_LENGTH, page_w, SCROLLBAR_VIEW_LENGTH, page_w, NULL); xv_set(vert_scrollbar, SCROLLBAR_OBJECT_LENGTH, CELLS_PER_COL, SCROLLBAR_PAGE_LENGTH, page_h, SCROLLBAR_VIEW_LENGTH, page_h, NULL); } xview-3.2p1.4/contrib/examples/scrollbar/scrollto.c100644 1750 1750 4601 5413747626 17707 0ustar mbmb/* scroll_to.c -- demonstrate how to monitor the scrolling * requests invoked by the user. Requests can be monitored, * ignored or changed programmatically. This program creates * a canvas window by default or a textsw with the -textsw * command line option. Both contain a scrollbar. */ #include #include #include #include #include main(argc, argv) int argc; char *argv[]; { Frame frame; Textsw textsw; Canvas canvas; Scrollbar sbar; Notify_value monitor_scroll(); (void) xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = xv_create(NULL, FRAME, NULL); if (argc > 1 && !strcmp(argv[1], "-textsw")) { textsw = xv_create(frame, TEXTSW, TEXTSW_FILE_CONTENTS, "/etc/termcap", NULL); sbar = xv_get(textsw, TEXTSW_SCROLLBAR); } else { canvas = xv_create(frame, CANVAS, CANVAS_WIDTH, 1000, CANVAS_HEIGHT, 1000, CANVAS_AUTO_SHRINK, FALSE, CANVAS_AUTO_EXPAND, FALSE, NULL); sbar = xv_create(canvas, SCROLLBAR, SCROLLBAR_DIRECTION, SCROLLBAR_VERTICAL, SCROLLBAR_PIXELS_PER_UNIT, 10, NULL); } notify_interpose_event_func(xv_get(sbar, SCROLLBAR_NOTIFY_CLIENT), monitor_scroll, NOTIFY_SAFE); xv_main_loop(frame); } /* * To change the behavior of the scrolling of the canvas, do not pass * on the event via notify_next_event_func() when the event type is * SCROLLBAR_REQUEST. */ Notify_value monitor_scroll(client, event, sbar, type) Notify_client client; Event *event; Scrollbar sbar; Notify_event_type type; { int view_start, last_view_start, pixels_per, is_neg = 0, total; if (event_id(event) == SCROLLBAR_REQUEST) { view_start = (int)xv_get(sbar, SCROLLBAR_VIEW_START); last_view_start = (int)xv_get(sbar, SCROLLBAR_LAST_VIEW_START); pixels_per = (int)xv_get(sbar, SCROLLBAR_PIXELS_PER_UNIT); if ((total = view_start - last_view_start) < 0) total = -total, is_neg = 1; printf("scrolled from %d to %d: %d pixels (%d units) %s\n", last_view_start, view_start, pixels_per * total, total, is_neg? "up" : "down"); } return notify_next_event_func(client, event, sbar, type); } xview-3.2p1.4/contrib/examples/seln_svc/ 40755 1750 1750 0 6354605713 15430 5ustar mbmbxview-3.2p1.4/contrib/examples/seln_svc/Imakefile100644 1750 1750 1747 5413747627 17355 0ustar mbmb#include /**/########################################################################## /**/# @(#)Imakefile 1.7 90/08/02 SMI /**/# Imakefile for examples/seln_svc #define InstallSrcs YES LOCATION = examples/seln_svc DEFINES = -DSTANDALONE $(XVCLIENTSYSDEFINES) SYS_LIBRARIES = INCLUDES = -I. -I$(HEADER_DEST) -I$(TOP) DEPLIBS = XViewClientDepLibs LOCAL_LIBRARIES = XViewClientLibs MAKEFILE_SIMPLE = Makefile.customer SRCS = long_seln.c seln.c seln_line.c simple_seln.c text_seln.c INSTALL_SRCS = $(SRCS) ALLFILES = $(MAKEFILE_SIMPLE) $(SRCS) PROGRAMS= long_seln seln seln_line simple_seln text_seln AllTarget($(PROGRAMS)) SingleProgramTarget(long_seln,long_seln.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(seln,seln.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(seln_line,seln_line.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(simple_seln,simple_seln.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(text_seln,text_seln.o,$(LOCAL_LIBRARIES), /**/) #include xview-3.2p1.4/contrib/examples/seln_svc/Makefile.customer100644 1750 1750 1456 5413747627 21041 0ustar mbmb# # @(#)Makefile.customer 1.8 92/02/24 SMI # # Makefile for the seln_svc example programs for XView programmers # OSTYPE = SUNOS5 INCLUDE = -I${OPENWINHOME}/include # # If you want to compile for debugging, change "-O" to "-g" # CFLAGS_SUNOS41 = ${INCLUDE} -O CFLAGS_SUNOS5 = ${INCLUDE} -DSVR4 -O CFLAGS = $(CFLAGS_$(OSTYPE)) # if you want special to pass special loader options to ld, set # LDFLAGS= ... # XVIEW_LIBS = -L${OPENWINHOME}/lib \ -lxview -lolgx -lX11 CFILES = long_seln.c \ seln.c \ seln_line.c \ simple_seln.c \ text_seln.c OBJS = long_seln \ seln \ seln_line \ simple_seln \ text_seln all: ${OBJS} ${OBJS}: $$@.c $$@.o ${CC} ${CFLAGS} ${LDFLAGS} -o $@ $@.o ${XVIEW_LIBS} clean: rm -f core ${OBJS} *.o xview-3.2p1.4/contrib/examples/seln_svc/long_seln.c100644 1750 1750 13236 5413747627 17704 0ustar mbmb/* * long_seln.c shows how to get an arbitrarily large selection by * providing a reading procedure to selection_query(). The panel * items allow the user to choose between 3 selection ranks. */ #include #include #include #include /* extern char *malloc(); */ Seln_rank seln_type = SELN_PRIMARY; #define FIRST_BUFFER 0 #define NOT_FIRST_BUFFER !FIRST_BUFFER char *seln_bufs[6]; /* contents for the three selections, but room must be allowed for all six types of selections.*/ Seln_result read_proc(); /* supplied to selection_query() as reader */ Textsw textsw; /* select from this textsw */ Xv_Server server; char *get_selection(); void change_selection(item, value) Panel_item item; int value; { if (value == 0) seln_type = SELN_PRIMARY; else if (value == 1) seln_type = SELN_SECONDARY; else seln_type = SELN_SHELF; } main(argc, argv) char *argv[]; { Frame frame; Panel panel; void print_seln(), exit(); xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame) xv_create(NULL, FRAME, FRAME_LABEL, argv[0], NULL); panel = (Panel)xv_create(frame, PANEL, WIN_WIDTH, WIN_EXTEND_TO_EDGE, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Quit", PANEL_NOTIFY_PROC, exit, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Get Selection", PANEL_NOTIFY_PROC, print_seln, NULL); (void) xv_create(panel, PANEL_CHOICE, PANEL_LABEL_STRING, "Selection Type", PANEL_CHOICE_STRINGS, "Primary", "Secondary", "Shelf", NULL, PANEL_NOTIFY_PROC, change_selection, NULL); window_fit(panel); textsw = (Textsw)xv_create(frame, TEXTSW, WIN_X, 0, WIN_BELOW, panel, WIN_ROWS, 10, WIN_COLUMNS, 80, TEXTSW_FILE_CONTENTS, "/etc/termcap", NULL); window_fit(frame); server = (Xv_Server)xv_get(xv_get(frame, XV_SCREEN), SCREEN_SERVER); xv_main_loop(frame); } void print_seln() { char *text = get_selection(); if (text) printf("---seln---\n%.*s [...]\n---end seln---\n", 20, text); } /* * return the text selected in the current selection rank. Use * selection_query() to guarantee that the entire selection is * retrieved. selection_query() calls our installed routine, * read_proc() (see below). */ char * get_selection() { Seln_holder holder; Seln_result result; Seln_request *response; char context = FIRST_BUFFER; holder = selection_inquire(server, seln_type); printf("selection type = %s\n", seln_type == SELN_PRIMARY? "primary" : seln_type == SELN_SECONDARY? "secondary" : "shelf"); /* result is based on the return value of read_proc() */ result = selection_query(server, &holder, read_proc, &context, SELN_REQ_BYTESIZE, NULL, SELN_REQ_CONTENTS_ASCII, NULL, NULL); if (result == SELN_FAILED) { puts("couldn't get selection"); return NULL; } return seln_bufs[seln_type]; } /* * Called by selection_query for every buffer of information received. * Short messages (under about 2000 bytes) will fit into one buffer. * For larger messages, read_proc is called for each buffer in the * selection. The context pointer passed to selection_query is * modified by read_proc so that we know if this is the first buffer * or not. */ Seln_result read_proc(response) Seln_request *response; { char *reply; /* pointer to the data in the response received */ long seln_len; /* total number of bytes in the selection */ static long seln_have_bytes; /* number of bytes of the selection * which have been read; cumulative over all calls for * the same selection (it is reset when the first * response of a selection is read) */ printf("read_proc status: %s (%d)\n", response->status == SELN_FAILED? "failed" : response->status == SELN_SUCCESS? "succeeded" : response->status == SELN_CONTINUED? "continued" : "???", response->status); if (*response->requester.context == FIRST_BUFFER) { reply = response->data; /* read in the length of the selection -- first attribute. * advance "reply" passed attribute to point to actual data. */ reply += sizeof(SELN_REQ_BYTESIZE); /* set seln_len to actual data now. (bytes selected) */ seln_len = *(int *)reply; printf("selection size is %ld bytes\n", seln_len); /* advance "reply" to next attribute in list */ reply += sizeof(long); /* create a buffer large enough to store entire selection */ if (seln_bufs[seln_type] != NULL) free(seln_bufs[seln_type]); if (!(seln_bufs[seln_type] = malloc(seln_len + 1))) { puts("out of memory"); return(SELN_FAILED); } seln_have_bytes = 0; /* move "reply" passed attribute so it points to contents */ reply += sizeof(SELN_REQ_CONTENTS_ASCII); *response->requester.context = NOT_FIRST_BUFFER; } else { /* this is not the first buffer, so the contents of the * response is just more of the selection */ reply = response->data; } /* copy data from received to the seln buffer allocated above */ (void) strcpy(&seln_bufs[seln_type][seln_have_bytes], reply); seln_have_bytes += strlen(reply); return SELN_SUCCESS; } xview-3.2p1.4/contrib/examples/seln_svc/seln.c100644 1750 1750 13043 5413747630 16653 0ustar mbmb/* * seln.c -- print the primary selection from the server. If the * selection is in a text subwindow, then print information about * the line number(s) the selection spans and the indexes of the * bytes within the textsw's text stream. This simple program * may not be sufficient for general usage -- see comments in * get_selection() comments below. */ #include #include #include #include #include #include Xv_Server server; Textsw textsw; char *get_selection(); main(argc, argv) char *argv[]; { Frame frame; Panel panel; void print_seln(), exit(); xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame) xv_create(NULL, FRAME, FRAME_LABEL, argv[0], NULL); panel = (Panel) xv_create(frame, PANEL, WIN_WIDTH, WIN_EXTEND_TO_EDGE, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Quit", PANEL_NOTIFY_PROC, exit, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Get Selection", PANEL_NOTIFY_PROC, print_seln, NULL); window_fit(panel); textsw = (Textsw)xv_create(frame, TEXTSW, WIN_X, 0, WIN_BELOW, panel, WIN_ROWS, 10, WIN_COLUMNS, 80, TEXTSW_FILE_CONTENTS, "/etc/passwd", NULL); window_fit(frame); server = (Xv_Server)xv_get(xv_get(frame, XV_SCREEN), SCREEN_SERVER); xv_main_loop(frame); } void print_seln() { char *text = get_selection(); if (text) printf("---selection---\n%s\n---end seln---\n", text); } /* * Get the selection using selection_ask(). Note that if the * selection is bigger than about 2K, the whole selection will * not be gotten with one call, thus this method of getting the * selection may not be sufficient. */ char * get_selection() { long sel_lin_num, lines_selected; Textsw_index first, last; Seln_holder holder; Seln_result result; int len; Seln_request *request; static char selection_buf[BUFSIZ]; register char *ptr; /* get the holder of the primary selection */ holder = selection_inquire(server, SELN_PRIMARY); /* If the selection occurs in the text subwindow, print lots * of info about the selection. */ if (seln_holder_same_client(&holder, (char *)textsw)) { /* ask for information from the selection service */ request = selection_ask(server, &holder, /* get the index of the first and last chars in seln */ SELN_REQ_FIRST, NULL, SELN_REQ_LAST, NULL, /* get the actual selection bytes */ SELN_REQ_CONTENTS_ASCII, NULL, /* fool the textsw to think entire lines are selected */ SELN_REQ_FAKE_LEVEL, SELN_LEVEL_LINE, /* line numbers of beginning and ending of the seln */ SELN_REQ_FIRST_UNIT, NULL, SELN_REQ_LAST_UNIT, NULL, NULL); /* set the ptr to beginning of data -- SELN_REQ_FIRST */ ptr = request->data; /* "first" is data succeeding SELN_REQ_FIRST -- skip attr */ first = *(Textsw_index *)(ptr += sizeof(SELN_REQ_FIRST)); ptr += sizeof(Textsw_index); /* skip over value of "first" */ /* "last" is data succeeding SELN_REQ_LAST -- skip attr */ last = *(Textsw_index *)(ptr += sizeof(SELN_REQ_LAST)); ptr += sizeof(Textsw_index); /* skip over value of "last" */ /* advance pointer past SELN_REQ_CONTENTS_ASCII */ ptr += sizeof(SELN_REQ_CONTENTS_ASCII); len = strlen(ptr); /* length of string in request */ (void) strcpy(selection_buf, ptr); /* * advance pointer past length of string. If the string * length isn't aligned to a 4-byte boundary, add the * difference in bytes -- then advance pointer passed "value". */ if (len % 4) len = len + (4 - (len % 4)); ptr += len + sizeof(Seln_attribute); /* skip over "value" */ /* advance past SELN_REQ_FAKE_LEVEL, SELN_LEVEL_LINE */ ptr += sizeof(SELN_REQ_FAKE_LEVEL) + sizeof(SELN_LEVEL_LINE); sel_lin_num = *(long *)(ptr += sizeof(SELN_REQ_FIRST_UNIT)); ptr += sizeof(long); lines_selected = *(long *)(ptr += sizeof(SELN_REQ_LAST_UNIT)); ptr += sizeof(long); /* hack to workaround bug with SELN_REQ_LAST_UNIT always * returning -1. We have to count the line numbers ourselves. */ if (lines_selected < 0) { register char *p; lines_selected++; for (p = selection_buf; *p; p++) if (*p == '\n') lines_selected++; } printf("index in textsw: %d-%d, line number(s) = %d-%d\n", first+1, last+1, sel_lin_num+1, sel_lin_num+lines_selected+1); } else { /* the selection is not in the text subwindow */ request = selection_ask(server, &holder, SELN_REQ_CONTENTS_ASCII, NULL, NULL); if (request->status != SELN_SUCCESS) { printf("selection_ask() returns %d\n", request->status); return ""; } (void) strcpy(selection_buf, request->data + sizeof(SELN_REQ_CONTENTS_ASCII)); } return selection_buf; } xview-3.2p1.4/contrib/examples/seln_svc/seln_line.c100644 1750 1750 5133 5413747630 17643 0ustar mbmb/* * seln_line.c -- demonstrate how to use the selection service to get * the line number of the primary selection in a textsw. */ #include #include #include #include #include Textsw textsw; main(argc, argv) char *argv[]; { Frame frame; Panel panel; void exit(); int seln_proc(); xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create(NULL, FRAME, FRAME_SHOW_FOOTER, TRUE, NULL); panel = (Panel)xv_create(frame, PANEL, WIN_WIDTH, WIN_EXTEND_TO_EDGE, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Quit", PANEL_NOTIFY_PROC, exit, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Get Selection", PANEL_NOTIFY_PROC, seln_proc, PANEL_CLIENT_DATA, frame, NULL); (void) xv_create(panel, PANEL_TEXT, PANEL_LABEL_STRING, "No-op:", PANEL_VALUE_DISPLAY_LENGTH, 30, NULL); window_fit(panel); textsw = (Textsw)xv_create(frame, TEXTSW, WIN_X, 0, WIN_BELOW, panel, WIN_ROWS, 10, WIN_COLUMNS, 80, TEXTSW_FILE_CONTENTS, "/etc/passwd", NULL); window_fit(frame); xv_main_loop(frame); } int seln_proc(item, event) Panel_item item; Event *event; /* unused */ { Frame frame = (Frame)xv_get(item, PANEL_CLIENT_DATA); Seln_holder holder; Seln_request *buffer; int line_number; char msg[32]; /* * get primary selection */ holder = seln_inquire(SELN_PRIMARY); /* * ask for the data containing line number of the first * character of the selection */ buffer = seln_ask(&holder, SELN_REQ_FAKE_LEVEL, SELN_LEVEL_LINE, SELN_REQ_FIRST_UNIT, 0, NULL); /* * determine the window that contains the selection */ if (seln_holder_same_client(&holder, (char *)textsw)) { xv_set(frame, FRAME_LEFT_FOOTER, "selection in textsw", NULL); /* * convert data into the line number */ sprintf(msg, "Selection: line %ld", *(long *)(buffer->data + 3 * sizeof(Seln_attribute))); xv_set(frame, FRAME_RIGHT_FOOTER, msg, NULL); } else xv_set(frame, FRAME_LEFT_FOOTER, "selection elsewhere", NULL); return XV_OK; } xview-3.2p1.4/contrib/examples/seln_svc/simple_seln.c100644 1750 1750 3600 5413747630 20202 0ustar mbmb/* * simple_seln.c -- print the primary selection by pressing the panel * button. The selection may have originated from any window or * application on the server. */ #include #include #include #include #include Xv_Server server; main(argc, argv) char *argv[]; { Frame frame; Panel panel; void exit(); int print_seln(); xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame) xv_create(NULL, FRAME, FRAME_LABEL, argv[0], NULL); panel = (Panel)xv_create(frame, PANEL, WIN_WIDTH, WIN_EXTEND_TO_EDGE, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Quit", PANEL_NOTIFY_PROC, exit, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Print Selection", PANEL_NOTIFY_PROC, print_seln, NULL); window_fit(panel); window_fit(frame); server = (Xv_Server)xv_get(xv_get(frame, XV_SCREEN), SCREEN_SERVER); xv_main_loop(frame); } /* * Get the selection using selection_ask(). Note that if the * selection is bigger than about 2K, the whole selection will * not be gotten with one call, thus this method of getting * the selection may not be sufficient for all situations. */ int print_seln(item, event) Panel_item item; Event *event; { Seln_holder holder; Seln_request *response; char text[BUFSIZ]; /* get the holder of the primary selection */ holder = selection_inquire(server, SELN_PRIMARY); response = selection_ask(server, &holder, SELN_REQ_CONTENTS_ASCII, NULL, NULL); strcpy(text, response->data + sizeof (SELN_REQ_CONTENTS_ASCII)); printf("---selection---\n%s\n---end seln---\n", text); return XV_OK; } xview-3.2p1.4/contrib/examples/seln_svc/text_seln.c100644 1750 1750 13015 5413747630 17716 0ustar mbmb/* * seln.c -- print the primary selection from the server. If the * selection is in a text subwindow, also print information about * the line number(s) the selection spans and the indexes of * the bytes within the textsw's buffer. */ #include #include #include #include #include #include Xv_Server server; Textsw textsw; char *get_selection(); main(argc, argv) char *argv[]; { Frame frame; Panel panel; void exit(); int print_seln(); xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create(NULL, FRAME, FRAME_LABEL, argv[0], NULL); panel = (Panel)xv_create(frame, PANEL, WIN_WIDTH, WIN_EXTEND_TO_EDGE, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Quit", PANEL_NOTIFY_PROC, exit, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Get Selection", PANEL_NOTIFY_PROC, print_seln, NULL); window_fit(panel); textsw = (Textsw)xv_create(frame, TEXTSW, WIN_X, 0, WIN_BELOW, panel, WIN_ROWS, 10, WIN_COLUMNS, 80, TEXTSW_FILE_CONTENTS, "/etc/passwd", NULL); window_fit(frame); server = (Xv_Server)xv_get(xv_get(frame, XV_SCREEN), SCREEN_SERVER); xv_main_loop(frame); } int print_seln() { char *text = get_selection(); if (text) printf("---selection---\n%s\n---end seln---\n", text); return XV_OK; } /* * Get the selection using selection_ask(). Note that if the * selection is bigger than about 2K, the whole selection will * not be gotten with one call, thus this method of getting the * selection may not be sufficient. */ char * get_selection() { long sel_lin_num, lines_selected; Textsw_index first, last; Seln_holder holder; Seln_result result; int len; Seln_request *response; static char selection_buf[BUFSIZ]; register char *ptr; /* get the holder of the primary selection */ holder = selection_inquire(server, SELN_PRIMARY); /* If the selection occurs in the text subwindow, print lots of * info about the selection. */ if (seln_holder_same_client(&holder, (char *)textsw)) { /* ask for information from the selection service */ response = selection_ask(server, &holder, /* get index of the first and last chars in the textsw */ SELN_REQ_FIRST, NULL, SELN_REQ_LAST, NULL, /* get the actual selection bytes */ SELN_REQ_CONTENTS_ASCII, NULL, /* Now fool the textsw to think entire lines are selected */ SELN_REQ_FAKE_LEVEL, SELN_LEVEL_LINE, /* Get the line numbers of beginning and ending of the * selection */ SELN_REQ_FIRST_UNIT, NULL, SELN_REQ_LAST_UNIT, NULL, NULL); /* set the ptr to beginning of data -- SELN_REQ_FIRST */ ptr = response->data; /* "first" is data succeeding SELN_REQ_FIRST -- skip attr */ first = *(Textsw_index *)(ptr += sizeof(SELN_REQ_FIRST)); ptr += sizeof(Textsw_index); /* skip over value of "first" */ /* "last" is data succeeding SELN_REQ_LAST -- skip attr */ last = *(Textsw_index *)(ptr += sizeof(SELN_REQ_LAST)); ptr += sizeof(Textsw_index); /* skip over value of "last" */ /* advance pointer past SELN_REQ_CONTENTS_ASCII */ ptr += sizeof(SELN_REQ_CONTENTS_ASCII); len = strlen(ptr); /* length of string in response */ (void) strcpy(selection_buf, ptr); /* * advance pointer past length of string. If the string length * isn't aligned to a 4-byte boundary, add the difference in * bytes -- then advance pointer passed "value". */ if (len % 4) len = len + (4 - (len % 4)); ptr += len + sizeof(Seln_attribute); /* skip over "value" */ /* advance pointer past SELN_REQ_FAKE_LEVEL, SELN_LEVEL_LINE */ ptr += sizeof(SELN_REQ_FAKE_LEVEL) + sizeof(SELN_LEVEL_LINE); sel_lin_num = *(long *)(ptr += sizeof(SELN_REQ_FIRST_UNIT)); ptr += sizeof(long); lines_selected = *(long *)(ptr += sizeof(SELN_REQ_LAST_UNIT)); ptr += sizeof(long); /* hack to workaround bug with SELN_REQ_LAST_UNIT always * returning -1. Count the lines explicitly in the selection. */ if (lines_selected < 0) { register char *p; lines_selected++; for (p = selection_buf; *p; p++) if (*p == '\n') lines_selected++; } printf("index in textsw: %d-%d, line number(s) = %d-%d\n", first+1, last+1, sel_lin_num+1, sel_lin_num + lines_selected + 1); } else { /* the selection does not lie in our text subwindow */ response = selection_ask(server, &holder, SELN_REQ_CONTENTS_ASCII, NULL, NULL); if (response->status != SELN_SUCCESS) { printf("selection_ask() returns %d\n", response->status); return NULL; } (void) strcpy(selection_buf, response->data + sizeof(SELN_REQ_CONTENTS_ASCII)); } return selection_buf; } xview-3.2p1.4/contrib/examples/sv_compat/ 40755 1750 1750 0 6354605713 15607 5ustar mbmbxview-3.2p1.4/contrib/examples/sv_compat/Imakefile100644 1750 1750 1262 5413747631 17517 0ustar mbmb#include /**/########################################################################## /**/# @(#)Imakefile 1.7 90/08/02 SMI /**/# Imakefile for examples/sv_compat #define InstallSrcs YES LOCATION = examples/sv_compat DEFINES = -DSTANDALONE $(XVCLIENTSYSDEFINES) SYS_LIBRARIES = INCLUDES = -I. -I$(HEADER_DEST) -I$(TOP) DEPLIBS = XViewClientDepLibs LOCAL_LIBRARIES = XViewClientLibs MAKEFILE_SIMPLE = Makefile.customer SRCS = pw_draw.c IMAGES = gray_stencil.pr INSTALL_SRCS = $(SRCS) $(IMAGES) ALLFILES = $(MAKEFILE_SIMPLE) $(SRCS) $(IMAGES) PROGRAMS= pw_draw AllTarget($(PROGRAMS)) SingleProgramTarget(pw_draw,pw_draw.o,$(LOCAL_LIBRARIES), /**/) #include xview-3.2p1.4/contrib/examples/sv_compat/Makefile.customer100644 1750 1750 1262 5413747631 21206 0ustar mbmb# # @(#)Makefile.customer 1.6 92/02/24 # # Makefile for the sv_compat example programs for XView programmers # OSTYPE = SUNOS5 INCLUDE = -I${OPENWINHOME}/include # # If you want to compile for debugging, change "-O" to "-g" # CFLAGS_SUNOS41 = ${INCLUDE} -O CFLAGS_SUNOS5 = ${INCLUDE} -DSVR4 -O CFLAGS = $(CFLAGS_$(OSTYPE)) # if you want special to pass special loader options to ld, set # LDFLAGS= ... # XVIEW_LIBS = -L${OPENWINHOME}/lib \ -lxview -lolgx -lX11 CFILES = pw_draw.c IMAGE = gray_stencil.pr OBJS = pw_draw all: ${OBJS} ${OBJS}: $$@.c $$@.o ${CC} ${CFLAGS} ${LDFLAGS} -o $@ $@.o ${XVIEW_LIBS} clean: rm -f core ${OBJS} *.o xview-3.2p1.4/contrib/examples/sv_compat/gray_stencil.pr100644 1750 1750 3715 5413747631 20741 0ustar mbmb/* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16 */ 0xAAAA,0xAAAA,0xAAAA,0xAAAA, 0x5555,0x5555,0x5555,0x5555, 0xAAAA,0xAAAA,0xAAAA,0xAAAA, 0x5555,0x5555,0x5555,0x5555, 0xAAAA,0xAAAA,0xAAAA,0xAAAA, 0x5555,0x5555,0x5555,0x5555, 0xAAAA,0xAAAA,0xAAAA,0xAAAA, 0x5555,0x5555,0x5555,0x5555, 0xAAAA,0xAAAA,0xAAAA,0xAAAA, 0x5555,0x5555,0x5555,0x5555, 0xAAAA,0xAAAA,0xAAAA,0xAAAA, 0x5555,0x5555,0x5555,0x5555, 0xAAAA,0xAAAA,0xAAAA,0xAAAA, 0x5555,0x5555,0x5555,0x5555, 0xAAAA,0xAAAA,0xAAAA,0xAAAA, 0x5555,0x5555,0x5555,0x5555, 0xAAAA,0xAAAA,0xAAAA,0xAAAA, 0x5555,0x5555,0x5555,0x5555, 0xAAAA,0xAAAA,0xAAAA,0xAAAA, 0x5555,0x5555,0x5555,0x5555, 0xAAAA,0xAAAA,0xAAAA,0xAAAA, 0x5555,0x5555,0x5555,0x5555, 0xAAAA,0xAAAA,0xAAAA,0xAAAA, 0x5555,0x5555,0x5555,0x5555, 0xAAAA,0xAAAA,0xAAAA,0xAAAA, 0x5555,0x5555,0x5555,0x5555, 0xAAAA,0xAAAA,0xAAAA,0xAAAA, 0x5555,0x5555,0x5555,0x5555, 0xAAAA,0xAAAA,0xAAAA,0xAAAA, 0x5555,0x5555,0x5555,0x5555, 0xAAAA,0xAAAA,0xAAAA,0xAAAA, 0x5555,0x5555,0x5555,0x5555, 0xAAAA,0xAAAA,0xAAAA,0xAAAA, 0x5555,0x5555,0x5555,0x5555, 0xAAAA,0xAAAA,0xAAAA,0xAAAA, 0x5555,0x5555,0x5555,0x5555, 0xAAAA,0xAAAA,0xAAAA,0xAAAA, 0x5555,0x5555,0x5555,0x5555, 0xAAAA,0xAAAA,0xAAAA,0xAAAA, 0x5555,0x5555,0x5555,0x5555, 0xAAAA,0xAAAA,0xAAAA,0xAAAA, 0x5555,0x5555,0x5555,0x5555, 0xAAAA,0xAAAA,0xAAAA,0xAAAA, 0x5555,0x5555,0x5555,0x5555, 0xAAAA,0xAAAA,0xAAAA,0xAAAA, 0x5555,0x5555,0x5555,0x5555, 0xAAAA,0xAAAA,0xAAAA,0xAAAA, 0x5555,0x5555,0x5555,0x5555, 0xAAAA,0xAAAA,0xAAAA,0xAAAA, 0x5555,0x5555,0x5555,0x5555, 0xAAAA,0xAAAA,0xAAAA,0xAAAA, 0x5555,0x5555,0x5555,0x5555, 0xAAAA,0xAAAA,0xAAAA,0xAAAA, 0x5555,0x5555,0x5555,0x5555, 0xAAAA,0xAAAA,0xAAAA,0xAAAA, 0x5555,0x5555,0x5555,0x5555, 0xAAAA,0xAAAA,0xAAAA,0xAAAA, 0x5555,0x5555,0x5555,0x5555, 0xAAAA,0xAAAA,0xAAAA,0xAAAA, 0x5555,0x5555,0x5555,0x5555, 0xAAAA,0xAAAA,0xAAAA,0xAAAA, 0x5555,0x5555,0x5555,0x5555, 0xAAAA,0xAAAA,0xAAAA,0xAAAA, 0x5555,0x5555,0x5555,0x5555 xview-3.2p1.4/contrib/examples/sv_compat/pw_draw.c100644 1750 1750 10153 5413747632 17535 0ustar mbmb/* * Name: pw_draw.c * * Description: * Demonstrates some of the pixwin drawing functions on * a canvas window. The drawing is done inside a repaint proc. * XView (and X11) applications must always be prepared to * repaint themselves on demand. * * Note: XView doesn't really support pw_* graphics calls. * These are leftover functions from Sunview and are shown here for * compatibility reference only. */ #include #include #include #include static unsigned short chess_bits[] = { #include }; static unsigned short gray_bits[] = { #include "gray_stencil.pr" }; Server_image chess_image; Server_image stencil_image; /* * main() * Create frame and canvas windows. * Set a repaint proc for the canvas window. * Create Server Images for fill and stencil operations * in canvas_repaint_proc(). * Start the event loop. */ main(argc,argv) int argc; char *argv[]; { Frame frame; Canvas canvas; void canvas_repaint_proc(); xv_init(XV_INIT_ARGS, argc, argv, 0); /* Create a frame and a canvas */ frame = xv_create(NULL, FRAME, FRAME_LABEL, "xv_canvas_pw_draw", XV_WIDTH, 734, XV_HEIGHT, 448, 0); canvas = xv_create(frame, CANVAS, CANVAS_REPAINT_PROC, canvas_repaint_proc, 0); /* By default, server images are created with depth 1 */ chess_image = xv_create(NULL,SERVER_IMAGE, XV_WIDTH, 64, XV_HEIGHT, 64, SERVER_IMAGE_BITS, chess_bits, 0); stencil_image = xv_create(NULL,SERVER_IMAGE, XV_WIDTH, 64, XV_HEIGHT, 64, SERVER_IMAGE_BITS, gray_bits, 0); xv_main_loop(frame); return(0); } /* * canvas_repaint_proc() * Called to repaint the canvas window. Draws into the window * using various pixwin drawing functions. */ void canvas_repaint_proc(canvas, canvas_pw, repaint_area) Canvas canvas; Pixwin *canvas_pw; Rectlist *repaint_area; { static Pr_brush brush = {5}; static short dashed[] = {5, 3, 0}; static Pr_texture tex = {dashed, 0, 0, 0, 0, 0, 0, 0 }; static struct pr_pos lines[] = {{0,0}, {64,0}, {0,64}, {64,64}}; static struct pr_pos points[] = {{0, 128}, {128, 128}, {64, 0}}; static int num_points[] = {3}; /* Rop the chess_image icon onto the canvas */ pw_text((Xv_opaque)canvas_pw, 64, 58, PIX_SRC, NULL, "pw_rop"); pw_rop((Xv_opaque)canvas_pw, 64, 64, 64, 64, PIX_SET, chess_image, 0, 0); /* Draw the chess_image icon using the stencil_image as a mask */ pw_text((Xv_opaque)canvas_pw, 192, 58, PIX_SRC, NULL, "pw_stencil"); pw_stencil((Xv_opaque)canvas_pw, 192, 64, 64, 64, PIX_SRC, (Pixrect *)stencil_image, 0, 0, (Pixrect *)chess_image, 0, 0); /* Replicate the chess_image icon within the specified rectangle */ pw_text((Xv_opaque)canvas_pw, 352, 58, PIX_SRC, NULL,"pw_replrop"); pw_replrop((Xv_opaque)canvas_pw, 320, 64, 128, 128, PIX_SRC, (Pixrect *)chess_image, 0, 0); /* Fill the specified polygon with the chess_image icon */ pw_text((Xv_opaque)canvas_pw, 542, 58, PIX_SRC, NULL,"pw_polygon_2"); pw_polygon_2((struct pixwin *)canvas_pw, 512, 64, 1, num_points, points, PIX_SRC, (Pixrect *)chess_image, 0, 0); pw_text((Xv_opaque)canvas_pw, 64, 312, PIX_SRC, NULL, "pw_vector"); pw_vector((Xv_opaque)canvas_pw, 64, 320, 128, 384, PIX_SRC, 1); pw_vector((Xv_opaque)canvas_pw, 64, 384, 128, 320, PIX_SRC, 1); /* Draw a dashed line with the specifed line pattern & thickness */ pw_text((Xv_opaque)canvas_pw, 192, 312, PIX_SRC, NULL, "pw_line"); pw_line((struct pixwin *)canvas_pw, 192, 320, 256, 384, &brush, &tex, PIX_SET); pw_line((struct pixwin *)canvas_pw, 192, 384, 256, 320, &brush, &tex, PIX_SET); /* Draw a set of lines */ pw_text((Xv_opaque)canvas_pw, 320, 312, PIX_SRC, NULL, "pw_polyline"); pw_polyline((Xv_opaque)canvas_pw, 320, 320, 4, lines, POLY_CLOSE, NULL, NULL, PIX_SET); /* Copy from one region of the canvas to another */ pw_text((Xv_opaque)canvas_pw, 512, 312, PIX_SRC, NULL, "pw_copy"); pw_copy((Xv_opaque)canvas_pw, 448, 320, 192, 64, PIX_SRC, canvas_pw, 400, 96); } xview-3.2p1.4/contrib/examples/textsw/ 40755 1750 1750 0 6354605713 15152 5ustar mbmbxview-3.2p1.4/contrib/examples/textsw/Imakefile100644 1750 1750 2214 6331424033 17044 0ustar mbmb#include /**/########################################################################## /**/# @(#)Imakefile 1.3 1/7/92 SMI /**/# Imakefile for examples/textsw #define InstallSrcs YES LOCATION = examples/textsw DEFINES = -DSTANDALONE $(XVCLIENTSYSDEFINES) SYS_LIBRARIES = INCLUDES = -I. -I$(HEADER_DEST) -I$(TOP) DEPLIBS = XViewClientDepLibs LOCAL_LIBRARIES = XViewClientLibs CURSES_LIBS = -lcurses MAKEFILE_SIMPLE = Makefile.customer SRCS = sample_tty.c textsw.c textsw.font.c textsw_to_ttysw.c \ ttycurses.c xv_termsw.c INSTALL_SRCS = $(SRCS) ALLFILES = $(MAKEFILE_SIMPLE) $(SRCS) PROGRAMS= sample_tty textsw textsw.font textsw_to_ttysw \ ttycurses xv_termsw AllTarget($(PROGRAMS)) SingleProgramTarget(sample_tty,sample_tty.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(textsw,textsw.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(textsw.font,textsw.font.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(textsw_to_ttysw,textsw_to_ttysw.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(ttycurses,ttycurses.o,$(LOCAL_LIBRARIES),$(CURSES_LIBS)) SingleProgramTarget(xv_termsw,xv_termsw.o,$(LOCAL_LIBRARIES), /**/) #include xview-3.2p1.4/contrib/examples/textsw/Makefile.customer100644 1750 1750 1273 5413747633 20555 0ustar mbmb# # @(#)Makefile.customer 1.10 92/02/25 # # Makefile for the textsw example programs for XView programmers # OSTYPE = SUNOS5 INCLUDE = -I${OPENWINHOME}/include # # If you want to compile for debugging, change "-O" to "-g" # CFLAGS_SUNOS41 = ${INCLUDE} -O CFLAGS_SUNOS5 = ${INCLUDE} -DSVR4 -O CFLAGS = $(CFLAGS_$(OSTYPE)) # if you want special to pass special loader options to ld, set # LDFLAGS= ... # XVIEW_LIBS = -L${OPENWINHOME}/lib \ -lxview -lolgx -lX11 CFILES = textsw.c \ textsw.font.c OBJS = textsw \ textsw.font all: ${OBJS} ${OBJS}: $$@.c $$@.o ${CC} ${CFLAGS} ${LDFLAGS} -o $@ $@.o ${XVIEW_LIBS} clean: rm -f core ${OBJS} *.o xview-3.2p1.4/contrib/examples/textsw/sample_tty.c100644 1750 1750 1164 5413747633 17601 0ustar mbmb/* * sample_tty.c -- create a base frame with a tty subwindow. * This subwindow runs a UNIX command specified in an argument * vector as shown below. The example does a "man cat". */ #include #include char *my_argv[] = { "man", "cat", NULL }; main(argc, argv) char *argv[]; { Tty tty; Frame frame; xv_init(XV_INIT_ARGS, argc, argv, 0); frame = (Frame)xv_create(NULL, FRAME, NULL); tty = (Tty)xv_create(frame, TTY, WIN_ROWS, 24, WIN_COLUMNS, 80, TTY_ARGV, my_argv, NULL); window_fit(frame); xv_main_loop(frame); } xview-3.2p1.4/contrib/examples/textsw/textsw.c100644 1750 1750 1065 5413747633 16756 0ustar mbmb#include #include #include #define HEIGHT 500 #define WIDTH 500 Textsw textsw; Panel panel; Icon icon; main(argc,argv) int argc; char *argv[]; { Frame frame; int textsw_width; xv_init(XV_INIT_ARGS, argc, argv, 0); frame = xv_create(XV_NULL, FRAME, FRAME_LABEL, argv[0], NULL); /* create textsw and set the colormap segment for it */ textsw = xv_create(frame, TEXTSW, WIN_ROWS, 20, WIN_COLUMNS, 80, NULL); window_fit(frame); xv_main_loop(frame); } xview-3.2p1.4/contrib/examples/textsw/textsw.font.c100644 1750 1750 12574 5413747633 17752 0ustar mbmb/* * textsw.font.c --display a text subwindow and allow the user to edit * it. Panel items allow the user to change the font (family, style and * size) of the textsw. */ #include #include #include #include Panel_item family_item, style_item, scale_item, name_item; Textsw textsw; main(argc, argv) int argc; char *argv[]; { Frame frame; Panel panel; Xv_Font font; void change_font(); int change_font_by_name(); extern void exit(); xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create(XV_NULL, FRAME, FRAME_LABEL, argv[0], FRAME_SHOW_FOOTER, TRUE, NULL); panel = (Panel)xv_create(frame, PANEL, PANEL_LAYOUT, PANEL_VERTICAL, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Quit", PANEL_NOTIFY_PROC, exit, NULL); family_item = (Panel_item)xv_create(panel, PANEL_CHOICE, PANEL_LABEL_STRING, "Family", PANEL_LAYOUT, PANEL_HORIZONTAL, PANEL_DISPLAY_LEVEL, PANEL_CURRENT, PANEL_CHOICE_STRINGS, FONT_FAMILY_DEFAULT, FONT_FAMILY_DEFAULT_FIXEDWIDTH, FONT_FAMILY_LUCIDA, FONT_FAMILY_LUCIDA_FIXEDWIDTH, FONT_FAMILY_ROMAN, FONT_FAMILY_SERIF, FONT_FAMILY_COUR, FONT_FAMILY_CMR, FONT_FAMILY_GALLENT, NULL, PANEL_NOTIFY_PROC, change_font, NULL); style_item = (Panel_item)xv_create(panel, PANEL_CHOICE, PANEL_LABEL_STRING, "Style", PANEL_LAYOUT, PANEL_HORIZONTAL, PANEL_DISPLAY_LEVEL, PANEL_CURRENT, PANEL_CHOICE_STRINGS, FONT_STYLE_DEFAULT, FONT_STYLE_NORMAL, FONT_STYLE_BOLD, FONT_STYLE_ITALIC, FONT_STYLE_BOLD_ITALIC, NULL, PANEL_NOTIFY_PROC, change_font, NULL); scale_item = (Panel_item)xv_create(panel, PANEL_CHOICE, PANEL_LABEL_STRING, "Scale", PANEL_LAYOUT, PANEL_HORIZONTAL, PANEL_DISPLAY_LEVEL, PANEL_CURRENT, PANEL_CHOICE_STRINGS, "Small", "Medium", "Large", "X-Large", NULL, PANEL_NOTIFY_PROC, change_font, PANEL_VALUE, 1, PANEL_DEFAULT_VALUE, 1, NULL); name_item = (Panel_item)xv_create(panel, PANEL_TEXT, PANEL_LABEL_STRING, "Font Name:", PANEL_LAYOUT, PANEL_HORIZONTAL, PANEL_VALUE_DISPLAY_LENGTH, 20, PANEL_NOTIFY_PROC, change_font_by_name, NULL); window_fit(panel); textsw = (Textsw)xv_create(frame, TEXTSW, WIN_ROWS, 20, WIN_COLUMNS, 80, NULL); window_fit(frame); font = (Xv_Font)xv_get(frame, XV_FONT); xv_set(textsw, WIN_FONT, font, NULL); xv_set(frame, FRAME_LEFT_FOOTER, xv_get(font, FONT_NAME), NULL); xv_main_loop(frame); } void change_font(item, value, event) Panel_item item; Event *event; { static int family, style, scale; char buf[128]; Frame frame; char *family_name; char *style_name; int scale_value; Xv_Font font; frame = (Frame)xv_get(xv_get(item, PANEL_PARENT_PANEL), XV_OWNER); family_name = (char *) xv_get(family_item, PANEL_CHOICE_STRING, xv_get(family_item, PANEL_VALUE)); style_name = (char *) xv_get(style_item, PANEL_CHOICE_STRING, xv_get(style_item, PANEL_VALUE)); scale_value = (int) xv_get(scale_item, PANEL_VALUE); xv_set(frame, FRAME_BUSY, TRUE, NULL); font = (Xv_Font)xv_find(frame, FONT, FONT_FAMILY, family_name, FONT_STYLE, style_name, /* scale_value happens to coincide with Window_rescale_state values */ FONT_SCALE, scale_value, NULL); xv_set(frame, FRAME_BUSY, FALSE, NULL); if (!font) { if (item == family_item) { sprintf(buf, "cannot load '%s'", family_name); xv_set(family_item, PANEL_VALUE, family, NULL); } else if (item == style_item) { sprintf(buf, "cannot load '%s'", style_name); xv_set(style_item, PANEL_VALUE, style, NULL); } else { sprintf(buf, "Not available in %s scale.", xv_get(scale_item, PANEL_CHOICE_STRING, scale)); xv_set(scale_item, PANEL_VALUE, scale, NULL); } xv_set(frame, FRAME_RIGHT_FOOTER, buf, NULL); return; } if (item == family_item) family = value; else if (item == style_item) style = value; else scale = value; xv_set(textsw, WIN_FONT, font, NULL); sprintf(buf, "Current font: %s", xv_get(font, FONT_NAME)); xv_set(frame, FRAME_LEFT_FOOTER, buf, NULL); } change_font_by_name(item, event) Panel_item item; Event *event; { char buf[128]; char *name = (char *)xv_get(item, PANEL_VALUE); Frame frame = (Frame)xv_get(xv_get(item, PANEL_PARENT_PANEL), XV_OWNER); Xv_Font font = (Xv_Font)xv_find(frame, FONT, FONT_NAME, name, NULL); if (!font) { sprintf(buf, "cannot load '%s'", name); xv_set(frame, FRAME_RIGHT_FOOTER, buf, NULL); return PANEL_NONE; } xv_set(textsw, WIN_FONT, font, NULL); sprintf(buf, "Current font: %s", xv_get(font, FONT_NAME)); xv_set(frame, FRAME_LEFT_FOOTER, buf, NULL); return PANEL_NONE; } xview-3.2p1.4/contrib/examples/textsw/textsw_to_ttysw.c100644 1750 1750 3064 5413747633 20733 0ustar mbmb/* * textsw_to_ttysw.c -- send text from a text subwindow to a * tty subwindow using ttysw_output() */ #include #include #include #include #include Textsw textsw; Tty ttysw; main(argc,argv) int argc; char *argv[]; { Frame frame; Panel panel; void text_to_tty(), exit(); xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create(XV_NULL, FRAME, FRAME_LABEL, argv[0], NULL); panel = (Panel)xv_create(frame, PANEL, PANEL_LAYOUT, PANEL_VERTICAL, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Quit", PANEL_NOTIFY_PROC, exit, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Text To Tty", PANEL_NOTIFY_PROC, text_to_tty, NULL); window_fit(panel); textsw = (Textsw)xv_create(frame, TEXTSW, WIN_ROWS, 10, WIN_COLUMNS, 80, NULL); ttysw = (Tty)xv_create(frame, TTY, WIN_BELOW, textsw, WIN_X, 0, TTY_ARGV, TTY_ARGV_DO_NOT_FORK, NULL); window_fit(frame); xv_main_loop(frame); } /* * callback routine for the panel button -- read text from textsw * and send it to the ttysw using ttysw_output() */ void text_to_tty(item, event) Panel_item item; Event *event; { char buf[BUFSIZ]; (void) xv_get(textsw, TEXTSW_CONTENTS, 0, buf, sizeof buf); ttysw_output(ttysw, buf, strlen(buf)); } xview-3.2p1.4/contrib/examples/textsw/textswrc100644 1750 1750 4473 5413747633 17070 0ustar mbmb/* @(#)textswrc 1.2 92/12/03 SMI */ # insert_brackets inserts the indicated characters around the selected text. # If the text is already bracketed with these characters, it removes them. # At some point in the future, the remove option will be invoked by holding # down [Shift] key while hitting function key. R1 FILTER insert_brackets "\\fI" "\\fP" R2 FILTER insert_brackets "\\fB" "\\fP" R3 FILTER insert_brackets "\\fL" "\\fP" # Capitalize/uncapitalize selected material as follows: If there are no # lower case characters, convert everything to lower case. # Example: EDIT TOOL => edit tool. # If there are any lower case letters, convert everything to uppercase. # Example: adjust_pending_delete => ADJUST_PENDING_DELETE # # If characters consist of several words separated by whitespace, then for each # word, capitalize the first letter it if it isn't, lower case if it is. # Example: now is the time => Now Is The Time, and vice versa. R4 FILTER capitalize R5 FILTER insert_brackets \( \) R6 FILTER insert_brackets \" \" R7 FILTER insert_brackets "\\s-2" "\\s0" # NOTE: Keys R8, R10, R12 and R14 are the arrow keys. # By default these emit cursor motion escape sequences (used e.g. by vi) # so their key mappings will not have any effect unless you # set Arrow_Keys in the Input category of defaults to "No" # or run 'setkeys reset'. # shift_lines shifts selected lines left the indicated number of tab # stops, with tab stops computed the following way: if any spaces are # seen on the first line, tab stops = 4. Otherwise, look in .indent.pro # for corresponding value (you can use indent_defaults to set up your # .indent.pro). If no .indent.pro, assume 8. Note this means that the # user can specify 8 in his .indent.pro, but still have shift_lines do # the right thing for those files that he has explicitly formatted using # 4 space indentation, provided that the first line given to shift_lines # contains some spaces. R10 FILTER shift_lines -t -1 # Invoke indent on the selected material, using the options specified in # .indent.pro . R11 FILTER indent -st # Shifts selected lines right the indicated number of spaces. R12 FILTER shift_lines -t 1 # Pass the selected material through the simple text formatter fmt. R13 FILTER fmt xview-3.2p1.4/contrib/examples/textsw/ttycurses.c100644 1750 1750 10267 5413747634 17512 0ustar mbmb/* * ttycurses.c -- An application that uses a tty subwindow that * emulates a tty so well, you can use curses(3X) routines in it. * This program does not handle resizes -- resizing the base frame * produces unpredictable results. To handle resizing properly, * the application should install a resize event handler and * call endwin() followed by initscr() to reinitialize curses * to reflect the size of the window. * * For 4.1: * cc ttycurses.c -o ttycurses -I$OPENWINHOME/include -L$OPENWINHOME/lib \ * -lxview -lolgx -lX11 -lcurses -ltermlib * * For SVR4: * cc ttycurses.c -o ttycurses -I$OPENWINHOME/include -L$OPENWINHOME/lib \ * -lcurses -ltermcap -lxview -lolgx -lX11 -lm -lsocket -lnsl -lintl */ #include #undef WINDOW /* defined by curses.h -- needs to be undefined */ #include #include #include #include /* * Note: Anything denoted by the directive BUGFIX was added to this * example program after the XView Programmer's Manual went to * print. These fixes workaround a bug in the XView library * that cannot be fixed for the 2.0 release. The bugid associated * with these fixes is 1033331. Programs which do special screen * access such as curses and vi do not work correctly in a TTY * window on the Sparc platform. */ #ifndef BUGFIX #define BUGFIX TRUE #endif #ifdef BUGFIX #include #endif /* panel items contain the x,y info for outputting text to the ttysw */ Panel_item x, y, text; main(argc,argv) int argc; char *argv[]; { Frame frame; Panel panel; Tty ttysw; char buf[16]; void output(), exit(); xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = xv_create(XV_NULL, FRAME, FRAME_LABEL, argv[0], FRAME_SHOW_FOOTER, TRUE, NULL); panel = (Frame)xv_create(frame, PANEL, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Quit", PANEL_NOTIFY_PROC, exit, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Print", PANEL_NOTIFY_PROC, output, NULL); x = (Panel_item)xv_create(panel, PANEL_NUMERIC_TEXT, PANEL_LABEL_STRING, "X:", PANEL_VALUE_DISPLAY_LENGTH, 3, NULL); y = (Panel_item)xv_create(panel, PANEL_NUMERIC_TEXT, PANEL_LABEL_STRING, "Y:", PANEL_VALUE_DISPLAY_LENGTH, 3, NULL); text = (Panel_item)xv_create(panel, PANEL_TEXT, PANEL_LABEL_STRING, "Text:", PANEL_VALUE_DISPLAY_LENGTH, 10, PANEL_VALUE, "X", NULL); window_fit(panel); #ifdef BUGFIX ttysw = (Tty)xv_create(frame, TERMSW, #else ttysw = (Tty)xv_create(frame, TTY, #endif WIN_BELOW, panel, WIN_X, 0, TTY_ARGV, TTY_ARGV_DO_NOT_FORK, NULL); #ifdef BUGFIX xv_set(ttysw, TERMSW_MODE, TTYSW_MODE_TYPE, NULL); #endif window_fit(frame); dup2((int)xv_get(ttysw, TTY_TTY_FD), 0); /* dup2 closes 0 first */ dup2((int)xv_get(ttysw, TTY_TTY_FD), 1); /* dup2 closes 1 first */ /* initscr() initializes the curses package and determines * characteristics about the window as if it were a terminal. * The curses specific variables, LINES and COLS are now set * to the row and column sizes of the window. */ initscr(); xv_set(x, PANEL_MAX_VALUE, COLS-1, NULL); xv_set(y, PANEL_MAX_VALUE, LINES-1, NULL); sprintf(buf, "LINES: %d", LINES-1); xv_set(frame, FRAME_LEFT_FOOTER, buf, NULL); sprintf(buf, "COLS: %d", COLS-1); xv_set(frame, FRAME_RIGHT_FOOTER, buf, NULL); xv_main_loop(frame); } /* * callback routine for the panel button. Get the coordinates * and the text to print on the tty subwindow and use curses library * routines to render the text. */ void output() { int x_value = (int)xv_get(x, PANEL_VALUE); int y_value = (int)xv_get(y, PANEL_VALUE); char *Text = (char *)xv_get(text, PANEL_VALUE); mvaddstr(y_value, x_value, Text); refresh(); } xview-3.2p1.4/contrib/examples/textsw/xv_termsw.c100644 1750 1750 3071 5413747634 17456 0ustar mbmb/* * xv_termsw.c * Demonstrate incorporation of a Term subwindow in an application; * keyboard input to the termsw can come either directly to the * termsw or from an adjoining panel text item. */ #include #include #include /* #include */ #include Termsw term; Panel_item text_item; main(argc,argv) int argc; char *argv[]; { Frame frame; Panel panel; int notify_proc(); xv_init(XV_INIT_ARGS, argc, argv, NULL); frame = (Frame)xv_create(NULL, FRAME, NULL); panel = (Panel)xv_create(frame, PANEL, NULL); text_item = (Panel_item)xv_create(panel, PANEL_TEXT, PANEL_LABEL_STRING, "Command:", PANEL_NOTIFY_PROC, notify_proc, PANEL_VALUE_DISPLAY_LENGTH, 20, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Apply", PANEL_NOTIFY_PROC, notify_proc, NULL); window_fit_height(panel); term = (Termsw)xv_create(frame, TERMSW, NULL); window_fit(frame); xv_main_loop(frame); } /* * This procedure is called when the user this return on the * panel text item or clicking on the button. * Use ttysw_input() to feed the string to the termal window. */ int notify_proc(item,event) Panel_item item; Event *event; { char str[81]; sprintf(str, "%.81s\n", (char *)xv_get(text_item, PANEL_VALUE)); ttysw_input(term, str, strlen(str)); xv_set(text_item, PANEL_VALUE, "", NULL); return XV_OK; } xview-3.2p1.4/contrib/examples/ttysw/ 40755 1750 1750 0 6354605713 15006 5ustar mbmbxview-3.2p1.4/contrib/examples/ttysw/Imakefile100644 1750 1750 1734 6331424101 16702 0ustar mbmb#include /**/########################################################################## /**/# @(#)Imakefile 1.9 1/7/92 SMI /**/# Imakefile for examples/textsw #define InstallSrcs YES LOCATION = examples/ttysw DEFINES = -DSTANDALONE $(XVCLIENTSYSDEFINES) SYS_LIBRARIES = INCLUDES = -I. -I$(HEADER_DEST) -I$(TOP) DEPLIBS = XViewClientDepLibs LOCAL_LIBRARIES = XViewClientLibs CURSES_LIBS = -lcurses MAKEFILE_SIMPLE = Makefile.customer SRCS = sample_tty.c textsw_to_ttysw.c \ ttycurses.c xv_termsw.c INSTALL_SRCS = $(SRCS) ALLFILES = $(MAKEFILE_SIMPLE) $(SRCS) PROGRAMS = sample_tty textsw_to_ttysw \ ttycurses xv_termsw AllTarget($(PROGRAMS)) SingleProgramTarget(sample_tty,sample_tty.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(textsw_to_ttysw,textsw_to_ttysw.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(ttycurses,ttycurses.o,$(LOCAL_LIBRARIES),$(CURSES_LIBS)) SingleProgramTarget(xv_termsw,xv_termsw.o,$(LOCAL_LIBRARIES), /**/) #include xview-3.2p1.4/contrib/examples/ttysw/Makefile.customer100644 1750 1750 1676 5413747635 20422 0ustar mbmb# # @(#)Makefile.customer 1.8 92/11/20 # # Makefile for the ttysw example programs for XView programmers # OSTYPE = SUNOS5 INCLUDE = -I${OPENWINHOME}/include # # If you want to compile for debugging, change "-O" to "-g" # CFLAGS_SUNOS41 = ${INCLUDE} -O CFLAGS_SUNOS5 = ${INCLUDE} -DSVR4 -O CFLAGS = $(CFLAGS_$(OSTYPE)) CURSES_LIB_SUNOS41 = -lcurses -ltermlib CURSES_LIB_SUNOS5 = -L/usr/ccs/lib -lcurses CURSES_LIB = $(CURSES_LIB_$(OSTYPE)) # if you want special to pass special loader options to ld, set # LDFLAGS= ... # XVIEW_LIBS = -L${OPENWINHOME}/lib \ -lxview -lolgx -lX11 CFILES = sample_tty.c \ textsw_to_ttysw.c \ ttycurses.c OBJS = sample_tty \ textsw_to_ttysw all: ${OBJS} ttycurses ttycurses: $$@.c $$@.o ${CC} ${CFLAGS} ${LDFLAGS} -o $@ $@.o ${XVIEW_LIBS} ${CURSES_LIB} ${OBJS}: $$@.c $$@.o ${CC} ${CFLAGS} ${LDFLAGS} -o $@ $@.o ${XVIEW_LIBS} clean: rm -f core ${OBJS} *.o xview-3.2p1.4/contrib/examples/ttysw/sample_tty.c100644 1750 1750 1164 5413747635 17437 0ustar mbmb/* * sample_tty.c -- create a base frame with a tty subwindow. * This subwindow runs a UNIX command specified in an argument * vector as shown below. The example does a "man cat". */ #include #include char *my_argv[] = { "man", "cat", NULL }; main(argc, argv) char *argv[]; { Tty tty; Frame frame; xv_init(XV_INIT_ARGS, argc, argv, 0); frame = (Frame)xv_create(NULL, FRAME, NULL); tty = (Tty)xv_create(frame, TTY, WIN_ROWS, 24, WIN_COLUMNS, 80, TTY_ARGV, my_argv, NULL); window_fit(frame); xv_main_loop(frame); } xview-3.2p1.4/contrib/examples/ttysw/textsw_to_ttysw.c100644 1750 1750 3065 5413747635 20572 0ustar mbmb/* * textsw_to_ttysw.c -- send text from a text subwindow to a * tty subwindow using ttysw_output() */ #include #include #include #include #include Textsw textsw; Tty ttysw; main(argc,argv) int argc; char *argv[]; { Frame frame; Panel panel; void text_to_tty(), exit(); xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = (Frame)xv_create(XV_NULL, FRAME, FRAME_LABEL, argv[0], NULL); panel = (Panel)xv_create(frame, PANEL, PANEL_LAYOUT, PANEL_VERTICAL, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Quit", PANEL_NOTIFY_PROC, exit, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Text To Tty", PANEL_NOTIFY_PROC, text_to_tty, NULL); window_fit(panel); textsw = (Textsw)xv_create(frame, TEXTSW, WIN_ROWS, 10, WIN_COLUMNS, 80, NULL); ttysw = (Tty)xv_create(frame, TTY, WIN_BELOW, textsw, WIN_X, 0, TTY_ARGV, TTY_ARGV_DO_NOT_FORK, NULL); window_fit(frame); xv_main_loop(frame); } /* * callback routine for the panel button -- read text from textsw * and send it to the ttysw using ttysw_output() */ void text_to_tty(item, event) Panel_item item; Event *event; { char buf[BUFSIZ]; (void) xv_get(textsw, TEXTSW_CONTENTS, 0, buf, sizeof buf); ttysw_output(ttysw, buf, strlen(buf)); } xview-3.2p1.4/contrib/examples/ttysw/ttycurses.c100644 1750 1750 6427 5413747636 17333 0ustar mbmb/* * ttycurses.c -- An application that uses a tty subwindow that * emulates a tty so well, you can use curses(3x) routines in it. * This program does not handle resizes -- resizing the base frame * produces unpredictable results. To handle resizing properly, * the application should install a resize event handler and * call endwin() followed by initscr() to reinitialize curses * to reflect the size of the window. * * cc ttycurses.c -lxview -lcurses -ltermlib */ #include #undef WINDOW /* defined by curses.h -- needs to be undefined */ #include #include #include #include /* panel items contain the x,y info for outputting text to the ttysw */ Panel_item x_item, y_item, text_item; main(argc,argv) int argc; char *argv[]; { Frame frame; Panel panel; Tty ttysw; char buf[16]; void output(), exit(); xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); frame = xv_create(XV_NULL, FRAME, FRAME_LABEL, argv[0], FRAME_SHOW_FOOTER, TRUE, NULL); panel = (Frame)xv_create(frame, PANEL, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Quit", PANEL_NOTIFY_PROC, exit, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Print", PANEL_NOTIFY_PROC, output, NULL); x_item = (Panel_item)xv_create(panel, PANEL_NUMERIC_TEXT, PANEL_LABEL_STRING, "X:", PANEL_VALUE_DISPLAY_LENGTH, 3, NULL); y_item = (Panel_item)xv_create(panel, PANEL_NUMERIC_TEXT, PANEL_LABEL_STRING, "Y:", PANEL_VALUE_DISPLAY_LENGTH, 3, NULL); text_item = (Panel_item)xv_create(panel, PANEL_TEXT, PANEL_LABEL_STRING, "Text:", PANEL_VALUE_DISPLAY_LENGTH, 10, PANEL_VALUE, "X", NULL); window_fit(panel); ttysw = (Tty)xv_create(frame, TTY, WIN_BELOW, panel, WIN_X, 0, TTY_ARGV, TTY_ARGV_DO_NOT_FORK, NULL); window_fit(frame); dup2((int)xv_get(ttysw, TTY_TTY_FD), 0); /* dup2 closes 0 first */ dup2((int)xv_get(ttysw, TTY_TTY_FD), 1); /* dup2 closes 1 first */ /* initscr() initializes the curses package and determines * characteristics about the window as if it were a terminal. * The curses specific variables, LINES and COLS are now set * to the row and column sizes of the window. */ initscr(); xv_set(x_item, PANEL_MAX_VALUE, COLS-1, NULL); xv_set(y_item, PANEL_MAX_VALUE, LINES-1, NULL); sprintf(buf, "LINES: %d", LINES-1); xv_set(frame, FRAME_LEFT_FOOTER, buf, NULL); sprintf(buf, "COLS: %d", COLS-1); xv_set(frame, FRAME_RIGHT_FOOTER, buf, NULL); xv_main_loop(frame); } /* * callback routine for the panel button. Get the corrdinates * and the text to print on the tty subwindow and use curses library * routines to render the text. */ void output() { int x = (int)xv_get(x_item, PANEL_VALUE); int y = (int)xv_get(y_item, PANEL_VALUE); char *text = (char *)xv_get(text_item, PANEL_VALUE); mvaddstr(y, x, text); refresh(); } xview-3.2p1.4/contrib/examples/ttysw/xv_termsw.c100644 1750 1750 3071 5413747636 17314 0ustar mbmb/* * xv_termsw.c * Demonstrate incorporation of a Term subwindow in an application; * keyboard input to the termsw can come either directly to the * termsw or from an adjoining panel text item. */ #include #include #include /* #include */ #include Termsw term; Panel_item text_item; main(argc,argv) int argc; char *argv[]; { Frame frame; Panel panel; int notify_proc(); xv_init(XV_INIT_ARGS, argc, argv, NULL); frame = (Frame)xv_create(NULL, FRAME, NULL); panel = (Panel)xv_create(frame, PANEL, NULL); text_item = (Panel_item)xv_create(panel, PANEL_TEXT, PANEL_LABEL_STRING, "Command:", PANEL_NOTIFY_PROC, notify_proc, PANEL_VALUE_DISPLAY_LENGTH, 20, NULL); (void) xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Apply", PANEL_NOTIFY_PROC, notify_proc, NULL); window_fit_height(panel); term = (Termsw)xv_create(frame, TERMSW, NULL); window_fit(frame); xv_main_loop(frame); } /* * This procedure is called when the user this return on the * panel text item or clicking on the button. * Use ttysw_input() to feed the string to the termal window. */ int notify_proc(item,event) Panel_item item; Event *event; { char str[81]; sprintf(str, "%.81s\n", (char *)xv_get(text_item, PANEL_VALUE)); ttysw_input(term, str, strlen(str)); xv_set(text_item, PANEL_VALUE, "", NULL); return XV_OK; } xview-3.2p1.4/contrib/examples/selection/ 40755 1750 1750 0 6354605713 15601 5ustar mbmbxview-3.2p1.4/contrib/examples/selection/Imakefile100644 1750 1750 1326 5413747637 17520 0ustar mbmb#include /**/########################################################################## /**/# @(#)Imakefile 1.4 1/7/92 SMI /**/# Imakefile for examples/cursor #define InstallSrcs YES LOCATION = examples/selection DEFINES = -DSTANDALONE $(XVCLIENTSYSDEFINES) SYS_LIBRARIES = INCLUDES = -I. -I$(HEADER_DEST) -I$(TOP) DEPLIBS = XViewClientDepLibs LOCAL_LIBRARIES = XViewClientLibs MAKEFILE_SIMPLE = Makefile.customer SRCS = sel_hold.c sel_req.c INSTALL_SRCS = $(SRCS) ALLFILES = $(MAKEFILE_SIMPLE) $(SRCS) PROGRAMS= sel_hold sel_req AllTarget($(PROGRAMS)) SingleProgramTarget(sel_hold,sel_hold.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(sel_req,sel_req.o,$(LOCAL_LIBRARIES), /**/) #include xview-3.2p1.4/contrib/examples/selection/Makefile.customer100644 1750 1750 1300 5413747637 21177 0ustar mbmb# # @(#)Makefile.customer 1.1 91/05/21 # # Makefile for the selection example programs for XView programmers # OSTYPE = SUNOS5 INCLUDE = -I${OPENWINHOME}/include # # If you want to compile for debugging, change "-O" to "-g" # CFLAGS_SUNOS41 = ${INCLUDE} -O CFLAGS_SUNOS5 = ${INCLUDE} -DSVR4 -O CFLAGS = $(CFLAGS_$(OSTYPE)) # if you want special to pass special loader options to ld, set # LDFLAGS= ... # XVIEW_LIBS = -L${OPENWINHOME}/lib \ -lxview -lolgx -lX11 CFILES = sel_hold.c \ sel_req.c OBJS = sel_hold \ sel_req all: ${OBJS} ${OBJS}: $$@.c $$@.o ${CC} ${CFLAGS} ${LDFLAGS} -o $@ $@.o ${XVIEW_LIBS} clean: rm -f core ${OBJS} *.o xview-3.2p1.4/contrib/examples/selection/sel_hold.c100644 1750 1750 13544 5413747637 17671 0ustar mbmb/* * sel_hold.c: Example of how to acquire and hold a selection. * */ #include #include #include #include #include #include #include #include Frame frame; Xv_Server server; Panel panel; Panel_item p_selection, p_contents, p_own, p_lose; Selection_owner sel; Selection_item sel_targets; #define ATOM(server, name) (Atom)xv_get(server, SERVER_ATOM, name) main(argc, argv) int argc; char **argv; { Panel_setting NotifyProc(); int SelectionConvertProc(); void SelectionDoneProc(), SelectionLoseProc(); Xv_Font font; Atom targets[5]; server = xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, 0); frame = xv_create((Window)NULL, FRAME, XV_X, 520, XV_Y, 655, XV_LABEL, "Selection Holder Example", FRAME_SHOW_FOOTER, True, NULL); font = (Xv_Font)xv_find(frame, FONT, FONT_NAME, "lucida-19", NULL); if (!font) { fprintf(stderr, "Cannot use font: lucida-19.\n"); font = (Xv_Font)xv_get(frame, XV_FONT); } panel = xv_create(frame, PANEL, XV_FONT, font, NULL); p_selection = xv_create(panel, PANEL_TEXT, PANEL_LABEL_STRING, "Selection:", PANEL_VALUE_DISPLAY_LENGTH, 40, PANEL_NOTIFY_PROC, NotifyProc, PANEL_ITEM_X, xv_col(panel,0), PANEL_ITEM_Y, xv_row(panel,0), NULL); p_contents = xv_create(panel, PANEL_TEXT, PANEL_LABEL_STRING, "Contents:", PANEL_VALUE_DISPLAY_LENGTH, 40, PANEL_ITEM_X, xv_col(panel,0), PANEL_ITEM_Y, xv_row(panel,1), NULL); p_own = xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Own Selection", PANEL_NOTIFY_PROC, NotifyProc, PANEL_ITEM_X, xv_col(panel,5), PANEL_ITEM_Y, xv_row(panel,2), NULL); p_lose = xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Lose Selection", PANEL_NOTIFY_PROC, NotifyProc, PANEL_ITEM_X, xv_col(panel,30), PANEL_ITEM_Y, xv_row(panel,2), NULL); /* Create a selection owner object */ sel = xv_create(panel, SELECTION_OWNER, SEL_CONVERT_PROC, SelectionConvertProc, SEL_DONE_PROC, SelectionDoneProc, SEL_LOSE_PROC, SelectionLoseProc, NULL); targets[0] = (Atom)xv_get(server, SERVER_ATOM, "TARGETS"); targets[1] = (Atom)xv_get(server, SERVER_ATOM, "TIMESTAMP"); targets[2] = (Atom)xv_get(server, SERVER_ATOM, "LENGTH"); targets[3] = (Atom)xv_get(server, SERVER_ATOM, "STRING"); targets[4] = (Atom)xv_get(server, SERVER_ATOM, "DELETE"); /* Create a selection item, ownened by the selection owner we just * created. This pre-registers a conversion, in this case a * conversion for ``TARGETS''. */ sel_targets = xv_create(sel, SELECTION_ITEM, SEL_TYPE_NAME, "TARGETS", SEL_FORMAT, 32, SEL_LENGTH, 5, SEL_DATA, (Xv_opaque)targets, NULL); window_fit(panel); window_fit(frame); xv_main_loop(frame); exit(0); } Panel_setting NotifyProc(item, event) Panel_item item; Event *event; { if (item == p_selection) { char *rank; /* Get the rank of the selection the user would like to use. */ rank = (char *)xv_get(item, PANEL_VALUE); /* Set the rank to our selection owner object. */ xv_set(sel, SEL_RANK_NAME, rank, NULL); return(PANEL_NEXT); } else if (item == p_own) { /* The user pressed the ``own'' button, so we acquire the * selection. */ xv_set(sel, SEL_OWN, True, SEL_TIME, &event_time(event), NULL); xv_set(frame, FRAME_LEFT_FOOTER, "Acquired Selection...", NULL); } else if (item == p_lose) { /* The user pressed the ``lose'' button, so we lose ownership * of the selection. */ xv_set(sel, SEL_OWN, False, SEL_TIME, &event_time(event), NULL); xv_set(frame, FRAME_LEFT_FOOTER, "Lost Selection...", NULL); } return(PANEL_DONE); } /* The conversion procedure is called whenever some client makes * a request to our selection. Its purpose is to respond to the * request. */ int SelectionConvertProc(sel, target, data, length, format) Selection_owner sel; Atom *target; /* Input/Output */ Xv_opaque *data; /* Output */ unsigned long *length; /* Output */ int *format; /* Output */ { /* Request for the length of the selection. */ if (*target == ATOM(server, "LENGTH")) { static unsigned long len; char *contents; contents = (char *)xv_get(p_contents, PANEL_VALUE); len = strlen(contents); *target = ATOM(server, "INTEGER"); *format = 32; *length = 1; *data = (Xv_opaque)&len; return(True); /* Request for the string contents of the selection. */ } else if (*target == ATOM(server, "STRING")) { char *contents; contents = (char *)xv_get(p_contents, PANEL_VALUE); *target = ATOM(server, "STRING"); *format = 8; *length = strlen(contents); *data = (Xv_opaque)strdup(contents); return(True); /* Request to delete the selection. */ } else if (*target == ATOM(server, "DELETE")) { xv_set(p_contents, PANEL_VALUE, "", NULL); *target = ATOM(server, "NULL"); *format = 32; *length = 0; *data = (Xv_opaque)NULL; return(True); } else /* Call the default selection conversion procedure. Will handle * requests for any pre-registered conversions. */ return(sel_convert_proc(sel, target, data, length, format)); } /* The selection done procedure is called after each conversion has * happened. This gives the application a chance to free up * memory. */ void SelectionDoneProc(sel, data, target) Selection_owner sel; Xv_opaque *data; Atom target; { if (target == ATOM(server, "STRING")) free((char *)data); } /* If some other client acquires the selection we hold, the * selection lose procedure is called. This tells us that we * no longer hold that selection. */ void SelectionLoseProc(sel) Selection_owner sel; { xv_set(frame, FRAME_LEFT_FOOTER, "Lost Selection...", NULL); } xview-3.2p1.4/contrib/examples/selection/sel_req.c100644 1750 1750 15327 5413747637 17533 0ustar mbmb/* * sel_req.c: Example of how to make requests to a selection owner for * the selection contents. */ #include #include #include #include #include #include #include #include Frame frame; Textsw textsw; Xv_Server server; Panel panel; Panel_item p_selection, p_target, p_request; Selection_requestor sel; #define TARGETS 1<<0 #define TIMESTAMP 1<<1 #define LENGTH 1<<2 #define STRING 1<<3 #define DELETE 1<<4 #define LINE "------------------------------------------------------" #define ATOM(server, name) (Atom)xv_get(server, SERVER_ATOM, name) main(argc, argv) int argc; char **argv; { void MakeRequest(), SelectionReplyProc(), RequestChoice(); Xv_Font font; server = xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, 0); frame = xv_create((Window)NULL, FRAME, XV_X, 10, XV_Y, 10, XV_LABEL, "Selection Requestor Example", NULL); font = (Xv_Font)xv_find(frame, FONT, FONT_NAME, "lucida-19", NULL); if (!font) { fprintf(stderr, "Cannot use font: lucida-19.\n"); font = (Xv_Font)xv_get(frame, XV_FONT); } panel = xv_create(frame, PANEL, PANEL_LAYOUT, PANEL_VERTICAL, XV_FONT, font, NULL); p_selection = xv_create(panel, PANEL_TEXT, PANEL_LABEL_STRING, "Selection:", PANEL_VALUE_DISPLAY_LENGTH, 40, PANEL_NOTIFY_PROC, MakeRequest, NULL); p_target = xv_create(panel, PANEL_TOGGLE, PANEL_LABEL_STRING, "Request:", PANEL_NOTIFY_PROC, RequestChoice, PANEL_CHOICE_STRINGS, "TARGETS", "TIMESTAMP", "LENGTH", "STRING", "DELETE", NULL, NULL); p_request = xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Make Request", PANEL_NOTIFY_PROC, MakeRequest, PANEL_ITEM_X, xv_cols(panel, 20), 0); window_fit(panel); textsw = xv_create(frame, TEXTSW, XV_X, 0, XV_FONT, font, WIN_BELOW, panel, NULL); /* Create a selection requestor object. */ sel = xv_create(panel, SELECTION_REQUESTOR, SEL_REPLY_PROC, SelectionReplyProc, NULL); window_fit(frame); xv_main_loop(frame); exit(0); } void RequestChoice(item, value, event) Panel_item item; unsigned int value; Event *event; { int set = False; /* Build the request based on the toggle items the user has selected. */ if (value & TARGETS) { if (set) xv_set(sel, SEL_APPEND_TYPE_NAMES, "TARGETS", NULL, NULL); else xv_set(sel, SEL_TYPE_NAME, "TARGETS", NULL); set = True; } if (value & TIMESTAMP) { if (set) xv_set(sel, SEL_APPEND_TYPE_NAMES, "TIMESTAMP", NULL, NULL); else xv_set(sel, SEL_TYPE_NAME, "TIMESTAMP", NULL); set = True; } if (value & LENGTH) { if (set) xv_set(sel, SEL_APPEND_TYPE_NAMES, "LENGTH", NULL, NULL); else xv_set(sel, SEL_TYPE_NAME, "LENGTH", NULL); set = True; } if (value & STRING) { if (set) xv_set(sel, SEL_APPEND_TYPE_NAMES, "STRING", NULL, NULL); else xv_set(sel, SEL_TYPE_NAME, "STRING", NULL); set = True; } if (value & DELETE) { if (set) xv_set(sel, SEL_APPEND_TYPE_NAMES, "DELETE", NULL, NULL); else xv_set(sel, SEL_TYPE_NAME, "DELETE", NULL); set = True; } } void MakeRequest(item, event) Panel_item item; Event *event; { if (item == p_selection) { char *rank = NULL; /* Set the rank of the selection we are going to make requests to. */ rank = (char *)xv_get(item, PANEL_VALUE); xv_set(sel, SEL_RANK_NAME, rank, NULL); } else { /* Post a non-blocking request to the selection holder. */ sel_post_req(sel); textsw_erase(textsw, 0, TEXTSW_INFINITY); } } /* When the selection holder replies to our request(s), the * Selection reply procedure is called with the information we * requested. */ void SelectionReplyProc(sel, target, type, value, length, format) Selection_requestor sel; Xv_opaque value; Atom target; Atom type; unsigned long length; int format; { if (length == SEL_ERROR) { SelectionError(sel, target, *(int *)value); return; } if (target == ATOM(server, "TARGETS")) { textsw_insert(textsw, "Holder will convert the following targets:\n", 43); do { Atom *targets = (Atom *)value; char *target_name; if (targets[--length]) { target_name = (char *)xv_get(server, SERVER_ATOM_NAME, targets[length]); textsw_insert(textsw, "\t", 1); textsw_insert(textsw, target_name, strlen(target_name)); textsw_insert(textsw, "\n", 1); } } while(length); } else if (target == ATOM(server, "TIMESTAMP")) { char buf[10]; textsw_insert(textsw, "TIMESTAMP of acquisition: ", 26); sprintf(buf, "%lu\n", *(unsigned long *)value); textsw_insert(textsw, buf, strlen(buf)); } else if (target == ATOM(server, "LENGTH")) { char buf[10]; textsw_insert(textsw, "Length of selection: ", 21); sprintf(buf, "%d\n", *(int *)value); textsw_insert(textsw, buf, strlen(buf)); } else if (target == ATOM(server, "STRING")) { static int incr = False; if (type == ATOM(server, "INCR")) { textsw_insert(textsw, "Contents of the selection:\n", 27); incr = True; } else if (length) { if (!incr) textsw_insert(textsw, "Contents of the selection:\n", 27); textsw_insert(textsw, (char *)value, length); textsw_insert(textsw, "\n", 1); } else incr = False; } else if (target == ATOM(server, "DELETE")) { textsw_insert(textsw, "The Selection has been deleted\n", 31); } textsw_insert(textsw, LINE, strlen(LINE)); } SelectionError(sel, target, errorCode) Selection_requestor sel; Atom target; int errorCode; { Atom rank; char *rank_string; char *target_string = (char *)xv_get(server, SERVER_ATOM_NAME, target); char msg[100]; rank = (Atom)xv_get(sel, SEL_RANK); rank_string = (char *)xv_get(server, SERVER_ATOM_NAME, rank); sprintf(msg, "Selection failed for rank ``%s'' on target ``%s'': ", rank_string, target_string); textsw_insert(textsw, msg, strlen(msg)); switch(errorCode) { case SEL_BAD_PROPERTY : textsw_insert(textsw, "Bad Property", strlen("Bad Property")); break; case SEL_BAD_CONVERSION : textsw_insert(textsw, "Conversion Rejected", strlen("Conversion Rejected")); break; case SEL_BAD_TIME: textsw_insert(textsw, "Bad Time Match", strlen("Bad Time Match")); break; case SEL_BAD_WIN_ID: textsw_insert(textsw, "Bad Window Match", strlen("Bad Window Match")); break; case SEL_TIMEDOUT: textsw_insert(textsw, "Timeout", strlen("Timeout")); break; } } xview-3.2p1.4/contrib/examples/dnd/ 40755 1750 1750 0 6354605713 14361 5ustar mbmbxview-3.2p1.4/contrib/examples/dnd/Imakefile100644 1750 1750 1617 5413747640 16275 0ustar mbmb#include /**/########################################################################## /**/# @(#)Imakefile 1.5 1/7/92 SMI /**/# Imakefile for examples/dnd #define InstallSrcs YES LOCATION = examples/dnd DEFINES = -DSTANDALONE $(XVCLIENTSYSDEFINES) SYS_LIBRARIES = INCLUDES = -I. -I$(HEADER_DEST) -I$(TOP) DEPLIBS = XViewClientDepLibs LOCAL_LIBRARIES = XViewClientLibs MAKEFILE_SIMPLE = Makefile.customer SRCS = dest.c source1.c source2.c IMAGES = arrow.bm arrow2_mask.bm arrow_r.bm arrowb2.bm bullseyeI.bm arrow2.bm \ arrow_mask.bm arrowb.bm bullseye.bm INSTALL_SRCS = $(SRCS) $(IMAGES) ALLFILES = $(MAKEFILE_SIMPLE) $(SRCS) PROGRAMS= dest source1 source2 AllTarget($(PROGRAMS)) SingleProgramTarget(dest,dest.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(source1,source1.o,$(LOCAL_LIBRARIES), /**/) SingleProgramTarget(source2,source2.o,$(LOCAL_LIBRARIES), /**/) #include xview-3.2p1.4/contrib/examples/dnd/Makefile.customer100644 1750 1750 2002 5413747640 17751 0ustar mbmb# # @(#)Makefile.customer 1.5 92/03/25 SMI # # Makefile for the drag_n_drop example programs for XView programmers # OSTYPE = SUNOS5 INCLUDE = -I${OPENWINHOME}/include # # If you want to compile for debugging, change "-O" to "-g" # CFLAGS_SUNOS41 = ${INCLUDE} -O CFLAGS_SUNOS5 = ${INCLUDE} -DSVR4 -O CFLAGS = $(CFLAGS_$(OSTYPE)) # if you want special to pass special loader options to ld, set # LDFLAGS= ... # XVIEW_LIBS_SUNOS41 = -L${OPENWINHOME}/lib \ -lxview -lolgx -lX11 XVIEW_LIBS_SUNOS5 = -L${OPENWINHOME}/lib \ -lxview -lolgx -lX11 -lnsl XVIEW_LIBS = $(XVIEW_LIBS_${OSTYPE}) CFILES = dest.c \ source1.c IMAGES = arrow.bm \ arrow_mask.bm \ arrowb.bm \ bullseye.bm \ bullseyeI.bm ICONS = drop.icon OBJS = dest \ source1 all: $(IMAGES) $(ICONS) ${OBJS} ${OBJS}: $$@.c $$@.o ${CC} ${CFLAGS} ${LDFLAGS} -o $@ $@.o ${XVIEW_LIBS} clean: rm -f core ${OBJS} *.o xview-3.2p1.4/contrib/examples/dnd/arrow.bm100644 1750 1750 7303 5413747640 16134 0ustar mbmb#define arrow_width 65 #define arrow_height 65 #define arrow_x_hot 55 #define arrow_y_hot 9 static char arrow_bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x3b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa2, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xe2, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xfa, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x3e, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa2, 0xaf, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe2, 0x53, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; xview-3.2p1.4/contrib/examples/dnd/arrow2.bm100644 1750 1750 6211 5413747641 16214 0ustar mbmb#define arrow_width 64 #define arrow_height 64 #define arrow_x_hot 9 #define arrow_y_hot 9 static char arrow_bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} xview-3.2p1.4/contrib/examples/dnd/arrow2_mask.bm100644 1750 1750 6212 5413747641 17230 0ustar mbmb#define arrow_width 64 #define arrow_height 64 #define arrow_x_hot 9 #define arrow_y_hot 9 static char arrow_bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xf8, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x3c, 0xf0, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x1c, 0xe0, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x0c, 0xc0, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x04, 0x80, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} xview-3.2p1.4/contrib/examples/dnd/arrow_mask.bm100644 1750 1750 7334 5413747641 17154 0ustar mbmb#define arrow_mask_width 65 #define arrow_mask_height 65 #define arrow_mask_x_hot 55 #define arrow_mask_y_hot 9 static char arrow_mask_bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1f, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x01, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf9, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; xview-3.2p1.4/contrib/examples/dnd/arrow_r.bm100644 1750 1750 5460 5413747641 16460 0ustar mbmb#define arrow_width 65 #define arrow_height 65 #define arrow_x_hot 55 #define arrow_y_hot 9 static char arrow_bits[] = { /* Format_version=1, Width=80, Height=65, Depth=1, Valid_bits_per_item=16 */ 0x0000, 0x0000, 0x0000, 0x0000, 0x7000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7000, 0x0000, 0x0000, 0x0000, 0x0000, 0x51FF, 0x1FFF, 0xF000, 0x0000, 0x0000, 0x71FF, 0x1FFF, 0xE000, 0x0000, 0x0000, 0x71FF, 0x1FFE, 0x0000, 0x0000, 0x0000, 0x71FA, 0x1FA0, 0x0000, 0x0000, 0x0000, 0x71FD, 0x1FD0, 0x0000, 0x0000, 0x0000, 0x71FE, 0x1FE0, 0x0000, 0x0000, 0x0000, 0x71DF, 0x1DF0, 0x0000, 0x0000, 0x0000, 0x71EF, 0x1EF8, 0x0000, 0x0000, 0x0000, 0x71D7, 0x1D7C, 0x0000, 0x0000, 0x0000, 0x71C3, 0x1C3E, 0x0000, 0x0000, 0x0000, 0x71C1, 0x1C1F, 0x0000, 0x0000, 0x0000, 0x7180, 0x180F, 0x8000, 0x0000, 0x0000, 0x7180, 0x1807, 0xC000, 0x0000, 0x0000, 0x7180, 0x1803, 0xE000, 0x0000, 0x0000, 0x7180, 0x1801, 0xF000, 0x0000, 0x0000, 0x7180, 0x1800, 0xF800, 0x0000, 0x0000, 0x7100, 0x1000, 0x7C00, 0x0000, 0x0000, 0x7000, 0x0000, 0x3E00, 0x0000, 0x0000, 0x7000, 0x0000, 0x1F00, 0x0000, 0x0000, 0x7000, 0x0000, 0x0F80, 0x0000, 0x0000, 0x7000, 0x0000, 0x07C0, 0x0000, 0x0000, 0x7000, 0x0000, 0x03E0, 0x0000, 0x0000, 0x7000, 0x0000, 0x01F0, 0x0000, 0x0000, 0x7000, 0x0000, 0x00F8, 0x0000, 0x0000, 0x5000, 0x0000, 0x007C, 0x0000, 0x0000, 0x7000, 0x0000, 0x003E, 0x0000, 0x0000, 0x7000, 0x0000, 0x001F, 0x0000, 0x0000, 0x7000, 0x0000, 0x000F, 0x8000, 0x0000, 0x7000, 0x0000, 0x0007, 0xC000, 0x0000, 0x7000, 0x0000, 0x0003, 0xE000, 0x0000, 0x7000, 0x0000, 0x0001, 0xF000, 0x0000, 0x7000, 0x0000, 0x0000, 0xF800, 0x0000, 0x7000, 0x0000, 0x0000, 0x7D00, 0x0000, 0x7000, 0x0000, 0x0000, 0x3E40, 0x0000, 0x7000, 0x0000, 0x0000, 0x3F10, 0x0000, 0x7000, 0x0000, 0x0000, 0x0F84, 0x0000, 0x7000, 0x0000, 0x0000, 0x17D1, 0x0000, 0x5000, 0x0000, 0x0000, 0x03E4, 0x4000, 0x7000, 0x0000, 0x0000, 0x09F1, 0x1000, 0x7000, 0x0000, 0x0000, 0x00F8, 0x4000, 0x7000, 0x0000, 0x0000, 0x057D, 0x1000, 0x7000, 0x0000, 0x0000, 0x003E, 0x4400, 0x5000, 0x0000, 0x0000, 0x029F, 0x1000, 0x7000, 0x0000, 0x0000, 0x000F, 0x8400, 0x7000, 0x0000, 0x0000, 0x0157, 0xD100, 0x7000, 0x0000, 0x0000, 0x0003, 0xE400, 0x7000, 0x0000, 0x0000, 0x00A9, 0xF100, 0x7000, 0x0000, 0x0000, 0x0000, 0xF840, 0x7000, 0x0000, 0x0000, 0x0055, 0x7800, 0x7000, 0x0000, 0x0000, 0x0000, 0x3000, 0x7000, 0x0000, 0x0000, 0x000A, 0x8000, 0x7000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7000, 0x0000, 0x0000, 0x0001, 0x4000, 0x7000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7000, 0x0000, 0x0000, 0x0000, 0x2000, 0x5000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7FFF, xview-3.2p1.4/contrib/examples/dnd/arrowb.bm100644 1750 1750 7231 5413747641 16277 0ustar mbmb#define arrowb_width 65 #define arrowb_height 65 static char arrowb_bits[] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x3f, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x3f, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x3f, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x3f, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x3f, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x3b, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3d, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x3a, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x38, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x38, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x30, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x30, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x30, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x30, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x30, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x20, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x80, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x20, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x08, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0xa2, 0x2f, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x80, 0xc8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x20, 0xe2, 0x13, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x80, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x20, 0xfa, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x88, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x20, 0x3e, 0x05, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x08, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0xa2, 0xaf, 0x02, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0xc8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0xe2, 0x53, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x81, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0xf0, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01}; xview-3.2p1.4/contrib/examples/dnd/arrowb2.bm100644 1750 1750 6211 5413747641 16356 0ustar mbmb#define arrow_width 64 #define arrow_height 64 #define arrow_x_hot 9 #define arrow_y_hot 9 static char arrow_bits[] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf1, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf1, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf1, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf1, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf1, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf1, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf1, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf1, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf1, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf1, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x71, 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x31, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x80, 0x11, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0xc0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x80, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0xf8, 0x03, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0xc0, 0x1f, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0xfc, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0xf8, 0x03, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0xc0, 0x1f, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0xfc, 0x01, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0xf8, 0x03, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0xc0, 0x1f, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x01, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1f, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff} xview-3.2p1.4/contrib/examples/dnd/bullseye.bm100644 1750 1750 7237 5413747641 16635 0ustar mbmb#define bullseye_width 65 #define bullseye_height 65 static char bullseye_bits[] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x01, 0xd1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x01, 0x11, 0x07, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x11, 0x01, 0x21, 0x38, 0x00, 0x00, 0x00, 0x00, 0x38, 0x08, 0x01, 0x21, 0xc0, 0x00, 0xf8, 0x3f, 0x00, 0x06, 0x08, 0x01, 0x21, 0x00, 0x03, 0x07, 0xc0, 0x81, 0x01, 0x08, 0x01, 0x41, 0x00, 0xe0, 0x00, 0x00, 0x0e, 0x00, 0x04, 0x01, 0x41, 0x00, 0x10, 0x00, 0x00, 0x10, 0x00, 0x04, 0x01, 0x41, 0x00, 0x0c, 0x00, 0x00, 0x60, 0x00, 0x04, 0x01, 0x41, 0x00, 0x02, 0xf0, 0x1f, 0x80, 0x00, 0x04, 0x01, 0x81, 0x80, 0x01, 0x0e, 0xe0, 0x00, 0x03, 0x02, 0x01, 0x81, 0x40, 0x80, 0x01, 0x00, 0x03, 0x04, 0x02, 0x01, 0x81, 0x20, 0x60, 0x00, 0x00, 0x0c, 0x08, 0x02, 0x01, 0x01, 0x21, 0x10, 0x00, 0x00, 0x10, 0x08, 0x01, 0x01, 0x01, 0x11, 0x08, 0xe0, 0x0f, 0x20, 0x10, 0x01, 0x01, 0x01, 0x08, 0x04, 0x1c, 0x70, 0x40, 0x20, 0x00, 0x01, 0x01, 0x08, 0x02, 0x03, 0x80, 0x81, 0x20, 0x00, 0x01, 0x01, 0x04, 0x81, 0x00, 0x00, 0x02, 0x41, 0x00, 0x01, 0x01, 0x82, 0x40, 0x00, 0x00, 0x04, 0x82, 0x00, 0x01, 0x01, 0x82, 0x20, 0xe0, 0x0f, 0x08, 0x82, 0x00, 0x01, 0x01, 0x42, 0x10, 0x18, 0x30, 0x10, 0x84, 0x00, 0x01, 0x01, 0x41, 0x08, 0x04, 0x40, 0x20, 0x04, 0x01, 0x01, 0x01, 0x21, 0x08, 0x02, 0x80, 0x20, 0x08, 0x01, 0x01, 0x01, 0x21, 0x04, 0x01, 0x00, 0x41, 0x08, 0x01, 0x01, 0x81, 0x20, 0x84, 0xc0, 0x07, 0x42, 0x08, 0x02, 0x01, 0x81, 0x10, 0x84, 0x20, 0x08, 0x42, 0x10, 0x02, 0x01, 0x81, 0x10, 0x42, 0x10, 0x10, 0x84, 0x10, 0x02, 0x01, 0x81, 0x10, 0x42, 0x08, 0x20, 0x84, 0x10, 0x02, 0x01, 0x81, 0x10, 0x42, 0x08, 0x20, 0x84, 0x10, 0x02, 0x01, 0x81, 0x10, 0x42, 0x08, 0x21, 0x84, 0x10, 0x02, 0x01, 0x81, 0x10, 0x42, 0x08, 0x20, 0x84, 0x10, 0x02, 0x01, 0x81, 0x10, 0x42, 0x08, 0x20, 0x84, 0x10, 0x02, 0x01, 0x81, 0x10, 0x42, 0x10, 0x10, 0x84, 0x10, 0x02, 0x01, 0x81, 0x10, 0x84, 0x20, 0x08, 0x42, 0x10, 0x02, 0x01, 0x81, 0x20, 0x84, 0xc0, 0x07, 0x42, 0x08, 0x02, 0x01, 0x01, 0x21, 0x04, 0x01, 0x00, 0x41, 0x08, 0x01, 0x01, 0x01, 0x21, 0x08, 0x02, 0x80, 0x20, 0x08, 0x01, 0x01, 0x01, 0x41, 0x08, 0x04, 0x40, 0x20, 0x04, 0x01, 0x01, 0x01, 0x42, 0x10, 0x18, 0x30, 0x10, 0x84, 0x00, 0x01, 0x01, 0x82, 0x20, 0xe0, 0x0f, 0x08, 0x82, 0x00, 0x01, 0x01, 0x82, 0x40, 0x00, 0x00, 0x04, 0x82, 0x00, 0x01, 0x01, 0x04, 0x81, 0x00, 0x00, 0x02, 0x41, 0x00, 0x01, 0x01, 0x08, 0x02, 0x03, 0x80, 0x81, 0x20, 0x00, 0x01, 0x01, 0x08, 0x04, 0x1c, 0x70, 0x40, 0x20, 0x00, 0x01, 0x01, 0x10, 0x08, 0xe0, 0x0f, 0x20, 0x10, 0x01, 0x01, 0x01, 0x21, 0x10, 0x00, 0x00, 0x10, 0x08, 0x01, 0x01, 0x01, 0x21, 0x60, 0x00, 0x00, 0x0c, 0x08, 0x02, 0x01, 0x81, 0x40, 0x80, 0x01, 0x00, 0x03, 0x04, 0x02, 0x01, 0x81, 0x80, 0x01, 0x0e, 0xe0, 0x00, 0x03, 0x02, 0x01, 0x81, 0x00, 0x02, 0xf0, 0x1f, 0x80, 0x00, 0x04, 0x01, 0x41, 0x00, 0x0c, 0x00, 0x00, 0x60, 0x00, 0x04, 0x01, 0x41, 0x00, 0x10, 0x00, 0x00, 0x10, 0x00, 0x04, 0x01, 0x41, 0x00, 0xe0, 0x00, 0x00, 0x0e, 0x00, 0x04, 0x01, 0x21, 0x00, 0x00, 0x07, 0xc0, 0x01, 0x00, 0x08, 0x01, 0x21, 0x00, 0x03, 0xf8, 0x3f, 0x80, 0x01, 0x08, 0x01, 0x21, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x08, 0x01, 0x11, 0x1e, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x10, 0x01, 0xd1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x01, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01}; xview-3.2p1.4/contrib/examples/dnd/bullseyeI.bm100644 1750 1750 7242 5413747642 16743 0ustar mbmb#define bullseye2_width 65 #define bullseye2_height 65 static char bullseye2_bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xce, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xfe, 0x2e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe9, 0xfe, 0xee, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xee, 0xfe, 0xde, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xf7, 0xfe, 0xde, 0x3f, 0xff, 0x07, 0xc0, 0xff, 0xf9, 0xf7, 0xfe, 0xde, 0xff, 0xfc, 0xf8, 0x3f, 0x7e, 0xfe, 0xf7, 0xfe, 0xbe, 0xff, 0x1f, 0xff, 0xff, 0xf1, 0xff, 0xfb, 0xfe, 0xbe, 0xff, 0xef, 0xff, 0xff, 0xef, 0xff, 0xfb, 0xfe, 0xbe, 0xff, 0xf3, 0xff, 0xff, 0x9f, 0xff, 0xfb, 0xfe, 0xbe, 0xff, 0xfd, 0x0f, 0xe0, 0x7f, 0xff, 0xfb, 0xfe, 0x7e, 0x7f, 0xfe, 0xf1, 0x1f, 0xff, 0xfc, 0xfd, 0xfe, 0x7e, 0xbf, 0x7f, 0xfe, 0xff, 0xfc, 0xfb, 0xfd, 0xfe, 0x7e, 0xdf, 0x9f, 0xff, 0xff, 0xf3, 0xf7, 0xfd, 0xfe, 0xfe, 0xde, 0xef, 0xff, 0xff, 0xef, 0xf7, 0xfe, 0xfe, 0xfe, 0xee, 0xf7, 0x1f, 0xf0, 0xdf, 0xef, 0xfe, 0xfe, 0xfe, 0xf7, 0xfb, 0xe3, 0x8f, 0xbf, 0xdf, 0xff, 0xfe, 0xfe, 0xf7, 0xfd, 0xfc, 0x7f, 0x7e, 0xdf, 0xff, 0xfe, 0xfe, 0xfb, 0x7e, 0xff, 0xff, 0xfd, 0xbe, 0xff, 0xfe, 0xfe, 0x7d, 0xbf, 0xff, 0xff, 0xfb, 0x7d, 0xff, 0xfe, 0xfe, 0x7d, 0xdf, 0x1f, 0xf0, 0xf7, 0x7d, 0xff, 0xfe, 0xfe, 0xbd, 0xef, 0xe7, 0xcf, 0xef, 0x7b, 0xff, 0xfe, 0xfe, 0xbe, 0xf7, 0xfb, 0xbf, 0xdf, 0xfb, 0xfe, 0xfe, 0xfe, 0xde, 0xf7, 0xfd, 0x7f, 0xdf, 0xf7, 0xfe, 0xfe, 0xfe, 0xde, 0xfb, 0xfe, 0xff, 0xbe, 0xf7, 0xfe, 0xfe, 0x7e, 0xdf, 0x7b, 0x3f, 0xf8, 0xbd, 0xf7, 0xfd, 0xfe, 0x7e, 0xef, 0x7b, 0xdf, 0xf7, 0xbd, 0xef, 0xfd, 0xfe, 0x7e, 0xef, 0xbd, 0xef, 0xef, 0x7b, 0xef, 0xfd, 0xfe, 0x7e, 0xef, 0xbd, 0xf7, 0xdf, 0x7b, 0xef, 0xfd, 0xfe, 0x7e, 0xef, 0xbd, 0xf7, 0xdf, 0x7b, 0xef, 0xfd, 0xfe, 0x7e, 0xef, 0xbd, 0xf7, 0xde, 0x7b, 0xef, 0xfd, 0xfe, 0x7e, 0xef, 0xbd, 0xf7, 0xdf, 0x7b, 0xef, 0xfd, 0xfe, 0x7e, 0xef, 0xbd, 0xf7, 0xdf, 0x7b, 0xef, 0xfd, 0xfe, 0x7e, 0xef, 0xbd, 0xef, 0xef, 0x7b, 0xef, 0xfd, 0xfe, 0x7e, 0xef, 0x7b, 0xdf, 0xf7, 0xbd, 0xef, 0xfd, 0xfe, 0x7e, 0xdf, 0x7b, 0x3f, 0xf8, 0xbd, 0xf7, 0xfd, 0xfe, 0xfe, 0xde, 0xfb, 0xfe, 0xff, 0xbe, 0xf7, 0xfe, 0xfe, 0xfe, 0xde, 0xf7, 0xfd, 0x7f, 0xdf, 0xf7, 0xfe, 0xfe, 0xfe, 0xbe, 0xf7, 0xfb, 0xbf, 0xdf, 0xfb, 0xfe, 0xfe, 0xfe, 0xbd, 0xef, 0xe7, 0xcf, 0xef, 0x7b, 0xff, 0xfe, 0xfe, 0x7d, 0xdf, 0x1f, 0xf0, 0xf7, 0x7d, 0xff, 0xfe, 0xfe, 0x7d, 0xbf, 0xff, 0xff, 0xfb, 0x7d, 0xff, 0xfe, 0xfe, 0xfb, 0x7e, 0xff, 0xff, 0xfd, 0xbe, 0xff, 0xfe, 0xfe, 0xf7, 0xfd, 0xfc, 0x7f, 0x7e, 0xdf, 0xff, 0xfe, 0xfe, 0xf7, 0xfb, 0xe3, 0x8f, 0xbf, 0xdf, 0xff, 0xfe, 0xfe, 0xef, 0xf7, 0x1f, 0xf0, 0xdf, 0xef, 0xfe, 0xfe, 0xfe, 0xde, 0xef, 0xff, 0xff, 0xef, 0xf7, 0xfe, 0xfe, 0xfe, 0xde, 0x9f, 0xff, 0xff, 0xf3, 0xf7, 0xfd, 0xfe, 0x7e, 0xbf, 0x7f, 0xfe, 0xff, 0xfc, 0xfb, 0xfd, 0xfe, 0x7e, 0x7f, 0xfe, 0xf1, 0x1f, 0xff, 0xfc, 0xfd, 0xfe, 0x7e, 0xff, 0xfd, 0x0f, 0xe0, 0x7f, 0xff, 0xfb, 0xfe, 0xbe, 0xff, 0xf3, 0xff, 0xff, 0x9f, 0xff, 0xfb, 0xfe, 0xbe, 0xff, 0xef, 0xff, 0xff, 0xef, 0xff, 0xfb, 0xfe, 0xbe, 0xff, 0x1f, 0xff, 0xff, 0xf1, 0xff, 0xfb, 0xfe, 0xde, 0xff, 0xff, 0xf8, 0x3f, 0xfe, 0xff, 0xf7, 0xfe, 0xde, 0xff, 0xfc, 0x07, 0xc0, 0x7f, 0xfe, 0xf7, 0xfe, 0xde, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xf7, 0xfe, 0xee, 0xe1, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xef, 0xfe, 0x2e, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe8, 0xfe, 0xce, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe}; xview-3.2p1.4/contrib/examples/dnd/dest.c100644 1750 1750 17640 5413747642 15614 0ustar mbmb/* * dest.c - Example of how to register interest in receiving drag and drop * events and how to complete a drag and drop operation. * */ #include #include #include #include #include #include #include #include #include #define DROP_WIDTH 65 #define DROP_HEIGHT 65 #define BULLSEYE_SITE 1 Frame frame; Canvas canvas; Panel panel; Xv_drop_site drop_site; Server_image drop_image; Server_image drop_image_inv; Panel_item p_string, p_length, p_host; Selection_requestor sel; int inverted; main(argc, argv) int argc; char **argv; { void EventProc(), PaintCanvas(), ResizeCanvas(); Xv_Font font; xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, 0); frame = xv_create((Window)NULL, FRAME, XV_X, 330, XV_Y, 10, XV_WIDTH, 10, XV_LABEL, "Drag & Drop Destination", 0); font = (Xv_Font)xv_find(frame, FONT, FONT_NAME, "lucida-12", NULL); if (!font) { fprintf(stderr, "Cannot use font: lucida-12.\n"); font = (Xv_Font)xv_get(frame, XV_FONT); } panel = xv_create(frame, PANEL, PANEL_LAYOUT, PANEL_VERTICAL, XV_FONT, font, 0); p_string = xv_create(panel, PANEL_TEXT, PANEL_LABEL_STRING, "Dropped Text:", PANEL_VALUE_DISPLAY_LENGTH, 50, 0); p_host = xv_create(panel, PANEL_TEXT, PANEL_LABEL_STRING, "From host:", PANEL_VALUE_DISPLAY_LENGTH, 15, 0); p_length = xv_create(panel, PANEL_TEXT, PANEL_LABEL_STRING, "Length:", PANEL_VALUE_DISPLAY_LENGTH, 6, 0); window_fit(panel); canvas = xv_create(frame, CANVAS, XV_HEIGHT, 100, XV_WIDTH, WIN_EXTEND_TO_EDGE, XV_X, 0, WIN_BELOW, panel, CANVAS_REPAINT_PROC, PaintCanvas, CANVAS_RESIZE_PROC, ResizeCanvas, CANVAS_X_PAINT_WINDOW, TRUE, 0); xv_set(canvas_paint_window(canvas), WIN_BIT_GRAVITY, ForgetGravity, WIN_CONSUME_EVENTS, WIN_RESIZE, 0, WIN_EVENT_PROC, EventProc, 0); drop_image = xv_create(NULL, SERVER_IMAGE, SERVER_IMAGE_BITMAP_FILE, "./bullseye.bm", 0); drop_image_inv = xv_create(NULL, SERVER_IMAGE, SERVER_IMAGE_BITMAP_FILE, "./bullseyeI.bm", 0); /* Selection requestor object that will be * passed into dnd_decode_drop() and later used * to make requests to the source of the * drop. */ sel = xv_create(canvas, SELECTION_REQUESTOR, 0); /* This application has one drop site with * site id BULLSEYE_SITE and whose shape will * be described by a rectangle. If * animation is supported, it would like to * receive LOC_DRAG, LOC_WINENTER and * LOC_WINEXIT events. */ drop_site = xv_create(canvas_paint_window(canvas), DROP_SITE_ITEM, DROP_SITE_ID, BULLSEYE_SITE, DROP_SITE_EVENT_MASK, DND_ENTERLEAVE, 0); inverted = False; window_fit(frame); xv_main_loop(frame); exit(0); } void EventProc(window, event) Xv_Window window; Event *event; { void PaintCanvas(); switch (event_action(event)) { /* When drop previewing is available, if * the drop site has selected for previewing * events (DROP_SITE_EVENT_MASK) then it will * receive ACTION_DRAG_PREVIEW events from * the source as requested. */ case ACTION_DRAG_PREVIEW: switch(event_id(event)) { case LOC_WINENTER: inverted = True; break; case LOC_WINEXIT: inverted = False; break; case LOC_DRAG: break; } PaintCanvas(NULL, window, XV_DISPLAY_FROM_WINDOW(window), xv_get(window, XV_XID), NULL); break; case ACTION_DRAG_COPY: case ACTION_DRAG_MOVE: { Xv_drop_site ds; Xv_Server server = XV_SERVER_FROM_WINDOW(event_window(event)); /* If the user dropped over an acceptable * drop site, the owner of the drop site will * be sent an ACTION_DROP_{COPY, MOVE} event. */ /* To acknowledge the drop and to associate the * rank of the source's selection to our * requestor selection object, we call * dnd_decode_drop(). */ if ((ds = dnd_decode_drop(sel, event)) != XV_ERROR) { /* We can use the macro dnd_site_id() to access * the site id of the drop site that was * dropped on. */ if (xv_get(ds, DROP_SITE_ID) == BULLSEYE_SITE) UpdatePanel(server, sel); /* If this is a move operation, we must ask * the source to delete the selection object. * We should only do this if the transfer of * data was successful. */ if (event_action(event) == ACTION_DRAG_MOVE) { int length, format; xv_set(sel, SEL_TYPE_NAME, "DELETE", 0); (void)xv_get(sel, SEL_DATA, &length, &format); } /* To complete the drag and drop operation, * we tell the source that we are all done. */ dnd_done(sel); inverted = False; PaintCanvas(NULL, window, XV_DISPLAY_FROM_WINDOW(window), xv_get(window, XV_XID), NULL); } else printf ("drop error\n"); break; } default: break; } } UpdatePanel(server, sel) Xv_Server server; Selection_requestor sel; { int length, format, *string_length; char buf[7], *string, *hostname; xv_set(sel, SEL_TYPE, XA_STRING, 0); string = (char *)xv_get(sel, SEL_DATA, &length, &format); if (length != SEL_ERROR) { xv_set(p_string, PANEL_VALUE, string, 0); free (string); } xv_set(sel, SEL_TYPE, xv_get(server, SERVER_ATOM, "LENGTH"), 0); string_length = (int *)xv_get(sel, SEL_DATA, &length, &format); if (length != SEL_ERROR) { sprintf(buf, "%d", *string_length); xv_set(p_length, PANEL_VALUE, buf, 0); free ((char *)string_length); } xv_set(sel, SEL_TYPE, xv_get(server, SERVER_ATOM, "HOST_NAME"), 0); hostname = (char *)xv_get(sel, SEL_DATA, &length, &format); if (length != SEL_ERROR) { xv_set(p_host, PANEL_VALUE, hostname, 0); free (hostname); } xv_set(sel, SEL_TYPE_NAME, "_SUN_SELECTION_END", 0); (void)xv_get(sel, SEL_DATA, &length, &format); } void PaintCanvas(canvas, paint_window, dpy, xwin, xrects) Canvas canvas; /* unused */ Xv_Window paint_window; /* unused */ Display *dpy; Window xwin; Xv_xrectlist *xrects; /* unused */ { static GC gc; static int gcCreated = False; static int lastMode = False; int width, height; int x, y; Rect *r; if (!gcCreated) { XGCValues gcv; gcv.stipple = (Pixmap) xv_get(drop_image, XV_XID); gcv.foreground = BlackPixel(dpy, XDefaultScreen(dpy)); gcv.background = WhitePixel(dpy, XDefaultScreen(dpy)); gcv.fill_style = FillStippled; gc = XCreateGC(dpy, xwin, GCStipple|GCForeground|GCBackground| GCFillStyle, &gcv); } if (lastMode != inverted) { if (!inverted) XSetStipple(dpy, gc, (Pixmap) xv_get(drop_image, XV_XID)); else XSetStipple(dpy, gc, (Pixmap) xv_get(drop_image_inv, XV_XID)); lastMode = inverted; } width = xv_get(paint_window, XV_WIDTH); height = xv_get(paint_window, XV_HEIGHT); x = (width/2)-(DROP_WIDTH/2); y = (height/2)-(DROP_HEIGHT/2); XClearArea(dpy, xwin, x, y, DROP_WIDTH, DROP_HEIGHT, False); XSetTSOrigin(dpy, gc, x, y); XFillRectangle(dpy, xwin, gc, x, y, DROP_WIDTH, DROP_HEIGHT); } void ResizeCanvas(canvas, width, height) Canvas canvas; int width; int height; { int x, y; Rect rect; x = (width/2)-(DROP_WIDTH/2); y = (height/2)-(DROP_HEIGHT/2); rect.r_left = x; rect.r_top = y; rect.r_width = DROP_WIDTH; rect.r_height = DROP_HEIGHT; /* Update the drop site information. */ xv_set(drop_site, DROP_SITE_DELETE_REGION_PTR, NULL, DROP_SITE_REGION, &rect, 0); } xview-3.2p1.4/contrib/examples/dnd/drop.icon100644 1750 1750 3715 5413747642 16305 0ustar mbmb/* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16 */ 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x3FF0,0x0000,0x0000,0x0000, 0x3FFC,0x0000,0x0000,0x0000, 0x0C0E,0x0000,0x0000,0x0000, 0x0C06,0x0000,0x0000,0x0000, 0x0C07,0x1E78,0x0FC1,0xEF80, 0x0C03,0x1FFC,0x3FF1,0xFFE0, 0x0C03,0x078C,0x3870,0x78E0, 0x0C03,0x0700,0x7038,0x7070, 0x0C03,0x0600,0x6018,0x6030, 0x0C03,0x0600,0x6018,0x6030, 0x0C03,0x0600,0x6018,0x6030, 0x0C06,0x0600,0x7038,0x7070, 0x0C0E,0x0600,0x3870,0x78E0, 0x3FFC,0x3FF0,0x3FF0,0x7FE0, 0x3FF8,0x3FF0,0x0FC0,0x6F80, 0x0000,0x0000,0x0000,0x6000, 0x0000,0x0000,0x0000,0x6000, 0x0000,0x0000,0x0000,0x6000, 0x0000,0x0000,0x0001,0xFC00, 0x0000,0x0000,0x0001,0xFC00, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0002,0x0000,0x0000, 0x0000,0x0002,0x0000,0x0000, 0x0000,0x0002,0x0000,0x0000, 0x0000,0x0002,0x0000,0x0000, 0x0000,0x0002,0x0000,0x0000, 0x0000,0x03FF,0xFE00,0x0000, 0x0000,0x0002,0x0000,0x0000, 0x0000,0x0002,0x0000,0x0000, 0x0000,0x0002,0x0000,0x0000, 0x0000,0x0002,0x0000,0x0000, 0x0000,0x0002,0x0000,0x0000, 0x0000,0x0002,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x3F3F,0x0000,0x0000,0x0000, 0x3F3F,0x0000,0x0000,0x0000, 0x0C0C,0x0000,0x0000,0x0000, 0x0C0C,0x0000,0x0000,0x0000, 0x0C0C,0x07E0,0x3CF0,0x1F80, 0x0C0C,0x1FF8,0x3FF8,0x7FE0, 0x0FFC,0x1C38,0x0F18,0x70E0, 0x0FFC,0x381C,0x0E00,0xE070, 0x0C0C,0x300C,0x0C00,0xC030, 0x0C0C,0x3FFC,0x0C00,0xFFF0, 0x0C0C,0x3FFC,0x0C00,0xFFF0, 0x0C0C,0x3800,0x0C00,0xE000, 0x0C0C,0x1C1C,0x0C00,0x7070, 0x3F3F,0x1FFC,0x7FE0,0x7FF0, 0x3F3F,0x07F0,0x7FE0,0x1FC0, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000 xview-3.2p1.4/contrib/examples/dnd/source1.c100644 1750 1750 23406 6331115756 16226 0ustar mbmb/* * source1.c - Example of how to source a drag and drop operation. * */ #include #include #include #include #include #include #include #include #include #include #include #include unsigned short drop_icon[] = { #include "./drop.icon" }; #if defined(__linux) && !defined(NBBY) #define NBBY 8 #endif #define POINT_IN_RECT(px, py, rx, ry, rw, rh) \ ((px) >= rx && (py) >= ry && \ (px) < rx+rw && (py) < ry+rh) #define STRING_MSG "chromosome: DNA-containing body of the cell nucleus." #define HOST 0 #define STRING 1 #define LENGTH 2 Frame frame; Canvas canvas; Dnd dnd; Cursor arrow_cursor; Server_image arrow_image; Server_image arrow_image_mask; Server_image box_image; Server_image drop_here_image; Cursor drop_here_cursor; Selection_owner sel; Selection_item selItem[5]; Atom selAtom[5]; int SelectionConvert(); extern int sel_convert_proc(); static XColor fg = {0L, 65535, 65535, 65535}; static XColor bg = {0L, 0, 0, 0}; typedef struct _DragObject { Server_image image; int x, y; unsigned int w, h; int inverted; } DragObject; DragObject dO; main(argc, argv) int argc; char **argv; { void EventProc(), SelectionLose(), PaintCanvas(); Xv_Server server; Cursor arror_cursor; server = xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, 0); frame = xv_create((Window)NULL, FRAME, XV_LABEL, "Drag & Drop Source", XV_X, 10, XV_Y, 10, FRAME_SHOW_FOOTER, True, 0); canvas = xv_create(frame, CANVAS, XV_HEIGHT, 100, XV_WIDTH, 300, CANVAS_REPAINT_PROC, PaintCanvas, CANVAS_X_PAINT_WINDOW, TRUE, 0); xv_set(canvas_paint_window(canvas), WIN_BIT_GRAVITY, ForgetGravity, WIN_CONSUME_EVENTS, WIN_MOUSE_BUTTONS, LOC_DRAG, WIN_RESIZE, 0, WIN_EVENT_PROC, EventProc, 0); /* Create the drag cursor images */ arrow_image = xv_create(NULL, SERVER_IMAGE, SERVER_IMAGE_BITMAP_FILE, "arrow.bm", NULL); arrow_image_mask = xv_create(NULL, SERVER_IMAGE, SERVER_IMAGE_BITMAP_FILE, "arrow_mask.bm", NULL); /* Create a cursor to use in dnd ops. */ arrow_cursor = XCreatePixmapCursor(XV_DISPLAY_FROM_WINDOW(canvas), (XID)xv_get(arrow_image, XV_XID), (XID)xv_get(arrow_image_mask, XV_XID), &fg, &bg, 61, 3); drop_here_image = xv_create(NULL, SERVER_IMAGE, XV_WIDTH, 64, XV_HEIGHT, 64, SERVER_IMAGE_BITS, drop_icon, 0); drop_here_cursor = XCreatePixmapCursor(XV_DISPLAY_FROM_WINDOW(canvas), (XID)xv_get(drop_here_image, XV_XID), (XID)xv_get(drop_here_image, XV_XID), &fg, &bg, 32, 32); dO.image = xv_create(NULL, SERVER_IMAGE, SERVER_IMAGE_BITMAP_FILE, "arrowb.bm", NULL); dO.w = xv_get(dO.image, XV_WIDTH); dO.h = xv_get(dO.image, XV_HEIGHT); dO.inverted = False; CreateSelection(server, canvas_paint_window(canvas)); window_fit(frame); xv_main_loop(frame); exit(0); } CreateSelection(server, window) Xv_Server server; Xv_object window; { char name[15]; int len; void SelectionLose(); /* Primary selection, acquired whenever the arrow * bitmap is selected by the user. * This is not a requirement for dnd to work. */ sel = xv_create(window, SELECTION_OWNER, SEL_RANK, XA_PRIMARY, SEL_LOSE_PROC, SelectionLose, 0); /* Create the drag and drop object. */ dnd = xv_create(window, DRAGDROP, DND_TYPE, DND_COPY, DND_X_CURSOR, arrow_cursor, DND_ACCEPT_X_CURSOR, drop_here_cursor, SEL_CONVERT_PROC, SelectionConvert, 0); /* Associate some selection items with the dnd object.*/ (void) gethostname(name, 15); selAtom[HOST] = (Atom)xv_get(server, SERVER_ATOM, "HOST_NAME"); selItem[HOST] = xv_create(dnd, SELECTION_ITEM, SEL_TYPE, selAtom[HOST], SEL_DATA, (Xv_opaque)name, 0); selAtom[STRING] = (Atom)XA_STRING; selItem[STRING] = xv_create(dnd, SELECTION_ITEM, SEL_TYPE, selAtom[STRING], SEL_DATA, (Xv_opaque)STRING_MSG, 0); len = strlen(STRING_MSG); selAtom[LENGTH] = (Atom)xv_get(server, SERVER_ATOM, "LENGTH"); selItem[LENGTH] = xv_create(dnd, SELECTION_ITEM, SEL_TYPE, selAtom[LENGTH], SEL_FORMAT, sizeof(int)*NBBY, SEL_LENGTH, 1, SEL_DATA, (Xv_opaque)&len, 0); } void EventProc(window, event) Xv_Window window; Event *event; { static int drag_pixels = 0; static int dragging = False; switch (event_action(event)) { case ACTION_SELECT: if (event_is_down(event)) { dragging = False; /* If the user selected our dnd object, highlight * the box and acquire the primary selection. */ if (POINT_IN_RECT(event_x(event), event_y(event), dO.x, dO.y, dO.w, dO.h)) { xv_set(sel, SEL_OWN, True, 0); dO.inverted = True; PaintObject(dO, xv_get(window, XV_XID), XV_DISPLAY_FROM_WINDOW(window)); } else /* If the user selected outside of the dnd object, * de-highlight the object. And release the primary * selection. */ xv_set(sel, SEL_OWN, False, 0); } else drag_pixels = 0; break; case LOC_DRAG: /* If the user dragged at least five pixel over our * dnd object, begin the dnd operation. */ if (event_left_is_down(event)) { if (POINT_IN_RECT(event_x(event), event_y(event),dO.x,dO.y,dO.w,dO.h)) dragging = True; if (dragging && drag_pixels++ == 5) { xv_set(frame, FRAME_LEFT_FOOTER, "Drag and Drop:", 0); switch (dnd_send_drop(dnd)) { case XV_OK: xv_set(frame, FRAME_LEFT_FOOTER, "Drag and Drop: Began", 0); break; case DND_TIMEOUT: xv_set(frame, FRAME_LEFT_FOOTER, "Drag and Drop: Timed Out",0); break; case DND_ILLEGAL_TARGET: xv_set(frame, FRAME_LEFT_FOOTER, "Drag and Drop: Illegal Target",0); break; case DND_SELECTION: xv_set(frame, FRAME_LEFT_FOOTER, "Drag and Drop: Bad Selection",0); break; case DND_ROOT: xv_set(frame, FRAME_LEFT_FOOTER, "Drag and Drop: Root Window",0); break; case XV_ERROR: xv_set(frame, FRAME_LEFT_FOOTER, "Drag and Drop: Failed",0); break; } drag_pixels = 0; } } break; } } PaintObject(object, win, dpy) DragObject object; Window win; Display *dpy; { static GC gc; static int gcCreated = False; if (!gcCreated) { XGCValues gcv; gcv.stipple = (Pixmap) xv_get(object.image, XV_XID); gcv.fill_style = FillStippled; gc = XCreateGC(dpy, win, GCStipple|GCForeground|GCBackground| GCFillStyle, &gcv); XSetForeground(dpy, gc, BlackPixel(dpy, XDefaultScreen(dpy))); XSetBackground(dpy, gc, WhitePixel(dpy, XDefaultScreen(dpy))); } if (object.inverted) { XSetFillStyle(dpy, gc, FillSolid); XDrawRectangle(dpy, win, gc, object.x-1, object.y-1, 66, 66); XSetFillStyle(dpy, gc, FillStippled); } else XClearWindow(dpy, win); XSetTSOrigin(dpy, gc, object.x, object.y); XFillRectangle(dpy, win, gc, object.x, object.y, 65, 65); } void PaintCanvas(canvas, paint_window, dpy, xwin, xrects) Canvas canvas; /* unused */ Xv_Window paint_window; /* unused */ Display *dpy; Window xwin; Xv_xrectlist *xrects; /* unused */ { unsigned width, height; int x, y; width = xv_get(paint_window, XV_WIDTH); height = xv_get(paint_window, XV_HEIGHT); x = (width/2)-(dO.w/2); y = (height/2)-(dO.h/2); dO.x = x; dO.y = y; PaintObject(dO, xwin, dpy); } /* The convert proc is called whenever someone makes a request to the dnd * selection. Two cases we handle within the convert proc: DELETE and * _SUN_DRAGDROP_DONE. Everything else we pass on to the default convert * proc which knows about our selection items. */ int SelectionConvert(seln, type, data, length, format) Selection_owner seln; Atom *type; Xv_opaque *data; unsigned long *length; int *format; { Xv_Server server = XV_SERVER_FROM_WINDOW(xv_get(seln, XV_OWNER)); if (*type == (Atom)xv_get(server, SERVER_ATOM, "_SUN_SELECTION_END")) { /* Destination has told us it has completed the drag * and drop transaction. We should respond with a * zero-length NULL reply. */ xv_set(dnd, SEL_OWN, False, 0); xv_set(frame, FRAME_LEFT_FOOTER, "Drag and Drop: Completed",0); *format = 32; *length = 0; *data = NULL; *type = (Atom)xv_get(server, SERVER_ATOM, "NULL"); return(True); } else if (*type == (Atom)xv_get(server, SERVER_ATOM, "DELETE")) { /* Destination asked us to delete the selection. * If it is appropriate to do so, we should. */ *format = 32; *length = 0; *data = NULL; *type = (Atom)xv_get(server, SERVER_ATOM, "NULL"); return(True); } else /* Let the default convert procedure deal with the * request. */ return(sel_convert_proc(seln, type, data, length, format)); } /* When we lose the primary selection, this procedure is called. We dehigh- * light our selection. */ void SelectionLose(seln) Selection_owner seln; { Xv_Window owner = xv_get(seln, XV_OWNER); if (xv_get(seln, SEL_RANK) == XA_PRIMARY) { dO.inverted = False; PaintObject(dO, xv_get(owner, XV_XID), XV_DISPLAY_FROM_WINDOW(owner)); } } xview-3.2p1.4/contrib/examples/dnd/source2.c100644 1750 1750 23405 6331115756 16226 0ustar mbmb/* * source2.c - Example of how to source a drag and drop operation. * */ #include #include #include #include #include #include #include #include #include #include #include #include unsigned short drop_icon[] = { #include "./drop.icon" }; #if defined(__linux) && !defined(NBBY) #define NBBY 8 #endif #define POINT_IN_RECT(px, py, rx, ry, rw, rh) \ ((px) >= rx && (py) >= ry && \ (px) < rx+rw && (py) < ry+rh) #define STRING_MSG "fe-line: adj. Of the cat family; catlike; sly." #define HOST 0 #define STRING 1 #define LENGTH 2 Frame frame; Canvas canvas; Dnd dnd; Cursor arrow_cursor; Server_image arrow_image; Server_image arrow_image_mask; Server_image box_image; Server_image drop_here_image; Cursor drop_here_cursor; Selection_owner sel; Selection_item selItem[5]; Atom selAtom[5]; int SelectionConvert(); extern int sel_convert_proc(); static XColor fg = {0L, 65535, 65535, 0}; static XColor bg = {0L, 65535, 0, 0}; typedef struct _DragObject { Server_image image; int x, y; unsigned int w, h; int inverted; } DragObject; DragObject dO; main(argc, argv) int argc; char **argv; { void EventProc(), SelectionLose(), PaintCanvas(); Xv_Server server; Cursor arrow_cursor; server = xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, 0); frame = xv_create((Window)NULL, FRAME, XV_LABEL, "Drag & Drop Source", XV_X, 10, XV_Y, 10, FRAME_SHOW_FOOTER, True, 0); canvas = xv_create(frame, CANVAS, XV_HEIGHT, 100, XV_WIDTH, 300, CANVAS_REPAINT_PROC, PaintCanvas, CANVAS_X_PAINT_WINDOW, TRUE, 0); xv_set(canvas_paint_window(canvas), WIN_BIT_GRAVITY, ForgetGravity, WIN_CONSUME_EVENTS, WIN_MOUSE_BUTTONS, LOC_DRAG, WIN_RESIZE, 0, WIN_EVENT_PROC, EventProc, 0); /* Create the drag cursor images */ arrow_image = xv_create(NULL, SERVER_IMAGE, SERVER_IMAGE_BITMAP_FILE, "arrow2.bm", NULL); arrow_image_mask = xv_create(NULL, SERVER_IMAGE, SERVER_IMAGE_BITMAP_FILE, "arrow2_mask.bm", NULL); /* Create a cursor to use in dnd ops. */ arrow_cursor = XCreatePixmapCursor(XV_DISPLAY_FROM_WINDOW(canvas), (XID)xv_get(arrow_image, XV_XID), (XID)xv_get(arrow_image_mask, XV_XID), &fg, &bg, 4, 4); drop_here_image = xv_create(NULL, SERVER_IMAGE, XV_WIDTH, 64, XV_HEIGHT, 64, SERVER_IMAGE_BITS, drop_icon, 0); drop_here_cursor = XCreatePixmapCursor(XV_DISPLAY_FROM_WINDOW(canvas), (XID)xv_get(drop_here_image, XV_XID), (XID)xv_get(drop_here_image, XV_XID), &fg, &bg, 32, 32); dO.image = xv_create(NULL, SERVER_IMAGE, SERVER_IMAGE_BITMAP_FILE, "arrowb2.bm", NULL); dO.w = xv_get(dO.image, XV_WIDTH); dO.h = xv_get(dO.image, XV_HEIGHT); dO.inverted = False; CreateSelection(server, canvas_paint_window(canvas)); window_fit(frame); xv_main_loop(frame); exit(0); } CreateSelection(server, window) Xv_Server server; Xv_object window; { char name[15]; int len; void SelectionLose(); /* Primary selection, acquired whenever the arrow * bitmap is selected by the user. * This is not a requirement for dnd to work. */ sel = xv_create(window, SELECTION_OWNER, SEL_RANK, XA_PRIMARY, SEL_LOSE_PROC, SelectionLose, 0); /* Create the drag and drop object. */ dnd = xv_create(window, DRAGDROP, DND_TYPE, DND_COPY, DND_X_CURSOR, arrow_cursor, DND_ACCEPT_X_CURSOR, drop_here_cursor, SEL_CONVERT_PROC, SelectionConvert, 0); /* Associate some selection items with the dnd object.*/ (void) gethostname(name, 15); selAtom[HOST] = (Atom)xv_get(server, SERVER_ATOM, "HOST_NAME"); selItem[HOST] = xv_create(dnd, SELECTION_ITEM, SEL_TYPE, selAtom[HOST], SEL_DATA, (Xv_opaque)name, 0); selAtom[STRING] = (Atom)XA_STRING; selItem[STRING] = xv_create(dnd, SELECTION_ITEM, SEL_TYPE, selAtom[STRING], SEL_DATA, (Xv_opaque)STRING_MSG, 0); len = strlen(STRING_MSG); selAtom[LENGTH] = (Atom)xv_get(server, SERVER_ATOM, "LENGTH"); selItem[LENGTH] = xv_create(dnd, SELECTION_ITEM, SEL_TYPE, selAtom[LENGTH], SEL_FORMAT, sizeof(int)*NBBY, SEL_LENGTH, 1, SEL_DATA, (Xv_opaque)&len, 0); } void EventProc(window, event) Xv_Window window; Event *event; { static int drag_pixels = 0; static int dragging = False; switch (event_action(event)) { case ACTION_SELECT: if (event_is_down(event)) { dragging = False; /* If the user selected our dnd object, highlight * the box and acquire the primary selection. */ if (POINT_IN_RECT(event_x(event), event_y(event), dO.x, dO.y, dO.w, dO.h)) { xv_set(sel, SEL_OWN, True, 0); dO.inverted = True; PaintObject(dO, xv_get(window, XV_XID), XV_DISPLAY_FROM_WINDOW(window)); } else /* If the user selected outside of the dnd object, * de-highlight the object. And release the primary * selection. */ xv_set(sel, SEL_OWN, False, 0); } else drag_pixels = 0; break; case LOC_DRAG: /* If the user dragged at least five pixel over our * dnd object, begin the dnd operation. */ if (event_left_is_down(event)) { if (POINT_IN_RECT(event_x(event), event_y(event),dO.x,dO.y,dO.w,dO.h)) dragging = True; if (dragging && drag_pixels++ == 5) { xv_set(frame, FRAME_LEFT_FOOTER, "Drag and Drop:", 0); switch (dnd_send_drop(dnd)) { case XV_OK: xv_set(frame, FRAME_LEFT_FOOTER, "Drag and Drop: Began", 0); break; case DND_TIMEOUT: xv_set(frame, FRAME_LEFT_FOOTER, "Drag and Drop: Timed Out",0); break; case DND_ILLEGAL_TARGET: xv_set(frame, FRAME_LEFT_FOOTER, "Drag and Drop: Illegal Target",0); break; case DND_SELECTION: xv_set(frame, FRAME_LEFT_FOOTER, "Drag and Drop: Bad Selection",0); break; case DND_ROOT: xv_set(frame, FRAME_LEFT_FOOTER, "Drag and Drop: Root Window",0); break; case XV_ERROR: xv_set(frame, FRAME_LEFT_FOOTER, "Drag and Drop: Failed",0); break; } drag_pixels = 0; } } break; } } PaintObject(object, win, dpy) DragObject object; Window win; Display *dpy; { static GC gc; static int gcCreated = False; if (!gcCreated) { XGCValues gcv; gcv.stipple = (Pixmap) xv_get(object.image, XV_XID); gcv.fill_style = FillStippled; gc = XCreateGC(dpy, win, GCStipple|GCForeground|GCBackground| GCFillStyle, &gcv); XSetForeground(dpy, gc, BlackPixel(dpy, XDefaultScreen(dpy))); XSetBackground(dpy, gc, WhitePixel(dpy, XDefaultScreen(dpy))); } if (object.inverted) { XSetFillStyle(dpy, gc, FillSolid); XDrawRectangle(dpy, win, gc, object.x-1, object.y-1, 66, 66); XSetFillStyle(dpy, gc, FillStippled); } else XClearWindow(dpy, win); XSetTSOrigin(dpy, gc, object.x, object.y); XFillRectangle(dpy, win, gc, object.x, object.y, 65, 65); } void PaintCanvas(canvas, paint_window, dpy, xwin, xrects) Canvas canvas; /* unused */ Xv_Window paint_window; /* unused */ Display *dpy; Window xwin; Xv_xrectlist *xrects; /* unused */ { unsigned width, height; int x, y; width = xv_get(paint_window, XV_WIDTH); height = xv_get(paint_window, XV_HEIGHT); x = (width/2)-(dO.w/2); y = (height/2)-(dO.h/2); dO.x = x; dO.y = y; PaintObject(dO, xwin, dpy); } /* The convert proc is called whenever someone makes a request to the dnd * selection. Two cases we handle within the convert proc: DELETE and * _SUN_DRAGDROP_DONE. Everything else we pass on to the default convert * proc which knows about our selection items. */ int SelectionConvert(seln, type, data, length, format) Selection_owner seln; Atom *type; Xv_opaque *data; unsigned long *length; int *format; { Xv_Server server = XV_SERVER_FROM_WINDOW(xv_get(seln, XV_OWNER)); if (*type == (Atom)xv_get(server, SERVER_ATOM, "_SUN_SELECTION_END")) { /* Destination has told us it has completed the drag * and drop transaction. We should respond with a * zero-length NULL reply. */ xv_set(dnd, SEL_OWN, False, 0); xv_set(frame, FRAME_LEFT_FOOTER, "Drag and Drop: Completed",0); *format = 32; *length = 0; *data = NULL; *type = (Atom)xv_get(server, SERVER_ATOM, "NULL"); return(True); } else if (*type == (Atom)xv_get(server, SERVER_ATOM, "DELETE")) { /* Destination asked us to delete the selection. * If it is appropriate to do so, we should. */ *format = 32; *length = 0; *data = NULL; *type = (Atom)xv_get(server, SERVER_ATOM, "NULL"); return(True); } else /* Let the default convert procedure deal with the * request. */ return(sel_convert_proc(seln, type, data, length, format)); } /* When we lose the primary selection, this procedure is called. We dehigh- * light our selection. */ void SelectionLose(seln) Selection_owner seln; { Xv_Window owner = xv_get(seln, XV_OWNER); if (xv_get(seln, SEL_RANK) == XA_PRIMARY) { dO.inverted = False; PaintObject(dO, xv_get(owner, XV_XID), XV_DISPLAY_FROM_WINDOW(owner)); } } xview-3.2p1.4/contrib/examples/Makefile.customer100644 1750 1750 1731 5413747562 17217 0ustar mbmb# # @(#)Makefile.customer 1.16 91/09/14 # # Makefile for the example programs for XView programmers # OSTYPE = SUNOS5 INCLUDE = -I${OPENWINHOME}/include # # If you want to compile for debugging, change "-O" to "-g" # CFLAGS_SUNOS41 = ${INCLUDE} -O CFLAGS_SUNOS5 = ${INCLUDE} -DSVR4 -O CFLAGS = $(CFLAGS_$(OSTYPE)) # if you want special to pass special loader options to ld, set # LDFLAGS= ... # XVIEW_LIBS = -L${OPENWINHOME}/usr/lib \ -lxview -lolgx -lX11 SUBDIRS = canvas \ color \ cursor \ defaults \ dnd \ extensions \ fonts \ frames \ icons \ menus \ misc \ notice \ notifier \ panels \ scrollbar \ selection \ seln_svc \ sv_compat \ textsw \ ttysw all: -@for i in ${SUBDIRS}; do \ ( echo "<<< Descending into directory: $$i >>>"; \ cd $$i; \ ${MAKE} ${MFLAGS} "OPENWINHOME=$(OPENWINHOME)" all; \ cd ..; \ ); done clean: rm -f core ${OBJS} *.o xview-3.2p1.4/contrib/examples/Makefile.doc100644 1750 1750 3553 5413747562 16127 0ustar mbmb# @(#)Makefile.doc 1.5 91/09/14 Copyright 1987 Sun Micro # Makefile for the code/programs subdirectory. # INTERNAL USE ONLY! # Used to generate the code examples included in the manual. # This grabs the program from the actual source SCCS directory, # then generates a "progname.cmod" file that can be # included in troff manuals using ".so progname.cmod". # To do this it: # o changes "\" to "\e" # o changes ^L to ".bp" -- only works if table is inside a # .LS no # in troff. # o expands tabs # # Notes: # o If you use .LS 4 in the manual, then the program will look different # in the manual -- tabs will come out closer together. # o You have to have an SCCS link to the right place for the programs. # This means that the Makefile for making the troff version can't # come from that directory ?? # # Ideas: # Have it count and warn how many lines are between ^L/.bp's EXAMPLE_PROGS = \ filer.cmod \ image_browser_1.cmod \ image_browser_2.cmod \ tty_io.cmod \ font_menu.cmod \ resize_demo.cmod \ dctool.cmod \ typein.cmod \ coloredit.cmod \ animatecolor.cmod \ bounce.cmod \ spheres.cmod OTHER_PROGS = \ hello_world.cmod \ simple_panel.cmod \ lister.cmod \ simple_canvas.cmod \ canvas_repaint.cmod \ canvas_input.cmod \ showcolor.cmod PROGS = \ $(EXAMPLE_PROGS) \ $(OTHER_PROGS) pixwin.progs: showcolor.cmod allcmod: $(PROGS) .SUFFIXES: .cmod .dit .chk .c.cmod: expand $< | sed -e 's/\\/\\e/g' -e 's/ /.bp/' > $@ # This would be much easier with the System V echo which gives me # multiple newlines! Oh well, .cmod.dit: # take a look at the table (echo '.PL RIGHT' ; \ echo '.LP' ; \ echo 'Hello there; here is $< ' ; \ echo '.BS' ; \ echo '.LS no 4' ; \ echo '.so $<' ; \ echo '.LE' ; \ echo '.BE' ; \ echo '.LP' ; \ echo 'Well, did it work' ) | \ troff -mex -t > $@ .cmod.chk: checklen2 76 $< clean: rm -f $(UTIL_PROGS) *.cmod xview-3.2p1.4/contrib/examples/Imakefile100644 1750 1750 1202 5413747562 15521 0ustar mbmb#include /**/########################################################################## /**/# @(#)Imakefile 1.4 1/7/92 SMI /**/# Imakefile for contrib/examples directory. #define IHaveSubdirs #define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)' SUBDIRS = canvas color cursor defaults dnd extensions fonts frames \ icons menus misc notice notifier panels scrollbar selection \ seln_svc sv_compat textsw ttysw DIRS_TO_CREATE = $(SRC_DEST)/examples MakeSubdirs($(SUBDIRS)) DependSubdirs($(SUBDIRS)) MakeDirectories(install, $(DIRS_TO_CREATE)) PopulateSubdirs($(SUBDIRS)) InstallSrcsSubdirs($(SUBDIRS)) xview-3.2p1.4/contrib/Imakefile100644 1750 1750 720 5413747643 13667 0ustar mbmb#include /**/########################################################################## /**/# @(#)Imakefile 1.7 28 Jun 1993 SMI /**/# Imakefile for contrib directory. #define IHaveSubdirs #define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)' SUBDIRS = examples DIRS_TO_CREATE = $(SRC_DEST) MakeSubdirs($(SUBDIRS)) DependSubdirs($(SUBDIRS)) MakeDirectories(install, $(DIRS_TO_CREATE)) InstallSrcsSubdirs($(SUBDIRS)) PopulateSubdirs($(SUBDIRS)) xview-3.2p1.4/contrib/misc/ 40755 1750 1750 0 6331752771 12733 5ustar mbmbxview-3.2p1.4/contrib/misc/Xinitrc100755 1750 1750 2766 6331440334 14376 0ustar mbmb#!/bin/sh # Xinitrc executed by openwin script to display startup logo # and restore desktop setup (saved using owplaces) # Hereby placed into public domain by Kenneth Osterberg 1993. # Display startup logo #if [ -x $OPENWINHOME/bin/xcenter -a -f $OPENWINHOME/etc/lxxview.xbm ]; then # $OPENWINHOME/bin/xcenter -bitcenter $OPENWINHOME/etc/lxxview.xbm && sleep 2 #fi #if [ -z "$NOPAINT" ]; then #echo olvwm.PaintWorkspace: False | xrdb -merge #xv -root -quit /home/snowcat/gif/oceanflr.bmp #else #unset NOPAINT #fi userresources=$HOME/.Xresources xviewresources=$HOME/.Xdefaults usermodmap=$HOME/.Xmodmap sysresources=$X11HOME/lib/X11/xinit/.Xresources sysmodmap=$X11HOME/lib/X11/xinit/.Xmodmap # merge in defaults and keymaps if [ -f $sysresources ]; then xrdb -merge $sysresources fi if [ -f $sysmodmap ]; then xmodmap $sysmodmap fi if [ -f $userresources ]; then xrdb -merge $userresources fi if [ -f $xviewresources ]; then xrdb -merge $xviewresources fi if [ -f $usermodmap ]; then xmodmap $usermodmap fi # I *think* this might be the cause of the notorius backspace # problem. I'm tossing it out... # # xmodmap -e "keysym BackSpace = Delete" # Restore saved desktop settings, if any if [ -f $HOME/.openwin-init ]; then . $HOME/.openwin-init fi # Run .xinitrc of user if there is one if [ -x $HOME/.xinitrc ]; then exec $HOME/.xinitrc fi # Startup the OpenLook window manager if [ ! -z "$WINDOWMANAGER" ]; then exec $WINDOWMANAGER -f else exec ${OPENWINHOME-/usr/openwin}/bin/olwm -f fi xview-3.2p1.4/contrib/misc/openwin100755 1750 1750 2506 6331115756 14434 0ustar mbmb#!/bin/sh # Start "OpenWindows", i.e. Xfree and ol[v]wm, by K.Osterberg, 1993 export XAPPLRESDIR MANPATH HELPPATH OPENWINHOME WINDOWMANAGER X11HOME if [ -z "$OPENWINHOME" ]; then if [ ! -d /usr/openwin ]; then echo "openwin: /usr/openwin does not exist, cannot start" exit 1 fi OPENWINHOME=/usr/openwin fi if [ -z "$X11HOME" ]; then if [ ! -d /usr/X11R6 ]; then echo "openwin: /usr/X11R6 does not exist, cannot start" exit 1 fi X11HOME=/usr/X11R6 fi if [ -z `echo "$PATH" | grep openwin` ]; then PATH=$OPENWINHOME/bin:$PATH fi if [ -z "$MANPATH" ]; then MANPATH=${X11HOME}/man:${OPENWINHOME}/man:/usr/local/man:/usr/man else MANPATH=${MANPATH}:${OPENWINHOME}/man fi if [ -z "$HELPPATH" ]; then HELPPATH=${OPENWINHOME}/lib/help else HELPPATH=$HELPPATH:${OPENWINHOME}/lib/help fi if [ -z "$XAPPLRESDIR" ]; then XAPPLRESDIR=${OPENWINHOME}/lib/app-defaults else XAPPLRESDIR=$XAPPLRESDIR:${OPENWINHOME}/lib/app-defaults fi if [ -z "$WINDOWMANAGER" ]; then WINDOWMANAGER=$OPENWINHOME/bin/olvwm fi if [ "$XDM" = "running" ]; then # X is already running (e.g. this file was called from xdm) # so just run openwin's Xinitrc exec $OPENWINHOME/lib/Xinitrc else if [ -x $X11HOME/bin/startx ]; then exec $X11HOME/bin/startx $OPENWINHOME/lib/Xinitrc -- fi exec startx $OPENWINHOME/lib/Xinitrc -- fi xview-3.2p1.4/contrib/misc/openwin-menu100644 1750 1750 1446 6331115756 15375 0ustar mbmb# # @(#)openwin-menu 23.15 91/09/14 openwin-menu # # OpenWindows default root menu file - top level menu # "Workspace" TITLE "Shells " MENU $OPENWINHOME/lib/openwin-menu-s "Editors " MENU $OPENWINHOME/lib/openwin-menu-e "Tools " MENU $OPENWINHOME/lib/openwin-menu-t "Games " MENU $OPENWINHOME/lib/openwin-menu-g "Utilities " MENU $OPENWINHOME/lib/openwin-menu-u #"Slingshot Examples " MENU $OPENWINHOME/lib/openwin-ss-ex #"UIT Examples " MENU $OPENWINHOME/lib/openwin-uit "Properties " PROPERTIES SEPARATOR "X11 Programs " DIRMENU /usr/X11R6/bin "XView Programs " DIRMENU $OPENWINHOME/bin "XV" exec /usr/X11R6/bin/xv "Window Menu " WINMENU SEPARATOR "Screensaver " MENU $OPENWINHOME/lib/openwin-menu-screensave "Lock Screen " MENU $OPENWINHOME/lib/openwin-menu-xlock "Exit" EXIT xview-3.2p1.4/contrib/misc/openwin-menu-clocks100644 1750 1750 276 6331115756 16631 0ustar mbmb"Clocks" TITLE PIN "Oclock (Invisible Frame)" DEFAULT exec /usr/X11R6/bin/oclock "Clock (OpenLook)" exec $OPENWINHOME/bin/clock "Standard Xclock" exec /usr/X11R6/bin/xclock xview-3.2p1.4/contrib/misc/props-locale.C100644 1750 1750 663 6331752627 15521 0ustar mbmb# # @(#)C 1.3 91/09/14;SMI # # Workspace Properties localization panel configuration file - Specific Setting # Specific Settings for the C locale # # LC_MESSAGES="C" -> display language is English # Basic_Locale="C" -> basic locale setting is English # # Category_name=default_value,value:label[[,value:label]...] # input_language=C;C|English display_language=C;C|English time_format=C;C|12/31/89 21:30:30 numeric_format=C;C|10,000.0 xview-3.2p1.4/contrib/misc/openwin-menu-d100644 1750 1750 674 6331115756 15600 0ustar mbmb"Demos" TITLE PIN "Ico (Bouncing Polygon)" exec /usr/X11R6/bin/ico "Maze " exec /usr/X11R6/bin/maze "Puzzle..." exec /usr/X11R6/bin/puzzle "Xeyes (Follow Your Mouse)" exec /usr/X11R6/bin/xeyes "Xfontsel..." exec /usr/X11R6/bin/xfontsel "Xgas (Gas Particle Simulator)" exec /usr/X11R6/bin/xgas "Xlogo" exec /usr/X11R6/bin/xlogo "Xroach (Insect Infestation)" exec /usr/X11R6/bin/xroach xview-3.2p1.4/contrib/misc/openwin-menu-e100644 1750 1750 336 6331115756 15574 0ustar mbmb"Editors" TITLE PIN "Textedit (OpenWindows Text Editor)" DEFAULT exec $OPENWINHOME/bin/textedit "GNU Emacs" exec /usr/bin/emacs "Jove" exec xterm -fn 7x14 -e /usr/bin/jove "Xedit" exec /usr/X11R6/bin/xedit xview-3.2p1.4/contrib/misc/openwin-menu-g100644 1750 1750 1203 6331115756 15610 0ustar mbmb"Games" TITLE PIN "Spider Card Game (Small Version)" exec /usr/X11R6/bin/spider "Spider Card Game (Large Version)" exec /usr/X11R6/bin/Spider # "Xothello" exec /usr/X11R6/bin/xothello "Puzzle" exec /usr/X11R6/bin/puzzle "GNU Chess (via Xboard)" exec xboard "Xtetris" exec /usr/X11R6/bin/xtetris # "Xroach" exec /usr/X11R6/bin/xroach "Xlander (Lunar Lander)" exec /usr/X11R6/bin/xlander "Xmahjongg (Tile Game)" exec /usr/X11R6/bin/xmahjongg "Xvier (Connect 4)" exec /usr/X11R6/bin/xvier "Xdoom" exec /usr/games/xdoom SEPARATOR "Demos and Gadgets" MENU $OPENWINHOME/lib/openwin-menu-d xview-3.2p1.4/contrib/misc/openwin-menu-s100644 1750 1750 1201 6331115756 15622 0ustar mbmb"Shells" TITLE PIN "Rxvt (VT100 emulator)" DEFAULT exec /usr/X11R6/bin/rxvt -ls "Xterm" exec /usr/X11R6/bin/xterm -sb -j -ls "Color Xterm" exec /usr/X11R6/bin/color_xterm -sb -sl 1024 -j -ls "Large Xterm (10x20 font)" exec /usr/X11R6/bin/xterm -sb -j -ls -fn 10x20 "Large Rxvt (10x20 font)" exec /usr/X11R6/bin/rxvt -font 10x20 -ls "Large Color Xterm (10x20 font)" exec /usr/X11R6/bin/color_xterm -sb -sl 1024 -j -ls -fn 10x20 "Cmdtool (OpenWindows Command Tool)" exec $OPENWINHOME/bin/cmdtool "Cmdtool -C (OpenWindows Console)" exec $OPENWINHOME/bin/cmdtool -C "Shelltool (OpenWindows Shell Tool)" exec $OPENWINHOME/bin/shelltool xview-3.2p1.4/contrib/misc/openwin-menu-screensave100644 1750 1750 2642 6331115756 17530 0ustar mbmb"Screensaver" TITLE PIN "Bat" exec xlock -nolock -nice 0 -mode bat "Blank" exec xlock -nolock -nice 0 -mode blank "Blot" exec xlock -nolock -nice 0 -mode blot "Bob" exec xlock -nolock -nice 0 -mode bob "Bounce" exec xlock -nolock -nice 0 -mode bounce "Flame" exec xlock -nolock -nice 0 -mode flame "Galaxy" exec xlock -nolock -nice 0 -mode galaxy "Grav" exec xlock -nolock -nice 0 -mode grav "Helix" exec xlock -nolock -nice 0 -mode helix "Hop" exec xlock -nolock -nice 0 -mode hop "Hyper" exec xlock -nolock -nice 0 -mode hyper "Kaleid" exec xlock -nolock -nice 0 -mode kaleid "Life" exec xlock -nolock -nice 0 -mode life "Maze" exec xlock -nolock -nice 0 -mode maze "Pyro" exec xlock -nolock -nice 0 -mode pyro "Qix" exec xlock -nolock -nice 0 -mode qix "Random" DEFAULT exec xlock -nolock -nice 0 -mode random "Rect" exec xlock -nolock -nice 0 -mode rect "Rock" exec xlock -nolock -nice 0 -mode rock "Rotor" exec xlock -nolock -nice 0 -mode rotor "Sphere" exec xlock -nolock -nice 0 -mode sphere "Spline" exec xlock -nolock -nice 0 -mode spline "Swarm" exec xlock -nolock -nice 0 -mode swarm "Worm" exec xlock -nolock -nice 0 -mode worm "World" exec xlock -nolock -nice 0 -mode world xview-3.2p1.4/contrib/misc/openwin-menu-t100644 1750 1750 1131 6331115756 15625 0ustar mbmb"Tools" TITLE PIN "Xfilemanager (File Manager)" exec /usr/X11R6/bin/xfilemanager "Xfm 1.2 (File Manager)" exec /usr/X11R6/bin/xfm "Xman (View Manual Pages)" exec /usr/X11R6/bin/xman "Seyon (Communications Package)" exec /usr/X11R6/bin/seyon -modem /dev/modem "Xcalc (Calculator)" exec /usr/X11R6/bin/xcalc "Xspread (Spreadsheet)" exec /usr/X11R6/bin/xspread "Xxgdb (Debugger)" exec /usr/X11R6/bin/xxgdb "Xconsole (Console messages)" exec /usr/X11R6/bin/xconsole "Xmag (Magnifying glass)" exec /usr/X11R6/bin/xmag "Clocks" MENU $OPENWINHOME/lib/openwin-menu-clocks xview-3.2p1.4/contrib/misc/openwin-menu-u100644 1750 1750 1436 6331115756 15636 0ustar mbmb# # @(#)openwin-menu-utilities 1.5 91/09/14 openwin-menu-utilities # # OpenWindows default root menu file - Utilities submenu # "Refresh" DEFAULT REFRESH "Reset Input" exec kbd_mode -u "Xclipboard" exec /usr/X11R6/bin/xclipboard "Function Keys" exec vkbd "Window Controls" MENU "Open/Close" DEFAULT OPEN_CLOSE_SELN "Full/Restore Size" FULL_RESTORE_SIZE_SELN "Back" BACK_SELN "Quit" QUIT_SELN "Window Controls" END PIN "Save Workspace" SAVE_WORKSPACE # # Uncomment the following if interested in colormap compaction # #"Save Colors" MENU # "Save" DEFAULT $OPENWINHOME/bin/cmap_compact save # "Discard" $OPENWINHOME/bin/cmap_compact discard #"Save Colors" END # #"Lock Screen" exec xlock #"Console..." exec $OPENWINHOME/bin/cmdtool -C xview-3.2p1.4/contrib/misc/openwin-menu-xlock100644 1750 1750 2557 6331115756 16517 0ustar mbmb"Screensaver" TITLE PIN "Bat" exec xlock -nice 0 -mode bat "Blank" exec xlock -nice 0 -mode blank "Blot" exec xlock -nice 0 -mode blot "Bob" exec xlock -nice 0 -mode bob "Bounce" exec xlock -nice 0 -mode bounce "Flame" exec xlock -nice 0 -mode flame "Galaxy" exec xlock -nice 0 -mode galaxy "Grav" exec xlock -nice 0 -mode grav "Helix" exec xlock -nice 0 -mode helix "Hop" exec xlock -nice 0 -mode hop "Hyper" exec xlock -nice 0 -mode hyper "Kaleid" exec xlock -nice 0 -mode kaleid "Life" exec xlock -nice 0 -mode life "Maze" exec xlock -nice 0 -mode maze "Pyro" exec xlock -nice 0 -mode pyro "Qix" exec xlock -nice 0 -mode qix "Random" DEFAULT exec xlock -nice 0 -mode random "Rect" exec xlock -nice 0 -mode rect "Rock" exec xlock -nice 0 -mode rock "Rotor" exec xlock -nice 0 -mode rotor "Sphere" exec xlock -nice 0 -mode sphere "Spline" exec xlock -nice 0 -mode spline "Swarm" exec xlock -nice 0 -mode swarm "Worm" exec xlock -nice 0 -mode worm "World" exec xlock -nice 0 -mode world xview-3.2p1.4/contrib/misc/owplaces100755 1750 1750 143 6331115756 14545 0ustar mbmb#!/bin/sh # Use xtoolplaces as a replacement for owplaces. exec xtoolplaces -f $HOME/.openwin-init xview-3.2p1.4/contrib/misc/props-locale.basic_setting100644 1750 1750 452 6331752627 20151 0ustar mbmb# # @(#)basic_setting 1.5 91/09/14;SMI # # Workspace Properties Localization Panel configuration file - Basic Setting # # Basic Setting for the C locale # # LC_MESSAGES="C" -> display language is English # # Category_name=default_value,value:label[[,value:label]...] # basic_setting=C;C|U.S.A. xview-3.2p1.4/util/ 40755 1750 1750 0 6354605713 11313 5ustar mbmbxview-3.2p1.4/util/xgettext/ 40755 1750 1750 0 6354605713 13167 5ustar mbmbxview-3.2p1.4/util/xgettext/Imakefile100644 1750 1750 215 5413747644 15060 0ustar mbmb/**/# @(#)Imakefile 1.5 28 Jun 1993 SMI /**/# Imakefile for util/xgettext #include MANSUFFIX =1 SimpleProgramTarget(xgettext) xview-3.2p1.4/util/xgettext/xgettext.c100644 1750 1750 71775 5413747645 15353 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)xgettext.c 1.10 91/09/14"; #endif #endif #include "xgettext.h" /* * gettext - extract strings from gettext() calls in a C language * source file and create a psffm: * "Portable Source File Format for Messages" * file template. */ int write_args(), get_arguments(), sort_message(), write_sorted_psffm(); char *calloc(), *malloc(), *realloc(); char *strcat(), *strcpy(), *strdup(); void process(), print_usage(), init_lists(), add_comment_to_domain(), read_psffm(); char *consume_whitespace(), *consume_symbol(), *consume_comment(), *consume_quoted_string(), *consume_delim(); char *get_nextline(), *write_comment(), *sort_comment(); FILE *defaultfp = NULL; FILE *currentfp = NULL; FILE *exclude_stream = NULL; struct list_head *get_list(); struct list_head lists, *last_list; char *comment_cookie; char *message_string = ""; char *default_domain = "messages"; char *file_path = "."; char *currentf = "psffm"; char *exclude_file; int readstd = 0; int textdomain_call = 0; int dgettext_call = 0; int gettext_call = 0; int verbose = 0; int exclude = 0; int number_lines = 0; int use_pp = 0; int use_msg_ids = 0; int extract_comments = 0; int linenum = 0; int sorted_output = 1; int all_strings = 0; int update = 0; /* int overwrite = 0; */ char cfilename [MAXPATHLEN+1]; char linebuf[LINEBUF_SIZ]; char default_filepath[MAXPATHLEN+1]; main(argc, argv, envp) int argc; char **argv, **envp; { (void) get_arguments(&argc, &argv, envp); if (readstd) { strcpy(cfilename, "stdin"); linenum = 0; process(); readstd = 0; } while (argc > 0) { if (verbose) fprintf(stderr, "scanning file # %d = %s\n", argc, *argv); if (freopen(*argv, "r", stdin) == NULL) { perror(*argv); exit(2); } strcpy(cfilename, *argv); linenum = 0; process(*argv); argc--; argv++; } if (sorted_output || all_strings) { write_sorted_psffm(); } exit(0); } void print_usage() { fprintf(stderr, "\nusage: xgettext [-adnuv] [-c] [-m] [-o]\n"); fprintf(stderr, " ... [-p] [-x] - | file\n"); fprintf(stderr, " xgettext -h (HELP)\n"); } print_help() { fprintf(stderr, "\n"); fprintf(stderr, "-a\t\tfind ALL strings\n"); fprintf(stderr, "-c\tget comments beginning with \n"); fprintf(stderr, "-d\t\tgenerate duplicates\n"); fprintf(stderr, "-h\t\tHELP !!!\n"); fprintf(stderr, "-m\t\tfill in msgstr with msgid\n"); fprintf(stderr, "-n\t\tline# comments in output\n"); fprintf(stderr, "-o\tuse for default file name\n"); fprintf(stderr, "-p\tuse for file path\n"); fprintf(stderr, "-u\t\tgenerate list of updated messages in .new\n"); fprintf(stderr, "-v\t\tverbose mode on, lists xgettext's actions\n"); /* fprintf(stderr, "-w\t\toverwrite existing \".po\" files\n"); */ fprintf(stderr, "-x\texclude strings in file from output\n"); fprintf(stderr, "-\t\tread stdin, use as a filter (input only)\n"); } void init_lists() { lists.domain = strdup(default_domain); last_list = &lists; read_psffm(default_domain); } char * build_path(domain, pathbuf) char *domain, pathbuf[]; { strcpy(pathbuf, file_path); strcat(pathbuf, "/"); strcat(pathbuf, domain); strcat(pathbuf, ".po"); return (pathbuf); } int get_arguments(argc, argv, envp) int *argc; char ***argv, **envp; { /* * Process input arguments of the form: * * -a emit ALL strings * -c output comments beginning with * -d dups mode * -h HELP !!! * -m output message string using message id * -n insert line and file # comments in output * -o specify default file name * -p file path * -P use preprocessor directives * -u create update list, new messages only * -v verbose mode on, outputs info on symbols encountered, etc. * -w overwrite existing .po files * -x exclude strings in exclude list * - read stdin, aka use as an input only filter * */ (*argc)--, (*argv)++; while (*argc > 0 && *argv[0][0] == '-') { register char *cp = &(*(*argv)++)[1]; (*argc)--; switch (*cp) { case NULL: readstd++; break; case 'a': all_strings = 1; if (verbose) printf("placing all strings in .po file\n"); break; case 'c': extract_comments = 1; if (*argc < 1) { fprintf(stderr, "NULL comment flag, try -c, exiting ...\n"); exit (1); } if (*(++cp) != NULL) { comment_cookie = strdup(cp); } else { comment_cookie = strdup(**argv); (*argv)++; (*argc)--; } if (verbose) printf("Placing comments in \".po\" files ...\n"); break; case 'd': sorted_output = 0; if (verbose) printf("Writing ALL msgid's to \".po\" files\n"); break; case 'm': use_msg_ids = 1; if (*argc < 1) { fprintf(stderr, "NULL message tag, try -m, exiting ...\n"); exit (1); } if (*(++cp) != NULL) { message_string = strdup(cp); } else { message_string = strdup(**argv); (*argv)++; (*argc)--; } if (verbose) printf("Using \" %s\" for msgstr\n", message_string); break; case 'n': number_lines = 1; if (verbose) printf("Numbering lines in \"psffm\" files ...\n"); break; case 'o': if (*argc < 1) { fprintf(stderr, "NULL output file, try -o, exiting ...\n"); exit (1); } if (*(++cp) != NULL) { default_domain = strdup(cp); } else { default_domain = strdup(**argv); (*argv)++; (*argc)--; } break; case'P': use_pp = 1; break; case 'p': if (*argc < 1) { fprintf(stderr, "NULL path, try -p, exiting ...\n"); exit (1); } if (*(++cp) != NULL) { file_path = strdup(cp); } else { file_path = strdup(**argv); (*argv)++; (*argc)--; } break; case 'u': update = 1; break; case 'v': verbose = 1; fprintf(stderr, "VERBOSE ON\n"); break; /* case 'w': overwrite = 1; break; */ case 'x': exclude = 1; if (*argc < 1) { fprintf(stderr, "NULL exclude file, try -x, exiting ...\n"); exit (1); } if (*(++cp) != NULL) { exclude_file = strdup(cp); } else { exclude_file = strdup(**argv); (*argv)++; (*argc)--; } if ((exclude_stream = fopen(exclude_file, "r")) == NULL) { fprintf(stderr, "Exclude list file: %s not found,", exclude_file); fprintf(stderr, " -x option reset, continuing ...\n"); exclude = 0; } if (verbose) printf("Using \"%s\" for msgstr\n", message_string); break; default: fprintf(stderr, "Unrecognized option: %c\n", *cp); print_usage(); break; case 'h': print_usage(); print_help(); exit(0); } } if (*argc == 0 && !readstd ) { fprintf(stderr, "No input files specified, exiting ...\n"); print_usage(); exit (1); } if (sorted_output) { init_lists(); } build_path(default_domain, default_filepath); return (1); } void process() { char *cp; unsigned char c; int ret; int delim = 1; /* * Outer loop scans for the beginning of label, beginning of an * argument list, and the beginning of comments, and calls the * appropriate function to process them. It ignores all lines * where linebuf [0] == '#'. * * Labels are detected by looking for an appropriate delimiter, * then calling is_symbol() to verify the label. If valid, the type of * call is noted in a global variable, then the loop scans * for the beginning of the argument list, calling write_args() * if a quoted argument is found. * * Comments are detected by looking for comment delimiters. If a * comment is found, write_comment() is called. */ while (1) { if (!(cp = get_nextline())) { return; } while (c = *cp++) switch (c) { case 't': if (!delim) { break; } delim = 0; if (is_symbol(&cp, "extdomain")) { if (!(cp = consume_whitespace(cp))) { goto out; } if (textdomain_call = (*cp == '(')) { if (!(cp = consume_whitespace(++cp))) { goto out; } if (verbose) printf("textdomain call, arg = %s\n", cp); } } break; case 'd': if (!delim) { break; } delim = 0; if (is_symbol(&cp, "gettext")) { if(!(cp = consume_whitespace(cp))) { goto out; } if (dgettext_call = (*cp == '(')) { if (!(cp = consume_whitespace(++cp))) { goto out; } if (verbose) printf("dgettext call, arg = %s\n", cp); } } break; case 'g': if (!delim) { break; } delim = 0; if (is_symbol(&cp, "ettext")) { if (!(cp = consume_whitespace(cp))) { goto out; } if (gettext_call = (*cp == '(')) { if (!(cp = consume_whitespace(++cp))) { goto out; } if (verbose) printf("gettext call, arg = %s\n", cp); } } break; case '"': delim = 0; if (cp[-2] == '\\') { break; } if(cp[-2] == '\'') { break; } if (!(gettext_call || dgettext_call || textdomain_call || all_strings)) { if (!(cp = consume_quoted_string(cp))) { goto out; } break; } if ((ret = (int) write_args(&cp)) == -1) { goto out; } textdomain_call = 0; dgettext_call = 0; gettext_call = 0; break; case '/': delim = 1; if (*cp != '*') { break; } if (extract_comments) { cp++; if (sorted_output) { cp = sort_comment(cp); } else { cp = write_comment(cp); } } else { cp = consume_comment(cp); } if (!cp) goto out; break; default: textdomain_call = 0; dgettext_call = 0; gettext_call = 0; delim = !(SYMBOL_CHAR(c)); break; } /* switch (c) */ } /* for (cp = ... */ out: if (ferror(stdout)) { printf("Oops\n"); perror(cfilename); exit(0); } } char * consume_comment(buf) char *buf; { register char *bufptr = buf; register char c; while (c = *bufptr++) { switch (c) { case '*': if (*bufptr != '/') { break; } return (bufptr++); case '\n': if (!(bufptr = get_nextline())) { fprintf(stderr, "==>ERROR, end of comment never reached\n"); return (0); } break; default: break; } } } char * consume_symbol(buf) char *buf; { register char *bufptr = buf; register char c; while (c = *bufptr) { if (SYMBOL_CHAR(c)) { bufptr++; continue; } break; } return (bufptr); } char * consume_quoted_string(buf) char *buf; { register char *bufptr = buf; register char c; while (c = *bufptr++) { switch (c) { case '\n': fprintf(stderr, "\"%s\", line %d: newline in string or char constant\n", cfilename, linenum); if (!(bufptr = get_nextline())) { fprintf(stderr, "\"%s\", line %d: end of string never reached\n", cfilename, linenum); return (0); } case '"': if (!(bufptr = consume_whitespace(bufptr))) return (0); if (bufptr[0] != '"') return (bufptr); bufptr++; case '\\': if (*bufptr == '\n') { if (!(bufptr = get_nextline())) { fprintf(stderr, "\"%s\", line %d: end of string never reached\n", cfilename, linenum); return (0); } } else { bufptr++; } break; default: break; } } /* * SHOULDN"T REACH HERE */ fprintf(stderr, "ERROR ==> end of quoted string never reached\n"); return (--bufptr); } char * consume_blankspace(buf) char *buf; { register char *bufptr = buf; register char c; while (c = *bufptr) { switch (c) { case '\t' : case ' ': bufptr++; break; case '\\': if (bufptr[1] != '\n') return (bufptr); default: return (bufptr); } } return (0); } char * consume_whitespace(buf) char *buf; { register char *bufptr = buf; register char c; while (c = *bufptr) { switch (c) { case '\t' : case ' ': bufptr++; break; case '\\': if (bufptr[1] != '\n') return (bufptr); case '\n': if (!(bufptr = get_nextline())) return (0); break; default: return (bufptr); } } return (0); } char * consume_delim(buf) char *buf; { register char *bufptr = buf; register char c; while (c = *bufptr) { if (c == '\n') { if (!(bufptr = get_nextline())) return (0); } else if (SYMBOL_CHAR(c)) { return (bufptr); } else { bufptr++; } } return (0); } int is_symbol(lptr, label_id) char **lptr, *label_id; { int len = 0; if (strncmp(label_id, *lptr, len = strlen(label_id))) { *lptr = consume_symbol(*lptr); return (0); } *lptr += len; switch (**lptr) { case ' ': case '\t': case '\(': case '\n': return (1); default: *lptr = consume_symbol(*lptr); return (0); } } /* * FIX ME !!!!!!!! */ int exclude_string(test_string) char *test_string; { char file_string[BUFSIZ]; fseek(exclude_stream, 0, 0); /* start from begining */ for (;;) { if (fgets(file_string, sizeof file_string, exclude_stream) == NULL) { break; /* reached EOF */ } file_string[strlen(file_string)-1] = '\0'; if (!strcmp(test_string, file_string)) { return (1); } } return (0); } char * get_nextline() { char *bptr; do { if (fgets(linebuf, sizeof (linebuf), stdin) == NULL) { if (ferror(stdin)) { perror("xgettext"); exit(2); } return (0); } linenum ++; if (use_pp) { break; } if (readstd && linebuf[0] == '#') { sscanf(linebuf, "#%d%s", &linenum, cfilename); linenum--; if (verbose) { printf("file: %s seen at stdin, linenum: %d\n", cfilename, linenum); } } } while (linebuf[0] == '#'); return (linebuf); } char * extract_comment(cpp) char **cpp; { register char c, *dp, *cp = *cpp; static char *commentbuf = NULL; static bufsiz = 0; int offset; if (!commentbuf) { commentbuf = malloc(COMMENTBUF_SIZ); bufsiz = COMMENTBUF_SIZ; } memset(commentbuf, 0, bufsiz); commentbuf[0] = '#'; dp = commentbuf + 1; offset = 1; while (c = *cp++) { if (offset >= (bufsiz-3)) { commentbuf = realloc(commentbuf, bufsiz += COMMENTBUF_SIZ); dp = commentbuf + offset; } switch(c) { case '\n': *dp++ = c; offset++; *dp++ = '#'; offset++; if (!(cp = get_nextline())) { fprintf(stderr, "==> ERROR, end of comment never reached\n"); return (0); } break; case '*': if (*cp == '/') { *dp = '\n'; return (commentbuf); } break; default: *dp++ = c; offset++; break; } } /* * ERROR, SHOULDN'T EVER GET HERE ... */ fprintf(stderr, "ERROR, end of comment never reached\n"); return (cp); } char * sort_comment(cp) char *cp; { char isitme[BUFSIZ]; char domain[MAXNAMLEN+1]; /* MAXNAMLEN from sys/dir.h */ char *comment; (void) sscanf(cp, "%s%s", isitme, domain); if (strcmp(isitme, comment_cookie)) { return (consume_comment(cp)); } if (!(comment = extract_comment(&cp))) { return (0); } add_comment_to_domain(domain, comment); return (cp); } void add_comment_to_domain(domain, commentbuf) char *domain, *commentbuf; { struct list_head *head; if (!strcmp(domain, "-")) { head = get_list(default_domain); } else { head = get_list(domain); } if (!head->comments) { head->comments = head->last_comment = (struct comment_str *) calloc(1, sizeof(struct comment_str)); if (!head->comments) { perror("malloc error"); exit(3); } } else { head->last_comment = head->last_comment->next = (struct comment_str *) calloc(1, sizeof(struct comment_str)); if (!head->last_comment) { perror("malloc error"); exit(3); } } head->last_comment->str = strdup(commentbuf); } char * write_comment (cp) char *cp; { char isitme[BUFSIZ]; char domain[MAXNAMLEN+1]; /* MAXNAMLEN from sys/dir.h */ char comment_path[MAXPATHLEN+1]; /* MAXPATHLEN from sys/param.h */ FILE *commentfp; char *comment; (void) sscanf(cp, "%s%s", isitme, domain); if (strcmp(isitme, comment_cookie)) { return (consume_comment(cp)); } if (!defaultfp) { if ((defaultfp = fopen(default_filepath, "a+")) == NULL) { perror("xgettext"); fprintf(stderr, "FATAL ERROR, can't open output file: %s\n", default_filepath); exit(2); } } if (strcmp(domain, "-")) { memset(comment_path, 0, sizeof(comment_path)); build_path(domain, comment_path); if ((commentfp = fopen(comment_path, "a+")) == NULL) { perror("xgettext"); fprintf(stderr, "FATAL ERROR, can't open comment file: %s\n", commentfp); exit(2); } } else { strcpy(domain, default_domain); commentfp = defaultfp; } comment = extract_comment(&cp); fprintf(commentfp, "%s\n", comment); close (commentfp); return (cp); } int write_args(cpp) char **cpp; { register char *cp = *cpp; register int c; register char *dp; char msgkey[MAX_MSGID_LEN+1]; char domain[MAX_MSGSTR_LEN+1]; int secondarg = 0; memset(msgkey, 0, sizeof(msgkey)); memset(domain, 0, sizeof(domain)); if (gettext_call || all_strings) { dp = msgkey; } else { dp = domain; } while (c = *cp++) { switch (c) { case '"': if (!(cp = consume_whitespace(cp))) { return (0); } if (cp[0] == '"') { cp++; continue; } if (dgettext_call && !secondarg) { if (cp[0] == ',') { if(!(cp = consume_whitespace(++cp))) return (0); if (cp[0] == '"') { secondarg++; dp = msgkey; cp++; continue; } else { *cpp = cp; return (1); } } else { fprintf(stderr, "Syntax error\n"); *cpp = cp; return (1); } } cp++; goto out; case '\\': if (*cp == '\n') { if (!(cp = get_nextline())) { fprintf(stderr, "==>ERROR, end of string never reached\n"); return (0); } break; } *dp++ = c; c = *cp++; default: *dp++ = c; break; } nextarg: continue; } out: *cpp = --cp; if (exclude && exclude_string(msgkey)) { return (1); } if (sorted_output) { if (textdomain_call) { char linebuf[MAXPATHLEN+100]; sprintf(linebuf, "#\n# file: %s, line number: %d, textdomain(\"%s\")\n", cfilename, linenum, domain); add_comment_to_domain(domain, linebuf); return (1); } else { return (sort_message(domain, msgkey, "", 1)); } } if (all_strings) { return (write_psffm(msgkey, NULL)); } else if (gettext_call) { return (write_psffm(msgkey, NULL)); } else if (dgettext_call) { return (write_psffm(msgkey, domain)); } else if (textdomain_call) { return (write_psffm(NULL, domain)); } } int write_psffm(msgkey, domain) char *msgkey, *domain; { static char saved_domain[MAXNAMLEN+1]; static char domain_path[MAXPATHLEN+1]; struct stat psffm_stat; FILE *psffmfp; if (!defaultfp) { if ((defaultfp = fopen(default_filepath, "a+")) == NULL) { perror("xgettext"); fprintf(stderr, "FATAL ERROR, can't open output file: %s\n", default_filepath); exit(2); } } if (domain && dgettext_call) { if (strcmp(saved_domain, domain)) { if (verbose) { printf("entering new domain, "); printf("old domain: %s new domain: %s\n", saved_domain, domain); } memset(saved_domain, 0, sizeof(saved_domain)); strcpy(saved_domain, domain); memset(domain_path, 0, sizeof(domain_path)); build_path(domain, domain_path); if (currentfp) { fclose(currentfp); } if ((currentfp = fopen(domain_path, "a+")) == NULL) { perror("xgettext"); fprintf(stderr, "FATAL ERROR, can't open output file: %s\n", domain_path); exit(2); } if (stat(domain_path, &psffm_stat) == -1) { perror("xgettext"); fprintf(stderr, "FATAL ERROR, can't stat output file: %s\n", domain_path); exit(2); } if (psffm_stat.st_size < sizeof("domain")) { if (verbose) printf("adding domain token: %s to file: %s\n", domain, domain_path); fprintf(currentfp, "domain "); fprintf(currentfp, "\"%s\"\n", domain); /* * Shouldn't happen ... */ if (msgkey == NULL) { return (ferror(currentfp)); } } } psffmfp = currentfp; } else { psffmfp = defaultfp; } fseek(psffmfp, 0, 2); if (textdomain_call) { fprintf(psffmfp, "#\n# %s: textdomain(), line number: %d, domain: %s\n", cfilename, linenum, domain); } if (msgkey) { if (verbose) { printf("writing message key: %s to file: %s\n", msgkey, domain_path); if (use_msg_ids) printf("using message id as messsage string\n"); } if (number_lines) { fprintf(psffmfp, "#\n# %s: line number: %d\n", cfilename, linenum); } fprintf(psffmfp, "msgid "); fprintf(psffmfp, "\"%s\"\n", msgkey); fprintf(psffmfp, "msgstr "); if (use_msg_ids) { fprintf(psffmfp, "\"%s%s\"\n", msgkey, message_string); } else { fprintf(psffmfp, "\n"); } } fflush(psffmfp); return (ferror(psffmfp)); } struct list_head * get_list(domain) char *domain; { /* * Find sorted list for a given domain * make new list if domain not found */ if (domain[0] != NULL) { register struct list_head *head = &lists; register int found; while (head) { if (!strcmp(head->domain, domain)) { return (head); } head = head->next_list; } last_list = last_list->next_list = (struct list_head *) calloc(1, sizeof(struct list_head)); if (!last_list) { perror("malloc error"); exit(3); } last_list->domain = strdup(domain); read_psffm(domain); return (last_list); } else { return (&lists); } } int sort_message(domain, msgid, msgstr, new) char *domain, *msgid, *msgstr; short new; { register struct list_element *lp, *lplt, *lpgt; int i, lessthan; struct list_head *head; /* * Find correct list to add output to */ head = get_list(domain); lp = head->first_element; lplt = lpgt = 0; while (lp) { i = strcmp(msgid, lp->msgid); if (i < 0) { lpgt = lp; break; } else if (i == 0) { /* found! */ goto add_comments; } lplt = lp; lp = lp->next; } if (!(lp = (struct list_element *)calloc(1, sizeof(struct list_element)))){ perror("xgettext malloc error"); exit(3); } lp->msgid = strdup(msgid); lp->msgstr = strdup(msgstr); lp->new = new; if (lplt == 0) { head->first_element = lp; lp->next = lpgt; } else if (lpgt == 0) { lplt->next = lp; } else { lp->next = lpgt; lplt->next = lp; } add_comments: if (head->comments) { if (!lp->comments) { lp->comments = head->comments; } else { lp->last_comment->next = head->comments; } lp->last_comment = head->last_comment; head->comments = head->last_comment = 0; } if (number_lines) { char linebuf[MAXPATHLEN+100]; sprintf(linebuf, "#\n# file: %s, line number: %d\n", cfilename, linenum); if (!lp->comments) { lp->comments = lp->last_comment = (struct comment_str *) calloc(1, sizeof(struct comment_str)); if (!lp->comments) { perror("malloc error"); exit(3); } } else { lp->last_comment = lp->last_comment->next = (struct comment_str *) calloc(1, sizeof(struct comment_str)); if (!lp->last_comment) { perror("malloc error"); exit(3); } } lp->last_comment->str = strdup(linebuf); } return (0); } int write_sorted_psffm() { FILE *fp; register struct list_head *list; struct list_element *lp; register struct comment_str *cp; char output_filename[MAXPATHLEN]; list = &lists; while (list) { strcpy(output_filename, file_path); strcat(output_filename, "/"); strcat(output_filename, list->domain); if (update) { strcat(output_filename, ".update"); } else { strcat(output_filename, ".po"); } fp = fopen(output_filename, "w"); fprintf(fp, "domain "); fprintf(fp, "\"%s\"\n", list->domain); if (fp == NULL) { perror(default_filepath); exit(2); } lp = list->first_element; while (lp) { if (update && !lp->new) { lp = lp->next; continue; } cp = lp->comments; while (cp) { fprintf(fp, "%s", cp->str); cp = cp->next; } fprintf(fp, "msgid \"%s\"\n", lp->msgid); if (use_msg_ids) { fprintf(fp, "msgstr \"%s%s\"\n", lp->msgid, message_string); } else { if (lp->msgstr[0] == '\0') { fprintf(fp, "msgstr\n"); } else { fprintf(fp, "msgstr \"%s\"\n", lp->msgstr); } } lp = lp->next; } cp = list->comments; while (cp) { fprintf(fp, "%s", cp->str); cp = cp->next; } (void) fclose(fp); list = list->next_list; } } void read_psffm(domain) char *domain; { FILE *msgfileptr = NULL; char inbuf[MAX_VALUE_LEN+32]; char *inbufptr; char msgfile[MAXPATHLEN]; char current_domain[MAX_DOMAIN_LENGTH]; char msgid[MAX_VALUE_LEN+1]; char msgstr[MAX_VALUE_LEN+1]; register char *bufptr; int inlinenum = 0; int domain_set = 0; int whitespace = 0; int quotefound = 0; int ignored = 0; int indomain = 0; int inmsgid = 0; int inmsgstr = 0; char c; int number_lines_state = number_lines; number_lines = 0; build_path(domain, msgfile); if (!(msgfileptr = fopen(msgfile, "r"))) { number_lines = number_lines_state; return; } memset(msgid, 0, sizeof(msgid)); memset(msgstr, 0, sizeof(msgstr)); while (1) { memset(inbuf, 0, sizeof(inbuf)); if (fgets(inbuf, sizeof(inbuf), msgfileptr) == NULL) { break; } inlinenum ++; if (verbose) { printf("Scanning: %s, line number %d:\n%s\n", msgfile, inlinenum, inbuf); } inbufptr = inbuf; whitespace = 0; switch (*inbufptr) { case '#': /* comment */ if (inmsgstr) { sort_message(domain, msgid, msgstr, 0); memset(msgid, 0, sizeof(msgid)); memset(msgstr, 0, sizeof(msgstr)); inmsgid = 0; inmsgstr = 0; indomain = 0; } add_comment_to_domain(domain, inbufptr); case '\n': ignored = 1; break; case '\"': case ' ': case '\t': whitespace = 1; default: ignored = 0; break; } if (ignored) { continue; } /* * Process MSGID Tokens, must not have just seen one unless * this line begins with whitespace -or- " */ if ((!strncmp(MSGID_TOKEN, inbuf, sizeof(MSGID_TOKEN)-1)) || (whitespace && inmsgid)) { if (inmsgid && !whitespace) { fprintf(stderr, "Consecutive MSGID tokens, file: %s", msgfile); fprintf(stderr, "line number: %d\n", inlinenum); } if (inmsgstr) { sort_message(domain, msgid, msgstr, 0); memset(msgid, 0, sizeof(msgid)); memset(msgstr, 0, sizeof(msgstr)); } if (inmsgid) { inbufptr = consume_blankspace(inbuf); } else { inbufptr = consume_blankspace(inbuf + sizeof(MSGID_TOKEN)-1); bufptr = msgid; } if (!inbufptr) return; inmsgid = 1; inmsgstr = 0; indomain = 0; goto load_buffer; } /* * Process MSGSTR Tokens, must not have just seen one unless * this line begins with whitespace -or- " */ if ((!strncmp(MSGSTR_TOKEN, inbuf, sizeof(MSGSTR_TOKEN)-1)) || (whitespace && inmsgstr)) { if (inmsgstr && !whitespace) { fprintf(stderr, "Consecutive MSGSTR tokens, file: %s", msgfile); fprintf(stderr, "line number: %d\n", inlinenum); } if (inmsgstr) { inbufptr = consume_blankspace(inbuf); } else { inbufptr = consume_blankspace(inbuf + sizeof(MSGSTR_TOKEN)-1); bufptr = msgstr; } if (!inbufptr) return; inmsgstr = 1; inmsgid = 0; indomain = 0; goto load_buffer; } /* * Process DOMAIN Tokens, add message id and message string to * sorted list if msgstr was being processed, */ if (!strncmp(DOMAIN_TOKEN, inbuf, sizeof(DOMAIN_TOKEN)-1)) { if (inmsgstr) { sort_message(domain, msgid, msgstr, 0); memset(msgid, 0, sizeof(msgid)); memset(msgstr, 0, sizeof(msgstr)); } domain_set = 1; indomain = 1; inmsgid = 0; inmsgstr = 0; inbufptr = consume_blankspace(inbuf+ sizeof(DOMAIN_TOKEN)); memset(current_domain, 0, sizeof(current_domain)); bufptr = domain = current_domain; if (!inbufptr) return; } load_buffer: quotefound = 0; while (c=*inbufptr++) { switch (c) { case '\n': case '"': break; default: *bufptr++ = c; } } } if (inmsgstr) { sort_message(domain, msgid, msgstr, 0); } number_lines = number_lines_state; return; } xview-3.2p1.4/util/xgettext/xgettext.h100644 1750 1750 2253 5413747645 15321 0ustar mbmb/* @(#)xgettext.h 1.6 91/09/14 */ #ifndef XGETTEXT_H_DEFINED #define XGETTEXT_H_DEFINED #include #include #include #include #ifndef SVR4 #include #else #include #endif SVR4 #include #include #define DOMAIN_TOKEN "domain" #define MSGID_TOKEN "msgid" #define MSGSTR_TOKEN "msgstr" #define MAX_VALUE_LEN 2047 #define MAX_DOMAIN_LENGTH 255 #define LINEBUF_SIZ 4096 #define COMMENTBUF_SIZ 4096 #define MAX_MSGID_LEN 2047 #define MAX_MSGSTR_LEN 2047 #define SYMBOL_CHAR(c) \ (c == '$' || c == '_' || (c > '/' && c < ':') ||\ (c > '@' && c < '[' ) || (c > '`' && c < '{')) struct comment_str { char *str; struct comment_str *next; }; struct list_element { char *msgid; char *msgstr; struct list_element *next; struct comment_str *comments; struct comment_str *last_comment; short new; }; struct list_head { char *domain; struct list_element *first_element; struct comment_str *comments; struct comment_str *last_comment; struct list_head *next_list; }; #endif XGETTEXT_H_DEFINED xview-3.2p1.4/util/xgettext/xgettext.man100644 1750 1750 6070 5413747645 15646 0ustar mbmb.\" @(#)xgettext.1 1.4 90/08/20 SMI; from Sun .TH xgettext 1 "14 Sep 1990" .SH NAME xgettext \- conditionally extract strings from C programs .SH SYNOPSIS .br .B xgettext .B \-d [ .B cmnopvhP ] [ .BI \-o \&directory-prefix ] [ .BI \-x \&exclude-list ] [ .I filename \|.\|.\|. ] .br .B xgettext [ .B \-amopvhP ] [ .BI \-x \&exclude-list ] [ .I filename \|.\|.\|. ] .br ... gwen please check indexes. .IX xgettext "" "\fLxgettext\fP \(em conditionally extract strings" .IX messages "conditionally extract strings" "" "conditionally extract strings" .SH DESCRIPTION .LP .B xgettext is used to automate the creation of portable message files. A portable message file contains copies of "C" strings that are found in "C" source code in .I filename. When the .B -d option is specified, .B xgettext places the extracted strings in the file .I name\c .BR \&.po . .I name is either the domain specified in a .B dgettext call, or .B messages.po for strings extracted from .B gettext and .B textdomain calls. If the .B -d flag is not specified, .B xgettext places all the strings in .BR messages.po . The portable message file can be used as input to the .BR msgfmt (1) utility, which will produce a binary form of the message file than can be used at application run-time. .SH OPTIONS .TP 10 .BI \-a Extract ALL strings, not just those found in .BR gettext , .BR dgettext , and .B textdomain calls. .TP 10 .BI \-c flag Comments beginning with .I flag filename on the first line of the comment are added to file .IR filename as .I # delimited comments. .TP 10 .B \-d Produce duplicates. Does not sort output when writing the portable message file and will not overwrite existing output files. Places output from each domain specified in a .B dgettext call into a separate file named for the domain, .IR ie . .IB name .po .TP 10 .BI \-c flag Comments beginning with .I flag filename on the first line of the comment are added to file .IR filename as .I # delimited comments. .TP 10 .BI \-m string Causes .B xgettext to fill in the .B msgstr line of the portable message files it produces. .B xgettext uses the corresponding msgid string extracted from the "C" file, appending .IR string . Useful for debugging purposes. .TP 10 .B \-n Add .I # delimited line number comments to output file indicating the line number in the source file where each extracted string is encountered. .TP 10 .BI \-o filename rename the default output file from .BR messages.po to .IR filename . .TP 10 .BI \-p pathname Specify the directory where the output files will be placed. This option overrides the current working directory. .TP 10 .BI \-x filename Specify a file that contains a list of strings that are not be extracted from the input files. Each string to be excluded must appear on a line by itself in the file .I filename. .TP 10 .B \-P include strings in pre-processor statements. .TP 10 .B \-v Verbose mode. .TP 10 .B \-h Print a help message on standard output. .SH FILES .TP 14 .TP .B messages.po is always created, but may be empty. .SH "SEE ALSO" .BR msgfmt (1) , .BR xstr (1) , .BR gettext , .BR dgettext , .BR textdomain (3) . xview-3.2p1.4/util/msgfmt/ 40755 1750 1750 0 6354605713 12610 5ustar mbmbxview-3.2p1.4/util/msgfmt/Imakefile100644 1750 1750 211 5413747646 14477 0ustar mbmb/**/# @(#)Imakefile 1.5 28 Jun 1993 SMI /**/# Imakefile for util/msgfmt #include MANSUFFIX =1 SimpleProgramTarget(msgfmt) xview-3.2p1.4/util/msgfmt/msgfmt.c100644 1750 1750 34020 5413747646 14374 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)msgfmt.c 1.3 91/09/14"; #endif #endif #include "msgfmt.h" /* * msgfmt - Generate binary tree for runtime gettext() using psffm: * "Portable Source File Format for Messages" file template. * This file may have previously been generated by the * c2psffm filter for c source files. */ #define ignore(a) ((void) a) char *consume_whitespace(); char expand_meta(); char *calloc(); off_t tellpt; off_t sortit(); char *mktemp(); char *savestr(); char *strcat(); char *strcpy(); off_t mesgpt; /* * Strings is a flat file of id, string pairs, used by cflg */ char *strings = "strings"; char linebuf[MAX_VALUE_LEN]; char *domain_name = DEFAULT_DOMAIN; int cflg = 0; int verbose = 0; int debug = 0; int readstd; struct list_struct list; main(argc, argv) int argc; char *argv[]; { argc--, argv++; while (argc > 0 && argv[0][0] == '-') { register char *cp = &(*argv++)[1]; argc--; if (*cp == 0) { readstd++; } do switch (*cp++) { /* * cflag stuff not yet implemented. case 'c': cflg++; continue; */ case 'd': debug++; break; case 'v': verbose++; continue; default: /* fprintf(stderr, "usage: msgfmt [ -v ] [ -c ] [ - ] [ name ... ]\n"); */ fprintf(stderr, "usage: msgfmt [ -dv ] [ - ] [ name ... ]\n"); break;; } while (*cp); /* do switch ... */ } /* while (argc ... */ while (readstd || argc > 0) { if (!readstd && freopen(argv[0], "r", stdin) == NULL) { perror(argv[0]); exit(2); } read_psffm(argv[0]); if (readstd == 0) { argc--; argv++; } else { readstd = 0; } } /* while (readstd ... */ exit(0); } /* * read_psffm - read in "psffm" format file, check syntax, printing * error messages as needed, output binary tree to * file */ read_psffm(filename) char *filename; { static char current_domain[MAX_DOMAIN_LENGTH]; static char msgfile[MAXPATHLEN]; char *linebufptr; char *current_locale; char msgid [MAX_VALUE_LEN+1]; char msgstr [MAX_VALUE_LEN+1]; register char *bufptr; int linenum = 0; int domain_set = 0; int whitespace = 0; int quotefound = 0; int ignored = 0; int indomain = 0; int inmsgid = 0; int inmsgstr = 0; char c; while (1) { memset(linebuf, 0, sizeof(linebuf)); if (fgets(linebuf, sizeof(linebuf), stdin) == NULL) { if (ferror(stdin)) { perror(filename); exit(2); } break; } linenum ++; if (verbose) { printf("Scanning line number %d: %s\n", linenum, linebuf); } linebufptr = linebuf; whitespace = 0; switch (*linebufptr) { case '#': /* comment */ case '\n': ignored = 1; break; case '\"': case ' ': /* whitespace should be handled correctly */ case '\t': whitespace = 1; default: ignored = 0; break; } if (ignored) { continue; } /* * Process MSGID Tokens, must not have just seen one unless * this line begins with whitespace -or- " */ if ((!strncmp(MSGID_TOKEN, linebuf, sizeof(MSGID_TOKEN)-1)) || (whitespace && inmsgid)) { if (inmsgid && !whitespace) { fprintf(stderr, "Consecutive MSGID tokens encountered "); fprintf(stderr, "at line number: %d, exiting\n", linenum); /* exit(1); */ } if (inmsgstr) { sortit(msgid, msgstr, 1); memset(msgid, 0, sizeof(msgid)); memset(msgstr, 0, sizeof(msgstr)); } if (inmsgid) { linebufptr = consume_whitespace(linebuf); } else { linebufptr = consume_whitespace(linebuf + sizeof(MSGID_TOKEN)-1); bufptr = msgid; } inmsgid = 1; inmsgstr = 0; indomain = 0; goto load_buffer; } /* * Process MSGSTR Tokens, must not have just seen one unless * this line begins with whitespace -or- " */ if ((!strncmp(MSGSTR_TOKEN, linebuf, sizeof(MSGSTR_TOKEN)-1)) || (whitespace && inmsgstr)) { if (inmsgstr && !whitespace) { fprintf(stderr, "Consecutive MSGSTR tokens encountered "); fprintf(stderr, "at line number: %d, exiting\n", linenum); /* exit(1); */ } if (inmsgstr) { linebufptr = consume_whitespace(linebuf); } else { linebufptr = consume_whitespace(linebuf + sizeof(MSGSTR_TOKEN)-1); bufptr = msgstr; } inmsgstr = 1; inmsgid = 0; indomain = 0; goto load_buffer; } /* * Process DOMAIN Tokens, add message id and message string to * sorted list if msgstr was being processed, * write out file for existing domain if it exists (domain_set = 1) */ if (!strncmp(DOMAIN_TOKEN, linebuf, sizeof(DOMAIN_TOKEN)-1)) { if (inmsgstr) { sortit(msgid, msgstr, 1); } if (inmsgstr || inmsgid) { memset(msgid, 0, sizeof(msgid)); memset(msgstr, 0, sizeof(msgstr)); } if (domain_set) { output_file(msgfile); } domain_set = 1; indomain = 1; inmsgid = 0; inmsgstr = 0; linebufptr = consume_whitespace(linebuf+ sizeof(DOMAIN_TOKEN)); memset(current_domain, 0, sizeof(current_domain)); bufptr = current_domain; } load_buffer: if (*linebufptr++ != '\"') { fprintf(stderr, "Warning, Syntax at line number: %d, ", linenum); fprintf(stderr, "Missing \", ignored\n"); --linebufptr; } quotefound = 0; while (c=*linebufptr++) { switch (c) { case '\n': if (!quotefound) { fprintf(stderr, "Warning, Syntax at line number: %d, ", linenum); fprintf(stderr, "Missing \" at EOL, ignored\n"); } break; case '\"': quotefound = 1; break; case '\\': *bufptr++ = expand_meta(&linebufptr); break; default: *bufptr++ = c; } } if (indomain) { memset(msgfile, 0, sizeof(msgfile)); strcpy(msgfile, current_domain); strcat(msgfile, ".mo"); /* strcpy(msgfile, LOCALEDIR); strcat(msgfile, current_locale); strcat(msgfile, "/"); strcat(msgfile, current_domain); */ } } if (inmsgstr) { sortit(msgid, msgstr, 1); } if (inmsgstr || inmsgid) { memset(msgid, 0, sizeof(msgid)); memset(msgstr, 0, sizeof(msgstr)); } if (domain_set) { output_file(msgfile); } return(0); } char * consume_whitespace(buf) char *buf; { register char *bufptr = buf; char c; while (c = *bufptr++) { switch (c) { case ' ': case '\t' : continue; default: return(bufptr-1); } } } char expand_meta(buf) char **buf; { register char c = **buf; switch (c) { case '"': (*buf)++; return ('\"'); case '\\': (*buf)++; return ('\\'); case 'b' : (*buf)++; return ('\b'); case 'f' : (*buf)++; return ('\f'); case 'n' : (*buf)++; return ('\n'); case 'r' : (*buf)++; return ('\r'); case 't' : (*buf)++; return ('\t'); case 'v' : (*buf)++; return ('\v'); default: return ('\\'); } } /* * sortit - insertion sort, place message identifier = str and * message string = msgstr into list sorted by message identifier */ off_t sortit(msgid, msgstr, new) char *msgid, *msgstr; int new; { int i, j, lessthan; register struct list_struct *hp, *hp0, *hp1; if (debug) fprintf(stderr, "==> sortit(), msgid = %s, msgstr = %s\n", msgid, msgstr); lessthan = 0; hp = hp0 = &list; while (hp->hnext && !lessthan) { hp0 = hp; hp = hp->hnext; i = istail(hp->msgid, msgid); if (i < 0) { lessthan = 1; hp1 = hp; continue; } if (i == 0) { /* found! */ return(hp->hpt); } } if (!lessthan) { hp0 = hp; } if ((hp = (struct list_struct *) calloc(1, sizeof(*hp))) == NULL) { perror("msgfmt"); exit(8); } hp->hpt = mesgpt; hp->msgid = savestr(msgid); hp->msg = savestr(msgstr); mesgpt += strlen(hp->msgid) + strlen(hp->msg); if (hp0->hnext) { hp->hnext = hp1; hp0->hnext = hp; hp->hnew = new; } else { hp->hnew = new; hp0->hnext = hp; } return(hp->hpt); } printlist() { struct list_struct *hp1; hp1 = &list; fprintf(stderr, "dumping record at offset hpt = %d\n", hp1->hpt); fprintf(stderr, "message id is %s\n", hp1->msgid); fprintf(stderr, "message string is %s\n", hp1->msg); while (hp1->hnext) { fprintf(stderr, "dumping record at offset hpt = %d\n", hp1->hpt); fprintf(stderr, "message id is %s\n", hp1->hnext->msgid); fprintf(stderr, "message string is %s\n", hp1->hnext->msg); hp1 = hp1->hnext; } } /* * binary_compute is used for pre-computing a binary search. */ int binary_compute(i, j, more, less) int i,j; int more[],less[]; { int k; if (i > j ) { return -99; } k = (i + j)/2; less[k] = binary_compute(i, k-1, more, less); more[k] = binary_compute(k+1, j, more, less); return k; } /* * Write out static_message File contains static structure of messages. */ #ifdef USE_MMAP output_file(file) char *file; { FILE *xdotcf = fopen(file, "w"); struct list_struct *lp; int message_count; int string_count_msgid=0; int string_count_msg=0; int msgid_index=0; int msg_index=0; int *less,*more; int i; if (xdotcf == NULL) { perror("static_messages"); exit(6); } message_count = 0; lp = &list; while (lp->hnext) { /* get offsets and counts */ lp->hnext->msgid_offset = msgid_index; lp->hnext->msg_offset = msg_index; msgid_index += strlen(lp->hnext->msgid)+1; msg_index += strlen(lp->hnext->msg)+1; message_count++; lp = lp->hnext; } string_count_msgid = msgid_index; string_count_msg = msg_index; if ((less = (int *) calloc(message_count, sizeof(int))) == NULL) { perror("msgfmt output_file()"); exit(8); } if ((more = (int *) calloc(message_count, sizeof(int))) == NULL) { perror("msgfmt output_file()"); exit(8); } (void) binary_compute(0, message_count-1, more, less); if (message_count == 2) { less[1] = -99; /* kludge that works! */ } /* write out the message.mo */ i = (message_count-1)/2; /* this is the first message to check */ (void) fwrite(&i, sizeof(int), 1, xdotcf); (void) fwrite(&message_count, sizeof(int), 1, xdotcf); (void) fwrite(&string_count_msgid, sizeof(int), 1, xdotcf); (void) fwrite(&string_count_msg, sizeof(int), 1, xdotcf); i = sizeof(struct list_struct) * message_count; (void) fwrite(&i, sizeof(int), 1, xdotcf); i = 0; /* used to get more and less */ lp = &list; while (lp->hnext) { /* put out message struct */ (void) fwrite(&less[i], sizeof(int), 1, xdotcf); (void) fwrite(&more[i], sizeof(int), 1, xdotcf); (void) fwrite(&lp->hnext->msgid_offset, sizeof(int), 1, xdotcf); (void) fwrite(&lp->hnext->msg_offset, sizeof(int), 1, xdotcf); i++; lp = lp->hnext; } lp = &list; while (lp->hnext) { /* put out messageid strings */ (void) fwrite(lp->hnext->msgid, strlen(lp->hnext->msgid)+1, 1, xdotcf); lp = lp->hnext; } lp = &list; while (lp->hnext) { /* put out message strings */ (void) fwrite(lp->hnext->msg, strlen(lp->hnext->msg)+1, 1, xdotcf); lp = lp->hnext; } ignore(fclose(xdotcf)); /* clear list */ list.hpt =0; list.msgid_offset =0; list.msg_offset =0; list.msgid =(char )0; list.msg =(char )0; list.hnext = NULL; list.hnew = 0; } #else output_file(file) char *file; { FILE *xdotcf = fopen(file, "w"); struct list_struct *lp; int message_count; int *less, *more; int i; if (xdotcf == NULL){ perror(file); exit(6); } message_count = 0; lp = &list; while (lp->hnext) { message_count++; lp = lp->hnext; } if ((less = (int *) calloc(message_count, sizeof(int))) == NULL) { perror("msgfmt output_file()"); exit(8); } if ((more = (int *) calloc(message_count, sizeof(int))) == NULL) { perror("msgfmt output_file()"); exit(8); } binary_compute(0, message_count-1, more, less); if (message_count == 2) { less[1] = 0; /* kludge that works! */ } /* put out messages in binary format */ fprintf(xdotcf,"%d\n%d\n", message_count, (message_count-1)/2); lp = &list; while (lp->hnext) { fprintf(xdotcf,"%s\n", lp->hnext->msgid); /* message id */ fprintf(xdotcf,"%d\n%d\n", *less++, *more++); fprintf(xdotcf,"%s\n", lp->hnext->msg); /* message id */ lp = lp->hnext; } ignore(fclose(xdotcf)); freelist(); } #endif /* * freelist() - frees all members of the sorted list after the list * is written out to the binary tree file, called when * changing domains and when exiting the program */ freelist() { register struct list_struct *hp, *hp0; hp0 = &list; hp = hp0->hnext; while (hp->hnext) { hp0 = hp; hp = hp->hnext; free(hp0); } free(hp); list.hnext = 0; } char * savestr(cp) register char *cp; { register char *dp; if ((dp = (char *) calloc(1, strlen(cp) + 1)) == NULL) { perror("msgfmt"); exit(8); } return(strcpy(dp, cp)); } istail(str, of) register char *str, *of; { return(strcmp(of, str)); } xview-3.2p1.4/util/msgfmt/msgfmt.h100644 1750 1750 1336 5413747646 14365 0ustar mbmb #define USE_MMAP #include #include #include #include #include #include #define DOMAIN_TOKEN "domain" #define MSGID_TOKEN "msgid" #define MSGSTR_TOKEN "msgstr" #define DEFAULT_DOMAIN "default" #define LOCALEDIR "./" #define MAX_VALUE_LEN 2047 #define MAX_DOMAIN_LENGTH 255 #define LC_NAMELEN 255 #ifdef USE_MMAP struct list_struct { off_t hpt; int msgid_offset, msg_offset; char *msgid; char *msg; struct list_struct *hnext; short hnew; } list; #else struct list_struct { off_t hpt; char *msgid; char *msg; struct list_struct *hnext; short hnew; }; #endif xview-3.2p1.4/util/msgfmt/msgfmt.man100644 1750 1750 6212 5413747647 14710 0ustar mbmb.\" @(#)msgfmt.1 1.6 90/10/12 SMI; from Sun .TH msgfmt 1 "25 July 1990" .SH NAME msgfmt \- create a message object from a message file .SH SYNOPSIS .B msgfmt [ .B \-v ] .I filename\c .B \&.po \&.\|.\|. .IX "msgfmt" "" "\fLmsgfmt\fP \(em create message object file" .IX "messages" "create message object file" .SH DESCRIPTION .LP .B msgfmt creates a message object .I filename .B \&.mo file from the portable message file .I filename\c .BR \&.po . .LP The .B .po file contains strings extracted from source code. .B .po files can be edited, and the messages in them can changed to accomodate any language supported by the system. .LP The .B xgettext command (see .BR xgettext (1)) can be used to create the .B default.po file. .LP The .B msgfmt command does not modify the portable object files. .SS "Portable Object Files" .IX "messages" "creating portable object files" .IX "messages" "editing messages" .IX "\&.po files" "portable object files" .IX "\&.mo files" "message object files" .LP Each .B .po file contains one or more lines. Each line contains either a comment or a statement. Comments start the line with a hash mark (#) and end with the newline character and are ignored. .LP Each directive starts on a new line and is separated from .BI < value > by white space (such as one or more space or tab characters). .BI < value > consists of one or more quoted strings separated by white space or . The following are valid directives: .IX "messages" "setting the domain" .IX "messages" "setting the message identifier" .IX "messages" "setting the message string" .RS .B domain .I domainname .br .B msgid .I message_identifier .br .B msgstr .I message_string .RE .LP The .B domain directive identifies all following directives until another .B domain directive is encountered as applying to the domain .I domainname. The .I domainname is a string up to .SM MAXDOMAIN bytes long, and can contain any characters allowed in legal filenames. Until the first .B domain directive is encountered in the file, all target strings belong to the default domain. The default domain is called .BR default . .LP The .B msgid directive specifies the message identifier for the following .B msgstr directive. The .I message_identifier string identifies a target string at retrieval time. Every statement containing a .B msgid directive must be followed by a statement containing a .B msgstr directive. .LP The .B msgstr directive specifies the target string associated with the .I message_identifier string declared in the immediately preceding .B msgid directive. .SH OPTIONS .TP 10 .B \-v Verbose. List duplicate message identifiers. Message strings are not redefined. .SH EXAMPLES .LP The following command creates a named .B " .mo" file for each domain named in the portable message objects .BR " filename1.po " and " filename2.po" . .LP .RS .nf .B msgfmt filename1.po filename2.po .RE .fi .LP Running .BR msgfmt (1) on the following sample .B .po file creates two .B .mo files, named .B first.mo and .B second.mo. .RS .nf domain "first.mo" msgid "aao" msgstr "first sample message" domain "second.mo" msgid "bbo" msgstr "second sample message" .RE .fi .SH "SEE ALSO" .BR xgettext (1) , .BR gettext (3) . xview-3.2p1.4/util/cpp/ 40755 1750 1750 0 6303177050 12065 5ustar mbmbxview-3.2p1.4/util/cpp/Imakefile100644 1750 1750 1112 5413747647 14006 0ustar mbmb#include /**/# /**/# There is a bit of a catch-22 here. You might need cpp in order to /**/# generate cpp.... But, for systems on which that isn't a problem, here /**/# is the proper Imakefile. /**/# #if defined(SystemV) STRINGDEFS = #else STRINGDEFS = -Dstrchr=index -Dstrrchr=rindex #endif STYLE = -DOLD_PREPROCESSOR=1 DEFINES = $(STRINGDEFS) $(STYLE) SRCS = cpp1.c cpp2.c cpp3.c cpp4.c cpp5.c cpp6.c OBJS = cpp1.o cpp2.o cpp3.o cpp4.o cpp5.o cpp6.o all: cpp SingleProgramTarget(cpp,$(OBJS),,) DependTarget() xview-3.2p1.4/util/cpp/README100644 1750 1750 11364 5413747650 13101 0ustar mbmbThis public domain C preprocessor is provided for platforms with naive cpp's that cannot handle the abusively large macros in the server and the number of defines in the toolkit. It is currently needed under the following systems: Apple A/UX 1.0 Apollo Domain/IX 9.6 and earlier It might be nice to integrate with makedepend someday (or at least steal the #if processing).... * * * * Decus cpp is a public-domain implementation of the C preprocessor. It runs on VMS native (Vax C), VMS compatibilty mode (Decus C), RSX-11M, RSTS/E, P/OS, and RT11, as well as on several varieties of Unix, including Ultrix. Decus cpp attempts to implement features in the Draft ANSI Standard for the C language. It should be noted, however, that this standard is under active development: the current draft of the standard explicitly states that "readers are requested not to specify or claim conformance to this draft." Thus readers and users of Decus cpp should not assume that it conforms to the draft standard, or that it will conform to the actual C language standard. These notes describe how to extract the cpp source files, configure it for your needs, and mention a few design decisions that may be of interest to maintainers. Installation Because the primary development of cpp was not on Unix, it is distributed using the Decus C archive program (quite similar to the archiver published in Kernighan and Plauger's Software Tools). To extract the files from the net.sources distribution, save this message as cpp1.arc and the other two distribution files as cpp2.arc and cpp3.arc. Then, using your favorite editor, locate the archx.c program, just following the line beginning with "-h- archx.c" -- the format of the distribution is just: -h- readme.txt ... this file -h- cpp.mem ... description of cpp -h- archx.c ... archx.c program -- extracts archives -h- archc.c ... archc.c program -- creates archives Compile archx.c -- it shouldn't require any special editing. Then run it as follows: archx *.arc You do not need to remove mail headers from the saved messages. You should then read through cppdef.h to make sure the HOST and TARGET (and other implementation-specific) definitions are set correctly for your machine, editing them as needed. You may then copy makefile.txt to Makefile, editing it as needed for your particular system. On Unix, cpp should be compiled by make without further difficulty. On other operating systems, you should compile the six source modules, linking them together. Note that, on Decus C based systems, you must extend the default stack allocation. The Decus C build utility will create the appropriate command file. Support Notes The USENET distribution kit was designed to keep all submissions around 50,000 bytes: cpp1.arc: readme.txt This file cpp.mem Documentation page (see below) archx.c Archive extraction program archc.c Archive construction program cpp.rno Source for cpp.mem (see below) makefile.txt Unix makefile -- copy to Makefile cpp.h Main header file (structure def's and globals) cppdef.h Configuration file (host and target definitions) cpp2.arc: cpp1.c Mainline code, documentation master sources cpp2.c most #control processing cpp3.c filename stuff and command line parsing cpp3.arc: cpp4.c #define processor cpp5.c #if processor cpp6.c Support code (symbol table and I/O routines) Cpp intentionally does not rely on the presence of a full-scale macro preprocessor, it does require the simple parameter substitution preprocessor capabilities of Unix V6 and Decus C. If your C language lacks full preprocessing, you should make sure "nomacargs" is #define'd in cpp.h. (This is done automatically by the Decus C compiler.) The documentation (manual page) for cpp is included as cpp.mem and cpp.rno. Cpp.rno is in Dec Runoff format, built by a Decus C utility (getrno) from original source which is embedded in cpp1.c. To my knowledge, there is no equivalent program that creates the nroff source appropriate for Unix. I would be happy to receive fixes to any problems you encounter. As I do not maintain distribution kit base-levels, bare-bones diff listings without sufficient context are not very useful. It is unlikely that I can find time to help you with other difficulties. Acknowledgements I received a great deal of help from many people in debugging cpp. Alan Feuer and Sam Kendall used "state of the art" run-time code checkers to locate several errors. Ed Keiser found problems when cpp was used on machines with different int and pointer sizes. Dave Conroy helped with the initial debugging, while Arthur Olsen and George Rosenberg found (and solved) several problems in the first USENET release. Martin Minow decvax!minow xview-3.2p1.4/util/cpp/cpp.h100644 1750 1750 15212 5413747650 13150 0ustar mbmb /* * I n t e r n a l D e f i n i t i o n s f o r C P P * * In general, definitions in this file should not be changed. */ #ifndef TRUE #define TRUE 1 #define FALSE 0 #endif #ifndef EOS /* * This is predefined in Decus C */ #define EOS '\0' /* End of string */ #endif #define EOF_CHAR 0 /* Returned by get() on eof */ #define NULLST ((char *) NULL) /* Pointer to nowhere (linted) */ #define DEF_NOARGS (-1) /* #define foo vs #define foo() */ /* * The following may need to change if the host system doesn't use ASCII. */ #define DEF_MAGIC 0x1D /* Magic for #defines */ #define TOK_SEP 0x1E /* Token concatenation delim. */ #define COM_SEP 0x1F /* Magic comment separator */ /* * Note -- in Ascii, the following will map macro formals onto DEL + the * C1 control character region (decimal 128 .. (128 + PAR_MAC)) which will * be ok as long as PAR_MAC is less than 33). Note that the last PAR_MAC * value is reserved for string substitution. */ #define MAC_PARM 0x7F /* Macro formals start here */ #if PAR_MAC >= 33 assertion fails -- PAR_MAC isn't less than 33 #endif #define LASTPARM (PAR_MAC - 1) /* * Character type codes. */ #define INV 0 /* Invalid, must be zero */ #define OP_EOE INV /* End of expression */ #define DIG 1 /* Digit */ #define LET 2 /* Identifier start */ #define FIRST_BINOP OP_ADD #define OP_ADD 3 #define OP_SUB 4 #define OP_MUL 5 #define OP_DIV 6 #define OP_MOD 7 #define OP_ASL 8 #define OP_ASR 9 #define OP_AND 10 /* &, not && */ #define OP_OR 11 /* |, not || */ #define OP_XOR 12 #define OP_EQ 13 #define OP_NE 14 #define OP_LT 15 #define OP_LE 16 #define OP_GE 17 #define OP_GT 18 #define OP_ANA 19 /* && */ #define OP_ORO 20 /* || */ #define OP_QUE 21 /* ? */ #define OP_COL 22 /* : */ #define OP_CMA 23 /* , (relevant?) */ #define LAST_BINOP OP_CMA /* Last binary operand */ /* * The following are unary. */ #define FIRST_UNOP OP_PLU /* First Unary operand */ #define OP_PLU 24 /* + (draft ANSI standard) */ #define OP_NEG 25 /* - */ #define OP_COM 26 /* ~ */ #define OP_NOT 27 /* ! */ #define LAST_UNOP OP_NOT #define OP_LPA 28 /* ( */ #define OP_RPA 29 /* ) */ #define OP_END 30 /* End of expression marker */ #define OP_MAX (OP_END + 1) /* Number of operators */ #define OP_FAIL (OP_END + 1) /* For error returns */ /* * The following are for lexical scanning only. */ #define QUO 65 /* Both flavors of quotation */ #define DOT 66 /* . might start a number */ #define SPA 67 /* Space and tab */ #define BSH 68 /* Just a backslash */ #define END 69 /* EOF */ /* * These bits are set in ifstack[] */ #define WAS_COMPILING 1 /* TRUE if compile set at entry */ #define ELSE_SEEN 2 /* TRUE when #else processed */ #define TRUE_SEEN 4 /* TRUE when #if TRUE processed */ /* * Define bits for the basic types and their adjectives */ #define T_CHAR 1 #define T_INT 2 #define T_FLOAT 4 #define T_DOUBLE 8 #define T_SHORT 16 #define T_LONG 32 #define T_SIGNED 64 #define T_UNSIGNED 128 #define T_PTR 256 /* Pointer */ #define T_FPTR 512 /* Pointer to functions */ /* * The DEFBUF structure stores information about #defined * macros. Note that the defbuf->repl information is always * in malloc storage. */ typedef struct defbuf { struct defbuf *link; /* Next define in chain */ char *repl; /* -> replacement */ int hash; /* Symbol table hash */ int nargs; /* For define(args) */ char name[1]; /* #define name */ } DEFBUF; /* * The FILEINFO structure stores information about open files * and macros being expanded. */ typedef struct fileinfo { char *bptr; /* Buffer pointer */ int line; /* for include or macro */ FILE *fp; /* File if non-null */ struct fileinfo *parent; /* Link to includer */ char *filename; /* File/macro name */ char *progname; /* From #line statement */ unsigned int unrecur; /* For macro recursion */ char buffer[1]; /* current input line */ } FILEINFO; /* * The SIZES structure is used to store the values for #if sizeof */ typedef struct sizes { short bits; /* If this bit is set, */ short size; /* this is the datum size value */ short psize; /* this is the pointer size */ } SIZES; /* * nomacarg is a built-in #define on Decus C. */ #ifdef nomacarg #define cput output /* cput concatenates tokens */ #else #if COMMENT_INVISIBLE #define cput(c) { if (c != TOK_SEP && c != COM_SEP) putchar(c); } #else #define cput(c) { if (c != TOK_SEP) putchar(c); } #endif #endif #ifndef nomacarg #define streq(s1, s2) (strcmp(s1, s2) == 0) #endif /* * Error codes. VMS uses system definitions. * Decus C codes are defined in stdio.h. * Others are cooked to order. */ #if HOST == SYS_VMS #include #include #define IO_NORMAL (SS$_NORMAL | STS$M_INHIB_MSG) #define IO_ERROR SS$_ABORT #endif /* * Note: IO_NORMAL and IO_ERROR are defined in the Decus C stdio.h file */ #ifndef IO_NORMAL #define IO_NORMAL 0 #endif #ifndef IO_ERROR #define IO_ERROR 1 #endif /* * Externs */ extern int line; /* Current line number */ extern int wrongline; /* Force #line to cc pass 1 */ extern char type[]; /* Character classifier */ extern char token[IDMAX + 1]; /* Current input token */ extern int instring; /* TRUE if scanning string */ extern int inmacro; /* TRUE if scanning #define */ extern int errors; /* Error counter */ extern int recursion; /* Macro depth counter */ extern char ifstack[BLK_NEST]; /* #if information */ #define compiling ifstack[0] extern char *ifptr; /* -> current ifstack item */ extern char *incdir[NINCLUDE]; /* -i directories */ extern char **incend; /* -> active end of incdir */ extern int cflag; /* -C option (keep comments) */ extern int eflag; /* -E option (ignore errors) */ extern int nflag; /* -N option (no pre-defines) */ extern int rec_recover; /* unwind recursive macros */ extern char *preset[]; /* Standard predefined symbols */ extern char *magic[]; /* Magic predefined symbols */ extern FILEINFO *infile; /* Current input file */ extern char work[NWORK + 1]; /* #define scratch */ extern char *workp; /* Free space in work */ #if DEBUG extern int debug; /* Debug level */ #endif extern int keepcomments; /* Don't remove comments if set */ extern SIZES size_table[]; /* For #if sizeof sizes */ extern char *getmem(); /* Get memory or die. */ extern DEFBUF *lookid(); /* Look for a #define'd thing */ extern DEFBUF *defendel(); /* Symbol table enter/delete */ extern char *savestring(); /* Stuff string in malloc mem. */ extern char *strcpy(); extern char *strcat(); extern char *strrchr(); extern char *strchr(); extern long time(); extern char *sprintf(); /* Lint needs this */ xview-3.2p1.4/util/cpp/cpp.mem100644 1750 1750 27514 5413747650 13507 0ustar mbmb 1.0 C Pre-Processor ******* * cpp * ******* NAME: cpp -- C Pre-Processor SYNOPSIS: cpp [-options] [infile [outfile]] DESCRIPTION: CPP reads a C source file, expands macros and include files, and writes an input file for the C compiler. If no file arguments are given, CPP reads from stdin and writes to stdout. If one file argument is given, it will define the input file, while two file arguments define both input and output files. The file name "-" is a synonym for stdin or stdout as appropriate. The following options are supported. Options may be given in either case. -C If set, source-file comments are written to the output file. This allows the output of CPP to be used as the input to a program, such as lint, that expects commands embedded in specially-formatted comments. -Dname=value Define the name as if the programmer wrote #define name value at the start of the first file. If "=value" is not given, a value of "1" will be used. On non-unix systems, all alphabetic text will be forced to upper-case. -E Always return "success" to the operating system, even if errors were detected. Note that some fatal errors, such as a missing #include file, will terminate CPP, returning "failure" even if the -E option is given. Page 2 cpp C Pre-Processor -Idirectory Add this directory to the list of directories searched for #include "..." and #include <...> commands. Note that there is no space between the "-I" and the directory string. More than one -I command is permitted. On non-Unix systems "directory" is forced to upper-case. -N CPP normally predefines some symbols defining the target computer and operating system. If -N is specified, no symbols will be predefined. If -N -N is specified, the "always present" symbols, __LINE__, __FILE__, and __DATE__ are not defined. -Stext CPP normally assumes that the size of the target computer's basic variable types is the same as the size of these types of the host computer. (This can be overridden when CPP is compiled, however.) The -S option allows dynamic respecification of these values. "text" is a string of numbers, separated by commas, that specifies correct sizes. The sizes must be specified in the exact order: char short int long float double If you specify the option as "-S*text", pointers to these types will be specified. -S* takes one additional argument for pointer to function (e.g. int (*)()) For example, to specify sizes appropriate for a PDP-11, you would write: c s i l f d func -S1,2,2,2,4,8, -S*2,2,2,2,2,2,2 Note that all values must be specified. -Uname Undefine the name as if #undef name were given. On non-Unix systems, "name" will be forced to upper-case. Page 3 cpp C Pre-Processor -Xnumber Enable debugging code. If no value is given, a value of 1 will be used. (For maintenence of CPP only.) PRE-DEFINED VARIABLES: When CPP begins processing, the following variables will have been defined (unless the -N option is specified): Target computer (as appropriate): pdp11, vax, M68000 m68000 m68k Target operating system (as appropriate): rsx, rt11, vms, unix Target compiler (as appropriate): decus, vax11c The implementor may add definitions to this list. The default definitions match the definition of the host computer, operating system, and C compiler. The following are always available unless undefined (or -N was specified twice): __FILE__ The input (or #include) file being compiled (as a quoted string). __LINE__ The line number being compiled. __DATE__ The date and time of compilation as a Unix ctime quoted string (the trailing newline is removed). Thus, printf("Bug at line %s,", __LINE__); printf(" source file %s", __FILE__); printf(" compiled on %s", __DATE__); DRAFT PROPOSED ANSI STANDARD CONSIDERATIONS: The current version of the Draft Proposed Standard explicitly states that "readers are requested not to specify or claim conformance to this draft." Readers and users of Decus CPP should not assume that Decus CPP conforms to the standard, or that it will conform to the actual C Language Standard. When CPP is itself compiled, many features of the Draft Proposed Standard that are incompatible with existing Page 4 cpp C Pre-Processor preprocessors may be disabled. See the comments in CPP's source for details. The latest version of the Draft Proposed Standard (as reflected in Decus CPP) is dated November 12, 1984. Comments are removed from the input text. The comment is replaced by a single space character. The -C option preserves comments, writing them to the output file. The '$' character is considered to be a letter. This is a permitted extension. The following new features of C are processed by CPP: #elif expression (#else #if) '\xNNN' (Hexadecimal constant) '\a' (Ascii BELL) '\v' (Ascii Vertical Tab) #if defined NAME 1 if defined, 0 if not #if defined (NAME) 1 if defined, 0 if not #if sizeof (basic type) unary + 123U, 123LU Unsigned ints and longs. 12.3L Long double numbers token#token Token concatenation #include token Expands to filename The Draft Proposed Standard has extended C, adding a constant string concatenation operator, where "foo" "bar" is regarded as the single string "foobar". (This does not affect CPP's processing but does permit a limited form of macro argument substitution into strings as will be discussed.) The Standard Committee plans to add token concatenation to #define command lines. One suggested implementation is as follows: the sequence "Token1#Token2" is treated as if the programmer wrote "Token1Token2". This could be used as follows: #line 123 #define ATLINE foo#__LINE__ ATLINE would be defined as foo123. Note that "Token2" must either have the format of an identifier or be a string of digits. Thus, the string #define ATLINE foo#1x3 Page 5 cpp C Pre-Processor generates two tokens: "foo1" and "x3". If the tokens T1 and T2 are concatenated into T3, this implementation operates as follows: 1. Expand T1 if it is a macro. 2. Expand T2 if it is a macro. 3. Join the tokens, forming T3. 4. Expand T3 if it is a macro. A macro formal parameter will be substituted into a string or character constant if it is the only component of that constant: #define VECSIZE 123 #define vprint(name, size) \ printf("name" "[" "size" "] = {\n") ... vprint(vector, VECSIZE); expands (effectively) to vprint("vector[123] = {\n"); Note that this will be useful if your C compiler supports the new string concatenation operation noted above. As implemented here, if you write #define string(arg) "arg" ... string("foo") ... This implementation generates "foo", rather than the strictly correct ""foo"" (which will probably generate an error message). This is, strictly speaking, an error in CPP and may be removed from future releases. ERROR MESSAGES: Many. CPP prints warning or error messages if you try to use multiple-byte character constants (non-transportable) if you #undef a symbol that was not defined, or if your program has potentially nested comments. AUTHOR: Martin Minow BUGS: The #if expression processor uses signed integers only. I.e, #if 0xFFFFu < 0 may be TRUE. xview-3.2p1.4/util/cpp/cpp.rno100644 1750 1750 17643 5413747650 13531 0ustar mbmb.lm 8.rm 72.nhy .no autosubtitle .style headers 3,0,0 .pg.uc.ps 58,80.lm 8.rm 72 .hd .hd mixed .head mixed .st ########cpp#####C Pre-Processor .pg .hl 1 ^&C Pre-Processor\& .s 2 .c ;******* .c ;* cpp * .c ;******* .s 2 .lm +8 .s.i -8;NAME: cpp -- C Pre-Processor .s.f .i -8;SYNOPSIS: .s.nf cpp [-options] [infile [outfile]] .s.f .i -8;DESCRIPTION: .s CPP reads a C source file, expands macros and include files, and writes an input file for the C compiler. If no file arguments are given, CPP reads from stdin and writes to stdout. If one file argument is given, it will define the input file, while two file arguments define both input and output files. The file name "-" is a synonym for stdin or stdout as appropriate. .s The following options are supported. Options may be given in either case. .lm +16 .p -16 -C If set, source-file comments are written to the output file. This allows the output of CPP to be used as the input to a program, such as lint, that expects commands embedded in specially-formatted comments. .p -16 -Dname=value Define the name as if the programmer wrote .s .nf _#define name value .s .fill at the start of the first file. If "=value" is not given, a value of "1" will be used. .s On non-unix systems, all alphabetic text will be forced to upper-case. .p -16 -E Always return "success" to the operating system, even if errors were detected. Note that some fatal errors, such as a missing _#include file, will terminate CPP, returning "failure" even if the -E option is given. .p -16 -Idirectory Add this directory to the list of directories searched for _#include "..." and _#include <...> commands. Note that there is no space between the "-I" and the directory string. More than one -I command is permitted. On non-Unix systems "directory" is forced to upper-case. .p -16 -N CPP normally predefines some symbols defining the target computer and operating system. If -N is specified, no symbols will be predefined. If -N -N is specified, the "always present" symbols, ____LINE____, ____FILE____, and ____DATE____ are not defined. .p -16 -Stext CPP normally assumes that the size of the target computer's basic variable types is the same as the size of these types of the host computer. (This can be overridden when CPP is compiled, however.) The -S option allows dynamic respecification of these values. "text" is a string of numbers, separated by commas, that specifies correct sizes. The sizes must be specified in the exact order: .s .nf char short int long float double .s .fill If you specify the option as "-S*text", pointers to these types will be specified. -S* takes one additional argument for pointer to function (e.g. int (*)()) .s For example, to specify sizes appropriate for a PDP-11, you would write: .s .nf c s i l f d func -S1,2,2,2,4,8, -S*2,2,2,2,2,2,2 .s .fill Note that all values must be specified. .p -16 -Uname Undefine the name as if .s .nf _#undef name .s .fill were given. On non-Unix systems, "name" will be forced to upper-case. .p -16 -Xnumber Enable debugging code. If no value is given, a value of 1 will be used. (For maintenence of CPP only.) .s.lm -16 .s .i -8;PRE-DEFINED VARIABLES: .s When CPP begins processing, the following variables will have been defined (unless the -N option is specified): .s Target computer (as appropriate): .s .nf pdp11, vax, M68000 m68000 m68k .fill .s Target operating system (as appropriate): .s .nf rsx, rt11, vms, unix .fill .s Target compiler (as appropriate): .s .nf decus, vax11c .fill .s The implementor may add definitions to this list. The default definitions match the definition of the host computer, operating system, and C compiler. .s The following are always available unless undefined (or -N was specified twice): .lm +16 .p -12 ____FILE____ The input (or _#include) file being compiled (as a quoted string). .p -12 ____LINE____ The line number being compiled. .p -12 ____DATE____ The date and time of compilation as a Unix ctime quoted string (the trailing newline is removed). Thus, .s .nf printf("Bug at line _%s,", ____LINE____); printf(" source file _%s", ____FILE____); printf(" compiled on _%s", ____DATE____); .fill .s.lm -16 .s .i -8;DRAFT PROPOSED ANSI STANDARD CONSIDERATIONS: .s The current version of the Draft Proposed Standard explicitly states that "readers are requested not to specify or claim conformance to this draft." Readers and users of Decus CPP should not assume that Decus CPP conforms to the standard, or that it will conform to the actual C Language Standard. .s When CPP is itself compiled, many features of the Draft Proposed Standard that are incompatible with existing preprocessors may be disabled. See the comments in CPP's source for details. .s The latest version of the Draft Proposed Standard (as reflected in Decus CPP) is dated November 12, 1984. .s Comments are removed from the input text. The comment is replaced by a single space character. The -C option preserves comments, writing them to the output file. .s The '$' character is considered to be a letter. This is a permitted extension. .s The following new features of C are processed by CPP: .s.comment Note: significant spaces, not tabs, .br quotes #if, #elif .br;####_#elif expression (_#else _#if) .br;####'_\xNNN' (Hexadecimal constant) .br;####'_\a' (Ascii BELL) .br;####'_\v' (Ascii Vertical Tab) .br;####_#if defined NAME 1 if defined, 0 if not .br;####_#if defined (NAME) 1 if defined, 0 if not .br;####_#if sizeof (basic type) .br;####unary + .br;####123U, 123LU Unsigned ints and longs. .br;####12.3L Long double numbers .br;####token_#token Token concatenation .br;####_#include token Expands to filename .s The Draft Proposed Standard has extended C, adding a constant string concatenation operator, where .s .nf "foo" "bar" .s .fill is regarded as the single string "foobar". (This does not affect CPP's processing but does permit a limited form of macro argument substitution into strings as will be discussed.) .s The Standard Committee plans to add token concatenation to _#define command lines. One suggested implementation is as follows: the sequence "Token1_#Token2" is treated as if the programmer wrote "Token1Token2". This could be used as follows: .s .nf _#line 123 _#define ATLINE foo_#____LINE____ .s .fill ATLINE would be defined as foo123. .s Note that "Token2" must either have the format of an identifier or be a string of digits. Thus, the string .s .nf _#define ATLINE foo_#1x3 .s .fill generates two tokens: "foo1" and "x3". .s If the tokens T1 and T2 are concatenated into T3, this implementation operates as follows: .s .nf 1. Expand T1 if it is a macro. 2. Expand T2 if it is a macro. 3. Join the tokens, forming T3. 4. Expand T3 if it is a macro. .s .fill A macro formal parameter will be substituted into a string or character constant if it is the only component of that constant: .s .nf _#define VECSIZE 123 _#define vprint(name, size) _\ printf("name" "[" "size" "] = {_\n") ... vprint(vector, VECSIZE); .s .fill expands (effectively) to .s .nf vprint("vector[123] = {_\n"); .s .fill Note that this will be useful if your C compiler supports the new string concatenation operation noted above. As implemented here, if you write .s .nf _#define string(arg) "arg" ... string("foo") ... .s .fill This implementation generates "foo", rather than the strictly correct ""foo"" (which will probably generate an error message). This is, strictly speaking, an error in CPP and may be removed from future releases. .s .i -8;ERROR MESSAGES: .s Many. CPP prints warning or error messages if you try to use multiple-byte character constants (non-transportable) if you _#undef a symbol that was not defined, or if your program has potentially nested comments. .s .i -8;AUTHOR: .s Martin Minow .s .i -8;BUGS: .s The _#if expression processor uses signed integers only. I.e, _#if 0xFFFFu < 0 may be TRUE. .s .lm 8.rm 72.nhy xview-3.2p1.4/util/cpp/cpp1.c100644 1750 1750 56450 5413747651 13236 0ustar mbmb/* * CPP main program. * * Edit history * 21-May-84 MM "Field test" release * 23-May-84 MM Some minor hacks. * 30-May-84 ARF Didn't get enough memory for __DATE__ * Added code to read stdin if no input * files are provided. * 29-Jun-84 MM Added ARF's suggestions, Unixifying cpp. * 11-Jul-84 MM "Official" first release (that's what I thought!) * 22-Jul-84 MM/ARF/SCK Fixed line number bugs, added cpp recognition * of #line, fixed problems with #include. * 23-Jul-84 MM More (minor) include hacking, some documentation. * Also, redid cpp's #include files * 25-Jul-84 MM #line filename isn't used for #include searchlist * #line format is * 25-Jul-84 ARF/MM Various bugs, mostly serious. Removed homemade doprint * 01-Aug-84 MM Fixed recursion bug, remove extra newlines and * leading whitespace from cpp output. * 02-Aug-84 MM Hacked (i.e. optimized) out blank lines and unneeded * whitespace in general. Cleaned up unget()'s. * 03-Aug-84 Keie Several bug fixes from Ed Keizer, Vrije Universitet. * -- corrected arg. count in -D and pre-defined * macros. Also, allow \n inside macro actual parameter * lists. * 06-Aug-84 MM If debugging, dump the preset vector at startup. * 12-Aug-84 MM/SCK Some small changes from Sam Kendall * 15-Aug-84 Keie/MM cerror, cwarn, etc. take a single string arg. * cierror, etc. take a single int. arg. * changed LINE_PREFIX slightly so it can be * changed in the makefile. * 31-Aug-84 MM USENET net.sources release. * 7-Sep-84 SCH/ado Lint complaints * 10-Sep-84 Keie Char's can't be signed in some implementations * 11-Sep-84 ado Added -C flag, pathological line number fix * 13-Sep-84 ado Added -E flag (does nothing) and "-" file for stdin. * 14-Sep-84 MM Allow # 123 as a synonym for #line 123 * 19-Sep-84 MM scanid always reads to token, make sure #line is * written to a new line, even if -C switch given. * Also, cpp - - reads stdin, writes stdout. * 03-Oct-84 ado/MM Several changes to line counting and keepcomments * stuff. Also a rewritten control() hasher -- much * simpler and no less "perfect". Note also changes * in cpp3.c to fix numeric scanning. * 04-Oct-84 MM Added recognition of macro formal parameters if * they are the only thing in a string, per the * draft standard. * 08-Oct-84 MM One more attack on scannumber * 15-Oct-84 MM/ado Added -N to disable predefined symbols. Fixed * linecount if COMMENT_INVISIBLE enabled. * 22-Oct-84 MM Don't evaluate the #if/#ifdef argument if * compilation is supressed. This prevents * unnecessary error messages in sequences such as * #ifdef FOO -- undefined * #if FOO == 10 -- shouldn't print warning * 25-Oct-84 MM Fixed bug in false ifdef supression. On vms, * #include should open foo.h -- this duplicates * the behavior of Vax-C * 31-Oct-84 ado/MM Parametized $ in indentifiers. Added a better * token concatenator and took out the trial * concatenation code. Also improved #ifdef code * and cleaned up the macro recursion tester. * 2-Nov-84 MM/ado Some bug fixes in token concatenation, also * a variety of minor (uninteresting) hacks. * 6-Nov-84 MM Happy Birthday. Broke into 4 files and added * #if sizeof (basic_types) * 9-Nov-84 MM Added -S* for pointer type sizes * 13-Nov-84 MM Split cpp1.c, added vms defaulting * 23-Nov-84 MM/ado -E supresses error exit, added CPP_INCLUDE, * fixed strncpy bug. * 3-Dec-84 ado/MM Added OLD_PREPROCESSOR * 7-Dec-84 MM Stuff in Nov 12 Draft Standard * 17-Dec-84 george Fixed problems with recursive macros * 17-Dec-84 MM Yet another attack on #if's (f/t)level removed. * 07-Jan-85 ado Init defines before doing command line options * so -Uunix works. */ /*)BUILD $(PROGRAM) = cpp $(FILES) = { cpp1 cpp2 cpp3 cpp4 cpp5 cpp6 } $(INCLUDE) = { cppdef.h cpp.h } $(STACK) = 2000 $(TKBOPTIONS) = { STACK = 2000 } */ #ifdef DOCUMENTATION title cpp C Pre-Processor index C pre-processor synopsis .s.nf cpp [-options] [infile [outfile]] .s.f description CPP reads a C source file, expands macros and include files, and writes an input file for the C compiler. If no file arguments are given, CPP reads from stdin and writes to stdout. If one file argument is given, it will define the input file, while two file arguments define both input and output files. The file name "-" is a synonym for stdin or stdout as appropriate. The following options are supported. Options may be given in either case. .lm +16 .p -16 -C If set, source-file comments are written to the output file. This allows the output of CPP to be used as the input to a program, such as lint, that expects commands embedded in specially-formatted comments. .p -16 -Dname=value Define the name as if the programmer wrote #define name value at the start of the first file. If "=value" is not given, a value of "1" will be used. On non-unix systems, all alphabetic text will be forced to upper-case. .p -16 -E Always return "success" to the operating system, even if errors were detected. Note that some fatal errors, such as a missing #include file, will terminate CPP, returning "failure" even if the -E option is given. .p -16 -Idirectory Add this directory to the list of directories searched for #include "..." and #include <...> commands. Note that there is no space between the "-I" and the directory string. More than one -I command is permitted. On non-Unix systems "directory" is forced to upper-case. .p -16 -N CPP normally predefines some symbols defining the target computer and operating system. If -N is specified, no symbols will be predefined. If -N -N is specified, the "always present" symbols, __LINE__, __FILE__, and __DATE__ are not defined. .p -16 -Stext CPP normally assumes that the size of the target computer's basic variable types is the same as the size of these types of the host computer. (This can be overridden when CPP is compiled, however.) The -S option allows dynamic respecification of these values. "text" is a string of numbers, separated by commas, that specifies correct sizes. The sizes must be specified in the exact order: char short int long float double If you specify the option as "-S*text", pointers to these types will be specified. -S* takes one additional argument for pointer to function (e.g. int (*)()) For example, to specify sizes appropriate for a PDP-11, you would write: c s i l f d func -S1,2,2,2,4,8, -S*2,2,2,2,2,2,2 Note that all values must be specified. .p -16 -Uname Undefine the name as if #undef name were given. On non-Unix systems, "name" will be forced to upper-case. .p -16 -Xnumber Enable debugging code. If no value is given, a value of 1 will be used. (For maintenence of CPP only.) .s.lm -16 Pre-Defined Variables When CPP begins processing, the following variables will have been defined (unless the -N option is specified): .s Target computer (as appropriate): .s pdp11, vax, M68000 m68000 m68k .s Target operating system (as appropriate): .s rsx, rt11, vms, unix .s Target compiler (as appropriate): .s decus, vax11c .s The implementor may add definitions to this list. The default definitions match the definition of the host computer, operating system, and C compiler. .s The following are always available unless undefined (or -N was specified twice): .lm +16 .p -12 __FILE__ The input (or #include) file being compiled (as a quoted string). .p -12 __LINE__ The line number being compiled. .p -12 __DATE__ The date and time of compilation as a Unix ctime quoted string (the trailing newline is removed). Thus, .s printf("Bug at line %s,", __LINE__); printf(" source file %s", __FILE__); printf(" compiled on %s", __DATE__); .s.lm -16 Draft Proposed Ansi Standard Considerations The current version of the Draft Proposed Standard explicitly states that "readers are requested not to specify or claim conformance to this draft." Readers and users of Decus CPP should not assume that Decus CPP conforms to the standard, or that it will conform to the actual C Language Standard. When CPP is itself compiled, many features of the Draft Proposed Standard that are incompatible with existing preprocessors may be disabled. See the comments in CPP's source for details. The latest version of the Draft Proposed Standard (as reflected in Decus CPP) is dated November 12, 1984. Comments are removed from the input text. The comment is replaced by a single space character. The -C option preserves comments, writing them to the output file. The '$' character is considered to be a letter. This is a permitted extension. The following new features of C are processed by CPP: .s.comment Note: significant spaces, not tabs, .br quotes #if, #elif .br;####_#elif expression (_#else _#if) .br;####'_\xNNN' (Hexadecimal constant) .br;####'_\a' (Ascii BELL) .br;####'_\v' (Ascii Vertical Tab) .br;####_#if defined NAME 1 if defined, 0 if not .br;####_#if defined (NAME) 1 if defined, 0 if not .br;####_#if sizeof (basic type) .br;####unary + .br;####123U, 123LU Unsigned ints and longs. .br;####12.3L Long double numbers .br;####token_#token Token concatenation .br;####_#include token Expands to filename The Draft Proposed Standard has extended C, adding a constant string concatenation operator, where "foo" "bar" is regarded as the single string "foobar". (This does not affect CPP's processing but does permit a limited form of macro argument substitution into strings as will be discussed.) The Standard Committee plans to add token concatenation to #define command lines. One suggested implementation is as follows: the sequence "Token1#Token2" is treated as if the programmer wrote "Token1Token2". This could be used as follows: #line 123 #define ATLINE foo#__LINE__ ATLINE would be defined as foo123. Note that "Token2" must either have the format of an identifier or be a string of digits. Thus, the string #define ATLINE foo#1x3 generates two tokens: "foo1" and "x3". If the tokens T1 and T2 are concatenated into T3, this implementation operates as follows: 1. Expand T1 if it is a macro. 2. Expand T2 if it is a macro. 3. Join the tokens, forming T3. 4. Expand T3 if it is a macro. A macro formal parameter will be substituted into a string or character constant if it is the only component of that constant: #define VECSIZE 123 #define vprint(name, size) \ printf("name" "[" "size" "] = {\n") ... vprint(vector, VECSIZE); expands (effectively) to vprint("vector[123] = {\n"); Note that this will be useful if your C compiler supports the new string concatenation operation noted above. As implemented here, if you write #define string(arg) "arg" ... string("foo") ... This implementation generates "foo", rather than the strictly correct ""foo"" (which will probably generate an error message). This is, strictly speaking, an error in CPP and may be removed from future releases. error messages Many. CPP prints warning or error messages if you try to use multiple-byte character constants (non-transportable) if you #undef a symbol that was not defined, or if your program has potentially nested comments. author Martin Minow bugs The #if expression processor uses signed integers only. I.e, #if 0xFFFFu < 0 may be TRUE. #endif #include #include #include "cppdef.h" #include "cpp.h" /* * Commonly used global variables: * line is the current input line number. * wrongline is set in many places when the actual output * line is out of sync with the numbering, e.g, * when expanding a macro with an embedded newline. * * token holds the last identifier scanned (which might * be a candidate for macro expansion). * errors is the running cpp error counter. * infile is the head of a linked list of input files (extended by * #include and macros being expanded). infile always points * to the current file/macro. infile->parent to the includer, * etc. infile->fd is NULL if this input stream is a macro. */ int line; /* Current line number */ int wrongline; /* Force #line to compiler */ char token[IDMAX + 1]; /* Current input token */ int errors; /* cpp error counter */ FILEINFO *infile = NULL; /* Current input file */ #if DEBUG int debug; /* TRUE if debugging now */ #endif /* * This counter is incremented when a macro expansion is initiated. * If it exceeds a built-in value, the expansion stops -- this tests * for a runaway condition: * #define X Y * #define Y X * X * This can be disabled by falsifying rec_recover. (Nothing does this * currently: it is a hook for an eventual invocation flag.) */ int recursion; /* Infinite recursion counter */ int rec_recover = TRUE; /* Unwind recursive macros */ /* * instring is set TRUE when a string is scanned. It modifies the * behavior of the "get next character" routine, causing all characters * to be passed to the caller (except ). Note especially that * comments and \ are not removed from the source. (This * prevents cpp output lines from being arbitrarily long). * * inmacro is set by #define -- it absorbs comments and converts * form-feed and vertical-tab to space, but returns \ * to the caller. Strictly speaking, this is a bug as \ * shouldn't delimit tokens, but we'll worry about that some other * time -- it is more important to prevent infinitly long output lines. * * instring and inmarcor are parameters to the get() routine which * were made global for speed. */ int instring = FALSE; /* TRUE if scanning string */ int inmacro = FALSE; /* TRUE if #defining a macro */ /* * work[] and workp are used to store one piece of text in a temporay * buffer. To initialize storage, set workp = work. To store one * character, call save(c); (This will fatally exit if there isn't * room.) To terminate the string, call save(EOS). Note that * the work buffer is used by several subroutines -- be sure your * data won't be overwritten. The extra byte in the allocation is * needed for string formal replacement. */ char work[NWORK + 1]; /* Work buffer */ char *workp; /* Work buffer pointer */ /* * keepcomments is set TRUE by the -C option. If TRUE, comments * are written directly to the output stream. This is needed if * the output from cpp is to be passed to lint (which uses commands * embedded in comments). cflag contains the permanent state of the * -C flag. keepcomments is always falsified when processing #control * commands and when compilation is supressed by a false #if * * If eflag is set, CPP returns "success" even if non-fatal errors * were detected. * * If nflag is non-zero, no symbols are predefined except __LINE__. * __FILE__, and __DATE__. If nflag > 1, absolutely no symbols * are predefined. */ int keepcomments = FALSE; /* Write out comments flag */ int cflag = FALSE; /* -C option (keep comments) */ int eflag = FALSE; /* -E option (never fail) */ int nflag = 0; /* -N option (no predefines) */ /* * ifstack[] holds information about nested #if's. It is always * accessed via *ifptr. The information is as follows: * WAS_COMPILING state of compiling flag at outer level. * ELSE_SEEN set TRUE when #else seen to prevent 2nd #else. * TRUE_SEEN set TRUE when #if or #elif succeeds * ifstack[0] holds the compiling flag. It is TRUE if compilation * is currently enabled. Note that this must be initialized TRUE. */ char ifstack[BLK_NEST] = { TRUE }; /* #if information */ char *ifptr = ifstack; /* -> current ifstack[] */ /* * incdir[] stores the -i directories (and the system-specific * #include <...> directories. */ char *incdir[NINCLUDE]; /* -i directories */ char **incend = incdir; /* -> free space in incdir[] */ /* * This is the table used to predefine target machine and operating * system designators. It may need hacking for specific circumstances. * Note: it is not clear that this is part of the Ansi Standard. * The -N option supresses preset definitions. */ char *preset[] = { /* names defined at cpp start */ #ifdef MACHINE MACHINE, #endif #ifdef SYSTEM SYSTEM, #endif #ifdef COMPILER COMPILER, #endif #if DEBUG "decus_cpp", /* Ourselves! */ #endif NULL /* Must be last */ }; /* * The value of these predefined symbols must be recomputed whenever * they are evaluated. The order must not be changed. */ char *magic[] = { /* Note: order is important */ "__LINE__", "__FILE__", NULL /* Must be last */ }; main(argc, argv) int argc; char *argv[]; { register int i; #if HOST == SYS_VMS argc = getredirection(argc, argv); /* vms >file and stdin */ /* * Open input file, "-" means use stdin. */ if (!streq(argv[1], "-")) { if (freopen(argv[1], "r", stdin) == NULL) { perror(argv[1]); cerror("Can't open input file \"%s\"", argv[1]); exit(IO_ERROR); } strcpy(work, argv[1]); /* Remember input filename */ break; } /* Else, just get stdin */ case 0: /* No args? */ case 1: /* No files, stdin -> stdout */ #if HOST == SYS_UNIX work[0] = EOS; /* Unix can't find stdin name */ #else fgetname(stdin, work); /* Vax-11C, Decus C know name */ #endif break; default: exit(IO_ERROR); /* Can't happen */ } setincdirs(); /* Setup -I include directories */ addfile(stdin, work); /* "open" main input file */ #if DEBUG if (debug > 0) dumpdef("preset #define symbols"); #endif cppmain(); /* Process main file */ if ((i = (ifptr - &ifstack[0])) != 0) { #if OLD_PREPROCESSOR ciwarn("Inside #ifdef block at end of input, depth = %d", i); #else cierror("Inside #ifdef block at end of input, depth = %d", i); #endif } fclose(stdout); if (errors > 0) { fprintf(stderr, (errors == 1) ? "%d error in preprocessor\n" : "%d errors in preprocessor\n", errors); if (!eflag) exit(IO_ERROR); } exit(IO_NORMAL); /* No errors or -E option set */ } FILE_LOCAL cppmain() /* * Main process for cpp -- copies tokens from the current input * stream (main file, include file, or a macro) to the output * file. */ { register int c; /* Current character */ register int counter; /* newlines and spaces */ extern int output(); /* Output one character */ /* * Explicitly output a #line at the start of cpp output so * that lint (etc.) knows the name of the original source * file. If we don't do this explicitly, we may get * the name of the first #include file instead. * We also seem to need a blank line following that first #line. */ sharp(); putchar('\n'); /* * This loop is started "from the top" at the beginning of each line * wrongline is set TRUE in many places if it is necessary to write * a #line record. (But we don't write them when expanding macros.) * * The counter variable has two different uses: at * the start of a line, it counts the number of blank lines that * have been skipped over. These are then either output via * #line records or by outputting explicit blank lines. * When expanding tokens within a line, the counter remembers * whether a blank/tab has been output. These are dropped * at the end of the line, and replaced by a single blank * within lines. */ for (;;) { counter = 0; /* Count empty lines */ for (;;) { /* For each line, ... */ while (type[(c = get())] == SPA) /* Skip leading blanks */ ; /* in this line. */ if (c == '\n') /* If line's all blank, */ ++counter; /* Do nothing now */ else if (c == '#') { /* Is 1st non-space '#' */ keepcomments = FALSE; /* Don't pass comments */ counter = control(counter); /* Yes, do a #command */ keepcomments = (cflag && compiling); } else if (c == EOF_CHAR) /* At end of file? */ break; else if (!compiling) { /* #ifdef false? */ skipnl(); /* Skip to newline */ counter++; /* Count it, too. */ } else { break; /* Actual token */ } } if (c == EOF_CHAR) /* Exit process at */ break; /* End of file */ /* * If the loop didn't terminate because of end of file, we * know there is a token to compile. First, clean up after * absorbing newlines. counter has the number we skipped. */ if ((wrongline && infile->fp != NULL) || counter > 4) sharp(); /* Output # line number */ else { /* If just a few, stuff */ while (--counter >= 0) /* them out ourselves */ putchar('\n'); } /* * Process each token on this line. */ unget(); /* Reread the char. */ for (;;) { /* For the whole line, */ do { /* Token concat. loop */ for (counter = 0; (type[(c = get())] == SPA);) { #if COMMENT_INVISIBLE if (c != COM_SEP) counter++; #else counter++; /* Skip over blanks */ #endif } if (c == EOF_CHAR || c == '\n') goto end_line; /* Exit line loop */ else if (counter > 0) /* If we got any spaces */ putchar(' '); /* Output one space */ c = macroid(c); /* Grab the token */ } while (type[c] == LET && catenate()); if (c == EOF_CHAR || c == '\n') /* From macro exp error */ goto end_line; /* Exit line loop */ switch (type[c]) { case LET: fputs(token, stdout); /* Quite ordinary token */ break; case DIG: /* Output a number */ case DOT: /* Dot may begin floats */ scannumber(c, output); break; case QUO: /* char or string const */ scanstring(c, output); /* Copy it to output */ break; default: /* Some other character */ cput(c); /* Just output it */ break; } /* Switch ends */ } /* Line for loop */ end_line: if (c == '\n') { /* Compiling at EOL? */ putchar('\n'); /* Output newline, if */ if (infile->fp == NULL) /* Expanding a macro, */ wrongline = TRUE; /* Output # line later */ } } /* Continue until EOF */ } output(c) int c; /* * Output one character to stdout -- output() is passed as an * argument to scanstring() */ { #if COMMENT_INVISIBLE if (c != TOK_SEP && c != COM_SEP) #else if (c != TOK_SEP) #endif putchar(c); } static char *sharpfilename = NULL; FILE_LOCAL sharp() /* * Output a line number line. */ { register char *name; if (keepcomments) /* Make sure # comes on */ putchar('\n'); /* a fresh, new line. */ printf("#%s %d", LINE_PREFIX, line); if (infile->fp != NULL) { name = (infile->progname != NULL) ? infile->progname : infile->filename; if (sharpfilename == NULL || sharpfilename != NULL && !streq(name, sharpfilename)) { if (sharpfilename != NULL) free(sharpfilename); sharpfilename = savestring(name); printf(" \"%s\"", name); } } putchar('\n'); wrongline = FALSE; } xview-3.2p1.4/util/cpp/cpp2.c100644 1750 1750 36533 5413747651 13237 0ustar mbmb/* * C P P 2 . C * * Process #control lines * * Edit history * 13-Nov-84 MM Split from cpp1.c */ #include #include #include "cppdef.h" #include "cpp.h" #if HOST == SYS_VMS /* * Include the rms stuff. (We can't just include rms.h as it uses the * VaxC-specific library include syntax that Decus CPP doesn't support. * By including things by hand, we can CPP ourself.) */ #include #include #include #include #endif /* * Generate (by hand-inspection) a set of unique values for each control * operator. Note that this is not guaranteed to work for non-Ascii * machines. CPP won't compile if there are hash conflicts. */ #define L_assert ('a' + ('s' << 1)) #define L_define ('d' + ('f' << 1)) #define L_elif ('e' + ('i' << 1)) #define L_else ('e' + ('s' << 1)) #define L_endif ('e' + ('d' << 1)) #define L_if ('i' + (EOS << 1)) #define L_ifdef ('i' + ('d' << 1)) #define L_ifndef ('i' + ('n' << 1)) #define L_include ('i' + ('c' << 1)) #define L_line ('l' + ('n' << 1)) #define L_nogood (EOS + (EOS << 1)) /* To catch #i */ #define L_pragma ('p' + ('a' << 1)) #define L_undef ('u' + ('d' << 1)) #if DEBUG #define L_debug ('d' + ('b' << 1)) /* #debug */ #define L_nodebug ('n' + ('d' << 1)) /* #nodebug */ #endif int control(counter) int counter; /* Pending newline counter */ /* * Process #control lines. Simple commands are processed inline, * while complex commands have their own subroutines. * * The counter is used to force out a newline before #line, and * #pragma commands. This prevents these commands from ending up at * the end of the previous line if cpp is invoked with the -C option. */ { register int c; register char *tp; register int hash; char *ep; c = skipws(); if (c == '\n' || c == EOF_CHAR) return (counter + 1); if (!isdigit(c)) scanid(c); /* Get #word to token[] */ else { unget(); /* Hack -- allow #123 as a */ strcpy(token, "line"); /* synonym for #line 123 */ } hash = (token[1] == EOS) ? L_nogood : (token[0] + (token[2] << 1)); switch (hash) { case L_assert: tp = "assert"; break; case L_define: tp = "define"; break; case L_elif: tp = "elif"; break; case L_else: tp = "else"; break; case L_endif: tp = "endif"; break; case L_if: tp = "if"; break; case L_ifdef: tp = "ifdef"; break; case L_ifndef: tp = "ifndef"; break; case L_include: tp = "include"; break; case L_line: tp = "line"; break; case L_pragma: tp = "pragma"; break; case L_undef: tp = "undef"; break; #if DEBUG case L_debug: tp = "debug"; break; case L_nodebug: tp = "nodebug"; break; #endif default: hash = L_nogood; case L_nogood: tp = ""; break; } if (!streq(tp, token)) hash = L_nogood; /* * hash is set to a unique value corresponding to the * control keyword (or L_nogood if we think it's nonsense). */ if (infile->fp == NULL) cwarn("Control line \"%s\" within macro expansion", token); if (!compiling) { /* Not compiling now */ switch (hash) { case L_if: /* These can't turn */ case L_ifdef: /* compilation on, but */ case L_ifndef: /* we must nest #if's */ if (++ifptr >= &ifstack[BLK_NEST]) goto if_nest_err; *ifptr = 0; /* !WAS_COMPILING */ case L_line: /* Many */ /* * Are pragma's always processed? */ case L_pragma: /* options */ case L_include: /* are uninteresting */ case L_define: /* if we */ case L_undef: /* aren't */ case L_assert: /* compiling. */ dump_line: skipnl(); /* Ignore rest of line */ return (counter + 1); } } /* * Make sure that #line and #pragma are output on a fresh line. */ if (counter > 0 && (hash == L_line || hash == L_pragma)) { putchar('\n'); counter--; } switch (hash) { case L_line: /* * Parse the line to update the line number and "progname" * field and line number for the next input line. * Set wrongline to force it out later. */ c = skipws(); workp = work; /* Save name in work */ while (c != '\n' && c != EOF_CHAR) { save(c); c = get(); } unget(); save(EOS); /* * Split #line argument into and * We subtract 1 as we want the number of the next line. */ line = atoi(work) - 1; /* Reset line number */ for (tp = work; isdigit(*tp) || type[*tp] == SPA; tp++) ; /* Skip over digits */ if (*tp != EOS) { /* Got a filename, so: */ if (*tp == '"' && (ep = strrchr(tp + 1, '"')) != NULL) { tp++; /* Skip over left quote */ *ep = EOS; /* And ignore right one */ } if (infile->progname != NULL) /* Give up the old name */ free(infile->progname); /* if it's allocated. */ infile->progname = savestring(tp); } wrongline = TRUE; /* Force output later */ break; case L_include: doinclude(); break; case L_define: dodefine(); break; case L_undef: doundef(); break; case L_else: if (ifptr == &ifstack[0]) goto nest_err; else if ((*ifptr & ELSE_SEEN) != 0) goto else_seen_err; *ifptr |= ELSE_SEEN; if ((*ifptr & WAS_COMPILING) != 0) { if (compiling || (*ifptr & TRUE_SEEN) != 0) compiling = FALSE; else { compiling = TRUE; } } break; case L_elif: if (ifptr == &ifstack[0]) goto nest_err; else if ((*ifptr & ELSE_SEEN) != 0) { else_seen_err: cerror("#%s may not follow #else", token); goto dump_line; } if ((*ifptr & (WAS_COMPILING | TRUE_SEEN)) != WAS_COMPILING) { compiling = FALSE; /* Done compiling stuff */ goto dump_line; /* Skip this clause */ } doif(L_if); break; case L_if: case L_ifdef: case L_ifndef: if (++ifptr >= &ifstack[BLK_NEST]) if_nest_err: cfatal("Too many nested #%s statements", token); *ifptr = WAS_COMPILING; doif(hash); break; case L_endif: if (ifptr == &ifstack[0]) { nest_err: cerror("#%s must be in an #if", token); goto dump_line; } if (!compiling && (*ifptr & WAS_COMPILING) != 0) wrongline = TRUE; compiling = ((*ifptr & WAS_COMPILING) != 0); --ifptr; break; case L_assert: if (eval() == 0) cerror("Preprocessor assertion failure", NULLST); break; case L_pragma: /* * #pragma is provided to pass "options" to later * passes of the compiler. cpp doesn't have any yet. */ printf("#pragma "); while ((c = get()) != '\n' && c != EOF_CHAR) cput(c); unget(); break; #if DEBUG case L_debug: if (debug == 0) dumpdef("debug set on"); debug++; break; case L_nodebug: debug--; break; #endif default: /* * Undefined #control keyword. * Note: the correct behavior may be to warn and * pass the line to a subsequent compiler pass. * This would allow #asm or similar extensions. */ cerror("Illegal # command \"%s\"", token); break; } if (hash != L_include) { #if OLD_PREPROCESSOR /* * Ignore the rest of the #control line so you can write * #if foo * #endif foo */ goto dump_line; /* Take common exit */ #else if (skipws() != '\n') { cwarn("Unexpected text in #control line ignored", NULLST); skipnl(); } #endif } return (counter + 1); } FILE_LOCAL doif(hash) int hash; /* * Process an #if, #ifdef, or #ifndef. The latter two are straightforward, * while #if needs a subroutine of its own to evaluate the expression. * * doif() is called only if compiling is TRUE. If false, compilation * is always supressed, so we don't need to evaluate anything. This * supresses unnecessary warnings. */ { register int c; register int found; if ((c = skipws()) == '\n' || c == EOF_CHAR) { unget(); goto badif; } if (hash == L_if) { unget(); found = (eval() != 0); /* Evaluate expr, != 0 is TRUE */ hash = L_ifdef; /* #if is now like #ifdef */ } else { if (type[c] != LET) /* Next non-blank isn't letter */ goto badif; /* ... is an error */ found = (lookid(c) != NULL); /* Look for it in symbol table */ } if (found == (hash == L_ifdef)) { compiling = TRUE; *ifptr |= TRUE_SEEN; } else { compiling = FALSE; } return; badif: cerror("#if, #ifdef, or #ifndef without an argument", NULLST); #if !OLD_PREPROCESSOR skipnl(); /* Prevent an extra */ unget(); /* Error message */ #endif return; } FILE_LOCAL doinclude() /* * Process the #include control line. * There are three variations: * #include "file" search somewhere relative to the * current source file, if not found, * treat as #include . * #include Search in an implementation-dependent * list of places. * #include token Expand the token, it must be one of * "file" or , process as such. * * Note: the November 12 draft forbids '>' in the #include format. * This restriction is unnecessary and not implemented. */ { register int c; register int delim; #if HOST == SYS_VMS char def_filename[NAM$C_MAXRSS + 1]; #endif delim = macroid(skipws()); if (delim != '<' && delim != '"') goto incerr; if (delim == '<') delim = '>'; workp = work; instring = TRUE; /* Accept all characters */ #ifdef CONTROL_COMMENTS_NOT_ALLOWED while ((c = get()) != '\n' && c != EOF_CHAR) save(c); /* Put it away. */ unget(); /* Force nl after includee */ /* * The draft is unclear if the following should be done. */ while (--workp >= work && *workp == ' ') ; /* Trim blanks from filename */ if (*workp != delim) goto incerr; #else while ((c = get()) != delim && c != EOF_CHAR) save(c); #endif *workp = EOS; /* Terminate filename */ instring = FALSE; #if HOST == SYS_VMS /* * Assume the default .h filetype. */ if (!vmsparse(work, ".H", def_filename)) { perror(work); /* Oops. */ goto incerr; } else if (openinclude(def_filename, (delim == '"'))) return; #else if (openinclude(work, (delim == '"'))) return; #endif /* * No sense continuing if #include file isn't there. */ cfatal("Cannot open include file \"%s\"", work); incerr: cerror("#include syntax error", NULLST); return; } FILE_LOCAL int openinclude(filename, searchlocal) char *filename; /* Input file name */ int searchlocal; /* TRUE if #include "file" */ /* * Actually open an include file. This routine is only called from * doinclude() above, but was written as a separate subroutine for * programmer convenience. It searches the list of directories * and actually opens the file, linking it into the list of * active files. Returns TRUE if the file was opened, FALSE * if openinclude() fails. No error message is printed. */ { register char **incptr; #if HOST == SYS_VMS #if NWORK < (NAM$C_MAXRSS + 1) << error, NWORK isn't greater than NAM$C_MAXRSS >> #endif #endif char tmpname[NWORK]; /* Filename work area */ if (searchlocal) { /* * Look in local directory first */ #if HOST == SYS_UNIX /* * Try to open filename relative to the directory of the current * source file (as opposed to the current directory). (ARF, SCK). */ if (filename[0] != '/' && hasdirectory(infile->filename, tmpname)) strcat(tmpname, filename); else { strcpy(tmpname, filename); } #else if (!hasdirectory(filename, tmpname) && hasdirectory(infile->filename, tmpname)) strcat(tmpname, filename); else { strcpy(tmpname, filename); } #endif if (openfile(tmpname)) return (TRUE); } /* * Look in any directories specified by -I command line * arguments, then in the builtin search list. */ for (incptr = incdir; incptr < incend; incptr++) { if (strlen(*incptr) + strlen(filename) >= (NWORK - 1)) cfatal("Filename work buffer overflow", NULLST); else { #if HOST == SYS_UNIX if (filename[0] == '/') strcpy(tmpname, filename); else { sprintf(tmpname, "%s/%s", *incptr, filename); } #else if (!hasdirectory(filename, tmpname)) sprintf(tmpname, "%s%s", *incptr, filename); #endif if (openfile(tmpname)) return (TRUE); } } return (FALSE); } FILE_LOCAL int hasdirectory(source, result) char *source; /* Directory to examine */ char *result; /* Put directory stuff here */ /* * If a device or directory is found in the source filename string, the * node/device/directory part of the string is copied to result and * hasdirectory returns TRUE. Else, nothing is copied and it returns FALSE. */ { #if HOST == SYS_UNIX register char *tp; if ((tp = strrchr(source, '/')) == NULL) return (FALSE); else { strncpy(result, source, tp - source + 1); result[tp - source + 1] = EOS; return (TRUE); } #else #if HOST == SYS_VMS if (vmsparse(source, NULLST, result) && result[0] != EOS) return (TRUE); else { return (FALSE); } #else /* * Random DEC operating system (RSX, RT11, RSTS/E) */ register char *tp; if ((tp = strrchr(source, ']')) == NULL && (tp = strrchr(source, ':')) == NULL) return (FALSE); else { strncpy(result, source, tp - source + 1); result[tp - source + 1] = EOS; return (TRUE); } #endif #endif } #if HOST == SYS_VMS /* * EXP_DEV is set if a device was specified, EXP_DIR if a directory * is specified. (Both set indicate a file-logical, but EXP_DEV * would be set by itself if you are reading, say, SYS$INPUT:) */ #define DEVDIR (NAM$M_EXP_DEV | NAM$M_EXP_DIR) FILE_LOCAL int vmsparse(source, defstring, result) char *source; char *defstring; /* non-NULL -> default string. */ char *result; /* Size is at least NAM$C_MAXRSS + 1 */ /* * Parse the source string, applying the default (properly, using * the system parse routine), storing it in result. * TRUE if it parsed, FALSE on error. * * If defstring is NULL, there are no defaults and result gets * (just) the node::[directory] part of the string (possibly "") */ { struct FAB fab = cc$rms_fab; /* File access block */ struct NAM nam = cc$rms_nam; /* File name block */ char fullname[NAM$C_MAXRSS + 1]; register char *rp; /* Result pointer */ fab.fab$l_nam = &nam; /* fab -> nam */ fab.fab$l_fna = source; /* Source filename */ fab.fab$b_fns = strlen(source); /* Size of source */ fab.fab$l_dna = defstring; /* Default string */ if (defstring != NULLST) fab.fab$b_dns = strlen(defstring); /* Size of default */ nam.nam$l_esa = fullname; /* Expanded filename */ nam.nam$b_ess = NAM$C_MAXRSS; /* Expanded name size */ if (sys$parse(&fab) == RMS$_NORMAL) { /* Parse away */ fullname[nam.nam$b_esl] = EOS; /* Terminate string */ result[0] = EOS; /* Just in case */ rp = &result[0]; /* * Remove stuff added implicitly, accepting node names and * dev:[directory] strings (but not process-permanent files). */ if ((nam.nam$l_fnb & NAM$M_PPF) == 0) { if ((nam.nam$l_fnb & NAM$M_NODE) != 0) { strncpy(result, nam.nam$l_node, nam.nam$b_node); rp += nam.nam$b_node; *rp = EOS; } if ((nam.nam$l_fnb & DEVDIR) == DEVDIR) { strncpy(rp, nam.nam$l_dev, nam.nam$b_dev + nam.nam$b_dir); rp += nam.nam$b_dev + nam.nam$b_dir; *rp = EOS; } } if (defstring != NULLST) { strncpy(rp, nam.nam$l_name, nam.nam$b_name + nam.nam$b_type); rp += nam.nam$b_name + nam.nam$b_type; *rp = EOS; if ((nam.nam$l_fnb & NAM$M_EXP_VER) != 0) { strncpy(rp, nam.nam$l_ver, nam.nam$b_ver); rp[nam.nam$b_ver] = EOS; } } return (TRUE); } return (FALSE); } #endif xview-3.2p1.4/util/cpp/cpp3.c100644 1750 1750 25602 5413747651 13233 0ustar mbmb/* * C P P 3 . C * * File open and command line options * * Edit history * 13-Nov-84 MM Split from cpp1.c */ #include #include #include "cppdef.h" #include "cpp.h" #if DEBUG && (HOST == SYS_VMS || HOST == SYS_UNIX) #include extern int abort(); /* For debugging */ #endif int openfile(filename) char *filename; /* * Open a file, add it to the linked list of open files. * This is called only from openfile() above. */ { register FILE *fp; if ((fp = fopen(filename, "r")) == NULL) { #if DEBUG perror(filename); #endif return (FALSE); } #if DEBUG if (debug) fprintf(stderr, "Reading from \"%s\"\n", filename); #endif addfile(fp, filename); return (TRUE); } addfile(fp, filename) FILE *fp; /* Open file pointer */ char *filename; /* Name of the file */ /* * Initialize tables for this open file. This is called from openfile() * above (for #include files), and from the entry to cpp to open the main * input file. It calls a common routine, getfile() to build the FILEINFO * structure which is used to read characters. (getfile() is also called * to setup a macro replacement.) */ { register FILEINFO *file; extern FILEINFO *getfile(); file = getfile(NBUFF, filename); file->fp = fp; /* Better remember FILE * */ file->buffer[0] = EOS; /* Initialize for first read */ line = 1; /* Working on line 1 now */ wrongline = TRUE; /* Force out initial #line */ } setincdirs() /* * Append system-specific directories to the include directory list. * Called only when cpp is started. */ { #ifdef CPP_INCLUDE *incend++ = CPP_INCLUDE; #define IS_INCLUDE 1 #else #define IS_INCLUDE 0 #endif #if HOST == SYS_UNIX *incend++ = "/usr/include"; #define MAXINCLUDE (NINCLUDE - 1 - IS_INCLUDE) #endif #if HOST == SYS_VMS extern char *getenv(); if (getenv("C$LIBRARY") != NULL) *incend++ = "C$LIBRARY:"; *incend++ = "SYS$LIBRARY:"; #define MAXINCLUDE (NINCLUDE - 2 - IS_INCLUDE) #endif #if HOST == SYS_RSX extern int $$rsts; /* TRUE on RSTS/E */ extern int $$pos; /* TRUE on PRO-350 P/OS */ extern int $$vms; /* TRUE on VMS compat. */ if ($$pos) { /* P/OS? */ *incend++ = "SY:[ZZDECUSC]"; /* C #includes */ *incend++ = "LB:[1,5]"; /* RSX library */ } else if ($$rsts) { /* RSTS/E? */ *incend++ = "SY:@"; /* User-defined account */ *incend++ = "C:"; /* Decus-C library */ *incend++ = "LB:[1,1]"; /* RSX library */ } else if ($$vms) { /* VMS compatibility? */ *incend++ = "C:"; } else { /* Plain old RSX/IAS */ *incend++ = "LB:[1,1]"; } #define MAXINCLUDE (NINCLUDE - 3 - IS_INCLUDE) #endif #if HOST == SYS_RT11 extern int $$rsts; /* RSTS/E emulation? */ if ($$rsts) *incend++ = "SY:@"; /* User-defined account */ *incend++ = "C:"; /* Decus-C library disk */ *incend++ = "SY:"; /* System (boot) disk */ #define MAXINCLUDE (NINCLUDE - 3 - IS_INCLUDE) #endif } int dooptions(argc, argv) int argc; char *argv[]; /* * dooptions is called to process command line arguments (-Detc). * It is called only at cpp startup. */ { register char *ap; register DEFBUF *dp; register int c; int i, j; char *arg; SIZES *sizp; /* For -S */ int size; /* For -S */ int isdatum; /* FALSE for -S* */ int endtest; /* For -S */ for (i = j = 1; i < argc; i++) { arg = ap = argv[i]; if (*ap++ != '-' || *ap == EOS) argv[j++] = argv[i]; else { c = *ap++; /* Option byte */ if (islower(c)) /* Normalize case */ c = toupper(c); switch (c) { /* Command character */ case 'C': /* Keep comments */ cflag = TRUE; keepcomments = TRUE; break; case 'D': /* Define symbol */ #if HOST != SYS_UNIX zap_uc(ap); /* Force define to U.C. */ #endif /* * If the option is just "-Dfoo", make it -Dfoo=1 */ while (*ap != EOS && *ap != '=') ap++; if (*ap == EOS) ap = "1"; else *ap++ = EOS; /* * Now, save the word and its definition. */ dp = defendel(argv[i] + 2, FALSE); dp->repl = savestring(ap); dp->nargs = DEF_NOARGS; break; case 'E': /* Ignore non-fatal */ eflag = TRUE; /* errors. */ break; case 'I': /* Include directory */ if (incend >= &incdir[MAXINCLUDE]) cfatal("Too many include directories", NULLST); *incend++ = ap; break; case 'N': /* No predefineds */ nflag++; /* Repeat to undefine */ break; /* __LINE__, etc. */ case 'S': sizp = size_table; if (isdatum = (*ap != '*')) /* If it's just -S, */ endtest = T_FPTR; /* Stop here */ else { /* But if it's -S* */ ap++; /* Step over '*' */ endtest = 0; /* Stop at end marker */ } while (sizp->bits != endtest && *ap != EOS) { if (!isdigit(*ap)) { /* Skip to next digit */ ap++; continue; } size = 0; /* Compile the value */ while (isdigit(*ap)) { size *= 10; size += (*ap++ - '0'); } if (isdatum) sizp->size = size; /* Datum size */ else sizp->psize = size; /* Pointer size */ sizp++; } if (sizp->bits != endtest) cwarn("-S, too few values specified in %s", argv[i]); else if (*ap != EOS) cwarn("-S, too many values, \"%s\" unused", ap); break; case 'U': /* Undefine symbol */ #if HOST != SYS_UNIX zap_uc(ap); #endif if (defendel(ap, TRUE) == NULL) cwarn("\"%s\" wasn't defined", ap); break; #if DEBUG case 'X': /* Debug */ debug = (isdigit(*ap)) ? atoi(ap) : 1; #if (HOST == SYS_VMS || HOST == SYS_UNIX) signal(SIGINT, abort); /* Trap "interrupt" */ #endif fprintf(stderr, "Debug set to %d\n", debug); break; #endif default: /* What is this one? */ cwarn("Unknown option \"%s\"", arg); fprintf(stderr, "The following options are valid:\n\ -C\t\t\tWrite source file comments to output\n\ -Dsymbol=value\tDefine a symbol with the given (optional) value\n\ -Idirectory\t\tAdd a directory to the #include search list\n\ -N\t\t\tDon't predefine target-specific names\n\ -Stext\t\tSpecify sizes for #if sizeof\n\ -Usymbol\t\tUndefine symbol\n"); #if DEBUG fprintf(stderr, " -Xvalue\t\tSet internal debug flag\n"); #endif break; } /* Switch on all options */ } /* If it's a -option */ } /* For all arguments */ if (j > 3) { cerror( "Too many file arguments. Usage: cpp [input [output]]", NULLST); } return (j); /* Return new argc */ } #if HOST != SYS_UNIX FILE_LOCAL zap_uc(ap) register char *ap; /* * Dec operating systems mangle upper-lower case in command lines. * This routine forces the -D and -U arguments to uppercase. * It is called only on cpp startup by dooptions(). */ { while (*ap != EOS) { /* * Don't use islower() here so it works with Multinational */ if (*ap >= 'a' && *ap <= 'z') *ap = toupper(*ap); ap++; } } #endif initdefines() /* * Initialize the built-in #define's. There are two flavors: * #define decus 1 (static definitions) * #define __FILE__ ?? (dynamic, evaluated by magic) * Called only on cpp startup. * * Note: the built-in static definitions are supressed by the -N option. * __LINE__, __FILE__, and __DATE__ are always present. */ { register char **pp; register char *tp; register DEFBUF *dp; int i; long tvec; extern char *ctime(); /* * Predefine the built-in symbols. Allow the * implementor to pre-define a symbol as "" to * eliminate it. */ if (nflag == 0) { for (pp = preset; *pp != NULL; pp++) { if (*pp[0] != EOS) { dp = defendel(*pp, FALSE); dp->repl = savestring("1"); dp->nargs = DEF_NOARGS; } } } /* * The magic pre-defines (__FILE__ and __LINE__ are * initialized with negative argument counts. expand() * notices this and calls the appropriate routine. * DEF_NOARGS is one greater than the first "magic" definition. */ if (nflag < 2) { for (pp = magic, i = DEF_NOARGS; *pp != NULL; pp++) { dp = defendel(*pp, FALSE); dp->nargs = --i; } #if OK_DATE /* * Define __DATE__ as today's date. */ dp = defendel("__DATE__", FALSE); dp->repl = tp = getmem(27); dp->nargs = DEF_NOARGS; time(&tvec); *tp++ = '"'; strcpy(tp, ctime(&tvec)); tp[24] = '"'; /* Overwrite newline */ #endif } } #if HOST == SYS_VMS /* * getredirection() is intended to aid in porting C programs * to VMS (Vax-11 C) which does not support '>' and '<' * I/O redirection. With suitable modification, it may * useful for other portability problems as well. */ int getredirection(argc, argv) int argc; char **argv; /* * Process vms redirection arg's. Exit if any error is seen. * If getredirection() processes an argument, it is erased * from the vector. getredirection() returns a new argc value. * * Warning: do not try to simplify the code for vms. The code * presupposes that getredirection() is called before any data is * read from stdin or written to stdout. * * Normal usage is as follows: * * main(argc, argv) * int argc; * char *argv[]; * { * argc = getredirection(argc, argv); * } */ { register char *ap; /* Argument pointer */ int i; /* argv[] index */ int j; /* Output index */ int file; /* File_descriptor */ extern int errno; /* Last vms i/o error */ for (j = i = 1; i < argc; i++) { /* Do all arguments */ switch (*(ap = argv[i])) { case '<': /* ': /* >file or >>file */ if (*++ap == '>') { /* >>file */ /* * If the file exists, and is writable by us, * call freopen to append to the file (using the * file's current attributes). Otherwise, create * a new file with "vanilla" attributes as if the * argument was given as ">filename". * access(name, 2) returns zero if we can write on * the specified file. */ if (access(++ap, 2) == 0) { if (freopen(ap, "a", stdout) != NULL) break; /* Exit case statement */ perror(ap); /* Error, can't append */ exit(errno); /* After access test */ } /* If file accessable */ } /* * On vms, we want to create the file using "standard" * record attributes. creat(...) creates the file * using the caller's default protection mask and * "variable length, implied carriage return" * attributes. dup2() associates the file with stdout. */ if ((file = creat(ap, 0, "rat=cr", "rfm=var")) == -1 || dup2(file, fileno(stdout)) == -1) { perror(ap); /* Can't create file */ exit(errno); /* is a fatal error */ } /* If '>' creation */ break; /* Exit case test */ default: argv[j++] = ap; /* Not a redirector */ break; /* Exit case test */ } } /* For all arguments */ argv[j] = NULL; /* Terminate argv[] */ return (j); /* Return new argc */ } #endif xview-3.2p1.4/util/cpp/cpp4.c100644 1750 1750 40503 5413747651 13231 0ustar mbmb/* * C P P 4 . C * M a c r o D e f i n i t i o n s * * Edit History * 31-Aug-84 MM USENET net.sources release * 04-Oct-84 MM __LINE__ and __FILE__ must call ungetstring() * so they work correctly with token concatenation. * Added string formal recognition. * 25-Oct-84 MM "Short-circuit" evaluate #if's so that we * don't print unnecessary error messages for * #if !defined(FOO) && FOO != 0 && 10 / FOO ... * 31-Oct-84 ado/MM Added token concatenation * 6-Nov-84 MM Split off eval stuff */ #include #include #include "cppdef.h" #include "cpp.h" /* * parm[], parmp, and parlist[] are used to store #define() argument * lists. nargs contains the actual number of parameters stored. */ static char parm[NPARMWORK + 1]; /* define param work buffer */ static char *parmp; /* Free space in parm */ static char *parlist[LASTPARM]; /* -> start of each parameter */ static int nargs; /* Parameters for this macro */ dodefine() /* * Called from control when a #define is scanned. This module * parses formal parameters and the replacement string. When * the formal parameter name is encountered in the replacement * string, it is replaced by a character in the range 128 to * 128+NPARAM (this allows up to 32 parameters within the * Dec Multinational range). If cpp is ported to an EBCDIC * machine, you will have to make other arrangements. * * There is some special case code to distinguish * #define foo bar * from #define foo() bar * * Also, we make sure that * #define foo foo * expands to "foo" but doesn't put cpp into an infinite loop. * * A warning message is printed if you redefine a symbol to a * different text. I.e, * #define foo 123 * #define foo 123 * is ok, but * #define foo 123 * #define foo +123 * is not. * * The following subroutines are called from define(): * checkparm called when a token is scanned. It checks through the * array of formal parameters. If a match is found, the * token is replaced by a control byte which will be used * to locate the parameter when the macro is expanded. * textput puts a string in the macro work area (parm[]), updating * parmp to point to the first free byte in parm[]. * textput() tests for work buffer overflow. * charput puts a single character in the macro work area (parm[]) * in a manner analogous to textput(). */ { register int c; register DEFBUF *dp; /* -> new definition */ int isredefine; /* TRUE if redefined */ char *old; /* Remember redefined */ extern int save(); /* Save char in work[] */ if (type[(c = skipws())] != LET) goto bad_define; isredefine = FALSE; /* Set if redefining */ if ((dp = lookid(c)) == NULL) /* If not known now */ dp = defendel(token, FALSE); /* Save the name */ else { /* It's known: */ isredefine = TRUE; /* Remember this fact */ old = dp->repl; /* Remember replacement */ dp->repl = NULL; /* No replacement now */ } parlist[0] = parmp = parm; /* Setup parm buffer */ if ((c = get()) == '(') { /* With arguments? */ nargs = 0; /* Init formals counter */ do { /* Collect formal parms */ if (nargs >= LASTPARM) cfatal("Too many arguments for macro", NULLST); else if ((c = skipws()) == ')') break; /* Got them all */ else if (type[c] != LET) /* Bad formal syntax */ goto bad_define; scanid(c); /* Get the formal param */ parlist[nargs++] = parmp; /* Save its start */ textput(token); /* Save text in parm[] */ } while ((c = skipws()) == ','); /* Get another argument */ if (c != ')') /* Must end at ) */ goto bad_define; c = ' '; /* Will skip to body */ } else { /* * DEF_NOARGS is needed to distinguish between * "#define foo" and "#define foo()". */ nargs = DEF_NOARGS; /* No () parameters */ } if (type[c] == SPA) /* At whitespace? */ c = skipws(); /* Not any more. */ workp = work; /* Replacement put here */ inmacro = TRUE; /* Keep \ now */ while (c != EOF_CHAR && c != '\n') { /* Compile macro body */ #if OK_CONCAT #if COMMENT_INVISIBLE if (c == COM_SEP) { /* Token concatenation? */ save(TOK_SEP); /* Stuff a delimiter */ c = get(); #else if (c == '#') { /* Token concatenation? */ while (workp > work && type[workp[-1]] == SPA) --workp; /* Erase leading spaces */ save(TOK_SEP); /* Stuff a delimiter */ c = skipws(); /* Eat whitespace */ #endif if (type[c] == LET) /* Another token here? */ ; /* Stuff it normally */ else if (type[c] == DIG) { /* Digit string after? */ while (type[c] == DIG) { /* Stuff the digits */ save(c); c = get(); } save(TOK_SEP); /* Delimit 2nd token */ } else { #if ! COMMENT_INVISIBLE ciwarn("Strange character after # (%d.)", c); #endif } continue; } #endif switch (type[c]) { case LET: checkparm(c, dp); /* Might be a formal */ break; case DIG: /* Number in mac. body */ case DOT: /* Maybe a float number */ scannumber(c, save); /* Scan it off */ break; case QUO: /* String in mac. body */ #if STRING_FORMAL stparmscan(c, dp); /* Do string magic */ #else stparmscan(c); #endif break; case BSH: /* Backslash */ save('\\'); if ((c = get()) == '\n') wrongline = TRUE; save(c); break; case SPA: /* Absorb whitespace */ /* * Note: the "end of comment" marker is passed on * to allow comments to separate tokens. */ if (workp[-1] == ' ') /* Absorb multiple */ break; /* spaces */ else if (c == '\t') c = ' '; /* Normalize tabs */ /* Fall through to store character */ default: /* Other character */ save(c); break; } c = get(); } inmacro = FALSE; /* Stop newline hack */ unget(); /* For control check */ if (workp > work && workp[-1] == ' ') /* Drop trailing blank */ workp--; *workp = EOS; /* Terminate work */ dp->repl = savestring(work); /* Save the string */ dp->nargs = nargs; /* Save arg count */ #if DEBUG if (debug) dumpadef("macro definition", dp); #endif if (isredefine) { /* Error if redefined */ if ((old != NULL && dp->repl != NULL && !streq(old, dp->repl)) || (old == NULL && dp->repl != NULL) || (old != NULL && dp->repl == NULL)) { #ifdef STRICT_UNDEF cerror("Redefining defined variable \"%s\"", dp->name); #else cwarn("Redefining defined variable \"%s\"", dp->name); #endif } if (old != NULL) /* We don't need the */ free(old); /* old definition now. */ } return; bad_define: cerror("#define syntax error", NULLST); inmacro = FALSE; /* Stop hack */ } checkparm(c, dp) register int c; DEFBUF *dp; /* * Replace this param if it's defined. Note that the macro name is a * possible replacement token. We stuff DEF_MAGIC in front of the token * which is treated as a LETTER by the token scanner and eaten by * the output routine. This prevents the macro expander from * looping if someone writes "#define foo foo". */ { register int i; register char *cp; scanid(c); /* Get parm to token[] */ for (i = 0; i < nargs; i++) { /* For each argument */ if (streq(parlist[i], token)) { /* If it's known */ save(i + MAC_PARM); /* Save a magic cookie */ return; /* And exit the search */ } } if (streq(dp->name, token)) /* Macro name in body? */ save(DEF_MAGIC); /* Save magic marker */ for (cp = token; *cp != EOS;) /* And save */ save(*cp++); /* The token itself */ } #if STRING_FORMAL stparmscan(delim, dp) int delim; register DEFBUF *dp; /* * Scan the string (starting with the given delimiter). * The token is replaced if it is the only text in this string or * character constant. The algorithm follows checkparm() above. * Note that scanstring() has approved of the string. */ { register int c; /* * Warning -- this code hasn't been tested for a while. * It exists only to preserve compatibility with earlier * implementations of cpp. It is not part of the Draft * ANSI Standard C language. */ save(delim); instring = TRUE; while ((c = get()) != delim && c != '\n' && c != EOF_CHAR) { if (type[c] == LET) /* Maybe formal parm */ checkparm(c, dp); else { save(c); if (c == '\\') save(get()); } } instring = FALSE; if (c != delim) cerror("Unterminated string in macro body", NULLST); save(c); } #else stparmscan(delim) int delim; /* * Normal string parameter scan. */ { register char *wp; register int i; extern int save(); wp = workp; /* Here's where it starts */ if (!scanstring(delim, save)) return; /* Exit on scanstring error */ workp[-1] = EOS; /* Erase trailing quote */ wp++; /* -> first string content byte */ for (i = 0; i < nargs; i++) { if (streq(parlist[i], wp)) { *wp++ = MAC_PARM + PAR_MAC; /* Stuff a magic marker */ *wp++ = (i + MAC_PARM); /* Make a formal marker */ *wp = wp[-3]; /* Add on closing quote */ workp = wp + 1; /* Reset string end */ return; } } workp[-1] = wp[-1]; /* Nope, reset end quote. */ } #endif doundef() /* * Remove the symbol from the defined list. * Called from the #control processor. */ { register int c; if (type[(c = skipws())] != LET) cerror("Illegal #undef argument", NULLST); else { scanid(c); /* Get name to token[] */ if (defendel(token, TRUE) == NULL) { #ifdef STRICT_UNDEF cwarn("Symbol \"%s\" not defined in #undef", token); #endif } } } textput(text) char *text; /* * Put the string in the parm[] buffer. */ { register int size; size = strlen(text) + 1; if ((parmp + size) >= &parm[NPARMWORK]) cfatal("Macro work area overflow", NULLST); else { strcpy(parmp, text); parmp += size; } } charput(c) register int c; /* * Put the byte in the parm[] buffer. */ { if (parmp >= &parm[NPARMWORK]) cfatal("Macro work area overflow", NULLST); else { *parmp++ = c; } } /* * M a c r o E x p a n s i o n */ static DEFBUF *macro; /* Catches start of infinite macro */ expand(tokenp) register DEFBUF *tokenp; /* * Expand a macro. Called from the cpp mainline routine (via subroutine * macroid()) when a token is found in the symbol table. It calls * expcollect() to parse actual parameters, checking for the correct number. * It then creates a "file" containing a single line containing the * macro with actual parameters inserted appropriately. This is * "pushed back" onto the input stream. (When the get() routine runs * off the end of the macro line, it will dismiss the macro itself.) */ { register int c; register FILEINFO *file; extern FILEINFO *getfile(); #if DEBUG if (debug) dumpadef("expand entry", tokenp); #endif /* * If no macro is pending, save the name of this macro * for an eventual error message. */ if (recursion++ == 0) macro = tokenp; else if (recursion == RECURSION_LIMIT) { cerror("Recursive macro definition of \"%s\"", tokenp->name); fprintf(stderr, "(Defined by \"%s\")\n", macro->name); if (rec_recover) { do { c = get(); } while (infile != NULL && infile->fp == NULL); unget(); recursion = 0; return; } } /* * Here's a macro to expand. */ nargs = 0; /* Formals counter */ parmp = parm; /* Setup parm buffer */ switch (tokenp->nargs) { case (-2): /* __LINE__ */ sprintf(work, "%d", line); ungetstring(work); break; case (-3): /* __FILE__ */ for (file = infile; file != NULL; file = file->parent) { if (file->fp != NULL) { sprintf(work, "\"%s\"", (file->progname != NULL) ? file->progname : file->filename); ungetstring(work); break; } } break; default: /* * Nothing funny about this macro. */ if (tokenp->nargs < 0) cfatal("Bug: Illegal __ macro \"%s\"", tokenp->name); while ((c = skipws()) == '\n') /* Look for (, skipping */ wrongline = TRUE; /* spaces and newlines */ if (c != '(') { /* * If the programmer writes * #define foo() ... * ... * foo [no ()] * just write foo to the output stream. */ unget(); cwarn("Macro \"%s\" needs arguments", tokenp->name); fputs(tokenp->name, stdout); return; } else if (expcollect()) { /* Collect arguments */ if (tokenp->nargs != nargs) { /* Should be an error? */ cwarn("Wrong number of macro arguments for \"%s\"", tokenp->name); } #if DEBUG if (debug) dumpparm("expand"); #endif } /* Collect arguments */ case DEF_NOARGS: /* No parameters just stuffs */ expstuff(tokenp); /* Do actual parameters */ } /* nargs switch */ } FILE_LOCAL int expcollect() /* * Collect the actual parameters for this macro. TRUE if ok. */ { register int c; register int paren; /* For embedded ()'s */ extern int charput(); for (;;) { paren = 0; /* Collect next arg. */ while ((c = skipws()) == '\n') /* Skip over whitespace */ wrongline = TRUE; /* and newlines. */ if (c == ')') { /* At end of all args? */ /* * Note that there is a guard byte in parm[] * so we don't have to check for overflow here. */ *parmp = EOS; /* Make sure terminated */ break; /* Exit collection loop */ } else if (nargs >= LASTPARM) cfatal("Too many arguments in macro expansion", NULLST); parlist[nargs++] = parmp; /* At start of new arg */ for (;; c = cget()) { /* Collect arg's bytes */ if (c == EOF_CHAR) { cerror("end of file within macro argument", NULLST); return (FALSE); /* Sorry. */ } else if (c == '\\') { /* Quote next character */ charput(c); /* Save the \ for later */ charput(cget()); /* Save the next char. */ continue; /* And go get another */ } else if (type[c] == QUO) { /* Start of string? */ scanstring(c, charput); /* Scan it off */ continue; /* Go get next char */ } else if (c == '(') /* Worry about balance */ paren++; /* To know about commas */ else if (c == ')') { /* Other side too */ if (paren == 0) { /* At the end? */ unget(); /* Look at it later */ break; /* Exit arg getter. */ } paren--; /* More to come. */ } else if (c == ',' && paren == 0) /* Comma delimits args */ break; else if (c == '\n') /* Newline inside arg? */ wrongline = TRUE; /* We'll need a #line */ charput(c); /* Store this one */ } /* Collect an argument */ charput(EOS); /* Terminate argument */ #if DEBUG if (debug) printf("parm[%d] = \"%s\"\n", nargs, parlist[nargs - 1]); #endif } /* Collect all args. */ return (TRUE); /* Normal return */ } FILE_LOCAL expstuff(tokenp) DEFBUF *tokenp; /* Current macro being expanded */ /* * Stuff the macro body, replacing formal parameters by actual parameters. */ { register int c; /* Current character */ register char *inp; /* -> repl string */ register char *defp; /* -> macro output buff */ int size; /* Actual parm. size */ char *defend; /* -> output buff end */ int string_magic; /* String formal hack */ FILEINFO *file; /* Funny #include */ extern FILEINFO *getfile(); file = getfile(NBUFF, tokenp->name); inp = tokenp->repl; /* -> macro replacement */ defp = file->buffer; /* -> output buffer */ defend = defp + (NBUFF - 1); /* Note its end */ if (inp != NULL) { while ((c = (*inp++ & 0xFF)) != EOS) { if (c >= MAC_PARM && c <= (MAC_PARM + PAR_MAC)) { string_magic = (c == (MAC_PARM + PAR_MAC)); if (string_magic) c = (*inp++ & 0xFF); /* * Replace formal parameter by actual parameter string. */ if ((c -= MAC_PARM) < nargs) { size = strlen(parlist[c]); if ((defp + size) >= defend) goto nospace; /* * Erase the extra set of quotes. */ if (string_magic && defp[-1] == parlist[c][0]) { strcpy(defp-1, parlist[c]); defp += (size - 2); } else { strcpy(defp, parlist[c]); defp += size; } } } else if (defp >= defend) { nospace: cfatal("Out of space in macro \"%s\" arg expansion", tokenp->name); } else { *defp++ = c; } } } *defp = EOS; #if DEBUG if (debug > 1) printf("macroline: \"%s\"\n", file->buffer); #endif } #if DEBUG dumpparm(why) char *why; /* * Dump parameter list. */ { register int i; printf("dump of %d parameters (%d bytes total) %s\n", nargs, parmp - parm, why); for (i = 0; i < nargs; i++) { printf("parm[%d] (%d) = \"%s\"\n", i + 1, strlen(parlist[i]), parlist[i]); } } #endif xview-3.2p1.4/util/cpp/cpp5.c100644 1750 1750 52360 5413747651 13236 0ustar mbmb/* * C P P 5 . C * E x p r e s s i o n E v a l u a t i o n * * Edit History * 31-Aug-84 MM USENET net.sources release * 04-Oct-84 MM __LINE__ and __FILE__ must call ungetstring() * so they work correctly with token concatenation. * Added string formal recognition. * 25-Oct-84 MM "Short-circuit" evaluate #if's so that we * don't print unnecessary error messages for * #if !defined(FOO) && FOO != 0 && 10 / FOO ... * 31-Oct-84 ado/MM Added token concatenation * 6-Nov-84 MM Split from #define stuff, added sizeof stuff * 19-Nov-84 ado #if error returns TRUE for (sigh) compatibility */ #include #include #include "cppdef.h" #include "cpp.h" /* * Evaluate an #if expression. */ static char *opname[] = { /* For debug and error messages */ "end of expression", "val", "id", "+", "-", "*", "/", "%", "<<", ">>", "&", "|", "^", "==", "!=", "<", "<=", ">=", ">", "&&", "||", "?", ":", ",", "unary +", "unary -", "~", "!", "(", ")", "(none)", }; /* * opdope[] has the operator precedence: * Bits * 7 Unused (so the value is always positive) * 6-2 Precedence (000x .. 017x) * 1-0 Binary op. flags: * 01 The binop flag should be set/cleared when this op is seen. * 10 The new value of the binop flag. * Note: Expected, New binop * constant 0 1 Binop, end, or ) should follow constants * End of line 1 0 End may not be preceeded by an operator * binary 1 0 Binary op follows a value, value follows. * unary 0 0 Unary op doesn't follow a value, value follows * ( 0 0 Doesn't follow value, value or unop follows * ) 1 1 Follows value. Op follows. */ static char opdope[OP_MAX] = { 0001, /* End of expression */ 0002, /* Digit */ 0000, /* Letter (identifier) */ 0141, 0141, 0151, 0151, 0151, /* ADD, SUB, MUL, DIV, MOD */ 0131, 0131, 0101, 0071, 0071, /* ASL, ASR, AND, OR, XOR */ 0111, 0111, 0121, 0121, 0121, 0121, /* EQ, NE, LT, LE, GE, GT */ 0061, 0051, 0041, 0041, 0031, /* ANA, ORO, QUE, COL, CMA */ /* * Unary op's follow */ 0160, 0160, 0160, 0160, /* NEG, PLU, COM, NOT */ 0170, 0013, 0023, /* LPA, RPA, END */ }; /* * OP_QUE and OP_RPA have alternate precedences: */ #define OP_RPA_PREC 0013 #define OP_QUE_PREC 0034 /* * S_ANDOR and S_QUEST signal "short-circuit" boolean evaluation, so that * #if FOO != 0 && 10 / FOO ... * doesn't generate an error message. They are stored in optab.skip. */ #define S_ANDOR 2 #define S_QUEST 1 typedef struct optab { char op; /* Operator */ char prec; /* Its precedence */ char skip; /* Short-circuit: TRUE to skip */ } OPTAB; static int evalue; /* Current value from evallex() */ #ifdef nomacargs FILE_LOCAL int isbinary(op) register int op; { return (op >= FIRST_BINOP && op <= LAST_BINOP); } FILE_LOCAL int isunary(op) register int op; { return (op >= FIRST_UNOP && op <= LAST_UNOP); } #else #define isbinary(op) (op >= FIRST_BINOP && op <= LAST_BINOP) #define isunary(op) (op >= FIRST_UNOP && op <= LAST_UNOP) #endif /* * The following definitions are used to specify basic variable sizes. */ #ifndef S_CHAR #define S_CHAR (sizeof (char)) #endif #ifndef S_SINT #define S_SINT (sizeof (short int)) #endif #ifndef S_INT #define S_INT (sizeof (int)) #endif #ifndef S_LINT #define S_LINT (sizeof (long int)) #endif #ifndef S_FLOAT #define S_FLOAT (sizeof (float)) #endif #ifndef S_DOUBLE #define S_DOUBLE (sizeof (double)) #endif #ifndef S_PCHAR #define S_PCHAR (sizeof (char *)) #endif #ifndef S_PSINT #define S_PSINT (sizeof (short int *)) #endif #ifndef S_PINT #define S_PINT (sizeof (int *)) #endif #ifndef S_PLINT #define S_PLINT (sizeof (long int *)) #endif #ifndef S_PFLOAT #define S_PFLOAT (sizeof (float *)) #endif #ifndef S_PDOUBLE #define S_PDOUBLE (sizeof (double *)) #endif #ifndef S_PFPTR #define S_PFPTR (sizeof (int (*)())) #endif typedef struct types { short type; /* This is the bit if */ char *name; /* this is the token word */ } TYPES; static TYPES basic_types[] = { { T_CHAR, "char", }, { T_INT, "int", }, { T_FLOAT, "float", }, { T_DOUBLE, "double", }, { T_SHORT, "short", }, { T_LONG, "long", }, { T_SIGNED, "signed", }, { T_UNSIGNED, "unsigned", }, { 0, NULL, }, /* Signal end */ }; /* * Test_table[] is used to test for illegal combinations. */ static short test_table[] = { T_FLOAT | T_DOUBLE | T_LONG | T_SHORT, T_FLOAT | T_DOUBLE | T_CHAR | T_INT, T_FLOAT | T_DOUBLE | T_SIGNED | T_UNSIGNED, T_LONG | T_SHORT | T_CHAR, 0 /* end marker */ }; /* * The order of this table is important -- it is also referenced by * the command line processor to allow run-time overriding of the * built-in size values. The order must not be changed: * char, short, int, long, float, double (func pointer) */ SIZES size_table[] = { { T_CHAR, S_CHAR, S_PCHAR }, /* char */ { T_SHORT, S_SINT, S_PSINT }, /* short int */ { T_INT, S_INT, S_PINT }, /* int */ { T_LONG, S_LINT, S_PLINT }, /* long */ { T_FLOAT, S_FLOAT, S_PFLOAT }, /* float */ { T_DOUBLE, S_DOUBLE, S_PDOUBLE }, /* double */ { T_FPTR, 0, S_PFPTR }, /* int (*()) */ { 0, 0, 0 }, /* End of table */ }; int eval() /* * Evaluate an expression. Straight-forward operator precedence. * This is called from control() on encountering an #if statement. * It calls the following routines: * evallex Lexical analyser -- returns the type and value of * the next input token. * evaleval Evaluate the current operator, given the values on * the value stack. Returns a pointer to the (new) * value stack. * For compatiblity with older cpp's, this return returns 1 (TRUE) * if a syntax error is detected. */ { register int op; /* Current operator */ register int *valp; /* -> value vector */ register OPTAB *opp; /* Operator stack */ int prec; /* Op precedence */ int binop; /* Set if binary op. needed */ int op1; /* Operand from stack */ int skip; /* For short-circuit testing */ int value[NEXP]; /* Value stack */ OPTAB opstack[NEXP]; /* Operand stack */ extern int *evaleval(); /* Does actual evaluation */ valp = value; opp = opstack; opp->op = OP_END; /* Mark bottom of stack */ opp->prec = opdope[OP_END]; /* And its precedence */ opp->skip = 0; /* Not skipping now */ binop = 0; again: ; #ifdef DEBUG_EVAL printf("In #if at again: skip = %d, binop = %d, line is: %s", opp->skip, binop, infile->bptr); #endif if ((op = evallex(opp->skip)) == OP_SUB && binop == 0) op = OP_NEG; /* Unary minus */ else if (op == OP_ADD && binop == 0) op = OP_PLU; /* Unary plus */ else if (op == OP_FAIL) return (1); /* Error in evallex */ #ifdef DEBUG_EVAL printf("op = %s, opdope = %03o, binop = %d, skip = %d\n", opname[op], opdope[op], binop, opp->skip); #endif if (op == DIG) { /* Value? */ if (binop != 0) { cerror("misplaced constant in #if", NULLST); return (1); } else if (valp >= &value[NEXP-1]) { cerror("#if value stack overflow", NULLST); return (1); } else { #ifdef DEBUG_EVAL printf("pushing %d onto value stack[%d]\n", evalue, valp - value); #endif *valp++ = evalue; binop = 1; } goto again; } else if (op > OP_END) { cerror("Illegal #if line", NULLST); return (1); } prec = opdope[op]; if (binop != (prec & 1)) { cerror("Operator %s in incorrect context", opname[op]); return (1); } binop = (prec & 2) >> 1; for (;;) { #ifdef DEBUG_EVAL printf("op %s, prec %d., stacked op %s, prec %d, skip %d\n", opname[op], prec, opname[opp->op], opp->prec, opp->skip); #endif if (prec > opp->prec) { if (op == OP_LPA) prec = OP_RPA_PREC; else if (op == OP_QUE) prec = OP_QUE_PREC; op1 = opp->skip; /* Save skip for test */ /* * Push operator onto op. stack. */ opp++; if (opp >= &opstack[NEXP]) { cerror("expression stack overflow at op \"%s\"", opname[op]); return (1); } opp->op = op; opp->prec = prec; skip = (valp[-1] != 0); /* Short-circuit tester */ /* * Do the short-circuit stuff here. Short-circuiting * stops automagically when operators are evaluated. */ if ((op == OP_ANA && !skip) || (op == OP_ORO && skip)) opp->skip = S_ANDOR; /* And/or skip starts */ else if (op == OP_QUE) /* Start of ?: operator */ opp->skip = (op1 & S_ANDOR) | ((!skip) ? S_QUEST : 0); else if (op == OP_COL) { /* : inverts S_QUEST */ opp->skip = (op1 & S_ANDOR) | (((op1 & S_QUEST) != 0) ? 0 : S_QUEST); } else { /* Other ops leave */ opp->skip = op1; /* skipping unchanged. */ } #ifdef DEBUG_EVAL printf("stacking %s, valp[-1] == %d at %s", opname[op], valp[-1], infile->bptr); dumpstack(opstack, opp, value, valp); #endif goto again; } /* * Pop operator from op. stack and evaluate it. * End of stack and '(' are specials. */ skip = opp->skip; /* Remember skip value */ switch ((op1 = opp->op)) { /* Look at stacked op */ case OP_END: /* Stack end marker */ if (op == OP_EOE) return (valp[-1]); /* Finished ok. */ goto again; /* Read another op. */ case OP_LPA: /* ( on stack */ if (op != OP_RPA) { /* Matches ) on input */ cerror("unbalanced paren's, op is \"%s\"", opname[op]); return (1); } opp--; /* Unstack it */ /* goto again; -- Fall through */ case OP_QUE: goto again; /* Evaluate true expr. */ case OP_COL: /* : on stack. */ opp--; /* Unstack : */ if (opp->op != OP_QUE) { /* Matches ? on stack? */ cerror("Misplaced '?' or ':', previous operator is %s", opname[opp->op]); return (1); } /* * Evaluate op1. */ default: /* Others: */ opp--; /* Unstack the operator */ #ifdef DEBUG_EVAL printf("Stack before evaluation of %s\n", opname[op1]); dumpstack(opstack, opp, value, valp); #endif valp = evaleval(valp, op1, skip); #ifdef DEBUG_EVAL printf("Stack after evaluation\n"); dumpstack(opstack, opp, value, valp); #endif } /* op1 switch end */ } /* Stack unwind loop */ } FILE_LOCAL int evallex(skip) int skip; /* TRUE if short-circuit evaluation */ /* * Return next eval operator or value. Called from eval(). It * calls a special-purpose routines for 'char' strings and * numeric values: * evalchar called to evaluate 'x' * evalnum called to evaluate numbers. */ { register int c, c1, t; again: do { /* Collect the token */ c = skipws(); if ((c = macroid(c)) == EOF_CHAR || c == '\n') { unget(); return (OP_EOE); /* End of expression */ } } while ((t = type[c]) == LET && catenate()); if (t == INV) { /* Total nonsense */ if (!skip) { if (isascii(c) && isprint(c)) cierror("illegal character '%c' in #if", c); else cierror("illegal character (%d decimal) in #if", c); } return (OP_FAIL); } else if (t == QUO) { /* ' or " */ if (c == '\'') { /* Character constant */ evalue = evalchar(skip); /* Somewhat messy */ #ifdef DEBUG_EVAL printf("evalchar returns %d.\n", evalue); #endif return (DIG); /* Return a value */ } cerror("Can't use a string in an #if", NULLST); return (OP_FAIL); } else if (t == LET) { /* ID must be a macro */ if (streq(token, "defined")) { /* Or defined name */ c1 = c = skipws(); if (c == '(') /* Allow defined(name) */ c = skipws(); if (type[c] == LET) { evalue = (lookid(c) != NULL); if (c1 != '(' /* Need to balance */ || skipws() == ')') /* Did we balance? */ return (DIG); /* Parsed ok */ } cerror("Bad #if ... defined() syntax", NULLST); return (OP_FAIL); } else if (streq(token, "sizeof")) /* New sizeof hackery */ return (dosizeof()); /* Gets own routine */ /* * The Draft ANSI C Standard says that an undefined symbol * in an #if has the value zero. We are a bit pickier, * warning except where the programmer was careful to write * #if defined(foo) ? foo : 0 */ #ifdef STRICT_UNDEF if (!skip) cwarn("undefined symbol \"%s\" in #if, 0 used", token); #endif evalue = 0; return (DIG); } else if (t == DIG) { /* Numbers are harder */ evalue = evalnum(c); #ifdef DEBUG_EVAL printf("evalnum returns %d.\n", evalue); #endif } else if (strchr("!=<>&|\\", c) != NULL) { /* * Process a possible multi-byte lexeme. */ c1 = cget(); /* Peek at next char */ switch (c) { case '!': if (c1 == '=') return (OP_NE); break; case '=': if (c1 != '=') { /* Can't say a=b in #if */ unget(); cerror("= not allowed in #if", NULLST); return (OP_FAIL); } return (OP_EQ); case '>': case '<': if (c1 == c) return ((c == '<') ? OP_ASL : OP_ASR); else if (c1 == '=') return ((c == '<') ? OP_LE : OP_GE); break; case '|': case '&': if (c1 == c) return ((c == '|') ? OP_ORO : OP_ANA); break; case '\\': if (c1 == '\n') /* Multi-line if */ goto again; cerror("Unexpected \\ in #if", NULLST); return (OP_FAIL); } unget(); } return (t); } FILE_LOCAL int dosizeof() /* * Process the sizeof (basic type) operation in an #if string. * Sets evalue to the size and returns * DIG success * OP_FAIL bad parse or something. */ { register int c; register TYPES *tp; register SIZES *sizp; register short *testp; short typecode; if ((c = skipws()) != '(') goto nogood; /* * Scan off the tokens. */ typecode = 0; while ((c = skipws())) { if ((c = macroid(c)) == EOF_CHAR || c == '\n') goto nogood; /* End of line is a bug */ else if (c == '(') { /* thing (*)() func ptr */ if (skipws() == '*' && skipws() == ')') { /* We found (*) */ if (skipws() != '(') /* Let () be optional */ unget(); else if (skipws() != ')') goto nogood; typecode |= T_FPTR; /* Function pointer */ } else { /* Junk is a bug */ goto nogood; } } else if (type[c] != LET) /* Exit if not a type */ break; else if (!catenate()) { /* Maybe combine tokens */ /* * Look for this unexpandable token in basic_types. * The code accepts "int long" as well as "long int" * which is a minor bug as bugs go (and one shared with * a lot of C compilers). */ for (tp = basic_types; tp->name != NULLST; tp++) { if (streq(token, tp->name)) break; } if (tp->name == NULLST) { cerror("#if sizeof, unknown type \"%s\"", token); return (OP_FAIL); } typecode |= tp->type; /* Or in the type bit */ } } /* * We are at the end of the type scan. Chew off '*' if necessary. */ if (c == '*') { typecode |= T_PTR; c = skipws(); } if (c == ')') { /* Last syntax check */ for (testp = test_table; *testp != 0; testp++) { if (!bittest(typecode & *testp)) { cerror("#if ... sizeof: illegal type combination", NULLST); return (OP_FAIL); } } /* * We assume that all function pointers are the same size: * sizeof (int (*)()) == sizeof (float (*)()) * We assume that signed and unsigned don't change the size: * sizeof (signed int) == (sizeof unsigned int) */ if ((typecode & T_FPTR) != 0) /* Function pointer */ typecode = T_FPTR | T_PTR; else { /* Var or var * datum */ typecode &= ~(T_SIGNED | T_UNSIGNED); if ((typecode & (T_SHORT | T_LONG)) != 0) typecode &= ~T_INT; } if ((typecode & ~T_PTR) == 0) { cerror("#if sizeof() error, no type specified", NULLST); return (OP_FAIL); } /* * Exactly one bit (and possibly T_PTR) may be set. */ for (sizp = size_table; sizp->bits != 0; sizp++) { if ((typecode & ~T_PTR) == sizp->bits) { evalue = ((typecode & T_PTR) != 0) ? sizp->psize : sizp->size; return (DIG); } } /* We shouldn't fail */ cierror("#if ... sizeof: bug, unknown type code 0x%x", typecode); return (OP_FAIL); } nogood: unget(); cerror("#if ... sizeof() syntax error", NULLST); return (OP_FAIL); } FILE_LOCAL int bittest(value) /* * TRUE if value is zero or exactly one bit is set in value. */ { #if (4096 & ~(-4096)) == 0 return ((value & ~(-value)) == 0); #else /* * Do it the hard way (for non 2's complement machines) */ return (value == 0 || value ^ (value - 1) == (value * 2 - 1)); #endif } FILE_LOCAL int evalnum(c) register int c; /* * Expand number for #if lexical analysis. Note: evalnum recognizes * the unsigned suffix, but only returns a signed int value. */ { register int value; register int base; register int c1; if (c != '0') base = 10; else if ((c = cget()) == 'x' || c == 'X') { base = 16; c = cget(); } else base = 8; value = 0; for (;;) { c1 = c; if (isascii(c) && isupper(c1)) c1 = tolower(c1); if (c1 >= 'a') c1 -= ('a' - 10); else c1 -= '0'; if (c1 < 0 || c1 >= base) break; value *= base; value += c1; c = cget(); } if (c == 'u' || c == 'U') /* Unsigned nonsense */ c = cget(); unget(); return (value); } FILE_LOCAL int evalchar(skip) int skip; /* TRUE if short-circuit evaluation */ /* * Get a character constant */ { register int c; register int value; register int count; instring = TRUE; if ((c = cget()) == '\\') { switch ((c = cget())) { case 'a': /* New in Standard */ #if ('a' == '\a' || '\a' == ALERT) value = ALERT; /* Use predefined value */ #else value = '\a'; /* Use compiler's value */ #endif break; case 'b': value = '\b'; break; case 'f': value = '\f'; break; case 'n': value = '\n'; break; case 'r': value = '\r'; break; case 't': value = '\t'; break; case 'v': /* New in Standard */ #if ('v' == '\v' || '\v' == VT) value = VT; /* Use predefined value */ #else value = '\v'; /* Use compiler's value */ #endif break; case 'x': /* '\xFF' */ count = 3; value = 0; while ((((c = get()) >= '0' && c <= '9') || (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F')) && (--count >= 0)) { value *= 16; value += (c <= '9') ? (c - '0') : ((c & 0xF) + 9); } unget(); break; default: if (c >= '0' && c <= '7') { count = 3; value = 0; while (c >= '0' && c <= '7' && --count >= 0) { value *= 8; value += (c - '0'); c = get(); } unget(); } else value = c; break; } } else if (c == '\'') value = 0; else value = c; /* * We warn on multi-byte constants and try to hack * (big|little)endian machines. */ #if BIG_ENDIAN count = 0; #endif while ((c = get()) != '\'' && c != EOF_CHAR && c != '\n') { if (!skip) ciwarn("multi-byte constant '%c' isn't portable", c); #if BIG_ENDIAN count += BITS_CHAR; value += (c << count); #else value <<= BITS_CHAR; value += c; #endif } instring = FALSE; return (value); } FILE_LOCAL int * evaleval(valp, op, skip) register int *valp; int op; int skip; /* TRUE if short-circuit evaluation */ /* * Apply the argument operator to the data on the value stack. * One or two values are popped from the value stack and the result * is pushed onto the value stack. * * OP_COL is a special case. * * evaleval() returns the new pointer to the top of the value stack. */ { register int v1, v2; if (isbinary(op)) v2 = *--valp; v1 = *--valp; #ifdef DEBUG_EVAL printf("%s op %s", (isbinary(op)) ? "binary" : "unary", opname[op]); if (isbinary(op)) printf(", v2 = %d.", v2); printf(", v1 = %d.\n", v1); #endif switch (op) { case OP_EOE: break; case OP_ADD: v1 += v2; break; case OP_SUB: v1 -= v2; break; case OP_MUL: v1 *= v2; break; case OP_DIV: case OP_MOD: if (v2 == 0) { if (!skip) { cwarn("%s by zero in #if, zero result assumed", (op == OP_DIV) ? "divide" : "mod"); } v1 = 0; } else if (op == OP_DIV) v1 /= v2; else v1 %= v2; break; case OP_ASL: v1 <<= v2; break; case OP_ASR: v1 >>= v2; break; case OP_AND: v1 &= v2; break; case OP_OR: v1 |= v2; break; case OP_XOR: v1 ^= v2; break; case OP_EQ: v1 = (v1 == v2); break; case OP_NE: v1 = (v1 != v2); break; case OP_LT: v1 = (v1 < v2); break; case OP_LE: v1 = (v1 <= v2); break; case OP_GE: v1 = (v1 >= v2); break; case OP_GT: v1 = (v1 > v2); break; case OP_ANA: v1 = (v1 && v2); break; case OP_ORO: v1 = (v1 || v2); break; case OP_COL: /* * v1 has the "true" value, v2 the "false" value. * The top of the value stack has the test. */ v1 = (*--valp) ? v1 : v2; break; case OP_NEG: v1 = (-v1); break; case OP_PLU: break; case OP_COM: v1 = ~v1; break; case OP_NOT: v1 = !v1; break; default: cierror("#if bug, operand = %d.", op); v1 = 0; } *valp++ = v1; return (valp); } #ifdef DEBUG_EVAL dumpstack(opstack, opp, value, valp) OPTAB opstack[NEXP]; /* Operand stack */ register OPTAB *opp; /* Operator stack */ int value[NEXP]; /* Value stack */ register int *valp; /* -> value vector */ { printf("index op prec skip name -- op stack at %s", infile->bptr); while (opp > opstack) { printf(" [%2d] %2d %03o %d %s\n", opp - opstack, opp->op, opp->prec, opp->skip, opname[opp->op]); opp--; } while (--valp >= value) { printf("value[%d] = %d\n", (valp - value), *valp); } } #endif xview-3.2p1.4/util/cpp/cpp6.c100644 1750 1750 66336 5413747652 13250 0ustar mbmb/* * C P P 6 . C * S u p p o r t R o u t i n e s * * Edit History * 25-May-84 MM Added 8-bit support to type table. * 30-May-84 ARF sharp() should output filename in quotes * 02-Aug-84 MM Newline and #line hacking. sharp() now in cpp1.c * 31-Aug-84 MM USENET net.sources release * 11-Sep-84 ado/MM Keepcomments, also line number pathological * 12-Sep-84 ado/MM bug if comment changes to space and we unget later. * 03-Oct-84 gkr/MM Fixed scannumber bug for '.e' (as in struct.element). * 04-Oct-84 MM Added ungetstring() for token concatenation * 08-Oct-84 MM Yet another attack on number scanning * 31-Oct-84 ado Parameterized $ in identifiers * 2-Nov-84 MM Token concatenation is messier than I thought * 6-Dec-84 MM \ is everywhere invisible. */ #include #include #include "cppdef.h" #include "cpp.h" /* * skipnl() skips over input text to the end of the line. * skipws() skips over "whitespace" (spaces or tabs), but * not skip over the end of the line. It skips over * TOK_SEP, however (though that shouldn't happen). * scanid() reads the next token (C identifier) into token[]. * The caller has already read the first character of * the identifier. Unlike macroid(), the token is * never expanded. * macroid() reads the next token (C identifier) into token[]. * If it is a #defined macro, it is expanded, and * macroid() returns TRUE, otherwise, FALSE. * catenate() Does the dirty work of token concatenation, TRUE if it did. * scanstring() Reads a string from the input stream, calling * a user-supplied function for each character. * This function may be output() to write the * string to the output file, or save() to save * the string in the work buffer. * scannumber() Reads a C numeric constant from the input stream, * calling the user-supplied function for each * character. (output() or save() as noted above.) * save() Save one character in the work[] buffer. * savestring() Saves a string in malloc() memory. * getfile() Initialize a new FILEINFO structure, called when * #include opens a new file, or a macro is to be * expanded. * getmem() Get a specified number of bytes from malloc memory. * output() Write one character to stdout (calling putchar) -- * implemented as a function so its address may be * passed to scanstring() and scannumber(). * lookid() Scans the next token (identifier) from the input * stream. Looks for it in the #defined symbol table. * Returns a pointer to the definition, if found, or NULL * if not present. The identifier is stored in token[]. * defnedel() Define enter/delete subroutine. Updates the * symbol table. * get() Read the next byte from the current input stream, * handling end of (macro/file) input and embedded * comments appropriately. Note that the global * instring is -- essentially -- a parameter to get(). * cget() Like get(), but skip over TOK_SEP. * unget() Push last gotten character back on the input stream. * cerror(), cwarn(), cfatal(), cierror(), ciwarn() * These routines format an print messages to the user. * cerror & cwarn take a format and a single string argument. * cierror & ciwarn take a format and a single int (char) argument. * cfatal takes a format and a single string argument. */ /* * This table must be rewritten for a non-Ascii machine. * * Note that several "non-visible" characters have special meaning: * Hex 1D DEF_MAGIC -- a flag to prevent #define recursion. * Hex 1E TOK_SEP -- a delimiter for token concatenation * Hex 1F COM_SEP -- a zero-width whitespace for comment concatenation */ #if TOK_SEP != 0x1E || COM_SEP != 0x1F || DEF_MAGIC != 0x1D << error type table isn't correct >> #endif #if OK_DOLLAR #define DOL LET #else #define DOL 000 #endif char type[256] = { /* Character type codes Hex */ END, 000, 000, 000, 000, 000, 000, 000, /* 00 */ 000, SPA, 000, 000, 000, 000, 000, 000, /* 08 */ 000, 000, 000, 000, 000, 000, 000, 000, /* 10 */ 000, 000, 000, 000, 000, LET, 000, SPA, /* 18 */ SPA,OP_NOT, QUO, 000, DOL,OP_MOD,OP_AND, QUO, /* 20 !"#$%&' */ OP_LPA,OP_RPA,OP_MUL,OP_ADD, 000,OP_SUB, DOT,OP_DIV, /* 28 ()*+,-./ */ DIG, DIG, DIG, DIG, DIG, DIG, DIG, DIG, /* 30 01234567 */ DIG, DIG,OP_COL, 000, OP_LT, OP_EQ, OP_GT,OP_QUE, /* 38 89:;<=>? */ 000, LET, LET, LET, LET, LET, LET, LET, /* 40 @ABCDEFG */ LET, LET, LET, LET, LET, LET, LET, LET, /* 48 HIJKLMNO */ LET, LET, LET, LET, LET, LET, LET, LET, /* 50 PQRSTUVW */ LET, LET, LET, 000, BSH, 000,OP_XOR, LET, /* 58 XYZ[\]^_ */ 000, LET, LET, LET, LET, LET, LET, LET, /* 60 `abcdefg */ LET, LET, LET, LET, LET, LET, LET, LET, /* 68 hijklmno */ LET, LET, LET, LET, LET, LET, LET, LET, /* 70 pqrstuvw */ LET, LET, LET, 000, OP_OR, 000,OP_NOT, 000, /* 78 xyz{|}~ */ 000, 000, 000, 000, 000, 000, 000, 000, /* 80 .. FF */ 000, 000, 000, 000, 000, 000, 000, 000, /* 80 .. FF */ 000, 000, 000, 000, 000, 000, 000, 000, /* 80 .. FF */ 000, 000, 000, 000, 000, 000, 000, 000, /* 80 .. FF */ 000, 000, 000, 000, 000, 000, 000, 000, /* 80 .. FF */ 000, 000, 000, 000, 000, 000, 000, 000, /* 80 .. FF */ 000, 000, 000, 000, 000, 000, 000, 000, /* 80 .. FF */ 000, 000, 000, 000, 000, 000, 000, 000, /* 80 .. FF */ }; skipnl() /* * Skip to the end of the current input line. */ { register int c; do { /* Skip to newline */ c = get(); } while (c != '\n' && c != EOF_CHAR); } int skipws() /* * Skip over whitespace */ { register int c; do { /* Skip whitespace */ c = get(); #if COMMENT_INVISIBLE } while (type[c] == SPA || c == COM_SEP); #else } while (type[c] == SPA); #endif return (c); } scanid(c) register int c; /* First char of id */ /* * Get the next token (an id) into the token buffer. * Note: this code is duplicated in lookid(). * Change one, change both. */ { register char *bp; if (c == DEF_MAGIC) /* Eat the magic token */ c = get(); /* undefiner. */ bp = token; do { if (bp < &token[IDMAX]) /* token dim is IDMAX+1 */ *bp++ = c; c = get(); } while (type[c] == LET || type[c] == DIG); unget(); *bp = EOS; } int macroid(c) register int c; /* * If c is a letter, scan the id. if it's #defined, expand it and scan * the next character and try again. * * Else, return the character. If type[c] is a LET, the token is in token. */ { register DEFBUF *dp; if (infile != NULL && infile->fp != NULL) recursion = 0; while (type[c] == LET && (dp = lookid(c)) != NULL) { expand(dp); c = get(); } return (c); } int catenate() /* * A token was just read (via macroid). * If the next character is TOK_SEP, concatenate the next token * return TRUE -- which should recall macroid after refreshing * macroid's argument. If it is not TOK_SEP, unget() the character * and return FALSE. */ { register int c; register char *token1; #if OK_CONCAT if (get() != TOK_SEP) { /* Token concatenation */ unget(); return (FALSE); } else { token1 = savestring(token); /* Save first token */ c = macroid(get()); /* Scan next token */ switch(type[c]) { /* What was it? */ case LET: /* An identifier, ... */ if (strlen(token1) + strlen(token) >= NWORK) cfatal("work buffer overflow doing %s #", token1); sprintf(work, "%s%s", token1, token); break; case DIG: /* A digit string */ strcpy(work, token1); workp = work + strlen(work); do { save(c); } while ((c = get()) != TOK_SEP); /* * The trailing TOK_SEP is no longer needed. */ save(EOS); break; default: /* An error, ... */ #if ! COMMENT_INVISIBLE if (isprint(c)) cierror("Strange character '%c' after #", c); else cierror("Strange character (%d.) after #", c); #endif strcpy(work, token1); unget(); break; } /* * work has the concatenated token and token1 has * the first token (no longer needed). Unget the * new (concatenated) token after freeing token1. * Finally, setup to read the new token. */ free(token1); /* Free up memory */ ungetstring(work); /* Unget the new thing, */ return (TRUE); } #else return (FALSE); /* Not supported */ #endif } int scanstring(delim, outfun) register int delim; /* ' or " */ int (*outfun)(); /* Output function */ /* * Scan off a string. Warning if terminated by newline or EOF. * outfun() outputs the character -- to a buffer if in a macro. * TRUE if ok, FALSE if error. */ { register int c; instring = TRUE; /* Don't strip comments */ (*outfun)(delim); while ((c = get()) != delim && c != '\n' && c != EOF_CHAR) { if (c != DEF_MAGIC) (*outfun)(c); if (c == '\\') (*outfun)(get()); } instring = FALSE; if (c == delim) { (*outfun)(c); return (TRUE); } else { cerror("Unterminated string", NULLST); unget(); return (FALSE); } } scannumber(c, outfun) register int c; /* First char of number */ register int (*outfun)(); /* Output/store func */ /* * Process a number. We know that c is from 0 to 9 or dot. * Algorithm from Dave Conroy's Decus C. */ { register int radix; /* 8, 10, or 16 */ int expseen; /* 'e' seen in floater */ int signseen; /* '+' or '-' seen */ int octal89; /* For bad octal test */ int dotflag; /* TRUE if '.' was seen */ expseen = FALSE; /* No exponent seen yet */ signseen = TRUE; /* No +/- allowed yet */ octal89 = FALSE; /* No bad octal yet */ radix = 10; /* Assume decimal */ if ((dotflag = (c == '.')) != FALSE) { /* . something? */ (*outfun)('.'); /* Always out the dot */ if (type[(c = get())] != DIG) { /* If not a float numb, */ unget(); /* Rescan strange char */ return; /* All done for now */ } } /* End of float test */ else if (c == '0') { /* Octal or hex? */ (*outfun)(c); /* Stuff initial zero */ radix = 8; /* Assume it's octal */ c = get(); /* Look for an 'x' */ if (c == 'x' || c == 'X') { /* Did we get one? */ radix = 16; /* Remember new radix */ (*outfun)(c); /* Stuff the 'x' */ c = get(); /* Get next character */ } } for (;;) { /* Process curr. char. */ /* * Note that this algorithm accepts "012e4" and "03.4" * as legitimate floating-point numbers. */ if (radix != 16 && (c == 'e' || c == 'E')) { if (expseen) /* Already saw 'E'? */ break; /* Exit loop, bad nbr. */ expseen = TRUE; /* Set exponent seen */ signseen = FALSE; /* We can read '+' now */ radix = 10; /* Decimal exponent */ } else if (radix != 16 && c == '.') { if (dotflag) /* Saw dot already? */ break; /* Exit loop, two dots */ dotflag = TRUE; /* Remember the dot */ radix = 10; /* Decimal fraction */ } else if (c == '+' || c == '-') { /* 1.0e+10 */ if (signseen) /* Sign in wrong place? */ break; /* Exit loop, not nbr. */ /* signseen = TRUE; */ /* Remember we saw it */ } else { /* Check the digit */ switch (c) { case '8': case '9': /* Sometimes wrong */ octal89 = TRUE; /* Do check later */ case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': break; /* Always ok */ case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': if (radix == 16) /* Alpha's are ok only */ break; /* if reading hex. */ default: /* At number end */ goto done; /* Break from for loop */ } /* End of switch */ } /* End general case */ (*outfun)(c); /* Accept the character */ signseen = TRUE; /* Don't read sign now */ c = get(); /* Read another char */ } /* End of scan loop */ /* * When we break out of the scan loop, c contains the first * character (maybe) not in the number. If the number is an * integer, allow a trailing 'L' for long and/or a trailing 'U' * for unsigned. If not those, push the trailing character back * on the input stream. Floating point numbers accept a trailing * 'L' for "long double". */ done: if (dotflag || expseen) { /* Floating point? */ if (c == 'l' || c == 'L') { (*outfun)(c); c = get(); /* Ungotten later */ } } else { /* Else it's an integer */ /* * We know that dotflag and expseen are both zero, now: * dotflag signals "saw 'L'", and * expseen signals "saw 'U'". */ for (;;) { switch (c) { case 'l': case 'L': if (dotflag) goto nomore; dotflag = TRUE; break; case 'u': case 'U': if (expseen) goto nomore; expseen = TRUE; break; default: goto nomore; } (*outfun)(c); /* Got 'L' or 'U'. */ c = get(); /* Look at next, too. */ } } nomore: unget(); /* Not part of a number */ if (octal89 && radix == 8) cwarn("Illegal digit in octal number", NULLST); } save(c) register int c; { if (workp >= &work[NWORK]) { work[NWORK-1] = '\0'; cfatal("Work buffer overflow: %s", work); } else *workp++ = c; } char * savestring(text) char *text; /* * Store a string into free memory. */ { register char *result; result = getmem(strlen(text) + 1); strcpy(result, text); return (result); } FILEINFO * getfile(bufsize, name) int bufsize; /* Line or define buffer size */ char *name; /* File or macro name string */ /* * Common FILEINFO buffer initialization for a new file or macro. */ { register FILEINFO *file; register int size; size = strlen(name); /* File/macro name */ file = (FILEINFO *) getmem(sizeof (FILEINFO) + bufsize + size); file->parent = infile; /* Chain files together */ file->fp = NULL; /* No file yet */ file->filename = savestring(name); /* Save file/macro name */ file->progname = NULL; /* No #line seen yet */ file->unrecur = 0; /* No macro fixup */ file->bptr = file->buffer; /* Initialize line ptr */ file->buffer[0] = EOS; /* Force first read */ file->line = 0; /* (Not used just yet) */ if (infile != NULL) /* If #include file */ infile->line = line; /* Save current line */ infile = file; /* New current file */ line = 1; /* Note first line */ return (file); /* All done. */ } char * getmem(size) int size; /* * Get a block of free memory. */ { register char *result; extern char *malloc(); if ((result = malloc((unsigned) size)) == NULL) cfatal("Out of memory", NULLST); return (result); } /* * C P P S y m b o l T a b l e s */ /* * SBSIZE defines the number of hash-table slots for the symbol table. * It must be a power of 2. */ #ifndef SBSIZE #define SBSIZE 64 #endif #define SBMASK (SBSIZE - 1) #if (SBSIZE ^ SBMASK) != ((SBSIZE * 2) - 1) << error, SBSIZE must be a power of 2 >> #endif static DEFBUF *symtab[SBSIZE]; /* Symbol table queue headers */ DEFBUF * lookid(c) int c; /* First character of token */ /* * Look for the next token in the symbol table. Returns token in "token". * If found, returns the table pointer; Else returns NULL. */ { register int nhash; register DEFBUF *dp; register char *np; int temp; int isrecurse; /* For #define foo foo */ np = token; nhash = 0; if ((isrecurse = (c == DEF_MAGIC))) /* If recursive macro */ c = get(); /* hack, skip DEF_MAGIC */ do { if (np < &token[IDMAX]) { /* token dim is IDMAX+1 */ *np++ = c; /* Store token byte */ nhash += c; /* Update hash value */ } c = get(); /* And get another byte */ } while (type[c] == LET || type[c] == DIG); unget(); /* Rescan terminator */ *np = EOS; /* Terminate token */ if (isrecurse) /* Recursive definition */ return (NULL); /* undefined just now */ nhash += (np - token); /* Fix hash value */ dp = symtab[nhash & SBMASK]; /* Starting bucket */ while (dp != (DEFBUF *) NULL) { /* Search symbol table */ if (dp->hash == nhash /* Fast precheck */ && (temp = strcmp(dp->name, token)) >= 0) break; dp = dp->link; /* Nope, try next one */ } return ((temp == 0) ? dp : NULL); } DEFBUF * defendel(name, delete) char *name; int delete; /* TRUE to delete a symbol */ /* * Enter this name in the lookup table (delete = FALSE) * or delete this name (delete = TRUE). * Returns a pointer to the define block (delete = FALSE) * Returns NULL if the symbol wasn't defined (delete = TRUE). */ { register DEFBUF *dp; register DEFBUF **prevp; register char *np; int nhash; int temp; int size; for (nhash = 0, np = name; *np != EOS;) nhash += *np++; size = (np - name); nhash += size; prevp = &symtab[nhash & SBMASK]; while ((dp = *prevp) != (DEFBUF *) NULL) { if (dp->hash == nhash && (temp = strcmp(dp->name, name)) >= 0) { if (temp > 0) dp = NULL; /* Not found */ else { *prevp = dp->link; /* Found, unlink and */ if (dp->repl != NULL) /* Free the replacement */ free(dp->repl); /* if any, and then */ free((char *) dp); /* Free the symbol */ } break; } prevp = &dp->link; } if (!delete) { dp = (DEFBUF *) getmem(sizeof (DEFBUF) + size); dp->link = *prevp; *prevp = dp; dp->hash = nhash; dp->repl = NULL; dp->nargs = 0; strcpy(dp->name, name); } return (dp); } #if DEBUG dumpdef(why) char *why; { register DEFBUF *dp; register DEFBUF **syp; printf("CPP symbol table dump %s\n", why); for (syp = symtab; syp < &symtab[SBSIZE]; syp++) { if ((dp = *syp) != (DEFBUF *) NULL) { printf("symtab[%d]\n", (syp - symtab)); do { dumpadef((char *) NULL, dp); } while ((dp = dp->link) != (DEFBUF *) NULL); } } } dumpadef(why, dp) char *why; /* Notation */ register DEFBUF *dp; { register char *cp; register int c; printf(" \"%s\" [%d]", dp->name, dp->nargs); if (why != NULL) printf(" (%s)", why); if (dp->repl != NULL) { printf(" => "); for (cp = dp->repl; (c = *cp++ & 0xFF) != EOS;) { if (c >= MAC_PARM && c <= (MAC_PARM + PAR_MAC)) printf("<%d>", c - MAC_PARM); else if (isprint(c) || c == '\n' || c == '\t') putchar(c); else if (c < ' ') printf("<^%c>", c + '@'); else printf("<\\0%o>", c); } } else { printf(", no replacement."); } putchar('\n'); } #endif /* * G E T */ int get() /* * Return the next character from a macro or the current file. * Handle end of file from #include files. */ { register int c; register FILEINFO *file; register int popped; /* Recursion fixup */ popped = 0; get_from_file: if ((file = infile) == NULL) return (EOF_CHAR); newline: #if 0 printf("get(%s), recursion %d, line %d, bptr = %d, buffer \"%s\"\n", file->filename, recursion, line, file->bptr - file->buffer, file->buffer); #endif /* * Read a character from the current input line or macro. * At EOS, either finish the current macro (freeing temp. * storage) or read another line from the current input file. * At EOF, exit the current file (#include) or, at EOF from * the cpp input file, return EOF_CHAR to finish processing. */ if ((c = *file->bptr++ & 0xFF) == EOS) { /* * Nothing in current line or macro. Get next line (if * input from a file), or do end of file/macro processing. * In the latter case, jump back to restart from the top. */ if (file->fp == NULL) { /* NULL if macro */ popped++; recursion -= file->unrecur; if (recursion < 0) recursion = 0; infile = file->parent; /* Unwind file chain */ } else { /* Else get from a file */ if ((file->bptr = fgets(file->buffer, NBUFF, file->fp)) != NULL) { #if DEBUG if (debug > 1) { /* Dump it to stdout */ printf("\n#line %d (%s), %s", line, file->filename, file->buffer); } #endif goto newline; /* process the line */ } else { fclose(file->fp); /* Close finished file */ if ((infile = file->parent) != NULL) { /* * There is an "ungotten" newline in the current * infile buffer (set there by doinclude() in * cpp1.c). Thus, we know that the mainline code * is skipping over blank lines and will do a * #line at its convenience. */ wrongline = TRUE; /* Need a #line now */ } } } /* * Free up space used by the (finished) file or macro and * restart input from the parent file/macro, if any. */ free(file->filename); /* Free name and */ if (file->progname != NULL) /* if a #line was seen, */ free(file->progname); /* free it, too. */ free((char *) file); /* Free file space */ if (infile == NULL) /* If at end of file */ return (EOF_CHAR); /* Return end of file */ line = infile->line; /* Reset line number */ goto get_from_file; /* Get from the top. */ } /* * Common processing for the new character. */ if (c == DEF_MAGIC && file->fp != NULL) /* Don't allow delete */ goto newline; /* from a file */ if (file->parent != NULL) { /* Macro or #include */ if (popped != 0) file->parent->unrecur += popped; else { recursion -= file->parent->unrecur; if (recursion < 0) recursion = 0; file->parent->unrecur = 0; } } if (c == '\n') /* Maintain current */ ++line; /* line counter */ if (instring) /* Strings just return */ return (c); /* the character. */ else if (c == '/') { /* Comment? */ instring = TRUE; /* So get() won't loop */ if ((c = get()) != '*') { /* Next byte '*'? */ instring = FALSE; /* Nope, no comment */ unget(); /* Push the char. back */ return ('/'); /* Return the slash */ } if (keepcomments) { /* If writing comments */ putchar('/'); /* Write out the */ putchar('*'); /* initializer */ } for (;;) { /* Eat a comment */ c = get(); test: if (keepcomments && c != EOF_CHAR) cput(c); switch (c) { case EOF_CHAR: cerror("EOF in comment", NULLST); return (EOF_CHAR); case '/': if ((c = get()) != '*') /* Don't let comments */ goto test; /* Nest. */ #ifdef STRICT_COMMENTS cwarn("Nested comments", NULLST); #endif /* Fall into * stuff */ case '*': if ((c = get()) != '/') /* If comment doesn't */ goto test; /* end, look at next */ instring = FALSE; /* End of comment, */ if (keepcomments) { /* Put out the comment */ cput(c); /* terminator, too */ } /* * A comment is syntactically "whitespace" -- * however, there are certain strange sequences * such as * #define foo(x) (something) * foo|* comment *|(123) * these are '/' ^ ^ * where just returning space (or COM_SEP) will cause * problems. This can be "fixed" by overwriting the * '/' in the input line buffer with ' ' (or COM_SEP) * but that may mess up an error message. * So, we peek ahead -- if the next character is * "whitespace" we just get another character, if not, * we modify the buffer. All in the name of purity. */ if (*file->bptr == '\n' || type[*file->bptr & 0xFF] == SPA) goto newline; #if COMMENT_INVISIBLE /* * Return magic (old-fashioned) syntactic space. */ return ((file->bptr[-1] = COM_SEP)); #else return ((file->bptr[-1] = ' ')); #endif case '\n': /* we'll need a #line */ if (!keepcomments) wrongline = TRUE; /* later... */ default: /* Anything else is */ break; /* Just a character */ } /* End switch */ } /* End comment loop */ } /* End if in comment */ else if (!inmacro && c == '\\') { /* If backslash, peek */ if ((c = get()) == '\n') { /* for a . If so, */ wrongline = TRUE; goto newline; } else { /* Backslash anything */ unget(); /* Get it later */ return ('\\'); /* Return the backslash */ } } else if (c == '\f' || c == VT) /* Form Feed, Vertical */ c = ' '; /* Tab are whitespace */ return (c); /* Just return the char */ } unget() /* * Backup the pointer to reread the last character. Fatal error * (code bug) if we backup too far. unget() may be called, * without problems, at end of file. Only one character may * be ungotten. If you need to unget more, call ungetstring(). */ { register FILEINFO *file; if ((file = infile) == NULL) return; /* Unget after EOF */ if (--file->bptr < file->buffer) cfatal("Too much pushback", NULLST); if (*file->bptr == '\n') /* Ungetting a newline? */ --line; /* Unget the line number, too */ } ungetstring(text) char *text; /* * Push a string back on the input stream. This is done by treating * the text as if it were a macro. */ { register FILEINFO *file; extern FILEINFO *getfile(); file = getfile(strlen(text) + 1, ""); strcpy(file->buffer, text); } int cget() /* * Get one character, absorb "funny space" after comments or * token concatenation */ { register int c; do { c = get(); #if COMMENT_INVISIBLE } while (c == TOK_SEP || c == COM_SEP); #else } while (c == TOK_SEP); #endif return (c); } /* * Error messages and other hacks. The first byte of severity * is 'S' for string arguments and 'I' for int arguments. This * is needed for portability with machines that have int's that * are shorter than char *'s. */ static domsg(severity, format, arg) char *severity; /* "Error", "Warning", "Fatal" */ char *format; /* Format for the error message */ char *arg; /* Something for the message */ /* * Print filenames, macro names, and line numbers for error messages. */ { register char *tp; register FILEINFO *file; fprintf(stderr, "%sline %d, %s: ", MSG_PREFIX, line, &severity[1]); if (*severity == 'S') fprintf(stderr, format, arg); else fprintf(stderr, format, (int) arg); putc('\n', stderr); if ((file = infile) == NULL) return; /* At end of file */ if (file->fp != NULL) { tp = file->buffer; /* Print current file */ fprintf(stderr, "%s", tp); /* name, making sure */ if (tp[strlen(tp) - 1] != '\n') /* there's a newline */ putc('\n', stderr); } while ((file = file->parent) != NULL) { /* Print #includes, too */ if (file->fp == NULL) fprintf(stderr, "from macro %s\n", file->filename); else { tp = file->buffer; fprintf(stderr, "from file %s, line %d:\n%s", (file->progname != NULL) ? file->progname : file->filename, file->line, tp); if (tp[strlen(tp) - 1] != '\n') putc('\n', stderr); } } } cerror(format, sarg) char *format; char *sarg; /* Single string argument */ /* * Print a normal error message, string argument. */ { domsg("SError", format, sarg); errors++; } cierror(format, narg) char *format; int narg; /* Single numeric argument */ /* * Print a normal error message, numeric argument. */ { domsg("IError", format, (char *) narg); errors++; } cfatal(format, sarg) char *format; char *sarg; /* Single string argument */ /* * A real disaster */ { domsg("SFatal error", format, sarg); exit(IO_ERROR); } cwarn(format, sarg) char *format; char *sarg; /* Single string argument */ /* * A non-fatal error, string argument. */ { domsg("SWarning", format, sarg); } ciwarn(format, narg) char *format; int narg; /* Single numeric argument */ /* * A non-fatal error, numeric argument. */ { domsg("IWarning", format, (char *) narg); } xview-3.2p1.4/util/cpp/cppdef.h100644 1750 1750 20717 5413747652 13637 0ustar mbmb/* * S y s t e m D e p e n d e n t * D e f i n i t i o n s f o r C P P * * Definitions in this file may be edited to configure CPP for particular * host operating systems and target configurations. * * NOTE: cpp assumes it is compiled by a compiler that supports macros * with arguments. If this is not the case (as for Decus C), #define * nomacarg -- and provide function equivalents for all macros. * * cpp also assumes the host and target implement the Ascii character set. * If this is not the case, you will have to do some editing here and there. */ /* * This redundant definition of TRUE and FALSE works around * a limitation of Decus C. */ #ifndef TRUE #define TRUE 1 #define FALSE 0 #endif /* * Define the HOST operating system. This is needed so that * cpp can use appropriate filename conventions. */ #define SYS_UNKNOWN 0 #define SYS_UNIX 1 #define SYS_VMS 2 #define SYS_RSX 3 #define SYS_RT11 4 #define SYS_LATTICE 5 #define SYS_ONYX 6 #define SYS_68000 7 #ifndef HOST #ifdef unix #define HOST SYS_UNIX #else #ifdef vms #define HOST SYS_VMS #else #ifdef rsx #define HOST SYS_RSX #else #ifdef rt11 #define HOST SYS_RT11 #endif #endif #endif #endif #endif #ifndef HOST #define HOST SYS_UNKNOWN #endif /* * We assume that the target is the same as the host system */ #ifndef TARGET #define TARGET HOST #endif /* * In order to predefine machine-dependent constants, * several strings are defined here: * * MACHINE defines the target cpu (by name) * SYSTEM defines the target operating system * COMPILER defines the target compiler * * The above may be #defined as "" if they are not wanted. * They should not be #defined as NULL. * * LINE_PREFIX defines the # output line prefix, if not "line" * This should be defined as "" if cpp is to replace * the "standard" C pre-processor. * * FILE_LOCAL marks functions which are referenced only in the * file they reside. Some C compilers allow these * to be marked "static" even though they are referenced * by "extern" statements elsewhere. * * OK_DOLLAR Should be set TRUE if $ is a valid alphabetic character * in identifiers (default), or zero if $ is invalid. * Default is TRUE. * * OK_CONCAT Should be set TRUE if # may be used to concatenate * tokens in macros (per the Ansi Draft Standard) or * FALSE for old-style # processing (needed if cpp is * to process assembler source code). * * OK_DATE Predefines the compilation date if set TRUE. * Not permitted by the Nov. 12, 1984 Draft Standard. * * S_CHAR etc. Define the sizeof the basic TARGET machine word types. * By default, sizes are set to the values for the HOST * computer. If this is inappropriate, see the code in * cpp3.c for details on what to change. Also, if you * have a machine where sizeof (signed int) differs from * sizeof (unsigned int), you will have to edit code and * tables in cpp3.c (and extend the -S option definition.) * * CPP_LIBRARY May be defined if you have a site-specific include directory * which is to be searched *before* the operating-system * specific directories. */ #if TARGET == SYS_LATTICE /* * We assume the operating system is pcdos for the IBM-PC. * We also assume the small model (just like the PDP-11) */ #define MACHINE "i8086" #define SYSTEM "pcdos" #endif #if TARGET == SYS_ONYX #define MACHINE "z8000" #define SYSTEM "unix" #endif #if TARGET == SYS_VMS #define MACHINE "vax" #define SYSTEM "vms" #define COMPILER "vax11c" #endif #if TARGET == SYS_RSX #define MACHINE "pdp11" #define SYSTEM "rsx" #define COMPILER "decus" #endif #if TARGET == SYS_RT11 #define MACHINE "pdp11" #define SYSTEM "rt11" #define COMPILER "decus" #endif #if TARGET == SYS_68000 || defined(M68000) || defined(m68000) || defined(m68k) /* * All three machine designators have been seen in various systems. * Warning -- compilers differ as to sizeof (int). cpp3 assumes that * sizeof (int) == 2 */ #define MACHINE "M68000", "m68000", "m68k" #define SYSTEM "unix" #endif #if TARGET == SYS_UNIX #define SYSTEM "unix" #ifdef pdp11 #define MACHINE "pdp11" #endif #ifdef vax #define MACHINE "vax" #endif #endif /* * defaults */ #ifndef MSG_PREFIX #define MSG_PREFIX "cpp: " #endif #ifndef LINE_PREFIX #define LINE_PREFIX "" #endif /* * OLD_PREPROCESSOR forces the definition of OK_DOLLAR, OK_CONCAT, * COMMENT_INVISIBLE, and STRING_FORMAL to values appropriate for * an old-style preprocessor. */ #ifndef OLD_PREPROCESSOR #define OLD_PREPROCESSOR FALSE #endif #if OLD_PREPROCESSOR #define OK_DOLLAR FALSE #define OK_CONCAT TRUE #define COMMENT_INVISIBLE TRUE #define STRING_FORMAL TRUE #define IDMAX 63 /* actually, seems to be unlimited */ #endif /* * RECURSION_LIMIT may be set to -1 to disable the macro recursion test. */ #ifndef RECURSION_LIMIT #define RECURSION_LIMIT 1000 #endif /* * BITS_CHAR may be defined to set the number of bits per character. * it is needed only for multi-byte character constants. */ #ifndef BITS_CHAR #define BITS_CHAR 8 #endif /* * BIG_ENDIAN is set TRUE on machines (such as the IBM 360 series) * where 'ab' stores 'a' in the high-bits and 'b' in the low-bits. * It is set FALSE on machines (such as the PDP-11 and Vax-11) * where 'ab' stores 'a' in the low-bits and 'b' in the high-bits. * (Or is it the other way around?) -- Warning: BIG_ENDIAN code is untested. */ #ifndef BIG_ENDIAN #define BIG_ENDIAN FALSE #endif /* * COMMENT_INVISIBLE may be defined to allow "old-style" comment * processing, whereby the comment becomes a zero-length token * delimiter. This permitted tokens to be concatenated in macro * expansions. This was removed from the Draft Ansi Standard. */ #ifndef COMMENT_INVISIBLE #define COMMENT_INVISIBLE FALSE #endif /* * STRING_FORMAL may be defined to allow recognition of macro parameters * anywhere in replacement strings. This was removed from the Draft Ansi * Standard and a limited recognition capability added. */ #ifndef STRING_FORMAL #define STRING_FORMAL FALSE #endif /* * OK_DOLLAR enables use of $ as a valid "letter" in identifiers. * This is a permitted extension to the Ansi Standard and is required * for e.g., VMS, RSX-11M, etc. It should be set FALSE if cpp is * used to preprocess assembler source on Unix systems. OLD_PREPROCESSOR * sets OK_DOLLAR FALSE for that reason. */ #ifndef OK_DOLLAR #define OK_DOLLAR TRUE #endif /* * OK_CONCAT enables (one possible implementation of) token concatenation. * If cpp is used to preprocess Unix assembler source, this should be * set FALSE as the concatenation character, #, is used by the assembler. */ #ifndef OK_CONCAT #define OK_CONCAT TRUE #endif /* * OK_DATE may be enabled to predefine today's date as a string * at the start of each compilation. This is apparently not permitted * by the Draft Ansi Standard. */ #ifndef OK_DATE #define OK_DATE TRUE #endif /* * Some common definitions. */ #ifndef DEBUG #define DEBUG FALSE #endif /* * The following definitions are used to allocate memory for * work buffers. In general, they should not be modified * by implementors. * * PAR_MAC The maximum number of #define parameters (31 per Standard) * Note: we need another one for strings. * IDMAX The longest identifier, 31 per Ansi Standard * NBUFF Input buffer size * NWORK Work buffer size -- the longest macro * must fit here after expansion. * NEXP The nesting depth of #if expressions * NINCLUDE The number of directories that may be specified * on a per-system basis, or by the -I option. * BLK_NEST The number of nested #if's permitted. */ #ifndef IDMAX #define IDMAX 31 #endif #define PAR_MAC (31 + 1) #define NBUFF 4096 #define NWORK 4096 #define NEXP 128 #define NINCLUDE 7 #define NPARMWORK (NWORK * 2) #define BLK_NEST 32 /* * Some special constants. These may need to be changed if cpp * is ported to a wierd machine. * * NOTE: if cpp is run on a non-ascii machine, ALERT and VT may * need to be changed. They are used to implement the proposed * ANSI standard C control characters '\a' and '\v' only. * DEL is used to tag macro tokens to prevent #define foo foo * from looping. Note that we don't try to prevent more elaborate * #define loops from occurring. */ #ifndef ALERT #define ALERT '\007' /* '\a' is "Bell" */ #endif #ifndef VT #define VT '\013' /* Vertical Tab CTRL/K */ #endif #ifndef FILE_LOCAL #ifdef decus #define FILE_LOCAL static #else #ifdef vax11c #define FILE_LOCAL static #else #define FILE_LOCAL /* Others are global */ #endif #endif #endif xview-3.2p1.4/util/soelim/ 40755 1750 1750 0 5413764207 12602 5ustar mbmbxview-3.2p1.4/util/soelim/Imakefile100644 1750 1750 222 5413747653 14472 0ustar mbmb#include SRCS = soelim.c OBJS = soelim.o all:: soelim SingleProgramTarget(soelim,$(OBJS),,) DependTarget() xview-3.2p1.4/util/soelim/soelim.c100644 1750 1750 5432 5413747653 14345 0ustar mbmb/* * soelim - expand .so filename lines in *roff sources * * $XConsortium: soelim.c,v 1.2 88/10/09 11:21:58 rws Exp $ * * Copyright 1988 Massachusetts Institute of Technology * * Permission to use, copy, modify, and distribute this software and its * documentation for any purpose and without fee is hereby granted, provided * that the above copyright notice appear in all copies and that both that * copyright notice and this permission notice appear in supporting * documentation, and that the name of M.I.T. not be used in advertising or * publicity pertaining to distribution of the software without specific, * written prior permission. M.I.T. makes no representations about the * suitability of this software for any purpose. It is provided "as is" * without express or implied warranty. * * This version is not is not derived from AT&T or Berkeley sources and is * provided for sites that do not have an soelim program. * * Author: Jim Fulton, MIT X Consortium * */ #include #include #ifdef SYSV #include #else #ifdef macII #include #else #include #endif #endif #define MAXLINELEN 1024 /* length of a single line */ char *ProgramName; int errors; main (argc, argv) int argc; char **argv; { int i; FILE *fp; ProgramName = argv[0]; errors = 0; for (i = 1; i < argc; i++) { doit (strcmp(argv[i], "-") == 0 ? NULL : argv[i]); } exit (errors); } #define skipspace(var) \ for (; *var && isascii(*var) && isspace(*var); var++) ; #define skipword(var) \ for (; *var && isascii(*var) && !isspace(*var); var++) ; doit (inputfilename) char *inputfilename; { FILE *fp; /* stream for inputfilename */ char buf[MAXLINELEN]; /* buffer for gets of fp */ char *line; /* for walking around in buf */ int len; /* length of buf */ char *sofilename; /* .so arg */ if (inputfilename) { fp = fopen (inputfilename, "r"); if (!fp) { fprintf (stderr, "%s: can't open file \"%s\" for reading\n", ProgramName, inputfilename); errors++; return; } } else { fp = stdin; } /* * loop through looking for lines that have .so at the start */ while (1) { buf[0] = '\0'; if (fgets (buf, sizeof buf, fp) == NULL) break; len = strlen (buf); line = buf; if (strncmp (line, ".so", 3) == 0 && line[3] && isascii(line[3]) && isspace(line[3])) { line += 4; skipspace (line); sofilename = line; skipword (line); *line = '\0'; doit (sofilename); continue; } fputs (buf, stdout); /* see if the line was too long */ if (buf[len - 1] != '\n') { int c; while ((c = getc (fp)) != '\0' && c != '\n') putc (c, stdout); putc ('\n', stdout); } } if (inputfilename) { fclose (fp); } } xview-3.2p1.4/util/conversion/ 40755 1750 1750 0 6354605713 13500 5ustar mbmbxview-3.2p1.4/util/conversion/Imakefile100644 1750 1750 1571 6331424142 15400 0ustar mbmb#include /**/########################################################################## /**/# @(#)Imakefile 1.3 89/12/29 SMI /**/# Imakefile for util/conversion SEDFILES= full1.sed \ full2.sed \ minimal1.sed \ minimal2.sed \ minimal3.sed \ minimal4.sed SCRIPTS = cv2xview cv2Xdefs SRCS = $(SCRIPTS) $(SEDFILES) MAN_PAGES = cv2Xdefs.man cv2xview.man ALLFILES = $(SEDFILES) $(SCRIPTS) $(MAN_PAGES) COPIES = convert_to_Xdefaults convert_to_Xdefaults.README \ convert_to_xview convert_to_xview.README all:: #if InstallConversion InstallMultiple($(SEDFILES),$(BINDIR)) InstallProgram(cv2xview,$(BINDIR)) InstallProgram(cv2Xdefs,$(BINDIR)) InstallManPage(cv2xview,$(MANDIR)) InstallManPage(cv2Xdefs,$(MANDIR)) #else install:: @echo "Installing conversion utilities disabled." #endif PopulateSCCSTree(h,$(ALLFILES)) clean:: $(RM) -f $(COPIES) depend:: xview-3.2p1.4/util/conversion/cv2Xdefs100644 1750 1750 13707 5413747654 15242 0ustar mbmb#! /bin/sh # convert_to_Xdefaults - convert SunView1 defaults to X Window defaults # (X11 Resource File format) for XView # # convert_to_Xdefaults filename # # Output should be placed in a user's ~/.Xdefaults file # cat ${1} | \ sed -e 's%/sunview/scale%Window.Scale:%g' \ -e 's%"%%g' \ -e 's%SunDefaults%!SunDefaults%g' \ -e 's%#/Menu/Pullright_delta%OpenWindows.DragRightDistance:%g' \ -e 's%!/Menu/Pullright_delta%OpenWindows.DragRightDistance:%g' \ -e 's%#/menu/pullright_delta%OpenWindows.DragRightDistance:%g' \ -e 's%!/menu/pullright_delta%OpenWindows.DragRightDistance:%g' \ -e 's%#/Sunview/Audible_bell%Alarm.Audible:%g' \ -e 's%!/Sunview/Audible_bell%Alarm.Audible:%g' \ -e 's%#/Sunview/audible_bell%Alarm.Audible:%g' \ -e 's%!/Sunview/audible_bell%Alarm.Audible:%g' \ -e 's%#/Sunview/Visible_bell%Alarm.Visible:%g' \ -e 's%!/Sunview/Visible_bell%Alarm.Visible:%g' \ -e 's%#/Sunview/visible_bell%Alarm.Visible:%g' \ -e 's%!/Sunview/visible_bell%Alarm.Visible:%g' \ -e 's%#/Sunview/Alert_jump_cursor%Notice.JumpCursor:%g' \ -e 's%!/Sunview/Alert_jump_cursor%Notice.JumpCursor:%g' \ -e 's%#/Sunview/alert_jump_cursor%Notice.JumpCursor:%g' \ -e 's%!/Sunview/alert_jump_cursor%Notice.JumpCursor:%g' \ -e 's%#/Sunview/Alert_bell%Notice.BeepCount:%g' \ -e 's%!/Sunview/Alert_bell%Notice.BeepCount:%g' \ -e 's%#/Sunview/alert_bell%Notice.BeepCount:%g' \ -e 's%!/Sunview/alert_bell%Notice.BeepCount:%g' \ -e 's%/text/%/Text/%g' \ -e 's%/tty/%/Tty/%g' \ -e 's%/Tty/Auto_indent%Text.AutoIndent:%g' \ -e 's%/Tty/auto_indent%Text.AutoIndent:%g' \ -e 's%/Tty/Control_chars_use_font%Text.DisplayControlChars:%g' \ -e 's%/Tty/control_chars_use_font%Text.DisplayControlChars:%g' \ -e 's%/Tty/Insert_makes_caret_visible%Text.InsertMakesCaretVisible:%g' \ -e 's%/Tty/insert_makes_caret_visible%Text.InsertMakesCaretVisible:%g' \ -e 's%/Tty/Append_only_log%Term.EnableEdit:%g' \ -e 's%/Tty/append_only_log%Term.EnableEdit:%g' \ -e 's%/Tty/Bold_style%Term.BoldStyle:%g' \ -e 's%/Tty/bold_style%Term.BoldStyle:%g' \ -e 's%/Tty/Inverse_mode%Term.InverseStyle:%g' \ -e 's%/Tty/inverse_mode%Term.InverseStyle:%g' \ -e 's%/Tty/Underline_mode%Term.UnderlineStyle:%g' \ -e 's%/Tty/underline_mode%Term.UnderlineStyle:%g' \ -e 's%/Text/Edit_back_char%Keyboard.DeleteChar:%g' \ -e 's%/Text/edit_back_char%Keyboard.DeleteChar:%g' \ -e 's%/Text/Edit_back_word%Keyboard.DeleteWord:%g' \ -e 's%/Text/edit_back_word%Keyboard.DeleteWord:%g' \ -e 's%/Text/Edit_back_line%Keyboard.DeleteLine:%g' \ -e 's%/Text/edit_back_line%Keyboard.DeleteLine:%g' \ -e 's%/Text/multi_click_timeout%!OpenWindows.MultiClickTimeout:now in tenths of seconds rather than millisecs%g' \ -e 's%/Text/Multi_click_timeout%!OpenWindows.MultiClickTimeout:now in tenths of seconds rather than millisecs%g' \ -e 's%/Tty/Checkpoint_frequency%Term.CheckpointFrequency:%g' \ -e 's%/Tty/checkpoint_frequency%Term.CheckpointFrequency:%g' \ -e 's%/Tty/Retained%Text.Retained:%g' \ -e 's%/Tty/retained%Text.Retained:%g' \ -e 's%/Tty/Text_wraparound_size%Term.MaxLogFileSize:%g' \ -e 's%/Tty/text_wraparound_size%Term.MaxLogFileSize:%g' \ -e 's%/Text/Scrollable%Text.EnableScrollbar:%g' \ -e 's%/Text/scrollable%Text.EnableScrollbar:%g' \ -e 's%/Text/Again_limit%Text.AgainLimit:%g' \ -e 's%/Text/again_limit%Text.AgainLimit:%g' \ -e 's%/Text/Auto_indent%Text.AutoIndent:%g' \ -e 's%/Text/auto_indent%Text.AutoIndent:%g' \ -e 's%/Text/Auto_scroll_by%Text.AutoScrollBy:%g' \ -e 's%/Text/auto_scroll_by%Text.AutoScrollBy:%g' \ -e 's%/Text/Blink_caret%Text.BlinkCaret:%g' \ -e 's%/Text/blink_caret%Text.BlinkCaret:%g' \ -e 's%/Text/Checkpoint_frequency%Text.CheckpointFrequency:%g' \ -e 's%/Text/checkpoint_frequency%Text.CheckpointFrequency:%g' \ -e 's%/Text/Confirm_overwrite%Text.ConfirmOverwrite:%g' \ -e 's%/Text/confirm_overwrite%Text.ConfirmOverwrite:%g' \ -e 's%/Text/Control_chars_use_font%Text.DisplayControlChars:%g' \ -e 's%/Text/control_chars_use_font%Text.DisplayControlChars:%g' \ -e 's%/Text/Insert_makes_caret_visible%Text.InsertMakesCaretVisible:%g' \ -e 's%/Text/insert_makes_caret_visible%Text.InsertMakesCaretVisible:%g' \ -e 's%/Text/Long_line_break_mode%Text.LineBreak:%g' \ -e 's%/Text/long_line_break_mode%Text.LineBreak:%g' \ -e 's%/Text/Lower_context%Text.Margin.Bottom:%g' \ -e 's%/Text/lower_context%Text.Margin.Bottom:%g' \ -e 's%/Text/Memory_maximum%Text.MaxDocumentSize:%g' \ -e 's%/Text/Memory_Maximum%Text.MaxDocumentSize:%g' \ -e 's%/Text/memory_maximum%Text.MaxDocumentSize:%g' \ -e 's%/Text/Multi_click_space%Mouse.Multiclick.Space:%g' \ -e 's%/Text/multi_click_space%Mouse.Multiclick.Space:%g' \ -e 's%/Text/Multi_click_timeout%Mouse.Multiclick.Timeout:%g' \ -e 's%/Text/multi_click_timeout%Mouse.Multiclick.Timeout:%g' \ -e 's%/Text/Store_changes_file%Text.StoreChangesFile:%g' \ -e 's%/Text/store_changes_file%Text.StoreChangesFile:%g' \ -e 's%/Text/Upper_context%Text.Margin.Top:%g' \ -e 's%/Text/upper_context%Text.Margin.Top:%g' \ -e 's%/Text/Left_margin%Text.Margin.Left:%g' \ -e 's%/Text/left_margin%Text.Margin.Left:%g' \ -e 's%/Text/Right_margin%Text.Margin.Right:%g' \ -e 's%/Text/right_margin%Text.Margin.Right:%g' \ -e 's%/Text/Tab_width%Text.TabWidth:%g' \ -e 's%/Text/tab_width%Text.TabWidth:%g' \ -e 's%/Text/Extras_menu_filename%Text.ExtrasMenuFilename:%g' \ -e 's%/Text/extras_menu_filename%Text.ExtrasMenuFilename:%g' \ -e 's%/Text/Retained%Text.Retained:%g' \ -e 's%/Text/retained%Text.Retained:%g' \ -e 's%/Text/Contents%! N/A in OPEN LOOK: no scratch window /Text/Contents%g' \ -e 's%/Text/contents%! N/A in OPEN LOOK: no scratch window /Text/Contents%g' \ -e 's%/Input/Keymap_Directory%! N/A in OPEN LOOK: not a Kernel-based window system /Input/Keymap_Directory%g' | \ sed -e 's,^/,!/,' xview-3.2p1.4/util/conversion/cv2Xdefs.man100644 1750 1750 5342 5413747654 15770 0ustar mbmb.\" @(#)convert_to_Xdefaults.1 1.6 90/06/19 SMI; .TH CONVERT_TO_XDEFAULTS 1 "11 June 1990" .SH NAME .B convert_to_Xdefaults - convert Sunview1 defaults into equivalent Xdefaults .SH SYNOPSIS .B convert_to_Xdefaults [ .I filename ] .SH AVAILABILITY Available with the .I OpenWindows Application Environment. For information about installing OpenWindows, refer to the .I OpenWindows Installation Manual. .SH DESCRIPTION .LP .B convert_to_Xdefaults is a shell script which uses .B sed(1) scripts to convert .I SunView1.x defaults to .I X Window (Xdefaults) defaults. .B convert_to_Xdefaults reads .I filename, converting SunView1 defaults into their equivalent Xdefaults for XView. Defaults that are no longer supported or are not recognized as standard .I SunView1 defaults are commented out with a '!' (exclamation point) at the beginnning of the default entry. The output of conversion is directed to standard output (stdout). The defaults file used should be located in your .I $HOME directory and should be named .I .Xdefaults. .SH EXAMPLES For an example of how this command works, run the script on your .I Sunview1 defaults file: .B convert_to_Xdefaults .I $HOME/.defaults > .I $HOME/.Xdefaults When the script is complete, edit the resulting file ( .I $HOME/.Xdefaults ) and remove any unconverted entries and/or make modifications suggested in the file by the script. Remove the comments and the .I ! sign. .SH SAMPLES SunView1 defaults entries ... .sp .fH .ft B .nf /Text/Auto_indent "True" /Text/Extras_menu_filename "/home/blinky/bob/.text_extras_menu" /Scrollbar/Thickness "20" /Mail/Set/folder "/home/blinky/bob/mail_folder" /Text/Multi_click_timeout "100" .fi .sp .ft R are converted to the Xdefault... .sp .fH .ft B .nf Text.AutoIndent: True Text.ExtrasMenuFilename: /home/blinky/bob/.text_extras_menu !/Scrollbar/Thickness "20" !/Mail/Set/folder "/home/blinky/bob/mail_folder" !OpenWindows.MultiClickTimeout: ! (now in tenths of seconds rather than millisecs) 100 .fi .sp Note that the .B /Scrollbar/Thickness and .B /Mail/Set/folder entries were NOT converted, but were left in the file as comments. Whenever possible, instructions are included in the file for discrepancies between the two types of defaults. For instance, the comment, "now in tenths of seconds" is useful information about the value of the .B OpenWindows.MultiClickTimeout default. Comments and instructions should both be completely removed from the file. .SH FILES .I $OPENWINHOME/bin/xview/convert_to_Xdefaults where .I $OPENWINHOME is the installation/mount point for XView ( .I /usr by default). .SH SEE ALSO sunview(1), sed(1), textedit(1), vi(1) xview-3.2p1.4/util/conversion/cv2xview100644 1750 1750 5767 6331427573 15315 0ustar mbmb#! /bin/sh # convert_to_xview - convert SunView1 source programs to XView source # # convert_to_xview [-c conversion-type] filename... # # -c type of conversion to perform. The default # is 'full' conversion. Alternately, "minimal" # conversion is offered. Minimal does not make # changes to code that is supported through # backwards-compatible interfaces. Full conversion # is recommended. # # Produces a new XView source files for each filename # USAGE="Usage: `basename ${0}` [-m] filename..." CONV_TYPE=full MIN_CONV_TYPE=minimal CTXV_ROOT= XVIEW_BINS=lib/xview/ #XVIEW_BINS=bin/xview/ [ -z "$OPENWINHOME" ] && OPENWINHOME=/usr/openwin NOT_SET="NOT_SET" CTXV_HOME=${OPENWINHOME}${NOT_SET} PROGRAM=${NOT_SET} CURRENT_FILE= TMP_FILE_TO_DEL= NOTHING= while [ ${#} -gt 0 ]; do case "${1}" in -m) CONV_TYPE=${MIN_CONV_TYPE};; -h) echo ${USAGE}; exit 1;; *) PROGRAM=${1}; break;; esac shift done if [ "${PROGRAM}" = "${NOT_SET}" ]; then echo "No filename specified." echo ${USAGE} exit 1 else CURRENT_FILE=${PROGRAM} fi if [ "${CTXV_HOME}" = "${NOT_SET}" ]; then # don't set the root and expect that it is in the $PATH CTXV_ROOT= else CTXV_ROOT=${OPENWINHOME}/${XVIEW_BINS} fi for PROGRAM in $*; do echo "----Converting file: ${PROGRAM} " CURRENT_FILE=${PROGRAM} if [ ${CONV_TYPE} = "full" ]; then ${CTXV_ROOT}full1.sed ${CURRENT_FILE} > /tmp/full1.tmp CURRENT_FILE=/tmp/full1.tmp TMP_FILE_TO_DEL=${CURRENT_FILE} # # BOILER PLATE HERE: # In order to allow full conversion to grow the following should be # the 'boilerplate' for extending full conversion with addtional sed scripts. # Use # # ${CTXV_ROOT}full999.sed ${CURRENT_FILE} > /tmp/full999.tmp # CURRENT_FILE=/tmp/full999.tmp # rm -f ${TMP_FILE_TO_DEL} # TMP_FILE_TO_DEL=${CURRENT_FILE} # ${CTXV_ROOT}full2.sed ${CURRENT_FILE} > /tmp/full2.tmp CURRENT_FILE=/tmp/full2.tmp rm -f ${TMP_FILE_TO_DEL} TMP_FILE_TO_DEL=${CURRENT_FILE} fi ${CTXV_ROOT}minimal1.sed ${CURRENT_FILE} > /tmp/min1.tmp CURRENT_FILE=/tmp/min1.tmp rm -f ${TMP_FILE_TO_DEL} TMP_FILE_TO_DEL=${CURRENT_FILE} # ${CTXV_ROOT}minimal2.sed ${CURRENT_FILE} > /tmp/min2.tmp CURRENT_FILE=/tmp/min2.tmp rm -f ${TMP_FILE_TO_DEL} TMP_FILE_TO_DEL=${CURRENT_FILE} # ${CTXV_ROOT}minimal3.sed ${CURRENT_FILE} > /tmp/min3.tmp CURRENT_FILE=/tmp/min3.tmp rm -f ${TMP_FILE_TO_DEL} TMP_FILE_TO_DEL=${CURRENT_FILE} # # BOILER PLATE HERE: # In order to allow this script to grow with new and better/longer # comments the following should be the 'boilerplate' for extending # this script with addtional sed scripts: # # ${CTXV_ROOT}minimal999.sed ${CURRENT_FILE} > /tmp/min999.tmp # CURRENT_FILE=/tmp/min999.tmp # rm -f ${TMP_FILE_TO_DEL} # TMP_FILE_TO_DEL=${CURRENT_FILE} # ${CTXV_ROOT}minimal4.sed ${CURRENT_FILE} > /tmp/min4.tmp CURRENT_FILE=/tmp/min4.tmp rm -f ${TMP_FILE_TO_DEL} TMP_FILE_TO_DEL=${CURRENT_FILE} # mv ${CURRENT_FILE} ${PROGRAM}.converted_to_xview rm -f ${TMP_FILE_TO_DEL} done echo "--Done" xview-3.2p1.4/util/conversion/cv2xview.man100644 1750 1750 6273 5413747655 16066 0ustar mbmb.\" @(#)convert_to_xview.1 1.2 90/06/19 SMI; .TH CONVERT_TO_XVIEW 1 "11 June 1990" .SH NAME convert_to_xview \- convert a SunView1 source program to XView source .SH SYNOPSIS .B convert_to_xview [ .B -m ] .I filename... .SH AVAILABILITY This command is available with the XView software distribution. .SH DESCRIPTION .B convert_to_xview is a shell script which uses sed(1) scripts to convert .I SunView1.x programs to the XView Application Programming Interface (API). .B convert_to_xview parses filename and creates a new file with the XView API in the current directory called .B filename.converted_to_xview. The default conversion that is done is called FULL conversion. FULL conversion of SunView source converts everything to XView naming conventions regardless of API compatibility support (e.g., changes .B WIN_FONT to .B XV_FONT even though .B WIN_FONT would still work). .LP The other type of conversion is called MINIMAL conversion. MINIMAL conversion retains SunView compatibility wherever possible and inserts a unique flag and comments at every instance where manual conversion is necessary in C language source comment form. The flag and comments will look something like this: .LP .B " #ifdef XVIEW_COMMENT" .br .B " XView CONVERSION - Make sure to use xv_init to process the attrs" .br .B " first. Sect 3.2" .br .B #endif .LP The original SunView1.x file is not modified. After the file is converted, you should then search for .LP .B XView CONVERSION .LP in the new converted program .B (filename.converted_to_xview). Use the conversion documentation, XView 1.0 Reference Manual: Converting SunView Applications, to determine the proper conversion for these flagged items. In some possible cases, the comments may make references to sections in the manual which should be consulted to correctly convert something. .LP .SH OPTIONS .TP [-m] Perform minimal conversion only. .SH ENVIRONMENT The script recognizes the environment variable $OPENWINHOME as the root directory for the installation point for .B convert_to_xview. By default it should be installed into the root directory '/'. Additionally, the sed(1) scripts that are used by .B convert_to_xview must be located in the .B $OPENWINHOME/conversion directory. .SH EXAMPLES Convert foo.c from SunView1 to XView: .LP .B % convert_to_xview foo.c .br .B ----Converting File: foo.c .br .B --Done .br .B % .LP Now go in and edit (with your favorite text editor such as vi,textedit, etc.) the result of the conversion (my_program.c.converted_to_xview) and see if there is anythingthat didn't get converted: .sp .B % textedit foo.c.converted .sp Do only minimal conversion of my_program.c & your_program.c to XView: .sp .B % convert_to_xview -m foo.c blah.c .br .B ----Converting File: foo.c .br .B ----Converting File: blah.c .br .B --Done .br .B % .br The above would create two files new files and each will only had minimal conversion performed (just flags inserted). .SH FILES .br .B $OPENWINHOME/bin/xview/convert_to_xview .br .B $OPENWINHOME/bin/xview/convert_to_xview.README (this file) .LP Where $OPENWINHOME is the installation/mount point for XView. .SH SEE ALSO .B "sunview(1), sed(1), textedit(1), vi(1), sh(1)" xview-3.2p1.4/util/conversion/full1.sed100644 1750 1750 3563 5413747655 15333 0ustar mbmb#!/bin/sh # cat ${1} | \ sed -e 's%\%OPENWIN_AUTO_CLEAR%g' \ -e 's%\%XV_LABEL%g' \ -e 's%\%XV_FONT%g' \ -e 's%\%XV_HEIGHT%g' \ -e 's%\%XV_LABEL%g' \ -e 's%\%XV_WIDTH%g' \ -e 's%\%XV_HEIGHT%g' \ -e 's%\%XV_LEFT_MARGIN%g' \ -e 's%\%XV_MARGIN%g' \ -e 's%\%XV_OWNER%g' \ -e 's%\%XV_RIGHT_MARGIN%g' \ -e 's%\%XV_WIDTH%g' \ -e 's%\%xv_create%g' \ -e 's%\%xv_create%g' \ -e 's%\%xv_destroy%g' \ -e 's%\%xv_destroy%g' \ -e 's%\%PANEL_EACH_ITEM%g' \ -e 's%\%PANEL_END_EACH%g' \ -e 's%\%window_fit_height%g' \ -e 's%\%WIN_FIT_HEIGHT%g' \ -e 's%\%window_fit_width%g' \ -e 's%\%WIN_HEIGHT%g' \ -e 's%\%WIN_HORIZONTAL_SCROLLBAR%g' \ -e 's%\%xv_create%g' \ -e 's%\%xv_destroy%g' \ -e 's%\%xv_get%g' \ -e 's%\%xv_set%g' \ -e 's%\%XV_X%g' \ -e 's%\%XV_Y%g' \ -e 's%\%XV_OWNER%g' \ -e 's%\%WIN_PIXWIN%g' \ -e 's%\%XV_SHOW%g' \ -e 's%\%XV_WIDTH%g' xview-3.2p1.4/util/conversion/full2.sed100644 1750 1750 4610 5413747655 15326 0ustar mbmb#!/bin/sh # cat ${1} | \ sed -e 's%^\(.*\)\\(.*\)$%\1RT_STANDARD\2\ #ifdef XVIEW_COMMENT\ XView CONVERSION - This is raw pixrect image in 68000 byte order so must\ include rasterfile\.h and/or consider whether you really want to use\ this still\ #endif\ %g' \ -e 's%\%XV_FONT%g' \ -e 's%^\(.*\)\%XV_FONT%g' \ -e 's%\%XV_HEIGHT%g' \ -e 's%^\(.*\)\%XV_LEFT_MARGIN%g' \ -e 's%\%XV_NAME%g' \ -e 's%\%XV_OWNER%g' \ -e 's%^\(.*\)\%XV_RIGHT_MARGIN%g' \ -e 's%\%XV_TOP_MARGIN%g' \ -e 's%\%XV_WIDTH%g' xview-3.2p1.4/util/conversion/minimal1.sed100644 1750 1750 13203 5413747655 16027 0ustar mbmb#!/bin/sh # cat ${1} | \ sed -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Alert-Positioning is now defunct\ Use NOTICE_FOCUS_XY instead\. See XVPM Chap 12\ #endif\ NOTICE_FOCUS_XY%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Due to a name space clash with Xlib, the SunView\ data-type Cursor is now Xv_Cursor in XView\ #endif\ Cursor%g' \ -e 's%\%DEFINE_CURSOR_FROM_IMAGE\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Cursors are now XView objects that must be created,\ read Sect 3\.5 on how to convert to the new API\ #endif\ %g' \ -e 's%\%DEFINE_ICON_FROM_IMAGE\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Icons are now XView objects that must be created, read\ Sect 3\.8 on how to convert to the new API\ #endif\ %g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Look at XVPM Chapter 5 on canvases, this attr now\ applies to the canvas view margin\ #endif\ CANVAS_MARGIN%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Pixwins are now logically replaced with paint\ windows\. Read XVPM Chapter 5\ #endif\ CANVAS_PIXWIN%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Now only a hint, must be prepared to repaint,\ read Sect 3\.4\ #endif\ CANVAS_RETAINED%g' \ -e 's%\%TERMSW%g' \ -e 's%^\(.*\)\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Make sure to use xv_init to process the attrs first,\ XVPM 3\.2\ #endif\ FRAME_ARGC_PTR_ARGV%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Make sure to use xv_init tto process the attrs first,\ XVPM 3\.2\ #endif\ FRAME_ARGS%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Defunct, simply remove\ #endif\ FRAME_EMBOLDEN_LABEL%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Iterate using exitsing attrs FRAME_NTH_SUBFRAME and\ FRAME_NTH_SUBWINDOW instead, XVPM 4\.4\.4\ #endif\ FRAME_NTH_WINDOW%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Defunct, property item applies to wmgr in client under\ OPEN LOOK\ #endif\ FRAME_PROPS_ACTIVE%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Properties are now the full responsibility of the\ application program, no notification from window menu\. Will want to add\ props button or look for ACTION_PROPS to your app\ #endif\ FRAME_PROPERTIES_PROC%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Defunct\ #endif\ FRAME_SUBWINDOWS_ADJUSTABLE%g' \ -e 's%^\(.*\)\%XV_HELP_DATA%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Use xv_input_readevent instead, see XVPM 6.3.2\ #endif\ input_read_event%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Handled by wmgr in X, simply remove it Sect 3\.2\ #endif\ KBD_REQUEST%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Now defunct, simply remove it Sect 3\.2\ #endif\ LINT_CAST%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - No longer valid in X, simply remove it \ Sect 3\.2 and 3\.4\ #endif\ LOC_RGN%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - No longer valid in X, simply remove it \ Sect 3\.2\ #endif\ LOC_STILL%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - No longer valid in X, simply remove it \ Sect 3\.2\ #endif\ LOC_TRAJECTORY%g' xview-3.2p1.4/util/conversion/minimal2.sed100644 1750 1750 14167 5413747655 16042 0ustar mbmb#!/bin/sh # cat ${1} | \ sed -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Defunct, simply remove Sect 4\.2\ #endif\ MENU_BOXED%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - No longer supported, see Sect 3\.9\ #endif\ menu_display%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - No longer blocks until menu taken down, should specify\ a MENU_ACTON_PROC for each menu item or at least a MENU_DONE_PROC,\ see Sect 3\.9 and XVPM Chap 11\ #endif\ menu_show%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Defunct, use new NOTICE package See XVPM Chap 12\ #endif\ menu_prompt%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Compatibility attr, use XV_FONT instead Sect 3\.1\ #endif\ MENU_FONT%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Compatibilty, XVPM Appendix A\ #endif\ MENU_SELECTED%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Defunct, simply remove Sect 4\.2\ #endif\ MENU_STAY_UP%g' \ -e 's%^\(.*\)\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Still supported, but for OPEN LOOK buttons,\ should use PANEL_LABEL_STRING for PANEL_BUTTON items, XVPM 7\.7\ #endif\ panel_button_image%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Use XV_CURSOR instead XVPM Chap 13\ #endif\ PANEL_CURSOR%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - If being used with panel_button_string,\ use PANEL_LABEL_STRING instead, XVPM 7\.7\ #endif\ PANEL_LABEL_IMAGE%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Use xv_pf_open instead Remember to extern it\ #endif\ pf_open%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Use xv_pf_open_private instead\. Remember to extern it\ #endif\ pf_open_private%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Use xv_pf_close instead, remember to extern it\ #endif\ pf_close%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Use xv_pf_text instead, remember to extern it\ #endif\ pf_text%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Use xv_pf_textwidth instead, remember to extern it\ #endif\ pf_textwidth%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Use xv_pf_ttext instead, remember to extern it\ #endif\ pf_ttext%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Defunct See Sect 3\.11\ #endif\ Pw_attribute_value%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Defunct See Sect 3\.11\ #endif\ pw_close%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Defunct See Sect 3\.11\ #endif\ pw_traprop%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Defunct See Sect 3\.11\ #endif\ pw_use_fast_mono%g' xview-3.2p1.4/util/conversion/minimal3.sed100644 1750 1750 5167 5413747655 16023 0ustar mbmb#!/bin/sh # cat ${1} | \ sed -e 's%^\(.*\)\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - This compatibility interface is VERY inefficient and\ VERY slow\. Also, it will not be supported in later releases\. Change\ this call to xv_create of SCROLLBAR with owner being the window the\ scrollbar should manage, Sect 3\.12\ #endif\ scrollbar_create%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Defunct, change to Xv_Cursor Sect 3\.2\ #endif\ struct cursor%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Defunct, change to Icon Sect 3\.2\ #endif\ struct icon%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Defunct, change to Pixwin Sect 3\.2\ #endif\ struct pixwin%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Defunct, use new NOTICE package, see Sect 3\.9\ #endif\ struct prompt%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Defunct, change to Screen Sect 3\.2\ #endif\ struct screen%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Defunct, see Sect 3\.15\ #endif\ struct tool%g' \ -e 's%\%xview/%g' \ -e 's%^\(.*\)\\(.*\)$%\1TERM\2\ #ifdef XVIEW_COMMENT\ XView CONVERSION - If TERM is being used as a window type, it should be\ changed to TERMSW for XView and you must now include termsw\.h,\ otherwise review XVPM\ #endif\ %g' \ -e 's%textsw_get%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Possibly defunct, see Sect 3\.13\ #endif\ textsw_get%g' \ -e 's%\%XV_LEFT_MARGIN%g' \ -e 's%\%WIN_MENU%g' \ -e 's%\%XV_RIGHT_MARGIN%g' \ -e 's%\%attr_find%g' \ -e 's%^\(.*\)\%xv_parse_one%g' \ -e 's%\%xv_usage%g' xview-3.2p1.4/util/conversion/minimal4.sed100644 1750 1750 17576 5413747656 16054 0ustar mbmb#!/bin/sh # cat ${1} | \ sed -e 's%\%XV_BOTTOM_MARGIN%g' \ -e 's%\%XV_XNAME%g' \ -e 's%\%XV_DEVICE_NUMER%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Defunct, see Sect 3\.14\ #endif\ win_getcursor%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Defunct, see Sect 3\.14\ #endif\ win_getowner%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Defunct, see Sect 3\.14\ #endif\ win_getparentwindow%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - Due to a name space clash with Xlib, the SunView\ data-type Window is now Xv_Window in XView\ #endif\ Window%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - If attempting to fit a frame around multiple subwindows\ where at least one is a text, tty or term subwindow, you should explicitly\ xv_set the size of the windows first, then call window_fit, see window_fit\ in documentation\ #endif\ window_fit%g' \ -e 's%\%xv_create%g' \ -e 's%\%\ #ifdef XVIEW_COMMENT\ XView CONVERSION - If this is being called from within an event/notify\ call-back proc, call func xv_destroy_safe instead\ #endif\ xv_destroy%g' \ -e 's%\%xv_get%g' \ -e 's%\%xv_set%g' \ -e 's%^\(.*\)\ #define IHaveSubdirs #define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)' 'BOOTSTRAPCFLAGS=$(BOOTSTRAPCFLAGS)' #if defined(MacIIArchitecture) && !defined(HasGcc) CPP_DIR = cpp #endif #if defined(HPArchitecture) SOELIM_DIR = soelim #endif CONV_DIR = conversion MSG_UTIL = xgettext msgfmt SUBDIRS = $(CPP_DIR) $(SOELIM_DIR) $(CONV_DIR) $(MSG_UTIL) MakeSubdirs($(SUBDIRS)) DependSubdirs($(SUBDIRS)) install:: $(MKDIRHIER) $(DESTDIR)$(BINDIR) includes:: echo "no includes in $(CURRENT_DIR)" xview-3.2p1.4/misc/ 40755 1750 1750 0 6354605713 11271 5ustar mbmbxview-3.2p1.4/misc/support/ 40755 1750 1750 0 6354605713 13005 5ustar mbmbxview-3.2p1.4/misc/support/Imakefile100644 1750 1750 1162 6351033011 14672 0ustar mbmb#include /**/######################################################################### /**/# @(#)Imakefile 1.6 90/07/17 SMI /**/# Imakefile for misc/support files. SUPPORTFILES = text_extras_menu textswrc ttyswrc INFOFILES = textsw.info ttysw.info xview.info clock.info olwm.info props.info \ textedit.info ALLFILES = $(SUPPORTFILES) $(INFOFILES) all:: install:: $(MKDIRHIER) $(DESTDIR)$(HELP_DEST) $(DESTDIR)$(LIBRARY_DEST) InstallSupportList($(SUPPORTFILES),$(LIBRARY_DEST)) InstallNonExecList($(INFOFILES),$(HELP_DEST)) DependTarget() LintTarget() PopulateSCCSTree(h,$(ALLFILES)) clean:: depend:: xview-3.2p1.4/misc/support/textsw.info100644 1750 1750 45637 5413747661 15360 0ustar mbmb ################################################## # textsw.info May 2 bug fixes ################################################## ################################################## # Open Windows Version 3 FCS rev'd by James Brook # helpopen path changed 11 July 1991 ################################################## #####################50########################### :textsw:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Text window Use text-editing keyboard and menu commands to write and change plain ASCII text. To set the editing caret, position the mouse pointer and click SELECT. To move the caret, use the arrow keys on the right keypad. To select text, click SELECT at the beginning of the text, then click ADJUST at the end. You can copy or cut the selected text using the Copy and Cut keys on the left keypad. With the Paste key, you can then paste the text elsewhere in this or another text window. Copy, Cut, and Paste are available on the Text Editor menu, along with many other options. To display that menu, click MENU in the text window. ################################################## # File menu ################################################## :mfilecmds:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook File Provides a menu of File options for saving the contents of the text window: Load File Pops up a window in which you type the directory and file names for the file you want to load. Save Current File Saves the contents of the text window to the current file. Store as New File Pops up a window in which you type the directory and file names for your file. Include File Pops up a window in which you type the directory and file names for the file you want to include. Empty Document Clears the text window without saving its contents. :mloadfile:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Load File Pops up a window in which you type the directory and file name for the file you want to load. In that pop-up window, click on Load File to load the specified file in the text window, replacing the window's current contents. Before choosing this option, you can select the name of the file you want to load. You may have to type the name first. Keyboard equivalent: Diamond-L Left-L #####################50########################### :loadfile:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Load File Click on this button to load the specified text file into the text window. This replaces any text that was already in the window. :msavefile:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Save Current File Saves the contents of the text window to the current file. Makes a backup version of the file, named filename% . If there is no current file, or you wish to save the contents to a different file, use Store as New File. :mstorefile:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Store as New File Pops up a window in which you type the directory and file name for your file. In that pop-up window, click on Store as New File to create a file in the current directory and save the contents of the text window to it. Before choosing this option, you can select the name you want for the new file. You may have to type the name first. Keyboard equivalent: Diamond-S Left-S #####################50########################### :storefile:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Store as New File Click on this button to save the contents of the text window as a text file, using the directory and file name you specify. :mincludefile:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Include File Pops up a window in which you type the directory and file name for the file you want to include. In that pop-up window, click on Include File to include the contents of the specified file. The file will appear in the text window, beginning at the caret. Before choosing this option, you can select the name of the file you want to include. You may have to type the name first. #####################50########################### :includefile:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Include File Click on this button to add the contents of the specified file to the text in the text window. The new text is added at the insert point. :memptydoc:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Empty Document Clears the text window without saving its contents. :dirstring:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Directory Type the path of the directory for the file you want to include. :includestring:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook File Type the name of the file you want to include. :loadstring:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Directory Type the path of the directory for the file you want to load. :loadpanel:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook File Type the name of the file you want to load. :storestring:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Directory Type the path of the directory for the file you want to store. :storepanel:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook File Type the name of the file you want to store. ################################################## # Edit menu ################################################## :meditcmds:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Edit Provides a menu of Edit options: Again Re-executes the most recent sequence of editing operations, except for Undo. Undo Provides a choice of undoing the most recent editing operation or undoing all edits since you opened the window or last saved its contents. Copy Copies the selected text onto the clipboard, overwriting the clipboard's previous contents. Paste Inserts the contents of the clipboard into the text window, beginning at the caret. Cut Deletes the selected text and copies it onto the clipboard, overwriting the clipboard's previous contents. Defaults to Again or the most recently selected option on the menu. #####################50########################### :meditagain:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Again Re-executes the most recent sequence of editing operations, except for Undo. Keyboard equivalents: Again key Diamond-A Left-A :meditundo:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Undo Provides a choice of undoing the most recent editing operation or undoing all edits since you opened the window or last saved its contents. Defaults to Undo Last Edit or the most recently selected option on the menu. :mundolast:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Undo Last Edit Reverses the effects of the most recent editing operation unless you have saved your file. Selecting Undo Last Edit again reverses the second most recent editing operation, and so on. Keyboard equivalents: Undo Diamond-U Left-U #####################50########################### :mundoall:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Undo All Edits Eliminates all text changes made since the window was started or since you last saved its contents. :meditcopy:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Copy Copies the selected text onto the clipboard, overwriting the clipboard's previous contents. Keyboard equivalents: Copy Diamond-C Left-C :meditpaste:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Paste Inserts the contents of the clipboard into the text window, beginning at the caret. Keyboard equivalents: Paste Diamond-V Left-V #####################50########################### :meditcut:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Cut Deletes the selected text and copies it onto the clipboard, overwriting the clipboard's previous contents. Keyboard equivalents: Cut Diamond-X Left-X ################################################## # View menu ################################################## :mdisplaycmds:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook View Provides ways to change the position of the cursor and the way lines are wrapped: Select Line at Number Pops up a window in which you type the number of the line you want to go to. What Line Number? Pops up a notice telling you the number of the line containing the selected text. Show Caret at Top Moves the line containing the caret to the top of the window. Change Line Wrap Provides a menu of Line Wrap options. Defaults to Select Line at Number or the most recently selected option on the menu. #####################50########################### :mselectline:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Select Line at Number Pops up a window in which you type the number of the line you want to go to. Click on Select Line at Number to scroll the window's contents to the "nth" line, where "n" is the integer you typed. :selectline:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Select Line at Number Click on this button to scroll through the window's contents to the "nth" line, where "n" is the integer you typed for Line Number. :linenumber:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Line Nubmer Type the number of the line you want to scroll to. The line number must be an integer. #####################50########################### :mwhatline:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook What Line Number? Pops up a notice telling you the number of the line containing the selected text. :mshowcaret:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Show Caret at Top Moves the line containing the caret to the top of the window. :mchangelinewrap:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Change Line Wrap Provides a menu of Line Wrap options. These options determine where line breaks occur: between characters, words, or not at all. :mwrapchars:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Wrap at Character Makes line breaks occur between characters. :mwrapwords:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Wrap at Word Makes line breaks occur between words. :mcliplines:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Clip Lines Makes lines not wrap. When you type lines wider than the window, the text beyond the right margin does not appear in the window. To see the hidden text, resize the window or choose another Line Wrap option from View. #####################50########################### ################################################## # Find menu ################################################## :mfindcmds:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Find Provides a menu of options for finding and replacing text: Find and Replace Pops up a Find and Replace window. Find Selection Provides the option to search forward or backward for the selected text. Find Marked Text Pops up a Find Marked Text window for finding text bounded by specified delimiters. Replace |>field<| Provides a menu of search options (Expand, Next, and Previous). :mfindreplace:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Find and Replace Pops up a Find and Replace window. If you select a block of text before choosing this option, the Find and Replace window contains the selected text as the word or phrase to search for. Keyboard equivalent: Control-Find #####################50########################### :searchpanel:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Find and Replace In the text field to the right of Find, enter the word or phrase you want to find. In the text field to the right of Replace, enter the word or phrase you want to replace it with. Click on the button for the action you want: - Find - Replace - Find then Replace - Replace then Find - Replace All :findstring:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Search text field Enter the word or phrase you want to find. :replacestring:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Replace text field Enter the word or phrase you want to substitute for the word or phrase in the Find text field. :find:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Find Searches forward for the next occurrence of the Find text. Provides the option to search backward. Keyboard equivalent: Find key #####################50########################### :mdirforward:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Forward Searches forward for the next occurrence of the Find text. Keyboard equivalent: Find key :mdirbackward:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Backward Searches backward for the next occurrence of the Find text. Keyboard equivalent: Shift-Find :replace:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Replace Replaces the selected word or phrase with the Replace text. :findreplace:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Find then Replace Searches for the next occurrence of the Find text. Replaces it with the Replace text. :replacefind:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Replace then Find Replaces the currently selected text with the Replace text, then searches for the next occurrence of the Find text. #####################50########################### :replaceall:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Replace All Replaces all occurrences of the Find text with the Replace text. :wrap:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook All Text/To End Selects the next search mode. All Text: When the search reaches one end of the text, it continues to the other end. To End: When the search reaches the end of the text, it stops. #####################50########################### :mfindselcmds:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Find Selection Provides the option to search forward or backward for the selected text. :mfindforward:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Forward Searches forward for the next occurrence of the selected text. Keyboard equivalent: Find key :mfindbackward:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Backward Searches backward for the next occurrence of the selected text. Keyboard equivalent: Shift-Find :mfindtext:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Find Marked Text Pops up a Find Marked Text window for finding text bounded by specified delimiters. :fieldpanel:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Find Marked Text Click left on the delimiter pair to search for, then on the Backward, Expand, or Forward. #####################50########################### :fieldchoice:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Delimiter option Specifies the selected delimiter pair that is used for searching. :findpair:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Find Pair Searches for a pair of matched delimiters. :findpairchoice:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Forward/Backward/Expand Directs the search for delimiters, using the current insertion point as the start of the search. :insertpair:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Insert Pair Surrounds the selected text with delimiters. :removepair:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Remove Pair Deletes a matched pair of delimiters from the selected text. #####################50########################### :mselfieldcmds:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Replace |>field<| Provides a menu of search options (Expand, Next, and Previous). :mselexpand:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Expand Searches for a field contained by delimiters and highlights it. :mselnext:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Next Searches for the next field and highlights it. Keyboard equivalent: Control-Tab :mselprevious:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Previous Searches for the previous field and highlights it. Keyboard equivalent: Shift-Control-Tab #################################################### # Pop-up Term Pane Menu #################################################### #####################50########################### :mhistory:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook History Provides options to modify the log of all the commands typed in the window. :mmode:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Mode Determines whether the history log is editable or read-only. :mstorelog:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Store log as new file Saves the current history log to a file. Pops up a window in which you type the directory and file name. :mclearlog:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Clear log Clears the current history log. #####################50########################### :medit:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Edit Press MENU to display a submenu of Edit options: Again, Undo, Copy, Paste, and Cut. :meditor:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook File Editor Determines whether or not a Text Editor pane is part of the window. :meneditor:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Enable Editing Lets you edit text anywhere in the window, as in a Text Editor window. :mdiseditor:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Disable Editing Lets you edit the current command line only. #####################50########################### :mextras:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Extras Provides a menu of Extra options for text formatting, capitalization, and other operations. :extrasmenu:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Extras menu Provides these options: Format Reformats long lines into physical lines of 72 characters or less. Capitalize Capitalizes selected text. Choose the type of capitals from the submenu. Shift Lines Inserts or removes a Tab character at the beginning of each line of selected text. Pretty-print C Uses the UNIX indent command to format C program listings. Insert Brackets Inserts brackets around the selected text. Choose the type of bracket from the submenu. Remove Brackets Deletes brackets from the selected text. Choose the type of bracket from the submenu. ######################################## # Term Pane Menu ######################################## #####################50########################### :menscroll:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Enable Scrolling Adds a scrollbar and full text-editing capabilities throughout the window if editing is enabled, or only at the command line if editing is disabled. :mdisscroll:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Disable Scrolling Eliminates the scrollbar and many text-editing capabilities. Some applications need scrolling disabled. :mundocmds:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook :mdirection:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook xview-3.2p1.4/misc/support/textswrc100644 1750 1750 4551 5413747661 14721 0ustar mbmb/* @(#)textswrc 15.3 90/06/21 SMI */ KEY_RIGHT(1) FILTER insert_brackets "\\fI" "\\fP" /* * insert_brackets inserts the indicated characters around the selected text. * If the text is already bracketed with these characters, it removes them. * At some point in the future, the remove option will be invoked by holding * down SHIFT key while hitting function key. */ KEY_RIGHT(2) FILTER insert_brackets "\\fB" "\\fP" KEY_RIGHT(3) FILTER insert_brackets "\\fL" "\\fP" KEY_RIGHT(4) FILTER capitalize /* * capitalize/uncapitalize selected material as follows: If there are no * lower case characters, convert everything to lower case. * Example: EDIT TOOL => edit tool. * If there are any lower case letters, convert everything to uppercase. * Example: adjust_pending_delete => ADJUST_PENDING_DELETE * * If characters consist of several words separated by whitespace, then for each * word, capitalize the first letter it if it isn't, lower case if it is. * Example: now is the time => Now Is The Time, and vice versa. */ KEY_RIGHT(5) FILTER insert_brackets \( \) KEY_RIGHT(6) FILTER insert_brackets \" \" KEY_RIGHT(7) FILTER insert_brackets "\\s-2" "\\s0" /* * NOTE: Keys R8, R10, R12 and R14 are the arrow keys. * By default these emit cursor motion escape sequences (used e.g. by vi) * so their key mappings will not have any effect unless you * set Arrow_Keys in the Input category of defaults to "No" * or run 'setkeys reset'. */ KEY_RIGHT(10) FILTER shift_lines -t -1 /* * Shifts selected lines left the indicated number of tab stops, with tab * stops computed the following way: if any spaces are seen on the first line, * tab stops = 4. Otherwise, look in .indent.pro for corresponding value * (you can use indent_defaults to set up your .indent.pro). If no .indent.pro, * assume 8. Note this means that the user can specify 8 in his .indent.pro, * but still have shift_lines do the right thing for those files that he has * explicitly formatted using 4 space indentation, provided that the first * line given to shift_lines contains some spaces. */ KEY_RIGHT(11) FILTER indent -st /* invoke indent on the selected material, using the options specified in * .indent.pro */ KEY_RIGHT(12) FILTER shift_lines -t 1 /* shifts selected lines right the indicated number of spaces */ KEY_RIGHT(13) FILTER fmt /* pass the selected material through fmt */ xview-3.2p1.4/misc/support/text_extras_menu100644 1750 1750 1277 5413747661 16436 0ustar mbmb# @(#)text_extras_menu 1.6 88/02/08 SMI # # Copyright (c) 1987 by Sun Microsystems, Inc. # # Text "Extras" menu # "Format" fmt "Capitalize" MENU "abcd -> ABCD" capitalize -u "ABCD -> abcd" capitalize -l "abcd -> Abcd" capitalize -c "Capitalize" END "Shift Lines" MENU "Right" shift_lines -t 1 "Left" shift_lines -t -1 "Shift Lines" END "Pretty-print C" indent -st "Insert Brackets" MENU " ( )" insert_brackets ( ) " [ ]" insert_brackets \[ \] " { }" insert_brackets { } "`` ''" insert_brackets \" \" "Insert Brackets" END "Remove Brackets" MENU " ( )" remove_brackets ( ) " [ ]" remove_brackets \[ \] " { }" remove_brackets { } "`` ''" remove_brackets \" \" "Remove Brackets" END xview-3.2p1.4/misc/support/ttysw.info100644 1750 1750 10050 5413747661 15171 0ustar mbmb############################################## # ttysw.info July 10, 1991 bug fix ############################################## ############################################## # OpenWindows Version 3 FCS ############################################## #######################50######################### :menbpage:$OPENWINHOME/bin/helpopen handbooks/tty.handbook Enable Page Mode Sends lengthy output to this window a page (windowful) at a time. A stop-sign symbol appears when there is more output to display. To see additional output, press the Space bar. :mdsbpage:$OPENWINHOME/bin/helpopen handbooks/tty.handbook Disable Page Mode Scrolls lengthy output to this window, rather than sending it a page at a time. :mcont:$OPENWINHOME/bin/helpopen handbooks/tty.handbook Continue In Page mode, displays the next page (windowful) of output. #######################50######################### :mcopy:$OPENWINHOME/bin/helpopen handbooks/tty.handbook Copy Copies the selected text to the clipboard (overwriting the clipboard's previous contents) and inserts it at the insert point. :mpaste:$OPENWINHOME/bin/helpopen handbooks/tty.handbook Paste Inserts the contents of the clipboard at the insert point. :mscroll:$OPENWINHOME/bin/helpopen handbooks/tty.handbook Scrolling Enables and disables scrolling. Enabling scrolling provides the window with a scrollbar and full text-editing capabilities. Disabling scrolling also eliminates many text editing capabilities. (Some applications need scrolling disabled.) #######################50######################### # :menscroll:$OPENWINHOME/bin/helpopen handbooks/tty.handbook Enable Scrolling Provides the window with a scrollbar and full text-editing capabilities throughout the window if editing is enabled, or only at the command line if editing is disabled. :mdisscroll:$OPENWINHOME/bin/helpopen handbooks/tty.handbook Disable Scrolling Eliminates the scrollbar and many text-editing capabilities. Some applications need scrolling disabled. Normally, you do not need this option. #######################50######################### :mterms:$OPENWINHOME/bin/helpopen handbooks/tty.handbook Command window Sends the commands you enter to the operating system for execution. Also provides text-editing facilities such as cut, copy, and paste. You can see the history of your commands by using the scrollbar. :meditor:$OPENWINHOME/bin/helpopen handbooks/tty.handbook File Editor Determines whether or not a Text Editor pane is part of the window. :meneditor:$OPENWINHOME/bin/helpopen handbooks/tty.handbook Enable Editing Lets you edit text anywhere in the window, as in a Text Editor window. :mdiseditor:$OPENWINHOME/bin/helpopen handbooks/tty.handbook Disable Editing Lets you edit the current command line only. :menu:$OPENWINHOME/bin/helpopen handbooks/tty.handbook Term Pane Menu Drag and release MENU over an item to choose it. To display the full Text Editor menu, choose Enable Scrolling. #######################50######################### :mhistory:$OPENWINHOME/bin/helpopen handbooks/tty.handbook History Provides options to modify the log of all the commands typed in the window. :mmode:$OPENWINHOME/bin/helpopen handbooks/tty.handbook Mode Determines whether the history log is editable or read-only. :medit:$OPENWINHOME/bin/helpopen handbooks/tty.handbook Edit Provides these options: - Again - Undo - Copy - Paste - Cut # #######################50######################### :mcommands:$OPENWINHOME/bin/helpopen handbooks/tty.handbook Extras Customizes your system by defining a set of menu items. You can include other menus of items in a file set in your user preferences file (.Xdefaults). The format for this file is: "item 1" program1 -options "menu name MENU "item 2" program2 "item 3" program3 -options "menu name" END "item 4 program4 -options The .Xdefaults entry where this file should be specified is "Text.ExtrasMenuFilename:" # :mfind:$OPENWINHOME/bin/helpopen handbooks/tty.handbook Find Opens a Find and Replace command window. Press MENU to display a menu of find options. ##### xview-3.2p1.4/misc/support/ttyswrc100644 1750 1750 674 5413747662 14540 0ustar mbmbmapi F1 \E[224z mapi F2 \E[225z mapi F3 \E[226z mapi F4 \E[227z mapi F5 \E[228z mapi F6 \E[229z mapi F7 \E[230z mapi F8 \E[231z mapi F9 \E[232z mapi F10 \E[233z mapi F11 \E[234z mapi F12 \E[235z mapi R1 \E[208z mapi R2 \E[209z mapi R3 \E[210z mapi R4 \E[211z mapi R5 \E[212z mapi R6 \E[213z mapi R7 \E[214z mapi R9 \E[216z mapi R11 \E[218z mapi R13 \E[220z mapi R15 \E[222z mapi L2 \E[193z mapi L3 \E[194z mapi L4 \E[195z xview-3.2p1.4/misc/support/xview.info100644 1750 1750 20044 5413747662 15146 0ustar mbmb ################################################### # xview.info May 2 bug fixes ################################################### # OpenWindows Version 3 FCS rev'd 8 July 1991, James Brook ################################################### # helpopen path changed 11 July 1991 ################################################### # scrollbar elements ################################################### ########################50######################## :scrollbarSplitView:$OPENWINHOME/bin/helpopen handbooks/desktop.intro.handbook Split View Choose Split View to create two separate scrollable views of the same document. You may choose this item more than once to create additional views. :scrollbarJoinViews:$OPENWINHOME/bin/helpopen handbooks/desktop.intro.handbook Join Views Choose Join Views to rejoin parts of a text window broken by Split View. :scrollbarBottom:$OPENWINHOME/bin/helpopen handbooks/desktop.intro.handbook Scrollbar Bottom Cable Anchor Click SELECT on the cable anchor to scroll to the end of the data displayed in the pane. ## ########################50######################## :scrollbarTop:$OPENWINHOME/bin/helpopen handbooks/desktop.intro.handbook Scrollbar Top Cable Anchor Click SELECT on the cable anchor to scroll to the beginning of the data displayed in the pane. Press or click MENU anywhere in the scrollbar to display the scrollbar menu. # :scrollbarLineForward:$OPENWINHOME/bin/helpopen handbooks/desktop.intro.handbook Scrollbar Down arrow Use the down arrow button on the scrollbar elevator to change the view on the data that is displayed in the pane. Click SELECT to scroll the contents of the pane forward in the document one unit. Press SELECT to repeatedly scroll the contents of the pane. Press or click MENU anywhere in the scrollbar to display the scrollbar menu. # :scrollbarLineBackward:$OPENWINHOME/bin/helpopen handbooks/desktop.intro.handbook Scrollbar Up Arrow Use the up arrow button on the scrollbar elevator to change the view on the data that is displayed in the pane. Click SELECT to scroll the contents of the pane backward in the document one unit. Press SELECT to repeatedly scroll the contents of the pane. Press or click MENU anywhere in the scrollbar to display the scrollbar menu. # ########################50######################## :scrollbarDrag:$OPENWINHOME/bin/helpopen handbooks/desktop.intro.handbook Scrollbar Drag Area The drag area is the box between the two arrows. Use the drag area of the scrollbar elevator to move to an arbitrary location in the data: Move the pointer to the drag area and press SELECT: the drag area highlights. Drag the pointer to move the view in the pane forward or backward in the data. (The pointer can be moved anywhere, but remains constrained to the drag area until you release SELECT.) Press or click MENU anywhere in the scrollbar to display the scrollbar menu. # :scrollbarPageForward:$OPENWINHOME/bin/helpopen handbooks/desktop.intro.handbook Scrollbar Cable Click SELECT in this part of the cable to page forward--scroll the pane forward an amount equal to its size. The length of the scrollbar cable represents the total size of the data from the application. The position of the elevator on the cable shows the location of the pane contents in the total data. The dark area of the scrollbar cable shows the portion of the data that is currently visible in the pane. If the cable is mostly dark, most of the file is visible. If the dark area of the cable is small, the file is large relative to the size of the pane. Press or click MENU anywhere in the scrollbar to display the scrollbar menu. ########################50######################## # :scrollbarPageBackward:$OPENWINHOME/bin/helpopen handbooks/desktop.intro.handbook Scrollbar Cable Click SELECT in this part of the cable to page backwards--scroll the pane forward an amount equal to its size. The length of the scrollbar cable represents the total size of the data from the application. The position of the elevator on the cable shows the location of the pane contents in the total data. The dark area of the scrollbar cable shows the portion of the data that is currently visible in the pane. If the cable is mostly dark, most of the file is visible. If the dark area of the cable is small, the file is large relative to the size of the pane. Press or click MENU anywhere in the scrollbar to display the scrollbar menu. ################################################ # pushpin # elements of Help and Properties windows ################################################## ########################50######################## # :helpMagnifyingGlass:$OPENWINHOME/bin/helpopen handbooks/desktop.intro.handbook Help Magnifying Glass The magnifying glass shows the object at the pointer position when you pressed the Help key. To change the view in the magnifying glass and display help for a new object, move the pointer to another object and press the Help key again. # # :menuPushpin:$OPENWINHOME/bin/helpopen handbooks/desktop.intro.handbook Pushpin Pins up frequently used menus and pop-up windows so you can use them for more than one command. To pin up a menu, press MENU and drag the pointer to the pushpin. When the pin pops into the hole, release MENU. To pin up a pop-up window, click SELECT on the pushpin. # ########################50######################## :scrollbarMenu:$OPENWINHOME/bin/helpopen handbooks/desktop.intro.handbook Scrollbar Menu Use these commands to change the view on the data that is displayed in a scrollable pane: Here to top Scrolls the line at the pointer location to the top of pane (with vertical scrollbar). Here to left Scrolls the line at the pointer location to the left of pane (with horizontal scrollbar). Top to here Scrolls the line at the top of the pane to the pointer location (with vertical scrollbar). Left to here Scrolls the line at the left of the pane to the pointer location (with horizontal scrollbar). Previous Undoes the last scrolling action and restores the previous view in the pane. Split View Splits window into two scrollable panes. Toggles to Join Views. Join Views Rejoins split panes created with Split View. # :scrollbarHereToTop:$OPENWINHOME/bin/helpopen handbooks/desktop.intro.handbook Here to top Scrolls the line at the pointer location to the top of the pane. # :scrollbarHereToLeft:$OPENWINHOME/bin/helpopen handbooks/desktop.intro.handbook Here to left Scrolls the line at the pointer location to the left of the pane. ########################50######################## # :scrollbarTopToHere:$OPENWINHOME/bin/helpopen handbooks/desktop.intro.handbook Top to here Scrolls the line at the top of the pane to the pointer location. # :scrollbarLeftToHere:$OPENWINHOME/bin/helpopen handbooks/desktop.intro.handbook Left to here Scrolls the line at the left of the pane to the pointer location. # :scrollbarPrevious:$OPENWINHOME/bin/helpopen handbooks/desktop.intro.handbook Previous Undoes the last scrolling action and restores the previous view in the pane. # :menu:$OPENWINHOME/bin/helpopen handbooks/desktop.intro.handbook Menu No help is available for this item. # :panel:$OPENWINHOME/bin/helpopen handbooks/desktop.intro.handbook Panel No help is available for this panel. # ########################50######################## :ttysw:$OPENWINHOME/bin/helpopen handbooks/desktop.intro.handbook Terminal Emulator Window This window is a command interpreter that accepts SunOS commands. # :notice:$OPENWINHOME/bin/helpopen handbooks/desktop.intro.handbook Notice Window Appears when the system needs your immediate attention. A notice requires you to respond to its message. Blocks input to the application until you click on one of the notice's buttons. The button with the double outline is the default. Keyboard Accelerator: press Return. # ########################50######################## :helpWindow:$OPENWINHOME/bin/helpopen handbooks/desktop.intro.handbook Help Window The help window displays help for the object under the pointer. To dismiss a Help window: Move the pointer to the pushpin and click SELECT. xview-3.2p1.4/misc/support/clock.info100644 1750 1750 12100 5413747662 15071 0ustar mbmb ####################################### # clock.info 2 July 1991 # # @(#)clock.info 2.13 91/05/02 ####################################### # OpenWindows Version 3 FCS 2 July 1991, rev'd by James Brook # helpopen path changed 11 July ####################################### # ##########This_Line_Is_50_Characters_Long######### #2345678901234567890123456789012345678901234567890 # :Properties:$OPENWINHOME/bin/helpopen handbooks/clock.handbook Properties Displays a window in which you can set the Clock display options, including type of clock face. :PropertyFrame:$OPENWINHOME/bin/helpopen handbooks/clock.handbook Clock Properties Window Choose the options you want, then click SELECT on Apply to make them take effect. To return to the previous options, click SELECT on Reset before clicking on Apply. To set changes to options as the default, click SELECT on Set Default. These settings will be default every time you start a new Clock. ##########This_Line_Is_50_Characters_Long######### :PropertyPanel:$OPENWINHOME/bin/helpopen handbooks/clock.handbook Clock Properties This is the Clock Properties window. :ApplyButton:$OPENWINHOME/bin/helpopen handbooks/clock.handbook Apply Sets the Clock to the new property values. Click SELECT on Apply to set the new values. :ResetButton:$OPENWINHOME/bin/helpopen handbooks/clock.handbook Reset Returns the options to the current values for the Clock. Reset does not restore values after you have clicked on Apply. :DefaultButton:$OPENWINHOME/bin/helpopen handbooks/clock.handbook Set Default Make the current Clock setting the default. These values will take effect the next time you start a Clock. # ##########This_Line_Is_50_Characters_Long######### # :FaceStyle:$OPENWINHOME/bin/helpopen handbooks/clock.handbook Clock Face: Sets the clock display to either analog or digital when the clock window is open. Click SELECT on your choice. :IconStyle:$OPENWINHOME/bin/helpopen handbooks/clock.handbook Icon display: Sets the clock display to either analog or roman when the clock is closed to an icon. Click SELECT on your choice. :DigStyle:$OPENWINHOME/bin/helpopen handbooks/clock.handbook Digital display: If your clock has a digital display, the time can be either 12 hours or 24 hours. Click SELECT on your choice. :DisplayStyle:$OPENWINHOME/bin/helpopen handbooks/clock.handbook Display Options: Date Shows the date on the clock. Seconds Shows the seconds on the clock. Click SELECT on the options you want. ##########This_Line_Is_50_Characters_Long######### :TimeZoneStyle:$OPENWINHOME/bin/helpopen handbooks/clock.handbook Timezone: Choose between your local time zone and another time zone. :TimeZoneButton:$OPENWINHOME/bin/helpopen handbooks/clock.handbook Other Timezone Menu Button Press MENU on this button to display the list of available time zones. Drag MENU down the list to choose one of the options. :TimeZoneName:$OPENWINHOME/bin/helpopen handbooks/clock.handbook Other Timezone Text Field Shows the other time zone currently selected. To change time zones, type the name of another zone in this field. Or choose a time zone from the menu. # ##########This_Line_Is_50_Characters_Long######### # :SWatchChoice:$OPENWINHOME/bin/helpopen handbooks/clock.handbook Stopwatch: Shows the current setting for the built-in stopwatch. The stopwatch starts as soon as you click SELECT on "start." To stop the watch, click SELECT on "stop." # :AlarmChoice:$OPENWINHOME/bin/helpopen handbooks/clock.handbook Alarm: Allows you to set up a UNIX command to run at a specified time. Enter the hour, minute, and command. You can also have the command repeat by choosing one of the Repeat options. # ##########This_Line_Is_50_Characters_Long######### # :HourChoice:$OPENWINHOME/bin/helpopen handbooks/clock.handbook Hr: Choose the hour you want the alarm to go off, using a 24-hour clock. (Example: 14 = 2 PM.) Type the hour number, or click SELECT on the arrow buttons to set the hour. :MinuteChoice:$OPENWINHOME/bin/helpopen handbooks/clock.handbook Min: Choose the minute you want the alarm to go off. Type the minute number, or click SELECT on the arrow buttons to set the hour. ##########This_Line_Is_50_Characters_Long######### :AlarmCommand:$OPENWINHOME/bin/helpopen handbooks/clock.handbook Alarm command: Type the command to run when the alarm goes off. :RepeatChoice:$OPENWINHOME/bin/helpopen handbooks/clock.handbook Repeat: Choose how often you want the alarm command to run. Choose "none" if you do not want to repeat. :HourCommand:$OPENWINHOME/bin/helpopen handbooks/clock.handbook Hourly command: Allows you to set up a UNIX command to run every hour on the hour. Type the command you want to run. :DisplayCanvas:$OPENWINHOME/bin/helpopen handbooks/clock.handbook Clock Window This window is where the Clock is drawn. Resize the window if you cannot see all of the Clock. Press MENU and choose Properties to customize the Clock, including the kind of face it displays. :ClockFrame:$OPENWINHOME/bin/helpopen handbooks/clock.handbook Clock Frame This frame contains the Clock face. ##########This_Line_Is_50_Characters_Long######### xview-3.2p1.4/misc/support/props.info100644 1750 1750 30554 5413747662 15156 0ustar mbmb################################################## # props.info 3 July 1991, rev'd by James Brook # new helpopen path 11 July 1991 # # This help text is for the workspace properties. # # Open Windows Version 3 FCS # # @(#)props.info 1.15 91/07/10 # ################################################## #######################50######################### :CategoryInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Category Press MENU to choose a category and display the Workspace properties you can change: Color Workspace and window color (for color systems only) Icons Location of icons on Workspace Menus Drag-Right distance for pointer SELECT Mouse Press Miscellaneous Beep Set Input Area Scrollbar Placement Mouse Scrollbar Pointer Jumping Pop-up Pointer Jumping Multi-click Timeout Localization Language- and culture-related settings # :ApplyInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Apply Click SELECT on Apply to make the new settings take effect and dismiss the Properties window. Some properties take effect immediately, while others take effect the next time you start an application. # #######################50######################### :ResetInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Reset Click SELECT on Reset to return the properties to their original settings and remove any change bars. # ######################################## # Color Category ###################################### # :ColorPanelInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Color Category Choose options in this window to change the color of the Workspace or windows. You can preview your color choices before applying them. Click SELECT on Apply to apply your changes. #######################50######################### :ColorChoiceInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Workspace/Windows Click SELECT on Workspace to edit Workspace color. Click SELECT on Windows to edit Window color. #######################50######################### :CustomColorInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Custom/Palette Click SELECT on Custom to display the Color properties window. This is where you create a custom color, using the Hue, Saturation, and Brightness sliders. Click SELECT on Palette to return to the color palette. :PaletteInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Palette Grid This grid contains a variety of predetermined colors that are ideal for windows and the Workspace. There are eight hues, each with four saturations, and two brightness levels. On the right are eight levels of gray scale. Click SELECT on a color to choose it. When you choose a a new color for Windows, look in the upper left corner of the pane to see a preview. #######################50######################### :AppImageInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Preview Area This is the preview of your current color selections. #######################50######################### :HueSlider:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Hue Slider Press SELECT and drag the slider to set the hue. :SaturationSlider:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Saturation Slider Press SELECT and drag the slider to set the saturation. Moving this slider all the way to the left makes all colors look gray and effectively disables the Hue slider. :BrightnessSlider:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Brightness Slider Press SELECT and drag the slider to set the saturation. Moving this slider all the way to the left turns all colors black and effectively disables the Hue and Saturation sliders. #######################50######################### # ####################################### # Icons Category ###################################### # :IconPanelInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Icon Category Choose options in this window to change the location of icons on the Workspace. #######################50######################### :IconLocationInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Icon Location Choose where on the screen new icons will be displayed: Top First icon appears in the upper left corner. Subsequent icons appear to the right of the first icon. Bottom First icon appears in the lower left corner. Subsequent icons appear to the right of the first icon. Left First icon appears in the upper left corner. Subsequent icons appear below the first icon. Right First icon appears in the upper right corner. Subsequent icons appear below the first icon. Click SELECT on Apply to apply the location setting. When you start a new application, its icon will use the new location setting. Icons already displayed will not change location. #######################50######################### # ####################################### # Menus Category ###################################### # #######################50######################### :MenuPanelInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Menus Category Choose options in this window to change settings affecting how you choose from menus. :MenuDragRightInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Drag-Right distance (pixels): Specifies how far you must drag the pointer before it displays a submenu. The smaller the number, the faster the submenu appears. Enter the number of pixels you want to drag the pointer before it displays the submenu. Default = 5 pixels This setting takes effect as soon as you click SELECT on Apply. # #######################50######################### :SelectMousePressInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook SELECT Mouse Press: Determines what happens when you use the SELECT mouse button on a menu button. Selects Default Shows the default setting for the menu when you press SELECT. Executes the default when you release SELECT. Displays Menu Displays the menu. Click SELECT on Apply to apply the setting. New applications will use the new setting. The setting will not change for applications that are already running. # #######################50######################### ####################################### # Miscellaneous ###################################### # :MiscPanelInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Miscellaneous Category Choose options in this window to change settings for beep, input area, and scrollbar placement. # #######################50######################### :Beep:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Beep: Choose when your system will beep: Always Beeps for all applications. Notices Only Only beeps when a Notice is displayed. Never Never beeps. Click SELECT on Apply to apply the setting. New applications will use the new setting. The setting will not change for applications that are already running. #######################50######################### # :InputFocusInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Set Input Area: Choose how you activate the input caret to type in a window or text field: Click SELECT Move the pointer into a window and click SELECT. Move Pointer Move the pointer into a window. This setting takes effect as soon as you click SELECT on Apply. With either setting, you can set a new insert point by clicking SELECT in a text field or pane. # #######################50######################### :ScrollbarPlacementInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Scrollbar Placement: Choose where the scrollbar is placed in a pane: Left or Right. This setting applies to all applications on the Workspace. Click SELECT on Apply to apply the setting. New applications will use the new setting. The setting will not change for applications that are already running. # ####################################### # Mouse Settings ###################################### # #######################50######################### :MouseSetPanelInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Mouse Settings Category Choose options in this window to change mouse-related settings. # #######################50######################### :ScrollbarPointerJumpInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Scrollbar Pointer Jumping: Sets the pointer so it follows the moves of the scrollbar elevator. Click SELECT on the check box to set the pointer. To undo the setting, click on the check box again. Click SELECT on Apply to apply the setting. New applications will use the new setting. The setting will not change for applications that are already running. # #######################50######################### :PopupPointerJumpInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Pop-up Pointer Jumping: Sets the pointer so it jumps into a pop-up window when you open it. Click SELECT on the check box to set the pointer. To undo the setting, click on the check box again. Click SELECT on Apply to apply the setting. New applications will use the new setting. The setting will not change for applications that are already running. # #######################50######################### :MultiClickInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Multi-click Timeout (sec/10): Specifies in 10ths of a second the length of time between clicks for multi-click operations. If the time between clicks is longer than the number in the setting, each click is treated as a separate event. For example, with a setting of 4/10, if you double-click on a icon with clicks that are 5/10 of a second apart, you select the icon instead of opening it. You can type a number from 2 to 10 or use the slider to set the time. Click SELECT on Apply to apply the setting. New applications will use the new setting. The setting will not change for applications that are already running. # ####################################### # Localization Settings ###################################### # #######################50######################### :LocalizationPanelInfo:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Localization Category In this window, you can change language- and culture-related Workspace properties. Changes will apply when you start a new application, and will not affect applications that are already running. # #######################50######################### :BasicSetting:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Basic Setting: Press MENU on the menu button to choose the language or culture area to be used in the Workspace. Choice of a basic setting determines the choices and defaults available for Specific Setting entries. # #######################50######################### :SpecificSetting:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Specific Setting: These entries are essential to each localized environment. They include Display Language, Input Language, Time Format, and Numeric Format settings. Choices and defaults for Specific Setting entries vary according to the Basic Setting. # #######################50######################### :DisplayLanguage:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Display Language: Specifies the language in which messages, labels, menu items, titles, and help text are shown. Press MENU on the menu button to choose a new setting. New applications will use the new setting. The setting will not change for applications that are already running. # :InputLanguage:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Input Language: Specifies the language used for input. Press MENU on the menu button to choose a new setting. New applications will use the new setting. The setting will not change for applications that are already running. # #######################50######################### :TimeFormat:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Time Format: Specifies the format for time and date display. Press MENU on the menu button to choose a new setting. New applications will use the new setting. The setting will not change for applications that are already running. # :NumericFormat:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Numeric Format: Specifies the format for numeric display. Press MENU on the menu button to choose a new setting. New applications will use the new setting. The setting will not change for applications that are already running. # :SupplementarySetting:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Supplementary This setting is not currently available. xview-3.2p1.4/misc/support/textedit.info100644 1750 1750 7021 5413747663 15617 0ustar mbmb################################################## # textedit.info 19 June 1991 ################################################## ################################################## # OpenWindows Version 3 helpopen path changed 11 July ################################################## #########################50####################### :File:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook File Provides a menu of File options for saving the contents of the text window: Load File Pops up a window in which you type the directory and file names for the file you want to load. Save Current File Saves the contents of the text window to the current file. Store as New File Pops up a window in which you type the directory and file names for your file. Include File Pops up a window in which you type the directory and file names for the file you want to include. Empty Document Clears the text window without saving its contents. #########################50####################### :View:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook View Provides ways to change the position of the cursor and the way lines are wrapped: Select Line at Number Pops up a window in which you type the number of the line you want to go to. What Line Number? Pops up a notice telling you the number of the line containing the selected text. Show Caret at Top Moves the line containing the caret to the top of the window. Change Line Wrap Provides a menu of Line Wrap options. Defaults to Select Line at Number or the most recently selected option on the menu. #########################50####################### :Edit:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Edit Provides a menu of Edit options: Again Re-executes the most recent sequence of editing operations, except for Undo. Undo Provides a choice of undoing the most recent editing operation or undoing all edits since you opened the window or last saved its contents. Copy Copies the selected text onto the clipboard, overwriting the clipboard's previous contents. Paste Inserts the contents of the clipboard into the text window, beginning at the caret. Cut Deletes the selected text and copies it onto the clipboard, overwriting the clipboard's previous contents. Defaults to Again or the most recently selected option on the menu. #########################50####################### :Find:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Find Provides a menu of options for finding and replacing text: Find and Replace Pops up a Find and Replace window. Find Selection Provides the option to search forward or backward for the selected text. Find Marked Text Pops up a Find Marked Text window for finding text bounded by specified delimiters. Replace |>field<| Provides a menu of search options (Expand, Next, and Previous). :Panel:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook This is the Text Editor control panel. #########################50####################### :SourceDrag:$OPENWINHOME/bin/helpopen handbooks/textedit.handbook Drag and Drop Target This box is the place to drop a file icon when you want to load the file in Text Editor. Press SELECT on an icon to drag it from File Manager to Text Editor. When there is text in the Text Editor window, you can drag the icon from this box to another program that will accept the file and process it. For example, you can drag from Text Editor to Print Tool to print the file. xview-3.2p1.4/misc/support/olwm.info100644 1750 1750 6601 5413747663 14746 0ustar mbmb# ----------------------------------------------- # olwm.info 2 July 1991 # # OpenWindows Version 3 FCS rev'd by James Brook # ----------------------------------------------- # @(#) olwm.info 1.4 91/02/15 Sun Micro # helpopen path changed 11 July 1991 ##########################50###################### :Workspace:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Workspace Everything on the screen is on the Workspace. Windows and icons are displayed on it. The Workspace is the background on your screen. Press the MENU mouse button on that background to display the Workspace menu, which provides these options and submenus: Programs Displays a menu of available DeskSet tools and demonstration programs. Utilities Displays a menu of commonly used utilities and services. Properties Displays the Workspace Properties window, where you can customize the look and behavior of your desktop. Help Opens the Help Viewer to the table of contents of handbooks for the DeskSet tools. Desktop Intro Starts the tutorial in the basics of using OpenWindows. Exit Choose Exit to leave the Workspace and return to a tty command-line interface. ##########################50###################### :Frame:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Window Border This is the header, footer, or side of a window that contains an application program. The border thickens when the window is selected. To select a window, point to the border and click SELECT. From the border, you can display a Window menu with options for closing, moving the window back or front, and quitting the window. To display the Window menu, point to the border and press MENU. :Icon:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Icon This is a closed window for an application. The picture on this icon identifies its application. For example, the File Manager icon shows the picture of a file drawer. To open the icon, double-click SELECT on it. Or press MENU and choose Open. ##########################50###################### :CloseButton:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Close Button Click SELECT on this button to close the window to an icon. When you close an application's base window, its associated pop-up windows are also closed. :PushPin:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Pushpin Pins up a pop-up window for continued use. When the pin is lying on its side, the pop-up window is unpinned. The window will be dismissed the next time you give a command. To pin up the window, click SELECT on the push-pin. The window is pinned when the pin pops into the hole. To unpin the window, click SELECT on the pushpin to pop it out of the hole. This dismisses the window. ##########################50###################### :ResizeCorner:$OPENWINHOME/bin/helpopen handbooks/workspace.handbook Resize Corner Use the Resize corner to expand or contract the window: 1. Move the pointer to any Resize corner. The pointer changes from an arrow to a circle. 2. Press SELECT and drag the pointer. The Resize corner is highlighted. A bounding box shows you the location of the new window border. 3. Release SELECT. The window is redisplayed in the new size, and the contents adjust to fit within the borders of the window. To change only the height or the width of the window, press the Control key and while pressing SELECT on the Resize corner. xview-3.2p1.4/misc/message_files/ 40755 1750 1750 0 5413764217 14077 5ustar mbmbxview-3.2p1.4/misc/message_files/README100644 1750 1750 1361 5413747665 15065 0ustar mbmbThis directory contains the message templates used for localized text handling. File Message template for ---- -------------------- SUNW_WST_CMDTOOL.po cmdtool SUNW_WST_LIBXVIEW_3200.po the XView library olwm_messages.po olwm olwmslave.po olwmslave To localize the messages for a particular locale, insert the proper translation for all the strings in the .po file: Example: =======from xv_messages.po============= # # "xv_error.c": line number: 58 msgid "bad attribute, %s" msgstr After all the strings have been translated, run: msgfmt This will create a .mo file. Put the .mo file in $OPENWINHOME/lib/locale//LC_MESSAGES See the XView Programming Manual for more details. xview-3.2p1.4/misc/message_files/cmdtool.po100644 1750 1750 2625 5413675777 16216 0ustar mbmbdomain "cmdtool" # # "cmdtool.c": line number: 68 msgid "-P frequency" msgstr # # "cmdtool.c": line number: 69 msgid "-B boldstyle" msgstr # # "cmdtool.c": line number: 72 msgid "syntax: %s [-C] [-I initial_cmd] [%s] [program [args]]\n" msgstr # # "cmdtool.c": line number: 78 msgid "-B set bold style for this instance of %s\n where 'boldstyle' is a number from 1 to 8\n" msgstr # # "cmdtool.c": line number: 81 msgid "-C redirect console output to this instance of %s\n" msgstr # # "cmdtool.c": line number: 84 msgid "-I 'initial_cmd' is first command 'program' executes\n" msgstr # # "cmdtool.c": line number: 86 msgid "-L run the .login file when starting the shell subprocess\n" msgstr # # "cmdtool.c": line number: 91 msgid "-P checkpoint frequency for this %s, where 'frequency' is number\n of edits between checkpoints; a value of 0 means no checkpointing.\n" msgstr # # "cmdtool.c": line number: 147 msgid "shelltool" msgstr # # "cmdtool.c": line number: 148 msgid "cmdtool" msgstr # # "cmdtool.c": line number: 149 msgid " (CONSOLE) - " msgstr # # "cmdtool.c": line number: 197 msgid "Cannot create base frame. Process aborted.\n" msgstr # # "cmdtool.c": line number: 309 msgid "Console" msgstr # # "cmdtool.c": line number: 358 msgid "Command" msgstr # # "cmdtool.c": line number: 358 msgid "Shell" msgstr # # "cmdtool.c": line number: 359 msgid " Tool: Out of swap space. Cannot continue.\n" msgstr xview-3.2p1.4/misc/message_files/xv_messages.po100644 1750 1750 213544 5413676000 17121 0ustar mbmbdomain "xv_messages" # # "attr.c": line number: 111 msgid "A/V list more than 250 elements long, extra elements ignored" msgstr # # "attr.c": line number: 126 msgid "A/V list more than 250 elements long, extra elements ignored" msgstr # # "attr.c": line number: 149 msgid "A/V list more than 250 elements long, extra elements ignored" msgstr # # "attr.c": line number: 163 msgid "A/V list more than 250 elements long, extra elements ignored" msgstr # # "attr.c": line number: 183 msgid "A/V list more than 250 elements long, extra elements ignored" msgstr # # "attr.c": line number: 194 msgid "A/V list more than 250 elements long, extra elements ignored" msgstr # # "attr.c": line number: 208 msgid "A/V list more than 250 elements long, extra elements ignored" msgstr # # "attr.c": line number: 236 msgid "A/V list more than 250 elements long, extra elements ignored" msgstr # # "xv.c": line number: 147 msgid "data in object looks like seal of standard object" msgstr # # "xv.c": line number: 155 msgid "embedding header too large for our encoding scheme" msgstr # # "xv.c": line number: 183 msgid "embedding seal incorrect" msgstr # # "xv.c": line number: 193 msgid "byte offset incorrect" msgstr # # "xv.c": line number: 204 msgid "standard seal incorrect" msgstr # # "xv.c": line number: 459 msgid "NULL pointer passed to xv_set" msgstr # # "xv.c": line number: 778 msgid "xv_destroy_status" msgstr # # "xv.c": line number: 779 msgid "internal error in package" msgstr # # "xv.c": line number: 781 msgid "attempted veto during wrong phase" msgstr # # "xv.c": line number: 783 msgid "send bug report" msgstr # # "xv_error.c": line number: 58 msgid "bad attribute, %s" msgstr # # "xv_error.c": line number: 63 msgid "bad value (0x%x) for attribute %s" msgstr # # "xv_error.c": line number: 69 msgid "cannot get %s" msgstr # # "xv_error.c": line number: 74 msgid "cannot set %s" msgstr # # "xv_error.c": line number: 79 msgid "%s only valid in xv_create" msgstr # # "xv_error.c": line number: 84 msgid "invalid object (%s)" msgstr # # "xv_error.c": line number: 99 msgid "error" msgstr # # "xv_error.c": line number: 109 msgid "System" msgstr # # "xv_error.c": line number: 113 msgid "unix error %d" msgstr # # "xv_error.c": line number: 117 msgid "Server" msgstr # # "xv_error.c": line number: 122 msgid "error unknown" msgstr # # "xv_error.c": line number: 125 msgid "XView" msgstr # # "xv_error.c": line number: 136 msgid "%s %s: Object 0x%x," msgstr # # "xv_error.c": line number: 160 msgid "%s (%s package)\n" msgstr # # "xv_parse.c": line number: 298 msgid "%s: missing argument after %s" msgstr # # "xv_parse.c": line number: 378 msgid "%s: unknown scale \"%s\" used with %s option" msgstr # # "xv_parse.c": line number: 584 msgid "%s: can't have negative argument %s after %s" msgstr # # "xv_usage.c": line number: 35 msgid "usage of %s generic window arguments:\nFLAG\t(LONG FLAG)\t\tARGS\t\tNOTES\n-Ww\t(-width)\t\tcolumns\n-Wh\t(-height)\t\tlines\n-Ws\t(-size)\t\t\tx y\n-Wp\t(-position)\t\tx y\n\t(-geometry)\t\"[WxH][{+|-}X{+|-}Y]\"\t(X geometry)\n" msgstr # # "xv_usage.c": line number: 46 msgid "-WP\t(-icon_position)\tx y\n-Wl\t(-label)\t\t\"string\"\n\t(-title)\t\t\"string\"\t(Same as -label)\n-Wi\t(-iconic)\t\t(Application will come up closed)\n+Wi\t(+iconic)\t\t(Application will come up open)\n-Wt\t(-font)\t\t\tfontname\n-fn\t\t\t\tfontname\t\n-Wx\t(-scale)\t\tsmall | medium | large | extra_large\n" msgstr # # "xv_usage.c": line number: 54 msgid "-Wf\t(-foreground_color)\tred green blue\t0-255 (no color-full color)\n-fg\t(-foreground)\t\tcolorname\t(X Color specification)\n-Wb\t(-background_color)\tred green blue\t0-255 (no color-full color)\n-bg\t(-background)\t\tcolorname\t(X Color specification)\n-rv\t(-reverse)\t\t(Foreground and background colors will be reversed)\n+rv\t(+reverse)\t\t(Foreground and background colors will not be reversed)\n" msgstr # # "xv_usage.c": line number: 65 msgid "-WI\t(-icon_image)\t\tfilename\n-WL\t(-icon_label)\t\t\"string\"\n-WT\t(-icon_font)\t\tfilename\n-Wr\t(-display)\t\t\"server_name:screen\"\n-visual\t\t\t\tStaticGray | GrayScale | StaticColor |\n\t\t\t\tPseudoColor | TrueColor | DirectColor\n-depth\t\t\t\tdepth\n-Wdr\t(-disable_retained)\t\n-Wdxio\t(-disable_xio_error_handler)\t\n" msgstr # # "xv_usage.c": line number: 71 msgid "-Wfsdb\t(-fullscreendebug)\t\n-Wfsdbs\t(-fullscreendebugserver)\t\n-Wfsdbp\t(-fullscreendebugptr)\t\n-Wfsdbk\t(-fullscreendebugkbd)\t\n" msgstr # # "xv_usage.c": line number: 78 msgid "-WS\t(-defeateventsecurity)\t\n-sync\t(-synchronous)\t\t\t\t(Force a synchronous connection)\n+sync\t(+synchronous)\t\t\t\t(Make an asynchronous connection)\n-Wd\t(-default)\t\tresource value\t(Set the X resource to value)\n-xrm\t\t\t\tresource:value\t(Set the X resource to value)\n" msgstr # # "xv_usage.c": line number: 87 msgid "-name\t\t\t\tstring\t(Set the application instance name to string)\n-lc_basiclocale\t\t\tlocale\t(Set the basic locale of application to locale)\n-lc_displaylang\t\t\tlocale\t(Set the display language of application to locale)\n-lc_inputlang\t\t\tlocale\t(Set the input language of application to locale)\n-lc_numeric\t\t\tlocale\t(Set the numeric format of application to locale)\n-lc_timeformat\t\t\tlocale\t(Set the time format of application to locale)\n-WH\t(-help)\t\n" msgstr # # "cnvs_cb.c": line number: 313 msgid "Pre-Edit Display" msgstr # # "cnvs_cb.c": line number: 432 msgid "You are in conversion mode.\nSo the Pre-Edit Display window cannot be dismissed." msgstr # # "cnvs_cb.c": line number: 433 msgid "Continue" msgstr # # "cms.c": line number: 372 msgid "Unable to find RGB values for a named color" msgstr # # "cms_pblc.c": line number: 116 msgid "Can not allocate a read/write cms from a static visual" msgstr # # "cms_pblc.c": line number: 188 msgid "CMS_TYPE is a create-only attribute" msgstr # # "cms_pblc.c": line number: 263 msgid "Unable to allocate control colors for colormap segment" msgstr # # "curs_pri.c": line number: 49 msgid "cannot create cursor with null image" msgstr # # "curs_pri.c": line number: 61 msgid "cursor_make_x(): bad xhot/yhot parameters" msgstr # # "curs_pri.c": line number: 218 msgid "Unable to find OPEN LOOK cursor font" msgstr # # "cursor.c": line number: 434 msgid "cursor: can't create cursor" msgstr # # "cursor.c": line number: 452 msgid "Window and cursor have different roots! Can't set cursor" msgstr # # "defaults.c": line number: 137 msgid "\"%s\" is an unrecognized boolean value (Defaults package)" msgstr # # "defaults.c": line number: 168 msgid "\"%s\" is not a character constant (Defaults package)" msgstr # # "defaults.c": line number: 240 msgid "\"%s\" is not an integer (Defaults package)" msgstr # # "defaults.c": line number: 276 msgid "The value of name \"%s\" (class \"%s\") is %d,\nwhich is not between %d and %d. (Defaults package)" msgstr # # "defaults.c": line number: 412 msgid "Unable to load server Resource Manager property -\nno server defined (Defaults package)" msgstr # # "defaults.c": line number: 444 msgid "Unable to update server Resource Manager property -\nno server defined (Defaults package)" msgstr # # "defaults.c": line number: 471 msgid "Unable to update server Resource Manager property (Defaults package)" msgstr # # "filter.c": line number: 70 msgid "while parsing filter file %s" msgstr # # "filter.c": line number: 105 msgid "filter file %s: missing command-line" msgstr # # "filter.c": line number: 157 msgid "problem parsing filter file %s" msgstr # # "filter.c": line number: 169 msgid "problem on line number %d" msgstr # # "filter.c": line number: 173 msgid "problem near character position %d" msgstr # # "filter.c": line number: 187 msgid "while parsing filter file %s" msgstr # # "font.c": line number: 1143 msgid "Cannot load font '%s'" msgstr # # "font.c": line number: 2849 msgid "Initialization of font families failed. Possible recursive family definition" msgstr # # "font.c": line number: 3271 msgid "Font style %s is not known, using default style instead" msgstr # # "font.c": line number: 3597 msgid "Attempt to rescale from font failed" msgstr # # "font.c": line number: 3620 msgid "Font style %s is not known, using default style instead" msgstr # # "font.c": line number: 3637 msgid "Cannot load font '%s'" msgstr # # "font.c": line number: 3650 msgid "Failed to construct font name" msgstr # # "fm_cmdline.c": line number: 414 msgid "Unknown color: \"%.30s\"" msgstr # # "fm_destroy.c": line number: 142 msgid "Are you sure you want to Quit?" msgstr # # "fm_destroy.c": line number: 145 msgid "Confirm" msgstr # # "fm_destroy.c": line number: 147 msgid "Cancel" msgstr # # "fm_destroy.c": line number: 162 msgid "Are you sure you want to Quit?" msgstr # # "fm_destroy.c": line number: 164 msgid "Confirm" msgstr # # "fm_destroy.c": line number: 165 msgid "Cancel" msgstr # # "fm_destroy.c": line number: 175 msgid "Notice failed on attempt to destroy frame." msgstr # # "fm_layout.c": line number: 324 msgid "frame_layout(internal error): frame layout option (%d) not recognized." msgstr # # "fm_set.c": line number: 181 msgid "Attempt to make frame deaf failed" msgstr # # "fm_set.c": line number: 192 msgid "Attempt to make frame undeaf failed" msgstr # # "fm_win.c": line number: 91 msgid "frame_is_exposed(): XQueryTree failed!" msgstr # # "fm_win.c": line number: 107 msgid "frame_is_exposed(): window not in tree" msgstr # # "fs.c": line number: 161 msgid "Already in fullscreen mode!" msgstr # # "fs.c": line number: 294 msgid "Already in fullscreen by another client. Fullscreen Failed." msgstr # # "fs.c": line number: 297 msgid "Invalid time. Fullscreen failed." msgstr # # "fs.c": line number: 300 msgid "Fullscreen window or confine-to window not mapped. Fullscreen failed." msgstr # # "fs.c": line number: 303 msgid "Already frozen by another client. Fullscreen Failed." msgstr # # "fs_set.c": line number: 276 msgid "Attempt to allow synchronous event processing without first being in synchronous mode. Attribute ignored!" msgstr # # "help.c": line number: 124 msgid "%s for %s." msgstr # # "help.c": line number: 126 msgid "%s." msgstr # # "help.c": line number: 151 msgid "OK" msgstr # # "help.c": line number: 166 msgid "OK" msgstr # # "help.c": line number: 304 msgid "No help is available" msgstr # # "help.c": line number: 314 msgid "More help is not available" msgstr # # "help.c": line number: 351 msgid ": Help" msgstr # # "help.c": line number: 363 msgid "No frame associated with this window" msgstr # # "help.c": line number: 427 msgid "More" msgstr # # "help.c": line number: 534 msgid "No Primary Selection" msgstr # # "help.c": line number: 541 msgid "No Primary Selection" msgstr # # "help.c": line number: 558 msgid "No Help String Filename specified for window" msgstr # # "help.c": line number: 567 msgid "Help String File not found" msgstr # # "help.c": line number: 579 msgid "\" not found in Help String File" msgstr # # "icon.c": line number: 352 msgid "xv_rop: xv_rop_internal failed" msgstr # # "icon_load.c": line number: 51 msgid "Cannot open file %s.\n" msgstr # # "icon_load.c": line number: 125 msgid "icon file %s parse failure\n" msgstr # # "icon_load.c": line number: 132 msgid "%s has invalid header format.\n" msgstr # # "icon_load.c": line number: 145 msgid "Cannot handle Depth of %d.\n" msgstr # # "icon_load.c": line number: 151 msgid "Cannot handle Valid_bits_per_item of %d.\n" msgstr # # "icon_load.c": line number: 157 msgid "Cannot handle Width of %d.\n" msgstr # # "icon_load.c": line number: 202 msgid "icon file header valid bits not 16 or 32" msgstr # # "icon_load.c": line number: 228 msgid "Cannot create memory pixrect %dx%dx%d.\n" msgstr # # "icon_load.c": line number: 260 msgid "Cannot create memory pixrect %dx%dx%d.\n" msgstr # # "icon_obj.c": line number: 87 msgid "Can't allocate icon structure" msgstr # # "icon_obj.c": line number: 464 msgid "icon: color name \"%s\" not in database" msgstr # # "icon_obj.c": line number: 473 msgid "icon: all color cells are allocated" msgstr # # "input.c": line number: 33 msgid "input stream not of type input" msgstr # # "input.c": line number: 41 msgid "input stream not of type input" msgstr # # "input.c": line number: 61 msgid "input stream not of type input" msgstr # # "input.c": line number: 92 msgid "input stream not of type input" msgstr # # "input.c": line number: 258 msgid "input stream not of type input" msgstr # # "io.c": line number: 40 msgid "invalid stream type" msgstr # # "io.c": line number: 66 msgid "invalid stream type" msgstr # # "output.c": line number: 37 msgid "output stream not of type output" msgstr # # "output.c": line number: 65 msgid "output stream not of type output" msgstr # # "output.c": line number: 84 msgid "output stream not of type output" msgstr # # "om_public.c": line number: 151 msgid "menu_show: no menu specified" msgstr # # "om_public.c": line number: 163 msgid "menu_show: menu not owned by this server" msgstr # # "om_public.c": line number: 222 msgid "menu_show: unable to grab pointer" msgstr # # "om_public.c": line number: 236 msgid "menu_show: unable to grab keyboard" msgstr # # "om_public.c": line number: 257 msgid "menu_show: unable to allocate group_info" msgstr # # "om_public.c": line number: 400 msgid "menu_create: unable to allocate menu structure" msgstr # # "om_public.c": line number: 409 msgid "menu_create: unable to allocate menu structure" msgstr # # "om_public.c": line number: 450 msgid "menu_create: unable to allocate an item list" msgstr # # "om_public.c": line number: 470 msgid "Unknown menu type" msgstr # # "om_public.c": line number: 518 msgid "Menu_create_item: unable to allocate menu_item" msgstr # # "om_public.c": line number: 845 msgid "menu_find: menu's gen_proc failed to generate a menu" msgstr # # "om_public.c": line number: 863 msgid "menu_find: menu item's gen_proc failed to generate a menu item" msgstr # # "om_public.c": line number: 1268 msgid "menu item does not have a string or image" msgstr # # "om_render.c": line number: 194 msgid "menu_render: menu's gen_proc failed to generate a menu" msgstr # # "om_render.c": line number: 236 msgid "menu_create: unable to allocate menu window" msgstr # # "om_render.c": line number: 297 msgid "menu_create: unable to allocate shadow window" msgstr # # "om_render.c": line number: 1438 msgid "Menu too large for screen" msgstr # # "om_render.c": line number: 1582 msgid "Pullright Generate Procedure failed to generate a pullright menu" msgstr # # "om_render.c": line number: 2217 msgid "menu_create: unable to create shadow Graphics Context" msgstr # # "om_set.c": line number: 429 msgid "Invalid argument for attribute MENU_LINE_AFTER_ITEM: %d" msgstr # # "om_set.c": line number: 442 msgid "MENU_CLASS attribute is get-only" msgstr # # "om_set.c": line number: 1072 msgid "Invalid argument for attribute MENU_LINE_AFTER_ITEM: %d" msgstr # # "om_set.c": line number: 1204 msgid "menu_set: Malloc failed to allocate an item list" msgstr # # "omi.c": line number: 87 msgid "Menu item does not have a string or image" msgstr # # "expandname.c": line number: 87 msgid "pipe" msgstr # # "expandname.c": line number: 105 msgid "fork" msgstr # # "expandname.c": line number: 114 msgid "read" msgstr # # "expandname.c": line number: 131 msgid "\"Echo\" failed" msgstr # # "expandname.c": line number: 142 msgid "Buffer overflow (> %d) expanding \"%s\"" msgstr # # "expandname.c": line number: 191 msgid "in xv_expand_name" msgstr # # "expandname.c": line number: 213 msgid "in xv_expand_name" msgstr # # "expandname.c": line number: 250 msgid "in xv_expand_name" msgstr # # "getlogindr.c": line number: 42 msgid "xv_getlogindir: couldn't find user in password file" msgstr # # "getlogindr.c": line number: 49 msgid "xv_getlogindir: no home directory in password file" msgstr # # "xv_deaf.c": line number: 79 msgid "xv_deaf:attempt to make windows deaf/hear failed" msgstr # # "xv_win_lp.c": line number: 34 msgid "xv_window_loop() : NULL frame passed." msgstr # # "xv_win_lp.c": line number: 49 msgid "xv_window_loop : Attempt to unblock input to windows failed" msgstr # # "xv_win_lp.c": line number: 63 msgid "xv_window_loop : Attempt to block input to windows failed" msgstr # # "xv_win_lp.c": line number: 86 msgid "xv_window_loop() : Cannot get handle to display" msgstr # # "xv_win_lp.c": line number: 166 msgid "xv_window_loop : Attempt to unblock input to windows failed" msgstr # # "xv_win_lp.c": line number: 186 msgid "xv_window_loop : Attempt to block input to windows failed" msgstr # # "notice.c": line number: 89 msgid "NULL parent window passed to NOTICE. Not allowed." msgstr # # "notice.c": line number: 105 msgid "Malloc failed." msgstr # # "notice.c": line number: 259 msgid "calloc failed in notice_create_button_struct()." msgstr # # "notice.c": line number: 281 msgid "calloc failed in notice_create_msg_struct()." msgstr # # "notice_ol.c": line number: 1117 msgid "Unable to find \"fixed\" font." msgstr # # "notice_pt.c": line number: 101 msgid "NULL parent window passed to notice_prompt(). Not allowed." msgstr # # "notice_pt.c": line number: 112 msgid "Malloc failed." msgstr # # "notice_set.c": line number: 285 msgid "Only one NOTICE_BUTTON_YES attr allowed. Attr ignored." msgstr # # "notice_set.c": line number: 340 msgid "Only one NOTICE_BUTTON_NO attr allowed. Attr ignored." msgstr # # "ndet_auto.c": line number: 104 msgid "2ndary select EBADF" msgstr # # "ndet_auto.c": line number: 107 msgid "2ndary select error" msgstr # # "ndet_auto.c": line number: 174 msgid "Nclient unprepared to handle signal" msgstr # # "ndet_auto.c": line number: 226 msgid "Error when enq condition" msgstr # # "ndet_loop.c": line number: 958 msgid "Error when enq condition" msgstr # # "ndetitimer.c": line number: 202 msgid "Error when enq condition" msgstr # # "ndisdispch.c": line number: 317 msgid "Unexpected dispatcher cond" msgstr # # "ntfy_debug.c": line number: 78 msgid "Notifier fatal error: " msgstr # # "ntfy_debug.c": line number: 79 msgid "Notifier fatal error: " msgstr # # "ntfy_list.c": line number: 60 msgid "Tried to remove node that wasn't on list" msgstr # # "ntfyperror.c": line number: 31 msgid "Success" msgstr # # "ntfyperror.c": line number: 34 msgid "Unknown client" msgstr # # "ntfyperror.c": line number: 37 msgid "No condition for client" msgstr # # "ntfyperror.c": line number: 40 msgid "Unknown interval timer type" msgstr # # "ntfyperror.c": line number: 43 msgid "Bad signal number" msgstr # # "ntfyperror.c": line number: 46 msgid "Notifier not started" msgstr # # "ntfyperror.c": line number: 49 msgid "Destroy vetoed" msgstr # # "ntfyperror.c": line number: 52 msgid "Notifier internal error" msgstr # # "ntfyperror.c": line number: 55 msgid "No such process" msgstr # # "ntfyperror.c": line number: 58 msgid "Bad file number" msgstr # # "ntfyperror.c": line number: 61 msgid "Not enough memory" msgstr # # "ntfyperror.c": line number: 64 msgid "Invalid argument" msgstr # # "ntfyperror.c": line number: 67 msgid "Too many interposition functions" msgstr # # "ntfyperror.c": line number: 70 msgid "Unknown notifier error" msgstr # # "openwin.c": line number: 76 msgid "can't allocate openwin structure. Abort\n" msgstr # # "p_btn.c": line number: 575 msgid "begin_preview: menu's gen_proc failed to generate a menu" msgstr # # "p_drop.c": line number: 177 msgid "Invalid Server Image specified" msgstr # # "p_drop.c": line number: 200 msgid "Invalid Server Image specified" msgstr # # "p_list.c": line number: 541 msgid "PANEL_LIST insertions are currently disabled" msgstr # # "p_list.c": line number: 556 msgid "PANEL_LIST insertions are currently disabled" msgstr # # "p_list.c": line number: 717 msgid "PANEL_LIST deletions are currently disabled" msgstr # # "p_list.c": line number: 735 msgid "PANEL_LIST deletions are currently disabled" msgstr # # "p_list.c": line number: 788 msgid "PANEL_LIST deletions are currently disabled" msgstr # # "p_list.c": line number: 990 msgid "Scrolling List" msgstr # # "p_list.c": line number: 993 msgid "Locate Choice" msgstr # # "p_list.c": line number: 994 msgid "Locate Next Choice" msgstr # # "p_list.c": line number: 1003 msgid "Clear All Choices" msgstr # # "p_list.c": line number: 1012 msgid "Edit List" msgstr # # "p_list.c": line number: 1022 msgid "Change" msgstr # # "p_list.c": line number: 1026 msgid "Insert" msgstr # # "p_list.c": line number: 1032 msgid "Before" msgstr # # "p_list.c": line number: 1039 msgid "After" msgstr # # "p_list.c": line number: 1047 msgid "Delete" msgstr # # "p_list.c": line number: 1056 msgid "End Editing" msgstr # # "p_list.c": line number: 2459 msgid "Change" msgstr # # "p_list.c": line number: 2463 msgid "Delete" msgstr # # "p_list.c": line number: 2467 msgid "Insert" msgstr # # "p_list.c": line number: 3454 msgid "Font height exceeds row height; font ignored" msgstr # # "p_list.c": line number: 3475 msgid "Panel List glyph height exceeds row height; glyph ignored" msgstr # # "p_set.c": line number: 437 msgid "Unable to find bold font; using standard font" msgstr # # "p_set.c": line number: 451 msgid "Unable to find OPEN LOOK glyph font" msgstr # # "p_txt.c": line number: 918 msgid "Drag and Drop failed:" msgstr # # "p_txt.c": line number: 919 msgid "Unable to decode Drag and Drop message" msgstr # # "p_txt.c": line number: 1299 msgid "Selection timed out" msgstr # # "p_txt.c": line number: 1303 msgid "Illegal drop target" msgstr # # "p_txt.c": line number: 1307 msgid "Unable to acquire selection" msgstr # # "p_txt.c": line number: 1310 msgid "Root window is not a valid drop target" msgstr # # "p_txt.c": line number: 1314 msgid "unexpected internal error" msgstr # # "p_txt.c": line number: 1321 msgid "Drag and Drop failed:" msgstr # # "p_txt.c": line number: 3809 msgid "Unable to get contents of %s selection" msgstr # # "p_txt.c": line number: 3820 msgid "Drag and Drop failed:" msgstr # # "p_txt.c": line number: 3821 msgid "Unable to get contents of selection" msgstr # # "p_utl.c": line number: 207 msgid "Invalid Server Image specified" msgstr # # "mem_ops.c": line number: 48 msgid "Unsupported pixrect operation attempted" msgstr # # "pw_line.c": line number: 89 msgid "line texture pattern element %d is greater than 255! Shorten to 255\n" msgstr # # "pw_read.c": line number: 45 msgid "xv_read: attempting to read into an invalid object" msgstr # # "pw_read.c": line number: 68 msgid "xv_read_internal(): image depth > pixrect depth" msgstr # # "pw_traprop.c": line number: 31 msgid "pw_traprop: not implemented" msgstr # # "xv_rop.c": line number: 191 msgid "xv_rop: can't handle drawables of different depth" msgstr # # "xv_rop.c": line number: 205 msgid "xv_rop: Windows of different depth, can't rop" msgstr # # "xv_rop.c": line number: 546 msgid "xv_rop: xv_rop_internal failed" msgstr # # "xv_rop.c": line number: 650 msgid "xv_replrop: xv_replrop_internal failed" msgstr # # "xv_rop.c": line number: 762 msgid "Unsupported frame buffer depth: %d\n" msgstr # # "xv_rop.c": line number: 769 msgid "Server probabaly run out of memory in XCreateGC\n" msgstr # # "xv_stencil.c": line number: 66 msgid "xv_stencil: stencil has to be of depth 1" msgstr # # "xv_stencil.c": line number: 144 msgid "xv_stencil: xv_stencil_internal failed" msgstr # # "rect.c": line number: 166 msgid "Bad sortorder arg in mostRect" msgstr # # "rectlist.c": line number: 359 msgid "Malformed rl in rl_free" msgstr # # "rectlist.c": line number: 416 msgid "%s: Bounding " msgstr # # "rectlist.c": line number: 424 msgid "using these offsets: x=%d, y=%d \n" msgstr # # "screen.c": line number: 212 msgid "Unknown visual class \"%s\", using default visual\n" msgstr # # "screen.c": line number: 334 msgid "Unable to return window to screen cache" msgstr # # "scrn_get.c": line number: 329 msgid "Unable to find bold font; using standard font" msgstr # # "sb.c": line number: 166 msgid "Scrollbar" msgstr # # "sb.c": line number: 169 msgid "Here to top" msgstr # # "sb.c": line number: 170 msgid "Here to left" msgstr # # "sb.c": line number: 177 msgid "Top to here" msgstr # # "sb.c": line number: 178 msgid "Left to here" msgstr # # "sb.c": line number: 184 msgid "Previous" msgstr # # "sb.c": line number: 192 msgid "Split View" msgstr # # "sb.c": line number: 199 msgid "Join Views" msgstr # # "sb_set.c": line number: 206 msgid "Cannot split a scrollbar created with scrollbar_create()" msgstr # # "sel_agent.c": line number: 127 msgid "Selection library internal error:\n%s\n" msgstr # # "sel_agent.c": line number: 127 msgid "Selection service: unable to create service client" msgstr # # "sel_agent.c": line number: 139 msgid "Selection library internal error:\n%s\n" msgstr # # "sel_agent.c": line number: 139 msgid "Could not create window" msgstr # # "sel_agent.c": line number: 154 msgid "Selection library internal error:\n%s\n" msgstr # # "sel_agent.c": line number: 154 msgid "No CLIPBOARD atom" msgstr # # "sel_agent.c": line number: 159 msgid "Selection library internal error:\n%s\n" msgstr # # "sel_agent.c": line number: 159 msgid "No _SUN_SELN_CARET atom" msgstr # # "sel_agent.c": line number: 335 msgid "Agent couldn't reply about a file" msgstr # # "sel_agent.c": line number: 340 msgid "Agent couldn't reset to start of file" msgstr # # "sel_agent.c": line number: 815 msgid "Selection library internal error:\n%s\n" msgstr # # "sel_agent.c": line number: 815 msgid "UNKNOWN selection cannot be acquired" msgstr # # "sel_agent.c": line number: 844 msgid "Selection library internal error:\n%s\n" msgstr # # "sel_agent.c": line number: 844 msgid "The selection is not implemented" msgstr # # "sel_agent.c": line number: 1331 msgid "Selection library internal error:\n%s\n" msgstr # # "sel_agent.c": line number: 1331 msgid "Error while trying XGetWindowProperty" msgstr # # "sel_agent.c": line number: 1359 msgid "Selection library internal error:\n%s\n" msgstr # # "sel_agent.c": line number: 1359 msgid "This process does not hold the selection" msgstr # # "sel_agent.c": line number: 1459 msgid "Selection library internal error:\n%s\n" msgstr # # "sel_agent.c": line number: 1459 msgid "Garbage returned" msgstr # # "sel_agent.c": line number: 1592 msgid "Selection library internal error:\n%s\n" msgstr # # "sel_agent.c": line number: 1592 msgid "cannot specify propertyfield to be None in XConvertSelection" msgstr # # "sel_agent.c": line number: 1661 msgid "Selection library internal error:\n%s\n" msgstr # # "sel_agent.c": line number: 1661 msgid "Selection Timed out" msgstr # # "sel_agent.c": line number: 1704 msgid "Selection library internal error:\n%s\n" msgstr # # "sel_agent.c": line number: 1704 msgid "Select call returned error" msgstr # # "sel_agent.c": line number: 1705 msgid "Select" msgstr # # "sel_agent.c": line number: 1879 msgid "Selection library internal error:\n%s\n" msgstr # # "sel_agent.c": line number: 1879 msgid "Couldn't find property atom" msgstr # # "sel_agent.c": line number: 1907 msgid "Couldn't get selection atom, selections may not work. (Selection package)" msgstr # # "sel_appl.c": line number: 63 msgid "Couldn't malloc request buffer (no swap space?)\n" msgstr # # "sel_appl.c": line number: 187 msgid "Couldn't malloc request buffer (no swap space?)\n" msgstr # # "sel_clnt.c": line number: 118 msgid "Selection library internal error:\n%s\n" msgstr # # "sel_clnt.c": line number: 118 msgid "Selection library asked to destroy a 0 client." msgstr # # "sel_clnt.c": line number: 157 msgid "Selection library internal error:\n%s\n" msgstr # # "sel_clnt.c": line number: 157 msgid "Acquire for a null client" msgstr # # "sel_clnt.c": line number: 184 msgid "Selection library internal error:\n%s\n" msgstr # # "sel_clnt.c": line number: 184 msgid "Service wouldn't let us acquire selection" msgstr # # "sel_clnt.c": line number: 186 msgid "requested selection: %d; result: %d\n" msgstr # # "sel_clnt.c": line number: 211 msgid "Selection library internal error:\n%s\n" msgstr # # "sel_clnt.c": line number: 211 msgid "Done for a null client" msgstr # # "sel_clnt.c": line number: 424 msgid "Selection library internal error:\n%s\n" msgstr # # "sel_clnt.c": line number: 424 msgid "Error, Non local request " msgstr # # "sel_clnt.c": line number: 532 msgid "Selection library internal error:\n%s\n" msgstr # # "sel_clnt.c": line number: 532 msgid "Other holder confused about selection ranks" msgstr # # "sel_clnt.c": line number: 688 msgid "Selection library internal error:\n%s\n" msgstr # # "sel_clnt.c": line number: 688 msgid "Selection service can't hold file" msgstr # # "sel_clnt.c": line number: 690 msgid "selection # %d\n" msgstr # # "sel_clnt.c": line number: 696 msgid "Selection service couldn't open selection file" msgstr # # "sel_clnt.c": line number: 698 msgid "filename: \"%s\"\n" msgstr # # "sel_policy.c": line number: 58 msgid "Selection library internal error:\n%s\n" msgstr # # "sel_policy.c": line number: 58 msgid "figure_response got a malformed buffer." msgstr # # "sel_policy.c": line number: 134 msgid "Selection library internal error:\n%s\n" msgstr # # "sel_policy.c": line number: 134 msgid "figure_response got a malformed buffer." msgstr # # "seln.c": line number: 47 msgid "%s would not open\n" msgstr # # "seln.c": line number: 81 msgid "%s would not open\n" msgstr # # "seln.c": line number: 98 msgid "%s not in correct format\n" msgstr # # "seln.c": line number: 120 msgid "%s would not open\n" msgstr # # "server.c": line number: 482 msgid "Error when setting locale category LC_ALL" msgstr # # "server.c": line number: 491 msgid "Error when setting locale category LC_CTYPE" msgstr # # "server.c": line number: 500 msgid "Error when setting locale category LC_MESSAGES" msgstr # # "server.c": line number: 509 msgid "Error when setting locale category LC_NUMERIC" msgstr # # "server.c": line number: 518 msgid "Error when setting locale category LC_TIME" msgstr # # "server.c": line number: 1103 msgid "Can't create SERVER_JOURNAL_ATOM atom" msgstr # # "server.c": line number: 1342 msgid "Only support Shift, Ctrl and Meta as mouse button modifiers" msgstr # # "svr_x.c": line number: 268 msgid "Problems setting default modifier mapping" msgstr # # "svrim_ops.c": line number: 46 msgid "server_image_rop(): src is not a server image" msgstr # # "svrim_ops.c": line number: 85 msgid "server_image_rop(): dest is not a memory pixrect or a server_image" msgstr # # "svrim_ops.c": line number: 108 msgid "server_image_stencil(): stencil is not a memory pr or a server image" msgstr # # "svrim_ops.c": line number: 129 msgid "server_image_stencil(): Can't create mpr in server_image_stencil" msgstr # # "svrim_ops.c": line number: 144 msgid "server_image_stencil(): Can't create mpr in server_image_stencil" msgstr # # "svrim_ops.c": line number: 175 msgid "server_image_stencil(): dest is mpr, src isn't image pr" msgstr # # "svrim_ops.c": line number: 203 msgid "server_image_stencil(): dest is not mpr or server_image_pr" msgstr # # "svrim_ops.c": line number: 238 msgid "server_image_replrop(): Unable to create server image" msgstr # # "svrim_ops.c": line number: 255 msgid "server_image_replrop(): dest is mpr, src isn't image pr" msgstr # # "svrim_ops.c": line number: 285 msgid "server_image_replrop(): dest is image pr, src isn't image pr or mpr" msgstr # # "svrim_ops.c": line number: 295 msgid "server_image_replrop(): dest is not mpr or server_image_pr" msgstr # # "svrim_ops.c": line number: 342 msgid "server_image_region: Unsupported operation" msgstr # # "svrim_ops.c": line number: 356 msgid "Server images do not have associated colormaps" msgstr # # "svrim_pblc.c": line number: 72 msgid "Server image alloc failed" msgstr # # "svrim_pblc.c": line number: 136 msgid "SERVER_IMAGE_BITMAP_FILE: Server image creation failed" msgstr # # "svrim_pblc.c": line number: 227 msgid "SERVER_IMAGE_PIXMAP: Unable to get geometry" msgstr # # "svrim_pblc.c": line number: 281 msgid "Colormap segment %s not found" msgstr # # "svrim_pblc.c": line number: 326 msgid "Server Image creation failed" msgstr # # "es_file.c": line number: 209 msgid "cannot read file '%s'" msgstr # # "es_file.c": line number: 210 msgid "'%s' does not exist" msgstr # # "es_file.c": line number: 211 msgid "not permitted to access '%s'" msgstr # # "es_file.c": line number: 212 msgid "'%s' is not a file of ASCII text" msgstr # # "es_file.c": line number: 213 msgid "too many symbolic links from '%s'" msgstr # # "es_file.c": line number: 214 msgid "out of space for file '%s'" msgstr # # "es_file.c": line number: 221 msgid "INTERNAL error for file '%s', status is %ld" msgstr # # "es_file.c": line number: 245 msgid "alloc failure" msgstr # # "es_file.c": line number: 251 msgid "file '%s': %s" msgstr # # "es_file.c": line number: 257 msgid "invalid es_handle" msgstr # # "es_file.c": line number: 260 msgid "seek failed" msgstr # # "ev_update.c": line number: 399 msgid "in ev_display_line()" msgstr # # "ps_impl.c": line number: 144 msgid "ps_create(): cannot reset scratch stream" msgstr # # "ps_impl.c": line number: 178 msgid "ps_create(): alloc failure" msgstr # # "ps_impl.c": line number: 712 msgid "Text has been lost in a cmdtool transcript because the maximum edit log size has been exceeded.\n" msgstr # # "txt_e_menu.c": line number: 286 msgid "extras menu file " msgstr # # "txt_e_menu.c": line number: 288 msgid "extras menu file " msgstr # # "txt_e_menu.c": line number: 301 msgid "textsw: max number of menu files is %ld" msgstr # # "txt_e_menu.c": line number: 385 msgid "textsw: format error in %s: line %d" msgstr # # "txt_e_menu.c": line number: 402 msgid "textsw: icon file format error: " msgstr # # "txt_e_menu.c": line number: 404 msgid "textsw: icon file format error: " msgstr # # "txt_e_menu.c": line number: 597 msgid "textsw: menu strings" msgstr # # "txt_e_menu.c": line number: 615 msgid "textsw: menu strings" msgstr # # "txt_edit.c": line number: 107 msgid "Continue" msgstr # # "txt_edit.c": line number: 110 msgid "Action failed -" msgstr # # "txt_edit.c": line number: 118 msgid "The memory buffer is full.\nIf this is an isolated case, you can circumvent\nthis condition by undoing the operation you just\nperformed, storing the contents of the subwindow\nto a file using the text menu, and then redoing\nthe operation. Or, you can enlarge the size of\nthis buffer by changing the appropriate value in\nthe .Xdefaults file (Text.MaxDocumentSize)." msgstr # # "txt_edit.c": line number: 133 msgid "Continue" msgstr # # "txt_edit.c": line number: 136 msgid "Action failed -" msgstr # # "txt_edit.c": line number: 144 msgid "The memory buffer is full.\nIf this is an isolated case, you can circumvent\nthis condition by undoing the operation you just\nperformed, storing the contents of the subwindow\nto a file using the text menu, and then redoing\nthe operation. Or, you can enlarge the size of\nthis buffer by changing the appropriate value in\nthe .Xdefaults file (Text.MaxDocumentSize)." msgstr # # "txt_edit.c": line number: 164 msgid "Continue" msgstr # # "txt_edit.c": line number: 167 msgid "Action failed -" msgstr # # "txt_edit.c": line number: 169 msgid "A problem with the file system has been detected.\nFile system is probably full." msgstr # # "txt_edit.c": line number: 183 msgid "Continue" msgstr # # "txt_edit.c": line number: 186 msgid "Action failed -" msgstr # # "txt_edit.c": line number: 188 msgid "A problem with the file system has been detected.\nFile system is probably full." msgstr # # "txt_edit.c": line number: 246 msgid "Deletion failed - " msgstr # # "txt_edit.c": line number: 443 msgid "Insertion failed - " msgstr # # "txt_event.c": line number: 441 msgid "textsw adding timer" msgstr # # "txt_event.c": line number: 456 msgid "textsw removing timer" msgstr # # "txt_file.c": line number: 375 msgid "Cannot create piece stream." msgstr # # "txt_file.c": line number: 382 msgid "Cannot load; " msgstr # # "txt_file.c": line number: 388 msgid "file" msgstr # # "txt_file.c": line number: 408 msgid "INTERNAL ERROR: Cannot create piece stream." msgstr # # "txt_file.c": line number: 415 msgid "Unable to load file:" msgstr # # "txt_file.c": line number: 480 msgid "Continue" msgstr # # "txt_file.c": line number: 495 msgid "Continue" msgstr # # "txt_file.c": line number: 575 msgid "removing checkpoint file:" msgstr # # "txt_file.c": line number: 613 msgid "Unable to Save Current File. " msgstr # # "txt_file.c": line number: 614 msgid "Cannot back-up file:" msgstr # # "txt_file.c": line number: 620 msgid "Unable to Save Current File. " msgstr # # "txt_file.c": line number: 621 msgid "No space for back-up file:" msgstr # # "txt_file.c": line number: 627 msgid "Unable to Save Current File. " msgstr # # "txt_file.c": line number: 628 msgid "Cannot re-write file:" msgstr # # "txt_file.c": line number: 634 msgid "Unable to Save Current File. " msgstr # # "txt_file.c": line number: 635 msgid "INTERNAL ERROR: Forgot the name of the file." msgstr # # "txt_file.c": line number: 645 msgid "Unable to Save Current File. " msgstr # # "txt_file.c": line number: 646 msgid "An INTERNAL ERROR has occurred." msgstr # # "txt_file.c": line number: 664 msgid "Continue" msgstr # # "txt_file.c": line number: 681 msgid "Continue" msgstr # # "txt_file.c": line number: 719 msgid "es_ps_original" msgstr # # "txt_file.c": line number: 750 msgid "Unable to Save Current File.\nWas the file edited with another editor?." msgstr # # "txt_file.c": line number: 752 msgid "Continue" msgstr # # "txt_file.c": line number: 767 msgid "Unable to Save Current File.\nWas the file edited with another editor?." msgstr # # "txt_file.c": line number: 769 msgid "Continue" msgstr # # "txt_file.c": line number: 778 msgid "ps_replace_original" msgstr # # "txt_file.c": line number: 804 msgid "es_file_create" msgstr # # "txt_file.c": line number: 807 msgid "textsw_save_store_common" msgstr # # "txt_file.c": line number: 812 msgid " %s; status = 0x%x" msgstr # # "txt_file.c": line number: 899 msgid "Insertion failed - " msgstr # # "txt_file.c": line number: 1029 msgid "Unable to Include File. An INTERNAL ERROR has occurred.: " msgstr # # "txt_file.c": line number: 1031 msgid "Unable to Include File." msgstr # # "txt_file.c": line number: 1032 msgid "An INTERNAL ERROR has occurred." msgstr # # "txt_file.c": line number: 1050 msgid "Continue" msgstr # # "txt_file.c": line number: 1067 msgid "Continue" msgstr # # "txt_file.c": line number: 1128 msgid "Unable to Include File. An INTERNAL ERROR has occurred.: " msgstr # # "txt_file.c": line number: 1130 msgid "Unable to Include File." msgstr # # "txt_file.c": line number: 1131 msgid "An INTERNAL ERROR has occurred." msgstr # # "txt_file.c": line number: 1149 msgid "Continue" msgstr # # "txt_file.c": line number: 1166 msgid "Continue" msgstr # # "txt_file.c": line number: 1231 msgid "Unable to Store as New File. " msgstr # # "txt_file.c": line number: 1232 msgid "INTERNAL ERROR: Forgot the name of the file." msgstr # # "txt_file.c": line number: 1238 msgid "Unable to Store as New File. " msgstr # # "txt_file.c": line number: 1239 msgid "Problems accessing specified file." msgstr # # "txt_file.c": line number: 1254 msgid "Please confirm Store as New File:" msgstr # # "txt_file.c": line number: 1257 msgid "That file exists and has data in it." msgstr # # "txt_file.c": line number: 1259 msgid "Confirm" msgstr # # "txt_file.c": line number: 1260 msgid "Cancel" msgstr # # "txt_file.c": line number: 1274 msgid "Please confirm Store as New File:" msgstr # # "txt_file.c": line number: 1277 msgid "That file exists and has data in it." msgstr # # "txt_file.c": line number: 1279 msgid "Confirm" msgstr # # "txt_file.c": line number: 1280 msgid "Cancel" msgstr # # "txt_file.c": line number: 1291 msgid "Unable to Store as New File. " msgstr # # "txt_file.c": line number: 1292 msgid "File system full." msgstr # # "txt_file.c": line number: 1298 msgid "Unable to Store as New File. " msgstr # # "txt_file.c": line number: 1299 msgid "Use Save Current File instead." msgstr # # "txt_file.c": line number: 1309 msgid "Unable to Store as New File. " msgstr # # "txt_file.c": line number: 1310 msgid "An INTERNAL ERROR has occurred." msgstr # # "txt_file.c": line number: 1327 msgid "Continue" msgstr # # "txt_file.c": line number: 1343 msgid "Continue" msgstr # # "txt_file.c": line number: 1628 msgid "Unrecognized file name. Unable to match specified pattern." msgstr # # "txt_file.c": line number: 1633 msgid "Unrecognized file name. Filename contains only blank or tab characters." msgstr # # "txt_file.c": line number: 1641 msgid "Unrecognized file name. No files match specified pattern." msgstr # # "txt_file.c": line number: 1644 msgid "Unrecognized file name. Too many files match specified pattern" msgstr # # "txt_file.c": line number: 1695 msgid "Unrecognized file name. Unable to expand specified pattern: " msgstr # # "txt_file.c": line number: 1708 msgid "Unrecognized file name.\nUnable to expand specified pattern:" msgstr # # "txt_file.c": line number: 1715 msgid "Continue" msgstr # # "txt_file.c": line number: 1729 msgid "Unrecognized file name.\nUnable to expand specified pattern:" msgstr # # "txt_file.c": line number: 1736 msgid "Continue" msgstr # # "txt_file.c": line number: 1744 msgid "Unrecognized file name. Filename contains only blank or tab characters. Please use a valid file name." msgstr # # "txt_file.c": line number: 1758 msgid "Unrecognized file name.\nFile name contains only blank or tab characters.\nPlease use a valid file name." msgstr # # "txt_file.c": line number: 1760 msgid "Continue" msgstr # # "txt_file.c": line number: 1775 msgid "Unrecognized file name.\nFile name contains only blank or tab characters.\nPlease use a valid file name." msgstr # # "txt_file.c": line number: 1777 msgid "Continue" msgstr # # "txt_file.c": line number: 1788 msgid "Unrecognized file name. No files match specified pattern: " msgstr # # "txt_file.c": line number: 1801 msgid "Unrecognized file name.\nNo files match specified pattern:" msgstr # # "txt_file.c": line number: 1808 msgid "Continue" msgstr # # "txt_file.c": line number: 1822 msgid "Unrecognized file name.\nNo files match specified pattern:" msgstr # # "txt_file.c": line number: 1829 msgid "Continue" msgstr # # "txt_file.c": line number: 1836 msgid "Unrecognized file name. Too many files match specified pattern: " msgstr # # "txt_file.c": line number: 1849 msgid "Unrecognized file name.\nToo many files match specified pattern:" msgstr # # "txt_file.c": line number: 1856 msgid "Continue" msgstr # # "txt_file.c": line number: 1870 msgid "Unrecognized file name.\nToo many files match specified pattern:" msgstr # # "txt_file.c": line number: 1877 msgid "Continue" msgstr # # "txt_file.c": line number: 1907 msgid "After removing this message, please select a file name and choose this menu option again." msgstr # # "txt_file.c": line number: 1927 msgid "Please select a filename and choose this menu option again." msgstr # # "txt_file.c": line number: 1929 msgid "Continue" msgstr # # "txt_file.c": line number: 1942 msgid "Please select a filename and choose this menu option again." msgstr # # "txt_file.c": line number: 1944 msgid "Continue" msgstr # # "txt_file.c": line number: 2103 msgid "Continue" msgstr # # "txt_file.c": line number: 2118 msgid "Continue" msgstr # # "txt_file.c": line number: 2195 msgid "Unable to access file" msgstr # # "txt_file.c": line number: 2196 msgid "Unable to cd to directory" msgstr # # "txt_file.c": line number: 2200 msgid "Unable to access file" msgstr # # "txt_file.c": line number: 2201 msgid "Unable to cd to directory" msgstr # # "txt_file.c": line number: 2218 msgid "Continue" msgstr # # "txt_file.c": line number: 2235 msgid "Continue" msgstr # # "txt_file.c": line number: 2302 msgid "Cannot access file" msgstr # # "txt_file.c": line number: 2303 msgid "Cannot cd to directory" msgstr # # "txt_file.c": line number: 2409 msgid "The text has been edited.\nClear Log will discard these edits. Please confirm." msgstr # # "txt_file.c": line number: 2411 msgid "Cancel" msgstr # # "txt_file.c": line number: 2413 msgid "Confirm, discard edits" msgstr # # "txt_file.c": line number: 2428 msgid "The text has been edited.\nClear Log will discard these edits. Please confirm." msgstr # # "txt_file.c": line number: 2430 msgid "Cancel" msgstr # # "txt_file.c": line number: 2432 msgid "Confirm, discard edits" msgstr # # "txt_file.c": line number: 2473 msgid "Please select a file name and choose this option again." msgstr # # "txt_file.c": line number: 2475 msgid "Continue" msgstr # # "txt_file.c": line number: 2488 msgid "Please select a file name and choose this option again." msgstr # # "txt_file.c": line number: 2490 msgid "Continue" msgstr # # "txt_file.c": line number: 2521 msgid "The text has been edited.\nLoad File will discard these edits. Please confirm." msgstr # # "txt_file.c": line number: 2524 msgid "Confirm, discard edits" msgstr # # "txt_file.c": line number: 2525 msgid "Cancel" msgstr # # "txt_file.c": line number: 2540 msgid "The text has been edited.\nLoad File will discard these edits. Please confirm." msgstr # # "txt_file.c": line number: 2543 msgid "Confirm, discard edits" msgstr # # "txt_file.c": line number: 2544 msgid "Cancel" msgstr # # "txt_incl.c": line number: 142 msgid "Cannot change directory.\nChange Directory Has Been Disabled." msgstr # # "txt_incl.c": line number: 145 msgid "Continue" msgstr # # "txt_incl.c": line number: 159 msgid "Cannot change directory.\nChange Directory Has Been Disabled." msgstr # # "txt_incl.c": line number: 162 msgid "Continue" msgstr # # "txt_incl.c": line number: 192 msgid "No file name was specified.\nSpecify a file name to Include File." msgstr # # "txt_incl.c": line number: 195 msgid "Continue" msgstr # # "txt_incl.c": line number: 209 msgid "No file name was specified.\nSpecify a file name to Include File." msgstr # # "txt_incl.c": line number: 211 msgid "Continue" msgstr # # "txt_incl.c": line number: 284 msgid "Directory:" msgstr # # "txt_incl.c": line number: 299 msgid "File:" msgstr # # "txt_incl.c": line number: 313 msgid "Include File" msgstr # # "txt_input.c": line number: 134 msgid "The text is read-only and cannot be edited.\nPress \"Continue\" to proceed." msgstr # # "txt_input.c": line number: 136 msgid "Continue" msgstr # # "txt_input.c": line number: 150 msgid "The text is read-only and cannot be edited.\nPress \"Continue\" to proceed." msgstr # # "txt_input.c": line number: 152 msgid "Continue" msgstr # # "txt_input.c": line number: 484 msgid "Cannot locate filter '%s'." msgstr # # "txt_input.c": line number: 488 msgid "Unexpected problem with filter '%s'." msgstr # # "txt_input.c": line number: 502 msgid "Continue" msgstr # # "txt_input.c": line number: 516 msgid "Continue" msgstr # # "txt_input.c": line number: 1567 msgid "Illegal Operation.\nLoad File Has Been Disabled." msgstr # # "txt_input.c": line number: 1569 msgid "Continue" msgstr # # "txt_input.c": line number: 1583 msgid "Illegal Operation.\nLoad File Has Been Disabled." msgstr # # "txt_input.c": line number: 1585 msgid "Continue" msgstr # # "txt_line.c": line number: 145 msgid "Line Number:" msgstr # # "txt_line.c": line number: 161 msgid "Select Line at Number" msgstr # # "txt_load.c": line number: 83 msgid "The text has been edited.\nLoad File will discard these edits. Please confirm." msgstr # # "txt_load.c": line number: 86 msgid "Confirm, discard edits" msgstr # # "txt_load.c": line number: 87 msgid "Cancel" msgstr # # "txt_load.c": line number: 102 msgid "The text has been edited.\nLoad File will discard these edits. Please confirm." msgstr # # "txt_load.c": line number: 105 msgid "Confirm, discard edits" msgstr # # "txt_load.c": line number: 106 msgid "Cancel" msgstr # # "txt_load.c": line number: 180 msgid "Cannot change directory.\nChange Directory Has Been Disabled." msgstr # # "txt_load.c": line number: 183 msgid "Continue" msgstr # # "txt_load.c": line number: 197 msgid "Cannot change directory.\nChange Directory Has Been Disabled." msgstr # # "txt_load.c": line number: 199 msgid "Continue" msgstr # # "txt_load.c": line number: 230 msgid "No file name was specified.\nSpecify a file name to Load." msgstr # # "txt_load.c": line number: 232 msgid "Continue" msgstr # # "txt_load.c": line number: 246 msgid "No file name was specified.\nSpecify a file name to Load." msgstr # # "txt_load.c": line number: 248 msgid "Continue" msgstr # # "txt_load.c": line number: 314 msgid "Directory:" msgstr # # "txt_load.c": line number: 328 msgid "File:" msgstr # # "txt_load.c": line number: 342 msgid "Load File" msgstr # # "txt_match.c": line number: 108 msgid "Operation is aborted.\nThis text window is read only." msgstr # # "txt_match.c": line number: 110 msgid "Continue" msgstr # # "txt_match.c": line number: 124 msgid "Operation is aborted.\nThis text window is read only." msgstr # # "txt_match.c": line number: 126 msgid "Continue" msgstr # # "txt_match.c": line number: 145 msgid "Operation is aborted.\nSelected text is in read only area." msgstr # # "txt_match.c": line number: 147 msgid "Continue" msgstr # # "txt_match.c": line number: 161 msgid "Operation is aborted.\nSelected text is in read only area." msgstr # # "txt_match.c": line number: 163 msgid "Continue" msgstr # # "txt_match.c": line number: 214 msgid "Operation is aborted.\nSelection does not include the indicated pair." msgstr # # "txt_match.c": line number: 217 msgid "Continue" msgstr # # "txt_match.c": line number: 231 msgid "Operation is aborted.\nSelection does not include the indicated pair." msgstr # # "txt_match.c": line number: 234 msgid "Continue" msgstr # # "txt_match.c": line number: 251 msgid "Operation is aborted, because no text is selected" msgstr # # "txt_match.c": line number: 253 msgid "Continue" msgstr # # "txt_match.c": line number: 266 msgid "Operation is aborted, because no text is selected" msgstr # # "txt_match.c": line number: 268 msgid "Continue" msgstr # # "txt_match.c": line number: 358 msgid "Insert Pair" msgstr # # "txt_match.c": line number: 359 msgid "Backward" msgstr # # "txt_match.c": line number: 360 msgid "Expand" msgstr # # "txt_match.c": line number: 361 msgid "Forward" msgstr # # "txt_match.c": line number: 362 msgid "Remove Pair" msgstr # # "txt_match.c": line number: 363 msgid "Find Pair" msgstr # # "txt_menu.c": line number: 176 msgid "Wrap at Word" msgstr # # "txt_menu.c": line number: 183 msgid "Wrap at Character" msgstr # # "txt_menu.c": line number: 190 msgid "Wrap at Character" msgstr # # "txt_menu.c": line number: 191 msgid "Clip Lines" msgstr # # "txt_menu.c": line number: 222 msgid "Undo Last Edit" msgstr # # "txt_menu.c": line number: 229 msgid "Undo All Edits" msgstr # # "txt_menu.c": line number: 245 msgid "Expand" msgstr # # "txt_menu.c": line number: 252 msgid "Next" msgstr # # "txt_menu.c": line number: 259 msgid "Previous" msgstr # # "txt_menu.c": line number: 276 msgid "Forward" msgstr # # "txt_menu.c": line number: 283 msgid "Backward" msgstr # # "txt_menu.c": line number: 295 msgid "Load File..." msgstr # # "txt_menu.c": line number: 302 msgid "Save Current File" msgstr # # "txt_menu.c": line number: 309 msgid "Store as New File..." msgstr # # "txt_menu.c": line number: 317 msgid "Include File..." msgstr # # "txt_menu.c": line number: 324 msgid "Empty Document" msgstr # # "txt_menu.c": line number: 344 msgid "Again" msgstr # # "txt_menu.c": line number: 350 msgid "Undo" msgstr # # "txt_menu.c": line number: 358 msgid "Copy" msgstr # # "txt_menu.c": line number: 365 msgid "Paste" msgstr # # "txt_menu.c": line number: 372 msgid "Cut" msgstr # # "txt_menu.c": line number: 392 msgid "Select Line at Number..." msgstr # # "txt_menu.c": line number: 399 msgid "What Line Number?" msgstr # # "txt_menu.c": line number: 407 msgid "Show Caret at Top" msgstr # # "txt_menu.c": line number: 414 msgid "Change Line Wrap" msgstr # # "txt_menu.c": line number: 433 msgid "Find and Replace..." msgstr # # "txt_menu.c": line number: 441 msgid "Find Selection" msgstr # # "txt_menu.c": line number: 448 msgid "Find Marked Text..." msgstr # # "txt_menu.c": line number: 455 msgid "Replace |>field<| " msgstr # # "txt_menu.c": line number: 476 msgid "Text Pane" msgstr # # "txt_menu.c": line number: 482 msgid "File" msgstr # # "txt_menu.c": line number: 491 msgid "View" msgstr # # "txt_menu.c": line number: 498 msgid "Edit" msgstr # # "txt_menu.c": line number: 505 msgid "Find" msgstr # # "txt_menu.c": line number: 514 msgid "Extras" msgstr # # "txt_menu.c": line number: 571 msgid "Edit" msgstr # # "txt_menu.c": line number: 747 msgid "Illegal Operation.\nLoad File Has Been Disabled." msgstr # # "txt_menu.c": line number: 749 msgid "Continue" msgstr # # "txt_menu.c": line number: 763 msgid "Illegal Operation.\nLoad File Has Been Disabled." msgstr # # "txt_menu.c": line number: 765 msgid "Continue" msgstr # # "txt_menu.c": line number: 804 msgid "Unable to Save Current File.\nYou are not currently editing a file.\nUse \"Store as New File\" to save your work." msgstr # # "txt_menu.c": line number: 806 msgid "Continue" msgstr # # "txt_menu.c": line number: 820 msgid "Unable to Save Current File.\nYou are not currently editing a file.\nUse \"Store as New File\" to save your work." msgstr # # "txt_menu.c": line number: 822 msgid "Continue" msgstr # # "txt_menu.c": line number: 841 msgid "File has not been modified.\nSave File operation ignored." msgstr # # "txt_menu.c": line number: 843 msgid "Continue" msgstr # # "txt_menu.c": line number: 857 msgid "File has not been modified.\nSave File operation ignored." msgstr # # "txt_menu.c": line number: 859 msgid "Continue" msgstr # # "txt_menu.c": line number: 965 msgid "Undo All Edits will discard unsaved edits.\nPlease confirm." msgstr # # "txt_menu.c": line number: 968 msgid "Confirm, discard edits" msgstr # # "txt_menu.c": line number: 969 msgid "Cancel" msgstr # # "txt_menu.c": line number: 987 msgid "Undo All Edits will discard unsaved edits.\nPlease confirm." msgstr # # "txt_menu.c": line number: 990 msgid "Confirm, discard edits" msgstr # # "txt_menu.c": line number: 991 msgid "Cancel" msgstr # # "txt_menu.c": line number: 1023 msgid "Please make a primary selection in this textsw first.\nPress \"Continue\" to proceed." msgstr # # "txt_menu.c": line number: 1025 msgid "Continue" msgstr # # "txt_menu.c": line number: 1042 msgid "Please make a primary selection in this textsw first.\nPress \"Continue\" to proceed." msgstr # # "txt_menu.c": line number: 1044 msgid "Continue" msgstr # # "txt_menu.c": line number: 1067 msgid "Please make a primary selection first.\nPress \"Continue\" to proceed." msgstr # # "txt_menu.c": line number: 1069 msgid "Continue" msgstr # # "txt_menu.c": line number: 1087 msgid "Please make a primary selection first.\nPress \"Continue\" to proceed." msgstr # # "txt_menu.c": line number: 1089 msgid "Continue" msgstr # # "txt_menu.c": line number: 1112 msgid "Nothing on the clipboard to paste in.\nPress \"Continue\" to proceed." msgstr # # "txt_menu.c": line number: 1114 msgid "Continue" msgstr # # "txt_menu.c": line number: 1131 msgid "Nothing on the clipboard to paste in.\nPress \"Continue\" to proceed." msgstr # # "txt_menu.c": line number: 1133 msgid "Continue" msgstr # # "txt_menu.c": line number: 1232 msgid "Please make a primary selection first.\nPress \"Continue\" to proceed." msgstr # # "txt_menu.c": line number: 1234 msgid "Continue" msgstr # # "txt_menu.c": line number: 1248 msgid "Please make a primary selection first.\nPress \"Continue\" to proceed." msgstr # # "txt_menu.c": line number: 1250 msgid "Continue" msgstr # # "txt_menu.c": line number: 1262 msgid "Selection starts in line %d." msgstr # # "txt_menu.c": line number: 1275 msgid "Press \"Continue\" to proceed." msgstr # # "txt_menu.c": line number: 1278 msgid "Continue" msgstr # # "txt_menu.c": line number: 1292 msgid "Press \"Continue\" to proceed." msgstr # # "txt_menu.c": line number: 1294 msgid "Continue" msgstr # # "txt_move.c": line number: 552 msgid "Operation timed out" msgstr # # "txt_move.c": line number: 555 msgid "Illegal drop target" msgstr # # "txt_move.c": line number: 558 msgid "Unable to acquire selection" msgstr # # "txt_move.c": line number: 561 msgid "Root window is not a valid drop target" msgstr # # "txt_move.c": line number: 564 msgid "Unexpected internal error" msgstr # # "txt_move.c": line number: 569 msgid "Drag and Drop failed:" msgstr # # "txt_once.c": line number: 623 msgid "Can't load specified file:" msgstr # # "txt_once.c": line number: 625 msgid "Starting with empty buffer." msgstr # # "txt_once.c": line number: 627 msgid "Continue" msgstr # # "txt_once.c": line number: 640 msgid "Can't load specified file:" msgstr # # "txt_once.c": line number: 642 msgid "Starting with empty buffer." msgstr # # "txt_once.c": line number: 644 msgid "Continue" msgstr # # "txt_once.c": line number: 1012 msgid "The text has been edited.\n\nYou may discard edits now and quit, or cancel\nthe request to Quit and go back and either save the\ncontents or store the contents as a new file." msgstr # # "txt_once.c": line number: 1015 msgid "Cancel, do NOT Quit" msgstr # # "txt_once.c": line number: 1017 msgid "Discard edits, then Quit" msgstr # # "txt_once.c": line number: 1035 msgid "The text has been edited.\n\nYou may discard edits now and quit, or cancel\nthe request to Quit and go back and either save the\ncontents or store the contents as a new file." msgstr # # "txt_once.c": line number: 1038 msgid "Cancel, do NOT Quit" msgstr # # "txt_once.c": line number: 1040 msgid "Discard edits, then Quit" msgstr # # "txt_once.c": line number: 1122 msgid "The text has been edited.\n\nYou may discard edits now and quit, or cancel\nthe request to Quit and go back and either save the\ncontents or store the contents as a new file." msgstr # # "txt_once.c": line number: 1125 msgid "Cancel, do NOT Quit" msgstr # # "txt_once.c": line number: 1127 msgid "Discard edits, then Quit" msgstr # # "txt_once.c": line number: 1145 msgid "The text has been edited.\n\nYou may discard edits now and quit, or cancel\nthe request to Quit and go back and either save the\ncontents or store the contents as a new file." msgstr # # "txt_once.c": line number: 1148 msgid "Cancel, do NOT Quit" msgstr # # "txt_once.c": line number: 1150 msgid "Discard edits, then Quit" msgstr # # "txt_popup.c": line number: 130 msgid "Text:Store" msgstr # # "txt_popup.c": line number: 136 msgid "Text:Load" msgstr # # "txt_popup.c": line number: 143 msgid "Text:Include" msgstr # # "txt_popup.c": line number: 150 msgid "Text:Find and Replace" msgstr # # "txt_popup.c": line number: 157 msgid "Text:Find Marked Text" msgstr # # "txt_popup.c": line number: 164 msgid "Text:Line Number" msgstr # # "txt_search.c": line number: 317 msgid "Find" msgstr # # "txt_search.c": line number: 318 msgid "Replace" msgstr # # "txt_search.c": line number: 319 msgid "Replace All" msgstr # # "txt_search.c": line number: 320 msgid "Find then Replace" msgstr # # "txt_search.c": line number: 321 msgid "Replace then Find" msgstr # # "txt_search.c": line number: 322 msgid "Backward" msgstr # # "txt_search.c": line number: 323 msgid "Forward" msgstr # # "txt_search.c": line number: 421 msgid "All Text" msgstr # # "txt_search.c": line number: 422 msgid "To End" msgstr # # "txt_selsvc.c": line number: 210 msgid "textsw selection_client is null\n" msgstr # # "txt_selsvc.c": line number: 252 msgid "seln_client returned null" msgstr # # "txt_store.c": line number: 130 msgid "Cannot change directory.\nChange Directory Has Been Disabled." msgstr # # "txt_store.c": line number: 132 msgid "Continue" msgstr # # "txt_store.c": line number: 146 msgid "Cannot change directory.\nChange Directory Has Been Disabled." msgstr # # "txt_store.c": line number: 148 msgid "Continue" msgstr # # "txt_store.c": line number: 178 msgid "No file name was specified.\nSpecify a file name to store as new file." msgstr # # "txt_store.c": line number: 180 msgid "Continue" msgstr # # "txt_store.c": line number: 194 msgid "No file name was specified.\nSpecify a file name to store as new file." msgstr # # "txt_store.c": line number: 196 msgid "Continue" msgstr # # "txt_store.c": line number: 265 msgid "Directory:" msgstr # # "txt_store.c": line number: 279 msgid "File:" msgstr # # "txt_store.c": line number: 293 msgid "Store as New File" msgstr # # "txt_tool.c": line number: 74 msgid "The text has been edited.\n\nYou may discard edits now and quit, or cancel\nthe request to Quit and go back and either save the\ncontents or store the contents as a new file." msgstr # # "txt_tool.c": line number: 77 msgid "Cancel, do NOT Quit" msgstr # # "txt_tool.c": line number: 79 msgid "Discard edits, then Quit" msgstr # # "txt_tool.c": line number: 97 msgid "The text has been edited.\n\nYou may discard edits now and quit, or cancel\nthe request to Quit and go back and either save the\ncontents or store the contents as a new file." msgstr # # "txt_tool.c": line number: 100 msgid "Cancel, do NOT Quit" msgstr # # "txt_tool.c": line number: 102 msgid "Discard edits, then Quit" msgstr # # "term_ntfy.c": line number: 431 msgid "ttysw_cr: select" msgstr # # "term_ntfy.c": line number: 440 msgid "TTYSW tty write failure" msgstr # # "term_ntfy.c": line number: 461 msgid "cannot set output func on ttysw %x, tty fd %d\n" msgstr # # "term_ntfy.c": line number: 492 msgid "Continue" msgstr # # "term_ntfy.c": line number: 508 msgid "Continue" msgstr # # "term_ntfy.c": line number: 559 msgid "Pty cmd buffer overflow: last cmd ignored." msgstr # # "tty.c": line number: 512 msgid "A command window has exited because its child exited.\n" msgstr # # "tty.c": line number: 516 msgid "A tty window has exited because its child exited.\n" msgstr # # "tty.c": line number: 520 msgid "Its child's process id was %d and it" msgstr # # "tty.c": line number: 523 msgid " died due to signal %d" msgstr # # "tty.c": line number: 527 msgid " exited with return code %d" msgstr # # "tty.c": line number: 532 msgid " and left a core dump.\n" msgstr # # "tty_init.c": line number: 704 msgid "All pty's in use\n" msgstr # # "tty_init.c": line number: 768 msgid "TTYSW - setting TIOCTCNTL to 1 failed" msgstr # # "tty_init.c": line number: 820 msgid "couldn't find user name\n" msgstr # # "tty_init.c": line number: 854 msgid "Cannot find slot in /etc/ttys for updating /etc/utmp.\n" msgstr # # "tty_init.c": line number: 856 msgid "Commands like \"who\" will not work.\n" msgstr # # "tty_init.c": line number: 858 msgid "Add tty[qrs][0-f] to /etc/ttys file.\n" msgstr # # "tty_init.c": line number: 867 msgid "make sure that you can write /etc/utmp!\n" msgstr # # "tty_main.c": line number: 347 msgid "TTYSW pty write failure" msgstr # # "tty_main.c": line number: 372 msgid "TTYSW pty write failure" msgstr # # "tty_main.c": line number: 915 msgid "Continue" msgstr # # "tty_main.c": line number: 919 msgid "Too many characters to add to the input buffer.\nWait a few seconds after you click Continue,\nthen retype the missing characters." msgstr # # "tty_main.c": line number: 934 msgid "Continue" msgstr # # "tty_main.c": line number: 938 msgid "Too many characters to add to the input buffer.\nWait a few seconds after you click Continue,\nthen retype the missing characters." msgstr # # "tty_main.c": line number: 1311 msgid "ttysw-TIOCSSIZE" msgstr # # "tty_main.c": line number: 1457 msgid "TIOCFLUSH" msgstr # # "tty_mapkey.c": line number: 96 msgid "%s: line %d longer than 1024 characters\n" msgstr # # "tty_mapkey.c": line number: 129 msgid "%s: unknown command on line %d\n" msgstr # # "tty_mapkey.c": line number: 299 msgid ".ttyswrc error: %s cannot be mapped" msgstr # # "tty_mapkey.c": line number: 329 msgid "while saving key strings" msgstr # # "tty_menu.c": line number: 102 msgid "Disable Page Mode" msgstr # # "tty_menu.c": line number: 113 msgid "Copy" msgstr # # "tty_menu.c": line number: 122 msgid "Paste" msgstr # # "tty_menu.c": line number: 131 msgid "Term Pane" msgstr # # "tty_menu.c": line number: 142 msgid "Enable Scrolling" msgstr # # "tty_menu.c": line number: 217 msgid "Continue" msgstr # # "tty_menu.c": line number: 222 msgid "Disable Page Mode" msgstr # # "tty_menu.c": line number: 227 msgid "Enable Page Mode " msgstr # # "tty_menu.c": line number: 290 msgid "Continue" msgstr # # "tty_menu.c": line number: 292 msgid "Please make a primary selection first." msgstr # # "tty_menu.c": line number: 307 msgid "Continue" msgstr # # "tty_menu.c": line number: 309 msgid "Please make a primary selection first." msgstr # # "tty_menu.c": line number: 342 msgid "Continue" msgstr # # "tty_menu.c": line number: 344 msgid "Please Copy text onto clipboard first." msgstr # # "tty_menu.c": line number: 359 msgid "Continue" msgstr # # "tty_menu.c": line number: 361 msgid "Please Copy text onto clipboard first." msgstr # # "tty_menu.c": line number: 405 msgid "Editable" msgstr # # "tty_menu.c": line number: 414 msgid "Read Only" msgstr # # "tty_menu.c": line number: 430 msgid "Mode" msgstr # # "tty_menu.c": line number: 438 msgid "Store log as new file " msgstr # # "tty_menu.c": line number: 447 msgid "Clear log" msgstr # # "tty_menu.c": line number: 463 msgid "History" msgstr # # "tty_menu.c": line number: 470 msgid "Edit" msgstr # # "tty_menu.c": line number: 477 msgid "Find" msgstr # # "tty_menu.c": line number: 485 msgid "Extras" msgstr # # "tty_menu.c": line number: 498 msgid "Enable" msgstr # # "tty_menu.c": line number: 506 msgid "Disable" msgstr # # "tty_menu.c": line number: 520 msgid "File Editor" msgstr # # "tty_menu.c": line number: 533 msgid "Enable Scrolling" msgstr # # "tty_menu.c": line number: 541 msgid "Disable Scrolling" msgstr # # "tty_menu.c": line number: 556 msgid "Scrolling" msgstr # # "tty_menu.c": line number: 562 msgid "Term Pane" msgstr # # "tty_menu.c": line number: 613 msgid "File" msgstr # # "tty_menu.c": line number: 619 msgid "View" msgstr # # "tty_menu.c": line number: 626 msgid "Edit" msgstr # # "tty_menu.c": line number: 634 msgid "Find" msgstr # # "tty_menu.c": line number: 713 msgid "Continue" msgstr # # "tty_menu.c": line number: 716 msgid "Please destroy all split views before enabling File Editor.\nPress \"Continue\" to proceed." msgstr # # "tty_menu.c": line number: 731 msgid "Continue" msgstr # # "tty_menu.c": line number: 734 msgid "Please destroy all split views before enabling File Editor.\nPress \"Continue\" to proceed." msgstr # # "tty_menu.c": line number: 765 msgid "Continue" msgstr # # "tty_menu.c": line number: 768 msgid "Textedit is already created.\nPress \"Continue\" to proceed." msgstr # # "tty_menu.c": line number: 783 msgid "Continue" msgstr # # "tty_menu.c": line number: 786 msgid "Textedit is already created.\nPress \"Continue\" to proceed." msgstr # # "tty_menu.c": line number: 825 msgid "Continue" msgstr # # "tty_menu.c": line number: 828 msgid "No textedit is enabled yet.\nPress \"Continue\" to proceed." msgstr # # "tty_menu.c": line number: 843 msgid "Continue" msgstr # # "tty_menu.c": line number: 846 msgid "No textedit is enabled yet.\nPress \"Continue\" to proceed." msgstr # # "tty_menu.c": line number: 943 msgid "Continue" msgstr # # "tty_menu.c": line number: 945 msgid "Cannot enable scrolling while this application is running." msgstr # # "tty_menu.c": line number: 960 msgid "Continue" msgstr # # "tty_menu.c": line number: 962 msgid "Cannot enable scrolling while this application is running." msgstr # # "tty_menu.c": line number: 1003 msgid "Continue" msgstr # # "tty_menu.c": line number: 1005 msgid "Only one termsw view can turn into a ttysw at a time." msgstr # # "tty_menu.c": line number: 1020 msgid "Continue" msgstr # # "tty_menu.c": line number: 1022 msgid "Only one termsw view can turn into a ttysw at a time." msgstr # # "tty_ntfy.c": line number: 178 msgid "ttysw_sigwinch, can't get tty process group" msgstr # # "tty_ntfy.c": line number: 239 msgid "ioctl" msgstr # # "ttyselect.c": line number: 1245 msgid "ttysw didn't recognize function to perform on selection" msgstr # # "ttyselect.c": line number: 1773 msgid "failed for selection copy-out" msgstr # # "win_compat.c": line number: 42 msgid " Attempting to set the input mask of a window in fullscreen mode!\n" msgstr # # "win_damage.c": line number: 54 msgid "Pending drawable has not been cleared (Win package)" msgstr # # "win_damage.c": line number: 105 msgid "too many rectangles (Win package)" msgstr # # "win_input.c": line number: 1904 msgid "Unexpected event type in ACTION_DROP_PREVIEW event" msgstr # # "win_treeop.c": line number: 63 msgid "win_getlink: XQueryTree failed!\n" msgstr # # "win_treeop.c": line number: 88 msgid "win_getlink: XQueryTree failed!\n" msgstr # # "win_treeop.c": line number: 100 msgid "win_getlink(sibling): window not in tree\n" msgstr # # "win_treeop.c": line number: 113 msgid "win_getlink: unknown linkname: %d\n" msgstr # # "win_treeop.c": line number: 156 msgid "Call to win_setlink() with ZERO link value would orphan a child. Ignored. (Win package)" msgstr # # "win_treeop.c": line number: 166 msgid "win_setlink: unknown linkname: %d\n" msgstr # # "window.c": line number: 296 msgid "Subwindow owner is not a window\n" msgstr # # "window.c": line number: 306 msgid "Parent window does not support children" msgstr # # "window.c": line number: 306 msgid "Parent window does not support children" msgstr # # "window.c": line number: 465 msgid "Window creation failed to get new visual" msgstr # # "window.c": line number: 465 msgid "Window creation failed to get new visual" msgstr # # "window.c": line number: 538 msgid "notify_set_event_func failed in window creation" msgstr # # "window.c": line number: 538 msgid "notify_set_event_func failed in window creation" msgstr # # "window.c": line number: 550 msgid "notify_set_event_func failed in window creation" msgstr # # "window.c": line number: 550 msgid "notify_set_event_func failed in window creation" msgstr # # "window_cms.c": line number: 92 msgid "Cannot set a dynamic colormap segment on a window created\nwith a static visual" msgstr # # "window_cms.c": line number: 100 msgid "Attempting to set colormap segment data before naming the segment" msgstr # # "window_cms.c": line number: 185 msgid "Can not set a CMS on a window that was created with a different visual" msgstr # # "window_set.c": line number: 181 msgid "WIN_TOP_LEVEL_NO_DECOR specified for non-top level non-frame window" msgstr # # "windowlayt.c": line number: 120 msgid "window layout option (%d) not recognized (window_layout)" msgstr # # "windowutil.c": line number: 391 msgid "window: zero width or height specified" msgstr # # "windowutil.c": line number: 1223 msgid "Attempt to query the window tree failed" msgstr xview-3.2p1.4/misc/message_files/SUNW_WST_CMDTOOL.po100644 1750 1750 4151 5413747665 17257 0ustar mbmbdomain "SUNW_WST_CMDTOOL" # File:cmdtool.c, line:84 msgid "[-P frequency] [-M bytes]" msgstr "[-P frequency] [-M bytes]" # File:cmdtool.c, line:85 msgid "[-B boldstyle]" msgstr "[-B boldstyle]" # File:cmdtool.c, line:88 msgid "syntax: %s [-C] [-I initial_cmd] %s [program [args]]\n" msgstr "syntax: %s [-C] [-I initial_cmd] %s [program [args]]\n" # File:cmdtool.c, line:92 msgid "-B set bold style for this instance of %s\n where 'boldstyle' is a number from 1 to 8\n" msgstr "-B set bold style for this instance of %s\n where 'boldstyle' is a number from 1 to 8\n" # File:cmdtool.c, line:97 msgid "-C redirect console output to this instance of %s\n" msgstr "-C redirect console output to this instance of %s\n" # File:cmdtool.c, line:100 msgid "-I 'initial_cmd' is first command 'program' executes\n" msgstr "-I 'initial_cmd' is first command 'program' executes\n" # File:cmdtool.c, line:102 msgid "-L run the .login file when starting the shell subprocess\n" msgstr "-L run the .login file when starting the shell subprocess\n" # File:cmdtool.c, line:105 msgid "-P checkpoint frequency for this %s, where 'frequency' is number\n of edits between checkpoints; a value of 0 means no checkpointing.\n-M set the log to wrap-around after the indicated number of bytes.\n" msgstr "-P checkpoint frequency for this %s, where 'frequency' is number\n of edits between checkpoints; a value of 0 means no checkpointing.\n-M set the log to wrap-around after the indicated number of bytes.\n" # File:cmdtool.c, line:164 msgid "shelltool" msgstr "shelltool" # File:cmdtool.c, line:165 msgid "cmdtool" msgstr "cmdtool" # File:cmdtool.c, line:166 msgid " (CONSOLE) - " msgstr " (CONSOLE) - " # File:cmdtool.c, line:218 msgid "Cannot create base frame. Process aborted.\n" msgstr "Cannot create base frame. Process aborted.\n" # File:cmdtool.c, line:320 msgid "Console" msgstr "Console" # File:cmdtool.c, line:389 msgid "Command" msgstr "Command" # File:cmdtool.c, line:389 msgid "Shell" msgstr "Shell" # File:cmdtool.c, line:390 msgid " Tool: Out of swap space. Cannot continue.\n" msgstr " Tool: Out of swap space. Cannot continue.\n" xview-3.2p1.4/misc/message_files/SUNW_WST_LIBXVIEW_3200.po100644 1750 1750 344146 5413747667 20130 0ustar mbmbdomain "SUNW_WST_LIBXVIEW_3200" # File:attr.c, line:110 msgid "A/V list more than 250 elements long, extra elements ignored" msgstr "A/V list more than 250 elements long, extra elements ignored" # File:attr.c, line:125 # msgid "A/V list more than 250 elements long, extra elements ignored" # msgstr "A/V list more than 250 elements long, extra elements ignored" # File:attr.c, line:148 # msgid "A/V list more than 250 elements long, extra elements ignored" # msgstr "A/V list more than 250 elements long, extra elements ignored" # File:attr.c, line:162 # msgid "A/V list more than 250 elements long, extra elements ignored" # msgstr "A/V list more than 250 elements long, extra elements ignored" # File:attr.c, line:182 # msgid "A/V list more than 250 elements long, extra elements ignored" # msgstr "A/V list more than 250 elements long, extra elements ignored" # File:attr.c, line:193 # msgid "A/V list more than 250 elements long, extra elements ignored" # msgstr "A/V list more than 250 elements long, extra elements ignored" # File:attr.c, line:207 # msgid "A/V list more than 250 elements long, extra elements ignored" # msgstr "A/V list more than 250 elements long, extra elements ignored" # File:attr.c, line:235 # msgid "A/V list more than 250 elements long, extra elements ignored" # msgstr "A/V list more than 250 elements long, extra elements ignored" # File:xv.c, line:147 msgid "data in object looks like seal of standard object" msgstr "data in object looks like seal of standard object" # File:xv.c, line:155 msgid "embedding header too large for our encoding scheme" msgstr "embedding header too large for our encoding scheme" # File:xv.c, line:183 msgid "embedding seal incorrect" msgstr "embedding seal incorrect" # File:xv.c, line:193 msgid "byte offset incorrect" msgstr "byte offset incorrect" # File:xv.c, line:204 msgid "standard seal incorrect" msgstr "standard seal incorrect" # File:xv.c, line:459 msgid "NULL pointer passed to xv_set" msgstr "NULL pointer passed to xv_set" # File:xv.c, line:790 msgid "xv_destroy_status" msgstr "xv_destroy_status" # File:xv.c, line:791 msgid "internal error in package" msgstr "internal error in package" # File:xv.c, line:793 msgid "attempted veto during wrong phase" msgstr "attempted veto during wrong phase" # File:xv.c, line:795 msgid "send bug report" msgstr "send bug report" # File:xv_parse.c, line:316 msgid "%s: missing argument after %s" msgstr "%s: missing argument after %s" # File:xv_parse.c, line:396 msgid "%s: unknown scale \"%s\" used with %s option" msgstr "%s: unknown scale \"%s\" used with %s option" # File:xv_parse.c, line:615 msgid "%s: can't have negative argument %s after %s" msgstr "%s: can't have negative argument %s after %s" # File:xv_error.c, line:58 msgid "bad attribute, %s" msgstr "bad attribute, %s" # File:xv_error.c, line:63 msgid "bad value (0x%x) for attribute %s" msgstr "bad value (0x%x) for attribute %s" # File:xv_error.c, line:69 msgid "cannot get %s" msgstr "cannot get %s" # File:xv_error.c, line:74 msgid "cannot set %s" msgstr "cannot set %s" # File:xv_error.c, line:79 msgid "%s only valid in xv_create" msgstr "%s only valid in xv_create" # File:xv_error.c, line:84 msgid "invalid object (%s)" msgstr "invalid object (%s)" # File:xv_error.c, line:99 msgid "error" msgstr "error" # File:xv_error.c, line:109 msgid "System" msgstr "System" # File:xv_error.c, line:113 msgid "unix error %d" msgstr "unix error %d" # File:xv_error.c, line:117 msgid "Server" msgstr "Server" # File:xv_error.c, line:122 msgid "error unknown" msgstr "error unknown" # File:xv_error.c, line:125 msgid "XView" msgstr "XView" # File:xv_error.c, line:136 msgid "%s %s: Object 0x%x," msgstr "%s %s: Object 0x%x," # File:xv_error.c, line:160 msgid "%s (%s package)\n" msgstr "%s (%s package)\n" # File:xv_usage.c, line:29 msgid "usage of %s generic window arguments:\nFLAG\t(LONG FLAG)\t\tARGS\t\tNOTES\n-Ww\t(-width)\t\tcolumns\n-Wh\t(-height)\t\tlines\n-Ws\t(-size)\t\t\tx y\n-Wp\t(-position)\t\tx y\n\t(-geometry)\t\"[WxH][{+|-}X{+|-}Y]\"\t(X geometry)\n" msgstr "usage of %s generic window arguments:\nFLAG\t(LONG FLAG)\t\tARGS\t\tNOTES\n-Ww\t(-width)\t\tcolumns\n-Wh\t(-height)\t\tlines\n-Ws\t(-size)\t\t\tx y\n-Wp\t(-position)\t\tx y\n\t(-geometry)\t\"[WxH][{+|-}X{+|-}Y]\"\t(X geometry)\n" # File:xv_usage.c, line:39 msgid "-WP\t(-icon_position)\tx y\n-Wl\t(-label)\t\t\"string\"\n\t(-title)\t\t\"string\"\t(Same as -label)\n-Wi\t(-iconic)\t\t(Application will come up closed)\n+Wi\t(+iconic)\t\t(Application will come up open)\n-Wt\t(-font)\t\t\tfontname\n-fn\t\t\t\tfontname\t\n-Wx\t(-scale)\t\tsmall | medium | large | extra_large\n" msgstr "-WP\t(-icon_position)\tx y\n-Wl\t(-label)\t\t\"string\"\n\t(-title)\t\t\"string\"\t(Same as -label)\n-Wi\t(-iconic)\t\t(Application will come up closed)\n+Wi\t(+iconic)\t\t(Application will come up open)\n-Wt\t(-font)\t\t\tfontname\n-fn\t\t\t\tfontname\t\n-Wx\t(-scale)\t\tsmall | medium | large | extra_large\n" # File:xv_usage.c, line:49 msgid "-Wf\t(-foreground_color)\tred green blue\t0-255 (no color-full color)\n-fg\t(-foreground)\t\tcolorname\t(X Color specification)\n-Wb\t(-background_color)\tred green blue\t0-255 (no color-full color)\n-bg\t(-background)\t\tcolorname\t(X Color specification)\n-rv\t(-reverse)\t\t(Foreground and background colors will be reversed)\n+rv\t(+reverse)\t\t(Foreground and background colors will not be reversed)\n" msgstr "-Wf\t(-foreground_color)\tred green blue\t0-255 (no color-full color)\n-fg\t(-foreground)\t\tcolorname\t(X Color specification)\n-Wb\t(-background_color)\tred green blue\t0-255 (no color-full color)\n-bg\t(-background)\t\tcolorname\t(X Color specification)\n-rv\t(-reverse)\t\t(Foreground and background colors will be reversed)\n+rv\t(+reverse)\t\t(Foreground and background colors will not be reversed)\n" # File:xv_usage.c, line:57 msgid "-WI\t(-icon_image)\t\tfilename\n-WL\t(-icon_label)\t\t\"string\"\n-WT\t(-icon_font)\t\tfilename\n-Wr\t(-display)\t\t\"server_name:screen\"\n-visual\t\t\t\tStaticGray | GrayScale | StaticColor |\n\t\t\t\tPseudoColor | TrueColor | DirectColor\n-depth\t\t\t\tdepth\n-Wdr\t(-disable_retained)\t\n-Wdxio\t(-disable_xio_error_handler)\t\n" msgstr "-WI\t(-icon_image)\t\tfilename\n-WL\t(-icon_label)\t\t\"string\"\n-WT\t(-icon_font)\t\tfilename\n-Wr\t(-display)\t\t\"server_name:screen\"\n-visual\t\t\t\tStaticGray | GrayScale | StaticColor |\n\t\t\t\tPseudoColor | TrueColor | DirectColor\n-depth\t\t\t\tdepth\n-Wdr\t(-disable_retained)\t\n-Wdxio\t(-disable_xio_error_handler)\t\n" # File:xv_usage.c, line:68 msgid "-Wfsdb\t(-fullscreendebug)\t\n-Wfsdbs\t(-fullscreendebugserver)\t\n-Wfsdbp\t(-fullscreendebugptr)\t\n-Wfsdbk\t(-fullscreendebugkbd)\t\n-Wdpgs\t(-disable_pass_grab_select)\t\n" msgstr "-Wfsdb\t(-fullscreendebug)\t\n-Wfsdbs\t(-fullscreendebugserver)\t\n-Wfsdbp\t(-fullscreendebugptr)\t\n-Wfsdbk\t(-fullscreendebugkbd)\t\n-Wdpgs\t(-disable_pass_grab_select)\t\n" # File:xv_usage.c, line:75 msgid "-WS\t(-defeateventsecurity)\t\n-sync\t(-synchronous)\t\t\t\t(Force a synchronous connection)\n+sync\t(+synchronous)\t\t\t\t(Make an asynchronous connection)\n-Wd\t(-default)\t\tresource value\t(Set the X resource to value)\n-xrm\t\t\t\tresource:value\t(Set the X resource to value)\n" msgstr "-WS\t(-defeateventsecurity)\t\n-sync\t(-synchronous)\t\t\t\t(Force a synchronous connection)\n+sync\t(+synchronous)\t\t\t\t(Make an asynchronous connection)\n-Wd\t(-default)\t\tresource value\t(Set the X resource to value)\n-xrm\t\t\t\tresource:value\t(Set the X resource to value)\n" # File:xv_usage.c, line:82 msgid "-name\t\t\t\tstring\t(Set application instance name to string)\n-lc_basiclocale\t\t\tlocale\t(Set basic locale of application to locale)\n-lc_displaylang\t\t\tlocale\t(Set display language of application to locale)\n-lc_inputlang\t\t\tlocale\t(Set input language of application to locale)\n-lc_numeric\t\t\tlocale\t(Set numeric format of application to locale)\n-lc_timeformat\t\t\tlocale\t(Set time format of application to locale)\n" msgstr "-name\t\t\t\tstring\t(Set application instance name to string)\n-lc_basiclocale\t\t\tlocale\t(Set basic locale of application to locale)\n-lc_displaylang\t\t\tlocale\t(Set display language of application to locale)\n-lc_inputlang\t\t\tlocale\t(Set input language of application to locale)\n-lc_numeric\t\t\tlocale\t(Set numeric format of application to locale)\n-lc_timeformat\t\t\tlocale\t(Set time format of application to locale)\n" # File:xv_usage.c, line:90 msgid "-preedit_style\t\t\tonTheSpot | overTheSpot | rootWindow | none\n\t\t\t\t(Set input method preedit style)\n-status_style\t\t\tclientDisplays | imDisplaysInClient | none\n\t\t\t\t(Set input method status style)\n-WH\t(-help)\t\n" msgstr "-preedit_style\t\t\tonTheSpot | overTheSpot | rootWindow | none\n\t\t\t\t(Set input method preedit style)\n-status_style\t\t\tclientDisplays | imDisplaysInClient | none\n\t\t\t\t(Set input method status style)\n-WH\t(-help)\t\n" # File:cnvs_cb.c, line:279 msgid "Preedit Display" msgstr "Preedit Display" # File:cnvs_cb.c, line:462 msgid "The Preedit Display popup window cannot be\ndismissed while input method conversion is\nstill on in one of the canvas windows." msgstr "The Preedit Display popup window cannot be\ndismissed while input method conversion is\nstill on in one of the canvas windows." # File:cnvs_cb.c, line:466 msgid "Continue" msgstr "Continue" # File:cms.c, line:372 msgid "Unable to find RGB values for a named color" msgstr "Unable to find RGB values for a named color" # File:cms_pblc.c, line:116 msgid "Can not allocate a read/write cms from a static visual" msgstr "Can not allocate a read/write cms from a static visual" # File:cms_pblc.c, line:188 msgid "CMS_TYPE is a create-only attribute" msgstr "CMS_TYPE is a create-only attribute" # File:cms_pblc.c, line:263 msgid "Unable to allocate control colors for colormap segment" msgstr "Unable to allocate control colors for colormap segment" # File:cursor.c, line:433 msgid "cursor: can't create cursor" msgstr "cursor: can't create cursor" # File:cursor.c, line:451 msgid "Window and cursor have different roots! Can't set cursor" msgstr "Window and cursor have different roots! Can't set cursor" # File:curs_pri.c, line:49 msgid "cannot create cursor with null image" msgstr "cannot create cursor with null image" # File:curs_pri.c, line:61 msgid "cursor_make_x(): bad xhot/yhot parameters" msgstr "cursor_make_x(): bad xhot/yhot parameters" # File:curs_pri.c, line:218 msgid "Unable to find OPEN LOOK cursor font" msgstr "Unable to find OPEN LOOK cursor font" # File:defaults.c, line:137 msgid "\"%s\" is an unrecognized boolean value (Defaults package)" msgstr "\"%s\" is an unrecognized boolean value (Defaults package)" # File:defaults.c, line:168 msgid "\"%s\" is not a character constant (Defaults package)" msgstr "\"%s\" is not a character constant (Defaults package)" # File:defaults.c, line:240 msgid "\"%s\" is not an integer (Defaults package)" msgstr "\"%s\" is not an integer (Defaults package)" # File:defaults.c, line:276 msgid "The value of name \"%s\" (class \"%s\") is %d,\nwhich is not between %d and %d. (Defaults package)" msgstr "The value of name \"%s\" (class \"%s\") is %d,\nwhich is not between %d and %d. (Defaults package)" # File:defaults.c, line:419 msgid "Unable to load server Resource Manager property -\nno server defined (Defaults package)" msgstr "Unable to load server Resource Manager property -\nno server defined (Defaults package)" # File:defaults.c, line:451 msgid "Unable to update server Resource Manager property -\nno server defined (Defaults package)" msgstr "Unable to update server Resource Manager property -\nno server defined (Defaults package)" # File:defaults.c, line:479 msgid "Unable to update server Resource Manager property (Defaults package)" msgstr "Unable to update server Resource Manager property (Defaults package)" # File:file_chsr.c, line:128 msgid "Open" msgstr "Open" # File:file_chsr.c, line:132 msgid "Save" msgstr "Save" # File:file_chsr.c, line:133 msgid "Untitled1" msgstr "Untitled1" # File:file_chsr.c, line:137 msgid "Save As" msgstr "Save As" # File:file_chsr.c, line:551 msgid "Only valid for Open dialog" msgstr "Only valid for Open dialog" # File:file_chsr.c, line:1123 msgid "Home" msgstr "Home" # File:file_chsr.c, line:1142 msgid "Unable to access OpenWindows.GotoMenu.UserDirs entry:\n\"%s\".\n" msgstr "Unable to access OpenWindows.GotoMenu.UserDirs entry:\n\"%s\".\n" # File:file_chsr.c, line:1202 msgid "Type in the path to the folder and press Return." msgstr "Type in the path to the folder and press Return." # File:file_chsr.c, line:1207 msgid "Go To:" msgstr "Go To:" # File:file_chsr.c, line:1234 msgid "Current Folder:" msgstr "Current Folder:" # File:file_chsr.c, line:1247 msgid "Select a file or folder and click Open." msgstr "Select a file or folder and click Open." # File:file_chsr.c, line:1249 msgid "Select a file or folder and click Open Folder." msgstr "Select a file or folder and click Open Folder." # File:file_chsr.c, line:1282 msgid "Save:" msgstr "Save:" # File:file_chsr.c, line:1283 msgid "Save As:" msgstr "Save As:" # File:file_chsr.c, line:1301 # msgid "Open" # msgstr "Open" # File:file_chsr.c, line:1302 msgid "Open Folder" msgstr "Open Folder" # File:file_chsr.c, line:1310 msgid "Cancel" msgstr "Cancel" # File:file_chsr.c, line:1319 # msgid "Save" # msgstr "Save" # File:file_chsr.c, line:1666 msgid "Type the name of the file in the Save field." msgstr "Type the name of the file in the Save field." # File:file_chsr.c, line:1695 msgid "%s does not exist!" msgstr "%s does not exist!" # File:file_chsr.c, line:1928 # msgid "Cancel" # msgstr "Cancel" # File:file_chsr.c, line:1930 msgid "You cannot open the file:" msgstr "You cannot open the file:" # File:file_chsr.c, line:1934 msgid "because you do not have permission to read it." msgstr "because you do not have permission to read it." # File:file_chsr.c, line:1935 msgid "Only the owner of the file can change permissions." msgstr "Only the owner of the file can change permissions." # File:file_chsr.c, line:2014 msgid "You do not have permission to write to folder \"%s\"" msgstr "You do not have permission to write to folder \"%s\"" # File:file_chsr.c, line:2030 msgid "Please enter a name in the Save: field." msgstr "Please enter a name in the Save: field." # File:file_chsr.c, line:2122 # msgid "Cancel" # msgstr "Cancel" # File:file_chsr.c, line:2124 msgid "A folder already exists with this name:" msgstr "A folder already exists with this name:" # File:file_chsr.c, line:2128 msgid "You cannot overwrite a folder name with a" msgstr "You cannot overwrite a folder name with a" # File:file_chsr.c, line:2129 msgid "file name. Please choose a different name." msgstr "file name. Please choose a different name." # File:file_chsr.c, line:2144 # msgid "Cancel" # msgstr "Cancel" # File:file_chsr.c, line:2145 msgid "Overwrite Existing File" msgstr "Overwrite Existing File" # File:file_chsr.c, line:2152 msgid "This file already exists:" msgstr "This file already exists:" # File:file_chsr.c, line:2155 msgid "Do you want to overwrite the existing file?" msgstr "Do you want to overwrite the existing file?" # File:file_chsr.c, line:2160 msgid "The file \"%s\" already exists." msgstr "The file \"%s\" already exists." # File:file_chsr.c, line:2164 msgid "Do you want to overwrite the existing file \"%s\"?" msgstr "Do you want to overwrite the existing file \"%s\"?" # File:file_chsr.c, line:2184 # msgid "Cancel" # msgstr "Cancel" # File:file_chsr.c, line:2185 # msgid "Overwrite Existing File" # msgstr "Overwrite Existing File" # File:file_chsr.c, line:2192 msgid "This file already exists and is read-only:" msgstr "This file already exists and is read-only:" # File:file_chsr.c, line:2195 # msgid "Do you want to overwrite the existing file?" # msgstr "Do you want to overwrite the existing file?" # File:file_chsr.c, line:2200 msgid "The file \"%s\" already exists and is read-only." msgstr "The file \"%s\" already exists and is read-only." # File:file_chsr.c, line:2204 msgid "Do you want to overwrite the file \"%s\"?" msgstr "Do you want to overwrite the file \"%s\"?" # File:file_chsr.c, line:2223 # msgid "Cancel" # msgstr "Cancel" # File:file_chsr.c, line:2226 msgid "You cannot save to the file:" msgstr "You cannot save to the file:" # File:file_chsr.c, line:2230 msgid "because you do not have permission to write to" msgstr "because you do not have permission to write to" # File:file_chsr.c, line:2231 msgid "the file. Only the owner can change permissions." msgstr "the file. Only the owner can change permissions." # File:file_list.c, line:76 msgid "...Go up one folder..." msgstr "...Go up one folder..." # File:file_list.c, line:194 msgid "Can't change to %s" msgstr "Can't change to %s" # File:/usr/include/regexp.h, line:87 msgid "Invalid regular expression!" msgstr "Invalid regular expression!" # File:/usr/include/regexp.h, line:98 # msgid "Invalid regular expression!" # msgstr "Invalid regular expression!" # File:/usr/include/regexp.h, line:105 # msgid "Invalid regular expression!" # msgstr "Invalid regular expression!" # File:/usr/include/regexp.h, line:120 # msgid "Invalid regular expression!" # msgstr "Invalid regular expression!" # File:/usr/include/regexp.h, line:122 # msgid "Invalid regular expression!" # msgstr "Invalid regular expression!" # File:/usr/include/regexp.h, line:137 # msgid "Invalid regular expression!" # msgstr "Invalid regular expression!" # File:/usr/include/regexp.h, line:153 # msgid "Invalid regular expression!" # msgstr "Invalid regular expression!" # File:/usr/include/regexp.h, line:157 # msgid "Invalid regular expression!" # msgstr "Invalid regular expression!" # File:/usr/include/regexp.h, line:170 # msgid "Invalid regular expression!" # msgstr "Invalid regular expression!" # File:/usr/include/regexp.h, line:211 # msgid "Invalid regular expression!" # msgstr "Invalid regular expression!" # File:/usr/include/regexp.h, line:219 # msgid "Invalid regular expression!" # msgstr "Invalid regular expression!" # File:/usr/include/regexp.h, line:237 # msgid "Invalid regular expression!" # msgstr "Invalid regular expression!" # File:/usr/include/regexp.h, line:240 # msgid "Invalid regular expression!" # msgstr "Invalid regular expression!" # File:/usr/include/regexp.h, line:244 # msgid "Invalid regular expression!" # msgstr "Invalid regular expression!" # File:/usr/include/regexp.h, line:254 # msgid "Invalid regular expression!" # msgstr "Invalid regular expression!" # File:/usr/include/regexp.h, line:258 # msgid "Invalid regular expression!" # msgstr "Invalid regular expression!" # File:/usr/include/regexp.h, line:262 # msgid "Invalid regular expression!" # msgstr "Invalid regular expression!" # File:/usr/include/regexp.h, line:271 # msgid "Invalid regular expression!" # msgstr "Invalid regular expression!" # File:file_list.c, line:1312 msgid "Unable to open the folder \"%s\"" msgstr "Unable to open the folder \"%s\"" # File:file_list.c, line:1355 msgid "out of memory openining folder" msgstr "out of memory openining folder" # File:path.c, line:326 msgid "The folder name \"%s\" does not exist." msgstr "The folder name \"%s\" does not exist." # File:path.c, line:363 msgid "Cannot create the document \"%s\"." msgstr "Cannot create the document \"%s\"." # File:path.c, line:376 # msgid "The folder name \"%s\" does not exist." # msgstr "The folder name \"%s\" does not exist." # File:path.c, line:387 msgid "\"%s\" is not a folder." msgstr "\"%s\" is not a folder." # File:xv_path_util.c, line:80 msgid "out of memory, copying string!" msgstr "out of memory, copying string!" # File:filter.c, line:70 msgid "while parsing filter file %s" msgstr "while parsing filter file %s" # File:filter.c, line:105 msgid "filter file %s: missing command-line" msgstr "filter file %s: missing command-line" # File:filter.c, line:157 msgid "problem parsing filter file %s" msgstr "problem parsing filter file %s" # File:filter.c, line:169 msgid "problem on line number %d" msgstr "problem on line number %d" # File:filter.c, line:173 msgid "problem near character position %d" msgstr "problem near character position %d" # File:filter.c, line:187 # msgid "while parsing filter file %s" # msgstr "while parsing filter file %s" # File:font.c, line:927 msgid "Cannot load font set '%s'" msgstr "Cannot load font set '%s'" # File:font.c, line:952 msgid "Cannot load font '%s'" msgstr "Cannot load font '%s'" # File:font.c, line:1659 msgid "Unable to open default font set \n" msgstr "Unable to open default font set \n" # File:font.c, line:2166 msgid "Bad scale value:%d" msgstr "Bad scale value:%d" # File:font.c, line:4046 msgid "Font style %s is not known, using default style instead" msgstr "Font style %s is not known, using default style instead" # File:font.c, line:4063 # msgid "Cannot load font '%s'" # msgstr "Cannot load font '%s'" # File:font.c, line:4082 msgid "Failed to find font names" msgstr "Failed to find font names" # File:font.c, line:4157 msgid "Attempt to rescale from font failed" msgstr "Attempt to rescale from font failed" # File:font.c, line:4180 # msgid "Font style %s is not known, using default style instead" # msgstr "Font style %s is not known, using default style instead" # File:font.c, line:4197 # msgid "Cannot load font '%s'" # msgstr "Cannot load font '%s'" # File:font.c, line:4210 msgid "Failed to construct font name" msgstr "Failed to construct font name" # File:fm_set.c, line:205 msgid "Attempt to make frame deaf failed" msgstr "Attempt to make frame deaf failed" # File:fm_set.c, line:216 msgid "Attempt to make frame undeaf failed" msgstr "Attempt to make frame undeaf failed" # File:fm_destroy.c, line:174 msgid "Are you sure you want to Quit?" msgstr "Are you sure you want to Quit?" # File:fm_destroy.c, line:177 msgid "Confirm" msgstr "Confirm" # File:fm_destroy.c, line:179 # msgid "Cancel" # msgstr "Cancel" # File:fm_destroy.c, line:194 # msgid "Are you sure you want to Quit?" # msgstr "Are you sure you want to Quit?" # File:fm_destroy.c, line:196 # msgid "Confirm" # msgstr "Confirm" # File:fm_destroy.c, line:197 # msgid "Cancel" # msgstr "Cancel" # File:fm_destroy.c, line:207 msgid "Notice failed on attempt to destroy frame." msgstr "Notice failed on attempt to destroy frame." # File:fm_layout.c, line:150 msgid "Attempt to make frame subwindow deaf failed" msgstr "Attempt to make frame subwindow deaf failed" # File:fm_layout.c, line:333 msgid "frame_layout(internal error): frame layout option (%d) not recognized." msgstr "frame_layout(internal error): frame layout option (%d) not recognized." # File:fm_cmdline.c, line:506 msgid "Unknown color: \"%.30s\"" msgstr "Unknown color: \"%.30s\"" # File:fm_win.c, line:91 msgid "frame_is_exposed(): XQueryTree failed!" msgstr "frame_is_exposed(): XQueryTree failed!" # File:fm_win.c, line:107 msgid "frame_is_exposed(): window not in tree" msgstr "frame_is_exposed(): window not in tree" # File:fs.c, line:161 msgid "Already in fullscreen mode!" msgstr "Already in fullscreen mode!" # File:fs.c, line:294 msgid "Already in fullscreen by another client. Fullscreen Failed." msgstr "Already in fullscreen by another client. Fullscreen Failed." # File:fs.c, line:297 msgid "Invalid time. Fullscreen failed." msgstr "Invalid time. Fullscreen failed." # File:fs.c, line:300 msgid "Fullscreen window or confine-to window not mapped. Fullscreen failed." msgstr "Fullscreen window or confine-to window not mapped. Fullscreen failed." # File:fs.c, line:303 msgid "Already frozen by another client. Fullscreen Failed." msgstr "Already frozen by another client. Fullscreen Failed." # File:fs_set.c, line:280 msgid "Attempt to allow synchronous event processing without first being in synchronous mode. Attribute ignored!" msgstr "Attempt to allow synchronous event processing without first being in synchronous mode. Attribute ignored!" # File:help.c, line:102 msgid "Help package: cannot invoke More Help" msgstr "Help package: cannot invoke More Help" # File:help.c, line:145 msgid "%s for %s." msgstr "%s for %s." # File:help.c, line:147 msgid "%s." msgstr "%s." # File:help.c, line:172 msgid "OK" msgstr "OK" # File:help.c, line:187 # msgid "OK" # msgstr "OK" # File:help.c, line:332 msgid "No help is available" msgstr "No help is available" # File:help.c, line:342 msgid "More help is not available" msgstr "More help is not available" # File:help.c, line:412 msgid "No frame associated with this window" msgstr "No frame associated with this window" # File:help.c, line:472 msgid "More" msgstr "More" # File:help.c, line:595 msgid "No Primary Selection" msgstr "No Primary Selection" # File:help.c, line:602 # msgid "No Primary Selection" # msgstr "No Primary Selection" # File:help.c, line:619 msgid "No Help String Filename specified for window" msgstr "No Help String Filename specified for window" # File:help.c, line:628 msgid "Help String File not found" msgstr "Help String File not found" # File:help.c, line:640 msgid "\" not found in Help String File" msgstr "\" not found in Help String File" # File:icon.c, line:355 msgid "xv_rop: xv_rop_internal failed" msgstr "xv_rop: xv_rop_internal failed" # File:icon_obj.c, line:87 msgid "Can't allocate icon structure" msgstr "Can't allocate icon structure" # File:icon_obj.c, line:464 msgid "icon: color name \"%s\" not in database" msgstr "icon: color name \"%s\" not in database" # File:icon_obj.c, line:473 msgid "icon: all color cells are allocated" msgstr "icon: all color cells are allocated" # File:icon_load.c, line:51 msgid "Cannot open file %s.\n" msgstr "Cannot open file %s.\n" # File:icon_load.c, line:125 msgid "icon file %s parse failure\n" msgstr "icon file %s parse failure\n" # File:icon_load.c, line:132 msgid "%s has invalid header format.\n" msgstr "%s has invalid header format.\n" # File:icon_load.c, line:145 msgid "Cannot handle Depth of %d.\n" msgstr "Cannot handle Depth of %d.\n" # File:icon_load.c, line:151 msgid "Cannot handle Valid_bits_per_item of %d.\n" msgstr "Cannot handle Valid_bits_per_item of %d.\n" # File:icon_load.c, line:157 msgid "Cannot handle Width of %d.\n" msgstr "Cannot handle Width of %d.\n" # File:icon_load.c, line:202 msgid "icon file header valid bits not 16 or 32" msgstr "icon file header valid bits not 16 or 32" # File:icon_load.c, line:228 msgid "Cannot create memory pixrect %dx%dx%d.\n" msgstr "Cannot create memory pixrect %dx%dx%d.\n" # File:icon_load.c, line:260 # msgid "Cannot create memory pixrect %dx%dx%d.\n" # msgstr "Cannot create memory pixrect %dx%dx%d.\n" # File:input.c, line:33 msgid "input stream not of type input" msgstr "input stream not of type input" # File:input.c, line:41 # msgid "input stream not of type input" # msgstr "input stream not of type input" # File:input.c, line:61 # msgid "input stream not of type input" # msgstr "input stream not of type input" # File:input.c, line:92 # msgid "input stream not of type input" # msgstr "input stream not of type input" # File:input.c, line:258 # msgid "input stream not of type input" # msgstr "input stream not of type input" # File:output.c, line:37 msgid "output stream not of type output" msgstr "output stream not of type output" # File:output.c, line:65 # msgid "output stream not of type output" # msgstr "output stream not of type output" # File:output.c, line:84 # msgid "output stream not of type output" # msgstr "output stream not of type output" # File:io.c, line:40 msgid "invalid stream type" msgstr "invalid stream type" # File:io.c, line:66 # msgid "invalid stream type" # msgstr "invalid stream type" # File:omi.c, line:92 msgid "Menu item does not have a string or image" msgstr "Menu item does not have a string or image" # File:om_public.c, line:157 msgid "menu_show: no menu specified" msgstr "menu_show: no menu specified" # File:om_public.c, line:169 msgid "menu_show: menu not owned by this server" msgstr "menu_show: menu not owned by this server" # File:om_public.c, line:228 msgid "menu_show: unable to grab pointer" msgstr "menu_show: unable to grab pointer" # File:om_public.c, line:242 msgid "menu_show: unable to grab keyboard" msgstr "menu_show: unable to grab keyboard" # File:om_public.c, line:271 msgid "menu_show: unable to allocate group_info" msgstr "menu_show: unable to allocate group_info" # File:om_public.c, line:427 msgid "menu_create: unable to allocate menu structure" msgstr "menu_create: unable to allocate menu structure" # File:om_public.c, line:436 # msgid "menu_create: unable to allocate menu structure" # msgstr "menu_create: unable to allocate menu structure" # File:om_public.c, line:477 msgid "menu_create: unable to allocate an item list" msgstr "menu_create: unable to allocate an item list" # File:om_public.c, line:497 msgid "Unknown menu type" msgstr "Unknown menu type" # File:om_public.c, line:545 msgid "Menu_create_item: unable to allocate menu_item" msgstr "Menu_create_item: unable to allocate menu_item" # File:om_public.c, line:872 msgid "menu_find: menu's gen_proc failed to generate a menu" msgstr "menu_find: menu's gen_proc failed to generate a menu" # File:om_public.c, line:890 msgid "menu_find: menu item's gen_proc failed to generate a menu item" msgstr "menu_find: menu item's gen_proc failed to generate a menu item" # File:om_public.c, line:1366 msgid "menu item does not have a string or image" msgstr "menu item does not have a string or image" # File:om_public.c, line:1610 msgid "Unable to allocate group_info" msgstr "Unable to allocate group_info" # File:om_render.c, line:200 msgid "menu_render: menu's gen_proc failed to generate a menu" msgstr "menu_render: menu's gen_proc failed to generate a menu" # File:om_render.c, line:243 msgid "menu_create: unable to allocate menu window" msgstr "menu_create: unable to allocate menu window" # File:om_render.c, line:319 msgid "menu_create: unable to allocate shadow window" msgstr "menu_create: unable to allocate shadow window" # File:om_render.c, line:1532 msgid "Menu too large for screen" msgstr "Menu too large for screen" # File:om_render.c, line:1569 # msgid "Menu too large for screen" # msgstr "Menu too large for screen" # File:om_render.c, line:1593 # msgid "Menu too large for screen" # msgstr "Menu too large for screen" # File:om_render.c, line:1784 msgid "Pullright Generate Procedure failed to generate a pullright menu" msgstr "Pullright Generate Procedure failed to generate a pullright menu" # File:om_render.c, line:2492 msgid "menu_create: unable to create shadow Graphics Context" msgstr "menu_create: unable to create shadow Graphics Context" # File:om_set.c, line:632 msgid "Invalid argument for attribute MENU_LINE_AFTER_ITEM: %d" msgstr "Invalid argument for attribute MENU_LINE_AFTER_ITEM: %d" # File:om_set.c, line:645 msgid "MENU_CLASS attribute is get-only" msgstr "MENU_CLASS attribute is get-only" # File:om_set.c, line:1311 # msgid "Invalid argument for attribute MENU_LINE_AFTER_ITEM: %d" # msgstr "Invalid argument for attribute MENU_LINE_AFTER_ITEM: %d" # File:om_set.c, line:1491 msgid "menu_set: Malloc failed to allocate an item list" msgstr "menu_set: Malloc failed to allocate an item list" # File:om_set.c, line:1812 msgid "Duplicate menu accelerator specified:" msgstr "Duplicate menu accelerator specified:" # File:om_set.c, line:1845 msgid "Menu accelerator string has incorrect format:" msgstr "Menu accelerator string has incorrect format:" # File:getlogindr.c, line:42 msgid "xv_getlogindir: couldn't find user in password file" msgstr "xv_getlogindir: couldn't find user in password file" # File:getlogindr.c, line:49 msgid "xv_getlogindir: no home directory in password file" msgstr "xv_getlogindir: no home directory in password file" # File:expandname.c, line:87 msgid "pipe" msgstr "pipe" # File:expandname.c, line:105 msgid "fork" msgstr "fork" # File:expandname.c, line:114 msgid "read" msgstr "read" # File:expandname.c, line:131 msgid "\"Echo\" failed" msgstr "\"Echo\" failed" # File:expandname.c, line:142 msgid "Buffer overflow (> %d) expanding \"%s\"" msgstr "Buffer overflow (> %d) expanding \"%s\"" # File:expandname.c, line:191 msgid "in xv_expand_name" msgstr "in xv_expand_name" # File:expandname.c, line:213 # msgid "in xv_expand_name" # msgstr "in xv_expand_name" # File:expandname.c, line:250 # msgid "in xv_expand_name" # msgstr "in xv_expand_name" # File:xv_deaf.c, line:79 msgid "xv_deaf:attempt to make windows deaf/hear failed" msgstr "xv_deaf:attempt to make windows deaf/hear failed" # File:xv_win_lp.c, line:40 msgid "xv_window_loop() : NULL frame passed." msgstr "xv_window_loop() : NULL frame passed." # File:xv_win_lp.c, line:55 msgid "xv_window_loop : Attempt to unblock input to windows failed" msgstr "xv_window_loop : Attempt to unblock input to windows failed" # File:xv_win_lp.c, line:69 msgid "xv_window_loop : Attempt to block input to windows failed" msgstr "xv_window_loop : Attempt to block input to windows failed" # File:xv_win_lp.c, line:92 msgid "xv_window_loop() : Cannot get handle to display" msgstr "xv_window_loop() : Cannot get handle to display" # File:xv_win_lp.c, line:172 # msgid "xv_window_loop : Attempt to unblock input to windows failed" # msgstr "xv_window_loop : Attempt to unblock input to windows failed" # File:xv_win_lp.c, line:192 # msgid "xv_window_loop : Attempt to block input to windows failed" # msgstr "xv_window_loop : Attempt to block input to windows failed" # File:xv_i18n.c, line:391 msgid "Not enough memory to convert the text list" msgstr "Not enough memory to convert the text list" # File:xv_i18n.c, line:400 msgid "The locale (%10.10s) does not supports text list conversion" msgstr "The locale (%10.10s) does not supports text list conversion" # File:xv_i18n.c, line:409 msgid "%d character(s) could not converted to the text property" msgstr "%d character(s) could not converted to the text property" # File:xv_i18n.c, line:456 msgid "Not enough memory to convert the text property" msgstr "Not enough memory to convert the text property" # File:xv_i18n.c, line:465 # msgid "The locale (%10.10s) does not supports text list conversion" # msgstr "The locale (%10.10s) does not supports text list conversion" # File:xv_i18n.c, line:472 msgid "Converter could not find to convert from text property (atom#%d)" msgstr "Converter could not find to convert from text property (atom#%d)" # File:xv_i18n.c, line:481 msgid "%d character(s) could not converted from text property" msgstr "%d character(s) could not converted from text property" # File:notice.c, line:89 msgid "NULL parent window passed to NOTICE. Not allowed." msgstr "NULL parent window passed to NOTICE. Not allowed." # File:notice.c, line:105 msgid "Malloc failed." msgstr "Malloc failed." # File:notice.c, line:269 msgid "calloc failed in notice_create_button_struct()." msgstr "calloc failed in notice_create_button_struct()." # File:notice.c, line:291 msgid "calloc failed in notice_create_msg_struct()." msgstr "calloc failed in notice_create_msg_struct()." # File:notice_set.c, line:152 msgid "Only one NOTICE_BUTTON_YES attr allowed. Attr ignored." msgstr "Only one NOTICE_BUTTON_YES attr allowed. Attr ignored." # File:notice_set.c, line:199 msgid "Only one NOTICE_BUTTON_NO attr allowed. Attr ignored." msgstr "Only one NOTICE_BUTTON_NO attr allowed. Attr ignored." # File:notice_pt.c, line:102 msgid "NULL parent window passed to notice_prompt(). Not allowed." msgstr "NULL parent window passed to notice_prompt(). Not allowed." # File:notice_pt.c, line:113 # msgid "Malloc failed." # msgstr "Malloc failed." # File:notice_ol.c, line:1063 msgid "Unable to find \"fixed\" font. (Notice package)" msgstr "Unable to find \"fixed\" font. (Notice package)" # File:ndet_auto.c, line:104 msgid "2ndary select EBADF" msgstr "2ndary select EBADF" # File:ndet_auto.c, line:107 msgid "2ndary select error" msgstr "2ndary select error" # File:ndet_auto.c, line:174 msgid "Nclient unprepared to handle signal" msgstr "Nclient unprepared to handle signal" # File:ndet_auto.c, line:226 msgid "Error when enq condition" msgstr "Error when enq condition" # File:ndet_loop.c, line:972 # msgid "Error when enq condition" # msgstr "Error when enq condition" # File:ndetitimer.c, line:202 # msgid "Error when enq condition" # msgstr "Error when enq condition" # File:ndisdispch.c, line:318 msgid "Unexpected dispatcher cond" msgstr "Unexpected dispatcher cond" # File:ntfy_debug.c, line:77 msgid "Notifier fatal error: " msgstr "Notifier fatal error: " # File:ntfy_debug.c, line:79 # msgid "Notifier fatal error: " # msgstr "Notifier fatal error: " # File:ntfy_list.c, line:89 msgid "Tried to remove node that wasn't on list" msgstr "Tried to remove node that wasn't on list" # File:ntfyperror.c, line:31 msgid "Success" msgstr "Success" # File:ntfyperror.c, line:34 msgid "Unknown client" msgstr "Unknown client" # File:ntfyperror.c, line:37 msgid "No condition for client" msgstr "No condition for client" # File:ntfyperror.c, line:40 msgid "Unknown interval timer type" msgstr "Unknown interval timer type" # File:ntfyperror.c, line:43 msgid "Bad signal number" msgstr "Bad signal number" # File:ntfyperror.c, line:46 msgid "Notifier not started" msgstr "Notifier not started" # File:ntfyperror.c, line:49 msgid "Destroy vetoed" msgstr "Destroy vetoed" # File:ntfyperror.c, line:52 msgid "Notifier internal error" msgstr "Notifier internal error" # File:ntfyperror.c, line:55 msgid "No such process" msgstr "No such process" # File:ntfyperror.c, line:58 msgid "Bad file number" msgstr "Bad file number" # File:ntfyperror.c, line:61 msgid "Not enough memory" msgstr "Not enough memory" # File:ntfyperror.c, line:64 msgid "Invalid argument" msgstr "Invalid argument" # File:ntfyperror.c, line:67 msgid "Too many interposition functions" msgstr "Too many interposition functions" # File:ntfyperror.c, line:70 msgid "Unknown notifier error" msgstr "Unknown notifier error" # File:openwin.c, line:76 msgid "can't allocate openwin structure. Abort\n" msgstr "can't allocate openwin structure. Abort\n" # File:p_btn.c, line:587 msgid "begin_preview: menu's gen_proc failed to generate a menu" msgstr "begin_preview: menu's gen_proc failed to generate a menu" # File:p_drop.c, line:185 msgid "Invalid Server Image specified" msgstr "Invalid Server Image specified" # File:p_drop.c, line:217 msgid "Invalid value for PANEL_DROP_DND_TYPE" msgstr "Invalid value for PANEL_DROP_DND_TYPE" # File:p_drop.c, line:227 # msgid "Invalid Server Image specified" # msgstr "Invalid Server Image specified" # File:p_list.c, line:684 msgid "PANEL_LIST insertions are currently disabled" msgstr "PANEL_LIST insertions are currently disabled" # File:p_list.c, line:702 # msgid "PANEL_LIST insertions are currently disabled" # msgstr "PANEL_LIST insertions are currently disabled" # File:p_list.c, line:788 msgid "PANEL_LIST deletions are currently disabled" msgstr "PANEL_LIST deletions are currently disabled" # File:p_list.c, line:806 # msgid "PANEL_LIST deletions are currently disabled" # msgstr "PANEL_LIST deletions are currently disabled" # File:p_list.c, line:863 # msgid "PANEL_LIST deletions are currently disabled" # msgstr "PANEL_LIST deletions are currently disabled" # File:p_list.c, line:901 # msgid "PANEL_LIST deletions are currently disabled" # msgstr "PANEL_LIST deletions are currently disabled" # File:p_list.c, line:1117 msgid "Scrolling List" msgstr "Scrolling List" # File:p_list.c, line:1121 msgid "Locate Choice" msgstr "Locate Choice" # File:p_list.c, line:1122 msgid "Locate Next Choice" msgstr "Locate Next Choice" # File:p_list.c, line:1131 msgid "Clear All Choices" msgstr "Clear All Choices" # File:p_list.c, line:1141 msgid "Edit List" msgstr "Edit List" # File:p_list.c, line:1153 # msgid "Scrolling List" # msgstr "Scrolling List" # File:p_list.c, line:1157 msgid "Change" msgstr "Change" # File:p_list.c, line:1161 msgid "Insert" msgstr "Insert" # File:p_list.c, line:1167 msgid "Before" msgstr "Before" # File:p_list.c, line:1174 msgid "After" msgstr "After" # File:p_list.c, line:1182 msgid "Delete" msgstr "Delete" # File:p_list.c, line:1191 msgid "End Editing" msgstr "End Editing" # File:p_list.c, line:2606 # msgid "Change" # msgstr "Change" # File:p_list.c, line:2610 # msgid "Delete" # msgstr "Delete" # File:p_list.c, line:2614 # msgid "Insert" # msgstr "Insert" # File:p_list.c, line:3611 msgid "Font height exceeds row height; font ignored" msgstr "Font height exceeds row height; font ignored" # File:p_list.c, line:3632 msgid "Panel List glyph height exceeds row height; glyph ignored" msgstr "Panel List glyph height exceeds row height; glyph ignored" # File:p_list.c, line:3655 msgid "Panel List mask glyph depth not equal 1; mask glyph ignored" msgstr "Panel List mask glyph depth not equal 1; mask glyph ignored" # File:p_list.c, line:3667 msgid "Panel List mask glyph height exceeds row height; glyph ignored" msgstr "Panel List mask glyph height exceeds row height; glyph ignored" # File:p_set.c, line:411 msgid "Unable to find OPEN LOOK glyph font" msgstr "Unable to find OPEN LOOK glyph font" # File:p_set.c, line:476 msgid "Unable to find bold font" msgstr "Unable to find bold font" # File:p_set.c, line:498 msgid "Unable to find bold font; using standard font" msgstr "Unable to find bold font; using standard font" # File:p_txt.c, line:976 msgid "Drag and Drop failed:" msgstr "Drag and Drop failed:" # File:p_txt.c, line:977 msgid "Unable to decode Drag and Drop message" msgstr "Unable to decode Drag and Drop message" # File:p_txt.c, line:1436 msgid "Selection timed out" msgstr "Selection timed out" # File:p_txt.c, line:1440 msgid "Illegal drop target" msgstr "Illegal drop target" # File:p_txt.c, line:1444 msgid "Unable to acquire selection" msgstr "Unable to acquire selection" # File:p_txt.c, line:1447 msgid "Root window is not a valid drop target" msgstr "Root window is not a valid drop target" # File:p_txt.c, line:1451 msgid "unexpected internal error" msgstr "unexpected internal error" # File:p_txt.c, line:1458 # msgid "Drag and Drop failed:" # msgstr "Drag and Drop failed:" # File:p_txt.c, line:4580 msgid "Unable to get contents of %s selection" msgstr "Unable to get contents of %s selection" # File:p_txt.c, line:4591 # msgid "Drag and Drop failed:" # msgstr "Drag and Drop failed:" # File:p_txt.c, line:4592 msgid "Unable to get contents of selection" msgstr "Unable to get contents of selection" # File:p_utl.c, line:228 # msgid "Invalid Server Image specified" # msgstr "Invalid Server Image specified" # File:pw_line.c, line:90 msgid "line texture pattern element %d is greater than 255! Shorten to 255\n" msgstr "line texture pattern element %d is greater than 255! Shorten to 255\n" # File:pw_read.c, line:45 msgid "xv_read: attempting to read into an invalid object" msgstr "xv_read: attempting to read into an invalid object" # File:pw_read.c, line:68 msgid "xv_read_internal(): image depth > pixrect depth" msgstr "xv_read_internal(): image depth > pixrect depth" # File:pw_traprop.c, line:32 msgid "pw_traprop: not implemented" msgstr "pw_traprop: not implemented" # File:xv_stencil.c, line:66 msgid "xv_stencil: stencil has to be of depth 1" msgstr "xv_stencil: stencil has to be of depth 1" # File:xv_stencil.c, line:144 msgid "xv_stencil: xv_stencil_internal failed" msgstr "xv_stencil: xv_stencil_internal failed" # File:xv_rop.c, line:191 msgid "xv_rop: can't handle drawables of different depth" msgstr "xv_rop: can't handle drawables of different depth" # File:xv_rop.c, line:205 msgid "xv_rop: Windows of different depth, can't rop" msgstr "xv_rop: Windows of different depth, can't rop" # File:xv_rop.c, line:546 # msgid "xv_rop: xv_rop_internal failed" # msgstr "xv_rop: xv_rop_internal failed" # File:xv_rop.c, line:650 msgid "xv_replrop: xv_replrop_internal failed" msgstr "xv_replrop: xv_replrop_internal failed" # File:xv_rop.c, line:762 msgid "Unsupported frame buffer depth: %d\n" msgstr "Unsupported frame buffer depth: %d\n" # File:xv_rop.c, line:769 msgid "Server probabaly run out of memory in XCreateGC\n" msgstr "Server probabaly run out of memory in XCreateGC\n" # File:mem_ops.c, line:48 msgid "Unsupported pixrect operation attempted" msgstr "Unsupported pixrect operation attempted" # File:rect.c, line:166 msgid "Bad sortorder arg in mostRect" msgstr "Bad sortorder arg in mostRect" # File:rectlist.c, line:359 msgid "Malformed rl in rl_free" msgstr "Malformed rl in rl_free" # File:rectlist.c, line:416 msgid "%s: Bounding " msgstr "%s: Bounding " # File:rectlist.c, line:424 msgid "using these offsets: x=%d, y=%d \n" msgstr "using these offsets: x=%d, y=%d \n" # File:screen.c, line:212 msgid "Unknown visual class \"%s\", using default visual\n" msgstr "Unknown visual class \"%s\", using default visual\n" # File:screen.c, line:334 msgid "Unable to return window to screen cache" msgstr "Unable to return window to screen cache" # File:sb_set.c, line:215 msgid "Cannot split a scrollbar created with scrollbar_create()" msgstr "Cannot split a scrollbar created with scrollbar_create()" # File:sb.c, line:178 msgid "Scrollbar" msgstr "Scrollbar" # File:sb.c, line:181 msgid "Here to top" msgstr "Here to top" # File:sb.c, line:182 msgid "Here to left" msgstr "Here to left" # File:sb.c, line:189 msgid "Top to here" msgstr "Top to here" # File:sb.c, line:190 msgid "Left to here" msgstr "Left to here" # File:sb.c, line:196 msgid "Previous" msgstr "Previous" # File:sb.c, line:204 msgid "Split View" msgstr "Split View" # File:sb.c, line:211 msgid "Join Views" msgstr "Join Views" # File:seln.c, line:47 msgid "%s would not open\n" msgstr "%s would not open\n" # File:seln.c, line:81 # msgid "%s would not open\n" # msgstr "%s would not open\n" # File:seln.c, line:98 msgid "%s not in correct format\n" msgstr "%s not in correct format\n" # File:seln.c, line:120 # msgid "%s would not open\n" # msgstr "%s would not open\n" # File:sel_appl.c, line:63 msgid "Couldn't malloc request buffer (no swap space?)\n" msgstr "Couldn't malloc request buffer (no swap space?)\n" # File:sel_appl.c, line:187 # msgid "Couldn't malloc request buffer (no swap space?)\n" # msgstr "Couldn't malloc request buffer (no swap space?)\n" # File:sel_clnt.c, line:118 msgid "Selection library internal error:\n%s\n" msgstr "Selection library internal error:\n%s\n" # File:sel_clnt.c, line:118 msgid "Selection library asked to destroy a 0 client." msgstr "Selection library asked to destroy a 0 client." # File:sel_clnt.c, line:157 # msgid "Selection library internal error:\n%s\n" # msgstr "Selection library internal error:\n%s\n" # File:sel_clnt.c, line:157 msgid "Acquire for a null client" msgstr "Acquire for a null client" # File:sel_clnt.c, line:184 # msgid "Selection library internal error:\n%s\n" # msgstr "Selection library internal error:\n%s\n" # File:sel_clnt.c, line:184 msgid "Service wouldn't let us acquire selection" msgstr "Service wouldn't let us acquire selection" # File:sel_clnt.c, line:186 msgid "requested selection: %d; result: %d\n" msgstr "requested selection: %d; result: %d\n" # File:sel_clnt.c, line:211 # msgid "Selection library internal error:\n%s\n" # msgstr "Selection library internal error:\n%s\n" # File:sel_clnt.c, line:211 msgid "Done for a null client" msgstr "Done for a null client" # File:sel_clnt.c, line:424 # msgid "Selection library internal error:\n%s\n" # msgstr "Selection library internal error:\n%s\n" # File:sel_clnt.c, line:424 msgid "Error, Non local request " msgstr "Error, Non local request " # File:sel_clnt.c, line:532 # msgid "Selection library internal error:\n%s\n" # msgstr "Selection library internal error:\n%s\n" # File:sel_clnt.c, line:532 msgid "Other holder confused about selection ranks" msgstr "Other holder confused about selection ranks" # File:sel_clnt.c, line:688 # msgid "Selection library internal error:\n%s\n" # msgstr "Selection library internal error:\n%s\n" # File:sel_clnt.c, line:688 msgid "Selection service can't hold file" msgstr "Selection service can't hold file" # File:sel_clnt.c, line:690 msgid "selection # %d\n" msgstr "selection # %d\n" # File:sel_clnt.c, line:696 msgid "Selection service couldn't open selection file" msgstr "Selection service couldn't open selection file" # File:sel_clnt.c, line:698 msgid "filename: \"%s\"\n" msgstr "filename: \"%s\"\n" # File:sel_policy.c, line:58 # msgid "Selection library internal error:\n%s\n" # msgstr "Selection library internal error:\n%s\n" # File:sel_policy.c, line:58 msgid "figure_response got a malformed buffer." msgstr "figure_response got a malformed buffer." # File:sel_policy.c, line:134 # msgid "Selection library internal error:\n%s\n" # msgstr "Selection library internal error:\n%s\n" # File:sel_policy.c, line:134 # msgid "figure_response got a malformed buffer." # msgstr "figure_response got a malformed buffer." # File:sel_agent.c, line:107 # msgid "Selection library internal error:\n%s\n" # msgstr "Selection library internal error:\n%s\n" # File:sel_agent.c, line:107 msgid "Selection service: unable to create service client" msgstr "Selection service: unable to create service client" # File:sel_agent.c, line:124 # msgid "Selection library internal error:\n%s\n" # msgstr "Selection library internal error:\n%s\n" # File:sel_agent.c, line:124 msgid "Could not create window" msgstr "Could not create window" # File:sel_agent.c, line:139 # msgid "Selection library internal error:\n%s\n" # msgstr "Selection library internal error:\n%s\n" # File:sel_agent.c, line:139 msgid "No CLIPBOARD atom" msgstr "No CLIPBOARD atom" # File:sel_agent.c, line:144 # msgid "Selection library internal error:\n%s\n" # msgstr "Selection library internal error:\n%s\n" # File:sel_agent.c, line:144 msgid "No _SUN_SELN_CARET atom" msgstr "No _SUN_SELN_CARET atom" # File:sel_agent.c, line:315 msgid "Agent couldn't reply about a file" msgstr "Agent couldn't reply about a file" # File:sel_agent.c, line:320 msgid "Agent couldn't reset to start of file" msgstr "Agent couldn't reset to start of file" # File:sel_agent.c, line:700 # msgid "Selection library internal error:\n%s\n" # msgstr "Selection library internal error:\n%s\n" # File:sel_agent.c, line:700 msgid "UNKNOWN selection cannot be acquired" msgstr "UNKNOWN selection cannot be acquired" # File:sel_agent.c, line:729 # msgid "Selection library internal error:\n%s\n" # msgstr "Selection library internal error:\n%s\n" # File:sel_agent.c, line:729 msgid "The selection is not implemented" msgstr "The selection is not implemented" # File:sel_agent.c, line:1189 # msgid "Selection library internal error:\n%s\n" # msgstr "Selection library internal error:\n%s\n" # File:sel_agent.c, line:1189 msgid "Error while trying XGetWindowProperty" msgstr "Error while trying XGetWindowProperty" # File:sel_agent.c, line:1217 # msgid "Selection library internal error:\n%s\n" # msgstr "Selection library internal error:\n%s\n" # File:sel_agent.c, line:1217 msgid "This process does not hold the selection" msgstr "This process does not hold the selection" # File:sel_agent.c, line:1317 # msgid "Selection library internal error:\n%s\n" # msgstr "Selection library internal error:\n%s\n" # File:sel_agent.c, line:1317 msgid "Garbage returned" msgstr "Garbage returned" # File:sel_agent.c, line:1416 # msgid "Selection library internal error:\n%s\n" # msgstr "Selection library internal error:\n%s\n" # File:sel_agent.c, line:1416 msgid "cannot specify propertyfield to be None in XConvertSelection" msgstr "cannot specify propertyfield to be None in XConvertSelection" # File:sel_agent.c, line:1508 # msgid "Selection library internal error:\n%s\n" # msgstr "Selection library internal error:\n%s\n" # File:sel_agent.c, line:1508 msgid "Selection Timed out" msgstr "Selection Timed out" # File:sel_agent.c, line:1551 # msgid "Selection library internal error:\n%s\n" # msgstr "Selection library internal error:\n%s\n" # File:sel_agent.c, line:1551 msgid "Select call returned error" msgstr "Select call returned error" # File:sel_agent.c, line:1552 msgid "Select" msgstr "Select" # File:sel_agent.c, line:1736 # msgid "Selection library internal error:\n%s\n" # msgstr "Selection library internal error:\n%s\n" # File:sel_agent.c, line:1736 msgid "Couldn't find property atom" msgstr "Couldn't find property atom" # File:sel_agent.c, line:1764 msgid "Couldn't get selection atom, selections may not work. (Selection package)" msgstr "Couldn't get selection atom, selections may not work. (Selection package)" # File:sel_own.c, line:322 msgid "Selection ownership failed" msgstr "Selection ownership failed" # File:sel_own.c, line:662 msgid "XGetWindowProperty Failed" msgstr "XGetWindowProperty Failed" # File:sel_own.c, line:1050 # msgid "XGetWindowProperty Failed" # msgstr "XGetWindowProperty Failed" # File:sel_req.c, line:491 # msgid "XGetWindowProperty Failed" # msgstr "XGetWindowProperty Failed" # File:sel_req.c, line:814 # msgid "XGetWindowProperty Failed" # msgstr "XGetWindowProperty Failed" # File:sel_req.c, line:874 # msgid "XGetWindowProperty Failed" # msgstr "XGetWindowProperty Failed" # File:sel_req.c, line:907 # msgid "XGetWindowProperty Failed" # msgstr "XGetWindowProperty Failed" # File:sel_req.c, line:974 # msgid "XGetWindowProperty Failed" # msgstr "XGetWindowProperty Failed" # File:sel_req.c, line:1417 # msgid "XGetWindowProperty Failed" # msgstr "XGetWindowProperty Failed" # File:sel_req.c, line:1512 # msgid "XGetWindowProperty Failed" # msgstr "XGetWindowProperty Failed" # File:sel_util.c, line:119 msgid "xv_sel_get_last_event_time: Unable to get the last event time" msgstr "xv_sel_get_last_event_time: Unable to get the last event time" # File:svr_x.c, line:275 msgid "Problems setting default modifier mapping" msgstr "Problems setting default modifier mapping" # File:svr_parse.c, line:368 msgid "ctrl" msgstr "ctrl" # File:svr_parse.c, line:387 msgid "shift" msgstr "shift" # File:svr_parse.c, line:399 msgid "meta" msgstr "meta" # File:svr_parse.c, line:410 msgid "alt" msgstr "alt" # File:server.c, line:414 msgid "Not enough memory to save context for new server" msgstr "Not enough memory to save context for new server" # File:server.c, line:833 msgid "Inputlang is different from basiclocale" msgstr "Inputlang is different from basiclocale" # File:server.c, line:994 msgid "Could not obtain the Basic Locale " "settings! - Defaulting to \"C\"" msgstr "Could not obtain the Basic Locale " "settings! - Defaulting to \"C\"" # File:server.c, line:1040 msgid "Error when setting all locale categories" " to \"%s\" (set via %s)" msgstr "Error when setting all locale categories" " to \"%s\" (set via %s)" # File:server.c, line:1071 msgid "Can not use \"%s\" as locale category" " %s (set via %s) while %s is \"%s\" - " "Defaulting to \"C\"" msgstr "Can not use \"%s\" as locale category" " %s (set via %s) while %s is \"%s\" - " "Defaulting to \"C\"" # File:server.c, line:1100 msgid "Error when setting locale category (%s) to " "\"%s\" (set via %s" msgstr "Error when setting locale category (%s) to " "\"%s\" (set via %s" # File:server.c, line:1120 msgid "Supplied locale \"%s\" (set via %s) is not " "supported by Xlib - Defaulting to \"C\"" msgstr "Supplied locale \"%s\" (set via %s) is not " "supported by Xlib - Defaulting to \"C\"" # File:server.c, line:1130 msgid "Error in setting Xlib locale Modifiers" msgstr "Error in setting Xlib locale Modifiers" # File:server.c, line:1161 msgid "application (attributes)" msgstr "application (attributes)" # File:server.c, line:1166 msgid "command line option or X resources" msgstr "command line option or X resources" # File:server.c, line:1170 msgid "environment variable(s)" msgstr "environment variable(s)" # File:server.c, line:1174 msgid "system default (C)" msgstr "system default (C)" # File:server.c, line:1178 msgid "Unknown" msgstr "Unknown" # File:server.c, line:1202 msgid "Basic Locale" msgstr "Basic Locale" # File:server.c, line:1206 msgid "Display Language" msgstr "Display Language" # File:server.c, line:1210 msgid "Input Language" msgstr "Input Language" # File:server.c, line:1214 msgid "Numeric Format" msgstr "Numeric Format" # File:server.c, line:1218 msgid "Time Format" msgstr "Time Format" # File:server.c, line:1222 # msgid "Unknown" # msgstr "Unknown" # File:server.c, line:1270 msgid "Xlib does not support locale \"%s\" (" "which is for non internatinalized " "program) - Defaulting to \"C\"" msgstr "Xlib does not support locale \"%s\" (" "which is for non internatinalized " "program) - Defaulting to \"C\"" # File:server.c, line:1520 msgid "Can't create SERVER_JOURNAL_ATOM atom" msgstr "Can't create SERVER_JOURNAL_ATOM atom" # File:server.c, line:1737 msgid "Only support Shift, Ctrl and Meta as mouse button modifiers" msgstr "Only support Shift, Ctrl and Meta as mouse button modifiers" # File:server.c, line:1793 msgid "Requested input method style not supported." msgstr "Requested input method style not supported." # File:svrim_ops.c, line:46 msgid "server_image_rop(): src is not a server image" msgstr "server_image_rop(): src is not a server image" # File:svrim_ops.c, line:85 msgid "server_image_rop(): dest is not a memory pixrect or a server_image" msgstr "server_image_rop(): dest is not a memory pixrect or a server_image" # File:svrim_ops.c, line:108 msgid "server_image_stencil(): stencil is not a memory pr or a server image" msgstr "server_image_stencil(): stencil is not a memory pr or a server image" # File:svrim_ops.c, line:129 msgid "server_image_stencil(): Can't create mpr in server_image_stencil" msgstr "server_image_stencil(): Can't create mpr in server_image_stencil" # File:svrim_ops.c, line:144 # msgid "server_image_stencil(): Can't create mpr in server_image_stencil" # msgstr "server_image_stencil(): Can't create mpr in server_image_stencil" # File:svrim_ops.c, line:175 msgid "server_image_stencil(): dest is mpr, src isn't image pr" msgstr "server_image_stencil(): dest is mpr, src isn't image pr" # File:svrim_ops.c, line:203 msgid "server_image_stencil(): dest is not mpr or server_image_pr" msgstr "server_image_stencil(): dest is not mpr or server_image_pr" # File:svrim_ops.c, line:238 msgid "server_image_replrop(): Unable to create server image" msgstr "server_image_replrop(): Unable to create server image" # File:svrim_ops.c, line:255 msgid "server_image_replrop(): dest is mpr, src isn't image pr" msgstr "server_image_replrop(): dest is mpr, src isn't image pr" # File:svrim_ops.c, line:285 msgid "server_image_replrop(): dest is image pr, src isn't image pr or mpr" msgstr "server_image_replrop(): dest is image pr, src isn't image pr or mpr" # File:svrim_ops.c, line:295 msgid "server_image_replrop(): dest is not mpr or server_image_pr" msgstr "server_image_replrop(): dest is not mpr or server_image_pr" # File:svrim_ops.c, line:342 msgid "server_image_region: Unsupported operation" msgstr "server_image_region: Unsupported operation" # File:svrim_ops.c, line:356 msgid "Server images do not have associated colormaps" msgstr "Server images do not have associated colormaps" # File:svrim_pblc.c, line:72 msgid "Server image alloc failed" msgstr "Server image alloc failed" # File:svrim_pblc.c, line:133 msgid "SERVER_IMAGE_BITMAP_FILE: Server image creation failed" msgstr "SERVER_IMAGE_BITMAP_FILE: Server image creation failed" # File:svrim_pblc.c, line:224 msgid "SERVER_IMAGE_PIXMAP: Unable to get geometry" msgstr "SERVER_IMAGE_PIXMAP: Unable to get geometry" # File:svrim_pblc.c, line:278 msgid "Colormap segment %s not found" msgstr "Colormap segment %s not found" # File:svrim_pblc.c, line:323 msgid "Server Image creation failed" msgstr "Server Image creation failed" # File:txt_once.c, line:677 msgid "Can't load specified file:" msgstr "Can't load specified file:" # File:txt_once.c, line:679 msgid "Starting with empty buffer." msgstr "Starting with empty buffer." # File:txt_once.c, line:681 # msgid "Continue" # msgstr "Continue" # File:txt_once.c, line:694 # msgid "Can't load specified file:" # msgstr "Can't load specified file:" # File:txt_once.c, line:696 # msgid "Starting with empty buffer." # msgstr "Starting with empty buffer." # File:txt_once.c, line:698 # msgid "Continue" # msgstr "Continue" # File:txt_once.c, line:1117 msgid "The text has been edited.\n\nYou may discard edits now and quit, or cancel\nthe request to Quit and go back and either save the\ncontents or store the contents as a new file." msgstr "The text has been edited.\n\nYou may discard edits now and quit, or cancel\nthe request to Quit and go back and either save the\ncontents or store the contents as a new file." # File:txt_once.c, line:1124 msgid "Cancel, do NOT Quit" msgstr "Cancel, do NOT Quit" # File:txt_once.c, line:1126 msgid "Discard edits, then Quit" msgstr "Discard edits, then Quit" # File:txt_once.c, line:1140 # msgid "The text has been edited.\n\nYou may discard edits now and quit, or cancel\nthe request to Quit and go back and either save the\ncontents or store the contents as a new file." # msgstr "The text has been edited.\n\nYou may discard edits now and quit, or cancel\nthe request to Quit and go back and either save the\ncontents or store the contents as a new file." # File:txt_once.c, line:1147 # msgid "Cancel, do NOT Quit" # msgstr "Cancel, do NOT Quit" # File:txt_once.c, line:1149 # msgid "Discard edits, then Quit" # msgstr "Discard edits, then Quit" # File:txt_once.c, line:1228 # msgid "The text has been edited.\n\nYou may discard edits now and quit, or cancel\nthe request to Quit and go back and either save the\ncontents or store the contents as a new file." # msgstr "The text has been edited.\n\nYou may discard edits now and quit, or cancel\nthe request to Quit and go back and either save the\ncontents or store the contents as a new file." # File:txt_once.c, line:1235 # msgid "Cancel, do NOT Quit" # msgstr "Cancel, do NOT Quit" # File:txt_once.c, line:1237 # msgid "Discard edits, then Quit" # msgstr "Discard edits, then Quit" # File:txt_once.c, line:1251 # msgid "The text has been edited.\n\nYou may discard edits now and quit, or cancel\nthe request to Quit and go back and either save the\ncontents or store the contents as a new file." # msgstr "The text has been edited.\n\nYou may discard edits now and quit, or cancel\nthe request to Quit and go back and either save the\ncontents or store the contents as a new file." # File:txt_once.c, line:1258 # msgid "Cancel, do NOT Quit" # msgstr "Cancel, do NOT Quit" # File:txt_once.c, line:1260 # msgid "Discard edits, then Quit" # msgstr "Discard edits, then Quit" # File:txt_input.c, line:135 msgid "The text is read-only and cannot be edited.\nPress \"Continue\" to proceed." msgstr "The text is read-only and cannot be edited.\nPress \"Continue\" to proceed." # File:txt_input.c, line:138 # msgid "Continue" # msgstr "Continue" # File:txt_input.c, line:151 # msgid "The text is read-only and cannot be edited.\nPress \"Continue\" to proceed." # msgstr "The text is read-only and cannot be edited.\nPress \"Continue\" to proceed." # File:txt_input.c, line:154 # msgid "Continue" # msgstr "Continue" # File:txt_input.c, line:541 msgid "Cannot locate filter '%s'." msgstr "Cannot locate filter '%s'." # File:txt_input.c, line:545 msgid "Unexpected problem with filter '%s'." msgstr "Unexpected problem with filter '%s'." # File:txt_input.c, line:559 # msgid "Continue" # msgstr "Continue" # File:txt_input.c, line:573 # msgid "Continue" # msgstr "Continue" # File:txt_input.c, line:1612 msgid "Illegal Operation.\nLoad File Has Been Disabled." msgstr "Illegal Operation.\nLoad File Has Been Disabled." # File:txt_input.c, line:1615 # msgid "Continue" # msgstr "Continue" # File:txt_input.c, line:1628 # msgid "Illegal Operation.\nLoad File Has Been Disabled." # msgstr "Illegal Operation.\nLoad File Has Been Disabled." # File:txt_input.c, line:1631 # msgid "Continue" # msgstr "Continue" # File:txt_edit.c, line:106 # msgid "Continue" # msgstr "Continue" # File:txt_edit.c, line:109 msgid "Action failed -" msgstr "Action failed -" # File:txt_edit.c, line:110 msgid "The memory buffer is full.\nIf this is an isolated case, you can circumvent\nthis condition by undoing the operation you just\nperformed, storing the contents of the subwindow\nto a file using the text menu, and then redoing\nthe operation. Or, you can enlarge the size of\nthis buffer by changing the appropriate value in\nthe .Xdefaults file (Text.MaxDocumentSize)." msgstr "The memory buffer is full.\nIf this is an isolated case, you can circumvent\nthis condition by undoing the operation you just\nperformed, storing the contents of the subwindow\nto a file using the text menu, and then redoing\nthe operation. Or, you can enlarge the size of\nthis buffer by changing the appropriate value in\nthe .Xdefaults file (Text.MaxDocumentSize)." # File:txt_edit.c, line:132 # msgid "Continue" # msgstr "Continue" # File:txt_edit.c, line:135 # msgid "Action failed -" # msgstr "Action failed -" # File:txt_edit.c, line:136 # msgid "The memory buffer is full.\nIf this is an isolated case, you can circumvent\nthis condition by undoing the operation you just\nperformed, storing the contents of the subwindow\nto a file using the text menu, and then redoing\nthe operation. Or, you can enlarge the size of\nthis buffer by changing the appropriate value in\nthe .Xdefaults file (Text.MaxDocumentSize)." # msgstr "The memory buffer is full.\nIf this is an isolated case, you can circumvent\nthis condition by undoing the operation you just\nperformed, storing the contents of the subwindow\nto a file using the text menu, and then redoing\nthe operation. Or, you can enlarge the size of\nthis buffer by changing the appropriate value in\nthe .Xdefaults file (Text.MaxDocumentSize)." # File:txt_edit.c, line:163 # msgid "Continue" # msgstr "Continue" # File:txt_edit.c, line:166 # msgid "Action failed -" # msgstr "Action failed -" # File:txt_edit.c, line:167 msgid "A problem with the file system has been detected.\nFile system is probably full." msgstr "A problem with the file system has been detected.\nFile system is probably full." # File:txt_edit.c, line:182 # msgid "Continue" # msgstr "Continue" # File:txt_edit.c, line:185 # msgid "Action failed -" # msgstr "Action failed -" # File:txt_edit.c, line:186 # msgid "A problem with the file system has been detected.\nFile system is probably full." # msgstr "A problem with the file system has been detected.\nFile system is probably full." # File:txt_edit.c, line:256 msgid "Deletion failed - " msgstr "Deletion failed - " # File:txt_edit.c, line:602 msgid "Insertion failed - " msgstr "Insertion failed - " # File:txt_menu.c, line:186 msgid "Wrap at Word" msgstr "Wrap at Word" # File:txt_menu.c, line:193 msgid "Wrap at Character" msgstr "Wrap at Character" # File:txt_menu.c, line:200 # msgid "Wrap at Character" # msgstr "Wrap at Character" # File:txt_menu.c, line:201 msgid "Clip Lines" msgstr "Clip Lines" # File:txt_menu.c, line:232 msgid "Undo Last Edit" msgstr "Undo Last Edit" # File:txt_menu.c, line:246 msgid "Undo All Edits" msgstr "Undo All Edits" # File:txt_menu.c, line:262 msgid "Expand" msgstr "Expand" # File:txt_menu.c, line:269 msgid "Next" msgstr "Next" # File:txt_menu.c, line:276 # msgid "Previous" # msgstr "Previous" # File:txt_menu.c, line:293 msgid "Forward" msgstr "Forward" # File:txt_menu.c, line:307 msgid "Backward" msgstr "Backward" # File:txt_menu.c, line:319 msgid "Open..." msgstr "Open..." # File:txt_menu.c, line:333 msgid "Save " msgstr "Save " # File:txt_menu.c, line:341 msgid "Save as..." msgstr "Save as..." # File:txt_menu.c, line:364 msgid "Include..." msgstr "Include..." # File:txt_menu.c, line:371 msgid "Empty Document" msgstr "Empty Document" # File:txt_menu.c, line:391 msgid "Again" msgstr "Again" # File:txt_menu.c, line:397 msgid "Undo" msgstr "Undo" # File:txt_menu.c, line:405 msgid "Copy" msgstr "Copy" # File:txt_menu.c, line:412 msgid "Paste" msgstr "Paste" # File:txt_menu.c, line:419 msgid "Cut" msgstr "Cut" # File:txt_menu.c, line:450 msgid "Select Line at Number..." msgstr "Select Line at Number..." # File:txt_menu.c, line:457 msgid "What Line Number?" msgstr "What Line Number?" # File:txt_menu.c, line:465 msgid "Show Caret at Top" msgstr "Show Caret at Top" # File:txt_menu.c, line:472 msgid "Change Line Wrap" msgstr "Change Line Wrap" # File:txt_menu.c, line:491 msgid "Find and Replace..." msgstr "Find and Replace..." # File:txt_menu.c, line:499 msgid "Find Selection" msgstr "Find Selection" # File:txt_menu.c, line:506 msgid "Find Marked Text..." msgstr "Find Marked Text..." # File:txt_menu.c, line:513 msgid "Replace |>field<| " msgstr "Replace |>field<| " # File:txt_menu.c, line:534 msgid "Text Pane" msgstr "Text Pane" # File:txt_menu.c, line:540 msgid "File" msgstr "File" # File:txt_menu.c, line:549 msgid "View" msgstr "View" # File:txt_menu.c, line:556 msgid "Edit" msgstr "Edit" # File:txt_menu.c, line:563 msgid "Find" msgstr "Find" # File:txt_menu.c, line:572 msgid "Extras" msgstr "Extras" # File:txt_menu.c, line:651 # msgid "Edit" # msgstr "Edit" # File:txt_menu.c, line:845 # msgid "Illegal Operation.\nLoad File Has Been Disabled." # msgstr "Illegal Operation.\nLoad File Has Been Disabled." # File:txt_menu.c, line:848 # msgid "Continue" # msgstr "Continue" # File:txt_menu.c, line:861 # msgid "Illegal Operation.\nLoad File Has Been Disabled." # msgstr "Illegal Operation.\nLoad File Has Been Disabled." # File:txt_menu.c, line:864 # msgid "Continue" # msgstr "Continue" # File:txt_menu.c, line:990 msgid "Undo All Edits will discard unsaved edits.\nPlease confirm." msgstr "Undo All Edits will discard unsaved edits.\nPlease confirm." # File:txt_menu.c, line:994 msgid "Confirm, discard edits" msgstr "Confirm, discard edits" # File:txt_menu.c, line:995 # msgid "Cancel" # msgstr "Cancel" # File:txt_menu.c, line:1012 # msgid "Undo All Edits will discard unsaved edits.\nPlease confirm." # msgstr "Undo All Edits will discard unsaved edits.\nPlease confirm." # File:txt_menu.c, line:1016 # msgid "Confirm, discard edits" # msgstr "Confirm, discard edits" # File:txt_menu.c, line:1017 # msgid "Cancel" # msgstr "Cancel" # File:txt_menu.c, line:1048 msgid "Please make a primary selection in this textsw first.\nPress \"Continue\" to proceed." msgstr "Please make a primary selection in this textsw first.\nPress \"Continue\" to proceed." # File:txt_menu.c, line:1051 # msgid "Continue" # msgstr "Continue" # File:txt_menu.c, line:1067 # msgid "Please make a primary selection in this textsw first.\nPress \"Continue\" to proceed." # msgstr "Please make a primary selection in this textsw first.\nPress \"Continue\" to proceed." # File:txt_menu.c, line:1070 # msgid "Continue" # msgstr "Continue" # File:txt_menu.c, line:1092 msgid "Please make a primary selection first.\nPress \"Continue\" to proceed." msgstr "Please make a primary selection first.\nPress \"Continue\" to proceed." # File:txt_menu.c, line:1095 # msgid "Continue" # msgstr "Continue" # File:txt_menu.c, line:1112 # msgid "Please make a primary selection first.\nPress \"Continue\" to proceed." # msgstr "Please make a primary selection first.\nPress \"Continue\" to proceed." # File:txt_menu.c, line:1115 # msgid "Continue" # msgstr "Continue" # File:txt_menu.c, line:1137 msgid "Nothing on the clipboard to paste in.\nPress \"Continue\" to proceed." msgstr "Nothing on the clipboard to paste in.\nPress \"Continue\" to proceed." # File:txt_menu.c, line:1140 # msgid "Continue" # msgstr "Continue" # File:txt_menu.c, line:1156 # msgid "Nothing on the clipboard to paste in.\nPress \"Continue\" to proceed." # msgstr "Nothing on the clipboard to paste in.\nPress \"Continue\" to proceed." # File:txt_menu.c, line:1159 # msgid "Continue" # msgstr "Continue" # File:txt_menu.c, line:1257 # msgid "Please make a primary selection first.\nPress \"Continue\" to proceed." # msgstr "Please make a primary selection first.\nPress \"Continue\" to proceed." # File:txt_menu.c, line:1260 # msgid "Continue" # msgstr "Continue" # File:txt_menu.c, line:1273 # msgid "Please make a primary selection first.\nPress \"Continue\" to proceed." # msgstr "Please make a primary selection first.\nPress \"Continue\" to proceed." # File:txt_menu.c, line:1276 # msgid "Continue" # msgstr "Continue" # File:txt_menu.c, line:1288 msgid "Selection starts in line %d." msgstr "Selection starts in line %d." # File:txt_menu.c, line:1301 msgid "Press \"Continue\" to proceed." msgstr "Press \"Continue\" to proceed." # File:txt_menu.c, line:1304 # msgid "Continue" # msgstr "Continue" # File:txt_menu.c, line:1318 # msgid "Press \"Continue\" to proceed." # msgstr "Press \"Continue\" to proceed." # File:txt_menu.c, line:1320 # msgid "Continue" # msgstr "Continue" # File:txt_menu.c, line:1536 msgid "Unable to Save Current File." msgstr "Unable to Save Current File." # File:txt_menu.c, line:1538 # msgid "Continue" # msgstr "Continue" # File:txt_menu.c, line:1550 # msgid "Unable to Save Current File." # msgstr "Unable to Save Current File." # File:txt_menu.c, line:1552 # msgid "Continue" # msgstr "Continue" # File:txt_menu.c, line:1570 msgid "File has not been modified.\nSave File operation ignored." msgstr "File has not been modified.\nSave File operation ignored." # File:txt_menu.c, line:1573 # msgid "Continue" # msgstr "Continue" # File:txt_menu.c, line:1586 # msgid "File has not been modified.\nSave File operation ignored." # msgstr "File has not been modified.\nSave File operation ignored." # File:txt_menu.c, line:1589 # msgid "Continue" # msgstr "Continue" # File:txt_event.c, line:467 msgid "textsw adding timer" msgstr "textsw adding timer" # File:txt_event.c, line:482 msgid "textsw removing timer" msgstr "textsw removing timer" # File:txt_file.c, line:409 msgid "Cannot create piece stream." msgstr "Cannot create piece stream." # File:txt_file.c, line:416 msgid "Cannot load; " msgstr "Cannot load; " # File:txt_file.c, line:418 msgid "file" msgstr "file" # File:txt_file.c, line:442 msgid "INTERNAL ERROR: Cannot create piece stream." msgstr "INTERNAL ERROR: Cannot create piece stream." # File:txt_file.c, line:449 msgid "Unable to load file:" msgstr "Unable to load file:" # File:txt_file.c, line:518 # msgid "Continue" # msgstr "Continue" # File:txt_file.c, line:533 # msgid "Continue" # msgstr "Continue" # File:txt_file.c, line:616 msgid "removing checkpoint file:" msgstr "removing checkpoint file:" # File:txt_file.c, line:654 msgid "Unable to Save Current File. " msgstr "Unable to Save Current File. " # File:txt_file.c, line:655 msgid "Cannot back-up file:" msgstr "Cannot back-up file:" # File:txt_file.c, line:661 # msgid "Unable to Save Current File. " # msgstr "Unable to Save Current File. " # File:txt_file.c, line:662 msgid "No space for back-up file:" msgstr "No space for back-up file:" # File:txt_file.c, line:668 # msgid "Unable to Save Current File. " # msgstr "Unable to Save Current File. " # File:txt_file.c, line:669 msgid "Cannot re-write file:" msgstr "Cannot re-write file:" # File:txt_file.c, line:675 # msgid "Unable to Save Current File. " # msgstr "Unable to Save Current File. " # File:txt_file.c, line:676 msgid "INTERNAL ERROR: Forgot the name of the file." msgstr "INTERNAL ERROR: Forgot the name of the file." # File:txt_file.c, line:686 # msgid "Unable to Save Current File. " # msgstr "Unable to Save Current File. " # File:txt_file.c, line:687 msgid "An INTERNAL ERROR has occurred." msgstr "An INTERNAL ERROR has occurred." # File:txt_file.c, line:705 # msgid "Continue" # msgstr "Continue" # File:txt_file.c, line:722 # msgid "Continue" # msgstr "Continue" # File:txt_file.c, line:760 msgid "es_ps_original" msgstr "es_ps_original" # File:txt_file.c, line:790 msgid "Unable to Save Current File.\nWas the file edited with another editor?." msgstr "Unable to Save Current File.\nWas the file edited with another editor?." # File:txt_file.c, line:793 # msgid "Continue" # msgstr "Continue" # File:txt_file.c, line:807 # msgid "Unable to Save Current File.\nWas the file edited with another editor?." # msgstr "Unable to Save Current File.\nWas the file edited with another editor?." # File:txt_file.c, line:810 # msgid "Continue" # msgstr "Continue" # File:txt_file.c, line:819 msgid "ps_replace_original" msgstr "ps_replace_original" # File:txt_file.c, line:848 msgid "es_file_create" msgstr "es_file_create" # File:txt_file.c, line:851 msgid "textsw_save_store_common" msgstr "textsw_save_store_common" # File:txt_file.c, line:856 msgid " %s; status = 0x%x" msgstr " %s; status = 0x%x" # File:txt_file.c, line:954 # msgid "Insertion failed - " # msgstr "Insertion failed - " # File:txt_file.c, line:1095 msgid "Unable to Include File. An INTERNAL ERROR has occurred.: " msgstr "Unable to Include File. An INTERNAL ERROR has occurred.: " # File:txt_file.c, line:1097 msgid "Unable to Include File." msgstr "Unable to Include File." # File:txt_file.c, line:1098 # msgid "An INTERNAL ERROR has occurred." # msgstr "An INTERNAL ERROR has occurred." # File:txt_file.c, line:1116 # msgid "Continue" # msgstr "Continue" # File:txt_file.c, line:1133 # msgid "Continue" # msgstr "Continue" # File:txt_file.c, line:1197 # msgid "Unable to Include File. An INTERNAL ERROR has occurred.: " # msgstr "Unable to Include File. An INTERNAL ERROR has occurred.: " # File:txt_file.c, line:1199 # msgid "Unable to Include File." # msgstr "Unable to Include File." # File:txt_file.c, line:1200 # msgid "An INTERNAL ERROR has occurred." # msgstr "An INTERNAL ERROR has occurred." # File:txt_file.c, line:1218 # msgid "Continue" # msgstr "Continue" # File:txt_file.c, line:1235 # msgid "Continue" # msgstr "Continue" # File:txt_file.c, line:1300 msgid "Unable to Store as New File. " msgstr "Unable to Store as New File. " # File:txt_file.c, line:1301 # msgid "INTERNAL ERROR: Forgot the name of the file." # msgstr "INTERNAL ERROR: Forgot the name of the file." # File:txt_file.c, line:1307 # msgid "Unable to Store as New File. " # msgstr "Unable to Store as New File. " # File:txt_file.c, line:1308 msgid "Problems accessing specified file." msgstr "Problems accessing specified file." # File:txt_file.c, line:1329 msgid "Please confirm Store as New File:" msgstr "Please confirm Store as New File:" # File:txt_file.c, line:1336 msgid "That file exists and has data in it." msgstr "That file exists and has data in it." # File:txt_file.c, line:1338 # msgid "Confirm" # msgstr "Confirm" # File:txt_file.c, line:1339 # msgid "Cancel" # msgstr "Cancel" # File:txt_file.c, line:1353 # msgid "Please confirm Store as New File:" # msgstr "Please confirm Store as New File:" # File:txt_file.c, line:1360 # msgid "That file exists and has data in it." # msgstr "That file exists and has data in it." # File:txt_file.c, line:1362 # msgid "Confirm" # msgstr "Confirm" # File:txt_file.c, line:1363 # msgid "Cancel" # msgstr "Cancel" # File:txt_file.c, line:1377 # msgid "Unable to Store as New File. " # msgstr "Unable to Store as New File. " # File:txt_file.c, line:1378 msgid "File system full." msgstr "File system full." # File:txt_file.c, line:1384 # msgid "Unable to Store as New File. " # msgstr "Unable to Store as New File. " # File:txt_file.c, line:1385 msgid "Use Save Current File instead." msgstr "Use Save Current File instead." # File:txt_file.c, line:1395 # msgid "Unable to Store as New File. " # msgstr "Unable to Store as New File. " # File:txt_file.c, line:1396 # msgid "An INTERNAL ERROR has occurred." # msgstr "An INTERNAL ERROR has occurred." # File:txt_file.c, line:1413 # msgid "Continue" # msgstr "Continue" # File:txt_file.c, line:1429 # msgid "Continue" # msgstr "Continue" # File:txt_file.c, line:1706 msgid "Unrecognized file name. Unable to match specified pattern." msgstr "Unrecognized file name. Unable to match specified pattern." # File:txt_file.c, line:1711 msgid "Unrecognized file name. Filename contains only blank or tab characters." msgstr "Unrecognized file name. Filename contains only blank or tab characters." # File:txt_file.c, line:1719 msgid "Unrecognized file name. No files match specified pattern." msgstr "Unrecognized file name. No files match specified pattern." # File:txt_file.c, line:1722 msgid "Unrecognized file name. Too many files match specified pattern" msgstr "Unrecognized file name. Too many files match specified pattern" # File:txt_file.c, line:1773 msgid "Unrecognized file name. Unable to expand specified pattern: " msgstr "Unrecognized file name. Unable to expand specified pattern: " # File:txt_file.c, line:1785 msgid "Unrecognized file name.\nUnable to expand specified pattern:" msgstr "Unrecognized file name.\nUnable to expand specified pattern:" # File:txt_file.c, line:1793 # msgid "Continue" # msgstr "Continue" # File:txt_file.c, line:1806 # msgid "Unrecognized file name.\nUnable to expand specified pattern:" # msgstr "Unrecognized file name.\nUnable to expand specified pattern:" # File:txt_file.c, line:1814 # msgid "Continue" # msgstr "Continue" # File:txt_file.c, line:1822 msgid "Unrecognized file name. Filename contains only blank or tab characters. Please use a valid file name." msgstr "Unrecognized file name. Filename contains only blank or tab characters. Please use a valid file name." # File:txt_file.c, line:1834 msgid "Unrecognized file name.\nFile name contains only blank or tab characters.\nPlease use a valid file name." msgstr "Unrecognized file name.\nFile name contains only blank or tab characters.\nPlease use a valid file name." # File:txt_file.c, line:1838 # msgid "Continue" # msgstr "Continue" # File:txt_file.c, line:1851 # msgid "Unrecognized file name.\nFile name contains only blank or tab characters.\nPlease use a valid file name." # msgstr "Unrecognized file name.\nFile name contains only blank or tab characters.\nPlease use a valid file name." # File:txt_file.c, line:1855 # msgid "Continue" # msgstr "Continue" # File:txt_file.c, line:1866 msgid "Unrecognized file name. No files match specified pattern: " msgstr "Unrecognized file name. No files match specified pattern: " # File:txt_file.c, line:1878 msgid "Unrecognized file name.\nNo files match specified pattern:" msgstr "Unrecognized file name.\nNo files match specified pattern:" # File:txt_file.c, line:1886 # msgid "Continue" # msgstr "Continue" # File:txt_file.c, line:1899 # msgid "Unrecognized file name.\nNo files match specified pattern:" # msgstr "Unrecognized file name.\nNo files match specified pattern:" # File:txt_file.c, line:1907 # msgid "Continue" # msgstr "Continue" # File:txt_file.c, line:1914 msgid "Unrecognized file name. Too many files match specified pattern: " msgstr "Unrecognized file name. Too many files match specified pattern: " # File:txt_file.c, line:1926 msgid "Unrecognized file name.\nToo many files match specified pattern:" msgstr "Unrecognized file name.\nToo many files match specified pattern:" # File:txt_file.c, line:1934 # msgid "Continue" # msgstr "Continue" # File:txt_file.c, line:1947 # msgid "Unrecognized file name.\nToo many files match specified pattern:" # msgstr "Unrecognized file name.\nToo many files match specified pattern:" # File:txt_file.c, line:1955 # msgid "Continue" # msgstr "Continue" # File:txt_file.c, line:1985 msgid "After removing this message, please select a file name and choose this menu option again." msgstr "After removing this message, please select a file name and choose this menu option again." # File:txt_file.c, line:2005 msgid "Please select a filename and choose this menu option again." msgstr "Please select a filename and choose this menu option again." # File:txt_file.c, line:2007 # msgid "Continue" # msgstr "Continue" # File:txt_file.c, line:2020 # msgid "Please select a filename and choose this menu option again." # msgstr "Please select a filename and choose this menu option again." # File:txt_file.c, line:2022 # msgid "Continue" # msgstr "Continue" # File:txt_file.c, line:2181 # msgid "Continue" # msgstr "Continue" # File:txt_file.c, line:2196 # msgid "Continue" # msgstr "Continue" # File:txt_file.c, line:2273 msgid "Unable to access file" msgstr "Unable to access file" # File:txt_file.c, line:2274 msgid "Unable to cd to directory" msgstr "Unable to cd to directory" # File:txt_file.c, line:2278 # msgid "Unable to access file" # msgstr "Unable to access file" # File:txt_file.c, line:2279 # msgid "Unable to cd to directory" # msgstr "Unable to cd to directory" # File:txt_file.c, line:2296 # msgid "Continue" # msgstr "Continue" # File:txt_file.c, line:2313 # msgid "Continue" # msgstr "Continue" # File:txt_file.c, line:2381 msgid "Cannot access file" msgstr "Cannot access file" # File:txt_file.c, line:2382 msgid "Cannot cd to directory" msgstr "Cannot cd to directory" # File:txt_file.c, line:2487 msgid "The text has been edited.\nClear Log will discard these edits. Please confirm." msgstr "The text has been edited.\nClear Log will discard these edits. Please confirm." # File:txt_file.c, line:2490 # msgid "Cancel" # msgstr "Cancel" # File:txt_file.c, line:2492 # msgid "Confirm, discard edits" # msgstr "Confirm, discard edits" # File:txt_file.c, line:2506 # msgid "The text has been edited.\nClear Log will discard these edits. Please confirm." # msgstr "The text has been edited.\nClear Log will discard these edits. Please confirm." # File:txt_file.c, line:2509 # msgid "Cancel" # msgstr "Cancel" # File:txt_file.c, line:2511 # msgid "Confirm, discard edits" # msgstr "Confirm, discard edits" # File:txt_file.c, line:2552 msgid "Please select a file name and choose this option again." msgstr "Please select a file name and choose this option again." # File:txt_file.c, line:2554 # msgid "Continue" # msgstr "Continue" # File:txt_file.c, line:2567 # msgid "Please select a file name and choose this option again." # msgstr "Please select a file name and choose this option again." # File:txt_file.c, line:2569 # msgid "Continue" # msgstr "Continue" # File:txt_file.c, line:2599 msgid "The text has been edited.\nLoad File will discard these edits. Please confirm." msgstr "The text has been edited.\nLoad File will discard these edits. Please confirm." # File:txt_file.c, line:2603 # msgid "Confirm, discard edits" # msgstr "Confirm, discard edits" # File:txt_file.c, line:2604 # msgid "Cancel" # msgstr "Cancel" # File:txt_file.c, line:2618 # msgid "The text has been edited.\nLoad File will discard these edits. Please confirm." # msgstr "The text has been edited.\nLoad File will discard these edits. Please confirm." # File:txt_file.c, line:2622 # msgid "Confirm, discard edits" # msgstr "Confirm, discard edits" # File:txt_file.c, line:2623 # msgid "Cancel" # msgstr "Cancel" # File:txt_file.c, line:2782 msgid "Warning: File '%ws' is loaded.\nThis file contains invalid characters in the current locale '%s'.\nThese invalid characters have been skipped over when this file \nwas loaded. These invalid characters will not be stored when the \ncontents of the textsw is saved. " msgstr "Warning: File '%ws' is loaded.\nThis file contains invalid characters in the current locale '%s'.\nThese invalid characters have been skipped over when this file \nwas loaded. These invalid characters will not be stored when the \ncontents of the textsw is saved. " # File:txt_file.c, line:2792 msgid "Warning: File '%ws' is included.\nThis file contains invalid characters in the current locale '%s'.\nThese invalid characters have been skipped over when this file was included." msgstr "Warning: File '%ws' is included.\nThis file contains invalid characters in the current locale '%s'.\nThese invalid characters have been skipped over when this file was included." # File:txt_file.c, line:2808 # msgid "Continue" # msgstr "Continue" # File:txt_file.c, line:2820 # msgid "Continue" # msgstr "Continue" # File:txt_selsvc.c, line:206 msgid "textsw selection_client is null\n" msgstr "textsw selection_client is null\n" # File:txt_selsvc.c, line:248 msgid "seln_client returned null" msgstr "seln_client returned null" # File:txt_tool.c, line:69 # msgid "The text has been edited.\n\nYou may discard edits now and quit, or cancel\nthe request to Quit and go back and either save the\ncontents or store the contents as a new file." # msgstr "The text has been edited.\n\nYou may discard edits now and quit, or cancel\nthe request to Quit and go back and either save the\ncontents or store the contents as a new file." # File:txt_tool.c, line:76 # msgid "Cancel, do NOT Quit" # msgstr "Cancel, do NOT Quit" # File:txt_tool.c, line:78 # msgid "Discard edits, then Quit" # msgstr "Discard edits, then Quit" # File:txt_tool.c, line:92 # msgid "The text has been edited.\n\nYou may discard edits now and quit, or cancel\nthe request to Quit and go back and either save the\ncontents or store the contents as a new file." # msgstr "The text has been edited.\n\nYou may discard edits now and quit, or cancel\nthe request to Quit and go back and either save the\ncontents or store the contents as a new file." # File:txt_tool.c, line:99 # msgid "Cancel, do NOT Quit" # msgstr "Cancel, do NOT Quit" # File:txt_tool.c, line:101 # msgid "Discard edits, then Quit" # msgstr "Discard edits, then Quit" # File:txt_search.c, line:355 # msgid "Find" # msgstr "Find" # File:txt_search.c, line:356 msgid "Replace" msgstr "Replace" # File:txt_search.c, line:357 msgid "Replace All" msgstr "Replace All" # File:txt_search.c, line:358 msgid "Find then Replace" msgstr "Find then Replace" # File:txt_search.c, line:359 msgid "Replace then Find" msgstr "Replace then Find" # File:txt_search.c, line:360 # msgid "Backward" # msgstr "Backward" # File:txt_search.c, line:361 # msgid "Forward" # msgstr "Forward" # File:txt_search.c, line:459 msgid "All Text" msgstr "All Text" # File:txt_search.c, line:460 msgid "To End" msgstr "To End" # File:txt_e_menu.c, line:289 msgid "extras menu file " msgstr "extras menu file " # File:txt_e_menu.c, line:291 # msgid "extras menu file " # msgstr "extras menu file " # File:txt_e_menu.c, line:304 msgid "textsw: max number of menu files is %ld" msgstr "textsw: max number of menu files is %ld" # File:txt_e_menu.c, line:388 msgid "textsw: format error in %s: line %d" msgstr "textsw: format error in %s: line %d" # File:txt_e_menu.c, line:405 msgid "textsw: icon file format error: " msgstr "textsw: icon file format error: " # File:txt_e_menu.c, line:407 # msgid "textsw: icon file format error: " # msgstr "textsw: icon file format error: " # File:txt_e_menu.c, line:602 msgid "textsw: menu strings" msgstr "textsw: menu strings" # File:txt_e_menu.c, line:620 # msgid "textsw: menu strings" # msgstr "textsw: menu strings" # File:txt_move.c, line:577 msgid "Operation timed out" msgstr "Operation timed out" # File:txt_move.c, line:580 # msgid "Illegal drop target" # msgstr "Illegal drop target" # File:txt_move.c, line:583 # msgid "Unable to acquire selection" # msgstr "Unable to acquire selection" # File:txt_move.c, line:586 # msgid "Root window is not a valid drop target" # msgstr "Root window is not a valid drop target" # File:txt_move.c, line:589 msgid "Unexpected internal error" msgstr "Unexpected internal error" # File:txt_move.c, line:594 # msgid "Drag and Drop failed:" # msgstr "Drag and Drop failed:" # File:txt_popup.c, line:171 msgid "Text:Save As" msgstr "Text:Save As" # File:txt_popup.c, line:193 msgid "Text:Open" msgstr "Text:Open" # File:txt_popup.c, line:216 msgid "Text:Save" msgstr "Text:Save" # File:txt_popup.c, line:225 msgid "Include" msgstr "Include" # File:txt_popup.c, line:226 msgid "Click Select to Include" msgstr "Click Select to Include" # File:txt_popup.c, line:242 msgid "Text:Include" msgstr "Text:Include" # File:txt_popup.c, line:260 msgid "Text:Find and Replace" msgstr "Text:Find and Replace" # File:txt_popup.c, line:278 msgid "Text:Find Marked Text" msgstr "Text:Find Marked Text" # File:txt_popup.c, line:296 msgid "Text:Line Number" msgstr "Text:Line Number" # File:txt_popup.c, line:512 msgid "Hidden Files:" msgstr "Hidden Files:" # File:txt_popup.c, line:513 msgid "Hide" msgstr "Hide" # File:txt_popup.c, line:513 msgid "Show" msgstr "Show" # File:txt_store.c, line:128 msgid "Cannot change directory.\nChange Directory Has Been Disabled." msgstr "Cannot change directory.\nChange Directory Has Been Disabled." # File:txt_store.c, line:131 # msgid "Continue" # msgstr "Continue" # File:txt_store.c, line:144 # msgid "Cannot change directory.\nChange Directory Has Been Disabled." # msgstr "Cannot change directory.\nChange Directory Has Been Disabled." # File:txt_store.c, line:147 # msgid "Continue" # msgstr "Continue" # File:txt_store.c, line:176 msgid "No file name was specified.\nSpecify a file name to store as new file." msgstr "No file name was specified.\nSpecify a file name to store as new file." # File:txt_store.c, line:179 # msgid "Continue" # msgstr "Continue" # File:txt_store.c, line:192 # msgid "No file name was specified.\nSpecify a file name to store as new file." # msgstr "No file name was specified.\nSpecify a file name to store as new file." # File:txt_store.c, line:195 # msgid "Continue" # msgstr "Continue" # File:txt_store.c, line:264 msgid "Directory:" msgstr "Directory:" # File:txt_store.c, line:278 msgid "File:" msgstr "File:" # File:txt_store.c, line:292 msgid "Store as New File" msgstr "Store as New File" # File:txt_match.c, line:106 msgid "Operation is aborted.\nThis text window is read only." msgstr "Operation is aborted.\nThis text window is read only." # File:txt_match.c, line:109 # msgid "Continue" # msgstr "Continue" # File:txt_match.c, line:122 # msgid "Operation is aborted.\nThis text window is read only." # msgstr "Operation is aborted.\nThis text window is read only." # File:txt_match.c, line:125 # msgid "Continue" # msgstr "Continue" # File:txt_match.c, line:143 msgid "Operation is aborted.\nSelected text is in read only area." msgstr "Operation is aborted.\nSelected text is in read only area." # File:txt_match.c, line:146 # msgid "Continue" # msgstr "Continue" # File:txt_match.c, line:159 # msgid "Operation is aborted.\nSelected text is in read only area." # msgstr "Operation is aborted.\nSelected text is in read only area." # File:txt_match.c, line:162 # msgid "Continue" # msgstr "Continue" # File:txt_match.c, line:212 msgid "Operation is aborted.\nSelection does not include the indicated pair." msgstr "Operation is aborted.\nSelection does not include the indicated pair." # File:txt_match.c, line:216 # msgid "Continue" # msgstr "Continue" # File:txt_match.c, line:229 # msgid "Operation is aborted.\nSelection does not include the indicated pair." # msgstr "Operation is aborted.\nSelection does not include the indicated pair." # File:txt_match.c, line:233 # msgid "Continue" # msgstr "Continue" # File:txt_match.c, line:250 msgid "Operation is aborted, because no text is selected" msgstr "Operation is aborted, because no text is selected" # File:txt_match.c, line:252 # msgid "Continue" # msgstr "Continue" # File:txt_match.c, line:265 # msgid "Operation is aborted, because no text is selected" # msgstr "Operation is aborted, because no text is selected" # File:txt_match.c, line:267 # msgid "Continue" # msgstr "Continue" # File:txt_match.c, line:349 msgid "Insert Pair" msgstr "Insert Pair" # File:txt_match.c, line:350 # msgid "Backward" # msgstr "Backward" # File:txt_match.c, line:351 # msgid "Expand" # msgstr "Expand" # File:txt_match.c, line:352 # msgid "Forward" # msgstr "Forward" # File:txt_match.c, line:353 msgid "Remove Pair" msgstr "Remove Pair" # File:txt_match.c, line:354 msgid "Find Pair" msgstr "Find Pair" # File:txt_load.c, line:82 # msgid "The text has been edited.\nLoad File will discard these edits. Please confirm." # msgstr "The text has been edited.\nLoad File will discard these edits. Please confirm." # File:txt_load.c, line:86 # msgid "Confirm, discard edits" # msgstr "Confirm, discard edits" # File:txt_load.c, line:87 # msgid "Cancel" # msgstr "Cancel" # File:txt_load.c, line:101 # msgid "The text has been edited.\nLoad File will discard these edits. Please confirm." # msgstr "The text has been edited.\nLoad File will discard these edits. Please confirm." # File:txt_load.c, line:105 # msgid "Confirm, discard edits" # msgstr "Confirm, discard edits" # File:txt_load.c, line:106 # msgid "Cancel" # msgstr "Cancel" # File:txt_load.c, line:179 # msgid "Cannot change directory.\nChange Directory Has Been Disabled." # msgstr "Cannot change directory.\nChange Directory Has Been Disabled." # File:txt_load.c, line:183 # msgid "Continue" # msgstr "Continue" # File:txt_load.c, line:196 # msgid "Cannot change directory.\nChange Directory Has Been Disabled." # msgstr "Cannot change directory.\nChange Directory Has Been Disabled." # File:txt_load.c, line:199 # msgid "Continue" # msgstr "Continue" # File:txt_load.c, line:229 msgid "No file name was specified.\nSpecify a file name to Load." msgstr "No file name was specified.\nSpecify a file name to Load." # File:txt_load.c, line:232 # msgid "Continue" # msgstr "Continue" # File:txt_load.c, line:245 # msgid "No file name was specified.\nSpecify a file name to Load." # msgstr "No file name was specified.\nSpecify a file name to Load." # File:txt_load.c, line:248 # msgid "Continue" # msgstr "Continue" # File:txt_load.c, line:289 # msgid "The text has been edited.\nLoad File will discard these edits. Please confirm." # msgstr "The text has been edited.\nLoad File will discard these edits. Please confirm." # File:txt_load.c, line:293 # msgid "Confirm, discard edits" # msgstr "Confirm, discard edits" # File:txt_load.c, line:294 # msgid "Cancel" # msgstr "Cancel" # File:txt_load.c, line:308 # msgid "The text has been edited.\nLoad File will discard these edits. Please confirm." # msgstr "The text has been edited.\nLoad File will discard these edits. Please confirm." # File:txt_load.c, line:312 # msgid "Confirm, discard edits" # msgstr "Confirm, discard edits" # File:txt_load.c, line:313 # msgid "Cancel" # msgstr "Cancel" # File:txt_load.c, line:366 # msgid "Cannot change directory.\nChange Directory Has Been Disabled." # msgstr "Cannot change directory.\nChange Directory Has Been Disabled." # File:txt_load.c, line:370 # msgid "Continue" # msgstr "Continue" # File:txt_load.c, line:383 # msgid "Cannot change directory.\nChange Directory Has Been Disabled." # msgstr "Cannot change directory.\nChange Directory Has Been Disabled." # File:txt_load.c, line:386 # msgid "Continue" # msgstr "Continue" # File:txt_load.c, line:414 # msgid "No file name was specified.\nSpecify a file name to Load." # msgstr "No file name was specified.\nSpecify a file name to Load." # File:txt_load.c, line:417 # msgid "Continue" # msgstr "Continue" # File:txt_load.c, line:430 # msgid "No file name was specified.\nSpecify a file name to Load." # msgstr "No file name was specified.\nSpecify a file name to Load." # File:txt_load.c, line:433 # msgid "Continue" # msgstr "Continue" # File:txt_load.c, line:530 # msgid "Directory:" # msgstr "Directory:" # File:txt_load.c, line:544 # msgid "File:" # msgstr "File:" # File:txt_load.c, line:558 msgid "Load File" msgstr "Load File" # File:txt_line.c, line:144 msgid "Line Number:" msgstr "Line Number:" # File:txt_line.c, line:160 msgid "Select Line at Number" msgstr "Select Line at Number" # File:txt_incl.c, line:145 # msgid "Cannot change directory.\nChange Directory Has Been Disabled." # msgstr "Cannot change directory.\nChange Directory Has Been Disabled." # File:txt_incl.c, line:149 # msgid "Continue" # msgstr "Continue" # File:txt_incl.c, line:162 # msgid "Cannot change directory.\nChange Directory Has Been Disabled." # msgstr "Cannot change directory.\nChange Directory Has Been Disabled." # File:txt_incl.c, line:166 # msgid "Continue" # msgstr "Continue" # File:txt_incl.c, line:195 msgid "No file name was specified.\nSpecify a file name to Include File." msgstr "No file name was specified.\nSpecify a file name to Include File." # File:txt_incl.c, line:199 # msgid "Continue" # msgstr "Continue" # File:txt_incl.c, line:212 # msgid "No file name was specified.\nSpecify a file name to Include File." # msgstr "No file name was specified.\nSpecify a file name to Include File." # File:txt_incl.c, line:215 # msgid "Continue" # msgstr "Continue" # File:txt_incl.c, line:288 # msgid "Directory:" # msgstr "Directory:" # File:txt_incl.c, line:303 # msgid "File:" # msgstr "File:" # File:txt_incl.c, line:317 msgid "Include File" msgstr "Include File" # File:txt_incl.c, line:421 # msgid "Cannot change directory.\nChange Directory Has Been Disabled." # msgstr "Cannot change directory.\nChange Directory Has Been Disabled." # File:txt_incl.c, line:425 # msgid "Continue" # msgstr "Continue" # File:txt_incl.c, line:438 # msgid "Cannot change directory.\nChange Directory Has Been Disabled." # msgstr "Cannot change directory.\nChange Directory Has Been Disabled." # File:txt_incl.c, line:442 # msgid "Continue" # msgstr "Continue" # File:txt_incl.c, line:470 # msgid "No file name was specified.\nSpecify a file name to Include File." # msgstr "No file name was specified.\nSpecify a file name to Include File." # File:txt_incl.c, line:474 # msgid "Continue" # msgstr "Continue" # File:txt_incl.c, line:487 # msgid "No file name was specified.\nSpecify a file name to Include File." # msgstr "No file name was specified.\nSpecify a file name to Include File." # File:txt_incl.c, line:490 # msgid "Continue" # msgstr "Continue" # File:es_file.c, line:235 msgid "cannot read file '%ws'" msgstr "cannot read file '%ws'" # File:es_file.c, line:236 msgid "'%ws' does not exist" msgstr "'%ws' does not exist" # File:es_file.c, line:237 msgid "not permitted to access '%ws'" msgstr "not permitted to access '%ws'" # File:es_file.c, line:238 msgid "'%ws' is not a file of ASCII text" msgstr "'%ws' is not a file of ASCII text" # File:es_file.c, line:239 msgid "too many symbolic links from '%ws'" msgstr "too many symbolic links from '%ws'" # File:es_file.c, line:240 msgid "out of space for file '%ws'" msgstr "out of space for file '%ws'" # File:es_file.c, line:256 msgid "INTERNAL error for file '%ws', status is %ld" msgstr "INTERNAL error for file '%ws', status is %ld" # File:es_file.c, line:283 msgid "alloc failure" msgstr "alloc failure" # File:es_file.c, line:290 msgid "file '%ws': %s" msgstr "file '%ws': %s" # File:es_file.c, line:299 msgid "invalid es_handle" msgstr "invalid es_handle" # File:es_file.c, line:302 msgid "seek failed" msgstr "seek failed" # File:ps_impl.c, line:143 msgid "ps_create(): cannot reset scratch stream" msgstr "ps_create(): cannot reset scratch stream" # File:ps_impl.c, line:177 msgid "ps_create(): alloc failure" msgstr "ps_create(): alloc failure" # File:ps_impl.c, line:722 msgid "Text has been lost in a cmdtool transcript because the maximum edit log size has been exceeded.\n" msgstr "Text has been lost in a cmdtool transcript because the maximum edit log size has been exceeded.\n" # File:ev_update.c, line:405 msgid "in ev_display_line()" msgstr "in ev_display_line()" # File:ttyansi.c, line:623 msgid "TTYSW:ttysw_output: out of memory" msgstr "TTYSW:ttysw_output: out of memory" # File:tty_ntfy.c, line:175 msgid "ttysw_sigwinch, can't get tty process group" msgstr "ttysw_sigwinch, can't get tty process group" # File:tty_ntfy.c, line:236 msgid "ioctl" msgstr "ioctl" # File:ttyselect.c, line:1274 msgid "ttysw didn't recognize function to perform on selection" msgstr "ttysw didn't recognize function to perform on selection" # File:ttyselect.c, line:1595 msgid "failed for selection copy-out" msgstr "failed for selection copy-out" # File:tty_main.c, line:228 msgid "TTYSW:ttysw_pty_output: invalid wide character" msgstr "TTYSW:ttysw_pty_output: invalid wide character" # File:tty_main.c, line:235 msgid "TTYSW pty write failure" msgstr "TTYSW pty write failure" # File:tty_main.c, line:261 # msgid "TTYSW:ttysw_pty_output: invalid wide character" # msgstr "TTYSW:ttysw_pty_output: invalid wide character" # File:tty_main.c, line:270 # msgid "TTYSW pty write failure" # msgstr "TTYSW pty write failure" # File:tty_main.c, line:1017 # msgid "Continue" # msgstr "Continue" # File:tty_main.c, line:1019 msgid "Too many characters to add to the input buffer.\nWait a few seconds after you click Continue,\nthen retype the missing characters." msgstr "Too many characters to add to the input buffer.\nWait a few seconds after you click Continue,\nthen retype the missing characters." # File:tty_main.c, line:1032 # msgid "Continue" # msgstr "Continue" # File:tty_main.c, line:1034 # msgid "Too many characters to add to the input buffer.\nWait a few seconds after you click Continue,\nthen retype the missing characters." # msgstr "Too many characters to add to the input buffer.\nWait a few seconds after you click Continue,\nthen retype the missing characters." # File:tty_main.c, line:1074 msgid "TTYSW:ttysw_input_it: out of memory" msgstr "TTYSW:ttysw_input_it: out of memory" # File:tty_main.c, line:1079 # msgid "TTYSW:ttysw_input_it: out of memory" # msgstr "TTYSW:ttysw_input_it: out of memory" # File:tty_main.c, line:1525 msgid "ttysw-TIOCSWINSZ" msgstr "ttysw-TIOCSWINSZ" # File:tty_main.c, line:1656 msgid "TIOCFLUSH" msgstr "TIOCFLUSH" # File:tty_menu.c, line:99 msgid "Disable Page Mode" msgstr "Disable Page Mode" # File:tty_menu.c, line:110 # msgid "Copy" # msgstr "Copy" # File:tty_menu.c, line:119 # msgid "Paste" # msgstr "Paste" # File:tty_menu.c, line:128 msgid "Term Pane" msgstr "Term Pane" # File:tty_menu.c, line:139 msgid "Enable Scrolling" msgstr "Enable Scrolling" # File:tty_menu.c, line:214 # msgid "Continue" # msgstr "Continue" # File:tty_menu.c, line:219 # msgid "Disable Page Mode" # msgstr "Disable Page Mode" # File:tty_menu.c, line:224 msgid "Enable Page Mode " msgstr "Enable Page Mode " # File:tty_menu.c, line:287 # msgid "Continue" # msgstr "Continue" # File:tty_menu.c, line:289 msgid "Please make a primary selection first." msgstr "Please make a primary selection first." # File:tty_menu.c, line:304 # msgid "Continue" # msgstr "Continue" # File:tty_menu.c, line:306 # msgid "Please make a primary selection first." # msgstr "Please make a primary selection first." # File:tty_menu.c, line:339 # msgid "Continue" # msgstr "Continue" # File:tty_menu.c, line:341 msgid "Please Copy text onto clipboard first." msgstr "Please Copy text onto clipboard first." # File:tty_menu.c, line:356 # msgid "Continue" # msgstr "Continue" # File:tty_menu.c, line:358 # msgid "Please Copy text onto clipboard first." # msgstr "Please Copy text onto clipboard first." # File:tty_menu.c, line:399 msgid "Editable" msgstr "Editable" # File:tty_menu.c, line:408 msgid "Read Only" msgstr "Read Only" # File:tty_menu.c, line:424 msgid "Mode" msgstr "Mode" # File:tty_menu.c, line:432 msgid "Store log as new file " msgstr "Store log as new file " # File:tty_menu.c, line:441 msgid "Clear log" msgstr "Clear log" # File:tty_menu.c, line:457 msgid "History" msgstr "History" # File:tty_menu.c, line:464 # msgid "Edit" # msgstr "Edit" # File:tty_menu.c, line:471 # msgid "Find" # msgstr "Find" # File:tty_menu.c, line:479 # msgid "Extras" # msgstr "Extras" # File:tty_menu.c, line:492 msgid "Enable" msgstr "Enable" # File:tty_menu.c, line:500 msgid "Disable" msgstr "Disable" # File:tty_menu.c, line:514 msgid "File Editor" msgstr "File Editor" # File:tty_menu.c, line:527 # msgid "Enable Scrolling" # msgstr "Enable Scrolling" # File:tty_menu.c, line:535 msgid "Disable Scrolling" msgstr "Disable Scrolling" # File:tty_menu.c, line:550 msgid "Scrolling" msgstr "Scrolling" # File:tty_menu.c, line:556 # msgid "Term Pane" # msgstr "Term Pane" # File:tty_menu.c, line:607 # msgid "File" # msgstr "File" # File:tty_menu.c, line:613 # msgid "View" # msgstr "View" # File:tty_menu.c, line:620 # msgid "Edit" # msgstr "Edit" # File:tty_menu.c, line:628 # msgid "Find" # msgstr "Find" # File:tty_menu.c, line:708 # msgid "Continue" # msgstr "Continue" # File:tty_menu.c, line:710 msgid "Please destroy all split views before enabling File Editor.\nPress \"Continue\" to proceed." msgstr "Please destroy all split views before enabling File Editor.\nPress \"Continue\" to proceed." # File:tty_menu.c, line:726 # msgid "Continue" # msgstr "Continue" # File:tty_menu.c, line:728 # msgid "Please destroy all split views before enabling File Editor.\nPress \"Continue\" to proceed." # msgstr "Please destroy all split views before enabling File Editor.\nPress \"Continue\" to proceed." # File:tty_menu.c, line:760 # msgid "Continue" # msgstr "Continue" # File:tty_menu.c, line:762 msgid "Textedit is already created.\nPress \"Continue\" to proceed." msgstr "Textedit is already created.\nPress \"Continue\" to proceed." # File:tty_menu.c, line:778 # msgid "Continue" # msgstr "Continue" # File:tty_menu.c, line:780 # msgid "Textedit is already created.\nPress \"Continue\" to proceed." # msgstr "Textedit is already created.\nPress \"Continue\" to proceed." # File:tty_menu.c, line:821 # msgid "Continue" # msgstr "Continue" # File:tty_menu.c, line:823 msgid "No textedit is enabled yet.\nPress \"Continue\" to proceed." msgstr "No textedit is enabled yet.\nPress \"Continue\" to proceed." # File:tty_menu.c, line:839 # msgid "Continue" # msgstr "Continue" # File:tty_menu.c, line:841 # msgid "No textedit is enabled yet.\nPress \"Continue\" to proceed." # msgstr "No textedit is enabled yet.\nPress \"Continue\" to proceed." # File:tty_menu.c, line:940 # msgid "Continue" # msgstr "Continue" # File:tty_menu.c, line:942 msgid "Cannot enable scrolling while this application is running." msgstr "Cannot enable scrolling while this application is running." # File:tty_menu.c, line:957 # msgid "Continue" # msgstr "Continue" # File:tty_menu.c, line:959 # msgid "Cannot enable scrolling while this application is running." # msgstr "Cannot enable scrolling while this application is running." # File:tty_menu.c, line:995 # msgid "Continue" # msgstr "Continue" # File:tty_menu.c, line:997 msgid "Only one termsw view can turn into a ttysw at a time." msgstr "Only one termsw view can turn into a ttysw at a time." # File:tty_menu.c, line:1012 # msgid "Continue" # msgstr "Continue" # File:tty_menu.c, line:1014 # msgid "Only one termsw view can turn into a ttysw at a time." # msgstr "Only one termsw view can turn into a ttysw at a time." # File:tty_mapkey.c, line:101 msgid "%s: line %d longer than 1024 characters\n" msgstr "%s: line %d longer than 1024 characters\n" # File:tty_mapkey.c, line:134 msgid "%s: unknown command on line %d\n" msgstr "%s: unknown command on line %d\n" # File:tty_mapkey.c, line:332 msgid ".ttyswrc error: %s cannot be mapped" msgstr ".ttyswrc error: %s cannot be mapped" # File:tty_mapkey.c, line:362 msgid "while saving key strings" msgstr "while saving key strings" # File:tty.c, line:552 msgid "A command window has exited because its child exited.\n" msgstr "A command window has exited because its child exited.\n" # File:tty.c, line:556 msgid "A tty window has exited because its child exited.\n" msgstr "A tty window has exited because its child exited.\n" # File:tty.c, line:560 msgid "Its child's process id was %d and it" msgstr "Its child's process id was %d and it" # File:tty.c, line:563 msgid " died due to signal %d" msgstr " died due to signal %d" # File:tty.c, line:567 msgid " exited with return code %d" msgstr " exited with return code %d" # File:tty.c, line:572 msgid " and left a core dump.\n" msgstr " and left a core dump.\n" # File:term_ntfy.c, line:445 msgid "ttysw_cr: select" msgstr "ttysw_cr: select" # File:term_ntfy.c, line:454 msgid "TTYSW tty write failure" msgstr "TTYSW tty write failure" # File:term_ntfy.c, line:474 msgid "cannot set output func on ttysw %x, tty fd %d\n" msgstr "cannot set output func on ttysw %x, tty fd %d\n" # File:term_ntfy.c, line:505 # msgid "Continue" # msgstr "Continue" # File:term_ntfy.c, line:521 # msgid "Continue" # msgstr "Continue" # File:term_ntfy.c, line:568 msgid "Pty cmd buffer overflow: last cmd ignored." msgstr "Pty cmd buffer overflow: last cmd ignored." # File:win_input.c, line:2099 msgid "Unexpected event type in ACTION_DROP_PREVIEW event" msgstr "Unexpected event type in ACTION_DROP_PREVIEW event" # File:win_treeop.c, line:63 msgid "win_getlink: XQueryTree failed!\n" msgstr "win_getlink: XQueryTree failed!\n" # File:win_treeop.c, line:88 # msgid "win_getlink: XQueryTree failed!\n" # msgstr "win_getlink: XQueryTree failed!\n" # File:win_treeop.c, line:100 msgid "win_getlink(sibling): window not in tree\n" msgstr "win_getlink(sibling): window not in tree\n" # File:win_treeop.c, line:113 msgid "win_getlink: unknown linkname: %d\n" msgstr "win_getlink: unknown linkname: %d\n" # File:win_treeop.c, line:156 msgid "Call to win_setlink() with ZERO link value would orphan a child. Ignored. (Win package)" msgstr "Call to win_setlink() with ZERO link value would orphan a child. Ignored. (Win package)" # File:win_treeop.c, line:166 msgid "win_setlink: unknown linkname: %d\n" msgstr "win_setlink: unknown linkname: %d\n" # File:win_damage.c, line:54 msgid "Pending drawable has not been cleared (Win package)" msgstr "Pending drawable has not been cleared (Win package)" # File:win_damage.c, line:105 msgid "too many rectangles (Win package)" msgstr "too many rectangles (Win package)" # File:win_compat.c, line:42 msgid " Attempting to set the input mask of a window in fullscreen mode!\n" msgstr " Attempting to set the input mask of a window in fullscreen mode!\n" # File:window.c, line:289 msgid "Subwindow owner is not a window\n" msgstr "Subwindow owner is not a window\n" # File:window.c, line:297 msgid "Parent window does not support children" msgstr "Parent window does not support children" # File:window.c, line:297 # msgid "Parent window does not support children" # msgstr "Parent window does not support children" # File:window.c, line:453 msgid "Window creation failed to get new visual" msgstr "Window creation failed to get new visual" # File:window.c, line:453 # msgid "Window creation failed to get new visual" # msgstr "Window creation failed to get new visual" # File:window.c, line:526 msgid "notify_set_event_func failed in window creation" msgstr "notify_set_event_func failed in window creation" # File:window.c, line:526 # msgid "notify_set_event_func failed in window creation" # msgstr "notify_set_event_func failed in window creation" # File:window.c, line:538 # msgid "notify_set_event_func failed in window creation" # msgstr "notify_set_event_func failed in window creation" # File:window.c, line:538 # msgid "notify_set_event_func failed in window creation" # msgstr "notify_set_event_func failed in window creation" # File:window_set.c, line:691 msgid "Invalid IC: Unable to reset IC. " msgstr "Invalid IC: Unable to reset IC. " # File:window_set.c, line:710 msgid "WIN_TOP_LEVEL_NO_DECOR specified for non-top level non-frame window" msgstr "WIN_TOP_LEVEL_NO_DECOR specified for non-top level non-frame window" # File:windowlayt.c, line:120 msgid "window layout option (%d) not recognized (window_layout)" msgstr "window layout option (%d) not recognized (window_layout)" # File:windowutil.c, line:407 msgid "window: zero width or height specified" msgstr "window: zero width or height specified" # File:windowutil.c, line:1264 msgid "Attempt to query the window tree failed" msgstr "Attempt to query the window tree failed" # File:window_cms.c, line:91 msgid "Cannot set a dynamic colormap segment on a window created\nwith a static visual" msgstr "Cannot set a dynamic colormap segment on a window created\nwith a static visual" # File:window_cms.c, line:100 msgid "Attempting to set colormap segment data before naming the segment" msgstr "Attempting to set colormap segment data before naming the segment" # File:window_cms.c, line:185 msgid "Can not set a CMS on a window that was created with a different visual" msgstr "Can not set a CMS on a window that was created with a different visual" xview-3.2p1.4/misc/message_files/olwm_messages.po100644 1750 1750 36316 5413747667 17444 0ustar mbmbdomain "olwm_messages" # File:error.c, line:221 msgid "%s%s\n" msgstr "%s%s\n" # File:error.c, line:225 msgid " request major code: %d (%s)\n" msgstr " request major code: %d (%s)\n" # File:error.c, line:227 msgid " request minor code: %d\n" msgstr " request minor code: %d\n" # File:error.c, line:229 msgid " resource ID in failed request: 0x%x\n" msgstr " resource ID in failed request: 0x%x\n" # File:error.c, line:231 msgid " serial number of failed request: %d\n" msgstr " serial number of failed request: %d\n" # File:error.c, line:233 msgid " current request serial number: %d\n" msgstr " current request serial number: %d\n" # File:error.c, line:259 msgid "olwm: warning, X extension error -- " msgstr "olwm: warning, X extension error -- " # File:error.c, line:309 msgid "olwm: fatal X protocol error -- " msgstr "olwm: fatal X protocol error -- " # File:error.c, line:325 # msgid "olwm: fatal X protocol error -- " # msgstr "olwm: fatal X protocol error -- " # File:error.c, line:331 msgid "olwm: warning, X protocol error -- " msgstr "olwm: warning, X protocol error -- " # File:error.c, line:349 msgid "olwm: fatal error -- %s\n" msgstr "olwm: fatal error -- %s\n" # File:error.c, line:370 msgid "olwm: warning -- %s\n" msgstr "olwm: warning -- %s\n" # File:evbind.c, line:794 msgid "bad key mapping `%s'\n" msgstr "bad key mapping `%s'\n" # File:evbind.c, line:801 msgid "can't find keysym for `%s'\n" msgstr "can't find keysym for `%s'\n" # File:events.c, line:653 msgid "olwm: warning, nested event interposer!\n" msgstr "olwm: warning, nested event interposer!\n" # File:info.c, line:68 msgid "Tried to duplicate-register a window -- bailing" msgstr "Tried to duplicate-register a window -- bailing" # File:mem.c, line:141 msgid "Memory allocation failure." msgstr "Memory allocation failure." # File:mem.c, line:168 msgid "Memory array allocation failure." msgstr "Memory array allocation failure." # File:mem.c, line:187 # msgid "Memory array allocation failure." # msgstr "Memory array allocation failure." # File:menu.c, line:661 msgid "failed to grab pointer" msgstr "failed to grab pointer" # File:menu.c, line:673 msgid "failed to grab keyboard" msgstr "failed to grab keyboard" # File:menu.c, line:980 msgid "-" msgstr "-" # File:menu.c, line:1012 msgid "shift" msgstr "shift" # File:menu.c, line:1016 msgid "ctrl" msgstr "ctrl" # File:menu.c, line:1020 msgid "alt" msgstr "alt" # File:menu.c, line:1024 msgid "super" msgstr "super" # File:menu.c, line:1028 msgid "hyper" msgstr "hyper" # File:menu.c, line:2528 msgid "olwm: wrong event type passed to menuSearch\n" msgstr "olwm: wrong event type passed to menuSearch\n" # File:moveresize.c, line:323 # msgid "failed to grab pointer" # msgstr "failed to grab pointer" # File:moveresize.c, line:332 # msgid "failed to grab keyboard" # msgstr "failed to grab keyboard" # File:moveresize.c, line:340 msgid "location: %4d , %4d" msgstr "location: %4d , %4d" # File:moveresize.c, line:1310 # msgid "failed to grab pointer" # msgstr "failed to grab pointer" # File:moveresize.c, line:1319 # msgid "failed to grab keyboard" # msgstr "failed to grab keyboard" # File:moveresize.c, line:1402 msgid "size: %4d, %4d" msgstr "size: %4d, %4d" # File:moveresize.c, line:1555 # msgid "failed to grab pointer" # msgstr "failed to grab pointer" # File:moveresize.c, line:1563 # msgid "failed to grab keyboard" # msgstr "failed to grab keyboard" # File:olwm.c, line:227, textdomain("olwm_messages"); # File:olwm.c, line:299 msgid "olwm: child cannot disinherit TCP fd" msgstr "olwm: child cannot disinherit TCP fd" # File:olwm.c, line:412 msgid "Command line arguments accepted" msgstr "Command line arguments accepted" # File:olwm.c, line:413 msgid "are:" msgstr "are:" # File:olwm.c, line:415 msgid "Unknown argument(s)" msgstr "Unknown argument(s)" # File:olwm.c, line:416 msgid "encountered" msgstr "encountered" # File:olwm.c, line:452 msgid "(NULL DISPLAY)" msgstr "(NULL DISPLAY)" # File:olwm.c, line:453 msgid "%s: cannot connect to %s\n" msgstr "%s: cannot connect to %s\n" # File:olwm.c, line:690 msgid "usage: %s [options]\n" msgstr "usage: %s [options]\n" # /* STRING_EXTRACTION - do not translate the option (ie -2d, -display) # * because those are the actual string names of the command line # * option. Translate the option argument (ie ) and # * the descriptive text. # */ # File:olwm.c, line:700 msgid "Standard Options:" msgstr "Standard Options:" # File:olwm.c, line:702 msgid " -2d Use two-dimensional look" msgstr " -2d Use two-dimensional look" # File:olwm.c, line:703 msgid " -3d Use three-dimensional look" msgstr " -3d Use three-dimensional look" # File:olwm.c, line:704 msgid " -bd, -bordercolor Specify the border color" msgstr " -bd, -bordercolor Specify the border color" # File:olwm.c, line:705 msgid " -bg, -background Specify the background color" msgstr " -bg, -background Specify the background color" # File:olwm.c, line:706 msgid " -c, -click Use click-to-focus mode" msgstr " -c, -click Use click-to-focus mode" # File:olwm.c, line:707 msgid " -depth Specify the depth of the visual to use" msgstr " -depth Specify the depth of the visual to use" # File:olwm.c, line:708 msgid " -display Specify the display to manage" msgstr " -display Specify the display to manage" # File:olwm.c, line:709 msgid " -f, -follow Use focus-follows-mouse mode" msgstr " -f, -follow Use focus-follows-mouse mode" # File:olwm.c, line:710 msgid " -fn, -font Set the font for window titles" msgstr " -fn, -font Set the font for window titles" # File:olwm.c, line:711 msgid " -fg, -foreground Specify the foreground color" msgstr " -fg, -foreground Specify the foreground color" # File:olwm.c, line:712 msgid " -multi Manage windows on all screens" msgstr " -multi Manage windows on all screens" # File:olwm.c, line:713 msgid " -name Specify resource name for resource db" msgstr " -name Specify resource name for resource db" # File:olwm.c, line:714 msgid " -single Manage windows for a single screen only" msgstr " -single Manage windows for a single screen only" # File:olwm.c, line:715 msgid " -syncpid Synchronize with process-id" msgstr " -syncpid Synchronize with process-id" # File:olwm.c, line:716 msgid " -syncsignal Signal to send to syncpid" msgstr " -syncsignal Signal to send to syncpid" # File:olwm.c, line:717 msgid " -xrm Specify resources on commandline" msgstr " -xrm Specify resources on commandline" # File:olwm.c, line:719 msgid "Debugging Options:" msgstr "Debugging Options:" # File:olwm.c, line:721 msgid " -all Print a message for all events received" msgstr " -all Print a message for all events received" # File:olwm.c, line:722 msgid " -debug Turn on all debugging options" msgstr " -debug Turn on all debugging options" # File:olwm.c, line:723 msgid " -orphans Print orphaned events" msgstr " -orphans Print orphaned events" # File:olwm.c, line:724 msgid " -synchronize Run in synchronous mode" msgstr " -synchronize Run in synchronous mode" # File:olwm.c, line:726 msgid "Internationalization Options:" msgstr "Internationalization Options:" # File:olwm.c, line:728 msgid " -basiclocale Specify the basic locale for all categories" msgstr " -basiclocale Specify the basic locale for all categories" # File:olwm.c, line:729 msgid " -displaylang Specify the language used for displaying text" msgstr " -displaylang Specify the language used for displaying text" # File:olwm.c, line:730 msgid " -numeric Specify the numeric format" msgstr " -numeric Specify the numeric format" # File:notice.c, line:749 # msgid "failed to grab pointer" # msgstr "failed to grab pointer" # File:notice.c, line:756 # msgid "failed to grab keyboard" # msgstr "failed to grab keyboard" # File:resources.c, line:1884 msgid "can't open glyph font" msgstr "can't open glyph font" # File:services.c, line:126 msgid "Exit" msgstr "Exit" # File:services.c, line:127 msgid "Cancel" msgstr "Cancel" # File:services.c, line:128 msgid "Please confirm exit from window system" msgstr "Please confirm exit from window system" # File:services.c, line:238 msgid "olwm: psh error: %d\n" msgstr "olwm: psh error: %d\n" # File:services.c, line:323 msgid "Ok" msgstr "Ok" # File:services.c, line:324 msgid "Sorry, the clipboard is not yet implemented." msgstr "Sorry, the clipboard is not yet implemented." # File:services.c, line:356 # msgid "Ok" # msgstr "Ok" # File:services.c, line:357 msgid "Sorry, Print Screen is not yet implemented." msgstr "Sorry, Print Screen is not yet implemented." # File:services.c, line:491 # msgid "failed to grab pointer" # msgstr "failed to grab pointer" # File:services.c, line:497 # msgid "failed to grab keyboard" # msgstr "failed to grab keyboard" # File:services.c, line:509 # msgid "Ok" # msgstr "Ok" # File:services.c, line:510 msgid "Save Workspace complete." msgstr "Save Workspace complete." # File:services.c, line:529 # msgid "Cancel" # msgstr "Cancel" # File:services.c, line:533 msgid "Save Workspace could not be performed, because\nthere was an error writing the .openwin-init file." msgstr "Save Workspace could not be performed, because\nthere was an error writing the .openwin-init file." # File:services.c, line:536 msgid "Save Workspace could not be performed,\nbecause some applications did not respond." msgstr "Save Workspace could not be performed,\nbecause some applications did not respond." # File:services.c, line:539 msgid "Save Workspace could not be performed,\nbecause the owplaces(1) command failed." msgstr "Save Workspace could not be performed,\nbecause the owplaces(1) command failed." # File:usermenu.c, line:393 msgid "Command Tool..." msgstr "Command Tool..." # File:usermenu.c, line:393 # msgid "Command Tool..." # msgstr "Command Tool..." # File:usermenu.c, line:397 msgid "xterm..." msgstr "xterm..." # File:usermenu.c, line:397 # msgid "xterm..." # msgstr "xterm..." # File:usermenu.c, line:403 msgid "Refresh" msgstr "Refresh" # File:usermenu.c, line:403 # msgid "Refresh" # msgstr "Refresh" # File:usermenu.c, line:406 msgid "Restart WM" msgstr "Restart WM" # File:usermenu.c, line:406 # msgid "Restart WM" # msgstr "Restart WM" # File:usermenu.c, line:409 msgid "Reread Menu File" msgstr "Reread Menu File" # File:usermenu.c, line:409 # msgid "Reread Menu File" # msgstr "Reread Menu File" # File:usermenu.c, line:414 msgid "Exit WM" msgstr "Exit WM" # File:usermenu.c, line:414 # msgid "Exit WM" # msgstr "Exit WM" # File:usermenu.c, line:417 msgid "Exit..." msgstr "Exit..." # File:usermenu.c, line:417 # msgid "Exit..." # msgstr "Exit..." # File:usermenu.c, line:422 msgid "Workspace" msgstr "Workspace" # File:usermenu.c, line:422 # msgid "Workspace" # msgstr "Workspace" # File:usermenu.c, line:610 msgid "olwm: couldn't find user \"%s\" in \"%s\"\n" msgstr "olwm: couldn't find user \"%s\" in \"%s\"\n" # File:usermenu.c, line:634 msgid "olwm: no match for '%c' in pathname \"%s\"\n" msgstr "olwm: no match for '%c' in pathname \"%s\"\n" # File:usermenu.c, line:641 msgid "olwm: found a '}' before a ')' in \"%s\"\n" msgstr "olwm: found a '}' before a ')' in \"%s\"\n" # File:usermenu.c, line:647 msgid "olwm: found a ')' before a '}' in \"%s\"\n" msgstr "olwm: found a ')' before a '}' in \"%s\"\n" # File:usermenu.c, line:828 msgid "olwm: maximum menu filedepth exceeded\n" msgstr "olwm: maximum menu filedepth exceeded\n" # File:usermenu.c, line:842 msgid "olwm: can't open menu file %s\n" msgstr "olwm: can't open menu file %s\n" # File:usermenu.c, line:1001 msgid "olwm: syntax error in menu file %s, line %d\n" msgstr "olwm: syntax error in menu file %s, line %d\n" # File:usermenu.c, line:1012 msgid "olwm: menu label mismatch in file %s, line %d\n" msgstr "olwm: menu label mismatch in file %s, line %d\n" # File:usermenu.c, line:1048 msgid "olwm: error in menu file %s, line %d\n" msgstr "olwm: error in menu file %s, line %d\n" # /* STRING_EXTRACTION - Since DEFAULT is keyword, do not # * translate. # */ # File:usermenu.c, line:1053 msgid "missing item after DEFAULT keyword.\n" msgstr "missing item after DEFAULT keyword.\n" # File:usermenu.c, line:1158 msgid "olwm: format error in menu file %s, line %d\n" msgstr "olwm: format error in menu file %s, line %d\n" # /* STRING_EXTRACTION - Do not translate END or PIN since they # * are keywords in the menu file format # */ # File:usermenu.c, line:1164 msgid "menu title and END required before PIN keyword.\n" msgstr "menu title and END required before PIN keyword.\n" # File:usermenu.c, line:1313 # msgid "Workspace" # msgstr "Workspace" # File:usermenu.c, line:1313 # msgid "Workspace" # msgstr "Workspace" # File:usermenu.c, line:1824 msgid "Window" msgstr "Window" # File:usermenu.c, line:1828 msgid "Open" msgstr "Open" # File:usermenu.c, line:1832 msgid "Close" msgstr "Close" # File:usermenu.c, line:1836 msgid "Full Size" msgstr "Full Size" # File:usermenu.c, line:1840 msgid "Restore Size" msgstr "Restore Size" # File:usermenu.c, line:1844 msgid "Move" msgstr "Move" # File:usermenu.c, line:1848 msgid "Resize" msgstr "Resize" # File:usermenu.c, line:1852 msgid "Properties" msgstr "Properties" # File:usermenu.c, line:1856 msgid "Back" msgstr "Back" # File:usermenu.c, line:1860 # msgid "Refresh" # msgstr "Refresh" # File:usermenu.c, line:1864 msgid "Quit" msgstr "Quit" # File:usermenu.c, line:1868 msgid "Dismiss" msgstr "Dismiss" # File:usermenu.c, line:1872 # msgid "Cancel" # msgstr "Cancel" # File:usermenu.c, line:1876 msgid "All Pop-ups" msgstr "All Pop-ups" # File:usermenu.c, line:1880 msgid "This Window" msgstr "This Window" # File:usermenu.c, line:1884 msgid "Owner?" msgstr "Owner?" # File:win.c, line:309 # msgid "Ok" # msgstr "Ok" # File:win.c, line:311 msgid "Couldn't write to olwmslave\nNo Help Available for olwm" msgstr "Couldn't write to olwmslave\nNo Help Available for olwm" # File:winipane.c, line:321 msgid "An existing window was named as an icon window." msgstr "An existing window was named as an icon window." # File:winipane.c, line:347 msgid "An invalid window was named as an icon window." msgstr "An invalid window was named as an icon window." # File:winipane.c, line:390 msgid "An invalid pixmap was named as an icon mask" msgstr "An invalid pixmap was named as an icon mask" # File:winipane.c, line:396 msgid "An invalid pixmap was named as an icon pixmap" msgstr "An invalid pixmap was named as an icon pixmap" # File:winroot.c, line:588 msgid "Perhaps there is another window manager running?" msgstr "Perhaps there is another window manager running?" # File:winroot.c, line:597 msgid "Could not get attributes of root window" msgstr "Could not get attributes of root window" xview-3.2p1.4/misc/message_files/olwmslave.po100644 1750 1750 723 5413747667 16541 0ustar mbmbdomain "olwmslave" # File:helpwin.c, line:208 msgid "Help" msgstr "Help" # File:helpwin.c, line:209 msgid "More" msgstr "More" # File:helpwin.c, line:210 msgid "OK" msgstr "OK" # File:helpwin.c, line:211 msgid "No Help Available For " msgstr "No Help Available For " # File:propswin.c, line:114 msgid "Window Properties" msgstr "Window Properties" # File:propswin.c, line:128 msgid "Window Properties Not Implemented" msgstr "Window Properties Not Implemented" xview-3.2p1.4/misc/Imakefile100644 1750 1750 704 5413747664 13167 0ustar mbmb#include /**/########################################################################## /**/# @(#)Imakefile 1.1 89/07/21 SMI /**/# Imakefile for misc directory. #define IHaveSubdirs #define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)' SUBDIRS = support MakeSubdirs($(SUBDIRS)) DependSubdirs($(SUBDIRS)) CleanSubdirs($(SUBDIRS)) InstallSubdirs($(SUBDIRS)) PopulateSubdirs($(SUBDIRS)) includes:: echo "no includes in $(CURRENT_DIR)." xview-3.2p1.4/misc/xrdb_files/ 40755 1750 1750 0 5413764220 13404 5ustar mbmbxview-3.2p1.4/misc/xrdb_files/defaults100644 1750 1750 2215 5413747670 15245 0ustar mbmb! @(#)defaults 1.4 93/03/11 ! ! XView locale specific resource file ! OpenWindows.MenuAccelerator.SelectAll: Meta a OpenWindows.MenuAccelerator.Copy: Meta c OpenWindows.MenuAccelerator.Find: Meta f OpenWindows.MenuAccelerator.Props: Meta i OpenWindows.MenuAccelerator.New: Meta n OpenWindows.MenuAccelerator.Open: Meta o OpenWindows.MenuAccelerator.Print: Meta p OpenWindows.MenuAccelerator.Save: Meta s OpenWindows.MenuAccelerator.Typeface: Meta t OpenWindows.MenuAccelerator.Paste: Meta v OpenWindows.MenuAccelerator.Cut: Meta x OpenWindows.MenuAccelerator.Undo: Meta z OpenWindows.MenuAccelerator.Redo: Shift Meta Z OpenWindows.MenuAccelerator.BoldFont: Shift Meta B OpenWindows.MenuAccelerator.ItalicFont: Shift Meta I OpenWindows.MenuAccelerator.NormalFont: Shift Meta N OpenWindows.MenuAccelerator.Quit: q+Meta OpenWindows.MenuAccelerator.OpenClose: w+Meta xview-3.2p1.4/misc/xrdb_files/README100644 1750 1750 332 5413747670 14351 0ustar mbmbThis directory contains X resource files for XView 3.2, and olwm File X resource file for ---- ------------------- Xdefaults olwm/XView 3.2 defaults XView 3.2 xview-3.2p1.4/misc/xrdb_files/Xdefaults100644 1750 1750 2320 5413747670 15372 0ustar mbmb! @(#)Xdefaults 1.18 93/03/12 OpenWindows Default X Resources ! OpenWindows.WindowColor: #cccccc OpenWindows.WindowForeground: #000000 OpenWindows.DataForeground: #000000 OpenWindows.DataBackground: #ffffff OpenWindows.PaintWorkspace: True OpenWindows.WorkspaceStyle: paintcolor OpenWindows.WorkspaceColor: #40a0c0 OpenWindows.WorkspaceBitmapFile: gray OpenWindows.WorkspaceBitmapFg: #000000 OpenWindows.WorkspaceBitmapBg: #ffffff ! OpenWindows.Scale: medium ! OpenWindows.ScreenSaver.OnOff: off OpenWindows.ScreenSaver.IdleTime: 10 OpenWindows.Beep: always OpenWindows.BeepDuration: 100 OpenWindows.SetInput: select OpenWindows.ScrollbarPlacement: right OpenWindows.IconLocation: bottom ! OpenWindows.ScrollbarJumpCursor: True Scrollbar.JumpCursor: True OpenWindows.PopupJumpCursor: True OpenWindows.MultiClickTimeout: 4 OpenWindows.MouseAcceleration: 2 OpenWindows.MouseThreshold: 15 OpenWindows.PointerMapping: right ! OpenWindows.KeyboardCommands: Basic OpenWindows.KeyClick: False OpenWindows.KeyRepeat: True ! OpenWindows.DragRightDistance: 100 OpenWindows.SelectDisplaysMenu: True OpenWindows.MenuAccelerators: True OpenWindows.WindowMenuAccelerators: True xview-3.2p1.4/lib/ 40755 1750 1750 0 6354605713 11104 5ustar mbmbxview-3.2p1.4/lib/libxview/ 40755 1750 1750 0 6354605713 12735 5ustar mbmbxview-3.2p1.4/lib/libxview/version100644 1750 1750 4 5413747672 14362 0ustar mbmb3.1 xview-3.2p1.4/lib/libxview/attr/ 40755 1750 1750 0 6354605713 13707 5ustar mbmbxview-3.2p1.4/lib/libxview/attr/attr_copy.c100644 1750 1750 5130 5413747673 16162 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)attr_copy.c 20.14 93/06/28 Copyr 1985 Sun Micro"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #include /* * attr_copy: copy an attribute list, returning the size in bytes */ int attr_copy(source, dest) Attr_avlist *source, *dest; { Attr_attribute attr; int result, size; size = 0; do { attr = **source; result = copy_1_attr(attr, source, dest); if (result == -1) return -1; size += result; } while (attr != 0); return size; } static int copy_1_attr(attr, source, dest) Attr_attribute attr; Attr_avlist *source, *dest; { int result, size; *source += 1; **dest = attr; *dest += 1; size = sizeof attr; if (attr == 0 || ATTR_BASE_TYPE(attr) == ATTR_BASE_NO_VALUE) return size; switch (ATTR_LIST_TYPE(attr)) { case ATTR_NONE: result = copy_singleton(attr, source, dest); break; case ATTR_NULL: result = copy_null_list(attr, source, dest); break; case ATTR_COUNTED: result = copy_counted_list(source, dest); break; case ATTR_RECURSIVE: result = attr_copy(source, dest); break; default: return -1; } if (result == -1) return -1; else return size + result; } static int copy_counted_list(source, dest) Attr_attribute **source, **dest; { register unsigned count, n; register Attr_attribute *srcp, *destp; srcp = *source; destp = *dest; count = *srcp++; *destp++ = count; for (n = count; n--;) { *destp++ = *srcp++; } *source = srcp; *dest = destp; return count + 1; } static int copy_singleton(attr, source, dest) Attr_attribute attr, **source, **dest; { register int count, size; register Attr_attribute *srcp, *destp; count = ATTR_CARDINALITY(attr); size = count * 4; srcp = *source; destp = *dest; while (count-- > 0) { *destp++ = *srcp++; } *source = srcp; *dest = destp; return size; } static int copy_null_list(attr, source, dest) Attr_attribute attr, **source, **dest; { register int count, size; register Attr_attribute *srcp, *destp; count = 0; size = ATTR_CARDINALITY(attr); srcp = *source; destp = *dest; while (*srcp != 0) { register int i; for (i = size; i--;) { *destp++ = *srcp++; count++; } } *destp++ = *srcp++; count++; *source = srcp; *dest = destp; return count * sizeof attr; } xview-3.2p1.4/lib/libxview/attr/attr_cu.c100644 1750 1750 16242 5413747673 15645 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)attr_cu.c 20.12 90/06/21 Copyr 1984 Sun Micro"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #include #include /* * attr_decode_cu decodes the encoded character row & pixel value in * encoded_value. */ static int attr_decode_cu(encoded_value, char_part, pixel_part) register u_int encoded_value; int *char_part; int *pixel_part; { short char_bits, pixel_bits; char_bits = (short) ((encoded_value >> 16) & 0x1FFF); /* sign extend if negative */ if (char_bits & 0x1000) char_bits |= 0xE000; pixel_bits = ((short) encoded_value) - ATTR_PIXEL_OFFSET; *char_part = (int) char_bits; *pixel_part = (int) pixel_bits; } /* * attr_cu_to_y converts the encoded character row & pixel value in * encoded_value to a pixel value. */ #undef attr_cu_to_y int attr_cu_to_y(encoded_value, font, top_margin, row_gap) u_int encoded_value; Xv_font font; int top_margin; int row_gap; { return attr_rc_unit_to_y(encoded_value, (int) xv_get((Xv_opaque)font, FONT_DEFAULT_CHAR_HEIGHT), top_margin, row_gap); } int attr_rc_unit_to_y(encoded_value, row_height, top_margin, row_gap) u_int encoded_value; int row_height; int top_margin; int row_gap; { int char_part, pixel_part; int length; if (!attr_is_cu(encoded_value)) return (int) encoded_value; attr_decode_cu(encoded_value, &char_part, &pixel_part); length = pixel_part + char_part * (row_height + row_gap); switch (ATTR_CU_TYPE(encoded_value)) { case ATTR_CU_POSITION: return (top_margin + length); case ATTR_CU_LENGTH: default: return length; } } /* * attr_cu_to_x converts the encoded character column & pixel value in * encoded_value to a pixel value. */ #undef attr_cu_to_x int attr_cu_to_x(encoded_value, font, left_margin) u_int encoded_value; Xv_font font; int left_margin; { return attr_rc_unit_to_x(encoded_value, (int) xv_get((Xv_opaque)font, FONT_DEFAULT_CHAR_WIDTH), left_margin, 0); } int attr_rc_unit_to_x(encoded_value, col_width, left_margin, col_gap) u_int encoded_value; int col_width; int left_margin, col_gap; { int char_part, pixel_part; int length; if (!attr_is_cu(encoded_value)) return (int) encoded_value; attr_decode_cu(encoded_value, &char_part, &pixel_part); length = pixel_part + char_part * (col_width + col_gap); switch (ATTR_CU_TYPE(encoded_value)) { case ATTR_CU_POSITION: return (left_margin + length); case ATTR_CU_LENGTH: default: return length; } } /* * attr_replace_cu_value converts the value for attr (pointed to by avlist) * from character units to pixel units. */ static Attr_avlist attr_rc_unit_to_pixel(base_type, avlist, col_width, row_height, left_margin, top_margin, col_gap, row_gap) Attr_base_type base_type; register Attr_avlist avlist; int col_width, row_height; int left_margin, top_margin; int col_gap, row_gap; { switch (base_type) { case ATTR_BASE_INDEX_X: /* index, x-coordinate */ avlist++; /* skip the index */ /* and fall through ... */ case ATTR_BASE_X: /* single x-coordinate */ *avlist = (unsigned long) attr_rc_unit_to_x((u_int) * avlist, col_width, left_margin, col_gap); avlist++; break; case ATTR_BASE_INDEX_Y: /* index, y-coordinate */ avlist++; /* skip the index */ /* and fall through ... */ case ATTR_BASE_Y: /* single y-coordinate */ *avlist = (unsigned long) attr_rc_unit_to_y((u_int) * avlist, row_height, top_margin, row_gap); avlist++; break; case ATTR_BASE_INDEX_XY: /* index, x-coordinate, y-coordinate */ avlist++; /* skip the index */ /* and fall through ... */ case ATTR_BASE_XY: *avlist = (unsigned long) attr_rc_unit_to_x((u_int) * avlist, col_width, left_margin, col_gap); avlist++; *avlist = (unsigned long) attr_rc_unit_to_y((u_int) * avlist, row_height, top_margin, row_gap); avlist++; break; default: /* some other base type */ /* we should complain here */ break; } return avlist; } /* * attr_replace_cu replaces any character unit values in avlist with the * corresponding pixel unit. */ #undef attr_replace_cu void attr_replace_cu(avlist, font, left_margin, top_margin, row_gap) register Attr_avlist avlist; Xv_font font; int left_margin; int top_margin; int row_gap; { attr_rc_units_to_pixels(avlist, (int) xv_get((Xv_opaque)font, FONT_DEFAULT_CHAR_WIDTH), (int) xv_get((Xv_opaque)font, FONT_DEFAULT_CHAR_HEIGHT), left_margin, top_margin, 0, row_gap); } void attr_rc_units_to_pixels(avlist, col_width, row_height, left_margin, top_margin, col_gap, row_gap) register Attr_avlist avlist; int col_width, row_height; int left_margin, top_margin; int col_gap, row_gap; { register Attr_attribute attr; register Attr_base_type base_type; register Attr_avlist value_list; register short is_ptr; register int count; while (attr = (Attr_attribute) * avlist++) { switch (base_type = ATTR_BASE_TYPE(attr)) { default: avlist = attr_skip(attr, avlist); break; case ATTR_BASE_X: case ATTR_BASE_INDEX_X: case ATTR_BASE_Y: case ATTR_BASE_INDEX_Y: case ATTR_BASE_XY: case ATTR_BASE_INDEX_XY: is_ptr = ATTR_LIST_PTR_TYPE(attr) == ATTR_LIST_IS_PTR; switch (ATTR_LIST_TYPE(attr)) { case ATTR_NONE: avlist = attr_rc_unit_to_pixel(base_type, avlist, col_width, row_height, left_margin, top_margin, col_gap, row_gap); break; case ATTR_NULL: if (is_ptr) value_list = (Attr_avlist) *avlist; else value_list = avlist; while (*value_list) value_list = attr_rc_unit_to_pixel(base_type, value_list, col_width, row_height, left_margin, top_margin, col_gap, row_gap); if (is_ptr) avlist++; else avlist = value_list + 1; break; case ATTR_COUNTED: if (is_ptr) value_list = (Attr_avlist) *avlist; else value_list = avlist; for (count = (int) *value_list++; count; count--) value_list = attr_rc_unit_to_pixel(base_type, value_list, col_width, row_height, left_margin, top_margin, col_gap, row_gap); if (is_ptr) avlist++; else avlist = value_list; break; case ATTR_RECURSIVE: if (is_ptr) attr_rc_units_to_pixels((Attr_avlist) * avlist++, col_width, row_height, left_margin, top_margin, col_gap, row_gap); else { attr_rc_units_to_pixels(avlist, col_width, row_height, left_margin, top_margin, col_gap, row_gap); avlist = attr_skip(attr, avlist); } break; } break; } } } xview-3.2p1.4/lib/libxview/attr/attr_portable.c100644 1750 1750 15661 5413747673 17052 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)attr_portable.c 20.12 93/06/28"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #include #ifndef NON_PORTABLE static int valist_count_recursive(); static va_list valist_skip_value(); #define valist_get(valist) va_arg(valist, caddr_t) /* * Copy count elements from list to dest. Advance both list and dest to the * next element after the last one copied. */ #define valist_copy_many(valist, dest, count) \ { \ register caddr_t *last = dest + count; \ \ while (dest < last) \ *dest++ = valist_get(valist); \ } /* * A macro to copy attribute values count is the number of caddr_t size * chunks to copy. */ #define valist_copy_values(src, dest, count) \ if (count == 1) \ *dest++ = valist_get(src); \ else { \ valist_copy_many(src, dest, count); \ } /* * copy the var-args list from * valist to dest. Recursive lists are * collapsed into dest. */ Attr_avlist attr_copy_valist(dest, valist) register Attr_avlist dest; register va_list valist; { register Attr_attribute attr; register u_int cardinality; while (attr = (Attr_attribute) valist_get(valist)) { cardinality = ATTR_CARDINALITY(attr); switch (ATTR_LIST_TYPE(attr)) { case ATTR_NONE: /* not a list */ *dest++ = (caddr_t) attr; valist_copy_values(valist, dest, cardinality); break; case ATTR_NULL: /* null terminated list */ *dest++ = (caddr_t) attr; switch (ATTR_LIST_PTR_TYPE(attr)) { case ATTR_LIST_IS_INLINE: /* * Note that this only checks the first four bytes for the * null termination. Copy each value element until we have * copied the null termination. */ do { valist_copy_values(valist, dest, cardinality); } while (*(dest - 1)); break; case ATTR_LIST_IS_PTR: *dest++ = valist_get(valist); break; } break; case ATTR_COUNTED: /* counted list */ *dest++ = (caddr_t) attr; switch (ATTR_LIST_PTR_TYPE(attr)) { case ATTR_LIST_IS_INLINE:{ register u_int count; *dest = valist_get(valist); /* copy the count */ count = ((u_int) * dest++) * cardinality; valist_copy_values(valist, dest, count); break; } case ATTR_LIST_IS_PTR: *dest++ = valist_get(valist); break; } break; case ATTR_RECURSIVE: /* recursive attribute-value list */ if (cardinality != 0) /* don't strip it */ *dest++ = (caddr_t) attr; switch (ATTR_LIST_PTR_TYPE(attr)) { case ATTR_LIST_IS_INLINE: dest = attr_copy_valist(dest, valist); if (cardinality != 0) /* don't strip it */ dest++; /* move past the null terminator */ valist = valist_skip_value(attr, valist); break; case ATTR_LIST_IS_PTR: if (cardinality != 0) /* don't collapse inline */ *dest++ = valist_get(valist); else { Attr_avlist new_avlist = (Attr_avlist) valist_get(valist); if (new_avlist) /* * Copy the list inline -- don't move past the null * termintor. Here both the attribute and null * terminator will be stripped away. */ dest = attr_copy_avlist(dest, new_avlist); } break; } break; } } *dest = 0; return (dest); } /* * return a pointer to the attribute after the value pointed to by list. * attr should be the attribute which describes the value at list. */ static va_list valist_skip_value(attr, valist) register Attr_attribute attr; register va_list valist; { switch (ATTR_LIST_TYPE(attr)) { case ATTR_NULL: if (ATTR_LIST_PTR_TYPE(attr) == ATTR_LIST_IS_PTR) (void) valist_get(valist); else while (valist_get(valist)); break; case ATTR_RECURSIVE: if (ATTR_LIST_PTR_TYPE(attr) == ATTR_LIST_IS_PTR) (void) valist_get(valist); else while (attr = (Attr_attribute) valist_get(valist)) valist = valist_skip_value(attr, valist); break; case ATTR_COUNTED: if (ATTR_LIST_PTR_TYPE(attr) == ATTR_LIST_IS_PTR) { (void) valist_get(valist); break; } /* else fall through ... */ case ATTR_NONE:{ register u_int count = ATTR_CARDINALITY(attr); if (ATTR_LIST_TYPE(attr) == ATTR_COUNTED) /* use the count */ count *= (u_int) valist_get(valist); while (count--) (void) valist_get(valist); } break; } return valist; } /* * valist_count counts the number of slots in the varargs-list valist. * Recursive lists are counted as being collapsed inline. */ int valist_count(valist) va_list valist; { /* count the null termination */ return (valist_count_recursive(valist, 0) + 1); } static int valist_count_recursive(valist, last_attr) register va_list valist; register Attr_attribute last_attr; { register Attr_attribute attr; register u_int count = 0; register u_int num; register u_int cardinality; while (attr = (Attr_attribute) valist_get(valist)) { count++; /* count the attribute */ cardinality = ATTR_CARDINALITY(attr); attr_check_pkg(last_attr, attr); last_attr = attr; switch (ATTR_LIST_TYPE(attr)) { case ATTR_NONE: /* not a list */ count += cardinality; valist = valist_skip_value(attr, valist); break; case ATTR_NULL: /* null terminated list */ switch (ATTR_LIST_PTR_TYPE(attr)) { case ATTR_LIST_IS_INLINE: /* * Note that this only checks the first four bytes for the * null termination. */ while (valist_get(valist)) count++; count++; /* count the null terminator */ break; case ATTR_LIST_IS_PTR: count++; (void) valist_get(valist); break; } break; case ATTR_COUNTED: /* counted list */ switch (ATTR_LIST_PTR_TYPE(attr)) { case ATTR_LIST_IS_INLINE:{ va_list orig_list = valist; num = ((u_int) (valist_get(valist))) * cardinality + 1; count += num; valist = valist_skip_value(attr, orig_list); break; } case ATTR_LIST_IS_PTR: count++; (void) valist_get(valist); break; } break; case ATTR_RECURSIVE: /* recursive attribute-value list */ if (cardinality == 0) /* don't include the attribute */ count--; switch (ATTR_LIST_PTR_TYPE(attr)) { case ATTR_LIST_IS_INLINE: count += valist_count_recursive(valist, attr); if (cardinality != 0) /* count the null terminator */ count++; valist = valist_skip_value(attr, valist); break; case ATTR_LIST_IS_PTR: if (cardinality != 0) { /* don't collapse inline */ count++; (void) valist_get(valist); } else { Attr_avlist new_avlist = (Attr_avlist) valist_get(valist); if (new_avlist) /* * Here we count the elements of the recursive list * as being inline. Don't count the null terminator. */ count += attr_count_avlist(new_avlist, attr); } break; } break; } } return count; } #endif /* not NON_PORTABLE */ xview-3.2p1.4/lib/libxview/attr/attr_util.c100644 1750 1750 2274 5413747673 16173 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)attr_util.c 20.18 93/06/28"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #include #include /* * attr_create_list creates an avlist from the VARARGS passed on the stack. * The storage is always allocated. */ Attr_avlist #ifdef ANSI_FUNC_PROTO attr_create_list(Attr_attribute attr1, ...) #else attr_create_list(attr1, va_alist) Attr_attribute attr1; va_dcl #endif { va_list valist; Attr_avlist avlist = (Attr_avlist) malloc( ATTR_STANDARD_SIZE * sizeof( Attr_attribute )); VA_START(valist, attr1); copy_va_to_av( valist, avlist, attr1 ); va_end(valist); return avlist; } /* * attr_find searches and avlist for the first occurrence of a specified * attribute. */ Attr_avlist attr_find(attrs, attr) register Attr_avlist attrs; register Attr_attribute attr; { for (; *attrs; attrs = attr_next(attrs)) { if (*attrs == attr) break; } return (attrs); } xview-3.2p1.4/lib/libxview/attr/attr_impl.h100644 1750 1750 2331 5413747673 16156 0ustar mbmb/* @(#)attr_impl.h 20.13 90/11/13 SMI */ /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #ifndef _attr_impl_h_already_included #define _attr_impl_h_already_included #include #include /* size of an attribute */ #define ATTR_SIZE (sizeof(Attr_attribute)) #define avlist_get(avlist) *(avlist)++ /* * Copy count elements from list to dest. Advance both list and dest to the * next element after the last one copied. */ #define avlist_copy(avlist, dest, count) \ { \ XV_BCOPY((char *) avlist, (char *) dest, (int)(count * ATTR_SIZE)); \ avlist += count; \ dest += count; \ } /* * A macro to copy attribute values count is the number of Xv_opaque size * chunks to copy. */ #define avlist_copy_values(avlist, dest, count) \ if (count == 1) \ *dest++ = avlist_get(avlist); \ else { \ avlist_copy(avlist, dest, count); \ } /* package private routines */ extern Attr_avlist attr_copy_avlist(); extern int attr_count_avlist(); extern Attr_avlist attr_copy_valist(); #endif _attr_impl_h_already_included xview-3.2p1.4/lib/libxview/attr/attr.h100644 1750 1750 37022 5413747674 15163 0ustar mbmb/* @(#)attr.h 20.44 93/06/28 */ /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #ifndef xview_attr_DEFINED #define xview_attr_DEFINED /* *********************************************************************** * Include Files *********************************************************************** */ #include #include /* *********************************************************************** * Definitions and Macros *********************************************************************** */ /* * This macro is machine dependent in that it assumes * the cardinality will be in the lower 5 bits of the type-cardinality * pair. */ #define ATTR_TYPE(base_type, cardinality) \ (((((unsigned)(base_type)) & 0x07f) << 5) | \ (((unsigned)(cardinality)) & 0x0f)) /* * Note that this macro is machine dependent in that it assumes the * base_type-cardinality pair will be in the lower 13 bits of the * list_type-base_cardinality pair. */ #define ATTR_LIST_OF(list_type, list_ptr_type, base_cardinality) \ (((((unsigned)(list_type)) & 0x3) << 14) | \ (((unsigned)(list_ptr_type) & 0x1) << 13) | \ (((unsigned)(base_cardinality)) & 0x3fff)) #define ATTR_LIST_INLINE(list_type, base_cardinality) \ ATTR_LIST_OF(list_type, ATTR_LIST_IS_INLINE, base_cardinality) #define ATTR_LIST_PTR(list_type, base_cardinality) \ ATTR_LIST_OF(list_type, ATTR_LIST_IS_PTR, base_cardinality) /* * An attribute is composed of * pkg ( 8 bits): id of package that uses the attribute * ordinal ( 8 bits): ordinal number of the attribute * type (16 bits): list type, list pointer type, base type, and cardinality */ #define ATTR(pkg, type, ordinal) \ ( ((((unsigned)(pkg)) & 0x7f) << 24) | \ ((((unsigned)(ordinal)) & 0xff) << 16) | \ (((unsigned)(type)) & 0xffef) ) /* * The base type space potentially runs from 0 to 127 inclusive. This is * subdivided as follows: * [0..32) [ATTR_BASE_UNUSED_FIRST..ATTR_BASE_UNUSED_LAST] * Reserved for non-Sun packages. * [32..64) Reserved for future use. * [64..128) [ATTR_BASE_FIRST..ATTR_BASE_LAST] is currently used by * Sun packages * (ATTR_BASE_LAST..128) is for future use by Sun packages. */ #define ATTR_BASE_UNUSED_FIRST 0 #define ATTR_BASE_UNUSED_LAST 31 #define ATTR_BASE_FIRST 64 #define ATTR_PKG_UNUSED_FIRST 1 #define ATTR_PKG_UNUSED_LAST 31 #define ATTR_PKG_FIRST 64 /* * Values from the Attr_pkg enumeration which are required for some * of the following #defines. This allows those defines to remain in this * section rather than below the enumeration. */ #define ATTR_PKG_ZERO_VALUE 0 #define ATTR_PKG_GENERIC_VALUE ATTR_PKG_FIRST #define ATTR_PKG_LAST_VALUE ATTR_PKG_FIRST + 14 /* * ATTR_STANDARD_SIZE is large enough to allow for * most attribute-value lists. */ #define ATTR_STANDARD_SIZE 250 /* * Generic attribute definition */ #define GENERIC_ATTR(type, ordinal) \ ATTR(ATTR_PKG_GENERIC_VALUE, type, ordinal) /* * Note that in these macros, attr must not be * in a register or be a constant. * Since this is deemed too restrictive, we use * shifting & masking instead. * #define ATTR_UNION(attr) ((Attr_union *) &((Attr_attribute) (attr))) * #define ATTR_INFO(attr) (ATTR_UNION(attr)->info) * #define ATTR_CODE(attr) (ATTR_UNION(attr)->code) * #define ATTR_LIST_TYPE(attr) (ATTR_INFO(attr).list_type) * #define ATTR_LIST_PTR_TYPE(attr) (ATTR_INFO(attr).list_ptr_type) * #define ATTR_BASE_TYPE(attr) (ATTR_INFO(attr).base_type) * #define ATTR_CARDINALITY(attr) (ATTR_INFO(attr).cardinality) * #define ATTR_CONSUMED(attr) (ATTR_INFO(attr).consumed) * #define ATTR_PKG(attr) (ATTR_INFO(attr).pkg) * #define ATTR_ORDINAL(attr) (ATTR_INFO(attr).ordinal) */ #define ATTR_CODE(attr) ((unsigned) (attr)) #define ATTR_PKG(attr) \ ((Attr_pkg) ((ATTR_CODE(attr) >> 24) & 0xFF)) #define ATTR_ORDINAL(attr) \ ((unsigned) ((ATTR_CODE(attr) >> 16) & 0xFF)) #define ATTR_LIST_TYPE(attr) \ ((Attr_list_type) ((ATTR_CODE(attr) >> 14) & 0x3)) #define ATTR_LIST_PTR_TYPE(attr) \ ((Attr_list_ptr_type) ((ATTR_CODE(attr) >> 13) & 0x1)) #define ATTR_BASE_TYPE(attr) \ ((Attr_base_type) ((ATTR_CODE(attr) >> 5) & 0x7F)) /* * This macro is different from ATTR_BASE_TYPE in that it returns * the 'type' of the attribute, and not just the base type. * The base type is one of the things that is used to specify 'type'. * * It is also different from ATTR_TYPE, which returns the * bits. * * Note: Bit 4 i.e. the spare1 bit is zeroed. */ #define ATTR_WHICH_TYPE(attr) \ ((Attr_base_cardinality) ((ATTR_CODE(attr)) & 0xffef)) #define ATTR_CARDINALITY(attr) \ ((unsigned) (ATTR_CODE(attr) & 0xF)) #define ATTR_CONSUMED(attr) ((unsigned) ((ATTR_CODE(attr) >> 12) & 0x1)) #define attr_skip(attr, argv) \ ((ATTR_LIST_TYPE((attr)) == ATTR_NONE) \ ? (Attr_avlist) (argv) + ATTR_CARDINALITY((attr)) \ : attr_skip_value((Attr_attribute)(attr), (argv))) #define attr_next(attrs) attr_skip((*(attrs)), ((attrs)+1)) #define attr_make( listhead, listlen, valist ) \ attr_make_count( listhead, listlen, valist, NULL ) /* * Character unit support * Provided for SunView 1 compatibility. */ #ifndef lint #define attr_replace_cu(avlist, font, lmargin, tmargin, rgap) \ attr_rc_units_to_pixels(avlist, xv_get(font, FONT_DEFAULT_CHAR_WIDTH), \ xv_get(font, FONT_DEFAULT_CHAR_HEIGHT), lmargin, tmargin, 0, rgap) #define attr_cu_to_x(encoded_value, font, left_margin) \ attr_rc_unit_to_x(encoded_value, xv_get(font, FONT_DEFAULT_CHAR_WIDTH), left_margin, 0) #define attr_cu_to_y(encoded_value, font, top_margin, row_gap) \ attr_rc_unit_to_y(encoded_value, xv_get(font, FONT_DEFAULT_CHAR_HEIGHT), top_margin, \ row_gap) #endif /* lint */ #define ATTR_CU_TAG 0x80000000 #define ATTR_PIXEL_OFFSET 0x00008000 #define ATTR_CU_MASK 0xC0000000 #define ATTR_CU_TYPE(n) \ ((Attr_cu_type) ((n) & (unsigned) (ATTR_CU_LENGTH))) #define ATTR_CU(unit, n) \ (((unsigned)(unit)) | (((n) & 0x1FFF) << 16) | \ ATTR_CU_TAG | ATTR_PIXEL_OFFSET) /* * attr_is_cu(n) returns non-zero if n has * been encoded using ATTR_CU() */ #define attr_is_cu(n) (((n) & ATTR_CU_MASK) == ATTR_CU_TAG) /* * Following are useful for multi-pass avlist processing. */ #define ATTR_NOP(attr) (ATTR_CODE(attr) | (0x1 << 12)) #define ATTR_CONSUME(attr) (attr) = ((Xv_opaque)ATTR_NOP(attr)) /* * For Sunview 1 compatibility */ #define ATTR_PIXWIN_PTR ATTR_OPAQUE /* * Macros for position including * margins. */ #define ATTR_COL(n) ATTR_CU(ATTR_CU_POSITION, n) #define ATTR_ROW(n) ATTR_CU(ATTR_CU_POSITION, n) /* * Macros for length excluding * margins. */ #define ATTR_COLS(n) ATTR_CU(ATTR_CU_LENGTH, n) #define ATTR_ROWS(n) ATTR_CU(ATTR_CU_LENGTH, n) #define ATTR_CHARS(n) ATTR_CU(ATTR_CU_LENGTH, n) #define ATTR_LINES(n) ATTR_CU(ATTR_CU_LENGTH, n) /* *********************************************************************** * Typedefs, enumerations, and structs *********************************************************************** */ /* * Attr_avlist is not an array of Attr_attributes, because it is an array * of intermixed attributes and values. */ typedef unsigned long Attr_attribute; /* 32 bit quantity */ typedef Attr_attribute *Attr_avlist; /* * Enumerations */ typedef enum { ATTR_CU_POSITION = 0x0, /* bit 29 is off */ ATTR_CU_LENGTH = 0x20000000 /* bit 29 is on */ } Attr_cu_type; typedef enum { ATTR_LIST_IS_INLINE = 0, ATTR_LIST_IS_PTR = 1 } Attr_list_ptr_type; typedef enum { /* Note that ATTR_NONE must have a value of zero, * since a no-list type is assumed for each of the * types in Attr_base_cardinality. */ ATTR_NONE = 0, ATTR_RECURSIVE = 1, ATTR_NULL = 2, ATTR_COUNTED = 3 } Attr_list_type; /* * NOTE: The base type numbers have to be EXACTLY the same as SunView1 in order * to support cut and paste between SunView1 and XView windows. * Nothing changes! */ typedef enum { ATTR_BASE_NO_VALUE = ATTR_BASE_FIRST + 17, /* * Fundamental C types. */ ATTR_BASE_INT = ATTR_BASE_FIRST, ATTR_BASE_LONG = ATTR_BASE_FIRST + 24, ATTR_BASE_SHORT = ATTR_BASE_FIRST + 25, ATTR_BASE_ENUM = ATTR_BASE_FIRST + 9, ATTR_BASE_CHAR = ATTR_BASE_FIRST + 10, #ifdef OW_I18N ATTR_BASE_WCHAR = ATTR_BASE_FIRST + 26, #define ATTR_BASE_CHAR_WC ATTR_BASE_WCHAR #endif ATTR_BASE_STRING = ATTR_BASE_FIRST + 11, #ifdef OW_I18N ATTR_BASE_WSTRING = ATTR_BASE_FIRST + 27, #define ATTR_BASE_STRING_WCS ATTR_BASE_WSTRING #endif ATTR_BASE_FUNCTION_PTR = ATTR_BASE_FIRST + 19, /* * Derivative C types. */ ATTR_BASE_BOOLEAN = ATTR_BASE_FIRST + 8, ATTR_BASE_OPAQUE = ATTR_BASE_FIRST + 16, /* * Special coordinate types; look in attr_cu.c for the details. */ ATTR_BASE_X = ATTR_BASE_FIRST + 2, ATTR_BASE_INDEX_X = ATTR_BASE_FIRST + 3, ATTR_BASE_Y = ATTR_BASE_FIRST + 4, ATTR_BASE_INDEX_Y = ATTR_BASE_FIRST + 5, ATTR_BASE_XY = ATTR_BASE_FIRST + 6, ATTR_BASE_INDEX_XY = ATTR_BASE_FIRST + 7, /* * Pointer types. */ ATTR_BASE_PIXRECT_PTR = ATTR_BASE_FIRST + 12, ATTR_BASE_PIXFONT_PTR = ATTR_BASE_FIRST + 13, ATTR_BASE_RECT_PTR = ATTR_BASE_FIRST + 15, ATTR_BASE_AV = ATTR_BASE_FIRST + 18, ATTR_BASE_ICON_PTR = ATTR_BASE_FIRST + 20, ATTR_BASE_SINGLE_COLOR_PTR = ATTR_BASE_FIRST + 21, ATTR_BASE_CURSOR_PTR = ATTR_BASE_FIRST + 22, #ifdef OW_I18N ATTR_BASE_LAST = ATTR_BASE_FIRST + 27 #else ATTR_BASE_LAST = ATTR_BASE_FIRST + 25 #endif } Attr_base_type; /* Clients of the attribute value package should use * Attr_base_cardinality elements to define the base type * and cardinality of their attributes. */ typedef enum { ATTR_NO_VALUE = ATTR_TYPE(ATTR_BASE_NO_VALUE, 0), ATTR_INT = ATTR_TYPE(ATTR_BASE_INT, 1), ATTR_INT_PAIR = ATTR_TYPE(ATTR_BASE_INT, 2), ATTR_INT_TRIPLE = ATTR_TYPE(ATTR_BASE_INT, 3), ATTR_LONG = ATTR_TYPE(ATTR_BASE_LONG, 1), ATTR_SHORT = ATTR_TYPE(ATTR_BASE_SHORT, 1), ATTR_ENUM = ATTR_TYPE(ATTR_BASE_ENUM, 1), ATTR_CHAR = ATTR_TYPE(ATTR_BASE_CHAR, 1), #ifdef OW_I18N ATTR_WCHAR = ATTR_TYPE(ATTR_BASE_WCHAR, 1), #define ATTR_CHAR_WC ATTR_WCHAR #endif ATTR_STRING = ATTR_TYPE(ATTR_BASE_STRING, 1), #ifdef OW_I18N ATTR_WSTRING = ATTR_TYPE(ATTR_BASE_WSTRING, 1), #define ATTR_STRING_WCS ATTR_WSTRING #endif ATTR_FUNCTION_PTR = ATTR_TYPE(ATTR_BASE_FUNCTION_PTR, 1), ATTR_BOOLEAN = ATTR_TYPE(ATTR_BASE_BOOLEAN, 1), ATTR_OPAQUE = ATTR_TYPE(ATTR_BASE_OPAQUE, 1), ATTR_OPAQUE_PAIR = ATTR_TYPE(ATTR_BASE_OPAQUE, 2), ATTR_OPAQUE_TRIPLE = ATTR_TYPE(ATTR_BASE_OPAQUE, 3), ATTR_X = ATTR_TYPE(ATTR_BASE_X, 1), ATTR_INDEX_X = ATTR_TYPE(ATTR_BASE_INDEX_X, 2), ATTR_Y = ATTR_TYPE(ATTR_BASE_Y, 1), ATTR_INDEX_Y = ATTR_TYPE(ATTR_BASE_INDEX_Y, 2), ATTR_XY = ATTR_TYPE(ATTR_BASE_XY, 2), ATTR_INDEX_XY = ATTR_TYPE(ATTR_BASE_INDEX_XY, 3), ATTR_PIXRECT_PTR = ATTR_TYPE(ATTR_BASE_PIXRECT_PTR, 1), ATTR_PIXFONT_PTR = ATTR_TYPE(ATTR_BASE_PIXFONT_PTR, 1), ATTR_RECT_PTR = ATTR_TYPE(ATTR_BASE_RECT_PTR, 1), ATTR_AV = ATTR_TYPE(ATTR_BASE_AV, 1), ATTR_ICON_PTR = ATTR_TYPE(ATTR_BASE_ICON_PTR, 1), ATTR_SINGLE_COLOR_PTR = ATTR_TYPE(ATTR_BASE_SINGLE_COLOR_PTR, 1), ATTR_CURSOR_PTR = ATTR_TYPE(ATTR_BASE_CURSOR_PTR, 1) } Attr_base_cardinality; /* * The package id space potentially runs from 0 to 255 inclusive. This is * subdivided as follows: * 0 NEVER a valid package id. * [1..32) [ATTR_PKG_UNUSED_FIRST..ATTR_PKG_UNUSED_LAST] * Reserved for non-Sun packages. * [32..64) Reserved for future use. * [64..128) [ATTR_PKG_FIRST..ATTR_PKG_LAST] is currently used by * Sun packages * (ATTR_PKG_LAST..128) is for future use by Sun packages. * [128..256) Reserved for future use. */ typedef enum { ATTR_PKG_ZERO = ATTR_PKG_ZERO_VALUE, ATTR_PKG_GENERIC = ATTR_PKG_GENERIC_VALUE, ATTR_PKG_CURSOR = ATTR_PKG_FIRST + 1, ATTR_PKG_DRAWABLE = ATTR_PKG_FIRST + 2, ATTR_PKG_FONT = ATTR_PKG_FIRST + 3, ATTR_PKG_IMAGE = ATTR_PKG_FIRST + 4, ATTR_PKG_SERVER_IMAGE = ATTR_PKG_FIRST + 5, ATTR_PKG_SCREEN = ATTR_PKG_FIRST + 6, ATTR_PKG_SELN_BASE = 71, /* ATTR_PKG_FIRST + 7 */ /* ATTR_PKG_SELN_BASE must be 71, as it is known to 3.X and 4.X code. * In fact, the layout of the bits in an attribute is known, and also * cannot change without breaking communication between SunView 1 and * XView selections. */ ATTR_PKG_SERVER = ATTR_PKG_FIRST + 8, ATTR_PKG_WIN = ATTR_PKG_FIRST + 9, ATTR_PKG_SV = ATTR_PKG_FIRST + 10, ATTR_PKG_FULLSCREEN = ATTR_PKG_FIRST + 11, ATTR_PKG_ERROR = ATTR_PKG_FIRST + 12, ATTR_PKG_CMS = ATTR_PKG_FIRST + 13, ATTR_PKG_DND = ATTR_PKG_FIRST + 14, /* REMIND: ATTR_PKG_SELECTION should be ATTR_PKG_FIRST+15 put this will cause the pkg values for the OL pkgs to change. This would break binary compatibility. So we put the new intrinsic pkg after the OL pkgs. When we can again break binary compatibility, we should change this and add some space between the intrinsic pkgs and the OL pkgs. Remove comment in attrol.h when this is fixed. */ ATTR_PKG_SELECTION = ATTR_PKG_LAST_VALUE + 20, ATTR_PKG_LAST = ATTR_PKG_LAST_VALUE /* * Change ATTR_PKG_LAST_VALUE to be EQUAL to the last legal pkg id. * The procedure counter(), called by attr_make, aborts if * PKG_ID > ATTR_PKG_LAST * PKG name should also be added to attr_names[] in attr.c */ } Attr_pkg; /* * Generic attributes: ATTR_PKG_GENERIC is shared with * generic.h [64..128). */ typedef enum { ATTR_LIST = GENERIC_ATTR(ATTR_LIST_PTR(ATTR_RECURSIVE, ATTR_NO_VALUE), 0), ATTR_NOP0 = GENERIC_ATTR(ATTR_NO_VALUE, 16), ATTR_NOP1 = GENERIC_ATTR(ATTR_OPAQUE, 17), ATTR_NOP2 = GENERIC_ATTR(ATTR_TYPE(ATTR_BASE_OPAQUE, 2), 18), ATTR_NOP3 = GENERIC_ATTR(ATTR_TYPE(ATTR_BASE_OPAQUE, 3), 19), ATTR_NOP4 = GENERIC_ATTR(ATTR_TYPE(ATTR_BASE_OPAQUE, 4), 20) } Attr_generic; /* * Structs */ typedef union { struct { ENUM_BITFIELD(Attr_pkg) pkg : 8; unsigned ordinal : 8; ENUM_BITFIELD(Attr_list_type) list_type : 2; ENUM_BITFIELD(Attr_list_ptr_type) list_ptr_type : 1; unsigned consumed : 1; ENUM_BITFIELD(Attr_base_type) base_type : 7; unsigned spare1 : 1; /*unused*/ unsigned cardinality : 4; } info; Attr_attribute code; } Attr_union; /* *********************************************************************** * Globals *********************************************************************** */ /* * Public Functions */ EXTERN_FUNCTION (Attr_avlist attr_create_list, (Attr_attribute attr1, DOTDOTDOT)); /* * Private Functions */ EXTERN_FUNCTION (int attr_copy, (Attr_avlist *source, Attr_avlist *dest)); EXTERN_FUNCTION (int attr_count, (Attr_avlist count)); EXTERN_FUNCTION (char * attr_name, (Attr_attribute attr)); EXTERN_FUNCTION (Attr_avlist attr_skip_value, (Attr_attribute attr, Attr_avlist avlist)); EXTERN_FUNCTION (int attr_rc_unit_to_x, (unsigned int encoded_value, int col_width, int left_margin, int col_gap)); EXTERN_FUNCTION (int attr_rc_unit_to_y, (unsigned int encoded_value, int row_height, int top_margin, int row_gap)); EXTERN_FUNCTION (void attr_rc_units_to_pixels, (Attr_avlist avlist, int col_width, int row_height, int left_margin, int top_margin, int col_gap, int row_gap)); #endif /* xview_attr_DEFINED */ xview-3.2p1.4/lib/libxview/attr/Imakefile100644 1750 1750 1441 5413747674 15625 0ustar mbmb#include #if SharedLibXView #define DoSharedLib YES #endif #include /**/########################################################################### /**/# @(#)Imakefile 1.8 28 Jun 1993 SMI #ifndef SubdirHasTextObjs #define SubdirHasTextObjs YES #endif #ifndef SubdirHasDataObjs #define SubdirHasDataObjs NO #endif #ifndef SubdirHasPublicHeaders #define SubdirHasPublicHeaders YES #endif #ifndef SubdirHasPrivateHeaders #define SubdirHasPrivateHeaders YES #endif HDRSPUBLIC= attr.h HDRSPRIVATE= attr_impl.h DATA_OJS = TEXT_OBJS =\ attr.o\ attr_copy.o\ attr_cu.o\ attr_cust.o\ attr_util.o SRCS =\ attr.c\ attr_copy.c\ attr_cu.c\ attr_cust.c\ attr_util.c LIBTARGET = xview TARGETDIR = ../../lib${LIBTARGET}/ SOREV = $(SOXVIEWREV) #include xview-3.2p1.4/lib/libxview/attr/attr.c100644 1750 1750 34271 5413747674 15161 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)attr.c 20.24 90/12/04"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #include #include #include #include #include #ifdef SVR4 #include #endif SVR4 Xv_private FILE *xv_help_find_file(); #define ANBUFSIZE 64 static char attr_name_buf[ANBUFSIZE]; /* to hold name of attribute */ Attr_avlist attr_make_count( listhead, listlen, valist, countptr ) Attr_avlist listhead; int listlen; va_list valist; int *countptr; { return( copy_va_to_av( valist, listhead, NULL )); } /* * attr_name - return a pointer to a string containing the name of * the specified attribute, or its hex value if not found. */ Xv_private char * attr_name(attr) Attr_attribute attr; { int attr_value; FILE *file_ptr; int found = FALSE; attr_name_buf[0] = 0; file_ptr = xv_help_find_file("attr_names"); if (file_ptr) { while (fscanf(file_ptr, "%x %s\n", &attr_value, attr_name_buf) != EOF) { if (found = (attr_value == attr)) break; } fclose(file_ptr); } if (!found) sprintf(attr_name_buf, "attr # 0x%08x", attr); return attr_name_buf; } /* copy_va_to_av copies a varargs parameter list into an avlist. If the avlist parameter is NULL a new avlist is malloced and returned after the varargs list is copied into it. Attr1 exists because ANSI C requires that all varargs be preceded by a normal parameter, but some xview functions have only a varargs list as their parameters. So those functions declare the first vararg parameter as a normal parameter, and pass it in to copy_va_to_av as attr1. */ Attr_attribute avlist_tmp[ATTR_STANDARD_SIZE]; Xv_private Attr_avlist copy_va_to_av( valist1, avlist1, attr1 ) va_list valist1; Attr_avlist avlist1; Attr_attribute attr1; { register Attr_attribute attr; register unsigned cardinality; register int i; int avlist_size; static va_list valist; static Attr_avlist avlist; static int arg_count = 0, arg_count_max = ATTR_STANDARD_SIZE, recursion_count = 0; recursion_count++; /* These two variables are used instead of the paramters so that the position in the lists is maintained after a recursive call. */ valist = valist1; avlist = avlist1; if( !avlist ) avlist = avlist_tmp; if( attr1 ) attr = attr1; else attr = va_arg( valist, Attr_attribute ); while( attr ) { if( ++arg_count > arg_count_max ) { xv_error( NULL, ERROR_STRING, XV_MSG( "A/V list more than 250 elements long, extra elements ignored"), 0); return( avlist1 ); } cardinality = ATTR_CARDINALITY(attr); switch (ATTR_LIST_TYPE(attr)) { case ATTR_NONE: /* not a list */ *avlist++ = attr; if(( arg_count += cardinality ) > arg_count_max ) { xv_error( NULL, ERROR_STRING, XV_MSG( "A/V list more than 250 elements long, extra elements ignored"), 0); return( avlist1 ); } for( i=0; i < cardinality; i++ ) *avlist++ = va_arg( valist, Attr_attribute ); break; case ATTR_NULL: /* null terminated list */ *avlist++ = attr; switch (ATTR_LIST_PTR_TYPE(attr)) { case ATTR_LIST_IS_INLINE: /* * Note that this only checks the first four bytes for the * null termination. Copy each value element until we have * copied the null termination. */ do { if(( arg_count += cardinality ) > arg_count_max ) { xv_error( NULL, ERROR_STRING, XV_MSG( "A/V list more than 250 elements long, extra elements ignored"), 0); return( avlist1 ); } for( i=0; i < cardinality; i++ ) *avlist++ = va_arg( valist, Attr_attribute ); } while (*(avlist - 1)); break; case ATTR_LIST_IS_PTR: if( ++arg_count > arg_count_max ) { xv_error( NULL, ERROR_STRING, XV_MSG( "A/V list more than 250 elements long, extra elements ignored"), 0); return( avlist1 ); } *avlist++ = va_arg( valist, Attr_attribute ); break; } break; case ATTR_COUNTED: /* counted list */ *avlist++ = attr; switch (ATTR_LIST_PTR_TYPE(attr)) { case ATTR_LIST_IS_INLINE: { register unsigned count; if( ++arg_count > arg_count_max ) { xv_error( NULL, ERROR_STRING, XV_MSG( "A/V list more than 250 elements long, extra elements ignored"), 0); return( avlist1 ); } *avlist = va_arg( valist, Attr_attribute ); /*copy the count*/ count = ((unsigned) *avlist++) * cardinality; if(( arg_count += count ) > arg_count_max ) { xv_error( NULL, ERROR_STRING, XV_MSG( "A/V list more than 250 elements long, extra elements ignored"), 0); return( avlist1 ); } for( i=0; i < count; i++ ) *avlist++ = va_arg( valist, Attr_attribute ); } break; case ATTR_LIST_IS_PTR: if( ++arg_count > arg_count_max ) { xv_error( NULL, ERROR_STRING, XV_MSG( "A/V list more than 250 elements long, extra elements ignored"), 0); return( avlist1 ); } *avlist++ = va_arg( valist, Attr_attribute ); break; } break; case ATTR_RECURSIVE: /* recursive attribute-value list */ if (cardinality != 0) /* don't strip it */ *avlist++ = attr; switch (ATTR_LIST_PTR_TYPE(attr)) { case ATTR_LIST_IS_INLINE: (void) copy_va_to_av(valist, avlist, 0); if (cardinality != 0) /* don't strip it */ avlist++; /* move past the null terminator */ break; case ATTR_LIST_IS_PTR: if (cardinality != 0) /* don't collapse inline */ { if( ++arg_count > arg_count_max ) { xv_error( NULL, ERROR_STRING, XV_MSG( "A/V list more than 250 elements long, extra elements ignored"), 0); return( avlist1 ); } *avlist++ = va_arg( valist, Attr_attribute ); } else { attr = va_arg( valist, Attr_attribute ); if (attr) /* * Copy the list inline -- don't move past the null * termintor. Here both the attribute and null * terminator will be stripped away. */ avlist = attr_copy_avlist(avlist, (Attr_avlist) attr); } break; } break; } attr = va_arg( valist, Attr_attribute ); } *avlist = NULL; if( !avlist1 ) { avlist_size = (( avlist - avlist_tmp ) + 1 ) * sizeof( Attr_attribute ); avlist1 = xv_malloc( avlist_size ); XV_BCOPY( avlist_tmp, avlist1, avlist_size ); } if( --recursion_count == 0 ) { arg_count = 0; arg_count_max = ATTR_STANDARD_SIZE; } return( avlist1 ); } /* * attr_copy_avlist copies the attribute-value list from avlist to dest. * Recursive lists are collapsed into dest. */ Attr_avlist attr_copy_avlist(dest, avlist) register Attr_avlist dest; register Attr_avlist avlist; { register Attr_attribute attr; register unsigned cardinality; while (attr = (Attr_attribute) avlist_get(avlist)) { cardinality = ATTR_CARDINALITY(attr); switch (ATTR_LIST_TYPE(attr)) { case ATTR_NONE: /* not a list */ *dest++ = attr; avlist_copy_values(avlist, dest, cardinality); break; case ATTR_NULL: /* null terminated list */ *dest++ = attr; switch (ATTR_LIST_PTR_TYPE(attr)) { case ATTR_LIST_IS_INLINE: /* * Note that this only checks the first four bytes for the * null termination. Copy each value element until we have * copied the null termination. */ do { avlist_copy_values(avlist, dest, cardinality); } while (*(dest - 1)); break; case ATTR_LIST_IS_PTR: *dest++ = avlist_get(avlist); break; } break; case ATTR_COUNTED: /* counted list */ *dest++ = attr; switch (ATTR_LIST_PTR_TYPE(attr)) { case ATTR_LIST_IS_INLINE:{ register unsigned count; *dest = avlist_get(avlist); /* copy the count */ count = ((unsigned) *dest++) * cardinality; avlist_copy_values(avlist, dest, count); } break; case ATTR_LIST_IS_PTR: *dest++ = avlist_get(avlist); break; } break; case ATTR_RECURSIVE: /* recursive attribute-value list */ if (cardinality != 0) /* don't strip it */ *dest++ = attr; switch (ATTR_LIST_PTR_TYPE(attr)) { case ATTR_LIST_IS_INLINE: dest = attr_copy_avlist(dest, avlist); if (cardinality != 0) /* don't strip it */ dest++; /* move past the null terminator */ avlist = attr_skip(attr, avlist); break; case ATTR_LIST_IS_PTR: if (cardinality != 0) /* don't collapse inline */ *dest++ = avlist_get(avlist); else { Attr_avlist new_avlist = (Attr_avlist) avlist_get(avlist); if (new_avlist) /* * Copy the list inline -- don't move past the null * termintor. Here both the attribute and null * terminator will be stripped away. */ dest = attr_copy_avlist(dest, new_avlist); } break; } break; } } *dest = 0; return (dest); } /* * attr_count counts the number of slots in the av-list avlist. Recursive * lists are counted as being collapsed inline. */ int attr_count(avlist) Attr_avlist avlist; { /* count the null termination */ return (attr_count_avlist(avlist, (Attr_attribute) NULL) + 1); } int attr_count_avlist(avlist, last_attr) register Attr_avlist avlist; register Attr_attribute last_attr; /* BUG ALERT: Not used any more */ { register Attr_attribute attr; register unsigned count = 0; register unsigned num; register unsigned cardinality; while (attr = (Attr_attribute) * avlist++) { count++; /* count the attribute */ cardinality = ATTR_CARDINALITY(attr); last_attr = attr; switch (ATTR_LIST_TYPE(attr)) { case ATTR_NONE: /* not a list */ count += cardinality; avlist += cardinality; break; case ATTR_NULL: /* null terminated list */ switch (ATTR_LIST_PTR_TYPE(attr)) { case ATTR_LIST_IS_INLINE: /* * Note that this only checks the first four bytes for the * null termination. */ while (*avlist++) count++; count++; /* count the null terminator */ break; case ATTR_LIST_IS_PTR: count++; avlist++; break; } break; case ATTR_COUNTED: /* counted list */ switch (ATTR_LIST_PTR_TYPE(attr)) { case ATTR_LIST_IS_INLINE: num = ((unsigned) (*avlist)) * cardinality + 1; count += num; avlist += num; break; case ATTR_LIST_IS_PTR: count++; avlist++; break; } break; case ATTR_RECURSIVE: /* recursive attribute-value list */ if (cardinality == 0) /* don't include the attribute */ count--; switch (ATTR_LIST_PTR_TYPE(attr)) { case ATTR_LIST_IS_INLINE: count += attr_count_avlist(avlist, attr); if (cardinality != 0) /* count the null terminator */ count++; avlist = attr_skip(attr, avlist); break; case ATTR_LIST_IS_PTR: if (cardinality != 0) { /* don't collapse inline */ count++; avlist++; } else if (*avlist) /* * Here we count the elements of the recursive list as * being inline. Don't count the null terminator. */ count += attr_count_avlist((Attr_avlist) * avlist++, attr); else avlist++; break; } break; } } return count; } /* * attr_skip_value returns a pointer to the attribute after the value pointed * to by avlist. attr should be the attribute which describes the value at * avlist. */ Attr_avlist attr_skip_value(attr, avlist) register Attr_attribute attr; register Attr_avlist avlist; { switch (ATTR_LIST_TYPE(attr)) { case ATTR_NULL: if (ATTR_LIST_PTR_TYPE(attr) == ATTR_LIST_IS_PTR) avlist++; else while (*avlist++); break; case ATTR_RECURSIVE: if (ATTR_LIST_PTR_TYPE(attr) == ATTR_LIST_IS_PTR) avlist++; else while (attr = (Attr_attribute) * avlist++) avlist = attr_skip_value(attr, avlist); break; case ATTR_COUNTED: if (ATTR_LIST_PTR_TYPE(attr) == ATTR_LIST_IS_PTR) avlist++; else avlist += ((int) *avlist) * ATTR_CARDINALITY(attr) + 1; break; case ATTR_NONE: avlist += ATTR_CARDINALITY(attr); break; } return avlist; } xview-3.2p1.4/lib/libxview/attr/attr_cust.c100644 1750 1750 27300 5413747675 16213 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)attr_cust.c 1.7 91/03/25"; #endif #endif /* * (c) Copyright 1990 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #include #include #include #include #include #include #include #include #include EXTERN_FUNCTION( Xv_opaque db_get_data, ( XID db, XrmQuarkList instance_qlist, char *attr_name, Attr_attribute attr, Xv_opaque default_value )); Xv_private XrmQuarkList generic_create_instance_qlist(); static Attr_avlist attr_copy_customize(); /* * Typedefs for storing customizable attributes */ /* * Node for storing ONE customizable attribute */ typedef struct cust_attrs { Attr_attribute attr; char *attr_name; struct cust_attrs *next; }Cust_attrs; /* * Node for storing customizable attributes for one pkg */ typedef struct cust_pkgs { Xv_pkg *pkg; Cust_attrs *attr_list; struct cust_pkgs *next; }Cust_pkgs; /* * Ptr to list of nodes of customizable pkgs */ static Cust_pkgs *customizable_pkgs = (Cust_pkgs *)NULL; /* * Routines for manipulating customizable attributes */ /* * attr_new_cust_pkg * allocs new Cust_pkgs node and returns it */ static Cust_pkgs * attr_new_cust_pkg(pkg) Xv_pkg *pkg; { Cust_pkgs *new; new = (Cust_pkgs *)xv_malloc(sizeof(Cust_pkgs)); if (!new) { return((Cust_pkgs *)NULL); } new->pkg = pkg; new->attr_list = (Cust_attrs *)NULL; new->next = (Cust_pkgs *)NULL; return(new); } /* * attr_new_cust_attr * allocs new Cust_attrs node and returns it */ static Cust_attrs * attr_new_cust_attr(attr, attr_name) Attr_attribute attr; char *attr_name; { Cust_attrs *new; new = (Cust_attrs *)xv_malloc(sizeof(Cust_attrs)); if (!new) { return((Cust_attrs *)NULL); } new->attr = attr; new->attr_name = attr_name; new->next = (Cust_attrs *)NULL; return(new); } /* * attr_search_cust_attr * searches 'attr_list' for node containing attribute 'attr' * and returns it */ static Cust_attrs * attr_search_cust_attr(attr_list, attr) Cust_attrs *attr_list; Attr_attribute attr; { Cust_attrs *cur_attr = (Cust_attrs *)NULL; for (cur_attr = attr_list; cur_attr; cur_attr = cur_attr->next) { /* * If found match, return right away */ if (cur_attr->attr == attr) { return(cur_attr); } } return(cur_attr); } /* * attr_search_cust_pkg * searches customizable_pkgs list for node corresponding to 'pkg' * and returns it */ static Cust_pkgs * attr_search_cust_pkg(pkg) Xv_pkg *pkg; { Cust_pkgs *cur_pkg = (Cust_pkgs *)NULL; for (cur_pkg = customizable_pkgs; cur_pkg; cur_pkg = cur_pkg->next) { if (cur_pkg->pkg == pkg) { return(cur_pkg); } } return(cur_pkg); } /* * attr_find_cust_pkg * searches customizable_pkgs list for node corresponding to * 'pkg' and returns it. * If it is not found, a new one is created. */ static Cust_pkgs * attr_find_cust_pkg(pkg) Xv_pkg *pkg; { Cust_pkgs *cur_pkg = (Cust_pkgs *)NULL; cur_pkg = attr_search_cust_pkg(pkg); if (cur_pkg) { return(cur_pkg); } cur_pkg = attr_new_cust_pkg(pkg); cur_pkg->next = customizable_pkgs; customizable_pkgs = cur_pkg; return(cur_pkg); } /* * Checks if the attribute 'attr' is customizable for the package * 'pkg' */ static char * attr_check_custom_pkg(pkg, attr) Xv_pkg *pkg; Attr_attribute attr; { Cust_pkgs *c_pkg = (Cust_pkgs *)NULL; Cust_attrs *c_attr = (Cust_attrs *)NULL; c_pkg = attr_search_cust_pkg(pkg); if (c_pkg) { c_attr = attr_search_cust_attr(c_pkg->attr_list, attr); if (c_attr) { return(c_attr->attr_name); } } return((char *)NULL); } /* * Checks if the attribute 'attr' is customizable for the package * 'pkg' */ static char * attr_check_custom(pkg, attr) Xv_pkg *pkg; Attr_attribute attr; { Xv_pkg *orig_pkg; char *attr_name = (char *)NULL; orig_pkg = pkg; while (orig_pkg) { attr_name = attr_check_custom_pkg(orig_pkg, attr); if (attr_name) { return(attr_name); } orig_pkg = orig_pkg->parent_pkg; } return((char *)NULL); } static Xv_server attr_get_server(obj, passed_owner) Xv_object obj; Xv_object passed_owner; { Xv_object owner; Xv_server server; if (!obj) { if (passed_owner) { obj = passed_owner; } else { return(xv_default_server); } } if (xv_get(obj, XV_IS_SUBTYPE_OF, SERVER)) { return(obj); } if (xv_get(obj, XV_IS_SUBTYPE_OF, SCREEN)) { server = (Xv_server)xv_get(obj, SCREEN_SERVER); return(server); } if (xv_get(obj, XV_IS_SUBTYPE_OF, WINDOW)) { server = XV_SERVER_FROM_WINDOW(obj); } else { owner = xv_get(obj, XV_OWNER, NULL); server = attr_get_server(owner, NULL); } if (!server) { server = xv_default_server; } return(server); } static Attr_avlist attr_copy_customize(obj, pkg, instance_name, owner, use_db, dest, avlist) Xv_object obj; Xv_pkg *pkg; char *instance_name; Xv_object owner; int use_db; Attr_avlist dest; Attr_avlist avlist; { register unsigned cardinality; char *attr_name; Attr_attribute attr; XID db; XrmQuarkList instance_qlist = NULL; Xv_opaque server; Xv_opaque temp; int see_db; Xv_opaque default_value; if (use_db) { if (obj) { instance_qlist = (XrmQuarkList)xv_get(obj, XV_INSTANCE_QLIST); } else { instance_qlist = (XrmQuarkList)generic_create_instance_qlist(owner, instance_name); } server = attr_get_server(obj, owner); db = (XID) xv_get(server, SERVER_RESOURCE_DB); } while (attr = (Attr_attribute) avlist_get(avlist)) { see_db = (attr == XV_USE_DB); cardinality = ATTR_CARDINALITY(attr); switch (ATTR_LIST_TYPE(attr)) { case ATTR_NONE: /* not a list */ *dest++ = attr; if (!use_db) { avlist_copy_values(avlist, dest, cardinality); } else { attr_name = attr_check_custom(pkg, attr); if (attr_name) { default_value = (Xv_opaque)avlist_get(avlist); temp = db_get_data(db, instance_qlist, attr_name, attr, default_value); *dest++ = (Attr_attribute)temp; } else { avlist_copy_values(avlist, dest, cardinality); } } break; case ATTR_NULL: /* null terminated list */ *dest++ = attr; switch (ATTR_LIST_PTR_TYPE(attr)) { case ATTR_LIST_IS_INLINE: /* * Note that this only checks the first four bytes for the * null termination. Copy each value element until we have * copied the null termination. */ do { avlist_copy_values(avlist, dest, cardinality); } while (*(dest - 1)); break; case ATTR_LIST_IS_PTR: *dest++ = avlist_get(avlist); break; } break; case ATTR_COUNTED: /* counted list */ *dest++ = attr; switch (ATTR_LIST_PTR_TYPE(attr)) { case ATTR_LIST_IS_INLINE:{ register unsigned count; *dest = avlist_get(avlist); /* copy the count */ count = ((unsigned) *dest++) * cardinality; avlist_copy_values(avlist, dest, count); } break; case ATTR_LIST_IS_PTR: *dest++ = avlist_get(avlist); break; } break; case ATTR_RECURSIVE: /* recursive attribute-value list */ if ((cardinality != 0) && (!see_db)) /* don't strip it */ *dest++ = attr; switch (ATTR_LIST_PTR_TYPE(attr)) { case ATTR_LIST_IS_INLINE: dest = attr_copy_customize(obj, pkg, instance_name, owner, see_db, dest, avlist); if ((cardinality != 0) && (!see_db)) /* don't strip it */ dest++; /* move past the null terminator */ avlist = attr_skip(attr, avlist); break; case ATTR_LIST_IS_PTR: if (cardinality != 0) /* don't collapse inline */ *dest++ = avlist_get(avlist); else { Attr_avlist new_avlist = (Attr_avlist) avlist_get(avlist); if (new_avlist) /* * Copy the list inline -- don't move past the null * termintor. Here both the attribute and null * terminator will be stripped away. */ dest = attr_copy_customize(obj, pkg, instance_name, owner, see_db, dest, new_avlist); } break; } break; } } *dest = 0; /* * Free instance_qlist if it was created */ if (instance_qlist) { free((char *)instance_qlist); } return (dest); } static int attr_check_use_custom(avlist) Attr_attribute avlist[]; { register unsigned cardinality; Attr_attribute attr; int found; while (attr = (Attr_attribute) avlist_get(avlist)) { if (attr == XV_USE_DB) { return(TRUE); } cardinality = ATTR_CARDINALITY(attr); switch (ATTR_LIST_TYPE(attr)) { case ATTR_NONE: /* not a list */ avlist = attr_skip(attr, avlist); break; case ATTR_NULL: /* null terminated list */ avlist = attr_skip(attr, avlist); break; case ATTR_COUNTED: /* counted list */ avlist = attr_skip(attr, avlist); break; case ATTR_RECURSIVE: /* recursive attribute-value list */ switch (ATTR_LIST_PTR_TYPE(attr)) { case ATTR_LIST_IS_INLINE: /* * For inline recursive list, call * attr_check_use_custom recursively */ found = attr_check_use_custom(avlist); /* * If found XV_USE_DB, return right away * else continue with rest of list, skipping over the * recursive list */ if (found) { return(found); } else { avlist = attr_skip(attr, avlist); } break; case ATTR_LIST_IS_PTR: /* * Isa: * For pointer type recursive lists, * only recurse if the cardinality is 0 * I don't know why yet - this is to be consistent * with attr_copy_customize and attr_copy */ if (cardinality == 0) { Attr_avlist new_avlist = (Attr_avlist) avlist_get(avlist); if (new_avlist) { found = attr_check_use_custom(new_avlist); /* * If found XV_USE_DB, return right away */ if (found) { return(found); } } } break; } break; } } /* * XV_USE_DB not found if this point reached, * return FALSE */ return (FALSE); } /* * XView private interface to customizable attrs */ Xv_private Attr_avlist attr_customize(obj, pkg, instance_name, owner, listhead, listlen, avlist) Xv_object obj; Xv_pkg *pkg; char *instance_name; Xv_object owner; Attr_attribute listhead[]; int listlen; Attr_attribute avlist[]; { if (!avlist) { return(avlist); } if (!attr_check_use_custom(avlist)) { return(avlist); } (void)attr_copy_customize(obj, pkg, instance_name, owner, FALSE, listhead, avlist); return(listhead); } /* * Public interface to customizable attributes */ Xv_public int #ifdef ANSI_FUNC_PROTO xv_add_custom_attrs(Xv_pkg *pkg, ...) #else xv_add_custom_attrs(pkg, va_alist) Xv_pkg *pkg; va_dcl #endif { va_list list; Cust_pkgs *c_pkg; Cust_attrs *c_attrs; Attr_attribute attr; char *attr_name; if (!pkg) { return; } VA_START(list, pkg); attr = va_arg(list, Attr_attribute); while (attr != (Attr_attribute)NULL) { attr_name = va_arg(list, char *); /* * Find customizable pkg struct */ c_pkg = attr_find_cust_pkg(pkg); /* * Create new cust attr struct with fields filled in */ c_attrs = attr_new_cust_attr(attr, attr_name); /* * Insert new cust attr */ c_attrs->next = c_pkg->attr_list; c_pkg->attr_list = c_attrs; /* * Get next customizable attribute */ attr = va_arg(list, Attr_attribute); } va_end(list); } xview-3.2p1.4/lib/libxview/attr/shared/ 40755 1750 1750 0 6354605660 15156 5ustar mbmbxview-3.2p1.4/lib/libxview/base/ 40755 1750 1750 0 6354605713 13647 5ustar mbmbxview-3.2p1.4/lib/libxview/base/pkg_public.h100644 1750 1750 5151 5413747676 16250 0ustar mbmb/* @(#)pkg_public.h 20.25 93/06/28 SMI */ /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #ifndef xview_pkg_public_DEFINED #define xview_pkg_public_DEFINED /* *********************************************************************** * Include Files *********************************************************************** */ #include #include /* *********************************************************************** * Typedefs, Enumerations, and Structures *********************************************************************** * * SunView pkg. definition */ /* * PRIVATE structures for pkg implementors only */ /* * Last field before "embedded" struct in an "embedding object". */ typedef long unsigned Xv_embedding; /* * Base instance for all objects */ typedef struct { long unsigned seal; /* Has "special" value meaning "am object" */ Xv_pkg *pkg; /* Always points to pkg chain for an object */ } Xv_base; /* *********************************************************************** * Globals *********************************************************************** */ /* * PUBLIC General interface functions */ EXTERN_FUNCTION (Xv_object xv_create, (Xv_opaque owner, Xv_pkg *pkg, DOTDOTDOT)); EXTERN_FUNCTION (Xv_object xv_find, (Xv_opaque owner, Xv_pkg *pkg, DOTDOTDOT)); EXTERN_FUNCTION (Xv_opaque xv_set, (Xv_opaque object, DOTDOTDOT)); EXTERN_FUNCTION (Xv_opaque xv_get, (Xv_opaque object, Attr_attribute attr, DOTDOTDOT)); EXTERN_FUNCTION (int xv_destroy_safe, (Xv_object object)); EXTERN_FUNCTION (int xv_destroy_check, (Xv_object object)); EXTERN_FUNCTION (int xv_destroy, (Xv_object object)); EXTERN_FUNCTION (int xv_destroy_immediate,(Xv_object object)); /* * PRIVATE functions for pkg implementors only */ EXTERN_FUNCTION (Xv_opaque xv_object_to_standard, (Xv_object object, const char *caller)); #if !(defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus)) #define const #endif extern const char *xv_notptr_str; #define XV_OBJECT_SEAL 0xF0A58142 #define XV_OBJECT_TO_STANDARD(_passed_object, _caller, _object)\ {\ if (!_passed_object) {\ xv_error(NULL, ERROR_INVALID_OBJECT,xv_notptr_str,\ ERROR_STRING, _caller,\ 0);\ _object = ((Xv_opaque)0);\ }\ else\ _object = (((Xv_base *)_passed_object)->seal == XV_OBJECT_SEAL) ? _passed_object : xv_object_to_standard(_passed_object, _caller);\ } #endif /* xview_pkg_public_DEFINED */ xview-3.2p1.4/lib/libxview/base/generic.h100644 1750 1750 20675 5413747676 15575 0ustar mbmb/* @(#)generic.h 20.45 93/06/28 SMI */ /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #ifndef xview_generic_DEFINED #define xview_generic_DEFINED /* * Generic attributes fall into two classes: * (1) Truly generic, implemented by attr_xxx.o or generic.o, use the * package ATTR_PKG_GENERIC, shared with attr.h. * (2) Common but not truly generic, implemented by .o's spread * across many sub-systems, use the package ATTR_PKG_SV, shared with xview.h. * Many of these common attributes pertain to server properties and thus only * apply to objects with a window server component. * * Implementation dependent notes on generic X attributes: * XV_XNAME has the format * "::". * XV_DEVICE_NUMBER is the XID of the underlying X object. XV_XID is * provided when a piece of code wants to emphasize that the "X id" is what * is needed, rather than an abstract "tree link". * Most of these attributes are only supported on Drawable objects, * but some, like XV_XID, are supported by all objects that have direct * underlying X components, e.g. Fonts. */ /* *********************************************************************** * Include Files *********************************************************************** */ #include /* *********************************************************************** * Definitions and Macros *********************************************************************** */ /* * PUBLIC #defines */ #define XV_GENERIC_OBJECT &xv_generic_pkg /* XV_COPY is "magic" package xv_create checks for to distinguish * creation of a new object from creation of a copy of an existing object. */ #define XV_COPY (Xv_pkg *)1 /* * Accelerator for XV_HELP and HELP_STRING_FILENAME */ #define XV_HELP_DATA XV_KEY_DATA, XV_HELP #define HELP_STRING_FILENAME XV_KEY_DATA, XV_HELP_STRING_FILENAME #define XV_XID XV_DEVICE_NUMBER #define XV_DUMMY_WINDOW 0x77777777 /* * Focus Client Rank. Value is of type Xv_focus_rank. * Referred to in the Mouseless Model Specification as "Focus Client Classes". * Transient and Limited focus classes are Window Manager objects. * An Ordinary Focus client has an XV_FOCUS_RANK of XV_FOCUS_SECONDARY. * A First Class Focus client has an XV_FOCUS_RANK of XV_FOCUS_PRIMARY. */ #define XV_FOCUS_RANK XV_KEY_DATA, XV_FOCUS_RANK_KEY #define XV_RC_SPECIAL 0x20000 #define XV_RESET_REF_COUNT XV_REF_COUNT, XV_RC_SPECIAL #define XV_INCREMENT_REF_COUNT XV_REF_COUNT, XV_RC_SPECIAL+1 #define XV_DECREMENT_REF_COUNT XV_REF_COUNT, XV_RC_SPECIAL-1 /* * PRIVATE #defines */ #define XV_ATTR(type, ordinal) ATTR(ATTR_PKG_SV, type, ordinal) #define XV_ATTR_LIST(ltype, type, ordinal) \ XV_ATTR(ATTR_LIST_INLINE((ltype), (type)), (ordinal)) /* *********************************************************************** * Typedefs, enumerations, and structs *********************************************************************** */ typedef enum { XV_FOCUS_SECONDARY = 0, /* default value (a.k.a., Ordinary Focus) */ XV_FOCUS_PRIMARY = 1 /* a.k.a., First Class Focus */ } Xv_focus_rank; /* * WARNING: GENERIC_ATTR shared with attr.h (which claims [0..64)) */ typedef enum { /* * PUBLIC and Generic */ /* * For "contexts": key & data (& optional destroy for data) */ XV_KEY_DATA = GENERIC_ATTR(ATTR_INT_PAIR, 64), XV_KEY_DATA_COPY_PROC = GENERIC_ATTR(ATTR_OPAQUE_PAIR, 65), XV_KEY_DATA_REMOVE = GENERIC_ATTR(ATTR_INT, 66), /* -S- */ XV_KEY_DATA_REMOVE_PROC = GENERIC_ATTR(ATTR_OPAQUE_PAIR, 67), /* * For "reference count" on shared objects, e.g. fonts & menus */ XV_REF_COUNT = GENERIC_ATTR(ATTR_INT, 68), /* * Type of object */ XV_TYPE = GENERIC_ATTR(ATTR_OPAQUE, 69), /* --G */ XV_IS_SUBTYPE_OF = GENERIC_ATTR(ATTR_OPAQUE, 70), /* --G */ /* * Miscellaneous */ XV_LABEL = GENERIC_ATTR(ATTR_STRING, 71), XV_NAME = GENERIC_ATTR(ATTR_STRING, 72), XV_STATUS = GENERIC_ATTR(ATTR_INT, 73), XV_STATUS_PTR = GENERIC_ATTR(ATTR_OPAQUE, 74), XV_HELP = GENERIC_ATTR(ATTR_STRING, 80), XV_HELP_STRING_FILENAME = GENERIC_ATTR(ATTR_STRING, 82), XV_SHOW = GENERIC_ATTR(ATTR_BOOLEAN, 81), #ifdef OW_I18N XV_LABEL_WCS = GENERIC_ATTR(ATTR_WSTRING, 164), XV_NAME_WCS = GENERIC_ATTR(ATTR_WSTRING, 161), XV_HELP_WCS = GENERIC_ATTR(ATTR_WSTRING, 162), XV_HELP_STRING_FILENAME_WCS = GENERIC_ATTR(ATTR_WSTRING, 163), #endif /* OW_I18N */ /* * Required by package implementations, used only by xv_create */ XV_COPY_OF = GENERIC_ATTR(ATTR_OPAQUE, 75), /* -S- */ XV_END_CREATE = GENERIC_ATTR(ATTR_NO_VALUE, 76), /* -S- */ /* * To simplify SunView1.X compatibility */ XV_SELF = GENERIC_ATTR(ATTR_OPAQUE, 77), /* --G */ /* * Managing (usually containing) object */ XV_OWNER = GENERIC_ATTR(ATTR_OPAQUE, 78), /* * Required by package implementations, used only by xv_find */ XV_AUTO_CREATE = GENERIC_ATTR(ATTR_INT, 79), /* C-- */ /* * PUBLIC but only Common */ /* * For layout */ XV_FONT = XV_ATTR(ATTR_OPAQUE, 64), XV_MARGIN = XV_ATTR(ATTR_INT, 65), XV_LEFT_MARGIN = XV_ATTR(ATTR_INT, 66), XV_TOP_MARGIN = XV_ATTR(ATTR_INT, 67), XV_RIGHT_MARGIN = XV_ATTR(ATTR_INT, 68), XV_BOTTOM_MARGIN = XV_ATTR(ATTR_INT, 69), /* * Origin is usually parent's most upper-left coord inside margins */ XV_X = XV_ATTR(ATTR_X, 70), XV_Y = XV_ATTR(ATTR_Y, 71), XV_WIDTH = XV_ATTR(ATTR_X, 72), XV_HEIGHT = XV_ATTR(ATTR_Y, 73), XV_RECT = XV_ATTR(ATTR_RECT_PTR, 74), /* * Server specific or dependent */ XV_XNAME = XV_ATTR(ATTR_STRING, 96), /* C-G */ XV_DEVICE_NUMBER = XV_ATTR(ATTR_LONG, 97), /* C-G */ XV_ROOT = XV_ATTR(ATTR_OPAQUE, 98), /* --G */ XV_VISUAL = XV_ATTR(ATTR_OPAQUE, 125), /* C-G */ XV_VISUAL_CLASS = XV_ATTR(ATTR_INT, 117), /* C-G */ XV_DEPTH = XV_ATTR(ATTR_INT, 126), /* C-G */ XV_DISPLAY = XV_ATTR(ATTR_OPAQUE, 110), /* --G */ XV_SCREEN = XV_ATTR(ATTR_OPAQUE, 116), /* --G */ XV_APP_NAME = XV_ATTR(ATTR_STRING, 112), /* -SG */ #ifdef OW_I18N XV_APP_NAME_WCS = XV_ATTR(ATTR_STRING, 111), /* CSG */ #endif /* * Mouseless Model support */ XV_FOCUS_ELEMENT = XV_ATTR(ATTR_INT, 118), /* -S- */ XV_FOCUS_RANK_KEY = XV_ATTR(ATTR_ENUM, 119), /* CSG */ /* * Added to support the Xrm resource database */ XV_USE_DB = XV_ATTR_LIST(ATTR_RECURSIVE, ATTR_AV, 120), XV_INSTANCE_NAME = XV_ATTR(ATTR_STRING, 125), XV_INSTANCE_QLIST = XV_ATTR(ATTR_OPAQUE, 130), XV_QUARK = XV_ATTR(ATTR_OPAQUE, 135), XV_USE_INSTANCE_RESOURCES=XV_ATTR(ATTR_OPAQUE, 140), #ifdef OW_I18N /* * The I18N Level 4 attribute XV_IM goes here: */ XV_IM = XV_ATTR(ATTR_OPAQUE, 150), #endif /* OW_I18N */ /* * Added to support locale announcement */ XV_LC_BASIC_LOCALE = XV_ATTR(ATTR_STRING, 155), XV_LC_DISPLAY_LANG = XV_ATTR(ATTR_STRING, 160), XV_LC_INPUT_LANG = XV_ATTR(ATTR_STRING, 165), XV_LC_NUMERIC = XV_ATTR(ATTR_STRING, 170), XV_LC_TIME_FORMAT = XV_ATTR(ATTR_STRING, 175), XV_LOCALE_DIR = XV_ATTR(ATTR_STRING, 180), XV_USE_LOCALE = XV_ATTR(ATTR_BOOLEAN, 185), #ifdef OW_I18N #ifdef FULL_R5 XV_IM_STYLES = XV_ATTR(ATTR_OPAQUE, 186), XV_IM_PREEDIT_STYLE = XV_ATTR(ATTR_STRING, 190), XV_IM_STATUS_STYLE = XV_ATTR(ATTR_STRING, 195), #endif #endif /* OW_I18N */ /* * PRIVATE now, but ... */ XV_GC = XV_ATTR(ATTR_OPAQUE, 113) /* --G */ } Xv_generic_attr; /* * Generic package definition */ typedef struct { Xv_base parent_data; Xv_opaque private_data; } Xv_generic_struct; typedef enum { XV_INIT_ARGS = XV_ATTR(ATTR_INT_PAIR, 4), XV_INIT_ARGC_PTR_ARGV = XV_ATTR(ATTR_INT_PAIR, 7), /* -S- */ XV_USAGE_PROC = XV_ATTR(ATTR_FUNCTION_PTR, 9), /* -S- */ XV_ERROR_PROC = XV_ATTR(ATTR_FUNCTION_PTR, 12), XV_X_ERROR_PROC = XV_ATTR(ATTR_FUNCTION_PTR, 15) } Xv_attr; /* *********************************************************************** * Globals *********************************************************************** */ extern Xv_pkg xv_generic_pkg; /* * PUBLIC functions */ EXTERN_FUNCTION (Xv_object xv_init, (Attr_attribute attr1, DOTDOTDOT)); EXTERN_FUNCTION (Attr_attribute xv_unique_key, (void)); #endif /* ~xview_generic_DEFINED */ xview-3.2p1.4/lib/libxview/base/xv_init.c100644 1750 1750 34555 5413747677 15637 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)xv_init.c 20.62 92/07/07"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifdef _XV_DEBUG #include #else #include #endif #include #include #include #include #include #include #include #include #include #include #include #define ERROR_MSG "Cannot open connection to window server: " /* XXX: This should probably become integrated into the get/set paradigm */ int (*xv_error_proc) (); int (*xv_x_error_proc)(); void (*xv_xlib_error_proc)(); extern void xv_usage(); static int xv_init_called; /* = FALSE */ Xv_private void xv_init_x_pr(); Xv_private void xv_connection_error(); Xv_private int xv_handle_xio_errors(); Xv_private void xv_x_error_handler(); Xv_private char *xv_base_name(); #ifdef OW_I18N Xv_private_data wchar_t *xv_app_name_wcs; #endif /* OW_I18N */ Xv_private_data char *xv_app_name; char *getenv(); Xv_private_data char *xv_instance_app_name = NULL; Xv_private_data int _xv_use_locale; Xv_private_data extern notify_exclude_fd; #ifndef XGETTEXT /* * xv_domain: XView libraries text domain name. This value will be * overwritten in following xv_init() call. */ Xv_private_data CONST char *xv_domain = XV_TEXT_DOMAIN; #endif Xv_public_data Display *xv_default_display; Xv_public_data Xv_Screen xv_default_screen; Xv_public_data Xv_Server xv_default_server; Xv_public_data char xv_iso_cancel; Xv_public_data char xv_iso_default_action; Xv_public_data char xv_iso_input_focus_help; Xv_public_data char xv_iso_next_element; Xv_public_data char xv_iso_select; static void init_custom_attrs(); /* * Initialize XView. */ Xv_public Xv_object #ifdef ANSI_FUNC_PROTO xv_init(Attr_attribute attr1, ...) #else xv_init(attr1, va_alist) Attr_attribute attr1; va_dcl #endif { Attr_attribute avarray[ATTR_STANDARD_SIZE]; Attr_avlist attrs_start = avarray; register Attr_avlist attrs; va_list valist; void (*help_proc) () = xv_usage; int parse_result = 0, argc = 0; char **argv = (char **)NULL, *server_name = (char *) NULL; Xv_object server; extern int _Xdebug; /* can only be called once */ if (xv_init_called) return((Xv_object)NULL); /* * Initialize the version string and number */ xv_version_number = XV_VERSION_NUMBER; xv_version_string = (char *)xv_malloc(strlen(XV_VERSION_STRING) + 1); XV_BCOPY(XV_VERSION_STRING, xv_version_string, strlen(XV_VERSION_STRING) + 1); xv_domain = xv_malloc(sizeof(XV_TEXT_DOMAIN) + 6); (void) sprintf(xv_domain, "%s_%04d", XV_TEXT_DOMAIN, xv_version_number); /* * Initialize table of customizable attributes */ init_custom_attrs(); xv_init_called = TRUE; xv_error_proc = (int (*) ()) 0; xv_x_error_proc = (int (*) ()) 0; /* initialize the pixrect-to-x rop op table */ xv_init_x_pr(); /* silence the shut-down error messages, can turn on with option flag */ (void) XSetIOErrorHandler(xv_handle_xio_errors); if( attr1 ) { VA_START(valist, attr1); copy_va_to_av( valist, attrs_start, attr1 ); va_end(valist); } else attrs_start[0] = NULL; /* * Get argv, argc for preparsing done below * Also get xv_app_name necessary for server creation */ for (attrs = attrs_start; *attrs; attrs = attr_next(attrs)) { switch ((Xv_attr) attrs[0]) { case XV_INIT_ARGS: argc = (int) attrs[1]; argv = (char **) attrs[2]; if (xv_app_name) { xv_free(xv_app_name); } #ifdef OW_I18N if (xv_app_name_wcs) { xv_free(xv_app_name_wcs); } #endif /* OW_I18N */ if (argv[0]) { xv_app_name = xv_base_name(argv[0]); #ifdef OW_I18N xv_app_name_wcs = _xv_mbstowcsdup(xv_app_name); #endif /* OW_I18N */ } break; case XV_INIT_ARGC_PTR_ARGV: argc = *(int *) attrs[1]; argv = (char **) attrs[2]; if (xv_app_name) { xv_free(xv_app_name); } #ifdef OW_I18N if (xv_app_name_wcs) { xv_free(xv_app_name_wcs); } #endif /* OW_I18N */ if (argv[0]) { xv_app_name = xv_base_name(argv[0]); #ifdef OW_I18N xv_app_name_wcs = _xv_mbstowcsdup(xv_app_name); #endif /* OW_I18N */ } break; default: break; } } /* Preparse "-display " for server creation */ /* * Preparse * "-display " for server creation * and * "-name " for application * "-lc_basiclocale", etc for locale announcement */ for (; (argv && *argv); argv++) { if (strcmp(*argv, "-display") == 0 || strcmp(*argv, "-Wr") == 0) { server_name = *++argv; break; } else if (!strncmp(*argv, "-sync", 5)) { _Xdebug = True; } else if( strcmp(*argv,"-name" ) == 0 ) { xv_instance_app_name = *++argv; continue; } } /* * Check if xv_app_name is set. * If not, set it to "xview" * It might be NULL at this point, if the application * calls xv_init without using any XV_INIT* attributes or * the application calls xv_create without any call to * xv_init. * * Also check the application instance name */ if (!xv_app_name) { xv_app_name = strdup("xview"); } if (xv_instance_app_name == NULL) xv_instance_app_name = xv_app_name; /* * Override any command line arguments with xv_init parameters */ for (attrs = attrs_start; *attrs; attrs = attr_next(attrs)) { switch ((Xv_attr) attrs[0]) { case XV_USE_LOCALE: _xv_use_locale = (int) attrs[1]; ATTR_CONSUME(attrs[0]); break; case XV_USAGE_PROC: help_proc = (void (*) ()) attrs[1]; ATTR_CONSUME(attrs[0]); break; case XV_INIT_ARGS: argc = (int) attrs[1]; argv = (char **) attrs[2]; parse_result = xv_parse_cmdline(xv_app_name, &argc, argv, FALSE); ATTR_CONSUME(attrs[0]); break; case XV_INIT_ARGC_PTR_ARGV: argv = (char **) attrs[2]; parse_result = xv_parse_cmdline(xv_app_name, (int *) attrs[1], argv, TRUE); ATTR_CONSUME(attrs[0]); break; case XV_ERROR_PROC: xv_error_proc = (int (*) ()) attrs[1]; ATTR_CONSUME(attrs[0]); break; case XV_X_ERROR_PROC: xv_x_error_proc = (int (*)()) attrs[1]; ATTR_CONSUME(attrs[0]); break; /* * Any attribute need to pass on to the server pkg should be * listed in followings (otherwise consumed). */ case XV_LC_BASIC_LOCALE: case XV_LC_DISPLAY_LANG: case XV_LC_INPUT_LANG: case XV_LC_NUMERIC: case XV_LC_TIME_FORMAT: case XV_LOCALE_DIR: #if defined(OW_I18N) && defined(FULL_R5) case XV_IM_PREEDIT_STYLE: case XV_IM_STATUS_STYLE: #endif break; default: ATTR_CONSUME(attrs[0]); break; } } /* * Check if any SERVER object has been created. If not, then create one * to make sure that we read the defaults database from the correct * server before we parse cmd-line args. (xv_parse_cmdline stores the * parsed flags in the defaults database.) */ if (!xv_has_been_initialized()) { if (server_name) { server = xv_create(XV_NULL, SERVER, ATTR_LIST, attrs_start, XV_NAME, server_name, NULL); } else { server = xv_create(XV_NULL, SERVER, ATTR_LIST, attrs_start, NULL); } if (!server) (void) xv_connection_error(server_name); notify_exclude_fd = ConnectionNumber((Display *)xv_get(server, XV_DISPLAY)); } /* Note: XSetErrorHandler must be called after the server connection * has been established. XSetErrorHandler() returns the current * X Error handler, which is now the defualt Xlib X Error Handler address. * Note: The error handler is defined by Xlib to be an int function, but * no use is made of the return value. So, XView's X Error Handler * has been declared to be a void function. */ xv_xlib_error_proc = (void (*)()) XSetErrorHandler((int (*)())xv_x_error_handler); if (parse_result == -1) { /* Following routine often, but not always, calls exit(). */ help_proc(xv_app_name); } /* Define unmodified ISO Mouseless Keyboard Commands */ xv_iso_cancel = (char) defaults_get_integer("keyboard.cancel", "Keyboard.Cancel", 0x1b); /* Escape */ xv_iso_default_action = (char) defaults_get_integer( "keyboard.defaultAction", "Keyboard.DefaultAction", '\r'); /* Return */ xv_iso_input_focus_help = (char) defaults_get_integer( "keyboard.inputFocusHelp", "Keyboard.InputFocusHelp", '?'); xv_iso_next_element = (char) defaults_get_integer( "keyboard.nextElement", "Keyboard.NextElement", '\t'); /* Tab */ xv_iso_select = (char) defaults_get_integer("keyboard.select", "Keyboard.Select", ' '); /* Space */ return (server); } static void init_custom_attrs() { xv_add_custom_attrs(WINDOW, /* window_set.c */ WIN_DESIRED_WIDTH, "win_desired_width", WIN_DESIRED_HEIGHT, "win_desired_height", WIN_COLUMNS, "win_columns", WIN_ROWS, "win_rows", XV_HEIGHT, "xv_height", XV_WIDTH, "xv_width", XV_X, "xv_x", XV_Y, "xv_y", NULL); xv_add_custom_attrs(CANVAS, /* cnvs_set.c */ CANVAS_WIDTH, "canvas_width", CANVAS_HEIGHT, "canvas_height", CANVAS_MIN_PAINT_WIDTH, "canvas_min_paint_width", CANVAS_MIN_PAINT_HEIGHT,"canvas_min_paint_height", NULL); xv_add_custom_attrs(OPENWIN, /* ow_set.c */ WIN_COLUMNS, "win_columns", WIN_ROWS, "win_rows", NULL); xv_add_custom_attrs(PANEL, /* p_set.c */ PANEL_ITEM_X_GAP, "panel_item_x_gap", PANEL_ITEM_Y_GAP, "panel_item_y_gap", PANEL_EXTRA_PAINT_WIDTH, "panel_extra_paint_width", PANEL_EXTRA_PAINT_HEIGHT, "panel_extra_paint_height", NULL); xv_add_custom_attrs(PANEL_ITEM, /* item_set.c */ XV_X, "xv_x", PANEL_ITEM_X, "panel_item_x", XV_Y, "xv_y", PANEL_ITEM_Y, "panel_item_y", PANEL_ITEM_X_GAP, "panel_item_x_gap", PANEL_ITEM_Y_GAP, "panel_item_y_gap", PANEL_NEXT_COL, "panel_next_col", PANEL_NEXT_ROW, "panel_next_row", PANEL_LABEL_X, "panel_label_x", PANEL_LABEL_Y, "panel_label_y", PANEL_VALUE_X, "panel_value_x", PANEL_VALUE_Y, "panel_value_y", PANEL_LABEL_WIDTH, "panel_label_width", NULL); xv_add_custom_attrs(PANEL_CHOICE, /* p_choice.c */ PANEL_CHOICE_NROWS, "panel_choice_nrows", PANEL_CHOICE_NCOLS, "panel_choice_ncols", NULL); xv_add_custom_attrs(PANEL_GAUGE, /* p_gauge.c */ PANEL_MIN_VALUE, "panel_min_value", PANEL_MAX_VALUE, "panel_max_value", PANEL_TICKS, "panel_ticks", PANEL_GAUGE_WIDTH, "panel_gauge_width", NULL); xv_add_custom_attrs(PANEL_LIST, /* p_list.c */ PANEL_LIST_ROW_HEIGHT, "panel_list_row_height", PANEL_LIST_WIDTH, "panel_list_width", PANEL_LIST_DISPLAY_ROWS, "panel_list_display_rows", PANEL_VALUE_DISPLAY_LENGTH, "panel_value_display_length", PANEL_VALUE_STORED_LENGTH, "panel_value_stored_length", NULL); xv_add_custom_attrs(PANEL_SLIDER, /* p_slider.c */ PANEL_MIN_VALUE, "panel_min_value", PANEL_MAX_VALUE, "panel_max_value", PANEL_TICKS, "panel_ticks", PANEL_SLIDER_WIDTH, "panel_slider_width", PANEL_VALUE_DISPLAY_LENGTH, "panel_value_display_length", PANEL_JUMP_DELTA, "panel_jump_delta", NULL); xv_add_custom_attrs(PANEL_TEXT, /* p_txt.c */ PANEL_VALUE_STORED_LENGTH, "panel_value_stored_length", PANEL_VALUE_DISPLAY_LENGTH, "panel_value_display_length", PANEL_VALUE_DISPLAY_WIDTH, "panel_value_display_width", NULL); xv_add_custom_attrs(PANEL_NUMERIC_TEXT, /* p_num_txt.c */ PANEL_MIN_VALUE, "panel_min_value", PANEL_MAX_VALUE, "panel_max_value", PANEL_VALUE_DISPLAY_LENGTH, "panel_value_display_length", PANEL_VALUE_DISPLAY_WIDTH, "panel_value_display_width", PANEL_VALUE_STORED_LENGTH, "panel_value_stored_length", PANEL_JUMP_DELTA, "panel_jump_delta", NULL); xv_add_custom_attrs(PANEL_MULTILINE_TEXT, /* p_mlinetxt.c */ PANEL_VALUE_DISPLAY_LENGTH, "panel_value_display_length", PANEL_VALUE_DISPLAY_WIDTH, "panel_value_display_width", PANEL_VALUE_STORED_LENGTH, "panel_value_stored_length", NULL); xv_add_custom_attrs(PANEL_DROP_TARGET, /* p_drop.c */ PANEL_DROP_WIDTH, "panel_drop_width", PANEL_DROP_HEIGHT, "panel_drop_height", NULL); } /*ARGSUSED*/ Xv_private int xv_handle_xio_errors(display) Display *display; { /* do nothing, be quiet */ exit(0); } Xv_private void xv_connection_error(server_name) char *server_name; { char *error_string; server_name = (server_name) ? server_name : (char *) defaults_get_string("server.name", "Server.Name", getenv("DISPLAY")); if (server_name) { error_string =xv_malloc(strlen(ERROR_MSG) + strlen(server_name) + 2); strcpy(error_string, ERROR_MSG); strcat(error_string, server_name); } else { error_string =xv_malloc(strlen(ERROR_MSG) + 4); strcpy(error_string, ERROR_MSG); strcat(error_string, ":0"); } xv_error(NULL, ERROR_SEVERITY, ERROR_NON_RECOVERABLE, ERROR_STRING, error_string, ERROR_PKG, SERVER, 0); /* NOTREACHED */ xv_free(error_string); } /* * xv_base_name - return the base filename sans the path */ Xv_private char * xv_base_name(fullname) char *fullname; { char *base_name; char *start; /* Find the beginning of the base name */ start = fullname + strlen(fullname); while ((*start != '/') && (start != fullname)) start--; if (*start == '/') start++; base_name = xv_malloc(strlen(start) + 1); (void) strcpy(base_name, start); return(base_name); } xview-3.2p1.4/lib/libxview/base/drawable.h100644 1750 1750 3306 5413747677 15713 0ustar mbmb/* @(#)drawable.h 20.15 93/06/28 SMI */ /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #ifndef xview_drawable_DEFINED #define xview_drawable_DEFINED /* * Interface to generic attributes of Drawable objects, where "drawable" * is defined by X server. This is currently an implementation concept. */ /* *********************************************************************** * Include files *********************************************************************** */ #include /* *********************************************************************** * Definitions and Macros *********************************************************************** */ /* * PRIVATE #defines */ #define XV_DRAWABLE_OBJECT &xv_drawable_pkg #define DRAWABLE_ATTR(type, ordinal) ATTR(ATTR_PKG_DRAWABLE, type, ordinal) /* *********************************************************************** * Typedefs, enumerations, and structs *********************************************************************** */ typedef Xv_opaque Xv_Drawable; typedef Xv_opaque Xv_drawable; typedef enum { /* * Private Attributes */ DRAWABLE_INFO = DRAWABLE_ATTR(ATTR_OPAQUE, 100) } Drawable_attr; typedef struct { /* For sub-pkg implementors only */ Xv_generic_struct parent_data; Xv_opaque private_data; } Xv_drawable_struct; /* *********************************************************************** * Globals *********************************************************************** */ extern Xv_pkg xv_drawable_pkg; #endif /* ~xview_drawable_DEFINED */ xview-3.2p1.4/lib/libxview/base/pkg.h100644 1750 1750 6167 5413747677 14723 0ustar mbmb/* @(#)pkg.h 20.22 91/03/19 SMI */ /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ /* * Of interest to package implementors only. */ #ifndef xview_pkg_DEFINED #define xview_pkg_DEFINED /* *********************************************************************** * Include Files *********************************************************************** */ /* Don't include notify.h - it is not actually used by very many modules, and * generates too many symbols in the libraries. */ #include #include #if defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus) #include #else #include #endif /* *********************************************************************** * Definitions and Macros *********************************************************************** */ /* * PRIVATE #defines (for package implementors only) */ #ifndef MAX_NESTED_PKGS #define MAX_NESTED_PKGS 20 #endif /* * Conversion macros for package implementors (public <=> private) */ #define XV_PRIVATE(private_type, public_type, obj) \ ((private_type *)((public_type *) (obj))->private_data) #define XV_PUBLIC(obj) \ ((obj)->public_self) /* set procs can return XV_SET_DONE if xv_super_set_avlist() * has been called. This will end the set. Note that * other possible set proc return values are XV_OK or an attribute. */ #define XV_SET_DONE ((Xv_opaque) 2) #define Sv1_public extern /* SunView1 compatibility only; part of the * client interface */ #define Xv_public extern /* Part of the client interface */ #define Xv_public_data /* Part of the client interface */ #define Xv_private extern /* Should only be used by the XView toolkit */ #define Xv_private_data /* Should only be used by the XView toolkit */ #define Pkg_private extern /* Should only be used by same pkg */ typedef struct _xview_pkg { char *name; Attr_attribute attr_id; unsigned size_of_object; struct _xview_pkg *parent_pkg; int (*init)(); Xv_opaque (*set)(); Xv_opaque (*get)(); int (*destroy)(); Xv_object (*find)(); } Xv_pkg; /* *********************************************************************** * Globals *********************************************************************** */ /* * PRIVATE functions for package implementors only */ EXTERN_FUNCTION (Xv_object xv_create_avlist, (Xv_opaque parent, Xv_pkg *pkg, Attr_attribute *avlist)); EXTERN_FUNCTION (Xv_opaque xv_set_avlist, (Xv_opaque passed_object, Attr_avlist avlist)); EXTERN_FUNCTION (Xv_opaque xv_super_set_avlist, (Xv_opaque object, Xv_pkg *pkg, Attr_avlist avlist)); EXTERN_FUNCTION (int xv_destroy_status, (Xv_object passed_object, Destroy_status status)); EXTERN_FUNCTION (int xv_check_bad_attr, (Xv_pkg *pkg, Attr_attribute attr)); EXTERN_FUNCTION (Xv_opaque xv_get_varargs, (Xv_opaque passed_object, Attr_attribute attr, va_list valist)); #endif /* ~xview_pkg_DEFINED */ xview-3.2p1.4/lib/libxview/base/xview_impl.h100644 1750 1750 626 5413747677 16277 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)xview_impl.h 1.13 93/06/28"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ /* * This file should contain declarations that are internal to * Sunview library, but are not internal to any particular package */ xview-3.2p1.4/lib/libxview/base/draw_impl.h100644 1750 1750 7112 5413747677 16107 0ustar mbmb/* @(#)draw_impl.h 20.33 93/06/28 SMI */ /***********************************************************************/ /* draw_impl.h */ /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ /***********************************************************************/ #ifndef _xview_private_drawable_impl_h_already_defined #define _xview_private_drawable_impl_h_already_defined #include #include #include #include #include /* Although this is a private implementation header file, it is included * by most of the Drawable sub-pkgs for performance reasons. */ #define drawable_attr_next(attr) \ (Drawable_attribute *)attr_next((Xv_opaque *)attr) #define DRAWABLE_PRIVATE(drawable) \ XV_PRIVATE(Xv_Drawable_info, Xv_drawable_struct, drawable) /* Note: Xv_Drawable_info has no public_self field, so XV_PUBLIC cannot work * and DRAWABLE_PUBLIC is undefined. */ /***********************************************************************/ /* Structures */ /***********************************************************************/ typedef struct drawable_info { XID xid; unsigned long fg; unsigned long bg; Cms cms; int cms_fg; int cms_bg; unsigned long plane_mask; Screen_visual *visual; /* Flags */ unsigned private_gc : 1; /* Should be gc itself? */ unsigned no_focus : 1; /* Don't set focus on click */ unsigned has_focus : 1; /* Currently has focus */ unsigned new_clipping : 1; /* new clipping has been set*/ unsigned dynamic_color : 1; /* created with dynamic cmap*/ unsigned is_bitmap : 1; /* use 1 and 0 as only colors */ } Xv_Drawable_info; #define xv_xid(info) ((info)->xid) #define xv_fg(info) ((info)->fg) #define xv_bg(info) ((info)->bg) #define xv_cms(info) ((info)->cms) #define xv_cms_fg(info) ((info)->cms_fg) #define xv_cms_bg(info) ((info)->cms_bg) #define xv_plane_mask(info) ((info)->plane_mask) #define xv_visual(info) ((info)->visual) #define xv_display(info) ((info)->visual->display) #define xv_server(info) ((info)->visual->server) #define xv_screen(info) ((info)->visual->screen) #define xv_root(info) ((info)->visual->root_window) #define xv_depth(info) ((info)->visual->depth) #define xv_image_bitmap(info) ((info)->visual->image_bitmap) #define xv_image_pixmap(info) ((info)->visual->image_pixmap) #define xv_dynamic_color(info) ((info)->dynamic_color) #define xv_is_bitmap(info) ((info)->is_bitmap) #define xv_gc(public, info) \ ((info)->private_gc ? xv_private_gc((public)) : (info)->visual->gc) #define xv_set_image(info, im) (info)->visual->image = im #define xv_no_focus(info) ((info)->no_focus) #define xv_set_no_focus(info, f) (info)->no_focus = (f) #define xv_has_focus(info) ((info)->has_focus) #define xv_set_has_focus(info, f) (info)->has_focus = (f) extern const char *xv_draw_info_str; #define DRAWABLE_INFO_MACRO(_win_public, _info)\ {\ if (_win_public) {\ Xv_opaque _object;\ XV_OBJECT_TO_STANDARD(_win_public, xv_draw_info_str, _object);\ _info = (_object ? ((Xv_Drawable_info *)(((Xv_drawable_struct *)(_object))->private_data)) : 0);\ } else _info = 0;\ } extern GC xv_private_gc(); extern Xv_Drawable_info *drawable_info(); /* drawable.c */ Pkg_private Xv_opaque drawable_get_attr(); Pkg_private int drawable_init(); Pkg_private int drawable_destroy(); #endif xview-3.2p1.4/lib/libxview/base/Imakefile100644 1750 1750 2057 6331115757 15560 0ustar mbmb#include #if SharedLibXView #define DoSharedLib YES #endif #include /**/########################################################################### /**/# @(#)Imakefile 1.8 28 Jun 1993 SMI #ifndef SubdirHasTextObjs #define SubdirHasTextObjs YES #endif #ifndef SubdirHasDataObjs #define SubdirHasDataObjs YES #endif #ifndef SubdirHasPublicHeaders #define SubdirHasPublicHeaders YES #endif #ifndef SubdirHasPrivateHeaders #define SubdirHasPrivateHeaders YES #endif HDRSPUBLIC= base.h generic.h pkg_public.h pkg.h xview_xvin.h \ drawable.h xv_error.h HDRSPRIVATE= xv_debug.h xv_list.h draw_impl.h gen_impl.h DATA_OBJS= \ base_data.o \ xv_usage.o TEXT_OBJS=\ xv.o\ xv_init.o\ xv_init_x.o\ generic.o\ drawable.o\ xv_debug.o\ xv_parse.o\ xv_list.o\ xv_error.o SRCS=\ xv.c\ xv_init.c\ xv_init_x.c\ generic.c\ drawable.c\ xv_debug.c\ xv_parse.c\ xv_list.c\ xv_error.c\ base_data.c\ xv_usage.c LIBTARGET = xview TARGETDIR = ../../lib${LIBTARGET}/ SOREV = $(SOXVIEWREV) #include xview-3.2p1.4/lib/libxview/base/unqualifyx.h100644 1750 1750 1420 5413747700 16315 0ustar mbmb/* @(#)unqualifyx.h 20.9 93/06/28 SMI */ /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ /* * Bridge between sv implementation and Xlib. */ /* This file can be included many times. Each time it is * included, the effect of qualify_x.h is undone. * It is expected that qualify_x.h and unqualify_x.h are included in * matched pairs. */ #undef _view2_private_qualify_x_h_already_included /* * The following un-definitions undo the defines found in qualify_x.h. */ #undef Colormap #undef Cursor #undef Depth #undef Device #undef Display #undef Drawable #undef Font #undef Pixmap #undef Screen #undef ScreenFormat #undef Visual #undef Window xview-3.2p1.4/lib/libxview/base/qualifyx.h100644 1750 1750 1757 5413747700 15767 0ustar mbmb/* @(#)qualifyx.h 20.9 93/06/28 SMI */ /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ /* * Bridge between sv implementation and Xlib. */ #ifndef _view2_private_qualify_x_h_already_included #define _view2_private_qualify_x_h_already_included /* * The following definitions rename those Xlib types * that are in conflict with Sv (or likely to be). * Atom could not be redefined as Xatom.h use "Atom" in * the defining macros. The preprocessor does not replace strings * in macro definitions. */ #define Colormap XColormap_t #define Cursor XCursor_t #define Depth XDepth_t #define Device XDevice_t #define Display XDisplay_t #define Drawable XDrawable_t #define Font XFont_t #define Pixmap XPixmap_t #define Screen XScreen_t #define ScreenFormat XScreenFormat_t #define Visual XVisual_t #define Window XWindow_t #endif _view2_private_qualify_x_h_already_included xview-3.2p1.4/lib/libxview/base/base_data.c100644 1750 1750 2033 5413747700 16007 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)base_data.c 1.13 90/03/06"; #endif #endif #include #include /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ extern int generic_init(), generic_destroy(); extern Xv_opaque generic_get(), generic_set_avlist(); Xv_pkg xv_generic_pkg = { "Generic", ATTR_PKG_GENERIC, sizeof(Xv_generic_struct), NULL, /* No parent package */ generic_init, generic_set_avlist, generic_get, generic_destroy, NULL /* No find procedure */ }; Xv_pkg xv_drawable_pkg = { "Drawable", ATTR_PKG_DRAWABLE, sizeof(Xv_drawable_struct), &xv_generic_pkg, drawable_init, NULL, /* No set allowed */ drawable_get_attr, drawable_destroy, NULL, /* No find procedure */ }; /* if 0; ignore Key-press/mouse-press synthetic events */ int defeat_event_security; xview-3.2p1.4/lib/libxview/base/xv_error.h100644 1750 1750 4517 5413747700 15770 0ustar mbmb/* * @(#)xv_error.h 1.26 93/06/28 SMI * * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #ifndef xview_xv_error_DEFINED #define xview_xv_error_DEFINED /* *********************************************************************** * Include Files *********************************************************************** */ #include #ifndef sunwindow_sun_DEFINED #include #endif /* *********************************************************************** * Definitions and Macros *********************************************************************** */ /* * PRIVATE #defines */ #define ERROR_ATTR(type, ordinal) ATTR(ATTR_PKG_ERROR, type, ordinal) #define ERROR_ATTR_LIST(ltype, type, ordinal) \ ERROR_ATTR(ATTR_LIST_INLINE((ltype), (type)), (ordinal)) #define ERROR_MAX_STRING_SIZE 512 /* *********************************************************************** * Typedefs, Enumerations, and Structures *********************************************************************** */ /* * Data Structures */ typedef enum { ERROR_RECOVERABLE, ERROR_NON_RECOVERABLE } Error_severity; typedef enum { ERROR_SYSTEM, ERROR_SERVER, ERROR_TOOLKIT, ERROR_PROGRAM } Error_layer; typedef enum { ERROR_BAD_ATTR = ERROR_ATTR(ATTR_OPAQUE, 1), ERROR_BAD_VALUE = ERROR_ATTR(ATTR_OPAQUE_PAIR, 3), ERROR_CANNOT_GET = ERROR_ATTR(ATTR_OPAQUE, 6), ERROR_CANNOT_SET = ERROR_ATTR(ATTR_OPAQUE, 9), ERROR_CREATE_ONLY = ERROR_ATTR(ATTR_OPAQUE, 12), ERROR_INVALID_OBJECT = ERROR_ATTR(ATTR_STRING, 15), ERROR_LAYER = ERROR_ATTR(ATTR_ENUM, 18), ERROR_PKG = ERROR_ATTR(ATTR_OPAQUE, 21), ERROR_SERVER_ERROR = ERROR_ATTR(ATTR_OPAQUE, 23), ERROR_SEVERITY = ERROR_ATTR(ATTR_ENUM, 24), ERROR_STRING = ERROR_ATTR(ATTR_STRING, 27) } Error_attr; /* *********************************************************************** * Globals *********************************************************************** */ /* * Functions */ EXTERN_FUNCTION (int xv_error, (Xv_object object, DOTDOTDOT)); EXTERN_FUNCTION (int xv_error_default, (Xv_object object, Attr_avlist avlist)); EXTERN_FUNCTION (char * xv_error_format, (Xv_object object, Attr_avlist avlist)); #endif /* ~xview_xv_error_DEFINED */ xview-3.2p1.4/lib/libxview/base/xv.c100644 1750 1750 57714 5413747701 14602 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)xv.c 20.47 91/01/30"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ /* XView interface layer */ /* ------------------------------------------------------------------------- */ #include #include #include #include #include #include #include #include #include #include #ifndef SVR4 # include #endif /* SVR4 */ /* ------------------------------------------------------------------------- */ /* * Private */ Xv_private Xv_object xv_create_avlist( /* parent, pkg, avlist */ ); Xv_private Xv_object xv_find_avlist( /* parent, pkg, avlist */ ); Xv_private Xv_opaque xv_set_avlist( /* object, avlist */ ); Xv_private Xv_opaque xv_get_varargs( /* object, attribute, varargs */ ); Xv_private int xv_destroy_status( /* object, status */ ); Xv_private Attr_avlist attr_customize(/* obj,pkg,instance_name,owner,avlist_copy,size,avlist */); typedef int (*int_fnp) (); typedef Xv_opaque(*opaque_fnp) (); /* used to automagically call initialze sv */ static int xv_initialized; /* = FALSE */ /* xv_alloc_save_ret is used to store an intermediate value needed by the xv_alloc macros. This is not necessary if the macros are implemented as functions. Macros were chosen for performance reasons. */ void *xv_alloc_save_ret; void xv_alloc_error() { xv_error(NULL, ERROR_LAYER, ERROR_SYSTEM, ERROR_STRING, "call to alloc function returned NULL pointer", 0); } void *xv_calloc( num, size ) unsigned int num, size; { void *ptr; if( ptr = calloc( num, size )) return ptr; else { xv_error(NULL, ERROR_LAYER, ERROR_SYSTEM, ERROR_STRING, "call to calloc function returned NULL pointer", 0); return NULL; } } #define DELETE_WINDOW 0 #define SAVE_YOURSELF 1 /* * An overview of "objects". Every valid object is of one of two types: 1) A * standard object: the pointer passed to and from the Sv client points to a * Xv_base. The first field of that struct contains the value XV_OBJECT_SEAL * - a "magic" value that (hopefully) only occurs as the first 4 bytes of a * valid object. 2) An embedding object: the client pointer points into the * middle of a standard object. This is required by the need for the pointer * to point to an old-style SunWindows object. In this latter case, the * embedded object must have the following structure: * --------------------------- | Xv_base | * --------------------------- | Other "std" fields | * --------------------------- | Private fields | * --------------------------- | Embedding seal & offset | * --------------------------- -- Client ptr -> | SunWindow object | * --------------------------- * * The "drivers" for the generic Sv operations look to see if the first four * bytes of the memory addressed by the pointer given to them contain the * value XV_OBJECT_SEAL. If not, then the 4 bytes preceding should contain * the OR of XV_EMBEDDING_SEAL and a number between 12 and 255. This latter * number is the sizeof() all of the fields above the SunWindow object in * this class of embedding objects. [WARNING: Note that the pkg must be * careful about the alignment restriction between the "Embedding seal & * offset" and the "SunWindow object". */ #ifndef XV_OBJECT_SEAL #define XV_OBJECT_SEAL 0xF0A58142 #endif XV_OBJECT_SEAL #define XV_EMBEDDING_SEAL 0xF1B69200 #define XV_EMBEDDING_MASK 0xFFFFFF00 /* * Extern */ extern struct pixrectops server_image_ops; #ifndef MAX_NESTED_PKGS #define MAX_NESTED_PKGS 20 #endif /* ------------------------------------------------------------------------ */ Xv_private int xv_set_embedding_data(object, std_object) Xv_opaque object, std_object; { Xv_embedding *lu_ptr = (Xv_embedding *) object; char *c_ptr = (char *) object; int byte_offset = c_ptr - (char *) std_object; if (*((unsigned long *) object) == XV_OBJECT_SEAL) /* * Argh: data in object looks like seal of standard object. This will * break all future references to object, so give up! */ xv_error(object, ERROR_SEVERITY, ERROR_NON_RECOVERABLE, ERROR_STRING, XV_MSG("data in object looks like seal of standard object"), 0); if (byte_offset != (byte_offset & (~XV_EMBEDDING_MASK))) /* The embedding header is too large for our encoding scheme. */ xv_error(object, ERROR_SEVERITY, ERROR_NON_RECOVERABLE, ERROR_STRING, XV_MSG("embedding header too large for our encoding scheme"), 0); lu_ptr--; *lu_ptr = XV_EMBEDDING_SEAL | byte_offset; return (byte_offset); } Xv_private Xv_opaque xv_object_to_standard(object, caller) Xv_opaque object; const char *caller; { /* BUG ALERT! Should this routine allow multiple levels of embedding? */ register char *c_ptr; register Xv_embedding *lu_ptr; register Xv_base *ccom_object = (Xv_base *) object; int byte_offset; /* Not a standard object: see if embedded object. */ c_ptr = (char *) object; lu_ptr = (Xv_embedding *) object; lu_ptr--; if ((*lu_ptr & XV_EMBEDDING_MASK) != XV_EMBEDDING_SEAL) { xv_error(object, ERROR_INVALID_OBJECT, XV_MSG("embedding seal incorrect"), ERROR_STRING, caller, 0); return ((Xv_opaque) 0); } /* Embedding seal is okay: extract the offset. */ byte_offset = *lu_ptr & (~XV_EMBEDDING_MASK); if (byte_offset < sizeof(Xv_base) + sizeof(lu_ptr)) { xv_error(object, ERROR_INVALID_OBJECT, XV_MSG("byte offset incorrect"), ERROR_STRING, caller, 0); return ((Xv_opaque) 0); } /* Offset is okay: see if offset pointer address a standard object. */ c_ptr -= byte_offset; ccom_object = (Xv_base *) c_ptr; if (ccom_object->seal != XV_OBJECT_SEAL) { xv_error(object, ERROR_INVALID_OBJECT, XV_MSG("standard seal incorrect"), ERROR_STRING, caller, 0); return ((Xv_opaque) 0); } /* Offset pointer is okay. */ return ((Xv_opaque) ccom_object); } Xv_public Xv_object #ifdef ANSI_FUNC_PROTO xv_find( Xv_opaque parent, Xv_pkg *pkg, ... ) #else xv_find(parent, pkg, va_alist) Xv_opaque parent; register Xv_pkg *pkg; va_dcl #endif { AVLIST_DECL; va_list args; VA_START(args, pkg); MAKE_AVLIST( args, avlist ); va_end(args); return xv_find_avlist(parent, pkg, avlist); } Xv_private Xv_object xv_find_avlist(parent, pkg, avlist) Xv_opaque parent; register Xv_pkg *pkg; Attr_attribute avlist[ATTR_STANDARD_SIZE]; { register Xv_pkg *find_pkg; Attr_avlist attrs; Xv_object object = NULL; int auto_create = TRUE, auto_create_seen = FALSE; for (attrs = (Attr_avlist) avlist; *attrs; attrs = attr_next(attrs)) { switch ((int) attrs[0]) { case XV_AUTO_CREATE: auto_create = (int) attrs[1]; auto_create_seen = TRUE; break; default: break; } if (auto_create_seen) /* optimize if at front of list */ break; } if (!auto_create && !xv_initialized) return object; /* why bother */ /* * Now see if this is the first call to xv_find(). */ if (!xv_initialized) { xv_initialized = TRUE; /* use and xv_init attrs from the avlist */ xv_init(ATTR_LIST, avlist, 0); /* create the default server */ if (pkg != SERVER) if (!xv_create(XV_NULL, SERVER, 0)) (void) xv_connection_error((char *)NULL); } /* * Run through the pkg list looking for object "find" support. If we can * find an object of the same type as pkg, return that rather than * creating a new one. */ for (find_pkg = pkg; find_pkg; find_pkg = find_pkg->parent_pkg) { if (find_pkg->find) { object = (find_pkg->find) (parent, pkg, avlist); if (object) break; } } if (!object && auto_create) object = xv_create_avlist(parent, pkg, avlist); return object; } Xv_public Xv_object #ifdef ANSI_FUNC_PROTO xv_create(Xv_opaque parent, Xv_pkg *pkg, ...) #else xv_create(parent, pkg, va_alist) Xv_opaque parent; register Xv_pkg *pkg; va_dcl #endif { AVLIST_DECL; va_list args; VA_START( args, pkg ); MAKE_AVLIST ( args, avlist ); va_end(args); return xv_create_avlist(parent, pkg, avlist); } Xv_private Xv_object xv_create_avlist(parent, pkg, avlist) Xv_opaque parent; register Xv_pkg *pkg; Attr_attribute avlist[ATTR_STANDARD_SIZE]; { Xv_object object = XV_NULL; Xv_base *ccom_object; Xv_pkg *pkg_stack[MAX_NESTED_PKGS]; register Xv_pkg **pkgp, **loop_pkgp; Xv_pkg *orig_pkg = pkg; register int error_code = 0; int embedding_offset, total_offset; Attr_attribute argv[2]; Attr_avlist search_avlist= avlist; short flag = TRUE; char *instance_name = (char *)NULL; Attr_attribute avarray[ATTR_STANDARD_SIZE]; Attr_avlist avlist_copy = avarray; Attr_avlist avlist_used = avlist; /* * first see if this is the first call to xv_create(). */ if (!xv_initialized) { xv_initialized = TRUE; /* use and xv_init attrs from the avlist */ xv_init(ATTR_LIST, avlist, 0); /* create the default server */ if (pkg != SERVER) if (!xv_create(XV_NULL, SERVER, 0)) (void) xv_connection_error((char *)NULL); } /* * Create object which begins as instance of no package. It becomes an * instance of successively more specialized packages as each layer is * initialized. */ object = (Xv_object) xv_alloc_n(char, pkg->size_of_object); ccom_object = (Xv_base *) object; ccom_object->seal = XV_OBJECT_SEAL; /* * Stack packages oldest to youngest (base to client-visible pkg). */ pkgp = pkg_stack; while (pkg) { *pkgp++ = pkg; pkg = pkg->parent_pkg; } /* * Search for instance name in avlist, to be used in * attribute customization */ while (flag && *search_avlist) { switch(*search_avlist) { case XV_INSTANCE_NAME: instance_name = (char *)search_avlist[1]; flag = FALSE; break; } search_avlist = attr_next(search_avlist); } /* * Flatten out XV_USE_DB lists first */ avlist_used = attr_customize((Xv_object)NULL, orig_pkg, instance_name, parent, avlist_copy, ATTR_STANDARD_SIZE, avlist); /* * Execute stacked functions. */ total_offset = 0; loop_pkgp = pkgp; while (pkg_stack <= --loop_pkgp && error_code == 0) { /* set object up as an instance of *pkgp */ ccom_object->pkg = *loop_pkgp; if ((*loop_pkgp)->init) { /* Ignore missing functions */ embedding_offset = 0; /* BUG ALERT! Most init routines don't know about the 4th arg. */ error_code = ((*loop_pkgp)->init) (parent, object, avlist_used, &embedding_offset); total_offset += embedding_offset; } } if (error_code) { if (ccom_object->pkg->parent_pkg) { /* Demote object to last successful package and destroy it. */ ccom_object->pkg = ccom_object->pkg->parent_pkg; (void) xv_destroy_status(object, DESTROY_CLEANUP); } object = NULL; } else { /* * Pass the avlist back to object to allow "normal" xv_set processing * to do most (or all) of the work associated with the avlist. Then, * make a final pass via XV_END_CREATE to allow the object to do any * "post-create" processing. Finally, set up for notifier destroy * processing, using the public handle returned to client! */ (void) xv_set_avlist(object, avlist_used); /* Call set routines with XV_END_CREATE in init order */ argv[0] = XV_END_CREATE; argv[1] = 0; loop_pkgp = pkgp; while (pkg_stack <= --loop_pkgp && error_code == 0) { if ((*loop_pkgp)->set) { /* Ignore missing functions */ /* * some set procs may return XV_SET_DONE, so deal with this. */ error_code = (int) ((*loop_pkgp)->set) (object, argv); switch (error_code) { case (int) XV_OK: case (int) XV_SET_DONE: break; default: (void) xv_destroy_status(object, DESTROY_CLEANUP); return (NULL); } } } object = (Xv_opaque) ((char *) object + total_offset); } return (object); } Xv_public Xv_opaque #ifdef ANSI_FUNC_PROTO xv_set(Xv_opaque object, ...) #else xv_set(object, va_alist) Xv_opaque object; va_dcl #endif { AVLIST_DECL; Attr_attribute flat_avlist[ATTR_STANDARD_SIZE]; va_list args; if (object == NULL) { xv_error(NULL, ERROR_SEVERITY, ERROR_NON_RECOVERABLE, ERROR_STRING, XV_MSG("NULL pointer passed to xv_set"), 0); } VA_START( args, object ); MAKE_AVLIST( args, avlist ); va_end( args ); avlist = attr_customize(object, ((Xv_base *) object)->pkg, (char *)NULL, (Xv_opaque)NULL, flat_avlist, ATTR_STANDARD_SIZE, avlist); return xv_set_avlist(object, avlist); } Xv_private Xv_opaque xv_set_pkg_avlist(object, pkg, avlist) register Xv_object object; register Xv_pkg *pkg; Attr_avlist avlist; /* Caller must guarantee that object is a standard, not embedded, object. */ { register Xv_opaque error_code; /* * Execute the set procs youngest to oldest (client-visible pkg to base * ). e.g. canvas-window-generic */ for (; pkg; pkg = pkg->parent_pkg) { if (!pkg->set) continue; /* * we are done if the set proc says so or returns the bad attribute. * If XV_SET_DONE is returned, the rest of the set has been done * (using xv_super_set_avlist()), so return XV_OK now. */ if ((error_code = (*(pkg->set)) (object, avlist)) != XV_OK) { return (error_code == XV_SET_DONE) ? XV_OK : error_code; } } return XV_OK; } Xv_private Xv_opaque xv_set_avlist(passed_object, avlist) Xv_opaque passed_object; Attr_avlist avlist; { register Xv_opaque object; XV_OBJECT_TO_STANDARD(passed_object, "xv_set", object); if (!object) return (Xv_opaque) XV_ERROR; return xv_set_pkg_avlist(object, ((Xv_base *) object)->pkg, avlist); } Xv_public Xv_opaque xv_super_set_avlist(object, pkg, avlist) register Xv_opaque object; register Xv_pkg *pkg; Attr_avlist avlist; /* Caller must guarantee that object is a standard, not embedded, object. */ { return xv_set_pkg_avlist(object, pkg->parent_pkg, avlist); } Xv_public Xv_opaque #ifdef ANSI_FUNC_PROTO xv_get(Xv_opaque passed_object, Attr_attribute attr, ...) #else xv_get(passed_object, attr, va_alist) Xv_opaque passed_object; Attr_attribute attr; va_dcl #endif { register Xv_pkg *pkg; int status; Xv_opaque result; va_list args; va_list args_save; Xv_opaque object; XV_OBJECT_TO_STANDARD(passed_object, "xv_get", object); if (!object) return (Xv_opaque) 0; /* * Execute the get procs youngest to oldest (client-visible pkg to base * ). e.g. canvas-window-generic */ VA_START( args_save, attr ); switch(attr) { /* fast path: handle these two frequently used attributes directly. */ case XV_KEY_DATA: case XV_IS_SUBTYPE_OF: status = XV_OK; args = args_save; result = generic_get(object, &status, (Attr_attribute) attr, args); va_end(args); return result; } for (pkg = ((Xv_base *) object)->pkg; pkg; pkg = pkg->parent_pkg) { if (!pkg->get) continue; /* * Assume object will handle the get. Object should set status to * XV_ERROR if not handled */ status = XV_OK; /* * Go to the beginning of the varargs list every time to insure each * pkg gets the start of the varargs. */ args = args_save; /* ask the object to handle the get */ result = (*(pkg->get)) (object, &status, (Attr_attribute) attr, args); if (status == XV_OK) { /* result is the answer -- return it */ va_end(args); return result; } } /* * None of the packages handled the get. There are three possibilities, * but for all of them xv_get() should return 0: a) Attribute is valid, * but not for this object. This is suspect, as it implies the caller is * relying on the fact that xv_get() returns 0 if no package recognizes a * valid attribute. b) Attribute is valid, and for this object. Either * one or more of the packages' get procedures are in error, or there has * been a problem with the .h - .c file correspondence, possibly caused * by compilation phase error where not all of the object files in the * executable were compiled against the same version of the .h files. c) * Attribute is invalid. Unfortunately, this is undetectable. */ va_end(args); return 0; } /* if client already has handled varargs list use this procedure */ /* to start the get. We have duplicated the code from xv_get */ /* rather then shared so the generic xv_get doesn't incur */ /* another procedure call, and so the safety value in xv_get */ /* of restarting the varargs list for each package remains */ /* for the generic case. */ /* We should review whether xv_get should call xv_get_avlist */ Xv_private Xv_opaque xv_get_varargs(passed_object, attr, valist) Xv_opaque passed_object; Attr_attribute attr; va_list valist; { register Xv_pkg *pkg; Xv_opaque object; int status; Xv_opaque result; XV_OBJECT_TO_STANDARD(passed_object, "xv_get", object); if (!object) return (Xv_opaque) 0; /* * Execute the get procs youngest to oldest (client-visible pkg to base * ). e.g. canvas-window-generic */ for (pkg = ((Xv_base *) object)->pkg; pkg; pkg = pkg->parent_pkg) { if (!pkg->get) continue; /* * Assume object will handle the get. Object should set status to * XV_ERROR if not handled */ status = XV_OK; /* * Assume client has done va_start. xv_get calls va_start() every * time to insure each pkg gets the start of the varargs. we aren't. * This should still work. */ /* ask the object to handle the get */ result = (*(pkg->get)) (object, &status, attr, valist); if (status == XV_OK) { /* result is the answer -- return it */ return result; } } /* * None of the packages handled the get. There are three possibilities, * but for all of them xv_get() should return 0: a) Attribute is valid, * but not for this object. This is suspect, as it implies the caller is * relying on the fact that xv_get() returns 0 if no package recognizes a * valid attribute. b) Attribute is valid, and for this object. Either * one or more of the packages' get procedures are in error, or there has * been a problem with the .h - .c file correspondence, possibly caused * by compilation phase error where not all of the object files in the * executable were compiled against the same version of the .h files. c) * Attribute is invalid. Unfortunately, this is undetectable. */ return 0; } /* * A fast overview of destruction. Conforming with SunView 1.X, xv_destroy() * is an immediate destroy that goes through the Notifier mechanisms. * However, since not all objects are guaranteed to already be registered * with the Notifier, xv_destroy() (and xv_destroy_safe()) always register * the object with the Notifier. This causes buggy code that would have * worked in SunView 1.X to fail in SunView 2, because a second (incorrect) * destroy in SunView 1.X was ignored because the Notifier would no longer * know about the object as a side-effect of the first (correct) destroy. * xv_destroy_safe() exists to allow internal reference counting to work in * cases where the reference count temporarily drops to 0 (thereby triggering * a destroy) but then goes back up. This scenario occurs when the client * code has temporarily stashed a reference to a shared object in one of its * local frames. xv_destroy_check() allows emulation of SunView 1.X's * window_destroy. xv_destroy_immediate() is used internally to SunView 2 to * "pre-walk" dependence hierarchies that the Notifier is not able to * recognize. */ Xv_private int xv_destroy_internal(object, check_when, destroy_when, destruction_type) Xv_opaque object; Notify_event_type check_when, destroy_when; short int destruction_type; { if (!object) return XV_ERROR; if (destruction_type == DELETE_WINDOW) { if (notify_post_destroy(object, DESTROY_CHECKING, check_when) == NOTIFY_DESTROY_VETOED) { return XV_ERROR; } notify_post_destroy(object, DESTROY_CLEANUP, destroy_when); } else /* * SAVE_YOURSELF which cannot be vetoed and is only a one phase * destruction method. */ notify_post_destroy(object, DESTROY_SAVE_YOURSELF, destroy_when); return XV_OK; } Xv_public int xv_destroy(object) Xv_opaque object; { return xv_destroy_internal(object, NOTIFY_IMMEDIATE, NOTIFY_IMMEDIATE, DELETE_WINDOW); } Xv_public int xv_destroy_check(object) Xv_opaque object; { return xv_destroy_internal(object, NOTIFY_IMMEDIATE, NOTIFY_SAFE, DELETE_WINDOW); } Xv_public int xv_destroy_immediate(object) Xv_opaque object; { return xv_destroy_internal(object, NOTIFY_IMMEDIATE, NOTIFY_IMMEDIATE, DELETE_WINDOW); } Xv_public int xv_destroy_safe(object) Xv_opaque object; { return xv_destroy_internal(object, NOTIFY_SAFE, NOTIFY_SAFE, DELETE_WINDOW); } Xv_public int xv_destroy_save_yourself(object) Xv_opaque object; { return xv_destroy_internal(object, NOTIFY_SAFE, NOTIFY_SAFE, SAVE_YOURSELF); } Xv_public int xv_destroy_status(passed_object, status) Xv_object passed_object; Destroy_status status; { register Xv_pkg *pkg; Xv_opaque object; XV_OBJECT_TO_STANDARD(passed_object, "xv_destroy_status", object); if (!object) return XV_ERROR; /* * Execute the destroy procs, youngest to oldest (client-visible pkg to * base), e.g. canvas-window-generic. */ for (pkg = ((Xv_base *) object)->pkg; pkg; pkg = pkg->parent_pkg) { if (!pkg->destroy) /* Ignore missing functions */ continue; /* * If any one pkg vetoes the destroy, call it quits. BUG ALERT: * quitting when status != DESTROY_CHECKING leaves the object in an * inconsistent state. Perhaps it should become an instance of the * pkg that incorrectly vetoed. */ if ((pkg->destroy) (object, status) != XV_OK) { if (status == DESTROY_CHECKING) { notify_veto_destroy(passed_object); } else { char buffer[128]; (void) sprintf(buffer, "%s: %s '%s',\n\t%s (%d) - %s.", XV_MSG("xv_destroy_status"), XV_MSG("internal error in package"), pkg->name, XV_MSG("attempted veto during wrong phase"), (int) status, XV_MSG("send bug report")); xv_error(object, ERROR_STRING, buffer, 0); } return XV_ERROR; } if (status == DESTROY_CLEANUP) { /* unlink package from instance */ ((Xv_base *) object)->pkg = pkg->parent_pkg; } } if (status == DESTROY_CLEANUP) { /* waste of time if ...PROCESS_DEATH */ xv_free(object); } return XV_OK; } Xv_private int xv_check_bad_attr(pkg, attr) register Xv_pkg *pkg; Attr_attribute attr; /* * At first glance the return values seem to be backwards. However, if the * specified package was meant to handle the attribute, it wants to return a * zero value and have that accepted as the result, which requires it to not * modify *status, and thus we return XV_OK below in that case. */ { if (( pkg->attr_id == ATTR_PKG(attr) #ifdef ATTR_CONSUME_BUGS_FIXED || pkg == XV_GENERIC_OBJECT #endif ) && !ATTR_CONSUMED(attr)) { xv_error(NULL, ERROR_BAD_ATTR, attr, 0); return XV_OK; } return XV_ERROR; } /* * This is used to determine whether or not a server object has been created * yet. */ Xv_private int xv_has_been_initialized() { return (int) xv_initialized; } xview-3.2p1.4/lib/libxview/base/generic.c100644 1750 1750 31755 5413747701 15556 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)generic.c 20.25 91/02/27"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ /* * generic.c: Support for "generic object" - basically, a property list. */ #include #include #include #include #include #include #include Xv_private char *xv_instance_app_name; /* ------------------------------------------------------------------------- */ /* * Public */ extern Xv_pkg xv_generic_pkg; /* * Private */ /* * Escape hatch to cope with SunView and/or client bugs in ref. counting. */ Xv_private int generic_set_instance_name(); Xv_private XrmQuarkList generic_create_instance_qlist(); Xv_private_data int xv_free_unreferenced; Xv_private int xv_destroy_status(); static Attr_attribute xv_next_key; /* = 0 for -A-R */ static Generic_node *add_node(); static Generic_node *find_node(); static void delete_node(); /* ------------------------------------------------------------------------ */ /* * PORTABILITY ALERT! On a Sun, an attribute is an unsigned 32-bit quantity * with the high-order 8 bits used to hold the package identification. Thus, * a valid attribute never has a 0 in its high-order 8 bits. The following * routine relies on this fact to quickly generate up to 2^24 key values that * cannot be mistaken for valid attributes. Note that 0 is not a valid * attribute or key. */ Xv_public Attr_attribute xv_unique_key() { return (++xv_next_key); } /*ARGSUSED*/ static void generic_data_free(object, key, data) Xv_object object; Attr_attribute key; Xv_opaque data; { if (data) free((char *) data); } /*ARGSUSED*/ Xv_private int generic_init(parent, object, avlist) Xv_object parent; Xv_object object; Attr_avlist avlist; { Xv_generic_struct *gen_public = (Xv_generic_struct *)object; Generic_info *generic; /* performance optimization */ short flag = TRUE; generic = xv_alloc(Generic_info); /* * link private to public data and vice versa */ gen_public->private_data = (Xv_opaque)generic; generic->public_self = object; /* * Set owner of object */ generic->owner = parent; /* * Set key data nodes, instance_qlist/name to be NULL */ generic->key_data = (Generic_node *)NULL; generic->instance_qlist = (Xv_opaque)NULL; generic->instance_name = (char *)NULL; /* * Go thru avlist in search for instance name, if any, * quit immediately if/when find it */ while (flag && *avlist) { switch ((Xv_generic_attr) (*avlist)) { case XV_INSTANCE_NAME: /* * Store instance name in generic object */ generic_set_instance_name(parent, object, (char *)avlist[1]); /* performance optimization */ flag = FALSE; break; default: break; } avlist = attr_next(avlist); } (void)notify_set_destroy_func(object, (Notify_func)xv_destroy_status); return XV_OK; } Xv_private XrmQuarkList generic_create_instance_qlist(parent, instance_name) Xv_object parent; char *instance_name; { Xv_opaque parent_quarks = NULL, quarks; short null_parent = FALSE; if (instance_name == NULL) { return((XrmQuarkList)NULL); } if (parent != NULL) parent_quarks = xv_get(parent, XV_INSTANCE_QLIST); else { null_parent = TRUE; parent_quarks = db_qlist_from_name(xv_instance_app_name, NULL); } quarks = db_qlist_from_name(instance_name, parent_quarks); if ((null_parent == TRUE) && (parent_quarks != NULL)) free((void *)parent_quarks); return((XrmQuarkList)quarks); } Xv_private generic_set_instance_name(parent, object, instance_name) Xv_object parent; Xv_object object; char *instance_name; { Xv_opaque quarks; quarks = (Xv_opaque)generic_create_instance_qlist(parent, instance_name); if (quarks != NULL) xv_set(object, XV_INSTANCE_QLIST, quarks, NULL); } Xv_opaque generic_set_avlist(object, avlist) Xv_object object; Attr_avlist avlist; { Attr_attribute key; register Generic_node *node; Generic_node *prev, *existing_node; int ref_count; Generic_info *generic = GEN_PRIVATE(object); register Xv_opaque error_code = NULL; for (; *avlist; avlist = attr_next(avlist)) { /* The following check is done for performance reasons. The check * short-circuits attribute xv_set's for attributes not owned by * this class or its' super-class. */ if ((ATTR_PKG(*avlist) == ATTR_PKG_GENERIC) || (ATTR_PKG(*avlist) == ATTR_PKG_SV)) { switch ((Xv_generic_attr) (*avlist)) { case XV_REF_COUNT: /* PERFORMANCE ALERT: is ref count as property too slow? */ /* * Object is only destroyed if its reference count has been * decremented to 0; an explicit reset to 0 will not trigger the * destroy. Since xv_destroy_safe does not really attempt to * destroy the object until the process unwinds back to the * Notifier, the reference count may become non-zero in the * meantime, thus aborting the destroy. */ key = (Attr_attribute) XV_REF_COUNT; existing_node = node = find_node(object, key, &prev); if (node) { ref_count = (int) node->data; } else { node = add_node(object, key); #ifdef _XV_DEBUG if ((int) avlist[1] != XV_RC_SPECIAL) abort(); #endif node->remove_proc = NULL; ref_count = 0; } if (node) { switch ((int) avlist[1]) { case XV_RC_SPECIAL: ref_count = 0; break; case XV_RC_SPECIAL + 1: ref_count++; break; case XV_RC_SPECIAL - 1: ref_count--; if (xv_free_unreferenced && existing_node && ref_count == 0) { (void) xv_destroy_safe(object); } break; default: ref_count = (int) avlist[1]; break; } #ifdef _XV_DEBUG if (ref_count < 0) abort(); #endif node->data = (Xv_opaque) ref_count; } else { error_code = *avlist; } break; case XV_KEY_DATA: key = (int) avlist[1]; existing_node = node = find_node(object, key, &prev); if (!node) { node = add_node(object, key); } if (node) { if (existing_node && existing_node->data != avlist[2]) { if (existing_node->remove_proc) (existing_node->remove_proc) (object, existing_node->key, existing_node->data); } node->data = avlist[2]; node->remove_proc = NULL; } else { error_code = *avlist; } break; case XV_COPY_OF: case XV_END_CREATE: /* Explicitly ignore these: they are for sub-classes */ break; case XV_KEY_DATA_COPY_PROC: case XV_KEY_DATA_REMOVE: case XV_KEY_DATA_REMOVE_PROC: key = (int) avlist[1]; node = find_node(object, key, &prev); if (node) { switch ((Xv_generic_attr) (*avlist)) { case XV_KEY_DATA_COPY_PROC: node->copy_proc = (void (*) ()) avlist[2]; break; case XV_KEY_DATA_REMOVE: delete_node(object, node, prev); break; case XV_KEY_DATA_REMOVE_PROC: node->remove_proc = (void (*) ()) avlist[2]; break; } } else { error_code = *avlist; } break; case XV_LABEL: case XV_NAME: /* If old data has been set, remove it first. */ if (xv_get(object, XV_KEY_DATA, avlist[0])) (void)xv_set(object, XV_KEY_DATA_REMOVE, avlist[1], NULL); /* Set new data. */ (void) xv_set(object, XV_KEY_DATA, avlist[0], strdup((char *)avlist[1]), XV_KEY_DATA_REMOVE_PROC, avlist[0], generic_data_free, 0); break; case XV_OWNER: generic->owner = (Xv_object)avlist[1]; break; case XV_INSTANCE_QLIST: generic->instance_qlist = (Xv_opaque)avlist[1]; break; case XV_STATUS: /* PERFORMANCE ALERT: is recursion too slow? */ if (avlist[1]) { (void) xv_set(object, XV_KEY_DATA, avlist[0], avlist[1], 0); } else { (void) xv_set(object, XV_KEY_DATA_REMOVE, avlist[0], 0); } break; case ATTR_NOP0: case ATTR_NOP1: case ATTR_NOP2: case ATTR_NOP3: case ATTR_NOP4: /* Explicitly ignore these: they are meant to be ignored */ break; case XV_SHOW: /* XV_SHOW should be handled by individual * packages. */ break; default: (void) xv_check_bad_attr(XV_GENERIC_OBJECT, (Attr_attribute) * avlist); break; } } else { (void) xv_check_bad_attr(XV_GENERIC_OBJECT, (Attr_attribute) * avlist); } } return error_code; } Xv_opaque generic_get(object, status, attr, args) Xv_object object; int *status; /* Initialized by caller. */ Attr_attribute attr; va_list args; { Attr_attribute key; register Xv_opaque result; register Generic_node *node; Generic_node *prev; Generic_info *generic = GEN_PRIVATE(object); /* Don't set *status to XV_ERROR unless attribute is unrecognized! */ switch (attr) { case XV_KEY_DATA: case XV_KEY_DATA_COPY_PROC: case XV_KEY_DATA_REMOVE_PROC: key = va_arg(args, Attr_attribute); node = find_node(object, key, &prev); if (node) { switch (attr) { case XV_KEY_DATA: result = node->data; break; case XV_KEY_DATA_COPY_PROC: result = (Xv_opaque) node->copy_proc; break; case XV_KEY_DATA_REMOVE_PROC: result = (Xv_opaque) node->remove_proc; break; } } else { result = 0; } break; case XV_IS_SUBTYPE_OF:{ register Xv_pkg *pkg = ((Xv_base *) object)->pkg; register Xv_pkg *super_pkg; super_pkg = va_arg(args, Xv_pkg *); while (pkg) { if (pkg == super_pkg) { return (Xv_opaque) TRUE; } pkg = pkg->parent_pkg; } result = FALSE; break; } case XV_REF_COUNT: node = find_node(object, (Attr_attribute) XV_REF_COUNT, &prev); if (node) { result = node->data; } else { result = 0; } break; case XV_OWNER: result = (Xv_opaque)generic->owner; break; case XV_TYPE: result = (Xv_opaque) ((Xv_base *) object)->pkg; break; case XV_INSTANCE_NAME: result = (Xv_opaque)generic->instance_name; /* * If instance name not set yet, get the quark list, * and obtain the instance name from it */ if (!result) { if (generic->instance_qlist) { generic->instance_name = (char *)db_name_from_qlist(generic->instance_qlist); result = (Xv_opaque)generic->instance_name; } } break; case XV_INSTANCE_QLIST: result = (Xv_opaque)generic->instance_qlist; break; case XV_LABEL: case XV_NAME: case XV_STATUS: /* PERFORMANCE ALERT! Is recursion too slow? */ result = xv_get(object, (Attr_attribute) XV_KEY_DATA, attr); break; case XV_SELF: result = object; break; #ifdef OW_I18N case XV_IM: result = NULL; break; #endif OW_I18N default: if (xv_check_bad_attr(XV_GENERIC_OBJECT, attr) == XV_ERROR) { *status = XV_ERROR; } result = 0; break; } return result; } int generic_destroy(object, status) Xv_object object; Destroy_status status; { register Generic_node *node; Generic_info *generic = GEN_PRIVATE(object); switch (status) { case DESTROY_CHECKING: if (xv_get(object, (Attr_attribute) XV_REF_COUNT)) /* Assume decrement followed by increment => don't destroy. */ return (XV_ERROR); break; case DESTROY_CLEANUP: while (node = HEAD(object)) { delete_node(object, node, (Generic_node *) 0); } notify_remove(object); free(generic); break; case DESTROY_PROCESS_DEATH: notify_remove(object); free(generic); break; default: break; } return XV_OK; } static Generic_node * add_node(object, key) Xv_object object; Attr_attribute key; { register Generic_node *node; Generic_info *gen_private = GEN_PRIVATE(object);; node = xv_alloc(Generic_node); node->next = HEAD(object); gen_private->key_data = node; node->key = key; return node; } static Generic_node * find_node(object, key, prev) register Xv_object object; register Attr_attribute key; register Generic_node **prev; { register Generic_node *node; if (HEAD(object)) { if (HEAD(object)->key == key) { node = HEAD(object); *prev = (Generic_node *) NULL; } else { for (*prev = HEAD(object), node = (*prev)->next; node; *prev = node, node = (*prev)->next) { if (node->key == key) break; } } } else { *prev = node = (Generic_node *) NULL; } return node; } static void delete_node(object, node, prev) Xv_object object; register Generic_node *node, *prev; { if (prev) { prev->next = node->next; } else { Generic_info *gen_private = GEN_PRIVATE(object);; gen_private->key_data = node->next; } if (node->remove_proc) (node->remove_proc) (object, node->key, node->data); xv_free(node); } xview-3.2p1.4/lib/libxview/base/drawable.c100644 1750 1750 3607 5413747701 15676 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)drawable.c 20.24 93/06/28"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #include #define _NOTIFY_MIN_SYMBOLS #include #undef _NOTIFY_MIN_SYMBOLS const char *xv_draw_info_str = "drawable_info"; const char *xv_notptr_str = "not a pointer"; /*ARGSUSED*/ Pkg_private int drawable_init(parent_public, drawable_public, avlist, offset_ptr) Xv_opaque parent_public; Xv_drawable_struct *drawable_public; Attr_avlist avlist; int *offset_ptr; { drawable_public->private_data = (Xv_opaque) xv_alloc(Xv_Drawable_info); return XV_OK; } Pkg_private int drawable_destroy(drawable_public, status) register Xv_Drawable drawable_public; Destroy_status status; { register Xv_Drawable_info * drawable = DRAWABLE_PRIVATE(drawable_public); if (status == DESTROY_CLEANUP) { (void) free((char *) drawable); return XV_OK; } return XV_OK; } Pkg_private Xv_opaque drawable_get_attr(drawable_public, status, attr) Xv_Drawable drawable_public; int *status; Drawable_attr attr; { Xv_Drawable_info *info; switch (attr) { case DRAWABLE_INFO: return ((Xv_opaque) DRAWABLE_PRIVATE(drawable_public)); case XV_XID: info = DRAWABLE_PRIVATE(drawable_public); return ((Xv_opaque) (info->xid)); case XV_DISPLAY: info = DRAWABLE_PRIVATE(drawable_public); return ((Xv_opaque) (info->visual->display)); default: if (xv_check_bad_attr(&xv_drawable_pkg, (Attr_attribute) attr) == XV_ERROR) { *status = XV_ERROR; } return (XV_NULL); } } Xv_private GC xv_private_gc(d) Xv_opaque d; { return ((GC) window_private_gc(d)); } xview-3.2p1.4/lib/libxview/base/xv_list.h100644 1750 1750 6317 5413747701 15613 0ustar mbmb/* @(#)xv_list.h 20.12 93/06/28 SMI */ #ifndef _xv_list_h_already_included #define _xv_list_h_already_included /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #include #ifdef notdef These data structures, types, and functions implement singly-linked lists with first list node as list head. The expected usage of the functions is: void xv_sl_init(head) Initialize the list that 'head' specifies. Xv_sl_link xv_sl_add_after(head, link, new) Add 'new' to list that 'head' specifies after 'link'. If 'link' is null, make 'new' the first node (caller must update its notion of head). Returns 'new' to allow call to be part of expression. Xv_sl_link xv_sl_remove_after(head, link) Remove link->next from list that 'head' specifies, unless 'link' is null in which case remove 'head' (caller must update its notion of head). NOTE: Caller must do actual deallocation, so return value is removed node. Xv_sl_link xv_sl_remove(head, link) Similar to xv_sl_remove_after, but affects link, not link->next. Sample code fragments: typedef struct foo {xv_sl_link next; ... } *Foo; Foo_info a_foo, next_foo, head_foo = (Foo)malloc(struct foo); XV_SL_INIT(head_foo); ... fill in head_foo and allocate and fill in a_foo, then link a_foo after head_foo via ... XV_SL_ADD_AFTER(head_foo, head_foo, a_foo); ... finish building list then enumerate via ... XV_SL_TYPED_FOR_ALL(head_foo, a_foo, Foo) { ... process a_foo ... } ... and when done with list ... XV_SL_SAFE_TYPED_FOR_ALL(head_foo, a_foo, next_foo, Foo) { free((char *)a_foo); } #endif struct xv_sl_node { struct xv_sl_node *next; }; typedef struct xv_sl_node *Xv_sl_link; typedef Xv_sl_link Xv_sl_head; #define XV_SL_NULL ((Xv_sl_link)0) #define XV_SL_FOR_ALL(_head, _this) \ for (_this = _head; _this; _this = (_this)->next) #define XV_SL_SAFE_NEXT(_this) (_this) ? (_this)->next : XV_SL_NULL #define XV_SL_SAFE_FOR_ALL(_head, _this, _next) \ for (_this = _head, _next = XV_SL_SAFE_NEXT(_this); \ _this; _this = _next, _next = XV_SL_SAFE_NEXT(_this)) Xv_private void xv_sl_init(); Xv_private Xv_sl_link xv_sl_add_after(); Xv_private Xv_sl_link xv_sl_remove_after(); Xv_private Xv_sl_link xv_sl_remove(); /* Following assume xv_sl_link is aligned at start of embedding struct. */ #define XV_SL_TO_LINK(_formal) ((Xv_sl_link)(_formal)) #define XV_SL_TO_HEAD(_formal) ((Xv_sl_head)(_formal)) #define XV_SL_INIT(_head) xv_sl_init(XV_SL_TO_HEAD(_head)) #define XV_SL_ADD_AFTER(_head, _link, _new) \ xv_sl_add_after(XV_SL_TO_HEAD(_head), \ XV_SL_TO_LINK(_link), XV_SL_TO_LINK(_new)) #define XV_SL_REMOVE_AFTER(_head, _link) \ xv_sl_remove_after(XV_SL_TO_HEAD(_head), XV_SL_TO_LINK(_link)) #define XV_SL_REMOVE(_head, _link) \ xv_sl_remove(XV_SL_TO_HEAD(_head), XV_SL_TO_LINK(_link)) #define XV_SL_TYPED_FOR_ALL(_head, _this, _type) \ for (_this = (_type)_head; _this; _this = (_type)_this->next) #define XV_SL_SAFE_TYPED_FOR_ALL(_head, _this, _next, _type) \ for (_this = (_type)_head, _next = XV_SL_SAFE_NEXT(_this); \ _this; _this = (_type)_next, _next = XV_SL_SAFE_NEXT(_this)) #endif _xv_list_h_already_included xview-3.2p1.4/lib/libxview/base/xv_debug.c100644 1750 1750 6667 5413747702 15732 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)xv_debug.c 20.18 93/06/28"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #include #include #include #include #include int xv_abort_fatal_error = FALSE; #ifdef _XV_DEBUG /* * Following temporaries are for use by implementors when they need storage * for variables whose address is passed to X query routines. */ long unsigned xv_debug_xid[20]; int xv_debug_any[100]; int xv_ask_for_debugger = FALSE; int xv_got_debugger = FALSE; unsigned char xv_debug_flags[((int) _svdebug_last_plus_one) / 8] = { 0x80, 0x00 }; /* * Allows _svdebug_last_plus_one debug flags Initialized to have the 0th flag * turned on and the rest off. xv_debug.h's definition of _svdebug_always_on * depends on this initialization. */ /* * SV error handlers when running with debugging on. All handlers are defined * via a procedure pointer so that they can be replaced if necessary. */ static void _xview_abort(); static void _xview_dprintf(); static int _xview_take_breakpoint(); void (*xv_abort) () = _xview_abort; void (*xv_dprintf) () = _xview_dprintf; int (*xv_take_breakpoint) () = _xview_take_breakpoint; /* Following are all Xv_private */ int xv_dprintf_open_error_posted = FALSE; char *xv_dprintf_file_name = "xv_debug.log"; char *xv_dprintf_standard_name = 0; static void _xview_abort() { abort(); } static void #ifdef ANSI_FUNC_PROTO _xview_dprintf(FILE *file, char *fmt, ...) #else _xview_dprintf(file, fmt, va_alist) FILE *file; char *fmt; va_dcl #endif { int i, we_opened; va_list args; char *file_name; we_opened = FALSE; if (file == 0) { file = fopen(xv_dprintf_file_name, "a"); we_opened = TRUE; } if (file == 0) { if (!xv_dprintf_open_error_posted) { xv_dprintf_open_error_posted = TRUE; (void) fprintf(stderr, XV_MSG("xv_dprintf: cannot open debugging file %s\n"), xv_dprintf_file_name); } return; } VA_START(args, fmt); _doprnt(fmt, args, file); va_end(args); fflush(file); if (we_opened) fclose(file); } Xv_private int xv_set_debug_flag(flag, bool) int flag, bool; { if (flag < 0 || flag >= 8 * sizeof(xv_debug_flags)) { return (TRUE); } else { if (bool) { xv_debug_flags[flag / 8] |= 0x80 >> (flag % 8); } else { xv_debug_flags[flag / 8] &= ~(0x80 >> (flag % 8)); } return (FALSE); } } static int _xview_take_breakpoint() /* * Following routine body appears to be susceptible to optimization. This is * not true, because it is expected that various global variables will be * manipulated by the programmer via a debugger. */ { if (xv_ask_for_debugger) { FILE *console = fopen("/dev/console", "a"); if (console) { (void) fprintf(console, XV_MSG("xv_take_breakpoint: please debug process %d\n"), getpid()); fflush(console); fclose(console); while (!xv_got_debugger) { sleep(3); } if (xv_ask_for_debugger) { xv_got_debugger = FALSE; } } } return (TRUE); } #else _xview_dprintf() { } #endif xview-3.2p1.4/lib/libxview/base/xview_xvin.h100644 1750 1750 2152 5413747702 16323 0ustar mbmb/* @(#)xview_xvin.h 1.14 93/06/28 SMI */ /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #ifndef xview_xview_xvin_DEFINED #define xview_xview_xvin_DEFINED /* *********************************************************************** * Include Files *********************************************************************** */ #include #include #include #include #include #ifdef __STDC__ #ifndef CAT #define CAT(a,b) a ## b #endif #endif #include #include #include #include #if defined(__cplusplus) || defined(__STDC__) #include #endif /* __cplusplus || __STDC__ */ #include #include #include #include #include #include #include #endif /* ~xview_xview_xvin_DEFINED */ xview-3.2p1.4/lib/libxview/base/base.h100644 1750 1750 6747 6331115757 15044 0ustar mbmb/* @(#)base.h 20.33 93/06/28 SMI */ /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifndef xview_base_DEFINED #define xview_base_DEFINED #include #include #include #if defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus) #include #endif /* __cplusplus || __STDC__ */ /* *********************************************************************** * Definitions and Macros *********************************************************************** */ #define XV_OK 0 #define XV_ERROR 1 #ifndef TRUE #define TRUE 1 #endif #ifndef FALSE #define FALSE 0 #endif #ifndef NULL #define NULL 0 #endif #ifndef MIN #define MIN(x, y) ( ((x) < (y)) ? (x) : (y) ) #endif #ifndef MAX #define MAX(x, y) ( ((x) > (y)) ? (x) : (y) ) #endif /* These are portability #defines needed by public header files. Please see * misc/portable.h for the bulk of the portability #defines. * * Currently, the default environment is SVR4. This is checked by looking at * the macro SUNOS41. This has to be fixed later to accomodate non-SUNOS41 and * non-SVR4 systems. */ #if !defined(SUNOS41) && !defined(__linux) #define XV_OS_SVR4 #define XV_USE_TTCOMPAT #define SYSV_WAIT #define SYSV_UCONTEXT #define XV_USE_XVFCNTL #elif defined(__linux) #define XV_OS_SVR4 #undef XV_USE_TTCOMPAT #define SYSV_UCONTEXT #define XV_USE_XVFCNTL #endif /* * These alloc macros should be functions someday with an error call out * to cleanup, if the underlying malloc fails. */ extern void *xv_alloc_save_ret; extern void xv_alloc_error(); extern void *xv_calloc(); #ifdef XV_NO_STRDUP extern char *strdup(); #endif /* XV_NO_STRDUP */ #ifdef XV_USE_ALLOC_FUNCS #define xv_alloc(t) (void *)xv_alloc_func(sizeof(t)) #define xv_alloc_n(t, n) (void *)xv_alloc_n_func(sizeof(t), n) #define xv_malloc(t) (void *)xv_malloc_func(t) #define xv_realloc(ptr, size) (void *)xv_realloc_func(ptr, size) #define xv_valloc(t) (void)xv_valloc_func(t) #else #define xv_alloc(t) \ ((( xv_alloc_save_ret = (void *)calloc( 1, sizeof( t ))) ? (void)0 : \ xv_alloc_error()) \ , xv_alloc_save_ret ) #define xv_alloc_n(t, n) \ ((( xv_alloc_save_ret = (void *)calloc( n, sizeof( t ))) ? (void)0 : \ xv_alloc_error()) \ , xv_alloc_save_ret ) #define xv_malloc( size ) \ ((( xv_alloc_save_ret = (void *)malloc( size )) ? (void)0 : \ xv_alloc_error()) \ , xv_alloc_save_ret ) #define xv_realloc( ptr, size ) \ ((( xv_alloc_save_ret = (void *)realloc( ptr, size )) ? (void)0 : \ xv_alloc_error()) \ , xv_alloc_save_ret ) #define xv_valloc( size ) \ ((( xv_alloc_save_ret = (void *)valloc( size )) ? (void)0 : \ xv_alloc_error()) \ , xv_alloc_save_ret ) #endif /* XV_USE_ALLOC_FUNCS */ #define xv_free(s) ((void) free((char *)s)) #define xv_strsave(s) strcpy( (char *)xv_malloc(strlen(s)+1), (s) ) #define XV_NULL ((Xv_opaque)NULL) /* *********************************************************************** * Typedefs, Enumerations, and Structs *********************************************************************** */ typedef unsigned long Xv_opaque; typedef unsigned long Xv_object; /* *********************************************************************** * Global Functions *********************************************************************** */ extern int defeat_event_security; #endif /* xview_base_DEFINED */ xview-3.2p1.4/lib/libxview/base/xv_error.c100644 1750 1750 12465 6331115757 16005 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)xv_error.c 1.36 93/06/28"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #include #include #include #include #include /* Unix system error variables */ extern int sys_nerr; extern char *sys_errlist[]; extern int errno; #ifndef __linux /* Global already defined in xv_init.c */ Xv_private_data char *xv_app_name; #else extern Xv_private_data char *xv_app_name; #endif Xv_private int (*xv_error_proc) (); /* * xv_error_format - Process the avlist and generate a formatted error message * of up to ERROR_MAX_STRING_SIZE characters, which has one NEW LINE character * at the end. */ Xv_public char * xv_error_format(object, avlist) Xv_object object; Attr_avlist avlist; { static char msg[ERROR_MAX_STRING_SIZE]; /* formatted error message */ Attr_avlist attrs; #define BUFSIZE 128 char buf[BUFSIZE]; /* to hold reason for error */ Display *dpy; char *error_string = NULL; Error_layer layer = ERROR_TOOLKIT; #define LMSGSIZE 128 char layer_msg[LMSGSIZE]; /* to hold layer message */ char *layer_name; int length; char *pkg_name = NULL; char *severity = "warning"; XErrorEvent *xerror = NULL; buf[0] = 0; for (attrs = avlist; *attrs; attrs = attr_next(attrs)) { switch ((int) attrs[0]) { case ERROR_BAD_ATTR: sprintf(buf, XV_MSG("bad attribute, %s"), attr_name(attrs[1])); break; case ERROR_BAD_VALUE: sprintf(buf, XV_MSG("bad value (0x%x) for attribute %s"), attrs[1], attr_name(attrs[2])); break; case ERROR_CANNOT_GET: sprintf(buf, XV_MSG("cannot get %s"), attr_name(attrs[1])); break; case ERROR_CANNOT_SET: sprintf(buf, XV_MSG("cannot set %s"), attr_name(attrs[1])); break; case ERROR_CREATE_ONLY: sprintf(buf, XV_MSG("%s only valid in xv_create"), attr_name(attrs[1])); break; case ERROR_INVALID_OBJECT: sprintf(buf, XV_MSG("invalid object (%s)"), (char *) attrs[1]); break; case ERROR_LAYER: if ((unsigned int) attrs[1] <= (unsigned int) ERROR_PROGRAM) layer = (Error_layer) attrs[1]; break; case ERROR_PKG: pkg_name = ((Xv_pkg *) attrs[1])->name; break; case ERROR_SERVER_ERROR: xerror = (XErrorEvent *) attrs[1]; break; case ERROR_SEVERITY: if ((Error_severity) attrs[1] == ERROR_NON_RECOVERABLE) severity = XV_MSG("error"); break; case ERROR_STRING: error_string = (char *) attrs[1]; break; } } switch (layer) { case ERROR_SYSTEM: layer_name = XV_MSG("System"); if ((int) errno < sys_nerr) sprintf(layer_msg, "%s", sys_errlist[(int) errno]); else sprintf(layer_msg, XV_MSG("unix error %d"), (int) errno); break; case ERROR_SERVER: layer_name = XV_MSG("Server"); if (xerror) { dpy = xerror->display; XGetErrorText(dpy, (int) xerror->error_code, layer_msg, LMSGSIZE); } else strcpy(layer_msg, XV_MSG("error unknown")); break; case ERROR_TOOLKIT: layer_name = XV_MSG("XView"); layer_msg[0] = 0; break; case ERROR_PROGRAM: layer_name = xv_app_name; layer_msg[0] = 0; break; } if (!object) sprintf(msg, "%s %s:", layer_name, severity); else sprintf(msg, XV_MSG("%s %s: Object 0x%x,"), layer_name, severity, object); if (layer_msg[0]) { strcat(msg, " "); strcat(msg, layer_msg); } if (buf[0]) { strcat(msg, " "); strcat(msg, buf); } if (error_string) { /* Append ERROR_STRING, stripping off trailing New Lines. */ length = strlen(error_string); while (length && error_string[length-1] == '\n') length--; if (length) { if (layer_msg[0] || buf[0]) strcat(msg, ", "); else strcat(msg, " "); strncat(msg, error_string, length); } } if (pkg_name) sprintf(msg, XV_MSG("%s (%s package)\n"), msg, pkg_name); else strcat(msg, "\n"); return msg; } /* * xv_error_default - default error routine called by xv_error() (below). * Print the formatted error message generated by xv_error_format to stderr. * If ERROR_SEVERITY is ERROR_RECOVERABLE, xv_error_default returns to the * caller with XV_OK. Otherwise, the program is aborted with an exit(1). */ Xv_public int xv_error_default(object, avlist) Xv_object object; Attr_avlist avlist; { Attr_attribute *attrs; Error_severity severity = ERROR_RECOVERABLE; fprintf(stderr, "%s", xv_error_format(object, avlist)); for (attrs = avlist; *attrs; attrs = attr_next(attrs)) switch (attrs[0]) { case ERROR_SEVERITY: severity = (Error_severity) attrs[1]; break; } if (severity != ERROR_RECOVERABLE) exit(1); return XV_OK; } Xv_public int #ifdef ANSI_FUNC_PROTO xv_error(Xv_object object, ...) #else xv_error(object, va_alist) Xv_object object; va_dcl #endif { va_list valist; AVLIST_DECL; VA_START(valist, object); MAKE_AVLIST( valist, avlist ); va_end(valist); if (xv_error_proc) return ((*xv_error_proc) (object, avlist)); else return (xv_error_default(object, avlist)); } xview-3.2p1.4/lib/libxview/base/xv_parse.c100644 1750 1750 55300 5413747703 15763 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)xv_parse.c 20.59 93/06/28"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ /* * Do standard parse on argv to defaults. */ #ifdef _XV_DEBUG #include #else #include #endif #include #include #include #include #include #include #include #include #ifdef SVR4 #include #endif SVR4 extern XrmDatabase defaults_rdb; Xv_private int list_fonts; #ifdef _XV_DEBUG Xv_private int server_gather_stats; int sview_gprof_start; #endif typedef struct { char *short_name, *long_name; char *def_name[2];/* defaults name(s) */ char num_args; } Cmd_line_flag; typedef struct _cmd_line_entry{ char *resource_name; /* -xrm, -Wd */ char *values[2]; /* one for each possible default name */ char *cmdline[3]; /* actual cmdline option passed (3 max) */ Cmd_line_flag *cmdline_flag; /* store cmdline info */ struct _cmd_line_entry *next; } Cmd_line_entry; /* * WARNING: The enumeration Flag_name, the array cmd_line_flags, and the * procedure xv_usage must all be updated together whenever a new option is * added, and old option is deleted, or the order of the existing options is * permuted. */ typedef enum { FLAG_SCALE, FLAG_FONT, FLAG_X_FONT, FLAG_WIDTH, FLAG_HEIGHT, FLAG_SIZE, FLAG_POSITION, FLAG_GEOMETRY, FLAG_ICON_POSITION, FLAG_LABEL, FLAG_TITLE, FLAG_ENABLE_ICONIC, FLAG_DISABLE_ICONIC, FLAG_FOREGROUND_COLOR, FLAG_X_FOREGROUND_COLOR, FLAG_BACKGROUND_COLOR, FLAG_X_BACKGROUND_COLOR, FLAG_SET_DEFAULT_COLOR, FLAG_ENABLE_REVERSE, FLAG_DISABLE_REVERSE, FLAG_ICON_IMAGE, FLAG_ICON_LABEL, FLAG_ICON_FONT, FLAG_DEFAULTS_ENTRY, FLAG_XRM_ENTRY, FLAG_HELP, FLAG_ENABLE_SYNC, FLAG_DISABLE_SYNC, FLAG_SERVER, FLAG_VISUAL, FLAG_DEPTH, FLAG_DISABLE_RETAINED, FLAG_DISABLE_XIO_ERROR_HANDLER, FLAG_FULLSCREEN_DEBUG, FLAG_FULLSCREEN_DEBUG_SERVER, FLAG_FULLSCREEN_DEBUG_PTR, FLAG_FULLSCREEN_DEBUG_KBD, FLAG_DISABLE_PASSIVE_GRAB_SELECT, FLAG_NO_SECURITY, FLAG_NAME, FLAG_LC_BASICLOCALE, FLAG_LC_DISPLAYLANG, FLAG_LC_INPUTLANG, FLAG_LC_NUMERIC, #ifdef OW_I18N #ifdef FULL_R5 FLAG_LC_TIMEFORMAT, FLAG_IM_INPUT_STYLE, FLAG_IM_STATUS_STYLE #else /* FULL_R5 */ FLAG_LC_TIMEFORMAT #endif /* FULL_R5 */ #else /* OW_I18N */ FLAG_LC_TIMEFORMAT #endif /* OW_I18N */ #ifdef _XV_DEBUG , FLAG_LIST_FONTS, FLAG_DEBUG, FLAG_STATS, FLAG_GPROF_START #endif } Flag_name; static Cmd_line_flag *find_cmd_flag(); static Cmd_line_flag cmd_line_flags[] = { "-Wx", "-scale", "window.scale.cmdline", 0, 1, "-Wt", "-font", "font.name.cmdline", 0, 1, "-fn", "", "font.name.cmdline", 0, 1, "-Ww", "-width", "window.columns", 0, 1, "-Wh", "-height", "window.rows", 0, 1, "-Ws", "-size", "window.width", "window.height", 2, "-Wp", "-position", "window.x", "window.y", 2, "-WG", "-geometry", "window.geometry", 0, 1, "-WP", "-icon_position", "icon.x", "icon.y", 2, "-Wl", "-label", "window.header", 0, 1, "", "-title", "window.header", 0, 1, "-Wi", "-iconic", "window.iconic", 0, 0, "+Wi", "+iconic", "window.iconic", 0, 0, "-Wf", "-foreground_color", "window.color.foreground", 0, 3, "-fg", "-foreground", "window.color.foreground", 0, 1, "-Wb", "-background_color", "window.color.background", 0, 3, "-bg", "-background", "window.color.background", 0, 1, "-Wg", "-set_default_color", "window.inheritcolor", 0, 0, "-rv", "-reverse", "window.reverseVideo", 0, 0, "+rv", "+reverse", "window.reverseVideo", 0, 0, "-WI", "-icon_image", "icon.pixmap", 0, 1, "-WL", "-icon_label", "icon.footer", 0, 1, "-WT", "-icon_font", "icon.font.name.cmdline", 0, 1, "-Wd", "-default", 0, 0, 2, "", "-xrm", 0, 0, 1, "-WH", "-help", 0, 0, 0, "-sync", "-synchronous", "window.synchronous", 0, 0, "+sync", "+synchronous", "window.synchronous", 0, 0, "-Wr", "-display", "server.name", 0, 1, "", "-visual", "window.visual", 0, 1, "", "-depth", "window.depth", 0, 1, "-Wdr", "-disable_retained", "window.mono.disableRetained", 0, 0, "-Wdxio", "-disable_xio_error_handler", 0, 0, 0, "-Wfsdb", "-fullscreendebug", 0, 0, 0, "-Wfsdbs", "-fullscreendebugserver", 0, 0, 0, "-Wfsdbp", "-fullscreendebugptr", 0, 0, 0, "-Wfsdbk", "-fullscreendebugkbd", 0, 0, 0, "-Wdpgs", "-disable_pass_grab_select", "window.passiveGrab.select", 0, 0, "-WS", "-defeateventsecurity", 0, 0, 0, "-name", "-name", 0, 0, 1, "-lc_basiclocale", "-lc_basiclocale", "openWindows.basicLocale", 0, 1, "-lc_displaylang", "-lc_displaylang", "openWindows.displayLang", 0, 1, "-lc_inputlang", "-lc_inputlang", "openWindows.inputLang", 0, 1, "-lc_numeric", "-lc_numeric", "openWindows.numericFormat", 0, 1, "-lc_timeformat", "-lc_timeformat", "openWindows.timeFormat", 0, 1, #ifdef OW_I18N #ifdef FULL_R5 "-preedit_style", "-preedit_style", "openWindows.imPreeditStyle.cmdline", "OpenWindows.ImPreeditStyle.cmdline", 1, "-status_style", "-status_style", "openWindows.imStatusStyle.cmdline", "OpenWindows.ImStatusStyle.cmdline", 1, #endif /* FULL_R5 */ #endif /* OW_I18N */ #ifdef _XV_DEBUG "", "-list_fonts", 0, 0, 0, "", "-Xv_debug", 0, 0, 1, "", "-stats", 0, 0, 0, "", "-gprof_start", 0, 0, 0, #endif 0, 0, 0, 0, 0 }; static Cmd_line_entry *cmdline_entered_first = NULL; static Cmd_line_entry *cmdline_entered_last = NULL; Xv_private void xv_merge_cmdline(); Xv_private void xv_get_cmdline_str(); Xv_private void xv_get_cmdline_argv(); static void xv_add_cmdline_entry(); static Defaults_pairs known_scales[] = { "small", WIN_SCALE_SMALL, "Small", WIN_SCALE_SMALL, "medium", WIN_SCALE_MEDIUM, "Medium", WIN_SCALE_MEDIUM, "large", WIN_SCALE_LARGE, "Large", WIN_SCALE_LARGE, "extra_large", WIN_SCALE_EXTRALARGE, "Extra_Large", WIN_SCALE_EXTRALARGE, NULL, -1, }; Xv_private void xv_cmdline_scrunch(argc_ptr, argv, remove, n) int *argc_ptr; char **argv, **remove; int n; /* * Takes remove to remove+n-1 out of argv, which is assumed to be NULL * terminated, although no use is made of that assumption. The original argv * is required from the caller to avoid having to scan the list looking for * its end. */ { #ifdef _XV_DEBUG if (*argc_ptr < n) { (void) fprintf(stderr, XV_MSG("xv_cmdline_scrunch: argc (%d) < count (%d)\n"), *argc_ptr, n); return; } if (argv[*argc_ptr]) { (void) fprintf(stderr, XV_MSG("xv_cmdline_scrunch: argv[argc(%d)] (%d:%s) not NULL\n"), *argc_ptr, argv[*argc_ptr], argv[*argc_ptr]); return; } #endif *argc_ptr = *argc_ptr - n; XV_BCOPY((char *) (remove + n), (char *) (remove), sizeof(*remove) * (*argc_ptr - (remove - argv) + 1)); } Xv_public int xv_parse_cmdline(app_name, argc_ptr, argv_base, scrunch) char *app_name; int *argc_ptr; char **argv_base; int scrunch; /* * Parse the command line, looking for sv flags. Abort if a partial flag is * encountered, but just ignore unrecognized flags. If scrunch, remove * recognized flags (and their arguments) from the command line (argv) and * adjust the command count (argc_ptr). */ { register char **argv = argv_base; register int argc = *argc_ptr; int n; while (argc > 0) { switch ((n = xv_parse_one(app_name, argc, argv))) { case 0: /* Unrecognized flag: ignore it */ argc--; argv++; break; case -1: #ifdef _XV_DEBUG /* Always print debugging flags, when #define'd. */ xv_generic_debug_help(stderr); #endif return (-1); default: if (scrunch) { xv_cmdline_scrunch(argc_ptr, argv_base, argv, n); } else argv += n; argc -= n; } } /* * Merge cmdline options into defaults database * NOTE: * defaults_rdb points to the database hanging off the most * recent server created or to nothing, if a server object has * not been created yet. */ xv_merge_cmdline(&defaults_rdb); return (0); } int xv_parse_one(app_name, argc, argv) char *app_name; register int argc; register char **argv; { int plus; int bad_arg = 0; register Cmd_line_flag *slot; Flag_name flag_name; char int_val1[12]; char int_val2[12]; if (argc < 1 || ((**argv != '-') && (**argv != '+'))) return (0); slot = find_cmd_flag(argv[0]); if (!slot) return 0; if (argc <= slot->num_args) { char dummy[128]; (void) sprintf(dummy, XV_MSG("%s: missing argument after %s"), app_name, argv[0]); xv_error(NULL, ERROR_STRING, dummy, 0); return (-1); } flag_name = (Flag_name) (slot - cmd_line_flags); switch (flag_name) { case FLAG_WIDTH: case FLAG_HEIGHT: if ((plus = atoi(argv[1])) < 0) { bad_arg = 1; goto NegArg; } sprintf(int_val1, "%d", plus); xv_add_cmdline_entry(slot, NULL, int_val1, NULL, argv); break; case FLAG_SIZE: if ((plus = atoi(argv[1])) < 0) { bad_arg = 1; goto NegArg; } sprintf(int_val1, "%d", plus); if ((plus = atoi(argv[2])) < 0) { bad_arg = 2; goto NegArg; } sprintf(int_val2, "%d", plus); xv_add_cmdline_entry(slot, NULL, int_val1, int_val2, argv); break; case FLAG_POSITION: case FLAG_ICON_POSITION: sprintf(int_val1, "%d", atoi(argv[1])); sprintf(int_val2, "%d", atoi(argv[2])); xv_add_cmdline_entry(slot, NULL, int_val1, int_val2, argv); break; case FLAG_GEOMETRY: xv_add_cmdline_entry(slot, NULL, argv[1], NULL, argv); break; case FLAG_LABEL: xv_add_cmdline_entry(slot, NULL, argv[1], NULL, argv); break; case FLAG_TITLE: xv_add_cmdline_entry(slot, NULL, argv[1], NULL, argv); break; case FLAG_ICON_LABEL: xv_add_cmdline_entry(slot, NULL, argv[1], NULL, argv); break; case FLAG_ICON_IMAGE: xv_add_cmdline_entry(slot, NULL, argv[1], NULL, argv); break; case FLAG_ICON_FONT: xv_add_cmdline_entry(slot, NULL, argv[1], NULL, argv); break; case FLAG_FONT: /* this is a hack to allow for Xt -fn default */ case FLAG_X_FONT: xv_add_cmdline_entry(slot, NULL, argv[1], NULL, argv); break; case FLAG_SCALE: if (defaults_lookup(argv[1], known_scales) == -1) { char dummy[1024]; (void) sprintf(dummy, XV_MSG("%s: unknown scale \"%s\" used with %s option"), app_name, argv[1], argv[0]); xv_error(XV_NULL, ERROR_STRING, dummy, 0); return(-1); } else { xv_add_cmdline_entry(slot, NULL, argv[1], NULL, argv); } break; case FLAG_ENABLE_ICONIC: xv_add_cmdline_entry(slot, NULL, "True", NULL, argv); break; case FLAG_DISABLE_ICONIC: xv_add_cmdline_entry(slot, NULL, "False", NULL, argv); break; case FLAG_SET_DEFAULT_COLOR: /* this is really just a no op, but we need to consume it * so that old applications won't see it. */ /* boolean value -- if specified then TRUE */ xv_add_cmdline_entry(slot, NULL, "True", NULL, argv); break; case FLAG_ENABLE_REVERSE: xv_add_cmdline_entry(slot, NULL, "True", NULL, argv); break; case FLAG_DISABLE_REVERSE: xv_add_cmdline_entry(slot, NULL, "False", NULL, argv); break; case FLAG_DISABLE_RETAINED: /* boolean value -- if specified then TRUE */ sprintf(int_val1, "%d", TRUE); xv_add_cmdline_entry(slot, NULL, int_val1, NULL, argv); break; case FLAG_DISABLE_XIO_ERROR_HANDLER: /* boolean value -- if specified then */ (void) XSetIOErrorHandler((int (*) ()) NULL); break; case FLAG_FULLSCREEN_DEBUG: fullscreendebug = 1; xv_add_cmdline_entry(slot, NULL, NULL, NULL, argv); break; case FLAG_FULLSCREEN_DEBUG_SERVER: fullscreendebugserver = 1; xv_add_cmdline_entry(slot, NULL, NULL, NULL, argv); break; case FLAG_FULLSCREEN_DEBUG_PTR: fullscreendebugptr = 1; xv_add_cmdline_entry(slot, NULL, NULL, NULL, argv); break; case FLAG_FULLSCREEN_DEBUG_KBD: fullscreendebugkbd = 1; xv_add_cmdline_entry(slot, NULL, NULL, NULL, argv); break; case FLAG_DISABLE_PASSIVE_GRAB_SELECT: xv_add_cmdline_entry(slot, NULL, "False", NULL, argv); break; case FLAG_FOREGROUND_COLOR: case FLAG_BACKGROUND_COLOR:{ int i, rgb[3]; char chars[100]; /* convert three ints into one string with three RGB values */ for (i = 0; i <= 2; i++) { /* if bad number or neg. then use 0 */ if ((sscanf(argv[i + 1], "%d", &(rgb[i])) != 1) || (rgb[i] < 0)) rgb[i] = 0; } (void) sprintf(chars, "%d %d %d", rgb[0], rgb[1], rgb[2]); xv_add_cmdline_entry(slot, NULL, chars, NULL, argv); break; } case FLAG_X_FOREGROUND_COLOR: case FLAG_X_BACKGROUND_COLOR: xv_add_cmdline_entry(slot, NULL, argv[1], NULL, argv); break; case FLAG_DEFAULTS_ENTRY: xv_add_cmdline_entry(slot, argv[1], argv[2], NULL, argv); break; case FLAG_XRM_ENTRY: { char resource[1000], value[1000]; int i = 0, j = 0; /* split the argv in the form of "resource:value" * into two different strings to pass into defaults_set_string */ while (argv[1][i] != ':' && argv[1][i] != '\0') { resource[i] = argv[1][i]; i++; } resource[i] = '\0'; if (argv[1][i] == ':') { while (argv[1][i] != '\0') { i++; value[j++] = argv[1][i]; } value[j] = '\0'; xv_add_cmdline_entry(slot, resource, value, NULL, argv); } } break; case FLAG_HELP: return (-1); case FLAG_ENABLE_SYNC: xv_add_cmdline_entry(slot, NULL, "True", NULL, argv); break; case FLAG_DISABLE_SYNC: xv_add_cmdline_entry(slot, NULL, "False", NULL, argv); break; case FLAG_SERVER: xv_add_cmdline_entry(slot, NULL, argv[1], NULL, argv); break; case FLAG_VISUAL: xv_add_cmdline_entry(slot, NULL, argv[1], NULL, argv); break; case FLAG_DEPTH: sprintf(int_val1, "%d", atoi(argv[1])); xv_add_cmdline_entry(slot, NULL, int_val1, NULL, argv); break; case FLAG_NO_SECURITY: defeat_event_security = 1; xv_add_cmdline_entry(slot, NULL, NULL, NULL, argv); break; case FLAG_NAME: xv_add_cmdline_entry(slot, NULL, NULL, NULL, argv); break; case FLAG_LC_BASICLOCALE: case FLAG_LC_DISPLAYLANG: case FLAG_LC_INPUTLANG: case FLAG_LC_NUMERIC: case FLAG_LC_TIMEFORMAT: #ifdef OW_I18N #ifdef FULL_R5 case FLAG_IM_INPUT_STYLE: case FLAG_IM_STATUS_STYLE: #endif /* FULL_R5 */ #endif /* OW_I18N */ xv_add_cmdline_entry(slot, NULL, argv[1], NULL, argv); break; #ifdef _XV_DEBUG case FLAG_LIST_FONTS: list_fonts = TRUE; break; case FLAG_DEBUG: plus = atoi(argv[1]); SetDebug: if (xv_set_debug_flag(plus, TRUE)) { char dummy[128]; (void) sprintf(dummy, XV_MSG("xv_set_debug_flag; '%d' is out of bounds"), plus); xv_error(NULL, ERROR_STRING, dummy, 0); } break; case FLAG_STATS: server_gather_stats = TRUE; break; case FLAG_GPROF_START: sview_gprof_start = TRUE; break; #endif default: return (0); } return (slot->num_args + 1); /* BadFont: { char dummy[128]; (void) sprintf(dummy, XV_MSG("%s: bad font file (%s)"), app_name, argv[1]); xv_error(NULL, ERROR_STRING, dummy, 0); return (-1); } */ NegArg: { char dummy[128]; (void) sprintf(dummy, XV_MSG("%s: can't have negative argument %s after %s"), app_name, argv[bad_arg], argv[0]); xv_error(XV_NULL, ERROR_STRING, dummy, 0); return (-1); } /* NoMsgError: return (-1); */ } static Cmd_line_flag * find_cmd_flag(key) register char *key; { register Cmd_line_flag *slot = cmd_line_flags; for (slot = cmd_line_flags; slot->short_name; slot++) if ((strcmp(key, slot->short_name) == 0) || (strcmp(key, slot->long_name) == 0)) return slot; return 0; } #ifdef _XV_DEBUG static int xv_generic_debug_help(fd) FILE *fd; { (void) fprintf(fd, XV_MSG("Generic debugging flags are:\n\ (-sync) bool (run synchronous with server)\n\ (-list_fonts)\n\ (-stats)\n\ (-Xv_debug) unsigned\n")); } #endif /* * xv_merge_cmdline * Merges/puts the cmdline options into the passed database * It the passed database, does not exist yet (i.e. *db = (nil)), * a new one will be created and returned. */ Xv_private void xv_merge_cmdline(db) XrmDatabase *db; { Cmd_line_entry *cur = cmdline_entered_first; Cmd_line_flag *flag_info; if (db) { while (cur) { if (cur->resource_name) { if (cur->values[0]) { XrmPutStringResource(db, cur->resource_name, cur->values[0]); } } else { flag_info = cur->cmdline_flag; if (flag_info->def_name[0]) { if (cur->values[0]) { XrmPutStringResource(db, flag_info->def_name[0], cur->values[0]); } } if (flag_info->def_name[1]) { if (cur->values[1]) { XrmPutStringResource(db, flag_info->def_name[1], cur->values[1]); } } } cur = cur->next; } } } /* * Appends to 'str' the command line flags and options passed when the application * was invoked. * Important: * window size (-Ws) * window position (-Wp) * icon position (-WP) * disable_iconic (+Wi) * enable iconic (-Wi) * are skipped here because the actual values for these defaults are calculated * and added to the string in function get_cmdline_option() (in win/win_input.c). */ Xv_private void xv_get_cmdline_str(str) char *str; { Cmd_line_entry *cur = cmdline_entered_first; Cmd_line_flag *slot; Flag_name flag_name; int i; char *cmd_flag; /* * Check if a str was actually passed in */ if (str) { while (cur) { /* * Get flag info */ slot = cur->cmdline_flag; /* * get flag id */ flag_name = (Flag_name) (slot - cmd_line_flags); /* * Check if flag is window size/position or icon position */ if ((flag_name != FLAG_SIZE) && (flag_name != FLAG_POSITION) && (flag_name != FLAG_ICON_POSITION) && (flag_name != FLAG_ENABLE_ICONIC) && (flag_name != FLAG_DISABLE_ICONIC)) { /* * The command line option is the short flag. * If it is a null string or is NULL, use the long * flag */ if (slot->short_name && strlen(slot->short_name)) { cmd_flag = slot->short_name; } else { cmd_flag = slot->long_name; } /* * cat SPACE CMDLINE_FLAG */ (void)strcat(str, " "); (void)strcat(str, cmd_flag); /* * Do for each cmdline option */ for (i = 0; i < slot->num_args; ++i) { /* * cat SPACE DOUBLE_QUOTE CMDLINE_OPTION DOUBLE_QUOTE */ (void)strcat(str, " \""); (void)strcat(str, cur->cmdline[i]); (void)strcat(str, "\""); } } cur = cur->next; } } } /* * Appends to 'str' the command line flags and options passed when the application * was invoked. * Important: * window size (-Ws) * window position (-Wp) * icon position (-WP) * disable_iconic (+Wi) * enable iconic (-Wi) * are skipped here because the actual values for these defaults are calculated * and added to the string in function get_cmdline_option() (in win/win_input.c). */ Xv_private void xv_get_cmdline_argv(argv, argc_ptr) char **argv; int *argc_ptr; { Cmd_line_entry *cur = cmdline_entered_first; Cmd_line_flag *slot; Flag_name flag_name; int i; char *cmd_flag; /* * Check if argv was actually passed in */ if (argv) { while (cur) { /* * Get flag info */ slot = cur->cmdline_flag; /* * get flag id */ flag_name = (Flag_name) (slot - cmd_line_flags); /* * Check if flag is window size/position or icon position */ if ((flag_name != FLAG_SIZE) && (flag_name != FLAG_POSITION) && (flag_name != FLAG_ICON_POSITION) && (flag_name != FLAG_ENABLE_ICONIC) && (flag_name != FLAG_DISABLE_ICONIC)) { /* * The command line option is the short flag. * If it is a null string or is NULL, use the long * flag */ if (slot->short_name && strlen(slot->short_name)) { cmd_flag = slot->short_name; } else { cmd_flag = slot->long_name; } /* * Add cmdline option to argv: */ /* * Add the cmdline flag */ argv[(*argc_ptr)++] = cmd_flag; /* * Add the cmdline values passed */ for (i=0; i < slot->num_args; ++i) { argv[(*argc_ptr)++] = cur->cmdline[i]; } } cur = cur->next; } } } static void xv_add_cmdline_entry(slot, resource_name, value1, value2, argv) Cmd_line_flag *slot; char *resource_name; char *value1; char *value2; char **argv; { Cmd_line_entry *new; int num_args = slot->num_args; int i; /* * Allocate new node - append to END of list * We must maintain the order of cmdline options */ new = (Cmd_line_entry *)xv_alloc(Cmd_line_entry); new->cmdline_flag = slot; new->next = (Cmd_line_entry *)NULL; /* * If first node */ if (!cmdline_entered_last) { /* * Make this the first node */ cmdline_entered_first = new; } else { /* * Link current last node with new node */ cmdline_entered_last->next = new; } /* * Make this the last node */ cmdline_entered_last = new; /* * Initialize every string to NULL */ new->resource_name = new->values[0] = new->values[1] = (char *)NULL; for (i = 0; i < num_args; ++i) { new->cmdline[i] = (char *)NULL; } /* * Store strings... */ if (resource_name) { new->resource_name = strdup(resource_name); } if (value1) { new->values[0] = strdup(value1); } if (value2) { new->values[1] = strdup(value2); } /* * Store argv command line options, if any */ for (i = 0; i < num_args; ++i) { /* * Use argv[i+1] to skip the cmdline option. * We want to store only the values passed. */ new->cmdline[i] = strdup(argv[i+1]); } } xview-3.2p1.4/lib/libxview/base/xv_xlib.h100644 1750 1750 1335 5413747703 15573 0ustar mbmb/* @(#)xv_xlib.h 20.13 93/06/28 SMI */ /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ /* * Bridge between View2 implementation and Xlib. */ #ifndef _view2_private_xv_xlib_h_already_included #define _view2_private_xv_xlib_h_already_included #include #include #include /* * To enable applications to get the current clipping list * to do direct X graphics. */ #define XV_MAX_XRECTS 32 typedef struct { XRectangle rect_array[XV_MAX_XRECTS]; int count; } Xv_xrectlist; #endif _view2_private_xv_xlib_h_already_included xview-3.2p1.4/lib/libxview/base/xv_list.c100644 1750 1750 2470 5413747703 15604 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)xv_list.c 20.13 93/06/28"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #include Xv_private void xv_sl_init(head) Xv_sl_head head; { head->next = XV_SL_NULL; } Xv_private Xv_sl_link xv_sl_add_after(head, link, new) register Xv_sl_head head; register Xv_sl_link link, new; { if (link != XV_SL_NULL) { new->next = link->next; link->next = new; } else { new->next = head; } return (new); } Xv_private Xv_sl_link xv_sl_remove_after(head, link) register Xv_sl_head head; register Xv_sl_link link; { register Xv_sl_link result; if (link != XV_SL_NULL) { result = link->next; link->next = result->next; } else { result = head; } return (result); } Xv_private Xv_sl_link xv_sl_remove(head, link) register Xv_sl_head head; register Xv_sl_link link; { register Xv_sl_link prev; if ((head == link) || (link == XV_SL_NULL)) { prev = XV_SL_NULL; } else { XV_SL_FOR_ALL(head, prev) { if (prev->next == link) break; } #ifdef _XV_DEBUG abort(); #endif } return (xv_sl_remove_after(head, prev)); } xview-3.2p1.4/lib/libxview/base/xv_debug.h100644 1750 1750 6243 6331115757 15724 0ustar mbmb/* @(#)xv_debug.h 20.14 93/06/28 SMI */ /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #ifndef _xv_debug_h_already_included #define _xv_debug_h_already_included #ifndef FILE #if !defined(SVR4) && !defined(__linux) #undef NULL #endif SVR4 #include #endif FILE #include /* needed to get definition of Xv_private */ /* * Not strictly necessary to include here, but eliminates * the need of clients who xv_dprintf to stdout or stderr to include * both xv_debug.h and stdio.h. */ Xv_private void (*xv_abort)(); Xv_private void (*xv_dprintf)(); Xv_private int (*xv_take_breakpoint)(); #ifdef _XV_DEBUG #define DEBUG_ONLY(x) x Xv_private int xv_ask_for_debugger, xv_got_debugger; Xv_private unsigned char xv_debug_flags[]; Xv_private int xv_set_debug_flag(); #define DEBUG_FLAG_ON(flag) \ (xv_debug_flags[((unsigned)(flag))/8] & \ (0x80>>(((unsigned)(flag))%8)) ) /* * The 0th flag will always be on. This depends on initialization * of xv_debug_flags performed in xv_debug.c. */ typedef enum { _svdebug_always_on = 0, _svdebug_obsolete_code = 1, _svdebug_synchronous_server = 2, /* Enablers for code that when turned on crashes X alpha2 server */ _svdebug_fill_opaque_stippled = 100, _svdebug_null_src_is_white = 101, /* Temporaries not expected to show in code that is checked in */ _svdebug_alok = 475, _svdebug_carl = 500, _svdebug_mark = 525, _svdebug_pete = 550, _svdebug_last_plus_one = 1024 } Xv_debug_flag; #define AN_ERROR(expr, flag) ((expr) && \ DEBUG_FLAG_ON(flag) && \ xv_take_breakpoint()) #define ASSERT(expr, flag) if ((expr) && DEBUG_FLAG_ON(flag)) \ xv_abort() #define ASSUME(expr, flag) if ((expr) && DEBUG_FLAG_ON(flag)) \ xv_take_breakpoint() #define FATAL_ERROR(exit_code) xv_abort() /* * Examples of expected usage of these macros follows: * Calling checking procedure(s) when running debugged * DEBUG_ONLY(check_xxx(...); check_yyy(...)) * * xv_debug_flags exists to allow fine control over the bear-traps that * the following macros implement. * Checking for an error and taking breakpoint when running debugged * if AN_ERROR(check_xxx(...), xxx_debug_flag) { recovery code } * Checking that a vital invariant is true * ASSERT(invariant, invariant_debug_flag) * Checking that a non-vital invariant is true. It is expected that * the programmer has set a breakpoint on _xview_take_breakpoint(); * ASSUME(invariant, invariant_debug_flag) * * xv_ask_for_debugger is initially FALSE, but when set to TRUE causes * xv_take_breakpoint to write to the console and hang waiting to be * attached to by a debugger. The process can be continued by setting * xv_got_debugger to TRUE from the debugger. */ #else _XV_DEBUG #define DEBUG_ONLY(x) #define AN_ERROR(expr, flag) (expr) #define ASSERT(expr, flag) #define ASSUME(expr, flag) #define FATAL_ERROR(exit_code) if (xv_abort_fatal_error) abort() \ else exit(exit_code) #endif _XV_DEBUG #endif _xv_debug_h_already_included xview-3.2p1.4/lib/libxview/base/xv_init_x.c100644 1750 1750 4071 5413747704 16123 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)xv_init_x.c 20.27 93/06/28"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #include #include /* stderr & BUFSIZ */ #include #include #include #include #include #include #include Xv_private int (*xv_x_error_proc)(); Xv_private void (*xv_xlib_error_proc)(); Xv_private void xv_set_default_font(display, screen, font) register Display *display; int screen; Font font; { GC gc = DefaultGC(display, screen); XSetFont(display, gc, font); } #ifdef _XV_DEBUG Xv_private void xv_dump_fonts(display) Display *display; { char **temp; int font_count, i; temp = (char **) XListFonts(display, "*", 100, &font_count); (void) fprintf(stderr, XV_MSG("There are %d fonts available, named:\n"), font_count); for (i = 0; i < font_count; i++) { (void) fprintf(stderr, "\t%s\n", temp[i]); } XFreeFontNames(temp); } #endif Xv_private void xv_x_error_handler(dpy, event) Display *dpy; XErrorEvent *event; { int result; /* BUG: Watch out for the case where XView sets the focus to an unviewable * window. */ if ((event->error_code == BadMatch) && (event->request_code == X_SetInputFocus)) return; if (xv_x_error_proc) result = xv_x_error_proc(dpy, event); else result = XV_ERROR; if (result == XV_OK) /* Application's X Error Handler says to ignore this X error. * Continue execution. */ return; if (xv_xlib_error_proc) /* Call default Xlib X Error Handler and abort program */ xv_xlib_error_proc(dpy, event); /* should exit(1) */ else /* Using X11R3 */ xv_error(NULL, ERROR_SERVER, event, ERROR_SEVERITY, ERROR_NON_RECOVERABLE, 0); } xview-3.2p1.4/lib/libxview/base/xv_usage.c100644 1750 1750 6630 5413747704 15740 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)xv_usage.c 1.18 93/06/28"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #include #include /* * Print usage message to stderr */ void xv_usage(name) char *name; { /* * Long string has to split because the entry for the long string * in the .po file (for i18n/l10n) is too long for vi. It's OK for * emacs/textedit */ (void) fprintf(stderr, XV_MSG("usage of %s generic window arguments:\n\ FLAG\t(LONG FLAG)\t\tARGS\t\tNOTES\n\ -Ww\t(-width)\t\tcolumns\n\ -Wh\t(-height)\t\tlines\n\ -Ws\t(-size)\t\t\tx y\n\ -Wp\t(-position)\t\tx y\n\ \t(-geometry)\t\"[WxH][{+|-}X{+|-}Y]\"\t(X geometry)\n"), name ? name : ""); (void) fprintf(stderr, XV_MSG("-WP\t(-icon_position)\tx y\n\ -Wl\t(-label)\t\t\"string\"\n\ \t(-title)\t\t\"string\"\t(Same as -label)\n\ -Wi\t(-iconic)\t\t(Application will come up closed)\n\ +Wi\t(+iconic)\t\t(Application will come up open)\n\ -Wt\t(-font)\t\t\tfontname\n\ -fn\t\t\t\tfontname\t\n\ -Wx\t(-scale)\t\tsmall | medium | large | extra_large\n")); (void) fprintf(stderr, XV_MSG("-Wf\t(-foreground_color)\tred green blue\t0-255 (no color-full color)\n\ -fg\t(-foreground)\t\tcolorname\t(X Color specification)\n\ -Wb\t(-background_color)\tred green blue\t0-255 (no color-full color)\n\ -bg\t(-background)\t\tcolorname\t(X Color specification)\n\ -rv\t(-reverse)\t\t(Foreground and background colors will be reversed)\n\ +rv\t(+reverse)\t\t(Foreground and background colors will not be reversed)\n")); (void) fprintf(stderr, XV_MSG("-WI\t(-icon_image)\t\tfilename\n\ -WL\t(-icon_label)\t\t\"string\"\n\ -WT\t(-icon_font)\t\tfilename\n\ -Wr\t(-display)\t\t\"server_name:screen\"\n\ -visual\t\t\t\tStaticGray | GrayScale | StaticColor |\n\ \t\t\t\tPseudoColor | TrueColor | DirectColor\n\ -depth\t\t\t\tdepth\n\ -Wdr\t(-disable_retained)\t\n\ -Wdxio\t(-disable_xio_error_handler)\t\n")); (void) fprintf(stderr, XV_MSG("-Wfsdb\t(-fullscreendebug)\t\n\ -Wfsdbs\t(-fullscreendebugserver)\t\n\ -Wfsdbp\t(-fullscreendebugptr)\t\n\ -Wfsdbk\t(-fullscreendebugkbd)\t\n\ -Wdpgs\t(-disable_pass_grab_select)\t\n")); (void) fprintf(stderr, XV_MSG("-WS\t(-defeateventsecurity)\t\n\ -sync\t(-synchronous)\t\t\t\t(Force a synchronous connection)\n\ +sync\t(+synchronous)\t\t\t\t(Make an asynchronous connection)\n\ -Wd\t(-default)\t\tresource value\t(Set the X resource to value)\n\ -xrm\t\t\t\tresource:value\t(Set the X resource to value)\n")); (void) fprintf(stderr, XV_MSG("-name\t\t\t\tstring\t(Set application instance name to string)\n\ -lc_basiclocale\t\t\tlocale\t(Set basic locale of application to locale)\n\ -lc_displaylang\t\t\tlocale\t(Set display language of application to locale)\n\ -lc_inputlang\t\t\tlocale\t(Set input language of application to locale)\n\ -lc_numeric\t\t\tlocale\t(Set numeric format of application to locale)\n\ -lc_timeformat\t\t\tlocale\t(Set time format of application to locale)\n")); (void) fprintf(stderr, XV_MSG("-preedit_style\t\t\tonTheSpot | overTheSpot | rootWindow | none\n\ \t\t\t\t(Set input method preedit style)\n\ -status_style\t\t\tclientDisplays | imDisplaysInClient | none\n\ \t\t\t\t(Set input method status style)\n\ -WH\t(-help)\t\n")); exit(97); } xview-3.2p1.4/lib/libxview/base/gen_impl.h100644 1750 1750 2261 5413747704 15712 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)gen_impl.h 1.4 93/06/28"; #endif #endif /***********************************************************************/ /* gen_impl.h */ /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ /***********************************************************************/ #ifndef _gen_impl_h_already_included #define _gen_impl_h_already_included #include #define GEN_PUBLIC(obj) XV_PUBLIC(obj) #define GEN_PRIVATE(obj) XV_PRIVATE(Generic_info, Xv_generic_struct, obj) #define HEAD(obj) (GEN_PRIVATE(obj))->key_data typedef struct _generic_node { struct _generic_node *next; Attr_attribute key; Xv_opaque data; void (*copy_proc) (); void (*remove_proc) (); }Generic_node; typedef struct { Xv_object public_self; /* back pointer to object */ Xv_object owner; /* owner of object */ Generic_node *key_data; Xv_opaque instance_qlist; char *instance_name; } Generic_info; #endif _gen_impl_h_already_included xview-3.2p1.4/lib/libxview/base/shared/ 40755 1750 1750 0 6354605660 15116 5ustar mbmbxview-3.2p1.4/lib/libxview/canvas/ 40755 1750 1750 0 6354605713 14210 5ustar mbmbxview-3.2p1.4/lib/libxview/canvas/cnvs_resze.c100644 1750 1750 10143 5413747706 16655 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)cnvs_resze.c 20.19 91/05/09"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #include #include Pkg_private void canvas_resize_paint_window(); static void canvas_set_paint_window_size(); static void canvas_view_maxsize(); /* * resize the paint window to account for the new view window size. */ Pkg_private void canvas_resize_paint_window(canvas, width, height) Canvas_info *canvas; int width, height; { int view_width = 0, view_height = 0; /* paint window doesn't ever change size */ /* use the old value if none specified */ if (width == 0) { width = canvas->width; } if (height == 0) { height = canvas->height; } /* determine maximim view size of all viewers */ if (status(canvas, auto_expand) || status(canvas, auto_shrink)) { canvas_view_maxsize(canvas, &view_width, &view_height); } /* * if auto expand is on, always expand the canvas to at the edges of the * viewing pixwin or the minimum width/height. */ if (status(canvas, auto_expand)) { width = MAX(width, view_width); height = MAX(height, view_height); } /* * if auto shrink is on, always shrink the canvas to the edges of the * viewing pixwin or the minimum width/height. */ if (status(canvas, auto_shrink)) { width = MIN(width, view_width); height = MIN(height, view_height); } /* width and height must equal some minimum */ width = MAX(width, canvas->min_paint_width); height = MAX(height, canvas->min_paint_height); canvas_set_paint_window_size(canvas, width, height); } static void canvas_set_paint_window_size(canvas, width, height) Canvas_info *canvas; int width, height; { Canvas canvas_public = CANVAS_PUBLIC(canvas); Xv_Window paint_window; Rect paint_rect; Xv_Window view_window; Rect view_rect; unsigned int visable; Scrollbar sb; canvas->width = MAX(width, 1); canvas->height = MAX(height, 1); CANVAS_EACH_PAINT_WINDOW(canvas_public, paint_window) paint_rect = *(Rect *) xv_get(paint_window, WIN_RECT, 0); paint_rect.r_width = canvas->width; paint_rect.r_height = canvas->height; view_window = (Xv_Window) xv_get(paint_window, CANVAS_PAINT_VIEW_WINDOW, 0); view_rect = *(Rect *) xv_get(view_window, WIN_RECT, 0); /* * check to see if paint window needs to be moved to accomodate * new size */ if (paint_rect.r_width <= view_rect.r_width) paint_rect.r_left = 0; else { visable = paint_rect.r_width + paint_rect.r_left; if (visable < view_rect.r_width) paint_rect.r_left += view_rect.r_width - visable; } if (paint_rect.r_height <= view_rect.r_height) paint_rect.r_top = 0; else { visable = paint_rect.r_height + paint_rect.r_top; if (visable < view_rect.r_height) paint_rect.r_top += view_rect.r_height - visable; } /* update any scrollbars */ sb = (Scrollbar)xv_get(canvas_public, OPENWIN_VERTICAL_SCROLLBAR, view_window); if (sb) canvas_set_scrollbar_object_length(canvas, SCROLLBAR_VERTICAL, sb); sb = (Scrollbar)xv_get(canvas_public, OPENWIN_HORIZONTAL_SCROLLBAR, view_window); if (sb) canvas_set_scrollbar_object_length(canvas, SCROLLBAR_HORIZONTAL, sb); xv_set(paint_window, XV_RECT, &paint_rect, NULL); CANVAS_END_EACH } static void canvas_view_maxsize(canvas, view_width, view_height) Canvas_info *canvas; int *view_width, *view_height; { Xv_Window view; Rect view_rect; *view_width = *view_height = 0; OPENWIN_EACH_VIEW(CANVAS_PUBLIC(canvas), view) view_rect = *(Rect *) xv_get(view, WIN_RECT); *view_width = MAX(*view_width, view_rect.r_width); *view_height = MAX(*view_height, view_rect.r_height); OPENWIN_END_EACH } xview-3.2p1.4/lib/libxview/canvas/canvas.h100644 1750 1750 10657 5413747706 15766 0ustar mbmb/* @(#)canvas.h 20.38 93/06/28 SMI */ /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifndef xview_canvas_DEFINED #define xview_canvas_DEFINED /* *********************************************************************** * Include Files *********************************************************************** */ #include #include #include /* *********************************************************************** * Definitions and Macros *********************************************************************** */ /* * PUBLIC #defines */ #define CANVAS &xv_canvas_pkg #define CANVAS_VIEW &xv_canvas_view_pkg #define CANVAS_PAINT_WINDOW &xv_canvas_pw_pkg #define CANVAS_PIXWIN CANVAS_NTH_PAINT_WINDOW, 0 #define CANVAS_AUTO_CLEAR OPENWIN_AUTO_CLEAR /* * Some useful macros */ #define canvas_pixwin(canvas) \ ((Pixwin *)xv_get(canvas, CANVAS_NTH_PAINT_WINDOW, 0)) #define canvas_paint_window(canvas) \ ((Xv_Window)xv_get(canvas, CANVAS_NTH_PAINT_WINDOW, 0)) #define CANVAS_EACH_PAINT_WINDOW(canvas, pw) \ {int _pw_cnt = 0; \ while (((pw) = (Xv_Window) xv_get((canvas), CANVAS_NTH_PAINT_WINDOW, _pw_cnt++)) != NULL) { \ #define CANVAS_END_EACH }} /* * PRIVATE #defines */ #define CANVAS_ATTR(type, ordinal) ATTR(ATTR_PKG_CANVAS, type, ordinal) #define CANVAS_VIEW_ATTR(type, ordinal) ATTR(ATTR_PKG_CANVAS_VIEW,type, ordinal) #define CANVAS_PAINT_ATTR(type, ordinal) ATTR(ATTR_PKG_CANVAS_PAINT_WINDOW,type, ordinal) #define CANVAS_ATTR_LIST(ltype, type, ordinal) \ CANVAS_ATTR(ATTR_LIST_INLINE((ltype), (type)), (ordinal)) /* * For SunView 1 compatibility */ #define CANVAS_TYPE ATTR_PKG_CANVAS #define CANVAS_MARGIN CANVAS_VIEW_MARGIN /* *********************************************************************** * Typedefs, Enumerations, and Structs *********************************************************************** */ typedef Xv_opaque Canvas; typedef Xv_opaque Canvas_view; typedef Xv_opaque Canvas_paint_window; /* * Enumerations */ typedef enum { /* * Public attributes */ CANVAS_AUTO_EXPAND = CANVAS_ATTR(ATTR_BOOLEAN, 1), CANVAS_AUTO_SHRINK = CANVAS_ATTR(ATTR_BOOLEAN, 5), CANVAS_FIXED_IMAGE = CANVAS_ATTR(ATTR_BOOLEAN, 10), CANVAS_HEIGHT = CANVAS_ATTR(ATTR_Y, 15), CANVAS_MIN_PAINT_HEIGHT = CANVAS_ATTR(ATTR_Y, 20), CANVAS_MIN_PAINT_WIDTH = CANVAS_ATTR(ATTR_X, 25), CANVAS_NTH_PAINT_WINDOW = CANVAS_ATTR(ATTR_OPAQUE, 30), CANVAS_REPAINT_PROC = CANVAS_ATTR(ATTR_FUNCTION_PTR, 35), CANVAS_RESIZE_PROC = CANVAS_ATTR(ATTR_FUNCTION_PTR, 40), CANVAS_RETAINED = CANVAS_ATTR(ATTR_BOOLEAN, 45), CANVAS_VIEW_MARGIN = CANVAS_ATTR(ATTR_INT, 50), CANVAS_VIEWABLE_RECT = CANVAS_ATTR(ATTR_RECT_PTR, 55), CANVAS_WIDTH = CANVAS_ATTR(ATTR_X, 60), CANVAS_X_PAINT_WINDOW = CANVAS_ATTR(ATTR_BOOLEAN, 65), CANVAS_PAINTWINDOW_ATTRS = CANVAS_ATTR_LIST(ATTR_RECURSIVE, ATTR_AV, 70), CANVAS_NO_CLIPPING = CANVAS_ATTR(ATTR_BOOLEAN, 75), CANVAS_CMS_REPAINT = CANVAS_ATTR(ATTR_BOOLEAN, 80), #ifdef OW_I18N CANVAS_IM_PREEDIT_FRAME = CANVAS_ATTR(ATTR_OPAQUE, 85) #endif } Canvas_attribute; typedef enum { CANVAS_VIEW_PAINT_WINDOW = CANVAS_VIEW_ATTR(ATTR_OPAQUE, 1), CANVAS_VIEW_CANVAS_WINDOW = CANVAS_VIEW_ATTR(ATTR_OPAQUE, 2) } Canvas_view_attribute; typedef enum { CANVAS_PAINT_CANVAS_WINDOW = CANVAS_PAINT_ATTR(ATTR_OPAQUE, 1), CANVAS_PAINT_VIEW_WINDOW = CANVAS_PAINT_ATTR(ATTR_OPAQUE, 2) } Canvas_paint_attribute; /* * Structures */ typedef struct { Xv_openwin parent_data; Xv_opaque private_data; } Xv_canvas; typedef struct { Xv_window_struct parent_data; Xv_opaque private_data; } Xv_canvas_view; typedef struct { Xv_window_struct parent_data; Xv_opaque private_data; } Xv_canvas_pw; /* *********************************************************************** * Globals *********************************************************************** */ /* * Variables */ extern Xv_pkg xv_canvas_pkg; extern Xv_pkg xv_canvas_view_pkg; extern Xv_pkg xv_canvas_pw_pkg; /* * Functions */ EXTERN_FUNCTION (Event * canvas_event, (Canvas canvas_obj, Event *event)); EXTERN_FUNCTION (Event * canvas_window_event, (Canvas canvas_obj, Event *event)); #endif /* ~xview_canvas_DEFINED */ xview-3.2p1.4/lib/libxview/canvas/Imakefile100644 1750 1750 2130 5413747706 16116 0ustar mbmb#include #if SharedLibXView #define DoSharedLib YES #endif #include /**/########################################################################### /**/# @(#)Imakefile 1.5 24 Mar 1992 SMI #ifndef SubdirHasTextObjs #define SubdirHasTextObjs YES #endif #ifndef SubdirHasDataObjs #define SubdirHasDataObjs YES #endif #ifndef SubdirHasPublicHeaders #define SubdirHasPublicHeaders YES #endif #ifndef SubdirHasPrivateHeaders #define SubdirHasPrivateHeaders YES #endif HDRSPUBLIC= canvas.h HDRSPRIVATE= cnvs_impl.h CFILES.canvas.3 = CFILES.canvas.4 = cnvs_cb.c OFILES.canvas.3 = ${CFILES.canvas.3:%.c=%.o} OFILES.canvas.4 = ${CFILES.canvas.4:%.c=%.o} DATA_OBJS = cnvs_data.o TEXT_OBJS =\ canvas.o\ cnvs_set.o\ cnvs_get.o\ cnvs_scrol.o\ cnvs_resze.o\ cnvs_view.o\ cnvs_input.o\ ${OFILES.canvas.XvI18nLevel} SRCS =\ canvas.c\ cnvs_set.c\ cnvs_get.c\ cnvs_scrol.c\ cnvs_resze.c\ cnvs_view.c\ cnvs_input.c\ cnvs_data.c \ ${CFILES.canvas.XvI18nLevel} LIBTARGET = xview TARGETDIR = ../../lib${LIBTARGET}/ SOREV = $(SOXVIEWREV) #include xview-3.2p1.4/lib/libxview/canvas/cnvs_input.c100644 1750 1750 33707 5413747706 16677 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)cnvs_input.c 20.62 93/06/28"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #include #include #include #include #include #include #include #ifdef OW_I18N #include #endif /*OW_I18N*/ #define window_event_proc(win, event, arg) \ (((int (*)())(window_get(win, WIN_EVENT_PROC)))(win, event, arg)) Xv_private Xv_xrectlist *screen_get_clip_rects(); Xv_private int server_get_fullscreen(); extern Rectlist *win_get_damage(); static void canvas_clear_damage(); static void canvas_inform_resize(); /* * handle events posted to the view window. */ /* ARGSUSED */ Pkg_private Notify_value canvas_view_event(view_public, event, arg, type) Canvas_view view_public; Event *event; Notify_arg arg; Notify_event_type type; { Canvas_view_info *view = CANVAS_VIEW_PRIVATE(view_public); Canvas_info *canvas = view->private_canvas; Xv_Window paint_window = view->paint_window; Notify_value result; Rect paint_rect; result = notify_next_event_func(view_public, (Notify_event) event, arg, type); switch (event_id(event)) { case WIN_RESIZE: paint_rect = *(Rect *) xv_get(paint_window, WIN_RECT); canvas_resize_paint_window(canvas, paint_rect.r_width, paint_rect.r_height); break; case SCROLLBAR_REQUEST: canvas_scroll(paint_window, (Scrollbar) arg); break; default: break; } return (result); } /* * Handle events for the paint window. These events are passed on to the * canvas client CANVAS_EVENT_PROC. */ /* Save some memory space here, since these variables are never * used simulataneously. */ #define next_pw next_view #define nth_pw nth_view #define previous_pw previous_view #define pw_nbr view_nbr /* ARGSUSED */ Pkg_private Notify_value canvas_paint_event(window_public, event, arg, type) Xv_Window window_public; Event *event; Notify_arg arg; Notify_event_type type; { Canvas_info *canvas; Canvas canvas_public; char *help_data; Xv_Window next_view; Xv_Window nth_view; Xv_Window previous_view; Notify_value result; Scrollbar sb; Xv_Window view; int view_nbr; #ifdef OW_I18N XIC ic; XID xid; XPointer client_data; Xv_object paint_public; #endif /*OW_I18N*/ result = notify_next_event_func(window_public, (Notify_event) event, arg, type); #ifdef OW_I18N1 ic = (XIC) xv_get(window_public, WIN_IC); if (ic && (XGetICValues(ic, XNFocusWindow, &xid, NULL) == NULL) && xid ) { paint_public = (Canvas) win_data(XDisplayOfIM(XIMOfIC(ic)),xid); canvas = (Canvas_info *) xv_get(paint_public, XV_KEY_DATA, canvas_context_key); canvas_public = CANVAS_PUBLIC(canvas); } else { canvas = (Canvas_info *) xv_get(window_public, XV_KEY_DATA, canvas_context_key); /* ISSUE: client_data is not initialized */ canvas_public = (Canvas)client_data; } #else canvas = (Canvas_info *) xv_get(window_public, XV_KEY_DATA, canvas_context_key); canvas_public = CANVAS_PUBLIC(canvas); #endif /*OW_I18N*/ switch (event_action(event)) { case WIN_REPAINT: case WIN_GRAPHICS_EXPOSE: canvas_inform_repaint(canvas, window_public); break; case WIN_RESIZE: /* scrollbars have already been updated */ /* tell the client the paint window changed size */ canvas_inform_resize(canvas); break; case ACTION_HELP: case ACTION_MORE_HELP: case ACTION_TEXT_HELP: case ACTION_MORE_TEXT_HELP: case ACTION_INPUT_FOCUS_HELP: #ifdef OW_I18N1 if (event_is_down(event)) { if ((Attr_pkg) xv_get(window_public, WIN_TYPE) == CANVAS_TYPE) { help_data = (char *) xv_get(window_public, XV_HELP_DATA); if (help_data) xv_help_show(window_public,help_data, event); } } break; #else if (event_is_down(event)) { if ((Attr_pkg) xv_get(canvas_public, WIN_TYPE) == CANVAS_TYPE) { help_data = (char *) xv_get(canvas_public, XV_HELP_DATA); if (help_data) xv_help_show(window_public, help_data, event); } } break; #endif /* OW_I18N */ case ACTION_NEXT_PANE: if (event_is_down(event)) { for (pw_nbr = 0; nth_pw = xv_get(canvas_public, CANVAS_NTH_PAINT_WINDOW, pw_nbr); pw_nbr++) { if (nth_pw == window_public) break; } next_pw = xv_get(canvas_public, CANVAS_NTH_PAINT_WINDOW, pw_nbr + 1); if (next_pw) { /* Set focus to first element in next paint window */ xv_set(next_pw, WIN_SET_FOCUS, 0); xv_set(canvas_public, XV_FOCUS_ELEMENT, 0, 0); } else xv_set(xv_get(canvas_public, WIN_FRAME), FRAME_NEXT_PANE, 0); } break; case ACTION_PREVIOUS_PANE: if (event_is_down(event)) { for (pw_nbr = 0; nth_pw = xv_get(canvas_public, CANVAS_NTH_PAINT_WINDOW, pw_nbr); pw_nbr++) { if (nth_pw == window_public) break; previous_pw = nth_pw; } if (pw_nbr > 0) { /* Set focus to last element in previous paint window */ xv_set(previous_pw, WIN_SET_FOCUS, 0); xv_set(canvas_public, XV_FOCUS_ELEMENT, -1, 0); } else { xv_set(xv_get(canvas_public, WIN_FRAME), FRAME_PREVIOUS_PANE, 0); } } break; case ACTION_PREVIOUS_ELEMENT: /* Order of precedence: * previous paint window's horizontal scrollbar * previous paint window's vertical scrollbar * last element in previous frame subwindow */ if (event_is_down(event)) { view = CANVAS_VIEW_PUBLIC((Canvas_view_info *) xv_get(window_public, XV_KEY_DATA, canvas_view_context_key)); for (view_nbr = 0; nth_view = xv_get(canvas_public, OPENWIN_NTH_VIEW, view_nbr); view_nbr++) { if (nth_view == view) break; previous_view = nth_view; } if (view_nbr > 0) { sb = xv_get(canvas_public, OPENWIN_HORIZONTAL_SCROLLBAR, previous_view); if (!sb) sb = xv_get(canvas_public, OPENWIN_VERTICAL_SCROLLBAR, previous_view); xv_set(sb, WIN_SET_FOCUS, 0); } else { /* Go to last element in previous frame subwindow */ xv_set(xv_get(canvas_public, WIN_FRAME), FRAME_PREVIOUS_ELEMENT, 0); } } break; case ACTION_NEXT_ELEMENT: /* Order of precedence: * paint window's vertical scrollbar * paint window's horizontal scrollbar * next frame subwindow */ if (event_is_down(event)) { view = CANVAS_VIEW_PUBLIC((Canvas_view_info *) xv_get(window_public, XV_KEY_DATA, canvas_view_context_key)); sb = xv_get(canvas_public, OPENWIN_VERTICAL_SCROLLBAR, view); if (!sb) sb = xv_get(canvas_public, OPENWIN_HORIZONTAL_SCROLLBAR, view); if (sb) { xv_set(sb, WIN_SET_FOCUS, 0); break; } /* There is no scrollbar attached: go to next pane */ xv_set(xv_get(canvas_public, WIN_FRAME), FRAME_NEXT_PANE, 0); } break; case ACTION_VERTICAL_SCROLLBAR_MENU: case ACTION_HORIZONTAL_SCROLLBAR_MENU: view = CANVAS_VIEW_PUBLIC((Canvas_view_info *) xv_get(window_public, XV_KEY_DATA, canvas_view_context_key)); if (event_action(event) == ACTION_VERTICAL_SCROLLBAR_MENU) sb = xv_get(canvas_public, OPENWIN_VERTICAL_SCROLLBAR, view); else sb = xv_get(canvas_public, OPENWIN_HORIZONTAL_SCROLLBAR, view); if (sb) { Event sb_event; event_init(&sb_event); event_set_action(&sb_event, ACTION_MENU); event_set_window(&sb_event, sb); sb_event.ie_flags = event->ie_flags; /* set up/down flag */ win_post_event(sb, &sb_event, NOTIFY_SAFE); } break; case ACTION_JUMP_MOUSE_TO_INPUT_FOCUS: view = CANVAS_VIEW_PUBLIC((Canvas_view_info *) xv_get(window_public, XV_KEY_DATA, canvas_view_context_key)); xv_set(view, WIN_MOUSE_XY, 0, 0, 0); /* BUG ALERT: Clicking MENU at this point does not send ACTION_MENU * to the canvas paint window. Instead, an Window Manager * Window menu is brought up. */ break; #ifdef OW_I18N case KBD_USE: { XID xwin; if (canvas->ic) { if (canvas->focus_pwin != window_public) { /* * Set XNFocusWindow and cache the value. */ window_set_ic_focus_win(window_public, canvas->ic, xv_get(window_public, XV_XID)); canvas->focus_pwin = window_public; } /* * Update the preedit display. */ panel_preedit_display( ((Xv_panel_or_item *) canvas->pew->ptxt)->private_data, canvas->pe_cache, TRUE); } (void) frame_kbd_use(xv_get(canvas_public, WIN_FRAME), canvas_public, canvas_public); break; } case KBD_DONE: { Xv_panel_or_item *pi; if (canvas->ic) { pi = (Xv_panel_or_item *) canvas->pew->ptxt; canvas->pe_cache = panel_get_preedit(pi->private_data); } (void) frame_kbd_done(xv_get(canvas_public, WIN_FRAME), canvas_public); break; } #else case KBD_USE: (void) frame_kbd_use(xv_get(canvas_public, WIN_FRAME), canvas_public, canvas_public); break; case KBD_DONE: (void) frame_kbd_done(xv_get(canvas_public, WIN_FRAME), canvas_public); break; #endif /*OW_I18N*/ default: break; } return (result); } static void canvas_inform_resize(canvas) register Canvas_info *canvas; { Canvas canvas_public = CANVAS_PUBLIC(canvas); if (!canvas->resize_proc) { return; } (*canvas->resize_proc) (canvas_public, canvas->width, canvas->height); } /* * tell the client to repaint the paint window. */ Pkg_private canvas_inform_repaint(canvas, paint_window) Canvas_info *canvas; Xv_Window paint_window; { Rectlist *win_damage, damage; if (!(win_damage = win_get_damage(paint_window))) { win_damage = &rl_null; } damage = rl_null; rl_copy(win_damage, &damage); if (xv_get(CANVAS_PUBLIC(canvas), OPENWIN_AUTO_CLEAR)) { canvas_clear_damage(paint_window, &damage); } if (canvas->repaint_proc) { if (status(canvas, x_canvas)) { Xv_xrectlist xrects; /* * If there is no damage on the paint window, pass NULL * xrectangle array and a count of zero to let the application * know that there is no clipping. */ if (win_damage == &rl_null) { (*canvas->repaint_proc) (CANVAS_PUBLIC(canvas), paint_window, XV_DISPLAY_FROM_WINDOW(paint_window), xv_get(paint_window, XV_XID), NULL); } else { xrects.count = win_convert_to_x_rectlist(&damage, xrects.rect_array, XV_MAX_XRECTS); (*canvas->repaint_proc) (CANVAS_PUBLIC(canvas), paint_window, XV_DISPLAY_FROM_WINDOW(paint_window), xv_get(paint_window, XV_XID), &xrects); } } else { (*canvas->repaint_proc) (CANVAS_PUBLIC(canvas), paint_window, &damage); } } rl_free(&damage); } /* * translate a canvas paint window-space event to a canvas subwindow-space * event. */ Xv_private Event * canvas_window_event(canvas_public, event) Canvas canvas_public; register Event *event; { Xv_Window paint_window; Event tmp_event; int x, y; paint_window = xv_get(canvas_public, CANVAS_NTH_PAINT_WINDOW, 0); if (paint_window == NULL) { /* call xv_error */ return (event); } tmp_event = *event; win_translate_xy(paint_window, canvas_public, event_x(event), event_y(event), &x, &y); event_set_x(&tmp_event, x); event_set_y(&tmp_event, y); return (&tmp_event); } /* * translate a window-space event to a canvas-space event. */ Xv_private Event * canvas_event(canvas_public, event) Canvas canvas_public; register Event *event; { Xv_Window paint_window; Event tmp_event; int x, y; paint_window = xv_get(canvas_public, CANVAS_NTH_PAINT_WINDOW, 0); if (paint_window == NULL) { /* call xv_error */ return (event); } tmp_event = *event; win_translate_xy(paint_window, canvas_public, event_x(event), event_y(event), &x, &y); event_set_x(&tmp_event, x); event_set_y(&tmp_event, y); return (&tmp_event); } /* Clear the damaged area */ static void canvas_clear_damage(window, rl) Xv_Window window; Rectlist *rl; { register Xv_Drawable_info *info; Xv_xrectlist *clip_xrects; Display *display; XGCValues gc_values; unsigned long gc_value_mask; Xv_Screen screen; GC *gc_list; if (!rl) return; DRAWABLE_INFO_MACRO(window, info); clip_xrects = screen_get_clip_rects(xv_screen(info)); gc_value_mask = GCForeground | GCBackground | GCFunction | GCPlaneMask | GCSubwindowMode | GCFillStyle; gc_values.background = xv_bg(info); gc_values.function = GXcopy; gc_values.plane_mask = xv_plane_mask(info); if (gc_values.stipple = xv_get(window, WIN_BACKGROUND_PIXMAP)) { gc_value_mask |= GCStipple; gc_values.foreground = xv_fg(info); gc_values.fill_style = FillOpaqueStippled; } else { gc_values.foreground = xv_bg(info); gc_values.fill_style = FillSolid; } if (server_get_fullscreen(xv_server(info))) gc_values.subwindow_mode = IncludeInferiors; else gc_values.subwindow_mode = ClipByChildren; display = xv_display(info); screen = xv_screen(info); gc_list = (GC *)xv_get(screen, SCREEN_OLGC_LIST, window); XChangeGC(display, gc_list[SCREEN_NONSTD_GC], gc_value_mask, &gc_values); XSetClipRectangles(display, gc_list[SCREEN_NONSTD_GC], 0, 0, clip_xrects->rect_array, clip_xrects->count, Unsorted); XFillRectangle(display, xv_xid(info), gc_list[SCREEN_NONSTD_GC], rl->rl_bound.r_left, rl->rl_bound.r_top, rl->rl_bound.r_width, rl->rl_bound.r_height); XSetClipMask(display, gc_list[SCREEN_NONSTD_GC], None); } xview-3.2p1.4/lib/libxview/canvas/cnvs_impl.h100644 1750 1750 11743 5413747707 16503 0ustar mbmb/* @(#)cnvs_impl.h 20.43 93/06/28 SMI */ /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #include #include #include #include #ifdef OW_I18N #include #include #include #endif /*OW_I18N*/ #define CANVAS_PRIVATE(c) XV_PRIVATE(Canvas_info, Xv_canvas, c) #define CANVAS_PUBLIC(canvas) XV_PUBLIC(canvas) #define CANVAS_VIEW_PRIVATE(c) XV_PRIVATE(Canvas_view_info, Xv_canvas_view, c) #define CANVAS_VIEW_PUBLIC(canvas_view) XV_PUBLIC(canvas_view) #define BIT_FIELD(field) unsigned field : 1 typedef void (*Function)(); #ifdef OW_I18N /* * pew (PreEdit Window) data structure, this will be hanging off on * the parent frame using XV_KEY_DATA. */ typedef struct { Frame frame; Panel panel; Panel_item ptxt; int reference_count; int active_count; } Canvas_pew; #endif /* OW_I18N */ typedef struct { Canvas public_self; /* back pointer to public self */ int margin; /* view pixwin margin */ int width, height; int min_paint_width; int min_paint_height; Function repaint_proc; Function resize_proc; Attr_avlist paint_avlist; /* cached pw avlist on create */ Attr_avlist paint_end_avlist; struct { BIT_FIELD(auto_expand); /* auto expand canvas with window */ BIT_FIELD(auto_shrink); /* auto shrink canvas with window */ BIT_FIELD(fixed_image); /* canvas is a fixed size image */ BIT_FIELD(retained); /* canvas is a retained window */ BIT_FIELD(created); /* first paint window is created */ BIT_FIELD(x_canvas); /* treat canvas as an X drawing surface */ BIT_FIELD(no_clipping); /* ignore clip rects on repaint */ BIT_FIELD(cms_repaint); /* generate repaint on cms changes */ #ifdef OW_I18N BIT_FIELD(preedit_exist); /* keep track of preedit status */ #endif } status_bits; #ifdef OW_I18N /* * pe_cache is used to cache the current preedit string for each canvas. * Since all canvasses in a frame share the preedit window, but * we show the string for the canvas that has the focus, we need to * cache for each canvas. */ XIC ic; /* cache the ic */ XIMPreeditDrawCallbackStruct *pe_cache; /* cache current preedit string */ Canvas_pew *pew; /* handle to preedit window (Frame) */ Canvas_paint_window focus_pwin; /* Last paint win which had a focus */ #ifdef FULL_R5 XIMStyle xim_style; #endif /*FULL_R5*/ #endif /*OW_I18N*/ } Canvas_info; typedef struct { Canvas_view public_self; /* back pointer to public self */ Canvas_info *private_canvas; Xv_Window paint_window; } Canvas_view_info; #define status(canvas, field) ((canvas)->status_bits.field) #define status_set(canvas, field) status(canvas, field) = TRUE #define status_reset(canvas, field) status(canvas, field) = FALSE Pkg_private Attr_attribute canvas_context_key; Pkg_private Attr_attribute canvas_view_context_key; #ifdef OW_I18N /* * The following variables are declared as Attr_attribute, because * they are used in as keys XV_KEY_DATA for the frame. */ /* * preedit window (frame_cmd) hanging off from parent frame. */ Pkg_private Attr_attribute canvas_pew_key; #endif /*OW_I18N*/ /* from canvas_input.c */ Pkg_private Notify_value canvas_view_event(); Pkg_private Notify_value canvas_paint_event(); /* from canvas_set.c */ Pkg_private Xv_opaque canvas_set_avlist(); /* from canvas_get.c */ Pkg_private Xv_opaque canvas_get_attr(); /* from canvas_resze.c */ Pkg_private void canvas_resize_paint_window(); /* from canvas_scroll.c */ Pkg_private void canvas_scroll(); Pkg_private void canvas_set_scrollbar_object_length(); /* from canvas.c */ Pkg_private int canvas_init(); Pkg_private int canvas_destroy(); /*from canvas_view.c */ Pkg_private int canvas_view_init(); Pkg_private Xv_opaque canvas_view_get(); Pkg_private Xv_opaque canvas_paint_get(); Pkg_private Xv_opaque canvas_paint_set(); Pkg_private int canvas_view_destroy(); #ifdef OW_I18N /* * Warning: Accessing panel callbacks from behind. */ Xv_private void panel_preedit_display(); Xv_private XIMPreeditDrawCallbackStruct *panel_get_preedit(); Xv_private void panel_set_preeedit(); Xv_private panel_text_start(); Xv_private panel_text_done(); /* * XIM Preedit callback routines. */ Pkg_private void canvas_preedit_start(); Pkg_private void canvas_preedit_draw(); Pkg_private void canvas_preedit_done(); /* * Support routines for the pew (PreEdit display Window). */ EXTERN_FUNCTION (Pkg_private Canvas_pew *canvas_create_pew, (Frame frame)); EXTERN_FUNCTION (Pkg_private Notify_value canvas_pew_destory, (Notify_client client, Destroy_status status)); EXTERN_FUNCTION (Pkg_private Notify_value canvas_pew_event_proc, (Window parent_win, Event *event, Notify_arg arg, Notify_event_type type)); #endif /* OW_I18N */ xview-3.2p1.4/lib/libxview/canvas/canvas.c100644 1750 1750 7637 5413747707 15746 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)canvas.c 20.44 93/06/28"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #include #include #include #ifdef OW_I18N #include #include #include #include Xv_private_data Attr_attribute canvas_pew_key; #endif /*OW_I18N*/ Xv_private_data Attr_attribute canvas_context_key; Xv_private_data Attr_attribute canvas_view_context_key; /* ARGSUSED */ Pkg_private int canvas_init(parent, canvas_public, avlist) Xv_Window parent; Canvas canvas_public; Attr_attribute avlist[]; { Xv_canvas *canvas_object = (Xv_canvas *) canvas_public; Canvas_info *canvas; #ifdef OW_I18N Frame frame_public; Xv_pkg *frame_type; #endif /*OW_I18N*/ if (canvas_context_key == (Attr_attribute) 0) { canvas_context_key = xv_unique_key(); #ifdef OW_I18N canvas_pew_key = xv_unique_key(); #endif /*OW_I18N*/ } canvas = xv_alloc(Canvas_info); /* link to object */ canvas_object->private_data = (Xv_opaque) canvas; canvas->public_self = canvas_public; status_set(canvas, fixed_image); status_set(canvas, auto_expand); status_set(canvas, auto_shrink); status_set(canvas, retained); /* * 1. Make all the paint windows inherit the WIN_DYNAMIC_VISUAL attribute. * 2. The Canvas is, by default, a First-Class (primary) focus client. */ xv_set(canvas_public, WIN_INHERIT_COLORS, TRUE, XV_FOCUS_RANK, XV_FOCUS_PRIMARY, #ifdef OW_I18N WIN_IM_PREEDIT_START, canvas_preedit_start, canvas_public, WIN_IM_PREEDIT_DRAW, canvas_preedit_draw, canvas_public, WIN_IM_PREEDIT_DONE, canvas_preedit_done, canvas_public, #endif 0); return XV_OK; } Pkg_private int canvas_destroy(canvas_public, stat) Canvas canvas_public; Destroy_status stat; { Canvas_info *canvas = CANVAS_PRIVATE(canvas_public); if (stat == DESTROY_CLEANUP) { #ifdef OW_I18N /* * All the canvases under one frame share the preedit window. * Only when all the canvases have been destroyed, can we * destroy the preedit window. So, we need to keep count of * the canvases. */ Canvas_pew *pew; Frame frame_public; if (canvas->ic) { /* * Get the pew from frame to make sure, pew is still exist * or not (when entire frame get destroy, pew may get * destory first) instead of accessing the private data. */ frame_public = (Frame) xv_get(canvas_public, WIN_FRAME); pew = (Canvas_pew *) xv_get(frame_public, XV_KEY_DATA, canvas_pew_key); if (pew != NULL) { /* * If the preedit window is still up and not pinned, * make sure it is unmapped. */ if (status(canvas, preedit_exist) && (--pew->active_count) <= 0) { if (xv_get(pew->frame, FRAME_CMD_PIN_STATE) == FRAME_CMD_PIN_OUT) { xv_set(pew->frame, XV_SHOW, FALSE, NULL); } } /* * If this is last canvas uses pew, and pew is not * destoryed yet, let's destory it. */ if ((--pew->reference_count) <= 0) { xv_destroy(pew->frame); /* * freeing pew itself and setting null to the pew * will be done in the destroy interpose routine. */ } } /* * Free the all preedit text cache information. */ if (canvas->pe_cache) { if (canvas->pe_cache->text->feedback) { xv_free(canvas->pe_cache->text->feedback); } if (canvas->pe_cache->text->string.wide_char) { xv_free(canvas->pe_cache->text->string.wide_char); } xv_free(canvas->pe_cache); } } #endif /*OW_I18N*/ xv_free((char *) canvas); } return XV_OK; } xview-3.2p1.4/lib/libxview/canvas/cnvs_set.c100644 1750 1750 17416 5413747707 16333 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)cnvs_set.c 20.48 93/06/28"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #include #include #include #include extern void window_set_bit_gravity(); static void canvas_set_bit_gravity(); static void canvas_append_paint_attrs(); Pkg_private Xv_opaque canvas_set_avlist(canvas_public, avlist) Canvas canvas_public; Attr_avlist avlist; { Canvas_info *canvas = CANVAS_PRIVATE(canvas_public); Attr_attribute attr; int width = 0; int height = 0; int vsb_set = 0, hsb_set = 0; Scrollbar vsb = NULL, hsb = NULL; short new_paint_size = FALSE; short recheck_paint_size = FALSE; int ok = TRUE; Xv_Window paint_window; Rect pw_rect; for (attr = avlist[0]; attr; avlist = attr_next(avlist), attr = avlist[0]) { switch (attr) { case CANVAS_WIDTH: if (canvas->width != (int) avlist[1]) { width = (int) avlist[1]; new_paint_size = TRUE; } break; case CANVAS_HEIGHT: if (canvas->height != (int) avlist[1]) { height = (int) avlist[1]; new_paint_size = TRUE; } break; case CANVAS_MIN_PAINT_WIDTH: if (canvas->min_paint_width != (int) avlist[1]) { canvas->min_paint_width = (int) avlist[1]; new_paint_size = TRUE; } break; case CANVAS_MIN_PAINT_HEIGHT: if (canvas->min_paint_height != (int) avlist[1]) { canvas->min_paint_height = (int) avlist[1]; new_paint_size = TRUE; } break; case CANVAS_VIEW_MARGIN: /* This is a hold over from SunView, it is just a no-op for * the time being */ break; case CANVAS_X_PAINT_WINDOW: if ((int) avlist[1] == status(canvas, x_canvas)) { break; } if (avlist[1]) { status_set(canvas, x_canvas); } else { status_reset(canvas, x_canvas); } CANVAS_EACH_PAINT_WINDOW(canvas_public, paint_window) xv_set(paint_window, WIN_X_PAINT_WINDOW, avlist[1], 0); CANVAS_END_EACH break; case CANVAS_NO_CLIPPING: if ((int) avlist[1] == status(canvas, no_clipping)) { break; } if (avlist[1]) { status_set(canvas, no_clipping); } else { status_reset(canvas, no_clipping); } CANVAS_EACH_PAINT_WINDOW(canvas_public, paint_window) xv_set(paint_window, WIN_NO_CLIPPING, avlist[1], 0); CANVAS_END_EACH break; case CANVAS_REPAINT_PROC: canvas->repaint_proc = (Function) avlist[1]; break; case CANVAS_RESIZE_PROC: canvas->resize_proc = (Function) avlist[1]; break; case CANVAS_AUTO_EXPAND: if ((int) avlist[1] == status(canvas, auto_expand)) break; if (avlist[1]) status_set(canvas, auto_expand); else status_reset(canvas, auto_expand); recheck_paint_size = TRUE; break; case CANVAS_AUTO_SHRINK: if ((int) avlist[1] == status(canvas, auto_shrink)) break; if (avlist[1]) status_set(canvas, auto_shrink); else status_reset(canvas, auto_shrink); recheck_paint_size = TRUE; break; case CANVAS_RETAINED: if ((int) avlist[1] == status(canvas, retained)) { break; } if (avlist[1]) { status_set(canvas, retained); } else { status_reset(canvas, retained); } CANVAS_EACH_PAINT_WINDOW(canvas_public, paint_window) xv_set(paint_window, WIN_RETAINED, avlist[1], 0); CANVAS_END_EACH break; case CANVAS_CMS_REPAINT: if (avlist[1]) { status_set(canvas, cms_repaint); } else { status_reset(canvas, cms_repaint); } break; case CANVAS_FIXED_IMAGE: /* don't do anything if no change */ if (status(canvas, fixed_image) != (int) avlist[1]) { if ((int) avlist[1]) { status_set(canvas, fixed_image); } else { status_reset(canvas, fixed_image); } canvas_set_bit_gravity(canvas); } break; case WIN_VERTICAL_SCROLLBAR: case OPENWIN_VERTICAL_SCROLLBAR: vsb = (Scrollbar) avlist[1]; vsb_set = TRUE; break; case WIN_HORIZONTAL_SCROLLBAR: case OPENWIN_HORIZONTAL_SCROLLBAR: hsb = (Scrollbar) avlist[1]; hsb_set = TRUE; break; case WIN_SET_FOCUS: ATTR_CONSUME(avlist[0]); ok = FALSE; CANVAS_EACH_PAINT_WINDOW(canvas_public, paint_window) Xv_Drawable_info *pw_info; DRAWABLE_INFO_MACRO(paint_window, pw_info); if (!xv_no_focus(pw_info) && win_getinputcodebit((Inputmask *) xv_get(paint_window, WIN_INPUT_MASK), KBD_USE)) { (void)win_set_kbd_focus(paint_window, xv_xid(pw_info)); ok = TRUE; break; } CANVAS_END_EACH break; case CANVAS_PAINTWINDOW_ATTRS: if (status(canvas, created)) { CANVAS_EACH_PAINT_WINDOW(canvas_public, paint_window) xv_set_avlist(paint_window, &(avlist[1])); CANVAS_END_EACH } else { canvas_append_paint_attrs(canvas, &(avlist[1])); } break; case WIN_CMS_CHANGE: if (status(canvas, created)) { Xv_Drawable_info *info; Xv_Window view_public; Canvas_view_info *view; Cms cms; int cms_fg, cms_bg; DRAWABLE_INFO_MACRO(canvas_public, info); cms = xv_cms(info); cms_fg = xv_cms_fg(info); cms_bg = xv_cms_bg(info); OPENWIN_EACH_VIEW(canvas_public, view_public) view = CANVAS_VIEW_PRIVATE(view_public); (void)window_set_cms(view_public, cms, cms_bg, cms_fg); window_set_cms(view->paint_window, cms, cms_bg, cms_fg); OPENWIN_END_EACH } break; #ifdef OW_I18N case WIN_IC: canvas->ic = (XIC) avlist[1]; break; #endif /*OW_I18N*/ case XV_END_CREATE: /* adjust paint window here rather then view end */ /* create because canvas_resize_paint_window */ /* assumes view window is known to canvas */ paint_window = (Xv_Window) xv_get(canvas_public, CANVAS_NTH_PAINT_WINDOW, 0); pw_rect = *(Rect *) xv_get(paint_window, WIN_RECT); canvas_resize_paint_window(canvas, pw_rect.r_width, pw_rect.r_height); if (status(canvas, no_clipping)) { CANVAS_EACH_PAINT_WINDOW(canvas_public, paint_window) xv_set(paint_window, WIN_NO_CLIPPING, TRUE, 0); CANVAS_END_EACH } break; default: xv_check_bad_attr(&xv_canvas_pkg, attr); break; } } if (!status(canvas, created)) { /* copy width and height if set */ if (width != 0) { canvas->width = width; } if (height != 0) { canvas->height = height; } } else { if (new_paint_size) { canvas_resize_paint_window(canvas, width, height); } else if (recheck_paint_size) { canvas_resize_paint_window(canvas, canvas->width, canvas->height); } } if (vsb_set) { canvas_set_scrollbar_object_length(canvas, SCROLLBAR_VERTICAL, vsb); } if (hsb_set) { canvas_set_scrollbar_object_length(canvas, SCROLLBAR_HORIZONTAL, hsb); } return (Xv_opaque) (ok ? XV_OK : XV_ERROR); } static void canvas_set_bit_gravity(canvas) Canvas_info *canvas; { Xv_Window paint_window; int bit_value; if (status(canvas, fixed_image)) { bit_value = NorthWestGravity; } else { bit_value = ForgetGravity; } CANVAS_EACH_PAINT_WINDOW(CANVAS_PUBLIC(canvas), paint_window) window_set_bit_gravity(paint_window, bit_value); CANVAS_END_EACH } static void canvas_append_paint_attrs(canvas, argv) Canvas_info *canvas; Attr_avlist argv; { if (canvas->paint_avlist == NULL) { canvas->paint_avlist = (Attr_avlist) xv_alloc_n(Canvas_attribute, ATTR_STANDARD_SIZE); canvas->paint_end_avlist = canvas->paint_avlist; } canvas->paint_end_avlist = (Attr_avlist) attr_copy_avlist(canvas->paint_end_avlist, argv); } xview-3.2p1.4/lib/libxview/canvas/cnvs_data.c100644 1750 1750 1741 5413747707 16423 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)cnvs_data.c 1.17 90/06/21o"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #include Xv_pkg xv_canvas_pkg = { "Canvas", (Attr_pkg) ATTR_PKG_CANVAS, sizeof(Xv_canvas), &xv_openwin_pkg, canvas_init, canvas_set_avlist, canvas_get_attr, canvas_destroy, NULL }; Xv_pkg xv_canvas_view_pkg = { "Canvas view", (Attr_pkg) ATTR_PKG_CANVAS_VIEW, sizeof(Xv_canvas_view), &xv_window_pkg, canvas_view_init, NULL, canvas_view_get, canvas_view_destroy, NULL }; Xv_pkg xv_canvas_pw_pkg = { "Canvas paint window", (Attr_pkg) ATTR_PKG_CANVAS_PAINT_WINDOW, sizeof(Xv_canvas_pw), &xv_window_pkg, NULL, canvas_paint_set, canvas_paint_get, NULL, NULL }; xview-3.2p1.4/lib/libxview/canvas/cnvs_scrol.c100644 1750 1750 4735 5413747710 16634 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)cnvs_scrol.c 20.23 93/06/28"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #include #include Pkg_private void canvas_set_scrollbar_object_length(canvas, direction, sb) register Canvas_info *canvas; Scrollbar_setting direction; Scrollbar sb; { int is_vertical = direction == SCROLLBAR_VERTICAL; int pixels_per; long unsigned current_length, new_length; if (sb) { pixels_per = (int) xv_get(sb, SCROLLBAR_PIXELS_PER_UNIT); if (pixels_per == 0) { pixels_per = 1; } new_length = ((is_vertical) ? canvas->height : canvas->width) / pixels_per; current_length = (long unsigned) xv_get(sb, SCROLLBAR_OBJECT_LENGTH); if (new_length != current_length) { /* let the scrollbar know how big the scrolling area is */ (void) xv_set(sb, SCROLLBAR_OBJECT_LENGTH, new_length, 0); } } } Pkg_private void canvas_update_scrollbars(canvas) Canvas_info *canvas; { Canvas canvas_public = CANVAS_PUBLIC(canvas); Xv_Window view; Scrollbar sb; OPENWIN_EACH_VIEW(canvas_public, view) sb = (Scrollbar) xv_get(canvas_public, OPENWIN_VERTICAL_SCROLLBAR, view); if (sb) { canvas_set_scrollbar_object_length(canvas, SCROLLBAR_VERTICAL, sb); canvas_scroll(xv_get(view, CANVAS_VIEW_PAINT_WINDOW, 0), sb); } sb = (Scrollbar) xv_get(canvas_public, OPENWIN_HORIZONTAL_SCROLLBAR, view); if (sb) { canvas_set_scrollbar_object_length(canvas, SCROLLBAR_HORIZONTAL, sb); canvas_scroll(xv_get(view, CANVAS_VIEW_PAINT_WINDOW, 0), sb); } OPENWIN_END_EACH } /* * scroll the canvas according to LAST_VIEW_START and VIEW_START. */ Pkg_private void canvas_scroll(paint_window, sb) Xv_Window paint_window; Scrollbar sb; { int offset = (int) xv_get(sb, SCROLLBAR_VIEW_START); int old_offset = (int) xv_get(sb, SCROLLBAR_LAST_VIEW_START); int is_vertical; int pixels_per; if (offset == old_offset) return; is_vertical = (Scrollbar_setting) xv_get(sb, SCROLLBAR_DIRECTION) == SCROLLBAR_VERTICAL; pixels_per = (int) xv_get(sb, SCROLLBAR_PIXELS_PER_UNIT); xv_set(paint_window, is_vertical ? XV_Y : XV_X, -(offset * pixels_per), 0); } xview-3.2p1.4/lib/libxview/canvas/cnvs_view.c100644 1750 1750 34263 5413747710 16503 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)cnvs_view.c 20.56 93/06/28"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #include #include #include #include #include #ifdef OW_I18N #include #include Pkg_private Notify_value canvas_pew_event_proc(); extern wchar_t _xv_null_string_wc[]; #endif /*OW_I18N*/ static canvas_view_create_paint_window(); /* ARGSUSED */ Pkg_private int canvas_view_init(parent, view_public, avlist) Canvas parent; Canvas_view view_public; Attr_attribute avlist[]; { Xv_canvas_view *view_object = (Xv_canvas_view *) view_public; Canvas_view_info *view; int ret; view = xv_alloc(Canvas_view_info); /* link to object */ view_object->private_data = (Xv_opaque) view; view->public_self = view_public; view->private_canvas = CANVAS_PRIVATE(parent); #ifdef OW_I18N if ((ret = canvas_view_create_paint_window(view, avlist)) != XV_OK) { #else if ((ret = canvas_view_create_paint_window(view)) != XV_OK) { #endif /*OW_I18N*/ xv_free(view); return (ret); } xv_set(view_public, WIN_NOTIFY_SAFE_EVENT_PROC, canvas_view_event, WIN_NOTIFY_IMMEDIATE_EVENT_PROC, canvas_view_event, WIN_CONSUME_PICK_EVENTS, WIN_RESIZE, 0, 0); return XV_OK; } /*ARGSUSED*/ /*VARARGS*/ Pkg_private Xv_opaque canvas_view_get(view_public, stat, attr, valist) Canvas_view view_public; int *stat; Attr_attribute attr; va_list valist; { Canvas_view_info *view = CANVAS_VIEW_PRIVATE(view_public); *stat = XV_OK; switch (attr) { case CANVAS_VIEW_PAINT_WINDOW: return ((Xv_opaque) view->paint_window); case CANVAS_VIEW_CANVAS_WINDOW: return ((Xv_opaque) CANVAS_PUBLIC(view->private_canvas)); #ifdef OW_I18N case WIN_IC: ATTR_CONSUME(attr); return (Xv_opaque) view->private_canvas->ic; #endif /*OW_I18N*/ default: xv_check_bad_attr(&xv_canvas_view_pkg, attr); *stat = XV_ERROR; return (Xv_opaque) 0; } } /*ARGSUSED*/ /*VARARGS*/ Pkg_private Xv_opaque canvas_paint_get(paint_public, stat, attr, valist) Canvas_paint_window paint_public; int *stat; Attr_attribute attr; va_list valist; { Canvas_view_info *view; Canvas_info *canvas; switch (attr) { case CANVAS_PAINT_CANVAS_WINDOW: canvas = (Canvas_info *) xv_get(paint_public, XV_KEY_DATA, canvas_context_key); return (Xv_opaque) CANVAS_PUBLIC(canvas); case CANVAS_PAINT_VIEW_WINDOW: view = (Canvas_view_info *) xv_get(paint_public, XV_KEY_DATA, canvas_view_context_key); return (Xv_opaque) CANVAS_VIEW_PUBLIC(view); #ifdef OW_I18N case WIN_IC: ATTR_CONSUME(attr); canvas = (Canvas_info *) xv_get(paint_public, XV_KEY_DATA, canvas_context_key); return (Xv_opaque) canvas->ic; #endif /*OW_I18N*/ default: xv_check_bad_attr(&xv_canvas_pw_pkg, attr); *stat = XV_ERROR; return (Xv_opaque) 0; } } /*ARGSUSED*/ /*VARARGS*/ Pkg_private Xv_opaque canvas_paint_set(paint_public, avlist) Canvas_paint_window paint_public; Attr_avlist avlist; { Attr_attribute attr; Xv_opaque result = XV_OK; #ifdef OW_I18N Canvas_info *canvas = (Canvas_info *) xv_get(paint_public, XV_KEY_DATA, canvas_context_key); #else Canvas_info *canvas; #endif /*OW_I18N*/ for (attr = avlist[0]; attr; avlist = attr_next(avlist), attr = avlist[0]) { switch (attr) { case WIN_CMS_CHANGE: #ifndef OW_I18N canvas = (Canvas_info *) xv_get(paint_public, XV_KEY_DATA, canvas_context_key); #endif /*OW_I18N*/ if (status(canvas, cms_repaint)) { Rect rect; Rectlist rl; rect.r_left = 0; rect.r_top = 0; rect.r_width = (short)xv_get(paint_public, WIN_WIDTH); rect.r_height = (short)xv_get(paint_public, WIN_HEIGHT); rl = rl_null; rl_rectunion(&rect, &rl, &rl); win_set_damage(paint_public, &rl); canvas_inform_repaint(canvas, paint_public); win_clear_damage(paint_public); } break; #ifdef OW_I18N case WIN_IC: canvas->ic = (XIC) avlist[1]; break; case XV_END_CREATE: { Frame frame_public; Xv_pkg *object_type; Xv_pkg *frame_type; Canvas canvas_public; Xv_object serverobj; if (!xv_get(paint_public, WIN_USE_IM)) break; if (canvas->ic) break; canvas_public = CANVAS_PUBLIC(canvas); object_type = (Xv_pkg *) xv_get(canvas_public, XV_TYPE); if (object_type->attr_id == (Attr_pkg) ATTR_PKG_PANEL) break; /* * Do we really have an IM ? */ serverobj = XV_SERVER_FROM_WINDOW(canvas_public); if ((XIM) xv_get(serverobj, XV_IM) == NULL) break; frame_public = (Frame) xv_get(canvas_public, WIN_FRAME); frame_type = (Xv_pkg *) xv_get(frame_public, XV_TYPE); #ifdef notdef /* * Here is code to create the pew only on the base * frame. This is currently #ifdef out to allow popup * frame to have a own pew. */ if (!strcmp(frame_type->name, "Frame_cmd")) { frame_public = (Frame)xv_get(frame_public, XV_OWNER); frame_type = (Xv_pkg *)xv_get(frame_public, XV_TYPE); } if (strcmp(frame_type->name, "Frame_base")) break; #endif canvas->pew = (Canvas_pew *) xv_get(frame_public, XV_KEY_DATA, canvas_pew_key); if (canvas->pew == NULL) { /* * This is the first time creating canvas with IM * on this paricular frame. */ canvas->pew = canvas_create_pew(frame_public); /* * Get the pe_cache from panel which panel * created. We do not have to duplicates. */ canvas->pe_cache = panel_get_preedit( ((Xv_panel_or_item *) canvas->pew->ptxt)->private_data); /* * If the frame is popup frame (FRAME_CMD), we * need to catch the WIN_CLOSE and WIN_OPEN event * to sync up with base frame operation (ie, if * this popup frame closes, pew should be close as * well). However this does not happen * automatically, since pew will be child of the * base frame. */ if (strcmp(frame_type->name, "Frame_cmd") == 0) { notify_interpose_event_func(frame_public, canvas_pew_event_proc, NOTIFY_SAFE); } } else { canvas->pe_cache = (XIMPreeditDrawCallbackStruct *) xv_alloc(XIMPreeditDrawCallbackStruct); canvas->pe_cache->text = (XIMText *) xv_alloc(XIMText); canvas->pe_cache->text->encoding_is_wchar = True; /* * We have to set some value in string, otherwise * panel code dumps. */ canvas->pe_cache->text->string.wide_char = wsdup(_xv_null_string_wc); } canvas->pew->reference_count++; canvas->ic = (XIC) xv_get(canvas_public, WIN_IC); if (canvas->ic == NULL) break; #ifdef FULL_R5 XGetICValues(canvas->ic, XNInputStyle, &canvas->xim_style, NULL); #endif /* FULL_R5 */ /* * DEPEND_ON_BUG_1102972: This "#ifdef notdef" (else * part) is a workaround for the bug 1102972. We have * to delay the setting of the XNFocusWindow to much * later (after all event mask was set to paint window. * Actually in this case will do in the event_proc with * KBD_USE). */ #ifdef notdef canvas->focus_pwin = paint_public; /* * Cache the XNFocusWindow whenever it is set */ window_set_ic_focus_win(view_public, canvas->ic, xv_get(paint_public, XV_XID)); #else canvas->focus_pwin = 0; #endif break; } #endif /*OW_I18N*/ default: xv_check_bad_attr(&xv_canvas_pw_pkg, attr); break; } } return(result); } Pkg_private int canvas_view_destroy(view_public, stat) Canvas_view view_public; Destroy_status stat; { Canvas_view_info *view = CANVAS_VIEW_PRIVATE(view_public); if ((stat == DESTROY_CLEANUP) || (stat == DESTROY_PROCESS_DEATH)) { #ifdef OW_I18N Canvas_info *canvas = view->private_canvas; Xv_Drawable_info *info; /* * Make sure that XNFocusWindow does not pointing to the * window which being destroyed. */ if (canvas->ic) { if (view->paint_window == canvas->focus_pwin) { /* * Current XNFocusWindow is the one which we are * destroying right now. Try to find other paint * window (if we are destroying the last view/paint, * then we do not need worry about this). */ Xv_Window pw; CANVAS_EACH_PAINT_WINDOW(CANVAS_PUBLIC(canvas), pw) if (pw != view->paint_window) { DRAWABLE_INFO_MACRO(pw, info); /* * Cache the XNFocusWindow whenever it is set */ window_set_ic_focus_win(view_public, canvas->ic, xv_xid(info)); break; } CANVAS_END_EACH } } #endif /* OW_I18N */ if (xv_destroy_status(view->paint_window, stat) != XV_OK) { return XV_ERROR; } if (stat == DESTROY_CLEANUP) free((char *) view); } return XV_OK; } #ifdef OW_I18N static int canvas_view_create_paint_window(view, avlist) Canvas_view_info *view; Attr_avlist avlist; #else static int canvas_view_create_paint_window(view) Canvas_view_info *view; #endif /*OW_I18N*/ { Canvas_view view_public = CANVAS_VIEW_PUBLIC(view); Canvas_info *canvas = view->private_canvas; Canvas canvas_public = CANVAS_PUBLIC(canvas); Xv_Window split_paint; Scrollbar sb; #ifdef OW_I18N Bool use_im; Attr_avlist attrs; #endif /*OW_I18N*/ if (canvas->width == 0) { canvas->width = (int) xv_get(view_public, WIN_WIDTH); } if (canvas->height == 0) { canvas->height = (int) xv_get(view_public, WIN_HEIGHT); } #ifdef OW_I18N use_im = (Bool) xv_get(canvas_public, WIN_USE_IM); for (attrs = avlist; *attrs; attrs = attr_next(attrs)) { switch (attrs[0]) { case WIN_USE_IM: use_im = (int) attrs[1]; break; default: break; } } #endif /*OW_I18N*/ if (canvas->paint_avlist == NULL) { view->paint_window = xv_create(view_public, CANVAS_PAINT_WINDOW, #ifdef OW_I18N WIN_USE_IM, use_im, #endif /*OW_I18N*/ WIN_WIDTH, canvas->width, WIN_HEIGHT, canvas->height, WIN_NOTIFY_SAFE_EVENT_PROC, canvas_paint_event, WIN_NOTIFY_IMMEDIATE_EVENT_PROC, canvas_paint_event, WIN_RETAINED, status(canvas, retained), WIN_X_PAINT_WINDOW, status(canvas, x_canvas), XV_KEY_DATA, canvas_context_key, canvas, XV_KEY_DATA, canvas_view_context_key, view, 0); } else { view->paint_window = xv_create(view_public, CANVAS_PAINT_WINDOW, ATTR_LIST, canvas->paint_avlist, #ifdef OW_I18N WIN_USE_IM, use_im, #endif /*OW_I18N*/ WIN_WIDTH, canvas->width, WIN_HEIGHT, canvas->height, WIN_NOTIFY_SAFE_EVENT_PROC, canvas_paint_event, WIN_NOTIFY_IMMEDIATE_EVENT_PROC, canvas_paint_event, WIN_RETAINED, status(canvas, retained), WIN_X_PAINT_WINDOW, status(canvas, x_canvas), XV_KEY_DATA, canvas_context_key, canvas, XV_KEY_DATA, canvas_view_context_key, view, 0); xv_free(canvas->paint_avlist); canvas->paint_avlist = canvas->paint_end_avlist = NULL; } if (view->paint_window == NULL) { return ((int) XV_ERROR); } #ifdef OW_I18N if (canvas->ic) xv_set(view->paint_window, WIN_IC, canvas->ic, 0); #endif if (status(canvas, created)) { split_paint = (Xv_Window) xv_get(canvas_public, CANVAS_NTH_PAINT_WINDOW, 0); if (split_paint != NULL) { Xv_opaque defaults_array[ATTR_STANDARD_SIZE]; Attr_avlist defaults = defaults_array; Xv_opaque value; /* inherit certain attributes from the split window */ value = xv_get(split_paint, WIN_BACKGROUND_PIXMAP, 0); if (value) { *defaults++ = (Xv_opaque)WIN_BACKGROUND_PIXMAP; *defaults++ = xv_get(split_paint, WIN_BACKGROUND_PIXMAP, 0); } *defaults++ = (Xv_opaque)WIN_BIT_GRAVITY; *defaults++ = xv_get(split_paint, WIN_BIT_GRAVITY, 0); *defaults++ = (Xv_opaque)WIN_COLOR_INFO; *defaults++ = xv_get(split_paint, WIN_COLOR_INFO, 0); *defaults++ = (Xv_opaque)WIN_COLUMN_GAP; *defaults++ = xv_get(split_paint, WIN_COLUMN_GAP, 0); *defaults++ = (Xv_opaque)WIN_COLUMN_WIDTH; *defaults++ = xv_get(split_paint, WIN_COLUMN_WIDTH, 0); *defaults++ = (Xv_opaque)WIN_CURSOR; *defaults++ = xv_get(split_paint, WIN_CURSOR, 0); *defaults++ = (Xv_opaque)WIN_EVENT_PROC; *defaults++ = xv_get(split_paint, WIN_EVENT_PROC, 0); *defaults++ = (Xv_opaque)WIN_ROW_GAP; *defaults++ = xv_get(split_paint, WIN_ROW_GAP, 0); *defaults++ = (Xv_opaque)WIN_ROW_HEIGHT; *defaults++ = xv_get(split_paint, WIN_ROW_HEIGHT, 0); *defaults++ = (Xv_opaque)WIN_WINDOW_GRAVITY; *defaults++ = xv_get(split_paint, WIN_WINDOW_GRAVITY, 0); *defaults++ = (Xv_opaque)WIN_X_EVENT_MASK; *defaults++ = xv_get(split_paint, WIN_X_EVENT_MASK, 0); /* null terminate the list */ *defaults = (Xv_opaque)0; /* propagate the attrs to the new paint window */ (void)xv_set_avlist(view->paint_window, defaults_array); /* Deal with possible scrollbars */ sb = (Scrollbar)xv_get(canvas_public, OPENWIN_VERTICAL_SCROLLBAR, view_public); if (sb != NULL) { canvas_scroll(view->paint_window, sb); } sb = (Scrollbar)xv_get(canvas_public, OPENWIN_HORIZONTAL_SCROLLBAR, view_public); if (sb != NULL) { canvas_scroll(view->paint_window, sb); } } } else { xv_set(view->paint_window, WIN_BIT_GRAVITY, status(canvas, fixed_image) ? NorthWestGravity : ForgetGravity, WIN_CONSUME_EVENTS, KBD_USE, KBD_DONE, WIN_ASCII_EVENTS, ACTION_HELP, WIN_MOUSE_BUTTONS, 0, 0); status_set(canvas, created); } return (XV_OK); } xview-3.2p1.4/lib/libxview/canvas/cnvs_get.c100644 1750 1750 5634 5413747710 16270 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)cnvs_get.c 20.26 93/06/28"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #include /* ARGSUSED */ Pkg_private Xv_opaque canvas_get_attr(canvas_public, stat, attr, valist) Canvas canvas_public; int *stat; Attr_attribute attr; va_list valist; { Canvas_info *canvas = CANVAS_PRIVATE(canvas_public); Canvas_view_info *view; Xv_Window view_public, paint_window; Rect view_rect, *canvas_rect; switch (attr) { case CANVAS_NTH_PAINT_WINDOW: view_public = (Xv_Window) xv_get(canvas_public, OPENWIN_NTH_VIEW, va_arg(valist, int)); if (view_public != NULL) { return ((Xv_opaque) CANVAS_VIEW_PRIVATE(view_public)->paint_window); } else { return ((Xv_opaque) NULL); } case CANVAS_HEIGHT: return (Xv_opaque) canvas->height; case CANVAS_WIDTH: return (Xv_opaque) canvas->width; case CANVAS_REPAINT_PROC: return (Xv_opaque) canvas->repaint_proc; case CANVAS_RESIZE_PROC: return (Xv_opaque) canvas->resize_proc; case CANVAS_AUTO_EXPAND: return (Xv_opaque) status(canvas, auto_expand); case CANVAS_AUTO_SHRINK: return (Xv_opaque) status(canvas, auto_shrink); case CANVAS_RETAINED: return (Xv_opaque) status(canvas, retained); case CANVAS_CMS_REPAINT: return (Xv_opaque) status(canvas, cms_repaint); case CANVAS_FIXED_IMAGE: return (Xv_opaque) status(canvas, fixed_image); case CANVAS_NO_CLIPPING: return (Xv_opaque) status(canvas, no_clipping); case CANVAS_VIEWABLE_RECT: paint_window = va_arg(valist, Xv_Window); if (paint_window != NULL) { view = CANVAS_VIEW_PRIVATE((Canvas_view) xv_get(paint_window, XV_OWNER)); if (view == NULL) { return (Xv_opaque) NULL; } view_rect = *(Rect *) xv_get(CANVAS_VIEW_PUBLIC(view), WIN_RECT); canvas_rect = (Rect *) xv_get(paint_window, WIN_RECT); canvas_rect->r_left = -canvas_rect->r_left; canvas_rect->r_top = -canvas_rect->r_top; canvas_rect->r_width = view_rect.r_width; canvas_rect->r_height = view_rect.r_height; return (Xv_opaque) canvas_rect; } else { return (Xv_opaque) NULL; } case CANVAS_MIN_PAINT_WIDTH: return (Xv_opaque) canvas->min_paint_width; case CANVAS_MIN_PAINT_HEIGHT: return (Xv_opaque) canvas->min_paint_height; #ifdef OW_I18N case CANVAS_IM_PREEDIT_FRAME: if (canvas->pew) return (Xv_opaque) canvas->pew->frame; else return (Xv_opaque) NULL; #endif case WIN_TYPE: /* SunView1.X compatibility */ return (Xv_opaque) CANVAS_TYPE; case OPENWIN_VIEW_CLASS: return (Xv_opaque) CANVAS_VIEW; default: xv_check_bad_attr(&xv_canvas_pkg, attr); *stat = XV_ERROR; return (Xv_opaque) 0; } } xview-3.2p1.4/lib/libxview/canvas/cnvs_cb.c100644 1750 1750 32106 5413747711 16110 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)cnvs_cb.c 50.32 93/06/28"; #endif #endif #ifdef OW_I18N /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #include #include #include #include #include #include #include #define MAX_PREEDIT_CHAR 512 /* characters */ #define PANEL_TEXT_RIM 6 /* pixel */ #define INPUT_WINDOW_WIDTH 50 /* columns */ Xv_private void cache_text_state(); Pkg_private void canvas_pew_done(); Pkg_private Notify_value canvas_pew_destory(); static Notify_value canvas_pew_pi_event_proc(); Pkg_private void canvas_preedit_start(ic, client_data, callback_data) XIC ic; XPointer client_data; XPointer callback_data; { Canvas_info *canvas; Canvas_pew *pew; canvas = CANVAS_PRIVATE((Canvas) client_data); pew = canvas->pew; /* * Display the pew (PreEdit display Window). And update the * status and counters. */ xv_set(pew->frame, XV_SHOW, TRUE, NULL); pew->active_count++; status_set(canvas, preedit_exist); /* * start preediting with the input panel */ panel_text_start(ic, pew->panel, NULL); } Pkg_private void canvas_preedit_draw(ic, client_data, callback_data) XIC ic; XPointer client_data; XPointer callback_data; { Canvas_info *canvas; XIMPreeditDrawCallbackStruct *preedit; canvas = CANVAS_PRIVATE((Canvas) client_data); preedit = (XIMPreeditDrawCallbackStruct *) callback_data; /* * Can't use PANEL_PRIVATE macro here, can't include panel_impl.h * due to name clash between status element of panel_info and * canvas's status macro. */ panel_preedit_display( ((Xv_panel_or_item *) canvas->pew->ptxt)->private_data, preedit, FALSE); } Xv_private void cache_text_state(pre_edit, pe_cache) XIMPreeditDrawCallbackStruct *pre_edit, *pe_cache; { /* * length = length of updated text * chg_first = position in the cache where changes begin * chg_length = number of chars in the cache effected * chg_last = last position in cache effected * tlength = length of new text * * we want to take all text from pe_cache up to chg_first, * followed by the changed text, followed by any text * after chg_last in pe_cache and assemble them inorder in a buffer, * then replace the cache with the buffer. * * Whether the preedit text changes come in multibyte or * wide character form, this function will always return * the result in wide characters. Since XView process * only wide characters internally so we are assuming * the cached preedit text is ALWAYS in wide characters. */ XIMFeedback *feedback; /* new structure for preedit screen feedback, will replace existing cache */ int i, idx; /* Indices */ wchar_t *text; /* new structure for preedit data, will replace existing cache */ unsigned short length = 0; unsigned short length_after = 0; int tlength = 0; int chg_first = pre_edit->chg_first; int chg_length = pre_edit->chg_length; int chg_last = chg_first + chg_length; /* For insertion or change case */ if (pre_edit->text && (pre_edit->text->length > 0 )) { tlength = (int) pre_edit->text->length; length_after = pe_cache->text->length - chg_last; length = chg_first + tlength + length_after; feedback = (XIMFeedback *) xv_alloc_n(XIMFeedback, length); text = (wchar_t *) xv_alloc_n(wchar_t, length+1); /* First copy the cached string up to changed area */ for (i = 0; i < chg_first; i++) { feedback[i] = pe_cache->text->feedback[i]; text[i] = pe_cache->text->string.wide_char[i]; } if (pre_edit->text->encoding_is_wchar) { /* Now copy the new text */ for (idx = 0; idx < tlength; idx++) { feedback[i] = pre_edit->text->feedback[idx]; text[i++] = pre_edit->text->string.wide_char[idx]; } } else { wchar_t *tmp_str_wc; /* Convert the incoming preedit text from * multibyte to wide character. */ tmp_str_wc = _xv_mbstowcsdup (pre_edit->text->string.multi_byte); for (idx = 0; idx < tlength; idx++) { feedback[i] = pre_edit->text->feedback[idx]; text[i++] = tmp_str_wc[idx]; } xv_free(tmp_str_wc); } /* finally, copy any cached text after the changed region */ for (idx = chg_last; idx < (int) pe_cache->text->length; idx++) { feedback[i] = pe_cache->text->feedback[idx]; text[i++] = pe_cache->text->string.wide_char[idx]; } /* null-terminate the text array */ text[length] = NULL; pe_cache->caret = pre_edit->caret; pe_cache->chg_first = 0; pe_cache->text->length = (unsigned short) length; pe_cache->chg_length = pe_cache->text->length; pe_cache->text->encoding_is_wchar = 1; if (pe_cache->text->string.wide_char) xv_free(pe_cache->text->string.wide_char); pe_cache->text->string.wide_char = text; if (pe_cache->text->feedback) xv_free(pe_cache->text->feedback); pe_cache->text->feedback = feedback; } else { /* For the case of deletion or no change */ if (chg_length > 0) { /* First copy the cached string up to changed area */ length = (pe_cache->chg_length >= chg_length) ? pe_cache->chg_length - chg_length : 0; feedback = (XIMFeedback *) xv_alloc_n(XIMFeedback, length ? length : 1); text = (wchar_t *) xv_alloc_n(wchar_t, length+1); for (i = 0; i < chg_first; i++) { feedback[i] = pe_cache->text->feedback[i]; text[i] = pe_cache->text->string.wide_char[i]; } /* finally, copy any cached text after the changed region */ for (idx = chg_last; idx < (int) pe_cache->text->length; idx++) { feedback[i] = pe_cache->text->feedback[idx]; text[i++] = pe_cache->text->string.wide_char[idx]; } /* null-terminate the text array */ text[length] = NULL, pe_cache->caret = pre_edit->caret; pe_cache->chg_first = 0; pe_cache->text->length = length; pe_cache->chg_length = pe_cache->text->length; pe_cache->text->encoding_is_wchar = 1; if (pe_cache->text->string.wide_char) xv_free(pe_cache->text->string.wide_char); pe_cache->text->string.wide_char = text; if (pe_cache->text->feedback) xv_free(pe_cache->text->feedback); pe_cache->text->feedback = feedback; } } } Pkg_private void canvas_preedit_done(ic, client_data, callback_data) XIC ic; XPointer client_data; XPointer callback_data; { Canvas_info *canvas; Canvas_pew *pew; canvas = CANVAS_PRIVATE((Canvas) client_data); pew = canvas->pew; if ((--canvas->pew->active_count) <= 0) { /* * No other canvas's preedit is active, let's take down the * preedit window if pin is out. */ if (xv_get(pew->frame, FRAME_CMD_PIN_STATE) == FRAME_CMD_PIN_OUT) { xv_set(pew->frame, XV_SHOW, FALSE, NULL); } } status_reset(canvas, preedit_exist); panel_text_done(ic, pew->panel, NULL); } /* The following function is a stub. This will be implemented later */ Pkg_private void canvas_preedit_caret(ic, client_data, callback_data) XIC ic; XPointer client_data; XPointer callback_data; { /* interprete direction and calculate row and col; set cursor position */ } /* * canvas_create_pew: Create the PreEdit Window and register itself to * the parent frame as XV_KEY_DATA. */ Pkg_private Canvas_pew * canvas_create_pew(frame) Frame frame; { Canvas_pew *pew; Xv_font font; #ifndef PEW_DOES_NOTICE_ON_KBD_USE Xv_Drawable_info *info; Atom prop_array[1]; #endif pew = xv_alloc(Canvas_pew); font = (Xv_Font) xv_get(frame, XV_FONT); pew->frame = (Frame) xv_create(frame, FRAME_CMD, XV_LABEL, XV_MSG("Preedit Display"), WIN_USE_IM, FALSE, FRAME_CMD_POINTER_WARP, FALSE, FRAME_SHOW_RESIZE_CORNER, TRUE, FRAME_DONE_PROC, canvas_pew_done, WIN_WIDTH, INPUT_WINDOW_WIDTH, NULL); #ifndef PEW_DOES_NOTICE_ON_KBD_USE /* * Following code can eliminate to have focus event completely. */ DRAWABLE_INFO_MACRO(pew->frame, info); prop_array[0] = (Atom) xv_get(xv_server(info), SERVER_WM_DELETE_WINDOW); win_change_property(pew->frame, SERVER_WM_PROTOCOLS, XA_ATOM, 32, prop_array, 1); #endif /* PEW_DOES_NOTICE_ON_KBD_USE */ pew->panel = xv_get(pew->frame, FRAME_CMD_PANEL); xv_set(pew->panel, WIN_ROWS, 1, WIN_COLUMNS, INPUT_WINDOW_WIDTH, WIN_IGNORE_X_EVENT_MASK,(KeyPress|KeyRelease |ButtonPress|ButtonRelease), XV_FONT, font, NULL); notify_interpose_event_func(pew->panel, canvas_pew_pi_event_proc, NOTIFY_SAFE); notify_interpose_destroy_func(pew->frame, canvas_pew_destory); pew->ptxt = (Panel_item) xv_create(pew->panel, PANEL_TEXT, PANEL_VALUE_DISPLAY_WIDTH, INPUT_WINDOW_WIDTH - PANEL_TEXT_RIM, PANEL_VALUE_STORED_LENGTH_WCS,MAX_PREEDIT_CHAR, PANEL_VALUE_FONT, font, NULL); xv_set(frame, XV_KEY_DATA, canvas_pew_key, pew, NULL); xv_set(pew->frame, WIN_FIT_HEIGHT, 0, WIN_FIT_WIDTH, 0, NULL); return pew; } /* * canvas_pew_destory: Catch the destory of the preedit window, make * sure canvas will no longer reference to it. */ Pkg_private Notify_value canvas_pew_destory(client, status) Notify_client client; Destroy_status status; { if (status == DESTROY_CLEANUP) { Frame frame_public; Canvas_pew *pew; frame_public = (Frame) xv_get(client, XV_OWNER); if ((pew = (Canvas_pew *) xv_get(frame_public, XV_KEY_DATA, canvas_pew_key)) != NULL) { xv_set(frame_public, XV_KEY_DATA, canvas_pew_key, NULL, NULL); xv_free(pew); } } return notify_next_destroy_func(client, status); } /* * canvas_pew_event_proc((Window)pew_win, (Event)event, arg) handles * the resizing of the canvas pew. It changes the display length of * the text item. */ static Notify_value canvas_pew_pi_event_proc(panel, event, arg, type) Notify_client panel; Event *event; Notify_arg arg; Notify_event_type type; { Notify_value ret; Panel_item ip; int width; switch ((Notify_event) event_action(event)) { case WIN_RESIZE: case WIN_REPAINT: ret = notify_next_event_func(panel, (Notify_event) event, arg, type); ip = (Panel_item) xv_get(panel, PANEL_FIRST_ITEM); width = (int) xv_get(panel, WIN_WIDTH) - PANEL_TEXT_RIM; xv_set(ip, PANEL_VALUE_DISPLAY_WIDTH, width, NULL); return ret; #ifdef PEW_DOES_NOTICE_ON_KBD_USE /* * Bringup notice is desirable behavior, however this can not * done with current notice_prompt or notice pkg. Because once * user hit "OK" button, notice will give input focus back to * the pew, and pew will see the KBD_USE event again, again, and * again.... */ case KBD_USE: notice_prompt(xv_get(panel, XV_OWNER), NULL, NOTICE_MESSAGE_STRING, XV_MSG("\ You can not type in to the Preedit Display popup window,\n\ this is display only window, you should type in to the\n\ canvas window itself instead."), NOTICE_BUTTON_YES, XV_MSG("OK"), 0); /*FALLTHROUGH*/ case KBD_DONE: return NOTIFY_DONE; #endif /* PEW_DOES_NOTICE_ON_KBD_USE */ } return notify_next_event_func(panel, (Notify_event) event, arg, type); } /* * canvas_pew_event_proc: event interpose proc for the pew (in case of * the parent is FRAME_CMD). Sync up pew with frame_cmd in case for * the open/close event. */ Pkg_private Notify_value canvas_pew_event_proc(parent_win, event, arg, type) Window parent_win; Event *event; Notify_arg arg; Notify_event_type type; { Canvas_pew *pew; switch ((Notify_event) event_action(event)) { case ACTION_OPEN: case ACTION_CLOSE: pew = (Canvas_pew *) xv_get(parent_win, XV_KEY_DATA, canvas_pew_key); if ((Notify_event) event_action(event) == ACTION_CLOSE) { xv_set(pew->frame, XV_SHOW, FALSE, NULL); } else { if (pew->active_count > 0 || xv_get(pew->frame, FRAME_CMD_PIN_STATE) == FRAME_CMD_PIN_IN) xv_set(pew->frame, XV_SHOW, TRUE, NULL); } break; } return notify_next_event_func((Notify_client) parent_win, (Notify_event) event, arg, type); } /* * canvas_pew_done: Make sure, we will not unmap the pew while there * are still active preedit session. */ Pkg_private void canvas_pew_done(frame) Frame frame; /* frame for preedit window */ { Canvas_pew *pew; pew = (Canvas_pew *) xv_get(xv_get(frame, XV_OWNER), XV_KEY_DATA, canvas_pew_key); if (pew->active_count > 0) { notice_prompt(pew->frame, NULL, NOTICE_MESSAGE_STRING, XV_MSG("\ The Preedit Display popup window cannot be\n\ dismissed while input method conversion is\n\ still on in one of the canvas windows."), NOTICE_BUTTON_YES, XV_MSG("Continue"), NULL); } else xv_set(pew->frame, XV_SHOW, FALSE, NULL); } #endif /*OW_I18N*/ xview-3.2p1.4/lib/libxview/canvas/shared/ 40755 1750 1750 0 6354605661 15460 5ustar mbmbxview-3.2p1.4/lib/libxview/cursor/ 40755 1750 1750 0 6354605713 14252 5ustar mbmbxview-3.2p1.4/lib/libxview/cursor/curs_data.c100644 1750 1750 1305 5413747712 16460 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)curs_data.c 1.15 93/06/28"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #include Xv_pkg xv_cursor_pkg = { "Cursor", /* seal -> package name */ ATTR_PKG_CURSOR, /* cursor attr */ sizeof(Xv_cursor_struct), /* size of the cursor data struct */ &xv_generic_pkg, /* pointer to parent */ cursor_create_internal, /* init routine for cursor */ cursor_set_internal, cursor_get_internal, cursor_destroy_internal, NULL /* no find proc */ }; xview-3.2p1.4/lib/libxview/cursor/cursor.h100644 1750 1750 22611 5413747712 16060 0ustar mbmb/* @(#)cursor.h 20.36 93/06/28 SMI */ /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #ifndef xview_cursor_DEFINED #define xview_cursor_DEFINED /* *********************************************************************** * Include Files *********************************************************************** */ #include #include #include #include #include #ifdef __STDC__ #ifndef CAT #define CAT(a,b) a ## b #endif #endif #include #include /* *********************************************************************** * Definitions and Macros *********************************************************************** */ #define CURSOR &xv_cursor_pkg #define CURSOR_ATTR(type, ordinal) ATTR(ATTR_PKG_CURSOR, type, ordinal) /* * For Sunview 1 compatibility */ #define CURSOR_MAX_IMAGE_BYTES 32 /* max. # of image bytes */ #define CURSOR_MAX_IMAGE_WORDS 16 #define CUR_MAXIMAGEBYTES CURSOR_MAX_IMAGE_BYTES #define CUR_MAXIMAGEWORDS CURSOR_MAX_IMAGE_WORDS #define NOFONTCURSOR -1 /* * OPEN LOOK Cursor character definitions * * Those marked with "--" are not official OPEN LOOK cursors and should * not be used if possible. */ #define OLC_BASIC_PTR 0 /* pointer */ #define OLC_BASIC_MASK_PTR 1 #define OLC_MOVE_PTR 2 /* move */ #define OLC_MOVE_MASK_PTR 3 #define OLC_COPY_PTR 4 /* copy */ #define OLC_COPY_MASK_PTR 5 #define OLC_BUSY_PTR 6 /* busy */ #define OLC_BUSY_MASK_PTR 7 #define OLC_STOP_PTR 8 /* -- stop */ #define OLC_STOP_MASK_PTR 9 #define OLC_PANNING_PTR 10 /* pan */ #define OLC_PANNING_MASK_PTR 11 #define OLC_NAVIGATION_LEVEL_PTR 12 /* navigation */ #define OLC_NAVIGATION_LEVEL_MASK_PTR 13 /* * WARNING: The following glyphs are not in the MIT X11 R4 distribution. */ #define OLC_BLANK_14 14 /* -- blank at index 14 */ #define OLC_BLANK_15 15 /* -- blank at index 15 */ #define OLC_OTHER_PTR 16 /* -- another basic pointer */ #define OLC_OTHER_MASK_PTR 17 #define OLC_RESIZE 18 /* resize bullseye */ #define OLC_RESIZE_MASK 19 #define OLC_RIGHT_ARROW 20 /* -- right arrow */ #define OLC_RIGHT_ARROW_MASK 21 #define OLC_PLUS 22 /* -- plus sign */ #define OLC_PLUS_MASK 23 #define OLC_MULTIPLY 24 /* -- multiply sign */ #define OLC_MULTIPLY_MASK 25 #define OLC_HOURGLASS 26 /* -- hourglass */ #define OLC_HOURGLASS_MASK 27 #define OLC_DOC 28 /* doc = document */ #define OLC_DOC_MASK 29 #define OLC_DOCS 30 /* docs = document stack */ #define OLC_DOCS_MASK 31 #define OLC_DROP 32 /* drop = drop target */ #define OLC_DROP_MASK 33 #define OLC_DROP_STEM 34 /* drop with stem */ #define OLC_DROP_STEM_MASK 35 #define OLC_COPY 36 /* pointer + copy */ #define OLC_COPY_MASK 37 #define OLC_COPY_EDGE 38 /* copy = copy edge */ #define OLC_COPY_EDGE_MASK 39 #define OLC_DOC_COPY 40 /* doc + copy */ #define OLC_DOC_COPY_MASK 41 #define OLC_DOC_COPY_DRAG 42 /* doc + copy + pointer */ #define OLC_DOC_COPY_DRAG_MASK 43 #define OLC_DOC_COPY_DROP 44 /* doc + copy + drop */ #define OLC_DOC_COPY_DROP_MASK 45 #define OLC_DOC_COPY_NODROP 46 /* doc + copy + nodrop */ #define OLC_DOC_COPY_NODROP_MASK 47 #define OLC_DOCS_COPY 48 /* docs + copy */ #define OLC_DOCS_COPY_MASK 49 #define OLC_DOCS_COPY_DRAG 50 /* docs + copy + pointer */ #define OLC_DOCS_COPY_DRAG_MASK 51 #define OLC_DOCS_COPY_DROP 52 /* docs + copy + drop */ #define OLC_DOCS_COPY_DROP_MASK 53 #define OLC_DOCS_COPY_NODROP 54 /* docs + copy + nodrop */ #define OLC_DOCS_COPY_NODROP_MASK 55 #define OLC_MOVE 56 /* pointer + move */ #define OLC_MOVE_MASK 57 #define OLC_MOVE_EDGE 58 /* move = move edge */ #define OLC_MOVE_EDGE_MASK 59 #define OLC_DOC_MOVE 60 /* doc + move */ #define OLC_DOC_MOVE_MASK 61 #define OLC_DOC_MOVE_DRAG 62 /* doc + move + pointer */ #define OLC_DOC_MOVE_DRAG_MASK 63 #define OLC_DOC_MOVE_DROP 64 /* doc + move + drop */ #define OLC_DOC_MOVE_DROP_MASK 65 #define OLC_DOC_MOVE_NODROP 66 /* doc + move + nodrop */ #define OLC_DOC_MOVE_NODROP_MASK 67 #define OLC_DOCS_MOVE 68 /* docs + move */ #define OLC_DOCS_MOVE_MASK 69 #define OLC_DOCS_MOVE_DRAG 70 /* docs + move + pointer */ #define OLC_DOCS_MOVE_DRAG_MASK 71 #define OLC_DOCS_MOVE_DROP 72 /* docs + move + drop */ #define OLC_DOCS_MOVE_DROP_MASK 73 #define OLC_DOCS_MOVE_NODROP 74 /* docs + move + nodrop */ #define OLC_DOCS_MOVE_NODROP_MASK 75 #define OLC_NODROP 76 /* nodrop */ #define OLC_NODROP_MASK 77 #define OLC_NODROP_STEM 78 /* nodrop with stem */ #define OLC_NODROP_STEM_MASK 79 #define OLC_TEXT_COPY 80 /* text copy */ #define OLC_TEXT_COPY_MASK 81 #define OLC_TEXT_COPY_DRAG 82 /* text copy + pointer */ #define OLC_TEXT_COPY_MOVE_MASK 83 #define OLC_TEXT_COPY_DROP 84 /* text copy + drop */ #define OLC_TEXT_COPY_DROP_MASK 85 #define OLC_TEXT_COPY_NODROP 86 /* text copy + nodrop */ #define OLC_TEXT_COPY_NODROP_MASK 87 #define OLC_TEXT_MOVE 88 /* text move */ #define OLC_TEXT_MOVE_MASK 89 #define OLC_TEXT_MOVE_DRAG 90 /* text move + pointer */ #define OLC_TEXT_MOVE_MOVE_MASK 91 #define OLC_TEXT_MOVE_DROP 92 /* text move + drop */ #define OLC_TEXT_MOVE_DROP_MASK 93 #define OLC_TEXT_MOVE_NODROP 94 /* text move + nodrop */ #define OLC_TEXT_MOVE_NODROP_MASK 95 #define OLC_TEXT_COPY_INSERT 96 /* text copy + insert */ #define OLC_TEXT_COPY_INSERT_MASK 97 #define OLC_TEXT_MOVE_INSERT 98 /* text move + insert */ #define OLC_TEXT_MOVE_INSERT_MASK 99 #define OLC_DATA_COPY_DROP 100 /* data copy + drop */ #define OLC_DATA_COPY_DROP_MASK 101 #define OLC_DATA_COPY_INSERT 102 /* data copy + insert */ #define OLC_DATA_COPY_INSERT_MASK 103 #define OLC_DATA_COPY_NODROP 104 /* data copy + nodrop */ #define OLC_DATA_COPY_NODROP_MASK 105 #define OLC_DATA_MOVE_DROP 106 /* data move + drop */ #define OLC_DATA_MOVE_DROP_MASK 107 #define OLC_DATA_MOVE_INSERT 108 /* data move + insert */ #define OLC_DATA_MOVE_INSERT_MASK 109 #define OLC_DATA_MOVE_NODROP 110 /* data move + nodrop */ #define OLC_DATA_MOVE_NODROP_MASK 111 #define OLC_INSERT 112 /* insert = insert target */ #define OLC_INSERT_MASK 113 #define OLC_INSERT_STEM 114 /* insert with stem */ #define OLC_INSERT_STEM_MASK 115 #define OLC_DATA_MOVE 116 /* data move */ #define OLC_DATA_MOVE_MASK 117 #define OLC_DATA_COPY 118 /* data copy */ #define OLC_DATA_COPY_MASK 119 #define OLC_TEXT_POINTER 120 /* text/data pointer */ #define OLC_TEXT_POINTER_MASK 121 #define OLC_FOLDER 122 /* folder */ #define OLC_FOLDER_MASK 123 #define OLC_FOLDERS 124 /* folders= folder stack */ #define OLC_FOLDERS_MASK 125 #define OLC_BLANK_126 126 /* -- blank at index 126 */ #define OLC_BLANK_127 127 /* -- blank at index 127 */ /* *********************************************************************** * Typedefs, enumerations, and structs *********************************************************************** */ typedef Xv_opaque Xv_Cursor; typedef Xv_opaque Xv_cursor; typedef enum { CURSOR_NEUTRAL = 0, CURSOR_ACCEPT = 1, CURSOR_REJECT = 2 } Cursor_drag_state; typedef enum { CURSOR_MOVE = 0, CURSOR_DUPLICATE = 1 } Cursor_drag_type; typedef enum { /* * Public Attributes */ CURSOR_BACKGROUND_COLOR = CURSOR_ATTR(ATTR_SINGLE_COLOR_PTR, 27), CURSOR_DRAG_STATE = CURSOR_ATTR(ATTR_ENUM, 2), CURSOR_DRAG_TYPE = CURSOR_ATTR(ATTR_ENUM, 3), CURSOR_FOREGROUND_COLOR = CURSOR_ATTR(ATTR_SINGLE_COLOR_PTR, 26), CURSOR_IMAGE = CURSOR_ATTR(ATTR_PIXRECT_PTR, 1), CURSOR_MASK_CHAR = CURSOR_ATTR(ATTR_INT, 5), CURSOR_OP = CURSOR_ATTR(ATTR_INT, 10), CURSOR_SRC_CHAR = CURSOR_ATTR(ATTR_INT, 15), CURSOR_STRING = CURSOR_ATTR(ATTR_STRING, 16), #ifdef OW_I18N CURSOR_STRING_WCS = CURSOR_ATTR(ATTR_WSTRING, 17), #endif CURSOR_XHOT = CURSOR_ATTR(ATTR_INT, 20), CURSOR_YHOT = CURSOR_ATTR(ATTR_INT, 25), /* * OPEN LOOK cursors. Used as index to XV_KEY_DATA on server. */ CURSOR_BASIC_PTR = CURSOR_ATTR(ATTR_OPAQUE, 30), CURSOR_MOVE_PTR = CURSOR_ATTR(ATTR_OPAQUE, 35), CURSOR_COPY_PTR = CURSOR_ATTR(ATTR_OPAQUE, 40), CURSOR_BUSY_PTR = CURSOR_ATTR(ATTR_OPAQUE, 45), CURSOR_PANNING_PTR = CURSOR_ATTR(ATTR_OPAQUE, 50), CURSOR_NAVIGATION_LEVEL_PTR = CURSOR_ATTR(ATTR_OPAQUE, 55), CURSOR_STOP_PTR = CURSOR_ATTR(ATTR_OPAQUE, 60), CURSOR_QUESTION_MARK_PTR = CURSOR_ATTR(ATTR_OPAQUE, 65) } Cursor_attribute; #define CURSOR_SHOW_CURSOR XV_SHOW typedef struct { Xv_generic_struct parent_data; Xv_opaque private_data; } Xv_cursor_struct; /* *********************************************************************** * Globals *********************************************************************** */ extern Xv_pkg xv_cursor_pkg; /* * Public Functions */ EXTERN_FUNCTION (void cursor_set_cursor, (Xv_object window, Xv_Cursor cursor)); /* * For Sunview 1 compatibility */ EXTERN_FUNCTION (Xv_Cursor cursor_create, (Attr_attribute attr1, DOTDOTDOT)); EXTERN_FUNCTION (void cursor_destroy, (Xv_Cursor cursor)); EXTERN_FUNCTION (Xv_Cursor cursor_copy, (Xv_Cursor cursor)); EXTERN_FUNCTION (Xv_opaque cursor_get, (Xv_Cursor cursor, Cursor_attribute attr)); EXTERN_FUNCTION (int cursor_set, (Xv_Cursor cursor, DOTDOTDOT)); #endif /* xview_cursor_DEFINED */ xview-3.2p1.4/lib/libxview/cursor/curs_impl.h100644 1750 1750 4575 5413747712 16531 0ustar mbmb/* @(#)curs_impl.h 20.25 93/06/28 SMI */ /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifndef _xview_cursor_impl_h_already_include #define _xview_cursor_impl_h_already_include #include #include #include #define CURSOR_PRIVATE(cursor_public) \ XV_PRIVATE(Cursor_info, Xv_cursor_struct, cursor_public) #define CURSOR_PUBLIC(cursor_private) XV_PRIVATE(cursor_private) #define DONT_SHOW_CURSOR 0x00000001 #define FREE_SHAPE 0x00000080 #define show_cursor(cursor) (!((cursor)->flags & DONT_SHOW_CURSOR)) #define free_shape(cursor) ((cursor)->flags & FREE_SHAPE) typedef enum { CURSOR_TYPE_PIXMAP, /* uses CURSOR_IMAGE */ CURSOR_TYPE_GLYPH, /* uses CURSOR_SRC_CHAR */ CURSOR_TYPE_TEXT /* uses CURSOR_STRING */ } Cursor_type; typedef struct cursor_table_entry { unsigned char *src_bits; unsigned char *mask_bits; int width; int height; int x_offset; /* pixel x-offset of text baseline */ int y_offset; /* pixel y-offset of text baseline */ } Cursor_table_entry; typedef struct { Xv_opaque public_self; /* back pointer */ short cur_xhot, cur_yhot; /* offset of mouse position from shape*/ int cur_src_char, cur_mask_char;/* source and mask characters */ int cur_function; /* relationship of shape to screen */ Pixrect *cur_shape; /* memory image to use */ unsigned long cursor_id; /* X cursor id */ Cursor_drag_state drag_state; /* text cursor drag state */ Cursor_drag_type drag_type; /* text cursor drag type */ Xv_singlecolor fg, bg; /* fg/bg color of cursor */ int flags; /* various options */ Xv_object root; /* root handle */ #ifndef OW_I18N char *string; /* text cursor string */ #else _xv_string_attr_dup_t string; /* text cursor string */ #endif Cursor_type type; /* pixmap, glyph or text cursor */ } Cursor_info; /* from cursor.c */ Pkg_private Xv_opaque cursor_set_internal(); Pkg_private int cursor_create_internal(); Pkg_private Xv_opaque cursor_get_internal(); Pkg_private int cursor_destroy_internal(); #endif /* _xview_cursor_impl_h_already_included */ xview-3.2p1.4/lib/libxview/cursor/curs_pri.c100644 1750 1750 15566 5413747713 16400 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)curs_pri.c 20.39 93/06/28"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #include #include #include #include #include #include #include #include Pkg_private void cursor_free_x(info, old_cursor) Xv_Drawable_info *info; Cursor old_cursor; { XFreeCursor(xv_display(info), old_cursor); } Pkg_private long unsigned cursor_make_x(root_info, w, h, d, op, xhot, yhot, xfg, xbg, pr) Xv_Drawable_info *root_info; int w, h, d, op, xhot, yhot; XColor *xfg, *xbg; Xv_opaque pr; { Window root = xv_xid(root_info); Display *display = xv_display(root_info); GC gc; Pixmap src, mask, m; Cursor result; int oldw, oldh; Screen_visual *visual; Xv_Drawable_info info; if ((w <= 0) || (h <= 0) || (d <= 0)) { xv_error(NULL, ERROR_STRING, XV_MSG("cannot create cursor with null image"), ERROR_PKG, CURSOR, 0); return (unsigned long) None; } /* * handle the case with xhot or yhot bigger than the source pixrect. BUG: * does not handle negative xhot or yhot. */ if ((xhot < 0) || (yhot < 0)) xv_error(NULL, ERROR_STRING, XV_MSG("cursor_make_x(): bad xhot/yhot parameters"), ERROR_PKG, CURSOR, 0); if (xhot > w) { w = xhot; } if (yhot > h) { h = yhot; } /* if the cursor op is XOR, create a bigger pixmap for outline cursor */ if ((op & PIX_NOT(0)) == (PIX_SRC ^ PIX_DST)) { oldw = w; oldh = h; w += 2; h += 2; xhot++; yhot++; } /* * BUG: both mask and src pixmaps can only be of depth 1 */ src = XCreatePixmap(display, root, w, h, d); /* Fake up an info struct to pass to xv_rop_internal */ info.visual = (Screen_visual *)xv_get(xv_screen(root_info), SCREEN_IMAGE_VISUAL, src, 1); info.private_gc = 0; info.cms = xv_get(xv_screen(root_info), SCREEN_DEFAULT_CMS); m = mask = XCreatePixmap(display, root, w, h, d); visual = (Screen_visual *)xv_get(xv_screen(root_info), SCREEN_IMAGE_VISUAL, src, d); gc = visual->gc; if (!(src && mask && gc)) { return (long unsigned) None; } /* clear the mask since XOR may be used to rop into it */ XSetFunction(display, gc, GXclear); XFillRectangle(display, mask, gc, 0, 0, w, h); /* BUG - Clear the src to workaround xnews cursor bug */ XFillRectangle(display, src, gc, 0, 0, w, h); /* PIX_NOT(0) masks out color and PIX_DONTCLIP */ switch (op & PIX_NOT(0)) { case PIX_CLR: /* src is already clear, so don't need to touch it. */ XSetFunction(display, gc, GXclear); XFillRectangle(display, src, gc, 0, 0, w, h); mask = None; break; case PIX_SET: XSetFunction(display, gc, GXset); XFillRectangle(display, src, gc, 0, 0, oldw, oldh); mask = None; break; case PIX_DST: XSetFunction(display, gc, GXclear); XFillRectangle(display, mask, gc, 0, 0, w, h); break; case PIX_SRC: XSetFunction(display, gc, GXcopy); xv_rop_internal(display, src, gc, 0, 0, w, h, pr, 0, 0, &info); mask = None; break; case PIX_NOT(PIX_SRC): XSetFunction(display, gc, GXcopyInverted); xv_rop_internal(display, src, gc, 0, 0, w, h, pr, 0, 0, &info); mask = None; break; case PIX_SRC & PIX_DST: XSetFunction(display, gc, GXcopy); xv_rop_internal(display, src, gc, 0, 0, w, h, pr, 0, 0, &info); XSetFunction(display, gc, GXcopyInverted); xv_rop_internal(display, mask, gc, 0, 0, w, h, pr, 0, 0, &info); break; case PIX_NOT(PIX_SRC) & PIX_DST: XSetFunction(display, gc, GXcopyInverted); xv_rop_internal(display, src, gc, 0, 0, w, h, pr, 0, 0, &info); XSetFunction(display, gc, GXcopy); xv_rop_internal(display, mask, gc, 0, 0, w, h, pr, 0, 0, &info); break; case PIX_NOT(PIX_SRC) | PIX_DST: XSetFunction(display, gc, GXcopyInverted); xv_rop_internal(display, src, gc, 0, 0, w, h, pr, 0, 0, &info); mask = src; break; case PIX_SRC ^ PIX_DST:{ short i, j; XSetFunction(display, gc, GXcopy); xv_rop_internal(display, src, gc, 1, 1, oldw, oldh, pr, 0, 0, &info); /* Build a mask that is a stencil around the src. */ XSetFunction(display, gc, GXor); for (i = 0; i <= 2; i++) { for (j = 0; j <= 2; j++) { xv_rop_internal(display, mask, gc, i, j, oldw, oldh, pr, 0, 0, &info); } } break; } case PIX_SRC | PIX_DST: /* BUG: The following cases can't be done w/o CURSOR_OP in X */ /* We just pretend that it's the same as PIX_SRC | PIX_DST */ case PIX_SRC & PIX_NOT(PIX_DST): case PIX_NOT(PIX_SRC) & PIX_NOT(PIX_DST): case PIX_NOT(PIX_SRC) ^ PIX_DST: case PIX_SRC | PIX_NOT(PIX_DST): case PIX_NOT(PIX_SRC) | PIX_NOT(PIX_DST): case PIX_NOT(PIX_DST): XSetFunction(display, gc, GXcopy); xv_rop_internal(display, src, gc, 0, 0, w, h, pr, 0, 0, &info); mask = src; break; default: xv_error(NULL, ERROR_STRING, "cursor_make_x(): unknown rasterop specified", ERROR_PKG, CURSOR, 0); } /* * WARNING: X server interprets "mask==None" as implying src is mask, but * we want a completely black mask, so we fill it here if appropriate. */ if (mask == None) { /* * PERFORMANCE ALERT! More complex code could avoid having set the * mask to 0 above when it is going to be unnecessary. */ mask = m; XSetFunction(display, gc, GXset); XFillRectangle(display, mask, gc, 0, 0, w, h); } result = XCreatePixmapCursor(display, src, mask, xfg, xbg, xhot, yhot); XFreePixmap(display, src); XFreePixmap(display, m); return ((long unsigned) result); } Pkg_private unsigned long cursor_make_x_font(root_info, src_char, mask_char, xfg, xbg) Xv_Drawable_info *root_info; unsigned int src_char; unsigned int mask_char; XColor *xfg, *xbg; { Display *display = xv_display(root_info); Font x_cursor_font; Xv_Font xview_cursor_font; xview_cursor_font = (Xv_Font) xv_find(xv_server(root_info), FONT, FONT_FAMILY, FONT_FAMILY_OLCURSOR, FONT_TYPE, FONT_TYPE_CURSOR, 0); if (!xview_cursor_font) xv_error(NULL, ERROR_STRING, XV_MSG("Unable to find OPEN LOOK cursor font"), ERROR_PKG, CURSOR, 0); x_cursor_font = (Font) xv_get(xview_cursor_font, XV_XID); if (mask_char == 0) { mask_char = src_char; } return (XCreateGlyphCursor(display, x_cursor_font, x_cursor_font, src_char, mask_char, xfg, xbg)); } Pkg_private void cursor_set_cursor_internal(info, cursor) Xv_Drawable_info *info; Cursor cursor; { XDefineCursor(xv_display(info), xv_xid(info), cursor); } xview-3.2p1.4/lib/libxview/cursor/cursor.c100644 1750 1750 36637 5413747714 16072 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)cursor.c 20.55 93/06/28"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ /* * cursor.c: Routines for creating & modifying a cursor. * */ #include #include #include #include #include #include #include #include Xv_private Attr_avlist attr_find(); Pkg_private unsigned long cursor_make_x(); Pkg_private unsigned long cursor_make_x_font(); Pkg_private void cursor_free_x(); Pkg_private void cursor_set_cursor_internal(); static Xv_opaque create_text_cursor(); extern unsigned char txtmove_bits[]; extern unsigned char txtmove_mask_bits[]; #define txtmove_width 64 #define txtmove_height 64 extern unsigned char txtmove_more_bits[]; #define txtmove_more_width 64 #define txtmove_more_height 64 extern unsigned char txtdup_bits[]; extern unsigned char txtdup_mask_bits[]; #define txtdup_width 64 #define txtdup_height 64 extern unsigned char txtdup_more_bits[]; #define txtdup_more_width 64 #define txtdup_more_height 64 extern unsigned char txtmove_accept_bits[]; extern unsigned char txtmove_accept_mask_bits[]; #define txtmove_accept_width 64 #define txtmove_accept_height 64 extern unsigned char txtmove_accept_more_bits[]; #define txtmove_accept_more_width 64 #define txtmove_accept_more_height 64 extern unsigned char txtdup_accept_bits[]; extern unsigned char txtdup_accept_mask_bits[]; #define txtdup_accept_width 64 #define txtdup_accept_height 64 extern unsigned char txtdup_accept_more_bits[]; #define txtdup_accept_more_width 64 #define txtdup_accept_more_height 64 /* The cursor table indices are [drag_state][drag_type][more_arrow] */ static Cursor_table_entry cursor_table[2][2][2] = { /* CURSOR_NEUTRAL, CURSOR_MOVE, no more arrow */ txtmove_bits, txtmove_mask_bits, txtmove_width, txtmove_height, 20, 29, /* CURSOR_NEUTRAL, CURSOR_MOVE, more arrow */ txtmove_more_bits, txtmove_mask_bits, txtmove_more_width, txtmove_more_height, 20, 29, /* CURSOR_NEUTRAL, CURSOR_DUPLICATE, no more arrow */ txtdup_bits, txtdup_mask_bits, txtdup_width, txtdup_height, 20, 29, /* CURSOR_NEUTRAL, CURSOR_DUPLICATE, more arrow */ txtdup_more_bits, txtdup_mask_bits, txtdup_more_width, txtdup_more_height, 20, 29, /* CURSOR_ACCEPT, CURSOR_MOVE, no more arrow */ txtmove_accept_bits, txtmove_accept_mask_bits, txtmove_accept_width, txtmove_accept_height, 20, 29, /* CURSOR_ACCEPT, CURSOR_MOVE, more arrow */ txtmove_accept_more_bits, txtmove_accept_mask_bits, txtmove_accept_more_width, txtmove_accept_more_height, 20, 29, /* CURSOR_ACCEPT, CURSOR_DUPLICATE, no more arrow */ txtdup_accept_bits, txtdup_accept_mask_bits, txtdup_accept_width, txtdup_accept_height, 20, 29, /* CURSOR_ACCEPT, CURSOR_DUPLICATE, more arrow */ txtdup_accept_more_bits, txtdup_accept_mask_bits, txtdup_accept_more_width, txtdup_accept_more_height, 20, 29, }; #define CURSOR_TEXT_XHOT 9 #define CURSOR_TEXT_YHOT 9 Pkg_private int cursor_create_internal(parent, object, avlist) Xv_Screen parent; Xv_Cursor object; Attr_avlist avlist; /* * Parent should be either a window or a screen, or any object that will * return the root window in response to xv_get(parent, XV_ROOT). */ { register Cursor_info *cursor; register Pixrect *pr; Cursor_info *other_cursor; Attr_avlist copy_attr; ((Xv_cursor_struct *) (object))->private_data = (Xv_opaque) xv_alloc(Cursor_info); if (!(cursor = CURSOR_PRIVATE(object))) { return XV_ERROR; } cursor->public_self = object; cursor->cur_src_char = NOFONTCURSOR; /* Use default screen if none given (xv_create ensures default ok) */ cursor->root = xv_get((parent ? parent : xv_default_screen), XV_ROOT); copy_attr = attr_find(avlist, XV_COPY_OF); if (*copy_attr) { other_cursor = CURSOR_PRIVATE(copy_attr[1]); *cursor = *other_cursor; /* Allocate new shape, copy old, and flag need to free new shape. */ pr = other_cursor->cur_shape; cursor->cur_shape = (Pixrect *) xv_create(xv_get(other_cursor->root, XV_SCREEN), SERVER_IMAGE, XV_WIDTH, pr->pr_width, XV_HEIGHT, pr->pr_height, SERVER_IMAGE_DEPTH, pr->pr_depth, NULL); if (!cursor->cur_shape) return XV_ERROR; xv_rop(cursor->cur_shape, 0, 0, pr->pr_width, pr->pr_height, PIX_SRC, pr, 0, 0); cursor->flags |= FREE_SHAPE; cursor->cur_xhot = other_cursor->cur_xhot; cursor->cur_yhot = other_cursor->cur_yhot; cursor->cur_src_char = other_cursor->cur_src_char; cursor->cur_mask_char = other_cursor->cur_mask_char; cursor->cur_function = other_cursor->cur_function; } else { cursor->cur_function = PIX_SRC | PIX_DST; cursor->cur_shape = (Pixrect *) xv_create(xv_get(cursor->root, XV_SCREEN), SERVER_IMAGE, XV_WIDTH, CURSOR_MAX_IMAGE_WORDS, XV_HEIGHT, CURSOR_MAX_IMAGE_WORDS, SERVER_IMAGE_DEPTH, 1, NULL); cursor->flags = FREE_SHAPE; } /* the id will be set the first time through cursor_set() */ cursor->cursor_id = 0; /* default foreground/background color */ cursor->fg.red = 0; cursor->fg.green = 0; cursor->fg.blue = 0; cursor->bg.red = 255; cursor->bg.green = 255; cursor->bg.blue = 255; cursor->type = CURSOR_TYPE_PIXMAP; cursor->drag_state = CURSOR_NEUTRAL; cursor->drag_type = CURSOR_MOVE; (void) xv_set(object, XV_RESET_REF_COUNT, 0); /* Mark as ref counted. */ return XV_OK; } Pkg_private int cursor_destroy_internal(cursor_public, status) Xv_Cursor cursor_public; Destroy_status status; { Cursor_info *cursor = CURSOR_PRIVATE(cursor_public); Xv_Drawable_info *info; if (status == DESTROY_CLEANUP) { if (free_shape(cursor)) xv_destroy( (Xv_opaque)(cursor->cur_shape) ); if (cursor->type == CURSOR_TYPE_TEXT && cursor->cursor_id) { DRAWABLE_INFO_MACRO(cursor->root, info); XFreeCursor(xv_display(info), cursor->cursor_id); #ifdef OW_I18N _xv_free_ps_string_attr_dup(&cursor->string); #endif } free((char *) cursor); } return XV_OK; } /*ARGSUSED*/ /*VARARGS3*/ Pkg_private Xv_opaque cursor_get_internal(cursor_public, status, which_attr, args) Xv_Cursor cursor_public; int *status; Attr_attribute which_attr; va_list args; { register Cursor_info *cursor = CURSOR_PRIVATE(cursor_public); switch (which_attr) { case XV_XID: return (Xv_opaque) cursor->cursor_id; case XV_SHOW: return (Xv_opaque) show_cursor(cursor); case CURSOR_STRING: #ifndef OW_I18N return (Xv_opaque) cursor->string; #else return (Xv_opaque) _xv_get_mbs_attr_dup(&cursor->string); case CURSOR_STRING_WCS: return (Xv_opaque) _xv_get_wcs_attr_dup(&cursor->string); #endif /* OW_I18N */ case CURSOR_DRAG_STATE: return (Xv_opaque) cursor->drag_state; case CURSOR_DRAG_TYPE: return (Xv_opaque) cursor->drag_type; case CURSOR_SRC_CHAR: return (Xv_opaque) cursor->cur_src_char; case CURSOR_MASK_CHAR: return (Xv_opaque) cursor->cur_mask_char; case CURSOR_XHOT: return (Xv_opaque) cursor->cur_xhot; case CURSOR_YHOT: return (Xv_opaque) cursor->cur_yhot; case CURSOR_OP: return (Xv_opaque) cursor->cur_function; case CURSOR_IMAGE: return (Xv_opaque) cursor->cur_shape; case CURSOR_FOREGROUND_COLOR: return ((Xv_opaque) &cursor->fg); case CURSOR_BACKGROUND_COLOR: return ((Xv_opaque)&cursor->bg); default: if (xv_check_bad_attr(CURSOR, which_attr) == XV_ERROR) { *status = XV_ERROR; } return XV_NULL; } } /* cursor_set_attr sets the attributes mentioned in avlist. */ Pkg_private Xv_opaque cursor_set_internal(cursor_public, avlist) Xv_Cursor cursor_public; register Attr_avlist avlist; { register Cursor_info *cursor = CURSOR_PRIVATE(cursor_public); register Pixrect *pr; register int dirty = FALSE; Xv_Drawable_info *root_info; register Xv_opaque arg1; int end_create = FALSE; Xv_singlecolor *fg = NULL, *bg = NULL; XColor xfg, xbg; for (; *avlist; avlist = attr_next(avlist)) { arg1 = avlist[1]; switch (*avlist) { case XV_SHOW: /* BUG: is this used anywhere? */ if (arg1) cursor->flags &= ~DONT_SHOW_CURSOR; else cursor->flags |= DONT_SHOW_CURSOR; dirty = TRUE; break; case CURSOR_STRING: #ifdef OW_I18N _xv_set_mbs_attr_dup(&cursor->string, (char *) arg1); #else cursor->string = (char *) arg1; #endif cursor->type = CURSOR_TYPE_TEXT; break; #ifdef OW_I18N case CURSOR_STRING_WCS: _xv_set_wcs_attr_dup(&cursor->string, (CHAR *) arg1); cursor->type = CURSOR_TYPE_TEXT; break; #endif case CURSOR_DRAG_STATE: cursor->drag_state = (Cursor_drag_state) arg1; if (cursor->drag_state > CURSOR_ACCEPT) { /* CURSOR_REJECT is not supported yet */ cursor->drag_state = CURSOR_ACCEPT; } break; case CURSOR_DRAG_TYPE: cursor->drag_type = (Cursor_drag_type) arg1; break; case CURSOR_SRC_CHAR: cursor->cur_src_char = (unsigned int) arg1; cursor->type = CURSOR_TYPE_GLYPH; dirty = TRUE; break; case CURSOR_MASK_CHAR: cursor->cur_mask_char = (unsigned int) arg1; dirty = TRUE; break; case CURSOR_XHOT: cursor->cur_xhot = (int) arg1; dirty = TRUE; break; case CURSOR_YHOT: cursor->cur_yhot = (int) arg1; dirty = TRUE; break; case CURSOR_OP: cursor->cur_function = (int) arg1; dirty = TRUE; break; case CURSOR_IMAGE: if (free_shape(cursor)) { /* destroy the remote image */ xv_destroy( (Xv_opaque)(cursor->cur_shape) ); cursor->flags &= ~FREE_SHAPE; } cursor->cur_shape = (Pixrect *) arg1; cursor->type = CURSOR_TYPE_PIXMAP; dirty = TRUE; break; case CURSOR_FOREGROUND_COLOR: fg = (Xv_singlecolor *)arg1; cursor->fg.red = fg->red; cursor->fg.green = fg->green; cursor->fg.blue = fg->blue; break; case CURSOR_BACKGROUND_COLOR: bg = (Xv_singlecolor *)arg1; cursor->bg.red = bg->red; cursor->bg.green = bg->green; cursor->bg.blue = bg->blue; break; case XV_COPY_OF: dirty = TRUE; break; case XV_END_CREATE: end_create = TRUE; break; default: (void) xv_check_bad_attr(CURSOR, *avlist); break; } } DRAWABLE_INFO_MACRO(cursor->root, root_info); if (end_create && cursor->type == CURSOR_TYPE_TEXT) { return create_text_cursor(cursor, root_info); } xfg.red = cursor->fg.red << 8; xfg.green = cursor->fg.green << 8; xfg.blue = cursor->fg.blue << 8; xfg.flags = DoRed | DoGreen | DoBlue; xbg.red = cursor->bg.red << 8; xbg.green = cursor->bg.green << 8; xbg.blue = cursor->bg.blue << 8; xbg.flags = DoRed | DoGreen | DoBlue; if (!dirty) { if (fg || bg) { XRecolorCursor(xv_display(root_info), cursor->cursor_id, &xfg, &xbg); } return XV_OK; } /* make the cursor now */ if (cursor->cursor_id) { cursor_free_x(root_info, cursor->cursor_id); } if (cursor->cur_src_char != NOFONTCURSOR) { cursor->cursor_id = cursor_make_x_font(root_info, (unsigned int) cursor->cur_src_char, (unsigned int) cursor->cur_mask_char, &xfg, &xbg); } else { pr = cursor->cur_shape; cursor->cursor_id = cursor_make_x(root_info, pr->pr_size.x, pr->pr_size.y, pr->pr_depth, cursor->cur_function, cursor->cur_xhot, cursor->cur_yhot, &xfg, &xbg, pr); } /* BUG: ok to abort? */ if (!cursor->cursor_id) { xv_error((Xv_object)cursor, ERROR_STRING, XV_MSG("cursor: can't create cursor"), ERROR_PKG, CURSOR, 0); } return (Xv_opaque) XV_OK; } Xv_private void cursor_set_cursor(window, cursor_public) Xv_object window; Xv_Cursor cursor_public; { Cursor_info *cursor = CURSOR_PRIVATE(cursor_public); Xv_Drawable_info *window_info; if (xv_get(window, XV_ROOT) != cursor->root) { xv_error((Xv_object)cursor, ERROR_STRING, XV_MSG("Window and cursor have different roots! Can't set cursor"), ERROR_PKG, CURSOR, 0); } else { DRAWABLE_INFO_MACRO(window, window_info); cursor_set_cursor_internal(window_info, cursor->cursor_id); } } #define CUR_MAX_TEXT 3 static Xv_opaque create_text_cursor(cursor, info) /* returns XV_OK or XV_ERROR */ Cursor_info *cursor; Xv_Drawable_info *info; { unsigned int best_height; unsigned int best_width; XColor bg; /* background color of cursor */ Colormap cmap; Cursor_table_entry cte; Display *display; XColor fg; /* foreground color of cursor */ Xv_Font font; int length; Pixmap mask_pixmap; int more_arrow; int screen_nbr; Pixmap src_pixmap; Screen_visual *visual; Status status; XID xid; display = xv_display(info); xid = xv_xid(info); #ifdef OW_I18N length = STRLEN(cursor->string.pswcs.value); #else length = strlen(cursor->string); #endif if (length > CUR_MAX_TEXT) { length = CUR_MAX_TEXT; more_arrow = TRUE; } else more_arrow = FALSE; cte = cursor_table[cursor->drag_state][cursor->drag_type][more_arrow]; /* See if we can create a cursor of this size */ status = XQueryBestCursor(display, xid, cte.width, cte.height, &best_width, &best_height); if (!status || best_width < cte.width || best_height < cte.height) return XV_ERROR; /* Create mask and source pixmaps */ mask_pixmap = XCreateBitmapFromData(display, xid, (char *)(cte.mask_bits), cte.width, cte.height); src_pixmap = XCreateBitmapFromData(display, xid, (char *)(cte.src_bits), cte.width, cte.height); /* Draw text into source pixmap */ visual = (Screen_visual *) xv_get(xv_screen(info), SCREEN_IMAGE_VISUAL, src_pixmap, 1); font = xv_find(xv_server(info), FONT, FONT_FAMILY, FONT_FAMILY_DEFAULT_FIXEDWIDTH, FONT_STYLE, FONT_STYLE_DEFAULT, FONT_SIZE, FONT_SIZE_DEFAULT, 0); if (!font) return XV_ERROR; XSetFont(display, visual->gc, xv_get(font, XV_XID)); XSetFillStyle(display, visual->gc, FillSolid); /* Draw string into cursor pixmap */ #ifdef OW_I18N XwcDrawString(display, src_pixmap, (XFontSet)xv_get(font, FONT_SET_ID), visual->gc, cte.x_offset, cte.y_offset, cursor->string.pswcs.value, length); #else XDrawString(display, src_pixmap, visual->gc, cte.x_offset, cte.y_offset, cursor->string, length); #endif /* Define foreground and background colors */ screen_nbr = (int) xv_get(xv_screen(info), SCREEN_NUMBER); fg.flags = bg.flags = DoRed | DoGreen | DoBlue; fg.pixel = BlackPixel(display, screen_nbr); cmap = (Colormap) xv_get(xv_cms(info), XV_XID); XQueryColor(display, cmap, &fg); bg.pixel = WhitePixel(display, screen_nbr); XQueryColor(display, cmap, &bg); /* Create Pixmap Cursor */ cursor->cursor_id = XCreatePixmapCursor(display, src_pixmap, mask_pixmap, &fg, &bg, CURSOR_TEXT_XHOT, CURSOR_TEXT_YHOT); /* Free the src_pixmap and mask_pixmap */ XFreePixmap(display,src_pixmap); XFreePixmap(display,mask_pixmap); if (cursor->cursor_id) return XV_OK; else return XV_ERROR; } xview-3.2p1.4/lib/libxview/cursor/curs_cmpat.c100644 1750 1750 3507 5413747714 16663 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)curs_cmpat.c 20.24 93/06/28"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ /* * curs_cmpat.c: Compatibility Routines for creating & modifying a cursor. * */ #include #include #include #include #include Xv_Cursor #ifdef ANSI_FUNC_PROTO cursor_create(Attr_attribute attr1, ...) #else cursor_create(attr1, va_alist) Attr_attribute attr1; va_dcl #endif { Xv_opaque avlist[ATTR_STANDARD_SIZE]; va_list valist; if( attr1 ) { VA_START(valist, attr1); copy_va_to_av( valist, avlist, attr1 ); va_end(valist); } else avlist[0] = NULL; return (xv_create_avlist(XV_NULL, CURSOR, avlist)); } void cursor_destroy(cursor_public) Xv_Cursor cursor_public; { (void) xv_destroy(cursor_public); } /* cursor_get returns the current value of which_attr. */ Xv_opaque cursor_get(cursor_public, which_attr) Xv_Cursor cursor_public; Cursor_attribute which_attr; { return (xv_get(cursor_public, (Attr_attribute)which_attr)); } int #ifdef ANSI_FUNC_PROTO cursor_set(Xv_Cursor cursor_public, ...) #else cursor_set(cursor_public, va_alist) Xv_Cursor cursor_public; va_dcl #endif { AVLIST_DECL; va_list valist; VA_START(valist, cursor_public); MAKE_AVLIST( valist, avlist ); va_end(valist); return (int) xv_set_avlist(cursor_public, avlist); } Xv_Cursor cursor_copy(cursor_public) register Xv_Cursor cursor_public; { return xv_create(xv_get(cursor_public,XV_OWNER),CURSOR, XV_COPY_OF,cursor_public,NULL); } xview-3.2p1.4/lib/libxview/cursor/Imakefile100644 1750 1750 1457 5413747714 16172 0ustar mbmb#include #if SharedLibXView #define DoSharedLib YES #endif #include /**/########################################################################### /**/# @(#)Imakefile 1.8 28 Jun 1993 SMI #ifndef SubdirHasTextObjs #define SubdirHasTextObjs YES #endif #ifndef SubdirHasDataObjs #define SubdirHasDataObjs YES #endif #ifndef SubdirHasPublicHeaders #define SubdirHasPublicHeaders YES #endif #ifndef SubdirHasPrivateHeaders #define SubdirHasPrivateHeaders YES #endif HDRSPUBLIC= cursor.h HDRSPRIVATE= curs_impl.h DATA_OBJS=\ curs_data.o TEXT_OBJS =\ cursor.o\ curs_pri.o\ cur_rodata.o\ curs_cmpat.o SRCS =\ cursor.c\ curs_pri.c\ curs_cmpat.c\ cur_rodata.c\ curs_data.c LIBTARGET = xview TARGETDIR = ../../lib${LIBTARGET}/ SOREV = $(SOXVIEWREV) #include xview-3.2p1.4/lib/libxview/cursor/cur_rodata.c100644 1750 1750 1554 5413747714 16646 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)cur_rodata.c 1.5 93/06/28"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ /* This file is compiled with the -R flag. * This ensures that all data in this file is moved to the text segment * of the shared library. So,this data is strictly read-only. */ #include #define static const #include #include #include #include #include #include #include #include #include #include #include #include xview-3.2p1.4/lib/libxview/cursor/shared/ 40755 1750 1750 0 6354605662 15523 5ustar mbmbxview-3.2p1.4/lib/libxview/defaults/ 40755 1750 1750 0 6354605713 14544 5ustar mbmbxview-3.2p1.4/lib/libxview/defaults/defaults.c100644 1750 1750 37330 6331115757 16641 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)defaults.c 20.33 93/06/28"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ /* * This file contains routines for reading in and accessing an X11 defaults * database. Any errors are printed on the console as warning messeges. */ #include /* Standard I/O library */ #include #include #include #include #ifdef OW_I18N #include #endif #include #include #include #include #include /* ---------------------------------------------------------- */ static char defaults_returned_value[DEFAULTS_MAX_VALUE_SIZE]; /* * SUNDAE buyback notes: * defaults_rdb is made not static because server_init * uses it * * The current implementation of the defaults package has no * notion of per server defaults. This has to be changed. * Currently the XID of the database associated with each server * is stored in the server object. However, in order to prevent the * defaults package from breaking, we have to set the defaults_rdb * global variable to be the XID of the database associated with the * last server that was created. This is extremely ugly and must * be fixed. */ XrmDatabase defaults_rdb;/* merged defaults database */ static Bool symbol_equal(); #ifdef OW_I18N static Bool xv_XrmGetResource(); static char *defaults_locale = NULL; #endif /* OW_I18N */ extern Display *xv_default_display; /* ---------------------------------------------------------- */ /*****************************************************************/ /* Exported routines: */ /*****************************************************************/ /* * NOTE: Any returned string pointers should be considered temporary at best. * If you want to hang onto the data, make your own private copy of the * string! */ /* * defaults_exists(path_name, status) will return TRUE if Path_Name exists in * the database. */ Bool defaults_exists(name, class) char *name; char *class; { char *type; XrmValue value; #ifdef OW_I18N return xv_XrmGetResource(defaults_rdb, name, class, &type, &value); #else return XrmGetResource(defaults_rdb, name, class, &type, &value); #endif } /* * defaults_get_boolean(name, class, default) will lookup name and class in * the defaults database and return TRUE if the value is "True", "Yes", "On", * "Enabled", "Set", "Activated", or "1". FALSE will be returned if the * value is "False", "No", "Off", "Disabled", "Reset", "Cleared", * "Deactivated", or "0". If the value is none of the above, a warning * message will be displayed and Default will be returned. */ Bool defaults_get_boolean(name, class, default_bool) char *name; char *class; Bool default_bool; /* Default value */ { static Defaults_pairs bools[] = { "True", (int) True, "False", (int) False, "Yes", (int) True, "No", (int) False, "On", (int) True, "Off", (int) False, "Enabled", (int) True, "Disabled", (int) False, "Set", (int) True, "Reset", (int) False, "Cleared", (int) False, "Activated", (int) True, "Deactivated", (int) False, "1", (int) True, "0", (int) False, NULL, -1, }; char *string_value; /* String value */ register Bool value; /* Value to return */ string_value = defaults_get_string(name, class, (char *) NULL); if (string_value == NULL) { return default_bool; } value = (Bool) defaults_lookup(string_value, bools); if ((int) value == -1) { #if 1 char buffer[4096]; #else char buffer[64]; #endif (void) sprintf(buffer, XV_MSG("\"%s\" is an unrecognized boolean value (Defaults package)"), string_value); xv_error(NULL, ERROR_STRING, buffer, 0); value = default_bool; } return value; } /* * defaults_get_character(name, class, default) will lookup name and class in * the defaults database and return the resulting character value. Default * will be returned if any error occurs. */ char defaults_get_character(name, class, default_char) char *name; char *class; int default_char; /* Default return value */ { register char *string_value; /* String value */ string_value = defaults_get_string(name, class, (char *) NULL); if (string_value == NULL) { return default_char; } if (strlen(string_value) != 1) { #if 1 char buffer[4096]; #else char buffer[64]; #endif sprintf(buffer, XV_MSG("\"%s\" is not a character constant (Defaults package)"), string_value); xv_error(NULL, ERROR_STRING, buffer, 0); return default_char; } return string_value[0]; } /* * defaults_get_enum(name, class, pairs) will lookup the value associated * with name and class, scan the Pairs table and return the associated value. * If no match is found, an error is generated and the value associated with * last entry (i.e. the NULL entry) is returned. */ int defaults_get_enum(name, class, pairs) char *name; char *class; Defaults_pairs *pairs; /* Pairs table */ { return defaults_lookup(defaults_get_string(name, class, (char *) NULL), pairs); } /* * defaults_get_integer(name, class, default) will lookup name and class in * the defaults database and return the resulting integer value. Default will * be returned if any error occurs. */ int defaults_get_integer(name, class, default_integer) char *name; char *class; int default_integer; /* Default return value */ { register char chr; /* Temporary character */ Bool error; /* TRUE => an error has occurred */ Bool negative; /* TRUE => Negative number */ register int number; /* Resultant value */ register char *cp; /* character pointer */ char *string_value; /* String value */ string_value = defaults_get_string(name, class, (char *) NULL); if (string_value == NULL) { return default_integer; } /* Convert string into integer (with error chacking) */ error = False; negative = False; number = 0; cp = string_value; chr = *cp++; if (chr == '-') { negative = True; chr = *cp++; } if (chr == '\0') error = True; while (chr != '\0') { if ((chr < '0') || (chr > '9')) { error = True; break; } number = number * 10 + chr - '0'; chr = *cp++; } if (error) { #if 1 char buffer[4096]; #else char buffer[64]; #endif sprintf(buffer, XV_MSG("\"%s\" is not an integer (Defaults package)"), string_value); xv_error(NULL, ERROR_STRING, buffer, 0); return default_integer; } if (negative) number = -number; return number; } /* * defaults_get_integer_check(name, class, default, mininum, maximum) will * lookup name and class in the defaults database and return the resulting * integer value. If the value in the database is not between Minimum and * Maximum (inclusive), an error message will be printed. Default will be * returned if any error occurs. */ int defaults_get_integer_check(name, class, default_int, minimum, maximum) char *name; char *class; int default_int;/* Default return value */ int minimum; /* Minimum value */ int maximum; /* Maximum value */ { int value; /* Return value */ value = defaults_get_integer(name, class, default_int); if ((minimum <= value) && (value <= maximum)) return value; else { #if 1 char buffer[4096]; #else char buffer[128]; #endif sprintf(buffer, XV_MSG("The value of name \"%s\" (class \"%s\") is %d,\nwhich is not between %d and %d. (Defaults package)"), name, class, value, minimum, maximum); xv_error(NULL, ERROR_STRING, buffer, 0); return default_int; } } /* * defaults_get_string(instance, class, default) will lookup and return the * null-terminated string value assocatied with instance and class in the * defaults database. Default will be returned if any error occurs. */ char * defaults_get_string(instance, class, default_string) char *instance; /* Usually start with a lowercase letter */ char *class; /* Usually start with an uppercase letter */ char *default_string; /* Default return value */ { char *type; int length; XrmValue value; char *begin_ptr; char *end_ptr; char *word_ptr; #ifdef OW_I18N if (!xv_XrmGetResource(defaults_rdb, instance, class, &type, &value)) #else if (!XrmGetResource(defaults_rdb, instance, class, &type, &value)) #endif return default_string; /* * Strip all the preceding and trailing blanks of *value.addr */ word_ptr = defaults_returned_value; begin_ptr = value.addr; #ifdef OW_I18N while (isspace ((unsigned char)*begin_ptr)) ++begin_ptr; #else while (isspace (*begin_ptr)) ++begin_ptr; #endif length = MIN(value.size - 1, DEFAULTS_MAX_VALUE_SIZE - 1); end_ptr = value.addr + length - 1; #ifdef OW_I18N while (isspace ((unsigned char)*end_ptr)) --end_ptr; #else while (isspace (*end_ptr)) --end_ptr; #endif for (; begin_ptr <= end_ptr; begin_ptr++) { *word_ptr = *begin_ptr; ++word_ptr; } *word_ptr = '\0'; return defaults_returned_value; } /* * set the resource to the specified character value */ void defaults_set_character(resource, value) char *resource; int value; { char str[2]; str[0] = value; str[1] = '\0'; defaults_set_string(resource, str); } /* * set the resource to the specified bool/int value */ void defaults_set_boolean(resource, value) char *resource; Bool value; { static char *yes_str = "True"; static char *no_str = "False"; (void) defaults_set_string(resource, ((int) value) ? yes_str : no_str); } /* * set the resource to the specified integer value */ void defaults_set_integer(resource, value) char *resource; int value; { char str[12]; /* a string large enough to hold 2^32 in * decimal */ (void) sprintf(str, "%d", value); defaults_set_string(resource, str); } /* * set the resource to the specified string value */ void defaults_set_string(resource, value) char *resource; char *value; { XrmPutStringResource(&defaults_rdb, resource, value); } /* * defaults_init_db initializes the X11 Resource Manager. */ void defaults_init_db() { XrmInitialize(); } /* * defaults_load_db(filename) will load the server database if filename is * NULL, or the database residing in the specified file. */ void defaults_load_db(filename) char *filename; { XrmDatabase new_db = NULL; /* martin-2.buck@student.uni-ulm.de */ char *xrmstr; if (filename) new_db = XrmGetFileDatabase(filename); else { if (!xv_default_display) { xv_error(0, ERROR_STRING, XV_MSG("Unable to load server Resource Manager property -\n\ no server defined (Defaults package)"), 0); return; } #ifdef X11R6 #if 1 /* martin-2.buck@student.uni-ulm.de */ if ((xrmstr = XResourceManagerString(xv_default_display))) new_db = XrmGetStringDatabase(xrmstr); #else /* lumpi@dobag.in-berlin.de */ if (XrmGetDatabase(xv_default_display)) new_db=NULL; #endif #else if (xv_default_display->xdefaults) new_db = XrmGetStringDatabase(xv_default_display->xdefaults); #endif } if (new_db) XrmMergeDatabases(new_db, &defaults_rdb); } /* * defaults_store_db(filename) will write the defaults database to the * specified file, and update the server Resource Manager property. */ void defaults_store_db(filename) char *filename; { unsigned char *buffer; FILE *file; struct stat file_status; /* Write the database to the specified file. */ XrmPutFileDatabase(defaults_rdb, filename); /* Update the server Resource mManager property. */ if (!xv_default_display) { xv_error(0, ERROR_STRING, XV_MSG("Unable to update server Resource Manager property -\n\ no server defined (Defaults package)"), 0); return; } if (stat(filename, &file_status)) goto store_db_error; if (!(buffer = xv_calloc(1, (unsigned)file_status.st_size))) goto store_db_error; if (!(file = fopen(filename, "r"))) goto store_db_error; if ((int)fread(buffer, 1, (int) file_status.st_size, file) < (int)(file_status.st_size)) goto store_db_error; XChangeProperty(xv_default_display, RootWindow(xv_default_display, 0), XA_RESOURCE_MANAGER, XA_STRING, 8, PropModeReplace, buffer, file_status.st_size); XSync(xv_default_display, 0); store_db_cleanup: if (file) (void) fclose(file); if (buffer) free(buffer); return; store_db_error: xv_error(0, ERROR_STRING, XV_MSG("Unable to update server Resource Manager property (Defaults package)"), 0); goto store_db_cleanup; } /* * defaults_lookup(name, pairs) will linearly scan the Pairs data structure * looking for Name. The value associated with Name will be returned. If * Name can not be found in Pairs, the value assoicated with NULL will be * returned. (The Pairs data structure must be terminated with NULL.) */ int defaults_lookup(name, pairs) register char *name; /* Name to look up */ register Defaults_pairs *pairs; /* Default */ { register Defaults_pairs *pair; /* Current pair */ for (pair = pairs; pair->name != NULL; pair++) { if (name == NULL) continue; if (symbol_equal(name, pair->name)) break; } return pair->value; } #ifdef OW_I18N void defaults_set_locale(locale, locale_attr) char *locale; Xv_generic_attr locale_attr; { extern Xv_Server xv_default_server; if (defaults_locale != NULL) { xv_free(defaults_locale); defaults_locale = NULL; } if (locale != NULL) { defaults_locale = xv_strsave(locale); } else if (locale_attr != NULL) { if ((defaults_locale = (char *) xv_get(xv_default_server, locale_attr)) != NULL) defaults_locale = xv_strsave(defaults_locale); } } char * defaults_get_locale() { return defaults_locale; } #endif /* OW_I18N */ /*****************************************************************/ /* Private routines: */ /*****************************************************************/ static Bool symbol_equal(symbol1, symbol2) register char *symbol1; /* First symbol */ register char *symbol2; /* Second symbol */ { register char chr1; /* Character from first symbol */ register char chr2; /* Character from second symbol */ while (True) { chr1 = *symbol1++; if (('A' <= chr1) && (chr1 <= 'Z')) chr1 += 'a' - 'A'; chr2 = *symbol2++; if (('A' <= chr2) && (chr2 <= 'Z')) chr2 += 'a' - 'A'; if (chr1 != chr2) return FALSE; if (chr1 == '\0') return TRUE; } } #ifdef OW_I18N static Bool xv_XrmGetResource(rdb, name, class, type, value) XrmDatabase rdb; char *name; char *class; char **type; XrmValue *value; { char lc_name[1024]; char lc_class[1024]; if (defaults_locale != NULL) { (void) sprintf(lc_name, "%s.%s", name, defaults_locale); (void) sprintf(lc_class, "%s.%s", class, defaults_locale); if (XrmGetResource(rdb, lc_name, lc_class, type, value)) return True; } return XrmGetResource(rdb, name, class, type, value); } #endif /* OW_I18N */ xview-3.2p1.4/lib/libxview/defaults/defaults.h100644 1750 1750 13637 5413747716 16660 0ustar mbmb/* "@(#)defaults.h 20.19 91/03/27 SMI */ /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL_NOTICE * file for terms of the license. */ #ifndef xview_defaults_DEFINED #define xview_defaults_DEFINED /* *********************************************************************** * Definitions and Macros *********************************************************************** */ #define DEFAULTS_MAX_VALUE_SIZE 128 /* move this to defaults.h */ #ifndef Bool #define Bool int #endif #ifdef OW_I18N #include #endif #include /* *********************************************************************** * Typedefs, enumerations, and structs *********************************************************************** */ typedef struct _default_pairs { char *name; /* Name of pair */ int value; /* Value of pair */ } Defaults_pairs; /* *********************************************************************** * Globals *********************************************************************** */ /* * Public Functions * * * NOTE: Any returned string pointers should be considered temporary at best. * If you want to hang onto the data, make your own private copy of the string! */ /* * defaults_exists(name, class_name) will return TRUE if a values exists in the database * for name, and class_name. */ EXTERN_FUNCTION (Bool defaults_exists, (char * name, char * class_name)); /* * defaults_get_boolean(name, class_name, ddefault) will lookup name and class_name in * the defaults database and return TRUE if the value is "True", "Yes", "On", * "Enabled", "Set", "Activated", or "1". FALSE will be returned if the * value is "False", "No", "Off", "Disabled", "Reset", "Cleared", * "Deactivated", or "0". If the value is none of the above, a warning * message will be displayed and Default will be returned. */ EXTERN_FUNCTION (Bool defaults_get_boolean, (char *name, char *class_name, Bool ddefault)); /* * defaults_get_character(name, class_name, ddefault) will lookup name and class_name in * the defaults database and return the resulting character value. Default * will be returned if any error occurs. */ EXTERN_FUNCTION (char defaults_get_character, (char *name, char *class_name, int default_char)); /* * defaults_get_enum(name, class_name, pairs) will lookup the value associated * with name and class_name, scan the Pairs table and return the associated value. * If no match is found, an error is generated and the value associated with * last entry (i.e. the NULL entry) is returned. */ EXTERN_FUNCTION (int defaults_get_enum, (char *name, char *class_name, Defaults_pairs *pairs)); /* * defaults_get_integer(name, class_name, ddefault) will lookup name and class_name in * the defaults database and return the resulting integer value. Default will * be returned if any error occurs. */ EXTERN_FUNCTION (int defaults_get_integer, (char *name, char *class_name, int ddefault)); /* * defaults_get_integer_check(name, class_name, ddefault, mininum, maximum) will * lookup name and class_name in the defaults database and return the resulting * integer value. If the value in the database is not between Minimum and * Maximum (inclusive), an error message will be printed. Default will be * returned if any error occurs. */ EXTERN_FUNCTION (int defaults_get_integer_check, (char *name, char *class_name, int ddefault, int minimum, int maximum)); /* * defaults_get_string(name, class_name, ddefault) will lookup and return the * null-terminated string value assocatied with name and class_name in the * defaults database. Default will be returned if any error occurs. */ EXTERN_FUNCTION (char * defaults_get_string, (char *name, char *class_name, char *ddefault)); /* * defaults_init_db() initializes the X11 Resource Manager. */ EXTERN_FUNCTION (void defaults_init_db, (void)); /* * defaults_load_db(filename) will load the server database if filename is * NULL, or the database residing in the specified filename. */ EXTERN_FUNCTION (void defaults_load_db, (char *filename)); /* * defaults_store_db(filename) will write the defaults database to the * specified file, and update the server Resource Manager property. */ EXTERN_FUNCTION (void defaults_store_db, (char *filename)); /* * defaults_lookup(name, pairs) will linearly scan the Pairs data structure * looking for Name. The value associated with Name will be returned. * If Name can not be found in Pairs, the value assoicated with NULL will * be returned. (The Pairs data structure must be terminated with NULL.) */ EXTERN_FUNCTION (int defaults_lookup, (char *name, Defaults_pairs *pairs)); /* * defaults_set_character(resource, value) will set the resource to * value. value is an character. resource is a string. */ EXTERN_FUNCTION (void defaults_set_character, (char *resource, int value)); /* * defaults_set_character(resource, value) will set the resource to * value. value is a integer. resource is a string. */ EXTERN_FUNCTION (void defaults_set_integer, (char *resource, int value)); /* * defaults_set_boolean(resource, value) will set the resource to * value. value is a Boolean. resource is a string. */ EXTERN_FUNCTION (void defaults_set_boolean, (char *resource, Bool value)); /* * defaults_set_string(resource, value) will set the resource to * value. value is a string. resource is a string. */ EXTERN_FUNCTION (void defaults_set_string, (char *resource, char *value)); #ifdef OW_I18N /* * defaults_set_locale(locale, locale_attr) will set locale appendix * of the resource name for the subsequent call to defaults_get_* (). */ EXTERN_FUNCTION (void defaults_set_locale, (char *locale, Xv_generic_attr locale_attr)); /* * defaults_get_locale() will return the current locale appendix * setting. */ EXTERN_FUNCTION (char * defaults_get_locale, (void)); #endif /* OW_I18N */ #endif /* ~xview_defaults_DEFINED */ xview-3.2p1.4/lib/libxview/defaults/hash.h100644 1750 1750 7526 5413747716 15754 0ustar mbmb/* @(#)hash.h 20.12 93/06/28 SMI */ /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ /* * This file contains the routine definitions for all of the routines exported * by the hash table package. */ #ifndef hash_defined #define hash_defined /* * Do not typedef Hash if this header file is being used by hash.c. */ #ifndef Hash_defined #define Hash_defined struct _hash { int count; /* Current number of entires */ long key_empty; /* Value to use for an empty key */ char (*key_equal)(); /* Routine to test equality of two keys */ int (*key_hash)(); /* Function to hash a key */ int (*key_insert)(); /* Function to insert a key */ long *keys; /* Array of keys */ int limit; /* Maximum entries before rehashing */ long value_empty; /* Value to use for an empty value */ int (*value_insert)(); /* Routine to insert a value */ long *values; /* Values array */ int slots; /* Number of slots in hash table */ }; typedef struct _hash *Hash; #endif /* * hash_create(Size, Key_Empty, Key_Equal, Key_Hash, Key_Insert, Value_Empty, * Value_Insert, 7) will create and return a hash table using the parameters. * Due to the large number of arguments, the last argument must be the number * 7 so that a quick check can be made to make sure that they are all there. * All of the arguments except the last one can be NULL'ed out. */ Hash hash_create(); /* * hash_find(Hash, Key, &Value)=>{True,False} will lookup Key in Hash. If Key * is found in Hash, True will be returned and the associated value will be * stored into Value, provided Value is non-Null. Otherwise, False will be * returned. */ Bool hash_find(); /* * hash_get(Hash, Key)=>Value will lookup the value for Key in Hash. If Key * is not in Hash, a fatal error occurs. */ long hash_get(); /* * hash_insert(Hash, Key, Value)=>{True,False} will insert Value into Hash * under Key. If Key is already in Hash, False will be returned and the * previous value will not be changed. Otherwise, True will be returned. */ Bool hash_insert(); /* * hash_lookup(Hash, Key)=>value will lookup Key in Hash. If Key is not * in Hash, Empty_Value will be returned. */ long hash_lookup(); /* * hash_replace(Hash, Key, Value)=>{True,False} will insert Value into Hash * under Key. If Key was already in Hash, True will be returned and the * previous value will be replaced. Otherwise, False will be returned and * the Value will be inserted under Key. */ Bool hash_replace(); /* * hash_show(Hash) will show the contents of Hash on the console. This * routine is used for testing and debugging purposes only. */ void hash_show(); /* * hash_size(Hash) returns the number of entries in Hash. */ int hash_size(); #endif #define SMALLEST_BLK sizeof(struct dblk) /* Size of smallest block */ /* * Description of a data block. * A data block consists of a length word, possibly followed by * a filler word for alignment, followed by the user's data. * To back up from the user's data to the length word, use * (address of data) - ALIGNSIZ; */ #ifdef sparc #define ALIGNSIZ sizeof(double) struct dblk { long size; /* Size of the block */ long filler; /* filler, for double alignment */ char data[ALIGNSIZ]; /* Addr returned to the caller */ }; #endif #ifdef mc68000 #define ALIGNSIZ sizeof(long) struct dblk { long size; /* Size of the block */ char data[ALIGNSIZ]; /* Addr returned to the caller */ }; #endif #ifdef i386 #define ALIGNSIZ sizeof(long) struct dblk { long size; /* Size of the block */ char data[ALIGNSIZ]; /* Addr returned to the caller */ }; #endif #ifdef vax #define ALIGNSIZ sizeof(long) struct dblk { long size; /* Size of the block */ char data[ALIGNSIZ]; /* Addr returned to the caller */ }; #endif #define roundup(x, y) ((((x)+((y)-1))/(y))*(y)) xview-3.2p1.4/lib/libxview/defaults/dflts_impl.h100644 1750 1750 3342 5413747716 17156 0ustar mbmb/* @(#)dflts_impl.h 20.10 93/06/28 SMI */ /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #define MAX_NAME 100 /* Maximum name length */ #define MAX_STRING 255 /* Maximum string length */ #define MAX_ERRORS 10 /* Maximum number of defaults errors */ #define VERSION_NUMBER 2 /* Version number */ #define VERSION_TAG "SunDefaults_Version" /* Version number tag */ #define SEP_CHR '/' /* Separator character */ #define SEP_STR "/" /* Separator string */ typedef char *Symbol; /* A null-terminated string */ typedef Symbol *Name; /* A null-terminated list of symbols */ typedef struct _node *Node; /* Node object */ typedef struct _defaults *Defaults; /* Defaults object */ /* Data structure defintions: */ struct _defaults { /* Defaults data structure */ char *database_dir; /* Database directory; NULL: .defaults only */ int errors; /* Number of errors encountered */ Hash nodes; /* Nodes hash table */ Name prefix; /* Prefix symbol */ char *private_dir; /* Private directory database */ Node root; /* Root node of entire tree */ Hash symbols; /* Symbols hash table */ Bool test_mode; /* TRUE => database inaccessable */ }; struct _node { /* Node object */ Node child; /* Eldest child of parent */ char *default_value; /* Default value associated with node */ Name name; /* Full name */ Node next; /* Next node on same level (brother/sister) */ Node parent; /* Parent node */ char *value; /* Value associated with node */ Bool private : 1;/* TRUE => Private database node */ Bool deleted : 1;/* TRUE => node does not really exist */ Bool file : 1;/* TRUE => file associated with node */ }; xview-3.2p1.4/lib/libxview/defaults/hash.c100644 1750 1750 37121 5413747717 15762 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)hash.c 20.16 93/06/28 Copyr 1985 Sun Micro"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ /* * This file contains a bunch of routines that implement a general purpose * hash table. */ #include /* Get things like TRUE and FALSE defined */ #include #include /* Include hash table exported routines */ /* * Internally used routines: */ void free_data(); void hash_free_memory(); long *get_data(); char *hash_get_memory(); char hash_int_equal(); int hash_int_hash(); int hash_int_insert(); void hash_initialize(); void hash_resize(); /* * hash_create(Size, Key_Empty, Key_Equal, Key_Hash, Key_Insert, Value_Empty, * Value_Insert, 7) will create and return a hash table using the parameters. * Due to the large number of arguments, the last argument must be the * number 7 so that a quick check can be made to make sure that they are all * there. All of the arguments except the last one can be NULL'ed out. */ Hash hash_create(size, key_empty, key_equal, key_hash, key_insert, value_empty, value_insert, check) register int size; /* Number of initial slots */ int key_empty; /* Empty key value */ char (*key_equal) (); /* Key equality routine */ int (*key_hash) (); /* Key hash function */ int (*key_insert) (); /* Key insertion routine */ int value_empty;/* Empty value */ int (*value_insert) (); /* Value insertion routine */ int check; /* Argument count check */ { register Hash hash; /* New hash table */ if (check != 7) { xv_error(NULL, XV_ERROR_NON_RECOVERABLE, XV_ERROR_INTERNAL, XV_ERROR_STRING, "hash_create(): Wrong number of arguments", 0); } hash = (Hash) hash_get_memory(sizeof *hash); hash->count = 0; hash->key_empty = key_empty; hash->key_equal = (key_equal != NULL) ? key_equal : hash_int_equal; hash->key_hash = (key_hash != NULL) ? key_hash : hash_int_hash; hash->key_insert = (key_insert != NULL) ? key_insert : hash_int_insert; hash->value_empty = value_empty; hash->value_insert = (value_insert != NULL) ? value_insert : hash_int_insert; hash_initialize(hash, size); return hash; } /* * hash_destroy(Hash, Key_Destroy, Value_Destroy) will deallocate the storage * associated with Hash. Each key-value pair in Hash will be destroyed by * calling Key_Destroy(Key) and Value_Destroy(Value). If Key_Destroy is * NULL, it will not be called. Likewise, if Value_Destroy is NULL, it will * not be called. */ void hash_destroy(hash, key_destroy, value_destroy) Hash hash; /* Hash table to destroy */ void (*key_destroy) (); /* Key destroy routine */ void (*value_destroy) (); /* Value destroy routine */ { register int count; /* Number of remaining slots */ register long key_empty; /* Empty key */ register long key; /* Current key */ register long *keys; /* Hash keys */ register long slots; /* Number of slots */ register long *values; /* Hash values */ key_empty = hash->key_empty; keys = hash->keys; slots = hash->slots; values = hash->values; if ((key_destroy != NULL) || (value_destroy != NULL)) { for (count = slots; count > 0; count--) { key = *keys++; if (key != key_empty) { if (key_destroy != NULL) key_destroy(key); if (value_destroy != NULL) value_destroy(*values); } values++; } } free_data(hash->keys, (int) slots); free_data(hash->values, (int) slots); hash_free_memory((char *) hash, sizeof *hash); } /* * hash_find(Hash, Key, &Value)=>{True,False} will lookup Key in Hash. If * Key is found in Hash, True will be returned and the associated value will * be stored into Value, provided Value is non-Null. Otherwise, False will * be returned. */ Bool hash_find(hash, key, value) register Hash hash; /* Hash table */ long key; /* Key to lookup */ long *value; /* Place to store value */ { int index; /* Index into table */ index = hash_index(hash, key); if (hash->keys[index] == hash->key_empty) return False; if (value != NULL) *value = hash->values[index]; return True; } /* * hash_get(Hash, Key)=>Value will lookup the value for Key in Hash. If Key * is not in Hash, a fatal error occurs. */ long hash_get(hash, key) register Hash hash; /* Hash table */ long key; /* Key to lookup */ { int index; /* Index into table */ index = hash_index(hash, key); if (hash->keys[index] == hash->key_empty) { char dummy[128]; (void) sprintf(dummy, "hash_get():Could not find key (%x) in table (%x)", key, hash); xv_error(NULL, XV_ERROR_NON_RECOVERABLE, XV_ERROR_INTERNAL, XV_ERROR_STRING, dummy, 0); } else return hash->values[index]; } /* * hash_insert(Hash, Key, Value)=>{True,False} will insert Value into Hash * under Key. If Key is already in Hash, False will be returned and the * previous value will not be changed. Otherwise, True will be returned. */ /* VARARGS1 */ Bool hash_insert(hash, key, value) Hash hash; /* Hash table */ long key; /* Key to insert under */ long value; /* Value to insert */ { register int index; /* Index into hash table */ if (hash->count == hash->limit) hash_resize(hash); index = hash_index(hash, key); if (hash->keys[index] == hash->key_empty) { hash->keys[index] = hash->key_insert(key); hash->values[index] = hash->value_insert(value); hash->count++; return True; } else return False; } /* * hash_lookup(Hash, Key)=>value will lookup Key in Hash. If Key is not in * Hash, Empty_Value will be returned. */ /* VARARGS1 */ long hash_lookup(hash, key) Hash hash; /* Hash table */ long key; /* Key to lookup */ { return hash->values[hash_index(hash, key)]; } /* * hash_replace(Hash, Key, Value)=>{True,False} will insert Value into Hash * under Key. If Key was already in Hash, True will be returned and the * previous value will be replaced. Otherwise, False will be returned and * the Value will be inserted under Key. */ Bool hash_replace(hash, key, value) register Hash hash; /* Hash table */ long key; /* Key to insert under */ long value; /* Value to insert */ { register int index; /* Index into hash table */ if (hash->count == hash->limit) hash_resize(hash); index = hash_index(hash, key); if (hash->keys[index] == hash->key_empty) { hash->keys[index] = hash->key_insert(key); hash->values[index] = hash->value_insert(value); hash->count++; return False; } hash->values[index] = hash->value_insert(value); return True; } /* * hash_scan(Hash, Routine, Data) will scan the entire contents of the hash * table calling Routine(Key, Value, Data) for each key-value pair in Hash. * The sum of the values returned by routine will be returned. */ int hash_scan(hash, routine, data) Hash hash; /* Hash table */ register int (*routine) (); /* Routine to scan with */ register long data; /* Data value */ { register int count; /* Remaining slots to scan */ register int sum; /* Sum of returned values */ register long key_empty; /* Empty key value */ register long key; /* Current key */ register long *keys; /* Hash table keys */ register long *values; /* Hash table values */ sum = 0; key_empty = hash->key_empty; keys = hash->keys; values = hash->values; for (count = hash->slots; count > 0; count--) { key = *keys++; if (key != key_empty) sum += routine(key, *values, data); values++; } return sum; } /* * hash_show(Hash) will show the contents of Hash on the console. This * routine is used for testing and debugging purposes only. */ void hash_show(hash) register Hash hash; /* Hash table */ { int index; /* Index into table */ register long *keys; /* Keys array */ int slots; /* Slots in table */ register long *values; /* Values array */ (void) printf("Hash:%x Count:%d Limit:%d Slots:%d\n", hash, hash->count, hash->limit, hash->slots); (void) printf("Key_Empty:%d Key_Equal:%x Key_Hash:%x Key_Insert:%x\n", hash->key_empty, hash->key_equal, hash->key_hash, hash->key_insert); (void) printf("Value_Empty:%d Value_Insert:%d Keys:%x Values:%x\n", hash->value_empty, hash->value_insert, hash->keys, hash->values); keys = hash->keys; slots = hash->slots; values = hash->values; for (index = 0; index < slots; index++) (void) printf("[%d] %d:%d\n", index, *keys++, *values++); } /* * hash_size(Hash) returns the number of entries in Hash. */ int hash_size(hash) Hash hash; /* Hash table to use */ { return hash->count; } /*****************************************************************/ /* Internal routines: */ /*****************************************************************/ /* * hash_index(Hash, Key) will compute the index into Hash where Key should go * (if it is not already there.) */ static int hash_index(hash, key) register Hash hash; /* Hash table */ long key; /* Key to use */ { register unsigned int index;/* Index into table */ long key_empty; /* Empty key */ char (*key_equal) (); /* Key equality function */ long key_temp; /* Temporary key */ register long *keys; /* Hash table keys */ int slots; /* Number of slots in table */ key_empty = hash->key_empty; key_equal = hash->key_equal; keys = hash->keys; slots = hash->slots; index = hash->key_hash(key, slots); if (index >= slots) index %= slots; while (True) { key_temp = keys[index]; if (key_temp == key_empty) return index; if (key_equal(key, key_temp)) return index; if (++index >= slots) index = 0; } } /* * hash_initialize(Hash, Size) will initialize Hash to contain Size table * entries. */ static void hash_initialize(hash, size) register Hash hash; /* Hash table */ register int size; /* Number of slots */ { hash->keys = get_data(size, (int) hash->key_empty); hash->values = get_data(size, (int) hash->value_empty); hash->slots = size; hash->limit = size * 8 / 10; } /* * hash_int_equal(Int1, Int2) will return True if Int1 equals Int2. */ static char hash_int_equal(int1, int2) int int1; /* First integer */ int int2; /* Second integer */ { return (int1 == int2); } /* * hash_int_hash(number) will return a hash on number. */ static int hash_int_hash(number) int number; /* Number to hash */ { return number; } /* * hash_int_insert(number) will return a copy of number. */ static int hash_int_insert(number) int number; /* Number to insert */ { return number; } /* * hash_resize(Hash) will increase the number of slots in the hash table. */ static void hash_resize(hash) register Hash hash; /* Hash table to resize. */ { int count; /* Number of entries to reinsert */ int index; /* Index into hash table */ long key; /* Current key */ long key_empty; /* Empty key value */ register long *key_pointer;/* Pointer into old keys */ long *new_keys; /* New keys */ long *new_values; /* New values */ long *old_keys; /* Old keys */ long *old_values; /* Old values */ int slots; /* Number of slots in old table */ long value; /* Current value */ register long *value_pointer; /* Pointer into old values */ key_empty = hash->key_empty; old_keys = hash->keys; old_values = hash->values; slots = hash->slots; hash_initialize(hash, slots << 1); new_keys = hash->keys; new_values = hash->values; key_pointer = old_keys; value_pointer = old_values; for (count = slots; count > 0; count--) { key = *key_pointer++; value = *value_pointer++; if (key != key_empty) { index = hash_index(hash, key); new_keys[index] = key; new_values[index] = value; } } free_data(old_keys, slots); free_data(old_values, slots); } /* * get_data(Size, Value) will get Size words of data and initialize them to * Value. */ static long * get_data(size, value) register int size; /* Number of words to allocate */ register int value; /* Value to initialize to */ { long *data; /* Data array */ register long *pointer; /* Pointer into data */ data = (long *) hash_get_memory(size << 2); /* Machine dependent! */ pointer = data; while (size-- > 0) *pointer++ = value; return data; } /* * hash_get_memory(Size) will allocate Size bytes of memory. If the memory is * not available, a fatal error will occur. * * Private to defaults, hash and parse packages. Replaces the private get_memory * routines that use to be in those packages. Introduced after 4.0Beta2 to * put all defaults related storage into separate pages to avoid thrashing * through VM. * * hash_get_memory() does not support deallocation, thus hash_free_memory() is a * no-op. */ static char *end_plus_one, *next_free; /* = 0 for -A-R */ #ifdef HASH_ALLOC_COUNT int hash_requested_count, hash_wasted_count; /* = 0 for -A-R */ #endif char * hash_get_memory(size) int size; /* Number of bytes to allocate */ { register char *data; /* Newly allocated data */ register int page_size, size_to_valloc; /* * guarantee at least one word of usable data, make sure align on * boundary */ if (size < SMALLEST_BLK) { size = SMALLEST_BLK; } else { size = roundup(size, ALIGNSIZ); } #ifdef HASH_ALLOC_COUNT hash_requested_count += size; #endif if (end_plus_one < (next_free + size)) { /* * Request too big for remaining space in current block, so discard * rest of current block and get new block. */ #ifdef HASH_ALLOC_COUNT hash_wasted_count += end_plus_one - next_free; #endif page_size = getpagesize(); size_to_valloc = ((size + page_size - 1) / page_size) * page_size; /* * Try to stay in page, so leave room for the malloc node overhead if * size is not too big. */ if (size_to_valloc >= size + 8) size_to_valloc -= 8; next_free = xv_valloc(size_to_valloc); if (next_free == (char *) 0) { char dummy[128]; (void) sprintf(dummy, "Could not valloc %d bytes (Out of swap space?)", size_to_valloc); xv_error(NULL, XV_ERROR_NON_RECOVERABLE, XV_ERROR_INTERNAL, XV_ERROR_STRING, dummy, 0); } end_plus_one = next_free + size_to_valloc; } data = next_free; next_free += size; return data; } /* * free_data(Data, Size) will free Size words of Data. */ static void free_data(data, size) long *data; /* Data to free */ int size; /* Number of words to free */ { hash_free_memory((char *) data, size << 2); /* Machine dependent! */ } /* * hash_free_memory(Data, Size) should free the Size bytes of Data, but due * to the quick-and-dirty nature of hash_get_memory does not. */ /* ARGSUSED */ static void hash_free_memory(data, size) char *data; /* Data to free */ int size; /* Number of bytes to free */ { } xview-3.2p1.4/lib/libxview/defaults/parse.c100644 1750 1750 21326 5413747717 16151 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)parse.c 20.13 93/06/28 Copyr 1985 Sun Micro"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ /* * This package contains routines for parsing numbers and strings from a * standard I/O stream. */ #include /* True, False, ... */ #include /* Standard I/O Library */ #include #include /* Exported routine definitions */ #define STRING_SIZE 255 /* Maximum string size */ /* If character at a time debugging is needed, remove these two defines. */ #define getchr(fp) ((int)getc(fp)) /* Get next character */ #define ungetchr ungetc /* Unget next character */ extern char *hash_get_memory(); /* * Locally defined procedures in alphabetical order: */ int parse_octal(); int parse_backslash_chr(); /* * parse_comments(in_file) will skip over a C-style comment from In_File. */ void parse_comments(in_file) register FILE *in_file; /* Input file */ { register int chr; /* Temporary character */ chr = parse_whitespace(in_file); if (chr == ';') (void) parse_eol(in_file); else if (chr == '/') { if (getchr(in_file) != '*') { (void) ungetchr('*', in_file); (void) ungetchr('/', in_file); return; } while (True) { chr = getchr(in_file); if ((chr == '*') && (getchr(in_file) == '/')) break; if (chr == EOF) break; } (void) parse_whitespace(in_file); } else (void) ungetchr(chr, in_file); } /* * parse_string(in_file, text, max_size) will parse a C-style string from * In_File and return the result into Text. If Text is NULL, a string will * be malloc'ed and returned. If Text is non-NULL, Max_Size specifies the * maximum size string that can be read into Text. If any error occurs, NULL * will be returned. */ char * parse_string(in_file, text, max_size) register FILE *in_file; /* Input file */ char *text; /* Place to store string */ int max_size; /* Maximum size */ { register int chr; /* Temporary character */ register char *pointer; /* Pointer into string */ register int size; /* String size */ char temp[STRING_SIZE]; /* Temporary string */ size = 0; if (text == NULL) { pointer = temp; max_size = STRING_SIZE; } else pointer = text; max_size--; /* Just in case */ chr = parse_whitespace(in_file); if (chr != '"') { (void) ungetchr(chr, in_file); return NULL; } getchr(in_file); while (size < max_size) { chr = getchr(in_file); if (chr == '"') break; if (chr == '\n') { (void) ungetchr(chr, in_file); return NULL; } if (chr == EOF) return NULL; if (chr == '\\') { (void) ungetchr(chr, in_file); chr = parse_backslash_chr(in_file); if (chr == -1) return NULL; } *pointer++ = chr; size++; if (size >= max_size) return NULL; } if (size == max_size) return NULL; *pointer = '\0'; if (text == NULL) { text = hash_get_memory(size + 1); (void) strcpy(text, temp); } return text; } /* * parse_chr(in_file) will parse a single C-style character from In_File and * return the result. -1 will be returned on any errors. */ int parse_chr(in_file) register FILE *in_file; /* Input file */ { register int chr; /* Temporary character */ int temp_chr; /* Yet another temporary character */ chr = getchr(in_file); if (chr != '\'') return -1; chr = parse_backslash_chr(in_file); if (chr < 0) return -1; temp_chr = getchr(in_file); if (temp_chr == '\'') return chr; else return -1; } /* * parse_backslash_chr(infile) will parse a C-style backslash character. */ static int parse_backslash_chr(in_file) register FILE *in_file; /* Input file */ { register char chr; /* Temporary character */ int count; /* Number of octal digits */ int number; /* Number associated with character */ chr = getchr(in_file); if (chr != '\\') return -1; chr = getchr(in_file); switch (chr) { case 't': return '\t'; case 'n': return '\n'; case 'b': return '\b'; case 'r': return '\r'; case '\\': return '\\'; case 'f': return '\f'; case '\'': return '\''; case '"': return '"'; } number = 0; count = 0; while (count < 3) { if (('0' <= chr) && (chr <= '7')) { number = number * 8 + chr - '0'; chr = getchr(in_file); count++; } else { break; } } (void) ungetchr(chr, in_file); return (count == 0) ? -1 : number; } /* * parse_symbol(infile, symbol) will read in symbol from In_File and store * the result into Symbol. A symbol contains an alphanumeric or an * underscore. Storage will be malloc'ed if Symbol is NULL. If an error * occurs, NULL will be returned. */ char * parse_symbol(in_file, symbol) register FILE *in_file; /* Input file */ char *symbol; /* Optional place to store symbol */ { register int chr; /* Temporary character */ Bool got_chr; /* True => got a character */ char *pointer; /* Pointer into string */ int size; /* String size */ char temp[STRING_SIZE]; /* Temporary string */ got_chr = False; pointer = (symbol == NULL) ? &temp[0] : symbol; size = 0; chr = parse_whitespace(in_file); chr = getchr(in_file); while ((' ' < chr) && (chr <= '~') && (chr != '/')) { got_chr = True; *pointer++ = chr; size++; chr = getchr(in_file); } (void) ungetchr(chr, in_file); if (!got_chr) return NULL; *pointer = '\0'; if (symbol == NULL) { symbol = hash_get_memory(size + 1); (void) strcpy(symbol, &temp[0]); } return symbol; } /* * parse_int(in_file, error) will parse an integer from In_File. *Error will * be set to True if any error occurs. If Error is NULL, an error message * will be printed and the program will be terminated. */ int parse_int(in_file, error) register FILE *in_file; /* Input file */ Bool *error; /* Error flag; NULL => halt on error */ { register int chr; /* Temporary character */ Bool have_error; /* True => have an error */ Bool negative; /* True => negative number */ int number; /* Resultant number */ have_error = True; /* True until first digit is read */ negative = False; number = 0; (void) parse_whitespace(in_file); chr = getchr(in_file); if (chr == '-') { negative = True; chr = getchr(in_file); } while (('0' <= chr) && (chr <= '9')) { have_error = False; number = number * 10 - '0' + chr; chr = getchr(in_file); } (void) ungetchr(chr, in_file); if (error == NULL) { if (have_error) { xv_error(NULL, XV_ERROR_NON_RECOVERABLE, XV_ERROR_INTERNAL, XV_ERROR_STRING, "parse_int(): No integer", 0); } } else *error = have_error; if (negative) number = -number; return number; } /* * parse_eol(in_file) will read characters from In_File until a new-line is * encountered. True will be returned when an end-of-file is encountered. */ Bool parse_eol(in_file) register FILE *in_file; /* Input file */ { register int chr; /* Temporary character */ do chr = getchr(in_file); while ((chr != '\n') && (chr != EOF)); return (Bool) (chr == EOF); } /* * parse_whitespace(in_file) will skip over any spaces and tabs from In_File. * The character that terminated the whitespace is returned. */ int parse_whitespace(in_file) register FILE *in_file; /* Input file */ { register int chr; /* Temporary character */ do chr = getchr(in_file); while ((chr == ' ') || (chr == '\t')); (void) ungetchr(chr, in_file); return chr; } /* * getchar(in_file) will return the next character from In_File. This * routine is used instead of getc so that it will be easier to debug this * package. */ /* * static int xgetchr(in_file) register FILE *in_file; *//* Input file */ /* * { register int chr; *//* Temporary character */ /* * chr = getc(in_file); */ /* * if ((' ' <= chr) && (chr <= '~')) printf("%c", chr); else printf("\\%3o", * chr); */ /* * return chr; } */ /* * ungetchr(chr, in_file) will push Chr back onto the In_File stream. This * routine is used instead of ungetc so that it will be easier to debug this * package. */ /* * static void xungetchr(chr, in_file) register int chr; *//* Character to push back */ /* register FILE *in_file; *//* Input file */ /* * { (void)ungetc(chr, in_file); */ /* * if ((' ' <= chr) && (chr <= '~')) printf("<%c>", chr); else * printf("<\\%3o>", chr); */ /* * } */ xview-3.2p1.4/lib/libxview/defaults/parse.h100644 1750 1750 3172 5413747717 16135 0ustar mbmb/* "@(#)parse.h 20.9 93/06/28 SMI */ /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #ifndef profile_defined #define profile_defined /* * This file contains the procedure definitions for the parse.c package. */ /* * parse_chr(in_file) will read in a C-style character constant from In_File. * -1 will be returned if any error occurs. */ int parse_chr(); /* * parse_comments(in_file) will skip over a C-style comment from In_File. */ void parse_comments(); /* * parse_eol(in_file) will read characters from In_File until a new-line is * encountered. TRUE will be returned when an end-of-file is encountered. */ Bool parse_eol(); /* * parse_int(in_file, error) will parse an integer from In_File. *Error will * be set to TRUE if any error occurs. If Error is NULL, an error message will * be printed and the program will be terminated. */ int parse_int(); /* * parse_string(in_file, text) will parse a C-style string from In_File and * return the result into Text. If Text is NULL, a string will be malloc'ed * and returned. */ char *parse_string(); /* * parse_symbol(infile, symbol) will read in symbol from In_File and store * the result into Symbol. A symbol contains an alphanumeric or an * underscore. Storage will be malloc'ed if Symbol is NULL. -1 will be * returned if an error occurs. */ char *parse_symbol(); /* * parse_whitespace(in_file) will skip over any spaces and tabs from In_File. * The character that terminated the whitespace is returned. */ int parse_whitespace(); #endif xview-3.2p1.4/lib/libxview/defaults/dflts_put.c100644 1750 1750 45361 5413747720 17042 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)dflts_put.c 20.15 93/06/28"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #include /* Standard I/O library */ #include /* Password file stuff */ #include /* Get u_long defined for dir.h */ #include /* Directory access routines */ #include /* File status information */ #include /* Define True, False, etc... */ #include /* Hash table definitions */ #include /* Parsing routine */ #include #include #include /* Externally used routines: */ extern void bomb(); extern void clear_status(); extern void defaults_create(); extern char *xv_getlogindir(); extern Name name_copy(); extern void name_quick_parse(); extern char *name_unparse(); extern void node_delete(); extern void node_delete_private(); extern Node node_find_name(); extern Node node_lookup_name(); extern Node node_lookup_path(); extern void node_write(); extern void node_write1(); extern Node path_lookup(); extern void read_master(); extern void read_master_database(); extern void read_private_database(); extern void set(); extern char *slash_append(); extern void str_write(); extern Symbol symbol_copy(); extern Bool symbol_equal(); extern Symbol symbol_lookup(); extern void warn(); extern char *hash_get_memory(); extern char *getenv(); extern Defaults defaults; /* * defaults_move(to_path_name, from_path_name, before_flag, status) will * rearrange the defaults database so that From_Path_Name will internally be * next to To_Path_Name. If Before_Flag is True, a call to * defaults_get_sibling(To_Path_Name) will return From_Path_Name. If * Before_Flag is False, a call to defaults_get_child(From_Path_Name) will * return To_Path_Name. */ void defaults_move(to_path_name, from_path_name, before_flag, status) char *to_path_name; /* Destination path name */ char *from_path_name; /* Source path_name */ Bool before_flag;/* True => Insert before */ int *status; /* Status flag */ { Node anchor; /* Node behind last one */ Node from_node; /* From node */ Node parent; /* Parent node */ Node temp; /* Temporay node */ Node to_node; /* To node */ /* Check to be sure the nodes can be moved. */ clear_status(status); from_node = node_lookup_path(from_path_name, False, status); if (from_node == NULL) return; to_node = node_lookup_path(to_path_name, False, status); if (to_node == NULL) return; if (from_node == to_node) { warn("%s and %s are the same node", to_path_name, from_path_name); return; } if (from_node->parent != to_node->parent) { warn("%s and %s are not siblings of one another", to_path_name, from_path_name); return; } parent = from_node->parent; /* Remove from node from database tree. */ if (parent->child == from_node) parent->child = from_node->next; else { temp = parent->child; do { anchor = temp; temp = temp->next; } while ((temp != NULL) && (temp != from_node)); if (temp == NULL) { warn("Data structure around %s and %s is messed up", to_path_name, from_path_name); return; } anchor->next = temp->next; } from_node->next = NULL; /* Re-insert the node. */ if (!before_flag) { from_node->next = to_node->next; to_node->next = from_node; return; } if (parent->child == to_node) parent->child = from_node; else { temp = parent->child; do { anchor = temp; temp = temp->next; } while ((temp != NULL) && (temp != to_node)); if (temp == NULL) { warn("Data structure around %s and %s is messed up", to_path_name, from_path_name); return; } anchor->next = from_node; } from_node->next = to_node; } /* * defaults_remove(path_name, status) will remove Path_Name and its children * from the defaults database. */ void defaults_remove(path_name, status) char *path_name; /* Full path name of node to remove */ int *status; /* Status flag */ { register Node node; /* Node to delete */ clear_status(status); node = path_lookup(path_name, status); if (node != NULL) node_delete(node); } /* * defaults_remove_private(path_name, status) will remove Path_Name and its * children from the defaults database. */ void defaults_remove_private(path_name, status) char *path_name; /* Full path name of node to remove */ int *status; /* Status flag */ { register Node node; /* Node to delete */ clear_status(status); node = path_lookup(path_name, status); if (node != NULL) node_delete_private(node); } /* * defaults_set_character(path_name, value, status) will set Path_name to * Value. Value is a character. */ void defaults_set_character(path_name, value, status) char *path_name; /* Name to look up */ char value; /* Character to set */ int *status; /* Status flag */ { register char *new_value; /* New value */ clear_status(status); new_value = hash_get_memory(2); new_value[0] = value; new_value[1] = '\0'; set(path_name, new_value, status); } /* * defaults_set_enumeration(path_name, value, status) will set Path_Name to * Value. Value is a pointer to a string. */ void defaults_set_enumeration(path_name, value, status) char *path_name; /* Full node name */ char *value; /* Enumeration value */ int *status; /* Status flag */ { Symbol name[MAX_NAME]; /* Temporary name */ register Symbol *name_pointer; /* Name pointer */ register Node node; /* Temporary Node */ register int size; /* Name size */ register Node temp_node; /* Temporary node */ clear_status(status); name_pointer = name; name_quick_parse(path_name, name_pointer); node = node_find_name(name_pointer, True, status); if (node == NULL) { warn("Can not insert '%s' into database", path_name); return; } /* type check the enum if we've got the master database */ if (defaults->database_dir) { size = name_length(name_pointer); /* is it an enum? */ name_pointer[size] = symbol_lookup("$Enumeration"); name_pointer[size + 1] = NULL; temp_node = node_lookup_name(name_pointer, True, status); if (temp_node == NULL) { warn("'%s' is not an enumeration node", path_name); return; } /* is it a valid one? */ name_pointer[size] = symbol_lookup(value); temp_node = node_lookup_name(name_pointer, True, status); if (temp_node == NULL) { warn("%s can not have %s assigned as its value", path_name, value); return; } } node->value = symbol_copy(value); node->deleted = False; node->private = True; } /* * defaults_set_integer(path_name, value, status) will set Path_Name to * Value. Value is an integer. */ void defaults_set_integer(path_name, value, status) char *path_name; /* Full node name */ int value; /* Integer value */ int *status; /* Status flag */ { char temp_value[MAX_STRING]; /* Temporary string value */ clear_status(status); (void) sprintf(temp_value, "%d", value); set(path_name, symbol_copy(temp_value), status); } /* * defaults_set_prefix(prefix, status) will cause all subsequent node lookup * to first a node under Prefix first. For example, if the prefix has been * set to "/Mumble/Frotz" and the user accesses "/Fee/Fie/Fo", first * "/Mumble/Frotz/Fee/Fie/Fo" will looked at and then if it is not available * "/Fee/Fie/Fo" will be looked at. This is used to permit individual * programs to permit overriding of defaults. If Prefix is NULL, the prefix * will be cleared. */ void defaults_set_prefix(prefix, status) register char *prefix; /* Prefix to use */ int *status; /* Status flag */ { Symbol name[MAX_NAME]; /* Temporary name */ clear_status(status); if (defaults == NULL) defaults_init(False); if (prefix == NULL) { defaults->prefix = NULL; return; } name_quick_parse(prefix, name); defaults->prefix = name_copy(name); defaults->test_mode = defaults_get_boolean("/Defaults/Test_Mode", False, (int *) NULL); } /* * defaults_set_string(path_name, value, status) will set Path_Name to Value. * Value is a poitner to a string. */ void defaults_set_string(path_name, value, status) char *path_name; /* Full node name */ char *value; /* New string value */ int *status; /* Status flag */ { set(path_name, symbol_copy(value), status); } /* * defaults_write_all(path_name, file_name, status) will write the all of the * database nodes from Path_Name and below into File_Name. Out_File is the * string name of the file to create. If File_Name is NULL, env var * DEFAULTS_FILE will be used. */ void defaults_write_all(path_name, file_name, status) char *path_name; /* Path name */ char *file_name; /* Output file name */ int *status; /* Status flag */ { node_write(path_name, file_name, status, 0); } /* * defaults_write_changed(file_name, status) will write out all of the * private database entries to File_Name. Any time a database node is set it * becomes part of the private database. Out_File is the string name of the * file to create. If File_Name is NULL, env var DEFAULTS_FILE will be used. */ void defaults_write_changed(file_name, status) char *file_name; /* Output file name */ int *status; /* Status flag */ { node_write("/", file_name, status, 1); } /* * defaults_write_differences(file_name, status) will write out all of the * database entries that differ from the master database. Out_File is the * string name of the file to create. If File_Name is NULL, env var * DEFAULTS_FILE be used. */ void defaults_write_differences(file_name, status) char *file_name; /* Output file name */ int *status; /* Status flag */ { node_write("/", file_name, status, 2); } /* * node_write(path_name, file_name, status, flag) will write Path_Name to * File_Name. If File_Name is NULL, env var DEFAULTS_FILE will be used. */ static void node_write(path_name, file_name, status, flag) char *path_name; /* Path name */ char *file_name; /* File name */ int *status; /* Status flag */ int flag; /* Control flag */ { char name[MAX_STRING]; /* Temporary name */ register Node node; /* Node to output */ register FILE *out_file; /* Output file */ char *login_dir; clear_status(status); node = path_lookup(path_name, status); if (node == NULL) return; if (file_name == NULL) { if ((file_name = getenv("DEFAULTS_FILE")) == NULL) { file_name = name; if ((login_dir = xv_getlogindir()) != NULL) { (void) strcpy(file_name, xv_getlogindir()); } (void) strcat(file_name, "/.defaults"); } else { strcpy(name, file_name); file_name = name; } } out_file = fopen(file_name, "w"); if (out_file == NULL) { warn("Could not open %s", file_name); return; } (void) fprintf(out_file, "%s %d\n", VERSION_TAG, VERSION_NUMBER); node_write1(out_file, node, flag); (void) fclose(out_file); } /* * node_write1(out_file, node, flag) will write out the contents of Node to * Out_File. Flag is 0, if the entire database is to be written out. Flag is * 1 if only the changed entries are to be written out. Flag is 2, if only * differences from the master database are to be written out. */ static void node_write1(out_file, node, flag) register FILE *out_file; /* Output file */ register Node node; /* Node to output */ register int flag; /* TRUE => entire database */ { char temp[MAX_STRING]; /* Temporary name */ if (!node->deleted && ((flag == 0) || ((flag == 2) && node->private) || !symbol_equal(node->value, node->default_value) || always_save(node)) ) { (void) name_unparse(node->name, temp); (void) fprintf(out_file, "%s", temp); if (strcmp(node->value, DEFAULTS_UNDEFINED) != 0) { (void) fprintf(out_file, "\t"); str_write(out_file, node->value); } putc('\n', out_file); } for (node = node->child; node != NULL; node = node->next) node_write1(out_file, node, flag); } static int always_save(node) register Node node; { char *buf[29]; /* buffer */ Symbol *sym; int i; if (node->name == NULL) return (FALSE); for (i = 0; node->name[i] != NULL; i++) buf[i] = node->name[i]; /* copy name */ buf[i++] = symbol_lookup("$Always_Save"); buf[i] = NULL; return (node_lookup_name(buf, False, (int *) NULL) != NULL); } /* * set(path_name, new_value) will set Full_Name to type Node_Type with value * New_Value. */ static void set(path_name, new_value, status) char *path_name; /* Full node name */ char *new_value; /* New value */ int *status; /* Status flag */ { Symbol name[MAX_NAME]; /* Name */ register Node node; /* Node to set */ if (defaults == NULL) defaults_init(False); /* Get the node assoicated with Full_Name. */ name_quick_parse(path_name, name); node = node_find_name(name, True, status); if (node == NULL) { warn("Can not bind node to '%s'", path_name); return; } /* It is not worth the effort to try to deallocate any storage. */ node->value = new_value; node->private = True; node->deleted = False; } /* * defaults_special_mode() will cause the database to behave as if the entire * master database has been read into memory prior to reading in the private * database. This is done to insure that the order of nodes that defaultsedit * presents is the same as that in the .D files, regardless of what the user * happens to have set in his private database. */ void defaults_special_mode() { char *database_dir; /* Database directory */ register Node node; /* Current node to process */ char *private_dir;/* Private directory */ /* Create database. */ defaults = NULL; defaults_create(); /* * Read in env var DEFAULTS_FILE to find out where database directories * are. */ read_private_database(); node = node_lookup_path("/Defaults/Directory", False, (int *) NULL); database_dir = (node == NULL) ? NULL : slash_append(node->value); node = node_lookup_path("/Defaults/Private_Directory", False, (int *) NULL); private_dir = (node == NULL) ? NULL : slash_append(node->value); /* * The previous five statements may be superfluous. It appears that * read_master_database does this itself. */ /* Drop the entire private database on the floor! */ defaults = NULL; defaults_create(); defaults->database_dir = database_dir; defaults->private_dir = private_dir; /* * Read in master database before private database so that node order is * preserved in master database order rather than private order. */ read_master_database(); read_private_database(); for (node = defaults->root->child; node != NULL; node = node->next) if (node->file) read_master(node->name[0]); defaults->test_mode = defaults_get_boolean("/Defaults/Test_Mode", False, (int *) NULL); } /* * str_write(out_file, string) will write String to Out_File as a C-style * string. */ static void str_write(out_file, string) register FILE *out_file; /* Output file */ register char *string; /* String to output */ { register int chr; /* Temporary character */ putc('"', out_file); while (True) { chr = *string++; if (chr == '\0') break; if ((' ' <= chr) && (chr <= '~') && (chr != '\\') && (chr != '"')) { putc(chr, out_file); continue; } putc('\\', out_file); switch (chr) { case '\n': chr = 'n'; break; case '\r': chr = 'r'; break; case '\t': chr = 't'; break; case '\b': chr = 'b'; break; case '\\': chr = '\\'; break; case '\f': chr = 'f'; break; case '"': chr = '"'; break; } if ((' ' <= chr) && (chr <= '~')) putc(chr, out_file); else (void) fprintf(out_file, "%03o", chr & 0377); } putc('"', out_file); } /* * warn(format, arg1, arg2, arg3) will print out a warning message to the * console using Format, Arg1, Arg2 and Arg3. This is all provided the * number of errors has not gotten too excessive. */ /* VARARGS1 */ void warn(format, arg1, arg2, arg3, arg4) char *format; /* Format string */ long arg1; /* First argument */ long arg2; /* Second argument */ long arg3; /* Third argument */ long arg4; /* Fourth argument */ { static Defaults_pairs error_action[] = { "Continue", 1, "Abort", 2, "Suppress", 3, NULL, 1, }; register int action; /* Action number */ int errors; /* Number of errors */ int max_errors; /* Maximum errors */ register Node node; /* Error action node */ char temp[MAX_STRING]; /* Temporary string */ action = 1; if (defaults == NULL) errors = 0; else { errors = ++defaults->errors; /* See how many errors to accept. */ (void) strcpy(temp, SEP_STR); (void) strcat(temp, "Defaults"); (void) strcat(temp, SEP_STR); (void) strcat(temp, "Maximum_Errors"); node = node_lookup_path(temp, True, (int *) NULL); if (node == NULL) max_errors = MAX_ERRORS; else max_errors = atoi(node->value); if (defaults->errors == max_errors) format = "Suppressing all subsequent errors"; /* See what to do on error action. */ (void) strcpy(temp, SEP_STR); (void) strcat(temp, "Defaults"); (void) strcat(temp, SEP_STR); (void) strcat(temp, "Error_Action"); node = node_lookup_path(temp, True, (int *) NULL); if (node != NULL) action = defaults_lookup(node->value, error_action); } if ((errors <= max_errors) && (action < 3)) { (void) fprintf(stderr, "SunDefaults Error: "); (void) fprintf(stderr, format, arg1, arg2, arg3, arg4); (void) fprintf(stderr, "\n"); (void) fflush(stderr); } if (action == 2) bomb(); } /*****************************************************************/ /* Internal routines: */ /*****************************************************************/ /* * bomb() will cause the program to bomb. */ static void bomb() { (void) fflush(stderr); sleep(5); /* Wait for error message to show up */ abort(); } xview-3.2p1.4/lib/libxview/defaults/Imakefile100644 1750 1750 1326 5413747720 16454 0ustar mbmb#include #if SharedLibXView #define DoSharedLib YES #endif #include /**/########################################################################### /**/# @(#)Imakefile 1.8 28 Jun 1993 SMI #ifndef SubdirHasTextObjs #define SubdirHasTextObjs YES #endif #ifndef SubdirHasDataObjs #define SubdirHasDataObjs NO #endif #ifndef SubdirHasPublicHeaders #define SubdirHasPublicHeaders YES #endif #ifndef SubdirHasPrivateHeaders #define SubdirHasPrivateHeaders NO #endif HDRSPUBLIC= defaults.h HDRSPRIVATE= DATA_OBJS = TEXT_OBJS =\ defaults.o OBJS = $(TEXT_OBJS) $(DATA_OJS) SRCS =\ defaults.c LIBTARGET = xview TARGETDIR = ../../lib${LIBTARGET}/ SOREV = $(SOXVIEWREV) #include xview-3.2p1.4/lib/libxview/defaults/shared/ 40755 1750 1750 0 6354605663 16016 5ustar mbmbxview-3.2p1.4/lib/libxview/filter/ 40755 1750 1750 0 6354605713 14222 5ustar mbmbxview-3.2p1.4/lib/libxview/filter/filter.h100644 1750 1750 2042 5413747721 15754 0ustar mbmb/* @(#)filter.h 20.18 93/06/28 SMI */ /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #ifndef xview_filter_DEFINED #define xview_filter_DEFINED #include #include /* *********************************************************************** * Typedefs, enumerations, and structs *********************************************************************** */ struct filter_rec { char *key_name; int key_num; char *class; char **call; }; /* *********************************************************************** * Globals *********************************************************************** */ /* * Private Functions */ EXTERN_FUNCTION (struct filter_rec **xv_parse_filter_table, (STREAM *in, char *filename)); EXTERN_FUNCTION (void xv_free_filter_table, (struct filter_rec **table)); #endif ~xview_filter_DEFINED xview-3.2p1.4/lib/libxview/filter/filter.c100644 1750 1750 14306 5413747721 15775 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)filter.c 20.28 93/06/28"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #include #include #include #include #include #include #include #include #include /* * This module parses a file which specifies the mapping from key stations to * filters to be invoked from the editor. The form of each entry in the file * is: key_station filter_name program_name arguments * * where key_station is either Cnnn, or identifier(nn), e.g. L1, KEY_LEFT(1). * * Each entry must be separated from the next by a blank line. Comments may * appear in the file, as indicated by either the appearance of a '#' at the * beginning of a line, or the C convention using /'s and *'s. * * The parser returns an array of pointers to structures (filter_rec) containing * the key name, the integer, the filter name, and an argc-argv array * describing the program call. * * Unresolved issues: reporting error positions. */ char *stream_fgets(); enum CharClass breakProc(); struct CharAction digits(); struct filter_rec ** xv_parse_filter_table(in, filename) STREAM *in; char *filename; /* use this to label errors */ { struct filter_rec *rec_array[50]; char *arg_array[20]; STREAM *scratch_stream = NULL; char scratch[256], scratch1[32]; int keynum, i, j, k; struct filter_rec *rec; struct filter_rec **val; struct posrec pos; for (i = 0;; i++) { if (stream_get_token(in, scratch, breakProc) == NULL) break; rec = (struct filter_rec *) xv_malloc(sizeof(struct filter_rec)); if (rec == NULL) { char dummy[128]; (void) sprintf(dummy, XV_MSG("while parsing filter file %s"), filename); xv_error(NULL, ERROR_LAYER, ERROR_SYSTEM, ERROR_STRING, dummy, 0); return ((struct filter_rec **)NULL); } rec->key_name = STRDUP(scratch); if (stream_get_sequence(in, scratch, digits) != NULL) keynum = atoi(scratch); else if (!strequal(stream_get_token(in, scratch, breakProc), ")")) { (void) stream_get_sequence(in, scratch, digits); keynum = atoi(scratch); if (!strequal(stream_get_token(in, scratch, breakProc), ")")) goto error; } else goto error; rec->key_num = keynum; (void) stream_get_token(in, scratch, xv_white_space); rec->class = STRDUP(scratch); (void) stream_getc(in); /* discard the newline */ scratch_stream = string_input_stream( stream_fgets(scratch, 256, in), scratch_stream); /* * So what if someone fails to specify a command after the key * definition */ if (!strcmp(scratch, "\n")) { char dummy[128]; (void) sprintf(dummy, XV_MSG("filter file %s: missing command-line"), filename); xv_error(NULL, ERROR_STRING, dummy, 0); pos = stream_get_pos(in); goto errorNoSkip; } /* * storage for stream allocated first time it is needed. subsequent * times, will be reused */ if (any_shell_meta(scratch)) { char *shell; extern char *getenv(); if ((shell = getenv("SHELL")) == NULL) shell = "/bin/sh"; rec->call = (char **) xv_calloc(4, sizeof(char *)); rec->call[0] = shell; rec->call[1] = "-c"; rec->call[2] = STRDUP(scratch); } else { /* tokenize the call, copying results into arg_array */ for (j = 0, k = 0; (stream_get_token(scratch_stream, scratch1, xv_white_space) != NULL); j++) arg_array[j] = STRDUP(scratch1); /* * allocate a new array of appropriate size (j+1 so client will * know where the array ends) */ rec->call = (char **) xv_calloc((unsigned) j + 1, sizeof(char *)); /* and copy the strings from arg_array into it */ for (k = 0; k < j; k++) rec->call[k] = arg_array[k]; } rec_array[i] = rec; continue; error: pos = stream_get_pos(in); for (; (stream_fgets(scratch, 256, in) != NULL);) /* skip characters until you see a blank line */ if (scratch[0] == '\n') break; { char dummy[128]; (void) sprintf(dummy, XV_MSG("problem parsing filter file %s"), filename); xv_error(NULL, ERROR_STRING, dummy, 0); } errorNoSkip: { char dummy[128]; if (pos.lineno != -1) (void) sprintf(dummy, XV_MSG("problem on line number %d"), pos.lineno); else (void) sprintf(dummy, XV_MSG("problem near character position %d"), pos.charpos); i--; xv_error(NULL, ERROR_STRING, dummy, 0); } } val = (struct filter_rec **) xv_calloc((unsigned) i + 1, sizeof(struct filter_rec *)); if (val == NULL) { char dummy[128]; (void) sprintf(dummy, XV_MSG("while parsing filter file %s"), filename); xv_error(NULL, ERROR_LAYER, ERROR_SYSTEM, ERROR_STRING, dummy, 0); return ((struct filter_rec **)NULL); } for (j = 0; j < i; j++) val[j] = rec_array[j]; return (val); } void xv_free_filter_table(table) struct filter_rec **table; { int i; for (i = 0; table[i] != NULL; i++) { cfree((char *) table[i]->call); free((char *) table[i]); } cfree((char *) table); } static struct CharAction digits(c) char c; { struct CharAction val; if (isdigit(c)) { val.include = True; val.stop = False; } else { val.include = False; val.stop = True; } return (val); } static enum CharClass breakProc(c) char c; { switch (c) { case ' ': case '\n': case '\t': return (Sepr); case '(': case ')': return (Break); default: return (isdigit(c) ? Break : Other); } } /* * Are there any shell meta-characters in string s? */ static any_shell_meta(s) register char *s; { while (*s) { if (XV_INDEX("~{[*?$`'\"\\", *s)) return (1); s++; } return (0); } xview-3.2p1.4/lib/libxview/filter/Imakefile100644 1750 1750 1261 5413747722 16132 0ustar mbmb#include #if SharedLibXView #define DoSharedLib YES #endif #include /**/########################################################################### /**/# @(#)Imakefile 1.8 28 Jun 1993 SMI #ifndef SubdirHasTextObjs #define SubdirHasTextObjs YES #endif #ifndef SubdirHasDataObjs #define SubdirHasDataObjs NO #endif #ifndef SubdirHasPublicHeaders #define SubdirHasPublicHeaders NO #endif #ifndef SubdirHasPrivateHeaders #define SubdirHasPrivateHeaders YES #endif HDRSPUBLIC= HDRSPRIVATE= filter.h DATA_OBJS = TEXT_OBJS =\ filter.o SRCS =\ filter.c LIBTARGET = xview TARGETDIR = ../../lib${LIBTARGET}/ SOREV = $(SOXVIEWREV) #include xview-3.2p1.4/lib/libxview/filter/shared/ 40755 1750 1750 0 6354605664 15475 5ustar mbmbxview-3.2p1.4/lib/libxview/font/ 40755 1750 1750 0 6354605713 13703 5ustar mbmbxview-3.2p1.4/lib/libxview/font/pf_fontlist100644 1750 1750 202 5413747722 16226 0ustar mbmb/* @(#)pf_fontlist 20.8 93/06/28 */ #define FILE_DIR "../fixedwidthfonts/" "screen.r.13" "screen.b.12" "screen.r.7" "screen.r.11" xview-3.2p1.4/lib/libxview/font/pf_ttext.c100644 1750 1750 2066 5413747723 16010 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)pf_ttext.c 20.15 93/06/28 SMI"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ /* * Rasterop up a transparent background text string in a specified Pixfont. */ #include #include #include #include Xv_public int xv_pf_ttext(prpos, op, pf, str) struct pr_prpos prpos; register int op; register Pixfont *pf; register char *str; { register int dx = prpos.pos.x, dy = prpos.pos.y; register struct pixchar *pc; register Pixrect *spr; register int errors = 0; while (*str != 0) { pc = &pf->pf_char[(u_char) * str++]; if (spr = pc->pc_pr) errors |= pr_stencil(prpos.pr, dx + pc->pc_home.x, dy + pc->pc_home.y, spr->pr_size.x, spr->pr_size.y, op, spr, 0, 0, (Pixrect *) 0, 0, 0); dx += pc->pc_adv.x; dy += pc->pc_adv.y; } return errors; } xview-3.2p1.4/lib/libxview/font/Imakefile100644 1750 1750 1533 5413747723 15616 0ustar mbmb#include #if SharedLibXView #define DoSharedLib YES #endif #include /**/########################################################################### /**/# @(#)Imakefile 1.8 28 Jun 1993 SMI #ifndef SubdirHasTextObjs #define SubdirHasTextObjs YES #endif #ifndef SubdirHasDataObjs #define SubdirHasDataObjs YES #endif #ifndef SubdirHasPublicHeaders #define SubdirHasPublicHeaders YES #endif #ifndef SubdirHasPrivateHeaders #define SubdirHasPrivateHeaders YES #endif HDRSPUBLIC= font.h HDRSPRIVATE= font_impl.h DATA_OBJS = font_data.o TEXT_OBJS =\ font.o\ font_set.o\ font_get.o\ font_x.o\ pf_text.o\ pf_ttext.o\ pf.o SRCS =\ font.c\ font_set.c\ font_get.c\ font_x.c\ pf_text.c\ pf_ttext.c\ pf.c\ font_data.c LIBTARGET = xview TARGETDIR = ../../lib${LIBTARGET}/ SOREV = $(SOXVIEWREV) #include xview-3.2p1.4/lib/libxview/font/font_x.c100644 1750 1750 13507 5413747723 15472 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)font_x.c 20.33 93/06/28"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #include #include #include #include #include #include /* for FONT_INFO */ #ifdef OW_I18N #include #include #include #endif /*OW_I18N*/ extern Pixrect *xv_mem_create(); /* * PERFORMANCE BUG! [Space traded for time] glyph_pixmap/_gc/_pr are left * around for possible re-use. */ /* static Display *glyph_display; */ /* = 0 for -A-R */ /* static Pixmap glyph_pixmap; */ /* = 0 for -A-R */ /* static GC glyph_gc; */ /* = 0 for -A-R */ /* static int gp_height, gp_width; */ /* = 0 for -A-R */ /* static Pixrect *glyph_pr; */ #ifdef OW_I18N Pkg_private XFontSet xv_load_font_set(dpy, locale, fs_list) Display *dpy; char *locale; char **fs_list; { #define TEMP_NAME_BUF_SIZE 1024 char save_locale[125]; XFontSet font_set = NULL; char **miss_list = NULL; char *font_name_list; int missing_charset_count; char *def_string; char **temp_fs_list, *temp_list; int str_len = 0; char temp_name_buf[TEMP_NAME_BUF_SIZE]; if (fs_list == NULL) return(NULL); /* * XCreateFontSet() looks at LC_CTYPE locale to find * the charsets corresponding to the codesets. */ strcpy(save_locale, setlocale(LC_CTYPE, (char *)NULL)); setlocale(LC_CTYPE, (char *)locale); temp_fs_list = fs_list; while ( *fs_list) { str_len += (strlen(*fs_list) + 1); *fs_list++; } fs_list = temp_fs_list; font_name_list = temp_list = (str_len > TEMP_NAME_BUF_SIZE) ? (char *)malloc(str_len + 1) : temp_name_buf; font_name_list[0] = NULL; for (;;) { strcat(font_name_list, *fs_list); *fs_list++; if (!*fs_list) break; temp_list = font_name_list + strlen(font_name_list); *temp_list++ = ','; *temp_list = NULL; } font_set = XCreateFontSet(dpy, font_name_list, &miss_list, &missing_charset_count, &def_string); if ((font_name_list) && (font_name_list != temp_name_buf)) free(font_name_list); setlocale(LC_CTYPE, (char *)save_locale); if (miss_list && (missing_charset_count > 0)) XFreeStringList(miss_list); if ((missing_charset_count > 0) && font_set) { XFreeFontSet(dpy, font_set); font_set = NULL; } #undef TEMP_NAME_BUF_SIZE return(font_set); } #endif /*OW_I18N*/ Pkg_private XID xv_load_x_font(display, name, font_opaque, default_x, default_y, max_char, min_char) register Display *display; char *name; Xv_opaque *font_opaque; int *default_x, *default_y, *max_char, *min_char; { register XFontStruct *font; #ifdef _XV_DEBUG #define ERROR abort() #else #define ERROR goto Error_Return #endif font = XLoadQueryFont(display, name); *font_opaque = (Xv_opaque) font; if (font) { /* Extract the global information from the font */ /* * default_x = font->max_bounds.lbearing + font->max_bounds.rbearing; */ *default_x = font->max_bounds.width; *default_y = font->ascent + font->descent; if (font->min_byte1 || font->max_byte1) ERROR; *max_char = MIN(255, font->max_char_or_byte2); /* pixfont compat */ *min_char = MIN(255, font->min_char_or_byte2); /* pixfont compat */ return (font->fid); } else { Error_Return: if (font) { XFreeFont(display, font); } return (None); } #undef ERROR } Xv_private void xv_x_char_info(font, i, x_home, y_home, x_advance, y_advance, pr) XFontStruct *font; int i; int *x_home, *y_home, *x_advance, *y_advance; Pixrect **pr; /* Caller must guarantee that i is a valid character index for this font. */ { register XCharStruct *per_char; per_char = (font->per_char) ? &(font->per_char[i]) : &font->max_bounds; #ifdef XV_DEBUG_OLD if (per_char->width != per_char->rbearing || per_char->descent != 0) { printf("xv_pf_textbound is screwed up! Tell someone!\n"); } #endif /* XV_DEBUG_OLD */ *x_advance = per_char->width; *y_advance = 0; *x_home = per_char->lbearing; *y_home = -font->ascent; /* * PERFORMANCE/BUG: We are creating a 0-width 0-height memory pixrect, * just so pr->pr_height/width can hold the correct size of the * character. This is done because some old SunView1 library code * reaches into the height and width of a pixrect representing a * character. It's too much pain at this point to try to rewrite that * part of textsw and ttysw, so we have this disgusting hack. Note that * this increases the size of data segment by 20 bytes per character in * the font. */ *pr = xv_mem_create(0, 0, 1); (*pr)->pr_height = font->ascent + font->descent; (*pr)->pr_width = per_char->width; /* * (*pr)->pr_width = per_char->rbearing - per_char->lbearing; */ } Xv_public void xv_real_baseline_when_using_pf(font, ch, x_x, x_y, pr_x, pr_y) Xv_opaque font; int ch, *x_x, *x_y, pr_x, pr_y; { XCharStruct *per_char; XFontStruct *x_font; x_font = (XFontStruct *) xv_get(font, FONT_INFO); per_char = (x_font->per_char) ? &(x_font->per_char[ch]) : &(x_font->max_bounds); *x_x = pr_x; *x_y = pr_y + per_char->ascent; } Pkg_private void xv_unload_x_font(display, font_opaque) register Display *display; Xv_opaque font_opaque; { XFreeFont(display, (XFontStruct *) font_opaque); } xview-3.2p1.4/lib/libxview/font/pf_text.c100644 1750 1750 17777 5413747723 15663 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)pf_text.c 20.34 93/06/28 SMI"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ /* * Rasterop up a text string in a specified Pixfont. */ #include #include #include #ifdef OW_I18N #include #include #endif /* OW_I18N */ #include #include #include #include struct pr_size xv_pf_textbatch(); extern Display *xv_default_display; extern struct pixrectops mem_ops; #define SAFER_NOTMPR(pr) ((pr)->pr_ops != &mem_ops) Xv_public int xv_pf_text(prpos, op, pf, str) struct pr_prpos prpos; int op; Pixfont *pf; char *str; { register int rmdr = strlen(str), errors = 0; Font_string_dims string_dims; static Pixmap glyph_pixmap; static int glyph_width; static int glyph_height; static GC glyph_gc; int needed_width, needed_height; int root_window = RootWindow(xv_default_display, DefaultScreen(xv_default_display)); if (SAFER_NOTMPR((Pixrect *) prpos.pr)) { /* * If the pixrect is a server_image, then hand it off to server_image * object to handle the text ropping */ errors = server_image_pf_text(prpos, op, pf, str); return errors; } /* * otherwise, assuming the pixrect is a memory pixrect */ /* * Use new FONT_STRING_DIMS attr instead needed_width = rmdr * * pf->pf_defaultsize.x; needed_height = pf->pf_defaultsize.y; */ (void) xv_get((Xv_opaque)pf, FONT_STRING_DIMS, str, &string_dims); needed_width = string_dims.width; needed_height = string_dims.height; if (glyph_width < needed_width || glyph_height < needed_height) { if (glyph_pixmap) { XFreePixmap(xv_default_display, glyph_pixmap); } glyph_width = MAX(needed_width, glyph_width); glyph_height = MAX(needed_height, glyph_height); /* * always create the pixmap on the default display because it doesn't * matter which display we create it on, we are just going to bring * back the image */ glyph_pixmap = XCreatePixmap(xv_default_display, root_window, glyph_width, glyph_height, 1); } if (!glyph_gc) { XGCValues v; v.foreground = XBlackPixel(xv_default_display, 0); v.background = XWhitePixel(xv_default_display, 0); glyph_gc = XCreateGC( xv_default_display, glyph_pixmap, GCForeground | GCBackground, &v); } XSetFont(xv_default_display, glyph_gc, (Font)xv_get((Xv_opaque)pf, XV_XID)); XDrawImageString(xv_default_display, glyph_pixmap, glyph_gc, pf->pf_char[*str].pc_home.x, -pf->pf_char[*str].pc_home.y, str, rmdr); errors = xv_read_internal(prpos.pr, prpos.pos.x - pf->pf_char[*str].pc_home.x, prpos.pos.y + pf->pf_char[*str].pc_home.y, needed_width, needed_height, PIX_SRC, xv_default_display, glyph_pixmap, 0, 0); return errors; } Xv_public struct pr_size xv_pf_textbatch(dst, lenp, pf, str) register struct pr_prpos *dst; int *lenp; Pixfont *pf; register char *str; { register int basex = 0, basey = 0; register struct pixchar *pc; struct pr_size pr_size; register int len = *lenp; pr_size.x = 0; pr_size.y = 0; /* * Place each character. Basex and basey keep track of the base position * change which resulted from the previous character. */ while (len > 0) { if (*str == 0) { *lenp -= len; break; } len--; pc = &pf->pf_char[(u_char) * str++]; /* if (pc->pc_pr) { */ dst->pr = pc->pc_pr; /* * Character begins at its home location. */ dst->pos.x = basex + pc->pc_home.x; dst->pos.y = basey + pc->pc_home.y; dst++; /* * Next character must specify an offset to return to the baseline (- * home terms) and account for the width of the character (advance * terms). */ basex = pc->pc_adv.x - pc->pc_home.x; basey = pc->pc_adv.y - pc->pc_home.y; /* } else { */ /* * Skip character, but offset next by its advance. */ /* * (*lenp)--; basex += pc->pc_adv.x; basey += pc->pc_adv.y; } */ /* * Accumulate advances for caller. */ pr_size.x += pc->pc_adv.x; pr_size.y += pc->pc_adv.y; } return (pr_size); } Xv_public int xv_pf_textbound(bound, len, pf, str) struct pr_subregion *bound; register int len; register Pixfont *pf; register char *str; /* * bound is set to bounding box for str, with origin at left-most point on * the baseline for the first character. bound->pos is top-left corner, * bound->size.x is width, bound->size.y is height. bound->pr is not * modified. NOTE: xv_pf_textbound must duplicate what pf_text & pf_textbatch * do! */ { register int basex = 0, basey = 0; register struct pixchar *pc; int dstposx, dstposy; bound->pos.x = bound->pos.y = 0; bound->size.x = bound->size.y = 0; /* * Place each character. Basex and basey keep track of the base position * which resulted from the previous character. */ while (len > 0) { len--; pc = &pf->pf_char[(u_char) * str++]; /* * Character begins at its home location. */ dstposx = basex + pc->pc_home.x; dstposy = basey + pc->pc_home.y; if (dstposx < bound->pos.x) bound->pos.x = dstposx; if (dstposy < bound->pos.y) bound->pos.y = dstposy; /* * Character ends where pixrect does */ dstposx += pc->pc_pr->pr_width /* (pc->pc_adv.x - pc->pc_home.x) */ ; dstposy += pc->pc_pr->pr_height /* (pc->pc_adv.y - pc->pc_home.y) */ ; if (dstposx > bound->pos.x + bound->size.x) bound->size.x = dstposx - bound->pos.x; if (dstposy > bound->pos.y + bound->size.y) bound->size.y = dstposy - bound->pos.y; basex += pc->pc_adv.x; basey += pc->pc_adv.y; } } Xv_public struct pr_size xv_pf_textwidth(len, pf, str) int len; register Xv_font pf; register char *str; { struct pr_size size; XFontStruct *font_info = (XFontStruct *) xv_get(pf, FONT_INFO); int direction = 0; int ascent = 0; int descent = 0; XCharStruct overall_return; #ifdef OW_I18N Font_info *font = FONT_PRIVATE(pf); XFontSet font_set = (XFontSet)xv_get(pf, FONT_SET_ID); XRectangle overall_ink_extents = {0}; XRectangle overall_logical_extents = {0}; #endif /* OW_I18N */ /* * Initialize overall_return to zeros * It is not initialized like overall_ink_extents above because the MIT * build (using cc), complains about "no automatic aggregate initialization" */ XV_BZERO(&overall_return, sizeof(XCharStruct)); #ifdef OW_I18N if (font->type == FONT_TYPE_TEXT) { XmbTextExtents(font_set, str, len, &overall_ink_extents, &overall_logical_extents); size.x = overall_logical_extents.width; size.y = overall_logical_extents.height; /* max height so won't clip */ } else { (void) XTextExtents(font_info, str, len, &direction, &ascent, &descent, &overall_return); size.x = overall_return.width; size.y = ascent + descent; /* max height so won't clip */ } #else (void) XTextExtents(font_info, str, len, &direction, &ascent, &descent, &overall_return); size.x = overall_return.width; size.y = ascent + descent; /* max height so won't clip */ #endif return (size); } #ifdef OW_I18N Xv_public struct pr_size xv_pf_textwidth_wc(len, pf, ws) int len; register Xv_font pf; register wchar_t *ws; { struct pr_size size; XRectangle overall_ink_extents = {0}; XRectangle overall_logical_extents = {0}; XFontSet font_set = (XFontSet)xv_get(pf, FONT_SET_ID); XwcTextExtents(font_set, ws, len, &overall_ink_extents, &overall_logical_extents); size.x = overall_logical_extents.width; size.y = overall_logical_extents.height; /* max height so won't clip */ return (size); } #endif /*OW_I18N*/ xview-3.2p1.4/lib/libxview/font/pf.c100644 1750 1750 6466 5413747723 14570 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)pf.c 20.17 93/06/28 SMI"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ /* * Pixfont open/close: xv_pf_open(), xv_pf_open_private(), xv_pf_close() * * Variant version for XView: based on standard pixrect version from SunOS 4.0 */ #include #include #include #include /* public functions */ extern Pixfont *xv_pf_open(); Xv_public Pixfont * xv_pf_default() { return (xv_pf_open((char *) 0)); } Xv_public Pixfont * xv_pf_open(fontname) char *fontname; { if (!xv_default_server) xv_create(0, SERVER, 0); return ((Pixfont *) xv_get(xv_default_server, SERVER_FONT_WITH_NAME, fontname)); } Xv_public Pixfont * xv_pf_open_private(fontname) char *fontname; { return 0; } Xv_public int xv_pf_close(pf) Pixfont *pf; { return 0; } /* implementation */ #ifdef SUNVIEW1 static Pixfont * xv_pf_load_vfont(fontname) char *fontname; { FILE *fontf = 0; struct header hd; struct dispatch disp[NUM_DISPATCH]; register Pixfont *pf = 0; register struct dispatch *d; register struct pixchar *pc; if ((fontf = fopen(fontname, "r")) == 0 || fread((char *) &hd, sizeof hd, 1, fontf) != 1 || fread((char *) disp, sizeof disp, 1, fontf) != 1 || hd.magic != VFONT_MAGIC) goto bad; /* * Allocate font header and set default sizes. The default width of the * font is taken to be the width of a lower-case a, if there is one. The * default interline spacing is taken to be 3/2 the height of an * upper-case A above the baseline. */ if ((pf = (Pixfont *) xv_calloc(1, sizeof *pf)) == 0) goto bad; if (disp['a'].nbytes && disp['a'].width > 0 && disp['A'].nbytes && disp['A'].up > 0) { pf->pf_defaultsize.x = disp['a'].width; pf->pf_defaultsize.y = disp['A'].up * 3 >> 1; } else { pf->pf_defaultsize.x = hd.maxx; pf->pf_defaultsize.y = hd.maxy; } if (pf->pf_defaultsize.x >= 1024 || pf->pf_defaultsize.x <= 0 || pf->pf_defaultsize.y >= 1024 || pf->pf_defaultsize.y <= 0) goto bad; /* * Create memory pixrects for characters of font. */ for (d = disp, pc = pf->pf_char; d < &disp[NUM_DISPATCH]; d++, pc++) { if (d->nbytes) { int w, h, bytes, pad; register char *image; w = d->left + d->right; h = d->up + d->down; if ((pc->pc_pr = mem_create(w, h, 1)) == 0) goto bad; bytes = (w + 7) >> 3; pad = mpr_d(pc->pc_pr)->md_linebytes - bytes; image = (char *) mpr_d(pc->pc_pr)->md_image; if (fseek(fontf, (long) (sizeof hd + sizeof disp + d->addr), 0) < 0) goto bad; while (h--) { register int i; for (i = bytes; i; i--) *image++ = getc(fontf); image += pad; } if (feof(fontf) || ferror(fontf)) goto bad; pc->pc_home.x = -d->left; pc->pc_home.y = -d->up; pc->pc_adv.x = d->width; pc->pc_adv.y = 0; } } /* * Done. */ exit: if (fontf) (void) fclose(fontf); return (pf); bad: if (pf) { xv_pf_free_font(pf); pf = 0; } goto exit; } #endif xview-3.2p1.4/lib/libxview/font/font_set.c100644 1750 1750 3467 5413747724 16003 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)font_set.c 20.28 93/06/28"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #ifdef OW_I18N #include #endif /* OW_I18N */ #include #include /* * Private */ Pkg_private Xv_opaque font_set_avlist(font_public, avlist) Xv_Font font_public; Attr_attribute avlist[]; { register Font_info *font = FONT_PRIVATE(font_public); register Attr_attribute *attrs; for (attrs = avlist; *attrs; attrs = attr_next(attrs)) { switch (attrs[0]) { case FONT_TYPE: font->type = (Font_type) attrs[1]; break; case XV_END_CREATE:{ #ifdef OW_I18N if (!multibyte) { Font_string_dims dims; (void) xv_get(font_public, FONT_STRING_DIMS, "n", &dims, 0); if ((dims.width > 0) && (dims.width < font->def_char_width)) font->def_char_width = dims.width; } #else Font_string_dims dims; (void) xv_get(font_public, FONT_STRING_DIMS, "n", &dims, 0); if ((dims.width > 0) && (dims.width < font->def_char_width)) font->def_char_width = dims.width; #endif /* OW_I18N */ #ifdef CHECK_OVERLAPPING_CHARS if (font->overlapping_chars && font->type == FONT_TYPE_TEXT) { char dummy[128]; sprintf(dummy, XV_MSG("Font '%s' has overlapping characters;\n\ character painting errors may occur."), font->name); xv_error(NULL, ERROR_STRING, dummy, ERROR_PKG, FONT, 0); } #endif /* CHECK_OVERLAPPING_CHARS */ break; } default: xv_check_bad_attr(&xv_font_pkg, attrs[0]); /* BUG: should we return attrs[0] here? */ break; } } return (XV_OK); } xview-3.2p1.4/lib/libxview/font/font_get.c100644 1750 1750 15150 5413747724 15777 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)font_get.c 20.31 93/06/28"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #include #include #include #include #include /* * Externed functions */ extern struct pr_size xv_pf_textwidth(); #ifdef OW_I18N extern struct pr_size xv_pf_textwidth_wc(); #endif /*OW_I18N*/ /* * Private */ Pkg_private Xv_opaque font_get_attr(font_public, status, attr, args) Xv_font_struct *font_public; int *status; /* initialized by caller */ Font_attribute attr; va_list args; { register Font_info *font = FONT_PRIVATE(font_public); #ifdef OW_I18N XFontStruct *font_struct; #endif /*OW_I18N*/ XFontStruct *x_font_info = (XFontStruct *)font->x_font_info; Xv_opaque v; int attr_is_char_width = 0; Attr_avlist avlist = (Attr_avlist) args; #ifdef OW_I18N if (font->type == FONT_TYPE_TEXT) { font_struct = (XFontStruct *)font->font_structs[0]; } #endif /*OW_I18N*/ switch (attr) { #ifdef OW_I18N case FONT_SET_ID: v = (Xv_opaque)font->set_id; break; #endif /*OW_I18N*/ case FONT_INFO: #ifdef OW_I18N if (font->type == FONT_TYPE_TEXT) { if (font_struct != NULL) { v = (Xv_opaque)font_struct; break; } else { /* BUG: could query X font property?? */ *status = XV_ERROR; v = (Xv_opaque) 0; break; } } else { if (x_font_info) { v = (Xv_opaque) x_font_info; break; } else { /* BUG: could query X font property?? */ *status = XV_ERROR; v = (Xv_opaque) 0; break; } } #else if (x_font_info) { v = (Xv_opaque) x_font_info; break; } else { /* BUG: could query X font property?? */ *status = XV_ERROR; v = (Xv_opaque) 0; break; } #endif case FONT_DEFAULT_CHAR_HEIGHT: /* * Default char width is max ascent + max descent; */ v = (Xv_opaque) font->def_char_height; break; case FONT_SCALE: if (font->scale != FONT_NO_SCALE) { v = (Xv_opaque) font->scale; break; } else { *status = XV_ERROR; v = (Xv_opaque) 0; break; } #ifdef OW_I18N case FONT_CHAR_WIDTH_WC: attr_is_char_width = TRUE; case FONT_CHAR_HEIGHT_WC:{ wchar_t wc = (wchar_t) va_arg(args, int); wchar_t wstr[2]; struct pr_size my_pf_size; wstr[0] = wc; wstr[1] = (wchar_t) 0; my_pf_size = xv_pf_textwidth_wc(1, font_public, wstr); if (attr_is_char_width) { v = (Xv_opaque) my_pf_size.x; } else v = (Xv_opaque) my_pf_size.y; break; } #endif /*OW_I18N*/ case FONT_SIZE: if (font->size) { v = (Xv_opaque) font->size; break; } else { /* BUG: could query X font property?? */ *status = XV_ERROR; v = (Xv_opaque) 0; break; } case FONT_STRING_DIMS:{ char *string = (char *) avlist[0]; Font_string_dims *size = (Font_string_dims *) avlist[1]; struct pr_size my_pf_size; if (string) { my_pf_size = xv_pf_textwidth(strlen(string), font_public, string); size->width = my_pf_size.x; size->height = my_pf_size.y; v = (Xv_opaque) size; break; } else { *status = XV_ERROR; v = (Xv_opaque) size; break; } } case FONT_FAMILY: if (font->family) { v = (Xv_opaque) font->family; break; } else { *status = XV_ERROR; v = (Xv_opaque) 0; break; } case FONT_PIXFONT: if (!font->pixfont) { font_init_pixfont(font_public); } v = (Xv_opaque) font->pixfont; break; case XV_XID: #ifdef OW_I18N if (font->type == FONT_TYPE_TEXT) { v = (Xv_opaque)font_struct->fid; } else { v = (Xv_opaque) font->xid; } #else v = (Xv_opaque) font->xid; #endif /*OW_I18N*/ break; case FONT_NAME: #ifdef OW_I18N if (font->type == FONT_TYPE_TEXT) { v = (Xv_opaque) font->names[0]; } else { v = (Xv_opaque) font->name; } #else /*OW_I18N*/ v = (Xv_opaque) font->name; #endif /*OW_I18N*/ break; #ifdef OW_I18N case FONT_NAMES: v = (Xv_opaque) font->names; break; #endif /*OW_I18N*/ case FONT_STYLE: if (font->style) { v = (Xv_opaque) font->style; break; } else { *status = XV_ERROR; v = (Xv_opaque) 0; break; } #ifdef OW_I18N case FONT_LOCALE: if (font->locale_info->locale) { v = (Xv_opaque) font->locale_info->locale; } else { *status = XV_ERROR; v = (Xv_opaque) 0; } break; #endif #ifdef OW_I18N case FONT_SET_SPECIFIER: if (font->specifier) { v = (Xv_opaque) font->specifier; } else { *status = XV_ERROR; v = (Xv_opaque) 0; } break; #endif case FONT_TYPE: v = (Xv_opaque) font->type; break; case FONT_DEFAULT_CHAR_WIDTH: /* * Default char height is max */ v = (Xv_opaque) font->def_char_width; break; case FONT_CHAR_WIDTH: attr_is_char_width = TRUE; case FONT_CHAR_HEIGHT:{ char font_char = (char) va_arg(args, int); char font_char_array[2]; struct pr_size my_pf_size; font_char_array[0] = font_char; font_char_array[1] = (char) 0; my_pf_size = xv_pf_textwidth(1, font_public, font_char_array); if (attr_is_char_width) { v = (Xv_opaque) my_pf_size.x; } else v = (Xv_opaque) my_pf_size.y; break; } #ifdef OW_I18N case FONT_STRING_DIMS_WC:{ wchar_t *ws = (wchar_t *) avlist[0]; Font_string_dims *size = (Font_string_dims *) avlist[1]; struct pr_size my_pf_size; if (ws) { my_pf_size = xv_pf_textwidth_wc(wslen(ws), font_public, ws); size->width = my_pf_size.x; size->height = my_pf_size.y; v = (Xv_opaque) size; break; } else { *status = XV_ERROR; v = (Xv_opaque) size; break; } } #endif /*OW_I18N*/ #ifdef OW_I18N case FONT_COLUMN_WIDTH: v = (Xv_opaque) font->column_width; break; #endif /* OW_I18N */ default: if (xv_check_bad_attr(&xv_font_pkg, attr) == XV_ERROR) { *status = XV_ERROR; } v = (Xv_opaque) 0; break; } return (Xv_opaque) v; } xview-3.2p1.4/lib/libxview/font/font_data.c100644 1750 1750 1006 5413747724 16104 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)font_data.c 1.15 93/06/28"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #include Xv_pkg xv_font_pkg = { "Font", ATTR_PKG_FONT, sizeof(Xv_font_struct), &xv_generic_pkg, font_init, font_set_avlist, font_get_attr, font_destroy_struct, font_find_font }; xview-3.2p1.4/lib/libxview/font/font.h100644 1750 1750 12350 5413747724 15144 0ustar mbmb/* @(#)font.h 20.35 93/06/28 SMI */ /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #ifndef xview_font_DEFINED #define xview_font_DEFINED /* *********************************************************************** * Include files *********************************************************************** */ #include #ifdef OW_I18N #include #endif /*OW_I18N*/ /* *********************************************************************** * Definitions and Macros *********************************************************************** */ /* * Public #defines */ #ifndef XV_ATTRIBUTES_ONLY #ifdef OW_I18N #define FONT_SET &xv_font_pkg #define FONT FONT_SET #else #define FONT &xv_font_pkg #endif /*OW_I18N*/ /* * font family/style values available */ #define FONT_FAMILY_DEFAULT "FONT_FAMILY_DEFAULT" #define FONT_FAMILY_DEFAULT_FIXEDWIDTH "FONT_FAMILY_DEFAULT_FIXEDWIDTH" #define FONT_FAMILY_LUCIDA "FONT_FAMILY_LUCIDA" #define FONT_FAMILY_LUCIDA_FIXEDWIDTH "FONT_FAMILY_LUCIDA_FIXEDWIDTH" #define FONT_FAMILY_ROMAN "FONT_FAMILY_ROMAN" #define FONT_FAMILY_SERIF "FONT_FAMILY_SERIF" #define FONT_FAMILY_COUR "FONT_FAMILY_COUR" #define FONT_FAMILY_CMR "FONT_FAMILY_CMR" #define FONT_FAMILY_GALLENT "FONT_FAMILY_GALLENT" #define FONT_FAMILY_HELVETICA "FONT_FAMILY_HELVETICA" #define FONT_FAMILY_OLGLYPH "FONT_FAMILY_OLGLYPH" #define FONT_FAMILY_OLCURSOR "FONT_FAMILY_OLCURSOR" #ifdef OW_I18N #define FONT_FAMILY_SANS_SERIF "FONT_FAMILY_SANS_SERIF" #endif /*OW_I18N*/ #define FONT_STYLE_DEFAULT "FONT_STYLE_DEFAULT" #define FONT_STYLE_NORMAL "FONT_STYLE_NORMAL" #define FONT_STYLE_BOLD "FONT_STYLE_BOLD" #define FONT_STYLE_ITALIC "FONT_STYLE_ITALIC" #define FONT_STYLE_OBLIQUE "FONT_STYLE_OBLIQUE" #define FONT_STYLE_BOLD_ITALIC "FONT_STYLE_BOLD_ITALIC" #define FONT_STYLE_BOLD_OBLIQUE "FONT_STYLE_BOLD_OBLIQUE" #define FONT_SIZE_DEFAULT -99 #define FONT_NO_SIZE -66 #define FONT_NO_SCALE -55 #define FONT_SCALE_DEFAULT -33 #endif /* ~XV_ATTRIBUTES_ONLY */ /* * Private #defines */ #define FONT_ATTR(type, ordinal) ATTR(ATTR_PKG_FONT, type, ordinal) #define FONT_QUAD_ATTR ATTR_TYPE(ATTR_BASE_INT, 4) /* *********************************************************************** * Typedefs, enumerations, and structs *********************************************************************** */ /* * Public types */ #ifndef XV_ATTRIBUTES_ONLY typedef Xv_opaque Xv_Font; typedef Xv_opaque Xv_font; #endif /* ~XV_ATTRIBUTES_ONLY */ typedef enum { /* * Public attributes. */ FONT_CHAR_WIDTH = FONT_ATTR(ATTR_CHAR, 1), /* G */ FONT_CHAR_HEIGHT = FONT_ATTR(ATTR_CHAR, 5), /* G */ #ifdef OW_I18N FONT_CHAR_WIDTH_WC = FONT_ATTR(ATTR_WCHAR, 6), /* G */ FONT_CHAR_HEIGHT_WC = FONT_ATTR(ATTR_WCHAR, 7), /* G */ FONT_NAMES = FONT_ATTR(ATTR_OPAQUE, 26), /* C-G */ FONT_SET_SPECIFIER = FONT_ATTR(ATTR_STRING, 27), /* C-G */ #endif /*OW_I18N*/ FONT_DEFAULT_CHAR_HEIGHT = FONT_ATTR(ATTR_NO_VALUE, 10), /* G */ FONT_DEFAULT_CHAR_WIDTH = FONT_ATTR(ATTR_NO_VALUE, 15), /* G */ FONT_FAMILY = FONT_ATTR(ATTR_STRING, 20), /* C-G */ FONT_NAME = FONT_ATTR(ATTR_STRING, 25), /* C-G */ FONT_RESCALE_OF = FONT_ATTR(ATTR_OPAQUE_PAIR, 30), /* F-C */ FONT_SCALE = FONT_ATTR(ATTR_INT, 40), /* C-G */ FONT_SIZE = FONT_ATTR(ATTR_INT, 45), /* C-G */ FONT_SIZES_FOR_SCALE= ATTR(ATTR_PKG_FONT, FONT_QUAD_ATTR, 50), /* C-S-G*/ FONT_STRING_DIMS = FONT_ATTR(ATTR_OPAQUE_PAIR, 55), /* G */ #ifdef OW_I18N FONT_STRING_DIMS_WC = FONT_ATTR(ATTR_OPAQUE_PAIR, 56), /* G */ #endif /*OW_I18N*/ FONT_STYLE = FONT_ATTR(ATTR_STRING, 60), /* C-G */ FONT_TYPE = FONT_ATTR(ATTR_ENUM, 65), /* C-S-G */ FONT_PIXFONT = FONT_ATTR(ATTR_OPAQUE, 67), /* G */ FONT_INFO = FONT_ATTR(ATTR_OPAQUE, 80), /* G */ #ifdef OW_I18N FONT_LOCALE = FONT_ATTR(ATTR_STRING, 68), /* C-G */ FONT_SET_ID = FONT_ATTR(ATTR_OPAQUE, 69), /* G */ FONT_COLUMN_WIDTH = FONT_ATTR(ATTR_NO_VALUE, 85), /* G */ #endif /*OW_I18N*/ /* * Private attributes. */ FONT_HEAD = FONT_ATTR(ATTR_INT, 70), /* Key */ FONT_UNKNOWN_HEAD = FONT_ATTR(ATTR_INT, 75) /* Key */ } Font_attribute; typedef enum { FONT_TYPE_TEXT = 0, FONT_TYPE_CURSOR = 1, FONT_TYPE_GLYPH = 2 } Font_type; #ifndef XV_ATTRIBUTES_ONLY /* * Got rid of pixfont struct * It now exists in the private part where it will be allocated on demand */ typedef struct { Xv_generic_struct parent_data; Xv_opaque private_data; /* Xv_embedding embedding_data; char *pixfont[2+(5*256)]; */ } Xv_font_struct; typedef struct { int width, height; } Font_string_dims; #endif /* ~XV_ATTRIBUTES_ONLY */ /* *********************************************************************** * Globals *********************************************************************** */ #ifndef XV_ATTRIBUTES_ONLY extern Xv_pkg xv_font_pkg; #endif /* ~XV_ATTRIBUTES_ONLY */ #endif /* ~xview_font_DEFINED */ xview-3.2p1.4/lib/libxview/font/font.c100644 1750 1750 355074 6331441163 15160 0ustar mbmb#ifndef lint #ifdef sccs static char sccsid[] = "@(#)font.c 20.119 93/06/28"; #endif #endif /* * (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents * pending in the U.S. and foreign countries. See LEGAL NOTICE * file for terms of the license. */ #include #include #include #include #include #include #include #include #include #include #include #include #ifdef OW_I18N #include #include #endif /*OW_I18N*/ /* * Public */ extern Pixfont *xv_pf_sys; extern char *defaults_get_string(); extern char *strcpy(); extern Xv_opaque xv_default_server; extern Display *xv_default_display; #ifdef OW_I18N extern char *getenv(); extern char *xv_app_name; static char **construct_font_set_list(); static char *get_attr_str_from_opened_names(); #define FONT_FIND_DEFAULT_FAMILY(linfo) \ (linfo) ? (linfo)->default_family : DEFAULT_FONT_FAMILY #define FONT_FIND_DEFAULT_SIZE(linfo) \ (linfo) ? (linfo)->medium_size : DEFAULT_MEDIUM_FONT_SIZE Pkg_private XFontSet xv_load_font_set(); #define IS_C_LOCALE(_locale) \ (strcmp(_locale, "C") == 0) #endif /*OW_I18N*/ /* * Private */ Xv_private void xv_x_char_info(); Xv_private Xv_Font xv_find_olglyph_font(); Pkg_private XID xv_load_x_font(); Pkg_private void xv_unload_x_font(); Xv_private char *xv_font_regular(); Xv_private char *xv_font_regular_cmdline(); Xv_private char *xv_font_scale_cmdline(); Xv_private char *xv_font_scale(); /* * delimiters */ #define PERIOD '.' #define DASH '-' /* * Definitions for decrypting xlfd names */ #define NUMXLFDFIELDS 14 #define FOUNDRYPOS 1 #define FAMILYPOS 2 #define WEIGHTPOS 3 #define SLANTPOS 4 #define SETWIDTHNAMEPOS 5 #define ADDSTYLENAMEPOS 6 #define PIXSIZEPOS 7 #define PTSIZEPOS 8 #define XRESOLUTIONPOS 9 #define DEFAULT_SMALL_FONT "-b&h-lucida-medium-r-normal-sans-*-100-*-*-*-*-*-*" #define DEFAULT_SMALL_FONT_SIZE 10 #define DEFAULT_MEDIUM_FONT "-b&h-lucida-medium-r-normal-sans-*-120-*-*-*-*-*-*" #define DEFAULT_MEDIUM_FONT_SIZE 12 #define DEFAULT_LARGE_FONT "-b&h-lucida-medium-r-normal-sans-*-140-*-*-*-*-*-*" #define DEFAULT_LARGE_FONT_SIZE 14 #define DEFAULT_XLARGE_FONT "-b&h-lucida-medium-r-normal-sans-*-190-*-*-*-*-*-*" #define DEFAULT_XLARGE_FONT_SIZE 19 #ifndef _XVIEW_DEFAULT_FONT #define DEFAULT_DEFAULT_FONT_NAME "fixed" #else #define DEFAULT_DEFAULT_FONT_NAME "xview-default-font" #endif /* _XVIEW_DEFAULT_FONT */ /* * Note: changed DEFAULT_FONT_STYLE to normal */ #define DEFAULT_FONT_FAMILY "lucida" #define DEFAULT_FONT_FIXEDWIDTH_FAMILY "lucidatypewriter" #ifdef OW_I18N #define DEFAULT_FONT_STYLE "FONT_STYLE_NORMAL" #else #define DEFAULT_FONT_STYLE "normal" #endif /* * Default font weight, slant */ #define DEFAULT_FONT_WEIGHT "medium" #define DEFAULT_FONT_SLANT "r" #define DEFAULT_FONT_SETWIDTHNAME "normal" #define DEFAULT_FONT_ADDSTYLENAME "sans" #define DEFAULT_FONT_SIZE 12 #define DEFAULT_FONT_SCALE (int) WIN_SCALE_MEDIUM #ifdef OW_I18N #define DEFAULT_FONT_SCALE_STR "Medium" #endif /*OW_I18N*/ static char *sunview1_prefix = "/usr/lib/fonts/fixedwidthfonts/"; #ifndef OW_I18N static Font_locale_info *fs_locales = NULL; #endif Xv_private Xv_Font xv_font_with_name(); static void font_default_font(); static char *font_default_font_from_scale(); static char *font_determine_font_name(); static char *font_rescale_from_font(); static int font_read_attrs(); static int font_string_compare(); static int font_string_compare_nchars(); static char *font_strip_name(); static int font_delim_count(); static XID font_try_misc_name(); static Font_locale_info *find_font_locale_info(); static int font_setup_known_families(); static int font_setup_known_styles(); static void font_init_known_families(); static void font_init_known_styles(); static void font_init_sizes(); static void font_reduce_wildcards(); typedef struct family_foundry { char *family; char *foundry; }Family_foundry; typedef struct wildcards{ char *foundry; char *family; char *weight; char *slant; char *setwidthname; char *addstylename; char *registry; char *encoding; }Wildcards; struct font_return_attrs { char *name; char *orig_name; char *family; char *style; char *foundry; char *weight; char *slant; char *setwidthname; char *addstylename; int size; int small_size; int medium_size; int large_size; int extra_large_size; int scale; Font_info *resize_from_font; int rescale_factor; int free_name, free_family, free_style, free_weight, free_slant, free_foundry, free_setwidthname, free_addstylename; char delim_used; #ifdef OW_I18N int type; char *locale; char **names; short free_names; char *specifier; #endif /*OW_I18N*/ char *encoding; char *registry; Font_locale_info *linfo; unsigned no_size:1; unsigned no_style:1; }; typedef struct font_return_attrs *Font_return_attrs; /* * Known delimeters * - characters that appear between fields in a font name */ static char known_delimiters[] = { '.', '-', '\0' }; /* * Family defs - conversion table from a given family name, * possibly a sunview name or a semantic name to a name that * can be used in the family field of the xlfd name format. */ static Family_defs default_family_translation[] = { /* * real entries */ "cmr", "times", "cour", "courier", "gallant", "lucidatypewriter", "serif", "times", "lucidasans", "lucida", "olglyph", "open look glyph", "olcursor", "open look cursor", /* * Semantic entries */ FONT_FAMILY_DEFAULT, "lucida", FONT_FAMILY_DEFAULT_FIXEDWIDTH, "lucidatypewriter", FONT_FAMILY_LUCIDA, "lucida", FONT_FAMILY_LUCIDA_FIXEDWIDTH, "lucidatypewriter", FONT_FAMILY_ROMAN, "times", FONT_FAMILY_SERIF, "times", FONT_FAMILY_CMR, "times", FONT_FAMILY_GALLENT, "times", FONT_FAMILY_COUR, "courier", FONT_FAMILY_HELVETICA, "helvetica", FONT_FAMILY_OLGLYPH, "open look glyph", FONT_FAMILY_OLCURSOR, "open look cursor", #ifdef OW_I18N FONT_FAMILY_SANS_SERIF, "lucida", #endif /*OW_I18N*/ NULL, NULL }; #ifdef OW_I18N #define FONT_NUM_KNOWN_FAMILIES 20 #else #define FONT_NUM_KNOWN_FAMILIES 19 #endif /*OW_I18N*/ /* * Style defs - conversion table from style -> (weight, slant) * or vice versa */ static Style_defs default_style_translation[] = { /* * Sunview font styles */ "r", "medium", "r", "normal", "b", "bold", "r", "bold", "i", "medium", "i", "italic", "o", "medium", "o", "oblique", /* * 'real' entries */ "normal", "medium", "r", "normal", "bold", "bold", "r", "bold", "italic", "medium", "i", "italic", "oblique", "medium", "o", "oblique", "bolditalic", "bold", "i", "bolditalic", "boldoblique", "bold", "o", "boldoblique", "demibold", "demibold", "r", "demibold", "demiitalic", "demibold", "i", "demiitalic", /* * semantic entries */ DEFAULT_FONT_STYLE, "medium", "r", "normal", FONT_STYLE_DEFAULT, "medium", "r", "normal", FONT_STYLE_NORMAL, "medium", "r", "normal", FONT_STYLE_BOLD, "bold", "r", "bold", FONT_STYLE_ITALIC, "medium", "i", "italic", FONT_STYLE_OBLIQUE, "medium", "o", "oblique", FONT_STYLE_BOLD_ITALIC, "bold", "i", "bolditalic", FONT_STYLE_BOLD_OBLIQUE, "bold", "o", "boldoblique", 0, 0, 0, 0 }; #define FONT_NUM_KNOWN_STYLES 20 #ifdef OW_I18N static Font_locale_info C_locale = { "C", NULL, 10, 12, 14, 19, default_family_translation, default_style_translation, FONT_FAMILY_LUCIDA, FONT_FAMILY_LUCIDA_FIXEDWIDTH, FONT_STYLE_NORMAL, "medium", "r", (int)WIN_SCALE_MEDIUM, "Medium", 12, "-*-lucida-medium-r-*-*-*-100-*-*-*-*-*-*", "-*-lucida-medium-r-*-*-*-120-*-*-*-*-*-*", "-*-lucida-medium-r-*-*-*-140-*-*-*-*-*-*", "-*-lucida-medium-r-*-*-*-190-*-*-*-*-*-*" }; static Font_locale_info *fs_locales = &C_locale; #endif /* * Font families that don't have style */ static Family_foundry style_less[] = { FONT_FAMILY_OLCURSOR, "sun", "open look cursor", "sun", FONT_FAMILY_OLGLYPH, "sun", "open look glyph", "sun", 0, 0 }; /* * Font families that don't have size */ static Family_foundry size_less[] = { FONT_FAMILY_OLCURSOR, "sun", "open look cursor", "sun", 0, 0 }; /* * Special table to get rid of wildcard'd fields for * certain font families. */ static Wildcards known_wildcards[] = { "b&h", "lucida", NULL, NULL, NULL, NULL, NULL, NULL, "b&h", "lucidatypewriter", NULL, NULL, NULL, NULL, NULL, NULL, "sun", "open look cursor", "", "", "", "", "sunolcursor", "1", "sun", "open look glyph", "", "", "", "", "sunolglyph", "1", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; /* * Normalize font name. * - get rid of sunview style file name * - make everything low case */ static char * normalize_font_name(name, linfo) register char *name; Font_locale_info *linfo; { if (name == NULL) { char *default_scale; #ifdef OW_I18N /* What locale is this? * Should I look for font.name.? */ defaults_set_locale(linfo->locale, NULL); #endif /* OW_I18N */ /* * NULL for name => use default font name. Warning: Database may have * "" rather than NULL. */ name = xv_font_regular(); #ifdef OW_I18N /* Undo the locale feature of the defaults * package */ defaults_set_locale(NULL, NULL); #endif /* OW_I18N */ if (name == NULL || (strlen(name) == 0)) { if (!(default_scale = xv_font_scale())) default_scale = linfo->default_scale_str; name = font_default_font_from_scale(default_scale, linfo); } } if (font_string_compare_nchars(name, sunview1_prefix, strlen(sunview1_prefix)) == 0) { /* Map SunView1.X font name into server name. */ name += strlen(sunview1_prefix); /* index into str */ } return (name); } static char * font_default_font_from_scale(scale, linfo) register char *scale; Font_locale_info *linfo; { if (!scale) return(linfo->default_medium_font); if ((font_string_compare(scale, "small") == 0) || (font_string_compare(scale, "Small") == 0)) { return(linfo->default_small_font); }else if ((font_string_compare(scale, "medium") == 0) || (font_string_compare(scale, "Medium") == 0)) { return(linfo->default_medium_font); }else if ((font_string_compare(scale, "large") == 0) || (font_string_compare(scale, "Large") == 0)) { return(linfo->default_large_font); }else if ((font_string_compare(scale, "Extra_large") == 0) || (font_string_compare(scale, "Extra_Large") == 0) || (font_string_compare(scale, "extra_Large") == 0) || (font_string_compare(scale, "extra_large") == 0)) { return(linfo->default_xlarge_font); }else return(linfo->default_medium_font); } #ifdef OW_I18N static char * skip_space(p) register char *p; { while (isspace(*p)) p++; return p; } static char * skip_space_back(p) register char *p; { while (isspace(*p)) p--; return p; } static char * parse_font_list(db, list, count) XrmDatabase db; register char *list; int count; { XrmValue xrm_result; int len; char *key, *type; /* Enforce a limit of 15 recursions */ if (count > 15) return NULL; if (strncmp(list, FS_DEF, FS_DEF_LEN) == 0) { if ((key = strchr(list, ',')) != NULL) { key = skip_space(key + 1); return key; } } else if (strncmp(list, FS_ALIAS, FS_ALIAS_LEN) == 0) { xrm_result.size = 0; xrm_result.addr = NULL; if ((key = strchr(list, ',')) != NULL) { key = skip_space(key + 1); if (XrmGetResource(db, key, key, &type, &xrm_result)) return parse_font_list(db, xrm_result.addr, count++); } } return NULL; } /* * Given a database handle and a font set specfier, return a comma * separated list of fonts if a font set definition is found. * If not, return NULL. */ static char * get_font_set_list(db, key) XrmDatabase db; char *key; { XrmValue xrm_result; char *type; if ((db == NULL) || (key == NULL)) return (NULL); xrm_result.size = 0; xrm_result.addr = NULL; if (XrmGetResource(db, key, key, &type, &xrm_result) == True) return(parse_font_list(db, xrm_result.addr, 0)); return(NULL); } static free_font_set_list(list) char **list; { register int i; for (i = 0; list[i] != NULL; i++) free(list[i]); free(list); } static char ** construct_font_set_list(str) char *str; { register char *p1, *p2; register int i, j; char **list; int count; if (str == NULL) return(NULL); for (count = 0, p1 = str; *p1 != NULL; count++, p1++) if ((p1 = strchr(p1, ',')) == NULL) break; count += 2 /* one for last part, another one for the NULL */; list = (char **) malloc(count * sizeof(char *)); for (i = 0, p2 = p1 = str; (p2 = strchr(p1, ',')) != NULL; i++) { p1 = skip_space(p1); j = skip_space_back(p2 - 1) - p1 + 1; list[i] = (char *) malloc(j + 1); strncpy(list[i], p1, j); list[i][j] = '\0'; p1 = skip_space(p2 + 1); } list[i++] = strdup(skip_space(p1)); list[i] = NULL; return(list); } static char * find_font_locale(server, avlist) Xv_opaque server; Attr_avlist avlist; { char *locale = NULL; register Attr_avlist attrs; for (attrs = avlist; attrs && *attrs; attrs = attr_next(attrs)) { switch ((int) attrs[0]) { case FONT_LOCALE: locale = (char *) attrs[1]; break; case FONT_TYPE: if (attrs[1] != FONT_TYPE_TEXT) return("C"); break; default: break; } } if (locale == NULL) locale = (char *)xv_get(server, XV_LC_BASIC_LOCALE); return(locale); } static void initialize_locale_info(linfo) Font_locale_info *linfo; { XrmValue xrm_result; char *type; if (XrmGetResource(linfo->db, FS_SMALL_SIZE, FS_SMALL_SIZE, &type, &xrm_result) == True) linfo->small_size = atoi(xrm_result.addr); else linfo->small_size = DEFAULT_SMALL_FONT_SIZE; if (XrmGetResource(linfo->db, FS_MEDIUM_SIZE, FS_MEDIUM_SIZE, &type, &xrm_result) == True) linfo->medium_size = atoi(xrm_result.addr); else linfo->medium_size = DEFAULT_MEDIUM_FONT_SIZE; if (XrmGetResource(linfo->db, FS_LARGE_SIZE, FS_LARGE_SIZE, &type, &xrm_result) == True) linfo->large_size = atoi(xrm_result.addr); else linfo->large_size = DEFAULT_LARGE_FONT_SIZE; if (XrmGetResource(linfo->db, FS_XLARGE_SIZE, FS_XLARGE_SIZE, &type, &xrm_result) == True) linfo->xlarge_size = atoi(xrm_result.addr); else linfo->xlarge_size = DEFAULT_XLARGE_FONT_SIZE; if (XrmGetResource(linfo->db, FS_DEFAULT_FAMILY, FS_DEFAULT_FAMILY, &type, &xrm_result) == True) linfo->default_family = xrm_result.addr; else linfo->default_family = DEFAULT_FONT_FAMILY; /* * The rest of the data in Font_locale_info is static for now ie. it * is not read from an external file. */ linfo->known_families = default_family_translation; linfo->known_styles = default_style_translation; #ifndef OW_I18N linfo->default_family = DEFAULT_FONT_FAMILY; #endif linfo->default_fixedwidth_family = DEFAULT_FONT_FIXEDWIDTH_FAMILY; linfo->default_style = DEFAULT_FONT_STYLE; linfo->default_weight = DEFAULT_FONT_WEIGHT; linfo->default_slant = DEFAULT_FONT_SLANT; linfo->default_scale = (int)WIN_SCALE_MEDIUM; linfo->default_scale_str = DEFAULT_FONT_SCALE_STR; #ifdef OW_I18N /* Use linfo->medium_size because linfo->default_scale is WIN_SCALE_MEDIUM */ linfo->default_size = linfo->medium_size; #else linfo->default_size = DEFAULT_FONT_SIZE; #endif /* ASK ISA */ linfo->default_small_font = "-*-lucida-medium-r-*-*-*-100-*-*-*-*-*-*"; linfo->default_medium_font = "-*-lucida-medium-r-*-*-*-120-*-*-*-*-*-*"; linfo->default_large_font = "-*-lucida-medium-r-*-*-*-140-*-*-*-*-*-*"; linfo->default_xlarge_font = "-*-lucida-medium-r-*-*-*-190-*-*-*-*-*-*"; } static Font_locale_info * find_font_locale_info(server, avlist) Xv_opaque server; Attr_avlist avlist; { char *locale; Font_locale_info *linfo; XrmDatabase db = NULL, app_db; char *str; char filename[MAXPATHLEN]; if ((locale = find_font_locale(server, avlist)) == NULL) return((Font_locale_info *)NULL); /* check list to see if font set locale info exists */ for (linfo = fs_locales; linfo != NULL; linfo = linfo->next) if (!strcmp(linfo->locale, locale)) return(linfo); /* create locale specific font set database */ #ifdef OPENWINHOME_DEFAULT /* martin-2.buck@student.uni-ulm.de */ if (!(str = getenv("OPENWINHOME"))) { str = OPENWINHOME_DEFAULT; } #else if (str = getenv("OPENWINHOME")) { #endif sprintf(filename, "%s/lib/locale/%s/OW_FONT_SETS/OpenWindows.fs", str, locale); db = XrmGetFileDatabase(filename); #ifndef OPENWINHOME_DEFAULT } #endif if (str = (char *)xv_get(server, XV_LOCALE_DIR)) { sprintf(filename, "%s/%s/OW_FONT_SETS/%s.fs", str, locale, xv_app_name); if (db == NULL) db = XrmGetFileDatabase(filename); else if (app_db = XrmGetFileDatabase(filename)) XrmMergeDatabases(app_db, &db); } /* * If no OpenWindows.fs file, then assume it is Latin 1. * initialize_locale_info(), will initialize it to C anyway. */ /* add to the font locale info list */ linfo = (Font_locale_info *)malloc(sizeof(Font_locale_info)); linfo->locale = strdup(locale); linfo->db = db; linfo->next = fs_locales; fs_locales = linfo; initialize_locale_info(linfo); return(linfo); } #else /* * Initialize everything except the 'locale' field. */ static void initialize_locale_info(linfo) Font_locale_info *linfo; { /* * Fill linfo with "C" values, for now */ font_init_sizes(linfo); font_setup_known_families(linfo); font_setup_known_styles(linfo); font_setup_defaults(linfo); } /* * This routine taken from Sundae implementation * In V3 it simply returns C locale information */ static Font_locale_info * find_font_locale_info() { char *locale = "C"; Font_locale_info *linfo; /* * For now, only have one locale - "C" */ /* check list to see if font set locale info exists */ for (linfo = fs_locales; linfo != NULL; linfo = linfo->next) if (!strcmp(linfo->locale, locale)) return(linfo); /* * Don't create font_set X resource db */ /* add to the font locale info list */ linfo = (Font_locale_info *)xv_malloc(sizeof(Font_locale_info)); linfo->locale = strdup(locale); linfo->next = fs_locales; fs_locales = linfo; initialize_locale_info(linfo); return(linfo); } #endif /*OW_I18N*/ /* Called to free the font list when server is being destroyed. */ /*ARGSUSED*/ static void font_list_free(server, key, data) Xv_object server; Font_attribute key; Xv_opaque data; { register Font_info *font, *next; register int ref_count; ASSERT(key == FONT_HEAD, _svdebug_always_on); for (font = (Font_info *) data; font; font = next) { next = font->next; /* Paranoia in case xv_destroy is immediate */ ref_count = (int) xv_get(FONT_PUBLIC(font), XV_REF_COUNT); if (ref_count == 0) { xv_destroy(FONT_PUBLIC(font)); #ifdef _XV_DEBUG } else { fprintf(stderr, XV_MSG("Font %s has %d refs but server being destroyed.\n"), #ifdef OW_I18N font->names[0], ref_count); #else /* OW_I18N */ font->name, ref_count); #endif /* OW_I18N */ #endif } } } #ifdef OW_I18N /* * Initialize font. This routine creates a new font (because xv_create always * allocates a new instance) and can not be used to get a handle to an * existing font. */ Pkg_private int font_init(parent_public, font_public, avlist) Xv_opaque parent_public; Xv_font_struct *font_public; Attr_avlist avlist; { register Font_info *font; int font_attrs_exist; Xv_opaque server; Display *display; XFontStruct *x_font_info; XID xid; int default_x, default_y, max_char, min_char; Font_locale_info *linfo; Font_info *font_head; struct font_return_attrs my_attrs; int error_code; XFontSet font_set = NULL; XFontSetExtents *font_set_extents; if (!parent_public) { /* xv_create ensures that xv_default_server is valid. */ parent_public = (Xv_opaque) xv_default_server; display = (Display *)xv_get(parent_public, XV_DISPLAY); server = (Xv_opaque) xv_default_server; } else { Xv_pkg *pkgtype = (Xv_pkg *) xv_get(parent_public, XV_TYPE); display = (Display *)xv_get(parent_public, XV_DISPLAY); if (!display) { if ((Xv_pkg *) pkgtype == (Xv_pkg *) & xv_font_pkg) { Xv_Font real_parent_public = 0; Font_info *real_parent_private = 0; XV_OBJECT_TO_STANDARD(parent_public, "font_init", real_parent_public); real_parent_private = FONT_PRIVATE(real_parent_public); parent_public = real_parent_private->parent; display = (Display *)real_parent_private->display; } else display = (Display *)xv_default_display; } if ((Xv_pkg *) pkgtype == (Xv_pkg *) & xv_server_pkg) { server = (Xv_opaque) parent_public; } else { server = (Xv_opaque) XV_SERVER_FROM_WINDOW(parent_public); } } /* * Get locale information */ linfo = find_font_locale_info(server, avlist); if (!linfo) { xv_error(NULL, ERROR_STRING, "Unable to find font locale information", ERROR_PKG, FONT, NULL); return(XV_ERROR); } /* * initialization */ my_attrs.linfo = linfo; font_init_create_attrs(&my_attrs); /* * Get the optional creation arguments */ font_attrs_exist = font_read_attrs(&my_attrs, TRUE, avlist); if (!font_attrs_exist) (void)font_default_font(&my_attrs); if (my_attrs.type == FONT_TYPE_TEXT) { error_code = font_construct_names(display, &my_attrs); } else { error_code = font_construct_name(&my_attrs); } if (error_code != XV_OK) { font_free_font_return_attr_strings(&my_attrs); return(error_code); } if (my_attrs.type == FONT_TYPE_TEXT) { /* load the font set */ font_set = xv_load_font_set(display, my_attrs.locale, my_attrs.names); if ((font_set == NULL) && (my_attrs.specifier || (my_attrs.name && (my_attrs.specifier != my_attrs.name))) && (my_attrs.linfo->db == NULL)) { /* * Try it again iff last time specifier is used as is and * no db was used to expand specifier's alias, or * my_attrs.name was used as is. * This time font_construct_names() will try to * expand specifier or name to xlfd name. */ if (my_attrs.free_names) { free_font_set_list(my_attrs.names); my_attrs.names = (char **) NULL; my_attrs.free_names = FALSE; } error_code = font_construct_names(display, &my_attrs); if (error_code != XV_OK) { font_free_font_return_attr_strings(&my_attrs); return(error_code); } font_set = xv_load_font_set(display, my_attrs.locale, my_attrs.names); } /* If load failed, print error msg and return error code */ if (!font_set) { char dummy[256]; char *message_name; if (my_attrs.specifier) message_name = my_attrs.specifier; else if (my_attrs.orig_name) message_name = my_attrs.orig_name; else if (my_attrs.name) message_name = my_attrs.name; (void) sprintf(dummy, XV_MSG("Cannot load font set '%s'"), message_name); xv_error(NULL, ERROR_STRING, dummy, ERROR_PKG, FONT, 0); font_free_font_return_attr_strings(&my_attrs); return XV_ERROR; } } else { char dummy[128]; /* * Try to load font with (possibly) decrypted name */ xid = xv_load_x_font((Display *) display, my_attrs.name, (Xv_opaque *)&x_font_info, &default_x, &default_y, &max_char, &min_char); /* * If load failed, print error msg and return error code */ if (!xid) { (void) sprintf(dummy, XV_MSG("Cannot load font '%s'"), (my_attrs.orig_name) ? my_attrs.orig_name : my_attrs.name); xv_error(NULL, ERROR_STRING, dummy, ERROR_PKG, FONT, 0); font_free_font_return_attr_strings(&my_attrs); return XV_ERROR; } } font = (Font_info *) xv_alloc(Font_info); font_public->private_data = (Xv_opaque) font; font->public_self = (Xv_opaque) font_public; font->parent = parent_public; font->display = (Xv_opaque)display; font->server = server; font->pkg = ATTR_PKG_FONT; font->pixfont = (char *)NULL; font->locale_info = linfo; if (my_attrs.type == FONT_TYPE_TEXT) { font->set_id = font_set; /* * font->names is a pointer to the names stored in core of font_set. * If font->names has its own copy, then the cleanup code in font_destroy_struct() * will need to be changed. */ (void) XFontsOfFontSet(font_set, &font->font_structs, &font->names); font_set_extents = XExtentsOfFontSet(font_set); font->def_char_width = font_set_extents->max_logical_extent.width; font->def_char_height = font_set_extents->max_logical_extent.height; /* * Using "n" to determining the columns width is solely based * on the historical reason (read compatibility). */ font->column_width = XmbTextEscapement(font_set, "n", 1); } else { font->xid = xid; font->x_font_info = (Xv_opaque)x_font_info; font->def_char_width = ((XFontStruct *)x_font_info)->max_bounds.width; font->def_char_height = ((XFontStruct *)x_font_info)->ascent + ((XFontStruct *)x_font_info)->descent; font->column_width = font->def_char_width; } (void) xv_set((Xv_opaque)font_public, XV_RESET_REF_COUNT, 0); font->type = my_attrs.type; font->small_size = (int) my_attrs.small_size; font->medium_size = (int) my_attrs.medium_size; font->large_size = (int) my_attrs.large_size; font->extra_large_size = (int) my_attrs.extra_large_size; if ((my_attrs.type != FONT_TYPE_TEXT) || (my_attrs.size != FONT_NO_SIZE)) font->size = (int) my_attrs.size; else { short size_found = FALSE; char *ptsize_str = get_attr_str_from_opened_names(font->names, PTSIZEPOS); /* * Get point size from the xlfd font names of font set */ if (ptsize_str && *ptsize_str && (*ptsize_str != DASH) && (*ptsize_str != '*')) { int ptsize = atoi(ptsize_str); /* * use point size only if it is positive */ if (ptsize >= 0) { my_attrs.size = ptsize / 10; size_found = TRUE; } } /* * A size was not obtained from the font names */ if (!size_found && multibyte) { /* * Set up the size as the smaller of the ascent+descent * or bounds->max_bounds.ascent + bounds->max_bounds.descent. * There is no good way to find out the point size. * * Do this only for multibyte (Asian) case * In single byte locales, if a font size could not be obtained, * i.e. if the font name was non-XLFD e.g. * "fixed", "9x15", "8x13", etc. * the font size == max height. * This is not consistent/compatible with previous releases, * where the font size for "fixed" == FONT_NO_SIZE. * * Removing this size guessing code is risky, as the Asian locales * might depend on it. So, for now, it will only be executed for * multibyte locales. */ my_attrs.size = font_set_extents->max_ink_extent.height; } font->size = (int) my_attrs.size; } if (my_attrs.scale != FONT_NO_SCALE) font->scale = (int)my_attrs.scale; else { if (font->size <= font->small_size) font->scale = WIN_SCALE_SMALL; else if (font->size <= font->medium_size) font->scale = WIN_SCALE_MEDIUM; else if (font->size <= font->large_size) font->scale = WIN_SCALE_LARGE; else font->scale = WIN_SCALE_EXTRALARGE; } if (my_attrs.foundry) { font->foundry = (my_attrs.free_foundry) ? my_attrs.foundry : xv_strsave(my_attrs.foundry); } else { font->foundry = get_attr_str_from_opened_names(font->names, FOUNDRYPOS); } if (my_attrs.family) { font->family = (my_attrs.free_family) ? my_attrs.family : xv_strsave(my_attrs.family); } else { font->family = get_attr_str_from_opened_names(font->names, FAMILYPOS); } /* * If style not present, but weight/slant is, try to convert * weight/slant to style */ if (!my_attrs.style && my_attrs.weight && my_attrs.slant) { font_convert_weightslant(&my_attrs); } if (my_attrs.style) { font->style = (my_attrs.free_style) ? my_attrs.style : xv_strsave(my_attrs.style); } if (my_attrs.weight) { font->weight = (my_attrs.free_weight) ? my_attrs.weight : xv_strsave(my_attrs.weight); } else { font->weight = get_attr_str_from_opened_names(font->names, WEIGHTPOS); } if (my_attrs.slant) { font->slant = (my_attrs.free_slant) ? my_attrs.slant : xv_strsave(my_attrs.slant); } else { font->slant = get_attr_str_from_opened_names(font->names, SLANTPOS); } if (my_attrs.setwidthname) { font->setwidthname = (my_attrs.free_setwidthname) ? my_attrs.setwidthname : xv_strsave(my_attrs.setwidthname); } else { font->setwidthname = get_attr_str_from_opened_names(font->names, SETWIDTHNAMEPOS); } if (my_attrs.addstylename) { font->addstylename = (my_attrs.free_addstylename) ? my_attrs.addstylename : xv_strsave(my_attrs.addstylename); } else { font->addstylename = get_attr_str_from_opened_names(font->names, ADDSTYLENAMEPOS); } if (my_attrs.type == FONT_TYPE_TEXT) { if (my_attrs.specifier) font->specifier = strdup(my_attrs.specifier); font->name = font->names[0]; } else { if (my_attrs.name) font->name = (my_attrs.free_name) ? my_attrs.name : xv_strsave(my_attrs.name); } if (my_attrs.orig_name) { free(my_attrs.orig_name); } if (my_attrs.free_names) free_font_set_list(my_attrs.names); /* * Add new font to server's list */ if (font_head = (Font_info *) xv_get(server, XV_KEY_DATA, FONT_HEAD)) { font->next = font_head->next; font_head->next = font; } else { font->next = (Font_info *) 0; (void) xv_set(server, XV_KEY_DATA, FONT_HEAD, font, XV_KEY_DATA_REMOVE_PROC, FONT_HEAD, font_list_free, 0); } /* * SunView1.X compatibility: set this font as default if appropriate. */ if ((xv_pf_sys == (Pixfont *) 0) && (parent_public == (Xv_opaque) xv_default_server)) { if (!my_attrs.name || ((font_string_compare(my_attrs.name, normalize_font_name((char *)NULL, linfo)) == 0))) { xv_pf_sys = (Pixfont *)font_public; (void) xv_set((Xv_opaque)font_public, XV_INCREMENT_REF_COUNT, 0); } } return XV_OK; } #else /* * Initialize font. This routine creates a new font (because xv_create always * allocates a new instance) and can not be used to get a handle to an * existing font. */ Pkg_private int font_init(parent_public, font_public, avlist) Xv_opaque parent_public; Xv_font_struct *font_public; Attr_avlist avlist; { register Font_info *font; int font_attrs_exist; Xv_opaque server; Display *display; XFontStruct *x_font_info; XID xid; int default_x, default_y, max_char, min_char; #ifdef CHECK_OVERLAPPING_CHARS int neg_left_bearing; #endif #ifdef CHECK_VARIABLE_HEIGHT int variable_height_font; #endif /* CHECK_VARIABLE_HEIGHT */ Font_locale_info *linfo; Font_info *font_head; struct font_return_attrs my_attrs; int error_code; if (!parent_public) { /* xv_create ensures that xv_default_server is valid. */ parent_public = (Xv_opaque) xv_default_server; display = (Display *)xv_get(parent_public, XV_DISPLAY); server = (Xv_opaque) xv_default_server; } else { Xv_pkg *pkgtype = (Xv_pkg *) xv_get(parent_public, XV_TYPE); display = (Display *)xv_get(parent_public, XV_DISPLAY); if (!display) { if ((Xv_pkg *) pkgtype == (Xv_pkg *) & xv_font_pkg) { Xv_Font real_parent_public = 0; Font_info *real_parent_private = 0; XV_OBJECT_TO_STANDARD(parent_public, "font_init", real_parent_public); real_parent_private = FONT_PRIVATE(real_parent_public); parent_public = real_parent_private->parent; display = (Display *)real_parent_private->display; } else display = (Display *)xv_default_display; } if ((Xv_pkg *) pkgtype == (Xv_pkg *) & xv_server_pkg) { server = (Xv_opaque) parent_public; } else { server = (Xv_opaque) XV_SERVER_FROM_WINDOW(parent_public); } } /* * Get locale information */ linfo = find_font_locale_info(); /* * initialization */ my_attrs.linfo = linfo; font_init_create_attrs(&my_attrs); /* * Get the optional creation arguments */ font_attrs_exist = font_read_attrs(&my_attrs, TRUE, avlist); if (!font_attrs_exist) (void)font_default_font(&my_attrs); error_code = font_construct_name(&my_attrs); if (error_code != XV_OK) { font_free_font_return_attr_strings(&my_attrs); return(error_code); } /* * Try to load font with (possibly) decrypted name */ xid = xv_load_x_font((Display *) display, my_attrs.name, (Xv_opaque *)&x_font_info, &default_x, &default_y, &max_char, &min_char); /* * If load failed, try to use other names, if possible * This piece of code does not fit well into FONT_SETs * because the loading of fonts is done by XCreateFontSet() */ if (!xid) { char dummy[128]; /* * Try to construct xlfd name if it isn't one yet */ if (font_delim_count(my_attrs.name, DASH) != NUMXLFDFIELDS) { (void)font_determine_font_name(&my_attrs); /* * Try to load font with (possibly) decrypted name */ xid = xv_load_x_font((Display *) display, my_attrs.name, (Xv_opaque *)&x_font_info, &default_x, &default_y, &max_char, &min_char); } /* * Keep trying with other names if previous load failed */ if (!xid) { /* * Try diferent combinations of family-style-size */ xid = font_try_misc_name(&my_attrs, display, &x_font_info, &default_x, &default_y, &max_char, &min_char); } /* * If load failed, print error msg and return error code */ if (!xid) { (void) sprintf(dummy, XV_MSG("Cannot load font '%s'"), (my_attrs.orig_name) ? my_attrs.orig_name : my_attrs.name); xv_error(NULL, ERROR_STRING, dummy, ERROR_PKG, FONT, 0); font_free_font_return_attr_strings(&my_attrs); return XV_ERROR; } } #ifdef CHECK_VARIABLE_HEIGHT font_check_var_height(&variable_height_font, &x_font_info); #endif #ifdef CHECK_OVERLAPPING_CHARS font_check_overlapping(&neg_left_bearing, &x_font_info); #endif font = (Font_info *) xv_alloc(Font_info); /* * set forward and back pointers */ font_public->private_data = (Xv_opaque) font; font->public_self = (Xv_opaque) font_public; font->parent = parent_public; font->display = (Xv_opaque)display; font->server = server; font->pkg = ATTR_PKG_FONT; font->xid = xid; font->pixfont = (char *)NULL; font->locale_info = linfo; font->def_char_width = ((XFontStruct *)x_font_info)->max_bounds.width; font->def_char_height = ((XFontStruct *)x_font_info)->ascent + ((XFontStruct *)x_font_info)->descent; font->x_font_info = (Xv_opaque)x_font_info; (void) xv_set((Xv_opaque)font_public, XV_RESET_REF_COUNT, 0); font->type = FONT_TYPE_TEXT; #ifdef CHECK_OVERLAPPING_CHARS if (neg_left_bearing #ifdef CHECK_VARIABLE_HEIGHT || variable_height_font #endif /* CHECK_VARIABLE_HEIGHT */ ) font->overlapping_chars = TRUE; #endif /* CHECK_OVERLAPPING_CHARS */ if (my_attrs.foundry) { if (my_attrs.free_foundry) { font->foundry = my_attrs.foundry; /* take malloc'd ptr */ } else font->foundry = xv_strsave(my_attrs.foundry); } if (my_attrs.family) { if (my_attrs.free_family) { font->family = my_attrs.family; /* take malloc'd ptr */ } else font->family = xv_strsave(my_attrs.family); } if (my_attrs.style) { if (my_attrs.free_style) { font->style = my_attrs.style; /* take malloc'd ptr */ } else font->style = xv_strsave(my_attrs.style); } if (my_attrs.weight) { if (my_attrs.free_weight) { font->weight = my_attrs.weight; /* take malloc'd ptr */ } else font->weight = xv_strsave(my_attrs.weight); } if (my_attrs.slant) { if (my_attrs.free_slant) { font->slant = my_attrs.slant; /* take malloc'd ptr */ } else font->slant = xv_strsave(my_attrs.slant); } if (my_attrs.setwidthname) { if (my_attrs.free_setwidthname) { font->setwidthname = my_attrs.setwidthname; /* take malloc'd ptr */ } else font->setwidthname = xv_strsave(my_attrs.setwidthname); } if (my_attrs.addstylename) { if (my_attrs.free_addstylename) { font->addstylename = my_attrs.addstylename; /* take malloc'd ptr */ } else font->addstylename = xv_strsave(my_attrs.addstylename); } if (my_attrs.name) { if (my_attrs.free_name) { font->name = my_attrs.name; } else font->name = xv_strsave(my_attrs.name); } font->size = (int) my_attrs.size; font->scale = (int) my_attrs.scale; font->small_size = (int) my_attrs.small_size; font->medium_size = (int) my_attrs.medium_size; font->large_size = (int) my_attrs.large_size; font->extra_large_size = (int) my_attrs.extra_large_size; if (my_attrs.orig_name) { free(my_attrs.orig_name); } /* * Add new font to server's list */ if (font_head = (Font_info *) xv_get(server, XV_KEY_DATA, FONT_HEAD)) { font->next = font_head->next; font_head->next = font; } else { font->next = (Font_info *) 0; (void) xv_set(server, XV_KEY_DATA, FONT_HEAD, font, XV_KEY_DATA_REMOVE_PROC, FONT_HEAD, font_list_free, 0); } /* * SunView1.X compatibility: set this font as default if appropriate. */ if ((xv_pf_sys == (Pixfont *) 0) && (parent_public == (Xv_opaque) xv_default_server)) { if ((font_string_compare(my_attrs.name, normalize_font_name((char *)NULL, linfo)) == 0) /* * || (font_string_compare(my_attrs.name, DEFAULT_DEFAULT_FONT_NAME) * == 0) */ ) { xv_pf_sys = (Pixfont *)font_public; (void) xv_set((Xv_opaque)font_public, XV_INCREMENT_REF_COUNT, 0); } } return XV_OK; } #endif /*OW_I18N*/ #ifdef OW_I18N char * get_attr_str_from_opened_names(names, attr_pos) char **names; int attr_pos; { char *temp_name = NULL; char *result = NULL; short i; if ((names == NULL) || (attr_pos > NUMXLFDFIELDS) || (attr_pos < 1)) { return(NULL); } else { for (i= 0; names[i] ; i++) { if (font_delim_count(names[i], DASH) == NUMXLFDFIELDS) { temp_name = names[i]; break; } } } if (temp_name) { char *temp_str = font_strip_name(temp_name, attr_pos, DASH); char *temp_str2 = NULL; char dummy[80]; if ((temp_str == NULL) || (strncmp(temp_str, "*", 1) == 0)) { return(NULL); } if (attr_pos < NUMXLFDFIELDS) { temp_str2 = font_strip_name(temp_name, attr_pos + 1, DASH); strncpy(dummy, temp_str, (temp_str2 - temp_str) - 1); dummy[(temp_str2 - temp_str) - 1] = NULL; } else { strcpy(dummy, temp_str); dummy[strlen(temp_str)] = NULL; } result = xv_strsave(dummy); } return(result); } #endif /* OW_I18N */ Pkg_private int font_destroy_struct(font_public, status) Xv_font_struct *font_public; Destroy_status status; { register Font_info *font = FONT_PRIVATE(font_public); register Font_info *prev; register int i; register struct pixchar *pfc; Font_info *font_head; Xv_opaque display, server = font->server; Pixfont *zap_font_public = (Pixfont *) font->pixfont; if (status == DESTROY_CLEANUP) { /* PERFORMANCE ALERT: revive list package to consolidate code. */ /* Remove the font from SunView's server list. */ font_head = (Font_info *) xv_get(server, XV_KEY_DATA, FONT_HEAD); if (!font_head) { server = (Xv_opaque) xv_default_server; if (server) { font_head = (Font_info *) xv_get(server, XV_KEY_DATA, FONT_HEAD); } } if (font_head) { if (((Xv_Font) FONT_PUBLIC(font_head)) == (Xv_Font) font_public) { /* at head of list */ (void) xv_set(server, XV_KEY_DATA, FONT_HEAD, font->next, 0); } else { for (prev = font_head; prev; prev = prev->next) { if (prev->next == font) { prev->next = font->next; break; } } #ifdef _XV_DEBUG if (prev == 0) abort(); #endif } } /* Free the storage allocated for glyphs. */ if (zap_font_public) { #ifdef OW_I18N XFontStruct *x_font_info = (XFontStruct *)font->font_structs[0]; #else XFontStruct *x_font_info = (XFontStruct *)font->x_font_info; #endif /*OW_I18N*/ int max_char = MIN(255, x_font_info->max_char_or_byte2); int min_char = MIN(255, x_font_info->min_char_or_byte2); for (i = min_char, pfc = &(zap_font_public->pf_char[i]); i <= max_char; i++, pfc++) { if (pfc->pc_pr) { xv_mem_destroy(pfc->pc_pr); } } } /* free string storage */ #ifdef OW_I18N if (font->specifier) free(font->specifier); if (font->name) { /* font->names is a pointer to the names stored in core, so don't free it */ if (font->names) { if (font->name != font->names[0]) free(font->name); } else { free(font->name); } } #else /*OW_I18N*/ if (font->name) free(font->name); #endif /*OW_I18N*/ if (font->foundry) free(font->foundry); if (font->family) free(font->family); if (font->style) free(font->style); if (font->weight) free(font->weight); if (font->slant) free(font->slant); if (font->setwidthname) free(font->setwidthname); if (font->addstylename) free(font->addstylename); /* Remove the font from X server list, and free our private data. */ display = font->display; if (!display) display = (Xv_opaque) xv_get(xv_default_server, XV_DISPLAY); #ifdef OW_I18N if (font->set_id) XFreeFontSet((Display *) display, font->set_id); #else xv_unload_x_font((Display *) display, font->x_font_info); #endif /*OW_I18N*/ free(font); } return XV_OK; } #ifdef OW_I18N Xv_private Xv_Font xv_font_with_name(server, name) Xv_opaque server; char *name; { Xv_Font font_public = NULL; char *str; char *save_name = NULL; defaults_set_locale(NULL, XV_LC_BASIC_LOCALE); if (name || (save_name = name = xv_font_regular())) { short free_name = FALSE; /* * If name was returned from defaults pkg, cache it */ if (save_name) { save_name = xv_strsave(name); free_name = TRUE; } else { save_name = name; } font_public = (Xv_Font)xv_find(server, FONT, FONT_SET_SPECIFIER, save_name, NULL); /* * Free cached name */ if (free_name) { xv_free(save_name); } } defaults_set_locale(NULL, NULL); if (font_public == NULL) if (str = xv_font_scale()) font_public = xv_find(server, FONT, FONT_SCALE, font_scale_from_string(str), NULL); else font_public = xv_find(server, FONT, NULL); if (font_public == NULL) xv_error(NULL, ERROR_SEVERITY, ERROR_RECOVERABLE, ERROR_STRING, XV_MSG("Unable to open default font set \n"), NULL); return(font_public); } #else Xv_private Xv_Font xv_font_with_name(server, name) Xv_opaque server; char *name; { Font_locale_info *linfo; char *locale; char *save_name; Xv_Font font_public; locale = (char *)xv_get(server, XV_LC_BASIC_LOCALE); if (!locale) { locale = "C"; } linfo = find_font_locale_info(); save_name = name = normalize_font_name(name, linfo); /* * Cache string obtained from defaults pkg, as it's * contents might change */ if (name) { save_name = xv_strsave(name); } font_public = xv_find(server, FONT, FONT_NAME, save_name, NULL); if (!font_public) { font_public = xv_find(server, FONT, NULL); } if (save_name) { xv_free(save_name); } return (font_public); } #endif /*OW_I18N*/ Xv_private Xv_font xv_find_olglyph_font(font_public) Xv_font font_public; { Xv_font glyph; Font_info *font; Font_locale_info *linfo; int given_size; int ol_size; if (!font_public) { return((Xv_Font)NULL); } font = FONT_PRIVATE(font_public); linfo = font->locale_info; given_size = xv_get(font_public, FONT_SIZE); if (given_size < 0) { ol_size = linfo->default_size; } else { if (given_size < linfo->medium_size) { ol_size = linfo->small_size; } else { if (given_size < linfo->large_size) { ol_size = linfo->medium_size; } else { if (given_size < linfo->xlarge_size) { ol_size = linfo->large_size; } else { ol_size = linfo->xlarge_size; } } } } glyph = (Xv_font)xv_find(font->server, FONT, FONT_FAMILY, FONT_FAMILY_OLGLYPH, FONT_SIZE, ol_size, #ifdef OW_I18N FONT_TYPE, FONT_TYPE_GLYPH, #endif /*OW_I18N*/ NULL); return(glyph); } Xv_private char * xv_font_regular() { char *name; if (xv_font_scale_cmdline() && !xv_font_regular_cmdline()) return( (char *)NULL ); name = defaults_get_string("font.name.cmdline", "Font.Name.Cmdline", NULL); if (name == NULL || !strlen(name)) name = defaults_get_string("openwindows.regularfont", "OpenWindows.RegularFont", (char *)NULL); /* if "RegularFont" isn't specified then read "Name" */ if (name == NULL || !strlen(name)) name = defaults_get_string("font.name", "Font.Name", NULL); /* if "" then set to NULL */ if (name && !strlen(name)) name = (char *)NULL; return( name ); } Xv_private char * xv_font_monospace() { char *name; if (xv_font_scale_cmdline() && !xv_font_regular_cmdline()) return( (char *)NULL ); name = defaults_get_string("font.name.cmdline", "Font.Name.Cmdline", NULL); if (name == NULL || !strlen(name)) name = defaults_get_string( "openwindows.monospacefont", "OpenWindows.MonospaceFont", (char *)NULL); /* if "RegularFont" isn't specified then read "Name" */ if (name == NULL || !strlen(name)) name = defaults_get_string("font.name", "Font.Name", NULL); /* if "" then set to NULL */ if (name && !strlen(name)) name = (char *)NULL; return( name ); } Xv_private char * xv_font_bold() { char *name; if (xv_font_scale_cmdline() && !xv_font_regular_cmdline()) return( (char *)NULL ); name = defaults_get_string("font.name.cmdline", "Font.Name.Cmdline", NULL); if (name == NULL || !strlen(name)) name = defaults_get_string( "openwindows.boldfont", "OpenWindows.BoldFont", (char *)NULL); /* if "" then set to NULL */ if (name && !strlen(name)) name = (char *)NULL; return( name ); } Xv_private char * xv_font_scale_cmdline() { char *scale_name; scale_name = defaults_get_string("window.scale.cmdline", "Window.Scale.Cmdline", NULL); /* if "" then set to NULL */ if (scale_name && !strlen(scale_name)) scale_name = (char *)NULL; return( scale_name ); } Xv_private char * xv_font_regular_cmdline() { char *name; name = defaults_get_string("font.name.cmdline", "Font.Name.Cmdline", NULL); /* if "" then set to NULL */ if (name && !strlen(name)) name = (char *)NULL; return( name ); } Xv_private char * xv_font_scale() { char *scale_name; scale_name = defaults_get_string("window.scale.cmdline", "Window.Scale.Cmdline", NULL); if (scale_name == NULL || !strlen(scale_name)) scale_name = (char *) defaults_get_string("openwindows.scale", "OpenWindows.Scale", NULL ); if (scale_name == NULL || !strlen(scale_name)) scale_name = (char *) defaults_get_string("window.scale", "Window.Scale", NULL ); /* if "" then set to NULL */ if (scale_name && !strlen(scale_name)) scale_name = (char *)NULL; return( scale_name ); } static char * font_determine_font_name(my_attrs) Font_return_attrs my_attrs; { char name[512]; char sizestr[10]; /* * Return null if no family/style specified */ if ( (my_attrs->family == (char *) NULL) && (my_attrs->style == (char *) NULL) && (my_attrs->weight == (char *) NULL) && (my_attrs->slant == (char *) NULL) ) return (char *) NULL; /* * If the size fields is used for the font */ if (!my_attrs->no_size) { /* * Use only sizes that are non negative */ if (my_attrs->size >= 0) { sprintf(sizestr, "%d", 10 * my_attrs->size); } else { /* * Otherwise wild card the size */ sprintf(sizestr, "*"); } } else { sprintf(sizestr, "*"); } /* * If style field not used, nullify style, weight, and slant * fields */ if (my_attrs->no_style) { if (my_attrs->style) { if (my_attrs->free_style) { free(my_attrs->style); my_attrs->free_style = 0; } my_attrs->style = NULL; } if (my_attrs->weight) { if (my_attrs->free_weight) { free(my_attrs->weight); my_attrs->free_weight = 0; } my_attrs->weight = NULL; } if (my_attrs->slant) { if (my_attrs->free_slant) { free(my_attrs->slant); my_attrs->free_slant = 0; } my_attrs->slant = NULL; } } /* * Fill in wildcard'd fields for certain known families */ font_reduce_wildcards(my_attrs); name[0] = '\0'; sprintf(name, "-%s-%s-%s-%s-%s-%s-*-%s-*-*-*-*-%s-%s", (my_attrs->foundry ? my_attrs->foundry:"*"), (my_attrs->family ? my_attrs->family:"*"), (my_attrs->weight ? my_attrs->weight:"*"), (my_attrs->slant ? my_attrs->slant:"*"), (my_attrs->setwidthname ? my_attrs->setwidthname:"*"), (my_attrs->addstylename ? my_attrs->addstylename:"*"), sizestr, (my_attrs->registry ? my_attrs->registry:"*"), (my_attrs->encoding ? my_attrs->encoding:"*")); /* * Save and return the font name constructed */ my_attrs->name = xv_strsave(name); my_attrs->free_name = 1; return (char *) my_attrs->name; } #ifdef OW_I18N Pkg_private int font_scale_from_string(str) char *str; { int scale = WIN_SCALE_MEDIUM; if (str != NULL) { if (!strcmp(str, "small") || !strcmp(str, "Small")) scale = WIN_SCALE_SMALL; else if (!strcmp(str, "medium") || !strcmp(str, "Medium")) scale = WIN_SCALE_MEDIUM; else if (!strcmp(str, "large") || !strcmp(str, "Large")) scale = WIN_SCALE_LARGE; else if (!strcmp(str, "extra_large") || !strcmp(str, "extra_Large") || !strcmp(str, "Extra_large") || !strcmp(str, "Extra_Large")) scale = WIN_SCALE_EXTRALARGE; } return(scale); } #endif /*OW_I18N*/ static int font_size_from_scale(font_attrs, scale) Font_return_attrs font_attrs; int scale; { Font_locale_info *linfo; int small, med, large, xlarge; if (scale == FONT_NO_SCALE) { return(FONT_NO_SIZE); } if (!font_attrs) { small = DEFAULT_SMALL_FONT_SIZE; med = DEFAULT_MEDIUM_FONT_SIZE; large = DEFAULT_LARGE_FONT_SIZE; xlarge = DEFAULT_XLARGE_FONT_SIZE; } else { linfo = font_attrs->linfo; small = (font_attrs->small_size < 0) ? linfo->small_size : font_attrs->small_size; med = (font_attrs->medium_size < 0) ? linfo->medium_size : font_attrs->medium_size; large = (font_attrs->large_size < 0) ? linfo->large_size : font_attrs->large_size; xlarge = (font_attrs->extra_large_size < 0) ? linfo->xlarge_size : font_attrs->extra_large_size; } switch (scale) { case WIN_SCALE_SMALL: return small; case WIN_SCALE_MEDIUM: return med; case WIN_SCALE_LARGE: return large; case WIN_SCALE_EXTRALARGE: return xlarge; default: return FONT_NO_SIZE; } } static int font_scale_from_size(font_attrs, size) Font_return_attrs font_attrs; int size; { Font_locale_info *linfo; int med, large, xlarge; if (size == FONT_NO_SIZE) { return(FONT_NO_SCALE); } if (!font_attrs) { med = DEFAULT_MEDIUM_FONT_SIZE; large = DEFAULT_LARGE_FONT_SIZE; xlarge = DEFAULT_XLARGE_FONT_SIZE; } else { linfo = font_attrs->linfo; med = (font_attrs->medium_size < 0) ? linfo->medium_size : font_attrs->medium_size; large = (font_attrs->large_size < 0) ? linfo->large_size : font_attrs->large_size; xlarge = (font_attrs->extra_large_size < 0) ? linfo->xlarge_size : font_attrs->extra_large_size; } if (size < med) { return WIN_SCALE_SMALL; } if (size < large) { return WIN_SCALE_MEDIUM; } if (size < xlarge) { return WIN_SCALE_LARGE; } return WIN_SCALE_EXTRALARGE; } static int font_get_default_scale(linfo) Font_locale_info *linfo; { char *scale_name; if (!(scale_name = xv_font_scale())) scale_name=linfo->default_scale_str; if ((font_string_compare(scale_name, "small") == 0) || (font_string_compare(scale_name, "Small") == 0)) { return(WIN_SCALE_SMALL); } if ((font_string_compare(scale_name, "medium") == 0) || (font_string_compare(scale_name, "Medium") == 0)) { return(WIN_SCALE_MEDIUM); } if ((font_string_compare(scale_name, "large") == 0)|| (font_string_compare(scale_name, "Large") == 0)) { return(WIN_SCALE_LARGE); } if ((font_string_compare(scale_name, "Extra_large") == 0) || (font_string_compare(scale_name, "Extra_Large") == 0) || (font_string_compare(scale_name, "extra_Large") == 0) || (font_string_compare(scale_name, "extra_large") == 0)) { return(WIN_SCALE_EXTRALARGE); } return(FONT_NO_SCALE); } #ifdef OW_I18N static char * font_rescale_from_font(font, scale, attrs) Font_info *font; int scale; struct font_return_attrs *attrs; { Font_locale_info *linfo; char *font_name = NULL; char new_name[256], name[512]; int desired_scale; int fs = 0; if (!font) /* if possibly not set? */ return (char *) font_name; name[0] = '\0'; linfo = attrs->linfo; if ((scale < (int) WIN_SCALE_SMALL) || (scale > (int) WIN_SCALE_EXTRALARGE) || (scale == FONT_NO_SCALE)) { char dummy[128]; sprintf(dummy, XV_MSG("Bad scale value:%d"), (int)scale); xv_error(NULL, ERROR_STRING, dummy, ERROR_PKG, FONT, 0); return (char *) font_name; /* no scaling */ } if (linfo && multibyte && (font->type == FONT_TYPE_TEXT)) { fs = 1; sprintf(name, "%s-%s", (font->family ? font->family:"*"), (font->style ? font->style:"*")); if (font->family) { attrs->family = xv_strsave(font->family); attrs->free_family = 1; } if (font->style) { attrs->style = xv_strsave(font->style); attrs->free_style = 1; } } else { /* munch everything together */ sprintf(name, "-%s-%s-%s-%s-%s-%s", (font->foundry ? font->foundry:"*"), (font->family ? font->family:"*"), (font->weight ? font->weight:"*"), (font->slant ? font->slant:"*"), (font->setwidthname ? font->setwidthname:"*"), (font->addstylename ? font->addstylename:"*") ); if (font->foundry) { attrs->foundry = xv_strsave(font->foundry); attrs->free_foundry = 1; } if (font->family) { attrs->family = xv_strsave(font->family); attrs->free_family = 1; } if (font->style) { attrs->style = xv_strsave(font->style); attrs->free_style = 1; } if (font->weight) { attrs->weight = xv_strsave(font->weight); attrs->free_weight = 1; } if (font->slant) { attrs->slant = xv_strsave(font->slant); attrs->free_slant = 1; } if (font->setwidthname) { attrs->setwidthname = xv_strsave(font->setwidthname); attrs->free_setwidthname = 1; } if (font->addstylename) { attrs->addstylename = xv_strsave(font->addstylename); attrs->free_addstylename = 1; } } switch (scale) { case WIN_SCALE_SMALL: desired_scale = font->small_size; break; case WIN_SCALE_MEDIUM: desired_scale = font->medium_size; break; case WIN_SCALE_LARGE: desired_scale = font->large_size; break; case WIN_SCALE_EXTRALARGE: desired_scale = font->extra_large_size; break; default: desired_scale = -1; } if (desired_scale == -1) return (char *) font_name; /* no font that scale */ new_name[0] = '\0'; /* * If cannot get a size, give the default */ if ((desired_scale == FONT_NO_SIZE) || (desired_scale <= 0)) { desired_scale = linfo->default_size; } if (fs) sprintf(new_name, "%s-%d", name, desired_scale); else sprintf(new_name, "%s-*-%d-*-*-*-*-*-*", name, (10*desired_scale)); attrs->name = xv_strsave(new_name); attrs->free_name = 1; attrs->size = desired_scale; attrs->scale = scale; attrs->small_size = font->small_size; attrs->medium_size = font->medium_size; attrs->large_size = font->large_size; attrs->extra_large_size = font->extra_large_size; return (attrs->name); } #else static char * font_rescale_from_font(font, scale, attrs) Font_info *font; int scale; struct font_return_attrs *attrs; { Font_locale_info *linfo; char *font_name = NULL; char new_name[256], name[512]; int desired_scale; if (!font) /* if possibly not set? */ return (char *) font_name; name[0] = '\0'; linfo = attrs->linfo; if ((scale < (int) WIN_SCALE_SMALL) || (scale > (int) WIN_SCALE_EXTRALARGE) || (scale == FONT_NO_SCALE)) { char dummy[128]; sprintf(dummy, "Bad scale value:%d", (int)scale); xv_error(NULL, ERROR_STRING, dummy, ERROR_PKG, FONT, 0); return (char *) font_name; /* no scaling */ } if (font->foundry) { attrs->foundry = xv_strsave(font->foundry); attrs->free_foundry = 1; } if (font->family) { attrs->family = xv_strsave(font->family); attrs->free_family = 1; } if (font->style) { attrs->style = xv_strsave(font->style); attrs->free_style = 1; } if (font->weight) { attrs->weight = xv_strsave(font->weight); attrs->free_weight = 1; } if (font->slant) { attrs->slant = xv_strsave(font->slant); attrs->free_slant = 1; } if (font->setwidthname) { attrs->setwidthname = xv_strsave(font->setwidthname); attrs->free_setwidthname = 1; } if (font->addstylename) { attrs->addstylename = xv_strsave(font->addstylename); attrs->free_addstylename = 1; } font_reduce_wildcards(attrs); /* munch everything together */ sprintf(name, "-%s-%s-%s-%s-%s-%s", (attrs->foundry ? attrs->foundry:"*"), (attrs->family ? attrs->family:"*"), (attrs->weight ? attrs->weight:"*"), (attrs->slant ? attrs->slant:"*"), (attrs->setwidthname ? attrs->setwidthname:"*"), (attrs->addstylename ? attrs->addstylename:"*") ); switch (scale) { case WIN_SCALE_SMALL: desired_scale = font->small_size; break; case WIN_SCALE_MEDIUM: desired_scale = font->medium_size; break; case WIN_SCALE_LARGE: desired_scale = font->large_size; break; case WIN_SCALE_EXTRALARGE: desired_scale = font->extra_large_size; break; default: desired_scale = -1; } if (desired_scale == -1) return (char *) font_name; /* no font that scale */ new_name[0] = '\0'; /* * If cannot get a size, give the default */ if ((desired_scale == FONT_NO_SIZE) || (desired_scale <= 0)) { desired_scale = linfo->default_size; } sprintf(new_name, "%s-*-%d-*-*-*-*-%s-%s", name, (10*desired_scale), (attrs->registry ? attrs->registry:"*"), (attrs->encoding ? attrs->encoding:"*")); attrs->name = xv_strsave(new_name); attrs->free_name = 1; attrs->size = desired_scale; attrs->scale = scale; attrs->small_size = font->small_size; attrs->medium_size = font->medium_size; attrs->large_size = font->large_size; attrs->extra_large_size = font->extra_large_size; return (attrs->name); } #endif /*OW_I18N*/ #ifdef OW_I18N static int font_name_is_equivalent(my_attrs, finfo) Font_return_attrs my_attrs; struct font_info *finfo; { char tempName[260]; char *foundry = NULL; char *family = NULL; char *weight = NULL; char *slant = NULL; char *setwidthname = NULL; char *addstylename = NULL; char *pixsize = NULL; char *ptsize = NULL; char *xres = NULL; char *registry = NULL; char *encoding = NULL; /* * This has a big assumption null pointer means wild card. * If this assumption is changed, then this code will not be valid. */ if (!my_attrs || !my_attrs->family || (font_delim_count(finfo->name, DASH) != NUMXLFDFIELDS)) { return (FALSE); } /* * Decrypt the XLFD name into it's subparts * The different pointers (i.e. foundry, family, etc) will * point to different positions in the tempName string. * The null padding is inserted as well. */ if (finfo && finfo->name) { sprintf(tempName, "%s", finfo->name); foundry = font_strip_name(tempName, FOUNDRYPOS, DASH); family = font_strip_name(tempName, FAMILYPOS, DASH); weight = font_strip_name(tempName, WEIGHTPOS, DASH); slant = font_strip_name(tempName, SLANTPOS, DASH); setwidthname = font_strip_name(tempName, SETWIDTHNAMEPOS, DASH); addstylename = font_strip_name(tempName, ADDSTYLENAMEPOS, DASH); pixsize = font_strip_name(tempName, PIXSIZEPOS, DASH); ptsize = font_strip_name(tempName, PTSIZEPOS, DASH); xres = font_strip_name(tempName, XRESOLUTIONPOS, DASH); registry = font_strip_name(tempName, 13, DASH); encoding = font_strip_name(tempName, 14, DASH); /* * Null pad strings */ if (family) { *(family-1) = '\0'; } if (weight) { *(weight-1) = '\0'; } if (slant) { *(slant-1) = '\0'; } if (setwidthname) { *(setwidthname-1) = '\0'; } if (addstylename) { *(addstylename-1) = '\0'; } if (pixsize) { *(pixsize-1) = '\0'; } if (ptsize) { *(ptsize-1) = '\0'; } if (xres) { *(xres-1) = '\0'; } if (registry) { *(registry-1) = '\0'; } } if (my_attrs->family) { if (family == NULL) { /* non XLFD name */ return(FALSE); } else if (strncmp(family, "*", 1) != 0) { if (strcmp(family, my_attrs->family) != 0) { return(FALSE); } } } if (my_attrs->foundry) { if (foundry == NULL) { /* non XLFD name */ return(FALSE); } else if (strncmp(foundry, "*", 1) != 0) { if (strcmp(foundry, my_attrs->foundry) != 0) { return(FALSE); } } } if (my_attrs->weight) { if (weight == NULL) { /* non XLFD name */ return(FALSE); } else if (strncmp(weight, "*", 1) != 0) { if (strcmp(weight, my_attrs->weight) != 0) { return(FALSE); } } } if (my_attrs->slant) { if (slant == NULL) { /* non XLFD name */ return(FALSE); } else if (strncmp(slant, "*", 1) != 0) { if (strcmp(slant, my_attrs->slant) != 0) { return(FALSE); } } } if (my_attrs->setwidthname) { if (setwidthname == NULL) { /* non XLFD name */ return(FALSE); } else if (strncmp(setwidthname, "*", 1) != 0) { if (strcmp(setwidthname, my_attrs->setwidthname) != 0) { return(FALSE); } } } if (my_attrs->addstylename) { if (addstylename == NULL) { /* non XLFD name */ return(FALSE); } else if (strncmp(addstylename, "*", 1) != 0) { if (strcmp(addstylename, my_attrs->addstylename) != 0) { return(FALSE); } } } if (my_attrs->size > 0) { if (ptsize == NULL) { /* non XLFD name */ return(FALSE); } else if (strncmp(ptsize, "*", 1) != 0) { int point_size = atoi(ptsize) / 10; if (point_size != my_attrs->size) { return(FALSE); } } } if (my_attrs->registry) { if (registry == NULL) { /* non XLFD name */ return(FALSE); } else if (strncmp(registry, "*", 1) != 0) { if (strcmp(registry, my_attrs->registry) != 0) { return(FALSE); } } } if (my_attrs->encoding) { if (encoding == NULL) { /* non XLFD name */ return(FALSE); } else if (strncmp(encoding, "*", 1) != 0) { if (strcmp(encoding, my_attrs->encoding) != 0) { return(FALSE); } } } return(TRUE); } /*ARGSUSED*/ Pkg_private Xv_object font_find_font(parent_public, pkg, avlist) Xv_opaque parent_public; Xv_pkg *pkg; Attr_avlist avlist; { int font_attrs_exist; Font_locale_info *linfo; struct font_info *font_list = NULL, *finfo = NULL; struct font_return_attrs my_attrs; char *font_name = (char *) NULL; Xv_opaque server; char *locale; if (!parent_public) { /* xv_create/xv_find ensures that xv_default_server is valid. */ server = (Xv_opaque) xv_default_server; } else { Xv_pkg *pkgtype = (Xv_pkg *) xv_get(parent_public, XV_TYPE); if ((Xv_pkg *) pkgtype == (Xv_pkg *) & xv_server_pkg) { server = parent_public; } else { server = (Xv_opaque) XV_SERVER_FROM_WINDOW(parent_public); } } linfo = find_font_locale_info(server, avlist); if (!linfo) { xv_error(NULL, ERROR_STRING, "Unable to find font locale information", ERROR_PKG, FONT, NULL); return ((Xv_object) NULL); } /* initialization */ my_attrs.linfo = linfo; font_init_create_attrs(&my_attrs); font_attrs_exist = font_read_attrs(&my_attrs, FALSE, avlist); if (!font_attrs_exist) (void) font_default_font(&my_attrs); font_list = (Font_info *) xv_get(server, XV_KEY_DATA, FONT_HEAD); if (!font_list) { font_free_font_return_attr_strings(&my_attrs); return ((Xv_object) NULL); } if (my_attrs.specifier) { for (finfo = font_list; finfo != NULL; finfo = finfo->next) if ((linfo == finfo->locale_info) && finfo->specifier && !strcmp(my_attrs.specifier, finfo->specifier) && (my_attrs.type == finfo->type)) break; /* * If a font set with this font set specifier was not found, * check if the specifier is being used as the font name for * codeset 0 in any font set in this locale. */ if (finfo == NULL) for (finfo = font_list; finfo != NULL; finfo = finfo->next) if ((linfo == finfo->locale_info) && finfo->name && !strcmp(my_attrs.specifier, finfo->name) && (my_attrs.type == finfo->type)) break; } else if (my_attrs.names != NULL) { /* Bug - FIX me */ } else if (my_attrs.name) { my_attrs.name = normalize_font_name(my_attrs.name, linfo); for (finfo = font_list; finfo != NULL; finfo = finfo->next) if ((linfo == finfo->locale_info) && finfo->name && !strcmp(my_attrs.name, finfo->name) && (my_attrs.type == finfo->type)) break; } else if (my_attrs.resize_from_font) { font_name = font_rescale_from_font(my_attrs.resize_from_font, my_attrs.rescale_factor, &my_attrs); if (font_name && ((int)strlen(font_name) > 0)) { for (finfo = font_list; finfo != NULL; finfo = finfo->next) if ((linfo == finfo->locale_info) && finfo->specifier && !strcmp(font_name, finfo->specifier) && (my_attrs.type == finfo->type)) break; if (finfo == NULL) for (finfo = font_list; finfo != NULL; finfo = finfo->next) if ((linfo == finfo->locale_info) && finfo->name && !strcmp(font_name, finfo->name) && (my_attrs.type == finfo->type)) break; } } else { char key[256]; font_fill_in_defaults(&my_attrs); #ifdef SVR4 sprintf(key, "%s-%s-%d", my_attrs.family ? my_attrs.family : "*", my_attrs.style ? my_attrs.style : "*", my_attrs.size ? my_attrs.size : 0 ); #else sprintf(key, "%s-%s-%d", my_attrs.family, my_attrs.style, my_attrs.size); #endif /* SVR4 */ for (finfo = font_list; finfo != NULL; finfo = finfo->next) if ((linfo == finfo->locale_info) && finfo->specifier && !strcmp(key, finfo->specifier) && (my_attrs.type == finfo->type)) break; if (finfo == NULL) { char *str = NULL; if (key && linfo->db ) { str = get_font_set_list(linfo->db, key); } if (str) { char ** names = construct_font_set_list(str); /* No need to compare the entire name list */ for (finfo = font_list; finfo != NULL; finfo = finfo->next) if ((linfo == finfo->locale_info) && finfo->name && names[0] && (strcmp(names[0], finfo->name) == 0) && (my_attrs.type == finfo->type)) break; if (names) free_font_set_list(names); } else { char *temp_name; (void)font_convert_family(&my_attrs); if (font_convert_style(&my_attrs)) { my_attrs.style = linfo->default_style; my_attrs.weight = linfo->default_weight; my_attrs.slant = linfo->default_slant; } for (finfo = font_list; finfo != NULL; finfo = finfo->next) if ((linfo == finfo->locale_info) && finfo->name && (font_name_is_equivalent(&my_attrs, finfo)) && (my_attrs.type == finfo->type)) break; } } } font_free_font_return_attr_strings(&my_attrs); if (finfo) { (void) xv_set(FONT_PUBLIC(finfo), XV_INCREMENT_REF_COUNT, 0); return (FONT_PUBLIC(finfo)); } else return ((Xv_object) NULL); } #else /*ARGSUSED*/ Pkg_private Xv_object font_find_font(parent_public, pkg, avlist) Xv_opaque parent_public; Xv_pkg *pkg; Attr_avlist avlist; { int font_attrs_exist; Font_locale_info *linfo; struct font_info *font_list; struct font_return_attrs my_attrs; Xv_opaque server; int error_code; if (!parent_public) { /* xv_create/xv_find ensures that xv_default_server is valid. */ server = (Xv_opaque) xv_default_server; } else { Xv_pkg *pkgtype = (Xv_pkg *) xv_get(parent_public, XV_TYPE); if ((Xv_pkg *) pkgtype == (Xv_pkg *) & xv_server_pkg) { server = parent_public; } else { server = (Xv_opaque) XV_SERVER_FROM_WINDOW(parent_public); } } linfo = find_font_locale_info(); /* initialization */ my_attrs.linfo = linfo; font_init_create_attrs(&my_attrs); font_attrs_exist = font_read_attrs(&my_attrs, FALSE, avlist); if (!font_attrs_exist) (void) font_default_font(&my_attrs); error_code = font_construct_name(&my_attrs); if (error_code != XV_OK) { return(error_code); } if (font_list = (Font_info *) xv_get(server, XV_KEY_DATA, FONT_HEAD)) { while (font_list) { if (((font_string_compare(my_attrs.name, font_list->name) == 0) && (my_attrs.name != (char *) 0) && (font_list->name != (char *) 0)) /* * first above for name, else below for family/style/size/scale * match || (((font_string_compare(my_attrs.family, font_list->family) == 0) && (my_attrs.family != (char *) 0) && (font_list->family != (char *) 0)) && (font_string_compare(my_attrs.style, font_list->style) == 0) && ((font_list->size == my_attrs.size) && (font_list->scale == my_attrs.scale))) */ ) { font_free_font_return_attr_strings(&my_attrs); (void) xv_set(FONT_PUBLIC(font_list), XV_INCREMENT_REF_COUNT, 0); return (FONT_PUBLIC(font_list)); } font_list = font_list->next; } } font_free_font_return_attr_strings(&my_attrs); return ((Xv_object) 0); } #endif /*OW_I18N*/ Pkg_private int font_free_font_return_attr_strings(attrs) struct font_return_attrs *attrs; { if (attrs->orig_name) { free(attrs->orig_name); } if (attrs->free_name) { free(attrs->name); attrs->free_name = 0; } if (attrs->free_foundry) { free(attrs->foundry); attrs->free_foundry = 0; } if (attrs->free_family) { free(attrs->family); attrs->free_family = 0; } if (attrs->free_style) { free(attrs->style); attrs->free_style = 0; } if (attrs->free_weight) { free(attrs->weight); attrs->free_weight = 0; } if (attrs->free_slant) { free(attrs->slant); attrs->free_slant = 0; } if (attrs->free_setwidthname) { free(attrs->setwidthname); attrs->free_setwidthname = 0; } if (attrs->free_addstylename) { free(attrs->addstylename); attrs->free_addstylename = 0; } #ifdef OW_I18N if (attrs->free_names) { free_font_set_list(attrs->names); attrs->names = (char **) NULL; } #endif /*OW_I18N*/ } /* * the following proc is a wrapper for strcmp() strncmp() such that it will * return =0 if both strings are NULL and !=0 if one or other is NULL, and * standard strcmp otherwise. BUG: strcmp will seg fault if either str is * NULL. */ static int font_string_compare(str1, str2) char *str1, *str2; { if ((str1 == NULL) && (str2 == NULL)) { return (int) 0; /* they're the same (ie. nothing */ } else if ((str1 == NULL) || (str2 == NULL)) { return (int) -1; /* avoid seg fault */ } else { /* int i, len; char ch; len = strlen(str1); for (i=0; i < len; ++i) { ch = str1[i]; if (isalpha(ch) && isupper(ch)) { str1[i] = tolower(ch); } } len = strlen(str2); for (i=0; i < len; ++i) { ch = str2[i]; if (isalpha(ch) && isupper(ch)) { str2[i] = tolower(ch); } } */ return (int) strcmp(str1, str2); } } static int font_string_compare_nchars(str1, str2, n_chars) char *str1, *str2; int n_chars; { int result; int len1 = (str1) ? strlen(str1) : 0; int len2 = (str2) ? strlen(str2) : 0; if ((len1 == 0) && (len2 == 0)) { return (int) 0; /* they're the same (ie. nothing */ } else if ((len1 && !len2) || (!len1 && len2)) { return (int) -1; /* They're different strings */ } else if ((!len1) || (!len2)) { return (int) -1; /* avoid seg fault */ } else { /* int i; char ch; for (i=0; i < len1; ++i) { ch = str1[i]; if (isalpha(ch) && isupper(ch)) { str1[i] = tolower(ch); } } for (i=0; i < len2; ++i) { ch = str2[i]; if (isalpha(ch) && isupper(ch)) { str2[i] = tolower(ch); } } */ result = strncmp(str1, str2, n_chars); } return (int) result; } static void font_check_style_less(return_attrs) Font_return_attrs return_attrs; { Family_foundry current_entry; register int i; char *requested_family = return_attrs->family; if (!return_attrs || !requested_family) { return; } for (i = 0, current_entry = style_less[i]; current_entry.family; current_entry = style_less[i]) { if (font_string_compare_nchars(current_entry.family, requested_family, strlen(requested_family)) == 0) { return_attrs->no_style = 1; return; } else { i++; } } return_attrs->no_style = 0; } static void font_check_size_less(return_attrs) Font_return_attrs return_attrs; { Family_foundry current_entry; register int i; char *requested_family = return_attrs->family; if (!return_attrs || !requested_family) { return; } for (i = 0, current_entry = size_less[i]; current_entry.family; current_entry = size_less[i]) { if (font_string_compare_nchars(current_entry.family, requested_family, strlen(requested_family)) == 0) { return_attrs->no_size = 1; return; } else { i++; } } return_attrs->no_size = 0; } static void font_reduce_wildcards(return_attrs) Font_return_attrs return_attrs; { register int i; Wildcards current_entry; char *requested_family = return_attrs->family; if (!return_attrs || !requested_family) { return; } for (i = 0, current_entry = known_wildcards[i]; current_entry.family; current_entry = known_wildcards[i]) { if (font_string_compare_nchars(current_entry.family, requested_family, strlen(requested_family)) == 0) { if (!return_attrs->foundry) { return_attrs->foundry = current_entry.foundry; } if (!return_attrs->weight) { return_attrs->weight = current_entry.weight; } if (!return_attrs->slant) { return_attrs->slant = current_entry.slant; } if (!return_attrs->setwidthname) { return_attrs->setwidthname = current_entry.setwidthname; } if (!return_attrs->addstylename) { return_attrs->addstylename = current_entry.addstylename; } if (!return_attrs->registry) { return_attrs->registry = current_entry.registry; } if (!return_attrs->encoding) { return_attrs->encoding = current_entry.encoding; } return; } else { i++; } } } static int font_read_attrs(return_attrs, consume_attrs, avlist) Font_return_attrs return_attrs; int consume_attrs; Attr_avlist avlist; { register Attr_avlist attrs; int font_attrs_exist = 0; for (attrs = avlist; *attrs; attrs = attr_next(attrs)) { switch ((int) attrs[0]) { #ifdef OW_I18N case FONT_LOCALE: return_attrs->locale = (char *) attrs[1]; font_attrs_exist = 1; if (consume_attrs) ATTR_CONSUME(attrs[0]); break; case FONT_NAMES: return_attrs->names = (char **) attrs[1]; font_attrs_exist = 1; if (consume_attrs) ATTR_CONSUME(attrs[0]); break; case FONT_SET_SPECIFIER: return_attrs->specifier = (char *) attrs[1]; font_attrs_exist = 1; if (consume_attrs) ATTR_CONSUME(attrs[0]); break; case FONT_TYPE: return_attrs->type = (int) attrs[1]; font_attrs_exist = 1; if (consume_attrs) ATTR_CONSUME(attrs[0]); break; #endif /*OW_I18N*/ case FONT_NAME: return_attrs->name = (char *) attrs[1]; font_attrs_exist = 1; if (consume_attrs) ATTR_CONSUME(attrs[0]); break; case FONT_FAMILY: font_attrs_exist = 1; return_attrs->family = (char *) attrs[1]; font_check_style_less(return_attrs); font_check_size_less(return_attrs); if (consume_attrs) ATTR_CONSUME(attrs[0]); break; case FONT_STYLE: font_attrs_exist = 1; return_attrs->style = (char *) attrs[1]; if (consume_attrs) ATTR_CONSUME(attrs[0]); break; case FONT_SIZE: font_attrs_exist = 1; return_attrs->size = (int) attrs[1]; if (consume_attrs) ATTR_CONSUME(attrs[0]); break; case FONT_SCALE: font_attrs_exist = 1; return_attrs->scale = (int) attrs[1]; if (consume_attrs) ATTR_CONSUME(attrs[0]); break; case FONT_SIZES_FOR_SCALE:{ font_attrs_exist = 1; return_attrs->small_size = (int) attrs[1]; return_attrs->medium_size = (int) attrs[2]; return_attrs->large_size = (int) attrs[3]; return_attrs->extra_large_size = (int) attrs[4]; if (consume_attrs) ATTR_CONSUME(attrs[0]); break; } case FONT_RESCALE_OF:{ Xv_opaque pf = (Xv_opaque) attrs[1]; Xv_Font font = 0; XV_OBJECT_TO_STANDARD(pf, "font_read_attrs", font); font_attrs_exist = 1; return_attrs->resize_from_font = (Font_info *) FONT_PRIVATE( font); return_attrs->rescale_factor = (int) attrs[2]; if (consume_attrs) ATTR_CONSUME(attrs[0]); break; } default: break; } } return (font_attrs_exist); } static void font_default_font(return_attrs) Font_return_attrs return_attrs; { Font_locale_info *linfo; linfo = return_attrs->linfo; return_attrs->family = linfo->default_family; return_attrs->style = linfo->default_style; return_attrs->weight = linfo->default_weight; return_attrs->slant = linfo->default_slant; return_attrs->setwidthname = DEFAULT_FONT_SETWIDTHNAME; return_attrs->addstylename = DEFAULT_FONT_ADDSTYLENAME; return_attrs->scale = (int)linfo->default_scale; return_attrs->size = linfo->default_size; } static Family_defs * font_match_family(family, known_families) char *family; Family_defs *known_families; { int i, len_of_family; len_of_family = (family) ? strlen(family):0; for (i=0; i < FONT_NUM_KNOWN_FAMILIES; ++i) { if (font_string_compare_nchars(known_families[i].family, family, MAX((int)strlen(known_families[i].family), len_of_family)) == 0) { return(&known_families[i]); } } return((Family_defs *)NULL); } /* * font_convert_family - checks if given family name is 'known' * and translates it if it is. The translation is hoped to be * an xlfd family name. * Example 'known' family names are: * cmr * cour * gallant * serif * lucidasans * FONT_FAMILY_DEFAULT * FONT_FAMILY_DEFAULT_FIXEDWIDTH * FONT_FAMILY_LUCIDA * FONT_FAMILY_LUCIDA_FIXEDWIDTH * FONT_FAMILY_ROMAN * FONT_FAMILY_SERIF * FONT_FAMILY_CMR * FONT_FAMILY_GALLENT * FONT_FAMILY_COUR * FONT_FAMILY_HELVETICA * FONT_FAMILY_OLGLYPH * FONT_FAMILY_OLCURSOR * etc.. */ static int font_convert_family(return_attrs) Font_return_attrs return_attrs; { Font_locale_info *linfo; Family_defs *match; Family_defs *known_families; if (!return_attrs) { return(XV_ERROR); } linfo = return_attrs->linfo; known_families = linfo->known_families; /* * get match for family name in table */ match = font_match_family(return_attrs->family, known_families); if (match) { /* * family entry found in table */ if (!match->translated) { /* * No translation use the default font family */ match->translated = linfo->default_family; } /* * Convert family to entry in table */ return_attrs->family = match->translated; /* * Check for style/size-less family */ font_check_style_less(return_attrs); font_check_size_less(return_attrs); return(XV_OK); } /* * No match in table */ return(XV_ERROR); } #ifndef OW_I18N static void font_init_sizes(linfo) Font_locale_info *linfo; { linfo->small_size = 10; linfo->medium_size = 12; linfo->large_size = 14; linfo->xlarge_size = 19; } static void font_init_known_families(linfo) Font_locale_info *linfo; { Family_defs *known_families; int i; known_families = (Family_defs *)xv_calloc(FONT_NUM_KNOWN_FAMILIES, sizeof(Family_defs)); for (i=0; i < FONT_NUM_KNOWN_FAMILIES; ++i) { known_families[i].family = default_family_translation[i].family; known_families[i].translated = (char *)NULL; } linfo->known_families = known_families; } static void font_init_known_styles(linfo) Font_locale_info *linfo; { Style_defs *known_styles; int i; known_styles = (Style_defs *)xv_calloc(FONT_NUM_KNOWN_STYLES, sizeof(Style_defs)); for (i=0; i < FONT_NUM_KNOWN_STYLES; ++i) { known_styles[i].style = default_style_translation[i].style; known_styles[i].weight = default_style_translation[i].weight; known_styles[i].slant = default_style_translation[i].slant; known_styles[i].preferred_name = default_style_translation[i].preferred_name; } linfo->known_styles = known_styles; } static int font_setup_known_families(linfo) Font_locale_info *linfo; { Family_defs *known_families, *match; int null_entry_found, numresolved = 0, oldresolved, i; char *family; font_init_known_families(linfo); known_families = linfo->known_families; /* * Keep on doing .... */ while (1) { null_entry_found = 0; oldresolved = numresolved; /* * Search for NULL translation entries */ for (i=0; i< FONT_NUM_KNOWN_FAMILIES; ++i) { if (!known_families[i].translated) { /* * NULL entry found */ null_entry_found = 1; /* * DON'T get family name from resource db - not now * anyways */ /* family = (char *) defaults_get_string(known_families[i].family, known_families[i].family, (char *)NULL); */ family = (char *)NULL; if (family) { /* * name found in resource db * see if it exists in table */ match = font_match_family(family, known_families); if (match) { /* * Name already exists in table * Check if it has a translation */ if (match->translated) { /* * It has a translation * Use it */ known_families[i].translated = match->translated; ++numresolved; } } else { /* * Name NOT already in table * Alloc space and store it in table */ known_families[i].translated = xv_strsave(family); ++numresolved; } } else { /* * Name does not exist in resource db * Use default font family */ if (!default_family_translation[i].translated) { known_families[i].translated = DEFAULT_FONT_FAMILY; } else { known_families[i].translated = default_family_translation[i].translated; } ++numresolved; } } } /* * Check if resolved entries don't get resolved * This might be because of recursive family definitions */ if (null_entry_found && (numresolved == oldresolved)) { xv_error(NULL, ERROR_STRING, XV_MSG("Initialization of font families failed. Possible recursive family definition"), ERROR_PKG, FONT, 0); return; } /* * If no more null entries found, we are done initializing */ if (!null_entry_found) { return; } } } static int font_setup_known_styles(linfo) Font_locale_info *linfo; { font_init_known_styles(linfo); } static int font_setup_defaults(linfo) Font_locale_info *linfo; { linfo->default_family = strdup("lucida"); linfo->default_fixedwidth_family = strdup("lucidatypewriter"); linfo->default_style = strdup("normal"); linfo->default_weight = strdup("medium"); linfo->default_slant = strdup("r"); linfo->default_scale = (int)WIN_SCALE_MEDIUM; linfo->default_scale_str = strdup("Medium"); linfo->default_size = 12; linfo->default_small_font = strdup("-b&h-lucida-medium-r-*-*-*-100-*-*-*-*-*-*"); linfo->default_medium_font = strdup("-b&h-lucida-medium-r-*-*-*-120-*-*-*-*-*-*"); linfo->default_large_font = strdup("-b&h-lucida-medium-r-*-*-*-140-*-*-*-*-*-*"); linfo->default_xlarge_font = strdup("-b&h-lucida-medium-r-*-*-*-190-*-*-*-*-*-*"); } #endif OW_I18N /* * font_convert_style - checks if given style name is 'known' * and translates it if it is. The translation is hoped to be * an xlfd weight/slant combination. * Example 'known' style names are: * r * b * i * o * normal * bold * italic * oblique * bolditalic * boldoblique * demibold * demiitalic * DEFAULT_FONT_STYLE * FONT_STYLE_DEFAULT * FONT_STYLE_NORMAL * FONT_STYLE_BOLD * FONT_STYLE_ITALIC * FONT_STYLE_OBLIQUE * FONT_STYLE_BOLD_ITALIC * FONT_STYLE_BOLD_OBLIQUE * etc.. */ Pkg_private int font_convert_style(return_attrs) Font_return_attrs return_attrs; { Font_locale_info *linfo; Style_defs current_entry, *known_styles; int i, len_of_style; if (return_attrs->no_style) { return(XV_OK); } linfo = return_attrs->linfo; known_styles = linfo->known_styles; len_of_style = (return_attrs->style) ? strlen(return_attrs->style):0; for (i=0, current_entry = known_styles[i]; i < FONT_NUM_KNOWN_STYLES; current_entry = known_styles[++i]) { if (font_string_compare_nchars(current_entry.style, return_attrs->style, MAX((int)strlen(current_entry.style), len_of_style)) == 0) { return_attrs->style = current_entry.preferred_name; return_attrs->weight = current_entry.weight; return_attrs->slant = current_entry.slant; return(XV_OK); } } return(XV_ERROR); } Pkg_private int font_convert_weightslant(return_attrs) Font_return_attrs return_attrs; { Style_defs current_entry, *known_styles; int i, len_of_weight, len_of_slant; if (return_attrs->no_style) { return(0); } known_styles = return_attrs->linfo->known_styles; len_of_weight = (return_attrs->weight) ? strlen(return_attrs->weight):0; len_of_slant = (return_attrs->slant) ? strlen(return_attrs->slant):0; for (i=0, current_entry = known_styles[i]; i < FONT_NUM_KNOWN_STYLES; current_entry = known_styles[++i]) { if ( (font_string_compare_nchars(current_entry.weight, return_attrs->weight, MAX((int)strlen(current_entry.weight), len_of_weight)) == 0) && (font_string_compare_nchars(current_entry.slant, return_attrs->slant, MAX((int)strlen(current_entry.slant), len_of_slant)) == 0) ) { return_attrs->style = current_entry.preferred_name; return(0); } } return(-1); } static int font_decrypt_xlfd_name(my_attrs) Font_return_attrs my_attrs; { Font_locale_info *linfo; int tempSize; int medsize, largesize, xlargesize; char tempName[255]; char *foundry = NULL; char *family = NULL; char *weight = NULL; char *slant = NULL; char *setwidthname = NULL; char *addstylename = NULL; char *pixsize = NULL; char *ptsize = NULL; char *xres = NULL; if (my_attrs->name == NULL) { return(-1); } linfo = my_attrs->linfo; sprintf(tempName, "%s", my_attrs->name); foundry = font_strip_name(tempName, FOUNDRYPOS, DASH); family = font_strip_name(tempName, FAMILYPOS, DASH); weight = font_strip_name(tempName, WEIGHTPOS, DASH); slant = font_strip_name(tempName, SLANTPOS, DASH); setwidthname = font_strip_name(tempName, SETWIDTHNAMEPOS, DASH); addstylename = font_strip_name(tempName, ADDSTYLENAMEPOS, DASH); pixsize = font_strip_name(tempName, PIXSIZEPOS, DASH); ptsize = font_strip_name(tempName, PTSIZEPOS, DASH); xres = font_strip_name(tempName, XRESOLUTIONPOS, DASH); *(family-1) = '\0'; *(weight-1) = '\0'; *(slant-1) = '\0'; *(setwidthname-1) = '\0'; *(addstylename-1) = '\0'; *(pixsize-1) = '\0'; *(ptsize-1) = '\0'; *(xres-1) = '\0'; if ((*foundry) && (*foundry != DASH)) { my_attrs->foundry = xv_strsave(foundry); my_attrs->free_foundry = 1; } if ((*family) && (*family != DASH)) { my_attrs->family = xv_strsave(family); my_attrs->free_family = 1; } if ((*weight) && (*weight != DASH)) { my_attrs->weight = xv_strsave(weight); my_attrs->free_weight = 1; } if ((*slant) && (*slant != DASH)) { my_attrs->slant = xv_strsave(slant); my_attrs->free_slant = 1; } if ( (*setwidthname) && (*setwidthname != DASH)) { my_attrs->setwidthname = xv_strsave(setwidthname); my_attrs->free_setwidthname = 1; } if ( (*addstylename) && (*addstylename != DASH)) { my_attrs->addstylename = xv_strsave(addstylename); my_attrs->free_addstylename = 1; } if ((*ptsize) && (*ptsize != DASH) && (*ptsize != '*')) { tempSize = atoi(ptsize); my_attrs->size = tempSize / 10; medsize = (my_attrs->medium_size < 0) ? linfo->medium_size : my_attrs->medium_size; if (my_attrs->size < medsize) { my_attrs->scale = (int)WIN_SCALE_SMALL; } else { largesize = (my_attrs->large_size < 0) ? linfo->large_size : my_attrs->large_size; if (my_attrs->size < largesize) { my_attrs->scale = (int)WIN_SCALE_MEDIUM; } else { xlargesize = (my_attrs->extra_large_size < 0) ? linfo->xlarge_size : my_attrs->extra_large_size; if (my_attrs->size < xlargesize) { my_attrs->scale = (int)WIN_SCALE_LARGE; } else { my_attrs->scale = (int)WIN_SCALE_EXTRALARGE; } } } } if ((my_attrs->weight) && (my_attrs->slant)) { font_convert_weightslant(my_attrs); } return (0); } /* * Decrypts the font name given into family, style, and size. * The font names recognized are: * delim